@carbonenginejs/runtime-resource 0.9.2 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE +3 -2
- package/README.md +47 -6
- package/dist/CjsMotherLode.js +88 -88
- package/dist/CjsMotherLode.js.map +1 -1
- package/dist/CjsResMan.js +717 -228
- package/dist/CjsResMan.js.map +1 -1
- package/dist/CjsResManFetchProvider.js +94 -0
- package/dist/CjsResManFetchProvider.js.map +1 -0
- package/dist/{CjsResManQueue.js → CjsResManWorkQueue.js} +112 -25
- package/dist/CjsResManWorkQueue.js.map +1 -0
- package/dist/format/CjsBlueReader.js +89 -0
- package/dist/format/CjsBlueReader.js.map +1 -1
- package/dist/format/CjsFormat.js +42 -16
- package/dist/format/CjsFormat.js.map +1 -1
- package/dist/format/CjsReader.js +4 -0
- package/dist/format/CjsReader.js.map +1 -1
- package/dist/format/CjsResourceProbe.js +2 -0
- package/dist/format/CjsResourceProbe.js.map +1 -1
- package/dist/format/effect/effectPermutationGraph.js +257 -0
- package/dist/format/effect/effectPermutationGraph.js.map +1 -0
- package/dist/format/effect/effectReflectionPackage.js +636 -0
- package/dist/format/effect/effectReflectionPackage.js.map +1 -0
- package/dist/format/effect/sha256.js +114 -0
- package/dist/format/effect/sha256.js.map +1 -0
- package/dist/format/payloadContract.js +20 -0
- package/dist/format/payloadContract.js.map +1 -1
- package/dist/formats/black/CjsBlackFormat.js +15 -1
- package/dist/formats/black/CjsBlackFormat.js.map +1 -1
- package/dist/formats/black/core/CjsBlackBinaryReader.js +103 -0
- package/dist/formats/black/core/CjsBlackBinaryReader.js.map +1 -1
- package/dist/formats/black/core/CjsBlackPropertyReaders.js +61 -0
- package/dist/formats/black/core/CjsBlackPropertyReaders.js.map +1 -1
- package/dist/formats/black/core/CjsBlackReader.js +125 -0
- package/dist/formats/black/core/CjsBlackReader.js.map +1 -1
- package/dist/formats/black/core/CjsBlackSchemaRegistry.js +103 -0
- package/dist/formats/black/core/CjsBlackSchemaRegistry.js.map +1 -1
- package/dist/formats/black/core/helpers.js +17 -0
- package/dist/formats/black/core/helpers.js.map +1 -1
- package/dist/formats/bnk/CjsBnkFormat.js +8 -0
- package/dist/formats/bnk/CjsBnkFormat.js.map +1 -1
- package/dist/formats/bnk/core/helpers.js +20 -0
- package/dist/formats/bnk/core/helpers.js.map +1 -1
- package/dist/formats/bnk/core/musicNodes.js +40 -3
- package/dist/formats/bnk/core/musicNodes.js.map +1 -1
- package/dist/formats/bnk/core/soundbanksInfo.js +2 -0
- package/dist/formats/bnk/core/soundbanksInfo.js.map +1 -1
- package/dist/formats/cmf/core/binary.js +71 -0
- package/dist/formats/cmf/core/binary.js.map +1 -1
- package/dist/formats/cmf/core/buffers.js +4 -0
- package/dist/formats/cmf/core/buffers.js.map +1 -1
- package/dist/formats/cmf/core/helpers.js +31 -0
- package/dist/formats/cmf/core/helpers.js.map +1 -1
- package/dist/formats/cmf/core/schema.js +10 -0
- package/dist/formats/cmf/core/schema.js.map +1 -1
- package/dist/formats/cmf/core/shared.js +9 -0
- package/dist/formats/cmf/core/shared.js.map +1 -1
- package/dist/formats/cmf/core/writer.js +54 -0
- package/dist/formats/cmf/core/writer.js.map +1 -1
- package/dist/formats/dds/core/bc6h.js +10 -0
- package/dist/formats/dds/core/bc6h.js.map +1 -1
- package/dist/formats/dds/core/bc7.js +16 -0
- package/dist/formats/dds/core/bc7.js.map +1 -1
- package/dist/formats/dds/core/helpers.js +47 -0
- package/dist/formats/dds/core/helpers.js.map +1 -1
- package/dist/formats/dxbc/CjsDxbcFormat.js +142 -0
- package/dist/formats/dxbc/CjsDxbcFormat.js.map +1 -0
- package/dist/formats/dxbc/core/DxbcReader.js +266 -0
- package/dist/formats/dxbc/core/DxbcReader.js.map +1 -0
- package/dist/formats/dxbc/core/container.js +169 -0
- package/dist/formats/dxbc/core/container.js.map +1 -0
- package/dist/formats/dxbc/core/decoder.js +789 -0
- package/dist/formats/dxbc/core/decoder.js.map +1 -0
- package/dist/formats/dxbc/core/errors.js +19 -0
- package/dist/formats/dxbc/core/errors.js.map +1 -0
- package/dist/formats/dxbc/core/helpers.js +220 -0
- package/dist/formats/dxbc/core/helpers.js.map +1 -0
- package/dist/formats/dxbc/core/opcodes.js +45 -0
- package/dist/formats/dxbc/core/opcodes.js.map +1 -0
- package/dist/formats/dxbc/core/program.js +91 -0
- package/dist/formats/dxbc/core/program.js.map +1 -0
- package/dist/formats/dxbc/core/signature.js +172 -0
- package/dist/formats/dxbc/core/signature.js.map +1 -0
- package/dist/formats/dxbc/index.js +2 -0
- package/dist/formats/dxbc/index.js.map +1 -0
- package/dist/formats/fbx/core/helpers.js +21 -0
- package/dist/formats/fbx/core/helpers.js.map +1 -1
- package/dist/formats/flac/CjsFlacFormat.js +49 -0
- package/dist/formats/flac/CjsFlacFormat.js.map +1 -1
- package/dist/formats/flac/core/helpers.js +20 -0
- package/dist/formats/flac/core/helpers.js.map +1 -1
- package/dist/formats/gif/CjsGifFormat.js +49 -0
- package/dist/formats/gif/CjsGifFormat.js.map +1 -1
- package/dist/formats/gif/core/helpers.js +20 -0
- package/dist/formats/gif/core/helpers.js.map +1 -1
- package/dist/formats/gltf/core/helpers.js +15 -0
- package/dist/formats/gltf/core/helpers.js.map +1 -1
- package/dist/formats/gltf/core/parser.js +13 -0
- package/dist/formats/gltf/core/parser.js.map +1 -1
- package/dist/formats/gltf/core/targets.js +10 -0
- package/dist/formats/gltf/core/targets.js.map +1 -1
- package/dist/formats/gr2/core/bitknit2.js +2 -0
- package/dist/formats/gr2/core/bitknit2.js.map +1 -1
- package/dist/formats/gr2/core/helpers.js +20 -0
- package/dist/formats/gr2/core/helpers.js.map +1 -1
- package/dist/formats/gr2/core/targets.js +10 -0
- package/dist/formats/gr2/core/targets.js.map +1 -1
- package/dist/formats/hlsl/CjsHlslFormat.js +254 -0
- package/dist/formats/hlsl/CjsHlslFormat.js.map +1 -0
- package/dist/formats/hlsl/core/HlslBinaryUtils.js +15 -0
- package/dist/formats/hlsl/core/HlslBinaryUtils.js.map +1 -0
- package/dist/formats/hlsl/core/HlslEffectReadError.js +19 -0
- package/dist/formats/hlsl/core/HlslEffectReadError.js.map +1 -0
- package/dist/formats/hlsl/core/HlslEffectStateManager.js +130 -0
- package/dist/formats/hlsl/core/HlslEffectStateManager.js.map +1 -0
- package/dist/formats/hlsl/core/HlslReader.js +266 -0
- package/dist/formats/hlsl/core/HlslReader.js.map +1 -0
- package/dist/formats/hlsl/core/HlslRenderStateSetup.js +37 -0
- package/dist/formats/hlsl/core/HlslRenderStateSetup.js.map +1 -0
- package/dist/formats/hlsl/core/HlslResourceSetDescription.js +94 -0
- package/dist/formats/hlsl/core/HlslResourceSetDescription.js.map +1 -0
- package/dist/formats/hlsl/core/HlslShaderBytecode.js +44 -0
- package/dist/formats/hlsl/core/HlslShaderBytecode.js.map +1 -0
- package/dist/formats/hlsl/core/analysis.js +51 -0
- package/dist/formats/hlsl/core/analysis.js.map +1 -0
- package/dist/formats/hlsl/core/helpers.js +270 -0
- package/dist/formats/hlsl/core/helpers.js.map +1 -0
- package/dist/formats/hlsl/core/json.js +284 -0
- package/dist/formats/hlsl/core/json.js.map +1 -0
- package/dist/formats/hlsl/core/metadata.js +327 -0
- package/dist/formats/hlsl/core/metadata.js.map +1 -0
- package/dist/formats/hlsl/core/portableReflection.js +848 -0
- package/dist/formats/hlsl/core/portableReflection.js.map +1 -0
- package/dist/formats/hlsl/core/render-states.js +280 -0
- package/dist/formats/hlsl/core/render-states.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/HlslRenderContextEnum.js +43 -0
- package/dist/formats/hlsl/core/tr2/HlslRenderContextEnum.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js +294 -0
- package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/resources/HlslShaderPermutation.js +33 -0
- package/dist/formats/hlsl/core/tr2/resources/HlslShaderPermutation.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js +416 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectConstant.js +40 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectConstant.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js +742 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectLibrary.js +52 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectLibrary.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectParameterAnnotation.js +38 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectParameterAnnotation.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectResource.js +50 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectResource.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js +86 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectTechnique.js +31 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectTechnique.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslPass.js +42 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslPass.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslSamplerDescription.js +55 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslSamplerDescription.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslSamplerSetup.js +29 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslSamplerSetup.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslShader.js +220 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslShader.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslShaderOption.js +30 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslShaderOption.js.map +1 -0
- package/dist/formats/hlsl/index.js +2 -0
- package/dist/formats/hlsl/index.js.map +1 -0
- package/dist/formats/hlsl/portable.js +2 -0
- package/dist/formats/hlsl/portable.js.map +1 -0
- package/dist/formats/index.js +4 -0
- package/dist/formats/index.js.map +1 -1
- package/dist/formats/jpeg/core/helpers.js +52 -0
- package/dist/formats/jpeg/core/helpers.js.map +1 -1
- package/dist/formats/jpeg/core/jpeg.js +93 -0
- package/dist/formats/jpeg/core/jpeg.js.map +1 -1
- package/dist/formats/mp3/core/helpers.js +37 -0
- package/dist/formats/mp3/core/helpers.js.map +1 -1
- package/dist/formats/mp4/core/helpers.js +35 -0
- package/dist/formats/mp4/core/helpers.js.map +1 -1
- package/dist/formats/ogg/CjsOggFormat.js +49 -0
- package/dist/formats/ogg/CjsOggFormat.js.map +1 -1
- package/dist/formats/ogg/core/helpers.js +23 -0
- package/dist/formats/ogg/core/helpers.js.map +1 -1
- package/dist/formats/ogg/core/vorbis.js +13 -0
- package/dist/formats/ogg/core/vorbis.js.map +1 -1
- package/dist/formats/png/core/helpers.js +52 -0
- package/dist/formats/png/core/helpers.js.map +1 -1
- package/dist/formats/red/CjsRedFormat.js +2 -0
- package/dist/formats/red/CjsRedFormat.js.map +1 -1
- package/dist/formats/red/core/CjsRedReader.js +52 -0
- package/dist/formats/red/core/CjsRedReader.js.map +1 -1
- package/dist/formats/red/core/helpers.js +19 -0
- package/dist/formats/red/core/helpers.js.map +1 -1
- package/dist/formats/stl/core/stl.js +8 -0
- package/dist/formats/stl/core/stl.js.map +1 -1
- package/dist/formats/stl/core/targets.js +10 -0
- package/dist/formats/stl/core/targets.js.map +1 -1
- package/dist/formats/tga/core/helpers.js +47 -0
- package/dist/formats/tga/core/helpers.js.map +1 -1
- package/dist/formats/wav/core/helpers.js +37 -0
- package/dist/formats/wav/core/helpers.js.map +1 -1
- package/dist/formats/webgl/CjsWebglFormat.js +221 -0
- package/dist/formats/webgl/CjsWebglFormat.js.map +1 -0
- package/dist/formats/webgl/core/cewg/CewgPackage.js +339 -0
- package/dist/formats/webgl/core/cewg/CewgPackage.js.map +1 -0
- package/dist/formats/webgl/core/cewg/CewgPackageBuilder.js +104 -0
- package/dist/formats/webgl/core/cewg/CewgPackageBuilder.js.map +1 -0
- package/dist/formats/webgl/core/cewg/binary.js +101 -0
- package/dist/formats/webgl/core/cewg/binary.js.map +1 -0
- package/dist/formats/webgl/core/cewgCompleteness.js +81 -0
- package/dist/formats/webgl/core/cewgCompleteness.js.map +1 -0
- package/dist/formats/webgl/core/effectPackage.js +789 -0
- package/dist/formats/webgl/core/effectPackage.js.map +1 -0
- package/dist/formats/webgl/core/effectPackageValidation.js +331 -0
- package/dist/formats/webgl/core/effectPackageValidation.js.map +1 -0
- package/dist/formats/webgl/core/errors.js +27 -0
- package/dist/formats/webgl/core/errors.js.map +1 -0
- package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js +2678 -0
- package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -0
- package/dist/formats/webgl/core/glsl/DxbcGlslHelpers.js +89 -0
- package/dist/formats/webgl/core/glsl/DxbcGlslHelpers.js.map +1 -0
- package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +428 -0
- package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -0
- package/dist/formats/webgl/core/helpers.js +306 -0
- package/dist/formats/webgl/core/helpers.js.map +1 -0
- package/dist/formats/webgl/index.js +2 -0
- package/dist/formats/webgl/index.js.map +1 -0
- package/dist/formats/webgpu/CjsWebgpuFormat.js +376 -0
- package/dist/formats/webgpu/CjsWebgpuFormat.js.map +1 -0
- package/dist/formats/webgpu/core/cewgpu/CewgpuPackage.js +415 -0
- package/dist/formats/webgpu/core/cewgpu/CewgpuPackage.js.map +1 -0
- package/dist/formats/webgpu/core/cewgpu/CewgpuPackageBuilder.js +100 -0
- package/dist/formats/webgpu/core/cewgpu/CewgpuPackageBuilder.js.map +1 -0
- package/dist/formats/webgpu/core/cewgpu/binary.js +93 -0
- package/dist/formats/webgpu/core/cewgpu/binary.js.map +1 -0
- package/dist/formats/webgpu/core/cewgpu/tags.js +17 -0
- package/dist/formats/webgpu/core/cewgpu/tags.js.map +1 -0
- package/dist/formats/webgpu/core/effectAnalysis.js +82 -0
- package/dist/formats/webgpu/core/effectAnalysis.js.map +1 -0
- package/dist/formats/webgpu/core/effectBackendBodySet.js +305 -0
- package/dist/formats/webgpu/core/effectBackendBodySet.js.map +1 -0
- package/dist/formats/webgpu/core/effectPackageValidation.js +1078 -0
- package/dist/formats/webgpu/core/effectPackageValidation.js.map +1 -0
- package/dist/formats/webgpu/core/errors.js +20 -0
- package/dist/formats/webgpu/core/errors.js.map +1 -0
- package/dist/formats/webgpu/core/helpers.js +448 -0
- package/dist/formats/webgpu/core/helpers.js.map +1 -0
- package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js +223 -0
- package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js.map +1 -0
- package/dist/formats/webgpu/core/ir/buildControlFlow.js +220 -0
- package/dist/formats/webgpu/core/ir/buildControlFlow.js.map +1 -0
- package/dist/formats/webgpu/core/ir/indexableTemps.js +137 -0
- package/dist/formats/webgpu/core/ir/indexableTemps.js.map +1 -0
- package/dist/formats/webgpu/core/ir/inferValueTypes.js +454 -0
- package/dist/formats/webgpu/core/ir/inferValueTypes.js.map +1 -0
- package/dist/formats/webgpu/core/ir/lowerDxbcToIr.js +494 -0
- package/dist/formats/webgpu/core/ir/lowerDxbcToIr.js.map +1 -0
- package/dist/formats/webgpu/core/ir/resolveRegisterFlow.js +177 -0
- package/dist/formats/webgpu/core/ir/resolveRegisterFlow.js.map +1 -0
- package/dist/formats/webgpu/core/ir/sourceLanes.js +61 -0
- package/dist/formats/webgpu/core/ir/sourceLanes.js.map +1 -0
- package/dist/formats/webgpu/core/packageEffect.js +300 -0
- package/dist/formats/webgpu/core/packageEffect.js.map +1 -0
- package/dist/formats/webgpu/core/packageEffectSelection.js +164 -0
- package/dist/formats/webgpu/core/packageEffectSelection.js.map +1 -0
- package/dist/formats/webgpu/core/packageMetadata.js +8 -0
- package/dist/formats/webgpu/core/packageMetadata.js.map +1 -0
- package/dist/formats/webgpu/core/schema.js +4 -0
- package/dist/formats/webgpu/core/schema.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js +275 -0
- package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js +182 -0
- package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/buildWgslSet.js +324 -0
- package/dist/formats/webgpu/core/wgsl/buildWgslSet.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/emitWgsl.js +356 -0
- package/dist/formats/webgpu/core/wgsl/emitWgsl.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/hoistEscapingValues.js +77 -0
- package/dist/formats/webgpu/core/wgsl/hoistEscapingValues.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerBindingLayout.js +451 -0
- package/dist/formats/webgpu/core/wgsl/lowerBindingLayout.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js +754 -0
- package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js +457 -0
- package/dist/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerFragmentProgram.js +1572 -0
- package/dist/formats/webgpu/core/wgsl/lowerFragmentProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerMergeHistogramsComputeProgram.js +659 -0
- package/dist/formats/webgpu/core/wgsl/lowerMergeHistogramsComputeProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerParticleClearComputePrograms.js +734 -0
- package/dist/formats/webgpu/core/wgsl/lowerParticleClearComputePrograms.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerParticleEmitComputeProgram.js +583 -0
- package/dist/formats/webgpu/core/wgsl/lowerParticleEmitComputeProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerSkinVerticesComputeProgram.js +621 -0
- package/dist/formats/webgpu/core/wgsl/lowerSkinVerticesComputeProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerSortComputeProgram.js +824 -0
- package/dist/formats/webgpu/core/wgsl/lowerSortComputeProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerSortInnerComputeProgram.js +697 -0
- package/dist/formats/webgpu/core/wgsl/lowerSortInnerComputeProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerSortStepComputeProgram.js +559 -0
- package/dist/formats/webgpu/core/wgsl/lowerSortStepComputeProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerVertexProgram.js +1328 -0
- package/dist/formats/webgpu/core/wgsl/lowerVertexProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/particleEmitSemanticDigest.js +110 -0
- package/dist/formats/webgpu/core/wgsl/particleEmitSemanticDigest.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/precisionControls.js +55 -0
- package/dist/formats/webgpu/core/wgsl/precisionControls.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/selectionPlans.js +758 -0
- package/dist/formats/webgpu/core/wgsl/selectionPlans.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/uniformity.js +78 -0
- package/dist/formats/webgpu/core/wgsl/uniformity.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/validateExactComputeIr.js +196 -0
- package/dist/formats/webgpu/core/wgsl/validateExactComputeIr.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/validateHandleOperand.js +37 -0
- package/dist/formats/webgpu/core/wgsl/validateHandleOperand.js.map +1 -0
- package/dist/formats/webgpu/index.js +2 -0
- package/dist/formats/webgpu/index.js.map +1 -0
- package/dist/formats/webm/core/helpers.js +35 -0
- package/dist/formats/webm/core/helpers.js.map +1 -1
- package/dist/formats/webp/CjsWebpFormat.js +49 -0
- package/dist/formats/webp/CjsWebpFormat.js.map +1 -1
- package/dist/formats/webp/core/helpers.js +23 -0
- package/dist/formats/webp/core/helpers.js.map +1 -1
- package/dist/formats/wem/CjsWemFormat.js +8 -0
- package/dist/formats/wem/CjsWemFormat.js.map +1 -1
- package/dist/formats/wem/core/bitStream.js +2 -0
- package/dist/formats/wem/core/bitStream.js.map +1 -1
- package/dist/formats/wem/core/helpers.js +20 -0
- package/dist/formats/wem/core/helpers.js.map +1 -1
- package/dist/formats/yaml/CjsYamlFormat.js +45 -0
- package/dist/formats/yaml/CjsYamlFormat.js.map +1 -1
- package/dist/formats/yaml/core/CjsYamlReader.js +91 -0
- package/dist/formats/yaml/core/CjsYamlReader.js.map +1 -1
- package/dist/formats/yaml/core/helpers.js +10 -0
- package/dist/formats/yaml/core/helpers.js.map +1 -1
- package/dist/index.js +56 -43
- package/dist/index.js.map +1 -1
- package/dist/{CjsResource.js → resource/CjsResource.js} +232 -17
- package/dist/resource/CjsResource.js.map +1 -0
- package/dist/{resources → resource}/Tr2LightProfileRes.js +4 -3
- package/dist/resource/Tr2LightProfileRes.js.map +1 -0
- package/dist/{resources → resource/audio}/AudioGeometryResData.js +1 -1
- package/dist/resource/audio/AudioGeometryResData.js.map +1 -0
- package/dist/resource/audio/CjsAudioBufferRes.js +86 -0
- package/dist/resource/audio/CjsAudioBufferRes.js.map +1 -0
- package/dist/resource/audio/CjsAudioRes.js +213 -0
- package/dist/resource/audio/CjsAudioRes.js.map +1 -0
- package/dist/resource/audio/index.js +4 -0
- package/dist/resource/audio/index.js.map +1 -0
- package/dist/{resources → resource/geometry}/MeshDecalData.js +1 -1
- package/dist/resource/geometry/MeshDecalData.js.map +1 -0
- package/dist/{resources → resource/geometry}/MeshDecalLodData.js +1 -1
- package/dist/resource/geometry/MeshDecalLodData.js.map +1 -0
- package/dist/resource/geometry/TriGeometryRes.js +656 -0
- package/dist/resource/geometry/TriGeometryRes.js.map +1 -0
- package/dist/{resources → resource/geometry}/TriGeometryResAreaData.js +1 -1
- package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -0
- package/dist/{resources → resource/geometry}/TriGeometryResJointData.js +1 -1
- package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -0
- package/dist/{resources → resource/geometry}/TriGeometryResLodData.js +1 -1
- package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -0
- package/dist/{resources → resource/geometry}/TriGeometryResMeshData.js +1 -1
- package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -0
- package/dist/{resources → resource/geometry}/TriGeometryResSkeletonData.js +1 -1
- package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -0
- package/dist/{resources → resource/geometry}/TriJointBinding.js +1 -1
- package/dist/resource/geometry/TriJointBinding.js.map +1 -0
- package/dist/{resources → resource/geometry}/TriMorphTargetGeometryConstants.js +1 -1
- package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -0
- package/dist/{resources → resource/geometry}/TriRtGeometryConstants.js +1 -1
- package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -0
- package/dist/{resources → resource/geometry/granny}/GStateBindingCallbackData.js +1 -1
- package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -0
- package/dist/{resources → resource/geometry/granny}/Tr2GrannyIntersectionResult.js +1 -1
- package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -0
- package/dist/{resources → resource/geometry/granny}/Tr2GrannyStateRes.js +6 -5
- package/dist/resource/geometry/granny/Tr2GrannyStateRes.js.map +1 -0
- package/dist/{resources → resource/geometry/granny}/TriGrannyRes.js +6 -5
- package/dist/resource/geometry/granny/TriGrannyRes.js.map +1 -0
- package/dist/{resources → resource/geometry/granny}/enums.js +1 -9
- package/dist/resource/geometry/granny/enums.js.map +1 -0
- package/dist/resource/geometry/granny/index.js +6 -0
- package/dist/resource/geometry/granny/index.js.map +1 -0
- package/dist/resource/geometry/index.js +17 -0
- package/dist/resource/geometry/index.js.map +1 -0
- package/dist/resource/index.js +52 -0
- package/dist/resource/index.js.map +1 -0
- package/dist/resource/resourceBoundary.js +64 -0
- package/dist/resource/resourceBoundary.js.map +1 -0
- package/dist/resource/shader/Tr2EffectRes.js +429 -0
- package/dist/resource/shader/Tr2EffectRes.js.map +1 -0
- package/dist/resource/shader/Tr2MaterialArea.js +34 -0
- package/dist/resource/shader/Tr2MaterialArea.js.map +1 -0
- package/dist/resource/shader/Tr2MaterialMesh.js +30 -0
- package/dist/resource/shader/Tr2MaterialMesh.js.map +1 -0
- package/dist/resource/shader/Tr2MaterialRes.js +35 -0
- package/dist/resource/shader/Tr2MaterialRes.js.map +1 -0
- package/dist/resource/shader/Tr2Shader.js +256 -0
- package/dist/resource/shader/Tr2Shader.js.map +1 -0
- package/dist/resource/shader/Tr2ShaderPermutation.js +47 -0
- package/dist/resource/shader/Tr2ShaderPermutation.js.map +1 -0
- package/dist/resource/shader/index.js +17 -0
- package/dist/resource/shader/index.js.map +1 -0
- package/dist/resource/shader/portable.js +33 -0
- package/dist/resource/shader/portable.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2EffectConstant.js +135 -0
- package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2EffectDefine.js +28 -0
- package/dist/resource/shader/reflection/Tr2EffectDefine.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2EffectDescription.js +107 -0
- package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js +145 -0
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +103 -0
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2EffectResource.js +84 -0
- package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js +239 -0
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js +66 -0
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2Pass.js +109 -0
- package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -0
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js +75 -0
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -0
- package/dist/{texture → resource/texture}/CjsTextureArrayRes.js +83 -6
- package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -0
- package/dist/{texture/CjsTextureParameterProxy.js → resource/texture/CjsTextureArrayResParameterProxy.js} +56 -10
- package/dist/resource/texture/CjsTextureArrayResParameterProxy.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2ImageRes.js +6 -4
- package/dist/resource/texture/Tr2ImageRes.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TextureLodManager.js +3 -1
- package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TextureLodUpdateRequest.js +1 -1
- package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TexturePackChannel.js +1 -1
- package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TexturePipeline.js +6 -4
- package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TexturePipelineParams.js +1 -1
- package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TexturePipelineStepCompress.js +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TexturePipelineStepGenerateMips.js +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TexturePipelineStepLimitSize.js +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TexturePipelineStepLoad.js +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TexturePipelineStepPack.js +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -0
- package/dist/{resources → resource/texture}/TriTextureRes.js +42 -26
- package/dist/resource/texture/TriTextureRes.js.map +1 -0
- package/dist/resource/texture/index.js +15 -0
- package/dist/resource/texture/index.js.map +1 -0
- package/dist/{resources → resource/texture}/texturePipelineBehavior.js +59 -59
- package/dist/resource/texture/texturePipelineBehavior.js.map +1 -0
- package/dist/worker/CjsResManMainThreadLoader.js +87 -0
- package/dist/worker/CjsResManMainThreadLoader.js.map +1 -0
- package/dist/worker/CjsResManWorker.js +217 -0
- package/dist/worker/CjsResManWorker.js.map +1 -0
- package/dist/worker/CjsResManWorkerLoader.js +434 -0
- package/dist/worker/CjsResManWorkerLoader.js.map +1 -0
- package/dist/worker/protocol.js +12 -0
- package/dist/worker/protocol.js.map +1 -0
- package/docs/README.md +16 -3
- package/docs/architecture.md +39 -16
- package/docs/concepts/resource-lifecycle.md +2 -1
- package/docs/formats/README.md +8 -0
- package/docs/formats/provenance.md +11 -3
- package/docs/reference/classes/README.md +6 -4
- package/docs/reference/classes/audio.md +30 -0
- package/docs/reference/classes/core.md +31 -11
- package/docs/reference/classes/formats.md +440 -0
- package/docs/reference/classes/resources.md +151 -41
- package/docs/reference/classes/texture.md +7 -7
- package/docs/reference/motherlode-cache.md +17 -0
- package/docs/reference/queues.md +9 -1
- package/docs/reference/workers.md +135 -0
- package/docs/roadmap.md +27 -1
- package/format-notices/dxbc/LICENSE +21 -0
- package/format-notices/dxbc/NOTICE +20 -0
- package/format-notices/hlsl/LICENSE +21 -0
- package/format-notices/hlsl/NOTICE +25 -0
- package/format-notices/webgl/LICENSE +21 -0
- package/format-notices/webgl/NOTICE +35 -0
- package/format-notices/webgpu/LICENSE +21 -0
- package/format-notices/webgpu/NOTICE +31 -0
- package/package.json +13 -1
- package/dist/CjsResManQueue.js.map +0 -1
- package/dist/CjsResource.js.map +0 -1
- package/dist/CjsResourceSource.js +0 -68
- package/dist/CjsResourceSource.js.map +0 -1
- package/dist/resourcePath.js +0 -18
- package/dist/resourcePath.js.map +0 -1
- package/dist/resourceStates.js +0 -9
- package/dist/resourceStates.js.map +0 -1
- package/dist/resources/AudioGeometryResData.js.map +0 -1
- package/dist/resources/GStateBindingCallbackData.js.map +0 -1
- package/dist/resources/MeshDecalData.js.map +0 -1
- package/dist/resources/MeshDecalLodData.js.map +0 -1
- package/dist/resources/Tr2EffectRes.js +0 -71
- package/dist/resources/Tr2EffectRes.js.map +0 -1
- package/dist/resources/Tr2GrannyIntersectionResult.js.map +0 -1
- package/dist/resources/Tr2GrannyStateRes.js.map +0 -1
- package/dist/resources/Tr2ImageRes.js.map +0 -1
- package/dist/resources/Tr2LightProfileRes.js.map +0 -1
- package/dist/resources/Tr2MaterialArea.js +0 -34
- package/dist/resources/Tr2MaterialArea.js.map +0 -1
- package/dist/resources/Tr2MaterialMesh.js +0 -31
- package/dist/resources/Tr2MaterialMesh.js.map +0 -1
- package/dist/resources/Tr2MaterialRes.js +0 -34
- package/dist/resources/Tr2MaterialRes.js.map +0 -1
- package/dist/resources/Tr2ShaderPermutation.js +0 -43
- package/dist/resources/Tr2ShaderPermutation.js.map +0 -1
- package/dist/resources/Tr2TextureLodManager.js.map +0 -1
- package/dist/resources/Tr2TextureLodUpdateRequest.js.map +0 -1
- package/dist/resources/Tr2TexturePackChannel.js.map +0 -1
- package/dist/resources/Tr2TexturePipeline.js.map +0 -1
- package/dist/resources/Tr2TexturePipelineParams.js.map +0 -1
- package/dist/resources/Tr2TexturePipelineStepCompress.js.map +0 -1
- package/dist/resources/Tr2TexturePipelineStepGenerateMips.js.map +0 -1
- package/dist/resources/Tr2TexturePipelineStepLimitSize.js.map +0 -1
- package/dist/resources/Tr2TexturePipelineStepLoad.js.map +0 -1
- package/dist/resources/Tr2TexturePipelineStepPack.js.map +0 -1
- package/dist/resources/TriGeometryRes.js +0 -239
- package/dist/resources/TriGeometryRes.js.map +0 -1
- package/dist/resources/TriGeometryResAreaData.js.map +0 -1
- package/dist/resources/TriGeometryResJointData.js.map +0 -1
- package/dist/resources/TriGeometryResLodData.js.map +0 -1
- package/dist/resources/TriGeometryResMeshData.js.map +0 -1
- package/dist/resources/TriGeometryResSkeletonData.js.map +0 -1
- package/dist/resources/TriGrannyRes.js.map +0 -1
- package/dist/resources/TriJointBinding.js.map +0 -1
- package/dist/resources/TriMorphTargetGeometryConstants.js.map +0 -1
- package/dist/resources/TriRtGeometryConstants.js.map +0 -1
- package/dist/resources/TriTextureRes.js.map +0 -1
- package/dist/resources/enums.js.map +0 -1
- package/dist/resources/resourceBoundary.js +0 -47
- package/dist/resources/resourceBoundary.js.map +0 -1
- package/dist/resources/texturePipelineBehavior.js.map +0 -1
- package/dist/texture/CjsTextureArrayRes.js.map +0 -1
- package/dist/texture/CjsTextureParameterProxy.js.map +0 -1
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
* end-of-stream checks the Black transport decodes with.
|
|
4
4
|
*/
|
|
5
5
|
class CjsBlackBinaryReader {
|
|
6
|
+
/**
|
|
7
|
+
* Creates a CjsBlackBinaryReader over caller-provided Black bytes and reader
|
|
8
|
+
* options.
|
|
9
|
+
*/
|
|
6
10
|
constructor(dataView, context = null) {
|
|
7
11
|
if (!(dataView instanceof DataView)) {
|
|
8
12
|
throw new TypeError("CjsBlackBinaryReader expected a DataView");
|
|
@@ -11,17 +15,37 @@ class CjsBlackBinaryReader {
|
|
|
11
15
|
this.context = context;
|
|
12
16
|
this.offset = 0;
|
|
13
17
|
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Returns the number of unread Black bytes for the Black object-graph
|
|
21
|
+
* reader.
|
|
22
|
+
*/
|
|
14
23
|
get remaining() {
|
|
15
24
|
return this.data.byteLength - this.offset;
|
|
16
25
|
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Reports whether the Black cursor consumed every byte for the Black
|
|
29
|
+
* object-graph reader.
|
|
30
|
+
*/
|
|
17
31
|
AtEnd() {
|
|
18
32
|
return this.remaining === 0;
|
|
19
33
|
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Validates end against Black object-graph reader constraints and throws on
|
|
37
|
+
* failure.
|
|
38
|
+
*/
|
|
20
39
|
ExpectEnd(message = "Black reader did not reach end") {
|
|
21
40
|
if (!this.AtEnd()) {
|
|
22
41
|
throw new RangeError(`${message}: ${this.remaining} bytes remain`);
|
|
23
42
|
}
|
|
24
43
|
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Validates U32 against Black object-graph reader constraints and throws on
|
|
47
|
+
* failure.
|
|
48
|
+
*/
|
|
25
49
|
ExpectU32(expected, message) {
|
|
26
50
|
const actual = this.ReadU32();
|
|
27
51
|
if (actual !== expected) {
|
|
@@ -29,13 +53,19 @@ class CjsBlackBinaryReader {
|
|
|
29
53
|
}
|
|
30
54
|
return actual;
|
|
31
55
|
}
|
|
56
|
+
|
|
57
|
+
/** Reads binary reader from the current Black object-graph reader. */
|
|
32
58
|
ReadBinaryReader(byteLength) {
|
|
33
59
|
return new CjsBlackBinaryReader(this.ReadDataView(byteLength), this.context);
|
|
34
60
|
}
|
|
61
|
+
|
|
62
|
+
/** Reads bytes from the current Black object-graph reader. */
|
|
35
63
|
ReadBytes(byteLength) {
|
|
36
64
|
const view = this.ReadDataView(byteLength);
|
|
37
65
|
return new Uint8Array(view.buffer, view.byteOffset, view.byteLength);
|
|
38
66
|
}
|
|
67
|
+
|
|
68
|
+
/** Reads C string from the current Black object-graph reader. */
|
|
39
69
|
ReadCString() {
|
|
40
70
|
const startOffset = this.offset;
|
|
41
71
|
while (this.ReadU8() !== 0) {
|
|
@@ -46,6 +76,8 @@ class CjsBlackBinaryReader {
|
|
|
46
76
|
const bytes = new Uint8Array(this.data.buffer, byteOffset, byteLength);
|
|
47
77
|
return CjsBlackBinaryReader.utf8Decoder.decode(bytes);
|
|
48
78
|
}
|
|
79
|
+
|
|
80
|
+
/** Reads CW string from the current Black object-graph reader. */
|
|
49
81
|
ReadCWString() {
|
|
50
82
|
const startOffset = this.offset;
|
|
51
83
|
while (this.ReadU16() !== 0) {
|
|
@@ -56,6 +88,8 @@ class CjsBlackBinaryReader {
|
|
|
56
88
|
const bytes = new Uint8Array(this.data.buffer, byteOffset, byteLength);
|
|
57
89
|
return CjsBlackBinaryReader.utf16Decoder.decode(bytes);
|
|
58
90
|
}
|
|
91
|
+
|
|
92
|
+
/** Reads data view from the current Black object-graph reader. */
|
|
59
93
|
ReadDataView(byteLength) {
|
|
60
94
|
if (!Number.isInteger(byteLength) || byteLength < 0) {
|
|
61
95
|
throw new RangeError(`Invalid Black byte length: ${String(byteLength)}`);
|
|
@@ -67,34 +101,69 @@ class CjsBlackBinaryReader {
|
|
|
67
101
|
this.offset += byteLength;
|
|
68
102
|
return result;
|
|
69
103
|
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Reads a 32-bit float from the Black cursor for the Black object-graph
|
|
107
|
+
* reader.
|
|
108
|
+
*/
|
|
70
109
|
ReadF32() {
|
|
71
110
|
const value = this.data.getFloat32(this.offset, true);
|
|
72
111
|
this.offset += 4;
|
|
73
112
|
return value;
|
|
74
113
|
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Reads a 64-bit float from the Black cursor for the Black object-graph
|
|
117
|
+
* reader.
|
|
118
|
+
*/
|
|
75
119
|
ReadF64() {
|
|
76
120
|
const value = this.data.getFloat64(this.offset, true);
|
|
77
121
|
this.offset += 8;
|
|
78
122
|
return value;
|
|
79
123
|
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Reads a signed 8-bit integer from the Black cursor for the Black
|
|
127
|
+
* object-graph reader.
|
|
128
|
+
*/
|
|
80
129
|
ReadI8() {
|
|
81
130
|
const value = this.data.getInt8(this.offset);
|
|
82
131
|
this.offset += 1;
|
|
83
132
|
return value;
|
|
84
133
|
}
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Reads a signed 16-bit integer from the Black cursor for the Black
|
|
137
|
+
* object-graph reader.
|
|
138
|
+
*/
|
|
85
139
|
ReadI16() {
|
|
86
140
|
const value = this.data.getInt16(this.offset, true);
|
|
87
141
|
this.offset += 2;
|
|
88
142
|
return value;
|
|
89
143
|
}
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Reads a signed 32-bit integer from the Black cursor for the Black
|
|
147
|
+
* object-graph reader.
|
|
148
|
+
*/
|
|
90
149
|
ReadI32() {
|
|
91
150
|
const value = this.data.getInt32(this.offset, true);
|
|
92
151
|
this.offset += 4;
|
|
93
152
|
return value;
|
|
94
153
|
}
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Reads a signed 64-bit integer from the Black cursor for the Black
|
|
157
|
+
* object-graph reader.
|
|
158
|
+
*/
|
|
95
159
|
ReadI64() {
|
|
96
160
|
return this.data.getBigInt64(this.ConsumeOffset(8), true);
|
|
97
161
|
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Resolves a narrow-string table index from the Black cursor for the Black
|
|
165
|
+
* object-graph reader.
|
|
166
|
+
*/
|
|
98
167
|
ReadStringRef() {
|
|
99
168
|
const index = this.ReadU16();
|
|
100
169
|
const strings = this.context?.info?.strings || [];
|
|
@@ -103,6 +172,8 @@ class CjsBlackBinaryReader {
|
|
|
103
172
|
}
|
|
104
173
|
return strings[index];
|
|
105
174
|
}
|
|
175
|
+
|
|
176
|
+
/** Reads wide string ref from the current Black object-graph reader. */
|
|
106
177
|
ReadWideStringRef() {
|
|
107
178
|
const index = this.ReadU16();
|
|
108
179
|
const strings = this.context?.info?.wideStrings || [];
|
|
@@ -111,27 +182,54 @@ class CjsBlackBinaryReader {
|
|
|
111
182
|
}
|
|
112
183
|
return strings[index];
|
|
113
184
|
}
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Reads an unsigned 8-bit integer from the Black cursor for the Black
|
|
188
|
+
* object-graph reader.
|
|
189
|
+
*/
|
|
114
190
|
ReadU8() {
|
|
115
191
|
const value = this.data.getUint8(this.offset);
|
|
116
192
|
this.offset += 1;
|
|
117
193
|
return value;
|
|
118
194
|
}
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Reads an unsigned 16-bit integer from the Black cursor for the Black
|
|
198
|
+
* object-graph reader.
|
|
199
|
+
*/
|
|
119
200
|
ReadU16() {
|
|
120
201
|
const value = this.data.getUint16(this.offset, true);
|
|
121
202
|
this.offset += 2;
|
|
122
203
|
return value;
|
|
123
204
|
}
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* Reads an unsigned 32-bit integer from the Black cursor for the Black
|
|
208
|
+
* object-graph reader.
|
|
209
|
+
*/
|
|
124
210
|
ReadU32() {
|
|
125
211
|
const value = this.data.getUint32(this.offset, true);
|
|
126
212
|
this.offset += 4;
|
|
127
213
|
return value;
|
|
128
214
|
}
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* Reads an unsigned 64-bit integer from the Black cursor for the Black
|
|
218
|
+
* object-graph reader.
|
|
219
|
+
*/
|
|
129
220
|
ReadU64() {
|
|
130
221
|
return this.data.getBigUint64(this.ConsumeOffset(8), true);
|
|
131
222
|
}
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* Advances the Black cursor by a validated byte count for the Black
|
|
226
|
+
* object-graph reader.
|
|
227
|
+
*/
|
|
132
228
|
Skip(byteLength) {
|
|
133
229
|
this.ReadDataView(byteLength);
|
|
134
230
|
}
|
|
231
|
+
|
|
232
|
+
/** Consumes offset from the current Black object-graph reader. */
|
|
135
233
|
ConsumeOffset(byteLength) {
|
|
136
234
|
if (this.remaining < byteLength) {
|
|
137
235
|
throw new RangeError(`Black reader needs ${byteLength} bytes but only ${this.remaining} remain`);
|
|
@@ -140,6 +238,11 @@ class CjsBlackBinaryReader {
|
|
|
140
238
|
this.offset += byteLength;
|
|
141
239
|
return offset;
|
|
142
240
|
}
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* Creates a bounded Black reader over supported binary input for the Black
|
|
244
|
+
* object-graph reader.
|
|
245
|
+
*/
|
|
143
246
|
static from(input, context = null) {
|
|
144
247
|
if (input instanceof CjsBlackBinaryReader) return input;
|
|
145
248
|
if (input instanceof DataView) return new CjsBlackBinaryReader(input, context);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CjsBlackBinaryReader.js","sources":["../../../../../src/formats/black/core/CjsBlackBinaryReader.js"],"sourcesContent":["/**\n * Bounds-aware `DataView` cursor that provides the primitive reads and\n * end-of-stream checks the Black transport decodes with.\n */\nexport class CjsBlackBinaryReader\n{\n constructor(dataView, context = null)\n {\n if (!(dataView instanceof DataView))\n {\n throw new TypeError(\"CjsBlackBinaryReader expected a DataView\");\n }\n\n this.data = dataView;\n this.context = context;\n this.offset = 0;\n }\n\n get remaining()\n {\n return this.data.byteLength - this.offset;\n }\n\n AtEnd()\n {\n return this.remaining === 0;\n }\n\n ExpectEnd(message = \"Black reader did not reach end\")\n {\n if (!this.AtEnd())\n {\n throw new RangeError(`${message}: ${this.remaining} bytes remain`);\n }\n }\n\n ExpectU32(expected, message)\n {\n const actual = this.ReadU32();\n if (actual !== expected)\n {\n throw new RangeError(`${message}: expected ${expected}, got ${actual}`);\n }\n return actual;\n }\n\n ReadBinaryReader(byteLength)\n {\n return new CjsBlackBinaryReader(this.ReadDataView(byteLength), this.context);\n }\n\n ReadBytes(byteLength)\n {\n const view = this.ReadDataView(byteLength);\n return new Uint8Array(view.buffer, view.byteOffset, view.byteLength);\n }\n\n ReadCString()\n {\n const startOffset = this.offset;\n while (this.ReadU8() !== 0)\n {\n // Scan to null terminator.\n }\n\n const byteOffset = this.data.byteOffset + startOffset;\n const byteLength = this.offset - startOffset - 1;\n const bytes = new Uint8Array(this.data.buffer, byteOffset, byteLength);\n return CjsBlackBinaryReader.utf8Decoder.decode(bytes);\n }\n\n ReadCWString()\n {\n const startOffset = this.offset;\n while (this.ReadU16() !== 0)\n {\n // Scan to UTF-16 null terminator.\n }\n\n const byteOffset = this.data.byteOffset + startOffset;\n const byteLength = this.offset - startOffset - 2;\n const bytes = new Uint8Array(this.data.buffer, byteOffset, byteLength);\n return CjsBlackBinaryReader.utf16Decoder.decode(bytes);\n }\n\n ReadDataView(byteLength)\n {\n if (!Number.isInteger(byteLength) || byteLength < 0)\n {\n throw new RangeError(`Invalid Black byte length: ${String(byteLength)}`);\n }\n\n if (this.remaining < byteLength)\n {\n throw new RangeError(`Black reader needs ${byteLength} bytes but only ${this.remaining} remain`);\n }\n\n const result = new DataView(this.data.buffer, this.data.byteOffset + this.offset, byteLength);\n this.offset += byteLength;\n return result;\n }\n\n ReadF32()\n {\n const value = this.data.getFloat32(this.offset, true);\n this.offset += 4;\n return value;\n }\n\n ReadF64()\n {\n const value = this.data.getFloat64(this.offset, true);\n this.offset += 8;\n return value;\n }\n\n ReadI8()\n {\n const value = this.data.getInt8(this.offset);\n this.offset += 1;\n return value;\n }\n\n ReadI16()\n {\n const value = this.data.getInt16(this.offset, true);\n this.offset += 2;\n return value;\n }\n\n ReadI32()\n {\n const value = this.data.getInt32(this.offset, true);\n this.offset += 4;\n return value;\n }\n\n ReadI64()\n {\n return this.data.getBigInt64(this.ConsumeOffset(8), true);\n }\n\n ReadStringRef()\n {\n const index = this.ReadU16();\n const strings = this.context?.info?.strings || [];\n if (index >= strings.length)\n {\n throw new RangeError(`Invalid Black string index: ${index}`);\n }\n return strings[index];\n }\n\n ReadWideStringRef()\n {\n const index = this.ReadU16();\n const strings = this.context?.info?.wideStrings || [];\n if (index >= strings.length)\n {\n throw new RangeError(`Invalid Black wide string index: ${index}`);\n }\n return strings[index];\n }\n\n ReadU8()\n {\n const value = this.data.getUint8(this.offset);\n this.offset += 1;\n return value;\n }\n\n ReadU16()\n {\n const value = this.data.getUint16(this.offset, true);\n this.offset += 2;\n return value;\n }\n\n ReadU32()\n {\n const value = this.data.getUint32(this.offset, true);\n this.offset += 4;\n return value;\n }\n\n ReadU64()\n {\n return this.data.getBigUint64(this.ConsumeOffset(8), true);\n }\n\n Skip(byteLength)\n {\n this.ReadDataView(byteLength);\n }\n\n ConsumeOffset(byteLength)\n {\n if (this.remaining < byteLength)\n {\n throw new RangeError(`Black reader needs ${byteLength} bytes but only ${this.remaining} remain`);\n }\n\n const offset = this.offset;\n this.offset += byteLength;\n return offset;\n }\n\n static from(input, context = null)\n {\n if (input instanceof CjsBlackBinaryReader) return input;\n if (input instanceof DataView) return new CjsBlackBinaryReader(input, context);\n if (input instanceof ArrayBuffer) return new CjsBlackBinaryReader(new DataView(input), context);\n if (ArrayBuffer.isView(input))\n {\n return new CjsBlackBinaryReader(new DataView(input.buffer, input.byteOffset, input.byteLength), context);\n }\n\n throw new TypeError(\"Black input must be an ArrayBuffer, DataView, or typed array\");\n }\n\n static utf8Decoder = new TextDecoder(\"utf-8\");\n static utf16Decoder = new TextDecoder(\"utf-16le\");\n}\n"],"names":["CjsBlackBinaryReader","constructor","dataView","context","DataView","TypeError","data","offset","remaining","byteLength","AtEnd","ExpectEnd","message","RangeError","ExpectU32","expected","actual","ReadU32","ReadBinaryReader","ReadDataView","ReadBytes","view","Uint8Array","buffer","byteOffset","ReadCString","startOffset","ReadU8","bytes","utf8Decoder","decode","ReadCWString","ReadU16","utf16Decoder","Number","isInteger","String","result","ReadF32","value","getFloat32","ReadF64","getFloat64","ReadI8","getInt8","ReadI16","getInt16","ReadI32","getInt32","ReadI64","getBigInt64","ConsumeOffset","ReadStringRef","index","strings","info","length","ReadWideStringRef","wideStrings","getUint8","getUint16","getUint32","ReadU64","getBigUint64","Skip","from","input","ArrayBuffer","isView","TextDecoder"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CjsBlackBinaryReader.js","sources":["../../../../../src/formats/black/core/CjsBlackBinaryReader.js"],"sourcesContent":["/**\n * Bounds-aware `DataView` cursor that provides the primitive reads and\n * end-of-stream checks the Black transport decodes with.\n */\nexport class CjsBlackBinaryReader\n{\n /**\n * Creates a CjsBlackBinaryReader over caller-provided Black bytes and reader\n * options.\n */\n constructor(dataView, context = null)\n {\n if (!(dataView instanceof DataView))\n {\n throw new TypeError(\"CjsBlackBinaryReader expected a DataView\");\n }\n\n this.data = dataView;\n this.context = context;\n this.offset = 0;\n }\n\n /**\n * Returns the number of unread Black bytes for the Black object-graph\n * reader.\n */\n get remaining()\n {\n return this.data.byteLength - this.offset;\n }\n\n /**\n * Reports whether the Black cursor consumed every byte for the Black\n * object-graph reader.\n */\n AtEnd()\n {\n return this.remaining === 0;\n }\n\n /**\n * Validates end against Black object-graph reader constraints and throws on\n * failure.\n */\n ExpectEnd(message = \"Black reader did not reach end\")\n {\n if (!this.AtEnd())\n {\n throw new RangeError(`${message}: ${this.remaining} bytes remain`);\n }\n }\n\n /**\n * Validates U32 against Black object-graph reader constraints and throws on\n * failure.\n */\n ExpectU32(expected, message)\n {\n const actual = this.ReadU32();\n if (actual !== expected)\n {\n throw new RangeError(`${message}: expected ${expected}, got ${actual}`);\n }\n return actual;\n }\n\n /** Reads binary reader from the current Black object-graph reader. */\n ReadBinaryReader(byteLength)\n {\n return new CjsBlackBinaryReader(this.ReadDataView(byteLength), this.context);\n }\n\n /** Reads bytes from the current Black object-graph reader. */\n ReadBytes(byteLength)\n {\n const view = this.ReadDataView(byteLength);\n return new Uint8Array(view.buffer, view.byteOffset, view.byteLength);\n }\n\n /** Reads C string from the current Black object-graph reader. */\n ReadCString()\n {\n const startOffset = this.offset;\n while (this.ReadU8() !== 0)\n {\n // Scan to null terminator.\n }\n\n const byteOffset = this.data.byteOffset + startOffset;\n const byteLength = this.offset - startOffset - 1;\n const bytes = new Uint8Array(this.data.buffer, byteOffset, byteLength);\n return CjsBlackBinaryReader.utf8Decoder.decode(bytes);\n }\n\n /** Reads CW string from the current Black object-graph reader. */\n ReadCWString()\n {\n const startOffset = this.offset;\n while (this.ReadU16() !== 0)\n {\n // Scan to UTF-16 null terminator.\n }\n\n const byteOffset = this.data.byteOffset + startOffset;\n const byteLength = this.offset - startOffset - 2;\n const bytes = new Uint8Array(this.data.buffer, byteOffset, byteLength);\n return CjsBlackBinaryReader.utf16Decoder.decode(bytes);\n }\n\n /** Reads data view from the current Black object-graph reader. */\n ReadDataView(byteLength)\n {\n if (!Number.isInteger(byteLength) || byteLength < 0)\n {\n throw new RangeError(`Invalid Black byte length: ${String(byteLength)}`);\n }\n\n if (this.remaining < byteLength)\n {\n throw new RangeError(`Black reader needs ${byteLength} bytes but only ${this.remaining} remain`);\n }\n\n const result = new DataView(this.data.buffer, this.data.byteOffset + this.offset, byteLength);\n this.offset += byteLength;\n return result;\n }\n\n /**\n * Reads a 32-bit float from the Black cursor for the Black object-graph\n * reader.\n */\n ReadF32()\n {\n const value = this.data.getFloat32(this.offset, true);\n this.offset += 4;\n return value;\n }\n\n /**\n * Reads a 64-bit float from the Black cursor for the Black object-graph\n * reader.\n */\n ReadF64()\n {\n const value = this.data.getFloat64(this.offset, true);\n this.offset += 8;\n return value;\n }\n\n /**\n * Reads a signed 8-bit integer from the Black cursor for the Black\n * object-graph reader.\n */\n ReadI8()\n {\n const value = this.data.getInt8(this.offset);\n this.offset += 1;\n return value;\n }\n\n /**\n * Reads a signed 16-bit integer from the Black cursor for the Black\n * object-graph reader.\n */\n ReadI16()\n {\n const value = this.data.getInt16(this.offset, true);\n this.offset += 2;\n return value;\n }\n\n /**\n * Reads a signed 32-bit integer from the Black cursor for the Black\n * object-graph reader.\n */\n ReadI32()\n {\n const value = this.data.getInt32(this.offset, true);\n this.offset += 4;\n return value;\n }\n\n /**\n * Reads a signed 64-bit integer from the Black cursor for the Black\n * object-graph reader.\n */\n ReadI64()\n {\n return this.data.getBigInt64(this.ConsumeOffset(8), true);\n }\n\n /**\n * Resolves a narrow-string table index from the Black cursor for the Black\n * object-graph reader.\n */\n ReadStringRef()\n {\n const index = this.ReadU16();\n const strings = this.context?.info?.strings || [];\n if (index >= strings.length)\n {\n throw new RangeError(`Invalid Black string index: ${index}`);\n }\n return strings[index];\n }\n\n /** Reads wide string ref from the current Black object-graph reader. */\n ReadWideStringRef()\n {\n const index = this.ReadU16();\n const strings = this.context?.info?.wideStrings || [];\n if (index >= strings.length)\n {\n throw new RangeError(`Invalid Black wide string index: ${index}`);\n }\n return strings[index];\n }\n\n /**\n * Reads an unsigned 8-bit integer from the Black cursor for the Black\n * object-graph reader.\n */\n ReadU8()\n {\n const value = this.data.getUint8(this.offset);\n this.offset += 1;\n return value;\n }\n\n /**\n * Reads an unsigned 16-bit integer from the Black cursor for the Black\n * object-graph reader.\n */\n ReadU16()\n {\n const value = this.data.getUint16(this.offset, true);\n this.offset += 2;\n return value;\n }\n\n /**\n * Reads an unsigned 32-bit integer from the Black cursor for the Black\n * object-graph reader.\n */\n ReadU32()\n {\n const value = this.data.getUint32(this.offset, true);\n this.offset += 4;\n return value;\n }\n\n /**\n * Reads an unsigned 64-bit integer from the Black cursor for the Black\n * object-graph reader.\n */\n ReadU64()\n {\n return this.data.getBigUint64(this.ConsumeOffset(8), true);\n }\n\n /**\n * Advances the Black cursor by a validated byte count for the Black\n * object-graph reader.\n */\n Skip(byteLength)\n {\n this.ReadDataView(byteLength);\n }\n\n /** Consumes offset from the current Black object-graph reader. */\n ConsumeOffset(byteLength)\n {\n if (this.remaining < byteLength)\n {\n throw new RangeError(`Black reader needs ${byteLength} bytes but only ${this.remaining} remain`);\n }\n\n const offset = this.offset;\n this.offset += byteLength;\n return offset;\n }\n\n /**\n * Creates a bounded Black reader over supported binary input for the Black\n * object-graph reader.\n */\n static from(input, context = null)\n {\n if (input instanceof CjsBlackBinaryReader) return input;\n if (input instanceof DataView) return new CjsBlackBinaryReader(input, context);\n if (input instanceof ArrayBuffer) return new CjsBlackBinaryReader(new DataView(input), context);\n if (ArrayBuffer.isView(input))\n {\n return new CjsBlackBinaryReader(new DataView(input.buffer, input.byteOffset, input.byteLength), context);\n }\n\n throw new TypeError(\"Black input must be an ArrayBuffer, DataView, or typed array\");\n }\n\n static utf8Decoder = new TextDecoder(\"utf-8\");\n static utf16Decoder = new TextDecoder(\"utf-16le\");\n}\n"],"names":["CjsBlackBinaryReader","constructor","dataView","context","DataView","TypeError","data","offset","remaining","byteLength","AtEnd","ExpectEnd","message","RangeError","ExpectU32","expected","actual","ReadU32","ReadBinaryReader","ReadDataView","ReadBytes","view","Uint8Array","buffer","byteOffset","ReadCString","startOffset","ReadU8","bytes","utf8Decoder","decode","ReadCWString","ReadU16","utf16Decoder","Number","isInteger","String","result","ReadF32","value","getFloat32","ReadF64","getFloat64","ReadI8","getInt8","ReadI16","getInt16","ReadI32","getInt32","ReadI64","getBigInt64","ConsumeOffset","ReadStringRef","index","strings","info","length","ReadWideStringRef","wideStrings","getUint8","getUint16","getUint32","ReadU64","getBigUint64","Skip","from","input","ArrayBuffer","isView","TextDecoder"],"mappings":"AAAA;AACA;AACA;AACA;AACO,MAAMA,oBAAoB,CACjC;AACI;AACJ;AACA;AACA;AACIC,EAAAA,WAAWA,CAACC,QAAQ,EAAEC,OAAO,GAAG,IAAI,EACpC;AACI,IAAA,IAAI,EAAED,QAAQ,YAAYE,QAAQ,CAAC,EACnC;AACI,MAAA,MAAM,IAAIC,SAAS,CAAC,0CAA0C,CAAC;AACnE,IAAA;IAEA,IAAI,CAACC,IAAI,GAAGJ,QAAQ;IACpB,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACI,MAAM,GAAG,CAAC;AACnB,EAAA;;AAEA;AACJ;AACA;AACA;EACI,IAAIC,SAASA,GACb;IACI,OAAO,IAAI,CAACF,IAAI,CAACG,UAAU,GAAG,IAAI,CAACF,MAAM;AAC7C,EAAA;;AAEA;AACJ;AACA;AACA;AACIG,EAAAA,KAAKA,GACL;AACI,IAAA,OAAO,IAAI,CAACF,SAAS,KAAK,CAAC;AAC/B,EAAA;;AAEA;AACJ;AACA;AACA;AACIG,EAAAA,SAASA,CAACC,OAAO,GAAG,gCAAgC,EACpD;AACI,IAAA,IAAI,CAAC,IAAI,CAACF,KAAK,EAAE,EACjB;MACI,MAAM,IAAIG,UAAU,CAAC,CAAA,EAAGD,OAAO,KAAK,IAAI,CAACJ,SAAS,CAAA,aAAA,CAAe,CAAC;AACtE,IAAA;AACJ,EAAA;;AAEA;AACJ;AACA;AACA;AACIM,EAAAA,SAASA,CAACC,QAAQ,EAAEH,OAAO,EAC3B;AACI,IAAA,MAAMI,MAAM,GAAG,IAAI,CAACC,OAAO,EAAE;IAC7B,IAAID,MAAM,KAAKD,QAAQ,EACvB;MACI,MAAM,IAAIF,UAAU,CAAC,CAAA,EAAGD,OAAO,cAAcG,QAAQ,CAAA,MAAA,EAASC,MAAM,CAAA,CAAE,CAAC;AAC3E,IAAA;AACA,IAAA,OAAOA,MAAM;AACjB,EAAA;;AAEA;EACAE,gBAAgBA,CAACT,UAAU,EAC3B;AACI,IAAA,OAAO,IAAIT,oBAAoB,CAAC,IAAI,CAACmB,YAAY,CAACV,UAAU,CAAC,EAAE,IAAI,CAACN,OAAO,CAAC;AAChF,EAAA;;AAEA;EACAiB,SAASA,CAACX,UAAU,EACpB;AACI,IAAA,MAAMY,IAAI,GAAG,IAAI,CAACF,YAAY,CAACV,UAAU,CAAC;AAC1C,IAAA,OAAO,IAAIa,UAAU,CAACD,IAAI,CAACE,MAAM,EAAEF,IAAI,CAACG,UAAU,EAAEH,IAAI,CAACZ,UAAU,CAAC;AACxE,EAAA;;AAEA;AACAgB,EAAAA,WAAWA,GACX;AACI,IAAA,MAAMC,WAAW,GAAG,IAAI,CAACnB,MAAM;AAC/B,IAAA,OAAO,IAAI,CAACoB,MAAM,EAAE,KAAK,CAAC,EAC1B;AACI;AAAA,IAAA;IAGJ,MAAMH,UAAU,GAAG,IAAI,CAAClB,IAAI,CAACkB,UAAU,GAAGE,WAAW;IACrD,MAAMjB,UAAU,GAAG,IAAI,CAACF,MAAM,GAAGmB,WAAW,GAAG,CAAC;AAChD,IAAA,MAAME,KAAK,GAAG,IAAIN,UAAU,CAAC,IAAI,CAAChB,IAAI,CAACiB,MAAM,EAAEC,UAAU,EAAEf,UAAU,CAAC;AACtE,IAAA,OAAOT,oBAAoB,CAAC6B,WAAW,CAACC,MAAM,CAACF,KAAK,CAAC;AACzD,EAAA;;AAEA;AACAG,EAAAA,YAAYA,GACZ;AACI,IAAA,MAAML,WAAW,GAAG,IAAI,CAACnB,MAAM;AAC/B,IAAA,OAAO,IAAI,CAACyB,OAAO,EAAE,KAAK,CAAC,EAC3B;AACI;AAAA,IAAA;IAGJ,MAAMR,UAAU,GAAG,IAAI,CAAClB,IAAI,CAACkB,UAAU,GAAGE,WAAW;IACrD,MAAMjB,UAAU,GAAG,IAAI,CAACF,MAAM,GAAGmB,WAAW,GAAG,CAAC;AAChD,IAAA,MAAME,KAAK,GAAG,IAAIN,UAAU,CAAC,IAAI,CAAChB,IAAI,CAACiB,MAAM,EAAEC,UAAU,EAAEf,UAAU,CAAC;AACtE,IAAA,OAAOT,oBAAoB,CAACiC,YAAY,CAACH,MAAM,CAACF,KAAK,CAAC;AAC1D,EAAA;;AAEA;EACAT,YAAYA,CAACV,UAAU,EACvB;IACI,IAAI,CAACyB,MAAM,CAACC,SAAS,CAAC1B,UAAU,CAAC,IAAIA,UAAU,GAAG,CAAC,EACnD;MACI,MAAM,IAAII,UAAU,CAAC,CAAA,2BAAA,EAA8BuB,MAAM,CAAC3B,UAAU,CAAC,CAAA,CAAE,CAAC;AAC5E,IAAA;AAEA,IAAA,IAAI,IAAI,CAACD,SAAS,GAAGC,UAAU,EAC/B;MACI,MAAM,IAAII,UAAU,CAAC,CAAA,mBAAA,EAAsBJ,UAAU,mBAAmB,IAAI,CAACD,SAAS,CAAA,OAAA,CAAS,CAAC;AACpG,IAAA;IAEA,MAAM6B,MAAM,GAAG,IAAIjC,QAAQ,CAAC,IAAI,CAACE,IAAI,CAACiB,MAAM,EAAE,IAAI,CAACjB,IAAI,CAACkB,UAAU,GAAG,IAAI,CAACjB,MAAM,EAAEE,UAAU,CAAC;IAC7F,IAAI,CAACF,MAAM,IAAIE,UAAU;AACzB,IAAA,OAAO4B,MAAM;AACjB,EAAA;;AAEA;AACJ;AACA;AACA;AACIC,EAAAA,OAAOA,GACP;AACI,IAAA,MAAMC,KAAK,GAAG,IAAI,CAACjC,IAAI,CAACkC,UAAU,CAAC,IAAI,CAACjC,MAAM,EAAE,IAAI,CAAC;IACrD,IAAI,CAACA,MAAM,IAAI,CAAC;AAChB,IAAA,OAAOgC,KAAK;AAChB,EAAA;;AAEA;AACJ;AACA;AACA;AACIE,EAAAA,OAAOA,GACP;AACI,IAAA,MAAMF,KAAK,GAAG,IAAI,CAACjC,IAAI,CAACoC,UAAU,CAAC,IAAI,CAACnC,MAAM,EAAE,IAAI,CAAC;IACrD,IAAI,CAACA,MAAM,IAAI,CAAC;AAChB,IAAA,OAAOgC,KAAK;AAChB,EAAA;;AAEA;AACJ;AACA;AACA;AACII,EAAAA,MAAMA,GACN;IACI,MAAMJ,KAAK,GAAG,IAAI,CAACjC,IAAI,CAACsC,OAAO,CAAC,IAAI,CAACrC,MAAM,CAAC;IAC5C,IAAI,CAACA,MAAM,IAAI,CAAC;AAChB,IAAA,OAAOgC,KAAK;AAChB,EAAA;;AAEA;AACJ;AACA;AACA;AACIM,EAAAA,OAAOA,GACP;AACI,IAAA,MAAMN,KAAK,GAAG,IAAI,CAACjC,IAAI,CAACwC,QAAQ,CAAC,IAAI,CAACvC,MAAM,EAAE,IAAI,CAAC;IACnD,IAAI,CAACA,MAAM,IAAI,CAAC;AAChB,IAAA,OAAOgC,KAAK;AAChB,EAAA;;AAEA;AACJ;AACA;AACA;AACIQ,EAAAA,OAAOA,GACP;AACI,IAAA,MAAMR,KAAK,GAAG,IAAI,CAACjC,IAAI,CAAC0C,QAAQ,CAAC,IAAI,CAACzC,MAAM,EAAE,IAAI,CAAC;IACnD,IAAI,CAACA,MAAM,IAAI,CAAC;AAChB,IAAA,OAAOgC,KAAK;AAChB,EAAA;;AAEA;AACJ;AACA;AACA;AACIU,EAAAA,OAAOA,GACP;AACI,IAAA,OAAO,IAAI,CAAC3C,IAAI,CAAC4C,WAAW,CAAC,IAAI,CAACC,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;AAC7D,EAAA;;AAEA;AACJ;AACA;AACA;AACIC,EAAAA,aAAaA,GACb;AACI,IAAA,MAAMC,KAAK,GAAG,IAAI,CAACrB,OAAO,EAAE;IAC5B,MAAMsB,OAAO,GAAG,IAAI,CAACnD,OAAO,EAAEoD,IAAI,EAAED,OAAO,IAAI,EAAE;AACjD,IAAA,IAAID,KAAK,IAAIC,OAAO,CAACE,MAAM,EAC3B;AACI,MAAA,MAAM,IAAI3C,UAAU,CAAC,CAAA,4BAAA,EAA+BwC,KAAK,EAAE,CAAC;AAChE,IAAA;IACA,OAAOC,OAAO,CAACD,KAAK,CAAC;AACzB,EAAA;;AAEA;AACAI,EAAAA,iBAAiBA,GACjB;AACI,IAAA,MAAMJ,KAAK,GAAG,IAAI,CAACrB,OAAO,EAAE;IAC5B,MAAMsB,OAAO,GAAG,IAAI,CAACnD,OAAO,EAAEoD,IAAI,EAAEG,WAAW,IAAI,EAAE;AACrD,IAAA,IAAIL,KAAK,IAAIC,OAAO,CAACE,MAAM,EAC3B;AACI,MAAA,MAAM,IAAI3C,UAAU,CAAC,CAAA,iCAAA,EAAoCwC,KAAK,EAAE,CAAC;AACrE,IAAA;IACA,OAAOC,OAAO,CAACD,KAAK,CAAC;AACzB,EAAA;;AAEA;AACJ;AACA;AACA;AACI1B,EAAAA,MAAMA,GACN;IACI,MAAMY,KAAK,GAAG,IAAI,CAACjC,IAAI,CAACqD,QAAQ,CAAC,IAAI,CAACpD,MAAM,CAAC;IAC7C,IAAI,CAACA,MAAM,IAAI,CAAC;AAChB,IAAA,OAAOgC,KAAK;AAChB,EAAA;;AAEA;AACJ;AACA;AACA;AACIP,EAAAA,OAAOA,GACP;AACI,IAAA,MAAMO,KAAK,GAAG,IAAI,CAACjC,IAAI,CAACsD,SAAS,CAAC,IAAI,CAACrD,MAAM,EAAE,IAAI,CAAC;IACpD,IAAI,CAACA,MAAM,IAAI,CAAC;AAChB,IAAA,OAAOgC,KAAK;AAChB,EAAA;;AAEA;AACJ;AACA;AACA;AACItB,EAAAA,OAAOA,GACP;AACI,IAAA,MAAMsB,KAAK,GAAG,IAAI,CAACjC,IAAI,CAACuD,SAAS,CAAC,IAAI,CAACtD,MAAM,EAAE,IAAI,CAAC;IACpD,IAAI,CAACA,MAAM,IAAI,CAAC;AAChB,IAAA,OAAOgC,KAAK;AAChB,EAAA;;AAEA;AACJ;AACA;AACA;AACIuB,EAAAA,OAAOA,GACP;AACI,IAAA,OAAO,IAAI,CAACxD,IAAI,CAACyD,YAAY,CAAC,IAAI,CAACZ,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;AAC9D,EAAA;;AAEA;AACJ;AACA;AACA;EACIa,IAAIA,CAACvD,UAAU,EACf;AACI,IAAA,IAAI,CAACU,YAAY,CAACV,UAAU,CAAC;AACjC,EAAA;;AAEA;EACA0C,aAAaA,CAAC1C,UAAU,EACxB;AACI,IAAA,IAAI,IAAI,CAACD,SAAS,GAAGC,UAAU,EAC/B;MACI,MAAM,IAAII,UAAU,CAAC,CAAA,mBAAA,EAAsBJ,UAAU,mBAAmB,IAAI,CAACD,SAAS,CAAA,OAAA,CAAS,CAAC;AACpG,IAAA;AAEA,IAAA,MAAMD,MAAM,GAAG,IAAI,CAACA,MAAM;IAC1B,IAAI,CAACA,MAAM,IAAIE,UAAU;AACzB,IAAA,OAAOF,MAAM;AACjB,EAAA;;AAEA;AACJ;AACA;AACA;AACI,EAAA,OAAO0D,IAAIA,CAACC,KAAK,EAAE/D,OAAO,GAAG,IAAI,EACjC;AACI,IAAA,IAAI+D,KAAK,YAAYlE,oBAAoB,EAAE,OAAOkE,KAAK;IACvD,IAAIA,KAAK,YAAY9D,QAAQ,EAAE,OAAO,IAAIJ,oBAAoB,CAACkE,KAAK,EAAE/D,OAAO,CAAC;AAC9E,IAAA,IAAI+D,KAAK,YAAYC,WAAW,EAAE,OAAO,IAAInE,oBAAoB,CAAC,IAAII,QAAQ,CAAC8D,KAAK,CAAC,EAAE/D,OAAO,CAAC;AAC/F,IAAA,IAAIgE,WAAW,CAACC,MAAM,CAACF,KAAK,CAAC,EAC7B;MACI,OAAO,IAAIlE,oBAAoB,CAAC,IAAII,QAAQ,CAAC8D,KAAK,CAAC3C,MAAM,EAAE2C,KAAK,CAAC1C,UAAU,EAAE0C,KAAK,CAACzD,UAAU,CAAC,EAAEN,OAAO,CAAC;AAC5G,IAAA;AAEA,IAAA,MAAM,IAAIE,SAAS,CAAC,8DAA8D,CAAC;AACvF,EAAA;AAEA,EAAA,OAAOwB,WAAW,GAAG,IAAIwC,WAAW,CAAC,OAAO,CAAC;AAC7C,EAAA,OAAOpC,YAAY,GAAG,IAAIoC,WAAW,CAAC,UAAU,CAAC;AACrD;;;;"}
|
|
@@ -6,6 +6,7 @@ import { normalizeCarbonTypeDescriptor, CARBON_TYPE } from '@carbonenginejs/runt
|
|
|
6
6
|
* dictionaries, and binary blocks) from their type descriptors.
|
|
7
7
|
*/
|
|
8
8
|
class CjsBlackPropertyReaders {
|
|
9
|
+
/** Reads value from the current Black object-graph reader. */
|
|
9
10
|
static readValue(reader, field) {
|
|
10
11
|
const descriptor = normalizeCarbonTypeDescriptor(field);
|
|
11
12
|
if (field?.black?.beType) {
|
|
@@ -66,6 +67,8 @@ class CjsBlackPropertyReaders {
|
|
|
66
67
|
return reader.context.ReadObject(reader);
|
|
67
68
|
}
|
|
68
69
|
}
|
|
70
|
+
|
|
71
|
+
/** Reads black value from the current Black object-graph reader. */
|
|
69
72
|
static readBlackValue(reader, black, descriptor) {
|
|
70
73
|
switch (black.beType) {
|
|
71
74
|
case "IROOT":
|
|
@@ -112,6 +115,8 @@ class CjsBlackPropertyReaders {
|
|
|
112
115
|
return CjsBlackPropertyReaders.readValueWithoutBlack(reader, descriptor);
|
|
113
116
|
}
|
|
114
117
|
}
|
|
118
|
+
|
|
119
|
+
/** Advances past value in the current Black object-graph reader. */
|
|
115
120
|
static skipValue(reader, field) {
|
|
116
121
|
const descriptor = normalizeCarbonTypeDescriptor(field);
|
|
117
122
|
if (field?.black?.beType) {
|
|
@@ -175,6 +180,8 @@ class CjsBlackPropertyReaders {
|
|
|
175
180
|
reader.context.SkipObject(reader);
|
|
176
181
|
}
|
|
177
182
|
}
|
|
183
|
+
|
|
184
|
+
/** Advances past black value in the current Black object-graph reader. */
|
|
178
185
|
static skipBlackValue(reader, black, descriptor) {
|
|
179
186
|
switch (black.beType) {
|
|
180
187
|
case "IROOT":
|
|
@@ -225,6 +232,8 @@ class CjsBlackPropertyReaders {
|
|
|
225
232
|
});
|
|
226
233
|
}
|
|
227
234
|
}
|
|
235
|
+
|
|
236
|
+
/** Reads black structure list from the current Black object-graph reader. */
|
|
228
237
|
static readBlackStructureList(reader, black) {
|
|
229
238
|
return CjsBlackPropertyReaders.readStructureList(reader, {
|
|
230
239
|
cppType: black.cppType,
|
|
@@ -234,20 +243,40 @@ class CjsBlackPropertyReaders {
|
|
|
234
243
|
}
|
|
235
244
|
});
|
|
236
245
|
}
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* Reads a schema field through the non-Black fallback decoder for the Black
|
|
249
|
+
* object-graph reader.
|
|
250
|
+
*/
|
|
237
251
|
static readValueWithoutBlack(reader, descriptor) {
|
|
238
252
|
return CjsBlackPropertyReaders.readValue(reader, {
|
|
239
253
|
jsType: descriptor
|
|
240
254
|
});
|
|
241
255
|
}
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* Reads a schema field whose wire value references the Black string table
|
|
259
|
+
* for the Black object-graph reader.
|
|
260
|
+
*/
|
|
242
261
|
static readStringRef(reader, descriptor) {
|
|
243
262
|
const value = reader.ReadStringRef();
|
|
244
263
|
return descriptor.kind === CARBON_TYPE.PATH ? reader.context.TransformPath(value) : value;
|
|
245
264
|
}
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* Reads a nested Black root-interface value for the Black object-graph
|
|
268
|
+
* reader.
|
|
269
|
+
*/
|
|
246
270
|
static readBlackIRoot(reader, black, descriptor) {
|
|
247
271
|
if (black.container === "dict") return CjsBlackPropertyReaders.readDict(reader);
|
|
248
272
|
if (black.container === "list" || black.container === "set") return CjsBlackPropertyReaders.readArray(reader, descriptor);
|
|
249
273
|
return reader.context.ReadEmbeddedObject(reader);
|
|
250
274
|
}
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* Advances past a nested Black root-interface value for the Black
|
|
278
|
+
* object-graph reader.
|
|
279
|
+
*/
|
|
251
280
|
static skipBlackIRoot(reader, black, descriptor) {
|
|
252
281
|
if (black.container === "dict") {
|
|
253
282
|
CjsBlackPropertyReaders.skipDict(reader);
|
|
@@ -259,6 +288,8 @@ class CjsBlackPropertyReaders {
|
|
|
259
288
|
}
|
|
260
289
|
reader.context.SkipEmbeddedObject(reader);
|
|
261
290
|
}
|
|
291
|
+
|
|
292
|
+
/** Reads dict from the current Black object-graph reader. */
|
|
262
293
|
static readDict(reader) {
|
|
263
294
|
const count = reader.ReadU32();
|
|
264
295
|
const result = {};
|
|
@@ -267,6 +298,8 @@ class CjsBlackPropertyReaders {
|
|
|
267
298
|
}
|
|
268
299
|
return result;
|
|
269
300
|
}
|
|
301
|
+
|
|
302
|
+
/** Advances past dict in the current Black object-graph reader. */
|
|
270
303
|
static skipDict(reader) {
|
|
271
304
|
const count = reader.ReadU32();
|
|
272
305
|
for (let i = 0; i < count; i++) {
|
|
@@ -274,6 +307,8 @@ class CjsBlackPropertyReaders {
|
|
|
274
307
|
reader.context.SkipObject(reader);
|
|
275
308
|
}
|
|
276
309
|
}
|
|
310
|
+
|
|
311
|
+
/** Reads binary block from the current Black object-graph reader. */
|
|
277
312
|
static readBinaryBlock(reader, black) {
|
|
278
313
|
const byteLength = reader.ReadI32();
|
|
279
314
|
const bytes = reader.ReadBytes(byteLength);
|
|
@@ -287,11 +322,21 @@ class CjsBlackPropertyReaders {
|
|
|
287
322
|
bytes: Array.from(bytes)
|
|
288
323
|
};
|
|
289
324
|
}
|
|
325
|
+
|
|
326
|
+
/**
|
|
327
|
+
* Reports whether a binary block is tagged as a 32-bit index buffer for the
|
|
328
|
+
* Black object-graph reader.
|
|
329
|
+
*/
|
|
290
330
|
static isUint32IndexBufferBlock(reader, black, byteLength) {
|
|
291
331
|
if (byteLength % 4 !== 0) return false;
|
|
292
332
|
if (reader.context?.readMode === "document" && !reader.context?.options.decodeBinaryBlocks) return false;
|
|
293
333
|
return black.name === "indexBuffer" || black.fieldName === "indexBuffer" || black.storageName === "indexBuffer";
|
|
294
334
|
}
|
|
335
|
+
|
|
336
|
+
/**
|
|
337
|
+
* Reads a binary block as an array of unsigned 32-bit integers for the Black
|
|
338
|
+
* object-graph reader.
|
|
339
|
+
*/
|
|
295
340
|
static readUint32Array(bytes) {
|
|
296
341
|
const result = new Uint32Array(bytes.byteLength / 4);
|
|
297
342
|
const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
|
|
@@ -300,6 +345,8 @@ class CjsBlackPropertyReaders {
|
|
|
300
345
|
}
|
|
301
346
|
return result;
|
|
302
347
|
}
|
|
348
|
+
|
|
349
|
+
/** Reads array from the current Black object-graph reader. */
|
|
303
350
|
static readArray(reader, descriptor) {
|
|
304
351
|
const elementType = normalizeCarbonTypeDescriptor(descriptor.elementType);
|
|
305
352
|
if (elementType.kind === CARBON_TYPE.RAW_STRUCT) {
|
|
@@ -318,6 +365,8 @@ class CjsBlackPropertyReaders {
|
|
|
318
365
|
}
|
|
319
366
|
return result;
|
|
320
367
|
}
|
|
368
|
+
|
|
369
|
+
/** Advances past array in the current Black object-graph reader. */
|
|
321
370
|
static skipArray(reader, descriptor) {
|
|
322
371
|
const elementType = normalizeCarbonTypeDescriptor(descriptor.elementType);
|
|
323
372
|
if (elementType.kind === CARBON_TYPE.RAW_STRUCT) {
|
|
@@ -335,6 +384,8 @@ class CjsBlackPropertyReaders {
|
|
|
335
384
|
}
|
|
336
385
|
}
|
|
337
386
|
}
|
|
387
|
+
|
|
388
|
+
/** Reads float array from the current Black object-graph reader. */
|
|
338
389
|
static readFloatArray(reader, count) {
|
|
339
390
|
const result = [];
|
|
340
391
|
for (let i = 0; i < count; i++) {
|
|
@@ -342,6 +393,8 @@ class CjsBlackPropertyReaders {
|
|
|
342
393
|
}
|
|
343
394
|
return result;
|
|
344
395
|
}
|
|
396
|
+
|
|
397
|
+
/** Reads structure list from the current Black object-graph reader. */
|
|
345
398
|
static readStructureList(reader, descriptor) {
|
|
346
399
|
const count = reader.ReadI32();
|
|
347
400
|
const structureSize = reader.ReadU16();
|
|
@@ -355,11 +408,15 @@ class CjsBlackPropertyReaders {
|
|
|
355
408
|
bytes: Array.from(bytes)
|
|
356
409
|
};
|
|
357
410
|
}
|
|
411
|
+
|
|
412
|
+
/** Advances past structure list in the current Black object-graph reader. */
|
|
358
413
|
static skipStructureList(reader) {
|
|
359
414
|
const count = reader.ReadI32();
|
|
360
415
|
const structureSize = reader.ReadU16();
|
|
361
416
|
reader.Skip(count * structureSize);
|
|
362
417
|
}
|
|
418
|
+
|
|
419
|
+
/** Reads typed array from the current Black object-graph reader. */
|
|
363
420
|
static readTypedArray(reader, descriptor) {
|
|
364
421
|
const count = reader.ReadU32();
|
|
365
422
|
const elementSize = reader.ReadU16();
|
|
@@ -372,11 +429,15 @@ class CjsBlackPropertyReaders {
|
|
|
372
429
|
bytes: Array.from(bytes)
|
|
373
430
|
};
|
|
374
431
|
}
|
|
432
|
+
|
|
433
|
+
/** Advances past typed array in the current Black object-graph reader. */
|
|
375
434
|
static skipTypedArray(reader) {
|
|
376
435
|
const count = reader.ReadU32();
|
|
377
436
|
const elementSize = reader.ReadU16();
|
|
378
437
|
reader.Skip(count * elementSize);
|
|
379
438
|
}
|
|
439
|
+
|
|
440
|
+
/** Advances past binary block in the current Black object-graph reader. */
|
|
380
441
|
static skipBinaryBlock(reader) {
|
|
381
442
|
const byteLength = reader.ReadI32();
|
|
382
443
|
reader.Skip(byteLength);
|
|
@@ -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/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":";;AAKA;AACA;AACA;AACA;AACA;AACO,MAAMA,uBAAuB,CACpC;AACI,EAAA,OAAOC,SAASA,CAACC,MAAM,EAAEC,KAAK,EAC9B;AACI,IAAA,MAAMC,UAAU,GAAGC,6BAA6B,CAACF,KAAK,CAAC;AACvD,IAAA,IAAIA,KAAK,EAAEG,KAAK,EAAEC,MAAM,EACxB;MACI,OAAOP,uBAAuB,CAACQ,cAAc,CAACN,MAAM,EAAEC,KAAK,CAACG,KAAK,EAAEF,UAAU,CAAC;AAClF,IAAA;IAEA,QAAQA,UAAU,CAACK,IAAI;MAEnB,KAAKC,WAAW,CAACC,OAAO;AACpB,QAAA,OAAOT,MAAM,CAACU,MAAM,EAAE,KAAK,CAAC;MAEhC,KAAKF,WAAW,CAACG,MAAM;MACvB,KAAKH,WAAW,CAACI,UAAU;AACvB,QAAA,OAAOZ,MAAM,CAACa,aAAa,EAAE;MAEjC,KAAKL,WAAW,CAACM,IAAI;QACjB,OAAOd,MAAM,CAACe,OAAO,CAACC,aAAa,CAAChB,MAAM,CAACa,aAAa,EAAE,CAAC;MAE/D,KAAKL,WAAW,CAACS,IAAI;AACjB,QAAA,OAAOjB,MAAM,CAACkB,OAAO,EAAE;MAE3B,KAAKV,WAAW,CAACW,OAAO;AACpB,QAAA,OAAOnB,MAAM,CAACoB,OAAO,EAAE;MAE3B,KAAKZ,WAAW,CAACa,OAAO;AACpB,QAAA,OAAOrB,MAAM,CAACsB,OAAO,EAAE;MAE3B,KAAKd,WAAW,CAACe,IAAI;AACjB,QAAA,OAAOvB,MAAM,CAACwB,MAAM,EAAE;MAE1B,KAAKhB,WAAW,CAACiB,KAAK;AAClB,QAAA,OAAOzB,MAAM,CAACU,MAAM,EAAE;MAE1B,KAAKF,WAAW,CAACkB,KAAK;AAClB,QAAA,OAAO1B,MAAM,CAAC2B,OAAO,EAAE;MAE3B,KAAKnB,WAAW,CAACoB,MAAM;AACnB,QAAA,OAAO5B,MAAM,CAAC6B,OAAO,EAAE;MAE3B,KAAKrB,WAAW,CAACsB,KAAK;AAClB,QAAA,OAAO9B,MAAM,CAACkB,OAAO,EAAE;MAE3B,KAAKV,WAAW,CAACuB,MAAM;AACnB,QAAA,OAAO/B,MAAM,CAACgC,OAAO,EAAE;MAE3B,KAAKxB,WAAW,CAACyB,KAAK;AAClB,QAAA,OAAOjC,MAAM,CAACkC,OAAO,EAAE;MAE3B,KAAK1B,WAAW,CAAC2B,MAAM;AACnB,QAAA,OAAOnC,MAAM,CAACoC,OAAO,EAAE;MAE3B,KAAK5B,WAAW,CAAC6B,OAAO;AACpB,QAAA,OAAOvC,uBAAuB,CAACwC,cAAc,CAACtC,MAAM,EAAE,CAAC,CAAC;MAE5D,KAAKQ,WAAW,CAAC+B,OAAO;AACpB,QAAA,OAAOzC,uBAAuB,CAACwC,cAAc,CAACtC,MAAM,EAAE,CAAC,CAAC;MAE5D,KAAKQ,WAAW,CAACgC,OAAO;MACxB,KAAKhC,WAAW,CAACiC,KAAK;MACtB,KAAKjC,WAAW,CAACkC,UAAU;AACvB,QAAA,OAAO5C,uBAAuB,CAACwC,cAAc,CAACtC,MAAM,EAAE,CAAC,CAAC;MAE5D,KAAKQ,WAAW,CAACmC,OAAO;AACpB,QAAA,OAAO7C,uBAAuB,CAACwC,cAAc,CAACtC,MAAM,EAAE,CAAC,CAAC;MAE5D,KAAKQ,WAAW,CAACoC,OAAO;AACpB,QAAA,OAAO9C,uBAAuB,CAACwC,cAAc,CAACtC,MAAM,EAAE,EAAE,CAAC;MAE7D,KAAKQ,WAAW,CAACqC,KAAK;AAClB,QAAA,OAAO/C,uBAAuB,CAACgD,SAAS,CAAC9C,MAAM,EAAEE,UAAU,CAAC;MAEhE,KAAKM,WAAW,CAACuC,WAAW;AACxB,QAAA,OAAOjD,uBAAuB,CAACkD,cAAc,CAAChD,MAAM,EAAEE,UAAU,CAAC;MAErE,KAAKM,WAAW,CAACyC,MAAM;MACvB,KAAKzC,WAAW,CAAC0C,UAAU;AACvB,QAAA,OAAOlD,MAAM,CAACe,OAAO,CAACoC,kBAAkB,CAACnD,MAAM,CAAC;MAEpD,KAAKQ,WAAW,CAAC4C,UAAU;MAC3B,KAAK5C,WAAW,CAAC6C,OAAO;AACxB,MAAA;AACI,QAAA,OAAOrD,MAAM,CAACe,OAAO,CAACuC,UAAU,CAACtD,MAAM,CAAC;AAChD;AACJ,EAAA;AAEA,EAAA,OAAOM,cAAcA,CAACN,MAAM,EAAEI,KAAK,EAAEF,UAAU,EAC/C;IACI,QAAQE,KAAK,CAACC,MAAM;AAEhB,MAAA,KAAK,OAAO;QACR,IAAID,KAAK,CAACmD,SAAS,KAAK,MAAM,IAAInD,KAAK,CAACoD,OAAO,IAAI,eAAe,CAACC,IAAI,CAACC,MAAM,CAACtD,KAAK,CAACoD,OAAO,CAAC,CAAC,EAC9F;AACI,UAAA,OAAO1D,uBAAuB,CAAC6D,sBAAsB,CAAC3D,MAAM,EAAEI,KAAK,CAAC;AACxE,QAAA;QACA,OAAON,uBAAuB,CAAC8D,cAAc,CAAC5D,MAAM,EAAEI,KAAK,EAAEF,UAAU,CAAC;AAE5E,MAAA,KAAK,MAAM;AACP,QAAA,OAAOF,MAAM,CAACU,MAAM,EAAE,KAAK,CAAC;AAEhC,MAAA,KAAK,SAAS;AACd,MAAA,KAAK,WAAW;AAChB,MAAA,KAAK,cAAc;AACnB,MAAA,KAAK,WAAW;AACZ,QAAA,OAAOZ,uBAAuB,CAAC+D,aAAa,CAAC7D,MAAM,EAAEE,UAAU,CAAC;AAEpE,MAAA,KAAK,UAAU;AACf,MAAA,KAAK,YAAY;AACjB,MAAA,KAAK,eAAe;AACpB,MAAA,KAAK,YAAY;AACb,QAAA,OAAOF,MAAM,CAAC8D,iBAAiB,EAAE;AAErC,MAAA,KAAK,OAAO;AACR,QAAA,OAAO9D,MAAM,CAACoB,OAAO,EAAE;AAE3B,MAAA,KAAK,QAAQ;AACT,QAAA,OAAOpB,MAAM,CAACsB,OAAO,EAAE;AAE3B,MAAA,KAAK,MAAM;AACP,QAAA,OAAOtB,MAAM,CAACkB,OAAO,EAAE;AAE3B,MAAA,KAAK,OAAO;AACR,QAAA,OAAOlB,MAAM,CAACgC,OAAO,EAAE;AAE3B,MAAA,KAAK,OAAO;AACR,QAAA,OAAOhC,MAAM,CAACkC,OAAO,EAAE;AAE3B,MAAA,KAAK,QAAQ;AACT,QAAA,OAAOlC,MAAM,CAACoC,OAAO,EAAE;AAE3B,MAAA,KAAK,MAAM;AACP,QAAA,OAAOhC,KAAK,CAAC2D,MAAM,GAAG/D,MAAM,CAACwB,MAAM,EAAE,GAAGxB,MAAM,CAACU,MAAM,EAAE;AAE3D,MAAA,KAAK,OAAO;AACR,QAAA,OAAON,KAAK,CAAC2D,MAAM,GAAG/D,MAAM,CAAC2B,OAAO,EAAE,GAAG3B,MAAM,CAAC6B,OAAO,EAAE;AAE7D,MAAA,KAAK,YAAY;AACb,QAAA,OAAO/B,uBAAuB,CAACwC,cAAc,CAACtC,MAAM,EAAEI,KAAK,CAAC4D,MAAM,IAAI9D,UAAU,CAAC8D,MAAM,IAAI,CAAC,CAAC;AAEjG,MAAA,KAAK,aAAa;AACd,QAAA,OAAOlE,uBAAuB,CAACmE,eAAe,CAACjE,MAAM,EAAEI,KAAK,CAAC;AAEjE,MAAA,KAAK,UAAU;AACf,MAAA,KAAK,cAAc;AACf,QAAA,OAAOJ,MAAM,CAACe,OAAO,CAACuC,UAAU,CAACtD,MAAM,CAAC;AAE5C,MAAA;AACI,QAAA,OAAOF,uBAAuB,CAACoE,qBAAqB,CAAClE,MAAM,EAAEE,UAAU,CAAC;AAChF;AACJ,EAAA;AAEA,EAAA,OAAOiE,SAASA,CAACnE,MAAM,EAAEC,KAAK,EAC9B;AACI,IAAA,MAAMC,UAAU,GAAGC,6BAA6B,CAACF,KAAK,CAAC;AACvD,IAAA,IAAIA,KAAK,EAAEG,KAAK,EAAEC,MAAM,EACxB;MACIP,uBAAuB,CAACsE,cAAc,CAACpE,MAAM,EAAEC,KAAK,CAACG,KAAK,EAAEF,UAAU,CAAC;AACvE,MAAA;AACJ,IAAA;IAEA,QAAQA,UAAU,CAACK,IAAI;MAEnB,KAAKC,WAAW,CAACC,OAAO;MACxB,KAAKD,WAAW,CAACe,IAAI;MACrB,KAAKf,WAAW,CAACiB,KAAK;AAClBzB,QAAAA,MAAM,CAACqE,IAAI,CAAC,CAAC,CAAC;AACd,QAAA;MACJ,KAAK7D,WAAW,CAACG,MAAM;MACvB,KAAKH,WAAW,CAACM,IAAI;MACrB,KAAKN,WAAW,CAACI,UAAU;MAC3B,KAAKJ,WAAW,CAACkB,KAAK;MACtB,KAAKlB,WAAW,CAACoB,MAAM;AACnB5B,QAAAA,MAAM,CAACqE,IAAI,CAAC,CAAC,CAAC;AACd,QAAA;MACJ,KAAK7D,WAAW,CAACS,IAAI;MACrB,KAAKT,WAAW,CAACW,OAAO;MACxB,KAAKX,WAAW,CAACsB,KAAK;MACtB,KAAKtB,WAAW,CAACuB,MAAM;AACnB/B,QAAAA,MAAM,CAACqE,IAAI,CAAC,CAAC,CAAC;AACd,QAAA;MACJ,KAAK7D,WAAW,CAACa,OAAO;MACxB,KAAKb,WAAW,CAACyB,KAAK;MACtB,KAAKzB,WAAW,CAAC2B,MAAM;AACnBnC,QAAAA,MAAM,CAACqE,IAAI,CAAC,CAAC,CAAC;AACd,QAAA;MACJ,KAAK7D,WAAW,CAAC6B,OAAO;AACpBrC,QAAAA,MAAM,CAACqE,IAAI,CAAC,CAAC,CAAC;AACd,QAAA;MACJ,KAAK7D,WAAW,CAAC+B,OAAO;AACpBvC,QAAAA,MAAM,CAACqE,IAAI,CAAC,EAAE,CAAC;AACf,QAAA;MACJ,KAAK7D,WAAW,CAACgC,OAAO;MACxB,KAAKhC,WAAW,CAACiC,KAAK;MACtB,KAAKjC,WAAW,CAACkC,UAAU;AACvB1C,QAAAA,MAAM,CAACqE,IAAI,CAAC,EAAE,CAAC;AACf,QAAA;MACJ,KAAK7D,WAAW,CAACmC,OAAO;AACpB3C,QAAAA,MAAM,CAACqE,IAAI,CAAC,EAAE,CAAC;AACf,QAAA;MACJ,KAAK7D,WAAW,CAACoC,OAAO;AACpB5C,QAAAA,MAAM,CAACqE,IAAI,CAAC,EAAE,CAAC;AACf,QAAA;MACJ,KAAK7D,WAAW,CAACqC,KAAK;AAClB/C,QAAAA,uBAAuB,CAACwE,SAAS,CAACtE,MAAM,EAAEE,UAAU,CAAC;AACrD,QAAA;MACJ,KAAKM,WAAW,CAACuC,WAAW;AACxBjD,QAAAA,uBAAuB,CAACyE,cAAc,CAACvE,MAAM,CAAC;AAC9C,QAAA;MACJ,KAAKQ,WAAW,CAACyC,MAAM;MACvB,KAAKzC,WAAW,CAAC0C,UAAU;AACvBlD,QAAAA,MAAM,CAACe,OAAO,CAACyD,kBAAkB,CAACxE,MAAM,CAAC;AACzC,QAAA;MACJ,KAAKQ,WAAW,CAAC4C,UAAU;MAC3B,KAAK5C,WAAW,CAAC6C,OAAO;AACxB,MAAA;AACIrD,QAAAA,MAAM,CAACe,OAAO,CAAC0D,UAAU,CAACzE,MAAM,CAAC;AACzC;AACJ,EAAA;AAEA,EAAA,OAAOoE,cAAcA,CAACpE,MAAM,EAAEI,KAAK,EAAEF,UAAU,EAC/C;IACI,QAAQE,KAAK,CAACC,MAAM;AAEhB,MAAA,KAAK,OAAO;QACR,IAAID,KAAK,CAACmD,SAAS,KAAK,MAAM,IAAInD,KAAK,CAACoD,OAAO,IAAI,eAAe,CAACC,IAAI,CAACC,MAAM,CAACtD,KAAK,CAACoD,OAAO,CAAC,CAAC,EAC9F;AACI1D,UAAAA,uBAAuB,CAAC4E,iBAAiB,CAAC1E,MAAM,CAAC;AACjD,UAAA;AACJ,QAAA;QACAF,uBAAuB,CAAC6E,cAAc,CAAC3E,MAAM,EAAEI,KAAK,EAAEF,UAAU,CAAC;AACjE,QAAA;AACJ,MAAA,KAAK,MAAM;AACX,MAAA,KAAK,MAAM;AACPF,QAAAA,MAAM,CAACqE,IAAI,CAAC,CAAC,CAAC;AACd,QAAA;AACJ,MAAA,KAAK,SAAS;AACd,MAAA,KAAK,WAAW;AAChB,MAAA,KAAK,cAAc;AACnB,MAAA,KAAK,WAAW;AAChB,MAAA,KAAK,UAAU;AACf,MAAA,KAAK,YAAY;AACjB,MAAA,KAAK,eAAe;AACpB,MAAA,KAAK,YAAY;AACjB,MAAA,KAAK,OAAO;AACRrE,QAAAA,MAAM,CAACqE,IAAI,CAAC,CAAC,CAAC;AACd,QAAA;AACJ,MAAA,KAAK,OAAO;AACZ,MAAA,KAAK,MAAM;AACX,MAAA,KAAK,OAAO;AACRrE,QAAAA,MAAM,CAACqE,IAAI,CAAC,CAAC,CAAC;AACd,QAAA;AACJ,MAAA,KAAK,QAAQ;AACb,MAAA,KAAK,OAAO;AACZ,MAAA,KAAK,QAAQ;AACTrE,QAAAA,MAAM,CAACqE,IAAI,CAAC,CAAC,CAAC;AACd,QAAA;AACJ,MAAA,KAAK,YAAY;AACbrE,QAAAA,MAAM,CAACqE,IAAI,CAAC,CAACjE,KAAK,CAAC4D,MAAM,IAAI9D,UAAU,CAAC8D,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;AACzD,QAAA;AACJ,MAAA,KAAK,aAAa;AACdlE,QAAAA,uBAAuB,CAAC8E,eAAe,CAAC5E,MAAM,CAAC;AAC/C,QAAA;AACJ,MAAA,KAAK,UAAU;AACf,MAAA,KAAK,cAAc;AACfA,QAAAA,MAAM,CAACe,OAAO,CAAC0D,UAAU,CAACzE,MAAM,CAAC;AACjC,QAAA;AACJ,MAAA;AACIF,QAAAA,uBAAuB,CAACqE,SAAS,CAACnE,MAAM,EAAE;AAAE6E,UAAAA,MAAM,EAAE3E;AAAW,SAAC,CAAC;AACzE;AACJ,EAAA;AAEA,EAAA,OAAOyD,sBAAsBA,CAAC3D,MAAM,EAAEI,KAAK,EAC3C;AACI,IAAA,OAAON,uBAAuB,CAACgF,iBAAiB,CAAC9E,MAAM,EAAE;MACrDwD,OAAO,EAAEpD,KAAK,CAACoD,OAAO;AACtBuB,MAAAA,WAAW,EAAE;QACTxE,IAAI,EAAEC,WAAW,CAAC0C,UAAU;QAC5BM,OAAO,EAAEpD,KAAK,CAACoD;AACnB;AACJ,KAAC,CAAC;AACN,EAAA;AAEA,EAAA,OAAOU,qBAAqBA,CAAClE,MAAM,EAAEE,UAAU,EAC/C;AACI,IAAA,OAAOJ,uBAAuB,CAACC,SAAS,CAACC,MAAM,EAAE;AAAE6E,MAAAA,MAAM,EAAE3E;AAAW,KAAC,CAAC;AAC5E,EAAA;AAEA,EAAA,OAAO2D,aAAaA,CAAC7D,MAAM,EAAEE,UAAU,EACvC;AACI,IAAA,MAAM8E,KAAK,GAAGhF,MAAM,CAACa,aAAa,EAAE;AACpC,IAAA,OAAOX,UAAU,CAACK,IAAI,KAAKC,WAAW,CAACM,IAAI,GAAGd,MAAM,CAACe,OAAO,CAACC,aAAa,CAACgE,KAAK,CAAC,GAAGA,KAAK;AAC7F,EAAA;AAEA,EAAA,OAAOpB,cAAcA,CAAC5D,MAAM,EAAEI,KAAK,EAAEF,UAAU,EAC/C;AACI,IAAA,IAAIE,KAAK,CAACmD,SAAS,KAAK,MAAM,EAAE,OAAOzD,uBAAuB,CAACmF,QAAQ,CAACjF,MAAM,CAAC;IAC/E,IAAII,KAAK,CAACmD,SAAS,KAAK,MAAM,IAAInD,KAAK,CAACmD,SAAS,KAAK,KAAK,EAAE,OAAOzD,uBAAuB,CAACgD,SAAS,CAAC9C,MAAM,EAAEE,UAAU,CAAC;AACzH,IAAA,OAAOF,MAAM,CAACe,OAAO,CAACoC,kBAAkB,CAACnD,MAAM,CAAC;AACpD,EAAA;AAEA,EAAA,OAAO2E,cAAcA,CAAC3E,MAAM,EAAEI,KAAK,EAAEF,UAAU,EAC/C;AACI,IAAA,IAAIE,KAAK,CAACmD,SAAS,KAAK,MAAM,EAC9B;AACIzD,MAAAA,uBAAuB,CAACoF,QAAQ,CAAClF,MAAM,CAAC;AACxC,MAAA;AACJ,IAAA;IACA,IAAII,KAAK,CAACmD,SAAS,KAAK,MAAM,IAAInD,KAAK,CAACmD,SAAS,KAAK,KAAK,EAC3D;AACIzD,MAAAA,uBAAuB,CAACwE,SAAS,CAACtE,MAAM,EAAEE,UAAU,CAAC;AACrD,MAAA;AACJ,IAAA;AACAF,IAAAA,MAAM,CAACe,OAAO,CAACyD,kBAAkB,CAACxE,MAAM,CAAC;AAC7C,EAAA;EAEA,OAAOiF,QAAQA,CAACjF,MAAM,EACtB;AACI,IAAA,MAAMmF,KAAK,GAAGnF,MAAM,CAACgC,OAAO,EAAE;IAC9B,MAAMoD,MAAM,GAAG,EAAE;IACjB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,KAAK,EAAEE,CAAC,EAAE,EAC9B;AACID,MAAAA,MAAM,CAACpF,MAAM,CAACa,aAAa,EAAE,CAAC,GAAGb,MAAM,CAACe,OAAO,CAACuC,UAAU,CAACtD,MAAM,CAAC;AACtE,IAAA;AACA,IAAA,OAAOoF,MAAM;AACjB,EAAA;EAEA,OAAOF,QAAQA,CAAClF,MAAM,EACtB;AACI,IAAA,MAAMmF,KAAK,GAAGnF,MAAM,CAACgC,OAAO,EAAE;IAC9B,KAAK,IAAIqD,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,KAAK,EAAEE,CAAC,EAAE,EAC9B;AACIrF,MAAAA,MAAM,CAACqE,IAAI,CAAC,CAAC,CAAC;AACdrE,MAAAA,MAAM,CAACe,OAAO,CAAC0D,UAAU,CAACzE,MAAM,CAAC;AACrC,IAAA;AACJ,EAAA;AAEA,EAAA,OAAOiE,eAAeA,CAACjE,MAAM,EAAEI,KAAK,EACpC;AACI,IAAA,MAAMkF,UAAU,GAAGtF,MAAM,CAACkB,OAAO,EAAE;AACnC,IAAA,MAAMqE,KAAK,GAAGvF,MAAM,CAACwF,SAAS,CAACF,UAAU,CAAC;IAC1C,IAAIxF,uBAAuB,CAAC2F,wBAAwB,CAACzF,MAAM,EAAEI,KAAK,EAAEkF,UAAU,CAAC,EAC/E;AACI,MAAA,OAAOxF,uBAAuB,CAAC4F,eAAe,CAACH,KAAK,CAAC;AACzD,IAAA;IAEA,OAAO;AACHI,MAAAA,KAAK,EAAE,mBAAmB;MAC1BtF,MAAM,EAAED,KAAK,CAACC,MAAM;MACpBiF,UAAU;AACVC,MAAAA,KAAK,EAAEK,KAAK,CAACC,IAAI,CAACN,KAAK;KAC1B;AACL,EAAA;AAEA,EAAA,OAAOE,wBAAwBA,CAACzF,MAAM,EAAEI,KAAK,EAAEkF,UAAU,EACzD;AACI,IAAA,IAAIA,UAAU,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK;AACtC,IAAA,IAAItF,MAAM,CAACe,OAAO,EAAE+E,QAAQ,KAAK,UAAU,IAAI,CAAC9F,MAAM,CAACe,OAAO,EAAEgF,OAAO,CAACC,kBAAkB,EAAE,OAAO,KAAK;AACxG,IAAA,OAAO5F,KAAK,CAAC6F,IAAI,KAAK,aAAa,IAC/B7F,KAAK,CAAC8F,SAAS,KAAK,aAAa,IACjC9F,KAAK,CAAC+F,WAAW,KAAK,aAAa;AAC3C,EAAA;EAEA,OAAOT,eAAeA,CAACH,KAAK,EAC5B;IACI,MAAMH,MAAM,GAAG,IAAIgB,WAAW,CAACb,KAAK,CAACD,UAAU,GAAG,CAAC,CAAC;AACpD,IAAA,MAAMe,IAAI,GAAG,IAAIC,QAAQ,CAACf,KAAK,CAACgB,MAAM,EAAEhB,KAAK,CAACiB,UAAU,EAAEjB,KAAK,CAACD,UAAU,CAAC;AAC3E,IAAA,KAAK,IAAID,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,MAAM,CAACpB,MAAM,EAAEqB,CAAC,EAAE,EACtC;AACID,MAAAA,MAAM,CAACC,CAAC,CAAC,GAAGgB,IAAI,CAACI,SAAS,CAACpB,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;AAC3C,IAAA;AACA,IAAA,OAAOD,MAAM;AACjB,EAAA;AAEA,EAAA,OAAOtC,SAASA,CAAC9C,MAAM,EAAEE,UAAU,EACnC;AACI,IAAA,MAAM6E,WAAW,GAAG5E,6BAA6B,CAACD,UAAU,CAAC6E,WAAW,CAAC;AACzE,IAAA,IAAIA,WAAW,CAACxE,IAAI,KAAKC,WAAW,CAAC0C,UAAU,EAC/C;AACI,MAAA,OAAOpD,uBAAuB,CAACgF,iBAAiB,CAAC9E,MAAM,EAAEE,UAAU,CAAC;AACxE,IAAA;AAEA,IAAA,MAAMiF,KAAK,GAAGnF,MAAM,CAACgC,OAAO,EAAE;IAC9B,MAAMoD,MAAM,GAAG,EAAE;IACjB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,KAAK,EAAEE,CAAC,EAAE,EAC9B;MACI,IAAI,CAACnF,UAAU,CAAC6E,WAAW,IAAIA,WAAW,CAACxE,IAAI,KAAKC,WAAW,CAAC4C,UAAU,IAAI2B,WAAW,CAACxE,IAAI,KAAKC,WAAW,CAAC6C,OAAO,EACtH;QACI+B,MAAM,CAACC,CAAC,CAAC,GAAGrF,MAAM,CAACe,OAAO,CAACuC,UAAU,CAACtD,MAAM,CAAC;AACjD,MAAA,CAAC,MAED;QACIoF,MAAM,CAACC,CAAC,CAAC,GAAGvF,uBAAuB,CAACC,SAAS,CAACC,MAAM,EAAE;AAAE6E,UAAAA,MAAM,EAAEE;AAAY,SAAC,CAAC;AAClF,MAAA;AACJ,IAAA;AACA,IAAA,OAAOK,MAAM;AACjB,EAAA;AAEA,EAAA,OAAOd,SAASA,CAACtE,MAAM,EAAEE,UAAU,EACnC;AACI,IAAA,MAAM6E,WAAW,GAAG5E,6BAA6B,CAACD,UAAU,CAAC6E,WAAW,CAAC;AACzE,IAAA,IAAIA,WAAW,CAACxE,IAAI,KAAKC,WAAW,CAAC0C,UAAU,EAC/C;AACIpD,MAAAA,uBAAuB,CAAC4E,iBAAiB,CAAC1E,MAAM,CAAC;AACjD,MAAA;AACJ,IAAA;AAEA,IAAA,MAAMmF,KAAK,GAAGnF,MAAM,CAACgC,OAAO,EAAE;IAC9B,KAAK,IAAIqD,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,KAAK,EAAEE,CAAC,EAAE,EAC9B;MACI,IAAI,CAACnF,UAAU,CAAC6E,WAAW,IAAIA,WAAW,CAACxE,IAAI,KAAKC,WAAW,CAAC4C,UAAU,IAAI2B,WAAW,CAACxE,IAAI,KAAKC,WAAW,CAAC6C,OAAO,EACtH;AACIrD,QAAAA,MAAM,CAACe,OAAO,CAAC0D,UAAU,CAACzE,MAAM,CAAC;AACrC,MAAA,CAAC,MAED;AACIF,QAAAA,uBAAuB,CAACqE,SAAS,CAACnE,MAAM,EAAE;AAAE6E,UAAAA,MAAM,EAAEE;AAAY,SAAC,CAAC;AACtE,MAAA;AACJ,IAAA;AACJ,EAAA;AAEA,EAAA,OAAOzC,cAAcA,CAACtC,MAAM,EAAEmF,KAAK,EACnC;IACI,MAAMC,MAAM,GAAG,EAAE;IACjB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,KAAK,EAAEE,CAAC,EAAE,EAC9B;MACID,MAAM,CAACC,CAAC,CAAC,GAAGrF,MAAM,CAACoB,OAAO,EAAE;AAChC,IAAA;AACA,IAAA,OAAOgE,MAAM;AACjB,EAAA;AAEA,EAAA,OAAON,iBAAiBA,CAAC9E,MAAM,EAAEE,UAAU,EAC3C;AACI,IAAA,MAAMiF,KAAK,GAAGnF,MAAM,CAACkB,OAAO,EAAE;AAC9B,IAAA,MAAMwF,aAAa,GAAG1G,MAAM,CAAC6B,OAAO,EAAE;IACtC,MAAM0D,KAAK,GAAGvF,MAAM,CAACwF,SAAS,CAACL,KAAK,GAAGuB,aAAa,CAAC;IACrD,OAAO;AACHf,MAAAA,KAAK,EAAE,qBAAqB;MAC5BR,KAAK;MACLuB,aAAa;AACblD,MAAAA,OAAO,EAAEtD,UAAU,CAACsD,OAAO,IAAI,IAAI;AACnCuB,MAAAA,WAAW,EAAE7E,UAAU,CAAC6E,WAAW,EAAEvB,OAAO,IAAI,IAAI;AACpD+B,MAAAA,KAAK,EAAEK,KAAK,CAACC,IAAI,CAACN,KAAK;KAC1B;AACL,EAAA;EAEA,OAAOb,iBAAiBA,CAAC1E,MAAM,EAC/B;AACI,IAAA,MAAMmF,KAAK,GAAGnF,MAAM,CAACkB,OAAO,EAAE;AAC9B,IAAA,MAAMwF,aAAa,GAAG1G,MAAM,CAAC6B,OAAO,EAAE;AACtC7B,IAAAA,MAAM,CAACqE,IAAI,CAACc,KAAK,GAAGuB,aAAa,CAAC;AACtC,EAAA;AAEA,EAAA,OAAO1D,cAAcA,CAAChD,MAAM,EAAEE,UAAU,EACxC;AACI,IAAA,MAAMiF,KAAK,GAAGnF,MAAM,CAACgC,OAAO,EAAE;AAC9B,IAAA,MAAM2E,WAAW,GAAG3G,MAAM,CAAC6B,OAAO,EAAE;IACpC,MAAM0D,KAAK,GAAGvF,MAAM,CAACwF,SAAS,CAACL,KAAK,GAAGwB,WAAW,CAAC;IACnD,OAAO;AACHhB,MAAAA,KAAK,EAAE,kBAAkB;MACzBR,KAAK;MACLwB,WAAW;AACXC,MAAAA,EAAE,EAAE1G,UAAU,CAAC0G,EAAE,IAAI,IAAI;AACzBrB,MAAAA,KAAK,EAAEK,KAAK,CAACC,IAAI,CAACN,KAAK;KAC1B;AACL,EAAA;EAEA,OAAOhB,cAAcA,CAACvE,MAAM,EAC5B;AACI,IAAA,MAAMmF,KAAK,GAAGnF,MAAM,CAACgC,OAAO,EAAE;AAC9B,IAAA,MAAM2E,WAAW,GAAG3G,MAAM,CAAC6B,OAAO,EAAE;AACpC7B,IAAAA,MAAM,CAACqE,IAAI,CAACc,KAAK,GAAGwB,WAAW,CAAC;AACpC,EAAA;EAEA,OAAO/B,eAAeA,CAAC5E,MAAM,EAC7B;AACI,IAAA,MAAMsF,UAAU,GAAGtF,MAAM,CAACkB,OAAO,EAAE;AACnClB,IAAAA,MAAM,CAACqE,IAAI,CAACiB,UAAU,CAAC;AAC3B,EAAA;AACJ;;;;"}
|
|
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 /** Reads value from the current Black object-graph reader. */\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 /** Reads black value from the current Black object-graph reader. */\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 /** Advances past value in the current Black object-graph reader. */\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 /** Advances past black value in the current Black object-graph reader. */\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 /** Reads black structure list from the current Black object-graph reader. */\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 /**\n * Reads a schema field through the non-Black fallback decoder for the Black\n * object-graph reader.\n */\n static readValueWithoutBlack(reader, descriptor)\n {\n return CjsBlackPropertyReaders.readValue(reader, { jsType: descriptor });\n }\n\n /**\n * Reads a schema field whose wire value references the Black string table\n * for the Black object-graph reader.\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 /**\n * Reads a nested Black root-interface value for the Black object-graph\n * reader.\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 /**\n * Advances past a nested Black root-interface value for the Black\n * object-graph reader.\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 /** Reads dict from the current Black object-graph reader. */\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 /** Advances past dict in the current Black object-graph reader. */\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 /** Reads binary block from the current Black object-graph reader. */\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 /**\n * Reports whether a binary block is tagged as a 32-bit index buffer for the\n * Black object-graph reader.\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 /**\n * Reads a binary block as an array of unsigned 32-bit integers for the Black\n * object-graph reader.\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 /** Reads array from the current Black object-graph reader. */\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 /** Advances past array in the current Black object-graph reader. */\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 /** Reads float array from the current Black object-graph reader. */\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 /** Reads structure list from the current Black object-graph reader. */\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 /** Advances past structure list in the current Black object-graph reader. */\n static skipStructureList(reader)\n {\n const count = reader.ReadI32();\n const structureSize = reader.ReadU16();\n reader.Skip(count * structureSize);\n }\n\n /** Reads typed array from the current Black object-graph reader. */\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 /** Advances past typed array in the current Black object-graph reader. */\n static skipTypedArray(reader)\n {\n const count = reader.ReadU32();\n const elementSize = reader.ReadU16();\n reader.Skip(count * elementSize);\n }\n\n /** Advances past binary block in the current Black object-graph reader. */\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":";;AAKA;AACA;AACA;AACA;AACA;AACO,MAAMA,uBAAuB,CACpC;AACI;AACA,EAAA,OAAOC,SAASA,CAACC,MAAM,EAAEC,KAAK,EAC9B;AACI,IAAA,MAAMC,UAAU,GAAGC,6BAA6B,CAACF,KAAK,CAAC;AACvD,IAAA,IAAIA,KAAK,EAAEG,KAAK,EAAEC,MAAM,EACxB;MACI,OAAOP,uBAAuB,CAACQ,cAAc,CAACN,MAAM,EAAEC,KAAK,CAACG,KAAK,EAAEF,UAAU,CAAC;AAClF,IAAA;IAEA,QAAQA,UAAU,CAACK,IAAI;MAEnB,KAAKC,WAAW,CAACC,OAAO;AACpB,QAAA,OAAOT,MAAM,CAACU,MAAM,EAAE,KAAK,CAAC;MAEhC,KAAKF,WAAW,CAACG,MAAM;MACvB,KAAKH,WAAW,CAACI,UAAU;AACvB,QAAA,OAAOZ,MAAM,CAACa,aAAa,EAAE;MAEjC,KAAKL,WAAW,CAACM,IAAI;QACjB,OAAOd,MAAM,CAACe,OAAO,CAACC,aAAa,CAAChB,MAAM,CAACa,aAAa,EAAE,CAAC;MAE/D,KAAKL,WAAW,CAACS,IAAI;AACjB,QAAA,OAAOjB,MAAM,CAACkB,OAAO,EAAE;MAE3B,KAAKV,WAAW,CAACW,OAAO;AACpB,QAAA,OAAOnB,MAAM,CAACoB,OAAO,EAAE;MAE3B,KAAKZ,WAAW,CAACa,OAAO;AACpB,QAAA,OAAOrB,MAAM,CAACsB,OAAO,EAAE;MAE3B,KAAKd,WAAW,CAACe,IAAI;AACjB,QAAA,OAAOvB,MAAM,CAACwB,MAAM,EAAE;MAE1B,KAAKhB,WAAW,CAACiB,KAAK;AAClB,QAAA,OAAOzB,MAAM,CAACU,MAAM,EAAE;MAE1B,KAAKF,WAAW,CAACkB,KAAK;AAClB,QAAA,OAAO1B,MAAM,CAAC2B,OAAO,EAAE;MAE3B,KAAKnB,WAAW,CAACoB,MAAM;AACnB,QAAA,OAAO5B,MAAM,CAAC6B,OAAO,EAAE;MAE3B,KAAKrB,WAAW,CAACsB,KAAK;AAClB,QAAA,OAAO9B,MAAM,CAACkB,OAAO,EAAE;MAE3B,KAAKV,WAAW,CAACuB,MAAM;AACnB,QAAA,OAAO/B,MAAM,CAACgC,OAAO,EAAE;MAE3B,KAAKxB,WAAW,CAACyB,KAAK;AAClB,QAAA,OAAOjC,MAAM,CAACkC,OAAO,EAAE;MAE3B,KAAK1B,WAAW,CAAC2B,MAAM;AACnB,QAAA,OAAOnC,MAAM,CAACoC,OAAO,EAAE;MAE3B,KAAK5B,WAAW,CAAC6B,OAAO;AACpB,QAAA,OAAOvC,uBAAuB,CAACwC,cAAc,CAACtC,MAAM,EAAE,CAAC,CAAC;MAE5D,KAAKQ,WAAW,CAAC+B,OAAO;AACpB,QAAA,OAAOzC,uBAAuB,CAACwC,cAAc,CAACtC,MAAM,EAAE,CAAC,CAAC;MAE5D,KAAKQ,WAAW,CAACgC,OAAO;MACxB,KAAKhC,WAAW,CAACiC,KAAK;MACtB,KAAKjC,WAAW,CAACkC,UAAU;AACvB,QAAA,OAAO5C,uBAAuB,CAACwC,cAAc,CAACtC,MAAM,EAAE,CAAC,CAAC;MAE5D,KAAKQ,WAAW,CAACmC,OAAO;AACpB,QAAA,OAAO7C,uBAAuB,CAACwC,cAAc,CAACtC,MAAM,EAAE,CAAC,CAAC;MAE5D,KAAKQ,WAAW,CAACoC,OAAO;AACpB,QAAA,OAAO9C,uBAAuB,CAACwC,cAAc,CAACtC,MAAM,EAAE,EAAE,CAAC;MAE7D,KAAKQ,WAAW,CAACqC,KAAK;AAClB,QAAA,OAAO/C,uBAAuB,CAACgD,SAAS,CAAC9C,MAAM,EAAEE,UAAU,CAAC;MAEhE,KAAKM,WAAW,CAACuC,WAAW;AACxB,QAAA,OAAOjD,uBAAuB,CAACkD,cAAc,CAAChD,MAAM,EAAEE,UAAU,CAAC;MAErE,KAAKM,WAAW,CAACyC,MAAM;MACvB,KAAKzC,WAAW,CAAC0C,UAAU;AACvB,QAAA,OAAOlD,MAAM,CAACe,OAAO,CAACoC,kBAAkB,CAACnD,MAAM,CAAC;MAEpD,KAAKQ,WAAW,CAAC4C,UAAU;MAC3B,KAAK5C,WAAW,CAAC6C,OAAO;AACxB,MAAA;AACI,QAAA,OAAOrD,MAAM,CAACe,OAAO,CAACuC,UAAU,CAACtD,MAAM,CAAC;AAChD;AACJ,EAAA;;AAEA;AACA,EAAA,OAAOM,cAAcA,CAACN,MAAM,EAAEI,KAAK,EAAEF,UAAU,EAC/C;IACI,QAAQE,KAAK,CAACC,MAAM;AAEhB,MAAA,KAAK,OAAO;QACR,IAAID,KAAK,CAACmD,SAAS,KAAK,MAAM,IAAInD,KAAK,CAACoD,OAAO,IAAI,eAAe,CAACC,IAAI,CAACC,MAAM,CAACtD,KAAK,CAACoD,OAAO,CAAC,CAAC,EAC9F;AACI,UAAA,OAAO1D,uBAAuB,CAAC6D,sBAAsB,CAAC3D,MAAM,EAAEI,KAAK,CAAC;AACxE,QAAA;QACA,OAAON,uBAAuB,CAAC8D,cAAc,CAAC5D,MAAM,EAAEI,KAAK,EAAEF,UAAU,CAAC;AAE5E,MAAA,KAAK,MAAM;AACP,QAAA,OAAOF,MAAM,CAACU,MAAM,EAAE,KAAK,CAAC;AAEhC,MAAA,KAAK,SAAS;AACd,MAAA,KAAK,WAAW;AAChB,MAAA,KAAK,cAAc;AACnB,MAAA,KAAK,WAAW;AACZ,QAAA,OAAOZ,uBAAuB,CAAC+D,aAAa,CAAC7D,MAAM,EAAEE,UAAU,CAAC;AAEpE,MAAA,KAAK,UAAU;AACf,MAAA,KAAK,YAAY;AACjB,MAAA,KAAK,eAAe;AACpB,MAAA,KAAK,YAAY;AACb,QAAA,OAAOF,MAAM,CAAC8D,iBAAiB,EAAE;AAErC,MAAA,KAAK,OAAO;AACR,QAAA,OAAO9D,MAAM,CAACoB,OAAO,EAAE;AAE3B,MAAA,KAAK,QAAQ;AACT,QAAA,OAAOpB,MAAM,CAACsB,OAAO,EAAE;AAE3B,MAAA,KAAK,MAAM;AACP,QAAA,OAAOtB,MAAM,CAACkB,OAAO,EAAE;AAE3B,MAAA,KAAK,OAAO;AACR,QAAA,OAAOlB,MAAM,CAACgC,OAAO,EAAE;AAE3B,MAAA,KAAK,OAAO;AACR,QAAA,OAAOhC,MAAM,CAACkC,OAAO,EAAE;AAE3B,MAAA,KAAK,QAAQ;AACT,QAAA,OAAOlC,MAAM,CAACoC,OAAO,EAAE;AAE3B,MAAA,KAAK,MAAM;AACP,QAAA,OAAOhC,KAAK,CAAC2D,MAAM,GAAG/D,MAAM,CAACwB,MAAM,EAAE,GAAGxB,MAAM,CAACU,MAAM,EAAE;AAE3D,MAAA,KAAK,OAAO;AACR,QAAA,OAAON,KAAK,CAAC2D,MAAM,GAAG/D,MAAM,CAAC2B,OAAO,EAAE,GAAG3B,MAAM,CAAC6B,OAAO,EAAE;AAE7D,MAAA,KAAK,YAAY;AACb,QAAA,OAAO/B,uBAAuB,CAACwC,cAAc,CAACtC,MAAM,EAAEI,KAAK,CAAC4D,MAAM,IAAI9D,UAAU,CAAC8D,MAAM,IAAI,CAAC,CAAC;AAEjG,MAAA,KAAK,aAAa;AACd,QAAA,OAAOlE,uBAAuB,CAACmE,eAAe,CAACjE,MAAM,EAAEI,KAAK,CAAC;AAEjE,MAAA,KAAK,UAAU;AACf,MAAA,KAAK,cAAc;AACf,QAAA,OAAOJ,MAAM,CAACe,OAAO,CAACuC,UAAU,CAACtD,MAAM,CAAC;AAE5C,MAAA;AACI,QAAA,OAAOF,uBAAuB,CAACoE,qBAAqB,CAAClE,MAAM,EAAEE,UAAU,CAAC;AAChF;AACJ,EAAA;;AAEA;AACA,EAAA,OAAOiE,SAASA,CAACnE,MAAM,EAAEC,KAAK,EAC9B;AACI,IAAA,MAAMC,UAAU,GAAGC,6BAA6B,CAACF,KAAK,CAAC;AACvD,IAAA,IAAIA,KAAK,EAAEG,KAAK,EAAEC,MAAM,EACxB;MACIP,uBAAuB,CAACsE,cAAc,CAACpE,MAAM,EAAEC,KAAK,CAACG,KAAK,EAAEF,UAAU,CAAC;AACvE,MAAA;AACJ,IAAA;IAEA,QAAQA,UAAU,CAACK,IAAI;MAEnB,KAAKC,WAAW,CAACC,OAAO;MACxB,KAAKD,WAAW,CAACe,IAAI;MACrB,KAAKf,WAAW,CAACiB,KAAK;AAClBzB,QAAAA,MAAM,CAACqE,IAAI,CAAC,CAAC,CAAC;AACd,QAAA;MACJ,KAAK7D,WAAW,CAACG,MAAM;MACvB,KAAKH,WAAW,CAACM,IAAI;MACrB,KAAKN,WAAW,CAACI,UAAU;MAC3B,KAAKJ,WAAW,CAACkB,KAAK;MACtB,KAAKlB,WAAW,CAACoB,MAAM;AACnB5B,QAAAA,MAAM,CAACqE,IAAI,CAAC,CAAC,CAAC;AACd,QAAA;MACJ,KAAK7D,WAAW,CAACS,IAAI;MACrB,KAAKT,WAAW,CAACW,OAAO;MACxB,KAAKX,WAAW,CAACsB,KAAK;MACtB,KAAKtB,WAAW,CAACuB,MAAM;AACnB/B,QAAAA,MAAM,CAACqE,IAAI,CAAC,CAAC,CAAC;AACd,QAAA;MACJ,KAAK7D,WAAW,CAACa,OAAO;MACxB,KAAKb,WAAW,CAACyB,KAAK;MACtB,KAAKzB,WAAW,CAAC2B,MAAM;AACnBnC,QAAAA,MAAM,CAACqE,IAAI,CAAC,CAAC,CAAC;AACd,QAAA;MACJ,KAAK7D,WAAW,CAAC6B,OAAO;AACpBrC,QAAAA,MAAM,CAACqE,IAAI,CAAC,CAAC,CAAC;AACd,QAAA;MACJ,KAAK7D,WAAW,CAAC+B,OAAO;AACpBvC,QAAAA,MAAM,CAACqE,IAAI,CAAC,EAAE,CAAC;AACf,QAAA;MACJ,KAAK7D,WAAW,CAACgC,OAAO;MACxB,KAAKhC,WAAW,CAACiC,KAAK;MACtB,KAAKjC,WAAW,CAACkC,UAAU;AACvB1C,QAAAA,MAAM,CAACqE,IAAI,CAAC,EAAE,CAAC;AACf,QAAA;MACJ,KAAK7D,WAAW,CAACmC,OAAO;AACpB3C,QAAAA,MAAM,CAACqE,IAAI,CAAC,EAAE,CAAC;AACf,QAAA;MACJ,KAAK7D,WAAW,CAACoC,OAAO;AACpB5C,QAAAA,MAAM,CAACqE,IAAI,CAAC,EAAE,CAAC;AACf,QAAA;MACJ,KAAK7D,WAAW,CAACqC,KAAK;AAClB/C,QAAAA,uBAAuB,CAACwE,SAAS,CAACtE,MAAM,EAAEE,UAAU,CAAC;AACrD,QAAA;MACJ,KAAKM,WAAW,CAACuC,WAAW;AACxBjD,QAAAA,uBAAuB,CAACyE,cAAc,CAACvE,MAAM,CAAC;AAC9C,QAAA;MACJ,KAAKQ,WAAW,CAACyC,MAAM;MACvB,KAAKzC,WAAW,CAAC0C,UAAU;AACvBlD,QAAAA,MAAM,CAACe,OAAO,CAACyD,kBAAkB,CAACxE,MAAM,CAAC;AACzC,QAAA;MACJ,KAAKQ,WAAW,CAAC4C,UAAU;MAC3B,KAAK5C,WAAW,CAAC6C,OAAO;AACxB,MAAA;AACIrD,QAAAA,MAAM,CAACe,OAAO,CAAC0D,UAAU,CAACzE,MAAM,CAAC;AACzC;AACJ,EAAA;;AAEA;AACA,EAAA,OAAOoE,cAAcA,CAACpE,MAAM,EAAEI,KAAK,EAAEF,UAAU,EAC/C;IACI,QAAQE,KAAK,CAACC,MAAM;AAEhB,MAAA,KAAK,OAAO;QACR,IAAID,KAAK,CAACmD,SAAS,KAAK,MAAM,IAAInD,KAAK,CAACoD,OAAO,IAAI,eAAe,CAACC,IAAI,CAACC,MAAM,CAACtD,KAAK,CAACoD,OAAO,CAAC,CAAC,EAC9F;AACI1D,UAAAA,uBAAuB,CAAC4E,iBAAiB,CAAC1E,MAAM,CAAC;AACjD,UAAA;AACJ,QAAA;QACAF,uBAAuB,CAAC6E,cAAc,CAAC3E,MAAM,EAAEI,KAAK,EAAEF,UAAU,CAAC;AACjE,QAAA;AACJ,MAAA,KAAK,MAAM;AACX,MAAA,KAAK,MAAM;AACPF,QAAAA,MAAM,CAACqE,IAAI,CAAC,CAAC,CAAC;AACd,QAAA;AACJ,MAAA,KAAK,SAAS;AACd,MAAA,KAAK,WAAW;AAChB,MAAA,KAAK,cAAc;AACnB,MAAA,KAAK,WAAW;AAChB,MAAA,KAAK,UAAU;AACf,MAAA,KAAK,YAAY;AACjB,MAAA,KAAK,eAAe;AACpB,MAAA,KAAK,YAAY;AACjB,MAAA,KAAK,OAAO;AACRrE,QAAAA,MAAM,CAACqE,IAAI,CAAC,CAAC,CAAC;AACd,QAAA;AACJ,MAAA,KAAK,OAAO;AACZ,MAAA,KAAK,MAAM;AACX,MAAA,KAAK,OAAO;AACRrE,QAAAA,MAAM,CAACqE,IAAI,CAAC,CAAC,CAAC;AACd,QAAA;AACJ,MAAA,KAAK,QAAQ;AACb,MAAA,KAAK,OAAO;AACZ,MAAA,KAAK,QAAQ;AACTrE,QAAAA,MAAM,CAACqE,IAAI,CAAC,CAAC,CAAC;AACd,QAAA;AACJ,MAAA,KAAK,YAAY;AACbrE,QAAAA,MAAM,CAACqE,IAAI,CAAC,CAACjE,KAAK,CAAC4D,MAAM,IAAI9D,UAAU,CAAC8D,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;AACzD,QAAA;AACJ,MAAA,KAAK,aAAa;AACdlE,QAAAA,uBAAuB,CAAC8E,eAAe,CAAC5E,MAAM,CAAC;AAC/C,QAAA;AACJ,MAAA,KAAK,UAAU;AACf,MAAA,KAAK,cAAc;AACfA,QAAAA,MAAM,CAACe,OAAO,CAAC0D,UAAU,CAACzE,MAAM,CAAC;AACjC,QAAA;AACJ,MAAA;AACIF,QAAAA,uBAAuB,CAACqE,SAAS,CAACnE,MAAM,EAAE;AAAE6E,UAAAA,MAAM,EAAE3E;AAAW,SAAC,CAAC;AACzE;AACJ,EAAA;;AAEA;AACA,EAAA,OAAOyD,sBAAsBA,CAAC3D,MAAM,EAAEI,KAAK,EAC3C;AACI,IAAA,OAAON,uBAAuB,CAACgF,iBAAiB,CAAC9E,MAAM,EAAE;MACrDwD,OAAO,EAAEpD,KAAK,CAACoD,OAAO;AACtBuB,MAAAA,WAAW,EAAE;QACTxE,IAAI,EAAEC,WAAW,CAAC0C,UAAU;QAC5BM,OAAO,EAAEpD,KAAK,CAACoD;AACnB;AACJ,KAAC,CAAC;AACN,EAAA;;AAEA;AACJ;AACA;AACA;AACI,EAAA,OAAOU,qBAAqBA,CAAClE,MAAM,EAAEE,UAAU,EAC/C;AACI,IAAA,OAAOJ,uBAAuB,CAACC,SAAS,CAACC,MAAM,EAAE;AAAE6E,MAAAA,MAAM,EAAE3E;AAAW,KAAC,CAAC;AAC5E,EAAA;;AAEA;AACJ;AACA;AACA;AACI,EAAA,OAAO2D,aAAaA,CAAC7D,MAAM,EAAEE,UAAU,EACvC;AACI,IAAA,MAAM8E,KAAK,GAAGhF,MAAM,CAACa,aAAa,EAAE;AACpC,IAAA,OAAOX,UAAU,CAACK,IAAI,KAAKC,WAAW,CAACM,IAAI,GAAGd,MAAM,CAACe,OAAO,CAACC,aAAa,CAACgE,KAAK,CAAC,GAAGA,KAAK;AAC7F,EAAA;;AAEA;AACJ;AACA;AACA;AACI,EAAA,OAAOpB,cAAcA,CAAC5D,MAAM,EAAEI,KAAK,EAAEF,UAAU,EAC/C;AACI,IAAA,IAAIE,KAAK,CAACmD,SAAS,KAAK,MAAM,EAAE,OAAOzD,uBAAuB,CAACmF,QAAQ,CAACjF,MAAM,CAAC;IAC/E,IAAII,KAAK,CAACmD,SAAS,KAAK,MAAM,IAAInD,KAAK,CAACmD,SAAS,KAAK,KAAK,EAAE,OAAOzD,uBAAuB,CAACgD,SAAS,CAAC9C,MAAM,EAAEE,UAAU,CAAC;AACzH,IAAA,OAAOF,MAAM,CAACe,OAAO,CAACoC,kBAAkB,CAACnD,MAAM,CAAC;AACpD,EAAA;;AAEA;AACJ;AACA;AACA;AACI,EAAA,OAAO2E,cAAcA,CAAC3E,MAAM,EAAEI,KAAK,EAAEF,UAAU,EAC/C;AACI,IAAA,IAAIE,KAAK,CAACmD,SAAS,KAAK,MAAM,EAC9B;AACIzD,MAAAA,uBAAuB,CAACoF,QAAQ,CAAClF,MAAM,CAAC;AACxC,MAAA;AACJ,IAAA;IACA,IAAII,KAAK,CAACmD,SAAS,KAAK,MAAM,IAAInD,KAAK,CAACmD,SAAS,KAAK,KAAK,EAC3D;AACIzD,MAAAA,uBAAuB,CAACwE,SAAS,CAACtE,MAAM,EAAEE,UAAU,CAAC;AACrD,MAAA;AACJ,IAAA;AACAF,IAAAA,MAAM,CAACe,OAAO,CAACyD,kBAAkB,CAACxE,MAAM,CAAC;AAC7C,EAAA;;AAEA;EACA,OAAOiF,QAAQA,CAACjF,MAAM,EACtB;AACI,IAAA,MAAMmF,KAAK,GAAGnF,MAAM,CAACgC,OAAO,EAAE;IAC9B,MAAMoD,MAAM,GAAG,EAAE;IACjB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,KAAK,EAAEE,CAAC,EAAE,EAC9B;AACID,MAAAA,MAAM,CAACpF,MAAM,CAACa,aAAa,EAAE,CAAC,GAAGb,MAAM,CAACe,OAAO,CAACuC,UAAU,CAACtD,MAAM,CAAC;AACtE,IAAA;AACA,IAAA,OAAOoF,MAAM;AACjB,EAAA;;AAEA;EACA,OAAOF,QAAQA,CAAClF,MAAM,EACtB;AACI,IAAA,MAAMmF,KAAK,GAAGnF,MAAM,CAACgC,OAAO,EAAE;IAC9B,KAAK,IAAIqD,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,KAAK,EAAEE,CAAC,EAAE,EAC9B;AACIrF,MAAAA,MAAM,CAACqE,IAAI,CAAC,CAAC,CAAC;AACdrE,MAAAA,MAAM,CAACe,OAAO,CAAC0D,UAAU,CAACzE,MAAM,CAAC;AACrC,IAAA;AACJ,EAAA;;AAEA;AACA,EAAA,OAAOiE,eAAeA,CAACjE,MAAM,EAAEI,KAAK,EACpC;AACI,IAAA,MAAMkF,UAAU,GAAGtF,MAAM,CAACkB,OAAO,EAAE;AACnC,IAAA,MAAMqE,KAAK,GAAGvF,MAAM,CAACwF,SAAS,CAACF,UAAU,CAAC;IAC1C,IAAIxF,uBAAuB,CAAC2F,wBAAwB,CAACzF,MAAM,EAAEI,KAAK,EAAEkF,UAAU,CAAC,EAC/E;AACI,MAAA,OAAOxF,uBAAuB,CAAC4F,eAAe,CAACH,KAAK,CAAC;AACzD,IAAA;IAEA,OAAO;AACHI,MAAAA,KAAK,EAAE,mBAAmB;MAC1BtF,MAAM,EAAED,KAAK,CAACC,MAAM;MACpBiF,UAAU;AACVC,MAAAA,KAAK,EAAEK,KAAK,CAACC,IAAI,CAACN,KAAK;KAC1B;AACL,EAAA;;AAEA;AACJ;AACA;AACA;AACI,EAAA,OAAOE,wBAAwBA,CAACzF,MAAM,EAAEI,KAAK,EAAEkF,UAAU,EACzD;AACI,IAAA,IAAIA,UAAU,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK;AACtC,IAAA,IAAItF,MAAM,CAACe,OAAO,EAAE+E,QAAQ,KAAK,UAAU,IAAI,CAAC9F,MAAM,CAACe,OAAO,EAAEgF,OAAO,CAACC,kBAAkB,EAAE,OAAO,KAAK;AACxG,IAAA,OAAO5F,KAAK,CAAC6F,IAAI,KAAK,aAAa,IAC/B7F,KAAK,CAAC8F,SAAS,KAAK,aAAa,IACjC9F,KAAK,CAAC+F,WAAW,KAAK,aAAa;AAC3C,EAAA;;AAEA;AACJ;AACA;AACA;EACI,OAAOT,eAAeA,CAACH,KAAK,EAC5B;IACI,MAAMH,MAAM,GAAG,IAAIgB,WAAW,CAACb,KAAK,CAACD,UAAU,GAAG,CAAC,CAAC;AACpD,IAAA,MAAMe,IAAI,GAAG,IAAIC,QAAQ,CAACf,KAAK,CAACgB,MAAM,EAAEhB,KAAK,CAACiB,UAAU,EAAEjB,KAAK,CAACD,UAAU,CAAC;AAC3E,IAAA,KAAK,IAAID,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,MAAM,CAACpB,MAAM,EAAEqB,CAAC,EAAE,EACtC;AACID,MAAAA,MAAM,CAACC,CAAC,CAAC,GAAGgB,IAAI,CAACI,SAAS,CAACpB,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;AAC3C,IAAA;AACA,IAAA,OAAOD,MAAM;AACjB,EAAA;;AAEA;AACA,EAAA,OAAOtC,SAASA,CAAC9C,MAAM,EAAEE,UAAU,EACnC;AACI,IAAA,MAAM6E,WAAW,GAAG5E,6BAA6B,CAACD,UAAU,CAAC6E,WAAW,CAAC;AACzE,IAAA,IAAIA,WAAW,CAACxE,IAAI,KAAKC,WAAW,CAAC0C,UAAU,EAC/C;AACI,MAAA,OAAOpD,uBAAuB,CAACgF,iBAAiB,CAAC9E,MAAM,EAAEE,UAAU,CAAC;AACxE,IAAA;AAEA,IAAA,MAAMiF,KAAK,GAAGnF,MAAM,CAACgC,OAAO,EAAE;IAC9B,MAAMoD,MAAM,GAAG,EAAE;IACjB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,KAAK,EAAEE,CAAC,EAAE,EAC9B;MACI,IAAI,CAACnF,UAAU,CAAC6E,WAAW,IAAIA,WAAW,CAACxE,IAAI,KAAKC,WAAW,CAAC4C,UAAU,IAAI2B,WAAW,CAACxE,IAAI,KAAKC,WAAW,CAAC6C,OAAO,EACtH;QACI+B,MAAM,CAACC,CAAC,CAAC,GAAGrF,MAAM,CAACe,OAAO,CAACuC,UAAU,CAACtD,MAAM,CAAC;AACjD,MAAA,CAAC,MAED;QACIoF,MAAM,CAACC,CAAC,CAAC,GAAGvF,uBAAuB,CAACC,SAAS,CAACC,MAAM,EAAE;AAAE6E,UAAAA,MAAM,EAAEE;AAAY,SAAC,CAAC;AAClF,MAAA;AACJ,IAAA;AACA,IAAA,OAAOK,MAAM;AACjB,EAAA;;AAEA;AACA,EAAA,OAAOd,SAASA,CAACtE,MAAM,EAAEE,UAAU,EACnC;AACI,IAAA,MAAM6E,WAAW,GAAG5E,6BAA6B,CAACD,UAAU,CAAC6E,WAAW,CAAC;AACzE,IAAA,IAAIA,WAAW,CAACxE,IAAI,KAAKC,WAAW,CAAC0C,UAAU,EAC/C;AACIpD,MAAAA,uBAAuB,CAAC4E,iBAAiB,CAAC1E,MAAM,CAAC;AACjD,MAAA;AACJ,IAAA;AAEA,IAAA,MAAMmF,KAAK,GAAGnF,MAAM,CAACgC,OAAO,EAAE;IAC9B,KAAK,IAAIqD,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,KAAK,EAAEE,CAAC,EAAE,EAC9B;MACI,IAAI,CAACnF,UAAU,CAAC6E,WAAW,IAAIA,WAAW,CAACxE,IAAI,KAAKC,WAAW,CAAC4C,UAAU,IAAI2B,WAAW,CAACxE,IAAI,KAAKC,WAAW,CAAC6C,OAAO,EACtH;AACIrD,QAAAA,MAAM,CAACe,OAAO,CAAC0D,UAAU,CAACzE,MAAM,CAAC;AACrC,MAAA,CAAC,MAED;AACIF,QAAAA,uBAAuB,CAACqE,SAAS,CAACnE,MAAM,EAAE;AAAE6E,UAAAA,MAAM,EAAEE;AAAY,SAAC,CAAC;AACtE,MAAA;AACJ,IAAA;AACJ,EAAA;;AAEA;AACA,EAAA,OAAOzC,cAAcA,CAACtC,MAAM,EAAEmF,KAAK,EACnC;IACI,MAAMC,MAAM,GAAG,EAAE;IACjB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,KAAK,EAAEE,CAAC,EAAE,EAC9B;MACID,MAAM,CAACC,CAAC,CAAC,GAAGrF,MAAM,CAACoB,OAAO,EAAE;AAChC,IAAA;AACA,IAAA,OAAOgE,MAAM;AACjB,EAAA;;AAEA;AACA,EAAA,OAAON,iBAAiBA,CAAC9E,MAAM,EAAEE,UAAU,EAC3C;AACI,IAAA,MAAMiF,KAAK,GAAGnF,MAAM,CAACkB,OAAO,EAAE;AAC9B,IAAA,MAAMwF,aAAa,GAAG1G,MAAM,CAAC6B,OAAO,EAAE;IACtC,MAAM0D,KAAK,GAAGvF,MAAM,CAACwF,SAAS,CAACL,KAAK,GAAGuB,aAAa,CAAC;IACrD,OAAO;AACHf,MAAAA,KAAK,EAAE,qBAAqB;MAC5BR,KAAK;MACLuB,aAAa;AACblD,MAAAA,OAAO,EAAEtD,UAAU,CAACsD,OAAO,IAAI,IAAI;AACnCuB,MAAAA,WAAW,EAAE7E,UAAU,CAAC6E,WAAW,EAAEvB,OAAO,IAAI,IAAI;AACpD+B,MAAAA,KAAK,EAAEK,KAAK,CAACC,IAAI,CAACN,KAAK;KAC1B;AACL,EAAA;;AAEA;EACA,OAAOb,iBAAiBA,CAAC1E,MAAM,EAC/B;AACI,IAAA,MAAMmF,KAAK,GAAGnF,MAAM,CAACkB,OAAO,EAAE;AAC9B,IAAA,MAAMwF,aAAa,GAAG1G,MAAM,CAAC6B,OAAO,EAAE;AACtC7B,IAAAA,MAAM,CAACqE,IAAI,CAACc,KAAK,GAAGuB,aAAa,CAAC;AACtC,EAAA;;AAEA;AACA,EAAA,OAAO1D,cAAcA,CAAChD,MAAM,EAAEE,UAAU,EACxC;AACI,IAAA,MAAMiF,KAAK,GAAGnF,MAAM,CAACgC,OAAO,EAAE;AAC9B,IAAA,MAAM2E,WAAW,GAAG3G,MAAM,CAAC6B,OAAO,EAAE;IACpC,MAAM0D,KAAK,GAAGvF,MAAM,CAACwF,SAAS,CAACL,KAAK,GAAGwB,WAAW,CAAC;IACnD,OAAO;AACHhB,MAAAA,KAAK,EAAE,kBAAkB;MACzBR,KAAK;MACLwB,WAAW;AACXC,MAAAA,EAAE,EAAE1G,UAAU,CAAC0G,EAAE,IAAI,IAAI;AACzBrB,MAAAA,KAAK,EAAEK,KAAK,CAACC,IAAI,CAACN,KAAK;KAC1B;AACL,EAAA;;AAEA;EACA,OAAOhB,cAAcA,CAACvE,MAAM,EAC5B;AACI,IAAA,MAAMmF,KAAK,GAAGnF,MAAM,CAACgC,OAAO,EAAE;AAC9B,IAAA,MAAM2E,WAAW,GAAG3G,MAAM,CAAC6B,OAAO,EAAE;AACpC7B,IAAAA,MAAM,CAACqE,IAAI,CAACc,KAAK,GAAGwB,WAAW,CAAC;AACpC,EAAA;;AAEA;EACA,OAAO/B,eAAeA,CAAC5E,MAAM,EAC7B;AACI,IAAA,MAAMsF,UAAU,GAAGtF,MAAM,CAACkB,OAAO,EAAE;AACnClB,IAAAA,MAAM,CAACqE,IAAI,CAACiB,UAAU,CAAC;AAC3B,EAAA;AACJ;;;;"}
|