@carbonenginejs/runtime-resource 0.1.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 (372) hide show
  1. package/FORMAT-PROVENANCE.md +135 -0
  2. package/LICENSE +21 -0
  3. package/NOTICE +29 -0
  4. package/README.md +241 -0
  5. package/dist/CjsMotherLode.js +56 -0
  6. package/dist/CjsMotherLode.js.map +1 -0
  7. package/dist/CjsResMan.js +740 -0
  8. package/dist/CjsResMan.js.map +1 -0
  9. package/dist/CjsResManQueue.js +214 -0
  10. package/dist/CjsResManQueue.js.map +1 -0
  11. package/dist/CjsResource.js +366 -0
  12. package/dist/CjsResource.js.map +1 -0
  13. package/dist/CjsResourceSource.js +59 -0
  14. package/dist/CjsResourceSource.js.map +1 -0
  15. package/dist/_virtual/_rollupPluginBabelHelpers.js +153 -0
  16. package/dist/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
  17. package/dist/format/CjsFormat.js +178 -0
  18. package/dist/format/CjsFormat.js.map +1 -0
  19. package/dist/format/CjsResourceProbe.js +269 -0
  20. package/dist/format/CjsResourceProbe.js.map +1 -0
  21. package/dist/format/payloadContract.js +173 -0
  22. package/dist/format/payloadContract.js.map +1 -0
  23. package/dist/formats/black/CjsBlackFormat.js +272 -0
  24. package/dist/formats/black/CjsBlackFormat.js.map +1 -0
  25. package/dist/formats/black/core/CjsBlackBinaryReader.js +153 -0
  26. package/dist/formats/black/core/CjsBlackBinaryReader.js.map +1 -0
  27. package/dist/formats/black/core/CjsBlackPropertyReaders.js +382 -0
  28. package/dist/formats/black/core/CjsBlackPropertyReaders.js.map +1 -0
  29. package/dist/formats/black/core/CjsBlackReader.js +760 -0
  30. package/dist/formats/black/core/CjsBlackReader.js.map +1 -0
  31. package/dist/formats/black/core/CjsBlackSchemaRegistry.js +433 -0
  32. package/dist/formats/black/core/CjsBlackSchemaRegistry.js.map +1 -0
  33. package/dist/formats/black/core/black-schema-v1-2026-07-11.json.js +4 -0
  34. package/dist/formats/black/core/black-schema-v1-2026-07-11.json.js.map +1 -0
  35. package/dist/formats/black/core/blackConstants.js +7 -0
  36. package/dist/formats/black/core/blackConstants.js.map +1 -0
  37. package/dist/formats/black/core/blackDefinitions.js +10 -0
  38. package/dist/formats/black/core/blackDefinitions.js.map +1 -0
  39. package/dist/formats/black/core/blackEnums.js +6 -0
  40. package/dist/formats/black/core/blackEnums.js.map +1 -0
  41. package/dist/formats/black/core/blackSchema.js +3 -0
  42. package/dist/formats/black/core/blackSchema.js.map +1 -0
  43. package/dist/formats/black/core/blackVersion.js +22 -0
  44. package/dist/formats/black/core/blackVersion.js.map +1 -0
  45. package/dist/formats/black/core/helpers.js +182 -0
  46. package/dist/formats/black/core/helpers.js.map +1 -0
  47. package/dist/formats/black/core/schema.js +4 -0
  48. package/dist/formats/black/core/schema.js.map +1 -0
  49. package/dist/formats/black/index.js +2 -0
  50. package/dist/formats/black/index.js.map +1 -0
  51. package/dist/formats/bnk/CjsBnkFormat.js +245 -0
  52. package/dist/formats/bnk/CjsBnkFormat.js.map +1 -0
  53. package/dist/formats/bnk/core/helpers.js +354 -0
  54. package/dist/formats/bnk/core/helpers.js.map +1 -0
  55. package/dist/formats/bnk/core/soundbanksInfo.js +246 -0
  56. package/dist/formats/bnk/core/soundbanksInfo.js.map +1 -0
  57. package/dist/formats/bnk/index.js +3 -0
  58. package/dist/formats/bnk/index.js.map +1 -0
  59. package/dist/formats/cmf/CjsCmfFormat.js +491 -0
  60. package/dist/formats/cmf/CjsCmfFormat.js.map +1 -0
  61. package/dist/formats/cmf/core/binary.js +118 -0
  62. package/dist/formats/cmf/core/binary.js.map +1 -0
  63. package/dist/formats/cmf/core/buffers.js +233 -0
  64. package/dist/formats/cmf/core/buffers.js.map +1 -0
  65. package/dist/formats/cmf/core/constants.js +47 -0
  66. package/dist/formats/cmf/core/constants.js.map +1 -0
  67. package/dist/formats/cmf/core/gr2Anim.js +453 -0
  68. package/dist/formats/cmf/core/gr2Anim.js.map +1 -0
  69. package/dist/formats/cmf/core/helpers.js +287 -0
  70. package/dist/formats/cmf/core/helpers.js.map +1 -0
  71. package/dist/formats/cmf/core/pack.js +276 -0
  72. package/dist/formats/cmf/core/pack.js.map +1 -0
  73. package/dist/formats/cmf/core/schema.js +364 -0
  74. package/dist/formats/cmf/core/schema.js.map +1 -0
  75. package/dist/formats/cmf/core/shared.js +268 -0
  76. package/dist/formats/cmf/core/shared.js.map +1 -0
  77. package/dist/formats/cmf/core/writer.js +517 -0
  78. package/dist/formats/cmf/core/writer.js.map +1 -0
  79. package/dist/formats/cmf/index.js +2 -0
  80. package/dist/formats/cmf/index.js.map +1 -0
  81. package/dist/formats/dds/CjsDdsFormat.js +187 -0
  82. package/dist/formats/dds/CjsDdsFormat.js.map +1 -0
  83. package/dist/formats/dds/core/helpers.js +812 -0
  84. package/dist/formats/dds/core/helpers.js.map +1 -0
  85. package/dist/formats/dds/index.js +2 -0
  86. package/dist/formats/dds/index.js.map +1 -0
  87. package/dist/formats/fbx/CjsFbxFormat.js +260 -0
  88. package/dist/formats/fbx/CjsFbxFormat.js.map +1 -0
  89. package/dist/formats/fbx/core/helpers.js +3901 -0
  90. package/dist/formats/fbx/core/helpers.js.map +1 -0
  91. package/dist/formats/fbx/index.js +2 -0
  92. package/dist/formats/fbx/index.js.map +1 -0
  93. package/dist/formats/flac/CjsFlacFormat.js +81 -0
  94. package/dist/formats/flac/CjsFlacFormat.js.map +1 -0
  95. package/dist/formats/flac/core/helpers.js +295 -0
  96. package/dist/formats/flac/core/helpers.js.map +1 -0
  97. package/dist/formats/flac/index.js +2 -0
  98. package/dist/formats/flac/index.js.map +1 -0
  99. package/dist/formats/gif/CjsGifFormat.js +81 -0
  100. package/dist/formats/gif/CjsGifFormat.js.map +1 -0
  101. package/dist/formats/gif/core/helpers.js +360 -0
  102. package/dist/formats/gif/core/helpers.js.map +1 -0
  103. package/dist/formats/gif/index.js +2 -0
  104. package/dist/formats/gif/index.js.map +1 -0
  105. package/dist/formats/gltf/CjsGltfFormat.js +284 -0
  106. package/dist/formats/gltf/CjsGltfFormat.js.map +1 -0
  107. package/dist/formats/gltf/core/helpers.js +292 -0
  108. package/dist/formats/gltf/core/helpers.js.map +1 -0
  109. package/dist/formats/gltf/core/json.js +79 -0
  110. package/dist/formats/gltf/core/json.js.map +1 -0
  111. package/dist/formats/gltf/core/parser.js +666 -0
  112. package/dist/formats/gltf/core/parser.js.map +1 -0
  113. package/dist/formats/gltf/core/targets.js +163 -0
  114. package/dist/formats/gltf/core/targets.js.map +1 -0
  115. package/dist/formats/gltf/index.js +2 -0
  116. package/dist/formats/gltf/index.js.map +1 -0
  117. package/dist/formats/index.js +23 -0
  118. package/dist/formats/index.js.map +1 -0
  119. package/dist/formats/jpeg/CjsJpegFormat.js +200 -0
  120. package/dist/formats/jpeg/CjsJpegFormat.js.map +1 -0
  121. package/dist/formats/jpeg/core/helpers.js +350 -0
  122. package/dist/formats/jpeg/core/helpers.js.map +1 -0
  123. package/dist/formats/jpeg/core/jpeg.js +377 -0
  124. package/dist/formats/jpeg/core/jpeg.js.map +1 -0
  125. package/dist/formats/jpeg/index.js +2 -0
  126. package/dist/formats/jpeg/index.js.map +1 -0
  127. package/dist/formats/mp3/CjsMp3Format.js +186 -0
  128. package/dist/formats/mp3/CjsMp3Format.js.map +1 -0
  129. package/dist/formats/mp3/core/helpers.js +338 -0
  130. package/dist/formats/mp3/core/helpers.js.map +1 -0
  131. package/dist/formats/mp3/index.js +2 -0
  132. package/dist/formats/mp3/index.js.map +1 -0
  133. package/dist/formats/mp4/CjsMp4Format.js +185 -0
  134. package/dist/formats/mp4/CjsMp4Format.js.map +1 -0
  135. package/dist/formats/mp4/core/helpers.js +449 -0
  136. package/dist/formats/mp4/core/helpers.js.map +1 -0
  137. package/dist/formats/mp4/index.js +2 -0
  138. package/dist/formats/mp4/index.js.map +1 -0
  139. package/dist/formats/obj/CjsObjFormat.js +247 -0
  140. package/dist/formats/obj/CjsObjFormat.js.map +1 -0
  141. package/dist/formats/obj/core/helpers.js +573 -0
  142. package/dist/formats/obj/core/helpers.js.map +1 -0
  143. package/dist/formats/obj/core/json.js +64 -0
  144. package/dist/formats/obj/core/json.js.map +1 -0
  145. package/dist/formats/obj/core/parser.js +321 -0
  146. package/dist/formats/obj/core/parser.js.map +1 -0
  147. package/dist/formats/obj/index.js +2 -0
  148. package/dist/formats/obj/index.js.map +1 -0
  149. package/dist/formats/ogg/CjsOggFormat.js +82 -0
  150. package/dist/formats/ogg/CjsOggFormat.js.map +1 -0
  151. package/dist/formats/ogg/core/helpers.js +387 -0
  152. package/dist/formats/ogg/core/helpers.js.map +1 -0
  153. package/dist/formats/ogg/core/imdct.js +178 -0
  154. package/dist/formats/ogg/core/imdct.js.map +1 -0
  155. package/dist/formats/ogg/core/vorbis.js +999 -0
  156. package/dist/formats/ogg/core/vorbis.js.map +1 -0
  157. package/dist/formats/ogg/index.js +2 -0
  158. package/dist/formats/ogg/index.js.map +1 -0
  159. package/dist/formats/png/CjsPngFormat.js +189 -0
  160. package/dist/formats/png/CjsPngFormat.js.map +1 -0
  161. package/dist/formats/png/core/helpers.js +583 -0
  162. package/dist/formats/png/core/helpers.js.map +1 -0
  163. package/dist/formats/png/index.js +2 -0
  164. package/dist/formats/png/index.js.map +1 -0
  165. package/dist/formats/red/CjsRedFormat.js +247 -0
  166. package/dist/formats/red/CjsRedFormat.js.map +1 -0
  167. package/dist/formats/red/core/CjsRedReader.js +201 -0
  168. package/dist/formats/red/core/CjsRedReader.js.map +1 -0
  169. package/dist/formats/red/core/blackDefinitions.js +3 -0
  170. package/dist/formats/red/core/blackDefinitions.js.map +1 -0
  171. package/dist/formats/red/core/helpers.js +136 -0
  172. package/dist/formats/red/core/helpers.js.map +1 -0
  173. package/dist/formats/red/core/redGraph.js +68 -0
  174. package/dist/formats/red/core/redGraph.js.map +1 -0
  175. package/dist/formats/red/core/schema.js +4 -0
  176. package/dist/formats/red/core/schema.js.map +1 -0
  177. package/dist/formats/red/index.js +2 -0
  178. package/dist/formats/red/index.js.map +1 -0
  179. package/dist/formats/stl/CjsStlFormat.js +304 -0
  180. package/dist/formats/stl/CjsStlFormat.js.map +1 -0
  181. package/dist/formats/stl/core/helpers.js +257 -0
  182. package/dist/formats/stl/core/helpers.js.map +1 -0
  183. package/dist/formats/stl/core/json.js +51 -0
  184. package/dist/formats/stl/core/json.js.map +1 -0
  185. package/dist/formats/stl/core/stl.js +544 -0
  186. package/dist/formats/stl/core/stl.js.map +1 -0
  187. package/dist/formats/stl/core/targets.js +163 -0
  188. package/dist/formats/stl/core/targets.js.map +1 -0
  189. package/dist/formats/stl/index.js +2 -0
  190. package/dist/formats/stl/index.js.map +1 -0
  191. package/dist/formats/tga/CjsTgaFormat.js +186 -0
  192. package/dist/formats/tga/CjsTgaFormat.js.map +1 -0
  193. package/dist/formats/tga/core/helpers.js +446 -0
  194. package/dist/formats/tga/core/helpers.js.map +1 -0
  195. package/dist/formats/tga/index.js +2 -0
  196. package/dist/formats/tga/index.js.map +1 -0
  197. package/dist/formats/wav/CjsWavFormat.js +186 -0
  198. package/dist/formats/wav/CjsWavFormat.js.map +1 -0
  199. package/dist/formats/wav/core/helpers.js +328 -0
  200. package/dist/formats/wav/core/helpers.js.map +1 -0
  201. package/dist/formats/wav/index.js +2 -0
  202. package/dist/formats/wav/index.js.map +1 -0
  203. package/dist/formats/webm/CjsWebmFormat.js +185 -0
  204. package/dist/formats/webm/CjsWebmFormat.js.map +1 -0
  205. package/dist/formats/webm/core/helpers.js +537 -0
  206. package/dist/formats/webm/core/helpers.js.map +1 -0
  207. package/dist/formats/webm/index.js +2 -0
  208. package/dist/formats/webm/index.js.map +1 -0
  209. package/dist/formats/webp/CjsWebpFormat.js +80 -0
  210. package/dist/formats/webp/CjsWebpFormat.js.map +1 -0
  211. package/dist/formats/webp/core/helpers.js +214 -0
  212. package/dist/formats/webp/core/helpers.js.map +1 -0
  213. package/dist/formats/webp/index.js +2 -0
  214. package/dist/formats/webp/index.js.map +1 -0
  215. package/dist/formats/wem/CjsWemFormat.js +197 -0
  216. package/dist/formats/wem/CjsWemFormat.js.map +1 -0
  217. package/dist/formats/wem/core/bitStream.js +259 -0
  218. package/dist/formats/wem/core/bitStream.js.map +1 -0
  219. package/dist/formats/wem/core/codebookLibrary.js +164 -0
  220. package/dist/formats/wem/core/codebookLibrary.js.map +1 -0
  221. package/dist/formats/wem/core/helpers.js +336 -0
  222. package/dist/formats/wem/core/helpers.js.map +1 -0
  223. package/dist/formats/wem/core/packedCodebooksAotuv603.js +30 -0
  224. package/dist/formats/wem/core/packedCodebooksAotuv603.js.map +1 -0
  225. package/dist/formats/wem/core/wemToOgg.js +485 -0
  226. package/dist/formats/wem/core/wemToOgg.js.map +1 -0
  227. package/dist/formats/wem/index.js +2 -0
  228. package/dist/formats/wem/index.js.map +1 -0
  229. package/dist/formats/yaml/CjsYamlFormat.js +77 -0
  230. package/dist/formats/yaml/CjsYamlFormat.js.map +1 -0
  231. package/dist/formats/yaml/core/CjsYamlReader.js +304 -0
  232. package/dist/formats/yaml/core/CjsYamlReader.js.map +1 -0
  233. package/dist/formats/yaml/core/helpers.js +160 -0
  234. package/dist/formats/yaml/core/helpers.js.map +1 -0
  235. package/dist/formats/yaml/index.js +2 -0
  236. package/dist/formats/yaml/index.js.map +1 -0
  237. package/dist/generated/resources/AudioGeometryResData.js +47 -0
  238. package/dist/generated/resources/AudioGeometryResData.js.map +1 -0
  239. package/dist/generated/resources/CmfVertexReader.js +46 -0
  240. package/dist/generated/resources/CmfVertexReader.js.map +1 -0
  241. package/dist/generated/resources/GStateBindingCallbackData.js +31 -0
  242. package/dist/generated/resources/GStateBindingCallbackData.js.map +1 -0
  243. package/dist/generated/resources/MeshDecalData.js +37 -0
  244. package/dist/generated/resources/MeshDecalData.js.map +1 -0
  245. package/dist/generated/resources/MeshDecalLodData.js +34 -0
  246. package/dist/generated/resources/MeshDecalLodData.js.map +1 -0
  247. package/dist/generated/resources/Tr2AsyncSave.js +46 -0
  248. package/dist/generated/resources/Tr2AsyncSave.js.map +1 -0
  249. package/dist/generated/resources/Tr2CmfContents.js +37 -0
  250. package/dist/generated/resources/Tr2CmfContents.js.map +1 -0
  251. package/dist/generated/resources/Tr2GrannyIntersectionResult.js +58 -0
  252. package/dist/generated/resources/Tr2GrannyIntersectionResult.js.map +1 -0
  253. package/dist/generated/resources/Tr2LoadPrepareFence.js +37 -0
  254. package/dist/generated/resources/Tr2LoadPrepareFence.js.map +1 -0
  255. package/dist/generated/resources/Tr2MaterialArea.js +34 -0
  256. package/dist/generated/resources/Tr2MaterialArea.js.map +1 -0
  257. package/dist/generated/resources/Tr2MaterialMesh.js +31 -0
  258. package/dist/generated/resources/Tr2MaterialMesh.js.map +1 -0
  259. package/dist/generated/resources/Tr2MaterialRes.js +34 -0
  260. package/dist/generated/resources/Tr2MaterialRes.js.map +1 -0
  261. package/dist/generated/resources/Tr2ShaderPermutation.js +43 -0
  262. package/dist/generated/resources/Tr2ShaderPermutation.js.map +1 -0
  263. package/dist/generated/resources/Tr2TextureLodManager.js +60 -0
  264. package/dist/generated/resources/Tr2TextureLodManager.js.map +1 -0
  265. package/dist/generated/resources/Tr2TextureLodUpdateRequest.js +37 -0
  266. package/dist/generated/resources/Tr2TextureLodUpdateRequest.js.map +1 -0
  267. package/dist/generated/resources/Tr2TexturePackChannel.js +37 -0
  268. package/dist/generated/resources/Tr2TexturePackChannel.js.map +1 -0
  269. package/dist/generated/resources/Tr2TexturePipeline.js +44 -0
  270. package/dist/generated/resources/Tr2TexturePipeline.js.map +1 -0
  271. package/dist/generated/resources/Tr2TexturePipelineParams.js +34 -0
  272. package/dist/generated/resources/Tr2TexturePipelineParams.js.map +1 -0
  273. package/dist/generated/resources/Tr2TexturePipelineStepCompress.js +40 -0
  274. package/dist/generated/resources/Tr2TexturePipelineStepCompress.js.map +1 -0
  275. package/dist/generated/resources/Tr2TexturePipelineStepLimitSize.js +34 -0
  276. package/dist/generated/resources/Tr2TexturePipelineStepLimitSize.js.map +1 -0
  277. package/dist/generated/resources/Tr2TexturePipelineStepLoad.js +31 -0
  278. package/dist/generated/resources/Tr2TexturePipelineStepLoad.js.map +1 -0
  279. package/dist/generated/resources/Tr2TexturePipelineStepPack.js +43 -0
  280. package/dist/generated/resources/Tr2TexturePipelineStepPack.js.map +1 -0
  281. package/dist/generated/resources/TriGeometryResAreaData.js +59 -0
  282. package/dist/generated/resources/TriGeometryResAreaData.js.map +1 -0
  283. package/dist/generated/resources/TriGeometryResJointData.js +38 -0
  284. package/dist/generated/resources/TriGeometryResJointData.js.map +1 -0
  285. package/dist/generated/resources/TriGeometryResLodData.js +88 -0
  286. package/dist/generated/resources/TriGeometryResLodData.js.map +1 -0
  287. package/dist/generated/resources/TriGeometryResMeshData.js +63 -0
  288. package/dist/generated/resources/TriGeometryResMeshData.js.map +1 -0
  289. package/dist/generated/resources/TriGeometryResSkeletonData.js +34 -0
  290. package/dist/generated/resources/TriGeometryResSkeletonData.js.map +1 -0
  291. package/dist/generated/resources/TriJointBinding.js +38 -0
  292. package/dist/generated/resources/TriJointBinding.js.map +1 -0
  293. package/dist/generated/resources/TriMorphTargetGeometryConstants.js +46 -0
  294. package/dist/generated/resources/TriMorphTargetGeometryConstants.js.map +1 -0
  295. package/dist/generated/resources/TriRtGeometryConstants.js +88 -0
  296. package/dist/generated/resources/TriRtGeometryConstants.js.map +1 -0
  297. package/dist/generated/resources/enums.js +18 -0
  298. package/dist/generated/resources/enums.js.map +1 -0
  299. package/dist/generated/resources/index.js +32 -0
  300. package/dist/generated/resources/index.js.map +1 -0
  301. package/dist/index.js +52 -0
  302. package/dist/index.js.map +1 -0
  303. package/dist/resourcePath.js +18 -0
  304. package/dist/resourcePath.js.map +1 -0
  305. package/dist/resourceStates.js +9 -0
  306. package/dist/resourceStates.js.map +1 -0
  307. package/dist/resources/Tr2EffectRes.js +71 -0
  308. package/dist/resources/Tr2EffectRes.js.map +1 -0
  309. package/dist/resources/Tr2GrannyStateRes.js +44 -0
  310. package/dist/resources/Tr2GrannyStateRes.js.map +1 -0
  311. package/dist/resources/Tr2ImageRes.js +114 -0
  312. package/dist/resources/Tr2ImageRes.js.map +1 -0
  313. package/dist/resources/Tr2LightProfileRes.js +40 -0
  314. package/dist/resources/Tr2LightProfileRes.js.map +1 -0
  315. package/dist/resources/TriGeometryRes.js +216 -0
  316. package/dist/resources/TriGeometryRes.js.map +1 -0
  317. package/dist/resources/TriGrannyRes.js +43 -0
  318. package/dist/resources/TriGrannyRes.js.map +1 -0
  319. package/dist/resources/TriTextureRes.js +304 -0
  320. package/dist/resources/TriTextureRes.js.map +1 -0
  321. package/dist/resources/resourceBoundary.js +47 -0
  322. package/dist/resources/resourceBoundary.js.map +1 -0
  323. package/dist/texture/CjsTextureArrayRes.js +406 -0
  324. package/dist/texture/CjsTextureArrayRes.js.map +1 -0
  325. package/dist/texture/CjsTextureParameterProxy.js +133 -0
  326. package/dist/texture/CjsTextureParameterProxy.js.map +1 -0
  327. package/format-notices/black/LICENSE +21 -0
  328. package/format-notices/black/NOTICE +47 -0
  329. package/format-notices/bnk/LICENSE +21 -0
  330. package/format-notices/bnk/NOTICE +17 -0
  331. package/format-notices/cmf/LICENSE +21 -0
  332. package/format-notices/cmf/NOTICE +36 -0
  333. package/format-notices/dds/LICENSE +21 -0
  334. package/format-notices/dds/NOTICE +14 -0
  335. package/format-notices/fbx/LICENSE +21 -0
  336. package/format-notices/fbx/NOTICE +14 -0
  337. package/format-notices/flac/LICENSE +21 -0
  338. package/format-notices/flac/NOTICE +14 -0
  339. package/format-notices/gif/LICENSE +21 -0
  340. package/format-notices/gif/NOTICE +14 -0
  341. package/format-notices/gltf/LICENSE +21 -0
  342. package/format-notices/gltf/NOTICE +27 -0
  343. package/format-notices/jpeg/LICENSE +21 -0
  344. package/format-notices/jpeg/NOTICE +14 -0
  345. package/format-notices/mp3/LICENSE +21 -0
  346. package/format-notices/mp3/NOTICE +14 -0
  347. package/format-notices/mp4/LICENSE +21 -0
  348. package/format-notices/mp4/NOTICE +14 -0
  349. package/format-notices/obj/LICENSE +21 -0
  350. package/format-notices/obj/NOTICE +26 -0
  351. package/format-notices/ogg/LICENSE +21 -0
  352. package/format-notices/ogg/NOTICE +28 -0
  353. package/format-notices/png/LICENSE +21 -0
  354. package/format-notices/png/NOTICE +14 -0
  355. package/format-notices/red/LICENSE +21 -0
  356. package/format-notices/red/NOTICE +31 -0
  357. package/format-notices/stl/LICENSE +21 -0
  358. package/format-notices/stl/NOTICE +21 -0
  359. package/format-notices/tga/LICENSE +21 -0
  360. package/format-notices/tga/NOTICE +14 -0
  361. package/format-notices/wav/LICENSE +21 -0
  362. package/format-notices/wav/NOTICE +14 -0
  363. package/format-notices/webm/LICENSE +21 -0
  364. package/format-notices/webm/NOTICE +14 -0
  365. package/format-notices/webp/LICENSE +21 -0
  366. package/format-notices/webp/NOTICE +14 -0
  367. package/format-notices/wem/LICENSE +57 -0
  368. package/format-notices/wem/NOTICE +33 -0
  369. package/format-notices/yaml/LICENSE +21 -0
  370. package/format-notices/yaml/NOTICE +44 -0
  371. package/package.json +51 -0
  372. package/resource-lifecycle.md +487 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CjsBlackReader.js","sources":["../../../../../src/formats/black/core/CjsBlackReader.js"],"sourcesContent":["import {\n CARBON_TYPE,\n CjsCarbonDocument,\n CjsSchema,\n normalizeCarbonTypeDescriptor,\n normalizeCarbonValue,\n resolveHydrationAdapter\n} from \"@carbonenginejs/core-types\";\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\nexport class CjsBlackReader\n{\n constructor(input, options = {})\n {\n this.options = { ...options };\n this.reader = CjsBlackBinaryReader.from(input, this);\n this.schemaShapes = CjsBlackSchemaRegistry.createShapeMap(options.schema);\n this.references = new Map();\n this.nodes = [];\n this.reports = [];\n this.nextNodeId = 1;\n this.info = null;\n this.readMode = \"payload\";\n this.payloadDepth = 0;\n this.payloadRootFields = null;\n this.hydrationAdapter = resolveHydrationAdapter(options);\n this.hydrationOptions = {\n ...options,\n markDirty: false,\n skipUpdate: true,\n skipEvents: true\n };\n this.runtimeInstances = [];\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 // Phase 3: the whole graph is constructed and valued (references\n // resolved), so run the adapter's post-graph init once per instance.\n // Instances are collected in completion order, so children finalize\n // before their parents.\n for (const record of this.runtimeInstances)\n {\n this.hydrationAdapter.finalize(record.instance, {\n kind: record.kind,\n shape: record.shape\n });\n }\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.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.hydrationAdapter.applyValues(target, values, { kind, shape, options: this.hydrationOptions });\n this.runtimeInstances.push({ instance: target, 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 CreateRuntimeTarget(kind, shape)\n {\n const built = this.hydrationAdapter.construct(kind, { kind, shape, options: this.options });\n if (built !== undefined) return built;\n\n const ClassConstructor = this.ResolveClass(kind);\n if (ClassConstructor)\n {\n return new ClassConstructor();\n }\n\n return {\n _sourceClassName: kind,\n _sourceShape: shape || null\n };\n }\n\n CreatePayloadTarget(kind)\n {\n const typeField = this.GetPayloadTypeField();\n return typeField ? { [typeField]: kind } : {};\n }\n\n CreateSkippedPayloadTarget()\n {\n return {};\n }\n\n CreatePayloadReference(targetObject, blackReference)\n {\n const idField = this.GetPayloadIdField();\n const referenceField = this.GetPayloadReferenceField();\n\n if (idField && !Object.hasOwn(targetObject, idField))\n {\n targetObject[idField] = blackReference;\n }\n\n return referenceField ? { [referenceField]: blackReference } : targetObject;\n }\n\n GetPayloadTypeField()\n {\n return this.options.payloadTypeField === false ? null : (this.options.payloadTypeField || \"_type\");\n }\n\n GetPayloadIdField()\n {\n return this.options.payloadIdField === false ? null : (this.options.payloadIdField || \"_id\");\n }\n\n GetPayloadReferenceField()\n {\n return this.options.payloadReferenceField === false ? null : (this.options.payloadReferenceField || \"_reference\");\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 AssignRuntimeFieldValue(targetObject, target, value)\n {\n if (target.unknown)\n {\n targetObject[target.blackName] = value;\n return;\n }\n\n if (target.indexed)\n {\n let current = targetObject[target.field.name];\n if (!current || typeof current !== \"object\")\n {\n current = Number.isInteger(target.index) ? [] : {};\n targetObject[target.field.name] = current;\n }\n\n current[target.key] = this.NormalizeRuntimeFieldValue(value, target.field);\n return;\n }\n\n targetObject[target.field.name] = this.NormalizeRuntimeFieldValue(value, target.field);\n }\n\n AssignPayloadFieldValue(targetObject, target, value)\n {\n if (target.unknown)\n {\n targetObject[target.blackName] = value;\n return;\n }\n\n if (target.indexed)\n {\n let current = targetObject[target.field.name];\n if (!current || typeof current !== \"object\")\n {\n current = Number.isInteger(target.index) ? [] : {};\n targetObject[target.field.name] = current;\n }\n\n current[target.key] = value;\n return;\n }\n\n targetObject[target.field.name] = value;\n }\n\n NormalizeRuntimeFieldValue(value, field)\n {\n if (!field) return value;\n\n // In runtime mode, object-graph fields already hold constructed class\n // instances (or arrays/dicts of them) produced by ReadObject. Passing\n // those back through normalizeCarbonValue would deep-clone and flatten\n // them into plain objects, dropping the constructed classes. Preserve\n // them - matching CjsDocumentHydrator.hydrateFieldValue - and only\n // normalize scalar/math leaf values.\n const descriptor = normalizeCarbonTypeDescriptor(field);\n const kind = descriptor.kind;\n\n if (kind === CARBON_TYPE.ARRAY && Array.isArray(value)) return value;\n if ((kind === CARBON_TYPE.OBJECT_REF\n || kind === CARBON_TYPE.STRUCT\n || kind === CARBON_TYPE.RAW_STRUCT\n || kind === CARBON_TYPE.UNKNOWN)\n && value && typeof value === \"object\")\n {\n return value;\n }\n if (CjsBlackReader.isShapeIncompatibleMathArray(value, descriptor)) return value;\n\n return normalizeCarbonValue(value, field);\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 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 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 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 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 ResolveSourceShape(kind)\n {\n const registry = this.options.registry || null;\n if (registry?.GetSourceShape) return registry.GetSourceShape(kind);\n\n const sourceShapes = this.options.sourceShapes || null;\n if (sourceShapes?.GetSourceShape) return sourceShapes.GetSourceShape(kind);\n if (sourceShapes)\n {\n const shape = sourceShapes instanceof Map ? sourceShapes.get(kind) : sourceShapes[kind];\n if (shape) return CjsBlackSchemaRegistry.normalizeShape(shape);\n }\n\n return this.schemaShapes.get(kind) || null;\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 this.references = new Map();\n this.nodes = [];\n this.reports = [];\n this.nextNodeId = this.options.firstId || 1;\n this.payloadDepth = 0;\n this.payloadRootFields = null;\n this.runtimeInstances = [];\n }\n\n TransformPath(value)\n {\n const handler = this.options.pathHandler;\n return typeof handler === \"function\" ? handler(value) : value;\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 static isShapeIncompatibleMathArray(value, descriptor)\n {\n const expectedLength = descriptor?.length;\n return Array.isArray(value) && Number.isInteger(expectedLength) && value.length !== expectedLength;\n }\n}\n\nconst CJS_BLACK_INDEX_TOKEN_NAMES = Object.freeze({\n SIMPLEPRIMARY: \"SimplePrimary\"\n});\n"],"names":["CjsBlackReader","constructor","input","options","reader","CjsBlackBinaryReader","from","schemaShapes","CjsBlackSchemaRegistry","createShapeMap","schema","references","Map","nodes","reports","nextNodeId","info","readMode","payloadDepth","payloadRootFields","hydrationAdapter","resolveHydrationAdapter","hydrationOptions","markDirty","skipUpdate","skipEvents","runtimeInstances","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","ReadRuntime","root","record","finalize","instance","shape","object","payload","comments","ShouldIncludeDocumentMetadata","ReadRuntimeObject","ReadPayloadObject","blackReference","existing","get","createRef","ReadObjectPayload","embedded","ReadEmbeddedObject","ReadRuntimeObjectPayload","ReadPayloadObjectPayload","payloadSize","objectReader","ReadBinaryReader","ReadStringRef","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","applyValues","CreatePayloadReference","CreatePayloadTarget","ShouldSkipPayloadField","SkipFieldValue","AssignPayloadFieldValue","built","construct","undefined","ClassConstructor","ResolveClass","_sourceClassName","_sourceShape","typeField","GetPayloadTypeField","CreateSkippedPayloadTarget","targetObject","idField","GetPayloadIdField","referenceField","GetPayloadReferenceField","Object","hasOwn","payloadTypeField","payloadIdField","payloadReferenceField","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","NormalizeRuntimeFieldValue","descriptor","normalizeCarbonTypeDescriptor","CARBON_TYPE","ARRAY","OBJECT_REF","STRUCT","RAW_STRUCT","UNKNOWN","isShapeIncompatibleMathArray","normalizeCarbonValue","blackField","find","item","matchesBlackFieldName","ResolveBlackFieldTarget","parseIndexedMember","indexedField","toJsFieldName","normalizeIndexedKey","ShouldCaptureUnknownField","ResolveUnknownFieldTarget","readers","GetUnknownFieldReaders","errors","startOffset","level","code","readByKind","streamReader","readByDescriptor","allowUnknownStringFallback","endsWith","test","unshift","elementType","sourceField","memberPath","memberRoot","cppType","hasIndex","indexKey","storageKey","_kind","_shape","beType","captureUnknownBlackFields","captureUnknownResourceFields","captureUnknownWhenNoBlackFields","registry","GetSourceShape","sourceShapes","normalizeShape","classes","Schema","CjsSchema","GetConstructor","firstId","TransformPath","handler","pathHandler","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","expectedLength","freeze","SIMPLEPRIMARY"],"mappings":"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"}
@@ -0,0 +1,433 @@
1
+ class CjsBlackSchemaRegistry {
2
+ constructor(schema = null) {
3
+ this.shapes = CjsBlackSchemaRegistry.createShapeMap(schema);
4
+ }
5
+ GetSourceShape(kind) {
6
+ return this.shapes.get(kind) || null;
7
+ }
8
+ static createShapeMap(schema) {
9
+ const shapes = new Map();
10
+ if (CjsBlackSchemaRegistry.isCompactClassMap(schema)) {
11
+ CjsBlackSchemaRegistry.addCompactClassMap(schema, shapes);
12
+ return shapes;
13
+ }
14
+ CjsBlackSchemaRegistry.collectSchemaShapes(schema, shapes, new WeakSet());
15
+ return shapes;
16
+ }
17
+ static collectSchemaShapes(value, shapes, seen) {
18
+ if (!value || typeof value !== "object") return;
19
+ if (seen.has(value)) return;
20
+ seen.add(value);
21
+ if (Array.isArray(value)) {
22
+ for (const item of value) {
23
+ CjsBlackSchemaRegistry.collectSchemaShapes(item, shapes, seen);
24
+ }
25
+ return;
26
+ }
27
+ if (CjsBlackSchemaRegistry.isClassSchema(value)) {
28
+ CjsBlackSchemaRegistry.addShape(value, shapes);
29
+ return;
30
+ }
31
+ if (Array.isArray(value.families)) {
32
+ for (const family of value.families) {
33
+ CjsBlackSchemaRegistry.collectSchemaShapes(family, shapes, seen);
34
+ }
35
+ }
36
+ if (Array.isArray(value.classes)) {
37
+ for (const item of value.classes) {
38
+ CjsBlackSchemaRegistry.collectSchemaShapes(item, shapes, seen);
39
+ }
40
+ } else if (CjsBlackSchemaRegistry.isCompactClassMap(value.classes)) {
41
+ CjsBlackSchemaRegistry.addCompactClassMap(value.classes, shapes);
42
+ }
43
+ for (const item of Object.values(value)) {
44
+ if (item && typeof item === "object" && CjsBlackSchemaRegistry.isClassSchema(item)) {
45
+ CjsBlackSchemaRegistry.addShape(item, shapes);
46
+ }
47
+ }
48
+ }
49
+ static isCompactClassMap(value) {
50
+ if (!value || typeof value !== "object" || Array.isArray(value)) return false;
51
+ if (CjsBlackSchemaRegistry.isClassSchema(value)) return false;
52
+ if (value.black || value.families || Array.isArray(value.classes)) return false;
53
+ const entries = Object.entries(value);
54
+ if (!entries.length) return false;
55
+ return entries.every(([className, fields]) => typeof className === "string" && className.length > 0 && CjsBlackSchemaRegistry.isCompactFieldMap(fields) && CjsBlackSchemaRegistry.isCompactClassFields(fields));
56
+ }
57
+ static isCompactClassFields(fields) {
58
+ const specs = Object.values(fields || {});
59
+ return specs.every(spec => CjsBlackSchemaRegistry.isCompactFieldSpec(spec));
60
+ }
61
+ static isCompactFieldSpec(spec) {
62
+ if (typeof spec === "string") return true;
63
+ if (!spec || typeof spec !== "object" || Array.isArray(spec)) return false;
64
+ return typeof spec.type === "string" || typeof spec.kind === "string";
65
+ }
66
+ static addCompactClassMap(classes, shapes) {
67
+ for (const [className, fields] of Object.entries(classes || {})) {
68
+ CjsBlackSchemaRegistry.addShape({
69
+ className,
70
+ fields
71
+ }, shapes);
72
+ }
73
+ }
74
+ static isClassSchema(value) {
75
+ if (!value || typeof value !== "object") return false;
76
+ if (Array.isArray(value)) return false;
77
+ 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);
78
+ }
79
+ static addShape(schema, shapes) {
80
+ const shape = CjsBlackSchemaRegistry.normalizeShape(schema);
81
+ if (!shape?.className) return;
82
+ shapes.set(shape.className, shape);
83
+ if (schema.blueClass) shapes.set(schema.blueClass, shape);
84
+ if (schema.cppClass) shapes.set(schema.cppClass, shape);
85
+ if (schema.name) shapes.set(schema.name, shape);
86
+ }
87
+ static normalizeShape(schema) {
88
+ const black = schema.black || {};
89
+ const className = black.className || schema.className || schema.blueClass || schema.cppClass || schema.name || null;
90
+ if (!className) return null;
91
+ const fields = CjsBlackSchemaRegistry.normalizeFields(schema);
92
+ const blackFieldSource = CjsBlackSchemaRegistry.isCompactFieldMap(schema.fields) ? CjsBlackSchemaRegistry.compactBlackFields(schema.fields) : black.fields || schema.blackFields || schema.fields || [];
93
+ const blackFields = blackFieldSource.filter(item => item && typeof item === "object").map(item => CjsBlackSchemaRegistry.normalizeBlackField(item, fields));
94
+ return {
95
+ ...schema,
96
+ className,
97
+ family: schema.family || null,
98
+ fields,
99
+ black: {
100
+ ...black,
101
+ className,
102
+ fields: blackFields
103
+ }
104
+ };
105
+ }
106
+ static normalizeFields(schema) {
107
+ const fields = [];
108
+ const byName = new Map();
109
+ const add = field => {
110
+ if (!field || typeof field !== "object") return;
111
+ const name = field.name || field.fieldName || field.blueName || CjsBlackSchemaRegistry.toJsFieldName(field.cppName || field.member || "");
112
+ if (!name || byName.has(name)) return;
113
+ const normalized = {
114
+ ...field,
115
+ name,
116
+ cppName: field.cppName || field.memberPath || field.memberRoot || field.member || null,
117
+ cppType: field.cppType || null
118
+ };
119
+ byName.set(name, normalized);
120
+ fields.push(normalized);
121
+ };
122
+ if (CjsBlackSchemaRegistry.isCompactFieldMap(schema.fields)) {
123
+ for (const [blackName, fieldSpec] of Object.entries(schema.fields)) {
124
+ add(CjsBlackSchemaRegistry.compactField(blackName, fieldSpec));
125
+ }
126
+ } else {
127
+ for (const field of schema.fields || []) {
128
+ add(field);
129
+ }
130
+ }
131
+ for (const attribute of schema.attributes || []) {
132
+ if (!attribute?.black) continue;
133
+ const black = CjsBlackSchemaRegistry.normalizeBlackField(attribute.black, fields);
134
+ add({
135
+ name: black.fieldName || attribute.blueName || black.name,
136
+ cppName: black.cppName,
137
+ cppType: black.cppType || attribute.cppType,
138
+ black
139
+ });
140
+ }
141
+ return fields;
142
+ }
143
+ static isCompactFieldMap(value) {
144
+ return !!value && typeof value === "object" && !Array.isArray(value);
145
+ }
146
+ static compactBlackFields(fields) {
147
+ return Object.entries(fields || {}).map(([blackName, fieldSpec]) => CjsBlackSchemaRegistry.compactBlackField(blackName, fieldSpec));
148
+ }
149
+ static compactField(blackName, fieldSpec) {
150
+ const spec = CjsBlackSchemaRegistry.normalizeCompactSpec(blackName, fieldSpec);
151
+ return {
152
+ name: spec.fieldName,
153
+ fieldName: spec.fieldName,
154
+ enumType: spec.enumType,
155
+ jsType: spec.jsType,
156
+ black: spec.black
157
+ };
158
+ }
159
+ static compactBlackField(blackName, fieldSpec) {
160
+ return CjsBlackSchemaRegistry.normalizeCompactSpec(blackName, fieldSpec).black;
161
+ }
162
+ static normalizeCompactSpec(blackName, fieldSpec) {
163
+ const spec = typeof fieldSpec === "string" ? {
164
+ type: fieldSpec
165
+ } : fieldSpec || {},
166
+ type = spec.type || spec.kind || "unknown",
167
+ fieldName = spec.field || spec.fieldName || blackName,
168
+ descriptor = CjsBlackSchemaRegistry.compactTypeDescriptor(type, spec),
169
+ black = {
170
+ name: blackName,
171
+ fieldName,
172
+ storageName: fieldName,
173
+ member: blackName,
174
+ memberPath: fieldName,
175
+ memberRoot: fieldName,
176
+ indexKey: Object.hasOwn(spec, "index") ? spec.index : undefined,
177
+ indexToken: spec.token || null,
178
+ enumType: spec.enum || null,
179
+ ...descriptor.black,
180
+ jsType: descriptor.jsType
181
+ };
182
+ return {
183
+ fieldName,
184
+ enumType: spec.enum || null,
185
+ jsType: descriptor.jsType,
186
+ black
187
+ };
188
+ }
189
+ static compactTypeDescriptor(type, spec) {
190
+ const normalized = String(type || "unknown");
191
+ switch (normalized) {
192
+ case "boolean":
193
+ case "bool":
194
+ return CjsBlackSchemaRegistry.compactBlackType("BOOL", {
195
+ kind: "boolean"
196
+ });
197
+ case "string":
198
+ return CjsBlackSchemaRegistry.compactBlackType("STDSTRING", {
199
+ kind: "string"
200
+ });
201
+ case "wstring":
202
+ return CjsBlackSchemaRegistry.compactBlackType("STDWSTRING", {
203
+ kind: "string"
204
+ });
205
+ case "path":
206
+ return CjsBlackSchemaRegistry.compactBlackType("STDSTRING", {
207
+ kind: "path"
208
+ });
209
+ case "expression":
210
+ return CjsBlackSchemaRegistry.compactBlackType("STDSTRING", {
211
+ kind: "expression",
212
+ js: "string"
213
+ });
214
+ case "enum":
215
+ return CjsBlackSchemaRegistry.compactBlackType("LONG", {
216
+ kind: "enum"
217
+ }, {
218
+ signed: true
219
+ });
220
+ case "float":
221
+ return CjsBlackSchemaRegistry.compactBlackType("FLOAT", {
222
+ kind: "float32"
223
+ });
224
+ case "double":
225
+ return CjsBlackSchemaRegistry.compactBlackType("DOUBLE", {
226
+ kind: "float64"
227
+ });
228
+ case "int":
229
+ return CjsBlackSchemaRegistry.compactBlackType("LONG", {
230
+ kind: "int32"
231
+ }, {
232
+ signed: true
233
+ });
234
+ case "uint":
235
+ return CjsBlackSchemaRegistry.compactBlackType("ULONG", {
236
+ kind: "uint32"
237
+ }, {
238
+ signed: false
239
+ });
240
+ case "int64":
241
+ return CjsBlackSchemaRegistry.compactBlackType("INT64", {
242
+ kind: "int64"
243
+ }, {
244
+ signed: true
245
+ });
246
+ case "uint64":
247
+ return CjsBlackSchemaRegistry.compactBlackType("UINT64", {
248
+ kind: "uint64"
249
+ }, {
250
+ signed: false
251
+ });
252
+ case "byte":
253
+ return CjsBlackSchemaRegistry.compactBlackType("BYTE", {
254
+ kind: "int8"
255
+ }, {
256
+ signed: true
257
+ });
258
+ case "ubyte":
259
+ return CjsBlackSchemaRegistry.compactBlackType("BYTE", {
260
+ kind: "uint8"
261
+ }, {
262
+ signed: false
263
+ });
264
+ case "short":
265
+ return CjsBlackSchemaRegistry.compactBlackType("SHORT", {
266
+ kind: "int16"
267
+ }, {
268
+ signed: true
269
+ });
270
+ case "ushort":
271
+ return CjsBlackSchemaRegistry.compactBlackType("SHORT", {
272
+ kind: "uint16"
273
+ }, {
274
+ signed: false
275
+ });
276
+ case "vector2":
277
+ return CjsBlackSchemaRegistry.compactFloatArrayType("vector2", 2);
278
+ case "vector3":
279
+ return CjsBlackSchemaRegistry.compactFloatArrayType("vector3", 3);
280
+ case "vector4":
281
+ return CjsBlackSchemaRegistry.compactFloatArrayType("vector4", 4);
282
+ case "color":
283
+ return CjsBlackSchemaRegistry.compactFloatArrayType("color", 4);
284
+ case "quaternion":
285
+ return CjsBlackSchemaRegistry.compactFloatArrayType("quaternion", 4);
286
+ case "matrix3":
287
+ return CjsBlackSchemaRegistry.compactFloatArrayType("matrix3", 9);
288
+ case "matrix4":
289
+ return CjsBlackSchemaRegistry.compactFloatArrayType("matrix4", 16);
290
+ case "floatArray":
291
+ return CjsBlackSchemaRegistry.compactFloatArrayType("array", spec.length || 0);
292
+ case "array":
293
+ return CjsBlackSchemaRegistry.compactBlackType("IROOT", {
294
+ kind: "array"
295
+ }, {
296
+ container: "list"
297
+ });
298
+ case "dict":
299
+ return CjsBlackSchemaRegistry.compactBlackType("IROOT", {
300
+ kind: "map"
301
+ }, {
302
+ container: "dict"
303
+ });
304
+ case "object":
305
+ return CjsBlackSchemaRegistry.compactBlackType("IROOTPTR", {
306
+ kind: "objectRef"
307
+ });
308
+ case "rawStruct":
309
+ return CjsBlackSchemaRegistry.compactBlackType("IROOT", {
310
+ kind: "rawStruct"
311
+ });
312
+ case "structList":
313
+ return CjsBlackSchemaRegistry.compactBlackType("IROOT", {
314
+ kind: "array"
315
+ }, {
316
+ container: "list",
317
+ cppType: spec.cppType || "StructureList"
318
+ });
319
+ case "binaryBlock":
320
+ return CjsBlackSchemaRegistry.compactBlackType("BINARYBLOCK", {
321
+ kind: "typedArray"
322
+ });
323
+ default:
324
+ return CjsBlackSchemaRegistry.compactBlackType(null, {
325
+ kind: normalized
326
+ });
327
+ }
328
+ }
329
+ static compactBlackType(beType, jsType, extra = {}) {
330
+ return {
331
+ jsType,
332
+ black: {
333
+ beType,
334
+ wireType: CjsBlackSchemaRegistry.compactWireType(beType, extra.container),
335
+ ...extra
336
+ }
337
+ };
338
+ }
339
+ static compactFloatArrayType(kind, length) {
340
+ return CjsBlackSchemaRegistry.compactBlackType("FLOATARRAY", {
341
+ kind,
342
+ length
343
+ }, {
344
+ length
345
+ });
346
+ }
347
+ static compactWireType(beType, container = null) {
348
+ switch (beType) {
349
+ case "BOOL":
350
+ return "bool";
351
+ case "STDSTRING":
352
+ case "STDWSTRING":
353
+ return "stringRef";
354
+ case "FLOAT":
355
+ return "float32";
356
+ case "DOUBLE":
357
+ return "float64";
358
+ case "LONG":
359
+ return "int32";
360
+ case "ULONG":
361
+ return "uint32";
362
+ case "INT64":
363
+ return "int64";
364
+ case "UINT64":
365
+ return "uint64";
366
+ case "BYTE":
367
+ return "uint8";
368
+ case "SHORT":
369
+ return "uint16";
370
+ case "FLOATARRAY":
371
+ return "floatArray";
372
+ case "BINARYBLOCK":
373
+ return "binaryBlock";
374
+ case "IROOTPTR":
375
+ return "objectRef";
376
+ case "IROOT":
377
+ return container ? "container" : "inlineObject";
378
+ default:
379
+ return null;
380
+ }
381
+ }
382
+ static normalizeBlackField(field, sourceFields = []) {
383
+ const names = field.names || null;
384
+ const name = field.name || CjsBlackSchemaRegistry.getNameRole(names, "name") || field.nameExpression || null;
385
+ const fieldName = field.fieldName || CjsBlackSchemaRegistry.getNameRole(names, "fieldName") || name || null;
386
+ const cppName = field.cppName || CjsBlackSchemaRegistry.getNameRole(names, "cppName") || CjsBlackSchemaRegistry.getNameRole(names, "memberPath") || CjsBlackSchemaRegistry.getNameRole(names, "memberRoot") || null;
387
+ const member = field.member || CjsBlackSchemaRegistry.getNameRole(names, "member") || cppName || name;
388
+ const memberPath = field.memberPath || CjsBlackSchemaRegistry.getNameRole(names, "memberPath") || cppName;
389
+ const memberRoot = field.memberRoot || CjsBlackSchemaRegistry.getNameRole(names, "memberRoot") || memberPath;
390
+ const sourceField = sourceFields.find(item => item.name === fieldName || item.name === name || item.cppName === cppName || item.cppName === memberPath || item.cppName === memberRoot);
391
+ return {
392
+ ...field,
393
+ names,
394
+ name,
395
+ fieldName,
396
+ storageName: field.storageName || fieldName || name,
397
+ cppName: cppName || sourceField?.cppName || null,
398
+ member,
399
+ memberPath,
400
+ memberRoot,
401
+ cppType: field.cppType || sourceField?.cppType || null,
402
+ beType: field.beType || null
403
+ };
404
+ }
405
+ static matchesBlackFieldName(field, blackName) {
406
+ if (!field || !blackName) return false;
407
+ if (field.name === blackName) return true;
408
+ if (field.fieldName === blackName) return true;
409
+ if (field.member === blackName) return true;
410
+ if (field.memberPath === blackName) return true;
411
+ if (field.memberRoot === blackName) return true;
412
+ if (field.cppName === blackName) return true;
413
+ if (field.nameExpression === blackName) return true;
414
+ if (field.names && typeof field.names === "object") {
415
+ return Object.hasOwn(field.names, blackName);
416
+ }
417
+ return false;
418
+ }
419
+ static getNameRole(names, role) {
420
+ if (!names || typeof names !== "object") return null;
421
+ for (const [name, roles] of Object.entries(names)) {
422
+ const roleList = Array.isArray(roles) ? roles : String(roles || "").split(/\s+/);
423
+ if (roleList.includes(role)) return name;
424
+ }
425
+ return null;
426
+ }
427
+ static toJsFieldName(value) {
428
+ return String(value || "").replace(/^m_/, "");
429
+ }
430
+ }
431
+
432
+ export { CjsBlackSchemaRegistry };
433
+ //# sourceMappingURL=CjsBlackSchemaRegistry.js.map