@carbonenginejs/runtime-resource 0.19.2 → 0.22.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 +6 -0
- package/dist/CjsResMan.js +1374 -1318
- package/dist/CjsResMan.js.map +1 -1
- package/dist/format/CjsFormat.js +393 -164
- package/dist/format/CjsFormat.js.map +1 -1
- package/dist/format/CjsFormatStore.js +315 -0
- package/dist/format/CjsFormatStore.js.map +1 -0
- package/dist/format/CjsResourceProbe.js +66 -234
- package/dist/format/CjsResourceProbe.js.map +1 -1
- package/dist/format/payloadContract.js +47 -6
- package/dist/format/payloadContract.js.map +1 -1
- package/dist/formats/black/CjsBlackFormat.js +23 -6
- package/dist/formats/black/CjsBlackFormat.js.map +1 -1
- package/dist/formats/bnk/CjsBnkFormat.js +122 -120
- package/dist/formats/bnk/CjsBnkFormat.js.map +1 -1
- package/dist/formats/bnk/core/helpers.js +5 -15
- package/dist/formats/bnk/core/helpers.js.map +1 -1
- package/dist/formats/cmf/CjsCmfFormat.js +31 -14
- package/dist/formats/cmf/CjsCmfFormat.js.map +1 -1
- package/dist/formats/dds/CjsDdsFormat.js +29 -19
- package/dist/formats/dds/CjsDdsFormat.js.map +1 -1
- package/dist/formats/dds/core/helpers.js +4 -5
- package/dist/formats/dds/core/helpers.js.map +1 -1
- package/dist/formats/dxbc/CjsDxbcFormat.js +15 -13
- package/dist/formats/dxbc/CjsDxbcFormat.js.map +1 -1
- package/dist/formats/fbx/CjsFbxFormat.js +27 -19
- package/dist/formats/fbx/CjsFbxFormat.js.map +1 -1
- package/dist/formats/fbx/core/helpers.js +4 -4
- package/dist/formats/fbx/core/helpers.js.map +1 -1
- package/dist/formats/flac/CjsFlacFormat.js +19 -17
- package/dist/formats/flac/CjsFlacFormat.js.map +1 -1
- package/dist/formats/flac/core/helpers.js +5 -11
- package/dist/formats/flac/core/helpers.js.map +1 -1
- package/dist/formats/fsd/32/CjsFsd32Format.js +55 -0
- package/dist/formats/fsd/32/CjsFsd32Format.js.map +1 -0
- package/dist/formats/fsd/32/index.js +2 -0
- package/dist/formats/fsd/32/index.js.map +1 -0
- package/dist/formats/fsd/64/CjsFsd64Format.js +119 -0
- package/dist/formats/fsd/64/CjsFsd64Format.js.map +1 -0
- package/dist/formats/fsd/64/core/CjsFsd64Binary.js +393 -0
- package/dist/formats/fsd/64/core/CjsFsd64Binary.js.map +1 -0
- package/dist/formats/fsd/64/core/CjsFsd64Reader.js +138 -0
- package/dist/formats/fsd/64/core/CjsFsd64Reader.js.map +1 -0
- package/dist/formats/fsd/64/core/CjsFsd64SchemaDecoder.js +389 -0
- package/dist/formats/fsd/64/core/CjsFsd64SchemaDecoder.js.map +1 -0
- package/dist/formats/fsd/64/core/CjsFsd64SchemaReader.js +43 -0
- package/dist/formats/fsd/64/core/CjsFsd64SchemaReader.js.map +1 -0
- package/dist/formats/fsd/64/core/fsd64Records.js +60 -0
- package/dist/formats/fsd/64/core/fsd64Records.js.map +1 -0
- package/dist/formats/fsd/64/index.js +7 -0
- package/dist/formats/fsd/64/index.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64ReaderSetCharacterStaticData.js +33 -0
- package/dist/formats/fsd/64/readers/CjsFsd64ReaderSetCharacterStaticData.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaAgentTypes.js +35 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaAgentTypes.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaAgentsInSpace.js +50 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaAgentsInSpace.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaAncestries.js +75 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaAncestries.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaArchetypes.js +57 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaArchetypes.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaAudioMetadata.js +201 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaAudioMetadata.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaBloodlines.js +73 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaBloodlines.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaCategories.js +53 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaCategories.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterAvatarBehaviors.js +44 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterAvatarBehaviors.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterColorLocations.js +38 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterColorLocations.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterColorNames.js +34 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterColorNames.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterModifierLocations.js +34 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterModifierLocations.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterPortraitResources.js +44 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterPortraitResources.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterResources.js +81 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterResources.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterSculptingLocations.js +34 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterSculptingLocations.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaCompressibleTypes.js +41 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaCompressibleTypes.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaContrabandTypes.js +63 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaContrabandTypes.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaControlTowerResources.js +76 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaControlTowerResources.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaCorporationActivities.js +38 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaCorporationActivities.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaCorporationRoleGroups.js +74 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaCorporationRoleGroups.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaCorporationRoles.js +59 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaCorporationRoles.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaDogmaAttributeCategories.js +46 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaDogmaAttributeCategories.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaDogmaAttributes.js +133 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaDogmaAttributes.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaDogmaEffects.js +236 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaDogmaEffects.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaDogmaUnits.js +60 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaDogmaUnits.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaDynamicItemAttributes.js +95 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaDynamicItemAttributes.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaEpicArcs.js +106 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaEpicArcs.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaExpertSystems.js +86 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaExpertSystems.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaFactions.js +117 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaFactions.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaGraphicIds.js +70 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaGraphicIds.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaGraphicMaterialSets.js +173 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaGraphicMaterialSets.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaGroups.js +77 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaGroups.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaIcons.js +62 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaIcons.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaMarketGroups.js +63 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaMarketGroups.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaMetaGroups.js +86 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaMetaGroups.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaNpcCorporationDivisions.js +72 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaNpcCorporationDivisions.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaNpcCorporations.js +326 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaNpcCorporations.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaPaperdolls.js +279 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaPaperdolls.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaRaces.js +64 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaRaces.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaSchoolMap.js +40 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaSchoolMap.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaSchools.js +113 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaSchools.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkillPlans.js +130 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkillPlans.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrComponentCategories.js +38 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrComponentCategories.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrComponentPointValues.js +45 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrComponentPointValues.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrComponentRarities.js +44 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrComponentRarities.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrComponents.js +163 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrComponents.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrSlotCategories.js +37 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrSlotCategories.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrSlotConfigurations.js +77 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrSlotConfigurations.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrSlotNames.js +37 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrSlotNames.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrSlots.js +74 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrSlots.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrTierThresholds.js +44 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrTierThresholds.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaStationOperations.js +120 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaStationOperations.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaStationServices.js +49 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaStationServices.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaTypeDogma.js +73 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaTypeDogma.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaTypeLists.js +122 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaTypeLists.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaTypeMaterials.js +83 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaTypeMaterials.js.map +1 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaTypes.js +194 -0
- package/dist/formats/fsd/64/readers/CjsFsd64SchemaTypes.js.map +1 -0
- package/dist/formats/fsd/64/readers/index.js +58 -0
- package/dist/formats/fsd/64/readers/index.js.map +1 -0
- package/dist/formats/fsd/CjsFsdFormat.js +62 -0
- package/dist/formats/fsd/CjsFsdFormat.js.map +1 -0
- package/dist/formats/fsd/index.js +9 -0
- package/dist/formats/fsd/index.js.map +1 -0
- package/dist/formats/gif/CjsGifFormat.js +26 -16
- package/dist/formats/gif/CjsGifFormat.js.map +1 -1
- package/dist/formats/gif/core/helpers.js +6 -18
- package/dist/formats/gif/core/helpers.js.map +1 -1
- package/dist/formats/gltf/CjsGltfFormat.js +25 -13
- package/dist/formats/gltf/CjsGltfFormat.js.map +1 -1
- package/dist/formats/gr2/CjsGr2Format.js +27 -6
- package/dist/formats/gr2/CjsGr2Format.js.map +1 -1
- package/dist/formats/hlsl/CjsHlslFormat.js +20 -16
- package/dist/formats/hlsl/CjsHlslFormat.js.map +1 -1
- package/dist/formats/hlsl/core/analysis.js +1 -1
- package/dist/formats/index.js +5 -0
- package/dist/formats/index.js.map +1 -1
- package/dist/formats/jpeg/CjsJpegFormat.js +26 -19
- package/dist/formats/jpeg/CjsJpegFormat.js.map +1 -1
- package/dist/formats/jpeg/core/helpers.js +6 -15
- package/dist/formats/jpeg/core/helpers.js.map +1 -1
- package/dist/formats/jpeg/core/jpeg.js +0 -3
- package/dist/formats/jpeg/core/jpeg.js.map +1 -1
- package/dist/formats/mp3/CjsMp3Format.js +19 -19
- package/dist/formats/mp3/CjsMp3Format.js.map +1 -1
- package/dist/formats/mp3/core/helpers.js +5 -11
- package/dist/formats/mp3/core/helpers.js.map +1 -1
- package/dist/formats/mp4/CjsMp4Format.js +20 -19
- package/dist/formats/mp4/CjsMp4Format.js.map +1 -1
- package/dist/formats/mp4/core/helpers.js +6 -15
- package/dist/formats/mp4/core/helpers.js.map +1 -1
- package/dist/formats/obj/CjsObjFormat.js +25 -12
- package/dist/formats/obj/CjsObjFormat.js.map +1 -1
- package/dist/formats/ogg/CjsOggFormat.js +26 -17
- package/dist/formats/ogg/CjsOggFormat.js.map +1 -1
- package/dist/formats/ogg/core/helpers.js +5 -16
- package/dist/formats/ogg/core/helpers.js.map +1 -1
- package/dist/formats/pickle/CjsPickleFormat.js +64 -5
- package/dist/formats/pickle/CjsPickleFormat.js.map +1 -1
- package/dist/formats/png/CjsPngFormat.js +28 -19
- package/dist/formats/png/CjsPngFormat.js.map +1 -1
- package/dist/formats/png/core/helpers.js +5 -14
- package/dist/formats/png/core/helpers.js.map +1 -1
- package/dist/formats/red/CjsRedFormat.js +19 -5
- package/dist/formats/red/CjsRedFormat.js.map +1 -1
- package/dist/formats/schemabound/CjsSchemaBoundFormat.js +48 -38
- package/dist/formats/schemabound/CjsSchemaBoundFormat.js.map +1 -1
- package/dist/formats/sqlite/CjsSqliteFormat.js +49 -41
- package/dist/formats/sqlite/CjsSqliteFormat.js.map +1 -1
- package/dist/formats/static/CjsStaticFormat.js +15 -57
- package/dist/formats/static/CjsStaticFormat.js.map +1 -1
- package/dist/formats/static/staticContainers.js +6 -6
- package/dist/formats/static/staticContainers.js.map +1 -1
- package/dist/formats/stl/CjsStlFormat.js +25 -12
- package/dist/formats/stl/CjsStlFormat.js.map +1 -1
- package/dist/formats/tga/CjsTgaFormat.js +26 -19
- package/dist/formats/tga/CjsTgaFormat.js.map +1 -1
- package/dist/formats/tga/core/helpers.js +7 -22
- package/dist/formats/tga/core/helpers.js.map +1 -1
- package/dist/formats/wav/CjsWavFormat.js +26 -19
- package/dist/formats/wav/CjsWavFormat.js.map +1 -1
- package/dist/formats/wav/core/helpers.js +7 -16
- package/dist/formats/wav/core/helpers.js.map +1 -1
- package/dist/formats/webgl/CjsWebglFormat.js +11 -13
- package/dist/formats/webgl/CjsWebglFormat.js.map +1 -1
- package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js +90 -12
- package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
- package/dist/formats/webgl/core/helpers.js +2 -2
- package/dist/formats/webgl/core/helpers.js.map +1 -1
- package/dist/formats/webgl/core/readGlslEffectContainer.js +8 -8
- package/dist/formats/webgl/core/readGlslEffectContainer.js.map +1 -1
- package/dist/formats/webgpu/CjsWebgpuFormat.js +11 -5
- package/dist/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
- package/dist/formats/webm/CjsWebmFormat.js +20 -19
- package/dist/formats/webm/CjsWebmFormat.js.map +1 -1
- package/dist/formats/webm/core/helpers.js +6 -15
- package/dist/formats/webm/core/helpers.js.map +1 -1
- package/dist/formats/webp/CjsWebpFormat.js +19 -17
- package/dist/formats/webp/CjsWebpFormat.js.map +1 -1
- package/dist/formats/webp/core/helpers.js +5 -11
- package/dist/formats/webp/core/helpers.js.map +1 -1
- package/dist/formats/wem/CjsWemFormat.js +128 -141
- package/dist/formats/wem/CjsWemFormat.js.map +1 -1
- package/dist/formats/wem/core/helpers.js +1 -114
- package/dist/formats/wem/core/helpers.js.map +1 -1
- package/dist/formats/wem/core/{resolve.js → probeCodecSupport.js} +11 -18
- package/dist/formats/wem/core/probeCodecSupport.js.map +1 -0
- package/dist/formats/yaml/CjsYamlFormat.js +20 -5
- package/dist/formats/yaml/CjsYamlFormat.js.map +1 -1
- package/dist/generated/index.js +2 -0
- package/dist/generated/index.js.map +1 -0
- package/dist/generated/resources/Tr2RaycastGeometryRes.js +34 -0
- package/dist/generated/resources/Tr2RaycastGeometryRes.js.map +1 -0
- package/dist/generated/resources/index.js +2 -0
- package/dist/generated/resources/index.js.map +1 -0
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/resource/CjsResource.js +134 -0
- package/dist/resource/CjsResource.js.map +1 -1
- package/dist/resource/ResourceRequirement.js +42 -0
- package/dist/resource/ResourceRequirement.js.map +1 -0
- package/dist/resource/Tr2LightProfileRes.js +2 -1
- package/dist/resource/Tr2LightProfileRes.js.map +1 -1
- package/dist/resource/geometry/TriGeometryRes.js +34 -7
- package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
- package/dist/resource/geometry/granny/Tr2GrannyStateRes.js +184 -7
- package/dist/resource/geometry/granny/Tr2GrannyStateRes.js.map +1 -1
- package/dist/resource/geometry/granny/TriGrannyRes.js +20 -8
- package/dist/resource/geometry/granny/TriGrannyRes.js.map +1 -1
- package/dist/resource/index.js +1 -0
- package/dist/resource/index.js.map +1 -1
- package/dist/resource/resourceBoundary.js +24 -1
- package/dist/resource/resourceBoundary.js.map +1 -1
- package/dist/resource/shader/Tr2EffectRes.js +2 -1
- package/dist/resource/shader/Tr2EffectRes.js.map +1 -1
- package/dist/resource/texture/CjsTextureArrayRes.js +2 -1
- package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
- package/dist/resource/texture/Tr2ImageRes.js +2 -1
- package/dist/resource/texture/Tr2ImageRes.js.map +1 -1
- package/dist/resource/texture/TriTextureRes.js +40 -2
- package/dist/resource/texture/TriTextureRes.js.map +1 -1
- package/docs/architecture.md +121 -116
- package/docs/concepts/format-capabilities.md +90 -0
- package/docs/formats/README.md +14 -6
- package/docs/formats/fsd.md +104 -0
- package/docs/formats/gr2.md +1 -1
- package/docs/formats/hlsl/reference/api.md +6 -4
- package/docs/formats/provenance.md +18 -0
- package/docs/formats/schemabound.md +10 -4
- package/docs/formats/static.md +26 -26
- package/docs/formats/webgpu/reference/api.md +4 -3
- package/docs/reference/classes/core.md +22 -2
- package/docs/reference/classes/formats.md +643 -1
- package/docs/reference/classes/resources.md +463 -453
- package/docs/reference/queues.md +205 -194
- package/docs/roadmap.md +14 -18
- package/format-notices/fsd/LICENSE +21 -0
- package/format-notices/fsd/NOTICE +11 -0
- package/package.json +70 -64
- package/dist/formats/wem/core/resolve.js.map +0 -1
- package/docs/concepts/format-type-resolution.md +0 -79
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CjsOggFormat.js","sources":["../../../../src/formats/ogg/CjsOggFormat.js"],"sourcesContent":["import {\n DEFAULT_VALUES,\n OUTPUT_AUDIO,\n OUTPUT_JSON,\n OUTPUT_PCM,\n OUTPUT_RAW,\n inspectWithValues,\n isOGG,\n
|
|
1
|
+
{"version":3,"file":"CjsOggFormat.js","sources":["../../../../src/formats/ogg/CjsOggFormat.js"],"sourcesContent":["import { CjsFormat } from \"../../format/CjsFormat.js\";\nimport {\n DEFAULT_VALUES,\n OUTPUT_AUDIO,\n OUTPUT_JSON,\n OUTPUT_PCM,\n OUTPUT_RAW,\n inspectWithValues,\n isOGG,\n probeSupportWithValues,\n normalizeValues,\n readWithValues,\n toBytes,\n toJsonValue\n} from \"./core/helpers.js\";\n\nconst FORMAT_NAME = \"CjsOggFormat\";\n\n/**\n * Ogg container format profile that inspects page and stream metadata and\n * decodes Ogg Vorbis audio to PCM with the in-project pure-JS Vorbis\n * decoder, alongside raw and debug JSON output.\n */\nexport class CjsOggFormat extends CjsFormat\n{\n #values = DEFAULT_VALUES;\n\n /** Creates a CjsOggFormat 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 * Ogg format configuration.\n */\n SetValues(options = {})\n {\n this.#values = normalizeValues(this.#values, { inputType: \"ogg\", ...options }, FORMAT_NAME);\n return this;\n }\n\n /**\n * Returns a snapshot of the normalized reader options for the Ogg format\n * configuration.\n */\n GetValues(options = {})\n {\n return normalizeValues(this.#values, { inputType: \"ogg\", ...options }, FORMAT_NAME);\n }\n\n /**\n * Reads the primary public payload representation from the supplied input\n * for the Ogg format configuration.\n */\n Read(input, options = {})\n {\n return readWithValues(input, this.GetValues(options));\n }\n\n /**\n * Reads the primary public payload representation asynchronously for the Ogg\n * format configuration.\n */\n async ReadAsync(input, options = {})\n {\n return this.Read(input, options);\n }\n\n /**\n * Returns structural metadata without materializing the decoded payload for\n * the Ogg format configuration.\n */\n Inspect(input, options = {})\n {\n return inspectWithValues(input, this.GetValues(options));\n }\n\n /**\n * Converts the current decoded payload into a JSON-safe representation for\n * the Ogg format configuration.\n */\n ToJSON(value)\n {\n return toJsonValue(value);\n }\n\n /** Provides the one-shot Ogg payload reader entry point. */\n static read(input, options = {})\n {\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"ogg\", ...options }, FORMAT_NAME));\n }\n\n /** Provides the asynchronous one-shot Ogg payload reader entry point. */\n static async readAsync(input, options = {})\n {\n return CjsOggFormat.read(input, options);\n }\n\n /** Provides the one-shot Ogg metadata inspection entry point. */\n static inspect(input, options = {})\n {\n return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"ogg\", ...options }, FORMAT_NAME));\n }\n\n /** Checks one input against the Ogg decoder capability contract. */\n static probeSupport(input, options = {})\n {\n return probeSupportWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"ogg\", ...options }, FORMAT_NAME));\n }\n\n /** Provides the one-shot Ogg JSON conversion entry point. */\n static toJSON(value)\n {\n return toJsonValue(value);\n }\n\n /** Checks whether caller-provided bytes carry the expected Ogg signature. */\n static isOGG(input)\n {\n try\n {\n return isOGG(toBytes(input));\n }\n catch\n {\n return false;\n }\n }\n\n /**\n * Emit targets for this format (canonical frozen enum).\n */\n static Output = Object.freeze({\n RAW: OUTPUT_RAW,\n JSON: OUTPUT_JSON\n });\n static OUTPUT_OGG_JSON = \"oggJson\";\n static OUTPUT_PCM = OUTPUT_PCM;\n static OUTPUT_AUDIO = OUTPUT_AUDIO;\n static id = \"ogg\";\n static mediaTypes = Object.freeze([ \"audio\", \"video\" ]);\n static outputs = CjsFormat.defineOutputs({\n pcm: { decoded: true },\n audio: { decoded: true, probes: [ \"audio\", \"pcm\" ] },\n oggJson: { role: \"debug\", probes: [ \"oggJson\", \"raw\" ] },\n raw: { role: \"debug\", default: true, passthrough: true }\n });\n static extensions = Object.freeze([ \".ogg\", \".oga\", \".ogv\" ]);\n}\n\nexport default CjsOggFormat;\n"],"names":["FORMAT_NAME","CjsOggFormat","CjsFormat","DEFAULT_VALUES","constructor","options","SetValues","normalizeValues","inputType","GetValues","Read","input","readWithValues","ReadAsync","Inspect","inspectWithValues","ToJSON","value","toJsonValue","read","readAsync","inspect","probeSupport","probeSupportWithValues","toJSON","isOGG","toBytes","Output","Object","freeze","RAW","OUTPUT_RAW","JSON","OUTPUT_JSON","OUTPUT_OGG_JSON","OUTPUT_PCM","OUTPUT_AUDIO","id","mediaTypes","outputs","defineOutputs","pcm","decoded","audio","probes","oggJson","role","raw","default","passthrough","extensions"],"mappings":"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"}
|
|
@@ -68,7 +68,7 @@ function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = "ogg")
|
|
|
68
68
|
* Reports whether input is supported under normalized format options for the Ogg
|
|
69
69
|
* format reader.
|
|
70
70
|
*/
|
|
71
|
-
function
|
|
71
|
+
function probeSupportWithValues(input, values = DEFAULT_VALUES) {
|
|
72
72
|
try {
|
|
73
73
|
const metadata = inspectWithValues(input, values);
|
|
74
74
|
const mimeType = getOggMimeType(metadata);
|
|
@@ -77,11 +77,7 @@ function isSupportedWithValues(input, values = DEFAULT_VALUES) {
|
|
|
77
77
|
payloadType: "raw",
|
|
78
78
|
codec: "ogg",
|
|
79
79
|
mimeType,
|
|
80
|
-
supported: true
|
|
81
|
-
containerOnly: true,
|
|
82
|
-
isDecoded: false,
|
|
83
|
-
pcmDecodeSupported: false,
|
|
84
|
-
frameDecodeSupported: false
|
|
80
|
+
supported: true
|
|
85
81
|
}, {
|
|
86
82
|
kind: "pcm",
|
|
87
83
|
payloadType: "pcm",
|
|
@@ -104,7 +100,7 @@ function isSupportedWithValues(input, values = DEFAULT_VALUES) {
|
|
|
104
100
|
source: values.source || "buffer",
|
|
105
101
|
supported: "partial",
|
|
106
102
|
confidence: 1,
|
|
107
|
-
|
|
103
|
+
preferredOutput: pcmSupported ? "pcm" : metadata.sourceFormat ? "raw" : "",
|
|
108
104
|
reason: pcmSupported ? "Ogg Vorbis recognized; PCM decode is supported." : "Ogg pages and codec headers are recognized; raw Ogg passthrough is available.",
|
|
109
105
|
metadata,
|
|
110
106
|
variants,
|
|
@@ -117,7 +113,7 @@ function isSupportedWithValues(input, values = DEFAULT_VALUES) {
|
|
|
117
113
|
source: values.source || "buffer",
|
|
118
114
|
supported: "none",
|
|
119
115
|
confidence: 0,
|
|
120
|
-
|
|
116
|
+
preferredOutput: "",
|
|
121
117
|
reason: error.message,
|
|
122
118
|
metadata: null,
|
|
123
119
|
variants: [],
|
|
@@ -136,10 +132,6 @@ function readWithValues(input, values = DEFAULT_VALUES) {
|
|
|
136
132
|
payloadType: "raw",
|
|
137
133
|
sourceFormat: "ogg",
|
|
138
134
|
mimeType: getOggMimeType(metadata),
|
|
139
|
-
containerOnly: true,
|
|
140
|
-
isDecoded: false,
|
|
141
|
-
pcmDecodeSupported: false,
|
|
142
|
-
frameDecodeSupported: false,
|
|
143
135
|
metadata,
|
|
144
136
|
bytes
|
|
145
137
|
};
|
|
@@ -163,9 +155,6 @@ function readWithValues(input, values = DEFAULT_VALUES) {
|
|
|
163
155
|
payloadType: values.emit === OUTPUT_AUDIO ? OUTPUT_AUDIO : OUTPUT_PCM,
|
|
164
156
|
sourceFormat: "ogg",
|
|
165
157
|
codec: "vorbis",
|
|
166
|
-
containerOnly: false,
|
|
167
|
-
isDecoded: true,
|
|
168
|
-
pcmDecodeSupported: true,
|
|
169
158
|
audioFormat: "float32",
|
|
170
159
|
sampleFormat: "float32",
|
|
171
160
|
sampleRate: decoded.sampleRate,
|
|
@@ -406,5 +395,5 @@ function readU64LE(bytes, offset) {
|
|
|
406
395
|
return value <= BigInt(Number.MAX_SAFE_INTEGER) ? Number(value) : value.toString();
|
|
407
396
|
}
|
|
408
397
|
|
|
409
|
-
export { DEFAULT_VALUES, OUTPUT_AUDIO, OUTPUT_JSON, OUTPUT_PCM, OUTPUT_RAW, inspectWithValues, isOGG,
|
|
398
|
+
export { DEFAULT_VALUES, OUTPUT_AUDIO, OUTPUT_JSON, OUTPUT_PCM, OUTPUT_RAW, inspectWithValues, isOGG, normalizeValues, probeSupportWithValues, readWithValues, toBytes, toJsonValue };
|
|
410
399
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sources":["../../../../../src/formats/ogg/core/helpers.js"],"sourcesContent":["import { decodeVorbis } from \"./vorbis.js\";\n\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_JSON = \"json\";\nexport const OUTPUT_PCM = \"pcm\";\nexport const OUTPUT_AUDIO = \"audio\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_RAW,\n inputType: \"ogg\",\n source: \"\"\n});\n\n/**\n * Normalizes reader options against their supported defaults for the Ogg format\n * reader.\n */\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsOggFormat\")\n{\n if (!options || typeof options !== \"object\" || Array.isArray(options))\n {\n throw new TypeError(`${readerName}: options must be an object`);\n }\n const allowed = new Set([ \"emit\", \"inputType\", \"source\" ]);\n for (const key of Object.keys(options))\n {\n if (!allowed.has(key)) throw new TypeError(`${readerName}: unknown option ${JSON.stringify(key)}`);\n }\n const values = { ...DEFAULT_VALUES, ...(base || {}), ...options };\n if (![ OUTPUT_RAW, OUTPUT_JSON, \"oggJson\", \"audio\", \"pcm\" ].includes(values.emit))\n {\n throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(values.emit)}`);\n }\n return values;\n}\n\n/** Returns a byte view over the supplied binary input for the Ogg format reader. */\nexport function toBytes(input)\n{\n if (input instanceof Uint8Array) return input;\n if (input instanceof ArrayBuffer) return new Uint8Array(input);\n if (ArrayBuffer.isView(input)) return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);\n throw new TypeError(\"OGG input must be Uint8Array, ArrayBuffer, or a view\");\n}\n\n/**\n * Reports whether the supplied bytes begin with an Ogg page signature for the\n * Ogg format reader.\n */\nexport function isOGG(bytes)\n{\n return bytes.byteLength >= 4 && ascii(bytes, 0, 4) === \"OggS\";\n}\n\n/** Inspects input using normalized format options for the Ogg format reader. */\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"ogg\")\n{\n const bytes = toBytes(input);\n if (!isOGG(bytes)) throw new TypeError(\"CjsOggFormat: input is not an Ogg container\");\n const metadata = inspectOgg(bytes);\n if (expectedType && metadata.sourceFormat !== expectedType)\n {\n throw new TypeError(`CjsOggFormat: expected ${expectedType}, got ${metadata.sourceFormat}`);\n }\n return { ...metadata, byteLength: bytes.byteLength, source: values.source || \"buffer\" };\n}\n\n/**\n * Reports whether input is supported under normalized format options for the Ogg\n * format reader.\n */\nexport function isSupportedWithValues(input, values = DEFAULT_VALUES)\n{\n try\n {\n const metadata = inspectWithValues(input, values);\n const mimeType = getOggMimeType(metadata);\n const variants = [\n {\n kind: \"raw\",\n payloadType: \"raw\",\n codec: \"ogg\",\n mimeType,\n supported: true,\n containerOnly: true,\n isDecoded: false,\n pcmDecodeSupported: false,\n frameDecodeSupported: false\n },\n {\n kind: \"pcm\",\n payloadType: \"pcm\",\n codec: metadata.codec === \"vorbis\" ? \"float32\" : \"pcm\",\n supported: metadata.codec === \"vorbis\",\n reason: metadata.codec === \"vorbis\" ? \"\" : \"Only Ogg Vorbis PCM decode is implemented.\"\n }\n ];\n if (metadata.mediaType === \"video\")\n {\n variants.push({\n kind: \"decoded\",\n payloadType: \"video-frame\",\n codec: \"frames\",\n supported: false,\n reason: \"OGG Theora frame decode is not implemented yet.\"\n });\n }\n const pcmSupported = metadata.codec === \"vorbis\";\n return {\n format: \"ogg\",\n source: values.source || \"buffer\",\n supported: \"partial\",\n confidence: 1,\n preferred: pcmSupported ? \"pcm\" : (metadata.sourceFormat ? \"ogg\" : \"\"),\n reason: pcmSupported\n ? \"Ogg Vorbis recognized; PCM decode is supported.\"\n : \"Ogg pages and codec headers are recognized; raw Ogg passthrough is available.\",\n metadata,\n variants,\n warnings: [],\n errors: []\n };\n }\n catch (error)\n {\n return {\n format: \"ogg\",\n source: values.source || \"buffer\",\n supported: \"none\",\n confidence: 0,\n preferred: \"\",\n reason: error.message,\n metadata: null,\n variants: [],\n warnings: [],\n errors: [ error.message ]\n };\n }\n}\n\n/** Reads input using normalized format options for the Ogg format reader. */\nexport function readWithValues(input, values = DEFAULT_VALUES)\n{\n const bytes = toBytes(input);\n const metadata = inspectWithValues(bytes, values);\n if (values.emit === OUTPUT_RAW)\n {\n return {\n payloadType: \"raw\",\n sourceFormat: \"ogg\",\n mimeType: getOggMimeType(metadata),\n containerOnly: true,\n isDecoded: false,\n pcmDecodeSupported: false,\n frameDecodeSupported: false,\n metadata,\n bytes\n };\n }\n if (values.emit === OUTPUT_JSON || values.emit === \"oggJson\") return metadata;\n if (values.emit === OUTPUT_PCM || values.emit === OUTPUT_AUDIO)\n {\n if (metadata.codec !== \"vorbis\")\n {\n const error = new Error(`ogg: PCM decode supports Vorbis only (found ${metadata.codec})`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n throw error;\n }\n const decoded = decodeVorbis(bytes);\n const data = new Float32Array(decoded.sampleCount * decoded.channels);\n for (let channel = 0; channel < decoded.channels; channel++)\n {\n const samples = decoded.channelData[channel];\n for (let i = 0; i < decoded.sampleCount; i++)\n {\n data[i * decoded.channels + channel] = samples[i];\n }\n }\n return {\n payloadType: values.emit === OUTPUT_AUDIO ? OUTPUT_AUDIO : OUTPUT_PCM,\n sourceFormat: \"ogg\",\n codec: \"vorbis\",\n containerOnly: false,\n isDecoded: true,\n pcmDecodeSupported: true,\n audioFormat: \"float32\",\n sampleFormat: \"float32\",\n sampleRate: decoded.sampleRate,\n channels: decoded.channels,\n interleaving: \"interleaved\",\n frameCount: decoded.sampleCount,\n durationSeconds: decoded.sampleRate ? decoded.sampleCount / decoded.sampleRate : 0,\n vendor: decoded.vendor,\n comments: decoded.comments,\n loop: decoded.loop,\n channelData: decoded.channelData,\n metadata,\n data\n };\n }\n const error = new Error(`ogg: emit \"${values.emit}\" is not implemented yet`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED\";\n throw error;\n}\n\n/** Converts a parsed payload into a JSON-safe value for the Ogg format reader. */\nexport function toJsonValue(value)\n{\n if (value instanceof Uint8Array) return { byteLength: value.byteLength };\n if (Array.isArray(value)) return value.map(toJsonValue);\n if (value && typeof value === \"object\")\n {\n const output = {};\n for (const [ key, entry ] of Object.entries(value)) output[key] = toJsonValue(entry);\n return output;\n }\n return value;\n}\n\nfunction getOggMimeType(metadata)\n{\n if (metadata.mediaType === \"video\") return \"video/ogg\";\n if (metadata.mediaType === \"audio\") return \"audio/ogg\";\n return \"application/ogg\";\n}\n\nfunction inspectOgg(bytes)\n{\n const streams = new Map();\n let offset = 0;\n let pageCount = 0;\n while (offset + 27 <= bytes.byteLength)\n {\n if (ascii(bytes, offset, 4) !== \"OggS\") throw new Error(`ogg: invalid page at byte ${offset}`);\n const version = bytes[offset + 4];\n if (version !== 0) throw new Error(`ogg: unsupported stream version ${version}`);\n const headerType = bytes[offset + 5];\n if (headerType & 0xf8) throw new Error(`ogg: reserved header flags at byte ${offset}`);\n const granulePosition = readU64LE(bytes, offset + 6);\n const serial = readU32LE(bytes, offset + 14);\n const sequence = readU32LE(bytes, offset + 18);\n const segmentCount = bytes[offset + 26];\n const tableOffset = offset + 27;\n const payloadOffset = tableOffset + segmentCount;\n if (payloadOffset > bytes.byteLength) throw new Error(\"ogg: truncated segment table\");\n let payloadLength = 0;\n for (let i = 0; i < segmentCount; i++) payloadLength += bytes[tableOffset + i];\n if (payloadOffset + payloadLength > bytes.byteLength) throw new Error(\"ogg: truncated page payload\");\n const pageLength = 27 + segmentCount + payloadLength;\n const expectedChecksum = readU32LE(bytes, offset + 22);\n if (computeOggCrc(bytes, offset, pageLength) !== expectedChecksum)\n {\n throw new Error(`ogg: page checksum mismatch at byte ${offset}`);\n }\n const stream = streams.get(serial) || {\n serial,\n pages: 0,\n firstPacket: [],\n packetBytes: 0,\n firstPacketComplete: false,\n packetOpen: false,\n codec: \"\",\n mediaType: \"unknown\",\n payloadBytes: 0\n };\n const continued = !!(headerType & 0x01);\n if (stream.pages === 0 && !(headerType & 0x02)) throw new Error(`ogg: first page of stream ${serial} is missing BOS`);\n if (stream.pages === 0 && continued) throw new Error(`ogg: first page of stream ${serial} is marked continued`);\n if (stream.eosSeen) throw new Error(`ogg: page follows EOS for stream ${serial}`);\n if (stream.pages > 0 && continued !== stream.packetOpen)\n {\n throw new Error(`ogg: continued-page state mismatch for stream ${serial}`);\n }\n if ((headerType & 0x02) && stream.pages !== 0) throw new Error(`ogg: BOS page is not first for stream ${serial}`);\n if (stream.lastSequence !== undefined && sequence !== stream.lastSequence + 1)\n {\n throw new Error(`ogg: page sequence mismatch for stream ${serial}`);\n }\n if (stream.pages === 0)\n {\n stream.firstSequence = sequence;\n stream.firstGranulePosition = granulePosition;\n stream.bos = !!(headerType & 0x02);\n }\n stream.pages++;\n stream.payloadBytes += payloadLength;\n collectFirstPacket(stream, bytes, payloadOffset, tableOffset, segmentCount);\n if ((headerType & 0x04) && stream.packetOpen) throw new Error(`ogg: EOS page leaves a packet continued for stream ${serial}`);\n stream.lastGranulePosition = granulePosition;\n stream.granulePosition = granulePosition;\n stream.lastSequence = sequence;\n stream.eos = !!(headerType & 0x04);\n stream.eosSeen = stream.eos;\n streams.set(serial, stream);\n pageCount++;\n offset = payloadOffset + payloadLength;\n }\n if (offset !== bytes.byteLength) throw new Error(`ogg: truncated trailing page at byte ${offset}`);\n if (!pageCount) throw new Error(\"ogg: no pages found\");\n const tracks = Array.from(streams.values()).map(stream => decodeCodec(stream));\n const primary = tracks.find(track => track.mediaType !== \"unknown\") || tracks[0];\n return {\n payloadType: primary?.mediaType === \"video\" ? \"video\" : primary?.mediaType === \"audio\" ? \"audio\" : \"container\",\n mediaTypes: tracks.map(track => track.mediaType),\n sourceFormat: \"ogg\",\n pageCount,\n streamCount: tracks.length,\n codec: primary?.codec || \"ogg\",\n mediaType: primary?.mediaType || \"unknown\",\n tracks\n };\n}\n\nfunction computeOggCrc(bytes, offset, length)\n{\n let crc = 0;\n for (let i = 0; i < length; i++)\n {\n const relative = i;\n const value = relative >= 22 && relative < 26 ? 0 : bytes[offset + relative];\n crc ^= value << 24;\n for (let bit = 0; bit < 8; bit++)\n {\n crc = (crc & 0x80000000) ? ((crc << 1) ^ 0x04c11db7) : (crc << 1);\n }\n }\n return crc >>> 0;\n}\n\nfunction collectFirstPacket(stream, bytes, payloadOffset, tableOffset, segmentCount)\n{\n let cursor = payloadOffset;\n let lastLength = 0;\n for (let i = 0; i < segmentCount; i++)\n {\n const length = bytes[tableOffset + i];\n if (!stream.firstPacketComplete && stream.packetBytes < 64)\n {\n const copyLength = Math.min(length, 64 - stream.packetBytes);\n stream.firstPacket.push(...bytes.subarray(cursor, cursor + copyLength));\n stream.packetBytes += copyLength;\n }\n cursor += length;\n lastLength = length;\n if (length < 255)\n {\n if (!stream.firstPacketComplete) stream.firstPacketComplete = true;\n }\n }\n stream.packetOpen = segmentCount > 0 && lastLength === 255;\n}\n\nfunction decodeCodec(stream)\n{\n const packet = Uint8Array.from(stream.firstPacket);\n if (matches(packet, [ 1, 0x76, 0x6f, 0x72, 0x62, 0x69, 0x73 ]))\n {\n if (packet.length < 30) throw new Error(`ogg: truncated Vorbis identification header for stream ${stream.serial}`);\n if (readU32LE(packet, 7) !== 0 || !packet[11] || !readU32LE(packet, 12))\n {\n throw new Error(`ogg: invalid Vorbis identification header for stream ${stream.serial}`);\n }\n stream.codec = \"vorbis\";\n stream.mediaType = \"audio\";\n stream.channels = packet[11] || 0;\n stream.sampleRate = readU32LE(packet, 12);\n stream.bitrateMaximum = readS32LE(packet, 16);\n stream.bitrateNominal = readS32LE(packet, 20);\n stream.bitrateMinimum = readS32LE(packet, 24);\n addAudioTiming(stream, 0);\n }\n else if (matches(packet, [ 0x4f, 0x70, 0x75, 0x73, 0x48, 0x65, 0x61, 0x64 ]))\n {\n if (packet.length < 19 || packet[8] !== 1 || !packet[9] || (packet[18] && packet.length < 21 + packet[9]))\n {\n throw new Error(`ogg: invalid OpusHead packet for stream ${stream.serial}`);\n }\n stream.codec = \"opus\";\n stream.mediaType = \"audio\";\n stream.channels = packet[9] || 0;\n stream.preSkip = readU16LE(packet, 10);\n stream.inputSampleRate = readU32LE(packet, 12);\n stream.sampleRate = 48000;\n stream.outputGain = readS16LE(packet, 16);\n stream.mappingFamily = packet[18] || 0;\n addAudioTiming(stream, stream.preSkip);\n }\n else if (matches(packet, [ 0x80, 0x74, 0x68, 0x65, 0x6f, 0x72, 0x61 ]))\n {\n if (packet.length < 42) throw new Error(`ogg: truncated Theora identification header for stream ${stream.serial}`);\n stream.codec = \"theora\";\n stream.mediaType = \"video\";\n stream.frameWidth = readU16BE(packet, 10) * 16;\n stream.frameHeight = readU16BE(packet, 12) * 16;\n stream.width = readU24BE(packet, 14);\n stream.height = readU24BE(packet, 17);\n stream.frameRateNumerator = readU32BE(packet, 22);\n stream.frameRateDenominator = readU32BE(packet, 26);\n stream.frameRate = stream.frameRateDenominator\n ? stream.frameRateNumerator / stream.frameRateDenominator\n : 0;\n stream.pixelAspectNumerator = readU24BE(packet, 30);\n stream.pixelAspectDenominator = readU24BE(packet, 33);\n stream.pixelAspectRatio = stream.pixelAspectDenominator\n ? stream.pixelAspectNumerator / stream.pixelAspectDenominator\n : 0;\n stream.colorSpace = packet[36] || 0;\n }\n delete stream.firstPacket;\n delete stream.packetBytes;\n delete stream.firstPacketComplete;\n delete stream.packetOpen;\n return stream;\n}\n\nfunction addAudioTiming(stream, preSkip)\n{\n stream.granulePosition = stream.lastGranulePosition;\n const granule = typeof stream.lastGranulePosition === \"number\"\n ? stream.lastGranulePosition\n : typeof stream.lastGranulePosition === \"string\" && /^\\d+$/u.test(stream.lastGranulePosition)\n ? Number(stream.lastGranulePosition)\n : null;\n if (granule === null || !Number.isSafeInteger(granule)) return;\n stream.durationSamples = Math.max(0, granule - preSkip);\n stream.durationSeconds = stream.sampleRate ? stream.durationSamples / stream.sampleRate : 0;\n}\n\nfunction matches(bytes, signature)\n{\n return signature.every((value, index) => bytes[index] === value);\n}\n\nfunction ascii(bytes, offset, length)\n{\n return String.fromCharCode(...bytes.subarray(offset, offset + length));\n}\n\nfunction readU16LE(bytes, offset)\n{\n return (bytes[offset] || 0) | ((bytes[offset + 1] || 0) << 8);\n}\n\nfunction readU16BE(bytes, offset)\n{\n return ((bytes[offset] || 0) << 8) | (bytes[offset + 1] || 0);\n}\n\nfunction readU24BE(bytes, offset)\n{\n return ((bytes[offset] || 0) * 0x10000) + ((bytes[offset + 1] || 0) << 8) + (bytes[offset + 2] || 0);\n}\n\nfunction readS16LE(bytes, offset)\n{\n const value = readU16LE(bytes, offset);\n return value & 0x8000 ? value - 0x10000 : value;\n}\n\nfunction readU32LE(bytes, offset)\n{\n return ((bytes[offset] || 0) | ((bytes[offset + 1] || 0) << 8) | ((bytes[offset + 2] || 0) << 16) | ((bytes[offset + 3] || 0) * 0x1000000)) >>> 0;\n}\n\nfunction readU32BE(bytes, offset)\n{\n return (((bytes[offset] || 0) * 0x1000000) + ((bytes[offset + 1] || 0) << 16) + ((bytes[offset + 2] || 0) << 8) + (bytes[offset + 3] || 0)) >>> 0;\n}\n\nfunction readS32LE(bytes, offset)\n{\n return readU32LE(bytes, offset) | 0;\n}\n\nfunction readU64LE(bytes, offset)\n{\n let value = 0n;\n for (let i = 7; i >= 0; i--) value = (value << 8n) | BigInt(bytes[offset + i] || 0);\n if (value === 0xffffffffffffffffn) return null;\n return value <= BigInt(Number.MAX_SAFE_INTEGER) ? Number(value) : value.toString();\n}\n"],"names":["OUTPUT_RAW","OUTPUT_JSON","OUTPUT_PCM","OUTPUT_AUDIO","DEFAULT_VALUES","Object","freeze","emit","inputType","source","normalizeValues","base","options","readerName","Array","isArray","TypeError","allowed","Set","key","keys","has","JSON","stringify","values","includes","toBytes","input","Uint8Array","ArrayBuffer","isView","buffer","byteOffset","byteLength","isOGG","bytes","ascii","inspectWithValues","expectedType","metadata","inspectOgg","sourceFormat","isSupportedWithValues","mimeType","getOggMimeType","variants","kind","payloadType","codec","supported","containerOnly","isDecoded","pcmDecodeSupported","frameDecodeSupported","reason","mediaType","push","pcmSupported","format","confidence","preferred","warnings","errors","error","message","readWithValues","Error","code","decoded","decodeVorbis","data","Float32Array","sampleCount","channels","channel","samples","channelData","i","audioFormat","sampleFormat","sampleRate","interleaving","frameCount","durationSeconds","vendor","comments","loop","toJsonValue","value","map","output","entry","entries","streams","Map","offset","pageCount","version","headerType","granulePosition","readU64LE","serial","readU32LE","sequence","segmentCount","tableOffset","payloadOffset","payloadLength","pageLength","expectedChecksum","computeOggCrc","stream","get","pages","firstPacket","packetBytes","firstPacketComplete","packetOpen","payloadBytes","continued","eosSeen","lastSequence","undefined","firstSequence","firstGranulePosition","bos","collectFirstPacket","lastGranulePosition","eos","set","tracks","from","decodeCodec","primary","find","track","mediaTypes","streamCount","length","crc","relative","bit","cursor","lastLength","copyLength","Math","min","subarray","packet","matches","bitrateMaximum","readS32LE","bitrateNominal","bitrateMinimum","addAudioTiming","preSkip","readU16LE","inputSampleRate","outputGain","readS16LE","mappingFamily","frameWidth","readU16BE","frameHeight","width","readU24BE","height","frameRateNumerator","readU32BE","frameRateDenominator","frameRate","pixelAspectNumerator","pixelAspectDenominator","pixelAspectRatio","colorSpace","granule","test","Number","isSafeInteger","durationSamples","max","signature","every","index","String","fromCharCode","BigInt","MAX_SAFE_INTEGER","toString"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.js","sources":["../../../../../src/formats/ogg/core/helpers.js"],"sourcesContent":["import { decodeVorbis } from \"./vorbis.js\";\n\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_JSON = \"json\";\nexport const OUTPUT_PCM = \"pcm\";\nexport const OUTPUT_AUDIO = \"audio\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_RAW,\n inputType: \"ogg\",\n source: \"\"\n});\n\n/**\n * Normalizes reader options against their supported defaults for the Ogg format\n * reader.\n */\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsOggFormat\")\n{\n if (!options || typeof options !== \"object\" || Array.isArray(options))\n {\n throw new TypeError(`${readerName}: options must be an object`);\n }\n const allowed = new Set([ \"emit\", \"inputType\", \"source\" ]);\n for (const key of Object.keys(options))\n {\n if (!allowed.has(key)) throw new TypeError(`${readerName}: unknown option ${JSON.stringify(key)}`);\n }\n const values = { ...DEFAULT_VALUES, ...(base || {}), ...options };\n if (![ OUTPUT_RAW, OUTPUT_JSON, \"oggJson\", \"audio\", \"pcm\" ].includes(values.emit))\n {\n throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(values.emit)}`);\n }\n return values;\n}\n\n/** Returns a byte view over the supplied binary input for the Ogg format reader. */\nexport function toBytes(input)\n{\n if (input instanceof Uint8Array) return input;\n if (input instanceof ArrayBuffer) return new Uint8Array(input);\n if (ArrayBuffer.isView(input)) return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);\n throw new TypeError(\"OGG input must be Uint8Array, ArrayBuffer, or a view\");\n}\n\n/**\n * Reports whether the supplied bytes begin with an Ogg page signature for the\n * Ogg format reader.\n */\nexport function isOGG(bytes)\n{\n return bytes.byteLength >= 4 && ascii(bytes, 0, 4) === \"OggS\";\n}\n\n/** Inspects input using normalized format options for the Ogg format reader. */\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"ogg\")\n{\n const bytes = toBytes(input);\n if (!isOGG(bytes)) throw new TypeError(\"CjsOggFormat: input is not an Ogg container\");\n const metadata = inspectOgg(bytes);\n if (expectedType && metadata.sourceFormat !== expectedType)\n {\n throw new TypeError(`CjsOggFormat: expected ${expectedType}, got ${metadata.sourceFormat}`);\n }\n return { ...metadata, byteLength: bytes.byteLength, source: values.source || \"buffer\" };\n}\n\n/**\n * Reports whether input is supported under normalized format options for the Ogg\n * format reader.\n */\nexport function probeSupportWithValues(input, values = DEFAULT_VALUES)\n{\n try\n {\n const metadata = inspectWithValues(input, values);\n const mimeType = getOggMimeType(metadata);\n const variants = [\n {\n kind: \"raw\",\n payloadType: \"raw\",\n codec: \"ogg\",\n mimeType,\n supported: true,\n },\n {\n kind: \"pcm\",\n payloadType: \"pcm\",\n codec: metadata.codec === \"vorbis\" ? \"float32\" : \"pcm\",\n supported: metadata.codec === \"vorbis\",\n reason: metadata.codec === \"vorbis\" ? \"\" : \"Only Ogg Vorbis PCM decode is implemented.\"\n }\n ];\n if (metadata.mediaType === \"video\")\n {\n variants.push({\n kind: \"decoded\",\n payloadType: \"video-frame\",\n codec: \"frames\",\n supported: false,\n reason: \"OGG Theora frame decode is not implemented yet.\"\n });\n }\n const pcmSupported = metadata.codec === \"vorbis\";\n return {\n format: \"ogg\",\n source: values.source || \"buffer\",\n supported: \"partial\",\n confidence: 1,\n preferredOutput: pcmSupported ? \"pcm\" : (metadata.sourceFormat ? \"raw\" : \"\"),\n reason: pcmSupported\n ? \"Ogg Vorbis recognized; PCM decode is supported.\"\n : \"Ogg pages and codec headers are recognized; raw Ogg passthrough is available.\",\n metadata,\n variants,\n warnings: [],\n errors: []\n };\n }\n catch (error)\n {\n return {\n format: \"ogg\",\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/** Reads input using normalized format options for the Ogg format reader. */\nexport function readWithValues(input, values = DEFAULT_VALUES)\n{\n const bytes = toBytes(input);\n const metadata = inspectWithValues(bytes, values);\n if (values.emit === OUTPUT_RAW)\n {\n return {\n payloadType: \"raw\",\n sourceFormat: \"ogg\",\n mimeType: getOggMimeType(metadata),\n metadata,\n bytes\n };\n }\n if (values.emit === OUTPUT_JSON || values.emit === \"oggJson\") return metadata;\n if (values.emit === OUTPUT_PCM || values.emit === OUTPUT_AUDIO)\n {\n if (metadata.codec !== \"vorbis\")\n {\n const error = new Error(`ogg: PCM decode supports Vorbis only (found ${metadata.codec})`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n throw error;\n }\n const decoded = decodeVorbis(bytes);\n const data = new Float32Array(decoded.sampleCount * decoded.channels);\n for (let channel = 0; channel < decoded.channels; channel++)\n {\n const samples = decoded.channelData[channel];\n for (let i = 0; i < decoded.sampleCount; i++)\n {\n data[i * decoded.channels + channel] = samples[i];\n }\n }\n return {\n payloadType: values.emit === OUTPUT_AUDIO ? OUTPUT_AUDIO : OUTPUT_PCM,\n sourceFormat: \"ogg\",\n codec: \"vorbis\",\n audioFormat: \"float32\",\n sampleFormat: \"float32\",\n sampleRate: decoded.sampleRate,\n channels: decoded.channels,\n interleaving: \"interleaved\",\n frameCount: decoded.sampleCount,\n durationSeconds: decoded.sampleRate ? decoded.sampleCount / decoded.sampleRate : 0,\n vendor: decoded.vendor,\n comments: decoded.comments,\n loop: decoded.loop,\n channelData: decoded.channelData,\n metadata,\n data\n };\n }\n const error = new Error(`ogg: emit \"${values.emit}\" is not implemented yet`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED\";\n throw error;\n}\n\n/** Converts a parsed payload into a JSON-safe value for the Ogg format reader. */\nexport function toJsonValue(value)\n{\n if (value instanceof Uint8Array) return { byteLength: value.byteLength };\n if (Array.isArray(value)) return value.map(toJsonValue);\n if (value && typeof value === \"object\")\n {\n const output = {};\n for (const [ key, entry ] of Object.entries(value)) output[key] = toJsonValue(entry);\n return output;\n }\n return value;\n}\n\nfunction getOggMimeType(metadata)\n{\n if (metadata.mediaType === \"video\") return \"video/ogg\";\n if (metadata.mediaType === \"audio\") return \"audio/ogg\";\n return \"application/ogg\";\n}\n\nfunction inspectOgg(bytes)\n{\n const streams = new Map();\n let offset = 0;\n let pageCount = 0;\n while (offset + 27 <= bytes.byteLength)\n {\n if (ascii(bytes, offset, 4) !== \"OggS\") throw new Error(`ogg: invalid page at byte ${offset}`);\n const version = bytes[offset + 4];\n if (version !== 0) throw new Error(`ogg: unsupported stream version ${version}`);\n const headerType = bytes[offset + 5];\n if (headerType & 0xf8) throw new Error(`ogg: reserved header flags at byte ${offset}`);\n const granulePosition = readU64LE(bytes, offset + 6);\n const serial = readU32LE(bytes, offset + 14);\n const sequence = readU32LE(bytes, offset + 18);\n const segmentCount = bytes[offset + 26];\n const tableOffset = offset + 27;\n const payloadOffset = tableOffset + segmentCount;\n if (payloadOffset > bytes.byteLength) throw new Error(\"ogg: truncated segment table\");\n let payloadLength = 0;\n for (let i = 0; i < segmentCount; i++) payloadLength += bytes[tableOffset + i];\n if (payloadOffset + payloadLength > bytes.byteLength) throw new Error(\"ogg: truncated page payload\");\n const pageLength = 27 + segmentCount + payloadLength;\n const expectedChecksum = readU32LE(bytes, offset + 22);\n if (computeOggCrc(bytes, offset, pageLength) !== expectedChecksum)\n {\n throw new Error(`ogg: page checksum mismatch at byte ${offset}`);\n }\n const stream = streams.get(serial) || {\n serial,\n pages: 0,\n firstPacket: [],\n packetBytes: 0,\n firstPacketComplete: false,\n packetOpen: false,\n codec: \"\",\n mediaType: \"unknown\",\n payloadBytes: 0\n };\n const continued = !!(headerType & 0x01);\n if (stream.pages === 0 && !(headerType & 0x02)) throw new Error(`ogg: first page of stream ${serial} is missing BOS`);\n if (stream.pages === 0 && continued) throw new Error(`ogg: first page of stream ${serial} is marked continued`);\n if (stream.eosSeen) throw new Error(`ogg: page follows EOS for stream ${serial}`);\n if (stream.pages > 0 && continued !== stream.packetOpen)\n {\n throw new Error(`ogg: continued-page state mismatch for stream ${serial}`);\n }\n if ((headerType & 0x02) && stream.pages !== 0) throw new Error(`ogg: BOS page is not first for stream ${serial}`);\n if (stream.lastSequence !== undefined && sequence !== stream.lastSequence + 1)\n {\n throw new Error(`ogg: page sequence mismatch for stream ${serial}`);\n }\n if (stream.pages === 0)\n {\n stream.firstSequence = sequence;\n stream.firstGranulePosition = granulePosition;\n stream.bos = !!(headerType & 0x02);\n }\n stream.pages++;\n stream.payloadBytes += payloadLength;\n collectFirstPacket(stream, bytes, payloadOffset, tableOffset, segmentCount);\n if ((headerType & 0x04) && stream.packetOpen) throw new Error(`ogg: EOS page leaves a packet continued for stream ${serial}`);\n stream.lastGranulePosition = granulePosition;\n stream.granulePosition = granulePosition;\n stream.lastSequence = sequence;\n stream.eos = !!(headerType & 0x04);\n stream.eosSeen = stream.eos;\n streams.set(serial, stream);\n pageCount++;\n offset = payloadOffset + payloadLength;\n }\n if (offset !== bytes.byteLength) throw new Error(`ogg: truncated trailing page at byte ${offset}`);\n if (!pageCount) throw new Error(\"ogg: no pages found\");\n const tracks = Array.from(streams.values()).map(stream => decodeCodec(stream));\n const primary = tracks.find(track => track.mediaType !== \"unknown\") || tracks[0];\n return {\n payloadType: primary?.mediaType === \"video\" ? \"video\" : primary?.mediaType === \"audio\" ? \"audio\" : \"container\",\n mediaTypes: tracks.map(track => track.mediaType),\n sourceFormat: \"ogg\",\n pageCount,\n streamCount: tracks.length,\n codec: primary?.codec || \"ogg\",\n mediaType: primary?.mediaType || \"unknown\",\n tracks\n };\n}\n\nfunction computeOggCrc(bytes, offset, length)\n{\n let crc = 0;\n for (let i = 0; i < length; i++)\n {\n const relative = i;\n const value = relative >= 22 && relative < 26 ? 0 : bytes[offset + relative];\n crc ^= value << 24;\n for (let bit = 0; bit < 8; bit++)\n {\n crc = (crc & 0x80000000) ? ((crc << 1) ^ 0x04c11db7) : (crc << 1);\n }\n }\n return crc >>> 0;\n}\n\nfunction collectFirstPacket(stream, bytes, payloadOffset, tableOffset, segmentCount)\n{\n let cursor = payloadOffset;\n let lastLength = 0;\n for (let i = 0; i < segmentCount; i++)\n {\n const length = bytes[tableOffset + i];\n if (!stream.firstPacketComplete && stream.packetBytes < 64)\n {\n const copyLength = Math.min(length, 64 - stream.packetBytes);\n stream.firstPacket.push(...bytes.subarray(cursor, cursor + copyLength));\n stream.packetBytes += copyLength;\n }\n cursor += length;\n lastLength = length;\n if (length < 255)\n {\n if (!stream.firstPacketComplete) stream.firstPacketComplete = true;\n }\n }\n stream.packetOpen = segmentCount > 0 && lastLength === 255;\n}\n\nfunction decodeCodec(stream)\n{\n const packet = Uint8Array.from(stream.firstPacket);\n if (matches(packet, [ 1, 0x76, 0x6f, 0x72, 0x62, 0x69, 0x73 ]))\n {\n if (packet.length < 30) throw new Error(`ogg: truncated Vorbis identification header for stream ${stream.serial}`);\n if (readU32LE(packet, 7) !== 0 || !packet[11] || !readU32LE(packet, 12))\n {\n throw new Error(`ogg: invalid Vorbis identification header for stream ${stream.serial}`);\n }\n stream.codec = \"vorbis\";\n stream.mediaType = \"audio\";\n stream.channels = packet[11] || 0;\n stream.sampleRate = readU32LE(packet, 12);\n stream.bitrateMaximum = readS32LE(packet, 16);\n stream.bitrateNominal = readS32LE(packet, 20);\n stream.bitrateMinimum = readS32LE(packet, 24);\n addAudioTiming(stream, 0);\n }\n else if (matches(packet, [ 0x4f, 0x70, 0x75, 0x73, 0x48, 0x65, 0x61, 0x64 ]))\n {\n if (packet.length < 19 || packet[8] !== 1 || !packet[9] || (packet[18] && packet.length < 21 + packet[9]))\n {\n throw new Error(`ogg: invalid OpusHead packet for stream ${stream.serial}`);\n }\n stream.codec = \"opus\";\n stream.mediaType = \"audio\";\n stream.channels = packet[9] || 0;\n stream.preSkip = readU16LE(packet, 10);\n stream.inputSampleRate = readU32LE(packet, 12);\n stream.sampleRate = 48000;\n stream.outputGain = readS16LE(packet, 16);\n stream.mappingFamily = packet[18] || 0;\n addAudioTiming(stream, stream.preSkip);\n }\n else if (matches(packet, [ 0x80, 0x74, 0x68, 0x65, 0x6f, 0x72, 0x61 ]))\n {\n if (packet.length < 42) throw new Error(`ogg: truncated Theora identification header for stream ${stream.serial}`);\n stream.codec = \"theora\";\n stream.mediaType = \"video\";\n stream.frameWidth = readU16BE(packet, 10) * 16;\n stream.frameHeight = readU16BE(packet, 12) * 16;\n stream.width = readU24BE(packet, 14);\n stream.height = readU24BE(packet, 17);\n stream.frameRateNumerator = readU32BE(packet, 22);\n stream.frameRateDenominator = readU32BE(packet, 26);\n stream.frameRate = stream.frameRateDenominator\n ? stream.frameRateNumerator / stream.frameRateDenominator\n : 0;\n stream.pixelAspectNumerator = readU24BE(packet, 30);\n stream.pixelAspectDenominator = readU24BE(packet, 33);\n stream.pixelAspectRatio = stream.pixelAspectDenominator\n ? stream.pixelAspectNumerator / stream.pixelAspectDenominator\n : 0;\n stream.colorSpace = packet[36] || 0;\n }\n delete stream.firstPacket;\n delete stream.packetBytes;\n delete stream.firstPacketComplete;\n delete stream.packetOpen;\n return stream;\n}\n\nfunction addAudioTiming(stream, preSkip)\n{\n stream.granulePosition = stream.lastGranulePosition;\n const granule = typeof stream.lastGranulePosition === \"number\"\n ? stream.lastGranulePosition\n : typeof stream.lastGranulePosition === \"string\" && /^\\d+$/u.test(stream.lastGranulePosition)\n ? Number(stream.lastGranulePosition)\n : null;\n if (granule === null || !Number.isSafeInteger(granule)) return;\n stream.durationSamples = Math.max(0, granule - preSkip);\n stream.durationSeconds = stream.sampleRate ? stream.durationSamples / stream.sampleRate : 0;\n}\n\nfunction matches(bytes, signature)\n{\n return signature.every((value, index) => bytes[index] === value);\n}\n\nfunction ascii(bytes, offset, length)\n{\n return String.fromCharCode(...bytes.subarray(offset, offset + length));\n}\n\nfunction readU16LE(bytes, offset)\n{\n return (bytes[offset] || 0) | ((bytes[offset + 1] || 0) << 8);\n}\n\nfunction readU16BE(bytes, offset)\n{\n return ((bytes[offset] || 0) << 8) | (bytes[offset + 1] || 0);\n}\n\nfunction readU24BE(bytes, offset)\n{\n return ((bytes[offset] || 0) * 0x10000) + ((bytes[offset + 1] || 0) << 8) + (bytes[offset + 2] || 0);\n}\n\nfunction readS16LE(bytes, offset)\n{\n const value = readU16LE(bytes, offset);\n return value & 0x8000 ? value - 0x10000 : value;\n}\n\nfunction readU32LE(bytes, offset)\n{\n return ((bytes[offset] || 0) | ((bytes[offset + 1] || 0) << 8) | ((bytes[offset + 2] || 0) << 16) | ((bytes[offset + 3] || 0) * 0x1000000)) >>> 0;\n}\n\nfunction readU32BE(bytes, offset)\n{\n return (((bytes[offset] || 0) * 0x1000000) + ((bytes[offset + 1] || 0) << 16) + ((bytes[offset + 2] || 0) << 8) + (bytes[offset + 3] || 0)) >>> 0;\n}\n\nfunction readS32LE(bytes, offset)\n{\n return readU32LE(bytes, offset) | 0;\n}\n\nfunction readU64LE(bytes, offset)\n{\n let value = 0n;\n for (let i = 7; i >= 0; i--) value = (value << 8n) | BigInt(bytes[offset + i] || 0);\n if (value === 0xffffffffffffffffn) return null;\n return value <= BigInt(Number.MAX_SAFE_INTEGER) ? Number(value) : value.toString();\n}\n"],"names":["OUTPUT_RAW","OUTPUT_JSON","OUTPUT_PCM","OUTPUT_AUDIO","DEFAULT_VALUES","Object","freeze","emit","inputType","source","normalizeValues","base","options","readerName","Array","isArray","TypeError","allowed","Set","key","keys","has","JSON","stringify","values","includes","toBytes","input","Uint8Array","ArrayBuffer","isView","buffer","byteOffset","byteLength","isOGG","bytes","ascii","inspectWithValues","expectedType","metadata","inspectOgg","sourceFormat","probeSupportWithValues","mimeType","getOggMimeType","variants","kind","payloadType","codec","supported","reason","mediaType","push","pcmSupported","format","confidence","preferredOutput","warnings","errors","error","message","readWithValues","Error","code","decoded","decodeVorbis","data","Float32Array","sampleCount","channels","channel","samples","channelData","i","audioFormat","sampleFormat","sampleRate","interleaving","frameCount","durationSeconds","vendor","comments","loop","toJsonValue","value","map","output","entry","entries","streams","Map","offset","pageCount","version","headerType","granulePosition","readU64LE","serial","readU32LE","sequence","segmentCount","tableOffset","payloadOffset","payloadLength","pageLength","expectedChecksum","computeOggCrc","stream","get","pages","firstPacket","packetBytes","firstPacketComplete","packetOpen","payloadBytes","continued","eosSeen","lastSequence","undefined","firstSequence","firstGranulePosition","bos","collectFirstPacket","lastGranulePosition","eos","set","tracks","from","decodeCodec","primary","find","track","mediaTypes","streamCount","length","crc","relative","bit","cursor","lastLength","copyLength","Math","min","subarray","packet","matches","bitrateMaximum","readS32LE","bitrateNominal","bitrateMinimum","addAudioTiming","preSkip","readU16LE","inputSampleRate","outputGain","readS16LE","mappingFamily","frameWidth","readU16BE","frameHeight","width","readU24BE","height","frameRateNumerator","readU32BE","frameRateDenominator","frameRate","pixelAspectNumerator","pixelAspectDenominator","pixelAspectRatio","colorSpace","granule","test","Number","isSafeInteger","durationSamples","max","signature","every","index","String","fromCharCode","BigInt","MAX_SAFE_INTEGER","toString"],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CjsFormat } from '../../format/CjsFormat.js';
|
|
1
2
|
import { PICKLE_PROTOCOL_0_LIMITS, CjsPickleProtocol0Reader } from './core/CjsPickleProtocol0Reader.js';
|
|
2
3
|
|
|
3
4
|
const OUTPUT_JSON = "json";
|
|
@@ -15,7 +16,7 @@ const DEFAULT_VALUES = {
|
|
|
15
16
|
* JSON-compatible values or identity-preserving payload graphs while rejecting
|
|
16
17
|
* callable and object-construction opcodes.
|
|
17
18
|
*/
|
|
18
|
-
class CjsPickleFormat {
|
|
19
|
+
class CjsPickleFormat extends CjsFormat {
|
|
19
20
|
#values = DEFAULT_VALUES;
|
|
20
21
|
|
|
21
22
|
/**
|
|
@@ -24,6 +25,7 @@ class CjsPickleFormat {
|
|
|
24
25
|
* @param {object} [options] Emit mode and bounded decoder limits.
|
|
25
26
|
*/
|
|
26
27
|
constructor(options = {}) {
|
|
28
|
+
super();
|
|
27
29
|
this.SetValues(options);
|
|
28
30
|
}
|
|
29
31
|
|
|
@@ -161,6 +163,54 @@ class CjsPickleFormat {
|
|
|
161
163
|
return CjsPickleProtocol0Reader.ToJSON(value);
|
|
162
164
|
}
|
|
163
165
|
|
|
166
|
+
/** Validate protocol-0 structure and return format metadata. */
|
|
167
|
+
static inspect(input, options = {}) {
|
|
168
|
+
const {
|
|
169
|
+
source: _source,
|
|
170
|
+
...readOptions
|
|
171
|
+
} = options;
|
|
172
|
+
const value = this.readPayload(input, readOptions);
|
|
173
|
+
const byteLength = input instanceof ArrayBuffer ? input.byteLength : ArrayBuffer.isView(input) ? input.byteLength : 0;
|
|
174
|
+
return {
|
|
175
|
+
protocol: 0,
|
|
176
|
+
byteLength,
|
|
177
|
+
rootType: value === null ? "null" : Array.isArray(value) ? "array" : typeof value
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/** Return synchronous advisory support from a bounded protocol-0 decode. */
|
|
182
|
+
static probeSupport(input, options = {}) {
|
|
183
|
+
try {
|
|
184
|
+
return {
|
|
185
|
+
format: this.id,
|
|
186
|
+
recognized: true,
|
|
187
|
+
supported: true,
|
|
188
|
+
preferredOutput: OUTPUT_JSON,
|
|
189
|
+
metadata: this.inspect(input, options),
|
|
190
|
+
variants: [{
|
|
191
|
+
kind: OUTPUT_JSON,
|
|
192
|
+
supported: true
|
|
193
|
+
}, {
|
|
194
|
+
kind: OUTPUT_PAYLOAD,
|
|
195
|
+
supported: true
|
|
196
|
+
}, {
|
|
197
|
+
kind: OUTPUT_RAW,
|
|
198
|
+
supported: true
|
|
199
|
+
}],
|
|
200
|
+
reason: "The input is a supported inert protocol-0 pickle."
|
|
201
|
+
};
|
|
202
|
+
} catch (error) {
|
|
203
|
+
return {
|
|
204
|
+
format: this.id,
|
|
205
|
+
recognized: false,
|
|
206
|
+
supported: false,
|
|
207
|
+
metadata: null,
|
|
208
|
+
reason: error.message,
|
|
209
|
+
errors: [error.message]
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
164
214
|
/**
|
|
165
215
|
* Normalize a format profile and partial override into detached effective
|
|
166
216
|
* values.
|
|
@@ -203,11 +253,20 @@ class CjsPickleFormat {
|
|
|
203
253
|
static supportedProtocols = Object.freeze([0]);
|
|
204
254
|
static id = "pickle";
|
|
205
255
|
static extensions = Object.freeze([".pickle"]);
|
|
206
|
-
static type = Object.freeze(["data"]);
|
|
207
256
|
static mediaTypes = Object.freeze(["data"]);
|
|
208
|
-
static
|
|
209
|
-
|
|
210
|
-
|
|
257
|
+
static outputs = CjsFormat.defineOutputs({
|
|
258
|
+
json: {
|
|
259
|
+
default: true,
|
|
260
|
+
decoded: true
|
|
261
|
+
},
|
|
262
|
+
payload: {
|
|
263
|
+
decoded: true
|
|
264
|
+
},
|
|
265
|
+
raw: {
|
|
266
|
+
role: "debug",
|
|
267
|
+
decoded: true
|
|
268
|
+
}
|
|
269
|
+
});
|
|
211
270
|
}
|
|
212
271
|
|
|
213
272
|
export { CjsPickleFormat };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CjsPickleFormat.js","sources":["../../../../src/formats/pickle/CjsPickleFormat.js"],"sourcesContent":["import {\n CjsPickleProtocol0Reader,\n PICKLE_PROTOCOL_0_LIMITS\n} from \"./core/CjsPickleProtocol0Reader.js\";\n\nconst OUTPUT_JSON = \"json\";\nconst OUTPUT_PAYLOAD = \"payload\";\nconst OUTPUT_RAW = \"raw\";\nconst OUTPUTS = new Set([ OUTPUT_JSON, OUTPUT_PAYLOAD, OUTPUT_RAW ]);\nconst OPTION_NAMES = new Set([ \"emit\", \"limits\" ]);\nconst DEFAULT_VALUES = {\n emit: OUTPUT_JSON,\n limits: PICKLE_PROTOCOL_0_LIMITS\n};\n\n/**\n * Data-only Python pickle format facade that currently decodes protocol 0 into\n * JSON-compatible values or identity-preserving payload graphs while rejecting\n * callable and object-construction opcodes.\n */\nexport class CjsPickleFormat\n{\n #values = DEFAULT_VALUES;\n\n /**\n * Create a reusable protocol-0 pickle format profile.\n *\n * @param {object} [options] Emit mode and bounded decoder limits.\n */\n constructor(options = {})\n {\n this.SetValues(options);\n }\n\n /**\n * Apply supported format options to this profile.\n *\n * @param {object} [options] Emit mode and partial decoder limits.\n * @returns {CjsPickleFormat} This format profile.\n */\n SetValues(options = {})\n {\n this.#values = this.constructor.normalizeValues(this.#values, options);\n return this;\n }\n\n /**\n * Return normalized format values with optional per-call overrides.\n *\n * @param {object} [options] Per-call format options.\n * @returns {object} Detached effective values.\n */\n GetValues(options = {})\n {\n return this.constructor.normalizeValues(this.#values, options);\n }\n\n /**\n * Decode according to the effective emit mode.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Pickle bytes.\n * @param {object} [options] Per-call format options.\n * @returns {*} Decoded value graph.\n */\n Read(input, options = {})\n {\n return CjsPickleFormat.read(input, this.GetValues(options));\n }\n\n /**\n * Decode a JSON-compatible graph, rejecting cyclic memo references.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Pickle bytes.\n * @param {object} [options] Per-call format options.\n * @returns {*} JSON-compatible decoded graph.\n */\n ReadJSON(input, options = {})\n {\n return CjsPickleFormat.readJSON(input, this.GetValues(options));\n }\n\n /**\n * Decode the inert payload while preserving memo object identity.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Pickle bytes.\n * @param {object} [options] Per-call format options.\n * @returns {*} Decoded payload graph.\n */\n ReadPayload(input, options = {})\n {\n return CjsPickleFormat.readPayload(input, this.GetValues(options));\n }\n\n /**\n * Decode the exact inert graph while preserving memo aliases and cycles.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Pickle bytes.\n * @param {object} [options] Per-call format options.\n * @returns {*} Decoded raw graph.\n */\n ReadRaw(input, options = {})\n {\n return CjsPickleFormat.readRaw(input, this.GetValues(options));\n }\n\n /**\n * Verify that a decoded graph is JSON-compatible without changing its shape.\n *\n * @param {*} value Candidate decoded graph.\n * @returns {*} The supplied value.\n */\n ToJSON(value)\n {\n return CjsPickleFormat.toJSON(value);\n }\n\n /**\n * Decode according to the requested emit mode.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Pickle bytes.\n * @param {object} [options] Format options.\n * @returns {*} Decoded value graph.\n */\n static read(input, options = {})\n {\n const values = this.normalizeValues(DEFAULT_VALUES, options);\n if (values.emit === OUTPUT_RAW) return this.readRaw(input, values);\n if (values.emit === OUTPUT_PAYLOAD) return this.readPayload(input, values);\n return this.readJSON(input, values);\n }\n\n /**\n * Decode a JSON-compatible graph through the protocol-0 implementation.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Pickle bytes.\n * @param {object} [options] Format options.\n * @returns {*} JSON-compatible decoded graph.\n */\n static readJSON(input, options = {})\n {\n const values = this.normalizeValues(DEFAULT_VALUES, options);\n return new CjsPickleProtocol0Reader(input, values).ReadJSON();\n }\n\n /**\n * Decode an inert payload while preserving pickle memo identity.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Pickle bytes.\n * @param {object} [options] Format options.\n * @returns {*} Decoded payload graph.\n */\n static readPayload(input, options = {})\n {\n const values = this.normalizeValues(DEFAULT_VALUES, options);\n return new CjsPickleProtocol0Reader(input, values).Read();\n }\n\n /**\n * Decode the exact inert graph while preserving memo aliases and cycles.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Pickle bytes.\n * @param {object} [options] Format options.\n * @returns {*} Decoded raw graph.\n */\n static readRaw(input, options = {})\n {\n return this.readPayload(input, options);\n }\n\n /**\n * Verify that a decoded graph is JSON-compatible without changing its shape.\n *\n * @param {*} value Candidate decoded graph.\n * @returns {*} The supplied value.\n */\n static toJSON(value)\n {\n return CjsPickleProtocol0Reader.ToJSON(value);\n }\n\n /**\n * Normalize a format profile and partial override into detached effective\n * values.\n *\n * @param {object} base Existing normalized values.\n * @param {object} [options] Partial emit and limit overrides.\n * @returns {object} Detached normalized values.\n */\n static normalizeValues(base, options = {})\n {\n if (!options || typeof options !== \"object\" || Array.isArray(options))\n {\n throw new TypeError(\"CjsPickleFormat options must be an object.\");\n }\n for (const name of Object.keys(options))\n {\n if (!OPTION_NAMES.has(name))\n {\n throw new TypeError(`CjsPickleFormat unknown option ${JSON.stringify(name)}.`);\n }\n }\n\n const emit = options.emit ?? base.emit;\n if (!OUTPUTS.has(emit))\n {\n throw new TypeError(`CjsPickleFormat unknown emit value ${JSON.stringify(emit)}.`);\n }\n\n const baseLimits = base.limits || PICKLE_PROTOCOL_0_LIMITS;\n const optionLimits = options.limits ?? {};\n if (!optionLimits || typeof optionLimits !== \"object\" || Array.isArray(optionLimits))\n {\n throw new TypeError(\"CjsPickleFormat limits must be an object.\");\n }\n\n return {\n emit,\n limits: {\n ...baseLimits,\n ...optionLimits\n }\n };\n }\n\n static Output = Object.freeze({\n JSON: OUTPUT_JSON,\n PAYLOAD: OUTPUT_PAYLOAD,\n RAW: OUTPUT_RAW\n });\n static supportedProtocols = Object.freeze([ 0 ]);\n static id = \"pickle\";\n static extensions = Object.freeze([ \".pickle\" ]);\n static type = Object.freeze([ \"data\" ]);\n static mediaTypes = Object.freeze([ \"data\" ]);\n static inputTypes = Object.freeze([ \"pickle\" ]);\n static outputTypes = Object.freeze([ OUTPUT_JSON, OUTPUT_PAYLOAD ]);\n static debugOutputTypes = Object.freeze([ OUTPUT_RAW ]);\n}\n\nexport default CjsPickleFormat;\n"],"names":["OUTPUT_JSON","OUTPUT_PAYLOAD","OUTPUT_RAW","OUTPUTS","Set","OPTION_NAMES","DEFAULT_VALUES","emit","limits","PICKLE_PROTOCOL_0_LIMITS","CjsPickleFormat","constructor","options","SetValues","normalizeValues","GetValues","Read","input","read","ReadJSON","readJSON","ReadPayload","readPayload","ReadRaw","readRaw","ToJSON","value","toJSON","values","CjsPickleProtocol0Reader","base","Array","isArray","TypeError","name","Object","keys","has","JSON","stringify","baseLimits","optionLimits","Output","freeze","PAYLOAD","RAW","supportedProtocols","id","extensions","type","mediaTypes","inputTypes","outputTypes","debugOutputTypes"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CjsPickleFormat.js","sources":["../../../../src/formats/pickle/CjsPickleFormat.js"],"sourcesContent":["import { CjsFormat } from \"../../format/CjsFormat.js\";\nimport {\n CjsPickleProtocol0Reader,\n PICKLE_PROTOCOL_0_LIMITS\n} from \"./core/CjsPickleProtocol0Reader.js\";\n\nconst OUTPUT_JSON = \"json\";\nconst OUTPUT_PAYLOAD = \"payload\";\nconst OUTPUT_RAW = \"raw\";\nconst OUTPUTS = new Set([ OUTPUT_JSON, OUTPUT_PAYLOAD, OUTPUT_RAW ]);\nconst OPTION_NAMES = new Set([ \"emit\", \"limits\" ]);\nconst DEFAULT_VALUES = {\n emit: OUTPUT_JSON,\n limits: PICKLE_PROTOCOL_0_LIMITS\n};\n\n/**\n * Data-only Python pickle format facade that currently decodes protocol 0 into\n * JSON-compatible values or identity-preserving payload graphs while rejecting\n * callable and object-construction opcodes.\n */\nexport class CjsPickleFormat extends CjsFormat\n{\n #values = DEFAULT_VALUES;\n\n /**\n * Create a reusable protocol-0 pickle format profile.\n *\n * @param {object} [options] Emit mode and bounded decoder limits.\n */\n constructor(options = {})\n {\n super();\n this.SetValues(options);\n }\n\n /**\n * Apply supported format options to this profile.\n *\n * @param {object} [options] Emit mode and partial decoder limits.\n * @returns {CjsPickleFormat} This format profile.\n */\n SetValues(options = {})\n {\n this.#values = this.constructor.normalizeValues(this.#values, options);\n return this;\n }\n\n /**\n * Return normalized format values with optional per-call overrides.\n *\n * @param {object} [options] Per-call format options.\n * @returns {object} Detached effective values.\n */\n GetValues(options = {})\n {\n return this.constructor.normalizeValues(this.#values, options);\n }\n\n /**\n * Decode according to the effective emit mode.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Pickle bytes.\n * @param {object} [options] Per-call format options.\n * @returns {*} Decoded value graph.\n */\n Read(input, options = {})\n {\n return CjsPickleFormat.read(input, this.GetValues(options));\n }\n\n /**\n * Decode a JSON-compatible graph, rejecting cyclic memo references.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Pickle bytes.\n * @param {object} [options] Per-call format options.\n * @returns {*} JSON-compatible decoded graph.\n */\n ReadJSON(input, options = {})\n {\n return CjsPickleFormat.readJSON(input, this.GetValues(options));\n }\n\n /**\n * Decode the inert payload while preserving memo object identity.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Pickle bytes.\n * @param {object} [options] Per-call format options.\n * @returns {*} Decoded payload graph.\n */\n ReadPayload(input, options = {})\n {\n return CjsPickleFormat.readPayload(input, this.GetValues(options));\n }\n\n /**\n * Decode the exact inert graph while preserving memo aliases and cycles.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Pickle bytes.\n * @param {object} [options] Per-call format options.\n * @returns {*} Decoded raw graph.\n */\n ReadRaw(input, options = {})\n {\n return CjsPickleFormat.readRaw(input, this.GetValues(options));\n }\n\n /**\n * Verify that a decoded graph is JSON-compatible without changing its shape.\n *\n * @param {*} value Candidate decoded graph.\n * @returns {*} The supplied value.\n */\n ToJSON(value)\n {\n return CjsPickleFormat.toJSON(value);\n }\n\n /**\n * Decode according to the requested emit mode.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Pickle bytes.\n * @param {object} [options] Format options.\n * @returns {*} Decoded value graph.\n */\n static read(input, options = {})\n {\n const values = this.normalizeValues(DEFAULT_VALUES, options);\n if (values.emit === OUTPUT_RAW) return this.readRaw(input, values);\n if (values.emit === OUTPUT_PAYLOAD) return this.readPayload(input, values);\n return this.readJSON(input, values);\n }\n\n /**\n * Decode a JSON-compatible graph through the protocol-0 implementation.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Pickle bytes.\n * @param {object} [options] Format options.\n * @returns {*} JSON-compatible decoded graph.\n */\n static readJSON(input, options = {})\n {\n const values = this.normalizeValues(DEFAULT_VALUES, options);\n return new CjsPickleProtocol0Reader(input, values).ReadJSON();\n }\n\n /**\n * Decode an inert payload while preserving pickle memo identity.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Pickle bytes.\n * @param {object} [options] Format options.\n * @returns {*} Decoded payload graph.\n */\n static readPayload(input, options = {})\n {\n const values = this.normalizeValues(DEFAULT_VALUES, options);\n return new CjsPickleProtocol0Reader(input, values).Read();\n }\n\n /**\n * Decode the exact inert graph while preserving memo aliases and cycles.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Pickle bytes.\n * @param {object} [options] Format options.\n * @returns {*} Decoded raw graph.\n */\n static readRaw(input, options = {})\n {\n return this.readPayload(input, options);\n }\n\n /**\n * Verify that a decoded graph is JSON-compatible without changing its shape.\n *\n * @param {*} value Candidate decoded graph.\n * @returns {*} The supplied value.\n */\n static toJSON(value)\n {\n return CjsPickleProtocol0Reader.ToJSON(value);\n }\n\n /** Validate protocol-0 structure and return format metadata. */\n static inspect(input, options = {})\n {\n const { source: _source, ...readOptions } = options;\n const value = this.readPayload(input, readOptions);\n const byteLength = input instanceof ArrayBuffer\n ? input.byteLength\n : ArrayBuffer.isView(input) ? input.byteLength : 0;\n return {\n protocol: 0,\n byteLength,\n rootType: value === null ? \"null\" : Array.isArray(value) ? \"array\" : typeof value\n };\n }\n\n /** Return synchronous advisory support from a bounded protocol-0 decode. */\n static probeSupport(input, options = {})\n {\n try\n {\n return {\n format: this.id,\n recognized: true,\n supported: true,\n preferredOutput: OUTPUT_JSON,\n metadata: this.inspect(input, options),\n variants: [\n { kind: OUTPUT_JSON, supported: true },\n { kind: OUTPUT_PAYLOAD, supported: true },\n { kind: OUTPUT_RAW, supported: true }\n ],\n reason: \"The input is a supported inert protocol-0 pickle.\"\n };\n }\n catch (error)\n {\n return {\n format: this.id,\n recognized: false,\n supported: false,\n metadata: null,\n reason: error.message,\n errors: [ error.message ]\n };\n }\n }\n\n /**\n * Normalize a format profile and partial override into detached effective\n * values.\n *\n * @param {object} base Existing normalized values.\n * @param {object} [options] Partial emit and limit overrides.\n * @returns {object} Detached normalized values.\n */\n static normalizeValues(base, options = {})\n {\n if (!options || typeof options !== \"object\" || Array.isArray(options))\n {\n throw new TypeError(\"CjsPickleFormat options must be an object.\");\n }\n for (const name of Object.keys(options))\n {\n if (!OPTION_NAMES.has(name))\n {\n throw new TypeError(`CjsPickleFormat unknown option ${JSON.stringify(name)}.`);\n }\n }\n\n const emit = options.emit ?? base.emit;\n if (!OUTPUTS.has(emit))\n {\n throw new TypeError(`CjsPickleFormat unknown emit value ${JSON.stringify(emit)}.`);\n }\n\n const baseLimits = base.limits || PICKLE_PROTOCOL_0_LIMITS;\n const optionLimits = options.limits ?? {};\n if (!optionLimits || typeof optionLimits !== \"object\" || Array.isArray(optionLimits))\n {\n throw new TypeError(\"CjsPickleFormat limits must be an object.\");\n }\n\n return {\n emit,\n limits: {\n ...baseLimits,\n ...optionLimits\n }\n };\n }\n\n static Output = Object.freeze({\n JSON: OUTPUT_JSON,\n PAYLOAD: OUTPUT_PAYLOAD,\n RAW: OUTPUT_RAW\n });\n static supportedProtocols = Object.freeze([ 0 ]);\n static id = \"pickle\";\n static extensions = Object.freeze([ \".pickle\" ]);\n static mediaTypes = Object.freeze([ \"data\" ]);\n static outputs = CjsFormat.defineOutputs({\n json: { default: true, decoded: true },\n payload: { decoded: true },\n raw: { role: \"debug\", decoded: true }\n });\n}\n\nexport default CjsPickleFormat;\n"],"names":["OUTPUT_JSON","OUTPUT_PAYLOAD","OUTPUT_RAW","OUTPUTS","Set","OPTION_NAMES","DEFAULT_VALUES","emit","limits","PICKLE_PROTOCOL_0_LIMITS","CjsPickleFormat","CjsFormat","constructor","options","SetValues","normalizeValues","GetValues","Read","input","read","ReadJSON","readJSON","ReadPayload","readPayload","ReadRaw","readRaw","ToJSON","value","toJSON","values","CjsPickleProtocol0Reader","inspect","source","_source","readOptions","byteLength","ArrayBuffer","isView","protocol","rootType","Array","isArray","probeSupport","format","id","recognized","supported","preferredOutput","metadata","variants","kind","reason","error","message","errors","base","TypeError","name","Object","keys","has","JSON","stringify","baseLimits","optionLimits","Output","freeze","PAYLOAD","RAW","supportedProtocols","extensions","mediaTypes","outputs","defineOutputs","json","default","decoded","payload","raw","role"],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CjsFormat } from '../../format/CjsFormat.js';
|
|
2
|
+
import { DEFAULT_VALUES, normalizeValues, readWithValues, readWithValuesAsync, inspectWithValues, toJsonValue, probeSupportWithValues, isPNG, toBytes, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_RGBA, OUTPUT_IMAGE } from './core/helpers.js';
|
|
2
3
|
|
|
3
4
|
const FORMAT_NAME = "CjsPngFormat";
|
|
4
5
|
|
|
@@ -7,7 +8,7 @@ const FORMAT_NAME = "CjsPngFormat";
|
|
|
7
8
|
* and emits raw bytes or debug JSON, with RGBA decoding available on the
|
|
8
9
|
* asynchronous read path.
|
|
9
10
|
*/
|
|
10
|
-
class CjsPngFormat {
|
|
11
|
+
class CjsPngFormat extends CjsFormat {
|
|
11
12
|
#values = DEFAULT_VALUES;
|
|
12
13
|
|
|
13
14
|
/**
|
|
@@ -16,6 +17,7 @@ class CjsPngFormat {
|
|
|
16
17
|
* @param {object} [options] Default read/inspect options.
|
|
17
18
|
*/
|
|
18
19
|
constructor(options = {}) {
|
|
20
|
+
super();
|
|
19
21
|
this.SetValues(options);
|
|
20
22
|
}
|
|
21
23
|
|
|
@@ -79,17 +81,6 @@ class CjsPngFormat {
|
|
|
79
81
|
return inspectWithValues(input, this.GetValues(options), "png");
|
|
80
82
|
}
|
|
81
83
|
|
|
82
|
-
/**
|
|
83
|
-
* Report whether PNG input and requested output variants are supported.
|
|
84
|
-
*
|
|
85
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input PNG bytes.
|
|
86
|
-
* @param {object} [options] Per-call values.
|
|
87
|
-
* @returns {object} Support/probe report.
|
|
88
|
-
*/
|
|
89
|
-
IsSupported(input, options = {}) {
|
|
90
|
-
return isSupportedWithValues(input, this.GetValues(options), "png");
|
|
91
|
-
}
|
|
92
|
-
|
|
93
84
|
/**
|
|
94
85
|
* Convert format output into JSON-compatible debug data.
|
|
95
86
|
*
|
|
@@ -149,8 +140,8 @@ class CjsPngFormat {
|
|
|
149
140
|
* @param {object} [options] Probe options.
|
|
150
141
|
* @returns {object} Support/probe report.
|
|
151
142
|
*/
|
|
152
|
-
static
|
|
153
|
-
return
|
|
143
|
+
static probeSupport(input, options = {}) {
|
|
144
|
+
return probeSupportWithValues(input, normalizeValues(DEFAULT_VALUES, {
|
|
154
145
|
inputType: "png",
|
|
155
146
|
...options
|
|
156
147
|
}, FORMAT_NAME), "png");
|
|
@@ -190,11 +181,29 @@ class CjsPngFormat {
|
|
|
190
181
|
JSON: OUTPUT_JSON
|
|
191
182
|
});
|
|
192
183
|
static OUTPUT_PNG_JSON = "pngJson";
|
|
193
|
-
static
|
|
184
|
+
static id = "png";
|
|
194
185
|
static mediaTypes = Object.freeze(["image"]);
|
|
195
|
-
static
|
|
196
|
-
|
|
197
|
-
|
|
186
|
+
static outputs = CjsFormat.defineOutputs({
|
|
187
|
+
image: {
|
|
188
|
+
readMode: "async",
|
|
189
|
+
decoded: true,
|
|
190
|
+
probes: ["image", "rgba"]
|
|
191
|
+
},
|
|
192
|
+
rgba: {
|
|
193
|
+
readMode: "async",
|
|
194
|
+
decoded: true
|
|
195
|
+
},
|
|
196
|
+
pngJson: {
|
|
197
|
+
role: "debug",
|
|
198
|
+
probes: ["pngJson", "raw"]
|
|
199
|
+
},
|
|
200
|
+
raw: {
|
|
201
|
+
role: "debug",
|
|
202
|
+
default: true,
|
|
203
|
+
passthrough: true
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
static extensions = Object.freeze([".png"]);
|
|
198
207
|
}
|
|
199
208
|
|
|
200
209
|
export { CjsPngFormat };
|