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