@carbonenginejs/runtime-resource 0.9.2 → 0.10.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 (324) 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/payloadContract.js +20 -0
  20. package/dist/format/payloadContract.js.map +1 -1
  21. package/dist/formats/black/CjsBlackFormat.js +15 -1
  22. package/dist/formats/black/CjsBlackFormat.js.map +1 -1
  23. package/dist/formats/black/core/CjsBlackBinaryReader.js +103 -0
  24. package/dist/formats/black/core/CjsBlackBinaryReader.js.map +1 -1
  25. package/dist/formats/black/core/CjsBlackPropertyReaders.js +61 -0
  26. package/dist/formats/black/core/CjsBlackPropertyReaders.js.map +1 -1
  27. package/dist/formats/black/core/CjsBlackReader.js +125 -0
  28. package/dist/formats/black/core/CjsBlackReader.js.map +1 -1
  29. package/dist/formats/black/core/CjsBlackSchemaRegistry.js +103 -0
  30. package/dist/formats/black/core/CjsBlackSchemaRegistry.js.map +1 -1
  31. package/dist/formats/black/core/helpers.js +17 -0
  32. package/dist/formats/black/core/helpers.js.map +1 -1
  33. package/dist/formats/bnk/CjsBnkFormat.js +8 -0
  34. package/dist/formats/bnk/CjsBnkFormat.js.map +1 -1
  35. package/dist/formats/bnk/core/helpers.js +20 -0
  36. package/dist/formats/bnk/core/helpers.js.map +1 -1
  37. package/dist/formats/bnk/core/musicNodes.js +40 -3
  38. package/dist/formats/bnk/core/musicNodes.js.map +1 -1
  39. package/dist/formats/bnk/core/soundbanksInfo.js +2 -0
  40. package/dist/formats/bnk/core/soundbanksInfo.js.map +1 -1
  41. package/dist/formats/cmf/core/binary.js +71 -0
  42. package/dist/formats/cmf/core/binary.js.map +1 -1
  43. package/dist/formats/cmf/core/buffers.js +4 -0
  44. package/dist/formats/cmf/core/buffers.js.map +1 -1
  45. package/dist/formats/cmf/core/helpers.js +31 -0
  46. package/dist/formats/cmf/core/helpers.js.map +1 -1
  47. package/dist/formats/cmf/core/schema.js +10 -0
  48. package/dist/formats/cmf/core/schema.js.map +1 -1
  49. package/dist/formats/cmf/core/shared.js +9 -0
  50. package/dist/formats/cmf/core/shared.js.map +1 -1
  51. package/dist/formats/cmf/core/writer.js +54 -0
  52. package/dist/formats/cmf/core/writer.js.map +1 -1
  53. package/dist/formats/dds/core/bc6h.js +10 -0
  54. package/dist/formats/dds/core/bc6h.js.map +1 -1
  55. package/dist/formats/dds/core/bc7.js +16 -0
  56. package/dist/formats/dds/core/bc7.js.map +1 -1
  57. package/dist/formats/dds/core/helpers.js +47 -0
  58. package/dist/formats/dds/core/helpers.js.map +1 -1
  59. package/dist/formats/fbx/core/helpers.js +21 -0
  60. package/dist/formats/fbx/core/helpers.js.map +1 -1
  61. package/dist/formats/flac/CjsFlacFormat.js +49 -0
  62. package/dist/formats/flac/CjsFlacFormat.js.map +1 -1
  63. package/dist/formats/flac/core/helpers.js +20 -0
  64. package/dist/formats/flac/core/helpers.js.map +1 -1
  65. package/dist/formats/gif/CjsGifFormat.js +49 -0
  66. package/dist/formats/gif/CjsGifFormat.js.map +1 -1
  67. package/dist/formats/gif/core/helpers.js +20 -0
  68. package/dist/formats/gif/core/helpers.js.map +1 -1
  69. package/dist/formats/gltf/core/helpers.js +15 -0
  70. package/dist/formats/gltf/core/helpers.js.map +1 -1
  71. package/dist/formats/gltf/core/parser.js +13 -0
  72. package/dist/formats/gltf/core/parser.js.map +1 -1
  73. package/dist/formats/gltf/core/targets.js +10 -0
  74. package/dist/formats/gltf/core/targets.js.map +1 -1
  75. package/dist/formats/gr2/core/bitknit2.js +2 -0
  76. package/dist/formats/gr2/core/bitknit2.js.map +1 -1
  77. package/dist/formats/gr2/core/helpers.js +20 -0
  78. package/dist/formats/gr2/core/helpers.js.map +1 -1
  79. package/dist/formats/gr2/core/targets.js +10 -0
  80. package/dist/formats/gr2/core/targets.js.map +1 -1
  81. package/dist/formats/jpeg/core/helpers.js +52 -0
  82. package/dist/formats/jpeg/core/helpers.js.map +1 -1
  83. package/dist/formats/jpeg/core/jpeg.js +93 -0
  84. package/dist/formats/jpeg/core/jpeg.js.map +1 -1
  85. package/dist/formats/mp3/core/helpers.js +37 -0
  86. package/dist/formats/mp3/core/helpers.js.map +1 -1
  87. package/dist/formats/mp4/core/helpers.js +35 -0
  88. package/dist/formats/mp4/core/helpers.js.map +1 -1
  89. package/dist/formats/ogg/CjsOggFormat.js +49 -0
  90. package/dist/formats/ogg/CjsOggFormat.js.map +1 -1
  91. package/dist/formats/ogg/core/helpers.js +23 -0
  92. package/dist/formats/ogg/core/helpers.js.map +1 -1
  93. package/dist/formats/ogg/core/vorbis.js +13 -0
  94. package/dist/formats/ogg/core/vorbis.js.map +1 -1
  95. package/dist/formats/png/core/helpers.js +52 -0
  96. package/dist/formats/png/core/helpers.js.map +1 -1
  97. package/dist/formats/red/CjsRedFormat.js +2 -0
  98. package/dist/formats/red/CjsRedFormat.js.map +1 -1
  99. package/dist/formats/red/core/CjsRedReader.js +52 -0
  100. package/dist/formats/red/core/CjsRedReader.js.map +1 -1
  101. package/dist/formats/red/core/helpers.js +19 -0
  102. package/dist/formats/red/core/helpers.js.map +1 -1
  103. package/dist/formats/stl/core/stl.js +8 -0
  104. package/dist/formats/stl/core/stl.js.map +1 -1
  105. package/dist/formats/stl/core/targets.js +10 -0
  106. package/dist/formats/stl/core/targets.js.map +1 -1
  107. package/dist/formats/tga/core/helpers.js +47 -0
  108. package/dist/formats/tga/core/helpers.js.map +1 -1
  109. package/dist/formats/wav/core/helpers.js +37 -0
  110. package/dist/formats/wav/core/helpers.js.map +1 -1
  111. package/dist/formats/webm/core/helpers.js +35 -0
  112. package/dist/formats/webm/core/helpers.js.map +1 -1
  113. package/dist/formats/webp/CjsWebpFormat.js +49 -0
  114. package/dist/formats/webp/CjsWebpFormat.js.map +1 -1
  115. package/dist/formats/webp/core/helpers.js +23 -0
  116. package/dist/formats/webp/core/helpers.js.map +1 -1
  117. package/dist/formats/wem/CjsWemFormat.js +8 -0
  118. package/dist/formats/wem/CjsWemFormat.js.map +1 -1
  119. package/dist/formats/wem/core/bitStream.js +2 -0
  120. package/dist/formats/wem/core/bitStream.js.map +1 -1
  121. package/dist/formats/wem/core/helpers.js +20 -0
  122. package/dist/formats/wem/core/helpers.js.map +1 -1
  123. package/dist/formats/yaml/CjsYamlFormat.js +45 -0
  124. package/dist/formats/yaml/CjsYamlFormat.js.map +1 -1
  125. package/dist/formats/yaml/core/CjsYamlReader.js +91 -0
  126. package/dist/formats/yaml/core/CjsYamlReader.js.map +1 -1
  127. package/dist/formats/yaml/core/helpers.js +10 -0
  128. package/dist/formats/yaml/core/helpers.js.map +1 -1
  129. package/dist/index.js +56 -43
  130. package/dist/index.js.map +1 -1
  131. package/dist/{CjsResource.js → resource/CjsResource.js} +232 -17
  132. package/dist/resource/CjsResource.js.map +1 -0
  133. package/dist/{resources → resource}/Tr2LightProfileRes.js +4 -3
  134. package/dist/resource/Tr2LightProfileRes.js.map +1 -0
  135. package/dist/{resources → resource/audio}/AudioGeometryResData.js +1 -1
  136. package/dist/resource/audio/AudioGeometryResData.js.map +1 -0
  137. package/dist/resource/audio/CjsAudioBufferRes.js +86 -0
  138. package/dist/resource/audio/CjsAudioBufferRes.js.map +1 -0
  139. package/dist/resource/audio/CjsAudioRes.js +213 -0
  140. package/dist/resource/audio/CjsAudioRes.js.map +1 -0
  141. package/dist/resource/audio/index.js +4 -0
  142. package/dist/resource/audio/index.js.map +1 -0
  143. package/dist/{resources → resource/geometry}/MeshDecalData.js +1 -1
  144. package/dist/resource/geometry/MeshDecalData.js.map +1 -0
  145. package/dist/{resources → resource/geometry}/MeshDecalLodData.js +1 -1
  146. package/dist/resource/geometry/MeshDecalLodData.js.map +1 -0
  147. package/dist/resource/geometry/TriGeometryRes.js +656 -0
  148. package/dist/resource/geometry/TriGeometryRes.js.map +1 -0
  149. package/dist/{resources → resource/geometry}/TriGeometryResAreaData.js +1 -1
  150. package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -0
  151. package/dist/{resources → resource/geometry}/TriGeometryResJointData.js +1 -1
  152. package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -0
  153. package/dist/{resources → resource/geometry}/TriGeometryResLodData.js +1 -1
  154. package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -0
  155. package/dist/{resources → resource/geometry}/TriGeometryResMeshData.js +1 -1
  156. package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -0
  157. package/dist/{resources → resource/geometry}/TriGeometryResSkeletonData.js +1 -1
  158. package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -0
  159. package/dist/{resources → resource/geometry}/TriJointBinding.js +1 -1
  160. package/dist/resource/geometry/TriJointBinding.js.map +1 -0
  161. package/dist/{resources → resource/geometry}/TriMorphTargetGeometryConstants.js +1 -1
  162. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -0
  163. package/dist/{resources → resource/geometry}/TriRtGeometryConstants.js +1 -1
  164. package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -0
  165. package/dist/{resources → resource/geometry/granny}/GStateBindingCallbackData.js +1 -1
  166. package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -0
  167. package/dist/{resources → resource/geometry/granny}/Tr2GrannyIntersectionResult.js +1 -1
  168. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -0
  169. package/dist/{resources → resource/geometry/granny}/Tr2GrannyStateRes.js +6 -5
  170. package/dist/resource/geometry/granny/Tr2GrannyStateRes.js.map +1 -0
  171. package/dist/{resources → resource/geometry/granny}/TriGrannyRes.js +6 -5
  172. package/dist/resource/geometry/granny/TriGrannyRes.js.map +1 -0
  173. package/dist/{resources → resource/geometry/granny}/enums.js +1 -9
  174. package/dist/resource/geometry/granny/enums.js.map +1 -0
  175. package/dist/resource/geometry/granny/index.js +6 -0
  176. package/dist/resource/geometry/granny/index.js.map +1 -0
  177. package/dist/resource/geometry/index.js +17 -0
  178. package/dist/resource/geometry/index.js.map +1 -0
  179. package/dist/resource/index.js +52 -0
  180. package/dist/resource/index.js.map +1 -0
  181. package/dist/resource/resourceBoundary.js +64 -0
  182. package/dist/resource/resourceBoundary.js.map +1 -0
  183. package/dist/resource/shader/Tr2EffectRes.js +420 -0
  184. package/dist/resource/shader/Tr2EffectRes.js.map +1 -0
  185. package/dist/{resources → resource/shader}/Tr2MaterialArea.js +9 -4
  186. package/dist/resource/shader/Tr2MaterialArea.js.map +1 -0
  187. package/dist/{resources → resource/shader}/Tr2MaterialMesh.js +8 -3
  188. package/dist/resource/shader/Tr2MaterialMesh.js.map +1 -0
  189. package/dist/{resources → resource/shader}/Tr2MaterialRes.js +10 -4
  190. package/dist/resource/shader/Tr2MaterialRes.js.map +1 -0
  191. package/dist/resource/shader/Tr2Shader.js +250 -0
  192. package/dist/resource/shader/Tr2Shader.js.map +1 -0
  193. package/dist/{resources → resource/shader}/Tr2ShaderPermutation.js +13 -7
  194. package/dist/resource/shader/Tr2ShaderPermutation.js.map +1 -0
  195. package/dist/resource/shader/index.js +17 -0
  196. package/dist/resource/shader/index.js.map +1 -0
  197. package/dist/resource/shader/portable.js +33 -0
  198. package/dist/resource/shader/portable.js.map +1 -0
  199. package/dist/resource/shader/portableValidation.js +461 -0
  200. package/dist/resource/shader/portableValidation.js.map +1 -0
  201. package/dist/resource/shader/reflection/Tr2EffectConstant.js +100 -0
  202. package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -0
  203. package/dist/resource/shader/reflection/Tr2EffectDefine.js +34 -0
  204. package/dist/resource/shader/reflection/Tr2EffectDefine.js.map +1 -0
  205. package/dist/resource/shader/reflection/Tr2EffectDescription.js +113 -0
  206. package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -0
  207. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +141 -0
  208. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -0
  209. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +107 -0
  210. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -0
  211. package/dist/resource/shader/reflection/Tr2EffectResource.js +90 -0
  212. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -0
  213. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +235 -0
  214. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -0
  215. package/dist/resource/shader/reflection/Tr2EffectTechnique.js +71 -0
  216. package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -0
  217. package/dist/resource/shader/reflection/Tr2Pass.js +111 -0
  218. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -0
  219. package/dist/resource/shader/sampler/Tr2SamplerSetup.js +80 -0
  220. package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -0
  221. package/dist/{texture → resource/texture}/CjsTextureArrayRes.js +83 -6
  222. package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -0
  223. package/dist/{texture/CjsTextureParameterProxy.js → resource/texture/CjsTextureArrayResParameterProxy.js} +56 -10
  224. package/dist/resource/texture/CjsTextureArrayResParameterProxy.js.map +1 -0
  225. package/dist/{resources → resource/texture}/Tr2ImageRes.js +6 -4
  226. package/dist/resource/texture/Tr2ImageRes.js.map +1 -0
  227. package/dist/{resources → resource/texture}/Tr2TextureLodManager.js +3 -1
  228. package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -0
  229. package/dist/{resources → resource/texture}/Tr2TextureLodUpdateRequest.js +1 -1
  230. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -0
  231. package/dist/{resources → resource/texture}/Tr2TexturePackChannel.js +1 -1
  232. package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -0
  233. package/dist/{resources → resource/texture}/Tr2TexturePipeline.js +6 -4
  234. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -0
  235. package/dist/{resources → resource/texture}/Tr2TexturePipelineParams.js +1 -1
  236. package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -0
  237. package/dist/{resources → resource/texture}/Tr2TexturePipelineStepCompress.js +1 -1
  238. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -0
  239. package/dist/{resources → resource/texture}/Tr2TexturePipelineStepGenerateMips.js +1 -1
  240. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -0
  241. package/dist/{resources → resource/texture}/Tr2TexturePipelineStepLimitSize.js +1 -1
  242. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -0
  243. package/dist/{resources → resource/texture}/Tr2TexturePipelineStepLoad.js +1 -1
  244. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -0
  245. package/dist/{resources → resource/texture}/Tr2TexturePipelineStepPack.js +1 -1
  246. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -0
  247. package/dist/{resources → resource/texture}/TriTextureRes.js +42 -26
  248. package/dist/resource/texture/TriTextureRes.js.map +1 -0
  249. package/dist/resource/texture/index.js +15 -0
  250. package/dist/resource/texture/index.js.map +1 -0
  251. package/dist/{resources → resource/texture}/texturePipelineBehavior.js +59 -59
  252. package/dist/resource/texture/texturePipelineBehavior.js.map +1 -0
  253. package/dist/worker/CjsResManMainThreadLoader.js +87 -0
  254. package/dist/worker/CjsResManMainThreadLoader.js.map +1 -0
  255. package/dist/worker/CjsResManWorker.js +217 -0
  256. package/dist/worker/CjsResManWorker.js.map +1 -0
  257. package/dist/worker/CjsResManWorkerLoader.js +434 -0
  258. package/dist/worker/CjsResManWorkerLoader.js.map +1 -0
  259. package/dist/worker/protocol.js +12 -0
  260. package/dist/worker/protocol.js.map +1 -0
  261. package/docs/README.md +16 -3
  262. package/docs/architecture.md +39 -16
  263. package/docs/concepts/resource-lifecycle.md +2 -1
  264. package/docs/formats/README.md +4 -0
  265. package/docs/reference/classes/README.md +6 -4
  266. package/docs/reference/classes/audio.md +30 -0
  267. package/docs/reference/classes/core.md +31 -11
  268. package/docs/reference/classes/resources.md +151 -41
  269. package/docs/reference/classes/texture.md +7 -7
  270. package/docs/reference/motherlode-cache.md +17 -0
  271. package/docs/reference/queues.md +9 -1
  272. package/docs/reference/workers.md +135 -0
  273. package/docs/roadmap.md +27 -1
  274. package/package.json +8 -1
  275. package/dist/CjsResManQueue.js.map +0 -1
  276. package/dist/CjsResource.js.map +0 -1
  277. package/dist/CjsResourceSource.js +0 -68
  278. package/dist/CjsResourceSource.js.map +0 -1
  279. package/dist/resourcePath.js +0 -18
  280. package/dist/resourcePath.js.map +0 -1
  281. package/dist/resourceStates.js +0 -9
  282. package/dist/resourceStates.js.map +0 -1
  283. package/dist/resources/AudioGeometryResData.js.map +0 -1
  284. package/dist/resources/GStateBindingCallbackData.js.map +0 -1
  285. package/dist/resources/MeshDecalData.js.map +0 -1
  286. package/dist/resources/MeshDecalLodData.js.map +0 -1
  287. package/dist/resources/Tr2EffectRes.js +0 -71
  288. package/dist/resources/Tr2EffectRes.js.map +0 -1
  289. package/dist/resources/Tr2GrannyIntersectionResult.js.map +0 -1
  290. package/dist/resources/Tr2GrannyStateRes.js.map +0 -1
  291. package/dist/resources/Tr2ImageRes.js.map +0 -1
  292. package/dist/resources/Tr2LightProfileRes.js.map +0 -1
  293. package/dist/resources/Tr2MaterialArea.js.map +0 -1
  294. package/dist/resources/Tr2MaterialMesh.js.map +0 -1
  295. package/dist/resources/Tr2MaterialRes.js.map +0 -1
  296. package/dist/resources/Tr2ShaderPermutation.js.map +0 -1
  297. package/dist/resources/Tr2TextureLodManager.js.map +0 -1
  298. package/dist/resources/Tr2TextureLodUpdateRequest.js.map +0 -1
  299. package/dist/resources/Tr2TexturePackChannel.js.map +0 -1
  300. package/dist/resources/Tr2TexturePipeline.js.map +0 -1
  301. package/dist/resources/Tr2TexturePipelineParams.js.map +0 -1
  302. package/dist/resources/Tr2TexturePipelineStepCompress.js.map +0 -1
  303. package/dist/resources/Tr2TexturePipelineStepGenerateMips.js.map +0 -1
  304. package/dist/resources/Tr2TexturePipelineStepLimitSize.js.map +0 -1
  305. package/dist/resources/Tr2TexturePipelineStepLoad.js.map +0 -1
  306. package/dist/resources/Tr2TexturePipelineStepPack.js.map +0 -1
  307. package/dist/resources/TriGeometryRes.js +0 -239
  308. package/dist/resources/TriGeometryRes.js.map +0 -1
  309. package/dist/resources/TriGeometryResAreaData.js.map +0 -1
  310. package/dist/resources/TriGeometryResJointData.js.map +0 -1
  311. package/dist/resources/TriGeometryResLodData.js.map +0 -1
  312. package/dist/resources/TriGeometryResMeshData.js.map +0 -1
  313. package/dist/resources/TriGeometryResSkeletonData.js.map +0 -1
  314. package/dist/resources/TriGrannyRes.js.map +0 -1
  315. package/dist/resources/TriJointBinding.js.map +0 -1
  316. package/dist/resources/TriMorphTargetGeometryConstants.js.map +0 -1
  317. package/dist/resources/TriRtGeometryConstants.js.map +0 -1
  318. package/dist/resources/TriTextureRes.js.map +0 -1
  319. package/dist/resources/enums.js.map +0 -1
  320. package/dist/resources/resourceBoundary.js +0 -47
  321. package/dist/resources/resourceBoundary.js.map +0 -1
  322. package/dist/resources/texturePipelineBehavior.js.map +0 -1
  323. package/dist/texture/CjsTextureArrayRes.js.map +0 -1
  324. package/dist/texture/CjsTextureParameterProxy.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CjsBlackReader.js","sources":["../../../../../src/formats/black/core/CjsBlackReader.js"],"sourcesContent":["import { CjsCarbonDocument } from \"@carbonenginejs/runtime-utils/document\";\nimport { CjsSchema } from \"@carbonenginejs/runtime-utils/schema\";\n\nimport { CjsBlueReader } from \"../../../format/CjsBlueReader.js\";\n\nimport {\n CJS_BLACK_FORMAT_ID,\n CJS_BLACK_FOURCC,\n CJS_BLACK_VERSION\n} from \"./blackConstants.js\";\nimport { CjsBlackBinaryReader } from \"./CjsBlackBinaryReader.js\";\nimport { CjsBlackPropertyReaders } from \"./CjsBlackPropertyReaders.js\";\nimport { CjsBlackSchemaRegistry } from \"./CjsBlackSchemaRegistry.js\";\n\n/**\n * Reads a `.black` stream into a payload/document/runtime graph.\n *\n * This transport owns the binary buffer, string tables, numeric references,\n * and binary read cursor. `ResetReadState()` clears only per-read graph state;\n * each read entrypoint separately restores the cursor to `dataOffset`.\n */\nexport class CjsBlackReader extends CjsBlueReader\n{\n constructor(input, options = {})\n {\n super(options, {\n schemaRegistry: CjsBlackSchemaRegistry,\n defaultRegistry: CjsSchema,\n includeShapeContext: true,\n includeSourceShape: true,\n includeEmptyPayloadType: true,\n requirePayloadReferenceTarget: true\n });\n this.reader = CjsBlackBinaryReader.from(input, this);\n this.references = new Map();\n this.nodes = [];\n this.nextNodeId = 1;\n this.info = null;\n this.readMode = \"payload\";\n this.payloadDepth = 0;\n this.payloadRootFields = null;\n }\n\n Inspect()\n {\n if (this.info) return this.info;\n\n const reader = this.reader;\n reader.ExpectU32(CJS_BLACK_FOURCC, \"Invalid Black FOURCC\");\n\n const version = reader.ReadU32();\n if (version !== CJS_BLACK_VERSION)\n {\n throw new RangeError(`Unsupported Black version: ${version}`);\n }\n\n const strings = CjsBlackReader.readStringTable(reader);\n const wideStrings = CjsBlackReader.readWideStringTable(reader);\n\n this.info = {\n format: {\n id: CJS_BLACK_FORMAT_ID,\n version\n },\n byteLength: reader.data.byteLength,\n dataOffset: reader.offset,\n strings,\n wideStrings\n };\n\n return this.info;\n }\n\n Read()\n {\n return this.ReadPayload();\n }\n\n ReadDocument()\n {\n const info = this.Inspect();\n this.ResetReadState();\n this.readMode = \"document\";\n this.reader.offset = info.dataOffset;\n\n const rootRef = this.ReadObject(this.reader);\n if (!CjsCarbonDocument.isRef(rootRef))\n {\n throw new TypeError(\"Black root object is null\");\n }\n\n this.reader.ExpectEnd(\"Black object graph did not read to end\");\n\n const includeRefIndex = this.ShouldIncludeRefIndex();\n const refs = {};\n if (includeRefIndex)\n {\n for (const node of this.nodes)\n {\n refs[String(node.id)] = {\n kind: node.kind\n };\n }\n }\n\n return CjsCarbonDocument.create({\n format: info.format,\n roots: [{ name: this.options.rootName || \"default\", ref: rootRef }],\n nodes: this.nodes,\n refs: includeRefIndex ? refs : null,\n metadata: this.CreateDocumentMetadata(info),\n reports: this.reports\n });\n }\n\n ReadRuntime()\n {\n const info = this.Inspect();\n this.ResetReadState();\n this.readMode = \"runtime\";\n this.reader.offset = info.dataOffset;\n\n const root = this.ReadObject(this.reader);\n if (root === null)\n {\n throw new TypeError(\"Black root object is null\");\n }\n\n this.reader.ExpectEnd(\"Black object graph did not read to end\");\n\n this.FinalizeRuntimeInstances();\n\n return {\n root,\n format: info.format,\n reports: this.reports\n };\n }\n\n ReadPayload()\n {\n const info = this.Inspect();\n this.ResetReadState();\n this.readMode = \"payload\";\n this.ValidatePayloadConfiguration();\n this.reader.offset = info.dataOffset;\n\n const object = this.ReadObject(this.reader);\n if (object === null)\n {\n throw new TypeError(\"Black root object is null\");\n }\n\n this.reader.ExpectEnd(\"Black object graph did not read to end\");\n\n const payload = {\n comments: this.reports,\n object\n };\n\n if (this.ShouldIncludeDocumentMetadata())\n {\n payload.metadata = this.CreateDocumentMetadata(info);\n }\n\n return payload;\n }\n\n ReadObject(reader)\n {\n if (this.readMode === \"runtime\") return this.ReadRuntimeObject(reader);\n if (this.readMode === \"payload\") return this.ReadPayloadObject(reader);\n\n const blackReference = reader.ReadU32();\n if (blackReference === 0) return null;\n\n const existing = this.references.get(blackReference);\n if (existing) return CjsCarbonDocument.createRef(existing);\n\n return this.ReadObjectPayload(reader, {\n blackReference,\n embedded: false\n });\n }\n\n ReadEmbeddedObject(reader)\n {\n if (this.readMode === \"runtime\") return this.ReadRuntimeObjectPayload(reader, {\n blackReference: null,\n embedded: true\n });\n\n if (this.readMode === \"payload\") return this.ReadPayloadObjectPayload(reader, {\n blackReference: null,\n embedded: true\n });\n\n return this.ReadObjectPayload(reader, {\n blackReference: null,\n embedded: true\n });\n }\n\n ReadObjectPayload(reader, options)\n {\n const payloadSize = reader.ReadU32();\n const objectReader = reader.ReadBinaryReader(payloadSize);\n const kind = objectReader.ReadStringRef();\n const shape = this.ResolveSourceShape(kind);\n const includeClassMetadata = this.ShouldIncludeClassMetadata();\n const includeFieldTrace = this.ShouldIncludeFieldTrace();\n const node = {\n id: this.nextNodeId++,\n kind,\n fields: {},\n ...(includeClassMetadata ? {\n source: shape?.source || {},\n meta: {\n family: shape?.family || null,\n hashes: shape?.hashes || null,\n blue: shape?.blue || null\n }\n } : {}),\n ...(includeFieldTrace ? {\n meta: {\n ...(includeClassMetadata ? {\n family: shape?.family || null,\n hashes: shape?.hashes || null,\n blue: shape?.blue || null\n } : {}),\n black: {\n reference: options.blackReference,\n embedded: options.embedded,\n payloadSize,\n fields: {}\n }\n }\n } : {}),\n raw: null\n };\n\n this.nodes.push(node);\n if (options.blackReference !== null)\n {\n this.references.set(options.blackReference, node.id);\n }\n\n let previousBlackName = null;\n while (!objectReader.AtEnd())\n {\n const blackName = objectReader.ReadStringRef();\n const target = this.ResolveFieldTargetWithContext(kind, shape, blackName, previousBlackName);\n const value = this.ReadFieldValueWithContext(objectReader, kind, blackName, target);\n this.AssignFieldValue(node, target, value);\n previousBlackName = blackName;\n }\n\n objectReader.ExpectEnd(`${kind} did not read to end`);\n return CjsCarbonDocument.createRef(node.id);\n }\n\n ReadRuntimeObject(reader)\n {\n const blackReference = reader.ReadU32();\n if (blackReference === 0) return null;\n\n if (this.references.has(blackReference))\n {\n return this.references.get(blackReference);\n }\n\n return this.ReadRuntimeObjectPayload(reader, {\n blackReference,\n embedded: false\n });\n }\n\n ReadRuntimeObjectPayload(reader, options)\n {\n const payloadSize = reader.ReadU32();\n const objectReader = reader.ReadBinaryReader(payloadSize);\n const kind = objectReader.ReadStringRef();\n const shape = this.ResolveSourceShape(kind);\n const target = this.CreateRuntimeTarget(kind, shape);\n\n if (options.blackReference !== null)\n {\n this.references.set(options.blackReference, target);\n }\n\n // Accumulate this object's fields into a plain values map, then hand\n // the whole map to the hydration adapter. The adapter (default:\n // Object.assign) decides how the caller's class receives its values -\n // direct assignment, SetValues, etc. The target instance is already\n // registered above, so back-references resolve to it while its values\n // are still being collected (the adapter must mutate in place).\n const values = {};\n let previousBlackName = null;\n while (!objectReader.AtEnd())\n {\n const blackName = objectReader.ReadStringRef();\n const fieldTarget = this.ResolveFieldTargetWithContext(kind, shape, blackName, previousBlackName);\n const value = this.ReadFieldValueWithContext(objectReader, kind, blackName, fieldTarget);\n this.AssignRuntimeFieldValue(values, fieldTarget, value);\n previousBlackName = blackName;\n }\n\n objectReader.ExpectEnd(`${kind} did not read to end`);\n this.ApplyRuntimeValues(target, values, kind, shape);\n return target;\n }\n\n ReadPayloadObject(reader)\n {\n const blackReference = reader.ReadU32();\n if (blackReference === 0) return null;\n\n if (this.references.has(blackReference))\n {\n return this.CreatePayloadReference(this.references.get(blackReference), blackReference);\n }\n\n return this.ReadPayloadObjectPayload(reader, {\n blackReference,\n embedded: false\n });\n }\n\n ReadPayloadObjectPayload(reader, options)\n {\n const payloadSize = reader.ReadU32();\n const objectReader = reader.ReadBinaryReader(payloadSize);\n const kind = objectReader.ReadStringRef();\n const shape = this.ResolveSourceShape(kind);\n const target = this.CreatePayloadTarget(kind);\n\n if (options.blackReference !== null)\n {\n this.references.set(options.blackReference, target);\n }\n\n this.payloadDepth++;\n try\n {\n let previousBlackName = null;\n while (!objectReader.AtEnd())\n {\n const blackName = objectReader.ReadStringRef();\n const fieldTarget = this.ResolveFieldTargetWithContext(kind, shape, blackName, previousBlackName);\n if (this.ShouldSkipPayloadField(fieldTarget))\n {\n this.SkipFieldValue(objectReader, fieldTarget);\n previousBlackName = blackName;\n continue;\n }\n\n const value = this.ReadFieldValueWithContext(objectReader, kind, blackName, fieldTarget);\n this.AssignPayloadFieldValue(target, fieldTarget, value);\n previousBlackName = blackName;\n }\n }\n finally\n {\n this.payloadDepth--;\n }\n\n objectReader.ExpectEnd(`${kind} did not read to end`);\n return target;\n }\n\n CreateSkippedPayloadTarget()\n {\n return {};\n }\n\n GetPayloadRootFields()\n {\n if (this.payloadRootFields !== null) return this.payloadRootFields;\n\n const fields = this.options.payloadRootFields ?? this.options.rootFields ?? null;\n if (!fields)\n {\n this.payloadRootFields = false;\n return this.payloadRootFields;\n }\n\n this.payloadRootFields = new Set((Array.isArray(fields) ? fields : [fields]).map(String));\n return this.payloadRootFields;\n }\n\n ShouldSkipPayloadField(target)\n {\n if (this.readMode !== \"payload\" || this.payloadDepth !== 1) return false;\n const rootFields = this.GetPayloadRootFields();\n if (!rootFields) return false;\n const fieldName = target.unknown ? target.blackName : target.field.name;\n return !rootFields.has(fieldName);\n }\n\n SkipFieldValue(reader, target)\n {\n if (target.unknown)\n {\n this.ReadUnknownFieldValue(reader, null, target.blackName);\n return;\n }\n\n CjsBlackPropertyReaders.skipValue(reader, target.field);\n }\n\n SkipObject(reader)\n {\n const blackReference = reader.ReadU32();\n if (blackReference === 0) return;\n\n if (this.references.has(blackReference)) return;\n\n this.references.set(blackReference, this.CreateSkippedPayloadTarget());\n this.SkipObjectPayload(reader);\n }\n\n SkipEmbeddedObject(reader)\n {\n this.SkipObjectPayload(reader);\n }\n\n SkipObjectPayload(reader)\n {\n const payloadSize = reader.ReadU32();\n const objectReader = reader.ReadBinaryReader(payloadSize);\n const kind = objectReader.ReadStringRef();\n const shape = this.ResolveSourceShape(kind);\n\n while (!objectReader.AtEnd())\n {\n const blackName = objectReader.ReadStringRef();\n const fieldTarget = this.ResolveFieldTarget(kind, shape, blackName);\n this.SkipFieldValue(objectReader, fieldTarget);\n }\n\n objectReader.ExpectEnd(`${kind} did not read to end`);\n }\n\n ShouldIncludeClassMetadata()\n {\n return Boolean(this.options.includeClassMetadata || this.options.trace || this.options.debug);\n }\n\n ShouldIncludeFieldTrace()\n {\n return Boolean(this.options.includeFieldTrace || this.options.trace || this.options.debug);\n }\n\n ShouldIncludeDocumentMetadata()\n {\n return Boolean(this.options.includeMetadata || this.options.trace || this.options.debug || this.options.metadata);\n }\n\n ShouldIncludeRefIndex()\n {\n return Boolean(this.options.includeRefIndex || this.options.trace || this.options.debug);\n }\n\n CreateDocumentMetadata(info)\n {\n if (!this.ShouldIncludeDocumentMetadata()) return this.options.metadata || null;\n\n return {\n black: {\n stringCount: info.strings.length,\n wideStringCount: info.wideStrings.length,\n wideStrings: info.wideStrings.slice()\n },\n ...(this.options.metadata || {})\n };\n }\n\n ResolveFieldTargetWithContext(kind, shape, blackName, previousBlackName = null)\n {\n try\n {\n return this.ResolveFieldTarget(kind, shape, blackName);\n }\n catch (error)\n {\n error.message = `${kind}.${blackName} after ${previousBlackName || \"<start>\"}: ${error.message}`;\n throw error;\n }\n }\n\n ReadFieldValueWithContext(reader, kind, blackName, target)\n {\n try\n {\n return target.unknown\n ? this.ReadUnknownFieldValue(reader, kind, blackName)\n : CjsBlackPropertyReaders.readValue(reader, target.field);\n }\n catch (error)\n {\n error.message = `${kind}.${blackName}: ${error.message}`;\n throw error;\n }\n }\n\n AssignFieldValue(node, target, value)\n {\n if (target.unknown)\n {\n node.raw = node.raw || {};\n node.raw[target.blackName] = value;\n this.AssignFieldTrace(node, target);\n return;\n }\n\n if (target.indexed)\n {\n let current = node.fields[target.field.name];\n if (!current || typeof current !== \"object\" || CjsCarbonDocument.isRef(current))\n {\n current = Number.isInteger(target.index) ? [] : {};\n node.fields[target.field.name] = current;\n }\n\n current[target.key] = value;\n }\n else\n {\n node.fields[target.field.name] = value;\n }\n\n this.AssignFieldTrace(node, target);\n }\n\n AssignFieldTrace(node, target)\n {\n if (!this.ShouldIncludeFieldTrace()) return;\n\n node.meta.black.fields[target.blackName] = {\n field: target.field.name,\n cppName: target.field.cppName || null,\n member: target.member,\n indexed: target.indexed,\n indexToken: target.indexToken,\n key: target.key\n };\n }\n\n ResolveFieldTarget(kind, shape, blackName)\n {\n if (!shape)\n {\n throw new TypeError(`No source shape registered for Black type ${kind}`);\n }\n\n const fields = shape.fields || [];\n const blackField = (shape.black?.fields || []).find(item => CjsBlackSchemaRegistry.matchesBlackFieldName(item, blackName));\n if (blackField)\n {\n return this.ResolveBlackFieldTarget(blackName, blackField, fields);\n }\n\n const field = fields.find(item => item.name === blackName || item.cppName === blackName);\n if (field)\n {\n return {\n blackName,\n wireName: blackName,\n field,\n member: blackName,\n indexed: false,\n indexToken: null,\n index: null,\n key: null\n };\n }\n\n const indexed = CjsBlackReader.parseIndexedMember(blackName);\n if (indexed)\n {\n const indexedField = fields.find(item => item.cppName === indexed.member || item.name === CjsBlackReader.toJsFieldName(indexed.member));\n if (indexedField)\n {\n const key = CjsBlackReader.normalizeIndexedKey(indexed.indexToken, indexedField);\n return {\n blackName,\n wireName: blackName,\n field: indexedField,\n member: blackName,\n indexed: true,\n indexToken: indexed.indexToken,\n index: Number.isInteger(key) ? key : null,\n key\n };\n }\n }\n\n if (this.ShouldCaptureUnknownField(blackName, kind, shape))\n {\n return this.ResolveUnknownFieldTarget(kind, shape, blackName);\n }\n\n throw new TypeError(`Unknown Black property ${blackName} for ${kind}`);\n }\n\n ReadUnknownFieldValue(reader, kind, blackName)\n {\n const readers = this.GetUnknownFieldReaders(blackName);\n const errors = [];\n\n for (const readValue of readers)\n {\n const startOffset = reader.offset;\n try\n {\n return readValue(reader);\n }\n catch (error)\n {\n reader.offset = startOffset;\n errors.push(error);\n }\n }\n\n this.reports.push({\n level: \"warning\",\n code: \"unknown-black-property-unreadable\",\n kind,\n blackName\n });\n\n throw errors[0] || new TypeError(`Unable to read unknown Black field ${blackName} for ${kind}`);\n }\n\n GetUnknownFieldReaders(blackName)\n {\n const readers = [];\n const readByKind = (kind, options = null) =>\n {\n const field = options ? { ...options, kind } : { kind };\n readers.push((streamReader) => CjsBlackPropertyReaders.readValue(streamReader, field));\n };\n const readByDescriptor = (descriptor = {}) =>\n {\n readers.push((streamReader) => CjsBlackPropertyReaders.readValue(streamReader, descriptor));\n };\n\n if (this.options.allowUnknownStringFallback)\n {\n readByKind(\"string\");\n readByKind(\"path\");\n }\n\n const name = String(blackName || \"\");\n if (name.endsWith(\".dds\") || name.endsWith(\".png\") || name.endsWith(\".jpg\") || /^res:\\//.test(name))\n {\n readers.unshift((streamReader) => CjsBlackPropertyReaders.readValue(streamReader, { kind: \"path\" }));\n readByKind(\"uint32\");\n readByKind(\"float32\");\n }\n\n if (!this.options.allowUnknownStringFallback)\n {\n readByKind(\"path\");\n readByKind(\"string\");\n }\n\n readByKind(\"objectRef\");\n readByKind(\"boolean\");\n readByKind(\"float32\");\n readByKind(\"float64\");\n readByKind(\"int32\");\n readByKind(\"uint32\");\n readByKind(\"int16\");\n readByKind(\"uint16\");\n readByKind(\"int8\");\n readByKind(\"uint8\");\n readByDescriptor({ kind: \"vector3\" });\n readByDescriptor({ kind: \"vector4\" });\n readByDescriptor({ kind: \"array\", elementType: { kind: \"uint32\" } });\n\n return readers;\n }\n\n ResolveBlackFieldTarget(blackName, blackField, fields)\n {\n const sourceField = fields.find(item =>\n item.name === blackField.fieldName ||\n item.name === blackField.name ||\n item.cppName === blackField.cppName ||\n item.cppName === blackField.memberPath ||\n item.cppName === blackField.memberRoot\n );\n const fieldName = blackField.fieldName || sourceField?.name || blackField.name || CjsBlackReader.toJsFieldName(blackName);\n const usesPayloadField = Boolean(blackField.name && blackField.name !== blackField.fieldName);\n const field = {\n ...(sourceField || {}),\n name: fieldName,\n cppName: blackField.cppName || sourceField?.cppName || null,\n cppType: blackField.cppType || sourceField?.cppType || null,\n black: blackField\n };\n const hasIndex = Boolean(blackField.indexToken || blackField.indexKey !== undefined);\n const storageKey = hasIndex\n ? blackField.indexKey ?? CjsBlackReader.normalizeIndexedKey(blackField.indexToken, field)\n : null;\n const indexed = Boolean(hasIndex);\n\n return {\n blackName,\n wireName: blackName,\n field,\n member: blackField.member || blackName,\n indexed,\n indexToken: blackField.indexToken || null,\n index: Number.isInteger(storageKey) ? storageKey : null,\n key: storageKey\n };\n }\n\n ResolveUnknownFieldTarget(_kind, _shape, blackName)\n {\n return {\n blackName,\n wireName: blackName,\n field: {\n name: \"__blackUnknown\",\n cppName: null,\n cppType: null,\n black: {\n fieldName: \"__blackUnknown\",\n name: blackName,\n memberPath: blackName,\n memberRoot: blackName,\n beType: \"UNKNOWN\"\n }\n },\n member: blackName,\n indexed: false,\n indexToken: null,\n index: null,\n key: blackName,\n unknown: true\n };\n }\n\n ShouldCaptureUnknownField(blackName, _kind, shape)\n {\n if (this.options.captureUnknownBlackFields) return true;\n if (this.options.captureUnknownResourceFields && /^res:\\//.test(String(blackName || \"\"))) return true;\n if (this.options.captureUnknownWhenNoBlackFields && (!shape?.black || !shape.black.fields || !shape.black.fields.length)) return true;\n return false;\n }\n\n ResolveClass(kind)\n {\n const classes = this.options.classes || {};\n const Schema = this.options.registry || CjsSchema;\n return classes[kind] || Schema.GetConstructor(kind);\n }\n\n ResetReadState()\n {\n super.ResetBlueReadState();\n this.references = new Map();\n this.nodes = [];\n this.nextNodeId = this.options.firstId || 1;\n this.payloadDepth = 0;\n this.payloadRootFields = null;\n }\n\n static readStringTable(reader)\n {\n const stringsReader = reader.ReadBinaryReader(reader.ReadU32());\n const count = stringsReader.ReadU16();\n const strings = [];\n\n for (let i = 0; i < count; i++)\n {\n strings[i] = stringsReader.ReadCString();\n }\n\n stringsReader.ExpectEnd(\"Black string table did not read to end\");\n return strings;\n }\n\n static readWideStringTable(reader)\n {\n const wideStringsReader = reader.ReadBinaryReader(reader.ReadU32());\n const count = wideStringsReader.ReadU16();\n const wideStrings = [];\n\n for (let i = 0; i < count; i++)\n {\n wideStrings[i] = wideStringsReader.ReadCWString();\n }\n\n wideStringsReader.ExpectEnd(\"Black wide string table did not read to end\");\n return wideStrings;\n }\n\n static normalizeIndexedKey(indexToken, field)\n {\n const number = Number(indexToken);\n if (Number.isInteger(number) && String(indexToken).trim() === String(number)) return number;\n\n let text = String(indexToken || \"\").trim();\n text = text.replace(/^.*::/, \"\");\n text = text.replace(/^TYPE_/, \"\");\n\n const pascal = text\n .split(/[^A-Za-z0-9]+/)\n .filter(Boolean)\n .map(part => CJS_BLACK_INDEX_TOKEN_NAMES[part] || (part === \"FX\" ? \"FX\" : part.charAt(0).toUpperCase() + part.slice(1).toLowerCase()))\n .join(\"\");\n\n if (field?.jsType?.kind === \"objectRef\")\n {\n return pascal ? pascal.charAt(0).toLowerCase() + pascal.slice(1) : text;\n }\n\n return pascal || text;\n }\n\n static parseIndexedMember(value)\n {\n const match = String(value || \"\").match(/^(.+)\\[([^\\]]+)\\]$/);\n if (!match) return null;\n return {\n member: match[1],\n indexToken: match[2]\n };\n }\n\n static toJsFieldName(value)\n {\n return String(value || \"\").replace(/^m_/, \"\");\n }\n\n}\n\nconst CJS_BLACK_INDEX_TOKEN_NAMES = Object.freeze({\n SIMPLEPRIMARY: \"SimplePrimary\"\n});\n"],"names":["CjsBlackReader","CjsBlueReader","constructor","input","options","schemaRegistry","CjsBlackSchemaRegistry","defaultRegistry","CjsSchema","includeShapeContext","includeSourceShape","includeEmptyPayloadType","requirePayloadReferenceTarget","reader","CjsBlackBinaryReader","from","references","Map","nodes","nextNodeId","info","readMode","payloadDepth","payloadRootFields","Inspect","ExpectU32","CJS_BLACK_FOURCC","version","ReadU32","CJS_BLACK_VERSION","RangeError","strings","readStringTable","wideStrings","readWideStringTable","format","id","CJS_BLACK_FORMAT_ID","byteLength","data","dataOffset","offset","Read","ReadPayload","ReadDocument","ResetReadState","rootRef","ReadObject","CjsCarbonDocument","isRef","TypeError","ExpectEnd","includeRefIndex","ShouldIncludeRefIndex","refs","node","String","kind","create","roots","name","rootName","ref","metadata","CreateDocumentMetadata","reports","ReadRuntime","root","FinalizeRuntimeInstances","ValidatePayloadConfiguration","object","payload","comments","ShouldIncludeDocumentMetadata","ReadRuntimeObject","ReadPayloadObject","blackReference","existing","get","createRef","ReadObjectPayload","embedded","ReadEmbeddedObject","ReadRuntimeObjectPayload","ReadPayloadObjectPayload","payloadSize","objectReader","ReadBinaryReader","ReadStringRef","shape","ResolveSourceShape","includeClassMetadata","ShouldIncludeClassMetadata","includeFieldTrace","ShouldIncludeFieldTrace","fields","source","meta","family","hashes","blue","black","reference","raw","push","set","previousBlackName","AtEnd","blackName","target","ResolveFieldTargetWithContext","value","ReadFieldValueWithContext","AssignFieldValue","has","CreateRuntimeTarget","values","fieldTarget","AssignRuntimeFieldValue","ApplyRuntimeValues","CreatePayloadReference","CreatePayloadTarget","ShouldSkipPayloadField","SkipFieldValue","AssignPayloadFieldValue","CreateSkippedPayloadTarget","GetPayloadRootFields","rootFields","Set","Array","isArray","map","fieldName","unknown","field","ReadUnknownFieldValue","CjsBlackPropertyReaders","skipValue","SkipObject","SkipObjectPayload","SkipEmbeddedObject","ResolveFieldTarget","Boolean","trace","debug","includeMetadata","stringCount","length","wideStringCount","slice","error","message","readValue","AssignFieldTrace","indexed","current","Number","isInteger","index","key","cppName","member","indexToken","blackField","find","item","matchesBlackFieldName","ResolveBlackFieldTarget","wireName","parseIndexedMember","indexedField","toJsFieldName","normalizeIndexedKey","ShouldCaptureUnknownField","ResolveUnknownFieldTarget","readers","GetUnknownFieldReaders","errors","startOffset","level","code","readByKind","streamReader","readByDescriptor","descriptor","allowUnknownStringFallback","endsWith","test","unshift","elementType","sourceField","memberPath","memberRoot","cppType","hasIndex","indexKey","undefined","storageKey","_kind","_shape","beType","captureUnknownBlackFields","captureUnknownResourceFields","captureUnknownWhenNoBlackFields","ResolveClass","classes","Schema","registry","GetConstructor","ResetBlueReadState","firstId","stringsReader","count","ReadU16","i","ReadCString","wideStringsReader","ReadCWString","number","trim","text","replace","pascal","split","filter","part","CJS_BLACK_INDEX_TOKEN_NAMES","charAt","toUpperCase","toLowerCase","join","jsType","match","Object","freeze","SIMPLEPRIMARY"],"mappings":"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"}
1
+ {"version":3,"file":"CjsBlackReader.js","sources":["../../../../../src/formats/black/core/CjsBlackReader.js"],"sourcesContent":["import { CjsCarbonDocument } from \"@carbonenginejs/runtime-utils/document\";\nimport { CjsSchema } from \"@carbonenginejs/runtime-utils/schema\";\n\nimport { CjsBlueReader } from \"../../../format/CjsBlueReader.js\";\n\nimport {\n CJS_BLACK_FORMAT_ID,\n CJS_BLACK_FOURCC,\n CJS_BLACK_VERSION\n} from \"./blackConstants.js\";\nimport { CjsBlackBinaryReader } from \"./CjsBlackBinaryReader.js\";\nimport { CjsBlackPropertyReaders } from \"./CjsBlackPropertyReaders.js\";\nimport { CjsBlackSchemaRegistry } from \"./CjsBlackSchemaRegistry.js\";\n\n/**\n * Reads a `.black` stream into a payload/document/runtime graph.\n *\n * This transport owns the binary buffer, string tables, numeric references,\n * and binary read cursor. `ResetReadState()` clears only per-read graph state;\n * each read entrypoint separately restores the cursor to `dataOffset`.\n */\nexport class CjsBlackReader extends CjsBlueReader\n{\n /**\n * Creates a CjsBlackReader over caller-provided Black bytes and reader\n * options.\n */\n constructor(input, options = {})\n {\n super(options, {\n schemaRegistry: CjsBlackSchemaRegistry,\n defaultRegistry: CjsSchema,\n includeShapeContext: true,\n includeSourceShape: true,\n includeEmptyPayloadType: true,\n requirePayloadReferenceTarget: true\n });\n this.reader = CjsBlackBinaryReader.from(input, this);\n this.references = new Map();\n this.nodes = [];\n this.nextNodeId = 1;\n this.info = null;\n this.readMode = \"payload\";\n this.payloadDepth = 0;\n this.payloadRootFields = null;\n }\n\n /**\n * Returns structural metadata without materializing the decoded payload for\n * the Black object-graph reader.\n */\n Inspect()\n {\n if (this.info) return this.info;\n\n const reader = this.reader;\n reader.ExpectU32(CJS_BLACK_FOURCC, \"Invalid Black FOURCC\");\n\n const version = reader.ReadU32();\n if (version !== CJS_BLACK_VERSION)\n {\n throw new RangeError(`Unsupported Black version: ${version}`);\n }\n\n const strings = CjsBlackReader.readStringTable(reader);\n const wideStrings = CjsBlackReader.readWideStringTable(reader);\n\n this.info = {\n format: {\n id: CJS_BLACK_FORMAT_ID,\n version\n },\n byteLength: reader.data.byteLength,\n dataOffset: reader.offset,\n strings,\n wideStrings\n };\n\n return this.info;\n }\n\n /**\n * Reads the primary public payload representation from the supplied input\n * for the Black object-graph reader.\n */\n Read()\n {\n return this.ReadPayload();\n }\n\n /** Reads document from the current Black object-graph reader. */\n ReadDocument()\n {\n const info = this.Inspect();\n this.ResetReadState();\n this.readMode = \"document\";\n this.reader.offset = info.dataOffset;\n\n const rootRef = this.ReadObject(this.reader);\n if (!CjsCarbonDocument.isRef(rootRef))\n {\n throw new TypeError(\"Black root object is null\");\n }\n\n this.reader.ExpectEnd(\"Black object graph did not read to end\");\n\n const includeRefIndex = this.ShouldIncludeRefIndex();\n const refs = {};\n if (includeRefIndex)\n {\n for (const node of this.nodes)\n {\n refs[String(node.id)] = {\n kind: node.kind\n };\n }\n }\n\n return CjsCarbonDocument.create({\n format: info.format,\n roots: [{ name: this.options.rootName || \"default\", ref: rootRef }],\n nodes: this.nodes,\n refs: includeRefIndex ? refs : null,\n metadata: this.CreateDocumentMetadata(info),\n reports: this.reports\n });\n }\n\n /** Reads runtime from the current Black object-graph reader. */\n ReadRuntime()\n {\n const info = this.Inspect();\n this.ResetReadState();\n this.readMode = \"runtime\";\n this.reader.offset = info.dataOffset;\n\n const root = this.ReadObject(this.reader);\n if (root === null)\n {\n throw new TypeError(\"Black root object is null\");\n }\n\n this.reader.ExpectEnd(\"Black object graph did not read to end\");\n\n this.FinalizeRuntimeInstances();\n\n return {\n root,\n format: info.format,\n reports: this.reports\n };\n }\n\n /** Reads payload from the current Black object-graph reader. */\n ReadPayload()\n {\n const info = this.Inspect();\n this.ResetReadState();\n this.readMode = \"payload\";\n this.ValidatePayloadConfiguration();\n this.reader.offset = info.dataOffset;\n\n const object = this.ReadObject(this.reader);\n if (object === null)\n {\n throw new TypeError(\"Black root object is null\");\n }\n\n this.reader.ExpectEnd(\"Black object graph did not read to end\");\n\n const payload = {\n comments: this.reports,\n object\n };\n\n if (this.ShouldIncludeDocumentMetadata())\n {\n payload.metadata = this.CreateDocumentMetadata(info);\n }\n\n return payload;\n }\n\n /** Reads object from the current Black object-graph reader. */\n ReadObject(reader)\n {\n if (this.readMode === \"runtime\") return this.ReadRuntimeObject(reader);\n if (this.readMode === \"payload\") return this.ReadPayloadObject(reader);\n\n const blackReference = reader.ReadU32();\n if (blackReference === 0) return null;\n\n const existing = this.references.get(blackReference);\n if (existing) return CjsCarbonDocument.createRef(existing);\n\n return this.ReadObjectPayload(reader, {\n blackReference,\n embedded: false\n });\n }\n\n /** Reads embedded object from the current Black object-graph reader. */\n ReadEmbeddedObject(reader)\n {\n if (this.readMode === \"runtime\") return this.ReadRuntimeObjectPayload(reader, {\n blackReference: null,\n embedded: true\n });\n\n if (this.readMode === \"payload\") return this.ReadPayloadObjectPayload(reader, {\n blackReference: null,\n embedded: true\n });\n\n return this.ReadObjectPayload(reader, {\n blackReference: null,\n embedded: true\n });\n }\n\n /** Reads object payload from the current Black object-graph reader. */\n ReadObjectPayload(reader, options)\n {\n const payloadSize = reader.ReadU32();\n const objectReader = reader.ReadBinaryReader(payloadSize);\n const kind = objectReader.ReadStringRef();\n const shape = this.ResolveSourceShape(kind);\n const includeClassMetadata = this.ShouldIncludeClassMetadata();\n const includeFieldTrace = this.ShouldIncludeFieldTrace();\n const node = {\n id: this.nextNodeId++,\n kind,\n fields: {},\n ...(includeClassMetadata ? {\n source: shape?.source || {},\n meta: {\n family: shape?.family || null,\n hashes: shape?.hashes || null,\n blue: shape?.blue || null\n }\n } : {}),\n ...(includeFieldTrace ? {\n meta: {\n ...(includeClassMetadata ? {\n family: shape?.family || null,\n hashes: shape?.hashes || null,\n blue: shape?.blue || null\n } : {}),\n black: {\n reference: options.blackReference,\n embedded: options.embedded,\n payloadSize,\n fields: {}\n }\n }\n } : {}),\n raw: null\n };\n\n this.nodes.push(node);\n if (options.blackReference !== null)\n {\n this.references.set(options.blackReference, node.id);\n }\n\n let previousBlackName = null;\n while (!objectReader.AtEnd())\n {\n const blackName = objectReader.ReadStringRef();\n const target = this.ResolveFieldTargetWithContext(kind, shape, blackName, previousBlackName);\n const value = this.ReadFieldValueWithContext(objectReader, kind, blackName, target);\n this.AssignFieldValue(node, target, value);\n previousBlackName = blackName;\n }\n\n objectReader.ExpectEnd(`${kind} did not read to end`);\n return CjsCarbonDocument.createRef(node.id);\n }\n\n /** Reads runtime object from the current Black object-graph reader. */\n ReadRuntimeObject(reader)\n {\n const blackReference = reader.ReadU32();\n if (blackReference === 0) return null;\n\n if (this.references.has(blackReference))\n {\n return this.references.get(blackReference);\n }\n\n return this.ReadRuntimeObjectPayload(reader, {\n blackReference,\n embedded: false\n });\n }\n\n /** Reads runtime object payload from the current Black object-graph reader. */\n ReadRuntimeObjectPayload(reader, options)\n {\n const payloadSize = reader.ReadU32();\n const objectReader = reader.ReadBinaryReader(payloadSize);\n const kind = objectReader.ReadStringRef();\n const shape = this.ResolveSourceShape(kind);\n const target = this.CreateRuntimeTarget(kind, shape);\n\n if (options.blackReference !== null)\n {\n this.references.set(options.blackReference, target);\n }\n\n // Accumulate this object's fields into a plain values map, then hand\n // the whole map to the hydration adapter. The adapter (default:\n // Object.assign) decides how the caller's class receives its values -\n // direct assignment, SetValues, etc. The target instance is already\n // registered above, so back-references resolve to it while its values\n // are still being collected (the adapter must mutate in place).\n const values = {};\n let previousBlackName = null;\n while (!objectReader.AtEnd())\n {\n const blackName = objectReader.ReadStringRef();\n const fieldTarget = this.ResolveFieldTargetWithContext(kind, shape, blackName, previousBlackName);\n const value = this.ReadFieldValueWithContext(objectReader, kind, blackName, fieldTarget);\n this.AssignRuntimeFieldValue(values, fieldTarget, value);\n previousBlackName = blackName;\n }\n\n objectReader.ExpectEnd(`${kind} did not read to end`);\n this.ApplyRuntimeValues(target, values, kind, shape);\n return target;\n }\n\n /** Reads payload object from the current Black object-graph reader. */\n ReadPayloadObject(reader)\n {\n const blackReference = reader.ReadU32();\n if (blackReference === 0) return null;\n\n if (this.references.has(blackReference))\n {\n return this.CreatePayloadReference(this.references.get(blackReference), blackReference);\n }\n\n return this.ReadPayloadObjectPayload(reader, {\n blackReference,\n embedded: false\n });\n }\n\n /** Reads payload object payload from the current Black object-graph reader. */\n ReadPayloadObjectPayload(reader, options)\n {\n const payloadSize = reader.ReadU32();\n const objectReader = reader.ReadBinaryReader(payloadSize);\n const kind = objectReader.ReadStringRef();\n const shape = this.ResolveSourceShape(kind);\n const target = this.CreatePayloadTarget(kind);\n\n if (options.blackReference !== null)\n {\n this.references.set(options.blackReference, target);\n }\n\n this.payloadDepth++;\n try\n {\n let previousBlackName = null;\n while (!objectReader.AtEnd())\n {\n const blackName = objectReader.ReadStringRef();\n const fieldTarget = this.ResolveFieldTargetWithContext(kind, shape, blackName, previousBlackName);\n if (this.ShouldSkipPayloadField(fieldTarget))\n {\n this.SkipFieldValue(objectReader, fieldTarget);\n previousBlackName = blackName;\n continue;\n }\n\n const value = this.ReadFieldValueWithContext(objectReader, kind, blackName, fieldTarget);\n this.AssignPayloadFieldValue(target, fieldTarget, value);\n previousBlackName = blackName;\n }\n }\n finally\n {\n this.payloadDepth--;\n }\n\n objectReader.ExpectEnd(`${kind} did not read to end`);\n return target;\n }\n\n /** Creates skipped payload target for the current Black object-graph reader. */\n CreateSkippedPayloadTarget()\n {\n return {};\n }\n\n /** Returns payload root fields from the current Black object-graph reader. */\n GetPayloadRootFields()\n {\n if (this.payloadRootFields !== null) return this.payloadRootFields;\n\n const fields = this.options.payloadRootFields ?? this.options.rootFields ?? null;\n if (!fields)\n {\n this.payloadRootFields = false;\n return this.payloadRootFields;\n }\n\n this.payloadRootFields = new Set((Array.isArray(fields) ? fields : [fields]).map(String));\n return this.payloadRootFields;\n }\n\n /**\n * Reports whether skip payload field is enabled by the current Black\n * object-graph reader.\n */\n ShouldSkipPayloadField(target)\n {\n if (this.readMode !== \"payload\" || this.payloadDepth !== 1) return false;\n const rootFields = this.GetPayloadRootFields();\n if (!rootFields) return false;\n const fieldName = target.unknown ? target.blackName : target.field.name;\n return !rootFields.has(fieldName);\n }\n\n /** Advances past field value in the current Black object-graph reader. */\n SkipFieldValue(reader, target)\n {\n if (target.unknown)\n {\n this.ReadUnknownFieldValue(reader, null, target.blackName);\n return;\n }\n\n CjsBlackPropertyReaders.skipValue(reader, target.field);\n }\n\n /** Advances past object in the current Black object-graph reader. */\n SkipObject(reader)\n {\n const blackReference = reader.ReadU32();\n if (blackReference === 0) return;\n\n if (this.references.has(blackReference)) return;\n\n this.references.set(blackReference, this.CreateSkippedPayloadTarget());\n this.SkipObjectPayload(reader);\n }\n\n /** Advances past embedded object in the current Black object-graph reader. */\n SkipEmbeddedObject(reader)\n {\n this.SkipObjectPayload(reader);\n }\n\n /** Advances past object payload in the current Black object-graph reader. */\n SkipObjectPayload(reader)\n {\n const payloadSize = reader.ReadU32();\n const objectReader = reader.ReadBinaryReader(payloadSize);\n const kind = objectReader.ReadStringRef();\n const shape = this.ResolveSourceShape(kind);\n\n while (!objectReader.AtEnd())\n {\n const blackName = objectReader.ReadStringRef();\n const fieldTarget = this.ResolveFieldTarget(kind, shape, blackName);\n this.SkipFieldValue(objectReader, fieldTarget);\n }\n\n objectReader.ExpectEnd(`${kind} did not read to end`);\n }\n\n /**\n * Reports whether include class metadata is enabled by the current Black\n * object-graph reader.\n */\n ShouldIncludeClassMetadata()\n {\n return Boolean(this.options.includeClassMetadata || this.options.trace || this.options.debug);\n }\n\n /**\n * Reports whether include field trace is enabled by the current Black\n * object-graph reader.\n */\n ShouldIncludeFieldTrace()\n {\n return Boolean(this.options.includeFieldTrace || this.options.trace || this.options.debug);\n }\n\n /**\n * Reports whether include document metadata is enabled by the current Black\n * object-graph reader.\n */\n ShouldIncludeDocumentMetadata()\n {\n return Boolean(this.options.includeMetadata || this.options.trace || this.options.debug || this.options.metadata);\n }\n\n /**\n * Reports whether include ref index is enabled by the current Black\n * object-graph reader.\n */\n ShouldIncludeRefIndex()\n {\n return Boolean(this.options.includeRefIndex || this.options.trace || this.options.debug);\n }\n\n /** Creates document metadata for the current Black object-graph reader. */\n CreateDocumentMetadata(info)\n {\n if (!this.ShouldIncludeDocumentMetadata()) return this.options.metadata || null;\n\n return {\n black: {\n stringCount: info.strings.length,\n wideStringCount: info.wideStrings.length,\n wideStrings: info.wideStrings.slice()\n },\n ...(this.options.metadata || {})\n };\n }\n\n /**\n * Resolves field target with context against the current Black object-graph\n * reader.\n */\n ResolveFieldTargetWithContext(kind, shape, blackName, previousBlackName = null)\n {\n try\n {\n return this.ResolveFieldTarget(kind, shape, blackName);\n }\n catch (error)\n {\n error.message = `${kind}.${blackName} after ${previousBlackName || \"<start>\"}: ${error.message}`;\n throw error;\n }\n }\n\n /** Reads field value with context from the current Black object-graph reader. */\n ReadFieldValueWithContext(reader, kind, blackName, target)\n {\n try\n {\n return target.unknown\n ? this.ReadUnknownFieldValue(reader, kind, blackName)\n : CjsBlackPropertyReaders.readValue(reader, target.field);\n }\n catch (error)\n {\n error.message = `${kind}.${blackName}: ${error.message}`;\n throw error;\n }\n }\n\n /**\n * Assigns field value while preserving the current Black object-graph reader\n * contract.\n */\n AssignFieldValue(node, target, value)\n {\n if (target.unknown)\n {\n node.raw = node.raw || {};\n node.raw[target.blackName] = value;\n this.AssignFieldTrace(node, target);\n return;\n }\n\n if (target.indexed)\n {\n let current = node.fields[target.field.name];\n if (!current || typeof current !== \"object\" || CjsCarbonDocument.isRef(current))\n {\n current = Number.isInteger(target.index) ? [] : {};\n node.fields[target.field.name] = current;\n }\n\n current[target.key] = value;\n }\n else\n {\n node.fields[target.field.name] = value;\n }\n\n this.AssignFieldTrace(node, target);\n }\n\n /**\n * Assigns field trace while preserving the current Black object-graph reader\n * contract.\n */\n AssignFieldTrace(node, target)\n {\n if (!this.ShouldIncludeFieldTrace()) return;\n\n node.meta.black.fields[target.blackName] = {\n field: target.field.name,\n cppName: target.field.cppName || null,\n member: target.member,\n indexed: target.indexed,\n indexToken: target.indexToken,\n key: target.key\n };\n }\n\n /** Resolves field target against the current Black object-graph reader. */\n ResolveFieldTarget(kind, shape, blackName)\n {\n if (!shape)\n {\n throw new TypeError(`No source shape registered for Black type ${kind}`);\n }\n\n const fields = shape.fields || [];\n const blackField = (shape.black?.fields || []).find(item => CjsBlackSchemaRegistry.matchesBlackFieldName(item, blackName));\n if (blackField)\n {\n return this.ResolveBlackFieldTarget(blackName, blackField, fields);\n }\n\n const field = fields.find(item => item.name === blackName || item.cppName === blackName);\n if (field)\n {\n return {\n blackName,\n wireName: blackName,\n field,\n member: blackName,\n indexed: false,\n indexToken: null,\n index: null,\n key: null\n };\n }\n\n const indexed = CjsBlackReader.parseIndexedMember(blackName);\n if (indexed)\n {\n const indexedField = fields.find(item => item.cppName === indexed.member || item.name === CjsBlackReader.toJsFieldName(indexed.member));\n if (indexedField)\n {\n const key = CjsBlackReader.normalizeIndexedKey(indexed.indexToken, indexedField);\n return {\n blackName,\n wireName: blackName,\n field: indexedField,\n member: blackName,\n indexed: true,\n indexToken: indexed.indexToken,\n index: Number.isInteger(key) ? key : null,\n key\n };\n }\n }\n\n if (this.ShouldCaptureUnknownField(blackName, kind, shape))\n {\n return this.ResolveUnknownFieldTarget(kind, shape, blackName);\n }\n\n throw new TypeError(`Unknown Black property ${blackName} for ${kind}`);\n }\n\n /** Reads unknown field value from the current Black object-graph reader. */\n ReadUnknownFieldValue(reader, kind, blackName)\n {\n const readers = this.GetUnknownFieldReaders(blackName);\n const errors = [];\n\n for (const readValue of readers)\n {\n const startOffset = reader.offset;\n try\n {\n return readValue(reader);\n }\n catch (error)\n {\n reader.offset = startOffset;\n errors.push(error);\n }\n }\n\n this.reports.push({\n level: \"warning\",\n code: \"unknown-black-property-unreadable\",\n kind,\n blackName\n });\n\n throw errors[0] || new TypeError(`Unable to read unknown Black field ${blackName} for ${kind}`);\n }\n\n /** Returns unknown field readers from the current Black object-graph reader. */\n GetUnknownFieldReaders(blackName)\n {\n const readers = [];\n const readByKind = (kind, options = null) =>\n {\n const field = options ? { ...options, kind } : { kind };\n readers.push((streamReader) => CjsBlackPropertyReaders.readValue(streamReader, field));\n };\n const readByDescriptor = (descriptor = {}) =>\n {\n readers.push((streamReader) => CjsBlackPropertyReaders.readValue(streamReader, descriptor));\n };\n\n if (this.options.allowUnknownStringFallback)\n {\n readByKind(\"string\");\n readByKind(\"path\");\n }\n\n const name = String(blackName || \"\");\n if (name.endsWith(\".dds\") || name.endsWith(\".png\") || name.endsWith(\".jpg\") || /^res:\\//.test(name))\n {\n readers.unshift((streamReader) => CjsBlackPropertyReaders.readValue(streamReader, { kind: \"path\" }));\n readByKind(\"uint32\");\n readByKind(\"float32\");\n }\n\n if (!this.options.allowUnknownStringFallback)\n {\n readByKind(\"path\");\n readByKind(\"string\");\n }\n\n readByKind(\"objectRef\");\n readByKind(\"boolean\");\n readByKind(\"float32\");\n readByKind(\"float64\");\n readByKind(\"int32\");\n readByKind(\"uint32\");\n readByKind(\"int16\");\n readByKind(\"uint16\");\n readByKind(\"int8\");\n readByKind(\"uint8\");\n readByDescriptor({ kind: \"vector3\" });\n readByDescriptor({ kind: \"vector4\" });\n readByDescriptor({ kind: \"array\", elementType: { kind: \"uint32\" } });\n\n return readers;\n }\n\n /** Resolves black field target against the current Black object-graph reader. */\n ResolveBlackFieldTarget(blackName, blackField, fields)\n {\n const sourceField = fields.find(item =>\n item.name === blackField.fieldName ||\n item.name === blackField.name ||\n item.cppName === blackField.cppName ||\n item.cppName === blackField.memberPath ||\n item.cppName === blackField.memberRoot\n );\n const fieldName = blackField.fieldName || sourceField?.name || blackField.name || CjsBlackReader.toJsFieldName(blackName);\n const usesPayloadField = Boolean(blackField.name && blackField.name !== blackField.fieldName);\n const field = {\n ...(sourceField || {}),\n name: fieldName,\n cppName: blackField.cppName || sourceField?.cppName || null,\n cppType: blackField.cppType || sourceField?.cppType || null,\n black: blackField\n };\n const hasIndex = Boolean(blackField.indexToken || blackField.indexKey !== undefined);\n const storageKey = hasIndex\n ? blackField.indexKey ?? CjsBlackReader.normalizeIndexedKey(blackField.indexToken, field)\n : null;\n const indexed = Boolean(hasIndex);\n\n return {\n blackName,\n wireName: blackName,\n field,\n member: blackField.member || blackName,\n indexed,\n indexToken: blackField.indexToken || null,\n index: Number.isInteger(storageKey) ? storageKey : null,\n key: storageKey\n };\n }\n\n /**\n * Resolves unknown field target against the current Black object-graph\n * reader.\n */\n ResolveUnknownFieldTarget(_kind, _shape, blackName)\n {\n return {\n blackName,\n wireName: blackName,\n field: {\n name: \"__blackUnknown\",\n cppName: null,\n cppType: null,\n black: {\n fieldName: \"__blackUnknown\",\n name: blackName,\n memberPath: blackName,\n memberRoot: blackName,\n beType: \"UNKNOWN\"\n }\n },\n member: blackName,\n indexed: false,\n indexToken: null,\n index: null,\n key: blackName,\n unknown: true\n };\n }\n\n /**\n * Reports whether capture unknown field is enabled by the current Black\n * object-graph reader.\n */\n ShouldCaptureUnknownField(blackName, _kind, shape)\n {\n if (this.options.captureUnknownBlackFields) return true;\n if (this.options.captureUnknownResourceFields && /^res:\\//.test(String(blackName || \"\"))) return true;\n if (this.options.captureUnknownWhenNoBlackFields && (!shape?.black || !shape.black.fields || !shape.black.fields.length)) return true;\n return false;\n }\n\n /** Resolves class against the current Black object-graph reader. */\n ResolveClass(kind)\n {\n const classes = this.options.classes || {};\n const Schema = this.options.registry || CjsSchema;\n return classes[kind] || Schema.GetConstructor(kind);\n }\n\n /** Clears read state before reusing the current Black object-graph reader. */\n ResetReadState()\n {\n super.ResetBlueReadState();\n this.references = new Map();\n this.nodes = [];\n this.nextNodeId = this.options.firstId || 1;\n this.payloadDepth = 0;\n this.payloadRootFields = null;\n }\n\n /** Reads string table from the current Black object-graph reader. */\n static readStringTable(reader)\n {\n const stringsReader = reader.ReadBinaryReader(reader.ReadU32());\n const count = stringsReader.ReadU16();\n const strings = [];\n\n for (let i = 0; i < count; i++)\n {\n strings[i] = stringsReader.ReadCString();\n }\n\n stringsReader.ExpectEnd(\"Black string table did not read to end\");\n return strings;\n }\n\n /** Reads wide string table from the current Black object-graph reader. */\n static readWideStringTable(reader)\n {\n const wideStringsReader = reader.ReadBinaryReader(reader.ReadU32());\n const count = wideStringsReader.ReadU16();\n const wideStrings = [];\n\n for (let i = 0; i < count; i++)\n {\n wideStrings[i] = wideStringsReader.ReadCWString();\n }\n\n wideStringsReader.ExpectEnd(\"Black wide string table did not read to end\");\n return wideStrings;\n }\n\n /**\n * Converts indexed key into the canonical Black object-graph reader\n * representation.\n */\n static normalizeIndexedKey(indexToken, field)\n {\n const number = Number(indexToken);\n if (Number.isInteger(number) && String(indexToken).trim() === String(number)) return number;\n\n let text = String(indexToken || \"\").trim();\n text = text.replace(/^.*::/, \"\");\n text = text.replace(/^TYPE_/, \"\");\n\n const pascal = text\n .split(/[^A-Za-z0-9]+/)\n .filter(Boolean)\n .map(part => CJS_BLACK_INDEX_TOKEN_NAMES[part] || (part === \"FX\" ? \"FX\" : part.charAt(0).toUpperCase() + part.slice(1).toLowerCase()))\n .join(\"\");\n\n if (field?.jsType?.kind === \"objectRef\")\n {\n return pascal ? pascal.charAt(0).toLowerCase() + pascal.slice(1) : text;\n }\n\n return pascal || text;\n }\n\n /** Parses indexed member from the current Black object-graph reader. */\n static parseIndexedMember(value)\n {\n const match = String(value || \"\").match(/^(.+)\\[([^\\]]+)\\]$/);\n if (!match) return null;\n return {\n member: match[1],\n indexToken: match[2]\n };\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}\n\nconst CJS_BLACK_INDEX_TOKEN_NAMES = Object.freeze({\n SIMPLEPRIMARY: \"SimplePrimary\"\n});\n"],"names":["CjsBlackReader","CjsBlueReader","constructor","input","options","schemaRegistry","CjsBlackSchemaRegistry","defaultRegistry","CjsSchema","includeShapeContext","includeSourceShape","includeEmptyPayloadType","requirePayloadReferenceTarget","reader","CjsBlackBinaryReader","from","references","Map","nodes","nextNodeId","info","readMode","payloadDepth","payloadRootFields","Inspect","ExpectU32","CJS_BLACK_FOURCC","version","ReadU32","CJS_BLACK_VERSION","RangeError","strings","readStringTable","wideStrings","readWideStringTable","format","id","CJS_BLACK_FORMAT_ID","byteLength","data","dataOffset","offset","Read","ReadPayload","ReadDocument","ResetReadState","rootRef","ReadObject","CjsCarbonDocument","isRef","TypeError","ExpectEnd","includeRefIndex","ShouldIncludeRefIndex","refs","node","String","kind","create","roots","name","rootName","ref","metadata","CreateDocumentMetadata","reports","ReadRuntime","root","FinalizeRuntimeInstances","ValidatePayloadConfiguration","object","payload","comments","ShouldIncludeDocumentMetadata","ReadRuntimeObject","ReadPayloadObject","blackReference","existing","get","createRef","ReadObjectPayload","embedded","ReadEmbeddedObject","ReadRuntimeObjectPayload","ReadPayloadObjectPayload","payloadSize","objectReader","ReadBinaryReader","ReadStringRef","shape","ResolveSourceShape","includeClassMetadata","ShouldIncludeClassMetadata","includeFieldTrace","ShouldIncludeFieldTrace","fields","source","meta","family","hashes","blue","black","reference","raw","push","set","previousBlackName","AtEnd","blackName","target","ResolveFieldTargetWithContext","value","ReadFieldValueWithContext","AssignFieldValue","has","CreateRuntimeTarget","values","fieldTarget","AssignRuntimeFieldValue","ApplyRuntimeValues","CreatePayloadReference","CreatePayloadTarget","ShouldSkipPayloadField","SkipFieldValue","AssignPayloadFieldValue","CreateSkippedPayloadTarget","GetPayloadRootFields","rootFields","Set","Array","isArray","map","fieldName","unknown","field","ReadUnknownFieldValue","CjsBlackPropertyReaders","skipValue","SkipObject","SkipObjectPayload","SkipEmbeddedObject","ResolveFieldTarget","Boolean","trace","debug","includeMetadata","stringCount","length","wideStringCount","slice","error","message","readValue","AssignFieldTrace","indexed","current","Number","isInteger","index","key","cppName","member","indexToken","blackField","find","item","matchesBlackFieldName","ResolveBlackFieldTarget","wireName","parseIndexedMember","indexedField","toJsFieldName","normalizeIndexedKey","ShouldCaptureUnknownField","ResolveUnknownFieldTarget","readers","GetUnknownFieldReaders","errors","startOffset","level","code","readByKind","streamReader","readByDescriptor","descriptor","allowUnknownStringFallback","endsWith","test","unshift","elementType","sourceField","memberPath","memberRoot","cppType","hasIndex","indexKey","undefined","storageKey","_kind","_shape","beType","captureUnknownBlackFields","captureUnknownResourceFields","captureUnknownWhenNoBlackFields","ResolveClass","classes","Schema","registry","GetConstructor","ResetBlueReadState","firstId","stringsReader","count","ReadU16","i","ReadCString","wideStringsReader","ReadCWString","number","trim","text","replace","pascal","split","filter","part","CJS_BLACK_INDEX_TOKEN_NAMES","charAt","toUpperCase","toLowerCase","join","jsType","match","Object","freeze","SIMPLEPRIMARY"],"mappings":"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"}
@@ -3,12 +3,17 @@
3
3
  * shapes the Black reader uses to resolve persisted fields.
4
4
  */
5
5
  class CjsBlackSchemaRegistry {
6
+ /** Creates a CjsBlackSchemaRegistry with caller-provided initial state. */
6
7
  constructor(schema = null) {
7
8
  this.shapes = CjsBlackSchemaRegistry.createShapeMap(schema);
8
9
  }
10
+
11
+ /** Returns source shape from the current Black object-graph reader. */
9
12
  GetSourceShape(kind) {
10
13
  return this.shapes.get(kind) || null;
11
14
  }
15
+
16
+ /** Creates shape map for the current Black object-graph reader. */
12
17
  static createShapeMap(schema) {
13
18
  const shapes = new Map();
14
19
  if (CjsBlackSchemaRegistry.isCompactClassMap(schema)) {
@@ -18,6 +23,8 @@ class CjsBlackSchemaRegistry {
18
23
  CjsBlackSchemaRegistry.collectSchemaShapes(schema, shapes, new WeakSet());
19
24
  return shapes;
20
25
  }
26
+
27
+ /** Collects schema shapes required by the current Black object-graph reader. */
21
28
  static collectSchemaShapes(value, shapes, seen) {
22
29
  if (!value || typeof value !== "object") return;
23
30
  if (seen.has(value)) return;
@@ -50,6 +57,11 @@ class CjsBlackSchemaRegistry {
50
57
  }
51
58
  }
52
59
  }
60
+
61
+ /**
62
+ * Reports whether the current Black object-graph reader satisfies compact
63
+ * class map.
64
+ */
53
65
  static isCompactClassMap(value) {
54
66
  if (!value || typeof value !== "object" || Array.isArray(value)) return false;
55
67
  if (CjsBlackSchemaRegistry.isClassSchema(value)) return false;
@@ -58,15 +70,27 @@ class CjsBlackSchemaRegistry {
58
70
  if (!entries.length) return false;
59
71
  return entries.every(([className, fields]) => typeof className === "string" && className.length > 0 && CjsBlackSchemaRegistry.isCompactFieldMap(fields) && CjsBlackSchemaRegistry.isCompactClassFields(fields));
60
72
  }
73
+
74
+ /**
75
+ * Reports whether the current Black object-graph reader satisfies compact
76
+ * class fields.
77
+ */
61
78
  static isCompactClassFields(fields) {
62
79
  const specs = Object.values(fields || {});
63
80
  return specs.every(spec => CjsBlackSchemaRegistry.isCompactFieldSpec(spec));
64
81
  }
82
+
83
+ /**
84
+ * Reports whether the current Black object-graph reader satisfies compact
85
+ * field spec.
86
+ */
65
87
  static isCompactFieldSpec(spec) {
66
88
  if (typeof spec === "string") return true;
67
89
  if (!spec || typeof spec !== "object" || Array.isArray(spec)) return false;
68
90
  return typeof spec.type === "string" || typeof spec.kind === "string";
69
91
  }
92
+
93
+ /** Adds compact class map to the current Black object-graph reader. */
70
94
  static addCompactClassMap(classes, shapes) {
71
95
  for (const [className, fields] of Object.entries(classes || {})) {
72
96
  CjsBlackSchemaRegistry.addShape({
@@ -75,11 +99,18 @@ class CjsBlackSchemaRegistry {
75
99
  }, shapes);
76
100
  }
77
101
  }
102
+
103
+ /**
104
+ * Reports whether the current Black object-graph reader satisfies class
105
+ * schema.
106
+ */
78
107
  static isClassSchema(value) {
79
108
  if (!value || typeof value !== "object") return false;
80
109
  if (Array.isArray(value)) return false;
81
110
  return Boolean(value.black?.fields || value.black && (value.black.className || value.className || value.blueClass || value.cppClass) || value.className && CjsBlackSchemaRegistry.isCompactFieldMap(value.fields) || value.className && Array.isArray(value.fields) || value.blueClass && value.black);
82
111
  }
112
+
113
+ /** Adds shape to the current Black object-graph reader. */
83
114
  static addShape(schema, shapes) {
84
115
  const shape = CjsBlackSchemaRegistry.normalizeShape(schema);
85
116
  if (!shape?.className) return;
@@ -88,6 +119,11 @@ class CjsBlackSchemaRegistry {
88
119
  if (schema.cppClass) shapes.set(schema.cppClass, shape);
89
120
  if (schema.name) shapes.set(schema.name, shape);
90
121
  }
122
+
123
+ /**
124
+ * Converts shape into the canonical Black object-graph reader
125
+ * representation.
126
+ */
91
127
  static normalizeShape(schema) {
92
128
  const black = schema.black || {};
93
129
  const className = black.className || schema.className || schema.blueClass || schema.cppClass || schema.name || null;
@@ -107,6 +143,11 @@ class CjsBlackSchemaRegistry {
107
143
  }
108
144
  };
109
145
  }
146
+
147
+ /**
148
+ * Converts fields into the canonical Black object-graph reader
149
+ * representation.
150
+ */
110
151
  static normalizeFields(schema) {
111
152
  const fields = [];
112
153
  const byName = new Map();
@@ -144,12 +185,27 @@ class CjsBlackSchemaRegistry {
144
185
  }
145
186
  return fields;
146
187
  }
188
+
189
+ /**
190
+ * Reports whether the current Black object-graph reader satisfies compact
191
+ * field map.
192
+ */
147
193
  static isCompactFieldMap(value) {
148
194
  return !!value && typeof value === "object" && !Array.isArray(value);
149
195
  }
196
+
197
+ /**
198
+ * Converts compact Black field declarations into normalized field records
199
+ * for the Black object-graph reader.
200
+ */
150
201
  static compactBlackFields(fields) {
151
202
  return Object.entries(fields || {}).map(([blackName, fieldSpec]) => CjsBlackSchemaRegistry.compactBlackField(blackName, fieldSpec));
152
203
  }
204
+
205
+ /**
206
+ * Converts one compact field declaration into a normalized field record for
207
+ * the Black object-graph reader.
208
+ */
153
209
  static compactField(blackName, fieldSpec) {
154
210
  const spec = CjsBlackSchemaRegistry.normalizeCompactSpec(blackName, fieldSpec);
155
211
  return {
@@ -160,9 +216,19 @@ class CjsBlackSchemaRegistry {
160
216
  black: spec.black
161
217
  };
162
218
  }
219
+
220
+ /**
221
+ * Converts one Black-specific compact field declaration into a normalized
222
+ * record for the Black object-graph reader.
223
+ */
163
224
  static compactBlackField(blackName, fieldSpec) {
164
225
  return CjsBlackSchemaRegistry.normalizeCompactSpec(blackName, fieldSpec).black;
165
226
  }
227
+
228
+ /**
229
+ * Converts compact spec into the canonical Black object-graph reader
230
+ * representation.
231
+ */
166
232
  static normalizeCompactSpec(blackName, fieldSpec) {
167
233
  const spec = typeof fieldSpec === "string" ? {
168
234
  type: fieldSpec
@@ -190,6 +256,11 @@ class CjsBlackSchemaRegistry {
190
256
  black
191
257
  };
192
258
  }
259
+
260
+ /**
261
+ * Converts a compact type descriptor into its normalized schema
262
+ * representation for the Black object-graph reader.
263
+ */
193
264
  static compactTypeDescriptor(type, spec) {
194
265
  const normalized = String(type || "unknown");
195
266
  switch (normalized) {
@@ -330,6 +401,11 @@ class CjsBlackSchemaRegistry {
330
401
  });
331
402
  }
332
403
  }
404
+
405
+ /**
406
+ * Converts a compact Black wire type into its normalized schema
407
+ * representation for the Black object-graph reader.
408
+ */
333
409
  static compactBlackType(beType, jsType, extra = {}) {
334
410
  return {
335
411
  jsType,
@@ -340,6 +416,11 @@ class CjsBlackSchemaRegistry {
340
416
  }
341
417
  };
342
418
  }
419
+
420
+ /**
421
+ * Converts a compact float-array type into its normalized schema
422
+ * representation for the Black object-graph reader.
423
+ */
343
424
  static compactFloatArrayType(kind, length) {
344
425
  return CjsBlackSchemaRegistry.compactBlackType("FLOATARRAY", {
345
426
  kind,
@@ -348,6 +429,11 @@ class CjsBlackSchemaRegistry {
348
429
  length
349
430
  });
350
431
  }
432
+
433
+ /**
434
+ * Converts a compact wire-type code into its normalized schema
435
+ * representation for the Black object-graph reader.
436
+ */
351
437
  static compactWireType(beType, container = null) {
352
438
  switch (beType) {
353
439
  case "BOOL":
@@ -383,6 +469,11 @@ class CjsBlackSchemaRegistry {
383
469
  return null;
384
470
  }
385
471
  }
472
+
473
+ /**
474
+ * Converts black field into the canonical Black object-graph reader
475
+ * representation.
476
+ */
386
477
  static normalizeBlackField(field, sourceFields = []) {
387
478
  const names = field.names || null;
388
479
  const name = field.name || CjsBlackSchemaRegistry.getNameRole(names, "name") || field.nameExpression || null;
@@ -406,6 +497,11 @@ class CjsBlackSchemaRegistry {
406
497
  beType: field.beType || null
407
498
  };
408
499
  }
500
+
501
+ /**
502
+ * Reports whether black field name matches the current Black object-graph
503
+ * reader.
504
+ */
409
505
  static matchesBlackFieldName(field, blackName) {
410
506
  if (!field || !blackName) return false;
411
507
  if (field.name === blackName) return true;
@@ -420,6 +516,11 @@ class CjsBlackSchemaRegistry {
420
516
  }
421
517
  return false;
422
518
  }
519
+
520
+ /**
521
+ * Classifies a field name as canonical, source, or alias metadata for the
522
+ * Black object-graph reader.
523
+ */
423
524
  static getNameRole(names, role) {
424
525
  if (!names || typeof names !== "object") return null;
425
526
  for (const [name, roles] of Object.entries(names)) {
@@ -428,6 +529,8 @@ class CjsBlackSchemaRegistry {
428
529
  }
429
530
  return null;
430
531
  }
532
+
533
+ /** Converts the current Black object-graph reader value to JS field name. */
431
534
  static toJsFieldName(value) {
432
535
  return String(value || "").replace(/^m_/, "");
433
536
  }