@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
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { CjsFsd64SchemaDecoder } from '../core/CjsFsd64SchemaDecoder.js';
|
|
2
|
+
import { CjsFsd64SchemaReader } from '../core/CjsFsd64SchemaReader.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Reads caller-supplied `typematerials.fsdbinary` bytes.
|
|
6
|
+
*
|
|
7
|
+
* Decodes what a type reprocesses into. Two lists, and they are alternatives
|
|
8
|
+
* rather than companions: 9,541 of 9,551 types at build 3466501 carry a fixed
|
|
9
|
+
* `materials` list, and the other ten carry `randomizedMaterials` instead,
|
|
10
|
+
* which gives a range rather than a quantity.
|
|
11
|
+
*
|
|
12
|
+
* Only the randomised list is presence-guarded. An empty `materials` list is
|
|
13
|
+
* an empty list, not an absent one, which is exactly the ten records above.
|
|
14
|
+
*
|
|
15
|
+
* Field names and order were read from `typeMaterialsLoader.pyd`; offsets were
|
|
16
|
+
* solved against CCP's published export at build 3466501, unanimously over
|
|
17
|
+
* 47,051 material entries and all 24 randomised ones.
|
|
18
|
+
*/
|
|
19
|
+
class CjsFsd64SchemaTypeMaterials extends CjsFsd64SchemaReader {
|
|
20
|
+
static getFsdSchema = CjsFsd64SchemaReader.bindFsdSchema(CjsFsd64SchemaDecoder.defineSchema({
|
|
21
|
+
"schema": "carbonenginejs.fsdBinarySchema",
|
|
22
|
+
"name": "typeMaterials",
|
|
23
|
+
"schemaVersion": 1,
|
|
24
|
+
"path": "res:/staticdata/typematerials.fsdbinary",
|
|
25
|
+
"schemaID": "988a9edbbd5a0f3dfdc5b37b067d183f",
|
|
26
|
+
"container": {
|
|
27
|
+
"type": "MAP",
|
|
28
|
+
"recordSize": 32,
|
|
29
|
+
"key": {
|
|
30
|
+
"type": "UINT_32_IDENTIFIER",
|
|
31
|
+
"offset": 0
|
|
32
|
+
},
|
|
33
|
+
"presence": {
|
|
34
|
+
"type": "UINT_32",
|
|
35
|
+
"offset": 24,
|
|
36
|
+
"allowedMask": 1
|
|
37
|
+
},
|
|
38
|
+
"fields": [{
|
|
39
|
+
"name": "materials",
|
|
40
|
+
"type": "LIST",
|
|
41
|
+
"offset": 8,
|
|
42
|
+
"itemSize": 8,
|
|
43
|
+
"item": {
|
|
44
|
+
"type": "OBJECT",
|
|
45
|
+
"fields": [{
|
|
46
|
+
"name": "materialTypeID",
|
|
47
|
+
"type": "UINT_32_IDENTIFIER",
|
|
48
|
+
"offset": 0
|
|
49
|
+
}, {
|
|
50
|
+
"name": "quantity",
|
|
51
|
+
"type": "UINT_32",
|
|
52
|
+
"offset": 4
|
|
53
|
+
}]
|
|
54
|
+
}
|
|
55
|
+
}, {
|
|
56
|
+
"name": "randomizedMaterials",
|
|
57
|
+
"type": "LIST",
|
|
58
|
+
"offset": 16,
|
|
59
|
+
"itemSize": 12,
|
|
60
|
+
"presenceMask": 1,
|
|
61
|
+
"item": {
|
|
62
|
+
"type": "OBJECT",
|
|
63
|
+
"fields": [{
|
|
64
|
+
"name": "materialTypeID",
|
|
65
|
+
"type": "UINT_32_IDENTIFIER",
|
|
66
|
+
"offset": 0
|
|
67
|
+
}, {
|
|
68
|
+
"name": "quantityMax",
|
|
69
|
+
"type": "UINT_32",
|
|
70
|
+
"offset": 4
|
|
71
|
+
}, {
|
|
72
|
+
"name": "quantityMin",
|
|
73
|
+
"type": "UINT_32",
|
|
74
|
+
"offset": 8
|
|
75
|
+
}]
|
|
76
|
+
}
|
|
77
|
+
}]
|
|
78
|
+
}
|
|
79
|
+
}));
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export { CjsFsd64SchemaTypeMaterials };
|
|
83
|
+
//# sourceMappingURL=CjsFsd64SchemaTypeMaterials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CjsFsd64SchemaTypeMaterials.js","sources":["../../../../../../src/formats/fsd/64/readers/CjsFsd64SchemaTypeMaterials.js"],"sourcesContent":["import { CjsFsd64SchemaDecoder } from \"../core/CjsFsd64SchemaDecoder.js\";\nimport { CjsFsd64SchemaReader } from \"../core/CjsFsd64SchemaReader.js\";\n\n\n/**\n * Reads caller-supplied `typematerials.fsdbinary` bytes.\n *\n * Decodes what a type reprocesses into. Two lists, and they are alternatives\n * rather than companions: 9,541 of 9,551 types at build 3466501 carry a fixed\n * `materials` list, and the other ten carry `randomizedMaterials` instead,\n * which gives a range rather than a quantity.\n *\n * Only the randomised list is presence-guarded. An empty `materials` list is\n * an empty list, not an absent one, which is exactly the ten records above.\n *\n * Field names and order were read from `typeMaterialsLoader.pyd`; offsets were\n * solved against CCP's published export at build 3466501, unanimously over\n * 47,051 material entries and all 24 randomised ones.\n */\nexport class CjsFsd64SchemaTypeMaterials extends CjsFsd64SchemaReader\n{\n static getFsdSchema = CjsFsd64SchemaReader.bindFsdSchema(CjsFsd64SchemaDecoder.defineSchema({\n \"schema\": \"carbonenginejs.fsdBinarySchema\",\n \"name\": \"typeMaterials\",\n \"schemaVersion\": 1,\n \"path\": \"res:/staticdata/typematerials.fsdbinary\",\n \"schemaID\": \"988a9edbbd5a0f3dfdc5b37b067d183f\",\n \"container\": {\n \"type\": \"MAP\",\n \"recordSize\": 32,\n \"key\": {\n \"type\": \"UINT_32_IDENTIFIER\",\n \"offset\": 0\n },\n \"presence\": {\n \"type\": \"UINT_32\",\n \"offset\": 24,\n \"allowedMask\": 1\n },\n \"fields\": [\n {\n \"name\": \"materials\",\n \"type\": \"LIST\",\n \"offset\": 8,\n \"itemSize\": 8,\n \"item\": {\n \"type\": \"OBJECT\",\n \"fields\": [\n {\n \"name\": \"materialTypeID\",\n \"type\": \"UINT_32_IDENTIFIER\",\n \"offset\": 0\n },\n {\n \"name\": \"quantity\",\n \"type\": \"UINT_32\",\n \"offset\": 4\n }\n ]\n }\n },\n {\n \"name\": \"randomizedMaterials\",\n \"type\": \"LIST\",\n \"offset\": 16,\n \"itemSize\": 12,\n \"presenceMask\": 1,\n \"item\": {\n \"type\": \"OBJECT\",\n \"fields\": [\n {\n \"name\": \"materialTypeID\",\n \"type\": \"UINT_32_IDENTIFIER\",\n \"offset\": 0\n },\n {\n \"name\": \"quantityMax\",\n \"type\": \"UINT_32\",\n \"offset\": 4\n },\n {\n \"name\": \"quantityMin\",\n \"type\": \"UINT_32\",\n \"offset\": 8\n }\n ]\n }\n }\n ]\n }\n }));\n\n}\n\nexport default new CjsFsd64SchemaTypeMaterials();\n"],"names":["CjsFsd64SchemaTypeMaterials","CjsFsd64SchemaReader","getFsdSchema","bindFsdSchema","CjsFsd64SchemaDecoder","defineSchema"],"mappings":";;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,2BAA2B,SAASC,oBAAoB,CACrE;EACI,OAAOC,YAAY,GAAGD,oBAAoB,CAACE,aAAa,CAACC,qBAAqB,CAACC,YAAY,CAAC;AACxF,IAAA,QAAQ,EAAE,gCAAgC;AAC1C,IAAA,MAAM,EAAE,eAAe;AACvB,IAAA,eAAe,EAAE,CAAC;AAClB,IAAA,MAAM,EAAE,yCAAyC;AACjD,IAAA,UAAU,EAAE,kCAAkC;AAC9C,IAAA,WAAW,EAAE;AACT,MAAA,MAAM,EAAE,KAAK;AACb,MAAA,YAAY,EAAE,EAAE;AAChB,MAAA,KAAK,EAAE;AACH,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,QAAQ,EAAE;OACb;AACD,MAAA,UAAU,EAAE;AACR,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,aAAa,EAAE;OAClB;AACD,MAAA,QAAQ,EAAE,CACN;AACI,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,QAAQ,EAAE,CAAC;AACX,QAAA,UAAU,EAAE,CAAC;AACb,QAAA,MAAM,EAAE;AACJ,UAAA,MAAM,EAAE,QAAQ;AAChB,UAAA,QAAQ,EAAE,CACN;AACI,YAAA,MAAM,EAAE,gBAAgB;AACxB,YAAA,MAAM,EAAE,oBAAoB;AAC5B,YAAA,QAAQ,EAAE;AACd,WAAC,EACD;AACI,YAAA,MAAM,EAAE,UAAU;AAClB,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,QAAQ,EAAE;WACb;AAET;AACJ,OAAC,EACD;AACI,QAAA,MAAM,EAAE,qBAAqB;AAC7B,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,UAAU,EAAE,EAAE;AACd,QAAA,cAAc,EAAE,CAAC;AACjB,QAAA,MAAM,EAAE;AACJ,UAAA,MAAM,EAAE,QAAQ;AAChB,UAAA,QAAQ,EAAE,CACN;AACI,YAAA,MAAM,EAAE,gBAAgB;AACxB,YAAA,MAAM,EAAE,oBAAoB;AAC5B,YAAA,QAAQ,EAAE;AACd,WAAC,EACD;AACI,YAAA,MAAM,EAAE,aAAa;AACrB,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,QAAQ,EAAE;AACd,WAAC,EACD;AACI,YAAA,MAAM,EAAE,aAAa;AACrB,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,QAAQ,EAAE;WACb;AAET;OACH;AAET;AACJ,GAAC,CAAC,CAAC;AAEP;;;;"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { CjsFsd64SchemaDecoder } from '../core/CjsFsd64SchemaDecoder.js';
|
|
2
|
+
import { CjsFsd64SchemaReader } from '../core/CjsFsd64SchemaReader.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Reads caller-supplied `types.fsdbinary` bytes.
|
|
6
|
+
*
|
|
7
|
+
* **`name` and `description` are not in this file.** The record carries
|
|
8
|
+
* `nameID` and `descriptionID`, which are localisation label identifiers, and
|
|
9
|
+
* the strings live in `res:/localizationfsd/localization_fsd_<language>.pickle`.
|
|
10
|
+
* The official export publishes resolved strings per language, so a consumer
|
|
11
|
+
* reproducing its shape must resolve them - see `CjsFsdLocalization`. This
|
|
12
|
+
* reader deliberately returns the identifiers rather than pretending to a text
|
|
13
|
+
* field it cannot supply.
|
|
14
|
+
*
|
|
15
|
+
* Eleven identifiers are optional and guarded by the presence word at 148.
|
|
16
|
+
* Everything else in the schema is stored unconditionally, including
|
|
17
|
+
* `basePrice`, `capacity`, `mass`, `volume` and `radius`, where zero is a real
|
|
18
|
+
* value rather than an absence.
|
|
19
|
+
*
|
|
20
|
+
* **Three fields here are not in the official export**, so the export cannot
|
|
21
|
+
* verify them and a consumer reproducing its shape should not emit them
|
|
22
|
+
* unasked. They were found by searching the client for values the export never
|
|
23
|
+
* publishes, and each is checked against what the game shows:
|
|
24
|
+
*
|
|
25
|
+
* - `manufacturers` is a list of NPC corporation identifiers at offset 24 -
|
|
26
|
+
* Kronos is Duvolle Laboratories, Megathron is Federation Navy and Roden
|
|
27
|
+
* Shipyards. 437 types carry one and 73 name more than one, which is why it
|
|
28
|
+
* is a list and not the single identifier it first looks like. It has **no
|
|
29
|
+
* presence bit**: the pointer is non-zero on all 52,863 records, so a type
|
|
30
|
+
* with no manufacturer has an empty list rather than an absent field.
|
|
31
|
+
* - `quoteID` and `quoteAuthorID` are the show-info flavour quote and its
|
|
32
|
+
* attribution, on 434 types. The author is free prose - "Martial handbook of
|
|
33
|
+
* the Garoun Empire" as often as a person - and is not a reference to
|
|
34
|
+
* anything.
|
|
35
|
+
*
|
|
36
|
+
* **Which of bits 16 and 17 belongs to which quote field is inferred, not
|
|
37
|
+
* measured.** The two are set together on all 434 records and cleared together
|
|
38
|
+
* on the rest, so no record distinguishes them and swapping them would decode
|
|
39
|
+
* every known type identically. The order here follows the alphabetical rule
|
|
40
|
+
* the other bits obey, under the field names the offsets imply -
|
|
41
|
+
* `quoteAuthorID` before `quoteID`, matching their order in the record. A
|
|
42
|
+
* build that ever ships one without the other settles it, and nothing else can.
|
|
43
|
+
*
|
|
44
|
+
* The record is 152 bytes and still carries fields this schema does not claim.
|
|
45
|
+
* Presence bits 2, 4, 8 and 24 remain informative and unassigned, which is
|
|
46
|
+
* where those fields will be.
|
|
47
|
+
*/
|
|
48
|
+
class CjsFsd64SchemaTypes extends CjsFsd64SchemaReader {
|
|
49
|
+
static getFsdSchema = CjsFsd64SchemaReader.bindFsdSchema(CjsFsd64SchemaDecoder.defineSchema({
|
|
50
|
+
"schema": "carbonenginejs.fsdBinarySchema",
|
|
51
|
+
"name": "types",
|
|
52
|
+
"schemaVersion": 1,
|
|
53
|
+
"path": "res:/staticdata/types.fsdbinary",
|
|
54
|
+
"schemaID": "4f25d0f64115864bd8c4f58da09c1758",
|
|
55
|
+
"container": {
|
|
56
|
+
"type": "MAP",
|
|
57
|
+
"recordSize": 152,
|
|
58
|
+
"key": {
|
|
59
|
+
"type": "UINT_32_IDENTIFIER",
|
|
60
|
+
"offset": 0
|
|
61
|
+
},
|
|
62
|
+
"presence": {
|
|
63
|
+
"type": "UINT_32",
|
|
64
|
+
"offset": 148,
|
|
65
|
+
"allowedMask": 33554431
|
|
66
|
+
},
|
|
67
|
+
"fields": [{
|
|
68
|
+
"name": "basePrice",
|
|
69
|
+
"type": "FLOAT_64",
|
|
70
|
+
"offset": 8
|
|
71
|
+
}, {
|
|
72
|
+
"name": "capacity",
|
|
73
|
+
"type": "FLOAT_64",
|
|
74
|
+
"offset": 16
|
|
75
|
+
}, {
|
|
76
|
+
"name": "manufacturers",
|
|
77
|
+
"type": "LIST",
|
|
78
|
+
"offset": 24,
|
|
79
|
+
"itemSize": 4,
|
|
80
|
+
"item": {
|
|
81
|
+
"type": "UINT_32_IDENTIFIER",
|
|
82
|
+
"offset": 0
|
|
83
|
+
}
|
|
84
|
+
}, {
|
|
85
|
+
"name": "mass",
|
|
86
|
+
"type": "FLOAT_64",
|
|
87
|
+
"offset": 32
|
|
88
|
+
}, {
|
|
89
|
+
"name": "portionSize",
|
|
90
|
+
"type": "UINT_32",
|
|
91
|
+
"offset": 40
|
|
92
|
+
}, {
|
|
93
|
+
"name": "radius",
|
|
94
|
+
"type": "FLOAT_64",
|
|
95
|
+
"offset": 48
|
|
96
|
+
}, {
|
|
97
|
+
"name": "volume",
|
|
98
|
+
"type": "FLOAT_64",
|
|
99
|
+
"offset": 56
|
|
100
|
+
}, {
|
|
101
|
+
"name": "descriptionID",
|
|
102
|
+
"type": "UINT_32",
|
|
103
|
+
"offset": 68,
|
|
104
|
+
"presenceMask": 8
|
|
105
|
+
}, {
|
|
106
|
+
"name": "factionID",
|
|
107
|
+
"type": "UINT_32_IDENTIFIER",
|
|
108
|
+
"offset": 72,
|
|
109
|
+
"presenceMask": 32
|
|
110
|
+
}, {
|
|
111
|
+
"name": "graphicID",
|
|
112
|
+
"type": "UINT_32_IDENTIFIER",
|
|
113
|
+
"offset": 80,
|
|
114
|
+
"presenceMask": 64
|
|
115
|
+
}, {
|
|
116
|
+
"name": "groupID",
|
|
117
|
+
"type": "UINT_32_IDENTIFIER",
|
|
118
|
+
"offset": 84
|
|
119
|
+
}, {
|
|
120
|
+
"name": "iconID",
|
|
121
|
+
"type": "UINT_32_IDENTIFIER",
|
|
122
|
+
"offset": 88,
|
|
123
|
+
"presenceMask": 128
|
|
124
|
+
}, {
|
|
125
|
+
"name": "shipTreeGroupID",
|
|
126
|
+
"type": "UINT_32_IDENTIFIER",
|
|
127
|
+
"offset": 92,
|
|
128
|
+
"presenceMask": 512
|
|
129
|
+
}, {
|
|
130
|
+
"name": "marketGroupID",
|
|
131
|
+
"type": "UINT_32_IDENTIFIER",
|
|
132
|
+
"offset": 96,
|
|
133
|
+
"presenceMask": 1024
|
|
134
|
+
}, {
|
|
135
|
+
"name": "metaGroupID",
|
|
136
|
+
"type": "UINT_32_IDENTIFIER",
|
|
137
|
+
"offset": 100,
|
|
138
|
+
"presenceMask": 4096
|
|
139
|
+
}, {
|
|
140
|
+
"name": "metaLevel",
|
|
141
|
+
"type": "UINT_32",
|
|
142
|
+
"offset": 104,
|
|
143
|
+
"presenceMask": 8192
|
|
144
|
+
}, {
|
|
145
|
+
"name": "quoteAuthorID",
|
|
146
|
+
"type": "UINT_32",
|
|
147
|
+
"offset": 108,
|
|
148
|
+
"presenceMask": 65536
|
|
149
|
+
}, {
|
|
150
|
+
"name": "quoteID",
|
|
151
|
+
"type": "UINT_32",
|
|
152
|
+
"offset": 112,
|
|
153
|
+
"presenceMask": 131072
|
|
154
|
+
}, {
|
|
155
|
+
"name": "raceID",
|
|
156
|
+
"type": "UINT_32_IDENTIFIER",
|
|
157
|
+
"offset": 116,
|
|
158
|
+
"presenceMask": 262144
|
|
159
|
+
}, {
|
|
160
|
+
"name": "soundID",
|
|
161
|
+
"type": "UINT_32_IDENTIFIER",
|
|
162
|
+
"offset": 120,
|
|
163
|
+
"presenceMask": 1048576
|
|
164
|
+
}, {
|
|
165
|
+
"name": "techLevel",
|
|
166
|
+
"type": "UINT_32",
|
|
167
|
+
"offset": 124,
|
|
168
|
+
"presenceMask": 2097152
|
|
169
|
+
}, {
|
|
170
|
+
"name": "nameID",
|
|
171
|
+
"type": "UINT_32",
|
|
172
|
+
"offset": 132
|
|
173
|
+
}, {
|
|
174
|
+
"name": "variationParentTypeID",
|
|
175
|
+
"type": "UINT_32_IDENTIFIER",
|
|
176
|
+
"offset": 136,
|
|
177
|
+
"presenceMask": 4194304
|
|
178
|
+
}, {
|
|
179
|
+
"name": "isDynamicType",
|
|
180
|
+
"type": "BOOLEAN",
|
|
181
|
+
"offset": 144,
|
|
182
|
+
"bit": 0
|
|
183
|
+
}, {
|
|
184
|
+
"name": "published",
|
|
185
|
+
"type": "BOOLEAN",
|
|
186
|
+
"offset": 145,
|
|
187
|
+
"bit": 0
|
|
188
|
+
}]
|
|
189
|
+
}
|
|
190
|
+
}));
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
export { CjsFsd64SchemaTypes };
|
|
194
|
+
//# sourceMappingURL=CjsFsd64SchemaTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CjsFsd64SchemaTypes.js","sources":["../../../../../../src/formats/fsd/64/readers/CjsFsd64SchemaTypes.js"],"sourcesContent":["import { CjsFsd64SchemaDecoder } from \"../core/CjsFsd64SchemaDecoder.js\";\nimport { CjsFsd64SchemaReader } from \"../core/CjsFsd64SchemaReader.js\";\n\n\n/**\n * Reads caller-supplied `types.fsdbinary` bytes.\n *\n * **`name` and `description` are not in this file.** The record carries\n * `nameID` and `descriptionID`, which are localisation label identifiers, and\n * the strings live in `res:/localizationfsd/localization_fsd_<language>.pickle`.\n * The official export publishes resolved strings per language, so a consumer\n * reproducing its shape must resolve them - see `CjsFsdLocalization`. This\n * reader deliberately returns the identifiers rather than pretending to a text\n * field it cannot supply.\n *\n * Eleven identifiers are optional and guarded by the presence word at 148.\n * Everything else in the schema is stored unconditionally, including\n * `basePrice`, `capacity`, `mass`, `volume` and `radius`, where zero is a real\n * value rather than an absence.\n *\n * **Three fields here are not in the official export**, so the export cannot\n * verify them and a consumer reproducing its shape should not emit them\n * unasked. They were found by searching the client for values the export never\n * publishes, and each is checked against what the game shows:\n *\n * - `manufacturers` is a list of NPC corporation identifiers at offset 24 -\n * Kronos is Duvolle Laboratories, Megathron is Federation Navy and Roden\n * Shipyards. 437 types carry one and 73 name more than one, which is why it\n * is a list and not the single identifier it first looks like. It has **no\n * presence bit**: the pointer is non-zero on all 52,863 records, so a type\n * with no manufacturer has an empty list rather than an absent field.\n * - `quoteID` and `quoteAuthorID` are the show-info flavour quote and its\n * attribution, on 434 types. The author is free prose - \"Martial handbook of\n * the Garoun Empire\" as often as a person - and is not a reference to\n * anything.\n *\n * **Which of bits 16 and 17 belongs to which quote field is inferred, not\n * measured.** The two are set together on all 434 records and cleared together\n * on the rest, so no record distinguishes them and swapping them would decode\n * every known type identically. The order here follows the alphabetical rule\n * the other bits obey, under the field names the offsets imply -\n * `quoteAuthorID` before `quoteID`, matching their order in the record. A\n * build that ever ships one without the other settles it, and nothing else can.\n *\n * The record is 152 bytes and still carries fields this schema does not claim.\n * Presence bits 2, 4, 8 and 24 remain informative and unassigned, which is\n * where those fields will be.\n */\nexport class CjsFsd64SchemaTypes extends CjsFsd64SchemaReader\n{\n static getFsdSchema = CjsFsd64SchemaReader.bindFsdSchema(CjsFsd64SchemaDecoder.defineSchema({\n \"schema\": \"carbonenginejs.fsdBinarySchema\",\n \"name\": \"types\",\n \"schemaVersion\": 1,\n \"path\": \"res:/staticdata/types.fsdbinary\",\n \"schemaID\": \"4f25d0f64115864bd8c4f58da09c1758\",\n \"container\": {\n \"type\": \"MAP\",\n \"recordSize\": 152,\n \"key\": {\n \"type\": \"UINT_32_IDENTIFIER\",\n \"offset\": 0\n },\n \"presence\": {\n \"type\": \"UINT_32\",\n \"offset\": 148,\n \"allowedMask\": 33554431\n },\n \"fields\": [\n {\n \"name\": \"basePrice\",\n \"type\": \"FLOAT_64\",\n \"offset\": 8\n },\n {\n \"name\": \"capacity\",\n \"type\": \"FLOAT_64\",\n \"offset\": 16\n },\n {\n \"name\": \"manufacturers\",\n \"type\": \"LIST\",\n \"offset\": 24,\n \"itemSize\": 4,\n \"item\": {\n \"type\": \"UINT_32_IDENTIFIER\",\n \"offset\": 0\n }\n },\n {\n \"name\": \"mass\",\n \"type\": \"FLOAT_64\",\n \"offset\": 32\n },\n {\n \"name\": \"portionSize\",\n \"type\": \"UINT_32\",\n \"offset\": 40\n },\n {\n \"name\": \"radius\",\n \"type\": \"FLOAT_64\",\n \"offset\": 48\n },\n {\n \"name\": \"volume\",\n \"type\": \"FLOAT_64\",\n \"offset\": 56\n },\n {\n \"name\": \"descriptionID\",\n \"type\": \"UINT_32\",\n \"offset\": 68,\n \"presenceMask\": 8\n },\n {\n \"name\": \"factionID\",\n \"type\": \"UINT_32_IDENTIFIER\",\n \"offset\": 72,\n \"presenceMask\": 32\n },\n {\n \"name\": \"graphicID\",\n \"type\": \"UINT_32_IDENTIFIER\",\n \"offset\": 80,\n \"presenceMask\": 64\n },\n {\n \"name\": \"groupID\",\n \"type\": \"UINT_32_IDENTIFIER\",\n \"offset\": 84\n },\n {\n \"name\": \"iconID\",\n \"type\": \"UINT_32_IDENTIFIER\",\n \"offset\": 88,\n \"presenceMask\": 128\n },\n {\n \"name\": \"shipTreeGroupID\",\n \"type\": \"UINT_32_IDENTIFIER\",\n \"offset\": 92,\n \"presenceMask\": 512\n },\n {\n \"name\": \"marketGroupID\",\n \"type\": \"UINT_32_IDENTIFIER\",\n \"offset\": 96,\n \"presenceMask\": 1024\n },\n {\n \"name\": \"metaGroupID\",\n \"type\": \"UINT_32_IDENTIFIER\",\n \"offset\": 100,\n \"presenceMask\": 4096\n },\n {\n \"name\": \"metaLevel\",\n \"type\": \"UINT_32\",\n \"offset\": 104,\n \"presenceMask\": 8192\n },\n {\n \"name\": \"quoteAuthorID\",\n \"type\": \"UINT_32\",\n \"offset\": 108,\n \"presenceMask\": 65536\n },\n {\n \"name\": \"quoteID\",\n \"type\": \"UINT_32\",\n \"offset\": 112,\n \"presenceMask\": 131072\n },\n {\n \"name\": \"raceID\",\n \"type\": \"UINT_32_IDENTIFIER\",\n \"offset\": 116,\n \"presenceMask\": 262144\n },\n {\n \"name\": \"soundID\",\n \"type\": \"UINT_32_IDENTIFIER\",\n \"offset\": 120,\n \"presenceMask\": 1048576\n },\n {\n \"name\": \"techLevel\",\n \"type\": \"UINT_32\",\n \"offset\": 124,\n \"presenceMask\": 2097152\n },\n {\n \"name\": \"nameID\",\n \"type\": \"UINT_32\",\n \"offset\": 132\n },\n {\n \"name\": \"variationParentTypeID\",\n \"type\": \"UINT_32_IDENTIFIER\",\n \"offset\": 136,\n \"presenceMask\": 4194304\n },\n {\n \"name\": \"isDynamicType\",\n \"type\": \"BOOLEAN\",\n \"offset\": 144,\n \"bit\": 0\n },\n {\n \"name\": \"published\",\n \"type\": \"BOOLEAN\",\n \"offset\": 145,\n \"bit\": 0\n }\n ]\n }\n }));\n\n}\n\nexport default new CjsFsd64SchemaTypes();\n"],"names":["CjsFsd64SchemaTypes","CjsFsd64SchemaReader","getFsdSchema","bindFsdSchema","CjsFsd64SchemaDecoder","defineSchema"],"mappings":";;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,mBAAmB,SAASC,oBAAoB,CAC7D;EACI,OAAOC,YAAY,GAAGD,oBAAoB,CAACE,aAAa,CAACC,qBAAqB,CAACC,YAAY,CAAC;AACxF,IAAA,QAAQ,EAAE,gCAAgC;AAC1C,IAAA,MAAM,EAAE,OAAO;AACf,IAAA,eAAe,EAAE,CAAC;AAClB,IAAA,MAAM,EAAE,iCAAiC;AACzC,IAAA,UAAU,EAAE,kCAAkC;AAC9C,IAAA,WAAW,EAAE;AACT,MAAA,MAAM,EAAE,KAAK;AACb,MAAA,YAAY,EAAE,GAAG;AACjB,MAAA,KAAK,EAAE;AACH,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,QAAQ,EAAE;OACb;AACD,MAAA,UAAU,EAAE;AACR,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,QAAQ,EAAE,GAAG;AACb,QAAA,aAAa,EAAE;OAClB;AACD,MAAA,QAAQ,EAAE,CACN;AACI,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,QAAQ,EAAE;AACd,OAAC,EACD;AACI,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,QAAQ,EAAE;AACd,OAAC,EACD;AACI,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,UAAU,EAAE,CAAC;AACb,QAAA,MAAM,EAAE;AACJ,UAAA,MAAM,EAAE,oBAAoB;AAC5B,UAAA,QAAQ,EAAE;AACd;AACJ,OAAC,EACD;AACI,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,QAAQ,EAAE;AACd,OAAC,EACD;AACI,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,QAAQ,EAAE;AACd,OAAC,EACD;AACI,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,QAAQ,EAAE;AACd,OAAC,EACD;AACI,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,QAAQ,EAAE;AACd,OAAC,EACD;AACI,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,cAAc,EAAE;AACpB,OAAC,EACD;AACI,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,cAAc,EAAE;AACpB,OAAC,EACD;AACI,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,cAAc,EAAE;AACpB,OAAC,EACD;AACI,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,QAAQ,EAAE;AACd,OAAC,EACD;AACI,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,cAAc,EAAE;AACpB,OAAC,EACD;AACI,QAAA,MAAM,EAAE,iBAAiB;AACzB,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,cAAc,EAAE;AACpB,OAAC,EACD;AACI,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,cAAc,EAAE;AACpB,OAAC,EACD;AACI,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,QAAQ,EAAE,GAAG;AACb,QAAA,cAAc,EAAE;AACpB,OAAC,EACD;AACI,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,QAAQ,EAAE,GAAG;AACb,QAAA,cAAc,EAAE;AACpB,OAAC,EACD;AACI,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,QAAQ,EAAE,GAAG;AACb,QAAA,cAAc,EAAE;AACpB,OAAC,EACD;AACI,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,QAAQ,EAAE,GAAG;AACb,QAAA,cAAc,EAAE;AACpB,OAAC,EACD;AACI,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,QAAQ,EAAE,GAAG;AACb,QAAA,cAAc,EAAE;AACpB,OAAC,EACD;AACI,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,QAAQ,EAAE,GAAG;AACb,QAAA,cAAc,EAAE;AACpB,OAAC,EACD;AACI,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,QAAQ,EAAE,GAAG;AACb,QAAA,cAAc,EAAE;AACpB,OAAC,EACD;AACI,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,QAAQ,EAAE;AACd,OAAC,EACD;AACI,QAAA,MAAM,EAAE,uBAAuB;AAC/B,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,QAAQ,EAAE,GAAG;AACb,QAAA,cAAc,EAAE;AACpB,OAAC,EACD;AACI,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,QAAQ,EAAE,GAAG;AACb,QAAA,KAAK,EAAE;AACX,OAAC,EACD;AACI,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,QAAQ,EAAE,GAAG;AACb,QAAA,KAAK,EAAE;OACV;AAET;AACJ,GAAC,CAAC,CAAC;AAEP;;;;"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export { CjsFsd64SchemaAgentTypes } from './CjsFsd64SchemaAgentTypes.js';
|
|
2
|
+
export { CjsFsd64SchemaAgentsInSpace } from './CjsFsd64SchemaAgentsInSpace.js';
|
|
3
|
+
export { CjsFsd64SchemaAncestries } from './CjsFsd64SchemaAncestries.js';
|
|
4
|
+
export { CjsFsd64SchemaArchetypes } from './CjsFsd64SchemaArchetypes.js';
|
|
5
|
+
export { CjsFsd64SchemaAudioMetadata } from './CjsFsd64SchemaAudioMetadata.js';
|
|
6
|
+
export { CjsFsd64SchemaBloodlines } from './CjsFsd64SchemaBloodlines.js';
|
|
7
|
+
export { CjsFsd64SchemaCategories } from './CjsFsd64SchemaCategories.js';
|
|
8
|
+
export { CjsFsd64SchemaCharacterAvatarBehaviors } from './CjsFsd64SchemaCharacterAvatarBehaviors.js';
|
|
9
|
+
export { CjsFsd64SchemaCharacterColorLocations } from './CjsFsd64SchemaCharacterColorLocations.js';
|
|
10
|
+
export { CjsFsd64SchemaCharacterColorNames } from './CjsFsd64SchemaCharacterColorNames.js';
|
|
11
|
+
export { CjsFsd64SchemaCharacterModifierLocations } from './CjsFsd64SchemaCharacterModifierLocations.js';
|
|
12
|
+
export { CjsFsd64SchemaCharacterPortraitResources } from './CjsFsd64SchemaCharacterPortraitResources.js';
|
|
13
|
+
export { CjsFsd64SchemaCharacterResources } from './CjsFsd64SchemaCharacterResources.js';
|
|
14
|
+
export { CjsFsd64SchemaCharacterSculptingLocations } from './CjsFsd64SchemaCharacterSculptingLocations.js';
|
|
15
|
+
export { CHARACTER_STATIC_DATA_PATHS, CjsFsd64ReaderSetCharacterStaticData } from './CjsFsd64ReaderSetCharacterStaticData.js';
|
|
16
|
+
export { CjsFsd64SchemaCompressibleTypes } from './CjsFsd64SchemaCompressibleTypes.js';
|
|
17
|
+
export { CjsFsd64SchemaContrabandTypes } from './CjsFsd64SchemaContrabandTypes.js';
|
|
18
|
+
export { CjsFsd64SchemaControlTowerResources } from './CjsFsd64SchemaControlTowerResources.js';
|
|
19
|
+
export { CjsFsd64SchemaCorporationActivities } from './CjsFsd64SchemaCorporationActivities.js';
|
|
20
|
+
export { CjsFsd64SchemaCorporationRoleGroups } from './CjsFsd64SchemaCorporationRoleGroups.js';
|
|
21
|
+
export { CjsFsd64SchemaCorporationRoles } from './CjsFsd64SchemaCorporationRoles.js';
|
|
22
|
+
export { CjsFsd64SchemaDogmaAttributeCategories } from './CjsFsd64SchemaDogmaAttributeCategories.js';
|
|
23
|
+
export { CjsFsd64SchemaDogmaAttributes } from './CjsFsd64SchemaDogmaAttributes.js';
|
|
24
|
+
export { CjsFsd64SchemaDogmaEffects } from './CjsFsd64SchemaDogmaEffects.js';
|
|
25
|
+
export { CjsFsd64SchemaDogmaUnits } from './CjsFsd64SchemaDogmaUnits.js';
|
|
26
|
+
export { CjsFsd64SchemaDynamicItemAttributes } from './CjsFsd64SchemaDynamicItemAttributes.js';
|
|
27
|
+
export { CjsFsd64SchemaEpicArcs } from './CjsFsd64SchemaEpicArcs.js';
|
|
28
|
+
export { CjsFsd64SchemaExpertSystems } from './CjsFsd64SchemaExpertSystems.js';
|
|
29
|
+
export { CjsFsd64SchemaFactions } from './CjsFsd64SchemaFactions.js';
|
|
30
|
+
export { CjsFsd64SchemaGraphicIds } from './CjsFsd64SchemaGraphicIds.js';
|
|
31
|
+
export { CjsFsd64SchemaGraphicMaterialSets } from './CjsFsd64SchemaGraphicMaterialSets.js';
|
|
32
|
+
export { CjsFsd64SchemaGroups } from './CjsFsd64SchemaGroups.js';
|
|
33
|
+
export { CjsFsd64SchemaIcons } from './CjsFsd64SchemaIcons.js';
|
|
34
|
+
export { CjsFsd64SchemaMarketGroups } from './CjsFsd64SchemaMarketGroups.js';
|
|
35
|
+
export { CjsFsd64SchemaMetaGroups } from './CjsFsd64SchemaMetaGroups.js';
|
|
36
|
+
export { CjsFsd64SchemaNpcCorporationDivisions } from './CjsFsd64SchemaNpcCorporationDivisions.js';
|
|
37
|
+
export { CjsFsd64SchemaNpcCorporations } from './CjsFsd64SchemaNpcCorporations.js';
|
|
38
|
+
export { CjsFsd64SchemaPaperdolls } from './CjsFsd64SchemaPaperdolls.js';
|
|
39
|
+
export { CjsFsd64SchemaRaces } from './CjsFsd64SchemaRaces.js';
|
|
40
|
+
export { CjsFsd64SchemaSchoolMap } from './CjsFsd64SchemaSchoolMap.js';
|
|
41
|
+
export { CjsFsd64SchemaSchools } from './CjsFsd64SchemaSchools.js';
|
|
42
|
+
export { CjsFsd64SchemaSkillPlans } from './CjsFsd64SchemaSkillPlans.js';
|
|
43
|
+
export { CjsFsd64SchemaSkinrComponentCategories } from './CjsFsd64SchemaSkinrComponentCategories.js';
|
|
44
|
+
export { CjsFsd64SchemaSkinrComponentPointValues } from './CjsFsd64SchemaSkinrComponentPointValues.js';
|
|
45
|
+
export { CjsFsd64SchemaSkinrComponentRarities } from './CjsFsd64SchemaSkinrComponentRarities.js';
|
|
46
|
+
export { CjsFsd64SchemaSkinrComponents } from './CjsFsd64SchemaSkinrComponents.js';
|
|
47
|
+
export { CjsFsd64SchemaSkinrSlotCategories } from './CjsFsd64SchemaSkinrSlotCategories.js';
|
|
48
|
+
export { CjsFsd64SchemaSkinrSlotConfigurations } from './CjsFsd64SchemaSkinrSlotConfigurations.js';
|
|
49
|
+
export { CjsFsd64SchemaSkinrSlotNames } from './CjsFsd64SchemaSkinrSlotNames.js';
|
|
50
|
+
export { CjsFsd64SchemaSkinrSlots } from './CjsFsd64SchemaSkinrSlots.js';
|
|
51
|
+
export { CjsFsd64SchemaSkinrTierThresholds } from './CjsFsd64SchemaSkinrTierThresholds.js';
|
|
52
|
+
export { CjsFsd64SchemaStationOperations } from './CjsFsd64SchemaStationOperations.js';
|
|
53
|
+
export { CjsFsd64SchemaStationServices } from './CjsFsd64SchemaStationServices.js';
|
|
54
|
+
export { CjsFsd64SchemaTypeDogma } from './CjsFsd64SchemaTypeDogma.js';
|
|
55
|
+
export { CjsFsd64SchemaTypeLists } from './CjsFsd64SchemaTypeLists.js';
|
|
56
|
+
export { CjsFsd64SchemaTypeMaterials } from './CjsFsd64SchemaTypeMaterials.js';
|
|
57
|
+
export { CjsFsd64SchemaTypes } from './CjsFsd64SchemaTypes.js';
|
|
58
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { CjsFormat } from '../../format/CjsFormat.js';
|
|
2
|
+
import { CjsFsd32Format } from './32/CjsFsd32Format.js';
|
|
3
|
+
import { CjsFsd64Format } from './64/CjsFsd64Format.js';
|
|
4
|
+
import './64/core/CjsFsd64Binary.js';
|
|
5
|
+
import './64/core/CjsFsd64SchemaDecoder.js';
|
|
6
|
+
|
|
7
|
+
const OUTPUT_JSON = "json";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Normal FSD format-pipeline entry point.
|
|
11
|
+
*
|
|
12
|
+
* Modern cFSD identifies itself through its 32-byte envelope. Legacy FSD is
|
|
13
|
+
* headerless and therefore must be identified by the caller/profile through
|
|
14
|
+
* `bitWidth: 32` or `variant: "fsd32"` until its schema-driven reader exists.
|
|
15
|
+
*/
|
|
16
|
+
class CjsFsdFormat extends CjsFormat {
|
|
17
|
+
static inspect(input, options = {}) {
|
|
18
|
+
if (CjsFsd32Format.is(input, options)) {
|
|
19
|
+
return CjsFsd32Format.inspect(input, options);
|
|
20
|
+
}
|
|
21
|
+
return CjsFsd64Format.inspect(input, options);
|
|
22
|
+
}
|
|
23
|
+
static probeSupport(input, options = {}) {
|
|
24
|
+
if (CjsFsd32Format.is(input, options)) {
|
|
25
|
+
return CjsFsd32Format.probeSupport(input, options);
|
|
26
|
+
}
|
|
27
|
+
return CjsFsd64Format.probeSupport(input, options);
|
|
28
|
+
}
|
|
29
|
+
static read(input, options = {}) {
|
|
30
|
+
if (CjsFsd32Format.is(input, options)) {
|
|
31
|
+
return CjsFsd32Format.read(input, options);
|
|
32
|
+
}
|
|
33
|
+
if (CjsFsd64Format.is(input)) {
|
|
34
|
+
return CjsFsd64Format.read(input, options);
|
|
35
|
+
}
|
|
36
|
+
const error = new Error("FSD input is neither an identified legacy 32-bit layout nor a valid modern 64-bit cFSD container.");
|
|
37
|
+
error.code = "CJS_FSD_VARIANT_UNKNOWN";
|
|
38
|
+
error.path = options.path ?? null;
|
|
39
|
+
throw error;
|
|
40
|
+
}
|
|
41
|
+
static readJSON(input, options = {}) {
|
|
42
|
+
return this.read(input, {
|
|
43
|
+
...options,
|
|
44
|
+
emit: OUTPUT_JSON
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
static id = "fsd";
|
|
48
|
+
static extensions = Object.freeze([".fsdbinary"]);
|
|
49
|
+
static mediaTypes = Object.freeze(["data"]);
|
|
50
|
+
static outputs = CjsFormat.defineOutputs({
|
|
51
|
+
payload: {
|
|
52
|
+
default: true,
|
|
53
|
+
decoded: true
|
|
54
|
+
},
|
|
55
|
+
json: {
|
|
56
|
+
decoded: true
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export { CjsFsdFormat, CjsFsdFormat as default };
|
|
62
|
+
//# sourceMappingURL=CjsFsdFormat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CjsFsdFormat.js","sources":["../../../../src/formats/fsd/CjsFsdFormat.js"],"sourcesContent":["import { CjsFormat } from \"../../format/CjsFormat.js\";\nimport { CjsFsd32Format } from \"./32/index.js\";\nimport { CjsFsd64Format } from \"./64/index.js\";\n\nconst OUTPUT_JSON = \"json\";\nconst OUTPUT_PAYLOAD = \"payload\";\n\n/**\n * Normal FSD format-pipeline entry point.\n *\n * Modern cFSD identifies itself through its 32-byte envelope. Legacy FSD is\n * headerless and therefore must be identified by the caller/profile through\n * `bitWidth: 32` or `variant: \"fsd32\"` until its schema-driven reader exists.\n */\nexport class CjsFsdFormat extends CjsFormat\n{\n static inspect(input, options = {})\n {\n if (CjsFsd32Format.is(input, options))\n {\n return CjsFsd32Format.inspect(input, options);\n }\n\n return CjsFsd64Format.inspect(input, options);\n }\n\n static probeSupport(input, options = {})\n {\n if (CjsFsd32Format.is(input, options))\n {\n return CjsFsd32Format.probeSupport(input, options);\n }\n\n return CjsFsd64Format.probeSupport(input, options);\n }\n\n static read(input, options = {})\n {\n if (CjsFsd32Format.is(input, options))\n {\n return CjsFsd32Format.read(input, options);\n }\n\n if (CjsFsd64Format.is(input))\n {\n return CjsFsd64Format.read(input, options);\n }\n\n const error = new Error(\n \"FSD input is neither an identified legacy 32-bit layout nor a valid modern 64-bit cFSD container.\"\n );\n\n error.code = \"CJS_FSD_VARIANT_UNKNOWN\";\n error.path = options.path ?? null;\n throw error;\n }\n\n static readJSON(input, options = {})\n {\n return this.read(input, { ...options, emit: OUTPUT_JSON });\n }\n\n static id = \"fsd\";\n static extensions = Object.freeze([ \".fsdbinary\" ]);\n static mediaTypes = Object.freeze([ \"data\" ]);\n static outputs = CjsFormat.defineOutputs({\n payload: { default: true, decoded: true },\n json: { decoded: true }\n });\n}\n\nexport default CjsFsdFormat;\n"],"names":["OUTPUT_JSON","CjsFsdFormat","CjsFormat","inspect","input","options","CjsFsd32Format","is","CjsFsd64Format","probeSupport","read","error","Error","code","path","readJSON","emit","id","extensions","Object","freeze","mediaTypes","outputs","defineOutputs","payload","default","decoded","json"],"mappings":";;;;;;AAIA,MAAMA,WAAW,GAAG,MAAM;;AAG1B;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,YAAY,SAASC,SAAS,CAC3C;EACI,OAAOC,OAAOA,CAACC,KAAK,EAAEC,OAAO,GAAG,EAAE,EAClC;IACI,IAAIC,cAAc,CAACC,EAAE,CAACH,KAAK,EAAEC,OAAO,CAAC,EACrC;AACI,MAAA,OAAOC,cAAc,CAACH,OAAO,CAACC,KAAK,EAAEC,OAAO,CAAC;AACjD,IAAA;AAEA,IAAA,OAAOG,cAAc,CAACL,OAAO,CAACC,KAAK,EAAEC,OAAO,CAAC;AACjD,EAAA;EAEA,OAAOI,YAAYA,CAACL,KAAK,EAAEC,OAAO,GAAG,EAAE,EACvC;IACI,IAAIC,cAAc,CAACC,EAAE,CAACH,KAAK,EAAEC,OAAO,CAAC,EACrC;AACI,MAAA,OAAOC,cAAc,CAACG,YAAY,CAACL,KAAK,EAAEC,OAAO,CAAC;AACtD,IAAA;AAEA,IAAA,OAAOG,cAAc,CAACC,YAAY,CAACL,KAAK,EAAEC,OAAO,CAAC;AACtD,EAAA;EAEA,OAAOK,IAAIA,CAACN,KAAK,EAAEC,OAAO,GAAG,EAAE,EAC/B;IACI,IAAIC,cAAc,CAACC,EAAE,CAACH,KAAK,EAAEC,OAAO,CAAC,EACrC;AACI,MAAA,OAAOC,cAAc,CAACI,IAAI,CAACN,KAAK,EAAEC,OAAO,CAAC;AAC9C,IAAA;AAEA,IAAA,IAAIG,cAAc,CAACD,EAAE,CAACH,KAAK,CAAC,EAC5B;AACI,MAAA,OAAOI,cAAc,CAACE,IAAI,CAACN,KAAK,EAAEC,OAAO,CAAC;AAC9C,IAAA;AAEA,IAAA,MAAMM,KAAK,GAAG,IAAIC,KAAK,CACnB,mGACJ,CAAC;IAEDD,KAAK,CAACE,IAAI,GAAG,yBAAyB;AACtCF,IAAAA,KAAK,CAACG,IAAI,GAAGT,OAAO,CAACS,IAAI,IAAI,IAAI;AACjC,IAAA,MAAMH,KAAK;AACf,EAAA;EAEA,OAAOI,QAAQA,CAACX,KAAK,EAAEC,OAAO,GAAG,EAAE,EACnC;AACI,IAAA,OAAO,IAAI,CAACK,IAAI,CAACN,KAAK,EAAE;AAAE,MAAA,GAAGC,OAAO;AAAEW,MAAAA,IAAI,EAAEhB;AAAY,KAAC,CAAC;AAC9D,EAAA;EAEA,OAAOiB,EAAE,GAAG,KAAK;EACjB,OAAOC,UAAU,GAAGC,MAAM,CAACC,MAAM,CAAC,CAAE,YAAY,CAAE,CAAC;EACnD,OAAOC,UAAU,GAAGF,MAAM,CAACC,MAAM,CAAC,CAAE,MAAM,CAAE,CAAC;AAC7C,EAAA,OAAOE,OAAO,GAAGpB,SAAS,CAACqB,aAAa,CAAC;AACrCC,IAAAA,OAAO,EAAE;AAAEC,MAAAA,OAAO,EAAE,IAAI;AAAEC,MAAAA,OAAO,EAAE;KAAM;AACzCC,IAAAA,IAAI,EAAE;AAAED,MAAAA,OAAO,EAAE;AAAK;AAC1B,GAAC,CAAC;AACN;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { CjsFsdFormat, CjsFsdFormat as default } from './CjsFsdFormat.js';
|
|
2
|
+
export { CjsFsd32Format } from './32/CjsFsd32Format.js';
|
|
3
|
+
export { CjsFsd64Format } from './64/CjsFsd64Format.js';
|
|
4
|
+
export { CjsFsd64Binary } from './64/core/CjsFsd64Binary.js';
|
|
5
|
+
export { CjsFsd64Reader } from './64/core/CjsFsd64Reader.js';
|
|
6
|
+
export { CjsFsd64SchemaDecoder } from './64/core/CjsFsd64SchemaDecoder.js';
|
|
7
|
+
export { CjsFsd64SchemaReader } from './64/core/CjsFsd64SchemaReader.js';
|
|
8
|
+
export { AssertFlags, ReadFsdMap, ReadRequiredString, ReadRequiredStringList } from './64/core/fsd64Records.js';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CjsFormat } from '../../format/CjsFormat.js';
|
|
2
|
+
import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues, toJsonValue, probeSupportWithValues, isGIF, toBytes, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_RGBA, OUTPUT_IMAGE } from './core/helpers.js';
|
|
2
3
|
|
|
3
4
|
const FORMAT_NAME = "CjsGifFormat";
|
|
4
5
|
|
|
@@ -6,11 +7,12 @@ const FORMAT_NAME = "CjsGifFormat";
|
|
|
6
7
|
* GIF format profile that inspects header and frame metadata and reads GIF
|
|
7
8
|
* bytes into raw, debug JSON, or LZW-decoded RGBA frame payloads.
|
|
8
9
|
*/
|
|
9
|
-
class CjsGifFormat {
|
|
10
|
+
class CjsGifFormat extends CjsFormat {
|
|
10
11
|
#values = DEFAULT_VALUES;
|
|
11
12
|
|
|
12
13
|
/** Creates a CjsGifFormat with caller-provided reader configuration. */
|
|
13
14
|
constructor(options = {}) {
|
|
15
|
+
super();
|
|
14
16
|
this.SetValues(options);
|
|
15
17
|
}
|
|
16
18
|
|
|
@@ -61,14 +63,6 @@ class CjsGifFormat {
|
|
|
61
63
|
return inspectWithValues(input, this.GetValues(options));
|
|
62
64
|
}
|
|
63
65
|
|
|
64
|
-
/**
|
|
65
|
-
* Reports whether input meets the active decoder capability constraints for
|
|
66
|
-
* the GIF format configuration.
|
|
67
|
-
*/
|
|
68
|
-
IsSupported(input, options = {}) {
|
|
69
|
-
return isSupportedWithValues(input, this.GetValues(options));
|
|
70
|
-
}
|
|
71
|
-
|
|
72
66
|
/**
|
|
73
67
|
* Converts the current decoded payload into a JSON-safe representation for
|
|
74
68
|
* the GIF format configuration.
|
|
@@ -99,8 +93,8 @@ class CjsGifFormat {
|
|
|
99
93
|
}
|
|
100
94
|
|
|
101
95
|
/** Checks one input against the GIF decoder capability contract. */
|
|
102
|
-
static
|
|
103
|
-
return
|
|
96
|
+
static probeSupport(input, options = {}) {
|
|
97
|
+
return probeSupportWithValues(input, normalizeValues(DEFAULT_VALUES, {
|
|
104
98
|
inputType: "gif",
|
|
105
99
|
...options
|
|
106
100
|
}, FORMAT_NAME));
|
|
@@ -130,11 +124,27 @@ class CjsGifFormat {
|
|
|
130
124
|
JSON: OUTPUT_JSON
|
|
131
125
|
});
|
|
132
126
|
static OUTPUT_GIF_JSON = "gifJson";
|
|
133
|
-
static
|
|
127
|
+
static id = "gif";
|
|
134
128
|
static mediaTypes = Object.freeze(["image"]);
|
|
135
|
-
static
|
|
136
|
-
|
|
137
|
-
|
|
129
|
+
static outputs = CjsFormat.defineOutputs({
|
|
130
|
+
image: {
|
|
131
|
+
decoded: true,
|
|
132
|
+
probes: ["image", "rgba"]
|
|
133
|
+
},
|
|
134
|
+
rgba: {
|
|
135
|
+
decoded: true
|
|
136
|
+
},
|
|
137
|
+
gifJson: {
|
|
138
|
+
role: "debug",
|
|
139
|
+
probes: ["gifJson", "raw"]
|
|
140
|
+
},
|
|
141
|
+
raw: {
|
|
142
|
+
role: "debug",
|
|
143
|
+
default: true,
|
|
144
|
+
passthrough: true
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
static extensions = Object.freeze([".gif"]);
|
|
138
148
|
}
|
|
139
149
|
|
|
140
150
|
export { CjsGifFormat };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CjsGifFormat.js","sources":["../../../../src/formats/gif/CjsGifFormat.js"],"sourcesContent":["import {\n DEFAULT_VALUES,\n OUTPUT_IMAGE,\n OUTPUT_JSON,\n OUTPUT_RAW,\n OUTPUT_RGBA,\n inspectWithValues,\n isGIF,\n
|
|
1
|
+
{"version":3,"file":"CjsGifFormat.js","sources":["../../../../src/formats/gif/CjsGifFormat.js"],"sourcesContent":["import { CjsFormat } from \"../../format/CjsFormat.js\";\nimport {\n DEFAULT_VALUES,\n OUTPUT_IMAGE,\n OUTPUT_JSON,\n OUTPUT_RAW,\n OUTPUT_RGBA,\n inspectWithValues,\n isGIF,\n probeSupportWithValues,\n normalizeValues,\n readWithValues,\n toBytes,\n toJsonValue\n} from \"./core/helpers.js\";\n\nconst FORMAT_NAME = \"CjsGifFormat\";\n\n/**\n * GIF format profile that inspects header and frame metadata and reads GIF\n * bytes into raw, debug JSON, or LZW-decoded RGBA frame payloads.\n */\nexport class CjsGifFormat extends CjsFormat\n{\n #values = DEFAULT_VALUES;\n\n /** Creates a CjsGifFormat 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 * GIF format configuration.\n */\n SetValues(options = {})\n {\n this.#values = normalizeValues(this.#values, { inputType: \"gif\", ...options }, FORMAT_NAME);\n return this;\n }\n\n /**\n * Returns a snapshot of the normalized reader options for the GIF format\n * configuration.\n */\n GetValues(options = {})\n {\n return normalizeValues(this.#values, { inputType: \"gif\", ...options }, FORMAT_NAME);\n }\n\n /**\n * Reads the primary public payload representation from the supplied input\n * for the GIF 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 GIF\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 GIF 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 GIF format configuration.\n */\n ToJSON(value)\n {\n return toJsonValue(value);\n }\n\n /** Provides the one-shot GIF payload reader entry point. */\n static read(input, options = {})\n {\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"gif\", ...options }, FORMAT_NAME));\n }\n\n /** Provides the asynchronous one-shot GIF payload reader entry point. */\n static async readAsync(input, options = {})\n {\n return CjsGifFormat.read(input, options);\n }\n\n /** Provides the one-shot GIF metadata inspection entry point. */\n static inspect(input, options = {})\n {\n return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"gif\", ...options }, FORMAT_NAME));\n }\n\n /** Checks one input against the GIF decoder capability contract. */\n static probeSupport(input, options = {})\n {\n return probeSupportWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"gif\", ...options }, FORMAT_NAME));\n }\n\n /** Provides the one-shot GIF JSON conversion entry point. */\n static toJSON(value)\n {\n return toJsonValue(value);\n }\n\n /** Checks whether caller-provided bytes carry the expected GIF signature. */\n static isGIF(input)\n {\n try\n {\n return isGIF(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 IMAGE: OUTPUT_IMAGE,\n RGBA: OUTPUT_RGBA,\n RAW: OUTPUT_RAW,\n JSON: OUTPUT_JSON\n });\n static OUTPUT_GIF_JSON = \"gifJson\";\n static id = \"gif\";\n static mediaTypes = Object.freeze([ \"image\" ]);\n static outputs = CjsFormat.defineOutputs({\n image: { decoded: true, probes: [ \"image\", \"rgba\" ] },\n rgba: { decoded: true },\n gifJson: { role: \"debug\", probes: [ \"gifJson\", \"raw\" ] },\n raw: { role: \"debug\", default: true, passthrough: true }\n });\n static extensions = Object.freeze([ \".gif\" ]);\n}\n\nexport default CjsGifFormat;\n"],"names":["FORMAT_NAME","CjsGifFormat","CjsFormat","DEFAULT_VALUES","constructor","options","SetValues","normalizeValues","inputType","GetValues","Read","input","readWithValues","ReadAsync","Inspect","inspectWithValues","ToJSON","value","toJsonValue","read","readAsync","inspect","probeSupport","probeSupportWithValues","toJSON","isGIF","toBytes","Output","Object","freeze","IMAGE","OUTPUT_IMAGE","RGBA","OUTPUT_RGBA","RAW","OUTPUT_RAW","JSON","OUTPUT_JSON","OUTPUT_GIF_JSON","id","mediaTypes","outputs","defineOutputs","image","decoded","probes","rgba","gifJson","role","raw","default","passthrough","extensions"],"mappings":"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"}
|