@carbonenginejs/runtime-resource 0.9.2 → 0.11.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 (544) hide show
  1. package/NOTICE +3 -2
  2. package/README.md +47 -6
  3. package/dist/CjsMotherLode.js +88 -88
  4. package/dist/CjsMotherLode.js.map +1 -1
  5. package/dist/CjsResMan.js +717 -228
  6. package/dist/CjsResMan.js.map +1 -1
  7. package/dist/CjsResManFetchProvider.js +94 -0
  8. package/dist/CjsResManFetchProvider.js.map +1 -0
  9. package/dist/{CjsResManQueue.js → CjsResManWorkQueue.js} +112 -25
  10. package/dist/CjsResManWorkQueue.js.map +1 -0
  11. package/dist/format/CjsBlueReader.js +89 -0
  12. package/dist/format/CjsBlueReader.js.map +1 -1
  13. package/dist/format/CjsFormat.js +42 -16
  14. package/dist/format/CjsFormat.js.map +1 -1
  15. package/dist/format/CjsReader.js +4 -0
  16. package/dist/format/CjsReader.js.map +1 -1
  17. package/dist/format/CjsResourceProbe.js +2 -0
  18. package/dist/format/CjsResourceProbe.js.map +1 -1
  19. package/dist/format/effect/effectPermutationGraph.js +257 -0
  20. package/dist/format/effect/effectPermutationGraph.js.map +1 -0
  21. package/dist/format/effect/effectReflectionPackage.js +636 -0
  22. package/dist/format/effect/effectReflectionPackage.js.map +1 -0
  23. package/dist/format/effect/sha256.js +114 -0
  24. package/dist/format/effect/sha256.js.map +1 -0
  25. package/dist/format/payloadContract.js +20 -0
  26. package/dist/format/payloadContract.js.map +1 -1
  27. package/dist/formats/black/CjsBlackFormat.js +15 -1
  28. package/dist/formats/black/CjsBlackFormat.js.map +1 -1
  29. package/dist/formats/black/core/CjsBlackBinaryReader.js +103 -0
  30. package/dist/formats/black/core/CjsBlackBinaryReader.js.map +1 -1
  31. package/dist/formats/black/core/CjsBlackPropertyReaders.js +61 -0
  32. package/dist/formats/black/core/CjsBlackPropertyReaders.js.map +1 -1
  33. package/dist/formats/black/core/CjsBlackReader.js +125 -0
  34. package/dist/formats/black/core/CjsBlackReader.js.map +1 -1
  35. package/dist/formats/black/core/CjsBlackSchemaRegistry.js +103 -0
  36. package/dist/formats/black/core/CjsBlackSchemaRegistry.js.map +1 -1
  37. package/dist/formats/black/core/helpers.js +17 -0
  38. package/dist/formats/black/core/helpers.js.map +1 -1
  39. package/dist/formats/bnk/CjsBnkFormat.js +8 -0
  40. package/dist/formats/bnk/CjsBnkFormat.js.map +1 -1
  41. package/dist/formats/bnk/core/helpers.js +20 -0
  42. package/dist/formats/bnk/core/helpers.js.map +1 -1
  43. package/dist/formats/bnk/core/musicNodes.js +40 -3
  44. package/dist/formats/bnk/core/musicNodes.js.map +1 -1
  45. package/dist/formats/bnk/core/soundbanksInfo.js +2 -0
  46. package/dist/formats/bnk/core/soundbanksInfo.js.map +1 -1
  47. package/dist/formats/cmf/core/binary.js +71 -0
  48. package/dist/formats/cmf/core/binary.js.map +1 -1
  49. package/dist/formats/cmf/core/buffers.js +4 -0
  50. package/dist/formats/cmf/core/buffers.js.map +1 -1
  51. package/dist/formats/cmf/core/helpers.js +31 -0
  52. package/dist/formats/cmf/core/helpers.js.map +1 -1
  53. package/dist/formats/cmf/core/schema.js +10 -0
  54. package/dist/formats/cmf/core/schema.js.map +1 -1
  55. package/dist/formats/cmf/core/shared.js +9 -0
  56. package/dist/formats/cmf/core/shared.js.map +1 -1
  57. package/dist/formats/cmf/core/writer.js +54 -0
  58. package/dist/formats/cmf/core/writer.js.map +1 -1
  59. package/dist/formats/dds/core/bc6h.js +10 -0
  60. package/dist/formats/dds/core/bc6h.js.map +1 -1
  61. package/dist/formats/dds/core/bc7.js +16 -0
  62. package/dist/formats/dds/core/bc7.js.map +1 -1
  63. package/dist/formats/dds/core/helpers.js +47 -0
  64. package/dist/formats/dds/core/helpers.js.map +1 -1
  65. package/dist/formats/dxbc/CjsDxbcFormat.js +142 -0
  66. package/dist/formats/dxbc/CjsDxbcFormat.js.map +1 -0
  67. package/dist/formats/dxbc/core/DxbcReader.js +266 -0
  68. package/dist/formats/dxbc/core/DxbcReader.js.map +1 -0
  69. package/dist/formats/dxbc/core/container.js +169 -0
  70. package/dist/formats/dxbc/core/container.js.map +1 -0
  71. package/dist/formats/dxbc/core/decoder.js +789 -0
  72. package/dist/formats/dxbc/core/decoder.js.map +1 -0
  73. package/dist/formats/dxbc/core/errors.js +19 -0
  74. package/dist/formats/dxbc/core/errors.js.map +1 -0
  75. package/dist/formats/dxbc/core/helpers.js +220 -0
  76. package/dist/formats/dxbc/core/helpers.js.map +1 -0
  77. package/dist/formats/dxbc/core/opcodes.js +45 -0
  78. package/dist/formats/dxbc/core/opcodes.js.map +1 -0
  79. package/dist/formats/dxbc/core/program.js +91 -0
  80. package/dist/formats/dxbc/core/program.js.map +1 -0
  81. package/dist/formats/dxbc/core/signature.js +172 -0
  82. package/dist/formats/dxbc/core/signature.js.map +1 -0
  83. package/dist/formats/dxbc/index.js +2 -0
  84. package/dist/formats/dxbc/index.js.map +1 -0
  85. package/dist/formats/fbx/core/helpers.js +21 -0
  86. package/dist/formats/fbx/core/helpers.js.map +1 -1
  87. package/dist/formats/flac/CjsFlacFormat.js +49 -0
  88. package/dist/formats/flac/CjsFlacFormat.js.map +1 -1
  89. package/dist/formats/flac/core/helpers.js +20 -0
  90. package/dist/formats/flac/core/helpers.js.map +1 -1
  91. package/dist/formats/gif/CjsGifFormat.js +49 -0
  92. package/dist/formats/gif/CjsGifFormat.js.map +1 -1
  93. package/dist/formats/gif/core/helpers.js +20 -0
  94. package/dist/formats/gif/core/helpers.js.map +1 -1
  95. package/dist/formats/gltf/core/helpers.js +15 -0
  96. package/dist/formats/gltf/core/helpers.js.map +1 -1
  97. package/dist/formats/gltf/core/parser.js +13 -0
  98. package/dist/formats/gltf/core/parser.js.map +1 -1
  99. package/dist/formats/gltf/core/targets.js +10 -0
  100. package/dist/formats/gltf/core/targets.js.map +1 -1
  101. package/dist/formats/gr2/core/bitknit2.js +2 -0
  102. package/dist/formats/gr2/core/bitknit2.js.map +1 -1
  103. package/dist/formats/gr2/core/helpers.js +20 -0
  104. package/dist/formats/gr2/core/helpers.js.map +1 -1
  105. package/dist/formats/gr2/core/targets.js +10 -0
  106. package/dist/formats/gr2/core/targets.js.map +1 -1
  107. package/dist/formats/hlsl/CjsHlslFormat.js +254 -0
  108. package/dist/formats/hlsl/CjsHlslFormat.js.map +1 -0
  109. package/dist/formats/hlsl/core/HlslBinaryUtils.js +15 -0
  110. package/dist/formats/hlsl/core/HlslBinaryUtils.js.map +1 -0
  111. package/dist/formats/hlsl/core/HlslEffectReadError.js +19 -0
  112. package/dist/formats/hlsl/core/HlslEffectReadError.js.map +1 -0
  113. package/dist/formats/hlsl/core/HlslEffectStateManager.js +130 -0
  114. package/dist/formats/hlsl/core/HlslEffectStateManager.js.map +1 -0
  115. package/dist/formats/hlsl/core/HlslReader.js +266 -0
  116. package/dist/formats/hlsl/core/HlslReader.js.map +1 -0
  117. package/dist/formats/hlsl/core/HlslRenderStateSetup.js +37 -0
  118. package/dist/formats/hlsl/core/HlslRenderStateSetup.js.map +1 -0
  119. package/dist/formats/hlsl/core/HlslResourceSetDescription.js +94 -0
  120. package/dist/formats/hlsl/core/HlslResourceSetDescription.js.map +1 -0
  121. package/dist/formats/hlsl/core/HlslShaderBytecode.js +44 -0
  122. package/dist/formats/hlsl/core/HlslShaderBytecode.js.map +1 -0
  123. package/dist/formats/hlsl/core/analysis.js +51 -0
  124. package/dist/formats/hlsl/core/analysis.js.map +1 -0
  125. package/dist/formats/hlsl/core/helpers.js +270 -0
  126. package/dist/formats/hlsl/core/helpers.js.map +1 -0
  127. package/dist/formats/hlsl/core/json.js +284 -0
  128. package/dist/formats/hlsl/core/json.js.map +1 -0
  129. package/dist/formats/hlsl/core/metadata.js +327 -0
  130. package/dist/formats/hlsl/core/metadata.js.map +1 -0
  131. package/dist/formats/hlsl/core/portableReflection.js +848 -0
  132. package/dist/formats/hlsl/core/portableReflection.js.map +1 -0
  133. package/dist/formats/hlsl/core/render-states.js +280 -0
  134. package/dist/formats/hlsl/core/render-states.js.map +1 -0
  135. package/dist/formats/hlsl/core/tr2/HlslRenderContextEnum.js +43 -0
  136. package/dist/formats/hlsl/core/tr2/HlslRenderContextEnum.js.map +1 -0
  137. package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js +294 -0
  138. package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js.map +1 -0
  139. package/dist/formats/hlsl/core/tr2/resources/HlslShaderPermutation.js +33 -0
  140. package/dist/formats/hlsl/core/tr2/resources/HlslShaderPermutation.js.map +1 -0
  141. package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js +416 -0
  142. package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js.map +1 -0
  143. package/dist/formats/hlsl/core/tr2/shader/HlslEffectConstant.js +40 -0
  144. package/dist/formats/hlsl/core/tr2/shader/HlslEffectConstant.js.map +1 -0
  145. package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js +742 -0
  146. package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js.map +1 -0
  147. package/dist/formats/hlsl/core/tr2/shader/HlslEffectLibrary.js +52 -0
  148. package/dist/formats/hlsl/core/tr2/shader/HlslEffectLibrary.js.map +1 -0
  149. package/dist/formats/hlsl/core/tr2/shader/HlslEffectParameterAnnotation.js +38 -0
  150. package/dist/formats/hlsl/core/tr2/shader/HlslEffectParameterAnnotation.js.map +1 -0
  151. package/dist/formats/hlsl/core/tr2/shader/HlslEffectResource.js +50 -0
  152. package/dist/formats/hlsl/core/tr2/shader/HlslEffectResource.js.map +1 -0
  153. package/dist/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js +86 -0
  154. package/dist/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js.map +1 -0
  155. package/dist/formats/hlsl/core/tr2/shader/HlslEffectTechnique.js +31 -0
  156. package/dist/formats/hlsl/core/tr2/shader/HlslEffectTechnique.js.map +1 -0
  157. package/dist/formats/hlsl/core/tr2/shader/HlslPass.js +42 -0
  158. package/dist/formats/hlsl/core/tr2/shader/HlslPass.js.map +1 -0
  159. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerDescription.js +55 -0
  160. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerDescription.js.map +1 -0
  161. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerSetup.js +29 -0
  162. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerSetup.js.map +1 -0
  163. package/dist/formats/hlsl/core/tr2/shader/HlslShader.js +220 -0
  164. package/dist/formats/hlsl/core/tr2/shader/HlslShader.js.map +1 -0
  165. package/dist/formats/hlsl/core/tr2/shader/HlslShaderOption.js +30 -0
  166. package/dist/formats/hlsl/core/tr2/shader/HlslShaderOption.js.map +1 -0
  167. package/dist/formats/hlsl/index.js +2 -0
  168. package/dist/formats/hlsl/index.js.map +1 -0
  169. package/dist/formats/hlsl/portable.js +2 -0
  170. package/dist/formats/hlsl/portable.js.map +1 -0
  171. package/dist/formats/index.js +4 -0
  172. package/dist/formats/index.js.map +1 -1
  173. package/dist/formats/jpeg/core/helpers.js +52 -0
  174. package/dist/formats/jpeg/core/helpers.js.map +1 -1
  175. package/dist/formats/jpeg/core/jpeg.js +93 -0
  176. package/dist/formats/jpeg/core/jpeg.js.map +1 -1
  177. package/dist/formats/mp3/core/helpers.js +37 -0
  178. package/dist/formats/mp3/core/helpers.js.map +1 -1
  179. package/dist/formats/mp4/core/helpers.js +35 -0
  180. package/dist/formats/mp4/core/helpers.js.map +1 -1
  181. package/dist/formats/ogg/CjsOggFormat.js +49 -0
  182. package/dist/formats/ogg/CjsOggFormat.js.map +1 -1
  183. package/dist/formats/ogg/core/helpers.js +23 -0
  184. package/dist/formats/ogg/core/helpers.js.map +1 -1
  185. package/dist/formats/ogg/core/vorbis.js +13 -0
  186. package/dist/formats/ogg/core/vorbis.js.map +1 -1
  187. package/dist/formats/png/core/helpers.js +52 -0
  188. package/dist/formats/png/core/helpers.js.map +1 -1
  189. package/dist/formats/red/CjsRedFormat.js +2 -0
  190. package/dist/formats/red/CjsRedFormat.js.map +1 -1
  191. package/dist/formats/red/core/CjsRedReader.js +52 -0
  192. package/dist/formats/red/core/CjsRedReader.js.map +1 -1
  193. package/dist/formats/red/core/helpers.js +19 -0
  194. package/dist/formats/red/core/helpers.js.map +1 -1
  195. package/dist/formats/stl/core/stl.js +8 -0
  196. package/dist/formats/stl/core/stl.js.map +1 -1
  197. package/dist/formats/stl/core/targets.js +10 -0
  198. package/dist/formats/stl/core/targets.js.map +1 -1
  199. package/dist/formats/tga/core/helpers.js +47 -0
  200. package/dist/formats/tga/core/helpers.js.map +1 -1
  201. package/dist/formats/wav/core/helpers.js +37 -0
  202. package/dist/formats/wav/core/helpers.js.map +1 -1
  203. package/dist/formats/webgl/CjsWebglFormat.js +221 -0
  204. package/dist/formats/webgl/CjsWebglFormat.js.map +1 -0
  205. package/dist/formats/webgl/core/cewg/CewgPackage.js +339 -0
  206. package/dist/formats/webgl/core/cewg/CewgPackage.js.map +1 -0
  207. package/dist/formats/webgl/core/cewg/CewgPackageBuilder.js +104 -0
  208. package/dist/formats/webgl/core/cewg/CewgPackageBuilder.js.map +1 -0
  209. package/dist/formats/webgl/core/cewg/binary.js +101 -0
  210. package/dist/formats/webgl/core/cewg/binary.js.map +1 -0
  211. package/dist/formats/webgl/core/cewgCompleteness.js +81 -0
  212. package/dist/formats/webgl/core/cewgCompleteness.js.map +1 -0
  213. package/dist/formats/webgl/core/effectPackage.js +789 -0
  214. package/dist/formats/webgl/core/effectPackage.js.map +1 -0
  215. package/dist/formats/webgl/core/effectPackageValidation.js +331 -0
  216. package/dist/formats/webgl/core/effectPackageValidation.js.map +1 -0
  217. package/dist/formats/webgl/core/errors.js +27 -0
  218. package/dist/formats/webgl/core/errors.js.map +1 -0
  219. package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js +2678 -0
  220. package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -0
  221. package/dist/formats/webgl/core/glsl/DxbcGlslHelpers.js +89 -0
  222. package/dist/formats/webgl/core/glsl/DxbcGlslHelpers.js.map +1 -0
  223. package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +428 -0
  224. package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -0
  225. package/dist/formats/webgl/core/helpers.js +306 -0
  226. package/dist/formats/webgl/core/helpers.js.map +1 -0
  227. package/dist/formats/webgl/index.js +2 -0
  228. package/dist/formats/webgl/index.js.map +1 -0
  229. package/dist/formats/webgpu/CjsWebgpuFormat.js +376 -0
  230. package/dist/formats/webgpu/CjsWebgpuFormat.js.map +1 -0
  231. package/dist/formats/webgpu/core/cewgpu/CewgpuPackage.js +415 -0
  232. package/dist/formats/webgpu/core/cewgpu/CewgpuPackage.js.map +1 -0
  233. package/dist/formats/webgpu/core/cewgpu/CewgpuPackageBuilder.js +100 -0
  234. package/dist/formats/webgpu/core/cewgpu/CewgpuPackageBuilder.js.map +1 -0
  235. package/dist/formats/webgpu/core/cewgpu/binary.js +93 -0
  236. package/dist/formats/webgpu/core/cewgpu/binary.js.map +1 -0
  237. package/dist/formats/webgpu/core/cewgpu/tags.js +17 -0
  238. package/dist/formats/webgpu/core/cewgpu/tags.js.map +1 -0
  239. package/dist/formats/webgpu/core/effectAnalysis.js +82 -0
  240. package/dist/formats/webgpu/core/effectAnalysis.js.map +1 -0
  241. package/dist/formats/webgpu/core/effectBackendBodySet.js +305 -0
  242. package/dist/formats/webgpu/core/effectBackendBodySet.js.map +1 -0
  243. package/dist/formats/webgpu/core/effectPackageValidation.js +1078 -0
  244. package/dist/formats/webgpu/core/effectPackageValidation.js.map +1 -0
  245. package/dist/formats/webgpu/core/errors.js +20 -0
  246. package/dist/formats/webgpu/core/errors.js.map +1 -0
  247. package/dist/formats/webgpu/core/helpers.js +448 -0
  248. package/dist/formats/webgpu/core/helpers.js.map +1 -0
  249. package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js +223 -0
  250. package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js.map +1 -0
  251. package/dist/formats/webgpu/core/ir/buildControlFlow.js +220 -0
  252. package/dist/formats/webgpu/core/ir/buildControlFlow.js.map +1 -0
  253. package/dist/formats/webgpu/core/ir/indexableTemps.js +137 -0
  254. package/dist/formats/webgpu/core/ir/indexableTemps.js.map +1 -0
  255. package/dist/formats/webgpu/core/ir/inferValueTypes.js +454 -0
  256. package/dist/formats/webgpu/core/ir/inferValueTypes.js.map +1 -0
  257. package/dist/formats/webgpu/core/ir/lowerDxbcToIr.js +494 -0
  258. package/dist/formats/webgpu/core/ir/lowerDxbcToIr.js.map +1 -0
  259. package/dist/formats/webgpu/core/ir/resolveRegisterFlow.js +177 -0
  260. package/dist/formats/webgpu/core/ir/resolveRegisterFlow.js.map +1 -0
  261. package/dist/formats/webgpu/core/ir/sourceLanes.js +61 -0
  262. package/dist/formats/webgpu/core/ir/sourceLanes.js.map +1 -0
  263. package/dist/formats/webgpu/core/packageEffect.js +300 -0
  264. package/dist/formats/webgpu/core/packageEffect.js.map +1 -0
  265. package/dist/formats/webgpu/core/packageEffectSelection.js +164 -0
  266. package/dist/formats/webgpu/core/packageEffectSelection.js.map +1 -0
  267. package/dist/formats/webgpu/core/packageMetadata.js +8 -0
  268. package/dist/formats/webgpu/core/packageMetadata.js.map +1 -0
  269. package/dist/formats/webgpu/core/schema.js +4 -0
  270. package/dist/formats/webgpu/core/schema.js.map +1 -0
  271. package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js +275 -0
  272. package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js.map +1 -0
  273. package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js +182 -0
  274. package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js.map +1 -0
  275. package/dist/formats/webgpu/core/wgsl/buildWgslSet.js +324 -0
  276. package/dist/formats/webgpu/core/wgsl/buildWgslSet.js.map +1 -0
  277. package/dist/formats/webgpu/core/wgsl/emitWgsl.js +356 -0
  278. package/dist/formats/webgpu/core/wgsl/emitWgsl.js.map +1 -0
  279. package/dist/formats/webgpu/core/wgsl/hoistEscapingValues.js +77 -0
  280. package/dist/formats/webgpu/core/wgsl/hoistEscapingValues.js.map +1 -0
  281. package/dist/formats/webgpu/core/wgsl/lowerBindingLayout.js +451 -0
  282. package/dist/formats/webgpu/core/wgsl/lowerBindingLayout.js.map +1 -0
  283. package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js +754 -0
  284. package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js.map +1 -0
  285. package/dist/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js +457 -0
  286. package/dist/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js.map +1 -0
  287. package/dist/formats/webgpu/core/wgsl/lowerFragmentProgram.js +1572 -0
  288. package/dist/formats/webgpu/core/wgsl/lowerFragmentProgram.js.map +1 -0
  289. package/dist/formats/webgpu/core/wgsl/lowerMergeHistogramsComputeProgram.js +659 -0
  290. package/dist/formats/webgpu/core/wgsl/lowerMergeHistogramsComputeProgram.js.map +1 -0
  291. package/dist/formats/webgpu/core/wgsl/lowerParticleClearComputePrograms.js +734 -0
  292. package/dist/formats/webgpu/core/wgsl/lowerParticleClearComputePrograms.js.map +1 -0
  293. package/dist/formats/webgpu/core/wgsl/lowerParticleEmitComputeProgram.js +583 -0
  294. package/dist/formats/webgpu/core/wgsl/lowerParticleEmitComputeProgram.js.map +1 -0
  295. package/dist/formats/webgpu/core/wgsl/lowerSkinVerticesComputeProgram.js +621 -0
  296. package/dist/formats/webgpu/core/wgsl/lowerSkinVerticesComputeProgram.js.map +1 -0
  297. package/dist/formats/webgpu/core/wgsl/lowerSortComputeProgram.js +824 -0
  298. package/dist/formats/webgpu/core/wgsl/lowerSortComputeProgram.js.map +1 -0
  299. package/dist/formats/webgpu/core/wgsl/lowerSortInnerComputeProgram.js +697 -0
  300. package/dist/formats/webgpu/core/wgsl/lowerSortInnerComputeProgram.js.map +1 -0
  301. package/dist/formats/webgpu/core/wgsl/lowerSortStepComputeProgram.js +559 -0
  302. package/dist/formats/webgpu/core/wgsl/lowerSortStepComputeProgram.js.map +1 -0
  303. package/dist/formats/webgpu/core/wgsl/lowerVertexProgram.js +1328 -0
  304. package/dist/formats/webgpu/core/wgsl/lowerVertexProgram.js.map +1 -0
  305. package/dist/formats/webgpu/core/wgsl/particleEmitSemanticDigest.js +110 -0
  306. package/dist/formats/webgpu/core/wgsl/particleEmitSemanticDigest.js.map +1 -0
  307. package/dist/formats/webgpu/core/wgsl/precisionControls.js +55 -0
  308. package/dist/formats/webgpu/core/wgsl/precisionControls.js.map +1 -0
  309. package/dist/formats/webgpu/core/wgsl/selectionPlans.js +758 -0
  310. package/dist/formats/webgpu/core/wgsl/selectionPlans.js.map +1 -0
  311. package/dist/formats/webgpu/core/wgsl/uniformity.js +78 -0
  312. package/dist/formats/webgpu/core/wgsl/uniformity.js.map +1 -0
  313. package/dist/formats/webgpu/core/wgsl/validateExactComputeIr.js +196 -0
  314. package/dist/formats/webgpu/core/wgsl/validateExactComputeIr.js.map +1 -0
  315. package/dist/formats/webgpu/core/wgsl/validateHandleOperand.js +37 -0
  316. package/dist/formats/webgpu/core/wgsl/validateHandleOperand.js.map +1 -0
  317. package/dist/formats/webgpu/index.js +2 -0
  318. package/dist/formats/webgpu/index.js.map +1 -0
  319. package/dist/formats/webm/core/helpers.js +35 -0
  320. package/dist/formats/webm/core/helpers.js.map +1 -1
  321. package/dist/formats/webp/CjsWebpFormat.js +49 -0
  322. package/dist/formats/webp/CjsWebpFormat.js.map +1 -1
  323. package/dist/formats/webp/core/helpers.js +23 -0
  324. package/dist/formats/webp/core/helpers.js.map +1 -1
  325. package/dist/formats/wem/CjsWemFormat.js +8 -0
  326. package/dist/formats/wem/CjsWemFormat.js.map +1 -1
  327. package/dist/formats/wem/core/bitStream.js +2 -0
  328. package/dist/formats/wem/core/bitStream.js.map +1 -1
  329. package/dist/formats/wem/core/helpers.js +20 -0
  330. package/dist/formats/wem/core/helpers.js.map +1 -1
  331. package/dist/formats/yaml/CjsYamlFormat.js +45 -0
  332. package/dist/formats/yaml/CjsYamlFormat.js.map +1 -1
  333. package/dist/formats/yaml/core/CjsYamlReader.js +91 -0
  334. package/dist/formats/yaml/core/CjsYamlReader.js.map +1 -1
  335. package/dist/formats/yaml/core/helpers.js +10 -0
  336. package/dist/formats/yaml/core/helpers.js.map +1 -1
  337. package/dist/index.js +56 -43
  338. package/dist/index.js.map +1 -1
  339. package/dist/{CjsResource.js → resource/CjsResource.js} +232 -17
  340. package/dist/resource/CjsResource.js.map +1 -0
  341. package/dist/{resources → resource}/Tr2LightProfileRes.js +4 -3
  342. package/dist/resource/Tr2LightProfileRes.js.map +1 -0
  343. package/dist/{resources → resource/audio}/AudioGeometryResData.js +1 -1
  344. package/dist/resource/audio/AudioGeometryResData.js.map +1 -0
  345. package/dist/resource/audio/CjsAudioBufferRes.js +86 -0
  346. package/dist/resource/audio/CjsAudioBufferRes.js.map +1 -0
  347. package/dist/resource/audio/CjsAudioRes.js +213 -0
  348. package/dist/resource/audio/CjsAudioRes.js.map +1 -0
  349. package/dist/resource/audio/index.js +4 -0
  350. package/dist/resource/audio/index.js.map +1 -0
  351. package/dist/{resources → resource/geometry}/MeshDecalData.js +1 -1
  352. package/dist/resource/geometry/MeshDecalData.js.map +1 -0
  353. package/dist/{resources → resource/geometry}/MeshDecalLodData.js +1 -1
  354. package/dist/resource/geometry/MeshDecalLodData.js.map +1 -0
  355. package/dist/resource/geometry/TriGeometryRes.js +656 -0
  356. package/dist/resource/geometry/TriGeometryRes.js.map +1 -0
  357. package/dist/{resources → resource/geometry}/TriGeometryResAreaData.js +1 -1
  358. package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -0
  359. package/dist/{resources → resource/geometry}/TriGeometryResJointData.js +1 -1
  360. package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -0
  361. package/dist/{resources → resource/geometry}/TriGeometryResLodData.js +1 -1
  362. package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -0
  363. package/dist/{resources → resource/geometry}/TriGeometryResMeshData.js +1 -1
  364. package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -0
  365. package/dist/{resources → resource/geometry}/TriGeometryResSkeletonData.js +1 -1
  366. package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -0
  367. package/dist/{resources → resource/geometry}/TriJointBinding.js +1 -1
  368. package/dist/resource/geometry/TriJointBinding.js.map +1 -0
  369. package/dist/{resources → resource/geometry}/TriMorphTargetGeometryConstants.js +1 -1
  370. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -0
  371. package/dist/{resources → resource/geometry}/TriRtGeometryConstants.js +1 -1
  372. package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -0
  373. package/dist/{resources → resource/geometry/granny}/GStateBindingCallbackData.js +1 -1
  374. package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -0
  375. package/dist/{resources → resource/geometry/granny}/Tr2GrannyIntersectionResult.js +1 -1
  376. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -0
  377. package/dist/{resources → resource/geometry/granny}/Tr2GrannyStateRes.js +6 -5
  378. package/dist/resource/geometry/granny/Tr2GrannyStateRes.js.map +1 -0
  379. package/dist/{resources → resource/geometry/granny}/TriGrannyRes.js +6 -5
  380. package/dist/resource/geometry/granny/TriGrannyRes.js.map +1 -0
  381. package/dist/{resources → resource/geometry/granny}/enums.js +1 -9
  382. package/dist/resource/geometry/granny/enums.js.map +1 -0
  383. package/dist/resource/geometry/granny/index.js +6 -0
  384. package/dist/resource/geometry/granny/index.js.map +1 -0
  385. package/dist/resource/geometry/index.js +17 -0
  386. package/dist/resource/geometry/index.js.map +1 -0
  387. package/dist/resource/index.js +52 -0
  388. package/dist/resource/index.js.map +1 -0
  389. package/dist/resource/resourceBoundary.js +64 -0
  390. package/dist/resource/resourceBoundary.js.map +1 -0
  391. package/dist/resource/shader/Tr2EffectRes.js +429 -0
  392. package/dist/resource/shader/Tr2EffectRes.js.map +1 -0
  393. package/dist/resource/shader/Tr2MaterialArea.js +34 -0
  394. package/dist/resource/shader/Tr2MaterialArea.js.map +1 -0
  395. package/dist/resource/shader/Tr2MaterialMesh.js +30 -0
  396. package/dist/resource/shader/Tr2MaterialMesh.js.map +1 -0
  397. package/dist/resource/shader/Tr2MaterialRes.js +35 -0
  398. package/dist/resource/shader/Tr2MaterialRes.js.map +1 -0
  399. package/dist/resource/shader/Tr2Shader.js +256 -0
  400. package/dist/resource/shader/Tr2Shader.js.map +1 -0
  401. package/dist/resource/shader/Tr2ShaderPermutation.js +47 -0
  402. package/dist/resource/shader/Tr2ShaderPermutation.js.map +1 -0
  403. package/dist/resource/shader/index.js +17 -0
  404. package/dist/resource/shader/index.js.map +1 -0
  405. package/dist/resource/shader/portable.js +33 -0
  406. package/dist/resource/shader/portable.js.map +1 -0
  407. package/dist/resource/shader/reflection/Tr2EffectConstant.js +135 -0
  408. package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -0
  409. package/dist/resource/shader/reflection/Tr2EffectDefine.js +28 -0
  410. package/dist/resource/shader/reflection/Tr2EffectDefine.js.map +1 -0
  411. package/dist/resource/shader/reflection/Tr2EffectDescription.js +107 -0
  412. package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -0
  413. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +145 -0
  414. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -0
  415. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +103 -0
  416. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -0
  417. package/dist/resource/shader/reflection/Tr2EffectResource.js +84 -0
  418. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -0
  419. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +239 -0
  420. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -0
  421. package/dist/resource/shader/reflection/Tr2EffectTechnique.js +66 -0
  422. package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -0
  423. package/dist/resource/shader/reflection/Tr2Pass.js +109 -0
  424. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -0
  425. package/dist/resource/shader/sampler/Tr2SamplerSetup.js +75 -0
  426. package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -0
  427. package/dist/{texture → resource/texture}/CjsTextureArrayRes.js +83 -6
  428. package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -0
  429. package/dist/{texture/CjsTextureParameterProxy.js → resource/texture/CjsTextureArrayResParameterProxy.js} +56 -10
  430. package/dist/resource/texture/CjsTextureArrayResParameterProxy.js.map +1 -0
  431. package/dist/{resources → resource/texture}/Tr2ImageRes.js +6 -4
  432. package/dist/resource/texture/Tr2ImageRes.js.map +1 -0
  433. package/dist/{resources → resource/texture}/Tr2TextureLodManager.js +3 -1
  434. package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -0
  435. package/dist/{resources → resource/texture}/Tr2TextureLodUpdateRequest.js +1 -1
  436. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -0
  437. package/dist/{resources → resource/texture}/Tr2TexturePackChannel.js +1 -1
  438. package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -0
  439. package/dist/{resources → resource/texture}/Tr2TexturePipeline.js +6 -4
  440. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -0
  441. package/dist/{resources → resource/texture}/Tr2TexturePipelineParams.js +1 -1
  442. package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -0
  443. package/dist/{resources → resource/texture}/Tr2TexturePipelineStepCompress.js +1 -1
  444. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -0
  445. package/dist/{resources → resource/texture}/Tr2TexturePipelineStepGenerateMips.js +1 -1
  446. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -0
  447. package/dist/{resources → resource/texture}/Tr2TexturePipelineStepLimitSize.js +1 -1
  448. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -0
  449. package/dist/{resources → resource/texture}/Tr2TexturePipelineStepLoad.js +1 -1
  450. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -0
  451. package/dist/{resources → resource/texture}/Tr2TexturePipelineStepPack.js +1 -1
  452. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -0
  453. package/dist/{resources → resource/texture}/TriTextureRes.js +42 -26
  454. package/dist/resource/texture/TriTextureRes.js.map +1 -0
  455. package/dist/resource/texture/index.js +15 -0
  456. package/dist/resource/texture/index.js.map +1 -0
  457. package/dist/{resources → resource/texture}/texturePipelineBehavior.js +59 -59
  458. package/dist/resource/texture/texturePipelineBehavior.js.map +1 -0
  459. package/dist/worker/CjsResManMainThreadLoader.js +87 -0
  460. package/dist/worker/CjsResManMainThreadLoader.js.map +1 -0
  461. package/dist/worker/CjsResManWorker.js +217 -0
  462. package/dist/worker/CjsResManWorker.js.map +1 -0
  463. package/dist/worker/CjsResManWorkerLoader.js +434 -0
  464. package/dist/worker/CjsResManWorkerLoader.js.map +1 -0
  465. package/dist/worker/protocol.js +12 -0
  466. package/dist/worker/protocol.js.map +1 -0
  467. package/docs/README.md +16 -3
  468. package/docs/architecture.md +39 -16
  469. package/docs/concepts/resource-lifecycle.md +2 -1
  470. package/docs/formats/README.md +8 -0
  471. package/docs/formats/provenance.md +11 -3
  472. package/docs/reference/classes/README.md +6 -4
  473. package/docs/reference/classes/audio.md +30 -0
  474. package/docs/reference/classes/core.md +31 -11
  475. package/docs/reference/classes/formats.md +440 -0
  476. package/docs/reference/classes/resources.md +151 -41
  477. package/docs/reference/classes/texture.md +7 -7
  478. package/docs/reference/motherlode-cache.md +17 -0
  479. package/docs/reference/queues.md +9 -1
  480. package/docs/reference/workers.md +135 -0
  481. package/docs/roadmap.md +27 -1
  482. package/format-notices/dxbc/LICENSE +21 -0
  483. package/format-notices/dxbc/NOTICE +20 -0
  484. package/format-notices/hlsl/LICENSE +21 -0
  485. package/format-notices/hlsl/NOTICE +25 -0
  486. package/format-notices/webgl/LICENSE +21 -0
  487. package/format-notices/webgl/NOTICE +35 -0
  488. package/format-notices/webgpu/LICENSE +21 -0
  489. package/format-notices/webgpu/NOTICE +31 -0
  490. package/package.json +13 -1
  491. package/dist/CjsResManQueue.js.map +0 -1
  492. package/dist/CjsResource.js.map +0 -1
  493. package/dist/CjsResourceSource.js +0 -68
  494. package/dist/CjsResourceSource.js.map +0 -1
  495. package/dist/resourcePath.js +0 -18
  496. package/dist/resourcePath.js.map +0 -1
  497. package/dist/resourceStates.js +0 -9
  498. package/dist/resourceStates.js.map +0 -1
  499. package/dist/resources/AudioGeometryResData.js.map +0 -1
  500. package/dist/resources/GStateBindingCallbackData.js.map +0 -1
  501. package/dist/resources/MeshDecalData.js.map +0 -1
  502. package/dist/resources/MeshDecalLodData.js.map +0 -1
  503. package/dist/resources/Tr2EffectRes.js +0 -71
  504. package/dist/resources/Tr2EffectRes.js.map +0 -1
  505. package/dist/resources/Tr2GrannyIntersectionResult.js.map +0 -1
  506. package/dist/resources/Tr2GrannyStateRes.js.map +0 -1
  507. package/dist/resources/Tr2ImageRes.js.map +0 -1
  508. package/dist/resources/Tr2LightProfileRes.js.map +0 -1
  509. package/dist/resources/Tr2MaterialArea.js +0 -34
  510. package/dist/resources/Tr2MaterialArea.js.map +0 -1
  511. package/dist/resources/Tr2MaterialMesh.js +0 -31
  512. package/dist/resources/Tr2MaterialMesh.js.map +0 -1
  513. package/dist/resources/Tr2MaterialRes.js +0 -34
  514. package/dist/resources/Tr2MaterialRes.js.map +0 -1
  515. package/dist/resources/Tr2ShaderPermutation.js +0 -43
  516. package/dist/resources/Tr2ShaderPermutation.js.map +0 -1
  517. package/dist/resources/Tr2TextureLodManager.js.map +0 -1
  518. package/dist/resources/Tr2TextureLodUpdateRequest.js.map +0 -1
  519. package/dist/resources/Tr2TexturePackChannel.js.map +0 -1
  520. package/dist/resources/Tr2TexturePipeline.js.map +0 -1
  521. package/dist/resources/Tr2TexturePipelineParams.js.map +0 -1
  522. package/dist/resources/Tr2TexturePipelineStepCompress.js.map +0 -1
  523. package/dist/resources/Tr2TexturePipelineStepGenerateMips.js.map +0 -1
  524. package/dist/resources/Tr2TexturePipelineStepLimitSize.js.map +0 -1
  525. package/dist/resources/Tr2TexturePipelineStepLoad.js.map +0 -1
  526. package/dist/resources/Tr2TexturePipelineStepPack.js.map +0 -1
  527. package/dist/resources/TriGeometryRes.js +0 -239
  528. package/dist/resources/TriGeometryRes.js.map +0 -1
  529. package/dist/resources/TriGeometryResAreaData.js.map +0 -1
  530. package/dist/resources/TriGeometryResJointData.js.map +0 -1
  531. package/dist/resources/TriGeometryResLodData.js.map +0 -1
  532. package/dist/resources/TriGeometryResMeshData.js.map +0 -1
  533. package/dist/resources/TriGeometryResSkeletonData.js.map +0 -1
  534. package/dist/resources/TriGrannyRes.js.map +0 -1
  535. package/dist/resources/TriJointBinding.js.map +0 -1
  536. package/dist/resources/TriMorphTargetGeometryConstants.js.map +0 -1
  537. package/dist/resources/TriRtGeometryConstants.js.map +0 -1
  538. package/dist/resources/TriTextureRes.js.map +0 -1
  539. package/dist/resources/enums.js.map +0 -1
  540. package/dist/resources/resourceBoundary.js +0 -47
  541. package/dist/resources/resourceBoundary.js.map +0 -1
  542. package/dist/resources/texturePipelineBehavior.js.map +0 -1
  543. package/dist/texture/CjsTextureArrayRes.js.map +0 -1
  544. package/dist/texture/CjsTextureParameterProxy.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CjsBlackSchemaRegistry.js","sources":["../../../../../src/formats/black/core/CjsBlackSchemaRegistry.js"],"sourcesContent":["/**\n * Registry that normalizes caller-supplied schemas into per-class source\n * shapes the Black reader uses to resolve persisted fields.\n */\nexport class CjsBlackSchemaRegistry\n{\n constructor(schema = null)\n {\n this.shapes = CjsBlackSchemaRegistry.createShapeMap(schema);\n }\n\n GetSourceShape(kind)\n {\n return this.shapes.get(kind) || null;\n }\n\n static createShapeMap(schema)\n {\n const shapes = new Map();\n if (CjsBlackSchemaRegistry.isCompactClassMap(schema))\n {\n CjsBlackSchemaRegistry.addCompactClassMap(schema, shapes);\n return shapes;\n }\n\n CjsBlackSchemaRegistry.collectSchemaShapes(schema, shapes, new WeakSet());\n return shapes;\n }\n\n static collectSchemaShapes(value, shapes, seen)\n {\n if (!value || typeof value !== \"object\") return;\n if (seen.has(value)) return;\n seen.add(value);\n\n if (Array.isArray(value))\n {\n for (const item of value)\n {\n CjsBlackSchemaRegistry.collectSchemaShapes(item, shapes, seen);\n }\n return;\n }\n\n if (CjsBlackSchemaRegistry.isClassSchema(value))\n {\n CjsBlackSchemaRegistry.addShape(value, shapes);\n return;\n }\n\n if (Array.isArray(value.families))\n {\n for (const family of value.families)\n {\n CjsBlackSchemaRegistry.collectSchemaShapes(family, shapes, seen);\n }\n }\n\n if (Array.isArray(value.classes))\n {\n for (const item of value.classes)\n {\n CjsBlackSchemaRegistry.collectSchemaShapes(item, shapes, seen);\n }\n }\n else if (CjsBlackSchemaRegistry.isCompactClassMap(value.classes))\n {\n CjsBlackSchemaRegistry.addCompactClassMap(value.classes, shapes);\n }\n\n for (const item of Object.values(value))\n {\n if (item && typeof item === \"object\" && CjsBlackSchemaRegistry.isClassSchema(item))\n {\n CjsBlackSchemaRegistry.addShape(item, shapes);\n }\n }\n }\n\n static isCompactClassMap(value)\n {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return false;\n if (CjsBlackSchemaRegistry.isClassSchema(value)) return false;\n if (value.black || value.families || Array.isArray(value.classes)) return false;\n\n const entries = Object.entries(value);\n if (!entries.length) return false;\n\n return entries.every(([ className, fields ]) =>\n typeof className === \"string\" &&\n className.length > 0 &&\n CjsBlackSchemaRegistry.isCompactFieldMap(fields) &&\n CjsBlackSchemaRegistry.isCompactClassFields(fields)\n );\n }\n\n static isCompactClassFields(fields)\n {\n const specs = Object.values(fields || {});\n return specs.every(spec => CjsBlackSchemaRegistry.isCompactFieldSpec(spec));\n }\n\n static isCompactFieldSpec(spec)\n {\n if (typeof spec === \"string\") return true;\n if (!spec || typeof spec !== \"object\" || Array.isArray(spec)) return false;\n return typeof spec.type === \"string\" || typeof spec.kind === \"string\";\n }\n\n static addCompactClassMap(classes, shapes)\n {\n for (const [ className, fields ] of Object.entries(classes || {}))\n {\n CjsBlackSchemaRegistry.addShape({ className, fields }, shapes);\n }\n }\n\n static isClassSchema(value)\n {\n if (!value || typeof value !== \"object\") return false;\n if (Array.isArray(value)) return false;\n return Boolean(\n value.black?.fields ||\n (value.black && (value.black.className || value.className || value.blueClass || value.cppClass)) ||\n (value.className && CjsBlackSchemaRegistry.isCompactFieldMap(value.fields)) ||\n (value.className && Array.isArray(value.fields)) ||\n (value.blueClass && value.black)\n );\n }\n\n static addShape(schema, shapes)\n {\n const shape = CjsBlackSchemaRegistry.normalizeShape(schema);\n if (!shape?.className) return;\n\n shapes.set(shape.className, shape);\n if (schema.blueClass) shapes.set(schema.blueClass, shape);\n if (schema.cppClass) shapes.set(schema.cppClass, shape);\n if (schema.name) shapes.set(schema.name, shape);\n }\n\n static normalizeShape(schema)\n {\n const black = schema.black || {};\n const className = black.className || schema.className || schema.blueClass || schema.cppClass || schema.name || null;\n if (!className) return null;\n\n const fields = CjsBlackSchemaRegistry.normalizeFields(schema);\n const blackFieldSource = CjsBlackSchemaRegistry.isCompactFieldMap(schema.fields)\n ? CjsBlackSchemaRegistry.compactBlackFields(schema.fields)\n : (black.fields || schema.blackFields || schema.fields || []);\n const blackFields = blackFieldSource\n .filter(item => item && typeof item === \"object\")\n .map(item => CjsBlackSchemaRegistry.normalizeBlackField(item, fields));\n\n return {\n ...schema,\n className,\n family: schema.family || null,\n fields,\n black: {\n ...black,\n className,\n fields: blackFields\n }\n };\n }\n\n static normalizeFields(schema)\n {\n const fields = [];\n const byName = new Map();\n const add = (field) =>\n {\n if (!field || typeof field !== \"object\") return;\n const name = field.name || field.fieldName || field.blueName || CjsBlackSchemaRegistry.toJsFieldName(field.cppName || field.member || \"\");\n if (!name || byName.has(name)) return;\n\n const normalized = {\n ...field,\n name,\n cppName: field.cppName || field.memberPath || field.memberRoot || field.member || null,\n cppType: field.cppType || null\n };\n byName.set(name, normalized);\n fields.push(normalized);\n };\n\n if (CjsBlackSchemaRegistry.isCompactFieldMap(schema.fields))\n {\n for (const [ blackName, fieldSpec ] of Object.entries(schema.fields))\n {\n add(CjsBlackSchemaRegistry.compactField(blackName, fieldSpec));\n }\n }\n else\n {\n for (const field of schema.fields || [])\n {\n add(field);\n }\n }\n\n for (const attribute of schema.attributes || [])\n {\n if (!attribute?.black) continue;\n const black = CjsBlackSchemaRegistry.normalizeBlackField(attribute.black, fields);\n add({\n name: black.fieldName || attribute.blueName || black.name,\n cppName: black.cppName,\n cppType: black.cppType || attribute.cppType,\n black\n });\n }\n\n return fields;\n }\n\n static isCompactFieldMap(value)\n {\n return !!value && typeof value === \"object\" && !Array.isArray(value);\n }\n\n static compactBlackFields(fields)\n {\n return Object.entries(fields || {}).map(([ blackName, fieldSpec ]) =>\n CjsBlackSchemaRegistry.compactBlackField(blackName, fieldSpec));\n }\n\n static compactField(blackName, fieldSpec)\n {\n const spec = CjsBlackSchemaRegistry.normalizeCompactSpec(blackName, fieldSpec);\n return {\n name: spec.fieldName,\n fieldName: spec.fieldName,\n enumType: spec.enumType,\n jsType: spec.jsType,\n black: spec.black\n };\n }\n\n static compactBlackField(blackName, fieldSpec)\n {\n return CjsBlackSchemaRegistry.normalizeCompactSpec(blackName, fieldSpec).black;\n }\n\n static normalizeCompactSpec(blackName, fieldSpec)\n {\n const\n spec = typeof fieldSpec === \"string\" ? { type: fieldSpec } : (fieldSpec || {}),\n type = spec.type || spec.kind || \"unknown\",\n fieldName = spec.field || spec.fieldName || blackName,\n descriptor = CjsBlackSchemaRegistry.compactTypeDescriptor(type, spec),\n black = {\n name: blackName,\n fieldName,\n storageName: fieldName,\n member: blackName,\n memberPath: fieldName,\n memberRoot: fieldName,\n indexKey: Object.hasOwn(spec, \"index\") ? spec.index : undefined,\n indexToken: spec.token || null,\n enumType: spec.enum || null,\n ...descriptor.black,\n jsType: descriptor.jsType\n };\n\n return {\n fieldName,\n enumType: spec.enum || null,\n jsType: descriptor.jsType,\n black\n };\n }\n\n static compactTypeDescriptor(type, spec)\n {\n const normalized = String(type || \"unknown\");\n switch (normalized)\n {\n case \"boolean\":\n case \"bool\":\n return CjsBlackSchemaRegistry.compactBlackType(\"BOOL\", { kind: \"boolean\" });\n case \"string\":\n return CjsBlackSchemaRegistry.compactBlackType(\"STDSTRING\", { kind: \"string\" });\n case \"wstring\":\n return CjsBlackSchemaRegistry.compactBlackType(\"STDWSTRING\", { kind: \"string\" });\n case \"path\":\n return CjsBlackSchemaRegistry.compactBlackType(\"STDSTRING\", { kind: \"path\" });\n case \"expression\":\n return CjsBlackSchemaRegistry.compactBlackType(\"STDSTRING\", { kind: \"expression\", js: \"string\" });\n case \"enum\":\n return CjsBlackSchemaRegistry.compactBlackType(\"LONG\", { kind: \"enum\" }, { signed: true });\n case \"float\":\n return CjsBlackSchemaRegistry.compactBlackType(\"FLOAT\", { kind: \"float32\" });\n case \"double\":\n return CjsBlackSchemaRegistry.compactBlackType(\"DOUBLE\", { kind: \"float64\" });\n case \"int\":\n return CjsBlackSchemaRegistry.compactBlackType(\"LONG\", { kind: \"int32\" }, { signed: true });\n case \"uint\":\n return CjsBlackSchemaRegistry.compactBlackType(\"ULONG\", { kind: \"uint32\" }, { signed: false });\n case \"int64\":\n return CjsBlackSchemaRegistry.compactBlackType(\"INT64\", { kind: \"int64\" }, { signed: true });\n case \"uint64\":\n return CjsBlackSchemaRegistry.compactBlackType(\"UINT64\", { kind: \"uint64\" }, { signed: false });\n case \"byte\":\n return CjsBlackSchemaRegistry.compactBlackType(\"BYTE\", { kind: \"int8\" }, { signed: true });\n case \"ubyte\":\n return CjsBlackSchemaRegistry.compactBlackType(\"BYTE\", { kind: \"uint8\" }, { signed: false });\n case \"short\":\n return CjsBlackSchemaRegistry.compactBlackType(\"SHORT\", { kind: \"int16\" }, { signed: true });\n case \"ushort\":\n return CjsBlackSchemaRegistry.compactBlackType(\"SHORT\", { kind: \"uint16\" }, { signed: false });\n case \"vector2\":\n return CjsBlackSchemaRegistry.compactFloatArrayType(\"vector2\", 2);\n case \"vector3\":\n return CjsBlackSchemaRegistry.compactFloatArrayType(\"vector3\", 3);\n case \"vector4\":\n return CjsBlackSchemaRegistry.compactFloatArrayType(\"vector4\", 4);\n case \"color\":\n return CjsBlackSchemaRegistry.compactFloatArrayType(\"color\", 4);\n case \"quaternion\":\n return CjsBlackSchemaRegistry.compactFloatArrayType(\"quaternion\", 4);\n case \"matrix3\":\n return CjsBlackSchemaRegistry.compactFloatArrayType(\"matrix3\", 9);\n case \"matrix4\":\n return CjsBlackSchemaRegistry.compactFloatArrayType(\"matrix4\", 16);\n case \"floatArray\":\n return CjsBlackSchemaRegistry.compactFloatArrayType(\"array\", spec.length || 0);\n case \"array\":\n return CjsBlackSchemaRegistry.compactBlackType(\"IROOT\", { kind: \"array\" }, { container: \"list\" });\n case \"dict\":\n return CjsBlackSchemaRegistry.compactBlackType(\"IROOT\", { kind: \"map\" }, { container: \"dict\" });\n case \"object\":\n return CjsBlackSchemaRegistry.compactBlackType(\"IROOTPTR\", { kind: \"objectRef\" });\n case \"rawStruct\":\n return CjsBlackSchemaRegistry.compactBlackType(\"IROOT\", { kind: \"rawStruct\" });\n case \"structList\":\n return CjsBlackSchemaRegistry.compactBlackType(\"IROOT\", { kind: \"array\" }, {\n container: \"list\",\n cppType: spec.cppType || \"StructureList\"\n });\n case \"binaryBlock\":\n return CjsBlackSchemaRegistry.compactBlackType(\"BINARYBLOCK\", { kind: \"typedArray\" });\n default:\n return CjsBlackSchemaRegistry.compactBlackType(null, { kind: normalized });\n }\n }\n\n static compactBlackType(beType, jsType, extra = {})\n {\n return {\n jsType,\n black: {\n beType,\n wireType: CjsBlackSchemaRegistry.compactWireType(beType, extra.container),\n ...extra\n }\n };\n }\n\n static compactFloatArrayType(kind, length)\n {\n return CjsBlackSchemaRegistry.compactBlackType(\"FLOATARRAY\", { kind, length }, { length });\n }\n\n static compactWireType(beType, container = null)\n {\n switch (beType)\n {\n case \"BOOL\":\n return \"bool\";\n case \"STDSTRING\":\n case \"STDWSTRING\":\n return \"stringRef\";\n case \"FLOAT\":\n return \"float32\";\n case \"DOUBLE\":\n return \"float64\";\n case \"LONG\":\n return \"int32\";\n case \"ULONG\":\n return \"uint32\";\n case \"INT64\":\n return \"int64\";\n case \"UINT64\":\n return \"uint64\";\n case \"BYTE\":\n return \"uint8\";\n case \"SHORT\":\n return \"uint16\";\n case \"FLOATARRAY\":\n return \"floatArray\";\n case \"BINARYBLOCK\":\n return \"binaryBlock\";\n case \"IROOTPTR\":\n return \"objectRef\";\n case \"IROOT\":\n return container ? \"container\" : \"inlineObject\";\n default:\n return null;\n }\n }\n\n static normalizeBlackField(field, sourceFields = [])\n {\n const names = field.names || null;\n const name = field.name || CjsBlackSchemaRegistry.getNameRole(names, \"name\") || field.nameExpression || null;\n const fieldName = field.fieldName || CjsBlackSchemaRegistry.getNameRole(names, \"fieldName\") || name || null;\n const cppName = field.cppName ||\n CjsBlackSchemaRegistry.getNameRole(names, \"cppName\") ||\n CjsBlackSchemaRegistry.getNameRole(names, \"memberPath\") ||\n CjsBlackSchemaRegistry.getNameRole(names, \"memberRoot\") ||\n null;\n const member = field.member || CjsBlackSchemaRegistry.getNameRole(names, \"member\") || cppName || name;\n const memberPath = field.memberPath || CjsBlackSchemaRegistry.getNameRole(names, \"memberPath\") || cppName;\n const memberRoot = field.memberRoot || CjsBlackSchemaRegistry.getNameRole(names, \"memberRoot\") || memberPath;\n const sourceField = sourceFields.find(item =>\n item.name === fieldName ||\n item.name === name ||\n item.cppName === cppName ||\n item.cppName === memberPath ||\n item.cppName === memberRoot\n );\n\n return {\n ...field,\n names,\n name,\n fieldName,\n storageName: field.storageName || fieldName || name,\n cppName: cppName || sourceField?.cppName || null,\n member,\n memberPath,\n memberRoot,\n cppType: field.cppType || sourceField?.cppType || null,\n beType: field.beType || null\n };\n }\n\n static matchesBlackFieldName(field, blackName)\n {\n if (!field || !blackName) return false;\n if (field.name === blackName) return true;\n if (field.fieldName === blackName) return true;\n if (field.member === blackName) return true;\n if (field.memberPath === blackName) return true;\n if (field.memberRoot === blackName) return true;\n if (field.cppName === blackName) return true;\n if (field.nameExpression === blackName) return true;\n\n if (field.names && typeof field.names === \"object\")\n {\n return Object.hasOwn(field.names, blackName);\n }\n\n return false;\n }\n\n static getNameRole(names, role)\n {\n if (!names || typeof names !== \"object\") return null;\n\n for (const [ name, roles ] of Object.entries(names))\n {\n const roleList = Array.isArray(roles) ? roles : String(roles || \"\").split(/\\s+/);\n if (roleList.includes(role)) return name;\n }\n\n return null;\n }\n\n static toJsFieldName(value)\n {\n return String(value || \"\").replace(/^m_/, \"\");\n }\n}\n"],"names":["CjsBlackSchemaRegistry","constructor","schema","shapes","createShapeMap","GetSourceShape","kind","get","Map","isCompactClassMap","addCompactClassMap","collectSchemaShapes","WeakSet","value","seen","has","add","Array","isArray","item","isClassSchema","addShape","families","family","classes","Object","values","black","entries","length","every","className","fields","isCompactFieldMap","isCompactClassFields","specs","spec","isCompactFieldSpec","type","Boolean","blueClass","cppClass","shape","normalizeShape","set","name","normalizeFields","blackFieldSource","compactBlackFields","blackFields","filter","map","normalizeBlackField","byName","field","fieldName","blueName","toJsFieldName","cppName","member","normalized","memberPath","memberRoot","cppType","push","blackName","fieldSpec","compactField","attribute","attributes","compactBlackField","normalizeCompactSpec","enumType","jsType","descriptor","compactTypeDescriptor","storageName","indexKey","hasOwn","index","undefined","indexToken","token","enum","String","compactBlackType","js","signed","compactFloatArrayType","container","beType","extra","wireType","compactWireType","sourceFields","names","getNameRole","nameExpression","sourceField","find","matchesBlackFieldName","role","roles","roleList","split","includes","replace"],"mappings":"AAAA;AACA;AACA;AACA;AACO,MAAMA,sBAAsB,CACnC;AACIC,EAAAA,WAAWA,CAACC,MAAM,GAAG,IAAI,EACzB;IACI,IAAI,CAACC,MAAM,GAAGH,sBAAsB,CAACI,cAAc,CAACF,MAAM,CAAC;AAC/D,EAAA;EAEAG,cAAcA,CAACC,IAAI,EACnB;IACI,OAAO,IAAI,CAACH,MAAM,CAACI,GAAG,CAACD,IAAI,CAAC,IAAI,IAAI;AACxC,EAAA;EAEA,OAAOF,cAAcA,CAACF,MAAM,EAC5B;AACI,IAAA,MAAMC,MAAM,GAAG,IAAIK,GAAG,EAAE;AACxB,IAAA,IAAIR,sBAAsB,CAACS,iBAAiB,CAACP,MAAM,CAAC,EACpD;AACIF,MAAAA,sBAAsB,CAACU,kBAAkB,CAACR,MAAM,EAAEC,MAAM,CAAC;AACzD,MAAA,OAAOA,MAAM;AACjB,IAAA;IAEAH,sBAAsB,CAACW,mBAAmB,CAACT,MAAM,EAAEC,MAAM,EAAE,IAAIS,OAAO,EAAE,CAAC;AACzE,IAAA,OAAOT,MAAM;AACjB,EAAA;AAEA,EAAA,OAAOQ,mBAAmBA,CAACE,KAAK,EAAEV,MAAM,EAAEW,IAAI,EAC9C;AACI,IAAA,IAAI,CAACD,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;AACzC,IAAA,IAAIC,IAAI,CAACC,GAAG,CAACF,KAAK,CAAC,EAAE;AACrBC,IAAAA,IAAI,CAACE,GAAG,CAACH,KAAK,CAAC;AAEf,IAAA,IAAII,KAAK,CAACC,OAAO,CAACL,KAAK,CAAC,EACxB;AACI,MAAA,KAAK,MAAMM,IAAI,IAAIN,KAAK,EACxB;QACIb,sBAAsB,CAACW,mBAAmB,CAACQ,IAAI,EAAEhB,MAAM,EAAEW,IAAI,CAAC;AAClE,MAAA;AACA,MAAA;AACJ,IAAA;AAEA,IAAA,IAAId,sBAAsB,CAACoB,aAAa,CAACP,KAAK,CAAC,EAC/C;AACIb,MAAAA,sBAAsB,CAACqB,QAAQ,CAACR,KAAK,EAAEV,MAAM,CAAC;AAC9C,MAAA;AACJ,IAAA;IAEA,IAAIc,KAAK,CAACC,OAAO,CAACL,KAAK,CAACS,QAAQ,CAAC,EACjC;AACI,MAAA,KAAK,MAAMC,MAAM,IAAIV,KAAK,CAACS,QAAQ,EACnC;QACItB,sBAAsB,CAACW,mBAAmB,CAACY,MAAM,EAAEpB,MAAM,EAAEW,IAAI,CAAC;AACpE,MAAA;AACJ,IAAA;IAEA,IAAIG,KAAK,CAACC,OAAO,CAACL,KAAK,CAACW,OAAO,CAAC,EAChC;AACI,MAAA,KAAK,MAAML,IAAI,IAAIN,KAAK,CAACW,OAAO,EAChC;QACIxB,sBAAsB,CAACW,mBAAmB,CAACQ,IAAI,EAAEhB,MAAM,EAAEW,IAAI,CAAC;AAClE,MAAA;IACJ,CAAC,MACI,IAAId,sBAAsB,CAACS,iBAAiB,CAACI,KAAK,CAACW,OAAO,CAAC,EAChE;MACIxB,sBAAsB,CAACU,kBAAkB,CAACG,KAAK,CAACW,OAAO,EAAErB,MAAM,CAAC;AACpE,IAAA;IAEA,KAAK,MAAMgB,IAAI,IAAIM,MAAM,CAACC,MAAM,CAACb,KAAK,CAAC,EACvC;AACI,MAAA,IAAIM,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,IAAInB,sBAAsB,CAACoB,aAAa,CAACD,IAAI,CAAC,EAClF;AACInB,QAAAA,sBAAsB,CAACqB,QAAQ,CAACF,IAAI,EAAEhB,MAAM,CAAC;AACjD,MAAA;AACJ,IAAA;AACJ,EAAA;EAEA,OAAOM,iBAAiBA,CAACI,KAAK,EAC9B;AACI,IAAA,IAAI,CAACA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAII,KAAK,CAACC,OAAO,CAACL,KAAK,CAAC,EAAE,OAAO,KAAK;IAC7E,IAAIb,sBAAsB,CAACoB,aAAa,CAACP,KAAK,CAAC,EAAE,OAAO,KAAK;AAC7D,IAAA,IAAIA,KAAK,CAACc,KAAK,IAAId,KAAK,CAACS,QAAQ,IAAIL,KAAK,CAACC,OAAO,CAACL,KAAK,CAACW,OAAO,CAAC,EAAE,OAAO,KAAK;AAE/E,IAAA,MAAMI,OAAO,GAAGH,MAAM,CAACG,OAAO,CAACf,KAAK,CAAC;AACrC,IAAA,IAAI,CAACe,OAAO,CAACC,MAAM,EAAE,OAAO,KAAK;AAEjC,IAAA,OAAOD,OAAO,CAACE,KAAK,CAAC,CAAC,CAAEC,SAAS,EAAEC,MAAM,CAAE,KACvC,OAAOD,SAAS,KAAK,QAAQ,IAC7BA,SAAS,CAACF,MAAM,GAAG,CAAC,IACpB7B,sBAAsB,CAACiC,iBAAiB,CAACD,MAAM,CAAC,IAChDhC,sBAAsB,CAACkC,oBAAoB,CAACF,MAAM,CACtD,CAAC;AACL,EAAA;EAEA,OAAOE,oBAAoBA,CAACF,MAAM,EAClC;IACI,MAAMG,KAAK,GAAGV,MAAM,CAACC,MAAM,CAACM,MAAM,IAAI,EAAE,CAAC;AACzC,IAAA,OAAOG,KAAK,CAACL,KAAK,CAACM,IAAI,IAAIpC,sBAAsB,CAACqC,kBAAkB,CAACD,IAAI,CAAC,CAAC;AAC/E,EAAA;EAEA,OAAOC,kBAAkBA,CAACD,IAAI,EAC9B;AACI,IAAA,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE,OAAO,IAAI;AACzC,IAAA,IAAI,CAACA,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,IAAInB,KAAK,CAACC,OAAO,CAACkB,IAAI,CAAC,EAAE,OAAO,KAAK;AAC1E,IAAA,OAAO,OAAOA,IAAI,CAACE,IAAI,KAAK,QAAQ,IAAI,OAAOF,IAAI,CAAC9B,IAAI,KAAK,QAAQ;AACzE,EAAA;AAEA,EAAA,OAAOI,kBAAkBA,CAACc,OAAO,EAAErB,MAAM,EACzC;AACI,IAAA,KAAK,MAAM,CAAE4B,SAAS,EAAEC,MAAM,CAAE,IAAIP,MAAM,CAACG,OAAO,CAACJ,OAAO,IAAI,EAAE,CAAC,EACjE;MACIxB,sBAAsB,CAACqB,QAAQ,CAAC;QAAEU,SAAS;AAAEC,QAAAA;OAAQ,EAAE7B,MAAM,CAAC;AAClE,IAAA;AACJ,EAAA;EAEA,OAAOiB,aAAaA,CAACP,KAAK,EAC1B;IACI,IAAI,CAACA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE,OAAO,KAAK;IACrD,IAAII,KAAK,CAACC,OAAO,CAACL,KAAK,CAAC,EAAE,OAAO,KAAK;AACtC,IAAA,OAAO0B,OAAO,CACV1B,KAAK,CAACc,KAAK,EAAEK,MAAM,IAClBnB,KAAK,CAACc,KAAK,KAAKd,KAAK,CAACc,KAAK,CAACI,SAAS,IAAIlB,KAAK,CAACkB,SAAS,IAAIlB,KAAK,CAAC2B,SAAS,IAAI3B,KAAK,CAAC4B,QAAQ,CAAE,IAC/F5B,KAAK,CAACkB,SAAS,IAAI/B,sBAAsB,CAACiC,iBAAiB,CAACpB,KAAK,CAACmB,MAAM,CAAE,IAC1EnB,KAAK,CAACkB,SAAS,IAAId,KAAK,CAACC,OAAO,CAACL,KAAK,CAACmB,MAAM,CAAE,IAC/CnB,KAAK,CAAC2B,SAAS,IAAI3B,KAAK,CAACc,KAC9B,CAAC;AACL,EAAA;AAEA,EAAA,OAAON,QAAQA,CAACnB,MAAM,EAAEC,MAAM,EAC9B;AACI,IAAA,MAAMuC,KAAK,GAAG1C,sBAAsB,CAAC2C,cAAc,CAACzC,MAAM,CAAC;AAC3D,IAAA,IAAI,CAACwC,KAAK,EAAEX,SAAS,EAAE;IAEvB5B,MAAM,CAACyC,GAAG,CAACF,KAAK,CAACX,SAAS,EAAEW,KAAK,CAAC;AAClC,IAAA,IAAIxC,MAAM,CAACsC,SAAS,EAAErC,MAAM,CAACyC,GAAG,CAAC1C,MAAM,CAACsC,SAAS,EAAEE,KAAK,CAAC;AACzD,IAAA,IAAIxC,MAAM,CAACuC,QAAQ,EAAEtC,MAAM,CAACyC,GAAG,CAAC1C,MAAM,CAACuC,QAAQ,EAAEC,KAAK,CAAC;AACvD,IAAA,IAAIxC,MAAM,CAAC2C,IAAI,EAAE1C,MAAM,CAACyC,GAAG,CAAC1C,MAAM,CAAC2C,IAAI,EAAEH,KAAK,CAAC;AACnD,EAAA;EAEA,OAAOC,cAAcA,CAACzC,MAAM,EAC5B;AACI,IAAA,MAAMyB,KAAK,GAAGzB,MAAM,CAACyB,KAAK,IAAI,EAAE;IAChC,MAAMI,SAAS,GAAGJ,KAAK,CAACI,SAAS,IAAI7B,MAAM,CAAC6B,SAAS,IAAI7B,MAAM,CAACsC,SAAS,IAAItC,MAAM,CAACuC,QAAQ,IAAIvC,MAAM,CAAC2C,IAAI,IAAI,IAAI;AACnH,IAAA,IAAI,CAACd,SAAS,EAAE,OAAO,IAAI;AAE3B,IAAA,MAAMC,MAAM,GAAGhC,sBAAsB,CAAC8C,eAAe,CAAC5C,MAAM,CAAC;AAC7D,IAAA,MAAM6C,gBAAgB,GAAG/C,sBAAsB,CAACiC,iBAAiB,CAAC/B,MAAM,CAAC8B,MAAM,CAAC,GAC1EhC,sBAAsB,CAACgD,kBAAkB,CAAC9C,MAAM,CAAC8B,MAAM,CAAC,GACvDL,KAAK,CAACK,MAAM,IAAI9B,MAAM,CAAC+C,WAAW,IAAI/C,MAAM,CAAC8B,MAAM,IAAI,EAAG;AACjE,IAAA,MAAMiB,WAAW,GAAGF,gBAAgB,CAC/BG,MAAM,CAAC/B,IAAI,IAAIA,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,CAAC,CAChDgC,GAAG,CAAChC,IAAI,IAAInB,sBAAsB,CAACoD,mBAAmB,CAACjC,IAAI,EAAEa,MAAM,CAAC,CAAC;IAE1E,OAAO;AACH,MAAA,GAAG9B,MAAM;MACT6B,SAAS;AACTR,MAAAA,MAAM,EAAErB,MAAM,CAACqB,MAAM,IAAI,IAAI;MAC7BS,MAAM;AACNL,MAAAA,KAAK,EAAE;AACH,QAAA,GAAGA,KAAK;QACRI,SAAS;AACTC,QAAAA,MAAM,EAAEiB;AACZ;KACH;AACL,EAAA;EAEA,OAAOH,eAAeA,CAAC5C,MAAM,EAC7B;IACI,MAAM8B,MAAM,GAAG,EAAE;AACjB,IAAA,MAAMqB,MAAM,GAAG,IAAI7C,GAAG,EAAE;IACxB,MAAMQ,GAAG,GAAIsC,KAAK,IAClB;AACI,MAAA,IAAI,CAACA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MACzC,MAAMT,IAAI,GAAGS,KAAK,CAACT,IAAI,IAAIS,KAAK,CAACC,SAAS,IAAID,KAAK,CAACE,QAAQ,IAAIxD,sBAAsB,CAACyD,aAAa,CAACH,KAAK,CAACI,OAAO,IAAIJ,KAAK,CAACK,MAAM,IAAI,EAAE,CAAC;MACzI,IAAI,CAACd,IAAI,IAAIQ,MAAM,CAACtC,GAAG,CAAC8B,IAAI,CAAC,EAAE;AAE/B,MAAA,MAAMe,UAAU,GAAG;AACf,QAAA,GAAGN,KAAK;QACRT,IAAI;AACJa,QAAAA,OAAO,EAAEJ,KAAK,CAACI,OAAO,IAAIJ,KAAK,CAACO,UAAU,IAAIP,KAAK,CAACQ,UAAU,IAAIR,KAAK,CAACK,MAAM,IAAI,IAAI;AACtFI,QAAAA,OAAO,EAAET,KAAK,CAACS,OAAO,IAAI;OAC7B;AACDV,MAAAA,MAAM,CAACT,GAAG,CAACC,IAAI,EAAEe,UAAU,CAAC;AAC5B5B,MAAAA,MAAM,CAACgC,IAAI,CAACJ,UAAU,CAAC;IAC3B,CAAC;IAED,IAAI5D,sBAAsB,CAACiC,iBAAiB,CAAC/B,MAAM,CAAC8B,MAAM,CAAC,EAC3D;AACI,MAAA,KAAK,MAAM,CAAEiC,SAAS,EAAEC,SAAS,CAAE,IAAIzC,MAAM,CAACG,OAAO,CAAC1B,MAAM,CAAC8B,MAAM,CAAC,EACpE;QACIhB,GAAG,CAAChB,sBAAsB,CAACmE,YAAY,CAACF,SAAS,EAAEC,SAAS,CAAC,CAAC;AAClE,MAAA;AACJ,IAAA,CAAC,MAED;MACI,KAAK,MAAMZ,KAAK,IAAIpD,MAAM,CAAC8B,MAAM,IAAI,EAAE,EACvC;QACIhB,GAAG,CAACsC,KAAK,CAAC;AACd,MAAA;AACJ,IAAA;IAEA,KAAK,MAAMc,SAAS,IAAIlE,MAAM,CAACmE,UAAU,IAAI,EAAE,EAC/C;AACI,MAAA,IAAI,CAACD,SAAS,EAAEzC,KAAK,EAAE;MACvB,MAAMA,KAAK,GAAG3B,sBAAsB,CAACoD,mBAAmB,CAACgB,SAAS,CAACzC,KAAK,EAAEK,MAAM,CAAC;AACjFhB,MAAAA,GAAG,CAAC;QACA6B,IAAI,EAAElB,KAAK,CAAC4B,SAAS,IAAIa,SAAS,CAACZ,QAAQ,IAAI7B,KAAK,CAACkB,IAAI;QACzDa,OAAO,EAAE/B,KAAK,CAAC+B,OAAO;AACtBK,QAAAA,OAAO,EAAEpC,KAAK,CAACoC,OAAO,IAAIK,SAAS,CAACL,OAAO;AAC3CpC,QAAAA;AACJ,OAAC,CAAC;AACN,IAAA;AAEA,IAAA,OAAOK,MAAM;AACjB,EAAA;EAEA,OAAOC,iBAAiBA,CAACpB,KAAK,EAC9B;AACI,IAAA,OAAO,CAAC,CAACA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,CAACI,KAAK,CAACC,OAAO,CAACL,KAAK,CAAC;AACxE,EAAA;EAEA,OAAOmC,kBAAkBA,CAAChB,MAAM,EAChC;IACI,OAAOP,MAAM,CAACG,OAAO,CAACI,MAAM,IAAI,EAAE,CAAC,CAACmB,GAAG,CAAC,CAAC,CAAEc,SAAS,EAAEC,SAAS,CAAE,KAC7DlE,sBAAsB,CAACsE,iBAAiB,CAACL,SAAS,EAAEC,SAAS,CAAC,CAAC;AACvE,EAAA;AAEA,EAAA,OAAOC,YAAYA,CAACF,SAAS,EAAEC,SAAS,EACxC;IACI,MAAM9B,IAAI,GAAGpC,sBAAsB,CAACuE,oBAAoB,CAACN,SAAS,EAAEC,SAAS,CAAC;IAC9E,OAAO;MACHrB,IAAI,EAAET,IAAI,CAACmB,SAAS;MACpBA,SAAS,EAAEnB,IAAI,CAACmB,SAAS;MACzBiB,QAAQ,EAAEpC,IAAI,CAACoC,QAAQ;MACvBC,MAAM,EAAErC,IAAI,CAACqC,MAAM;MACnB9C,KAAK,EAAES,IAAI,CAACT;KACf;AACL,EAAA;AAEA,EAAA,OAAO2C,iBAAiBA,CAACL,SAAS,EAAEC,SAAS,EAC7C;IACI,OAAOlE,sBAAsB,CAACuE,oBAAoB,CAACN,SAAS,EAAEC,SAAS,CAAC,CAACvC,KAAK;AAClF,EAAA;AAEA,EAAA,OAAO4C,oBAAoBA,CAACN,SAAS,EAAEC,SAAS,EAChD;AACI,IAAA,MACI9B,IAAI,GAAG,OAAO8B,SAAS,KAAK,QAAQ,GAAG;AAAE5B,QAAAA,IAAI,EAAE4B;AAAU,OAAC,GAAIA,SAAS,IAAI,EAAG;MAC9E5B,IAAI,GAAGF,IAAI,CAACE,IAAI,IAAIF,IAAI,CAAC9B,IAAI,IAAI,SAAS;MAC1CiD,SAAS,GAAGnB,IAAI,CAACkB,KAAK,IAAIlB,IAAI,CAACmB,SAAS,IAAIU,SAAS;MACrDS,UAAU,GAAG1E,sBAAsB,CAAC2E,qBAAqB,CAACrC,IAAI,EAAEF,IAAI,CAAC;AACrET,MAAAA,KAAK,GAAG;AACJkB,QAAAA,IAAI,EAAEoB,SAAS;QACfV,SAAS;AACTqB,QAAAA,WAAW,EAAErB,SAAS;AACtBI,QAAAA,MAAM,EAAEM,SAAS;AACjBJ,QAAAA,UAAU,EAAEN,SAAS;AACrBO,QAAAA,UAAU,EAAEP,SAAS;AACrBsB,QAAAA,QAAQ,EAAEpD,MAAM,CAACqD,MAAM,CAAC1C,IAAI,EAAE,OAAO,CAAC,GAAGA,IAAI,CAAC2C,KAAK,GAAGC,SAAS;AAC/DC,QAAAA,UAAU,EAAE7C,IAAI,CAAC8C,KAAK,IAAI,IAAI;AAC9BV,QAAAA,QAAQ,EAAEpC,IAAI,CAAC+C,IAAI,IAAI,IAAI;QAC3B,GAAGT,UAAU,CAAC/C,KAAK;QACnB8C,MAAM,EAAEC,UAAU,CAACD;OACtB;IAEL,OAAO;MACHlB,SAAS;AACTiB,MAAAA,QAAQ,EAAEpC,IAAI,CAAC+C,IAAI,IAAI,IAAI;MAC3BV,MAAM,EAAEC,UAAU,CAACD,MAAM;AACzB9C,MAAAA;KACH;AACL,EAAA;AAEA,EAAA,OAAOgD,qBAAqBA,CAACrC,IAAI,EAAEF,IAAI,EACvC;AACI,IAAA,MAAMwB,UAAU,GAAGwB,MAAM,CAAC9C,IAAI,IAAI,SAAS,CAAC;AAC5C,IAAA,QAAQsB,UAAU;AAEd,MAAA,KAAK,SAAS;AACd,MAAA,KAAK,MAAM;AACP,QAAA,OAAO5D,sBAAsB,CAACqF,gBAAgB,CAAC,MAAM,EAAE;AAAE/E,UAAAA,IAAI,EAAE;AAAU,SAAC,CAAC;AAC/E,MAAA,KAAK,QAAQ;AACT,QAAA,OAAON,sBAAsB,CAACqF,gBAAgB,CAAC,WAAW,EAAE;AAAE/E,UAAAA,IAAI,EAAE;AAAS,SAAC,CAAC;AACnF,MAAA,KAAK,SAAS;AACV,QAAA,OAAON,sBAAsB,CAACqF,gBAAgB,CAAC,YAAY,EAAE;AAAE/E,UAAAA,IAAI,EAAE;AAAS,SAAC,CAAC;AACpF,MAAA,KAAK,MAAM;AACP,QAAA,OAAON,sBAAsB,CAACqF,gBAAgB,CAAC,WAAW,EAAE;AAAE/E,UAAAA,IAAI,EAAE;AAAO,SAAC,CAAC;AACjF,MAAA,KAAK,YAAY;AACb,QAAA,OAAON,sBAAsB,CAACqF,gBAAgB,CAAC,WAAW,EAAE;AAAE/E,UAAAA,IAAI,EAAE,YAAY;AAAEgF,UAAAA,EAAE,EAAE;AAAS,SAAC,CAAC;AACrG,MAAA,KAAK,MAAM;AACP,QAAA,OAAOtF,sBAAsB,CAACqF,gBAAgB,CAAC,MAAM,EAAE;AAAE/E,UAAAA,IAAI,EAAE;AAAO,SAAC,EAAE;AAAEiF,UAAAA,MAAM,EAAE;AAAK,SAAC,CAAC;AAC9F,MAAA,KAAK,OAAO;AACR,QAAA,OAAOvF,sBAAsB,CAACqF,gBAAgB,CAAC,OAAO,EAAE;AAAE/E,UAAAA,IAAI,EAAE;AAAU,SAAC,CAAC;AAChF,MAAA,KAAK,QAAQ;AACT,QAAA,OAAON,sBAAsB,CAACqF,gBAAgB,CAAC,QAAQ,EAAE;AAAE/E,UAAAA,IAAI,EAAE;AAAU,SAAC,CAAC;AACjF,MAAA,KAAK,KAAK;AACN,QAAA,OAAON,sBAAsB,CAACqF,gBAAgB,CAAC,MAAM,EAAE;AAAE/E,UAAAA,IAAI,EAAE;AAAQ,SAAC,EAAE;AAAEiF,UAAAA,MAAM,EAAE;AAAK,SAAC,CAAC;AAC/F,MAAA,KAAK,MAAM;AACP,QAAA,OAAOvF,sBAAsB,CAACqF,gBAAgB,CAAC,OAAO,EAAE;AAAE/E,UAAAA,IAAI,EAAE;AAAS,SAAC,EAAE;AAAEiF,UAAAA,MAAM,EAAE;AAAM,SAAC,CAAC;AAClG,MAAA,KAAK,OAAO;AACR,QAAA,OAAOvF,sBAAsB,CAACqF,gBAAgB,CAAC,OAAO,EAAE;AAAE/E,UAAAA,IAAI,EAAE;AAAQ,SAAC,EAAE;AAAEiF,UAAAA,MAAM,EAAE;AAAK,SAAC,CAAC;AAChG,MAAA,KAAK,QAAQ;AACT,QAAA,OAAOvF,sBAAsB,CAACqF,gBAAgB,CAAC,QAAQ,EAAE;AAAE/E,UAAAA,IAAI,EAAE;AAAS,SAAC,EAAE;AAAEiF,UAAAA,MAAM,EAAE;AAAM,SAAC,CAAC;AACnG,MAAA,KAAK,MAAM;AACP,QAAA,OAAOvF,sBAAsB,CAACqF,gBAAgB,CAAC,MAAM,EAAE;AAAE/E,UAAAA,IAAI,EAAE;AAAO,SAAC,EAAE;AAAEiF,UAAAA,MAAM,EAAE;AAAK,SAAC,CAAC;AAC9F,MAAA,KAAK,OAAO;AACR,QAAA,OAAOvF,sBAAsB,CAACqF,gBAAgB,CAAC,MAAM,EAAE;AAAE/E,UAAAA,IAAI,EAAE;AAAQ,SAAC,EAAE;AAAEiF,UAAAA,MAAM,EAAE;AAAM,SAAC,CAAC;AAChG,MAAA,KAAK,OAAO;AACR,QAAA,OAAOvF,sBAAsB,CAACqF,gBAAgB,CAAC,OAAO,EAAE;AAAE/E,UAAAA,IAAI,EAAE;AAAQ,SAAC,EAAE;AAAEiF,UAAAA,MAAM,EAAE;AAAK,SAAC,CAAC;AAChG,MAAA,KAAK,QAAQ;AACT,QAAA,OAAOvF,sBAAsB,CAACqF,gBAAgB,CAAC,OAAO,EAAE;AAAE/E,UAAAA,IAAI,EAAE;AAAS,SAAC,EAAE;AAAEiF,UAAAA,MAAM,EAAE;AAAM,SAAC,CAAC;AAClG,MAAA,KAAK,SAAS;AACV,QAAA,OAAOvF,sBAAsB,CAACwF,qBAAqB,CAAC,SAAS,EAAE,CAAC,CAAC;AACrE,MAAA,KAAK,SAAS;AACV,QAAA,OAAOxF,sBAAsB,CAACwF,qBAAqB,CAAC,SAAS,EAAE,CAAC,CAAC;AACrE,MAAA,KAAK,SAAS;AACV,QAAA,OAAOxF,sBAAsB,CAACwF,qBAAqB,CAAC,SAAS,EAAE,CAAC,CAAC;AACrE,MAAA,KAAK,OAAO;AACR,QAAA,OAAOxF,sBAAsB,CAACwF,qBAAqB,CAAC,OAAO,EAAE,CAAC,CAAC;AACnE,MAAA,KAAK,YAAY;AACb,QAAA,OAAOxF,sBAAsB,CAACwF,qBAAqB,CAAC,YAAY,EAAE,CAAC,CAAC;AACxE,MAAA,KAAK,SAAS;AACV,QAAA,OAAOxF,sBAAsB,CAACwF,qBAAqB,CAAC,SAAS,EAAE,CAAC,CAAC;AACrE,MAAA,KAAK,SAAS;AACV,QAAA,OAAOxF,sBAAsB,CAACwF,qBAAqB,CAAC,SAAS,EAAE,EAAE,CAAC;AACtE,MAAA,KAAK,YAAY;QACb,OAAOxF,sBAAsB,CAACwF,qBAAqB,CAAC,OAAO,EAAEpD,IAAI,CAACP,MAAM,IAAI,CAAC,CAAC;AAClF,MAAA,KAAK,OAAO;AACR,QAAA,OAAO7B,sBAAsB,CAACqF,gBAAgB,CAAC,OAAO,EAAE;AAAE/E,UAAAA,IAAI,EAAE;AAAQ,SAAC,EAAE;AAAEmF,UAAAA,SAAS,EAAE;AAAO,SAAC,CAAC;AACrG,MAAA,KAAK,MAAM;AACP,QAAA,OAAOzF,sBAAsB,CAACqF,gBAAgB,CAAC,OAAO,EAAE;AAAE/E,UAAAA,IAAI,EAAE;AAAM,SAAC,EAAE;AAAEmF,UAAAA,SAAS,EAAE;AAAO,SAAC,CAAC;AACnG,MAAA,KAAK,QAAQ;AACT,QAAA,OAAOzF,sBAAsB,CAACqF,gBAAgB,CAAC,UAAU,EAAE;AAAE/E,UAAAA,IAAI,EAAE;AAAY,SAAC,CAAC;AACrF,MAAA,KAAK,WAAW;AACZ,QAAA,OAAON,sBAAsB,CAACqF,gBAAgB,CAAC,OAAO,EAAE;AAAE/E,UAAAA,IAAI,EAAE;AAAY,SAAC,CAAC;AAClF,MAAA,KAAK,YAAY;AACb,QAAA,OAAON,sBAAsB,CAACqF,gBAAgB,CAAC,OAAO,EAAE;AAAE/E,UAAAA,IAAI,EAAE;AAAQ,SAAC,EAAE;AACvEmF,UAAAA,SAAS,EAAE,MAAM;AACjB1B,UAAAA,OAAO,EAAE3B,IAAI,CAAC2B,OAAO,IAAI;AAC7B,SAAC,CAAC;AACN,MAAA,KAAK,aAAa;AACd,QAAA,OAAO/D,sBAAsB,CAACqF,gBAAgB,CAAC,aAAa,EAAE;AAAE/E,UAAAA,IAAI,EAAE;AAAa,SAAC,CAAC;AACzF,MAAA;AACI,QAAA,OAAON,sBAAsB,CAACqF,gBAAgB,CAAC,IAAI,EAAE;AAAE/E,UAAAA,IAAI,EAAEsD;AAAW,SAAC,CAAC;AAClF;AACJ,EAAA;EAEA,OAAOyB,gBAAgBA,CAACK,MAAM,EAAEjB,MAAM,EAAEkB,KAAK,GAAG,EAAE,EAClD;IACI,OAAO;MACHlB,MAAM;AACN9C,MAAAA,KAAK,EAAE;QACH+D,MAAM;QACNE,QAAQ,EAAE5F,sBAAsB,CAAC6F,eAAe,CAACH,MAAM,EAAEC,KAAK,CAACF,SAAS,CAAC;QACzE,GAAGE;AACP;KACH;AACL,EAAA;AAEA,EAAA,OAAOH,qBAAqBA,CAAClF,IAAI,EAAEuB,MAAM,EACzC;AACI,IAAA,OAAO7B,sBAAsB,CAACqF,gBAAgB,CAAC,YAAY,EAAE;MAAE/E,IAAI;AAAEuB,MAAAA;AAAO,KAAC,EAAE;AAAEA,MAAAA;AAAO,KAAC,CAAC;AAC9F,EAAA;AAEA,EAAA,OAAOgE,eAAeA,CAACH,MAAM,EAAED,SAAS,GAAG,IAAI,EAC/C;AACI,IAAA,QAAQC,MAAM;AAEV,MAAA,KAAK,MAAM;AACP,QAAA,OAAO,MAAM;AACjB,MAAA,KAAK,WAAW;AAChB,MAAA,KAAK,YAAY;AACb,QAAA,OAAO,WAAW;AACtB,MAAA,KAAK,OAAO;AACR,QAAA,OAAO,SAAS;AACpB,MAAA,KAAK,QAAQ;AACT,QAAA,OAAO,SAAS;AACpB,MAAA,KAAK,MAAM;AACP,QAAA,OAAO,OAAO;AAClB,MAAA,KAAK,OAAO;AACR,QAAA,OAAO,QAAQ;AACnB,MAAA,KAAK,OAAO;AACR,QAAA,OAAO,OAAO;AAClB,MAAA,KAAK,QAAQ;AACT,QAAA,OAAO,QAAQ;AACnB,MAAA,KAAK,MAAM;AACP,QAAA,OAAO,OAAO;AAClB,MAAA,KAAK,OAAO;AACR,QAAA,OAAO,QAAQ;AACnB,MAAA,KAAK,YAAY;AACb,QAAA,OAAO,YAAY;AACvB,MAAA,KAAK,aAAa;AACd,QAAA,OAAO,aAAa;AACxB,MAAA,KAAK,UAAU;AACX,QAAA,OAAO,WAAW;AACtB,MAAA,KAAK,OAAO;AACR,QAAA,OAAOD,SAAS,GAAG,WAAW,GAAG,cAAc;AACnD,MAAA;AACI,QAAA,OAAO,IAAI;AACnB;AACJ,EAAA;AAEA,EAAA,OAAOrC,mBAAmBA,CAACE,KAAK,EAAEwC,YAAY,GAAG,EAAE,EACnD;AACI,IAAA,MAAMC,KAAK,GAAGzC,KAAK,CAACyC,KAAK,IAAI,IAAI;AACjC,IAAA,MAAMlD,IAAI,GAAGS,KAAK,CAACT,IAAI,IAAI7C,sBAAsB,CAACgG,WAAW,CAACD,KAAK,EAAE,MAAM,CAAC,IAAIzC,KAAK,CAAC2C,cAAc,IAAI,IAAI;AAC5G,IAAA,MAAM1C,SAAS,GAAGD,KAAK,CAACC,SAAS,IAAIvD,sBAAsB,CAACgG,WAAW,CAACD,KAAK,EAAE,WAAW,CAAC,IAAIlD,IAAI,IAAI,IAAI;AAC3G,IAAA,MAAMa,OAAO,GAAGJ,KAAK,CAACI,OAAO,IACzB1D,sBAAsB,CAACgG,WAAW,CAACD,KAAK,EAAE,SAAS,CAAC,IACpD/F,sBAAsB,CAACgG,WAAW,CAACD,KAAK,EAAE,YAAY,CAAC,IACvD/F,sBAAsB,CAACgG,WAAW,CAACD,KAAK,EAAE,YAAY,CAAC,IACvD,IAAI;AACR,IAAA,MAAMpC,MAAM,GAAGL,KAAK,CAACK,MAAM,IAAI3D,sBAAsB,CAACgG,WAAW,CAACD,KAAK,EAAE,QAAQ,CAAC,IAAIrC,OAAO,IAAIb,IAAI;AACrG,IAAA,MAAMgB,UAAU,GAAGP,KAAK,CAACO,UAAU,IAAI7D,sBAAsB,CAACgG,WAAW,CAACD,KAAK,EAAE,YAAY,CAAC,IAAIrC,OAAO;AACzG,IAAA,MAAMI,UAAU,GAAGR,KAAK,CAACQ,UAAU,IAAI9D,sBAAsB,CAACgG,WAAW,CAACD,KAAK,EAAE,YAAY,CAAC,IAAIlC,UAAU;AAC5G,IAAA,MAAMqC,WAAW,GAAGJ,YAAY,CAACK,IAAI,CAAChF,IAAI,IACtCA,IAAI,CAAC0B,IAAI,KAAKU,SAAS,IACvBpC,IAAI,CAAC0B,IAAI,KAAKA,IAAI,IAClB1B,IAAI,CAACuC,OAAO,KAAKA,OAAO,IACxBvC,IAAI,CAACuC,OAAO,KAAKG,UAAU,IAC3B1C,IAAI,CAACuC,OAAO,KAAKI,UACrB,CAAC;IAED,OAAO;AACH,MAAA,GAAGR,KAAK;MACRyC,KAAK;MACLlD,IAAI;MACJU,SAAS;AACTqB,MAAAA,WAAW,EAAEtB,KAAK,CAACsB,WAAW,IAAIrB,SAAS,IAAIV,IAAI;AACnDa,MAAAA,OAAO,EAAEA,OAAO,IAAIwC,WAAW,EAAExC,OAAO,IAAI,IAAI;MAChDC,MAAM;MACNE,UAAU;MACVC,UAAU;MACVC,OAAO,EAAET,KAAK,CAACS,OAAO,IAAImC,WAAW,EAAEnC,OAAO,IAAI,IAAI;AACtD2B,MAAAA,MAAM,EAAEpC,KAAK,CAACoC,MAAM,IAAI;KAC3B;AACL,EAAA;AAEA,EAAA,OAAOU,qBAAqBA,CAAC9C,KAAK,EAAEW,SAAS,EAC7C;AACI,IAAA,IAAI,CAACX,KAAK,IAAI,CAACW,SAAS,EAAE,OAAO,KAAK;AACtC,IAAA,IAAIX,KAAK,CAACT,IAAI,KAAKoB,SAAS,EAAE,OAAO,IAAI;AACzC,IAAA,IAAIX,KAAK,CAACC,SAAS,KAAKU,SAAS,EAAE,OAAO,IAAI;AAC9C,IAAA,IAAIX,KAAK,CAACK,MAAM,KAAKM,SAAS,EAAE,OAAO,IAAI;AAC3C,IAAA,IAAIX,KAAK,CAACO,UAAU,KAAKI,SAAS,EAAE,OAAO,IAAI;AAC/C,IAAA,IAAIX,KAAK,CAACQ,UAAU,KAAKG,SAAS,EAAE,OAAO,IAAI;AAC/C,IAAA,IAAIX,KAAK,CAACI,OAAO,KAAKO,SAAS,EAAE,OAAO,IAAI;AAC5C,IAAA,IAAIX,KAAK,CAAC2C,cAAc,KAAKhC,SAAS,EAAE,OAAO,IAAI;IAEnD,IAAIX,KAAK,CAACyC,KAAK,IAAI,OAAOzC,KAAK,CAACyC,KAAK,KAAK,QAAQ,EAClD;MACI,OAAOtE,MAAM,CAACqD,MAAM,CAACxB,KAAK,CAACyC,KAAK,EAAE9B,SAAS,CAAC;AAChD,IAAA;AAEA,IAAA,OAAO,KAAK;AAChB,EAAA;AAEA,EAAA,OAAO+B,WAAWA,CAACD,KAAK,EAAEM,IAAI,EAC9B;IACI,IAAI,CAACN,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE,OAAO,IAAI;AAEpD,IAAA,KAAK,MAAM,CAAElD,IAAI,EAAEyD,KAAK,CAAE,IAAI7E,MAAM,CAACG,OAAO,CAACmE,KAAK,CAAC,EACnD;MACI,MAAMQ,QAAQ,GAAGtF,KAAK,CAACC,OAAO,CAACoF,KAAK,CAAC,GAAGA,KAAK,GAAGlB,MAAM,CAACkB,KAAK,IAAI,EAAE,CAAC,CAACE,KAAK,CAAC,KAAK,CAAC;MAChF,IAAID,QAAQ,CAACE,QAAQ,CAACJ,IAAI,CAAC,EAAE,OAAOxD,IAAI;AAC5C,IAAA;AAEA,IAAA,OAAO,IAAI;AACf,EAAA;EAEA,OAAOY,aAAaA,CAAC5C,KAAK,EAC1B;AACI,IAAA,OAAOuE,MAAM,CAACvE,KAAK,IAAI,EAAE,CAAC,CAAC6F,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AACjD,EAAA;AACJ;;;;"}
1
+ {"version":3,"file":"CjsBlackSchemaRegistry.js","sources":["../../../../../src/formats/black/core/CjsBlackSchemaRegistry.js"],"sourcesContent":["/**\n * Registry that normalizes caller-supplied schemas into per-class source\n * shapes the Black reader uses to resolve persisted fields.\n */\nexport class CjsBlackSchemaRegistry\n{\n /** Creates a CjsBlackSchemaRegistry with caller-provided initial state. */\n constructor(schema = null)\n {\n this.shapes = CjsBlackSchemaRegistry.createShapeMap(schema);\n }\n\n /** Returns source shape from the current Black object-graph reader. */\n GetSourceShape(kind)\n {\n return this.shapes.get(kind) || null;\n }\n\n /** Creates shape map for the current Black object-graph reader. */\n static createShapeMap(schema)\n {\n const shapes = new Map();\n if (CjsBlackSchemaRegistry.isCompactClassMap(schema))\n {\n CjsBlackSchemaRegistry.addCompactClassMap(schema, shapes);\n return shapes;\n }\n\n CjsBlackSchemaRegistry.collectSchemaShapes(schema, shapes, new WeakSet());\n return shapes;\n }\n\n /** Collects schema shapes required by the current Black object-graph reader. */\n static collectSchemaShapes(value, shapes, seen)\n {\n if (!value || typeof value !== \"object\") return;\n if (seen.has(value)) return;\n seen.add(value);\n\n if (Array.isArray(value))\n {\n for (const item of value)\n {\n CjsBlackSchemaRegistry.collectSchemaShapes(item, shapes, seen);\n }\n return;\n }\n\n if (CjsBlackSchemaRegistry.isClassSchema(value))\n {\n CjsBlackSchemaRegistry.addShape(value, shapes);\n return;\n }\n\n if (Array.isArray(value.families))\n {\n for (const family of value.families)\n {\n CjsBlackSchemaRegistry.collectSchemaShapes(family, shapes, seen);\n }\n }\n\n if (Array.isArray(value.classes))\n {\n for (const item of value.classes)\n {\n CjsBlackSchemaRegistry.collectSchemaShapes(item, shapes, seen);\n }\n }\n else if (CjsBlackSchemaRegistry.isCompactClassMap(value.classes))\n {\n CjsBlackSchemaRegistry.addCompactClassMap(value.classes, shapes);\n }\n\n for (const item of Object.values(value))\n {\n if (item && typeof item === \"object\" && CjsBlackSchemaRegistry.isClassSchema(item))\n {\n CjsBlackSchemaRegistry.addShape(item, shapes);\n }\n }\n }\n\n /**\n * Reports whether the current Black object-graph reader satisfies compact\n * class map.\n */\n static isCompactClassMap(value)\n {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return false;\n if (CjsBlackSchemaRegistry.isClassSchema(value)) return false;\n if (value.black || value.families || Array.isArray(value.classes)) return false;\n\n const entries = Object.entries(value);\n if (!entries.length) return false;\n\n return entries.every(([ className, fields ]) =>\n typeof className === \"string\" &&\n className.length > 0 &&\n CjsBlackSchemaRegistry.isCompactFieldMap(fields) &&\n CjsBlackSchemaRegistry.isCompactClassFields(fields)\n );\n }\n\n /**\n * Reports whether the current Black object-graph reader satisfies compact\n * class fields.\n */\n static isCompactClassFields(fields)\n {\n const specs = Object.values(fields || {});\n return specs.every(spec => CjsBlackSchemaRegistry.isCompactFieldSpec(spec));\n }\n\n /**\n * Reports whether the current Black object-graph reader satisfies compact\n * field spec.\n */\n static isCompactFieldSpec(spec)\n {\n if (typeof spec === \"string\") return true;\n if (!spec || typeof spec !== \"object\" || Array.isArray(spec)) return false;\n return typeof spec.type === \"string\" || typeof spec.kind === \"string\";\n }\n\n /** Adds compact class map to the current Black object-graph reader. */\n static addCompactClassMap(classes, shapes)\n {\n for (const [ className, fields ] of Object.entries(classes || {}))\n {\n CjsBlackSchemaRegistry.addShape({ className, fields }, shapes);\n }\n }\n\n /**\n * Reports whether the current Black object-graph reader satisfies class\n * schema.\n */\n static isClassSchema(value)\n {\n if (!value || typeof value !== \"object\") return false;\n if (Array.isArray(value)) return false;\n return Boolean(\n value.black?.fields ||\n (value.black && (value.black.className || value.className || value.blueClass || value.cppClass)) ||\n (value.className && CjsBlackSchemaRegistry.isCompactFieldMap(value.fields)) ||\n (value.className && Array.isArray(value.fields)) ||\n (value.blueClass && value.black)\n );\n }\n\n /** Adds shape to the current Black object-graph reader. */\n static addShape(schema, shapes)\n {\n const shape = CjsBlackSchemaRegistry.normalizeShape(schema);\n if (!shape?.className) return;\n\n shapes.set(shape.className, shape);\n if (schema.blueClass) shapes.set(schema.blueClass, shape);\n if (schema.cppClass) shapes.set(schema.cppClass, shape);\n if (schema.name) shapes.set(schema.name, shape);\n }\n\n /**\n * Converts shape into the canonical Black object-graph reader\n * representation.\n */\n static normalizeShape(schema)\n {\n const black = schema.black || {};\n const className = black.className || schema.className || schema.blueClass || schema.cppClass || schema.name || null;\n if (!className) return null;\n\n const fields = CjsBlackSchemaRegistry.normalizeFields(schema);\n const blackFieldSource = CjsBlackSchemaRegistry.isCompactFieldMap(schema.fields)\n ? CjsBlackSchemaRegistry.compactBlackFields(schema.fields)\n : (black.fields || schema.blackFields || schema.fields || []);\n const blackFields = blackFieldSource\n .filter(item => item && typeof item === \"object\")\n .map(item => CjsBlackSchemaRegistry.normalizeBlackField(item, fields));\n\n return {\n ...schema,\n className,\n family: schema.family || null,\n fields,\n black: {\n ...black,\n className,\n fields: blackFields\n }\n };\n }\n\n /**\n * Converts fields into the canonical Black object-graph reader\n * representation.\n */\n static normalizeFields(schema)\n {\n const fields = [];\n const byName = new Map();\n const add = (field) =>\n {\n if (!field || typeof field !== \"object\") return;\n const name = field.name || field.fieldName || field.blueName || CjsBlackSchemaRegistry.toJsFieldName(field.cppName || field.member || \"\");\n if (!name || byName.has(name)) return;\n\n const normalized = {\n ...field,\n name,\n cppName: field.cppName || field.memberPath || field.memberRoot || field.member || null,\n cppType: field.cppType || null\n };\n byName.set(name, normalized);\n fields.push(normalized);\n };\n\n if (CjsBlackSchemaRegistry.isCompactFieldMap(schema.fields))\n {\n for (const [ blackName, fieldSpec ] of Object.entries(schema.fields))\n {\n add(CjsBlackSchemaRegistry.compactField(blackName, fieldSpec));\n }\n }\n else\n {\n for (const field of schema.fields || [])\n {\n add(field);\n }\n }\n\n for (const attribute of schema.attributes || [])\n {\n if (!attribute?.black) continue;\n const black = CjsBlackSchemaRegistry.normalizeBlackField(attribute.black, fields);\n add({\n name: black.fieldName || attribute.blueName || black.name,\n cppName: black.cppName,\n cppType: black.cppType || attribute.cppType,\n black\n });\n }\n\n return fields;\n }\n\n /**\n * Reports whether the current Black object-graph reader satisfies compact\n * field map.\n */\n static isCompactFieldMap(value)\n {\n return !!value && typeof value === \"object\" && !Array.isArray(value);\n }\n\n /**\n * Converts compact Black field declarations into normalized field records\n * for the Black object-graph reader.\n */\n static compactBlackFields(fields)\n {\n return Object.entries(fields || {}).map(([ blackName, fieldSpec ]) =>\n CjsBlackSchemaRegistry.compactBlackField(blackName, fieldSpec));\n }\n\n /**\n * Converts one compact field declaration into a normalized field record for\n * the Black object-graph reader.\n */\n static compactField(blackName, fieldSpec)\n {\n const spec = CjsBlackSchemaRegistry.normalizeCompactSpec(blackName, fieldSpec);\n return {\n name: spec.fieldName,\n fieldName: spec.fieldName,\n enumType: spec.enumType,\n jsType: spec.jsType,\n black: spec.black\n };\n }\n\n /**\n * Converts one Black-specific compact field declaration into a normalized\n * record for the Black object-graph reader.\n */\n static compactBlackField(blackName, fieldSpec)\n {\n return CjsBlackSchemaRegistry.normalizeCompactSpec(blackName, fieldSpec).black;\n }\n\n /**\n * Converts compact spec into the canonical Black object-graph reader\n * representation.\n */\n static normalizeCompactSpec(blackName, fieldSpec)\n {\n const\n spec = typeof fieldSpec === \"string\" ? { type: fieldSpec } : (fieldSpec || {}),\n type = spec.type || spec.kind || \"unknown\",\n fieldName = spec.field || spec.fieldName || blackName,\n descriptor = CjsBlackSchemaRegistry.compactTypeDescriptor(type, spec),\n black = {\n name: blackName,\n fieldName,\n storageName: fieldName,\n member: blackName,\n memberPath: fieldName,\n memberRoot: fieldName,\n indexKey: Object.hasOwn(spec, \"index\") ? spec.index : undefined,\n indexToken: spec.token || null,\n enumType: spec.enum || null,\n ...descriptor.black,\n jsType: descriptor.jsType\n };\n\n return {\n fieldName,\n enumType: spec.enum || null,\n jsType: descriptor.jsType,\n black\n };\n }\n\n /**\n * Converts a compact type descriptor into its normalized schema\n * representation for the Black object-graph reader.\n */\n static compactTypeDescriptor(type, spec)\n {\n const normalized = String(type || \"unknown\");\n switch (normalized)\n {\n case \"boolean\":\n case \"bool\":\n return CjsBlackSchemaRegistry.compactBlackType(\"BOOL\", { kind: \"boolean\" });\n case \"string\":\n return CjsBlackSchemaRegistry.compactBlackType(\"STDSTRING\", { kind: \"string\" });\n case \"wstring\":\n return CjsBlackSchemaRegistry.compactBlackType(\"STDWSTRING\", { kind: \"string\" });\n case \"path\":\n return CjsBlackSchemaRegistry.compactBlackType(\"STDSTRING\", { kind: \"path\" });\n case \"expression\":\n return CjsBlackSchemaRegistry.compactBlackType(\"STDSTRING\", { kind: \"expression\", js: \"string\" });\n case \"enum\":\n return CjsBlackSchemaRegistry.compactBlackType(\"LONG\", { kind: \"enum\" }, { signed: true });\n case \"float\":\n return CjsBlackSchemaRegistry.compactBlackType(\"FLOAT\", { kind: \"float32\" });\n case \"double\":\n return CjsBlackSchemaRegistry.compactBlackType(\"DOUBLE\", { kind: \"float64\" });\n case \"int\":\n return CjsBlackSchemaRegistry.compactBlackType(\"LONG\", { kind: \"int32\" }, { signed: true });\n case \"uint\":\n return CjsBlackSchemaRegistry.compactBlackType(\"ULONG\", { kind: \"uint32\" }, { signed: false });\n case \"int64\":\n return CjsBlackSchemaRegistry.compactBlackType(\"INT64\", { kind: \"int64\" }, { signed: true });\n case \"uint64\":\n return CjsBlackSchemaRegistry.compactBlackType(\"UINT64\", { kind: \"uint64\" }, { signed: false });\n case \"byte\":\n return CjsBlackSchemaRegistry.compactBlackType(\"BYTE\", { kind: \"int8\" }, { signed: true });\n case \"ubyte\":\n return CjsBlackSchemaRegistry.compactBlackType(\"BYTE\", { kind: \"uint8\" }, { signed: false });\n case \"short\":\n return CjsBlackSchemaRegistry.compactBlackType(\"SHORT\", { kind: \"int16\" }, { signed: true });\n case \"ushort\":\n return CjsBlackSchemaRegistry.compactBlackType(\"SHORT\", { kind: \"uint16\" }, { signed: false });\n case \"vector2\":\n return CjsBlackSchemaRegistry.compactFloatArrayType(\"vector2\", 2);\n case \"vector3\":\n return CjsBlackSchemaRegistry.compactFloatArrayType(\"vector3\", 3);\n case \"vector4\":\n return CjsBlackSchemaRegistry.compactFloatArrayType(\"vector4\", 4);\n case \"color\":\n return CjsBlackSchemaRegistry.compactFloatArrayType(\"color\", 4);\n case \"quaternion\":\n return CjsBlackSchemaRegistry.compactFloatArrayType(\"quaternion\", 4);\n case \"matrix3\":\n return CjsBlackSchemaRegistry.compactFloatArrayType(\"matrix3\", 9);\n case \"matrix4\":\n return CjsBlackSchemaRegistry.compactFloatArrayType(\"matrix4\", 16);\n case \"floatArray\":\n return CjsBlackSchemaRegistry.compactFloatArrayType(\"array\", spec.length || 0);\n case \"array\":\n return CjsBlackSchemaRegistry.compactBlackType(\"IROOT\", { kind: \"array\" }, { container: \"list\" });\n case \"dict\":\n return CjsBlackSchemaRegistry.compactBlackType(\"IROOT\", { kind: \"map\" }, { container: \"dict\" });\n case \"object\":\n return CjsBlackSchemaRegistry.compactBlackType(\"IROOTPTR\", { kind: \"objectRef\" });\n case \"rawStruct\":\n return CjsBlackSchemaRegistry.compactBlackType(\"IROOT\", { kind: \"rawStruct\" });\n case \"structList\":\n return CjsBlackSchemaRegistry.compactBlackType(\"IROOT\", { kind: \"array\" }, {\n container: \"list\",\n cppType: spec.cppType || \"StructureList\"\n });\n case \"binaryBlock\":\n return CjsBlackSchemaRegistry.compactBlackType(\"BINARYBLOCK\", { kind: \"typedArray\" });\n default:\n return CjsBlackSchemaRegistry.compactBlackType(null, { kind: normalized });\n }\n }\n\n /**\n * Converts a compact Black wire type into its normalized schema\n * representation for the Black object-graph reader.\n */\n static compactBlackType(beType, jsType, extra = {})\n {\n return {\n jsType,\n black: {\n beType,\n wireType: CjsBlackSchemaRegistry.compactWireType(beType, extra.container),\n ...extra\n }\n };\n }\n\n /**\n * Converts a compact float-array type into its normalized schema\n * representation for the Black object-graph reader.\n */\n static compactFloatArrayType(kind, length)\n {\n return CjsBlackSchemaRegistry.compactBlackType(\"FLOATARRAY\", { kind, length }, { length });\n }\n\n /**\n * Converts a compact wire-type code into its normalized schema\n * representation for the Black object-graph reader.\n */\n static compactWireType(beType, container = null)\n {\n switch (beType)\n {\n case \"BOOL\":\n return \"bool\";\n case \"STDSTRING\":\n case \"STDWSTRING\":\n return \"stringRef\";\n case \"FLOAT\":\n return \"float32\";\n case \"DOUBLE\":\n return \"float64\";\n case \"LONG\":\n return \"int32\";\n case \"ULONG\":\n return \"uint32\";\n case \"INT64\":\n return \"int64\";\n case \"UINT64\":\n return \"uint64\";\n case \"BYTE\":\n return \"uint8\";\n case \"SHORT\":\n return \"uint16\";\n case \"FLOATARRAY\":\n return \"floatArray\";\n case \"BINARYBLOCK\":\n return \"binaryBlock\";\n case \"IROOTPTR\":\n return \"objectRef\";\n case \"IROOT\":\n return container ? \"container\" : \"inlineObject\";\n default:\n return null;\n }\n }\n\n /**\n * Converts black field into the canonical Black object-graph reader\n * representation.\n */\n static normalizeBlackField(field, sourceFields = [])\n {\n const names = field.names || null;\n const name = field.name || CjsBlackSchemaRegistry.getNameRole(names, \"name\") || field.nameExpression || null;\n const fieldName = field.fieldName || CjsBlackSchemaRegistry.getNameRole(names, \"fieldName\") || name || null;\n const cppName = field.cppName ||\n CjsBlackSchemaRegistry.getNameRole(names, \"cppName\") ||\n CjsBlackSchemaRegistry.getNameRole(names, \"memberPath\") ||\n CjsBlackSchemaRegistry.getNameRole(names, \"memberRoot\") ||\n null;\n const member = field.member || CjsBlackSchemaRegistry.getNameRole(names, \"member\") || cppName || name;\n const memberPath = field.memberPath || CjsBlackSchemaRegistry.getNameRole(names, \"memberPath\") || cppName;\n const memberRoot = field.memberRoot || CjsBlackSchemaRegistry.getNameRole(names, \"memberRoot\") || memberPath;\n const sourceField = sourceFields.find(item =>\n item.name === fieldName ||\n item.name === name ||\n item.cppName === cppName ||\n item.cppName === memberPath ||\n item.cppName === memberRoot\n );\n\n return {\n ...field,\n names,\n name,\n fieldName,\n storageName: field.storageName || fieldName || name,\n cppName: cppName || sourceField?.cppName || null,\n member,\n memberPath,\n memberRoot,\n cppType: field.cppType || sourceField?.cppType || null,\n beType: field.beType || null\n };\n }\n\n /**\n * Reports whether black field name matches the current Black object-graph\n * reader.\n */\n static matchesBlackFieldName(field, blackName)\n {\n if (!field || !blackName) return false;\n if (field.name === blackName) return true;\n if (field.fieldName === blackName) return true;\n if (field.member === blackName) return true;\n if (field.memberPath === blackName) return true;\n if (field.memberRoot === blackName) return true;\n if (field.cppName === blackName) return true;\n if (field.nameExpression === blackName) return true;\n\n if (field.names && typeof field.names === \"object\")\n {\n return Object.hasOwn(field.names, blackName);\n }\n\n return false;\n }\n\n /**\n * Classifies a field name as canonical, source, or alias metadata for the\n * Black object-graph reader.\n */\n static getNameRole(names, role)\n {\n if (!names || typeof names !== \"object\") return null;\n\n for (const [ name, roles ] of Object.entries(names))\n {\n const roleList = Array.isArray(roles) ? roles : String(roles || \"\").split(/\\s+/);\n if (roleList.includes(role)) return name;\n }\n\n return null;\n }\n\n /** Converts the current Black object-graph reader value to JS field name. */\n static toJsFieldName(value)\n {\n return String(value || \"\").replace(/^m_/, \"\");\n }\n}\n"],"names":["CjsBlackSchemaRegistry","constructor","schema","shapes","createShapeMap","GetSourceShape","kind","get","Map","isCompactClassMap","addCompactClassMap","collectSchemaShapes","WeakSet","value","seen","has","add","Array","isArray","item","isClassSchema","addShape","families","family","classes","Object","values","black","entries","length","every","className","fields","isCompactFieldMap","isCompactClassFields","specs","spec","isCompactFieldSpec","type","Boolean","blueClass","cppClass","shape","normalizeShape","set","name","normalizeFields","blackFieldSource","compactBlackFields","blackFields","filter","map","normalizeBlackField","byName","field","fieldName","blueName","toJsFieldName","cppName","member","normalized","memberPath","memberRoot","cppType","push","blackName","fieldSpec","compactField","attribute","attributes","compactBlackField","normalizeCompactSpec","enumType","jsType","descriptor","compactTypeDescriptor","storageName","indexKey","hasOwn","index","undefined","indexToken","token","enum","String","compactBlackType","js","signed","compactFloatArrayType","container","beType","extra","wireType","compactWireType","sourceFields","names","getNameRole","nameExpression","sourceField","find","matchesBlackFieldName","role","roles","roleList","split","includes","replace"],"mappings":"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"}
@@ -92,11 +92,18 @@ function cloneValues(values) {
92
92
  function cloneListOrValue(value) {
93
93
  return Array.isArray(value) ? value.slice() : value ?? null;
94
94
  }
95
+
96
+ /** Validates a requested runtime class key for the Black object-graph reader. */
95
97
  function validateClassKey(classKeys, key, readerName) {
96
98
  if (typeof key !== "string" || !key) {
97
99
  throw new Error(`${readerName} class type must be a non-empty string`);
98
100
  }
99
101
  }
102
+
103
+ /**
104
+ * Validates a resolved runtime class constructor for the Black object-graph
105
+ * reader.
106
+ */
100
107
  function validateClass(classKeys, type, Class, readerName) {
101
108
  validateClassKey(classKeys, type, readerName);
102
109
  if (typeof Class !== "function") {
@@ -116,6 +123,11 @@ function mergeClasses(values, classes, classKeys, readerName) {
116
123
  }
117
124
  values.classes = next;
118
125
  }
126
+
127
+ /**
128
+ * Normalizes reader options against their supported defaults for the Black
129
+ * object-graph reader.
130
+ */
119
131
  function normalizeValues(base, options, classKeys, readerName) {
120
132
  if (!options || typeof options !== "object") {
121
133
  throw new TypeError(`${readerName} options must be an object`);
@@ -156,6 +168,11 @@ function normalizeValues(base, options, classKeys, readerName) {
156
168
  if (hasOwn(options, "classes")) mergeClasses(values, options.classes, classKeys, readerName);
157
169
  return values;
158
170
  }
171
+
172
+ /**
173
+ * Converts a parsed payload into a JSON-safe value for the Black object-graph
174
+ * reader.
175
+ */
159
176
  function toJsonValue(value, seen = new WeakSet()) {
160
177
  if (value === null || typeof value !== "object") return value;
161
178
  if (ArrayBuffer.isView(value)) return Array.from(value, item => toJsonValue(item, seen));
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sources":["../../../../../src/formats/black/core/helpers.js"],"sourcesContent":["import blackDefinitions from \"./blackSchema.js\";\n\nexport const OUTPUT_JSON = \"json\";\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_DOCUMENT = \"document\";\nexport const OUTPUT_PAYLOAD = \"payload\";\nexport const OUTPUT_RUNTIME = \"runtime\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_JSON,\n schema: blackDefinitions,\n registry: null,\n sourceShapes: null,\n rootName: \"default\",\n firstId: 1,\n metadata: null,\n includeMetadata: false,\n includeClassMetadata: false,\n includeFieldTrace: false,\n includeRefIndex: false,\n trace: false,\n debug: false,\n decodeBinaryBlocks: false,\n captureUnknownBlackFields: false,\n captureUnknownResourceFields: false,\n captureUnknownWhenNoBlackFields: false,\n allowUnknownStringFallback: false,\n rootFields: null,\n payloadRootFields: null,\n payloadTypeField: \"_type\",\n payloadIdField: \"_id\",\n payloadReferenceField: \"_reference\",\n pathHandler: null,\n adapter: null,\n adapters: null,\n classes: Object.freeze({})\n});\n\nconst OPTION_KEYS = new Set(Object.keys(DEFAULT_VALUES));\n\nfunction hasOwn(value, key)\n{\n return Object.prototype.hasOwnProperty.call(value, key);\n}\n\nfunction normalizeEmit(emit, readerName)\n{\n if (emit === undefined || emit === OUTPUT_JSON) return OUTPUT_JSON;\n if (emit === OUTPUT_RAW) return OUTPUT_RAW;\n if (emit === OUTPUT_DOCUMENT) return OUTPUT_DOCUMENT;\n if (emit === OUTPUT_PAYLOAD) return OUTPUT_PAYLOAD;\n if (emit === OUTPUT_RUNTIME) return OUTPUT_RUNTIME;\n throw new Error(`${readerName} unknown emit value \"${emit}\"`);\n}\n\nfunction assertKnownOptions(options, readerName)\n{\n for (const key of Object.keys(options))\n {\n if (!OPTION_KEYS.has(key))\n {\n throw new TypeError(`${readerName} unknown option \"${key}\"`);\n }\n }\n}\n\nfunction classMap(values)\n{\n return values && values.classes ? values.classes : {};\n}\n\nfunction cloneValues(values)\n{\n return {\n emit: values.emit,\n schema: values.schema ?? null,\n registry: values.registry ?? null,\n sourceShapes: values.sourceShapes ?? null,\n rootName: values.rootName ?? \"default\",\n firstId: values.firstId ?? 1,\n metadata: values.metadata ?? null,\n includeMetadata: Boolean(values.includeMetadata),\n includeClassMetadata: Boolean(values.includeClassMetadata),\n includeFieldTrace: Boolean(values.includeFieldTrace),\n includeRefIndex: Boolean(values.includeRefIndex),\n trace: Boolean(values.trace),\n debug: Boolean(values.debug),\n decodeBinaryBlocks: Boolean(values.decodeBinaryBlocks),\n captureUnknownBlackFields: Boolean(values.captureUnknownBlackFields),\n captureUnknownResourceFields: Boolean(values.captureUnknownResourceFields),\n captureUnknownWhenNoBlackFields: Boolean(values.captureUnknownWhenNoBlackFields),\n allowUnknownStringFallback: Boolean(values.allowUnknownStringFallback),\n rootFields: cloneListOrValue(values.rootFields),\n payloadRootFields: cloneListOrValue(values.payloadRootFields),\n payloadTypeField: values.payloadTypeField,\n payloadIdField: values.payloadIdField,\n payloadReferenceField: values.payloadReferenceField,\n pathHandler: values.pathHandler ?? null,\n adapter: values.adapter ?? null,\n adapters: values.adapters ?? null,\n classes: { ...classMap(values) }\n };\n}\n\nfunction cloneListOrValue(value)\n{\n return Array.isArray(value) ? value.slice() : value ?? null;\n}\n\nexport function validateClassKey(classKeys, key, readerName)\n{\n if (typeof key !== \"string\" || !key)\n {\n throw new Error(`${readerName} class type must be a non-empty string`);\n }\n}\n\nexport function validateClass(classKeys, type, Class, readerName)\n{\n validateClassKey(classKeys, type, readerName);\n if (typeof Class !== \"function\")\n {\n throw new TypeError(`${readerName} class \"${type}\" must be a constructor`);\n }\n}\n\nfunction mergeClasses(values, classes, classKeys, readerName)\n{\n if (!classes || typeof classes !== \"object\")\n {\n throw new TypeError(`${readerName} classes option must be an object`);\n }\n\n const next = { ...values.classes };\n for (const [ type, Class ] of Object.entries(classes))\n {\n validateClass(classKeys, type, Class, readerName);\n next[type] = Class;\n }\n values.classes = next;\n}\n\nexport function normalizeValues(base, options, classKeys, readerName)\n{\n if (!options || typeof options !== \"object\")\n {\n throw new TypeError(`${readerName} options must be an object`);\n }\n\n assertKnownOptions(options, readerName);\n\n const values = cloneValues(base);\n if (hasOwn(options, \"emit\")) values.emit = normalizeEmit(options.emit, readerName);\n if (hasOwn(options, \"schema\")) values.schema = options.schema ?? null;\n if (hasOwn(options, \"registry\")) values.registry = options.registry ?? null;\n if (hasOwn(options, \"sourceShapes\")) values.sourceShapes = options.sourceShapes ?? null;\n if (hasOwn(options, \"rootName\")) values.rootName = options.rootName ?? \"default\";\n if (hasOwn(options, \"firstId\")) values.firstId = options.firstId ?? 1;\n if (hasOwn(options, \"metadata\")) values.metadata = options.metadata ?? null;\n if (hasOwn(options, \"includeMetadata\")) values.includeMetadata = Boolean(options.includeMetadata);\n if (hasOwn(options, \"includeClassMetadata\")) values.includeClassMetadata = Boolean(options.includeClassMetadata);\n if (hasOwn(options, \"includeFieldTrace\")) values.includeFieldTrace = Boolean(options.includeFieldTrace);\n if (hasOwn(options, \"includeRefIndex\")) values.includeRefIndex = Boolean(options.includeRefIndex);\n if (hasOwn(options, \"trace\")) values.trace = Boolean(options.trace);\n if (hasOwn(options, \"debug\")) values.debug = Boolean(options.debug);\n if (hasOwn(options, \"decodeBinaryBlocks\")) values.decodeBinaryBlocks = Boolean(options.decodeBinaryBlocks);\n if (hasOwn(options, \"captureUnknownBlackFields\")) values.captureUnknownBlackFields = Boolean(options.captureUnknownBlackFields);\n if (hasOwn(options, \"captureUnknownResourceFields\")) values.captureUnknownResourceFields = Boolean(options.captureUnknownResourceFields);\n if (hasOwn(options, \"captureUnknownWhenNoBlackFields\")) values.captureUnknownWhenNoBlackFields = Boolean(options.captureUnknownWhenNoBlackFields);\n if (hasOwn(options, \"allowUnknownStringFallback\")) values.allowUnknownStringFallback = Boolean(options.allowUnknownStringFallback);\n if (hasOwn(options, \"rootFields\")) values.rootFields = cloneListOrValue(options.rootFields);\n if (hasOwn(options, \"payloadRootFields\")) values.payloadRootFields = cloneListOrValue(options.payloadRootFields);\n if (hasOwn(options, \"payloadTypeField\")) values.payloadTypeField = options.payloadTypeField;\n if (hasOwn(options, \"payloadIdField\")) values.payloadIdField = options.payloadIdField;\n if (hasOwn(options, \"payloadReferenceField\")) values.payloadReferenceField = options.payloadReferenceField;\n if (hasOwn(options, \"adapter\")) values.adapter = options.adapter ?? null;\n if (hasOwn(options, \"adapters\")) values.adapters = options.adapters ?? null;\n if (hasOwn(options, \"pathHandler\"))\n {\n if (options.pathHandler !== null && options.pathHandler !== undefined && typeof options.pathHandler !== \"function\")\n {\n throw new TypeError(`${readerName} pathHandler option must be a function`);\n }\n values.pathHandler = options.pathHandler ?? null;\n }\n if (hasOwn(options, \"classes\")) mergeClasses(values, options.classes, classKeys, readerName);\n return values;\n}\n\nexport function notImplemented(readerName, methodName)\n{\n return new Error(`${readerName}.${methodName} is not implemented yet`);\n}\n\nexport function toJsonValue(value, seen = new WeakSet())\n{\n if (value === null || typeof value !== \"object\") return value;\n if (ArrayBuffer.isView(value)) return Array.from(value, item => toJsonValue(item, seen));\n if (Array.isArray(value)) return value.map(item => toJsonValue(item, seen));\n\n if (seen.has(value))\n {\n throw new TypeError(\"Reader.toJSON cannot convert circular data\");\n }\n\n if (typeof value.toJSON === \"function\")\n {\n seen.add(value);\n const json = toJsonValue(value.toJSON(), seen);\n seen.delete(value);\n return json;\n }\n\n seen.add(value);\n const out = {};\n for (const key of Object.keys(value))\n {\n out[key] = toJsonValue(value[key], seen);\n }\n seen.delete(value);\n return out;\n}\n"],"names":["OUTPUT_JSON","OUTPUT_RAW","OUTPUT_DOCUMENT","OUTPUT_PAYLOAD","OUTPUT_RUNTIME","DEFAULT_VALUES","Object","freeze","emit","schema","blackDefinitions","registry","sourceShapes","rootName","firstId","metadata","includeMetadata","includeClassMetadata","includeFieldTrace","includeRefIndex","trace","debug","decodeBinaryBlocks","captureUnknownBlackFields","captureUnknownResourceFields","captureUnknownWhenNoBlackFields","allowUnknownStringFallback","rootFields","payloadRootFields","payloadTypeField","payloadIdField","payloadReferenceField","pathHandler","adapter","adapters","classes","OPTION_KEYS","Set","keys","hasOwn","value","key","prototype","hasOwnProperty","call","normalizeEmit","readerName","undefined","Error","assertKnownOptions","options","has","TypeError","classMap","values","cloneValues","Boolean","cloneListOrValue","Array","isArray","slice","validateClassKey","classKeys","validateClass","type","Class","mergeClasses","next","entries","normalizeValues","base","toJsonValue","seen","WeakSet","ArrayBuffer","isView","from","item","map","toJSON","add","json","delete","out"],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sources":["../../../../../src/formats/black/core/helpers.js"],"sourcesContent":["import blackDefinitions from \"./blackSchema.js\";\n\nexport const OUTPUT_JSON = \"json\";\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_DOCUMENT = \"document\";\nexport const OUTPUT_PAYLOAD = \"payload\";\nexport const OUTPUT_RUNTIME = \"runtime\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_JSON,\n schema: blackDefinitions,\n registry: null,\n sourceShapes: null,\n rootName: \"default\",\n firstId: 1,\n metadata: null,\n includeMetadata: false,\n includeClassMetadata: false,\n includeFieldTrace: false,\n includeRefIndex: false,\n trace: false,\n debug: false,\n decodeBinaryBlocks: false,\n captureUnknownBlackFields: false,\n captureUnknownResourceFields: false,\n captureUnknownWhenNoBlackFields: false,\n allowUnknownStringFallback: false,\n rootFields: null,\n payloadRootFields: null,\n payloadTypeField: \"_type\",\n payloadIdField: \"_id\",\n payloadReferenceField: \"_reference\",\n pathHandler: null,\n adapter: null,\n adapters: null,\n classes: Object.freeze({})\n});\n\nconst OPTION_KEYS = new Set(Object.keys(DEFAULT_VALUES));\n\nfunction hasOwn(value, key)\n{\n return Object.prototype.hasOwnProperty.call(value, key);\n}\n\nfunction normalizeEmit(emit, readerName)\n{\n if (emit === undefined || emit === OUTPUT_JSON) return OUTPUT_JSON;\n if (emit === OUTPUT_RAW) return OUTPUT_RAW;\n if (emit === OUTPUT_DOCUMENT) return OUTPUT_DOCUMENT;\n if (emit === OUTPUT_PAYLOAD) return OUTPUT_PAYLOAD;\n if (emit === OUTPUT_RUNTIME) return OUTPUT_RUNTIME;\n throw new Error(`${readerName} unknown emit value \"${emit}\"`);\n}\n\nfunction assertKnownOptions(options, readerName)\n{\n for (const key of Object.keys(options))\n {\n if (!OPTION_KEYS.has(key))\n {\n throw new TypeError(`${readerName} unknown option \"${key}\"`);\n }\n }\n}\n\nfunction classMap(values)\n{\n return values && values.classes ? values.classes : {};\n}\n\nfunction cloneValues(values)\n{\n return {\n emit: values.emit,\n schema: values.schema ?? null,\n registry: values.registry ?? null,\n sourceShapes: values.sourceShapes ?? null,\n rootName: values.rootName ?? \"default\",\n firstId: values.firstId ?? 1,\n metadata: values.metadata ?? null,\n includeMetadata: Boolean(values.includeMetadata),\n includeClassMetadata: Boolean(values.includeClassMetadata),\n includeFieldTrace: Boolean(values.includeFieldTrace),\n includeRefIndex: Boolean(values.includeRefIndex),\n trace: Boolean(values.trace),\n debug: Boolean(values.debug),\n decodeBinaryBlocks: Boolean(values.decodeBinaryBlocks),\n captureUnknownBlackFields: Boolean(values.captureUnknownBlackFields),\n captureUnknownResourceFields: Boolean(values.captureUnknownResourceFields),\n captureUnknownWhenNoBlackFields: Boolean(values.captureUnknownWhenNoBlackFields),\n allowUnknownStringFallback: Boolean(values.allowUnknownStringFallback),\n rootFields: cloneListOrValue(values.rootFields),\n payloadRootFields: cloneListOrValue(values.payloadRootFields),\n payloadTypeField: values.payloadTypeField,\n payloadIdField: values.payloadIdField,\n payloadReferenceField: values.payloadReferenceField,\n pathHandler: values.pathHandler ?? null,\n adapter: values.adapter ?? null,\n adapters: values.adapters ?? null,\n classes: { ...classMap(values) }\n };\n}\n\nfunction cloneListOrValue(value)\n{\n return Array.isArray(value) ? value.slice() : value ?? null;\n}\n\n/** Validates a requested runtime class key for the Black object-graph reader. */\nexport function validateClassKey(classKeys, key, readerName)\n{\n if (typeof key !== \"string\" || !key)\n {\n throw new Error(`${readerName} class type must be a non-empty string`);\n }\n}\n\n/**\n * Validates a resolved runtime class constructor for the Black object-graph\n * reader.\n */\nexport function validateClass(classKeys, type, Class, readerName)\n{\n validateClassKey(classKeys, type, readerName);\n if (typeof Class !== \"function\")\n {\n throw new TypeError(`${readerName} class \"${type}\" must be a constructor`);\n }\n}\n\nfunction mergeClasses(values, classes, classKeys, readerName)\n{\n if (!classes || typeof classes !== \"object\")\n {\n throw new TypeError(`${readerName} classes option must be an object`);\n }\n\n const next = { ...values.classes };\n for (const [ type, Class ] of Object.entries(classes))\n {\n validateClass(classKeys, type, Class, readerName);\n next[type] = Class;\n }\n values.classes = next;\n}\n\n/**\n * Normalizes reader options against their supported defaults for the Black\n * object-graph reader.\n */\nexport function normalizeValues(base, options, classKeys, readerName)\n{\n if (!options || typeof options !== \"object\")\n {\n throw new TypeError(`${readerName} options must be an object`);\n }\n\n assertKnownOptions(options, readerName);\n\n const values = cloneValues(base);\n if (hasOwn(options, \"emit\")) values.emit = normalizeEmit(options.emit, readerName);\n if (hasOwn(options, \"schema\")) values.schema = options.schema ?? null;\n if (hasOwn(options, \"registry\")) values.registry = options.registry ?? null;\n if (hasOwn(options, \"sourceShapes\")) values.sourceShapes = options.sourceShapes ?? null;\n if (hasOwn(options, \"rootName\")) values.rootName = options.rootName ?? \"default\";\n if (hasOwn(options, \"firstId\")) values.firstId = options.firstId ?? 1;\n if (hasOwn(options, \"metadata\")) values.metadata = options.metadata ?? null;\n if (hasOwn(options, \"includeMetadata\")) values.includeMetadata = Boolean(options.includeMetadata);\n if (hasOwn(options, \"includeClassMetadata\")) values.includeClassMetadata = Boolean(options.includeClassMetadata);\n if (hasOwn(options, \"includeFieldTrace\")) values.includeFieldTrace = Boolean(options.includeFieldTrace);\n if (hasOwn(options, \"includeRefIndex\")) values.includeRefIndex = Boolean(options.includeRefIndex);\n if (hasOwn(options, \"trace\")) values.trace = Boolean(options.trace);\n if (hasOwn(options, \"debug\")) values.debug = Boolean(options.debug);\n if (hasOwn(options, \"decodeBinaryBlocks\")) values.decodeBinaryBlocks = Boolean(options.decodeBinaryBlocks);\n if (hasOwn(options, \"captureUnknownBlackFields\")) values.captureUnknownBlackFields = Boolean(options.captureUnknownBlackFields);\n if (hasOwn(options, \"captureUnknownResourceFields\")) values.captureUnknownResourceFields = Boolean(options.captureUnknownResourceFields);\n if (hasOwn(options, \"captureUnknownWhenNoBlackFields\")) values.captureUnknownWhenNoBlackFields = Boolean(options.captureUnknownWhenNoBlackFields);\n if (hasOwn(options, \"allowUnknownStringFallback\")) values.allowUnknownStringFallback = Boolean(options.allowUnknownStringFallback);\n if (hasOwn(options, \"rootFields\")) values.rootFields = cloneListOrValue(options.rootFields);\n if (hasOwn(options, \"payloadRootFields\")) values.payloadRootFields = cloneListOrValue(options.payloadRootFields);\n if (hasOwn(options, \"payloadTypeField\")) values.payloadTypeField = options.payloadTypeField;\n if (hasOwn(options, \"payloadIdField\")) values.payloadIdField = options.payloadIdField;\n if (hasOwn(options, \"payloadReferenceField\")) values.payloadReferenceField = options.payloadReferenceField;\n if (hasOwn(options, \"adapter\")) values.adapter = options.adapter ?? null;\n if (hasOwn(options, \"adapters\")) values.adapters = options.adapters ?? null;\n if (hasOwn(options, \"pathHandler\"))\n {\n if (options.pathHandler !== null && options.pathHandler !== undefined && typeof options.pathHandler !== \"function\")\n {\n throw new TypeError(`${readerName} pathHandler option must be a function`);\n }\n values.pathHandler = options.pathHandler ?? null;\n }\n if (hasOwn(options, \"classes\")) mergeClasses(values, options.classes, classKeys, readerName);\n return values;\n}\n\n/**\n * Throws a format error for a reader operation that is intentionally unavailable\n * for the Black object-graph reader.\n */\nexport function notImplemented(readerName, methodName)\n{\n return new Error(`${readerName}.${methodName} is not implemented yet`);\n}\n\n/**\n * Converts a parsed payload into a JSON-safe value for the Black object-graph\n * reader.\n */\nexport function toJsonValue(value, seen = new WeakSet())\n{\n if (value === null || typeof value !== \"object\") return value;\n if (ArrayBuffer.isView(value)) return Array.from(value, item => toJsonValue(item, seen));\n if (Array.isArray(value)) return value.map(item => toJsonValue(item, seen));\n\n if (seen.has(value))\n {\n throw new TypeError(\"Reader.toJSON cannot convert circular data\");\n }\n\n if (typeof value.toJSON === \"function\")\n {\n seen.add(value);\n const json = toJsonValue(value.toJSON(), seen);\n seen.delete(value);\n return json;\n }\n\n seen.add(value);\n const out = {};\n for (const key of Object.keys(value))\n {\n out[key] = toJsonValue(value[key], seen);\n }\n seen.delete(value);\n return out;\n}\n"],"names":["OUTPUT_JSON","OUTPUT_RAW","OUTPUT_DOCUMENT","OUTPUT_PAYLOAD","OUTPUT_RUNTIME","DEFAULT_VALUES","Object","freeze","emit","schema","blackDefinitions","registry","sourceShapes","rootName","firstId","metadata","includeMetadata","includeClassMetadata","includeFieldTrace","includeRefIndex","trace","debug","decodeBinaryBlocks","captureUnknownBlackFields","captureUnknownResourceFields","captureUnknownWhenNoBlackFields","allowUnknownStringFallback","rootFields","payloadRootFields","payloadTypeField","payloadIdField","payloadReferenceField","pathHandler","adapter","adapters","classes","OPTION_KEYS","Set","keys","hasOwn","value","key","prototype","hasOwnProperty","call","normalizeEmit","readerName","undefined","Error","assertKnownOptions","options","has","TypeError","classMap","values","cloneValues","Boolean","cloneListOrValue","Array","isArray","slice","validateClassKey","classKeys","validateClass","type","Class","mergeClasses","next","entries","normalizeValues","base","toJsonValue","seen","WeakSet","ArrayBuffer","isView","from","item","map","toJSON","add","json","delete","out"],"mappings":"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"}
@@ -18,6 +18,14 @@ const FORMAT_NAME = "CjsBnkFormat";
18
18
  class CjsBnkFormat {
19
19
  #values = DEFAULT_VALUES;
20
20
 
21
+ /**
22
+ * Browser-worker module declaration consumed by CjsResManWorkerLoader.
23
+ */
24
+ static worker = Object.freeze({
25
+ module: import.meta.url,
26
+ exportName: "CjsBnkFormat"
27
+ });
28
+
21
29
  /**
22
30
  * Create a reusable bnk format profile.
23
31
  *
@@ -1 +1 @@
1
- {"version":3,"file":"CjsBnkFormat.js","sources":["../../../../src/formats/bnk/CjsBnkFormat.js"],"sourcesContent":["import {\r\n buildSoundbanksCatalog,\r\n isSoundbanksInfo,\r\n joinSoundbanksInfo,\r\n parseSoundbanksInfo,\r\n wwiseIdFromName\r\n} from \"./core/soundbanksInfo.js\";\r\nimport {\r\n DEFAULT_VALUES,\r\n HIRC_TYPE_NAMES,\r\n OUTPUT_BNK_JSON,\r\n OUTPUT_JSON,\r\n OUTPUT_MEDIA,\r\n OUTPUT_RAW,\r\n extractMedia,\r\n inspectWithValues,\r\n isBNK,\r\n isSupportedWithValues,\r\n normalizeValues,\r\n readWithValues,\r\n toBytes,\r\n toJsonValue\r\n} from \"./core/helpers.js\";\r\nimport { eventMediaFromBanks } from \"./core/graph.js\";\r\nimport {\r\n musicNodesFromBanks,\r\n parseMusicPlaylist,\r\n parseMusicSegment,\r\n parseMusicSwitch,\r\n parseMusicTrack\r\n} from \"./core/musicNodes.js\";\r\n\r\nconst FORMAT_NAME = \"CjsBnkFormat\";\r\n\r\n/**\r\n * Reader for Audiokinetic Wwise soundbank (.bnk) containers.\r\n *\r\n * Inspection decodes the bank header, embedded media index, object hierarchy\r\n * listing (with version-stable typed fields), and referenced bank names\r\n * without copying payloads. Read can emit the raw bank, debug JSON, or the\r\n * embedded media items undecoded. The read path stays a pure container\r\n * reader; the Wwise-domain toolkit (SoundbanksInfo catalog helpers, id hash,\r\n * event -> media graph resolution) is grouped under the `wwise` static.\r\n */\r\nexport class CjsBnkFormat\r\n{\r\n #values = DEFAULT_VALUES;\r\n\r\n /**\r\n * Create a reusable bnk format profile.\r\n *\r\n * @param {object} [options] Default read/inspect options.\r\n */\r\n constructor(options = {})\r\n {\r\n this.SetValues(options);\r\n }\r\n\r\n /**\r\n * Merge options into this profile.\r\n *\r\n * @param {object} [options] Values to merge.\r\n * @returns {CjsBnkFormat} This format profile.\r\n */\r\n SetValues(options = {})\r\n {\r\n this.#values = normalizeValues(this.#values, options, FORMAT_NAME);\r\n return this;\r\n }\r\n\r\n /**\r\n * Get normalized profile values with optional per-call overrides.\r\n *\r\n * @param {object} [options] Per-call values.\r\n * @returns {object} Normalized read values.\r\n */\r\n GetValues(options = {})\r\n {\r\n return normalizeValues(this.#values, options, FORMAT_NAME);\r\n }\r\n\r\n /**\r\n * Read soundbank bytes with this profile.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|DataView} input Soundbank bytes.\r\n * @param {object} [options] Per-call values.\r\n * @returns {object} GPU-free raw/debug/media payload for the selected emit target.\r\n */\r\n Read(input, options = {})\r\n {\r\n return readWithValues(input, this.GetValues(options));\r\n }\r\n\r\n /**\r\n * Read soundbank bytes asynchronously with this profile.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|DataView} input Soundbank bytes.\r\n * @param {object} [options] Per-call values.\r\n * @returns {Promise<object>} GPU-free raw/debug/media payload for the selected emit target.\r\n */\r\n async ReadAsync(input, options = {})\r\n {\r\n return this.Read(input, options);\r\n }\r\n\r\n /**\r\n * Inspect soundbank bytes without copying media payloads.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|DataView} input Soundbank bytes.\r\n * @param {object} [options] Per-call values.\r\n * @returns {object} Soundbank metadata.\r\n */\r\n Inspect(input, options = {})\r\n {\r\n return inspectWithValues(input, this.GetValues(options));\r\n }\r\n\r\n /**\r\n * Report whether soundbank input and requested output variants are supported.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|DataView} input Soundbank bytes.\r\n * @param {object} [options] Per-call values.\r\n * @returns {object} Support/probe report.\r\n */\r\n IsSupported(input, options = {})\r\n {\r\n return isSupportedWithValues(input, this.GetValues(options));\r\n }\r\n\r\n /**\r\n * Convert format output into JSON-compatible debug data.\r\n *\r\n * @param {any} value Format output.\r\n * @returns {any} JSON-compatible value.\r\n */\r\n ToJSON(value)\r\n {\r\n return toJsonValue(value);\r\n }\r\n\r\n /**\r\n * One-shot soundbank read.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|DataView} input Soundbank bytes.\r\n * @param {object} [options] Read options.\r\n * @returns {object} GPU-free raw/debug/media payload for the selected emit target.\r\n */\r\n static read(input, options = {})\r\n {\r\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME));\r\n }\r\n\r\n /**\r\n * One-shot asynchronous soundbank read.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|DataView} input Soundbank bytes.\r\n * @param {object} [options] Read options.\r\n * @returns {Promise<object>} GPU-free raw/debug/media payload for the selected emit target.\r\n */\r\n static async readAsync(input, options = {})\r\n {\r\n return CjsBnkFormat.read(input, options);\r\n }\r\n\r\n /**\r\n * One-shot soundbank inspection.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|DataView} input Soundbank bytes.\r\n * @param {object} [options] Inspect options.\r\n * @returns {object} Soundbank metadata.\r\n */\r\n static inspect(input, options = {})\r\n {\r\n return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME));\r\n }\r\n\r\n /**\r\n * One-shot soundbank support probe.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|DataView} input Soundbank bytes.\r\n * @param {object} [options] Probe options.\r\n * @returns {object} Support/probe report.\r\n */\r\n static isSupported(input, options = {})\r\n {\r\n return isSupportedWithValues(input, normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME));\r\n }\r\n\r\n /**\r\n * Extract embedded media payloads as views over the soundbank bytes.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|DataView} input Soundbank bytes.\r\n * @param {number} [mediaId] Optional single media id filter.\r\n * @returns {Array<object>} Extracted media items with undecoded bytes.\r\n */\r\n static extractMedia(input, mediaId)\r\n {\r\n const bytes = toBytes(input);\r\n const metadata = inspectWithValues(bytes, DEFAULT_VALUES);\r\n return extractMedia(bytes, metadata, mediaId);\r\n }\r\n\r\n /**\r\n * Convert format output into JSON-compatible debug data.\r\n *\r\n * @param {any} value Format output.\r\n * @returns {any} JSON-compatible value.\r\n */\r\n static toJSON(value)\r\n {\r\n return toJsonValue(value);\r\n }\r\n\r\n /**\r\n * Test whether bytes look like a Wwise soundbank.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|DataView} input Candidate soundbank bytes.\r\n * @returns {boolean} True when the BKHD header chunk is present.\r\n */\r\n static isBNK(input)\r\n {\r\n try\r\n {\r\n return isBNK(toBytes(input));\r\n }\r\n catch\r\n {\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * Wwise-domain toolkit, grouped apart from the container-reading statics -\r\n * the single home for the SoundbanksInfo catalog helpers\r\n * (`isSoundbanksInfo`, `parseSoundbanksInfo`, `buildSoundbanksCatalog`,\r\n * `joinSoundbanksInfo`), the id hash (`wwiseIdFromName`, FNV-1 of the\r\n * lowercased name), and event-graph resolution.\r\n *\r\n * `eventMediaFromBanks(inspections, options)` is graph interpretation over\r\n * `inspect()` results, not a read path: banks may split events from their\r\n * target objects (EVE keeps all events in one bank and their sounds in\r\n * others), so always pass every related bank to one call. Returns\r\n * `{ eventMedia: Map<eventObjectId, Set<wemId>>, diagnostics }`. See\r\n * core/graph.js for the walk policy.\r\n *\r\n * The interactive-music decoders (`musicNodesFromBanks` and the per-type\r\n * `parseMusicSegment/Track/Playlist/Switch`) turn the music-hierarchy\r\n * entries (HIRC 10-13) into typed nodes - children, meter, cue markers,\r\n * clips, playlist trees, decision trees, and transition rules. See\r\n * core/musicNodes.js for the anchored, exact-end-validated parse.\r\n */\r\n static wwise = Object.freeze({\r\n isSoundbanksInfo,\r\n parseSoundbanksInfo,\r\n buildSoundbanksCatalog,\r\n joinSoundbanksInfo,\r\n wwiseIdFromName,\r\n eventMediaFromBanks,\r\n musicNodesFromBanks,\r\n parseMusicSegment,\r\n parseMusicTrack,\r\n parseMusicPlaylist,\r\n parseMusicSwitch\r\n });\r\n\r\n /**\r\n * Emit targets for this format (canonical frozen enum).\r\n */\r\n static Output = Object.freeze({\r\n RAW: OUTPUT_RAW,\r\n JSON: OUTPUT_JSON,\r\n BNK_JSON: OUTPUT_BNK_JSON,\r\n MEDIA: OUTPUT_MEDIA\r\n });\r\n\r\n static HIRC_TYPE_NAMES = HIRC_TYPE_NAMES;\r\n\r\n static type = Object.freeze([ \"audio\" ]);\r\n\r\n static mediaTypes = Object.freeze([ \"audio\" ]);\r\n\r\n static inputTypes = Object.freeze([ \"bnk\" ]);\r\n\r\n static outputTypes = Object.freeze([ OUTPUT_RAW, OUTPUT_MEDIA ]);\r\n\r\n static debugOutputTypes = Object.freeze([ OUTPUT_BNK_JSON, OUTPUT_RAW ]);\r\n}\r\n\r\nexport default CjsBnkFormat;\r\n"],"names":["FORMAT_NAME","CjsBnkFormat","DEFAULT_VALUES","constructor","options","SetValues","normalizeValues","GetValues","Read","input","readWithValues","ReadAsync","Inspect","inspectWithValues","IsSupported","isSupportedWithValues","ToJSON","value","toJsonValue","read","readAsync","inspect","isSupported","extractMedia","mediaId","bytes","toBytes","metadata","toJSON","isBNK","wwise","Object","freeze","isSoundbanksInfo","parseSoundbanksInfo","buildSoundbanksCatalog","joinSoundbanksInfo","wwiseIdFromName","eventMediaFromBanks","musicNodesFromBanks","parseMusicSegment","parseMusicTrack","parseMusicPlaylist","parseMusicSwitch","Output","RAW","OUTPUT_RAW","JSON","OUTPUT_JSON","BNK_JSON","OUTPUT_BNK_JSON","MEDIA","OUTPUT_MEDIA","HIRC_TYPE_NAMES","type","mediaTypes","inputTypes","outputTypes","debugOutputTypes"],"mappings":"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"}
1
+ {"version":3,"file":"CjsBnkFormat.js","sources":["../../../../src/formats/bnk/CjsBnkFormat.js"],"sourcesContent":["import {\r\n buildSoundbanksCatalog,\r\n isSoundbanksInfo,\r\n joinSoundbanksInfo,\r\n parseSoundbanksInfo,\r\n wwiseIdFromName\r\n} from \"./core/soundbanksInfo.js\";\r\nimport {\r\n DEFAULT_VALUES,\r\n HIRC_TYPE_NAMES,\r\n OUTPUT_BNK_JSON,\r\n OUTPUT_JSON,\r\n OUTPUT_MEDIA,\r\n OUTPUT_RAW,\r\n extractMedia,\r\n inspectWithValues,\r\n isBNK,\r\n isSupportedWithValues,\r\n normalizeValues,\r\n readWithValues,\r\n toBytes,\r\n toJsonValue\r\n} from \"./core/helpers.js\";\r\nimport { eventMediaFromBanks } from \"./core/graph.js\";\r\nimport {\r\n musicNodesFromBanks,\r\n parseMusicPlaylist,\r\n parseMusicSegment,\r\n parseMusicSwitch,\r\n parseMusicTrack\r\n} from \"./core/musicNodes.js\";\r\n\r\nconst FORMAT_NAME = \"CjsBnkFormat\";\r\n\r\n/**\r\n * Reader for Audiokinetic Wwise soundbank (.bnk) containers.\r\n *\r\n * Inspection decodes the bank header, embedded media index, object hierarchy\r\n * listing (with version-stable typed fields), and referenced bank names\r\n * without copying payloads. Read can emit the raw bank, debug JSON, or the\r\n * embedded media items undecoded. The read path stays a pure container\r\n * reader; the Wwise-domain toolkit (SoundbanksInfo catalog helpers, id hash,\r\n * event -> media graph resolution) is grouped under the `wwise` static.\r\n */\r\nexport class CjsBnkFormat\n{\n #values = DEFAULT_VALUES;\n\n /**\n * Browser-worker module declaration consumed by CjsResManWorkerLoader.\n */\n static worker = Object.freeze({\n module: import.meta.url,\n exportName: \"CjsBnkFormat\"\n });\n\r\n /**\r\n * Create a reusable bnk format profile.\r\n *\r\n * @param {object} [options] Default read/inspect options.\r\n */\r\n constructor(options = {})\r\n {\r\n this.SetValues(options);\r\n }\r\n\r\n /**\r\n * Merge options into this profile.\r\n *\r\n * @param {object} [options] Values to merge.\r\n * @returns {CjsBnkFormat} This format profile.\r\n */\r\n SetValues(options = {})\r\n {\r\n this.#values = normalizeValues(this.#values, options, FORMAT_NAME);\r\n return this;\r\n }\r\n\r\n /**\r\n * Get normalized profile values with optional per-call overrides.\r\n *\r\n * @param {object} [options] Per-call values.\r\n * @returns {object} Normalized read values.\r\n */\r\n GetValues(options = {})\r\n {\r\n return normalizeValues(this.#values, options, FORMAT_NAME);\r\n }\r\n\r\n /**\r\n * Read soundbank bytes with this profile.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|DataView} input Soundbank bytes.\r\n * @param {object} [options] Per-call values.\r\n * @returns {object} GPU-free raw/debug/media payload for the selected emit target.\r\n */\r\n Read(input, options = {})\r\n {\r\n return readWithValues(input, this.GetValues(options));\r\n }\r\n\r\n /**\r\n * Read soundbank bytes asynchronously with this profile.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|DataView} input Soundbank bytes.\r\n * @param {object} [options] Per-call values.\r\n * @returns {Promise<object>} GPU-free raw/debug/media payload for the selected emit target.\r\n */\r\n async ReadAsync(input, options = {})\r\n {\r\n return this.Read(input, options);\r\n }\r\n\r\n /**\r\n * Inspect soundbank bytes without copying media payloads.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|DataView} input Soundbank bytes.\r\n * @param {object} [options] Per-call values.\r\n * @returns {object} Soundbank metadata.\r\n */\r\n Inspect(input, options = {})\r\n {\r\n return inspectWithValues(input, this.GetValues(options));\r\n }\r\n\r\n /**\r\n * Report whether soundbank input and requested output variants are supported.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|DataView} input Soundbank bytes.\r\n * @param {object} [options] Per-call values.\r\n * @returns {object} Support/probe report.\r\n */\r\n IsSupported(input, options = {})\r\n {\r\n return isSupportedWithValues(input, this.GetValues(options));\r\n }\r\n\r\n /**\r\n * Convert format output into JSON-compatible debug data.\r\n *\r\n * @param {any} value Format output.\r\n * @returns {any} JSON-compatible value.\r\n */\r\n ToJSON(value)\r\n {\r\n return toJsonValue(value);\r\n }\r\n\r\n /**\r\n * One-shot soundbank read.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|DataView} input Soundbank bytes.\r\n * @param {object} [options] Read options.\r\n * @returns {object} GPU-free raw/debug/media payload for the selected emit target.\r\n */\r\n static read(input, options = {})\r\n {\r\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME));\r\n }\r\n\r\n /**\r\n * One-shot asynchronous soundbank read.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|DataView} input Soundbank bytes.\r\n * @param {object} [options] Read options.\r\n * @returns {Promise<object>} GPU-free raw/debug/media payload for the selected emit target.\r\n */\r\n static async readAsync(input, options = {})\r\n {\r\n return CjsBnkFormat.read(input, options);\r\n }\r\n\r\n /**\r\n * One-shot soundbank inspection.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|DataView} input Soundbank bytes.\r\n * @param {object} [options] Inspect options.\r\n * @returns {object} Soundbank metadata.\r\n */\r\n static inspect(input, options = {})\r\n {\r\n return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME));\r\n }\r\n\r\n /**\r\n * One-shot soundbank support probe.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|DataView} input Soundbank bytes.\r\n * @param {object} [options] Probe options.\r\n * @returns {object} Support/probe report.\r\n */\r\n static isSupported(input, options = {})\r\n {\r\n return isSupportedWithValues(input, normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME));\r\n }\r\n\r\n /**\r\n * Extract embedded media payloads as views over the soundbank bytes.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|DataView} input Soundbank bytes.\r\n * @param {number} [mediaId] Optional single media id filter.\r\n * @returns {Array<object>} Extracted media items with undecoded bytes.\r\n */\r\n static extractMedia(input, mediaId)\r\n {\r\n const bytes = toBytes(input);\r\n const metadata = inspectWithValues(bytes, DEFAULT_VALUES);\r\n return extractMedia(bytes, metadata, mediaId);\r\n }\r\n\r\n /**\r\n * Convert format output into JSON-compatible debug data.\r\n *\r\n * @param {any} value Format output.\r\n * @returns {any} JSON-compatible value.\r\n */\r\n static toJSON(value)\r\n {\r\n return toJsonValue(value);\r\n }\r\n\r\n /**\r\n * Test whether bytes look like a Wwise soundbank.\r\n *\r\n * @param {Uint8Array|ArrayBuffer|DataView} input Candidate soundbank bytes.\r\n * @returns {boolean} True when the BKHD header chunk is present.\r\n */\r\n static isBNK(input)\r\n {\r\n try\r\n {\r\n return isBNK(toBytes(input));\r\n }\r\n catch\r\n {\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * Wwise-domain toolkit, grouped apart from the container-reading statics -\r\n * the single home for the SoundbanksInfo catalog helpers\r\n * (`isSoundbanksInfo`, `parseSoundbanksInfo`, `buildSoundbanksCatalog`,\r\n * `joinSoundbanksInfo`), the id hash (`wwiseIdFromName`, FNV-1 of the\r\n * lowercased name), and event-graph resolution.\r\n *\r\n * `eventMediaFromBanks(inspections, options)` is graph interpretation over\r\n * `inspect()` results, not a read path: banks may split events from their\r\n * target objects (EVE keeps all events in one bank and their sounds in\r\n * others), so always pass every related bank to one call. Returns\r\n * `{ eventMedia: Map<eventObjectId, Set<wemId>>, diagnostics }`. See\r\n * core/graph.js for the walk policy.\r\n *\r\n * The interactive-music decoders (`musicNodesFromBanks` and the per-type\r\n * `parseMusicSegment/Track/Playlist/Switch`) turn the music-hierarchy\r\n * entries (HIRC 10-13) into typed nodes - children, meter, cue markers,\r\n * clips, playlist trees, decision trees, and transition rules. See\r\n * core/musicNodes.js for the anchored, exact-end-validated parse.\r\n */\r\n static wwise = Object.freeze({\r\n isSoundbanksInfo,\r\n parseSoundbanksInfo,\r\n buildSoundbanksCatalog,\r\n joinSoundbanksInfo,\r\n wwiseIdFromName,\r\n eventMediaFromBanks,\r\n musicNodesFromBanks,\r\n parseMusicSegment,\r\n parseMusicTrack,\r\n parseMusicPlaylist,\r\n parseMusicSwitch\r\n });\r\n\r\n /**\r\n * Emit targets for this format (canonical frozen enum).\r\n */\r\n static Output = Object.freeze({\r\n RAW: OUTPUT_RAW,\r\n JSON: OUTPUT_JSON,\r\n BNK_JSON: OUTPUT_BNK_JSON,\r\n MEDIA: OUTPUT_MEDIA\r\n });\r\n\r\n static HIRC_TYPE_NAMES = HIRC_TYPE_NAMES;\r\n\r\n static type = Object.freeze([ \"audio\" ]);\r\n\r\n static mediaTypes = Object.freeze([ \"audio\" ]);\r\n\r\n static inputTypes = Object.freeze([ \"bnk\" ]);\r\n\r\n static outputTypes = Object.freeze([ OUTPUT_RAW, OUTPUT_MEDIA ]);\r\n\r\n static debugOutputTypes = Object.freeze([ OUTPUT_BNK_JSON, OUTPUT_RAW ]);\r\n}\r\n\r\nexport default CjsBnkFormat;\r\n"],"names":["FORMAT_NAME","CjsBnkFormat","DEFAULT_VALUES","worker","Object","freeze","module","import","meta","url","exportName","constructor","options","SetValues","normalizeValues","GetValues","Read","input","readWithValues","ReadAsync","Inspect","inspectWithValues","IsSupported","isSupportedWithValues","ToJSON","value","toJsonValue","read","readAsync","inspect","isSupported","extractMedia","mediaId","bytes","toBytes","metadata","toJSON","isBNK","wwise","isSoundbanksInfo","parseSoundbanksInfo","buildSoundbanksCatalog","joinSoundbanksInfo","wwiseIdFromName","eventMediaFromBanks","musicNodesFromBanks","parseMusicSegment","parseMusicTrack","parseMusicPlaylist","parseMusicSwitch","Output","RAW","OUTPUT_RAW","JSON","OUTPUT_JSON","BNK_JSON","OUTPUT_BNK_JSON","MEDIA","OUTPUT_MEDIA","HIRC_TYPE_NAMES","type","mediaTypes","inputTypes","outputTypes","debugOutputTypes"],"mappings":"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"}
@@ -39,6 +39,11 @@ const HIRC_TYPE_NAMES = Object.freeze({
39
39
  21: "envelope",
40
40
  22: "audio-device"
41
41
  });
42
+
43
+ /**
44
+ * Normalizes reader options against their supported defaults for the BNK format
45
+ * reader.
46
+ */
42
47
  function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = "CjsBnkFormat") {
43
48
  const values = {
44
49
  ...DEFAULT_VALUES,
@@ -49,12 +54,16 @@ function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = "CjsB
49
54
  values.emit = normalizeEmit(values.emit, readerName);
50
55
  return values;
51
56
  }
57
+
58
+ /** Normalizes the requested output representation for the BNK format reader. */
52
59
  function normalizeEmit(emit, readerName) {
53
60
  if (emit === undefined || emit === null) return OUTPUT_RAW;
54
61
  if (emit === OUTPUT_JSON) return OUTPUT_BNK_JSON;
55
62
  if ([OUTPUT_RAW, OUTPUT_BNK_JSON, OUTPUT_MEDIA].includes(emit)) return emit;
56
63
  throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(emit)}`);
57
64
  }
65
+
66
+ /** Returns a byte view over the supplied binary input for the BNK format reader. */
58
67
  function toBytes(input) {
59
68
  if (input instanceof Uint8Array) return input;
60
69
  if (input instanceof ArrayBuffer) return new Uint8Array(input);
@@ -266,6 +275,8 @@ function readNameTable(bytes, dataOffset, size) {
266
275
  }
267
276
  return names;
268
277
  }
278
+
279
+ /** Inspects input using normalized format options for the BNK format reader. */
269
280
  function inspectWithValues(input, values = DEFAULT_VALUES) {
270
281
  const bytes = toBytes(input);
271
282
  if (!isBNK(bytes)) {
@@ -306,6 +317,11 @@ function extractMedia(bytes, metadata, mediaId) {
306
317
  }
307
318
  return items;
308
319
  }
320
+
321
+ /**
322
+ * Reports whether input is supported under normalized format options for the BNK
323
+ * format reader.
324
+ */
309
325
  function isSupportedWithValues(input, values = DEFAULT_VALUES) {
310
326
  try {
311
327
  const metadata = inspectWithValues(input, values);
@@ -354,6 +370,8 @@ function isSupportedWithValues(input, values = DEFAULT_VALUES) {
354
370
  };
355
371
  }
356
372
  }
373
+
374
+ /** Reads input using normalized format options for the BNK format reader. */
357
375
  function readWithValues(input, values = DEFAULT_VALUES) {
358
376
  const bytes = toBytes(input);
359
377
  const metadata = inspectWithValues(bytes, values);
@@ -379,6 +397,8 @@ function readWithValues(input, values = DEFAULT_VALUES) {
379
397
  bytes
380
398
  };
381
399
  }
400
+
401
+ /** Converts a parsed payload into a JSON-safe value for the BNK format reader. */
382
402
  function toJsonValue(value) {
383
403
  if (value instanceof Uint8Array) return {
384
404
  byteLength: value.byteLength