@carbonenginejs/runtime 0.1.0-alpha.4 → 0.1.0-alpha.5
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/dist/global/blue/BlueClasses.js +200 -0
- package/dist/global/blue/BlueClasses.js.map +1 -0
- package/dist/global/blue/IBlueClasses.js +79 -0
- package/dist/global/blue/IBlueClasses.js.map +1 -0
- package/dist/global/blue/IBlueDynamicResourceConstructor.js +16 -0
- package/dist/global/blue/IBlueDynamicResourceConstructor.js.map +1 -1
- package/dist/global/blue/blue.js +8 -2
- package/dist/global/blue/blue.js.map +1 -1
- package/dist/global/blue/index.js +2 -0
- package/dist/global/blue/index.js.map +1 -1
- package/dist/global/consts/index.js +0 -1
- package/dist/global/consts/index.js.map +1 -1
- package/dist/global/consts/renderContext/formats.js +26 -25
- package/dist/global/consts/renderContext/formats.js.map +1 -1
- package/dist/{trinityal/Tr2BitmapDimensions.js → global/imageio/BitmapDimensions.js} +19 -15
- package/dist/global/imageio/BitmapDimensions.js.map +1 -0
- package/dist/global/imageio/Cutout.js +28 -0
- package/dist/global/imageio/Cutout.js.map +1 -0
- package/dist/global/imageio/HostBitmap.js +1106 -0
- package/dist/global/imageio/HostBitmap.js.map +1 -0
- package/dist/global/imageio/ImageIOResult.js +99 -0
- package/dist/global/imageio/ImageIOResult.js.map +1 -0
- package/dist/global/imageio/ImageUtility.js +205 -0
- package/dist/global/imageio/ImageUtility.js.map +1 -0
- package/dist/global/imageio/LoadParameters.js +86 -0
- package/dist/global/imageio/LoadParameters.js.map +1 -0
- package/dist/global/imageio/Metadata.js +22 -0
- package/dist/global/imageio/Metadata.js.map +1 -0
- package/dist/global/imageio/index.js +8 -0
- package/dist/global/{consts/webgpu → imageio}/index.js.map +1 -1
- package/dist/global/index.js +2 -1
- package/dist/global/index.js.map +1 -1
- package/dist/global/math/color.js +1 -1
- package/dist/global/math/color.js.map +1 -1
- package/dist/global/schema/CjsSchema.js +8 -0
- package/dist/global/schema/CjsSchema.js.map +1 -1
- package/dist/index.js +12 -4
- package/dist/index.js.map +1 -1
- package/dist/resource/CjsResMan.js +47 -7
- package/dist/resource/CjsResMan.js.map +1 -1
- package/dist/resource/Tr2LightProfileRes.js +37 -0
- package/dist/resource/Tr2LightProfileRes.js.map +1 -1
- package/dist/resource/format/CjsByteWriter.js +46 -46
- package/dist/resource/format/CjsByteWriter.js.map +1 -1
- package/dist/resource/format/CjsFormat.js +7 -8
- package/dist/resource/format/CjsFormat.js.map +1 -1
- package/dist/resource/format/CjsFormatStore.js +8 -8
- package/dist/resource/format/CjsFormatStore.js.map +1 -1
- package/dist/resource/format/CjsGeometryFormat.js +114 -0
- package/dist/resource/format/CjsGeometryFormat.js.map +1 -0
- package/dist/resource/format/CjsImageFormat.js +282 -0
- package/dist/resource/format/CjsImageFormat.js.map +1 -0
- package/dist/resource/format/CjsResourceProbe.js +12 -48
- package/dist/resource/format/CjsResourceProbe.js.map +1 -1
- package/dist/resource/format/CjsStringTable.js +37 -37
- package/dist/resource/format/CjsStringTable.js.map +1 -1
- package/dist/resource/format/carbonEffect/CjsCarbonEffectReader.js +10 -10
- package/dist/resource/format/carbonEffect/CjsCarbonEffectReader.js.map +1 -1
- package/dist/resource/format/carbonEffect/CjsCarbonEffectWriter.js +37 -37
- package/dist/resource/format/carbonEffect/CjsCarbonEffectWriter.js.map +1 -1
- package/dist/resource/format/carbonEffect/carbonEffectBackendBlock.js +35 -7
- package/dist/resource/format/carbonEffect/carbonEffectBackendBlock.js.map +1 -1
- package/dist/resource/format/index.js +3 -1
- package/dist/resource/format/index.js.map +1 -1
- package/dist/resource/formats/black/CjsBlackFormat.js +130 -137
- package/dist/resource/formats/black/CjsBlackFormat.js.map +1 -1
- package/dist/resource/formats/bnk/CjsBnkFormat.js +12 -19
- package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
- package/dist/resource/formats/bnk/core/helpers.js +1 -3
- package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
- package/dist/resource/formats/cmf/CjsCmfFormat.js +19 -82
- package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
- package/dist/resource/formats/cmf/core/constants.js +1 -2
- package/dist/resource/formats/cmf/core/constants.js.map +1 -1
- package/dist/resource/formats/{stl/core/targets.js → cmf/core/flatShared.js} +9 -8
- package/dist/resource/formats/cmf/core/flatShared.js.map +1 -0
- package/dist/resource/formats/cmf/core/helpers.js +13 -13
- package/dist/resource/formats/cmf/core/helpers.js.map +1 -1
- package/dist/resource/formats/cmf/core/writer.js +24 -24
- package/dist/resource/formats/cmf/core/writer.js.map +1 -1
- package/dist/resource/formats/dds/CjsDdsFormat.js +134 -17
- package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
- package/dist/resource/formats/dds/core/helpers.js +125 -40
- package/dist/resource/formats/dds/core/helpers.js.map +1 -1
- package/dist/resource/formats/dxbc/CjsDxbcFormat.js +14 -16
- package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
- package/dist/resource/formats/dxbc/core/{container.js → DxbcContainer.js} +2 -2
- package/dist/resource/formats/dxbc/core/DxbcContainer.js.map +1 -0
- package/dist/resource/formats/dxbc/core/{errors.js → DxbcReadError.js} +1 -1
- package/dist/resource/formats/dxbc/core/DxbcReadError.js.map +1 -0
- package/dist/resource/formats/dxbc/core/DxbcReader.js +1 -1
- package/dist/resource/formats/dxbc/core/DxbcReader.js.map +1 -1
- package/dist/resource/formats/dxbc/core/{program.js → DxbcShaderProgram.js} +2 -2
- package/dist/resource/formats/dxbc/core/DxbcShaderProgram.js.map +1 -0
- package/dist/resource/formats/dxbc/core/{signature.js → DxbcSignatureChunk.js} +2 -2
- package/dist/resource/formats/dxbc/core/DxbcSignatureChunk.js.map +1 -0
- package/dist/resource/formats/dxbc/core/decoder.js +2 -2
- package/dist/resource/formats/dxbc/core/decoder.js.map +1 -1
- package/dist/resource/formats/dxbc/core/helpers.js +3 -3
- package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
- package/dist/resource/formats/fbx/CjsFbxFormat.js +18 -20
- package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
- package/dist/resource/formats/flac/CjsFlacFormat.js +7 -13
- package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
- package/dist/resource/formats/fsd/32/CjsFsd32Format.js +29 -29
- package/dist/resource/formats/fsd/32/CjsFsd32Format.js.map +1 -1
- package/dist/resource/formats/fsd/64/CjsFsd64Format.js +3 -3
- package/dist/resource/formats/fsd/64/CjsFsd64Format.js.map +1 -1
- package/dist/resource/formats/fsd/64/core/CjsFsd64Binary.js +23 -23
- package/dist/resource/formats/fsd/64/core/CjsFsd64Binary.js.map +1 -1
- package/dist/resource/formats/fsd/64/core/CjsFsd64Reader.js +8 -8
- package/dist/resource/formats/fsd/64/core/CjsFsd64Reader.js.map +1 -1
- package/dist/resource/formats/fsd/CjsFsdFormat.js +23 -23
- package/dist/resource/formats/fsd/CjsFsdFormat.js.map +1 -1
- package/dist/resource/formats/gif/CjsGifFormat.js +24 -15
- package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
- package/dist/resource/formats/gltf/CjsGltfFormat.js +33 -98
- package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
- package/dist/resource/formats/gltf/core/helpers.js +3 -12
- package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
- package/dist/resource/formats/gr2/CjsGr2Format.js +27 -91
- package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
- package/dist/resource/formats/hlsl/CjsHlslFormat.js +22 -25
- package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
- package/dist/resource/formats/hlsl/core/carbonDescriptionToRuntime.js +1 -1
- package/dist/resource/formats/hlsl/core/carbonDescriptionToRuntime.js.map +1 -1
- package/dist/resource/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js +3 -3
- package/dist/resource/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js.map +1 -1
- package/dist/resource/formats/ies/CjsIESFormat.js +29 -29
- package/dist/resource/formats/ies/CjsIESFormat.js.map +1 -1
- package/dist/resource/formats/jpeg/CjsJpegFormat.js +24 -15
- package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
- package/dist/resource/formats/jpeg/core/helpers.js +3 -5
- package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
- package/dist/resource/formats/jpeg/core/jpeg.js +58 -58
- package/dist/resource/formats/jpeg/core/jpeg.js.map +1 -1
- package/dist/resource/formats/jsonl/CjsJsonlFormat.js +3 -3
- package/dist/resource/formats/jsonl/CjsJsonlFormat.js.map +1 -1
- package/dist/resource/formats/mp3/CjsMp3Format.js +7 -14
- package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
- package/dist/resource/formats/mp3/core/helpers.js +3 -5
- package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
- package/dist/resource/formats/mp4/CjsMp4Format.js +7 -13
- package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
- package/dist/resource/formats/mp4/core/helpers.js +3 -5
- package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
- package/dist/resource/formats/obj/CjsObjFormat.js +92 -157
- package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
- package/dist/resource/formats/obj/core/helpers.js +5 -113
- package/dist/resource/formats/obj/core/helpers.js.map +1 -1
- package/dist/resource/formats/ogg/CjsOggFormat.js +7 -14
- package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
- package/dist/resource/formats/pickle/CjsPickleFormat.js +7 -12
- package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
- package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js +7 -7
- package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js.map +1 -1
- package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js +7 -7
- package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js.map +1 -1
- package/dist/resource/formats/png/CjsPngFormat.js +40 -15
- package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
- package/dist/resource/formats/png/core/helpers.js +4 -6
- package/dist/resource/formats/png/core/helpers.js.map +1 -1
- package/dist/resource/formats/red/CjsRedFormat.js +22 -28
- package/dist/resource/formats/red/CjsRedFormat.js.map +1 -1
- package/dist/resource/formats/schemabound/CjsSchemaBoundFormat.js +3 -7
- package/dist/resource/formats/schemabound/CjsSchemaBoundFormat.js.map +1 -1
- package/dist/resource/formats/schemabound/core/schemaBoundValues.js +5 -0
- package/dist/resource/formats/schemabound/core/schemaBoundValues.js.map +1 -1
- package/dist/resource/formats/sqlite/CjsSqliteFormat.js +4 -9
- package/dist/resource/formats/sqlite/CjsSqliteFormat.js.map +1 -1
- package/dist/resource/formats/static/CjsStaticFormat.js +4 -4
- package/dist/resource/formats/static/CjsStaticFormat.js.map +1 -1
- package/dist/resource/formats/stl/CjsStlFormat.js +39 -104
- package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
- package/dist/resource/formats/stl/core/helpers.js +5 -19
- package/dist/resource/formats/stl/core/helpers.js.map +1 -1
- package/dist/resource/formats/tga/CjsTgaFormat.js +26 -15
- package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
- package/dist/resource/formats/tga/core/helpers.js +3 -5
- package/dist/resource/formats/tga/core/helpers.js.map +1 -1
- package/dist/resource/formats/vta/CjsVtaFormat.js +8 -15
- package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
- package/dist/resource/formats/wav/CjsWavFormat.js +7 -14
- package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
- package/dist/resource/formats/wav/core/helpers.js +3 -5
- package/dist/resource/formats/wav/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgl/CjsWebglFormat.js +103 -105
- package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
- package/dist/resource/formats/webgl/core/{errors.js → WebglReadError.js} +1 -1
- package/dist/resource/formats/webgl/core/WebglReadError.js.map +1 -0
- package/dist/resource/formats/webgl/core/effectPackage.js +1 -1
- package/dist/resource/formats/webgl/core/effectPackage.js.map +1 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +3 -3
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
- package/dist/resource/formats/webgl/core/glsl/{DxbcGlslHelpers.js → DxbcGlslHelperRegistry.js} +2 -2
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslHelperRegistry.js.map +1 -0
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +1 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
- package/dist/resource/formats/webgl/core/glslBackendBlock.js +1 -1
- package/dist/resource/formats/webgl/core/glslBackendBlock.js.map +1 -1
- package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +28 -29
- package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
- package/dist/resource/formats/webgpu/core/{errors.js → WebgpuReadError.js} +1 -1
- package/dist/resource/formats/webgpu/core/WebgpuReadError.js.map +1 -0
- package/dist/resource/formats/webgpu/core/carbonWebgpu/validateContainer.js +1 -1
- package/dist/resource/formats/webgpu/core/carbonWebgpu/validateContainer.js.map +1 -1
- package/dist/resource/formats/webgpu/core/helpers.js +1 -1
- package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgpu/core/ir/lowerDxbcToIr.js +1 -1
- package/dist/resource/formats/webgpu/core/ir/lowerDxbcToIr.js.map +1 -1
- package/dist/resource/formats/webgpu/core/wgsl/buildWgslSet.js +18 -6
- package/dist/resource/formats/webgpu/core/wgsl/buildWgslSet.js.map +1 -1
- package/dist/resource/formats/webgpu/core/wgsl/lowerBindingLayout.js +39 -13
- package/dist/resource/formats/webgpu/core/wgsl/lowerBindingLayout.js.map +1 -1
- package/dist/resource/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js +16 -14
- package/dist/resource/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js.map +1 -1
- package/dist/resource/formats/webm/CjsWebmFormat.js +8 -13
- package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
- package/dist/resource/formats/webm/core/helpers.js +3 -5
- package/dist/resource/formats/webm/core/helpers.js.map +1 -1
- package/dist/resource/formats/webp/CjsWebpFormat.js +8 -12
- package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
- package/dist/resource/formats/wem/CjsWemFormat.js +9 -17
- package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
- package/dist/resource/formats/wem/core/bitStream.js +35 -35
- package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
- package/dist/resource/formats/wem/core/helpers.js +1 -3
- package/dist/resource/formats/wem/core/helpers.js.map +1 -1
- package/dist/resource/formats/yaml/CjsYamlFormat.js +28 -37
- package/dist/resource/formats/yaml/CjsYamlFormat.js.map +1 -1
- package/dist/resource/imageio/ImageIO.js +142 -0
- package/dist/resource/imageio/ImageIO.js.map +1 -0
- package/dist/resource/imageio/index.js +17 -0
- package/dist/resource/imageio/index.js.map +1 -0
- package/dist/resource/index.js +7 -0
- package/dist/resource/index.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectResource.js +24 -2
- package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2Pass.js +76 -5
- package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
- package/dist/resource/texture/CjsTextureArrayConstructor.js +97 -0
- package/dist/resource/texture/CjsTextureArrayConstructor.js.map +1 -0
- package/dist/resource/texture/CjsTexturePackConstructor.js +160 -0
- package/dist/resource/texture/CjsTexturePackConstructor.js.map +1 -0
- package/dist/resource/texture/CjsTexturePipelineStepArray.js +72 -0
- package/dist/resource/texture/CjsTexturePipelineStepArray.js.map +1 -0
- package/dist/resource/texture/CjsTexturePipelineStepConvert.js +73 -0
- package/dist/resource/texture/CjsTexturePipelineStepConvert.js.map +1 -0
- package/dist/resource/texture/CjsTexturePipelineStepPack.js +71 -0
- package/dist/resource/texture/CjsTexturePipelineStepPack.js.map +1 -0
- package/dist/resource/texture/CjsTexturePipelineStepResize.js +123 -0
- package/dist/resource/texture/CjsTexturePipelineStepResize.js.map +1 -0
- package/dist/resource/texture/SolidColorTextureConstructor.js +11 -1
- package/dist/resource/texture/SolidColorTextureConstructor.js.map +1 -1
- package/dist/resource/texture/Tr2ImageRes.js +100 -68
- package/dist/resource/texture/Tr2ImageRes.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipeline.js +45 -25
- package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +34 -1
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +30 -3
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +81 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +36 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js +146 -24
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
- package/dist/resource/texture/TriTextureRes.js +151 -29
- package/dist/resource/texture/TriTextureRes.js.map +1 -1
- package/dist/resource/texture/index.js +7 -0
- package/dist/resource/texture/index.js.map +1 -1
- package/dist/resource/texture/registerTextureResources.js +83 -0
- package/dist/resource/texture/registerTextureResources.js.map +1 -0
- package/dist/resource/texture/solidColorTexture.js +10 -19
- package/dist/resource/texture/solidColorTexture.js.map +1 -1
- package/dist/sof/EveSOF.js +39 -7
- package/dist/sof/EveSOF.js.map +1 -1
- package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js +2 -2
- package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -1
- package/dist/trinity/core/Tr2ImageIOHelpers.js +80 -17
- package/dist/trinity/core/Tr2ImageIOHelpers.js.map +1 -1
- package/dist/trinity/core/Tr2RenderUtils.js +1 -1
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js +49 -62
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -1
- package/dist/trinity/core/Tr2TextureReference.js +114 -0
- package/dist/trinity/core/Tr2TextureReference.js.map +1 -0
- package/dist/trinity/core/device/Tr2DepthStencil.js +2 -2
- package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js +1 -1
- package/dist/trinity/core/index.js +1 -0
- package/dist/trinity/core/index.js.map +1 -1
- package/dist/trinity/core/lighting/Tr2LightManager.js +5 -4
- package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
- package/dist/trinity/core/procedural/GradientTextureConstructor.js +5 -4
- package/dist/trinity/core/procedural/GradientTextureConstructor.js.map +1 -1
- package/dist/trinity/core/procedural/gradientTexture.js +10 -13
- package/dist/trinity/core/procedural/gradientTexture.js.map +1 -1
- package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +1 -1
- package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
- package/dist/trinity/eve/EveImpactOverlay.js +102 -50
- package/dist/trinity/eve/EveImpactOverlay.js.map +1 -1
- package/dist/trinity/eve/EveModularObjectModifier.js +9 -18
- package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
- package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +175 -157
- package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
- package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js +100 -83
- package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +26 -20
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js +368 -179
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -1
- package/dist/trinity/eve/child/EveChildMesh.js +242 -234
- package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
- package/dist/trinity/eve/child/EveChildTurret.js +57 -16
- package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
- package/dist/trinity/eve/child/EveSpaceObjectChild.js +28 -1
- package/dist/trinity/eve/child/EveSpaceObjectChild.js.map +1 -1
- package/dist/trinity/eve/index.js +2 -2
- package/dist/trinity/eve/overlays/EveDamageOverlay.js +5 -1
- package/dist/trinity/eve/overlays/EveDamageOverlay.js.map +1 -1
- package/dist/trinity/eve/scene/EveSpaceScene.js +234 -233
- package/dist/trinity/eve/scene/EveSpaceScene.js.map +1 -1
- package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js +2 -0
- package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +492 -437
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
- package/dist/trinity/generated/index.js +0 -1
- package/dist/trinity/generated/index.js.map +1 -1
- package/dist/trinity/generated/trinityCore/index.js +0 -1
- package/dist/trinity/generated/trinityCore/index.js.map +1 -1
- package/dist/trinity/index.js +3 -3
- package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +10 -1
- package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
- package/dist/trinity/shader/Tr2DataTextureManager.js +152 -66
- package/dist/trinity/shader/Tr2DataTextureManager.js.map +1 -1
- package/dist/trinity/shader/Tr2Material.js +1 -1
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js +5 -5
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -1
- package/dist/trinityal/index.js +1 -1
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js +2 -2
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2SwapChainALStub.js +45 -45
- package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2TextureALStub.js +170 -170
- package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuDevice.js +234 -164
- package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +7 -0
- package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +78 -14
- package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuUtils.js +94 -0
- package/dist/trinityal/webgpu/core/CjsWebgpuUtils.js.map +1 -0
- package/dist/trinityal/webgpu/internal.js +1 -0
- package/dist/trinityal/webgpu/internal.js.map +1 -1
- package/docs/global/reference/classes/README.md +90 -0
- package/docs/resource/concepts/format-capabilities.md +3 -3
- package/docs/resource/formats/README.md +1 -1
- package/docs/resource/reference/classes/core.md +31 -1
- package/docs/resource/reference/classes/formats.md +7 -7
- package/docs/resource/reference/classes/resources.md +76 -16
- package/docs/trinity/reference/classes/generated.md +0 -10
- package/docs/trinity/reference/classes/trinity-core.md +1692 -1682
- package/docs/trinityal/reference/classes/README.md +0 -10
- package/docs/trinityal/webgpu/reference/classes/README.md +276 -266
- package/package.json +4 -3
- package/dist/global/consts/webgpu/index.js +0 -2
- package/dist/global/consts/webgpu/textureFormats.js +0 -180
- package/dist/global/consts/webgpu/textureFormats.js.map +0 -1
- package/dist/resource/formats/dxbc/core/container.js.map +0 -1
- package/dist/resource/formats/dxbc/core/errors.js.map +0 -1
- package/dist/resource/formats/dxbc/core/program.js.map +0 -1
- package/dist/resource/formats/dxbc/core/signature.js.map +0 -1
- package/dist/resource/formats/stl/core/targets.js.map +0 -1
- package/dist/resource/formats/webgl/core/errors.js.map +0 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslHelpers.js.map +0 -1
- package/dist/resource/formats/webgpu/core/errors.js.map +0 -1
- package/dist/resource/texture/texturePipelineBehavior.js +0 -332
- package/dist/resource/texture/texturePipelineBehavior.js.map +0 -1
- package/dist/trinity/generated/trinityCore/Tr2TextureReference.js +0 -40
- package/dist/trinity/generated/trinityCore/Tr2TextureReference.js.map +0 -1
- package/dist/trinityal/Tr2BitmapDimensions.js.map +0 -1
|
@@ -88,15 +88,15 @@ class BitReader extends CjsBitReader {
|
|
|
88
88
|
* LSB-first bit writer that assembles Ogg pages, one packet per page.
|
|
89
89
|
*/
|
|
90
90
|
class OggPageWriter {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
91
|
+
_pages = [];
|
|
92
|
+
_payload = new Uint8Array(OGG_MAX_PAYLOAD);
|
|
93
|
+
_payloadBytes = 0;
|
|
94
|
+
_bitBuffer = 0;
|
|
95
|
+
_bitsStored = 0;
|
|
96
|
+
_granule = 0;
|
|
97
|
+
_sequenceNumber = 0;
|
|
98
|
+
_first = true;
|
|
99
|
+
_continued = false;
|
|
100
100
|
|
|
101
101
|
/**
|
|
102
102
|
* Write a single bit.
|
|
@@ -104,9 +104,9 @@ class OggPageWriter {
|
|
|
104
104
|
* @param {number|boolean} bit Bit value.
|
|
105
105
|
*/
|
|
106
106
|
writeBit(bit) {
|
|
107
|
-
if (bit) this
|
|
108
|
-
this
|
|
109
|
-
if (this
|
|
107
|
+
if (bit) this._bitBuffer |= 1 << this._bitsStored;
|
|
108
|
+
this._bitsStored++;
|
|
109
|
+
if (this._bitsStored === 8) this._flushBits();
|
|
110
110
|
}
|
|
111
111
|
|
|
112
112
|
/**
|
|
@@ -127,20 +127,20 @@ class OggPageWriter {
|
|
|
127
127
|
* @param {number} granule Unsigned granule position (< 2^53).
|
|
128
128
|
*/
|
|
129
129
|
setGranule(granule) {
|
|
130
|
-
this
|
|
130
|
+
this._granule = granule;
|
|
131
131
|
}
|
|
132
132
|
|
|
133
133
|
/** Flushes bits into the current WEM binary writer output. */
|
|
134
|
-
|
|
135
|
-
if (this
|
|
136
|
-
if (this
|
|
134
|
+
_flushBits() {
|
|
135
|
+
if (this._bitsStored === 0) return;
|
|
136
|
+
if (this._payloadBytes === OGG_MAX_PAYLOAD) {
|
|
137
137
|
const error = new Error("wem: packet too large for one Ogg page");
|
|
138
138
|
error.code = "CJS_FORMAT_OUTPUT_NOT_SUPPORTED";
|
|
139
139
|
throw error;
|
|
140
140
|
}
|
|
141
|
-
this
|
|
142
|
-
this
|
|
143
|
-
this
|
|
141
|
+
this._payload[this._payloadBytes++] = this._bitBuffer;
|
|
142
|
+
this._bitsStored = 0;
|
|
143
|
+
this._bitBuffer = 0;
|
|
144
144
|
}
|
|
145
145
|
|
|
146
146
|
/**
|
|
@@ -149,9 +149,9 @@ class OggPageWriter {
|
|
|
149
149
|
* @param {boolean} [last] Mark this page as end-of-stream.
|
|
150
150
|
*/
|
|
151
151
|
flushPage(last = false) {
|
|
152
|
-
this
|
|
153
|
-
if (this
|
|
154
|
-
const payloadBytes = this
|
|
152
|
+
this._flushBits();
|
|
153
|
+
if (this._payloadBytes === 0) return;
|
|
154
|
+
const payloadBytes = this._payloadBytes;
|
|
155
155
|
let segments = Math.floor((payloadBytes + OGG_SEGMENT_SIZE) / OGG_SEGMENT_SIZE);
|
|
156
156
|
if (segments === OGG_MAX_SEGMENTS + 1) segments = OGG_MAX_SEGMENTS;
|
|
157
157
|
const page = new Uint8Array(OGG_HEADER_BYTES + segments + payloadBytes);
|
|
@@ -160,11 +160,11 @@ class OggPageWriter {
|
|
|
160
160
|
page[2] = 0x67;
|
|
161
161
|
page[3] = 0x53;
|
|
162
162
|
page[4] = 0;
|
|
163
|
-
page[5] = (this
|
|
164
|
-
writeU32(page, 6, this
|
|
165
|
-
writeU32(page, 10, Math.floor(this
|
|
163
|
+
page[5] = (this._continued ? 1 : 0) | (this._first ? 2 : 0) | (last ? 4 : 0);
|
|
164
|
+
writeU32(page, 6, this._granule % 0x100000000);
|
|
165
|
+
writeU32(page, 10, Math.floor(this._granule / 0x100000000));
|
|
166
166
|
writeU32(page, 14, 1);
|
|
167
|
-
writeU32(page, 18, this
|
|
167
|
+
writeU32(page, 18, this._sequenceNumber);
|
|
168
168
|
writeU32(page, 22, 0);
|
|
169
169
|
page[26] = segments;
|
|
170
170
|
let bytesLeft = payloadBytes;
|
|
@@ -176,13 +176,13 @@ class OggPageWriter {
|
|
|
176
176
|
page[27 + i] = bytesLeft;
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
|
-
page.set(this
|
|
179
|
+
page.set(this._payload.subarray(0, payloadBytes), OGG_HEADER_BYTES + segments);
|
|
180
180
|
writeU32(page, 22, oggChecksum(page, page.length));
|
|
181
|
-
this
|
|
182
|
-
this
|
|
183
|
-
this
|
|
184
|
-
this
|
|
185
|
-
this
|
|
181
|
+
this._pages.push(page);
|
|
182
|
+
this._sequenceNumber++;
|
|
183
|
+
this._first = false;
|
|
184
|
+
this._continued = false;
|
|
185
|
+
this._payloadBytes = 0;
|
|
186
186
|
}
|
|
187
187
|
|
|
188
188
|
/**
|
|
@@ -192,10 +192,10 @@ class OggPageWriter {
|
|
|
192
192
|
*/
|
|
193
193
|
toBytes() {
|
|
194
194
|
let total = 0;
|
|
195
|
-
for (const page of this
|
|
195
|
+
for (const page of this._pages) total += page.length;
|
|
196
196
|
const bytes = new Uint8Array(total);
|
|
197
197
|
let offset = 0;
|
|
198
|
-
for (const page of this
|
|
198
|
+
for (const page of this._pages) {
|
|
199
199
|
bytes.set(page, offset);
|
|
200
200
|
offset += page.length;
|
|
201
201
|
}
|
|
@@ -208,7 +208,7 @@ class OggPageWriter {
|
|
|
208
208
|
* @returns {number} Page count.
|
|
209
209
|
*/
|
|
210
210
|
get pageCount() {
|
|
211
|
-
return this
|
|
211
|
+
return this._pages.length;
|
|
212
212
|
}
|
|
213
213
|
}
|
|
214
214
|
function writeU32(bytes, offset, value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bitStream.js","sources":["../../../../../../src/resource/formats/wem/core/bitStream.js"],"sourcesContent":["/**\n * Bit-level IO for Wwise Vorbis repacking.\n *\n * Vorbis bitstreams are LSB-first within each byte; both the reader and the\n * Ogg writer here follow that convention. The writer assembles one Ogg page\n * per packet (identification, comment, setup, then one page per audio\n * packet), matching the ww2ogg reference behavior.\n */\n\nimport { CjsBitReader } from \"../../../format/CjsBitReader.js\";\nimport { CjsFormatRangeError } from \"../../../format/CjsFormatError.js\";\n\nconst OGG_HEADER_BYTES = 27;\nconst OGG_MAX_SEGMENTS = 255;\nconst OGG_SEGMENT_SIZE = 255;\nconst OGG_MAX_PAYLOAD = OGG_MAX_SEGMENTS * OGG_SEGMENT_SIZE;\n\nconst CRC_TABLE = buildCrcTable();\n\nfunction buildCrcTable()\n{\n const table = new Uint32Array(256);\n for (let i = 0; i < 256; i++)\n {\n let r = (i << 24) >>> 0;\n for (let bit = 0; bit < 8; bit++)\n {\n r = ((r & 0x80000000) ? ((r << 1) ^ 0x04c11db7) : (r << 1)) >>> 0;\n }\n table[i] = r;\n }\n return table;\n}\n\n/**\n * Compute the Ogg page checksum (forward CRC-32, polynomial 0x04c11db7,\n * zero initial value, no final xor).\n *\n * @param {Uint8Array} bytes Page bytes with the checksum field zeroed.\n * @param {number} length Number of bytes to include.\n * @returns {number} Unsigned 32-bit checksum.\n */\nexport function oggChecksum(bytes, length)\n{\n let crc = 0;\n for (let i = 0; i < length; i++)\n {\n crc = (((crc << 8) >>> 0) ^ CRC_TABLE[((crc >>> 24) ^ bytes[i]) & 0xff]) >>> 0;\n }\n return crc;\n}\n\n/**\n * Error raised when a Wwise Vorbis bitstream runs out mid-read.\n *\n * The `code` is the package-wide truncation code, which `CjsFormatReadError`\n * does not itself carry.\n */\nclass WemBitstreamError extends CjsFormatRangeError\n{\n /** Creates a truncation error with the cursor state that produced it. */\n constructor(message, details = {})\n {\n super(message, details);\n this.name = \"WemBitstreamError\";\n this.code = \"CJS_FORMAT_TRUNCATED\";\n }\n}\n\n/**\n * LSB-first bit reader over a byte range.\n *\n * The bit cursor itself is shared (`CjsBitReader`); Vorbis is LSB-first, which\n * is the shared convention. Only the error identity is Wwise's own: a truncated\n * bitstream here is a truncated FILE, so it throws rather than reporting a\n * recoverable end-of-packet the way the Ogg packet reader does.\n */\nexport class BitReader extends CjsBitReader\n{\n static ReadError = WemBitstreamError;\n\n static endOfDataMessage = \"wem: bitstream out of bits\";\n\n /**\n * Create a reader over `bytes` starting at `offset`.\n *\n * @param {Uint8Array} bytes Source bytes.\n * @param {number} [offset] Starting byte offset.\n */\n constructor(bytes, offset = 0)\n {\n super(bytes, { offset, source: \"wem\" });\n }\n}\n\n/**\n * LSB-first bit writer that assembles Ogg pages, one packet per page.\n */\nexport class OggPageWriter\n{\n #pages = [];\n #payload = new Uint8Array(OGG_MAX_PAYLOAD);\n #payloadBytes = 0;\n #bitBuffer = 0;\n #bitsStored = 0;\n #granule = 0;\n #sequenceNumber = 0;\n #first = true;\n #continued = false;\n\n /**\n * Write a single bit.\n *\n * @param {number|boolean} bit Bit value.\n */\n writeBit(bit)\n {\n if (bit) this.#bitBuffer |= (1 << this.#bitsStored);\n this.#bitsStored++;\n if (this.#bitsStored === 8) this.#flushBits();\n }\n\n /**\n * Write `count` bits of `value` (LSB-first).\n *\n * @param {number} value Unsigned value.\n * @param {number} count Bit count (0..32).\n */\n writeBits(value, count)\n {\n for (let i = 0; i < count; i++)\n {\n this.writeBit((value >>> i) & 1);\n }\n }\n\n /**\n * Set the granule position recorded on the next flushed page.\n *\n * @param {number} granule Unsigned granule position (< 2^53).\n */\n setGranule(granule)\n {\n this.#granule = granule;\n }\n\n /** Flushes bits into the current WEM binary writer output. */\n #flushBits()\n {\n if (this.#bitsStored === 0) return;\n if (this.#payloadBytes === OGG_MAX_PAYLOAD)\n {\n const error = new Error(\"wem: packet too large for one Ogg page\");\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n throw error;\n }\n this.#payload[this.#payloadBytes++] = this.#bitBuffer;\n this.#bitsStored = 0;\n this.#bitBuffer = 0;\n }\n\n /**\n * Finish the current packet and emit it as one Ogg page.\n *\n * @param {boolean} [last] Mark this page as end-of-stream.\n */\n flushPage(last = false)\n {\n this.#flushBits();\n if (this.#payloadBytes === 0) return;\n\n const payloadBytes = this.#payloadBytes;\n let segments = Math.floor((payloadBytes + OGG_SEGMENT_SIZE) / OGG_SEGMENT_SIZE);\n if (segments === OGG_MAX_SEGMENTS + 1) segments = OGG_MAX_SEGMENTS;\n\n const page = new Uint8Array(OGG_HEADER_BYTES + segments + payloadBytes);\n page[0] = 0x4f;\n page[1] = 0x67;\n page[2] = 0x67;\n page[3] = 0x53;\n page[4] = 0;\n page[5] = (this.#continued ? 1 : 0) | (this.#first ? 2 : 0) | (last ? 4 : 0);\n writeU32(page, 6, this.#granule % 0x100000000);\n writeU32(page, 10, Math.floor(this.#granule / 0x100000000));\n writeU32(page, 14, 1);\n writeU32(page, 18, this.#sequenceNumber);\n writeU32(page, 22, 0);\n page[26] = segments;\n\n let bytesLeft = payloadBytes;\n for (let i = 0; i < segments; i++)\n {\n if (bytesLeft >= OGG_SEGMENT_SIZE)\n {\n page[27 + i] = OGG_SEGMENT_SIZE;\n bytesLeft -= OGG_SEGMENT_SIZE;\n }\n else\n {\n page[27 + i] = bytesLeft;\n }\n }\n\n page.set(this.#payload.subarray(0, payloadBytes), OGG_HEADER_BYTES + segments);\n writeU32(page, 22, oggChecksum(page, page.length));\n\n this.#pages.push(page);\n this.#sequenceNumber++;\n this.#first = false;\n this.#continued = false;\n this.#payloadBytes = 0;\n }\n\n /**\n * Concatenate all flushed pages into one buffer.\n *\n * @returns {Uint8Array} Complete Ogg stream bytes.\n */\n toBytes()\n {\n let total = 0;\n for (const page of this.#pages) total += page.length;\n const bytes = new Uint8Array(total);\n let offset = 0;\n for (const page of this.#pages)\n {\n bytes.set(page, offset);\n offset += page.length;\n }\n return bytes;\n }\n\n /**\n * Number of pages flushed so far.\n *\n * @returns {number} Page count.\n */\n get pageCount()\n {\n return this.#pages.length;\n }\n}\n\nfunction writeU32(bytes, offset, value)\n{\n bytes[offset] = value & 0xff;\n bytes[offset + 1] = (value >>> 8) & 0xff;\n bytes[offset + 2] = (value >>> 16) & 0xff;\n bytes[offset + 3] = (value >>> 24) & 0xff;\n}\n\n/**\n * Smallest number of bits needed to represent `value` (Vorbis ilog).\n *\n * @param {number} value Unsigned value.\n * @returns {number} Bit count; 0 when value is 0.\n */\nexport function ilog(value)\n{\n let result = 0;\n let v = value >>> 0;\n while (v)\n {\n result++;\n v >>>= 1;\n }\n return result;\n}\n"],"names":["OGG_HEADER_BYTES","OGG_MAX_SEGMENTS","OGG_SEGMENT_SIZE","OGG_MAX_PAYLOAD","CRC_TABLE","buildCrcTable","table","Uint32Array","i","r","bit","oggChecksum","bytes","length","crc","WemBitstreamError","CjsFormatRangeError","constructor","message","details","name","code","BitReader","CjsBitReader","ReadError","endOfDataMessage","offset","source","OggPageWriter","Uint8Array","writeBit","writeBits","value","count","setGranule","granule","#flushBits","error","Error","flushPage","last","payloadBytes","segments","Math","floor","page","writeU32","bytesLeft","set","subarray","push","toBytes","total","pageCount","ilog","result","v"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bitStream.js","sources":["../../../../../../src/resource/formats/wem/core/bitStream.js"],"sourcesContent":["/**\n * Bit-level IO for Wwise Vorbis repacking.\n *\n * Vorbis bitstreams are LSB-first within each byte; both the reader and the\n * Ogg writer here follow that convention. The writer assembles one Ogg page\n * per packet (identification, comment, setup, then one page per audio\n * packet), matching the ww2ogg reference behavior.\n */\n\nimport { CjsBitReader } from \"../../../format/CjsBitReader.js\";\nimport { CjsFormatRangeError } from \"../../../format/CjsFormatError.js\";\n\nconst OGG_HEADER_BYTES = 27;\nconst OGG_MAX_SEGMENTS = 255;\nconst OGG_SEGMENT_SIZE = 255;\nconst OGG_MAX_PAYLOAD = OGG_MAX_SEGMENTS * OGG_SEGMENT_SIZE;\n\nconst CRC_TABLE = buildCrcTable();\n\nfunction buildCrcTable()\n{\n const table = new Uint32Array(256);\n for (let i = 0; i < 256; i++)\n {\n let r = (i << 24) >>> 0;\n for (let bit = 0; bit < 8; bit++)\n {\n r = ((r & 0x80000000) ? ((r << 1) ^ 0x04c11db7) : (r << 1)) >>> 0;\n }\n table[i] = r;\n }\n return table;\n}\n\n/**\n * Compute the Ogg page checksum (forward CRC-32, polynomial 0x04c11db7,\n * zero initial value, no final xor).\n *\n * @param {Uint8Array} bytes Page bytes with the checksum field zeroed.\n * @param {number} length Number of bytes to include.\n * @returns {number} Unsigned 32-bit checksum.\n */\nexport function oggChecksum(bytes, length)\n{\n let crc = 0;\n for (let i = 0; i < length; i++)\n {\n crc = (((crc << 8) >>> 0) ^ CRC_TABLE[((crc >>> 24) ^ bytes[i]) & 0xff]) >>> 0;\n }\n return crc;\n}\n\n/**\n * Error raised when a Wwise Vorbis bitstream runs out mid-read.\n *\n * The `code` is the package-wide truncation code, which `CjsFormatReadError`\n * does not itself carry.\n */\nclass WemBitstreamError extends CjsFormatRangeError\n{\n /** Creates a truncation error with the cursor state that produced it. */\n constructor(message, details = {})\n {\n super(message, details);\n this.name = \"WemBitstreamError\";\n this.code = \"CJS_FORMAT_TRUNCATED\";\n }\n}\n\n/**\n * LSB-first bit reader over a byte range.\n *\n * The bit cursor itself is shared (`CjsBitReader`); Vorbis is LSB-first, which\n * is the shared convention. Only the error identity is Wwise's own: a truncated\n * bitstream here is a truncated FILE, so it throws rather than reporting a\n * recoverable end-of-packet the way the Ogg packet reader does.\n */\nexport class BitReader extends CjsBitReader\n{\n static ReadError = WemBitstreamError;\n\n static endOfDataMessage = \"wem: bitstream out of bits\";\n\n /**\n * Create a reader over `bytes` starting at `offset`.\n *\n * @param {Uint8Array} bytes Source bytes.\n * @param {number} [offset] Starting byte offset.\n */\n constructor(bytes, offset = 0)\n {\n super(bytes, { offset, source: \"wem\" });\n }\n}\n\n/**\n * LSB-first bit writer that assembles Ogg pages, one packet per page.\n */\nexport class OggPageWriter\n{\n _pages = [];\n _payload = new Uint8Array(OGG_MAX_PAYLOAD);\n _payloadBytes = 0;\n _bitBuffer = 0;\n _bitsStored = 0;\n _granule = 0;\n _sequenceNumber = 0;\n _first = true;\n _continued = false;\n\n /**\n * Write a single bit.\n *\n * @param {number|boolean} bit Bit value.\n */\n writeBit(bit)\n {\n if (bit) this._bitBuffer |= (1 << this._bitsStored);\n this._bitsStored++;\n if (this._bitsStored === 8) this._flushBits();\n }\n\n /**\n * Write `count` bits of `value` (LSB-first).\n *\n * @param {number} value Unsigned value.\n * @param {number} count Bit count (0..32).\n */\n writeBits(value, count)\n {\n for (let i = 0; i < count; i++)\n {\n this.writeBit((value >>> i) & 1);\n }\n }\n\n /**\n * Set the granule position recorded on the next flushed page.\n *\n * @param {number} granule Unsigned granule position (< 2^53).\n */\n setGranule(granule)\n {\n this._granule = granule;\n }\n\n /** Flushes bits into the current WEM binary writer output. */\n _flushBits()\n {\n if (this._bitsStored === 0) return;\n if (this._payloadBytes === OGG_MAX_PAYLOAD)\n {\n const error = new Error(\"wem: packet too large for one Ogg page\");\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n throw error;\n }\n this._payload[this._payloadBytes++] = this._bitBuffer;\n this._bitsStored = 0;\n this._bitBuffer = 0;\n }\n\n /**\n * Finish the current packet and emit it as one Ogg page.\n *\n * @param {boolean} [last] Mark this page as end-of-stream.\n */\n flushPage(last = false)\n {\n this._flushBits();\n if (this._payloadBytes === 0) return;\n\n const payloadBytes = this._payloadBytes;\n let segments = Math.floor((payloadBytes + OGG_SEGMENT_SIZE) / OGG_SEGMENT_SIZE);\n if (segments === OGG_MAX_SEGMENTS + 1) segments = OGG_MAX_SEGMENTS;\n\n const page = new Uint8Array(OGG_HEADER_BYTES + segments + payloadBytes);\n page[0] = 0x4f;\n page[1] = 0x67;\n page[2] = 0x67;\n page[3] = 0x53;\n page[4] = 0;\n page[5] = (this._continued ? 1 : 0) | (this._first ? 2 : 0) | (last ? 4 : 0);\n writeU32(page, 6, this._granule % 0x100000000);\n writeU32(page, 10, Math.floor(this._granule / 0x100000000));\n writeU32(page, 14, 1);\n writeU32(page, 18, this._sequenceNumber);\n writeU32(page, 22, 0);\n page[26] = segments;\n\n let bytesLeft = payloadBytes;\n for (let i = 0; i < segments; i++)\n {\n if (bytesLeft >= OGG_SEGMENT_SIZE)\n {\n page[27 + i] = OGG_SEGMENT_SIZE;\n bytesLeft -= OGG_SEGMENT_SIZE;\n }\n else\n {\n page[27 + i] = bytesLeft;\n }\n }\n\n page.set(this._payload.subarray(0, payloadBytes), OGG_HEADER_BYTES + segments);\n writeU32(page, 22, oggChecksum(page, page.length));\n\n this._pages.push(page);\n this._sequenceNumber++;\n this._first = false;\n this._continued = false;\n this._payloadBytes = 0;\n }\n\n /**\n * Concatenate all flushed pages into one buffer.\n *\n * @returns {Uint8Array} Complete Ogg stream bytes.\n */\n toBytes()\n {\n let total = 0;\n for (const page of this._pages) total += page.length;\n const bytes = new Uint8Array(total);\n let offset = 0;\n for (const page of this._pages)\n {\n bytes.set(page, offset);\n offset += page.length;\n }\n return bytes;\n }\n\n /**\n * Number of pages flushed so far.\n *\n * @returns {number} Page count.\n */\n get pageCount()\n {\n return this._pages.length;\n }\n}\n\nfunction writeU32(bytes, offset, value)\n{\n bytes[offset] = value & 0xff;\n bytes[offset + 1] = (value >>> 8) & 0xff;\n bytes[offset + 2] = (value >>> 16) & 0xff;\n bytes[offset + 3] = (value >>> 24) & 0xff;\n}\n\n/**\n * Smallest number of bits needed to represent `value` (Vorbis ilog).\n *\n * @param {number} value Unsigned value.\n * @returns {number} Bit count; 0 when value is 0.\n */\nexport function ilog(value)\n{\n let result = 0;\n let v = value >>> 0;\n while (v)\n {\n result++;\n v >>>= 1;\n }\n return result;\n}\n"],"names":["OGG_HEADER_BYTES","OGG_MAX_SEGMENTS","OGG_SEGMENT_SIZE","OGG_MAX_PAYLOAD","CRC_TABLE","buildCrcTable","table","Uint32Array","i","r","bit","oggChecksum","bytes","length","crc","WemBitstreamError","CjsFormatRangeError","constructor","message","details","name","code","BitReader","CjsBitReader","ReadError","endOfDataMessage","offset","source","OggPageWriter","_pages","_payload","Uint8Array","_payloadBytes","_bitBuffer","_bitsStored","_granule","_sequenceNumber","_first","_continued","writeBit","_flushBits","writeBits","value","count","setGranule","granule","error","Error","flushPage","last","payloadBytes","segments","Math","floor","page","writeU32","bytesLeft","set","subarray","push","toBytes","total","pageCount","ilog","result","v"],"mappings":"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"}
|
|
@@ -3,7 +3,6 @@ import { convertWemToOgg } from './wemToOgg.js';
|
|
|
3
3
|
import { decodePtadpcm } from './ptadpcm.js';
|
|
4
4
|
|
|
5
5
|
const OUTPUT_RAW = "raw";
|
|
6
|
-
const OUTPUT_JSON = "json";
|
|
7
6
|
const OUTPUT_WEM_JSON = "wemJson";
|
|
8
7
|
const OUTPUT_OGG = "ogg";
|
|
9
8
|
const OUTPUT_PCM = "pcm";
|
|
@@ -53,7 +52,6 @@ function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = "CjsW
|
|
|
53
52
|
/** Normalizes the requested output representation for the WEM format reader. */
|
|
54
53
|
function normalizeEmit(emit, readerName) {
|
|
55
54
|
if (emit === undefined || emit === null) return OUTPUT_RAW;
|
|
56
|
-
if (emit === OUTPUT_JSON) return OUTPUT_WEM_JSON;
|
|
57
55
|
if ([OUTPUT_RAW, OUTPUT_WEM_JSON, OUTPUT_OGG, OUTPUT_PCM].includes(emit)) return emit;
|
|
58
56
|
throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(emit)}`);
|
|
59
57
|
}
|
|
@@ -295,5 +293,5 @@ function readU32(bytes, offset, littleEndian) {
|
|
|
295
293
|
return littleEndian ? (bytes[offset] | bytes[offset + 1] << 8 | bytes[offset + 2] << 16 | bytes[offset + 3] * 0x1000000) >>> 0 : bytes[offset] * 0x1000000 + (bytes[offset + 1] << 16) + (bytes[offset + 2] << 8) + bytes[offset + 3] >>> 0;
|
|
296
294
|
}
|
|
297
295
|
|
|
298
|
-
export { DEFAULT_VALUES,
|
|
296
|
+
export { DEFAULT_VALUES, OUTPUT_OGG, OUTPUT_PCM, OUTPUT_RAW, OUTPUT_WEM_JSON, WEM_CODEC_NAMES, inspectWEM, inspectWithValues, isWEM, normalizeEmit, normalizeValues, readWithValues };
|
|
299
297
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/wem/core/helpers.js"],"sourcesContent":["import { toJsonWithByteSummary as toJsonValue } from \"../../../format/jsonPolicies.js\";\nimport { asUint8Array, readFourCc } from \"#utils/bytes\";\nimport { convertWemToOgg } from \"./wemToOgg.js\";\nimport { decodePtadpcm } from \"./ptadpcm.js\";\n\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_JSON = \"json\";\nexport const OUTPUT_WEM_JSON = \"wemJson\";\nexport const OUTPUT_OGG = \"ogg\";\nexport const OUTPUT_PCM = \"pcm\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_RAW,\n inputType: \"wem\",\n source: \"\"\n});\n\n/**\n * Wwise RIFF format tags mapped to codec names.\n *\n * Tag meanings follow the publicly documented behavior of Wwise media as\n * observed by community tooling (ww2ogg, vgmstream, wwiser). Unknown tags are\n * reported as `wwise-format-0x<tag>` rather than rejected.\n */\nexport const WEM_CODEC_NAMES = Object.freeze({\n 0x0001: \"pcm\",\n 0x0002: \"wwise-ima-adpcm\",\n 0x0069: \"wwise-ima-adpcm\",\n 0x0165: \"xma2\",\n 0x0166: \"xma2\",\n 0x3040: \"wwise-opus\",\n 0x3041: \"wwise-opus-nx\",\n 0x3042: \"wwise-opus-wem\",\n 0x8311: \"wwise-ptadpcm\",\n 0xaac0: \"aac\",\n 0xfffe: \"pcm-extensible\",\n 0xffff: \"wwise-vorbis\"\n});\n\n/**\n * Normalizes reader options against their supported defaults for the WEM format\n * reader.\n */\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsWemFormat\")\n{\n const values = { ...DEFAULT_VALUES, ...(base || {}), ...(options || {}) };\n values.inputType = values.inputType ? String(values.inputType).replace(/^\\./u, \"\").toLowerCase() : \"wem\";\n values.emit = normalizeEmit(values.emit, readerName);\n return values;\n}\n\n/** Normalizes the requested output representation for the WEM format reader. */\nexport function normalizeEmit(emit, readerName)\n{\n if (emit === undefined || emit === null) return OUTPUT_RAW;\n if (emit === OUTPUT_JSON) return OUTPUT_WEM_JSON;\n if ([ OUTPUT_RAW, OUTPUT_WEM_JSON, OUTPUT_OGG, OUTPUT_PCM ].includes(emit)) return emit;\n throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(emit)}`);\n}\n\n/** Returns a byte view over the supplied binary input for the WEM format reader. */\n/**\n * Test for a Wwise RIFF/RIFX WAVE signature.\n *\n * @param {Uint8Array} bytes Candidate bytes.\n * @returns {boolean} True when a RIFF or RIFX WAVE container is present.\n */\nexport function isWEM(bytes)\n{\n if (bytes.byteLength < 12) return false;\n const container = readFourCc(bytes, 0);\n return (container === \"RIFF\" || container === \"RIFX\") && readFourCc(bytes, 8) === \"WAVE\";\n}\n\n/**\n * Inspect Wwise media bytes without decoding audio data.\n *\n * Reports the chunk map, `fmt ` fields, codec identity, and Vorbis sample\n * count/duration when present. Inspection never throws on unknown chunks or\n * codecs; truncated trailing chunks stop the walk.\n *\n * @param {Uint8Array} bytes Wem bytes.\n * @returns {object} Wem metadata.\n */\nexport function inspectWEM(bytes)\n{\n const littleEndian = readFourCc(bytes, 0) !== \"RIFX\";\n const info = {\n sourceFormat: \"wem\",\n container: readFourCc(bytes, 0),\n littleEndian,\n riffSize: readU32(bytes, 4, littleEndian),\n codec: \"\",\n codecTag: 0,\n channels: 0,\n sampleRate: 0,\n byteRate: 0,\n blockAlign: 0,\n bitsPerSample: 0,\n extraSize: 0,\n sampleCount: 0,\n durationSeconds: 0,\n dataOffset: 0,\n dataBytes: 0,\n vorbis: null,\n chunks: []\n };\n\n let offset = 12;\n let fmtOffset = 0;\n let fmtSize = 0;\n let vorbOffset = 0;\n let vorbSize = 0;\n\n while (offset + 8 <= bytes.byteLength)\n {\n const id = readFourCc(bytes, offset);\n const size = readU32(bytes, offset + 4, littleEndian);\n const dataOffset = offset + 8;\n if (dataOffset + size > bytes.byteLength)\n {\n info.chunks.push({ id, offset, dataOffset, size, truncated: true });\n break;\n }\n info.chunks.push({ id, offset, dataOffset, size });\n\n if (id === \"fmt \" && size >= 16)\n {\n fmtOffset = dataOffset;\n fmtSize = size;\n info.codecTag = readU16(bytes, dataOffset, littleEndian);\n info.channels = readU16(bytes, dataOffset + 2, littleEndian);\n info.sampleRate = readU32(bytes, dataOffset + 4, littleEndian);\n info.byteRate = readU32(bytes, dataOffset + 8, littleEndian);\n info.blockAlign = readU16(bytes, dataOffset + 12, littleEndian);\n info.bitsPerSample = readU16(bytes, dataOffset + 14, littleEndian);\n if (size >= 18) info.extraSize = readU16(bytes, dataOffset + 16, littleEndian);\n info.codec = WEM_CODEC_NAMES[info.codecTag] || `wwise-format-0x${info.codecTag.toString(16).padStart(4, \"0\")}`;\n }\n if (id === \"vorb\")\n {\n vorbOffset = dataOffset;\n vorbSize = size;\n }\n if (id === \"data\")\n {\n info.dataOffset = dataOffset;\n info.dataBytes = size;\n }\n\n offset = dataOffset + size + (size & 1);\n }\n\n if (info.codec === \"wwise-vorbis\")\n {\n // Wwise Vorbis stores its sample count in a separate \"vorb\" chunk, or\n // inline in \"fmt \" at +0x18 when the fmt chunk is 0x42 bytes.\n if (!vorbOffset && fmtSize === 0x42)\n {\n vorbOffset = fmtOffset + 0x18;\n vorbSize = fmtSize - 0x18;\n }\n if (vorbOffset && vorbOffset + 4 <= bytes.byteLength)\n {\n info.sampleCount = readU32(bytes, vorbOffset, littleEndian);\n info.vorbis = {\n vorbOffset,\n vorbSize,\n inline: fmtSize === 0x42,\n sampleCount: info.sampleCount\n };\n }\n }\n\n if (info.sampleCount && info.sampleRate)\n {\n info.durationSeconds = info.sampleCount / info.sampleRate;\n }\n else if ((info.codec === \"pcm\" || info.codec === \"pcm-extensible\") && info.byteRate)\n {\n info.durationSeconds = info.dataBytes / info.byteRate;\n }\n\n return info;\n}\n\n/** Inspects input using normalized format options for the WEM format reader. */\nexport function inspectWithValues(input, values = DEFAULT_VALUES)\n{\n const bytes = asUint8Array(input, \"Wem input\");\n if (!isWEM(bytes))\n {\n throw new TypeError(\"CjsWemFormat: expected a RIFF/RIFX WAVE (wem) container\");\n }\n return {\n payloadType: \"audio\",\n mediaTypes: [ \"audio\" ],\n byteLength: bytes.byteLength,\n source: values.source || \"buffer\",\n ...inspectWEM(bytes)\n };\n}\n\n/**\n * Reports whether input is supported under normalized format options for the WEM\n * format reader.\n */\nexport function probeSupportWithValues(input, values = DEFAULT_VALUES)\n{\n try\n {\n const metadata = inspectWithValues(input, values);\n const oggSupport = getOggSupport(metadata);\n const pcmSupport = getPcmSupport(metadata);\n return {\n format: \"wem\",\n source: values.source || \"buffer\",\n supported: metadata.codec ? \"partial\" : \"none\",\n confidence: metadata.codec ? 1 : 0.5,\n preferredOutput: oggSupport.supported ? OUTPUT_OGG : (pcmSupport.supported ? OUTPUT_PCM : \"raw\"),\n reason: metadata.codec\n ? (oggSupport.supported\n ? \"Wwise Vorbis recognized; repacks losslessly to Ogg Vorbis.\"\n : (metadata.codec === \"wwise-vorbis\"\n ? oggSupport.reason\n : \"Wwise media container recognized; payloads pass through undecoded.\"))\n : \"RIFF/RIFX container recognized but no fmt chunk was found.\",\n metadata,\n variants: [\n {\n kind: \"raw\",\n payloadType: \"raw\",\n codec: metadata.codec || \"unknown\",\n mimeType: \"application/octet-stream\",\n supported: true,\n },\n {\n kind: OUTPUT_OGG,\n payloadType: \"raw\",\n codec: \"vorbis\",\n mimeType: \"audio/ogg\",\n supported: oggSupport.supported,\n reason: oggSupport.supported ? \"\" : oggSupport.reason\n },\n {\n kind: OUTPUT_PCM,\n payloadType: OUTPUT_PCM,\n codec: \"float32\",\n supported: pcmSupport.supported,\n reason: pcmSupport.supported ? \"\" : pcmSupport.reason\n }\n ],\n warnings: [],\n errors: []\n };\n }\n catch (error)\n {\n return {\n format: \"wem\",\n source: values.source || \"buffer\",\n supported: \"none\",\n confidence: 0,\n preferredOutput: \"\",\n reason: error.message,\n metadata: null,\n variants: [],\n warnings: [],\n errors: [ error.message ]\n };\n }\n}\n\n// PCM decode routing by codec: PTADPCM decodes through its own module;\n// uncompressed 16-bit PCM deinterleaves directly. Compressed codecs with\n// their own containers (Vorbis, Opus, XMA) are not decoded here - Vorbis\n// repacks to Ogg instead (OUTPUT_OGG).\nfunction decodeToPcm(bytes, metadata)\n{\n if (metadata.codec === \"wwise-ptadpcm\")\n {\n return decodePtadpcm(bytes, metadata);\n }\n if ((metadata.codec === \"pcm\" || metadata.codec === \"pcm-extensible\") && metadata.bitsPerSample === 16)\n {\n const channels = Math.max(1, metadata.channels);\n const sampleCount = Math.floor(metadata.dataBytes / (2 * channels));\n const channelData = [];\n for (let channel = 0; channel < channels; channel++)\n {\n channelData.push(new Float32Array(sampleCount));\n }\n for (let i = 0; i < sampleCount; i++)\n {\n for (let channel = 0; channel < channels; channel++)\n {\n const at = metadata.dataOffset + (i * channels + channel) * 2;\n const raw = bytes[at] | (bytes[at + 1] << 8);\n channelData[channel][i] = (raw >= 0x8000 ? raw - 0x10000 : raw) / 32768;\n }\n }\n return { channelData, sampleCount, sampleRate: metadata.sampleRate, channels };\n }\n const error = new Error(`wem: pcm decode is not supported for codec ${metadata.codec || \"unknown\"}`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = \"wem\";\n throw error;\n}\n\nfunction getPcmSupport(metadata)\n{\n if (metadata.codec === \"wwise-ptadpcm\") return { supported: true, reason: \"\" };\n if ((metadata.codec === \"pcm\" || metadata.codec === \"pcm-extensible\") && metadata.bitsPerSample === 16)\n {\n return { supported: true, reason: \"\" };\n }\n return {\n supported: false,\n reason: \"PCM decode covers PTADPCM and 16-bit PCM; use the ogg emit for Wwise Vorbis.\"\n };\n}\n\nfunction getOggSupport(metadata)\n{\n if (metadata.codec !== \"wwise-vorbis\")\n {\n return {\n supported: false,\n reason: \"Only Wwise Vorbis media can be repacked to Ogg.\"\n };\n }\n\n const vorbSize = metadata.vorbis?.vorbSize;\n if (vorbSize === 0x28 || vorbSize === 0x2c)\n {\n return {\n supported: false,\n reason: \"Wwise Vorbis recognized, but old header-triad Wwise Vorbis is not supported by this repacker.\"\n };\n }\n\n if (!metadata.vorbis)\n {\n return {\n supported: false,\n reason: \"Wwise Vorbis recognized, but no Vorbis layout metadata was found.\"\n };\n }\n\n return { supported: true, reason: \"\" };\n}\n\n/** Reads input using normalized format options for the WEM format reader. */\nexport function readWithValues(input, values = DEFAULT_VALUES)\n{\n const bytes = asUint8Array(input, \"Wem input\");\n const metadata = inspectWithValues(bytes, values);\n if (values.emit === OUTPUT_WEM_JSON) return metadata;\n if (values.emit === OUTPUT_OGG)\n {\n if (metadata.codec !== \"wwise-vorbis\")\n {\n const error = new Error(`wem: only Wwise Vorbis can be repacked to Ogg (found ${metadata.codec || \"unknown\"})`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = \"wem\";\n throw error;\n }\n const ogg = convertWemToOgg(bytes, { codebooks: values.codebooks });\n return {\n payloadType: \"raw\",\n sourceFormat: \"wem\",\n outputFormat: \"ogg\",\n codec: \"vorbis\",\n mimeType: \"audio/ogg\",\n sampleCount: ogg.sampleCount,\n sampleRate: ogg.sampleRate,\n channels: ogg.channels,\n durationSeconds: ogg.durationSeconds,\n loop: ogg.loop,\n pageCount: ogg.pageCount,\n metadata,\n bytes: ogg.bytes\n };\n }\n if (values.emit === OUTPUT_PCM)\n {\n const decoded = decodeToPcm(bytes, metadata);\n return {\n payloadType: OUTPUT_PCM,\n sourceFormat: \"wem\",\n outputFormat: OUTPUT_PCM,\n codec: \"float32\",\n sourceCodec: metadata.codec,\n sampleCount: decoded.sampleCount,\n sampleRate: decoded.sampleRate,\n channels: decoded.channels,\n durationSeconds: decoded.sampleRate ? decoded.sampleCount / decoded.sampleRate : 0,\n channelData: decoded.channelData,\n metadata\n };\n }\n if (values.emit === OUTPUT_RAW)\n {\n return {\n payloadType: \"raw\",\n sourceFormat: \"wem\",\n codec: metadata.codec,\n mimeType: \"application/octet-stream\",\n metadata,\n bytes\n };\n }\n\n const error = new Error(`wem: emit \"${values.emit}\" is not implemented yet`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED\";\n error.sourceFormat = \"wem\";\n error.emit = values.emit;\n throw error;\n}\n\n/** Converts a parsed payload into a JSON-safe value for the WEM format reader. */\n/** The shared JSON policy for this reader, under the name its callers use. */\nexport { toJsonValue };\n\n\nfunction readU16(bytes, offset, littleEndian)\n{\n return littleEndian\n ? bytes[offset] | (bytes[offset + 1] << 8)\n : (bytes[offset] << 8) | bytes[offset + 1];\n}\n\nfunction readU32(bytes, offset, littleEndian)\n{\n return littleEndian\n ? (bytes[offset] | (bytes[offset + 1] << 8) | (bytes[offset + 2] << 16) | (bytes[offset + 3] * 0x1000000)) >>> 0\n : ((bytes[offset] * 0x1000000) + (bytes[offset + 1] << 16) + (bytes[offset + 2] << 8) + bytes[offset + 3]) >>> 0;\n}\n\n"],"names":["OUTPUT_RAW","OUTPUT_JSON","OUTPUT_WEM_JSON","OUTPUT_OGG","OUTPUT_PCM","DEFAULT_VALUES","Object","freeze","emit","inputType","source","WEM_CODEC_NAMES","normalizeValues","base","options","readerName","values","String","replace","toLowerCase","normalizeEmit","undefined","includes","TypeError","JSON","stringify","isWEM","bytes","byteLength","container","readFourCc","inspectWEM","littleEndian","info","sourceFormat","riffSize","readU32","codec","codecTag","channels","sampleRate","byteRate","blockAlign","bitsPerSample","extraSize","sampleCount","durationSeconds","dataOffset","dataBytes","vorbis","chunks","offset","fmtOffset","fmtSize","vorbOffset","vorbSize","id","size","push","truncated","readU16","toString","padStart","inline","inspectWithValues","input","asUint8Array","payloadType","mediaTypes","decodeToPcm","metadata","decodePtadpcm","Math","max","floor","channelData","channel","Float32Array","i","at","raw","error","Error","code","readWithValues","ogg","convertWemToOgg","codebooks","outputFormat","mimeType","loop","pageCount","decoded","sourceCodec"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/wem/core/helpers.js"],"sourcesContent":["import { toJsonWithByteSummary as toJsonValue } from \"../../../format/jsonPolicies.js\";\nimport { asUint8Array, readFourCc } from \"#utils/bytes\";\nimport { convertWemToOgg } from \"./wemToOgg.js\";\nimport { decodePtadpcm } from \"./ptadpcm.js\";\n\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_JSON = \"json\";\nexport const OUTPUT_WEM_JSON = \"wemJson\";\nexport const OUTPUT_OGG = \"ogg\";\nexport const OUTPUT_PCM = \"pcm\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_RAW,\n inputType: \"wem\",\n source: \"\"\n});\n\n/**\n * Wwise RIFF format tags mapped to codec names.\n *\n * Tag meanings follow the publicly documented behavior of Wwise media as\n * observed by community tooling (ww2ogg, vgmstream, wwiser). Unknown tags are\n * reported as `wwise-format-0x<tag>` rather than rejected.\n */\nexport const WEM_CODEC_NAMES = Object.freeze({\n 0x0001: \"pcm\",\n 0x0002: \"wwise-ima-adpcm\",\n 0x0069: \"wwise-ima-adpcm\",\n 0x0165: \"xma2\",\n 0x0166: \"xma2\",\n 0x3040: \"wwise-opus\",\n 0x3041: \"wwise-opus-nx\",\n 0x3042: \"wwise-opus-wem\",\n 0x8311: \"wwise-ptadpcm\",\n 0xaac0: \"aac\",\n 0xfffe: \"pcm-extensible\",\n 0xffff: \"wwise-vorbis\"\n});\n\n/**\n * Normalizes reader options against their supported defaults for the WEM format\n * reader.\n */\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsWemFormat\")\n{\n const values = { ...DEFAULT_VALUES, ...(base || {}), ...(options || {}) };\n values.inputType = values.inputType ? String(values.inputType).replace(/^\\./u, \"\").toLowerCase() : \"wem\";\n values.emit = normalizeEmit(values.emit, readerName);\n return values;\n}\n\n/** Normalizes the requested output representation for the WEM format reader. */\nexport function normalizeEmit(emit, readerName)\n{\n if (emit === undefined || emit === null) return OUTPUT_RAW;\n if ([ OUTPUT_RAW, OUTPUT_WEM_JSON, OUTPUT_OGG, OUTPUT_PCM ].includes(emit)) return emit;\n throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(emit)}`);\n}\n\n/** Returns a byte view over the supplied binary input for the WEM format reader. */\n/**\n * Test for a Wwise RIFF/RIFX WAVE signature.\n *\n * @param {Uint8Array} bytes Candidate bytes.\n * @returns {boolean} True when a RIFF or RIFX WAVE container is present.\n */\nexport function isWEM(bytes)\n{\n if (bytes.byteLength < 12) return false;\n const container = readFourCc(bytes, 0);\n return (container === \"RIFF\" || container === \"RIFX\") && readFourCc(bytes, 8) === \"WAVE\";\n}\n\n/**\n * Inspect Wwise media bytes without decoding audio data.\n *\n * Reports the chunk map, `fmt ` fields, codec identity, and Vorbis sample\n * count/duration when present. Inspection never throws on unknown chunks or\n * codecs; truncated trailing chunks stop the walk.\n *\n * @param {Uint8Array} bytes Wem bytes.\n * @returns {object} Wem metadata.\n */\nexport function inspectWEM(bytes)\n{\n const littleEndian = readFourCc(bytes, 0) !== \"RIFX\";\n const info = {\n sourceFormat: \"wem\",\n container: readFourCc(bytes, 0),\n littleEndian,\n riffSize: readU32(bytes, 4, littleEndian),\n codec: \"\",\n codecTag: 0,\n channels: 0,\n sampleRate: 0,\n byteRate: 0,\n blockAlign: 0,\n bitsPerSample: 0,\n extraSize: 0,\n sampleCount: 0,\n durationSeconds: 0,\n dataOffset: 0,\n dataBytes: 0,\n vorbis: null,\n chunks: []\n };\n\n let offset = 12;\n let fmtOffset = 0;\n let fmtSize = 0;\n let vorbOffset = 0;\n let vorbSize = 0;\n\n while (offset + 8 <= bytes.byteLength)\n {\n const id = readFourCc(bytes, offset);\n const size = readU32(bytes, offset + 4, littleEndian);\n const dataOffset = offset + 8;\n if (dataOffset + size > bytes.byteLength)\n {\n info.chunks.push({ id, offset, dataOffset, size, truncated: true });\n break;\n }\n info.chunks.push({ id, offset, dataOffset, size });\n\n if (id === \"fmt \" && size >= 16)\n {\n fmtOffset = dataOffset;\n fmtSize = size;\n info.codecTag = readU16(bytes, dataOffset, littleEndian);\n info.channels = readU16(bytes, dataOffset + 2, littleEndian);\n info.sampleRate = readU32(bytes, dataOffset + 4, littleEndian);\n info.byteRate = readU32(bytes, dataOffset + 8, littleEndian);\n info.blockAlign = readU16(bytes, dataOffset + 12, littleEndian);\n info.bitsPerSample = readU16(bytes, dataOffset + 14, littleEndian);\n if (size >= 18) info.extraSize = readU16(bytes, dataOffset + 16, littleEndian);\n info.codec = WEM_CODEC_NAMES[info.codecTag] || `wwise-format-0x${info.codecTag.toString(16).padStart(4, \"0\")}`;\n }\n if (id === \"vorb\")\n {\n vorbOffset = dataOffset;\n vorbSize = size;\n }\n if (id === \"data\")\n {\n info.dataOffset = dataOffset;\n info.dataBytes = size;\n }\n\n offset = dataOffset + size + (size & 1);\n }\n\n if (info.codec === \"wwise-vorbis\")\n {\n // Wwise Vorbis stores its sample count in a separate \"vorb\" chunk, or\n // inline in \"fmt \" at +0x18 when the fmt chunk is 0x42 bytes.\n if (!vorbOffset && fmtSize === 0x42)\n {\n vorbOffset = fmtOffset + 0x18;\n vorbSize = fmtSize - 0x18;\n }\n if (vorbOffset && vorbOffset + 4 <= bytes.byteLength)\n {\n info.sampleCount = readU32(bytes, vorbOffset, littleEndian);\n info.vorbis = {\n vorbOffset,\n vorbSize,\n inline: fmtSize === 0x42,\n sampleCount: info.sampleCount\n };\n }\n }\n\n if (info.sampleCount && info.sampleRate)\n {\n info.durationSeconds = info.sampleCount / info.sampleRate;\n }\n else if ((info.codec === \"pcm\" || info.codec === \"pcm-extensible\") && info.byteRate)\n {\n info.durationSeconds = info.dataBytes / info.byteRate;\n }\n\n return info;\n}\n\n/** Inspects input using normalized format options for the WEM format reader. */\nexport function inspectWithValues(input, values = DEFAULT_VALUES)\n{\n const bytes = asUint8Array(input, \"Wem input\");\n if (!isWEM(bytes))\n {\n throw new TypeError(\"CjsWemFormat: expected a RIFF/RIFX WAVE (wem) container\");\n }\n return {\n payloadType: \"audio\",\n mediaTypes: [ \"audio\" ],\n byteLength: bytes.byteLength,\n source: values.source || \"buffer\",\n ...inspectWEM(bytes)\n };\n}\n\n/**\n * Reports whether input is supported under normalized format options for the WEM\n * format reader.\n */\nexport function probeSupportWithValues(input, values = DEFAULT_VALUES)\n{\n try\n {\n const metadata = inspectWithValues(input, values);\n const oggSupport = getOggSupport(metadata);\n const pcmSupport = getPcmSupport(metadata);\n return {\n format: \"wem\",\n source: values.source || \"buffer\",\n supported: metadata.codec ? \"partial\" : \"none\",\n confidence: metadata.codec ? 1 : 0.5,\n preferredOutput: oggSupport.supported ? OUTPUT_OGG : (pcmSupport.supported ? OUTPUT_PCM : \"raw\"),\n reason: metadata.codec\n ? (oggSupport.supported\n ? \"Wwise Vorbis recognized; repacks losslessly to Ogg Vorbis.\"\n : (metadata.codec === \"wwise-vorbis\"\n ? oggSupport.reason\n : \"Wwise media container recognized; payloads pass through undecoded.\"))\n : \"RIFF/RIFX container recognized but no fmt chunk was found.\",\n metadata,\n variants: [\n {\n kind: \"raw\",\n payloadType: \"raw\",\n codec: metadata.codec || \"unknown\",\n mimeType: \"application/octet-stream\",\n supported: true,\n },\n {\n kind: OUTPUT_OGG,\n payloadType: \"raw\",\n codec: \"vorbis\",\n mimeType: \"audio/ogg\",\n supported: oggSupport.supported,\n reason: oggSupport.supported ? \"\" : oggSupport.reason\n },\n {\n kind: OUTPUT_PCM,\n payloadType: OUTPUT_PCM,\n codec: \"float32\",\n supported: pcmSupport.supported,\n reason: pcmSupport.supported ? \"\" : pcmSupport.reason\n }\n ],\n warnings: [],\n errors: []\n };\n }\n catch (error)\n {\n return {\n format: \"wem\",\n source: values.source || \"buffer\",\n supported: \"none\",\n confidence: 0,\n preferredOutput: \"\",\n reason: error.message,\n metadata: null,\n variants: [],\n warnings: [],\n errors: [ error.message ]\n };\n }\n}\n\n// PCM decode routing by codec: PTADPCM decodes through its own module;\n// uncompressed 16-bit PCM deinterleaves directly. Compressed codecs with\n// their own containers (Vorbis, Opus, XMA) are not decoded here - Vorbis\n// repacks to Ogg instead (OUTPUT_OGG).\nfunction decodeToPcm(bytes, metadata)\n{\n if (metadata.codec === \"wwise-ptadpcm\")\n {\n return decodePtadpcm(bytes, metadata);\n }\n if ((metadata.codec === \"pcm\" || metadata.codec === \"pcm-extensible\") && metadata.bitsPerSample === 16)\n {\n const channels = Math.max(1, metadata.channels);\n const sampleCount = Math.floor(metadata.dataBytes / (2 * channels));\n const channelData = [];\n for (let channel = 0; channel < channels; channel++)\n {\n channelData.push(new Float32Array(sampleCount));\n }\n for (let i = 0; i < sampleCount; i++)\n {\n for (let channel = 0; channel < channels; channel++)\n {\n const at = metadata.dataOffset + (i * channels + channel) * 2;\n const raw = bytes[at] | (bytes[at + 1] << 8);\n channelData[channel][i] = (raw >= 0x8000 ? raw - 0x10000 : raw) / 32768;\n }\n }\n return { channelData, sampleCount, sampleRate: metadata.sampleRate, channels };\n }\n const error = new Error(`wem: pcm decode is not supported for codec ${metadata.codec || \"unknown\"}`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = \"wem\";\n throw error;\n}\n\nfunction getPcmSupport(metadata)\n{\n if (metadata.codec === \"wwise-ptadpcm\") return { supported: true, reason: \"\" };\n if ((metadata.codec === \"pcm\" || metadata.codec === \"pcm-extensible\") && metadata.bitsPerSample === 16)\n {\n return { supported: true, reason: \"\" };\n }\n return {\n supported: false,\n reason: \"PCM decode covers PTADPCM and 16-bit PCM; use the ogg emit for Wwise Vorbis.\"\n };\n}\n\nfunction getOggSupport(metadata)\n{\n if (metadata.codec !== \"wwise-vorbis\")\n {\n return {\n supported: false,\n reason: \"Only Wwise Vorbis media can be repacked to Ogg.\"\n };\n }\n\n const vorbSize = metadata.vorbis?.vorbSize;\n if (vorbSize === 0x28 || vorbSize === 0x2c)\n {\n return {\n supported: false,\n reason: \"Wwise Vorbis recognized, but old header-triad Wwise Vorbis is not supported by this repacker.\"\n };\n }\n\n if (!metadata.vorbis)\n {\n return {\n supported: false,\n reason: \"Wwise Vorbis recognized, but no Vorbis layout metadata was found.\"\n };\n }\n\n return { supported: true, reason: \"\" };\n}\n\n/** Reads input using normalized format options for the WEM format reader. */\nexport function readWithValues(input, values = DEFAULT_VALUES)\n{\n const bytes = asUint8Array(input, \"Wem input\");\n const metadata = inspectWithValues(bytes, values);\n if (values.emit === OUTPUT_WEM_JSON) return metadata;\n if (values.emit === OUTPUT_OGG)\n {\n if (metadata.codec !== \"wwise-vorbis\")\n {\n const error = new Error(`wem: only Wwise Vorbis can be repacked to Ogg (found ${metadata.codec || \"unknown\"})`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = \"wem\";\n throw error;\n }\n const ogg = convertWemToOgg(bytes, { codebooks: values.codebooks });\n return {\n payloadType: \"raw\",\n sourceFormat: \"wem\",\n outputFormat: \"ogg\",\n codec: \"vorbis\",\n mimeType: \"audio/ogg\",\n sampleCount: ogg.sampleCount,\n sampleRate: ogg.sampleRate,\n channels: ogg.channels,\n durationSeconds: ogg.durationSeconds,\n loop: ogg.loop,\n pageCount: ogg.pageCount,\n metadata,\n bytes: ogg.bytes\n };\n }\n if (values.emit === OUTPUT_PCM)\n {\n const decoded = decodeToPcm(bytes, metadata);\n return {\n payloadType: OUTPUT_PCM,\n sourceFormat: \"wem\",\n outputFormat: OUTPUT_PCM,\n codec: \"float32\",\n sourceCodec: metadata.codec,\n sampleCount: decoded.sampleCount,\n sampleRate: decoded.sampleRate,\n channels: decoded.channels,\n durationSeconds: decoded.sampleRate ? decoded.sampleCount / decoded.sampleRate : 0,\n channelData: decoded.channelData,\n metadata\n };\n }\n if (values.emit === OUTPUT_RAW)\n {\n return {\n payloadType: \"raw\",\n sourceFormat: \"wem\",\n codec: metadata.codec,\n mimeType: \"application/octet-stream\",\n metadata,\n bytes\n };\n }\n\n const error = new Error(`wem: emit \"${values.emit}\" is not implemented yet`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED\";\n error.sourceFormat = \"wem\";\n error.emit = values.emit;\n throw error;\n}\n\n/** Converts a parsed payload into a JSON-safe value for the WEM format reader. */\n/** The shared JSON policy for this reader, under the name its callers use. */\nexport { toJsonValue };\n\n\nfunction readU16(bytes, offset, littleEndian)\n{\n return littleEndian\n ? bytes[offset] | (bytes[offset + 1] << 8)\n : (bytes[offset] << 8) | bytes[offset + 1];\n}\n\nfunction readU32(bytes, offset, littleEndian)\n{\n return littleEndian\n ? (bytes[offset] | (bytes[offset + 1] << 8) | (bytes[offset + 2] << 16) | (bytes[offset + 3] * 0x1000000)) >>> 0\n : ((bytes[offset] * 0x1000000) + (bytes[offset + 1] << 16) + (bytes[offset + 2] << 8) + bytes[offset + 3]) >>> 0;\n}\n\n"],"names":["OUTPUT_RAW","OUTPUT_WEM_JSON","OUTPUT_OGG","OUTPUT_PCM","DEFAULT_VALUES","Object","freeze","emit","inputType","source","WEM_CODEC_NAMES","normalizeValues","base","options","readerName","values","String","replace","toLowerCase","normalizeEmit","undefined","includes","TypeError","JSON","stringify","isWEM","bytes","byteLength","container","readFourCc","inspectWEM","littleEndian","info","sourceFormat","riffSize","readU32","codec","codecTag","channels","sampleRate","byteRate","blockAlign","bitsPerSample","extraSize","sampleCount","durationSeconds","dataOffset","dataBytes","vorbis","chunks","offset","fmtOffset","fmtSize","vorbOffset","vorbSize","id","size","push","truncated","readU16","toString","padStart","inline","inspectWithValues","input","asUint8Array","payloadType","mediaTypes","decodeToPcm","metadata","decodePtadpcm","Math","max","floor","channelData","channel","Float32Array","i","at","raw","error","Error","code","readWithValues","ogg","convertWemToOgg","codebooks","outputFormat","mimeType","loop","pageCount","decoded","sourceCodec"],"mappings":"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"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { CjsFormat } from '../../format/CjsFormat.js';
|
|
2
2
|
import { CjsYamlReader } from './core/CjsYamlReader.js';
|
|
3
|
-
import { DEFAULT_VALUES, normalizeValues, toJsonGraph, OUTPUT_RAW, OUTPUT_DOCUMENT
|
|
3
|
+
import { DEFAULT_VALUES, normalizeValues, toJsonGraph, OUTPUT_RAW, OUTPUT_DOCUMENT } from './core/helpers.js';
|
|
4
4
|
|
|
5
5
|
const FORMAT_NAME = "CjsYamlFormat";
|
|
6
6
|
|
|
7
|
-
/**
|
|
8
|
-
* YAML format profile that parses YAML text or strict UTF-8 bytes into payload,
|
|
9
|
-
* JSON-graph, raw, or document output with configurable tag policies, alias
|
|
10
|
-
* limits, and identity/reference markers.
|
|
7
|
+
/**
|
|
8
|
+
* YAML format profile that parses YAML text or strict UTF-8 bytes into payload,
|
|
9
|
+
* JSON-graph, raw, or document output with configurable tag policies, alias
|
|
10
|
+
* limits, and identity/reference markers.
|
|
11
11
|
*/
|
|
12
12
|
class CjsYamlFormat extends CjsFormat {
|
|
13
|
-
|
|
13
|
+
_values = DEFAULT_VALUES;
|
|
14
14
|
|
|
15
15
|
/** Creates a CjsYamlFormat with caller-provided reader configuration. */
|
|
16
16
|
constructor(options = {}) {
|
|
@@ -18,26 +18,26 @@ class CjsYamlFormat extends CjsFormat {
|
|
|
18
18
|
this.SetValues(options);
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
/**
|
|
22
|
-
* Applies caller-provided options after normalizing supported fields for the
|
|
23
|
-
* YAML document reader.
|
|
21
|
+
/**
|
|
22
|
+
* Applies caller-provided options after normalizing supported fields for the
|
|
23
|
+
* YAML document reader.
|
|
24
24
|
*/
|
|
25
25
|
SetValues(options = {}) {
|
|
26
|
-
this
|
|
26
|
+
this._values = normalizeValues(this._values, options, FORMAT_NAME);
|
|
27
27
|
return this;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
/**
|
|
31
|
-
* Returns a snapshot of the normalized reader options for the YAML document
|
|
32
|
-
* reader.
|
|
30
|
+
/**
|
|
31
|
+
* Returns a snapshot of the normalized reader options for the YAML document
|
|
32
|
+
* reader.
|
|
33
33
|
*/
|
|
34
34
|
GetValues(options = {}) {
|
|
35
|
-
return normalizeValues(this
|
|
35
|
+
return normalizeValues(this._values, options, FORMAT_NAME);
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
/**
|
|
39
|
-
* Reads the primary public payload representation from the supplied input
|
|
40
|
-
* for the YAML document reader.
|
|
38
|
+
/**
|
|
39
|
+
* Reads the primary public payload representation from the supplied input
|
|
40
|
+
* for the YAML document reader.
|
|
41
41
|
*/
|
|
42
42
|
Read(input, options = {}) {
|
|
43
43
|
return CjsYamlFormat.read(input, this.GetValues(options));
|
|
@@ -58,17 +58,17 @@ class CjsYamlFormat extends CjsFormat {
|
|
|
58
58
|
return CjsYamlFormat.readDocument(input, this.GetValues(options));
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
/**
|
|
62
|
-
* Returns structural metadata without materializing the decoded payload for
|
|
63
|
-
* the YAML document reader.
|
|
61
|
+
/**
|
|
62
|
+
* Returns structural metadata without materializing the decoded payload for
|
|
63
|
+
* the YAML document reader.
|
|
64
64
|
*/
|
|
65
65
|
Inspect(input, options = {}) {
|
|
66
66
|
return CjsYamlFormat.inspect(input, this.GetValues(options));
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
/**
|
|
70
|
-
* Converts the current decoded payload into a JSON-safe representation for
|
|
71
|
-
* the YAML document reader.
|
|
69
|
+
/**
|
|
70
|
+
* Converts the current decoded payload into a JSON-safe representation for
|
|
71
|
+
* the YAML document reader.
|
|
72
72
|
*/
|
|
73
73
|
ToJSON(value, options = {}) {
|
|
74
74
|
return toJsonGraph(value, this.GetValues(options));
|
|
@@ -111,21 +111,12 @@ class CjsYamlFormat extends CjsFormat {
|
|
|
111
111
|
return toJsonGraph(value, normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME));
|
|
112
112
|
}
|
|
113
113
|
|
|
114
|
-
/**
|
|
115
|
-
* Emit targets for this format (canonical frozen enum).
|
|
114
|
+
/**
|
|
115
|
+
* Emit targets for this format (canonical frozen enum).
|
|
116
116
|
*/
|
|
117
|
-
static
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
RAW: OUTPUT_RAW,
|
|
121
|
-
DOCUMENT: OUTPUT_DOCUMENT
|
|
122
|
-
});
|
|
123
|
-
static TAG_PRESERVE = TAG_PRESERVE;
|
|
124
|
-
static TAG_REJECT = TAG_REJECT;
|
|
125
|
-
static TAG_HANDLE = TAG_HANDLE;
|
|
126
|
-
static id = "yaml";
|
|
127
|
-
static extensions = Object.freeze([".yaml", ".yml"]);
|
|
128
|
-
static mediaTypes = Object.freeze(["data"]);
|
|
117
|
+
static id = "CjsYamlFormat";
|
|
118
|
+
static extensions = [".yaml", ".yml"];
|
|
119
|
+
static mediaTypes = ["data"];
|
|
129
120
|
static outputs = CjsFormat.defineOutputs({
|
|
130
121
|
json: {
|
|
131
122
|
decoded: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CjsYamlFormat.js","sources":["../../../../../src/resource/formats/yaml/CjsYamlFormat.js"],"sourcesContent":["import { CjsFormat } from \"../../format/CjsFormat.js\";\r\nimport { CjsYamlReader } from \"./core/CjsYamlReader.js\";\r\nimport {\r\n DEFAULT_VALUES,\r\n OUTPUT_DOCUMENT,\r\n OUTPUT_JSON,\r\n OUTPUT_PAYLOAD,\r\n OUTPUT_RAW,\r\n TAG_HANDLE,\r\n TAG_PRESERVE,\r\n TAG_REJECT,\r\n normalizeValues,\r\n toJsonGraph\r\n} from \"./core/helpers.js\";\r\n\r\nconst FORMAT_NAME = \"CjsYamlFormat\";\r\n\r\n/**\r\n * YAML format profile that parses YAML text or strict UTF-8 bytes into payload,\r\n * JSON-graph, raw, or document output with configurable tag policies, alias\r\n * limits, and identity/reference markers.\r\n */\r\nexport class CjsYamlFormat extends CjsFormat\r\n{\r\n #values = DEFAULT_VALUES;\r\n\r\n /** Creates a CjsYamlFormat with caller-provided reader configuration. */\r\n constructor(options = {})\r\n {\r\n super();\r\n this.SetValues(options);\r\n }\r\n\r\n /**\r\n * Applies caller-provided options after normalizing supported fields for the\r\n * YAML document reader.\r\n */\r\n SetValues(options = {})\r\n {\r\n this.#values = normalizeValues(this.#values, options, FORMAT_NAME);\r\n return this;\r\n }\r\n\r\n /**\r\n * Returns a snapshot of the normalized reader options for the YAML document\r\n * reader.\r\n */\r\n GetValues(options = {})\r\n {\r\n return normalizeValues(this.#values, options, FORMAT_NAME);\r\n }\r\n\r\n /**\r\n * Reads the primary public payload representation from the supplied input\r\n * for the YAML document reader.\r\n */\r\n Read(input, options = {})\r\n {\r\n return CjsYamlFormat.read(input, this.GetValues(options));\r\n }\r\n\r\n /** Reads payload from the current YAML document reader. */\r\n ReadPayload(input, options = {})\r\n {\r\n return CjsYamlFormat.readPayload(input, this.GetValues(options));\r\n }\r\n\r\n /** Reads raw from the current YAML document reader. */\r\n ReadRaw(input, options = {})\r\n {\r\n return CjsYamlFormat.readRaw(input, this.GetValues(options));\r\n }\r\n\r\n /** Reads document from the current YAML document reader. */\r\n ReadDocument(input, options = {})\r\n {\r\n return CjsYamlFormat.readDocument(input, this.GetValues(options));\r\n }\r\n\r\n /**\r\n * Returns structural metadata without materializing the decoded payload for\r\n * the YAML document reader.\r\n */\r\n Inspect(input, options = {})\r\n {\r\n return CjsYamlFormat.inspect(input, this.GetValues(options));\r\n }\r\n\r\n /**\r\n * Converts the current decoded payload into a JSON-safe representation for\r\n * the YAML document reader.\r\n */\r\n ToJSON(value, options = {})\r\n {\r\n return toJsonGraph(value, this.GetValues(options));\r\n }\r\n\r\n /** Provides the one-shot YAML payload reader entry point. */\r\n static read(input, options = {})\r\n {\r\n const values = normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME);\r\n if (values.emit === OUTPUT_RAW) return new CjsYamlReader(input, values).ReadRaw();\r\n if (values.emit === OUTPUT_DOCUMENT) return new CjsYamlReader(input, values).ReadDocument();\r\n return new CjsYamlReader(input, values).ReadPayload();\r\n }\r\n\r\n /** Provides the one-shot YAML normalized-payload reader entry point. */\r\n static readPayload(input, options = {})\r\n {\r\n const values = normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME);\r\n return new CjsYamlReader(input, values).ReadPayload();\r\n }\r\n\r\n /** Provides the one-shot YAML raw-value reader entry point. */\r\n static readRaw(input, options = {})\r\n {\r\n const values = normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME);\r\n return new CjsYamlReader(input, values).ReadRaw();\r\n }\r\n\r\n /** Provides the one-shot YAML document reader entry point. */\r\n static readDocument(input, options = {})\r\n {\r\n const values = normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME);\r\n return new CjsYamlReader(input, values).ReadDocument();\r\n }\r\n\r\n /** Provides the one-shot YAML metadata inspection entry point. */\r\n static inspect(input, options = {})\r\n {\r\n const values = normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME);\r\n return new CjsYamlReader(input, values).Inspect();\r\n }\r\n\r\n /** Provides the one-shot YAML JSON conversion entry point. */\r\n static toJSON(value, options = {})\r\n {\r\n return toJsonGraph(value, normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME));\r\n }\r\n\r\n /**\r\n * Emit targets for this format (canonical frozen enum).\r\n */\r\n static Output = Object.freeze({\r\n JSON: OUTPUT_JSON,\r\n PAYLOAD: OUTPUT_PAYLOAD,\r\n RAW: OUTPUT_RAW,\r\n DOCUMENT: OUTPUT_DOCUMENT\r\n });\r\n static TAG_PRESERVE = TAG_PRESERVE;\r\n static TAG_REJECT = TAG_REJECT;\r\n static TAG_HANDLE = TAG_HANDLE;\r\n static id = \"yaml\";\r\n static extensions = Object.freeze([ \".yaml\", \".yml\" ]);\r\n static mediaTypes = Object.freeze([ \"data\" ]);\r\n static outputs = CjsFormat.defineOutputs({\r\n json: { decoded: true },\r\n payload: { default: true, decoded: true },\r\n raw: { role: \"debug\", decoded: true },\r\n document: { role: \"debug\", decoded: true }\r\n });\r\n}\r\n\r\nexport default CjsYamlFormat;\r\n"],"names":["FORMAT_NAME","CjsYamlFormat","CjsFormat","DEFAULT_VALUES","constructor","options","SetValues","normalizeValues","GetValues","Read","input","read","ReadPayload","readPayload","ReadRaw","readRaw","ReadDocument","readDocument","Inspect","inspect","ToJSON","value","toJsonGraph","values","emit","OUTPUT_RAW","CjsYamlReader","OUTPUT_DOCUMENT","toJSON","Output","Object","freeze","JSON","OUTPUT_JSON","PAYLOAD","OUTPUT_PAYLOAD","RAW","DOCUMENT","TAG_PRESERVE","TAG_REJECT","TAG_HANDLE","id","extensions","mediaTypes","outputs","defineOutputs","json","decoded","payload","default","raw","role","document"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CjsYamlFormat.js","sources":["../../../../../src/resource/formats/yaml/CjsYamlFormat.js"],"sourcesContent":["import { CjsFormat } from \"../../format/CjsFormat.js\";\nimport { CjsYamlReader } from \"./core/CjsYamlReader.js\";\nimport {\n DEFAULT_VALUES,\n OUTPUT_DOCUMENT,\n OUTPUT_JSON,\n OUTPUT_PAYLOAD,\n OUTPUT_RAW,\n TAG_HANDLE,\n TAG_PRESERVE,\n TAG_REJECT,\n normalizeValues,\n toJsonGraph\n} from \"./core/helpers.js\";\n\nconst FORMAT_NAME = \"CjsYamlFormat\";\n\n/**\n * YAML format profile that parses YAML text or strict UTF-8 bytes into payload,\n * JSON-graph, raw, or document output with configurable tag policies, alias\n * limits, and identity/reference markers.\n */\nexport class CjsYamlFormat extends CjsFormat\n{\n _values = DEFAULT_VALUES;\n\n /** Creates a CjsYamlFormat with caller-provided reader configuration. */\n constructor(options = {})\n {\n super();\n this.SetValues(options);\n }\n\n /**\n * Applies caller-provided options after normalizing supported fields for the\n * YAML document reader.\n */\n SetValues(options = {})\n {\n this._values = normalizeValues(this._values, options, FORMAT_NAME);\n return this;\n }\n\n /**\n * Returns a snapshot of the normalized reader options for the YAML document\n * reader.\n */\n GetValues(options = {})\n {\n return normalizeValues(this._values, options, FORMAT_NAME);\n }\n\n /**\n * Reads the primary public payload representation from the supplied input\n * for the YAML document reader.\n */\n Read(input, options = {})\n {\n return CjsYamlFormat.read(input, this.GetValues(options));\n }\n\n /** Reads payload from the current YAML document reader. */\n ReadPayload(input, options = {})\n {\n return CjsYamlFormat.readPayload(input, this.GetValues(options));\n }\n\n /** Reads raw from the current YAML document reader. */\n ReadRaw(input, options = {})\n {\n return CjsYamlFormat.readRaw(input, this.GetValues(options));\n }\n\n /** Reads document from the current YAML document reader. */\n ReadDocument(input, options = {})\n {\n return CjsYamlFormat.readDocument(input, this.GetValues(options));\n }\n\n /**\n * Returns structural metadata without materializing the decoded payload for\n * the YAML document reader.\n */\n Inspect(input, options = {})\n {\n return CjsYamlFormat.inspect(input, this.GetValues(options));\n }\n\n /**\n * Converts the current decoded payload into a JSON-safe representation for\n * the YAML document reader.\n */\n ToJSON(value, options = {})\n {\n return toJsonGraph(value, this.GetValues(options));\n }\n\n /** Provides the one-shot YAML payload reader entry point. */\n static read(input, options = {})\n {\n const values = normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME);\n if (values.emit === OUTPUT_RAW) return new CjsYamlReader(input, values).ReadRaw();\n if (values.emit === OUTPUT_DOCUMENT) return new CjsYamlReader(input, values).ReadDocument();\n return new CjsYamlReader(input, values).ReadPayload();\n }\n\n /** Provides the one-shot YAML normalized-payload reader entry point. */\n static readPayload(input, options = {})\n {\n const values = normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME);\n return new CjsYamlReader(input, values).ReadPayload();\n }\n\n /** Provides the one-shot YAML raw-value reader entry point. */\n static readRaw(input, options = {})\n {\n const values = normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME);\n return new CjsYamlReader(input, values).ReadRaw();\n }\n\n /** Provides the one-shot YAML document reader entry point. */\n static readDocument(input, options = {})\n {\n const values = normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME);\n return new CjsYamlReader(input, values).ReadDocument();\n }\n\n /** Provides the one-shot YAML metadata inspection entry point. */\n static inspect(input, options = {})\n {\n const values = normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME);\n return new CjsYamlReader(input, values).Inspect();\n }\n\n /** Provides the one-shot YAML JSON conversion entry point. */\n static toJSON(value, options = {})\n {\n return toJsonGraph(value, normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME));\n }\n\n /**\n * Emit targets for this format (canonical frozen enum).\n */\n static id = \"CjsYamlFormat\";\n static extensions = [ \".yaml\", \".yml\" ];\n static mediaTypes = [ \"data\" ];\n static outputs = CjsFormat.defineOutputs({\n json: { decoded: true },\n payload: { default: true, decoded: true },\n raw: { role: \"debug\", decoded: true },\n document: { role: \"debug\", decoded: true }\n });\n}\n\nexport default CjsYamlFormat;\n"],"names":["FORMAT_NAME","CjsYamlFormat","CjsFormat","_values","DEFAULT_VALUES","constructor","options","SetValues","normalizeValues","GetValues","Read","input","read","ReadPayload","readPayload","ReadRaw","readRaw","ReadDocument","readDocument","Inspect","inspect","ToJSON","value","toJsonGraph","values","emit","OUTPUT_RAW","CjsYamlReader","OUTPUT_DOCUMENT","toJSON","id","extensions","mediaTypes","outputs","defineOutputs","json","decoded","payload","default","raw","role","document"],"mappings":"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"}
|