@carbonenginejs/runtime-resource 0.20.0 → 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.
Files changed (306) hide show
  1. package/NOTICE +6 -0
  2. package/dist/CjsResMan.js +1374 -1318
  3. package/dist/CjsResMan.js.map +1 -1
  4. package/dist/format/CjsFormat.js +393 -164
  5. package/dist/format/CjsFormat.js.map +1 -1
  6. package/dist/format/CjsFormatStore.js +315 -0
  7. package/dist/format/CjsFormatStore.js.map +1 -0
  8. package/dist/format/CjsResourceProbe.js +66 -234
  9. package/dist/format/CjsResourceProbe.js.map +1 -1
  10. package/dist/format/payloadContract.js +47 -6
  11. package/dist/format/payloadContract.js.map +1 -1
  12. package/dist/formats/black/CjsBlackFormat.js +23 -6
  13. package/dist/formats/black/CjsBlackFormat.js.map +1 -1
  14. package/dist/formats/bnk/CjsBnkFormat.js +122 -120
  15. package/dist/formats/bnk/CjsBnkFormat.js.map +1 -1
  16. package/dist/formats/bnk/core/helpers.js +5 -15
  17. package/dist/formats/bnk/core/helpers.js.map +1 -1
  18. package/dist/formats/cmf/CjsCmfFormat.js +31 -14
  19. package/dist/formats/cmf/CjsCmfFormat.js.map +1 -1
  20. package/dist/formats/dds/CjsDdsFormat.js +29 -19
  21. package/dist/formats/dds/CjsDdsFormat.js.map +1 -1
  22. package/dist/formats/dds/core/helpers.js +4 -5
  23. package/dist/formats/dds/core/helpers.js.map +1 -1
  24. package/dist/formats/dxbc/CjsDxbcFormat.js +15 -13
  25. package/dist/formats/dxbc/CjsDxbcFormat.js.map +1 -1
  26. package/dist/formats/fbx/CjsFbxFormat.js +27 -19
  27. package/dist/formats/fbx/CjsFbxFormat.js.map +1 -1
  28. package/dist/formats/fbx/core/helpers.js +4 -4
  29. package/dist/formats/fbx/core/helpers.js.map +1 -1
  30. package/dist/formats/flac/CjsFlacFormat.js +19 -17
  31. package/dist/formats/flac/CjsFlacFormat.js.map +1 -1
  32. package/dist/formats/flac/core/helpers.js +5 -11
  33. package/dist/formats/flac/core/helpers.js.map +1 -1
  34. package/dist/formats/fsd/32/CjsFsd32Format.js +55 -0
  35. package/dist/formats/fsd/32/CjsFsd32Format.js.map +1 -0
  36. package/dist/formats/fsd/32/index.js +2 -0
  37. package/dist/formats/fsd/32/index.js.map +1 -0
  38. package/dist/formats/fsd/64/CjsFsd64Format.js +119 -0
  39. package/dist/formats/fsd/64/CjsFsd64Format.js.map +1 -0
  40. package/dist/formats/fsd/64/core/CjsFsd64Binary.js +393 -0
  41. package/dist/formats/fsd/64/core/CjsFsd64Binary.js.map +1 -0
  42. package/dist/formats/fsd/64/core/CjsFsd64Reader.js +138 -0
  43. package/dist/formats/fsd/64/core/CjsFsd64Reader.js.map +1 -0
  44. package/dist/formats/fsd/64/core/CjsFsd64SchemaDecoder.js +389 -0
  45. package/dist/formats/fsd/64/core/CjsFsd64SchemaDecoder.js.map +1 -0
  46. package/dist/formats/fsd/64/core/CjsFsd64SchemaReader.js +43 -0
  47. package/dist/formats/fsd/64/core/CjsFsd64SchemaReader.js.map +1 -0
  48. package/dist/formats/fsd/64/core/fsd64Records.js +60 -0
  49. package/dist/formats/fsd/64/core/fsd64Records.js.map +1 -0
  50. package/dist/formats/fsd/64/index.js +7 -0
  51. package/dist/formats/fsd/64/index.js.map +1 -0
  52. package/dist/formats/fsd/64/readers/CjsFsd64ReaderSetCharacterStaticData.js +33 -0
  53. package/dist/formats/fsd/64/readers/CjsFsd64ReaderSetCharacterStaticData.js.map +1 -0
  54. package/dist/formats/fsd/64/readers/CjsFsd64SchemaAgentTypes.js +35 -0
  55. package/dist/formats/fsd/64/readers/CjsFsd64SchemaAgentTypes.js.map +1 -0
  56. package/dist/formats/fsd/64/readers/CjsFsd64SchemaAgentsInSpace.js +50 -0
  57. package/dist/formats/fsd/64/readers/CjsFsd64SchemaAgentsInSpace.js.map +1 -0
  58. package/dist/formats/fsd/64/readers/CjsFsd64SchemaAncestries.js +75 -0
  59. package/dist/formats/fsd/64/readers/CjsFsd64SchemaAncestries.js.map +1 -0
  60. package/dist/formats/fsd/64/readers/CjsFsd64SchemaArchetypes.js +57 -0
  61. package/dist/formats/fsd/64/readers/CjsFsd64SchemaArchetypes.js.map +1 -0
  62. package/dist/formats/fsd/64/readers/CjsFsd64SchemaAudioMetadata.js +201 -0
  63. package/dist/formats/fsd/64/readers/CjsFsd64SchemaAudioMetadata.js.map +1 -0
  64. package/dist/formats/fsd/64/readers/CjsFsd64SchemaBloodlines.js +73 -0
  65. package/dist/formats/fsd/64/readers/CjsFsd64SchemaBloodlines.js.map +1 -0
  66. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCategories.js +53 -0
  67. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCategories.js.map +1 -0
  68. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterAvatarBehaviors.js +44 -0
  69. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterAvatarBehaviors.js.map +1 -0
  70. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterColorLocations.js +38 -0
  71. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterColorLocations.js.map +1 -0
  72. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterColorNames.js +34 -0
  73. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterColorNames.js.map +1 -0
  74. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterModifierLocations.js +34 -0
  75. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterModifierLocations.js.map +1 -0
  76. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterPortraitResources.js +44 -0
  77. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterPortraitResources.js.map +1 -0
  78. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterResources.js +81 -0
  79. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterResources.js.map +1 -0
  80. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterSculptingLocations.js +34 -0
  81. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterSculptingLocations.js.map +1 -0
  82. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCompressibleTypes.js +41 -0
  83. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCompressibleTypes.js.map +1 -0
  84. package/dist/formats/fsd/64/readers/CjsFsd64SchemaContrabandTypes.js +63 -0
  85. package/dist/formats/fsd/64/readers/CjsFsd64SchemaContrabandTypes.js.map +1 -0
  86. package/dist/formats/fsd/64/readers/CjsFsd64SchemaControlTowerResources.js +76 -0
  87. package/dist/formats/fsd/64/readers/CjsFsd64SchemaControlTowerResources.js.map +1 -0
  88. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCorporationActivities.js +38 -0
  89. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCorporationActivities.js.map +1 -0
  90. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCorporationRoleGroups.js +74 -0
  91. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCorporationRoleGroups.js.map +1 -0
  92. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCorporationRoles.js +59 -0
  93. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCorporationRoles.js.map +1 -0
  94. package/dist/formats/fsd/64/readers/CjsFsd64SchemaDogmaAttributeCategories.js +46 -0
  95. package/dist/formats/fsd/64/readers/CjsFsd64SchemaDogmaAttributeCategories.js.map +1 -0
  96. package/dist/formats/fsd/64/readers/CjsFsd64SchemaDogmaAttributes.js +133 -0
  97. package/dist/formats/fsd/64/readers/CjsFsd64SchemaDogmaAttributes.js.map +1 -0
  98. package/dist/formats/fsd/64/readers/CjsFsd64SchemaDogmaEffects.js +236 -0
  99. package/dist/formats/fsd/64/readers/CjsFsd64SchemaDogmaEffects.js.map +1 -0
  100. package/dist/formats/fsd/64/readers/CjsFsd64SchemaDogmaUnits.js +60 -0
  101. package/dist/formats/fsd/64/readers/CjsFsd64SchemaDogmaUnits.js.map +1 -0
  102. package/dist/formats/fsd/64/readers/CjsFsd64SchemaDynamicItemAttributes.js +95 -0
  103. package/dist/formats/fsd/64/readers/CjsFsd64SchemaDynamicItemAttributes.js.map +1 -0
  104. package/dist/formats/fsd/64/readers/CjsFsd64SchemaEpicArcs.js +106 -0
  105. package/dist/formats/fsd/64/readers/CjsFsd64SchemaEpicArcs.js.map +1 -0
  106. package/dist/formats/fsd/64/readers/CjsFsd64SchemaExpertSystems.js +86 -0
  107. package/dist/formats/fsd/64/readers/CjsFsd64SchemaExpertSystems.js.map +1 -0
  108. package/dist/formats/fsd/64/readers/CjsFsd64SchemaFactions.js +117 -0
  109. package/dist/formats/fsd/64/readers/CjsFsd64SchemaFactions.js.map +1 -0
  110. package/dist/formats/fsd/64/readers/CjsFsd64SchemaGraphicIds.js +70 -0
  111. package/dist/formats/fsd/64/readers/CjsFsd64SchemaGraphicIds.js.map +1 -0
  112. package/dist/formats/fsd/64/readers/CjsFsd64SchemaGraphicMaterialSets.js +173 -0
  113. package/dist/formats/fsd/64/readers/CjsFsd64SchemaGraphicMaterialSets.js.map +1 -0
  114. package/dist/formats/fsd/64/readers/CjsFsd64SchemaGroups.js +77 -0
  115. package/dist/formats/fsd/64/readers/CjsFsd64SchemaGroups.js.map +1 -0
  116. package/dist/formats/fsd/64/readers/CjsFsd64SchemaIcons.js +62 -0
  117. package/dist/formats/fsd/64/readers/CjsFsd64SchemaIcons.js.map +1 -0
  118. package/dist/formats/fsd/64/readers/CjsFsd64SchemaMarketGroups.js +63 -0
  119. package/dist/formats/fsd/64/readers/CjsFsd64SchemaMarketGroups.js.map +1 -0
  120. package/dist/formats/fsd/64/readers/CjsFsd64SchemaMetaGroups.js +86 -0
  121. package/dist/formats/fsd/64/readers/CjsFsd64SchemaMetaGroups.js.map +1 -0
  122. package/dist/formats/fsd/64/readers/CjsFsd64SchemaNpcCorporationDivisions.js +72 -0
  123. package/dist/formats/fsd/64/readers/CjsFsd64SchemaNpcCorporationDivisions.js.map +1 -0
  124. package/dist/formats/fsd/64/readers/CjsFsd64SchemaNpcCorporations.js +326 -0
  125. package/dist/formats/fsd/64/readers/CjsFsd64SchemaNpcCorporations.js.map +1 -0
  126. package/dist/formats/fsd/64/readers/CjsFsd64SchemaPaperdolls.js +279 -0
  127. package/dist/formats/fsd/64/readers/CjsFsd64SchemaPaperdolls.js.map +1 -0
  128. package/dist/formats/fsd/64/readers/CjsFsd64SchemaRaces.js +64 -0
  129. package/dist/formats/fsd/64/readers/CjsFsd64SchemaRaces.js.map +1 -0
  130. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSchoolMap.js +40 -0
  131. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSchoolMap.js.map +1 -0
  132. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSchools.js +113 -0
  133. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSchools.js.map +1 -0
  134. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkillPlans.js +130 -0
  135. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkillPlans.js.map +1 -0
  136. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrComponentCategories.js +38 -0
  137. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrComponentCategories.js.map +1 -0
  138. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrComponentPointValues.js +45 -0
  139. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrComponentPointValues.js.map +1 -0
  140. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrComponentRarities.js +44 -0
  141. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrComponentRarities.js.map +1 -0
  142. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrComponents.js +163 -0
  143. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrComponents.js.map +1 -0
  144. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrSlotCategories.js +37 -0
  145. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrSlotCategories.js.map +1 -0
  146. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrSlotConfigurations.js +77 -0
  147. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrSlotConfigurations.js.map +1 -0
  148. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrSlotNames.js +37 -0
  149. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrSlotNames.js.map +1 -0
  150. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrSlots.js +74 -0
  151. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrSlots.js.map +1 -0
  152. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrTierThresholds.js +44 -0
  153. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrTierThresholds.js.map +1 -0
  154. package/dist/formats/fsd/64/readers/CjsFsd64SchemaStationOperations.js +120 -0
  155. package/dist/formats/fsd/64/readers/CjsFsd64SchemaStationOperations.js.map +1 -0
  156. package/dist/formats/fsd/64/readers/CjsFsd64SchemaStationServices.js +49 -0
  157. package/dist/formats/fsd/64/readers/CjsFsd64SchemaStationServices.js.map +1 -0
  158. package/dist/formats/fsd/64/readers/CjsFsd64SchemaTypeDogma.js +73 -0
  159. package/dist/formats/fsd/64/readers/CjsFsd64SchemaTypeDogma.js.map +1 -0
  160. package/dist/formats/fsd/64/readers/CjsFsd64SchemaTypeLists.js +122 -0
  161. package/dist/formats/fsd/64/readers/CjsFsd64SchemaTypeLists.js.map +1 -0
  162. package/dist/formats/fsd/64/readers/CjsFsd64SchemaTypeMaterials.js +83 -0
  163. package/dist/formats/fsd/64/readers/CjsFsd64SchemaTypeMaterials.js.map +1 -0
  164. package/dist/formats/fsd/64/readers/CjsFsd64SchemaTypes.js +194 -0
  165. package/dist/formats/fsd/64/readers/CjsFsd64SchemaTypes.js.map +1 -0
  166. package/dist/formats/fsd/64/readers/index.js +58 -0
  167. package/dist/formats/fsd/64/readers/index.js.map +1 -0
  168. package/dist/formats/fsd/CjsFsdFormat.js +62 -0
  169. package/dist/formats/fsd/CjsFsdFormat.js.map +1 -0
  170. package/dist/formats/fsd/index.js +9 -0
  171. package/dist/formats/fsd/index.js.map +1 -0
  172. package/dist/formats/gif/CjsGifFormat.js +26 -16
  173. package/dist/formats/gif/CjsGifFormat.js.map +1 -1
  174. package/dist/formats/gif/core/helpers.js +6 -18
  175. package/dist/formats/gif/core/helpers.js.map +1 -1
  176. package/dist/formats/gltf/CjsGltfFormat.js +25 -13
  177. package/dist/formats/gltf/CjsGltfFormat.js.map +1 -1
  178. package/dist/formats/gr2/CjsGr2Format.js +27 -6
  179. package/dist/formats/gr2/CjsGr2Format.js.map +1 -1
  180. package/dist/formats/hlsl/CjsHlslFormat.js +20 -16
  181. package/dist/formats/hlsl/CjsHlslFormat.js.map +1 -1
  182. package/dist/formats/hlsl/core/analysis.js +1 -1
  183. package/dist/formats/index.js +5 -0
  184. package/dist/formats/index.js.map +1 -1
  185. package/dist/formats/jpeg/CjsJpegFormat.js +26 -19
  186. package/dist/formats/jpeg/CjsJpegFormat.js.map +1 -1
  187. package/dist/formats/jpeg/core/helpers.js +6 -15
  188. package/dist/formats/jpeg/core/helpers.js.map +1 -1
  189. package/dist/formats/jpeg/core/jpeg.js +0 -3
  190. package/dist/formats/jpeg/core/jpeg.js.map +1 -1
  191. package/dist/formats/mp3/CjsMp3Format.js +19 -19
  192. package/dist/formats/mp3/CjsMp3Format.js.map +1 -1
  193. package/dist/formats/mp3/core/helpers.js +5 -11
  194. package/dist/formats/mp3/core/helpers.js.map +1 -1
  195. package/dist/formats/mp4/CjsMp4Format.js +20 -19
  196. package/dist/formats/mp4/CjsMp4Format.js.map +1 -1
  197. package/dist/formats/mp4/core/helpers.js +6 -15
  198. package/dist/formats/mp4/core/helpers.js.map +1 -1
  199. package/dist/formats/obj/CjsObjFormat.js +25 -12
  200. package/dist/formats/obj/CjsObjFormat.js.map +1 -1
  201. package/dist/formats/ogg/CjsOggFormat.js +26 -17
  202. package/dist/formats/ogg/CjsOggFormat.js.map +1 -1
  203. package/dist/formats/ogg/core/helpers.js +5 -16
  204. package/dist/formats/ogg/core/helpers.js.map +1 -1
  205. package/dist/formats/pickle/CjsPickleFormat.js +64 -5
  206. package/dist/formats/pickle/CjsPickleFormat.js.map +1 -1
  207. package/dist/formats/png/CjsPngFormat.js +28 -19
  208. package/dist/formats/png/CjsPngFormat.js.map +1 -1
  209. package/dist/formats/png/core/helpers.js +5 -14
  210. package/dist/formats/png/core/helpers.js.map +1 -1
  211. package/dist/formats/red/CjsRedFormat.js +19 -5
  212. package/dist/formats/red/CjsRedFormat.js.map +1 -1
  213. package/dist/formats/schemabound/CjsSchemaBoundFormat.js +48 -38
  214. package/dist/formats/schemabound/CjsSchemaBoundFormat.js.map +1 -1
  215. package/dist/formats/sqlite/CjsSqliteFormat.js +49 -41
  216. package/dist/formats/sqlite/CjsSqliteFormat.js.map +1 -1
  217. package/dist/formats/static/CjsStaticFormat.js +15 -57
  218. package/dist/formats/static/CjsStaticFormat.js.map +1 -1
  219. package/dist/formats/static/staticContainers.js +6 -6
  220. package/dist/formats/static/staticContainers.js.map +1 -1
  221. package/dist/formats/stl/CjsStlFormat.js +25 -12
  222. package/dist/formats/stl/CjsStlFormat.js.map +1 -1
  223. package/dist/formats/tga/CjsTgaFormat.js +26 -19
  224. package/dist/formats/tga/CjsTgaFormat.js.map +1 -1
  225. package/dist/formats/tga/core/helpers.js +7 -22
  226. package/dist/formats/tga/core/helpers.js.map +1 -1
  227. package/dist/formats/wav/CjsWavFormat.js +26 -19
  228. package/dist/formats/wav/CjsWavFormat.js.map +1 -1
  229. package/dist/formats/wav/core/helpers.js +7 -16
  230. package/dist/formats/wav/core/helpers.js.map +1 -1
  231. package/dist/formats/webgl/CjsWebglFormat.js +11 -13
  232. package/dist/formats/webgl/CjsWebglFormat.js.map +1 -1
  233. package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js +31 -1
  234. package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
  235. package/dist/formats/webgl/core/readGlslEffectContainer.js +8 -8
  236. package/dist/formats/webgl/core/readGlslEffectContainer.js.map +1 -1
  237. package/dist/formats/webgpu/CjsWebgpuFormat.js +11 -5
  238. package/dist/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
  239. package/dist/formats/webm/CjsWebmFormat.js +20 -19
  240. package/dist/formats/webm/CjsWebmFormat.js.map +1 -1
  241. package/dist/formats/webm/core/helpers.js +6 -15
  242. package/dist/formats/webm/core/helpers.js.map +1 -1
  243. package/dist/formats/webp/CjsWebpFormat.js +19 -17
  244. package/dist/formats/webp/CjsWebpFormat.js.map +1 -1
  245. package/dist/formats/webp/core/helpers.js +5 -11
  246. package/dist/formats/webp/core/helpers.js.map +1 -1
  247. package/dist/formats/wem/CjsWemFormat.js +128 -141
  248. package/dist/formats/wem/CjsWemFormat.js.map +1 -1
  249. package/dist/formats/wem/core/helpers.js +1 -114
  250. package/dist/formats/wem/core/helpers.js.map +1 -1
  251. package/dist/formats/wem/core/{resolve.js → probeCodecSupport.js} +11 -18
  252. package/dist/formats/wem/core/probeCodecSupport.js.map +1 -0
  253. package/dist/formats/yaml/CjsYamlFormat.js +20 -5
  254. package/dist/formats/yaml/CjsYamlFormat.js.map +1 -1
  255. package/dist/generated/index.js +2 -0
  256. package/dist/generated/index.js.map +1 -0
  257. package/dist/generated/resources/Tr2RaycastGeometryRes.js +34 -0
  258. package/dist/generated/resources/Tr2RaycastGeometryRes.js.map +1 -0
  259. package/dist/generated/resources/index.js +2 -0
  260. package/dist/generated/resources/index.js.map +1 -0
  261. package/dist/index.js +3 -1
  262. package/dist/index.js.map +1 -1
  263. package/dist/resource/CjsResource.js +134 -0
  264. package/dist/resource/CjsResource.js.map +1 -1
  265. package/dist/resource/ResourceRequirement.js +42 -0
  266. package/dist/resource/ResourceRequirement.js.map +1 -0
  267. package/dist/resource/Tr2LightProfileRes.js +2 -1
  268. package/dist/resource/Tr2LightProfileRes.js.map +1 -1
  269. package/dist/resource/geometry/TriGeometryRes.js +34 -7
  270. package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
  271. package/dist/resource/geometry/granny/Tr2GrannyStateRes.js +184 -7
  272. package/dist/resource/geometry/granny/Tr2GrannyStateRes.js.map +1 -1
  273. package/dist/resource/geometry/granny/TriGrannyRes.js +20 -8
  274. package/dist/resource/geometry/granny/TriGrannyRes.js.map +1 -1
  275. package/dist/resource/index.js +1 -0
  276. package/dist/resource/index.js.map +1 -1
  277. package/dist/resource/resourceBoundary.js +24 -1
  278. package/dist/resource/resourceBoundary.js.map +1 -1
  279. package/dist/resource/shader/Tr2EffectRes.js +2 -1
  280. package/dist/resource/shader/Tr2EffectRes.js.map +1 -1
  281. package/dist/resource/texture/CjsTextureArrayRes.js +2 -1
  282. package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
  283. package/dist/resource/texture/Tr2ImageRes.js +2 -1
  284. package/dist/resource/texture/Tr2ImageRes.js.map +1 -1
  285. package/dist/resource/texture/TriTextureRes.js +40 -2
  286. package/dist/resource/texture/TriTextureRes.js.map +1 -1
  287. package/docs/architecture.md +121 -116
  288. package/docs/concepts/format-capabilities.md +90 -0
  289. package/docs/formats/README.md +14 -6
  290. package/docs/formats/fsd.md +104 -0
  291. package/docs/formats/gr2.md +1 -1
  292. package/docs/formats/hlsl/reference/api.md +6 -4
  293. package/docs/formats/provenance.md +18 -0
  294. package/docs/formats/schemabound.md +10 -4
  295. package/docs/formats/static.md +26 -26
  296. package/docs/formats/webgpu/reference/api.md +4 -3
  297. package/docs/reference/classes/core.md +22 -2
  298. package/docs/reference/classes/formats.md +643 -1
  299. package/docs/reference/classes/resources.md +463 -453
  300. package/docs/reference/queues.md +205 -194
  301. package/docs/roadmap.md +14 -18
  302. package/format-notices/fsd/LICENSE +21 -0
  303. package/format-notices/fsd/NOTICE +11 -0
  304. package/package.json +70 -64
  305. package/dist/formats/wem/core/resolve.js.map +0 -1
  306. 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":"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"}
@@ -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 { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues, isSupportedWithValues, toJsonValue, isGIF, toBytes, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_RGBA, OUTPUT_IMAGE } from './core/helpers.js';
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 isSupported(input, options = {}) {
103
- return isSupportedWithValues(input, normalizeValues(DEFAULT_VALUES, {
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 type = Object.freeze(["image"]);
127
+ static id = "gif";
134
128
  static mediaTypes = Object.freeze(["image"]);
135
- static inputTypes = Object.freeze(["gif"]);
136
- static outputTypes = Object.freeze([OUTPUT_IMAGE, OUTPUT_RGBA]);
137
- static debugOutputTypes = Object.freeze(["gifJson", OUTPUT_RAW]);
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 isSupportedWithValues,\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\n{\n #values = DEFAULT_VALUES;\n\n /** Creates a CjsGifFormat with caller-provided reader configuration. */\n constructor(options = {})\n {\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 * Reports whether input meets the active decoder capability constraints for\n * the GIF format configuration.\n */\n IsSupported(input, options = {})\n {\n return isSupportedWithValues(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 isSupported(input, options = {})\n {\n return isSupportedWithValues(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 type = Object.freeze([ \"image\" ]);\n static mediaTypes = Object.freeze([ \"image\" ]);\n static inputTypes = Object.freeze([ \"gif\" ]);\n static outputTypes = Object.freeze([ OUTPUT_IMAGE, OUTPUT_RGBA ]);\n static debugOutputTypes = Object.freeze([ \"gifJson\", OUTPUT_RAW ]);\n}\n\nexport default CjsGifFormat;\n"],"names":["FORMAT_NAME","CjsGifFormat","DEFAULT_VALUES","constructor","options","SetValues","normalizeValues","inputType","GetValues","Read","input","readWithValues","ReadAsync","Inspect","inspectWithValues","IsSupported","isSupportedWithValues","ToJSON","value","toJsonValue","read","readAsync","inspect","isSupported","toJSON","isGIF","toBytes","Output","Object","freeze","IMAGE","OUTPUT_IMAGE","RGBA","OUTPUT_RGBA","RAW","OUTPUT_RAW","JSON","OUTPUT_JSON","OUTPUT_GIF_JSON","type","mediaTypes","inputTypes","outputTypes","debugOutputTypes"],"mappings":"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"}
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":";;;AAgBA,MAAMA,WAAW,GAAG,cAAc;;AAElC;AACA;AACA;AACA;AACO,MAAMC,YAAY,SAASC,SAAS,CAC3C;EACI,OAAO,GAAGC,cAAc;;AAExB;AACAC,EAAAA,WAAWA,CAACC,OAAO,GAAG,EAAE,EACxB;AACI,IAAA,KAAK,EAAE;AACP,IAAA,IAAI,CAACC,SAAS,CAACD,OAAO,CAAC;AAC3B,EAAA;;AAEA;AACJ;AACA;AACA;AACIC,EAAAA,SAASA,CAACD,OAAO,GAAG,EAAE,EACtB;IACI,IAAI,CAAC,OAAO,GAAGE,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE;AAAEC,MAAAA,SAAS,EAAE,KAAK;MAAE,GAAGH;KAAS,EAAEL,WAAW,CAAC;AAC3F,IAAA,OAAO,IAAI;AACf,EAAA;;AAEA;AACJ;AACA;AACA;AACIS,EAAAA,SAASA,CAACJ,OAAO,GAAG,EAAE,EACtB;AACI,IAAA,OAAOE,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE;AAAEC,MAAAA,SAAS,EAAE,KAAK;MAAE,GAAGH;KAAS,EAAEL,WAAW,CAAC;AACvF,EAAA;;AAEA;AACJ;AACA;AACA;AACIU,EAAAA,IAAIA,CAACC,KAAK,EAAEN,OAAO,GAAG,EAAE,EACxB;IACI,OAAOO,cAAc,CAACD,KAAK,EAAE,IAAI,CAACF,SAAS,CAACJ,OAAO,CAAC,CAAC;AACzD,EAAA;;AAEA;AACJ;AACA;AACA;EACI,MAAMQ,SAASA,CAACF,KAAK,EAAEN,OAAO,GAAG,EAAE,EACnC;AACI,IAAA,OAAO,IAAI,CAACK,IAAI,CAACC,KAAK,EAAEN,OAAO,CAAC;AACpC,EAAA;;AAEA;AACJ;AACA;AACA;AACIS,EAAAA,OAAOA,CAACH,KAAK,EAAEN,OAAO,GAAG,EAAE,EAC3B;IACI,OAAOU,iBAAiB,CAACJ,KAAK,EAAE,IAAI,CAACF,SAAS,CAACJ,OAAO,CAAC,CAAC;AAC5D,EAAA;;AAEA;AACJ;AACA;AACA;EACIW,MAAMA,CAACC,KAAK,EACZ;IACI,OAAOC,WAAW,CAACD,KAAK,CAAC;AAC7B,EAAA;;AAEA;EACA,OAAOE,IAAIA,CAACR,KAAK,EAAEN,OAAO,GAAG,EAAE,EAC/B;AACI,IAAA,OAAOO,cAAc,CAACD,KAAK,EAAEJ,eAAe,CAACJ,cAAc,EAAE;AAAEK,MAAAA,SAAS,EAAE,KAAK;MAAE,GAAGH;KAAS,EAAEL,WAAW,CAAC,CAAC;AAChH,EAAA;;AAEA;EACA,aAAaoB,SAASA,CAACT,KAAK,EAAEN,OAAO,GAAG,EAAE,EAC1C;AACI,IAAA,OAAOJ,YAAY,CAACkB,IAAI,CAACR,KAAK,EAAEN,OAAO,CAAC;AAC5C,EAAA;;AAEA;EACA,OAAOgB,OAAOA,CAACV,KAAK,EAAEN,OAAO,GAAG,EAAE,EAClC;AACI,IAAA,OAAOU,iBAAiB,CAACJ,KAAK,EAAEJ,eAAe,CAACJ,cAAc,EAAE;AAAEK,MAAAA,SAAS,EAAE,KAAK;MAAE,GAAGH;KAAS,EAAEL,WAAW,CAAC,CAAC;AACnH,EAAA;;AAEA;EACA,OAAOsB,YAAYA,CAACX,KAAK,EAAEN,OAAO,GAAG,EAAE,EACvC;AACI,IAAA,OAAOkB,sBAAsB,CAACZ,KAAK,EAAEJ,eAAe,CAACJ,cAAc,EAAE;AAAEK,MAAAA,SAAS,EAAE,KAAK;MAAE,GAAGH;KAAS,EAAEL,WAAW,CAAC,CAAC;AACxH,EAAA;;AAEA;EACA,OAAOwB,MAAMA,CAACP,KAAK,EACnB;IACI,OAAOC,WAAW,CAACD,KAAK,CAAC;AAC7B,EAAA;;AAEA;EACA,OAAOQ,KAAKA,CAACd,KAAK,EAClB;IACI,IACA;AACI,MAAA,OAAOc,KAAK,CAACC,OAAO,CAACf,KAAK,CAAC,CAAC;AAChC,IAAA,CAAC,CACD,MACA;AACI,MAAA,OAAO,KAAK;AAChB,IAAA;AACJ,EAAA;;AAEA;AACJ;AACA;AACI,EAAA,OAAOgB,MAAM,GAAGC,MAAM,CAACC,MAAM,CAAC;AAC1BC,IAAAA,KAAK,EAAEC,YAAY;AACnBC,IAAAA,IAAI,EAAEC,WAAW;AACjBC,IAAAA,GAAG,EAAEC,UAAU;AACfC,IAAAA,IAAI,EAAEC;AACV,GAAC,CAAC;EACF,OAAOC,eAAe,GAAG,SAAS;EAClC,OAAOC,EAAE,GAAG,KAAK;EACjB,OAAOC,UAAU,GAAGZ,MAAM,CAACC,MAAM,CAAC,CAAE,OAAO,CAAE,CAAC;AAC9C,EAAA,OAAOY,OAAO,GAAGvC,SAAS,CAACwC,aAAa,CAAC;AACrCC,IAAAA,KAAK,EAAE;AAAEC,MAAAA,OAAO,EAAE,IAAI;AAAEC,MAAAA,MAAM,EAAE,CAAE,OAAO,EAAE,MAAM;KAAI;AACrDC,IAAAA,IAAI,EAAE;AAAEF,MAAAA,OAAO,EAAE;KAAM;AACvBG,IAAAA,OAAO,EAAE;AAAEC,MAAAA,IAAI,EAAE,OAAO;AAAEH,MAAAA,MAAM,EAAE,CAAE,SAAS,EAAE,KAAK;KAAI;AACxDI,IAAAA,GAAG,EAAE;AAAED,MAAAA,IAAI,EAAE,OAAO;AAAEE,MAAAA,OAAO,EAAE,IAAI;AAAEC,MAAAA,WAAW,EAAE;AAAK;AAC3D,GAAC,CAAC;EACF,OAAOC,UAAU,GAAGxB,MAAM,CAACC,MAAM,CAAC,CAAE,MAAM,CAAE,CAAC;AACjD;;;;"}