@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.
- package/FORMAT-PROVENANCE.md +135 -0
- package/LICENSE +21 -0
- package/NOTICE +29 -0
- package/README.md +241 -0
- package/dist/CjsMotherLode.js +56 -0
- package/dist/CjsMotherLode.js.map +1 -0
- package/dist/CjsResMan.js +740 -0
- package/dist/CjsResMan.js.map +1 -0
- package/dist/CjsResManQueue.js +214 -0
- package/dist/CjsResManQueue.js.map +1 -0
- package/dist/CjsResource.js +366 -0
- package/dist/CjsResource.js.map +1 -0
- package/dist/CjsResourceSource.js +59 -0
- package/dist/CjsResourceSource.js.map +1 -0
- package/dist/_virtual/_rollupPluginBabelHelpers.js +153 -0
- package/dist/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
- package/dist/format/CjsFormat.js +178 -0
- package/dist/format/CjsFormat.js.map +1 -0
- package/dist/format/CjsResourceProbe.js +269 -0
- package/dist/format/CjsResourceProbe.js.map +1 -0
- package/dist/format/payloadContract.js +173 -0
- package/dist/format/payloadContract.js.map +1 -0
- package/dist/formats/black/CjsBlackFormat.js +272 -0
- package/dist/formats/black/CjsBlackFormat.js.map +1 -0
- package/dist/formats/black/core/CjsBlackBinaryReader.js +153 -0
- package/dist/formats/black/core/CjsBlackBinaryReader.js.map +1 -0
- package/dist/formats/black/core/CjsBlackPropertyReaders.js +382 -0
- package/dist/formats/black/core/CjsBlackPropertyReaders.js.map +1 -0
- package/dist/formats/black/core/CjsBlackReader.js +760 -0
- package/dist/formats/black/core/CjsBlackReader.js.map +1 -0
- package/dist/formats/black/core/CjsBlackSchemaRegistry.js +433 -0
- package/dist/formats/black/core/CjsBlackSchemaRegistry.js.map +1 -0
- package/dist/formats/black/core/black-schema-v1-2026-07-11.json.js +4 -0
- package/dist/formats/black/core/black-schema-v1-2026-07-11.json.js.map +1 -0
- package/dist/formats/black/core/blackConstants.js +7 -0
- package/dist/formats/black/core/blackConstants.js.map +1 -0
- package/dist/formats/black/core/blackDefinitions.js +10 -0
- package/dist/formats/black/core/blackDefinitions.js.map +1 -0
- package/dist/formats/black/core/blackEnums.js +6 -0
- package/dist/formats/black/core/blackEnums.js.map +1 -0
- package/dist/formats/black/core/blackSchema.js +3 -0
- package/dist/formats/black/core/blackSchema.js.map +1 -0
- package/dist/formats/black/core/blackVersion.js +22 -0
- package/dist/formats/black/core/blackVersion.js.map +1 -0
- package/dist/formats/black/core/helpers.js +182 -0
- package/dist/formats/black/core/helpers.js.map +1 -0
- package/dist/formats/black/core/schema.js +4 -0
- package/dist/formats/black/core/schema.js.map +1 -0
- package/dist/formats/black/index.js +2 -0
- package/dist/formats/black/index.js.map +1 -0
- package/dist/formats/bnk/CjsBnkFormat.js +245 -0
- package/dist/formats/bnk/CjsBnkFormat.js.map +1 -0
- package/dist/formats/bnk/core/helpers.js +354 -0
- package/dist/formats/bnk/core/helpers.js.map +1 -0
- package/dist/formats/bnk/core/soundbanksInfo.js +246 -0
- package/dist/formats/bnk/core/soundbanksInfo.js.map +1 -0
- package/dist/formats/bnk/index.js +3 -0
- package/dist/formats/bnk/index.js.map +1 -0
- package/dist/formats/cmf/CjsCmfFormat.js +491 -0
- package/dist/formats/cmf/CjsCmfFormat.js.map +1 -0
- package/dist/formats/cmf/core/binary.js +118 -0
- package/dist/formats/cmf/core/binary.js.map +1 -0
- package/dist/formats/cmf/core/buffers.js +233 -0
- package/dist/formats/cmf/core/buffers.js.map +1 -0
- package/dist/formats/cmf/core/constants.js +47 -0
- package/dist/formats/cmf/core/constants.js.map +1 -0
- package/dist/formats/cmf/core/gr2Anim.js +453 -0
- package/dist/formats/cmf/core/gr2Anim.js.map +1 -0
- package/dist/formats/cmf/core/helpers.js +287 -0
- package/dist/formats/cmf/core/helpers.js.map +1 -0
- package/dist/formats/cmf/core/pack.js +276 -0
- package/dist/formats/cmf/core/pack.js.map +1 -0
- package/dist/formats/cmf/core/schema.js +364 -0
- package/dist/formats/cmf/core/schema.js.map +1 -0
- package/dist/formats/cmf/core/shared.js +268 -0
- package/dist/formats/cmf/core/shared.js.map +1 -0
- package/dist/formats/cmf/core/writer.js +517 -0
- package/dist/formats/cmf/core/writer.js.map +1 -0
- package/dist/formats/cmf/index.js +2 -0
- package/dist/formats/cmf/index.js.map +1 -0
- package/dist/formats/dds/CjsDdsFormat.js +187 -0
- package/dist/formats/dds/CjsDdsFormat.js.map +1 -0
- package/dist/formats/dds/core/helpers.js +812 -0
- package/dist/formats/dds/core/helpers.js.map +1 -0
- package/dist/formats/dds/index.js +2 -0
- package/dist/formats/dds/index.js.map +1 -0
- package/dist/formats/fbx/CjsFbxFormat.js +260 -0
- package/dist/formats/fbx/CjsFbxFormat.js.map +1 -0
- package/dist/formats/fbx/core/helpers.js +3901 -0
- package/dist/formats/fbx/core/helpers.js.map +1 -0
- package/dist/formats/fbx/index.js +2 -0
- package/dist/formats/fbx/index.js.map +1 -0
- package/dist/formats/flac/CjsFlacFormat.js +81 -0
- package/dist/formats/flac/CjsFlacFormat.js.map +1 -0
- package/dist/formats/flac/core/helpers.js +295 -0
- package/dist/formats/flac/core/helpers.js.map +1 -0
- package/dist/formats/flac/index.js +2 -0
- package/dist/formats/flac/index.js.map +1 -0
- package/dist/formats/gif/CjsGifFormat.js +81 -0
- package/dist/formats/gif/CjsGifFormat.js.map +1 -0
- package/dist/formats/gif/core/helpers.js +360 -0
- package/dist/formats/gif/core/helpers.js.map +1 -0
- package/dist/formats/gif/index.js +2 -0
- package/dist/formats/gif/index.js.map +1 -0
- package/dist/formats/gltf/CjsGltfFormat.js +284 -0
- package/dist/formats/gltf/CjsGltfFormat.js.map +1 -0
- package/dist/formats/gltf/core/helpers.js +292 -0
- package/dist/formats/gltf/core/helpers.js.map +1 -0
- package/dist/formats/gltf/core/json.js +79 -0
- package/dist/formats/gltf/core/json.js.map +1 -0
- package/dist/formats/gltf/core/parser.js +666 -0
- package/dist/formats/gltf/core/parser.js.map +1 -0
- package/dist/formats/gltf/core/targets.js +163 -0
- package/dist/formats/gltf/core/targets.js.map +1 -0
- package/dist/formats/gltf/index.js +2 -0
- package/dist/formats/gltf/index.js.map +1 -0
- package/dist/formats/index.js +23 -0
- package/dist/formats/index.js.map +1 -0
- package/dist/formats/jpeg/CjsJpegFormat.js +200 -0
- package/dist/formats/jpeg/CjsJpegFormat.js.map +1 -0
- package/dist/formats/jpeg/core/helpers.js +350 -0
- package/dist/formats/jpeg/core/helpers.js.map +1 -0
- package/dist/formats/jpeg/core/jpeg.js +377 -0
- package/dist/formats/jpeg/core/jpeg.js.map +1 -0
- package/dist/formats/jpeg/index.js +2 -0
- package/dist/formats/jpeg/index.js.map +1 -0
- package/dist/formats/mp3/CjsMp3Format.js +186 -0
- package/dist/formats/mp3/CjsMp3Format.js.map +1 -0
- package/dist/formats/mp3/core/helpers.js +338 -0
- package/dist/formats/mp3/core/helpers.js.map +1 -0
- package/dist/formats/mp3/index.js +2 -0
- package/dist/formats/mp3/index.js.map +1 -0
- package/dist/formats/mp4/CjsMp4Format.js +185 -0
- package/dist/formats/mp4/CjsMp4Format.js.map +1 -0
- package/dist/formats/mp4/core/helpers.js +449 -0
- package/dist/formats/mp4/core/helpers.js.map +1 -0
- package/dist/formats/mp4/index.js +2 -0
- package/dist/formats/mp4/index.js.map +1 -0
- package/dist/formats/obj/CjsObjFormat.js +247 -0
- package/dist/formats/obj/CjsObjFormat.js.map +1 -0
- package/dist/formats/obj/core/helpers.js +573 -0
- package/dist/formats/obj/core/helpers.js.map +1 -0
- package/dist/formats/obj/core/json.js +64 -0
- package/dist/formats/obj/core/json.js.map +1 -0
- package/dist/formats/obj/core/parser.js +321 -0
- package/dist/formats/obj/core/parser.js.map +1 -0
- package/dist/formats/obj/index.js +2 -0
- package/dist/formats/obj/index.js.map +1 -0
- package/dist/formats/ogg/CjsOggFormat.js +82 -0
- package/dist/formats/ogg/CjsOggFormat.js.map +1 -0
- package/dist/formats/ogg/core/helpers.js +387 -0
- package/dist/formats/ogg/core/helpers.js.map +1 -0
- package/dist/formats/ogg/core/imdct.js +178 -0
- package/dist/formats/ogg/core/imdct.js.map +1 -0
- package/dist/formats/ogg/core/vorbis.js +999 -0
- package/dist/formats/ogg/core/vorbis.js.map +1 -0
- package/dist/formats/ogg/index.js +2 -0
- package/dist/formats/ogg/index.js.map +1 -0
- package/dist/formats/png/CjsPngFormat.js +189 -0
- package/dist/formats/png/CjsPngFormat.js.map +1 -0
- package/dist/formats/png/core/helpers.js +583 -0
- package/dist/formats/png/core/helpers.js.map +1 -0
- package/dist/formats/png/index.js +2 -0
- package/dist/formats/png/index.js.map +1 -0
- package/dist/formats/red/CjsRedFormat.js +247 -0
- package/dist/formats/red/CjsRedFormat.js.map +1 -0
- package/dist/formats/red/core/CjsRedReader.js +201 -0
- package/dist/formats/red/core/CjsRedReader.js.map +1 -0
- package/dist/formats/red/core/blackDefinitions.js +3 -0
- package/dist/formats/red/core/blackDefinitions.js.map +1 -0
- package/dist/formats/red/core/helpers.js +136 -0
- package/dist/formats/red/core/helpers.js.map +1 -0
- package/dist/formats/red/core/redGraph.js +68 -0
- package/dist/formats/red/core/redGraph.js.map +1 -0
- package/dist/formats/red/core/schema.js +4 -0
- package/dist/formats/red/core/schema.js.map +1 -0
- package/dist/formats/red/index.js +2 -0
- package/dist/formats/red/index.js.map +1 -0
- package/dist/formats/stl/CjsStlFormat.js +304 -0
- package/dist/formats/stl/CjsStlFormat.js.map +1 -0
- package/dist/formats/stl/core/helpers.js +257 -0
- package/dist/formats/stl/core/helpers.js.map +1 -0
- package/dist/formats/stl/core/json.js +51 -0
- package/dist/formats/stl/core/json.js.map +1 -0
- package/dist/formats/stl/core/stl.js +544 -0
- package/dist/formats/stl/core/stl.js.map +1 -0
- package/dist/formats/stl/core/targets.js +163 -0
- package/dist/formats/stl/core/targets.js.map +1 -0
- package/dist/formats/stl/index.js +2 -0
- package/dist/formats/stl/index.js.map +1 -0
- package/dist/formats/tga/CjsTgaFormat.js +186 -0
- package/dist/formats/tga/CjsTgaFormat.js.map +1 -0
- package/dist/formats/tga/core/helpers.js +446 -0
- package/dist/formats/tga/core/helpers.js.map +1 -0
- package/dist/formats/tga/index.js +2 -0
- package/dist/formats/tga/index.js.map +1 -0
- package/dist/formats/wav/CjsWavFormat.js +186 -0
- package/dist/formats/wav/CjsWavFormat.js.map +1 -0
- package/dist/formats/wav/core/helpers.js +328 -0
- package/dist/formats/wav/core/helpers.js.map +1 -0
- package/dist/formats/wav/index.js +2 -0
- package/dist/formats/wav/index.js.map +1 -0
- package/dist/formats/webm/CjsWebmFormat.js +185 -0
- package/dist/formats/webm/CjsWebmFormat.js.map +1 -0
- package/dist/formats/webm/core/helpers.js +537 -0
- package/dist/formats/webm/core/helpers.js.map +1 -0
- package/dist/formats/webm/index.js +2 -0
- package/dist/formats/webm/index.js.map +1 -0
- package/dist/formats/webp/CjsWebpFormat.js +80 -0
- package/dist/formats/webp/CjsWebpFormat.js.map +1 -0
- package/dist/formats/webp/core/helpers.js +214 -0
- package/dist/formats/webp/core/helpers.js.map +1 -0
- package/dist/formats/webp/index.js +2 -0
- package/dist/formats/webp/index.js.map +1 -0
- package/dist/formats/wem/CjsWemFormat.js +197 -0
- package/dist/formats/wem/CjsWemFormat.js.map +1 -0
- package/dist/formats/wem/core/bitStream.js +259 -0
- package/dist/formats/wem/core/bitStream.js.map +1 -0
- package/dist/formats/wem/core/codebookLibrary.js +164 -0
- package/dist/formats/wem/core/codebookLibrary.js.map +1 -0
- package/dist/formats/wem/core/helpers.js +336 -0
- package/dist/formats/wem/core/helpers.js.map +1 -0
- package/dist/formats/wem/core/packedCodebooksAotuv603.js +30 -0
- package/dist/formats/wem/core/packedCodebooksAotuv603.js.map +1 -0
- package/dist/formats/wem/core/wemToOgg.js +485 -0
- package/dist/formats/wem/core/wemToOgg.js.map +1 -0
- package/dist/formats/wem/index.js +2 -0
- package/dist/formats/wem/index.js.map +1 -0
- package/dist/formats/yaml/CjsYamlFormat.js +77 -0
- package/dist/formats/yaml/CjsYamlFormat.js.map +1 -0
- package/dist/formats/yaml/core/CjsYamlReader.js +304 -0
- package/dist/formats/yaml/core/CjsYamlReader.js.map +1 -0
- package/dist/formats/yaml/core/helpers.js +160 -0
- package/dist/formats/yaml/core/helpers.js.map +1 -0
- package/dist/formats/yaml/index.js +2 -0
- package/dist/formats/yaml/index.js.map +1 -0
- package/dist/generated/resources/AudioGeometryResData.js +47 -0
- package/dist/generated/resources/AudioGeometryResData.js.map +1 -0
- package/dist/generated/resources/CmfVertexReader.js +46 -0
- package/dist/generated/resources/CmfVertexReader.js.map +1 -0
- package/dist/generated/resources/GStateBindingCallbackData.js +31 -0
- package/dist/generated/resources/GStateBindingCallbackData.js.map +1 -0
- package/dist/generated/resources/MeshDecalData.js +37 -0
- package/dist/generated/resources/MeshDecalData.js.map +1 -0
- package/dist/generated/resources/MeshDecalLodData.js +34 -0
- package/dist/generated/resources/MeshDecalLodData.js.map +1 -0
- package/dist/generated/resources/Tr2AsyncSave.js +46 -0
- package/dist/generated/resources/Tr2AsyncSave.js.map +1 -0
- package/dist/generated/resources/Tr2CmfContents.js +37 -0
- package/dist/generated/resources/Tr2CmfContents.js.map +1 -0
- package/dist/generated/resources/Tr2GrannyIntersectionResult.js +58 -0
- package/dist/generated/resources/Tr2GrannyIntersectionResult.js.map +1 -0
- package/dist/generated/resources/Tr2LoadPrepareFence.js +37 -0
- package/dist/generated/resources/Tr2LoadPrepareFence.js.map +1 -0
- package/dist/generated/resources/Tr2MaterialArea.js +34 -0
- package/dist/generated/resources/Tr2MaterialArea.js.map +1 -0
- package/dist/generated/resources/Tr2MaterialMesh.js +31 -0
- package/dist/generated/resources/Tr2MaterialMesh.js.map +1 -0
- package/dist/generated/resources/Tr2MaterialRes.js +34 -0
- package/dist/generated/resources/Tr2MaterialRes.js.map +1 -0
- package/dist/generated/resources/Tr2ShaderPermutation.js +43 -0
- package/dist/generated/resources/Tr2ShaderPermutation.js.map +1 -0
- package/dist/generated/resources/Tr2TextureLodManager.js +60 -0
- package/dist/generated/resources/Tr2TextureLodManager.js.map +1 -0
- package/dist/generated/resources/Tr2TextureLodUpdateRequest.js +37 -0
- package/dist/generated/resources/Tr2TextureLodUpdateRequest.js.map +1 -0
- package/dist/generated/resources/Tr2TexturePackChannel.js +37 -0
- package/dist/generated/resources/Tr2TexturePackChannel.js.map +1 -0
- package/dist/generated/resources/Tr2TexturePipeline.js +44 -0
- package/dist/generated/resources/Tr2TexturePipeline.js.map +1 -0
- package/dist/generated/resources/Tr2TexturePipelineParams.js +34 -0
- package/dist/generated/resources/Tr2TexturePipelineParams.js.map +1 -0
- package/dist/generated/resources/Tr2TexturePipelineStepCompress.js +40 -0
- package/dist/generated/resources/Tr2TexturePipelineStepCompress.js.map +1 -0
- package/dist/generated/resources/Tr2TexturePipelineStepLimitSize.js +34 -0
- package/dist/generated/resources/Tr2TexturePipelineStepLimitSize.js.map +1 -0
- package/dist/generated/resources/Tr2TexturePipelineStepLoad.js +31 -0
- package/dist/generated/resources/Tr2TexturePipelineStepLoad.js.map +1 -0
- package/dist/generated/resources/Tr2TexturePipelineStepPack.js +43 -0
- package/dist/generated/resources/Tr2TexturePipelineStepPack.js.map +1 -0
- package/dist/generated/resources/TriGeometryResAreaData.js +59 -0
- package/dist/generated/resources/TriGeometryResAreaData.js.map +1 -0
- package/dist/generated/resources/TriGeometryResJointData.js +38 -0
- package/dist/generated/resources/TriGeometryResJointData.js.map +1 -0
- package/dist/generated/resources/TriGeometryResLodData.js +88 -0
- package/dist/generated/resources/TriGeometryResLodData.js.map +1 -0
- package/dist/generated/resources/TriGeometryResMeshData.js +63 -0
- package/dist/generated/resources/TriGeometryResMeshData.js.map +1 -0
- package/dist/generated/resources/TriGeometryResSkeletonData.js +34 -0
- package/dist/generated/resources/TriGeometryResSkeletonData.js.map +1 -0
- package/dist/generated/resources/TriJointBinding.js +38 -0
- package/dist/generated/resources/TriJointBinding.js.map +1 -0
- package/dist/generated/resources/TriMorphTargetGeometryConstants.js +46 -0
- package/dist/generated/resources/TriMorphTargetGeometryConstants.js.map +1 -0
- package/dist/generated/resources/TriRtGeometryConstants.js +88 -0
- package/dist/generated/resources/TriRtGeometryConstants.js.map +1 -0
- package/dist/generated/resources/enums.js +18 -0
- package/dist/generated/resources/enums.js.map +1 -0
- package/dist/generated/resources/index.js +32 -0
- package/dist/generated/resources/index.js.map +1 -0
- package/dist/index.js +52 -0
- package/dist/index.js.map +1 -0
- package/dist/resourcePath.js +18 -0
- package/dist/resourcePath.js.map +1 -0
- package/dist/resourceStates.js +9 -0
- package/dist/resourceStates.js.map +1 -0
- package/dist/resources/Tr2EffectRes.js +71 -0
- package/dist/resources/Tr2EffectRes.js.map +1 -0
- package/dist/resources/Tr2GrannyStateRes.js +44 -0
- package/dist/resources/Tr2GrannyStateRes.js.map +1 -0
- package/dist/resources/Tr2ImageRes.js +114 -0
- package/dist/resources/Tr2ImageRes.js.map +1 -0
- package/dist/resources/Tr2LightProfileRes.js +40 -0
- package/dist/resources/Tr2LightProfileRes.js.map +1 -0
- package/dist/resources/TriGeometryRes.js +216 -0
- package/dist/resources/TriGeometryRes.js.map +1 -0
- package/dist/resources/TriGrannyRes.js +43 -0
- package/dist/resources/TriGrannyRes.js.map +1 -0
- package/dist/resources/TriTextureRes.js +304 -0
- package/dist/resources/TriTextureRes.js.map +1 -0
- package/dist/resources/resourceBoundary.js +47 -0
- package/dist/resources/resourceBoundary.js.map +1 -0
- package/dist/texture/CjsTextureArrayRes.js +406 -0
- package/dist/texture/CjsTextureArrayRes.js.map +1 -0
- package/dist/texture/CjsTextureParameterProxy.js +133 -0
- package/dist/texture/CjsTextureParameterProxy.js.map +1 -0
- package/format-notices/black/LICENSE +21 -0
- package/format-notices/black/NOTICE +47 -0
- package/format-notices/bnk/LICENSE +21 -0
- package/format-notices/bnk/NOTICE +17 -0
- package/format-notices/cmf/LICENSE +21 -0
- package/format-notices/cmf/NOTICE +36 -0
- package/format-notices/dds/LICENSE +21 -0
- package/format-notices/dds/NOTICE +14 -0
- package/format-notices/fbx/LICENSE +21 -0
- package/format-notices/fbx/NOTICE +14 -0
- package/format-notices/flac/LICENSE +21 -0
- package/format-notices/flac/NOTICE +14 -0
- package/format-notices/gif/LICENSE +21 -0
- package/format-notices/gif/NOTICE +14 -0
- package/format-notices/gltf/LICENSE +21 -0
- package/format-notices/gltf/NOTICE +27 -0
- package/format-notices/jpeg/LICENSE +21 -0
- package/format-notices/jpeg/NOTICE +14 -0
- package/format-notices/mp3/LICENSE +21 -0
- package/format-notices/mp3/NOTICE +14 -0
- package/format-notices/mp4/LICENSE +21 -0
- package/format-notices/mp4/NOTICE +14 -0
- package/format-notices/obj/LICENSE +21 -0
- package/format-notices/obj/NOTICE +26 -0
- package/format-notices/ogg/LICENSE +21 -0
- package/format-notices/ogg/NOTICE +28 -0
- package/format-notices/png/LICENSE +21 -0
- package/format-notices/png/NOTICE +14 -0
- package/format-notices/red/LICENSE +21 -0
- package/format-notices/red/NOTICE +31 -0
- package/format-notices/stl/LICENSE +21 -0
- package/format-notices/stl/NOTICE +21 -0
- package/format-notices/tga/LICENSE +21 -0
- package/format-notices/tga/NOTICE +14 -0
- package/format-notices/wav/LICENSE +21 -0
- package/format-notices/wav/NOTICE +14 -0
- package/format-notices/webm/LICENSE +21 -0
- package/format-notices/webm/NOTICE +14 -0
- package/format-notices/webp/LICENSE +21 -0
- package/format-notices/webp/NOTICE +14 -0
- package/format-notices/wem/LICENSE +57 -0
- package/format-notices/wem/NOTICE +33 -0
- package/format-notices/yaml/LICENSE +21 -0
- package/format-notices/yaml/NOTICE +44 -0
- package/package.json +51 -0
- 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
|