@carbonenginejs/runtime-resource 0.9.1 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/dist/CjsResMan.js +1 -1
  2. package/dist/CjsResMan.js.map +1 -1
  3. package/dist/CjsResource.js +2 -2
  4. package/dist/CjsResource.js.map +1 -1
  5. package/dist/format/CjsBlueReader.js +2 -2
  6. package/dist/format/CjsBlueReader.js.map +1 -1
  7. package/dist/format/CjsFormat.js +5 -5
  8. package/dist/format/CjsFormat.js.map +1 -1
  9. package/dist/format/CjsResourceProbe.js +2 -2
  10. package/dist/format/CjsResourceProbe.js.map +1 -1
  11. package/dist/formats/black/core/CjsBlackPropertyReaders.js +1 -1
  12. package/dist/formats/black/core/CjsBlackPropertyReaders.js.map +1 -1
  13. package/dist/formats/black/core/CjsBlackReader.js +2 -2
  14. package/dist/formats/black/core/CjsBlackReader.js.map +1 -1
  15. package/dist/formats/fbx/core/helpers.js +1 -1
  16. package/dist/formats/fbx/core/helpers.js.map +1 -1
  17. package/dist/formats/gltf/core/helpers.js +3 -3
  18. package/dist/formats/gltf/core/helpers.js.map +1 -1
  19. package/dist/formats/gr2/core/tangents.js +9 -9
  20. package/dist/formats/gr2/core/tangents.js.map +1 -1
  21. package/dist/formats/index.js +4 -4
  22. package/dist/formats/obj/core/helpers.js +2 -2
  23. package/dist/formats/obj/core/helpers.js.map +1 -1
  24. package/dist/formats/red/CjsRedFormat.js +1 -1
  25. package/dist/formats/red/CjsRedFormat.js.map +1 -1
  26. package/dist/formats/stl/core/stl.js +2 -2
  27. package/dist/formats/stl/core/stl.js.map +1 -1
  28. package/dist/index.js +1 -1
  29. package/dist/resources/AudioGeometryResData.js +3 -3
  30. package/dist/resources/AudioGeometryResData.js.map +1 -1
  31. package/dist/resources/GStateBindingCallbackData.js +2 -2
  32. package/dist/resources/GStateBindingCallbackData.js.map +1 -1
  33. package/dist/resources/MeshDecalData.js +2 -2
  34. package/dist/resources/MeshDecalData.js.map +1 -1
  35. package/dist/resources/MeshDecalLodData.js +2 -2
  36. package/dist/resources/MeshDecalLodData.js.map +1 -1
  37. package/dist/resources/Tr2EffectRes.js +1 -1
  38. package/dist/resources/Tr2EffectRes.js.map +1 -1
  39. package/dist/resources/Tr2GrannyIntersectionResult.js +4 -4
  40. package/dist/resources/Tr2GrannyIntersectionResult.js.map +1 -1
  41. package/dist/resources/Tr2GrannyStateRes.js +1 -1
  42. package/dist/resources/Tr2GrannyStateRes.js.map +1 -1
  43. package/dist/resources/Tr2ImageRes.js +1 -1
  44. package/dist/resources/Tr2ImageRes.js.map +1 -1
  45. package/dist/resources/Tr2LightProfileRes.js +1 -1
  46. package/dist/resources/Tr2LightProfileRes.js.map +1 -1
  47. package/dist/resources/Tr2MaterialArea.js +2 -2
  48. package/dist/resources/Tr2MaterialArea.js.map +1 -1
  49. package/dist/resources/Tr2MaterialMesh.js +2 -2
  50. package/dist/resources/Tr2MaterialMesh.js.map +1 -1
  51. package/dist/resources/Tr2MaterialRes.js +2 -2
  52. package/dist/resources/Tr2MaterialRes.js.map +1 -1
  53. package/dist/resources/Tr2ShaderPermutation.js +2 -2
  54. package/dist/resources/Tr2ShaderPermutation.js.map +1 -1
  55. package/dist/resources/Tr2TextureLodManager.js +2 -2
  56. package/dist/resources/Tr2TextureLodManager.js.map +1 -1
  57. package/dist/resources/Tr2TextureLodUpdateRequest.js +2 -2
  58. package/dist/resources/Tr2TextureLodUpdateRequest.js.map +1 -1
  59. package/dist/resources/Tr2TexturePackChannel.js +2 -2
  60. package/dist/resources/Tr2TexturePackChannel.js.map +1 -1
  61. package/dist/resources/Tr2TexturePipeline.js +2 -2
  62. package/dist/resources/Tr2TexturePipeline.js.map +1 -1
  63. package/dist/resources/Tr2TexturePipelineParams.js +2 -2
  64. package/dist/resources/Tr2TexturePipelineParams.js.map +1 -1
  65. package/dist/resources/Tr2TexturePipelineStepCompress.js +2 -2
  66. package/dist/resources/Tr2TexturePipelineStepCompress.js.map +1 -1
  67. package/dist/resources/Tr2TexturePipelineStepGenerateMips.js +2 -2
  68. package/dist/resources/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
  69. package/dist/resources/Tr2TexturePipelineStepLimitSize.js +2 -2
  70. package/dist/resources/Tr2TexturePipelineStepLimitSize.js.map +1 -1
  71. package/dist/resources/Tr2TexturePipelineStepLoad.js +2 -2
  72. package/dist/resources/Tr2TexturePipelineStepLoad.js.map +1 -1
  73. package/dist/resources/Tr2TexturePipelineStepPack.js +2 -2
  74. package/dist/resources/Tr2TexturePipelineStepPack.js.map +1 -1
  75. package/dist/resources/TriGeometryRes.js +1 -1
  76. package/dist/resources/TriGeometryRes.js.map +1 -1
  77. package/dist/resources/TriGeometryResAreaData.js +3 -3
  78. package/dist/resources/TriGeometryResAreaData.js.map +1 -1
  79. package/dist/resources/TriGeometryResJointData.js +3 -3
  80. package/dist/resources/TriGeometryResJointData.js.map +1 -1
  81. package/dist/resources/TriGeometryResLodData.js +2 -2
  82. package/dist/resources/TriGeometryResLodData.js.map +1 -1
  83. package/dist/resources/TriGeometryResMeshData.js +4 -4
  84. package/dist/resources/TriGeometryResMeshData.js.map +1 -1
  85. package/dist/resources/TriGeometryResSkeletonData.js +2 -2
  86. package/dist/resources/TriGeometryResSkeletonData.js.map +1 -1
  87. package/dist/resources/TriGrannyRes.js +1 -1
  88. package/dist/resources/TriGrannyRes.js.map +1 -1
  89. package/dist/resources/TriJointBinding.js +3 -3
  90. package/dist/resources/TriJointBinding.js.map +1 -1
  91. package/dist/resources/TriMorphTargetGeometryConstants.js +2 -2
  92. package/dist/resources/TriMorphTargetGeometryConstants.js.map +1 -1
  93. package/dist/resources/TriRtGeometryConstants.js +2 -2
  94. package/dist/resources/TriRtGeometryConstants.js.map +1 -1
  95. package/dist/resources/TriTextureRes.js +1 -1
  96. package/dist/resources/TriTextureRes.js.map +1 -1
  97. package/dist/resources/texturePipelineBehavior.js +2 -2
  98. package/dist/resources/texturePipelineBehavior.js.map +1 -1
  99. package/dist/texture/CjsTextureArrayRes.js +1 -1
  100. package/dist/texture/CjsTextureArrayRes.js.map +1 -1
  101. package/dist/texture/CjsTextureParameterProxy.js +1 -1
  102. package/dist/texture/CjsTextureParameterProxy.js.map +1 -1
  103. package/docs/README.md +2 -2
  104. package/docs/architecture.md +1 -1
  105. package/docs/reference/classes/formats.md +1 -1
  106. package/docs/reference/events.md +1 -1
  107. package/format-notices/black/NOTICE +1 -1
  108. package/package.json +2 -4
@@ -1 +1 @@
1
- {"version":3,"file":"CjsBlackPropertyReaders.js","sources":["../../../../../src/formats/black/core/CjsBlackPropertyReaders.js"],"sourcesContent":["import {\n CARBON_TYPE,\n normalizeCarbonTypeDescriptor\n} from \"@carbonenginejs/core-types\";\n\n/**\n * Static set of read and skip routines that decode or skip individual Black\n * property values (primitives, strings, arrays, structure lists,\n * dictionaries, and binary blocks) from their type descriptors.\n */\nexport class CjsBlackPropertyReaders\n{\n static readValue(reader, field)\n {\n const descriptor = normalizeCarbonTypeDescriptor(field);\n if (field?.black?.beType)\n {\n return CjsBlackPropertyReaders.readBlackValue(reader, field.black, descriptor);\n }\n\n switch (descriptor.kind)\n {\n case CARBON_TYPE.BOOLEAN:\n return reader.ReadU8() !== 0;\n\n case CARBON_TYPE.STRING:\n case CARBON_TYPE.EXPRESSION:\n return reader.ReadStringRef();\n\n case CARBON_TYPE.PATH:\n return reader.context.TransformPath(reader.ReadStringRef());\n\n case CARBON_TYPE.ENUM:\n return reader.ReadI32();\n\n case CARBON_TYPE.FLOAT32:\n return reader.ReadF32();\n\n case CARBON_TYPE.FLOAT64:\n return reader.ReadF64();\n\n case CARBON_TYPE.INT8:\n return reader.ReadI8();\n\n case CARBON_TYPE.UINT8:\n return reader.ReadU8();\n\n case CARBON_TYPE.INT16:\n return reader.ReadI16();\n\n case CARBON_TYPE.UINT16:\n return reader.ReadU16();\n\n case CARBON_TYPE.INT32:\n return reader.ReadI32();\n\n case CARBON_TYPE.UINT32:\n return reader.ReadU32();\n\n case CARBON_TYPE.INT64:\n return reader.ReadI64();\n\n case CARBON_TYPE.UINT64:\n return reader.ReadU64();\n\n case CARBON_TYPE.VECTOR2:\n return CjsBlackPropertyReaders.readFloatArray(reader, 2);\n\n case CARBON_TYPE.VECTOR3:\n return CjsBlackPropertyReaders.readFloatArray(reader, 3);\n\n case CARBON_TYPE.VECTOR4:\n case CARBON_TYPE.COLOR:\n case CARBON_TYPE.QUATERNION:\n return CjsBlackPropertyReaders.readFloatArray(reader, 4);\n\n case CARBON_TYPE.MATRIX3:\n return CjsBlackPropertyReaders.readFloatArray(reader, 9);\n\n case CARBON_TYPE.MATRIX4:\n return CjsBlackPropertyReaders.readFloatArray(reader, 16);\n\n case CARBON_TYPE.ARRAY:\n return CjsBlackPropertyReaders.readArray(reader, descriptor);\n\n case CARBON_TYPE.TYPED_ARRAY:\n return CjsBlackPropertyReaders.readTypedArray(reader, descriptor);\n\n case CARBON_TYPE.STRUCT:\n case CARBON_TYPE.RAW_STRUCT:\n return reader.context.ReadEmbeddedObject(reader);\n\n case CARBON_TYPE.OBJECT_REF:\n case CARBON_TYPE.UNKNOWN:\n default:\n return reader.context.ReadObject(reader);\n }\n }\n\n static readBlackValue(reader, black, descriptor)\n {\n switch (black.beType)\n {\n case \"IROOT\":\n if (black.container === \"list\" && black.cppType && /StructureList/.test(String(black.cppType)))\n {\n return CjsBlackPropertyReaders.readBlackStructureList(reader, black);\n }\n return CjsBlackPropertyReaders.readBlackIRoot(reader, black, descriptor);\n\n case \"BOOL\":\n return reader.ReadU8() !== 0;\n\n case \"CSTRING\":\n case \"STDSTRING\":\n case \"SHAREDSTRING\":\n case \"REFERENCE\":\n return CjsBlackPropertyReaders.readStringRef(reader, descriptor);\n\n case \"WCSTRING\":\n case \"STDWSTRING\":\n case \"SHAREDSTRINGW\":\n case \"WREFERENCE\":\n return reader.ReadWideStringRef();\n\n case \"FLOAT\":\n return reader.ReadF32();\n\n case \"DOUBLE\":\n return reader.ReadF64();\n\n case \"LONG\":\n return reader.ReadI32();\n\n case \"ULONG\":\n return reader.ReadU32();\n\n case \"INT64\":\n return reader.ReadI64();\n\n case \"UINT64\":\n return reader.ReadU64();\n\n case \"BYTE\":\n return black.signed ? reader.ReadI8() : reader.ReadU8();\n\n case \"SHORT\":\n return black.signed ? reader.ReadI16() : reader.ReadU16();\n\n case \"FLOATARRAY\":\n return CjsBlackPropertyReaders.readFloatArray(reader, black.length || descriptor.length || 0);\n\n case \"BINARYBLOCK\":\n return CjsBlackPropertyReaders.readBinaryBlock(reader, black);\n\n case \"IROOTPTR\":\n case \"IROOTWEAKREF\":\n return reader.context.ReadObject(reader);\n\n default:\n return CjsBlackPropertyReaders.readValueWithoutBlack(reader, descriptor);\n }\n }\n\n static skipValue(reader, field)\n {\n const descriptor = normalizeCarbonTypeDescriptor(field);\n if (field?.black?.beType)\n {\n CjsBlackPropertyReaders.skipBlackValue(reader, field.black, descriptor);\n return;\n }\n\n switch (descriptor.kind)\n {\n case CARBON_TYPE.BOOLEAN:\n case CARBON_TYPE.INT8:\n case CARBON_TYPE.UINT8:\n reader.Skip(1);\n return;\n case CARBON_TYPE.STRING:\n case CARBON_TYPE.PATH:\n case CARBON_TYPE.EXPRESSION:\n case CARBON_TYPE.INT16:\n case CARBON_TYPE.UINT16:\n reader.Skip(2);\n return;\n case CARBON_TYPE.ENUM:\n case CARBON_TYPE.FLOAT32:\n case CARBON_TYPE.INT32:\n case CARBON_TYPE.UINT32:\n reader.Skip(4);\n return;\n case CARBON_TYPE.FLOAT64:\n case CARBON_TYPE.INT64:\n case CARBON_TYPE.UINT64:\n reader.Skip(8);\n return;\n case CARBON_TYPE.VECTOR2:\n reader.Skip(8);\n return;\n case CARBON_TYPE.VECTOR3:\n reader.Skip(12);\n return;\n case CARBON_TYPE.VECTOR4:\n case CARBON_TYPE.COLOR:\n case CARBON_TYPE.QUATERNION:\n reader.Skip(16);\n return;\n case CARBON_TYPE.MATRIX3:\n reader.Skip(36);\n return;\n case CARBON_TYPE.MATRIX4:\n reader.Skip(64);\n return;\n case CARBON_TYPE.ARRAY:\n CjsBlackPropertyReaders.skipArray(reader, descriptor);\n return;\n case CARBON_TYPE.TYPED_ARRAY:\n CjsBlackPropertyReaders.skipTypedArray(reader);\n return;\n case CARBON_TYPE.STRUCT:\n case CARBON_TYPE.RAW_STRUCT:\n reader.context.SkipEmbeddedObject(reader);\n return;\n case CARBON_TYPE.OBJECT_REF:\n case CARBON_TYPE.UNKNOWN:\n default:\n reader.context.SkipObject(reader);\n }\n }\n\n static skipBlackValue(reader, black, descriptor)\n {\n switch (black.beType)\n {\n case \"IROOT\":\n if (black.container === \"list\" && black.cppType && /StructureList/.test(String(black.cppType)))\n {\n CjsBlackPropertyReaders.skipStructureList(reader);\n return;\n }\n CjsBlackPropertyReaders.skipBlackIRoot(reader, black, descriptor);\n return;\n case \"BOOL\":\n case \"BYTE\":\n reader.Skip(1);\n return;\n case \"CSTRING\":\n case \"STDSTRING\":\n case \"SHAREDSTRING\":\n case \"REFERENCE\":\n case \"WCSTRING\":\n case \"STDWSTRING\":\n case \"SHAREDSTRINGW\":\n case \"WREFERENCE\":\n case \"SHORT\":\n reader.Skip(2);\n return;\n case \"FLOAT\":\n case \"LONG\":\n case \"ULONG\":\n reader.Skip(4);\n return;\n case \"DOUBLE\":\n case \"INT64\":\n case \"UINT64\":\n reader.Skip(8);\n return;\n case \"FLOATARRAY\":\n reader.Skip((black.length || descriptor.length || 0) * 4);\n return;\n case \"BINARYBLOCK\":\n CjsBlackPropertyReaders.skipBinaryBlock(reader);\n return;\n case \"IROOTPTR\":\n case \"IROOTWEAKREF\":\n reader.context.SkipObject(reader);\n return;\n default:\n CjsBlackPropertyReaders.skipValue(reader, { jsType: descriptor });\n }\n }\n\n static readBlackStructureList(reader, black)\n {\n return CjsBlackPropertyReaders.readStructureList(reader, {\n cppType: black.cppType,\n elementType: {\n kind: CARBON_TYPE.RAW_STRUCT,\n cppType: black.cppType\n }\n });\n }\n\n static readValueWithoutBlack(reader, descriptor)\n {\n return CjsBlackPropertyReaders.readValue(reader, { jsType: descriptor });\n }\n\n static readStringRef(reader, descriptor)\n {\n const value = reader.ReadStringRef();\n return descriptor.kind === CARBON_TYPE.PATH ? reader.context.TransformPath(value) : value;\n }\n\n static readBlackIRoot(reader, black, descriptor)\n {\n if (black.container === \"dict\") return CjsBlackPropertyReaders.readDict(reader);\n if (black.container === \"list\" || black.container === \"set\") return CjsBlackPropertyReaders.readArray(reader, descriptor);\n return reader.context.ReadEmbeddedObject(reader);\n }\n\n static skipBlackIRoot(reader, black, descriptor)\n {\n if (black.container === \"dict\")\n {\n CjsBlackPropertyReaders.skipDict(reader);\n return;\n }\n if (black.container === \"list\" || black.container === \"set\")\n {\n CjsBlackPropertyReaders.skipArray(reader, descriptor);\n return;\n }\n reader.context.SkipEmbeddedObject(reader);\n }\n\n static readDict(reader)\n {\n const count = reader.ReadU32();\n const result = {};\n for (let i = 0; i < count; i++)\n {\n result[reader.ReadStringRef()] = reader.context.ReadObject(reader);\n }\n return result;\n }\n\n static skipDict(reader)\n {\n const count = reader.ReadU32();\n for (let i = 0; i < count; i++)\n {\n reader.Skip(2);\n reader.context.SkipObject(reader);\n }\n }\n\n static readBinaryBlock(reader, black)\n {\n const byteLength = reader.ReadI32();\n const bytes = reader.ReadBytes(byteLength);\n if (CjsBlackPropertyReaders.isUint32IndexBufferBlock(reader, black, byteLength))\n {\n return CjsBlackPropertyReaders.readUint32Array(bytes);\n }\n\n return {\n $type: \"black.binaryBlock\",\n beType: black.beType,\n byteLength,\n bytes: Array.from(bytes)\n };\n }\n\n static isUint32IndexBufferBlock(reader, black, byteLength)\n {\n if (byteLength % 4 !== 0) return false;\n if (reader.context?.readMode === \"document\" && !reader.context?.options.decodeBinaryBlocks) return false;\n return black.name === \"indexBuffer\" ||\n black.fieldName === \"indexBuffer\" ||\n black.storageName === \"indexBuffer\";\n }\n\n static readUint32Array(bytes)\n {\n const result = new Uint32Array(bytes.byteLength / 4);\n const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n for (let i = 0; i < result.length; i++)\n {\n result[i] = view.getUint32(i * 4, true);\n }\n return result;\n }\n\n static readArray(reader, descriptor)\n {\n const elementType = normalizeCarbonTypeDescriptor(descriptor.elementType);\n if (elementType.kind === CARBON_TYPE.RAW_STRUCT)\n {\n return CjsBlackPropertyReaders.readStructureList(reader, descriptor);\n }\n\n const count = reader.ReadU32();\n const result = [];\n for (let i = 0; i < count; i++)\n {\n if (!descriptor.elementType || elementType.kind === CARBON_TYPE.OBJECT_REF || elementType.kind === CARBON_TYPE.UNKNOWN)\n {\n result[i] = reader.context.ReadObject(reader);\n }\n else\n {\n result[i] = CjsBlackPropertyReaders.readValue(reader, { jsType: elementType });\n }\n }\n return result;\n }\n\n static skipArray(reader, descriptor)\n {\n const elementType = normalizeCarbonTypeDescriptor(descriptor.elementType);\n if (elementType.kind === CARBON_TYPE.RAW_STRUCT)\n {\n CjsBlackPropertyReaders.skipStructureList(reader);\n return;\n }\n\n const count = reader.ReadU32();\n for (let i = 0; i < count; i++)\n {\n if (!descriptor.elementType || elementType.kind === CARBON_TYPE.OBJECT_REF || elementType.kind === CARBON_TYPE.UNKNOWN)\n {\n reader.context.SkipObject(reader);\n }\n else\n {\n CjsBlackPropertyReaders.skipValue(reader, { jsType: elementType });\n }\n }\n }\n\n static readFloatArray(reader, count)\n {\n const result = [];\n for (let i = 0; i < count; i++)\n {\n result[i] = reader.ReadF32();\n }\n return result;\n }\n\n static readStructureList(reader, descriptor)\n {\n const count = reader.ReadI32();\n const structureSize = reader.ReadU16();\n const bytes = reader.ReadBytes(count * structureSize);\n return {\n $type: \"black.structureList\",\n count,\n structureSize,\n cppType: descriptor.cppType || null,\n elementType: descriptor.elementType?.cppType || null,\n bytes: Array.from(bytes)\n };\n }\n\n static skipStructureList(reader)\n {\n const count = reader.ReadI32();\n const structureSize = reader.ReadU16();\n reader.Skip(count * structureSize);\n }\n\n static readTypedArray(reader, descriptor)\n {\n const count = reader.ReadU32();\n const elementSize = reader.ReadU16();\n const bytes = reader.ReadBytes(count * elementSize);\n return {\n $type: \"black.typedArray\",\n count,\n elementSize,\n js: descriptor.js || null,\n bytes: Array.from(bytes)\n };\n }\n\n static skipTypedArray(reader)\n {\n const count = reader.ReadU32();\n const elementSize = reader.ReadU16();\n reader.Skip(count * elementSize);\n }\n\n static skipBinaryBlock(reader)\n {\n const byteLength = reader.ReadI32();\n reader.Skip(byteLength);\n }\n}\n"],"names":["CjsBlackPropertyReaders","readValue","reader","field","descriptor","normalizeCarbonTypeDescriptor","black","beType","readBlackValue","kind","CARBON_TYPE","BOOLEAN","ReadU8","STRING","EXPRESSION","ReadStringRef","PATH","context","TransformPath","ENUM","ReadI32","FLOAT32","ReadF32","FLOAT64","ReadF64","INT8","ReadI8","UINT8","INT16","ReadI16","UINT16","ReadU16","INT32","UINT32","ReadU32","INT64","ReadI64","UINT64","ReadU64","VECTOR2","readFloatArray","VECTOR3","VECTOR4","COLOR","QUATERNION","MATRIX3","MATRIX4","ARRAY","readArray","TYPED_ARRAY","readTypedArray","STRUCT","RAW_STRUCT","ReadEmbeddedObject","OBJECT_REF","UNKNOWN","ReadObject","container","cppType","test","String","readBlackStructureList","readBlackIRoot","readStringRef","ReadWideStringRef","signed","length","readBinaryBlock","readValueWithoutBlack","skipValue","skipBlackValue","Skip","skipArray","skipTypedArray","SkipEmbeddedObject","SkipObject","skipStructureList","skipBlackIRoot","skipBinaryBlock","jsType","readStructureList","elementType","value","readDict","skipDict","count","result","i","byteLength","bytes","ReadBytes","isUint32IndexBufferBlock","readUint32Array","$type","Array","from","readMode","options","decodeBinaryBlocks","name","fieldName","storageName","Uint32Array","view","DataView","buffer","byteOffset","getUint32","structureSize","elementSize","js"],"mappings":"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"}
1
+ {"version":3,"file":"CjsBlackPropertyReaders.js","sources":["../../../../../src/formats/black/core/CjsBlackPropertyReaders.js"],"sourcesContent":["import {\n CARBON_TYPE,\n normalizeCarbonTypeDescriptor\n} from \"@carbonenginejs/runtime-utils/types\";\n\n/**\n * Static set of read and skip routines that decode or skip individual Black\n * property values (primitives, strings, arrays, structure lists,\n * dictionaries, and binary blocks) from their type descriptors.\n */\nexport class CjsBlackPropertyReaders\n{\n static readValue(reader, field)\n {\n const descriptor = normalizeCarbonTypeDescriptor(field);\n if (field?.black?.beType)\n {\n return CjsBlackPropertyReaders.readBlackValue(reader, field.black, descriptor);\n }\n\n switch (descriptor.kind)\n {\n case CARBON_TYPE.BOOLEAN:\n return reader.ReadU8() !== 0;\n\n case CARBON_TYPE.STRING:\n case CARBON_TYPE.EXPRESSION:\n return reader.ReadStringRef();\n\n case CARBON_TYPE.PATH:\n return reader.context.TransformPath(reader.ReadStringRef());\n\n case CARBON_TYPE.ENUM:\n return reader.ReadI32();\n\n case CARBON_TYPE.FLOAT32:\n return reader.ReadF32();\n\n case CARBON_TYPE.FLOAT64:\n return reader.ReadF64();\n\n case CARBON_TYPE.INT8:\n return reader.ReadI8();\n\n case CARBON_TYPE.UINT8:\n return reader.ReadU8();\n\n case CARBON_TYPE.INT16:\n return reader.ReadI16();\n\n case CARBON_TYPE.UINT16:\n return reader.ReadU16();\n\n case CARBON_TYPE.INT32:\n return reader.ReadI32();\n\n case CARBON_TYPE.UINT32:\n return reader.ReadU32();\n\n case CARBON_TYPE.INT64:\n return reader.ReadI64();\n\n case CARBON_TYPE.UINT64:\n return reader.ReadU64();\n\n case CARBON_TYPE.VECTOR2:\n return CjsBlackPropertyReaders.readFloatArray(reader, 2);\n\n case CARBON_TYPE.VECTOR3:\n return CjsBlackPropertyReaders.readFloatArray(reader, 3);\n\n case CARBON_TYPE.VECTOR4:\n case CARBON_TYPE.COLOR:\n case CARBON_TYPE.QUATERNION:\n return CjsBlackPropertyReaders.readFloatArray(reader, 4);\n\n case CARBON_TYPE.MATRIX3:\n return CjsBlackPropertyReaders.readFloatArray(reader, 9);\n\n case CARBON_TYPE.MATRIX4:\n return CjsBlackPropertyReaders.readFloatArray(reader, 16);\n\n case CARBON_TYPE.ARRAY:\n return CjsBlackPropertyReaders.readArray(reader, descriptor);\n\n case CARBON_TYPE.TYPED_ARRAY:\n return CjsBlackPropertyReaders.readTypedArray(reader, descriptor);\n\n case CARBON_TYPE.STRUCT:\n case CARBON_TYPE.RAW_STRUCT:\n return reader.context.ReadEmbeddedObject(reader);\n\n case CARBON_TYPE.OBJECT_REF:\n case CARBON_TYPE.UNKNOWN:\n default:\n return reader.context.ReadObject(reader);\n }\n }\n\n static readBlackValue(reader, black, descriptor)\n {\n switch (black.beType)\n {\n case \"IROOT\":\n if (black.container === \"list\" && black.cppType && /StructureList/.test(String(black.cppType)))\n {\n return CjsBlackPropertyReaders.readBlackStructureList(reader, black);\n }\n return CjsBlackPropertyReaders.readBlackIRoot(reader, black, descriptor);\n\n case \"BOOL\":\n return reader.ReadU8() !== 0;\n\n case \"CSTRING\":\n case \"STDSTRING\":\n case \"SHAREDSTRING\":\n case \"REFERENCE\":\n return CjsBlackPropertyReaders.readStringRef(reader, descriptor);\n\n case \"WCSTRING\":\n case \"STDWSTRING\":\n case \"SHAREDSTRINGW\":\n case \"WREFERENCE\":\n return reader.ReadWideStringRef();\n\n case \"FLOAT\":\n return reader.ReadF32();\n\n case \"DOUBLE\":\n return reader.ReadF64();\n\n case \"LONG\":\n return reader.ReadI32();\n\n case \"ULONG\":\n return reader.ReadU32();\n\n case \"INT64\":\n return reader.ReadI64();\n\n case \"UINT64\":\n return reader.ReadU64();\n\n case \"BYTE\":\n return black.signed ? reader.ReadI8() : reader.ReadU8();\n\n case \"SHORT\":\n return black.signed ? reader.ReadI16() : reader.ReadU16();\n\n case \"FLOATARRAY\":\n return CjsBlackPropertyReaders.readFloatArray(reader, black.length || descriptor.length || 0);\n\n case \"BINARYBLOCK\":\n return CjsBlackPropertyReaders.readBinaryBlock(reader, black);\n\n case \"IROOTPTR\":\n case \"IROOTWEAKREF\":\n return reader.context.ReadObject(reader);\n\n default:\n return CjsBlackPropertyReaders.readValueWithoutBlack(reader, descriptor);\n }\n }\n\n static skipValue(reader, field)\n {\n const descriptor = normalizeCarbonTypeDescriptor(field);\n if (field?.black?.beType)\n {\n CjsBlackPropertyReaders.skipBlackValue(reader, field.black, descriptor);\n return;\n }\n\n switch (descriptor.kind)\n {\n case CARBON_TYPE.BOOLEAN:\n case CARBON_TYPE.INT8:\n case CARBON_TYPE.UINT8:\n reader.Skip(1);\n return;\n case CARBON_TYPE.STRING:\n case CARBON_TYPE.PATH:\n case CARBON_TYPE.EXPRESSION:\n case CARBON_TYPE.INT16:\n case CARBON_TYPE.UINT16:\n reader.Skip(2);\n return;\n case CARBON_TYPE.ENUM:\n case CARBON_TYPE.FLOAT32:\n case CARBON_TYPE.INT32:\n case CARBON_TYPE.UINT32:\n reader.Skip(4);\n return;\n case CARBON_TYPE.FLOAT64:\n case CARBON_TYPE.INT64:\n case CARBON_TYPE.UINT64:\n reader.Skip(8);\n return;\n case CARBON_TYPE.VECTOR2:\n reader.Skip(8);\n return;\n case CARBON_TYPE.VECTOR3:\n reader.Skip(12);\n return;\n case CARBON_TYPE.VECTOR4:\n case CARBON_TYPE.COLOR:\n case CARBON_TYPE.QUATERNION:\n reader.Skip(16);\n return;\n case CARBON_TYPE.MATRIX3:\n reader.Skip(36);\n return;\n case CARBON_TYPE.MATRIX4:\n reader.Skip(64);\n return;\n case CARBON_TYPE.ARRAY:\n CjsBlackPropertyReaders.skipArray(reader, descriptor);\n return;\n case CARBON_TYPE.TYPED_ARRAY:\n CjsBlackPropertyReaders.skipTypedArray(reader);\n return;\n case CARBON_TYPE.STRUCT:\n case CARBON_TYPE.RAW_STRUCT:\n reader.context.SkipEmbeddedObject(reader);\n return;\n case CARBON_TYPE.OBJECT_REF:\n case CARBON_TYPE.UNKNOWN:\n default:\n reader.context.SkipObject(reader);\n }\n }\n\n static skipBlackValue(reader, black, descriptor)\n {\n switch (black.beType)\n {\n case \"IROOT\":\n if (black.container === \"list\" && black.cppType && /StructureList/.test(String(black.cppType)))\n {\n CjsBlackPropertyReaders.skipStructureList(reader);\n return;\n }\n CjsBlackPropertyReaders.skipBlackIRoot(reader, black, descriptor);\n return;\n case \"BOOL\":\n case \"BYTE\":\n reader.Skip(1);\n return;\n case \"CSTRING\":\n case \"STDSTRING\":\n case \"SHAREDSTRING\":\n case \"REFERENCE\":\n case \"WCSTRING\":\n case \"STDWSTRING\":\n case \"SHAREDSTRINGW\":\n case \"WREFERENCE\":\n case \"SHORT\":\n reader.Skip(2);\n return;\n case \"FLOAT\":\n case \"LONG\":\n case \"ULONG\":\n reader.Skip(4);\n return;\n case \"DOUBLE\":\n case \"INT64\":\n case \"UINT64\":\n reader.Skip(8);\n return;\n case \"FLOATARRAY\":\n reader.Skip((black.length || descriptor.length || 0) * 4);\n return;\n case \"BINARYBLOCK\":\n CjsBlackPropertyReaders.skipBinaryBlock(reader);\n return;\n case \"IROOTPTR\":\n case \"IROOTWEAKREF\":\n reader.context.SkipObject(reader);\n return;\n default:\n CjsBlackPropertyReaders.skipValue(reader, { jsType: descriptor });\n }\n }\n\n static readBlackStructureList(reader, black)\n {\n return CjsBlackPropertyReaders.readStructureList(reader, {\n cppType: black.cppType,\n elementType: {\n kind: CARBON_TYPE.RAW_STRUCT,\n cppType: black.cppType\n }\n });\n }\n\n static readValueWithoutBlack(reader, descriptor)\n {\n return CjsBlackPropertyReaders.readValue(reader, { jsType: descriptor });\n }\n\n static readStringRef(reader, descriptor)\n {\n const value = reader.ReadStringRef();\n return descriptor.kind === CARBON_TYPE.PATH ? reader.context.TransformPath(value) : value;\n }\n\n static readBlackIRoot(reader, black, descriptor)\n {\n if (black.container === \"dict\") return CjsBlackPropertyReaders.readDict(reader);\n if (black.container === \"list\" || black.container === \"set\") return CjsBlackPropertyReaders.readArray(reader, descriptor);\n return reader.context.ReadEmbeddedObject(reader);\n }\n\n static skipBlackIRoot(reader, black, descriptor)\n {\n if (black.container === \"dict\")\n {\n CjsBlackPropertyReaders.skipDict(reader);\n return;\n }\n if (black.container === \"list\" || black.container === \"set\")\n {\n CjsBlackPropertyReaders.skipArray(reader, descriptor);\n return;\n }\n reader.context.SkipEmbeddedObject(reader);\n }\n\n static readDict(reader)\n {\n const count = reader.ReadU32();\n const result = {};\n for (let i = 0; i < count; i++)\n {\n result[reader.ReadStringRef()] = reader.context.ReadObject(reader);\n }\n return result;\n }\n\n static skipDict(reader)\n {\n const count = reader.ReadU32();\n for (let i = 0; i < count; i++)\n {\n reader.Skip(2);\n reader.context.SkipObject(reader);\n }\n }\n\n static readBinaryBlock(reader, black)\n {\n const byteLength = reader.ReadI32();\n const bytes = reader.ReadBytes(byteLength);\n if (CjsBlackPropertyReaders.isUint32IndexBufferBlock(reader, black, byteLength))\n {\n return CjsBlackPropertyReaders.readUint32Array(bytes);\n }\n\n return {\n $type: \"black.binaryBlock\",\n beType: black.beType,\n byteLength,\n bytes: Array.from(bytes)\n };\n }\n\n static isUint32IndexBufferBlock(reader, black, byteLength)\n {\n if (byteLength % 4 !== 0) return false;\n if (reader.context?.readMode === \"document\" && !reader.context?.options.decodeBinaryBlocks) return false;\n return black.name === \"indexBuffer\" ||\n black.fieldName === \"indexBuffer\" ||\n black.storageName === \"indexBuffer\";\n }\n\n static readUint32Array(bytes)\n {\n const result = new Uint32Array(bytes.byteLength / 4);\n const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n for (let i = 0; i < result.length; i++)\n {\n result[i] = view.getUint32(i * 4, true);\n }\n return result;\n }\n\n static readArray(reader, descriptor)\n {\n const elementType = normalizeCarbonTypeDescriptor(descriptor.elementType);\n if (elementType.kind === CARBON_TYPE.RAW_STRUCT)\n {\n return CjsBlackPropertyReaders.readStructureList(reader, descriptor);\n }\n\n const count = reader.ReadU32();\n const result = [];\n for (let i = 0; i < count; i++)\n {\n if (!descriptor.elementType || elementType.kind === CARBON_TYPE.OBJECT_REF || elementType.kind === CARBON_TYPE.UNKNOWN)\n {\n result[i] = reader.context.ReadObject(reader);\n }\n else\n {\n result[i] = CjsBlackPropertyReaders.readValue(reader, { jsType: elementType });\n }\n }\n return result;\n }\n\n static skipArray(reader, descriptor)\n {\n const elementType = normalizeCarbonTypeDescriptor(descriptor.elementType);\n if (elementType.kind === CARBON_TYPE.RAW_STRUCT)\n {\n CjsBlackPropertyReaders.skipStructureList(reader);\n return;\n }\n\n const count = reader.ReadU32();\n for (let i = 0; i < count; i++)\n {\n if (!descriptor.elementType || elementType.kind === CARBON_TYPE.OBJECT_REF || elementType.kind === CARBON_TYPE.UNKNOWN)\n {\n reader.context.SkipObject(reader);\n }\n else\n {\n CjsBlackPropertyReaders.skipValue(reader, { jsType: elementType });\n }\n }\n }\n\n static readFloatArray(reader, count)\n {\n const result = [];\n for (let i = 0; i < count; i++)\n {\n result[i] = reader.ReadF32();\n }\n return result;\n }\n\n static readStructureList(reader, descriptor)\n {\n const count = reader.ReadI32();\n const structureSize = reader.ReadU16();\n const bytes = reader.ReadBytes(count * structureSize);\n return {\n $type: \"black.structureList\",\n count,\n structureSize,\n cppType: descriptor.cppType || null,\n elementType: descriptor.elementType?.cppType || null,\n bytes: Array.from(bytes)\n };\n }\n\n static skipStructureList(reader)\n {\n const count = reader.ReadI32();\n const structureSize = reader.ReadU16();\n reader.Skip(count * structureSize);\n }\n\n static readTypedArray(reader, descriptor)\n {\n const count = reader.ReadU32();\n const elementSize = reader.ReadU16();\n const bytes = reader.ReadBytes(count * elementSize);\n return {\n $type: \"black.typedArray\",\n count,\n elementSize,\n js: descriptor.js || null,\n bytes: Array.from(bytes)\n };\n }\n\n static skipTypedArray(reader)\n {\n const count = reader.ReadU32();\n const elementSize = reader.ReadU16();\n reader.Skip(count * elementSize);\n }\n\n static skipBinaryBlock(reader)\n {\n const byteLength = reader.ReadI32();\n reader.Skip(byteLength);\n }\n}\n"],"names":["CjsBlackPropertyReaders","readValue","reader","field","descriptor","normalizeCarbonTypeDescriptor","black","beType","readBlackValue","kind","CARBON_TYPE","BOOLEAN","ReadU8","STRING","EXPRESSION","ReadStringRef","PATH","context","TransformPath","ENUM","ReadI32","FLOAT32","ReadF32","FLOAT64","ReadF64","INT8","ReadI8","UINT8","INT16","ReadI16","UINT16","ReadU16","INT32","UINT32","ReadU32","INT64","ReadI64","UINT64","ReadU64","VECTOR2","readFloatArray","VECTOR3","VECTOR4","COLOR","QUATERNION","MATRIX3","MATRIX4","ARRAY","readArray","TYPED_ARRAY","readTypedArray","STRUCT","RAW_STRUCT","ReadEmbeddedObject","OBJECT_REF","UNKNOWN","ReadObject","container","cppType","test","String","readBlackStructureList","readBlackIRoot","readStringRef","ReadWideStringRef","signed","length","readBinaryBlock","readValueWithoutBlack","skipValue","skipBlackValue","Skip","skipArray","skipTypedArray","SkipEmbeddedObject","SkipObject","skipStructureList","skipBlackIRoot","skipBinaryBlock","jsType","readStructureList","elementType","value","readDict","skipDict","count","result","i","byteLength","bytes","ReadBytes","isUint32IndexBufferBlock","readUint32Array","$type","Array","from","readMode","options","decodeBinaryBlocks","name","fieldName","storageName","Uint32Array","view","DataView","buffer","byteOffset","getUint32","structureSize","elementSize","js"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { CjsCarbonDocument } from '@carbonenginejs/core-types/document';
2
- import { CjsSchema } from '@carbonenginejs/core-types/schema';
1
+ import { CjsCarbonDocument } from '@carbonenginejs/runtime-utils/document';
2
+ import { CjsSchema } from '@carbonenginejs/runtime-utils/schema';
3
3
  import { CjsBlueReader } from '../../../format/CjsBlueReader.js';
4
4
  import { CJS_BLACK_FOURCC, CJS_BLACK_VERSION, CJS_BLACK_FORMAT_ID } from './blackConstants.js';
5
5
  import { CjsBlackBinaryReader } from './CjsBlackBinaryReader.js';
@@ -1 +1 @@
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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"}
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,4 +1,4 @@
1
- import { generateTangents, generateBiNormals, generateNormals } from '@carbonenginejs/core-math/mesh';
1
+ import { generateTangents, generateBiNormals, generateNormals } from '@carbonenginejs/runtime-utils/mesh';
2
2
 
3
3
  const OUTPUT_CMF = "cmf";
4
4
  const OUTPUT_GR2 = "gr2";