@carbonenginejs/runtime-resource 0.1.0 → 0.8.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 +155 -135
- package/LICENSE +21 -21
- package/NOTICE +29 -29
- package/README.md +548 -241
- package/dist/CjsMotherLode.js +1271 -56
- package/dist/CjsMotherLode.js.map +1 -1
- package/dist/CjsResMan.js +3005 -740
- package/dist/CjsResMan.js.map +1 -1
- package/dist/CjsResManQueue.js +214 -214
- package/dist/CjsResource.js +566 -366
- package/dist/CjsResource.js.map +1 -1
- package/dist/CjsResourceSource.js +59 -59
- package/dist/_virtual/_rollupPluginBabelHelpers.js +153 -153
- package/dist/format/CjsBlueReader.js +269 -0
- package/dist/format/CjsBlueReader.js.map +1 -0
- package/dist/format/CjsFormat.js +192 -178
- 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 +277 -269
- package/dist/format/CjsResourceProbe.js.map +1 -1
- package/dist/format/payloadContract.js +173 -173
- package/dist/formats/black/CjsBlackFormat.js +278 -272
- package/dist/formats/black/CjsBlackFormat.js.map +1 -1
- package/dist/formats/black/core/CjsBlackBinaryReader.js +153 -153
- package/dist/formats/black/core/CjsBlackPropertyReaders.js +382 -382
- package/dist/formats/black/core/CjsBlackReader.js +639 -760
- package/dist/formats/black/core/CjsBlackReader.js.map +1 -1
- package/dist/formats/black/core/CjsBlackSchemaRegistry.js +433 -433
- package/dist/formats/black/core/black-schema-v1-2026-07-11.json.js +4 -4
- package/dist/formats/black/core/blackConstants.js +7 -7
- package/dist/formats/black/core/blackDefinitions.js +10 -10
- package/dist/formats/black/core/blackEnums.js +6 -6
- package/dist/formats/black/core/blackSchema.js +3 -3
- package/dist/formats/black/core/blackVersion.js +22 -22
- package/dist/formats/black/core/helpers.js +182 -182
- package/dist/formats/black/core/schema.js +4 -4
- package/dist/formats/black/index.js +2 -2
- package/dist/formats/bnk/CjsBnkFormat.js +238 -245
- 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 +409 -354
- 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/core/soundbanksInfo.js +246 -246
- package/dist/formats/bnk/index.js +2 -3
- package/dist/formats/bnk/index.js.map +1 -1
- package/dist/formats/cmf/CjsCmfFormat.js +497 -491
- package/dist/formats/cmf/CjsCmfFormat.js.map +1 -1
- package/dist/formats/cmf/core/binary.js +118 -118
- package/dist/formats/cmf/core/buffers.js +233 -233
- package/dist/formats/cmf/core/constants.js +47 -47
- package/dist/formats/cmf/core/gr2Anim.js +453 -453
- package/dist/formats/cmf/core/helpers.js +287 -287
- package/dist/formats/cmf/core/pack.js +276 -276
- package/dist/formats/cmf/core/schema.js +364 -364
- package/dist/formats/cmf/core/shared.js +268 -268
- package/dist/formats/cmf/core/writer.js +517 -517
- package/dist/formats/cmf/index.js +2 -2
- package/dist/formats/dds/CjsDdsFormat.js +193 -187
- package/dist/formats/dds/CjsDdsFormat.js.map +1 -1
- package/dist/formats/dds/core/bc6h.js +288 -0
- package/dist/formats/dds/core/bc6h.js.map +1 -0
- package/dist/formats/dds/core/bc7.js +251 -0
- package/dist/formats/dds/core/bc7.js.map +1 -0
- package/dist/formats/dds/core/helpers.js +815 -812
- package/dist/formats/dds/core/helpers.js.map +1 -1
- package/dist/formats/dds/index.js +2 -2
- package/dist/formats/fbx/CjsFbxFormat.js +266 -260
- package/dist/formats/fbx/CjsFbxFormat.js.map +1 -1
- package/dist/formats/fbx/core/helpers.js +3901 -3901
- package/dist/formats/fbx/index.js +2 -2
- package/dist/formats/flac/CjsFlacFormat.js +87 -81
- package/dist/formats/flac/CjsFlacFormat.js.map +1 -1
- package/dist/formats/flac/core/helpers.js +295 -295
- package/dist/formats/flac/index.js +2 -2
- package/dist/formats/gif/CjsGifFormat.js +87 -81
- package/dist/formats/gif/CjsGifFormat.js.map +1 -1
- package/dist/formats/gif/core/helpers.js +360 -360
- package/dist/formats/gif/index.js +2 -2
- package/dist/formats/gltf/CjsGltfFormat.js +290 -284
- package/dist/formats/gltf/CjsGltfFormat.js.map +1 -1
- package/dist/formats/gltf/core/helpers.js +292 -292
- package/dist/formats/gltf/core/json.js +79 -79
- package/dist/formats/gltf/core/parser.js +666 -666
- package/dist/formats/gltf/core/targets.js +163 -163
- package/dist/formats/gltf/index.js +2 -2
- package/dist/formats/index.js +23 -23
- package/dist/formats/jpeg/CjsJpegFormat.js +206 -200
- package/dist/formats/jpeg/CjsJpegFormat.js.map +1 -1
- package/dist/formats/jpeg/core/helpers.js +350 -350
- package/dist/formats/jpeg/core/jpeg.js +377 -377
- package/dist/formats/jpeg/index.js +2 -2
- package/dist/formats/mp3/CjsMp3Format.js +192 -186
- package/dist/formats/mp3/CjsMp3Format.js.map +1 -1
- package/dist/formats/mp3/core/helpers.js +338 -338
- package/dist/formats/mp3/index.js +2 -2
- package/dist/formats/mp4/CjsMp4Format.js +191 -185
- package/dist/formats/mp4/CjsMp4Format.js.map +1 -1
- package/dist/formats/mp4/core/helpers.js +449 -449
- package/dist/formats/mp4/index.js +2 -2
- package/dist/formats/obj/CjsObjFormat.js +253 -247
- package/dist/formats/obj/CjsObjFormat.js.map +1 -1
- package/dist/formats/obj/core/helpers.js +573 -573
- package/dist/formats/obj/core/json.js +64 -64
- package/dist/formats/obj/core/parser.js +321 -321
- package/dist/formats/obj/index.js +2 -2
- package/dist/formats/ogg/CjsOggFormat.js +88 -82
- package/dist/formats/ogg/CjsOggFormat.js.map +1 -1
- package/dist/formats/ogg/core/helpers.js +387 -387
- package/dist/formats/ogg/core/imdct.js +178 -178
- package/dist/formats/ogg/core/vorbis.js +999 -999
- package/dist/formats/ogg/index.js +2 -2
- package/dist/formats/png/CjsPngFormat.js +195 -189
- package/dist/formats/png/CjsPngFormat.js.map +1 -1
- package/dist/formats/png/core/helpers.js +583 -583
- package/dist/formats/png/index.js +2 -2
- package/dist/formats/red/CjsRedFormat.js +261 -247
- package/dist/formats/red/CjsRedFormat.js.map +1 -1
- package/dist/formats/red/core/CjsRedReader.js +194 -201
- package/dist/formats/red/core/CjsRedReader.js.map +1 -1
- package/dist/formats/red/core/blackDefinitions.js +3 -3
- package/dist/formats/red/core/helpers.js +139 -136
- package/dist/formats/red/core/helpers.js.map +1 -1
- package/dist/formats/red/core/redGraph.js +68 -68
- package/dist/formats/red/core/schema.js +4 -4
- package/dist/formats/red/index.js +2 -2
- package/dist/formats/stl/CjsStlFormat.js +365 -304
- package/dist/formats/stl/CjsStlFormat.js.map +1 -1
- package/dist/formats/stl/core/helpers.js +261 -257
- package/dist/formats/stl/core/helpers.js.map +1 -1
- package/dist/formats/stl/core/json.js +51 -51
- package/dist/formats/stl/core/stl.js +629 -544
- package/dist/formats/stl/core/stl.js.map +1 -1
- package/dist/formats/stl/core/targets.js +163 -163
- package/dist/formats/stl/index.js +2 -2
- package/dist/formats/tga/CjsTgaFormat.js +192 -186
- package/dist/formats/tga/CjsTgaFormat.js.map +1 -1
- package/dist/formats/tga/core/helpers.js +446 -446
- package/dist/formats/tga/index.js +2 -2
- package/dist/formats/wav/CjsWavFormat.js +192 -186
- package/dist/formats/wav/CjsWavFormat.js.map +1 -1
- package/dist/formats/wav/core/helpers.js +328 -328
- package/dist/formats/wav/index.js +2 -2
- package/dist/formats/webm/CjsWebmFormat.js +191 -185
- package/dist/formats/webm/CjsWebmFormat.js.map +1 -1
- package/dist/formats/webm/core/helpers.js +537 -537
- package/dist/formats/webm/index.js +2 -2
- package/dist/formats/webp/CjsWebpFormat.js +86 -80
- package/dist/formats/webp/CjsWebpFormat.js.map +1 -1
- package/dist/formats/webp/core/helpers.js +214 -214
- package/dist/formats/webp/index.js +2 -2
- package/dist/formats/wem/CjsWemFormat.js +241 -197
- package/dist/formats/wem/CjsWemFormat.js.map +1 -1
- package/dist/formats/wem/core/bitStream.js +259 -259
- package/dist/formats/wem/core/codebookLibrary.js +164 -164
- package/dist/formats/wem/core/helpers.js +417 -336
- package/dist/formats/wem/core/helpers.js.map +1 -1
- package/dist/formats/wem/core/packedCodebooksAotuv603.js +30 -30
- 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/wem/core/wemToOgg.js +485 -485
- package/dist/formats/wem/index.js +2 -2
- package/dist/formats/yaml/CjsYamlFormat.js +83 -77
- package/dist/formats/yaml/CjsYamlFormat.js.map +1 -1
- package/dist/formats/yaml/core/CjsYamlReader.js +305 -304
- package/dist/formats/yaml/core/CjsYamlReader.js.map +1 -1
- package/dist/formats/yaml/core/helpers.js +160 -160
- package/dist/formats/yaml/index.js +2 -2
- package/dist/index.js +48 -52
- package/dist/index.js.map +1 -1
- package/dist/resourcePath.js +18 -18
- package/dist/resourceStates.js +9 -9
- package/dist/{generated/resources → resources}/AudioGeometryResData.js +47 -47
- package/dist/resources/AudioGeometryResData.js.map +1 -0
- package/dist/{generated/resources → resources}/GStateBindingCallbackData.js +31 -31
- package/dist/resources/GStateBindingCallbackData.js.map +1 -0
- package/dist/{generated/resources → resources}/MeshDecalData.js +37 -37
- package/dist/resources/MeshDecalData.js.map +1 -0
- package/dist/{generated/resources → resources}/MeshDecalLodData.js +34 -34
- package/dist/resources/MeshDecalLodData.js.map +1 -0
- package/dist/resources/Tr2EffectRes.js +71 -71
- package/dist/resources/Tr2GrannyIntersectionResult.js +60 -0
- package/dist/resources/Tr2GrannyIntersectionResult.js.map +1 -0
- package/dist/resources/Tr2GrannyStateRes.js +44 -44
- package/dist/resources/Tr2ImageRes.js +114 -114
- package/dist/resources/Tr2LightProfileRes.js +40 -40
- package/dist/{generated/resources → resources}/Tr2MaterialArea.js +34 -34
- package/dist/resources/Tr2MaterialArea.js.map +1 -0
- package/dist/{generated/resources → resources}/Tr2MaterialMesh.js +31 -31
- package/dist/resources/Tr2MaterialMesh.js.map +1 -0
- package/dist/{generated/resources → resources}/Tr2MaterialRes.js +34 -34
- package/dist/resources/Tr2MaterialRes.js.map +1 -0
- package/dist/{generated/resources → resources}/Tr2ShaderPermutation.js +43 -43
- package/dist/resources/Tr2ShaderPermutation.js.map +1 -0
- package/dist/{generated/resources → resources}/Tr2TextureLodManager.js +100 -60
- package/dist/resources/Tr2TextureLodManager.js.map +1 -0
- package/dist/{generated/resources → resources}/Tr2TextureLodUpdateRequest.js +37 -37
- package/dist/resources/Tr2TextureLodUpdateRequest.js.map +1 -0
- package/dist/{generated/resources → resources}/Tr2TexturePackChannel.js +37 -37
- 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 +34 -34
- package/dist/resources/Tr2TexturePipelineParams.js.map +1 -0
- package/dist/{generated/resources → resources}/Tr2TexturePipelineStepCompress.js +40 -40
- package/dist/resources/Tr2TexturePipelineStepCompress.js.map +1 -0
- package/dist/{generated/resources → resources}/Tr2TexturePipelineStepLimitSize.js +34 -34
- package/dist/resources/Tr2TexturePipelineStepLimitSize.js.map +1 -0
- package/dist/{generated/resources → resources}/Tr2TexturePipelineStepLoad.js +31 -31
- package/dist/resources/Tr2TexturePipelineStepLoad.js.map +1 -0
- package/dist/{generated/resources → resources}/Tr2TexturePipelineStepPack.js +43 -43
- package/dist/resources/Tr2TexturePipelineStepPack.js.map +1 -0
- package/dist/resources/TriGeometryRes.js +239 -216
- package/dist/resources/TriGeometryRes.js.map +1 -1
- package/dist/{generated/resources → resources}/TriGeometryResAreaData.js +59 -59
- package/dist/resources/TriGeometryResAreaData.js.map +1 -0
- package/dist/{generated/resources → resources}/TriGeometryResJointData.js +38 -38
- package/dist/resources/TriGeometryResJointData.js.map +1 -0
- package/dist/{generated/resources → resources}/TriGeometryResLodData.js +88 -88
- package/dist/resources/TriGeometryResLodData.js.map +1 -0
- package/dist/{generated/resources → resources}/TriGeometryResMeshData.js +63 -63
- package/dist/resources/TriGeometryResMeshData.js.map +1 -0
- package/dist/{generated/resources → resources}/TriGeometryResSkeletonData.js +34 -34
- package/dist/resources/TriGeometryResSkeletonData.js.map +1 -0
- package/dist/resources/TriGrannyRes.js +43 -43
- package/dist/{generated/resources → resources}/TriJointBinding.js +38 -38
- package/dist/resources/TriJointBinding.js.map +1 -0
- package/dist/{generated/resources → resources}/TriMorphTargetGeometryConstants.js +46 -46
- package/dist/resources/TriMorphTargetGeometryConstants.js.map +1 -0
- package/dist/{generated/resources → resources}/TriRtGeometryConstants.js +88 -88
- package/dist/resources/TriRtGeometryConstants.js.map +1 -0
- package/dist/resources/TriTextureRes.js +304 -304
- package/dist/{generated/resources → resources}/enums.js +18 -18
- package/dist/resources/enums.js.map +1 -0
- package/dist/resources/resourceBoundary.js +47 -47
- package/dist/resources/texturePipelineBehavior.js +320 -0
- package/dist/resources/texturePipelineBehavior.js.map +1 -0
- package/dist/texture/CjsTextureArrayRes.js +406 -406
- package/dist/texture/CjsTextureParameterProxy.js +133 -133
- package/format-notices/black/LICENSE +21 -21
- package/format-notices/black/NOTICE +47 -47
- package/format-notices/bnk/LICENSE +21 -21
- package/format-notices/bnk/NOTICE +20 -17
- package/format-notices/cmf/LICENSE +21 -21
- package/format-notices/cmf/NOTICE +36 -36
- package/format-notices/dds/LICENSE +21 -21
- package/format-notices/dds/NOTICE +14 -14
- package/format-notices/fbx/LICENSE +21 -21
- package/format-notices/fbx/NOTICE +14 -14
- package/format-notices/flac/LICENSE +21 -21
- package/format-notices/flac/NOTICE +14 -14
- package/format-notices/gif/LICENSE +21 -21
- package/format-notices/gif/NOTICE +14 -14
- package/format-notices/gltf/LICENSE +21 -21
- package/format-notices/gltf/NOTICE +27 -27
- package/format-notices/jpeg/LICENSE +21 -21
- package/format-notices/jpeg/NOTICE +14 -14
- package/format-notices/mp3/LICENSE +21 -21
- package/format-notices/mp3/NOTICE +14 -14
- package/format-notices/mp4/LICENSE +21 -21
- package/format-notices/mp4/NOTICE +14 -14
- package/format-notices/obj/LICENSE +21 -21
- package/format-notices/obj/NOTICE +26 -26
- package/format-notices/ogg/LICENSE +21 -21
- package/format-notices/ogg/NOTICE +28 -28
- package/format-notices/png/LICENSE +21 -21
- package/format-notices/png/NOTICE +14 -14
- package/format-notices/red/LICENSE +21 -21
- package/format-notices/red/NOTICE +31 -31
- package/format-notices/stl/LICENSE +21 -21
- package/format-notices/stl/NOTICE +21 -21
- package/format-notices/tga/LICENSE +21 -21
- package/format-notices/tga/NOTICE +14 -14
- package/format-notices/wav/LICENSE +21 -21
- package/format-notices/wav/NOTICE +14 -14
- package/format-notices/webm/LICENSE +21 -21
- package/format-notices/webm/NOTICE +14 -14
- package/format-notices/webp/LICENSE +21 -21
- package/format-notices/webp/NOTICE +14 -14
- package/format-notices/wem/LICENSE +57 -57
- package/format-notices/wem/NOTICE +33 -33
- package/format-notices/yaml/LICENSE +21 -21
- package/format-notices/yaml/NOTICE +44 -44
- package/package.json +51 -51
- package/resource-lifecycle.md +679 -487
- 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
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
import { resolveHydrationAdapter } from '@carbonenginejs/core-types/hydration';
|
|
2
|
+
import { normalizeCarbonTypeDescriptor, CARBON_TYPE, normalizeCarbonValue } from '@carbonenginejs/core-types/types';
|
|
3
|
+
import { CjsReader } from './CjsReader.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Shared output and hydration backend for Blue persistence readers.
|
|
7
|
+
*
|
|
8
|
+
* Transports retain framing, source buffers, reference-token parsing, member
|
|
9
|
+
* decoding, skip/recovery behavior, and format-specific metadata. This backend
|
|
10
|
+
* owns common payload/runtime targets, reference emission, hydration adapter
|
|
11
|
+
* phases, reports, and finalization. It also provides reusable class/shape,
|
|
12
|
+
* descriptor assignment, and normalization helpers for transports that resolve
|
|
13
|
+
* persisted fields through a schema. Red does not opt into that descriptor
|
|
14
|
+
* path yet and retains its lenient named-field behavior.
|
|
15
|
+
*/
|
|
16
|
+
class CjsBlueReader extends CjsReader {
|
|
17
|
+
constructor(options = {}, config = {}) {
|
|
18
|
+
super({
|
|
19
|
+
...options
|
|
20
|
+
});
|
|
21
|
+
this.schemaRegistry = config.schemaRegistry || null;
|
|
22
|
+
this.schemaShapes = this.schemaRegistry ? this.schemaRegistry.createShapeMap(options.schema) : new Map();
|
|
23
|
+
this.defaultRegistry = config.defaultRegistry || null;
|
|
24
|
+
this.includeShapeContext = Boolean(config.includeShapeContext);
|
|
25
|
+
this.includeSourceShape = Boolean(config.includeSourceShape);
|
|
26
|
+
this.includeEmptyPayloadType = Boolean(config.includeEmptyPayloadType);
|
|
27
|
+
this.requirePayloadReferenceTarget = Boolean(config.requirePayloadReferenceTarget);
|
|
28
|
+
this.includePayloadValuesField = Boolean(config.includePayloadValuesField);
|
|
29
|
+
this.validatePayloadReservedFields = Boolean(config.validatePayloadReservedFields);
|
|
30
|
+
this.payloadReservedFields = null;
|
|
31
|
+
this.adapter = resolveHydrationAdapter(options);
|
|
32
|
+
this.hydrationOptions = {
|
|
33
|
+
...options,
|
|
34
|
+
markDirty: false,
|
|
35
|
+
skipUpdate: true,
|
|
36
|
+
skipEvents: true
|
|
37
|
+
};
|
|
38
|
+
this.ResetBlueReadState();
|
|
39
|
+
}
|
|
40
|
+
ResetBlueReadState() {
|
|
41
|
+
this.reports = [];
|
|
42
|
+
this.runtimeInstances = [];
|
|
43
|
+
}
|
|
44
|
+
FinalizeRuntimeInstances() {
|
|
45
|
+
for (const record of this.runtimeInstances) {
|
|
46
|
+
this.adapter.finalize(record.instance, this.CreateRuntimeContext(record.kind, record.shape, false));
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
CreateRuntimeTarget(kind, shape = null) {
|
|
50
|
+
const built = this.adapter.construct(kind, this.CreateRuntimeContext(kind, shape, true, this.options));
|
|
51
|
+
if (built !== undefined) return built;
|
|
52
|
+
const ClassConstructor = this.ResolveClass(kind);
|
|
53
|
+
if (ClassConstructor) return new ClassConstructor();
|
|
54
|
+
return this.CreateRuntimeFallback(kind, shape);
|
|
55
|
+
}
|
|
56
|
+
CreateRuntimeFallback(kind, shape = null) {
|
|
57
|
+
const target = {
|
|
58
|
+
_sourceClassName: this.includeSourceShape ? kind : kind || null
|
|
59
|
+
};
|
|
60
|
+
if (this.includeSourceShape) target._sourceShape = shape || null;
|
|
61
|
+
return target;
|
|
62
|
+
}
|
|
63
|
+
ApplyRuntimeValues(target, values, kind, shape = null) {
|
|
64
|
+
this.adapter.applyValues(target, values, this.CreateRuntimeContext(kind, shape, true, this.hydrationOptions));
|
|
65
|
+
this.runtimeInstances.push({
|
|
66
|
+
instance: target,
|
|
67
|
+
kind,
|
|
68
|
+
shape
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
CreateRuntimeContext(kind, shape, includeOptions, options = null) {
|
|
72
|
+
const context = {
|
|
73
|
+
kind
|
|
74
|
+
};
|
|
75
|
+
if (this.includeShapeContext) context.shape = shape;
|
|
76
|
+
if (includeOptions) context.options = options;
|
|
77
|
+
return context;
|
|
78
|
+
}
|
|
79
|
+
CreatePayloadTarget(kind) {
|
|
80
|
+
const typeField = this.GetPayloadTypeField();
|
|
81
|
+
return typeField && (kind || this.includeEmptyPayloadType) ? {
|
|
82
|
+
[typeField]: kind
|
|
83
|
+
} : {};
|
|
84
|
+
}
|
|
85
|
+
CreatePayloadReference(targetObject, referenceId) {
|
|
86
|
+
const idField = this.GetPayloadIdField();
|
|
87
|
+
const referenceField = this.GetPayloadReferenceField();
|
|
88
|
+
if (idField && this.requirePayloadReferenceTarget) {
|
|
89
|
+
this.AssignPayloadReferenceId(targetObject, idField, referenceId);
|
|
90
|
+
} else if (idField && targetObject && typeof targetObject === "object") {
|
|
91
|
+
this.AssignPayloadReferenceId(targetObject, idField, referenceId);
|
|
92
|
+
}
|
|
93
|
+
return referenceField ? {
|
|
94
|
+
[referenceField]: referenceId
|
|
95
|
+
} : targetObject;
|
|
96
|
+
}
|
|
97
|
+
GetPayloadTypeField() {
|
|
98
|
+
return this.GetPayloadField("payloadTypeField", "_type");
|
|
99
|
+
}
|
|
100
|
+
GetPayloadIdField() {
|
|
101
|
+
return this.GetPayloadField("payloadIdField", "_id");
|
|
102
|
+
}
|
|
103
|
+
GetPayloadReferenceField() {
|
|
104
|
+
return this.GetPayloadField("payloadReferenceField", "_reference");
|
|
105
|
+
}
|
|
106
|
+
GetPayloadValuesField() {
|
|
107
|
+
return this.GetPayloadField("payloadValuesField", "_values");
|
|
108
|
+
}
|
|
109
|
+
GetPayloadField(name, fallback) {
|
|
110
|
+
const value = this.options[name];
|
|
111
|
+
if (!this.validatePayloadReservedFields) {
|
|
112
|
+
return value === false ? null : value || fallback;
|
|
113
|
+
}
|
|
114
|
+
if (value === false) return null;
|
|
115
|
+
if (value === undefined) return fallback;
|
|
116
|
+
if (typeof value === "string" && value) return value;
|
|
117
|
+
throw this.PayloadError("PAYLOAD_MARKER_CONFIGURATION", `${name} must be a non-empty string or false`);
|
|
118
|
+
}
|
|
119
|
+
ValidatePayloadConfiguration() {
|
|
120
|
+
if (!this.validatePayloadReservedFields) {
|
|
121
|
+
this.payloadReservedFields = null;
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
const fields = [["type", this.GetPayloadTypeField()], ["id", this.GetPayloadIdField()], ["reference", this.GetPayloadReferenceField()]];
|
|
125
|
+
const idField = this.GetPayloadIdField();
|
|
126
|
+
const referenceField = this.GetPayloadReferenceField();
|
|
127
|
+
const valuesField = this.includePayloadValuesField && idField ? this.GetPayloadValuesField() : null;
|
|
128
|
+
if (valuesField) fields.push(["values", valuesField]);
|
|
129
|
+
if (referenceField && !idField) {
|
|
130
|
+
throw this.PayloadError("PAYLOAD_MARKER_CONFIGURATION", "payloadReferenceField requires payloadIdField");
|
|
131
|
+
}
|
|
132
|
+
if (idField && this.includePayloadValuesField && !valuesField) {
|
|
133
|
+
throw this.PayloadError("PAYLOAD_MARKER_CONFIGURATION", "payloadIdField requires payloadValuesField for sequence identity");
|
|
134
|
+
}
|
|
135
|
+
const reserved = new Map();
|
|
136
|
+
for (const [role, field] of fields) {
|
|
137
|
+
if (!field) continue;
|
|
138
|
+
if (reserved.has(field)) {
|
|
139
|
+
throw this.PayloadError("PAYLOAD_MARKER_CONFIGURATION", `payload ${role} field "${field}" duplicates the ${reserved.get(field)} field`);
|
|
140
|
+
}
|
|
141
|
+
reserved.set(field, role);
|
|
142
|
+
}
|
|
143
|
+
this.payloadReservedFields = reserved;
|
|
144
|
+
}
|
|
145
|
+
AssertPayloadFieldAvailable(field) {
|
|
146
|
+
if (!this.validatePayloadReservedFields) return;
|
|
147
|
+
if (!this.payloadReservedFields) this.ValidatePayloadConfiguration();
|
|
148
|
+
const role = this.payloadReservedFields.get(field);
|
|
149
|
+
if (!role) return;
|
|
150
|
+
throw this.PayloadError("PAYLOAD_RESERVED_FIELD_COLLISION", `payload field "${field}" is reserved for the ${role} marker`);
|
|
151
|
+
}
|
|
152
|
+
AssignPayloadValues(targetObject, values) {
|
|
153
|
+
for (const [field, value] of Object.entries(values)) {
|
|
154
|
+
this.AssertPayloadFieldAvailable(field);
|
|
155
|
+
this.DefinePayloadProperty(targetObject, field, value);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
AssignPayloadReferenceId(targetObject, idField, referenceId) {
|
|
159
|
+
if (!Object.hasOwn(targetObject, idField)) {
|
|
160
|
+
this.DefinePayloadProperty(targetObject, idField, referenceId);
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
if (!this.validatePayloadReservedFields) return;
|
|
164
|
+
if (targetObject[idField] === referenceId) return;
|
|
165
|
+
throw this.PayloadError("PAYLOAD_RESERVED_FIELD_COLLISION", `payload ID field "${idField}" conflicts with reference ${referenceId}`);
|
|
166
|
+
}
|
|
167
|
+
PayloadError(code, message) {
|
|
168
|
+
const error = new TypeError(`${code}: ${message}`);
|
|
169
|
+
error.code = code;
|
|
170
|
+
return error;
|
|
171
|
+
}
|
|
172
|
+
DefinePayloadProperty(targetObject, field, value) {
|
|
173
|
+
Object.defineProperty(targetObject, field, {
|
|
174
|
+
value,
|
|
175
|
+
enumerable: true,
|
|
176
|
+
configurable: true,
|
|
177
|
+
writable: true
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
AssignRuntimeFieldValue(targetObject, target, value) {
|
|
181
|
+
if (target.unknown) {
|
|
182
|
+
targetObject[target.wireName] = value;
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
if (target.indexed) {
|
|
186
|
+
let current = targetObject[target.field.name];
|
|
187
|
+
if (!current || typeof current !== "object") {
|
|
188
|
+
current = Number.isInteger(target.index) ? [] : {};
|
|
189
|
+
targetObject[target.field.name] = current;
|
|
190
|
+
}
|
|
191
|
+
current[target.key] = this.NormalizeRuntimeFieldValue(value, target.field);
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
targetObject[target.field.name] = this.NormalizeRuntimeFieldValue(value, target.field);
|
|
195
|
+
}
|
|
196
|
+
AssignPayloadFieldValue(targetObject, target, value) {
|
|
197
|
+
this.AssertPayloadFieldAvailable(target.unknown ? target.wireName : target.field.name);
|
|
198
|
+
if (target.unknown) {
|
|
199
|
+
if (this.validatePayloadReservedFields) {
|
|
200
|
+
this.DefinePayloadProperty(targetObject, target.wireName, value);
|
|
201
|
+
} else {
|
|
202
|
+
targetObject[target.wireName] = value;
|
|
203
|
+
}
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
if (target.indexed) {
|
|
207
|
+
let current = this.validatePayloadReservedFields ? Object.hasOwn(targetObject, target.field.name) ? targetObject[target.field.name] : null : targetObject[target.field.name];
|
|
208
|
+
if (!current || typeof current !== "object") {
|
|
209
|
+
current = Number.isInteger(target.index) ? [] : {};
|
|
210
|
+
if (this.validatePayloadReservedFields) {
|
|
211
|
+
this.DefinePayloadProperty(targetObject, target.field.name, current);
|
|
212
|
+
} else {
|
|
213
|
+
targetObject[target.field.name] = current;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
current[target.key] = value;
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
if (this.validatePayloadReservedFields) {
|
|
220
|
+
this.DefinePayloadProperty(targetObject, target.field.name, value);
|
|
221
|
+
} else {
|
|
222
|
+
targetObject[target.field.name] = value;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
NormalizeRuntimeFieldValue(value, field) {
|
|
226
|
+
if (!field) return value;
|
|
227
|
+
|
|
228
|
+
// Object-graph fields already contain constructed instances. Preserve
|
|
229
|
+
// those identities and normalize only scalar/math leaf values.
|
|
230
|
+
const descriptor = normalizeCarbonTypeDescriptor(field);
|
|
231
|
+
const kind = descriptor.kind;
|
|
232
|
+
if (kind === CARBON_TYPE.ARRAY && Array.isArray(value)) return value;
|
|
233
|
+
if ((kind === CARBON_TYPE.OBJECT_REF || kind === CARBON_TYPE.STRUCT || kind === CARBON_TYPE.RAW_STRUCT || kind === CARBON_TYPE.UNKNOWN) && value && typeof value === "object") {
|
|
234
|
+
return value;
|
|
235
|
+
}
|
|
236
|
+
if (CjsBlueReader.isShapeIncompatibleMathArray(value, descriptor)) return value;
|
|
237
|
+
return normalizeCarbonValue(value, field);
|
|
238
|
+
}
|
|
239
|
+
ResolveSourceShape(kind) {
|
|
240
|
+
const registry = this.options.registry || null;
|
|
241
|
+
if (registry?.GetSourceShape) return registry.GetSourceShape(kind);
|
|
242
|
+
const sourceShapes = this.options.sourceShapes || null;
|
|
243
|
+
if (sourceShapes?.GetSourceShape) return sourceShapes.GetSourceShape(kind);
|
|
244
|
+
if (sourceShapes) {
|
|
245
|
+
const shape = sourceShapes instanceof Map ? sourceShapes.get(kind) : sourceShapes[kind];
|
|
246
|
+
if (shape) {
|
|
247
|
+
return this.schemaRegistry?.normalizeShape ? this.schemaRegistry.normalizeShape(shape) : shape;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
return this.schemaShapes.get(kind) || null;
|
|
251
|
+
}
|
|
252
|
+
ResolveClass(kind) {
|
|
253
|
+
if (!kind) return null;
|
|
254
|
+
const classes = this.options.classes || {};
|
|
255
|
+
const Registry = this.options.registry || this.defaultRegistry;
|
|
256
|
+
return classes[kind] || (Registry ? Registry.GetConstructor(kind) : null);
|
|
257
|
+
}
|
|
258
|
+
TransformPath(value) {
|
|
259
|
+
const handler = this.options.pathHandler;
|
|
260
|
+
return typeof handler === "function" ? handler(value) : value;
|
|
261
|
+
}
|
|
262
|
+
static isShapeIncompatibleMathArray(value, descriptor) {
|
|
263
|
+
const expectedLength = descriptor?.length;
|
|
264
|
+
return Array.isArray(value) && Number.isInteger(expectedLength) && value.length !== expectedLength;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
export { CjsBlueReader };
|
|
269
|
+
//# sourceMappingURL=CjsBlueReader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CjsBlueReader.js","sources":["../../../src/format/CjsBlueReader.js"],"sourcesContent":["import { resolveHydrationAdapter } from \"@carbonenginejs/core-types/hydration\";\nimport {\n CARBON_TYPE,\n normalizeCarbonTypeDescriptor,\n normalizeCarbonValue\n} from \"@carbonenginejs/core-types/types\";\n\nimport { CjsReader } from \"./CjsReader.js\";\n\n/**\n * Shared output and hydration backend for Blue persistence readers.\n *\n * Transports retain framing, source buffers, reference-token parsing, member\n * decoding, skip/recovery behavior, and format-specific metadata. This backend\n * owns common payload/runtime targets, reference emission, hydration adapter\n * phases, reports, and finalization. It also provides reusable class/shape,\n * descriptor assignment, and normalization helpers for transports that resolve\n * persisted fields through a schema. Red does not opt into that descriptor\n * path yet and retains its lenient named-field behavior.\n */\nexport class CjsBlueReader extends CjsReader\n{\n constructor(options = {}, config = {})\n {\n super({ ...options });\n\n this.schemaRegistry = config.schemaRegistry || null;\n this.schemaShapes = this.schemaRegistry\n ? this.schemaRegistry.createShapeMap(options.schema)\n : new Map();\n this.defaultRegistry = config.defaultRegistry || null;\n this.includeShapeContext = Boolean(config.includeShapeContext);\n this.includeSourceShape = Boolean(config.includeSourceShape);\n this.includeEmptyPayloadType = Boolean(config.includeEmptyPayloadType);\n this.requirePayloadReferenceTarget = Boolean(config.requirePayloadReferenceTarget);\n this.includePayloadValuesField = Boolean(config.includePayloadValuesField);\n this.validatePayloadReservedFields = Boolean(config.validatePayloadReservedFields);\n this.payloadReservedFields = null;\n this.adapter = resolveHydrationAdapter(options);\n this.hydrationOptions = {\n ...options,\n markDirty: false,\n skipUpdate: true,\n skipEvents: true\n };\n this.ResetBlueReadState();\n }\n\n ResetBlueReadState()\n {\n this.reports = [];\n this.runtimeInstances = [];\n }\n\n FinalizeRuntimeInstances()\n {\n for (const record of this.runtimeInstances)\n {\n this.adapter.finalize(\n record.instance,\n this.CreateRuntimeContext(record.kind, record.shape, false)\n );\n }\n }\n\n CreateRuntimeTarget(kind, shape = null)\n {\n const built = this.adapter.construct(\n kind,\n this.CreateRuntimeContext(kind, shape, true, this.options)\n );\n if (built !== undefined) return built;\n\n const ClassConstructor = this.ResolveClass(kind);\n if (ClassConstructor) return new ClassConstructor();\n\n return this.CreateRuntimeFallback(kind, shape);\n }\n\n CreateRuntimeFallback(kind, shape = null)\n {\n const target = { _sourceClassName: this.includeSourceShape ? kind : (kind || null) };\n if (this.includeSourceShape) target._sourceShape = shape || null;\n return target;\n }\n\n ApplyRuntimeValues(target, values, kind, shape = null)\n {\n this.adapter.applyValues(\n target,\n values,\n this.CreateRuntimeContext(kind, shape, true, this.hydrationOptions)\n );\n this.runtimeInstances.push({ instance: target, kind, shape });\n }\n\n CreateRuntimeContext(kind, shape, includeOptions, options = null)\n {\n const context = { kind };\n if (this.includeShapeContext) context.shape = shape;\n if (includeOptions) context.options = options;\n return context;\n }\n\n CreatePayloadTarget(kind)\n {\n const typeField = this.GetPayloadTypeField();\n return typeField && (kind || this.includeEmptyPayloadType) ? { [typeField]: kind } : {};\n }\n\n CreatePayloadReference(targetObject, referenceId)\n {\n const idField = this.GetPayloadIdField();\n const referenceField = this.GetPayloadReferenceField();\n\n if (idField && this.requirePayloadReferenceTarget)\n {\n this.AssignPayloadReferenceId(targetObject, idField, referenceId);\n }\n else if (idField && targetObject && typeof targetObject === \"object\")\n {\n this.AssignPayloadReferenceId(targetObject, idField, referenceId);\n }\n\n return referenceField ? { [referenceField]: referenceId } : targetObject;\n }\n\n GetPayloadTypeField()\n {\n return this.GetPayloadField(\"payloadTypeField\", \"_type\");\n }\n\n GetPayloadIdField()\n {\n return this.GetPayloadField(\"payloadIdField\", \"_id\");\n }\n\n GetPayloadReferenceField()\n {\n return this.GetPayloadField(\"payloadReferenceField\", \"_reference\");\n }\n\n GetPayloadValuesField()\n {\n return this.GetPayloadField(\"payloadValuesField\", \"_values\");\n }\n\n GetPayloadField(name, fallback)\n {\n const value = this.options[name];\n if (!this.validatePayloadReservedFields)\n {\n return value === false ? null : (value || fallback);\n }\n if (value === false) return null;\n if (value === undefined) return fallback;\n if (typeof value === \"string\" && value) return value;\n throw this.PayloadError(\n \"PAYLOAD_MARKER_CONFIGURATION\",\n `${name} must be a non-empty string or false`\n );\n }\n\n ValidatePayloadConfiguration()\n {\n if (!this.validatePayloadReservedFields)\n {\n this.payloadReservedFields = null;\n return;\n }\n\n const fields = [\n [ \"type\", this.GetPayloadTypeField() ],\n [ \"id\", this.GetPayloadIdField() ],\n [ \"reference\", this.GetPayloadReferenceField() ]\n ];\n const idField = this.GetPayloadIdField();\n const referenceField = this.GetPayloadReferenceField();\n const valuesField = this.includePayloadValuesField && idField\n ? this.GetPayloadValuesField()\n : null;\n if (valuesField) fields.push([ \"values\", valuesField ]);\n if (referenceField && !idField)\n {\n throw this.PayloadError(\n \"PAYLOAD_MARKER_CONFIGURATION\",\n \"payloadReferenceField requires payloadIdField\"\n );\n }\n if (idField && this.includePayloadValuesField && !valuesField)\n {\n throw this.PayloadError(\n \"PAYLOAD_MARKER_CONFIGURATION\",\n \"payloadIdField requires payloadValuesField for sequence identity\"\n );\n }\n\n const reserved = new Map();\n for (const [ role, field ] of fields)\n {\n if (!field) continue;\n if (reserved.has(field))\n {\n throw this.PayloadError(\n \"PAYLOAD_MARKER_CONFIGURATION\",\n `payload ${role} field \"${field}\" duplicates the ${reserved.get(field)} field`\n );\n }\n reserved.set(field, role);\n }\n this.payloadReservedFields = reserved;\n }\n\n AssertPayloadFieldAvailable(field)\n {\n if (!this.validatePayloadReservedFields) return;\n if (!this.payloadReservedFields) this.ValidatePayloadConfiguration();\n const role = this.payloadReservedFields.get(field);\n if (!role) return;\n throw this.PayloadError(\n \"PAYLOAD_RESERVED_FIELD_COLLISION\",\n `payload field \"${field}\" is reserved for the ${role} marker`\n );\n }\n\n AssignPayloadValues(targetObject, values)\n {\n for (const [ field, value ] of Object.entries(values))\n {\n this.AssertPayloadFieldAvailable(field);\n this.DefinePayloadProperty(targetObject, field, value);\n }\n }\n\n AssignPayloadReferenceId(targetObject, idField, referenceId)\n {\n if (!Object.hasOwn(targetObject, idField))\n {\n this.DefinePayloadProperty(targetObject, idField, referenceId);\n return;\n }\n if (!this.validatePayloadReservedFields) return;\n if (targetObject[idField] === referenceId) return;\n throw this.PayloadError(\n \"PAYLOAD_RESERVED_FIELD_COLLISION\",\n `payload ID field \"${idField}\" conflicts with reference ${referenceId}`\n );\n }\n\n PayloadError(code, message)\n {\n const error = new TypeError(`${code}: ${message}`);\n error.code = code;\n return error;\n }\n\n DefinePayloadProperty(targetObject, field, value)\n {\n Object.defineProperty(targetObject, field, {\n value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n }\n\n AssignRuntimeFieldValue(targetObject, target, value)\n {\n if (target.unknown)\n {\n targetObject[target.wireName] = 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 this.AssertPayloadFieldAvailable(target.unknown ? target.wireName : target.field.name);\n if (target.unknown)\n {\n if (this.validatePayloadReservedFields)\n {\n this.DefinePayloadProperty(targetObject, target.wireName, value);\n }\n else\n {\n targetObject[target.wireName] = value;\n }\n return;\n }\n\n if (target.indexed)\n {\n let current = this.validatePayloadReservedFields\n ? (Object.hasOwn(targetObject, target.field.name) ? targetObject[target.field.name] : null)\n : targetObject[target.field.name];\n if (!current || typeof current !== \"object\")\n {\n current = Number.isInteger(target.index) ? [] : {};\n if (this.validatePayloadReservedFields)\n {\n this.DefinePayloadProperty(targetObject, target.field.name, current);\n }\n else\n {\n targetObject[target.field.name] = current;\n }\n }\n\n current[target.key] = value;\n return;\n }\n\n if (this.validatePayloadReservedFields)\n {\n this.DefinePayloadProperty(targetObject, target.field.name, value);\n }\n else\n {\n targetObject[target.field.name] = value;\n }\n }\n\n NormalizeRuntimeFieldValue(value, field)\n {\n if (!field) return value;\n\n // Object-graph fields already contain constructed instances. Preserve\n // those identities and normalize only 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 (CjsBlueReader.isShapeIncompatibleMathArray(value, descriptor)) return value;\n\n return normalizeCarbonValue(value, field);\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)\n {\n return this.schemaRegistry?.normalizeShape\n ? this.schemaRegistry.normalizeShape(shape)\n : shape;\n }\n }\n\n return this.schemaShapes.get(kind) || null;\n }\n\n ResolveClass(kind)\n {\n if (!kind) return null;\n\n const classes = this.options.classes || {};\n const Registry = this.options.registry || this.defaultRegistry;\n return classes[kind] || (Registry ? Registry.GetConstructor(kind) : null);\n }\n\n TransformPath(value)\n {\n const handler = this.options.pathHandler;\n return typeof handler === \"function\" ? handler(value) : value;\n }\n\n static isShapeIncompatibleMathArray(value, descriptor)\n {\n const expectedLength = descriptor?.length;\n return Array.isArray(value)\n && Number.isInteger(expectedLength)\n && value.length !== expectedLength;\n }\n}\n\nexport default CjsBlueReader;\n"],"names":["CjsBlueReader","CjsReader","constructor","options","config","schemaRegistry","schemaShapes","createShapeMap","schema","Map","defaultRegistry","includeShapeContext","Boolean","includeSourceShape","includeEmptyPayloadType","requirePayloadReferenceTarget","includePayloadValuesField","validatePayloadReservedFields","payloadReservedFields","adapter","resolveHydrationAdapter","hydrationOptions","markDirty","skipUpdate","skipEvents","ResetBlueReadState","reports","runtimeInstances","FinalizeRuntimeInstances","record","finalize","instance","CreateRuntimeContext","kind","shape","CreateRuntimeTarget","built","construct","undefined","ClassConstructor","ResolveClass","CreateRuntimeFallback","target","_sourceClassName","_sourceShape","ApplyRuntimeValues","values","applyValues","push","includeOptions","context","CreatePayloadTarget","typeField","GetPayloadTypeField","CreatePayloadReference","targetObject","referenceId","idField","GetPayloadIdField","referenceField","GetPayloadReferenceField","AssignPayloadReferenceId","GetPayloadField","GetPayloadValuesField","name","fallback","value","PayloadError","ValidatePayloadConfiguration","fields","valuesField","reserved","role","field","has","get","set","AssertPayloadFieldAvailable","AssignPayloadValues","Object","entries","DefinePayloadProperty","hasOwn","code","message","error","TypeError","defineProperty","enumerable","configurable","writable","AssignRuntimeFieldValue","unknown","wireName","indexed","current","Number","isInteger","index","key","NormalizeRuntimeFieldValue","AssignPayloadFieldValue","descriptor","normalizeCarbonTypeDescriptor","CARBON_TYPE","ARRAY","Array","isArray","OBJECT_REF","STRUCT","RAW_STRUCT","UNKNOWN","isShapeIncompatibleMathArray","normalizeCarbonValue","ResolveSourceShape","registry","GetSourceShape","sourceShapes","normalizeShape","classes","Registry","GetConstructor","TransformPath","handler","pathHandler","expectedLength","length"],"mappings":"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"}
|