@carbonenginejs/runtime-resource 0.1.0 → 0.7.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 +14 -5
- package/README.md +537 -241
- package/dist/CjsMotherLode.js +1244 -29
- package/dist/CjsMotherLode.js.map +1 -1
- package/dist/CjsResMan.js +2537 -272
- package/dist/CjsResMan.js.map +1 -1
- package/dist/CjsResource.js +218 -18
- package/dist/CjsResource.js.map +1 -1
- package/dist/format/CjsBlueReader.js +269 -0
- package/dist/format/CjsBlueReader.js.map +1 -0
- package/dist/format/CjsFormat.js +44 -30
- package/dist/format/CjsFormat.js.map +1 -1
- package/dist/format/CjsReader.js +18 -0
- package/dist/format/CjsReader.js.map +1 -0
- package/dist/format/CjsResourceProbe.js +12 -4
- package/dist/format/CjsResourceProbe.js.map +1 -1
- package/dist/formats/black/CjsBlackFormat.js +12 -6
- package/dist/formats/black/CjsBlackFormat.js.map +1 -1
- package/dist/formats/black/core/CjsBlackReader.js +27 -148
- package/dist/formats/black/core/CjsBlackReader.js.map +1 -1
- package/dist/formats/bnk/CjsBnkFormat.js +140 -147
- package/dist/formats/bnk/CjsBnkFormat.js.map +1 -1
- package/dist/formats/bnk/core/graph.js +140 -0
- package/dist/formats/bnk/core/graph.js.map +1 -0
- package/dist/formats/bnk/core/helpers.js +58 -3
- package/dist/formats/bnk/core/helpers.js.map +1 -1
- package/dist/formats/bnk/core/musicNodes.js +521 -0
- package/dist/formats/bnk/core/musicNodes.js.map +1 -0
- package/dist/formats/bnk/index.js +0 -1
- package/dist/formats/bnk/index.js.map +1 -1
- package/dist/formats/cmf/CjsCmfFormat.js +14 -8
- package/dist/formats/cmf/CjsCmfFormat.js.map +1 -1
- package/dist/formats/dds/CjsDdsFormat.js +12 -6
- package/dist/formats/dds/CjsDdsFormat.js.map +1 -1
- package/dist/formats/fbx/CjsFbxFormat.js +12 -6
- package/dist/formats/fbx/CjsFbxFormat.js.map +1 -1
- package/dist/formats/flac/CjsFlacFormat.js +10 -4
- package/dist/formats/flac/CjsFlacFormat.js.map +1 -1
- package/dist/formats/gif/CjsGifFormat.js +11 -5
- package/dist/formats/gif/CjsGifFormat.js.map +1 -1
- package/dist/formats/gltf/CjsGltfFormat.js +12 -6
- package/dist/formats/gltf/CjsGltfFormat.js.map +1 -1
- package/dist/formats/jpeg/CjsJpegFormat.js +11 -5
- package/dist/formats/jpeg/CjsJpegFormat.js.map +1 -1
- package/dist/formats/mp3/CjsMp3Format.js +11 -5
- package/dist/formats/mp3/CjsMp3Format.js.map +1 -1
- package/dist/formats/mp4/CjsMp4Format.js +10 -4
- package/dist/formats/mp4/CjsMp4Format.js.map +1 -1
- package/dist/formats/obj/CjsObjFormat.js +12 -6
- package/dist/formats/obj/CjsObjFormat.js.map +1 -1
- package/dist/formats/ogg/CjsOggFormat.js +9 -3
- package/dist/formats/ogg/CjsOggFormat.js.map +1 -1
- package/dist/formats/png/CjsPngFormat.js +11 -5
- package/dist/formats/png/CjsPngFormat.js.map +1 -1
- package/dist/formats/red/CjsRedFormat.js +19 -5
- package/dist/formats/red/CjsRedFormat.js.map +1 -1
- package/dist/formats/red/core/CjsRedReader.js +63 -70
- package/dist/formats/red/core/CjsRedReader.js.map +1 -1
- package/dist/formats/red/core/helpers.js +3 -0
- package/dist/formats/red/core/helpers.js.map +1 -1
- package/dist/formats/stl/CjsStlFormat.js +77 -16
- package/dist/formats/stl/CjsStlFormat.js.map +1 -1
- package/dist/formats/stl/core/helpers.js +4 -0
- package/dist/formats/stl/core/helpers.js.map +1 -1
- package/dist/formats/stl/core/stl.js +100 -15
- package/dist/formats/stl/core/stl.js.map +1 -1
- package/dist/formats/tga/CjsTgaFormat.js +11 -5
- package/dist/formats/tga/CjsTgaFormat.js.map +1 -1
- package/dist/formats/wav/CjsWavFormat.js +11 -5
- package/dist/formats/wav/CjsWavFormat.js.map +1 -1
- package/dist/formats/webm/CjsWebmFormat.js +10 -4
- package/dist/formats/webm/CjsWebmFormat.js.map +1 -1
- package/dist/formats/webp/CjsWebpFormat.js +9 -3
- package/dist/formats/webp/CjsWebpFormat.js.map +1 -1
- package/dist/formats/wem/CjsWemFormat.js +50 -6
- package/dist/formats/wem/CjsWemFormat.js.map +1 -1
- package/dist/formats/wem/core/helpers.js +84 -3
- package/dist/formats/wem/core/helpers.js.map +1 -1
- package/dist/formats/wem/core/ptadpcm.js +77 -0
- package/dist/formats/wem/core/ptadpcm.js.map +1 -0
- package/dist/formats/wem/core/resolve.js +121 -0
- package/dist/formats/wem/core/resolve.js.map +1 -0
- package/dist/formats/yaml/CjsYamlFormat.js +11 -5
- package/dist/formats/yaml/CjsYamlFormat.js.map +1 -1
- package/dist/formats/yaml/core/CjsYamlReader.js +3 -2
- package/dist/formats/yaml/core/CjsYamlReader.js.map +1 -1
- package/dist/index.js +28 -32
- package/dist/index.js.map +1 -1
- package/dist/{generated/resources → resources}/AudioGeometryResData.js +2 -2
- package/dist/resources/AudioGeometryResData.js.map +1 -0
- package/dist/{generated/resources → resources}/GStateBindingCallbackData.js +2 -2
- package/dist/resources/GStateBindingCallbackData.js.map +1 -0
- package/dist/{generated/resources → resources}/MeshDecalData.js +2 -2
- package/dist/resources/MeshDecalData.js.map +1 -0
- package/dist/{generated/resources → resources}/MeshDecalLodData.js +2 -2
- package/dist/resources/MeshDecalLodData.js.map +1 -0
- package/dist/resources/Tr2GrannyIntersectionResult.js +60 -0
- package/dist/resources/Tr2GrannyIntersectionResult.js.map +1 -0
- package/dist/{generated/resources → resources}/Tr2MaterialArea.js +2 -2
- package/dist/resources/Tr2MaterialArea.js.map +1 -0
- package/dist/{generated/resources → resources}/Tr2MaterialMesh.js +2 -2
- package/dist/resources/Tr2MaterialMesh.js.map +1 -0
- package/dist/{generated/resources → resources}/Tr2MaterialRes.js +2 -2
- package/dist/resources/Tr2MaterialRes.js.map +1 -0
- package/dist/{generated/resources → resources}/Tr2ShaderPermutation.js +2 -2
- package/dist/resources/Tr2ShaderPermutation.js.map +1 -0
- package/dist/{generated/resources → resources}/Tr2TextureLodManager.js +50 -10
- package/dist/resources/Tr2TextureLodManager.js.map +1 -0
- package/dist/{generated/resources → resources}/Tr2TextureLodUpdateRequest.js +2 -2
- package/dist/resources/Tr2TextureLodUpdateRequest.js.map +1 -0
- package/dist/{generated/resources → resources}/Tr2TexturePackChannel.js +2 -2
- package/dist/resources/Tr2TexturePackChannel.js.map +1 -0
- package/dist/resources/Tr2TexturePipeline.js +68 -0
- package/dist/resources/Tr2TexturePipeline.js.map +1 -0
- package/dist/{generated/resources → resources}/Tr2TexturePipelineParams.js +2 -2
- package/dist/resources/Tr2TexturePipelineParams.js.map +1 -0
- package/dist/{generated/resources → resources}/Tr2TexturePipelineStepCompress.js +3 -3
- package/dist/resources/Tr2TexturePipelineStepCompress.js.map +1 -0
- package/dist/{generated/resources → resources}/Tr2TexturePipelineStepLimitSize.js +2 -2
- package/dist/resources/Tr2TexturePipelineStepLimitSize.js.map +1 -0
- package/dist/{generated/resources → resources}/Tr2TexturePipelineStepLoad.js +2 -2
- package/dist/resources/Tr2TexturePipelineStepLoad.js.map +1 -0
- package/dist/{generated/resources → resources}/Tr2TexturePipelineStepPack.js +3 -3
- package/dist/resources/Tr2TexturePipelineStepPack.js.map +1 -0
- package/dist/{generated/resources → resources}/TriGeometryResAreaData.js +2 -2
- package/dist/resources/TriGeometryResAreaData.js.map +1 -0
- package/dist/{generated/resources → resources}/TriGeometryResJointData.js +2 -2
- package/dist/resources/TriGeometryResJointData.js.map +1 -0
- package/dist/{generated/resources → resources}/TriGeometryResLodData.js +2 -2
- package/dist/resources/TriGeometryResLodData.js.map +1 -0
- package/dist/{generated/resources → resources}/TriGeometryResMeshData.js +2 -2
- package/dist/resources/TriGeometryResMeshData.js.map +1 -0
- package/dist/{generated/resources → resources}/TriGeometryResSkeletonData.js +2 -2
- package/dist/resources/TriGeometryResSkeletonData.js.map +1 -0
- package/dist/{generated/resources → resources}/TriJointBinding.js +2 -2
- package/dist/resources/TriJointBinding.js.map +1 -0
- package/dist/{generated/resources → resources}/TriMorphTargetGeometryConstants.js +2 -2
- package/dist/resources/TriMorphTargetGeometryConstants.js.map +1 -0
- package/dist/{generated/resources → resources}/TriRtGeometryConstants.js +2 -2
- package/dist/resources/TriRtGeometryConstants.js.map +1 -0
- package/dist/resources/enums.js.map +1 -0
- package/dist/resources/texturePipelineBehavior.js +320 -0
- package/dist/resources/texturePipelineBehavior.js.map +1 -0
- package/format-notices/bnk/NOTICE +7 -4
- package/package.json +51 -51
- package/resource-lifecycle.md +262 -70
- package/dist/generated/resources/AudioGeometryResData.js.map +0 -1
- package/dist/generated/resources/CmfVertexReader.js +0 -46
- package/dist/generated/resources/CmfVertexReader.js.map +0 -1
- package/dist/generated/resources/GStateBindingCallbackData.js.map +0 -1
- package/dist/generated/resources/MeshDecalData.js.map +0 -1
- package/dist/generated/resources/MeshDecalLodData.js.map +0 -1
- package/dist/generated/resources/Tr2AsyncSave.js +0 -46
- package/dist/generated/resources/Tr2AsyncSave.js.map +0 -1
- package/dist/generated/resources/Tr2CmfContents.js +0 -37
- package/dist/generated/resources/Tr2CmfContents.js.map +0 -1
- package/dist/generated/resources/Tr2GrannyIntersectionResult.js +0 -58
- package/dist/generated/resources/Tr2GrannyIntersectionResult.js.map +0 -1
- package/dist/generated/resources/Tr2LoadPrepareFence.js +0 -37
- package/dist/generated/resources/Tr2LoadPrepareFence.js.map +0 -1
- package/dist/generated/resources/Tr2MaterialArea.js.map +0 -1
- package/dist/generated/resources/Tr2MaterialMesh.js.map +0 -1
- package/dist/generated/resources/Tr2MaterialRes.js.map +0 -1
- package/dist/generated/resources/Tr2ShaderPermutation.js.map +0 -1
- package/dist/generated/resources/Tr2TextureLodManager.js.map +0 -1
- package/dist/generated/resources/Tr2TextureLodUpdateRequest.js.map +0 -1
- package/dist/generated/resources/Tr2TexturePackChannel.js.map +0 -1
- package/dist/generated/resources/Tr2TexturePipeline.js +0 -44
- package/dist/generated/resources/Tr2TexturePipeline.js.map +0 -1
- package/dist/generated/resources/Tr2TexturePipelineParams.js.map +0 -1
- package/dist/generated/resources/Tr2TexturePipelineStepCompress.js.map +0 -1
- package/dist/generated/resources/Tr2TexturePipelineStepLimitSize.js.map +0 -1
- package/dist/generated/resources/Tr2TexturePipelineStepLoad.js.map +0 -1
- package/dist/generated/resources/Tr2TexturePipelineStepPack.js.map +0 -1
- package/dist/generated/resources/TriGeometryResAreaData.js.map +0 -1
- package/dist/generated/resources/TriGeometryResJointData.js.map +0 -1
- package/dist/generated/resources/TriGeometryResLodData.js.map +0 -1
- package/dist/generated/resources/TriGeometryResMeshData.js.map +0 -1
- package/dist/generated/resources/TriGeometryResSkeletonData.js.map +0 -1
- package/dist/generated/resources/TriJointBinding.js.map +0 -1
- package/dist/generated/resources/TriMorphTargetGeometryConstants.js.map +0 -1
- package/dist/generated/resources/TriRtGeometryConstants.js.map +0 -1
- package/dist/generated/resources/enums.js.map +0 -1
- package/dist/generated/resources/index.js +0 -32
- package/dist/generated/resources/index.js.map +0 -1
- /package/dist/{generated/resources → resources}/enums.js +0 -0
|
@@ -1 +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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"}
|
|
1
|
+
{"version":3,"file":"CjsBlackReader.js","sources":["../../../../../src/formats/black/core/CjsBlackReader.js"],"sourcesContent":["import { CjsCarbonDocument } from \"@carbonenginejs/core-types/document\";\nimport { CjsSchema } from \"@carbonenginejs/core-types/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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"}
|