@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
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sources":["../../../../../src/formats/tga/core/helpers.js"],"sourcesContent":["export const OUTPUT_IMAGE = \"image\";\nexport const OUTPUT_TEXTURE = \"texture\";\nexport const OUTPUT_RGBA = \"rgba\";\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_JSON = \"json\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_RAW,\n inputType: \"\",\n source: \"\"\n});\n\nconst DEBUG_OUTPUTS = Object.freeze({\n png: \"pngJson\",\n jpeg: \"jpegJson\",\n jpg: \"jpegJson\",\n tga: \"tgaJson\",\n dds: \"ddsJson\"\n});\n\nconst IMAGE_MIME_TYPES = Object.freeze({\n png: \"image/png\",\n jpeg: \"image/jpeg\",\n jpg: \"image/jpeg\",\n tga: \"image/x-tga\",\n dds: \"image/vnd-ms.dds\"\n});\n\n/**\n * Normalizes reader options against their supported defaults for the TGA format\n * reader.\n */\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsImageFormat\")\n{\n const values = { ...DEFAULT_VALUES, ...(base || {}), ...(options || {}) };\n values.inputType = normalizeInputType(values.inputType);\n values.emit = normalizeEmit(values.emit, values.inputType, readerName);\n return values;\n}\n\n/** Normalizes the requested input representation for the TGA format reader. */\nexport function normalizeInputType(inputType)\n{\n if (!inputType) return \"\";\n const value = String(inputType).replace(/^\\./u, \"\").toLowerCase();\n return value === \"jpg\" ? \"jpeg\" : value;\n}\n\n/** Normalizes the requested output representation for the TGA format reader. */\nexport function normalizeEmit(emit, inputType, readerName)\n{\n if (emit === undefined || emit === null) return OUTPUT_RAW;\n if (emit === OUTPUT_JSON && inputType) return DEBUG_OUTPUTS[inputType] || OUTPUT_JSON;\n if ([ OUTPUT_IMAGE, OUTPUT_RGBA, OUTPUT_RAW, OUTPUT_JSON ].includes(emit)) return emit;\n if (Object.values(DEBUG_OUTPUTS).includes(emit)) return emit;\n throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(emit)}`);\n}\n\n/** Returns a byte view over the supplied binary input for the TGA format reader. */\nexport function toBytes(input)\n{\n if (input instanceof Uint8Array) return input;\n if (input instanceof ArrayBuffer) return new Uint8Array(input);\n if (ArrayBuffer.isView(input)) return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);\n throw new TypeError(\"Image input must be Uint8Array, ArrayBuffer, or DataView\");\n}\n\n/** Inspects input using normalized format options for the TGA format reader. */\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = toBytes(input);\n const detected = inspectBytes(bytes);\n const sourceFormat = expectedType || values.inputType || detected.sourceFormat;\n\n if (expectedType && detected.sourceFormat && detected.sourceFormat !== expectedType)\n {\n throw new TypeError(`CjsFormat${capitalize(expectedType)}: expected ${expectedType}, got ${detected.sourceFormat}`);\n }\n\n return {\n payloadType: sourceFormat === \"dds\" ? \"texture\" : \"image\",\n mediaTypes: sourceFormat === \"dds\" ? [ \"texture\", \"image\" ] : [ \"image\" ],\n sourceFormat,\n byteLength: bytes.byteLength,\n ...detected\n };\n}\n\n/**\n * Reports whether input is supported under normalized format options for the TGA\n * format reader.\n */\nexport function isSupportedWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n try\n {\n const metadata = inspectWithValues(input, values, expectedType);\n const canDecodeTga = metadata.sourceFormat === \"tga\" && canDecodeTgaToRgba(metadata);\n let variants;\n if (metadata.sourceFormat === \"tga\")\n {\n variants = [\n {\n kind: \"rgba\",\n payloadType: \"rgba\",\n codec: \"rgba8unorm\",\n supported: canDecodeTga,\n reason: canDecodeTga ? \"\" : \"Only supported true-color, grayscale, and indexed TGA images are decoded to RGBA.\",\n containerOnly: false,\n isDecoded: canDecodeTga,\n rgbaDecodeSupported: canDecodeTga\n },\n rawVariant(metadata, canDecodeTga)\n ];\n }\n else\n {\n variants = [\n rawVariant(metadata, false),\n { kind: \"rgba\", payloadType: \"rgba\", codec: \"rgba8unorm\", supported: false, reason: `${metadata.sourceFormat.toUpperCase()} RGBA decode is not implemented yet.`, containerOnly: false, isDecoded: false, rgbaDecodeSupported: false }\n ];\n }\n\n return {\n format: metadata.sourceFormat,\n source: values.source || \"buffer\",\n supported: metadata.sourceFormat ? (variants.some(v => v.supported && v.kind === \"rgba\") ? \"full\" : \"partial\") : \"none\",\n confidence: metadata.sourceFormat ? 1 : 0,\n preferred: variants.find(v => v.supported)?.codec || \"\",\n reason: metadata.sourceFormat ? \"Container/header recognized.\" : \"Unrecognized image format.\",\n metadata,\n variants,\n warnings: [],\n errors: []\n };\n }\n catch (error)\n {\n return {\n format: expectedType || values.inputType || \"\",\n source: values.source || \"buffer\",\n supported: \"none\",\n confidence: 0,\n preferred: \"\",\n reason: error.message,\n metadata: null,\n variants: [],\n warnings: [],\n errors: [ error.message ]\n };\n }\n}\n\n/** Reads input using normalized format options for the TGA format reader. */\nexport function readWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = toBytes(input);\n const metadata = inspectWithValues(bytes, values, expectedType);\n\n if (values.emit === OUTPUT_RAW)\n {\n return {\n payloadType: \"raw\",\n sourceFormat: metadata.sourceFormat,\n mimeType: imageMimeType(metadata.sourceFormat),\n containerOnly: true,\n isDecoded: false,\n rgbaDecodeSupported: metadata.sourceFormat === \"tga\" && canDecodeTgaToRgba(metadata),\n metadata,\n bytes\n };\n }\n\n if (values.emit === OUTPUT_JSON || values.emit === DEBUG_OUTPUTS[metadata.sourceFormat])\n {\n return metadata;\n }\n\n if ((values.emit === OUTPUT_RGBA || values.emit === OUTPUT_IMAGE) && metadata.sourceFormat === \"tga\")\n {\n return decodeTgaToRgba(bytes, metadata);\n }\n\n const error = new Error(`${metadata.sourceFormat}: emit \"${values.emit}\" is not implemented yet`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED\";\n error.sourceFormat = metadata.sourceFormat;\n error.emit = values.emit;\n throw error;\n}\n\n/** Converts a parsed payload into a JSON-safe value for the TGA format reader. */\nexport function toJsonValue(value)\n{\n if (value instanceof Uint8Array)\n {\n return { byteLength: value.byteLength };\n }\n if (Array.isArray(value)) return value.map(toJsonValue);\n if (value && typeof value === \"object\")\n {\n const output = {};\n for (const [ key, entry ] of Object.entries(value)) output[key] = toJsonValue(entry);\n return output;\n }\n return value;\n}\n\n/**\n * Inspects the supplied bytes without decoding their payload for the TGA format\n * reader.\n */\nexport function inspectBytes(bytes)\n{\n if (isPNG(bytes)) return inspectPNG(bytes);\n if (isJPEG(bytes)) return inspectJPEG(bytes);\n if (isDDS(bytes)) return inspectDDS(bytes);\n if (isTGA(bytes)) return inspectTGA(bytes);\n return { sourceFormat: \"\", width: 0, height: 0 };\n}\n\n/**\n * Reports whether the supplied bytes begin with a PNG signature for the TGA\n * format reader.\n */\nexport function isPNG(bytes)\n{\n return bytes.byteLength >= 24 &&\n bytes[0] === 0x89 && bytes[1] === 0x50 && bytes[2] === 0x4e && bytes[3] === 0x47 &&\n bytes[4] === 0x0d && bytes[5] === 0x0a && bytes[6] === 0x1a && bytes[7] === 0x0a;\n}\n\n/**\n * Reports whether the supplied bytes begin with a JPEG signature for the TGA\n * format reader.\n */\nexport function isJPEG(bytes)\n{\n return bytes.byteLength >= 4 && bytes[0] === 0xff && bytes[1] === 0xd8;\n}\n\n/**\n * Reports whether the supplied bytes begin with a DDS signature for the TGA\n * format reader.\n */\nexport function isDDS(bytes)\n{\n return bytes.byteLength >= 128 && bytes[0] === 0x44 && bytes[1] === 0x44 && bytes[2] === 0x53 && bytes[3] === 0x20;\n}\n\n/**\n * Reports whether the supplied bytes have a supported TGA header for the TGA\n * format reader.\n */\nexport function isTGA(bytes)\n{\n if (bytes.byteLength < 18) return false;\n const imageType = bytes[2], width = readU16LE(bytes, 12), height = readU16LE(bytes, 14), bpp = bytes[16];\n return width > 0 && height > 0 && [ 1, 2, 3, 9, 10, 11 ].includes(imageType) && [ 8, 15, 16, 24, 32 ].includes(bpp);\n}\n\nfunction inspectPNG(bytes)\n{\n const colorType = bytes[25], bitDepth = bytes[24];\n return {\n sourceFormat: \"png\",\n width: readU32BE(bytes, 16),\n height: readU32BE(bytes, 20),\n bitDepth,\n colorType,\n channels: pngChannels(colorType),\n pixelFormat: `png-${bitDepth}-${colorType}`,\n isCompressed: false\n };\n}\n\nfunction inspectJPEG(bytes)\n{\n let offset = 2;\n while (offset + 9 < bytes.byteLength)\n {\n if (bytes[offset] !== 0xff)\n {\n offset++;\n continue;\n }\n const marker = bytes[offset + 1], length = readU16BE(bytes, offset + 2);\n if ([ 0xc0, 0xc1, 0xc2, 0xc3 ].includes(marker))\n {\n return {\n sourceFormat: \"jpeg\",\n width: readU16BE(bytes, offset + 7),\n height: readU16BE(bytes, offset + 5),\n channels: bytes[offset + 9],\n marker,\n pixelFormat: \"jpeg-ycbcr\",\n isCompressed: true\n };\n }\n offset += Math.max(length + 2, 2);\n }\n return { sourceFormat: \"jpeg\", width: 0, height: 0, channels: 0, pixelFormat: \"jpeg\", isCompressed: true };\n}\n\nfunction inspectDDS(bytes)\n{\n const fourCc = String.fromCharCode(bytes[84], bytes[85], bytes[86], bytes[87]).replace(/\\0+$/u, \"\");\n return {\n sourceFormat: \"dds\",\n width: readU32LE(bytes, 16),\n height: readU32LE(bytes, 12),\n mipCount: Math.max(readU32LE(bytes, 28), 1),\n fourCc,\n textureFormat: fourCc || \"dds-legacy\",\n isCompressed: !!fourCc,\n hasMipMaps: readU32LE(bytes, 28) > 1\n };\n}\n\nfunction inspectTGA(bytes)\n{\n const descriptor = bytes[17];\n const colorMapEntryBytes = Math.ceil(bytes[7] / 8);\n const colorMapBytes = readU16LE(bytes, 5) * colorMapEntryBytes;\n const imageDataOffset = 18 + bytes[0] + colorMapBytes;\n return {\n sourceFormat: \"tga\",\n idLength: bytes[0],\n colorMapType: bytes[1],\n colorMapFirst: readU16LE(bytes, 3),\n colorMapLength: readU16LE(bytes, 5),\n colorMapEntryBits: bytes[7],\n colorMapBytes,\n imageDataOffset,\n imageDataBytes: Math.max(0, bytes.byteLength - imageDataOffset),\n width: readU16LE(bytes, 12),\n height: readU16LE(bytes, 14),\n channels: Math.max(bytes[16] / 8, 1),\n imageType: bytes[2],\n bitsPerPixel: bytes[16],\n descriptor,\n alphaBits: descriptor & 0x0f,\n hasAlpha: bytes[16] === 32 || bytes[16] === 16 || bytes[7] === 32 || bytes[7] === 16,\n origin: getTgaOrigin(descriptor),\n pixelFormat: `tga-${bytes[16]}`,\n isCompressed: [ 9, 10, 11 ].includes(bytes[2])\n };\n}\n\nfunction canDecodeTgaToRgba(metadata)\n{\n const indexed = [ 1, 9 ].includes(metadata.imageType);\n const direct = [ 2, 3, 10, 11 ].includes(metadata.imageType);\n return hasMinimumTgaDataForRgba(metadata) && (\n (direct && metadata.colorMapType === 0 && [ 8, 15, 16, 24, 32 ].includes(metadata.bitsPerPixel)) ||\n (indexed && metadata.colorMapType === 1 && metadata.colorMapLength > 0 &&\n [ 8, 15, 16, 24, 32 ].includes(metadata.colorMapEntryBits) && [ 8, 16 ].includes(metadata.bitsPerPixel))\n );\n}\n\nfunction hasMinimumTgaDataForRgba(metadata)\n{\n if (metadata.byteLength < metadata.imageDataOffset) return false;\n if ([ 9, 10, 11 ].includes(metadata.imageType)) return metadata.imageDataBytes > 0;\n return metadata.imageDataBytes >= metadata.width * metadata.height * Math.ceil(metadata.bitsPerPixel / 8);\n}\n\nfunction decodeTgaToRgba(bytes, metadata)\n{\n if (!canDecodeTgaToRgba(metadata))\n {\n throwUnsupported(metadata, \"Only true-color, grayscale, and indexed TGA images can be decoded to RGBA.\");\n }\n\n const bytesPerPixel = Math.ceil(metadata.bitsPerPixel / 8);\n const palette = metadata.colorMapType === 1 ? readTgaPalette(bytes, metadata) : null;\n const imageOffset = 18 + metadata.idLength + (palette ? metadata.colorMapLength * (metadata.colorMapEntryBits / 8) : 0);\n metadata.palette = palette;\n const pixelCount = metadata.width * metadata.height;\n const rgba = new Uint8Array(pixelCount * 4);\n\n let inputOffset = imageOffset;\n let pixelIndex = 0;\n\n if ([ 1, 2, 3 ].includes(metadata.imageType))\n {\n while (pixelIndex < pixelCount)\n {\n inputOffset = readTgaPixel(bytes, inputOffset, bytesPerPixel, metadata, rgba, pixelIndex++);\n }\n }\n else\n {\n while (pixelIndex < pixelCount)\n {\n const packet = bytes[inputOffset++];\n const count = (packet & 0x7f) + 1;\n if (packet & 0x80)\n {\n const pixel = readTgaPixelBytes(bytes, inputOffset, bytesPerPixel, metadata);\n inputOffset += bytesPerPixel;\n for (let i = 0; i < count && pixelIndex < pixelCount; i++) writeTgaPixel(rgba, pixelIndex++, pixel, metadata);\n }\n else\n {\n for (let i = 0; i < count && pixelIndex < pixelCount; i++)\n {\n inputOffset = readTgaPixel(bytes, inputOffset, bytesPerPixel, metadata, rgba, pixelIndex++);\n }\n }\n }\n }\n\n return {\n payloadType: OUTPUT_RGBA,\n sourceFormat: \"tga\",\n mimeType: \"image/x-tga\",\n containerOnly: false,\n isDecoded: true,\n rgbaDecodeSupported: true,\n width: metadata.width,\n height: metadata.height,\n pixelFormat: \"rgba8unorm\",\n strideBytes: metadata.width * 4,\n origin: \"top-left\",\n colorSpace: \"srgb\",\n alphaMode: metadata.hasAlpha ? \"straight\" : \"opaque\",\n metadata,\n data: rgba\n };\n}\n\nfunction rawVariant(metadata, canDecode)\n{\n return {\n kind: \"raw\",\n payloadType: \"raw\",\n codec: metadata.sourceFormat,\n mimeType: imageMimeType(metadata.sourceFormat),\n supported: true,\n containerOnly: true,\n isDecoded: false,\n rgbaDecodeSupported: metadata.sourceFormat === \"tga\" && canDecode === true\n };\n}\n\nfunction imageMimeType(sourceFormat)\n{\n return IMAGE_MIME_TYPES[sourceFormat] || \"application/octet-stream\";\n}\n\nfunction readTgaPixel(bytes, offset, bytesPerPixel, metadata, rgba, pixelIndex)\n{\n const pixel = readTgaPixelBytes(bytes, offset, bytesPerPixel, metadata);\n writeTgaPixel(rgba, pixelIndex, pixel, metadata);\n return offset + bytesPerPixel;\n}\n\nfunction readTgaPixelBytes(bytes, offset, bytesPerPixel, metadata)\n{\n if (offset + bytesPerPixel > bytes.byteLength) throwUnsupported(metadata, \"TGA pixel data is truncated.\");\n\n if ([ 1, 9 ].includes(metadata.imageType))\n {\n const index = bytesPerPixel === 2 ? readU16LE(bytes, offset) : bytes[offset];\n return metadata.palette[index - metadata.colorMapFirst] || [ 0, 0, 0, 0 ];\n }\n\n if (metadata.imageType === 3 || metadata.imageType === 11)\n {\n const value = bytes[offset];\n return [ value, value, value, bytesPerPixel > 1 ? bytes[offset + 1] : 255 ];\n }\n\n if (bytesPerPixel === 2)\n {\n const value = readU16LE(bytes, offset);\n const r = ((value >>> 10) & 0x1f) * 255 / 31;\n const g = ((value >>> 5) & 0x1f) * 255 / 31;\n const b = (value & 0x1f) * 255 / 31;\n const a = metadata.bitsPerPixel === 15 || (metadata.descriptor & 0x0f) === 0\n ? 255\n : value & 0x8000 ? 255 : 0;\n return [ r, g, b, a ];\n }\n\n return [\n bytes[offset + 2],\n bytes[offset + 1],\n bytes[offset],\n bytesPerPixel === 4 ? bytes[offset + 3] : 255\n ];\n}\n\nfunction readTgaPalette(bytes, metadata)\n{\n const entryBytes = Math.ceil(metadata.colorMapEntryBits / 8);\n const offset = 18 + metadata.idLength;\n const end = offset + metadata.colorMapLength * entryBytes;\n if (end > bytes.byteLength)\n {\n throwUnsupported(metadata, \"TGA color map is truncated.\");\n }\n\n const palette = [];\n for (let i = 0; i < metadata.colorMapLength; i++)\n {\n palette.push(readTgaColor(bytes, offset + i * entryBytes, entryBytes, metadata.colorMapEntryBits));\n }\n return palette;\n}\n\nfunction readTgaColor(bytes, offset, entryBytes, entryBits)\n{\n if (entryBytes === 2)\n {\n const value = readU16LE(bytes, offset);\n return [\n Math.round(((value >>> 10) & 0x1f) * 255 / 31),\n Math.round(((value >>> 5) & 0x1f) * 255 / 31),\n Math.round((value & 0x1f) * 255 / 31),\n entryBits === 16 && (value & 0x8000) ? 255 : entryBits === 16 ? 0 : 255\n ];\n }\n return [\n bytes[offset + 2],\n bytes[offset + 1],\n bytes[offset],\n entryBits === 32 ? bytes[offset + 3] : 255\n ];\n}\n\nfunction writeTgaPixel(rgba, pixelIndex, pixel, metadata)\n{\n const offset = getTgaOutputOffset(metadata, pixelIndex) * 4;\n rgba[offset] = pixel[0];\n rgba[offset + 1] = pixel[1];\n rgba[offset + 2] = pixel[2];\n rgba[offset + 3] = pixel[3];\n}\n\nfunction getTgaOutputOffset(metadata, pixelIndex)\n{\n const xInput = pixelIndex % metadata.width;\n const yInput = Math.floor(pixelIndex / metadata.width);\n const x = metadata.origin.endsWith(\"right\") ? metadata.width - 1 - xInput : xInput;\n const y = metadata.origin.startsWith(\"top\") ? yInput : metadata.height - 1 - yInput;\n return y * metadata.width + x;\n}\n\nfunction getTgaOrigin(descriptor)\n{\n const top = !!(descriptor & 0x20);\n const right = !!(descriptor & 0x10);\n return `${top ? \"top\" : \"bottom\"}-${right ? \"right\" : \"left\"}`;\n}\n\nfunction throwUnsupported(metadata, message)\n{\n const error = new Error(`tga: ${message}`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = metadata.sourceFormat;\n throw error;\n}\n\nfunction pngChannels(colorType)\n{\n if (colorType === 0) return 1;\n if (colorType === 2) return 3;\n if (colorType === 3) return 1;\n if (colorType === 4) return 2;\n if (colorType === 6) return 4;\n return 0;\n}\n\nfunction readU16BE(bytes, offset)\n{\n return (bytes[offset] << 8) | bytes[offset + 1];\n}\n\nfunction readU16LE(bytes, offset)\n{\n return bytes[offset] | (bytes[offset + 1] << 8);\n}\n\nfunction readU32BE(bytes, offset)\n{\n return ((bytes[offset] * 0x1000000) + ((bytes[offset + 1] << 16) | (bytes[offset + 2] << 8) | bytes[offset + 3])) >>> 0;\n}\n\nfunction readU32LE(bytes, offset)\n{\n return (bytes[offset] | (bytes[offset + 1] << 8) | (bytes[offset + 2] << 16) | (bytes[offset + 3] * 0x1000000)) >>> 0;\n}\n\nfunction capitalize(value)\n{\n return value ? value[0].toUpperCase() + value.slice(1) : \"Image\";\n}\n"],"names":["OUTPUT_IMAGE","OUTPUT_RGBA","OUTPUT_RAW","OUTPUT_JSON","DEFAULT_VALUES","Object","freeze","emit","inputType","source","DEBUG_OUTPUTS","png","jpeg","jpg","tga","dds","IMAGE_MIME_TYPES","normalizeValues","base","options","readerName","values","normalizeInputType","normalizeEmit","value","String","replace","toLowerCase","undefined","includes","TypeError","JSON","stringify","toBytes","input","Uint8Array","ArrayBuffer","isView","buffer","byteOffset","byteLength","inspectWithValues","expectedType","bytes","detected","inspectBytes","sourceFormat","capitalize","payloadType","mediaTypes","isSupportedWithValues","metadata","canDecodeTga","canDecodeTgaToRgba","variants","kind","codec","supported","reason","containerOnly","isDecoded","rgbaDecodeSupported","rawVariant","toUpperCase","format","some","v","confidence","preferred","find","warnings","errors","error","message","readWithValues","mimeType","imageMimeType","decodeTgaToRgba","Error","code","toJsonValue","Array","isArray","map","output","key","entry","entries","isPNG","inspectPNG","isJPEG","inspectJPEG","isDDS","inspectDDS","isTGA","inspectTGA","width","height","imageType","readU16LE","bpp","colorType","bitDepth","readU32BE","channels","pngChannels","pixelFormat","isCompressed","offset","marker","length","readU16BE","Math","max","fourCc","fromCharCode","readU32LE","mipCount","textureFormat","hasMipMaps","descriptor","colorMapEntryBytes","ceil","colorMapBytes","imageDataOffset","idLength","colorMapType","colorMapFirst","colorMapLength","colorMapEntryBits","imageDataBytes","bitsPerPixel","alphaBits","hasAlpha","origin","getTgaOrigin","indexed","direct","hasMinimumTgaDataForRgba","throwUnsupported","bytesPerPixel","palette","readTgaPalette","imageOffset","pixelCount","rgba","inputOffset","pixelIndex","readTgaPixel","packet","count","pixel","readTgaPixelBytes","i","writeTgaPixel","strideBytes","colorSpace","alphaMode","data","canDecode","index","r","g","b","a","entryBytes","end","push","readTgaColor","entryBits","round","getTgaOutputOffset","xInput","yInput","floor","x","endsWith","y","startsWith","top","right","slice"],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sources":["../../../../../src/formats/tga/core/helpers.js"],"sourcesContent":["export const OUTPUT_IMAGE = \"image\";\nexport const OUTPUT_TEXTURE = \"texture\";\nexport const OUTPUT_RGBA = \"rgba\";\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_JSON = \"json\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_RAW,\n inputType: \"\",\n source: \"\"\n});\n\nconst DEBUG_OUTPUTS = Object.freeze({\n png: \"pngJson\",\n jpeg: \"jpegJson\",\n jpg: \"jpegJson\",\n tga: \"tgaJson\",\n dds: \"ddsJson\"\n});\n\nconst IMAGE_MIME_TYPES = Object.freeze({\n png: \"image/png\",\n jpeg: \"image/jpeg\",\n jpg: \"image/jpeg\",\n tga: \"image/x-tga\",\n dds: \"image/vnd-ms.dds\"\n});\n\n/**\n * Normalizes reader options against their supported defaults for the TGA format\n * reader.\n */\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsImageFormat\")\n{\n const values = { ...DEFAULT_VALUES, ...(base || {}), ...(options || {}) };\n values.inputType = normalizeInputType(values.inputType);\n values.emit = normalizeEmit(values.emit, values.inputType, readerName);\n return values;\n}\n\n/** Normalizes the requested input representation for the TGA format reader. */\nexport function normalizeInputType(inputType)\n{\n if (!inputType) return \"\";\n const value = String(inputType).replace(/^\\./u, \"\").toLowerCase();\n return value === \"jpg\" ? \"jpeg\" : value;\n}\n\n/** Normalizes the requested output representation for the TGA format reader. */\nexport function normalizeEmit(emit, inputType, readerName)\n{\n if (emit === undefined || emit === null) return OUTPUT_RAW;\n if (emit === OUTPUT_JSON && inputType) return DEBUG_OUTPUTS[inputType] || OUTPUT_JSON;\n if ([ OUTPUT_IMAGE, OUTPUT_RGBA, OUTPUT_RAW, OUTPUT_JSON ].includes(emit)) return emit;\n if (Object.values(DEBUG_OUTPUTS).includes(emit)) return emit;\n throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(emit)}`);\n}\n\n/** Returns a byte view over the supplied binary input for the TGA format reader. */\nexport function toBytes(input)\n{\n if (input instanceof Uint8Array) return input;\n if (input instanceof ArrayBuffer) return new Uint8Array(input);\n if (ArrayBuffer.isView(input)) return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);\n throw new TypeError(\"Image input must be Uint8Array, ArrayBuffer, or DataView\");\n}\n\n/** Inspects input using normalized format options for the TGA format reader. */\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = toBytes(input);\n const detected = inspectBytes(bytes);\n const sourceFormat = expectedType || values.inputType || detected.sourceFormat;\n\n if (expectedType && detected.sourceFormat && detected.sourceFormat !== expectedType)\n {\n throw new TypeError(`CjsFormat${capitalize(expectedType)}: expected ${expectedType}, got ${detected.sourceFormat}`);\n }\n\n return {\n payloadType: sourceFormat === \"dds\" ? \"texture\" : \"image\",\n mediaTypes: sourceFormat === \"dds\" ? [ \"texture\", \"image\" ] : [ \"image\" ],\n sourceFormat,\n byteLength: bytes.byteLength,\n ...detected\n };\n}\n\n/**\n * Reports whether input is supported under normalized format options for the TGA\n * format reader.\n */\nexport function probeSupportWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n try\n {\n const metadata = inspectWithValues(input, values, expectedType);\n const canDecodeTga = metadata.sourceFormat === \"tga\" && canDecodeTgaToRgba(metadata);\n let variants;\n if (metadata.sourceFormat === \"tga\")\n {\n variants = [\n {\n kind: \"rgba\",\n payloadType: \"rgba\",\n codec: \"rgba8unorm\",\n supported: canDecodeTga,\n reason: canDecodeTga ? \"\" : \"Only supported true-color, grayscale, and indexed TGA images are decoded to RGBA.\",\n },\n rawVariant(metadata, canDecodeTga)\n ];\n }\n else\n {\n variants = [\n rawVariant(metadata, false),\n { kind: \"rgba\", payloadType: \"rgba\", codec: \"rgba8unorm\", supported: false, reason: `${metadata.sourceFormat.toUpperCase()} RGBA decode is not implemented yet.`}\n ];\n }\n\n return {\n format: metadata.sourceFormat,\n source: values.source || \"buffer\",\n supported: metadata.sourceFormat ? (variants.some(v => v.supported && v.kind === \"rgba\") ? \"full\" : \"partial\") : \"none\",\n confidence: metadata.sourceFormat ? 1 : 0,\n preferredOutput: variants.find(v => v.supported)?.kind || \"\",\n reason: metadata.sourceFormat ? \"Container/header recognized.\" : \"Unrecognized image format.\",\n metadata,\n variants,\n warnings: [],\n errors: []\n };\n }\n catch (error)\n {\n return {\n format: expectedType || values.inputType || \"\",\n source: values.source || \"buffer\",\n supported: \"none\",\n confidence: 0,\n preferredOutput: \"\",\n reason: error.message,\n metadata: null,\n variants: [],\n warnings: [],\n errors: [ error.message ]\n };\n }\n}\n\n/** Reads input using normalized format options for the TGA format reader. */\nexport function readWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = toBytes(input);\n const metadata = inspectWithValues(bytes, values, expectedType);\n\n if (values.emit === OUTPUT_RAW)\n {\n return {\n payloadType: \"raw\",\n sourceFormat: metadata.sourceFormat,\n mimeType: imageMimeType(metadata.sourceFormat),\n metadata,\n bytes\n };\n }\n\n if (values.emit === OUTPUT_JSON || values.emit === DEBUG_OUTPUTS[metadata.sourceFormat])\n {\n return metadata;\n }\n\n if ((values.emit === OUTPUT_RGBA || values.emit === OUTPUT_IMAGE) && metadata.sourceFormat === \"tga\")\n {\n return decodeTgaToRgba(bytes, metadata);\n }\n\n const error = new Error(`${metadata.sourceFormat}: emit \"${values.emit}\" is not implemented yet`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED\";\n error.sourceFormat = metadata.sourceFormat;\n error.emit = values.emit;\n throw error;\n}\n\n/** Converts a parsed payload into a JSON-safe value for the TGA format reader. */\nexport function toJsonValue(value)\n{\n if (value instanceof Uint8Array)\n {\n return { byteLength: value.byteLength };\n }\n if (Array.isArray(value)) return value.map(toJsonValue);\n if (value && typeof value === \"object\")\n {\n const output = {};\n for (const [ key, entry ] of Object.entries(value)) output[key] = toJsonValue(entry);\n return output;\n }\n return value;\n}\n\n/**\n * Inspects the supplied bytes without decoding their payload for the TGA format\n * reader.\n */\nexport function inspectBytes(bytes)\n{\n if (isPNG(bytes)) return inspectPNG(bytes);\n if (isJPEG(bytes)) return inspectJPEG(bytes);\n if (isDDS(bytes)) return inspectDDS(bytes);\n if (isTGA(bytes)) return inspectTGA(bytes);\n return { sourceFormat: \"\", width: 0, height: 0 };\n}\n\n/**\n * Reports whether the supplied bytes begin with a PNG signature for the TGA\n * format reader.\n */\nexport function isPNG(bytes)\n{\n return bytes.byteLength >= 24 &&\n bytes[0] === 0x89 && bytes[1] === 0x50 && bytes[2] === 0x4e && bytes[3] === 0x47 &&\n bytes[4] === 0x0d && bytes[5] === 0x0a && bytes[6] === 0x1a && bytes[7] === 0x0a;\n}\n\n/**\n * Reports whether the supplied bytes begin with a JPEG signature for the TGA\n * format reader.\n */\nexport function isJPEG(bytes)\n{\n return bytes.byteLength >= 4 && bytes[0] === 0xff && bytes[1] === 0xd8;\n}\n\n/**\n * Reports whether the supplied bytes begin with a DDS signature for the TGA\n * format reader.\n */\nexport function isDDS(bytes)\n{\n return bytes.byteLength >= 128 && bytes[0] === 0x44 && bytes[1] === 0x44 && bytes[2] === 0x53 && bytes[3] === 0x20;\n}\n\n/**\n * Reports whether the supplied bytes have a supported TGA header for the TGA\n * format reader.\n */\nexport function isTGA(bytes)\n{\n if (bytes.byteLength < 18) return false;\n const imageType = bytes[2], width = readU16LE(bytes, 12), height = readU16LE(bytes, 14), bpp = bytes[16];\n return width > 0 && height > 0 && [ 1, 2, 3, 9, 10, 11 ].includes(imageType) && [ 8, 15, 16, 24, 32 ].includes(bpp);\n}\n\nfunction inspectPNG(bytes)\n{\n const colorType = bytes[25], bitDepth = bytes[24];\n return {\n sourceFormat: \"png\",\n width: readU32BE(bytes, 16),\n height: readU32BE(bytes, 20),\n bitDepth,\n colorType,\n channels: pngChannels(colorType),\n pixelFormat: `png-${bitDepth}-${colorType}`,\n isCompressed: false\n };\n}\n\nfunction inspectJPEG(bytes)\n{\n let offset = 2;\n while (offset + 9 < bytes.byteLength)\n {\n if (bytes[offset] !== 0xff)\n {\n offset++;\n continue;\n }\n const marker = bytes[offset + 1], length = readU16BE(bytes, offset + 2);\n if ([ 0xc0, 0xc1, 0xc2, 0xc3 ].includes(marker))\n {\n return {\n sourceFormat: \"jpeg\",\n width: readU16BE(bytes, offset + 7),\n height: readU16BE(bytes, offset + 5),\n channels: bytes[offset + 9],\n marker,\n pixelFormat: \"jpeg-ycbcr\",\n isCompressed: true\n };\n }\n offset += Math.max(length + 2, 2);\n }\n return { sourceFormat: \"jpeg\", width: 0, height: 0, channels: 0, pixelFormat: \"jpeg\", isCompressed: true };\n}\n\nfunction inspectDDS(bytes)\n{\n const fourCc = String.fromCharCode(bytes[84], bytes[85], bytes[86], bytes[87]).replace(/\\0+$/u, \"\");\n return {\n sourceFormat: \"dds\",\n width: readU32LE(bytes, 16),\n height: readU32LE(bytes, 12),\n mipCount: Math.max(readU32LE(bytes, 28), 1),\n fourCc,\n textureFormat: fourCc || \"dds-legacy\",\n isCompressed: !!fourCc,\n hasMipMaps: readU32LE(bytes, 28) > 1\n };\n}\n\nfunction inspectTGA(bytes)\n{\n const descriptor = bytes[17];\n const colorMapEntryBytes = Math.ceil(bytes[7] / 8);\n const colorMapBytes = readU16LE(bytes, 5) * colorMapEntryBytes;\n const imageDataOffset = 18 + bytes[0] + colorMapBytes;\n return {\n sourceFormat: \"tga\",\n idLength: bytes[0],\n colorMapType: bytes[1],\n colorMapFirst: readU16LE(bytes, 3),\n colorMapLength: readU16LE(bytes, 5),\n colorMapEntryBits: bytes[7],\n colorMapBytes,\n imageDataOffset,\n imageDataBytes: Math.max(0, bytes.byteLength - imageDataOffset),\n width: readU16LE(bytes, 12),\n height: readU16LE(bytes, 14),\n channels: Math.max(bytes[16] / 8, 1),\n imageType: bytes[2],\n bitsPerPixel: bytes[16],\n descriptor,\n alphaBits: descriptor & 0x0f,\n hasAlpha: bytes[16] === 32 || bytes[16] === 16 || bytes[7] === 32 || bytes[7] === 16,\n origin: getTgaOrigin(descriptor),\n pixelFormat: `tga-${bytes[16]}`,\n isCompressed: [ 9, 10, 11 ].includes(bytes[2])\n };\n}\n\nfunction canDecodeTgaToRgba(metadata)\n{\n const indexed = [ 1, 9 ].includes(metadata.imageType);\n const direct = [ 2, 3, 10, 11 ].includes(metadata.imageType);\n return hasMinimumTgaDataForRgba(metadata) && (\n (direct && metadata.colorMapType === 0 && [ 8, 15, 16, 24, 32 ].includes(metadata.bitsPerPixel)) ||\n (indexed && metadata.colorMapType === 1 && metadata.colorMapLength > 0 &&\n [ 8, 15, 16, 24, 32 ].includes(metadata.colorMapEntryBits) && [ 8, 16 ].includes(metadata.bitsPerPixel))\n );\n}\n\nfunction hasMinimumTgaDataForRgba(metadata)\n{\n if (metadata.byteLength < metadata.imageDataOffset) return false;\n if ([ 9, 10, 11 ].includes(metadata.imageType)) return metadata.imageDataBytes > 0;\n return metadata.imageDataBytes >= metadata.width * metadata.height * Math.ceil(metadata.bitsPerPixel / 8);\n}\n\nfunction decodeTgaToRgba(bytes, metadata)\n{\n if (!canDecodeTgaToRgba(metadata))\n {\n throwUnsupported(metadata, \"Only true-color, grayscale, and indexed TGA images can be decoded to RGBA.\");\n }\n\n const bytesPerPixel = Math.ceil(metadata.bitsPerPixel / 8);\n const palette = metadata.colorMapType === 1 ? readTgaPalette(bytes, metadata) : null;\n const imageOffset = 18 + metadata.idLength + (palette ? metadata.colorMapLength * (metadata.colorMapEntryBits / 8) : 0);\n metadata.palette = palette;\n const pixelCount = metadata.width * metadata.height;\n const rgba = new Uint8Array(pixelCount * 4);\n\n let inputOffset = imageOffset;\n let pixelIndex = 0;\n\n if ([ 1, 2, 3 ].includes(metadata.imageType))\n {\n while (pixelIndex < pixelCount)\n {\n inputOffset = readTgaPixel(bytes, inputOffset, bytesPerPixel, metadata, rgba, pixelIndex++);\n }\n }\n else\n {\n while (pixelIndex < pixelCount)\n {\n const packet = bytes[inputOffset++];\n const count = (packet & 0x7f) + 1;\n if (packet & 0x80)\n {\n const pixel = readTgaPixelBytes(bytes, inputOffset, bytesPerPixel, metadata);\n inputOffset += bytesPerPixel;\n for (let i = 0; i < count && pixelIndex < pixelCount; i++) writeTgaPixel(rgba, pixelIndex++, pixel, metadata);\n }\n else\n {\n for (let i = 0; i < count && pixelIndex < pixelCount; i++)\n {\n inputOffset = readTgaPixel(bytes, inputOffset, bytesPerPixel, metadata, rgba, pixelIndex++);\n }\n }\n }\n }\n\n return {\n payloadType: OUTPUT_RGBA,\n sourceFormat: \"tga\",\n mimeType: \"image/x-tga\",\n width: metadata.width,\n height: metadata.height,\n pixelFormat: \"rgba8unorm\",\n strideBytes: metadata.width * 4,\n origin: \"top-left\",\n colorSpace: \"srgb\",\n alphaMode: metadata.hasAlpha ? \"straight\" : \"opaque\",\n metadata,\n data: rgba\n };\n}\n\nfunction rawVariant(metadata, canDecode)\n{\n return {\n kind: \"raw\",\n payloadType: \"raw\",\n codec: metadata.sourceFormat,\n mimeType: imageMimeType(metadata.sourceFormat),\n supported: true,\n };\n}\n\nfunction imageMimeType(sourceFormat)\n{\n return IMAGE_MIME_TYPES[sourceFormat] || \"application/octet-stream\";\n}\n\nfunction readTgaPixel(bytes, offset, bytesPerPixel, metadata, rgba, pixelIndex)\n{\n const pixel = readTgaPixelBytes(bytes, offset, bytesPerPixel, metadata);\n writeTgaPixel(rgba, pixelIndex, pixel, metadata);\n return offset + bytesPerPixel;\n}\n\nfunction readTgaPixelBytes(bytes, offset, bytesPerPixel, metadata)\n{\n if (offset + bytesPerPixel > bytes.byteLength) throwUnsupported(metadata, \"TGA pixel data is truncated.\");\n\n if ([ 1, 9 ].includes(metadata.imageType))\n {\n const index = bytesPerPixel === 2 ? readU16LE(bytes, offset) : bytes[offset];\n return metadata.palette[index - metadata.colorMapFirst] || [ 0, 0, 0, 0 ];\n }\n\n if (metadata.imageType === 3 || metadata.imageType === 11)\n {\n const value = bytes[offset];\n return [ value, value, value, bytesPerPixel > 1 ? bytes[offset + 1] : 255 ];\n }\n\n if (bytesPerPixel === 2)\n {\n const value = readU16LE(bytes, offset);\n const r = ((value >>> 10) & 0x1f) * 255 / 31;\n const g = ((value >>> 5) & 0x1f) * 255 / 31;\n const b = (value & 0x1f) * 255 / 31;\n const a = metadata.bitsPerPixel === 15 || (metadata.descriptor & 0x0f) === 0\n ? 255\n : value & 0x8000 ? 255 : 0;\n return [ r, g, b, a ];\n }\n\n return [\n bytes[offset + 2],\n bytes[offset + 1],\n bytes[offset],\n bytesPerPixel === 4 ? bytes[offset + 3] : 255\n ];\n}\n\nfunction readTgaPalette(bytes, metadata)\n{\n const entryBytes = Math.ceil(metadata.colorMapEntryBits / 8);\n const offset = 18 + metadata.idLength;\n const end = offset + metadata.colorMapLength * entryBytes;\n if (end > bytes.byteLength)\n {\n throwUnsupported(metadata, \"TGA color map is truncated.\");\n }\n\n const palette = [];\n for (let i = 0; i < metadata.colorMapLength; i++)\n {\n palette.push(readTgaColor(bytes, offset + i * entryBytes, entryBytes, metadata.colorMapEntryBits));\n }\n return palette;\n}\n\nfunction readTgaColor(bytes, offset, entryBytes, entryBits)\n{\n if (entryBytes === 2)\n {\n const value = readU16LE(bytes, offset);\n return [\n Math.round(((value >>> 10) & 0x1f) * 255 / 31),\n Math.round(((value >>> 5) & 0x1f) * 255 / 31),\n Math.round((value & 0x1f) * 255 / 31),\n entryBits === 16 && (value & 0x8000) ? 255 : entryBits === 16 ? 0 : 255\n ];\n }\n return [\n bytes[offset + 2],\n bytes[offset + 1],\n bytes[offset],\n entryBits === 32 ? bytes[offset + 3] : 255\n ];\n}\n\nfunction writeTgaPixel(rgba, pixelIndex, pixel, metadata)\n{\n const offset = getTgaOutputOffset(metadata, pixelIndex) * 4;\n rgba[offset] = pixel[0];\n rgba[offset + 1] = pixel[1];\n rgba[offset + 2] = pixel[2];\n rgba[offset + 3] = pixel[3];\n}\n\nfunction getTgaOutputOffset(metadata, pixelIndex)\n{\n const xInput = pixelIndex % metadata.width;\n const yInput = Math.floor(pixelIndex / metadata.width);\n const x = metadata.origin.endsWith(\"right\") ? metadata.width - 1 - xInput : xInput;\n const y = metadata.origin.startsWith(\"top\") ? yInput : metadata.height - 1 - yInput;\n return y * metadata.width + x;\n}\n\nfunction getTgaOrigin(descriptor)\n{\n const top = !!(descriptor & 0x20);\n const right = !!(descriptor & 0x10);\n return `${top ? \"top\" : \"bottom\"}-${right ? \"right\" : \"left\"}`;\n}\n\nfunction throwUnsupported(metadata, message)\n{\n const error = new Error(`tga: ${message}`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = metadata.sourceFormat;\n throw error;\n}\n\nfunction pngChannels(colorType)\n{\n if (colorType === 0) return 1;\n if (colorType === 2) return 3;\n if (colorType === 3) return 1;\n if (colorType === 4) return 2;\n if (colorType === 6) return 4;\n return 0;\n}\n\nfunction readU16BE(bytes, offset)\n{\n return (bytes[offset] << 8) | bytes[offset + 1];\n}\n\nfunction readU16LE(bytes, offset)\n{\n return bytes[offset] | (bytes[offset + 1] << 8);\n}\n\nfunction readU32BE(bytes, offset)\n{\n return ((bytes[offset] * 0x1000000) + ((bytes[offset + 1] << 16) | (bytes[offset + 2] << 8) | bytes[offset + 3])) >>> 0;\n}\n\nfunction readU32LE(bytes, offset)\n{\n return (bytes[offset] | (bytes[offset + 1] << 8) | (bytes[offset + 2] << 16) | (bytes[offset + 3] * 0x1000000)) >>> 0;\n}\n\nfunction capitalize(value)\n{\n return value ? value[0].toUpperCase() + value.slice(1) : \"Image\";\n}\n"],"names":["OUTPUT_IMAGE","OUTPUT_RGBA","OUTPUT_RAW","OUTPUT_JSON","DEFAULT_VALUES","Object","freeze","emit","inputType","source","DEBUG_OUTPUTS","png","jpeg","jpg","tga","dds","IMAGE_MIME_TYPES","normalizeValues","base","options","readerName","values","normalizeInputType","normalizeEmit","value","String","replace","toLowerCase","undefined","includes","TypeError","JSON","stringify","toBytes","input","Uint8Array","ArrayBuffer","isView","buffer","byteOffset","byteLength","inspectWithValues","expectedType","bytes","detected","inspectBytes","sourceFormat","capitalize","payloadType","mediaTypes","probeSupportWithValues","metadata","canDecodeTga","canDecodeTgaToRgba","variants","kind","codec","supported","reason","rawVariant","toUpperCase","format","some","v","confidence","preferredOutput","find","warnings","errors","error","message","readWithValues","mimeType","imageMimeType","decodeTgaToRgba","Error","code","toJsonValue","Array","isArray","map","output","key","entry","entries","isPNG","inspectPNG","isJPEG","inspectJPEG","isDDS","inspectDDS","isTGA","inspectTGA","width","height","imageType","readU16LE","bpp","colorType","bitDepth","readU32BE","channels","pngChannels","pixelFormat","isCompressed","offset","marker","length","readU16BE","Math","max","fourCc","fromCharCode","readU32LE","mipCount","textureFormat","hasMipMaps","descriptor","colorMapEntryBytes","ceil","colorMapBytes","imageDataOffset","idLength","colorMapType","colorMapFirst","colorMapLength","colorMapEntryBits","imageDataBytes","bitsPerPixel","alphaBits","hasAlpha","origin","getTgaOrigin","indexed","direct","hasMinimumTgaDataForRgba","throwUnsupported","bytesPerPixel","palette","readTgaPalette","imageOffset","pixelCount","rgba","inputOffset","pixelIndex","readTgaPixel","packet","count","pixel","readTgaPixelBytes","i","writeTgaPixel","strideBytes","colorSpace","alphaMode","data","canDecode","index","r","g","b","a","entryBytes","end","push","readTgaColor","entryBits","round","getTgaOutputOffset","xInput","yInput","floor","x","endsWith","y","startsWith","top","right","slice"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues, isSupportedWithValues, toJsonValue, isWAV, toBytes, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_PCM, OUTPUT_AUDIO } from './core/helpers.js';
1
+ import { CjsFormat } from '../../format/CjsFormat.js';
2
+ import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues, toJsonValue, probeSupportWithValues, isWAV, toBytes, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_PCM, OUTPUT_AUDIO } from './core/helpers.js';
2
3
 
3
4
  const FORMAT_NAME = "CjsWavFormat";
4
5
 
@@ -7,7 +8,7 @@ const FORMAT_NAME = "CjsWavFormat";
7
8
  * supported WAV bytes into PCM or audio payloads, alongside raw and debug
8
9
  * JSON output.
9
10
  */
10
- class CjsWavFormat {
11
+ class CjsWavFormat extends CjsFormat {
11
12
  #values = DEFAULT_VALUES;
12
13
 
13
14
  /**
@@ -16,6 +17,7 @@ class CjsWavFormat {
16
17
  * @param {object} [options] Default read/inspect options.
17
18
  */
18
19
  constructor(options = {}) {
20
+ super();
19
21
  this.SetValues(options);
20
22
  }
21
23
 
@@ -79,17 +81,6 @@ class CjsWavFormat {
79
81
  return inspectWithValues(input, this.GetValues(options), "wav");
80
82
  }
81
83
 
82
- /**
83
- * Report whether WAV input and requested output variants are supported.
84
- *
85
- * @param {Uint8Array|ArrayBuffer|DataView} input WAV bytes.
86
- * @param {object} [options] Per-call values.
87
- * @returns {object} Support/probe report.
88
- */
89
- IsSupported(input, options = {}) {
90
- return isSupportedWithValues(input, this.GetValues(options), "wav");
91
- }
92
-
93
84
  /**
94
85
  * Convert format output into JSON-compatible debug data.
95
86
  *
@@ -146,8 +137,8 @@ class CjsWavFormat {
146
137
  * @param {object} [options] Probe options.
147
138
  * @returns {object} Support/probe report.
148
139
  */
149
- static isSupported(input, options = {}) {
150
- return isSupportedWithValues(input, normalizeValues(DEFAULT_VALUES, {
140
+ static probeSupport(input, options = {}) {
141
+ return probeSupportWithValues(input, normalizeValues(DEFAULT_VALUES, {
151
142
  inputType: "wav",
152
143
  ...options
153
144
  }, FORMAT_NAME), "wav");
@@ -187,11 +178,27 @@ class CjsWavFormat {
187
178
  JSON: OUTPUT_JSON
188
179
  });
189
180
  static OUTPUT_WAV_JSON = "wavJson";
190
- static type = Object.freeze(["audio"]);
181
+ static id = "wav";
191
182
  static mediaTypes = Object.freeze(["audio"]);
192
- static inputTypes = Object.freeze(["wav"]);
193
- static outputTypes = Object.freeze([OUTPUT_AUDIO, OUTPUT_PCM]);
194
- static debugOutputTypes = Object.freeze(["wavJson", OUTPUT_RAW]);
183
+ static outputs = CjsFormat.defineOutputs({
184
+ audio: {
185
+ decoded: true,
186
+ probes: ["audio", "pcm"]
187
+ },
188
+ pcm: {
189
+ decoded: true
190
+ },
191
+ wavJson: {
192
+ role: "debug",
193
+ probes: ["wavJson", "raw"]
194
+ },
195
+ raw: {
196
+ role: "debug",
197
+ default: true,
198
+ passthrough: true
199
+ }
200
+ });
201
+ static extensions = Object.freeze([".wav"]);
195
202
  }
196
203
 
197
204
  export { CjsWavFormat };
@@ -1 +1 @@
1
- {"version":3,"file":"CjsWavFormat.js","sources":["../../../../src/formats/wav/CjsWavFormat.js"],"sourcesContent":["import {\n DEFAULT_VALUES,\n OUTPUT_AUDIO,\n OUTPUT_JSON,\n OUTPUT_PCM,\n OUTPUT_RAW,\n inspectWithValues,\n isSupportedWithValues,\n isWAV,\n normalizeValues,\n readWithValues,\n toBytes,\n toJsonValue\n} from \"./core/helpers.js\";\n\nconst FORMAT_NAME = \"CjsWavFormat\";\n\n/**\n * WAV audio format profile that inspects RIFF chunk metadata and reads\n * supported WAV bytes into PCM or audio payloads, alongside raw and debug\n * JSON output.\n */\nexport class CjsWavFormat\n{\n #values = DEFAULT_VALUES;\n\n /**\n * Create a reusable WAV format profile.\n *\n * @param {object} [options] Default read/inspect options.\n */\n constructor(options = {})\n {\n this.SetValues(options);\n }\n\n /**\n * Merge options into this profile.\n *\n * @param {object} [options] Values to merge.\n * @returns {CjsWavFormat} This format profile.\n */\n SetValues(options = {})\n {\n this.#values = normalizeValues(this.#values, { inputType: \"wav\", ...options }, FORMAT_NAME);\n return this;\n }\n\n /**\n * Get normalized profile values with optional per-call overrides.\n *\n * @param {object} [options] Per-call values.\n * @returns {object} Normalized read values.\n */\n GetValues(options = {})\n {\n return normalizeValues(this.#values, { inputType: \"wav\", ...options }, FORMAT_NAME);\n }\n\n /**\n * Read WAV bytes with this profile.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WAV bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} GPU-free raw/debug/PCM payload for the selected emit target.\n */\n Read(input, options = {})\n {\n return readWithValues(input, this.GetValues(options), \"wav\");\n }\n\n /**\n * Read WAV bytes asynchronously with this profile.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WAV bytes.\n * @param {object} [options] Per-call values.\n * @returns {Promise<object>} GPU-free raw/debug/PCM payload for the selected emit target.\n */\n async ReadAsync(input, options = {})\n {\n return this.Read(input, options);\n }\n\n /**\n * Inspect WAV bytes without decoding sample data.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WAV bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} RIFF/WAVE metadata.\n */\n Inspect(input, options = {})\n {\n return inspectWithValues(input, this.GetValues(options), \"wav\");\n }\n\n /**\n * Report whether WAV input and requested output variants are supported.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WAV bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} Support/probe report.\n */\n IsSupported(input, options = {})\n {\n return isSupportedWithValues(input, this.GetValues(options), \"wav\");\n }\n\n /**\n * Convert format output into JSON-compatible debug data.\n *\n * @param {any} value Format output.\n * @returns {any} JSON-compatible value.\n */\n ToJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * One-shot WAV read.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WAV bytes.\n * @param {object} [options] Read options.\n * @returns {object} GPU-free raw/debug/PCM payload for the selected emit target.\n */\n static read(input, options = {})\n {\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"wav\", ...options }, FORMAT_NAME), \"wav\");\n }\n\n /**\n * One-shot asynchronous WAV read.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WAV bytes.\n * @param {object} [options] Read options.\n * @returns {Promise<object>} GPU-free raw/debug/PCM payload for the selected emit target.\n */\n static async readAsync(input, options = {})\n {\n return CjsWavFormat.read(input, options);\n }\n\n /**\n * One-shot WAV inspection.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WAV bytes.\n * @param {object} [options] Inspect options.\n * @returns {object} RIFF/WAVE metadata.\n */\n static inspect(input, options = {})\n {\n return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"wav\", ...options }, FORMAT_NAME), \"wav\");\n }\n\n /**\n * One-shot WAV support probe.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WAV bytes.\n * @param {object} [options] Probe options.\n * @returns {object} Support/probe report.\n */\n static isSupported(input, options = {})\n {\n return isSupportedWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"wav\", ...options }, FORMAT_NAME), \"wav\");\n }\n\n /**\n * Convert format output into JSON-compatible debug data.\n *\n * @param {any} value Format output.\n * @returns {any} JSON-compatible value.\n */\n static toJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * Test whether bytes look like a WAV file.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Candidate WAV bytes.\n * @returns {boolean} True when RIFF/WAVE signatures are present.\n */\n static isWAV(input)\n {\n try\n {\n return isWAV(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 AUDIO: OUTPUT_AUDIO,\n PCM: OUTPUT_PCM,\n RAW: OUTPUT_RAW,\n JSON: OUTPUT_JSON\n });\n static OUTPUT_WAV_JSON = \"wavJson\";\n static type = Object.freeze([ \"audio\" ]);\n static mediaTypes = Object.freeze([ \"audio\" ]);\n static inputTypes = Object.freeze([ \"wav\" ]);\n static outputTypes = Object.freeze([ OUTPUT_AUDIO, OUTPUT_PCM ]);\n static debugOutputTypes = Object.freeze([ \"wavJson\", OUTPUT_RAW ]);\n}\n\nexport default CjsWavFormat;\n"],"names":["FORMAT_NAME","CjsWavFormat","DEFAULT_VALUES","constructor","options","SetValues","normalizeValues","inputType","GetValues","Read","input","readWithValues","ReadAsync","Inspect","inspectWithValues","IsSupported","isSupportedWithValues","ToJSON","value","toJsonValue","read","readAsync","inspect","isSupported","toJSON","isWAV","toBytes","Output","Object","freeze","AUDIO","OUTPUT_AUDIO","PCM","OUTPUT_PCM","RAW","OUTPUT_RAW","JSON","OUTPUT_JSON","OUTPUT_WAV_JSON","type","mediaTypes","inputTypes","outputTypes","debugOutputTypes"],"mappings":"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"}
1
+ {"version":3,"file":"CjsWavFormat.js","sources":["../../../../src/formats/wav/CjsWavFormat.js"],"sourcesContent":["import { CjsFormat } from \"../../format/CjsFormat.js\";\nimport {\n DEFAULT_VALUES,\n OUTPUT_AUDIO,\n OUTPUT_JSON,\n OUTPUT_PCM,\n OUTPUT_RAW,\n inspectWithValues,\n probeSupportWithValues,\n isWAV,\n normalizeValues,\n readWithValues,\n toBytes,\n toJsonValue\n} from \"./core/helpers.js\";\n\nconst FORMAT_NAME = \"CjsWavFormat\";\n\n/**\n * WAV audio format profile that inspects RIFF chunk metadata and reads\n * supported WAV bytes into PCM or audio payloads, alongside raw and debug\n * JSON output.\n */\nexport class CjsWavFormat extends CjsFormat\n{\n #values = DEFAULT_VALUES;\n\n /**\n * Create a reusable WAV format profile.\n *\n * @param {object} [options] Default read/inspect options.\n */\n constructor(options = {})\n {\n super();\n this.SetValues(options);\n }\n\n /**\n * Merge options into this profile.\n *\n * @param {object} [options] Values to merge.\n * @returns {CjsWavFormat} This format profile.\n */\n SetValues(options = {})\n {\n this.#values = normalizeValues(this.#values, { inputType: \"wav\", ...options }, FORMAT_NAME);\n return this;\n }\n\n /**\n * Get normalized profile values with optional per-call overrides.\n *\n * @param {object} [options] Per-call values.\n * @returns {object} Normalized read values.\n */\n GetValues(options = {})\n {\n return normalizeValues(this.#values, { inputType: \"wav\", ...options }, FORMAT_NAME);\n }\n\n /**\n * Read WAV bytes with this profile.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WAV bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} GPU-free raw/debug/PCM payload for the selected emit target.\n */\n Read(input, options = {})\n {\n return readWithValues(input, this.GetValues(options), \"wav\");\n }\n\n /**\n * Read WAV bytes asynchronously with this profile.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WAV bytes.\n * @param {object} [options] Per-call values.\n * @returns {Promise<object>} GPU-free raw/debug/PCM payload for the selected emit target.\n */\n async ReadAsync(input, options = {})\n {\n return this.Read(input, options);\n }\n\n /**\n * Inspect WAV bytes without decoding sample data.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WAV bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} RIFF/WAVE metadata.\n */\n Inspect(input, options = {})\n {\n return inspectWithValues(input, this.GetValues(options), \"wav\");\n }\n\n /**\n * Convert format output into JSON-compatible debug data.\n *\n * @param {any} value Format output.\n * @returns {any} JSON-compatible value.\n */\n ToJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * One-shot WAV read.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WAV bytes.\n * @param {object} [options] Read options.\n * @returns {object} GPU-free raw/debug/PCM payload for the selected emit target.\n */\n static read(input, options = {})\n {\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"wav\", ...options }, FORMAT_NAME), \"wav\");\n }\n\n /**\n * One-shot asynchronous WAV read.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WAV bytes.\n * @param {object} [options] Read options.\n * @returns {Promise<object>} GPU-free raw/debug/PCM payload for the selected emit target.\n */\n static async readAsync(input, options = {})\n {\n return CjsWavFormat.read(input, options);\n }\n\n /**\n * One-shot WAV inspection.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WAV bytes.\n * @param {object} [options] Inspect options.\n * @returns {object} RIFF/WAVE metadata.\n */\n static inspect(input, options = {})\n {\n return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"wav\", ...options }, FORMAT_NAME), \"wav\");\n }\n\n /**\n * One-shot WAV support probe.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WAV bytes.\n * @param {object} [options] Probe options.\n * @returns {object} Support/probe report.\n */\n static probeSupport(input, options = {})\n {\n return probeSupportWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"wav\", ...options }, FORMAT_NAME), \"wav\");\n }\n\n /**\n * Convert format output into JSON-compatible debug data.\n *\n * @param {any} value Format output.\n * @returns {any} JSON-compatible value.\n */\n static toJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * Test whether bytes look like a WAV file.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Candidate WAV bytes.\n * @returns {boolean} True when RIFF/WAVE signatures are present.\n */\n static isWAV(input)\n {\n try\n {\n return isWAV(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 AUDIO: OUTPUT_AUDIO,\n PCM: OUTPUT_PCM,\n RAW: OUTPUT_RAW,\n JSON: OUTPUT_JSON\n });\n static OUTPUT_WAV_JSON = \"wavJson\";\n static id = \"wav\";\n static mediaTypes = Object.freeze([ \"audio\" ]);\n static outputs = CjsFormat.defineOutputs({\n audio: { decoded: true, probes: [ \"audio\", \"pcm\" ] },\n pcm: { decoded: true },\n wavJson: { role: \"debug\", probes: [ \"wavJson\", \"raw\" ] },\n raw: { role: \"debug\", default: true, passthrough: true }\n });\n static extensions = Object.freeze([ \".wav\" ]);\n}\n\nexport default CjsWavFormat;\n"],"names":["FORMAT_NAME","CjsWavFormat","CjsFormat","DEFAULT_VALUES","constructor","options","SetValues","normalizeValues","inputType","GetValues","Read","input","readWithValues","ReadAsync","Inspect","inspectWithValues","ToJSON","value","toJsonValue","read","readAsync","inspect","probeSupport","probeSupportWithValues","toJSON","isWAV","toBytes","Output","Object","freeze","AUDIO","OUTPUT_AUDIO","PCM","OUTPUT_PCM","RAW","OUTPUT_RAW","JSON","OUTPUT_JSON","OUTPUT_WAV_JSON","id","mediaTypes","outputs","defineOutputs","audio","decoded","probes","pcm","wavJson","role","raw","default","passthrough","extensions"],"mappings":"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"}
@@ -69,7 +69,7 @@ function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = "") {
69
69
  * Reports whether input is supported under normalized format options for the WAV
70
70
  * format reader.
71
71
  */
72
- function isSupportedWithValues(input, values = DEFAULT_VALUES, expectedType = "") {
72
+ function probeSupportWithValues(input, values = DEFAULT_VALUES, expectedType = "") {
73
73
  try {
74
74
  const metadata = inspectWithValues(input, values, expectedType);
75
75
  const canEmitPcm = metadata.sourceFormat === "wav" && canEmitWavPcm(metadata);
@@ -79,7 +79,7 @@ function isSupportedWithValues(input, values = DEFAULT_VALUES, expectedType = ""
79
79
  source: values.source || "buffer",
80
80
  supported: metadata.sourceFormat ? canEmitPcm ? "full" : "partial" : "none",
81
81
  confidence: metadata.sourceFormat ? 1 : 0,
82
- preferred: canEmitPcm ? "pcm" : "",
82
+ preferredOutput: canEmitPcm ? "pcm" : "raw",
83
83
  reason: metadata.sourceFormat ? "Container/header recognized." : "Unrecognized audio format.",
84
84
  metadata,
85
85
  variants: [{
@@ -87,10 +87,7 @@ function isSupportedWithValues(input, values = DEFAULT_VALUES, expectedType = ""
87
87
  payloadType: "raw",
88
88
  codec: metadata.audioFormat || metadata.sourceFormat,
89
89
  mimeType,
90
- supported: true,
91
- containerOnly: true,
92
- isDecoded: false,
93
- pcmDecodeSupported: canEmitPcm
90
+ supported: true
94
91
  }, {
95
92
  kind: "pcm",
96
93
  codec: metadata.sampleFormat || "pcm",
@@ -107,7 +104,7 @@ function isSupportedWithValues(input, values = DEFAULT_VALUES, expectedType = ""
107
104
  source: values.source || "buffer",
108
105
  supported: "none",
109
106
  confidence: 0,
110
- preferred: "",
107
+ preferredOutput: "",
111
108
  reason: error.message,
112
109
  metadata: null,
113
110
  variants: [],
@@ -126,9 +123,6 @@ function readWithValues(input, values = DEFAULT_VALUES, expectedType = "") {
126
123
  payloadType: "raw",
127
124
  sourceFormat: metadata.sourceFormat,
128
125
  mimeType: getAudioMimeType(metadata),
129
- containerOnly: true,
130
- isDecoded: false,
131
- pcmDecodeSupported: metadata.sourceFormat === "wav" && canEmitWavPcm(metadata),
132
126
  metadata,
133
127
  bytes
134
128
  };
@@ -260,7 +254,7 @@ function readU32LE(bytes, offset) {
260
254
  return (bytes[offset] | bytes[offset + 1] << 8 | bytes[offset + 2] << 16 | bytes[offset + 3] * 0x1000000) >>> 0;
261
255
  }
262
256
  function canEmitWavPcm(metadata) {
263
- return metadata.dataOffset > 0 && [1, 3].includes(metadata.formatTag) && metadata.channels > 0 && metadata.sampleRate > 0 && isSupportedWavSampleWidth(metadata);
257
+ return metadata.dataOffset > 0 && [1, 3].includes(metadata.formatTag) && metadata.channels > 0 && metadata.sampleRate > 0 && canReadWavSampleWidth(metadata);
264
258
  }
265
259
  function readWavPcm(bytes, metadata, emit) {
266
260
  if (!canEmitWavPcm(metadata)) {
@@ -280,9 +274,6 @@ function readWavPcm(bytes, metadata, emit) {
280
274
  return {
281
275
  payloadType: emit === OUTPUT_AUDIO ? OUTPUT_AUDIO : OUTPUT_PCM,
282
276
  sourceFormat: "wav",
283
- containerOnly: false,
284
- isDecoded: true,
285
- pcmDecodeSupported: true,
286
277
  audioFormat: metadata.sampleFormat,
287
278
  sampleFormat: metadata.sampleFormat,
288
279
  sampleRate: metadata.sampleRate,
@@ -345,7 +336,7 @@ function decodeWavSamples(bytes, metadata, end) {
345
336
  error.sourceFormat = metadata.sourceFormat;
346
337
  throw error;
347
338
  }
348
- function isSupportedWavSampleWidth(metadata) {
339
+ function canReadWavSampleWidth(metadata) {
349
340
  if (metadata.formatTag === 1) return [8, 16, 24, 32].includes(metadata.bitsPerSample);
350
341
  if (metadata.formatTag === 3) return [32, 64].includes(metadata.bitsPerSample);
351
342
  return false;
@@ -361,5 +352,5 @@ function channelLayoutFromMask(mask, channels) {
361
352
  return layout.length === channels ? layout : layout.length ? layout : "unspecified";
362
353
  }
363
354
 
364
- export { DEFAULT_VALUES, OUTPUT_AUDIO, OUTPUT_JSON, OUTPUT_PCM, OUTPUT_RAW, inspectBytes, inspectWithValues, isMP3, isSupportedWithValues, isWAV, normalizeEmit, normalizeInputType, normalizeValues, readWithValues, toBytes, toJsonValue };
355
+ export { DEFAULT_VALUES, OUTPUT_AUDIO, OUTPUT_JSON, OUTPUT_PCM, OUTPUT_RAW, inspectBytes, inspectWithValues, isMP3, isWAV, normalizeEmit, normalizeInputType, normalizeValues, probeSupportWithValues, readWithValues, toBytes, toJsonValue };
365
356
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sources":["../../../../../src/formats/wav/core/helpers.js"],"sourcesContent":["export const OUTPUT_AUDIO = \"audio\";\nexport const OUTPUT_PCM = \"pcm\";\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_JSON = \"json\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_RAW,\n inputType: \"\",\n source: \"\"\n});\n\nconst DEBUG_OUTPUTS = Object.freeze({\n wav: \"wavJson\",\n mp3: \"mp3Json\"\n});\n\n/**\n * Normalizes reader options against their supported defaults for the WAV format\n * reader.\n */\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsAudioFormat\")\n{\n const values = { ...DEFAULT_VALUES, ...(base || {}), ...(options || {}) };\n values.inputType = normalizeInputType(values.inputType);\n values.emit = normalizeEmit(values.emit, values.inputType, readerName);\n return values;\n}\n\n/** Normalizes the requested input representation for the WAV format reader. */\nexport function normalizeInputType(inputType)\n{\n return inputType ? String(inputType).replace(/^\\./u, \"\").toLowerCase() : \"\";\n}\n\n/** Normalizes the requested output representation for the WAV format reader. */\nexport function normalizeEmit(emit, inputType, readerName)\n{\n if (emit === undefined || emit === null) return OUTPUT_RAW;\n if (emit === OUTPUT_JSON && inputType) return DEBUG_OUTPUTS[inputType] || OUTPUT_JSON;\n if ([ OUTPUT_AUDIO, OUTPUT_PCM, OUTPUT_RAW, OUTPUT_JSON ].includes(emit)) return emit;\n if (Object.values(DEBUG_OUTPUTS).includes(emit)) return emit;\n throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(emit)}`);\n}\n\n/** Returns a byte view over the supplied binary input for the WAV format reader. */\nexport function toBytes(input)\n{\n if (input instanceof Uint8Array) return input;\n if (input instanceof ArrayBuffer) return new Uint8Array(input);\n if (ArrayBuffer.isView(input)) return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);\n throw new TypeError(\"Audio input must be Uint8Array, ArrayBuffer, or DataView\");\n}\n\n/** Inspects input using normalized format options for the WAV format reader. */\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = toBytes(input);\n const metadata = inspectBytes(bytes);\n if (expectedType && metadata.sourceFormat && metadata.sourceFormat !== expectedType)\n {\n throw new TypeError(`CjsAudioFormat: expected ${expectedType}, got ${metadata.sourceFormat}`);\n }\n return {\n payloadType: \"audio\",\n mediaTypes: [ \"audio\" ],\n byteLength: bytes.byteLength,\n sourceFormat: expectedType || values.inputType || metadata.sourceFormat,\n ...metadata\n };\n}\n\n/**\n * Reports whether input is supported under normalized format options for the WAV\n * format reader.\n */\nexport function isSupportedWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n try\n {\n const metadata = inspectWithValues(input, values, expectedType);\n const canEmitPcm = metadata.sourceFormat === \"wav\" && canEmitWavPcm(metadata);\n const mimeType = getAudioMimeType(metadata);\n return {\n format: metadata.sourceFormat,\n source: values.source || \"buffer\",\n supported: metadata.sourceFormat ? (canEmitPcm ? \"full\" : \"partial\") : \"none\",\n confidence: metadata.sourceFormat ? 1 : 0,\n preferred: canEmitPcm ? \"pcm\" : \"\",\n reason: metadata.sourceFormat ? \"Container/header recognized.\" : \"Unrecognized audio format.\",\n metadata,\n variants: [\n {\n kind: \"raw\",\n payloadType: \"raw\",\n codec: metadata.audioFormat || metadata.sourceFormat,\n mimeType,\n supported: true,\n containerOnly: true,\n isDecoded: false,\n pcmDecodeSupported: canEmitPcm\n },\n {\n kind: \"pcm\",\n codec: metadata.sampleFormat || \"pcm\",\n supported: canEmitPcm,\n payloadType: canEmitPcm ? \"pcm\" : \"pcm\",\n reason: canEmitPcm ? \"\" : \"Only WAV PCM/IEEE-float data chunks can be emitted as PCM.\"\n }\n ],\n warnings: [],\n errors: []\n };\n }\n catch (error)\n {\n return {\n format: expectedType || values.inputType || \"\",\n source: values.source || \"buffer\",\n supported: \"none\",\n confidence: 0,\n preferred: \"\",\n reason: error.message,\n metadata: null,\n variants: [],\n warnings: [],\n errors: [ error.message ]\n };\n }\n}\n\n/** Reads input using normalized format options for the WAV format reader. */\nexport function readWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = toBytes(input);\n const metadata = inspectWithValues(bytes, values, expectedType);\n if (values.emit === OUTPUT_RAW)\n {\n return {\n payloadType: \"raw\",\n sourceFormat: metadata.sourceFormat,\n mimeType: getAudioMimeType(metadata),\n containerOnly: true,\n isDecoded: false,\n pcmDecodeSupported: metadata.sourceFormat === \"wav\" && canEmitWavPcm(metadata),\n metadata,\n bytes\n };\n }\n if (values.emit === OUTPUT_JSON || values.emit === DEBUG_OUTPUTS[metadata.sourceFormat]) return metadata;\n if ((values.emit === OUTPUT_PCM || values.emit === OUTPUT_AUDIO) && metadata.sourceFormat === \"wav\")\n {\n return readWavPcm(bytes, metadata, values.emit);\n }\n\n const error = new Error(`${metadata.sourceFormat}: emit \"${values.emit}\" is not implemented yet`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED\";\n error.sourceFormat = metadata.sourceFormat;\n error.emit = values.emit;\n throw error;\n}\n\nfunction getAudioMimeType(metadata)\n{\n if (metadata.sourceFormat === \"mp3\") return \"audio/mpeg\";\n return \"audio/wav\";\n}\n\n/** Converts a parsed payload into a JSON-safe value for the WAV format reader. */\nexport function toJsonValue(value)\n{\n if (value instanceof Uint8Array) return { byteLength: value.byteLength };\n if (Array.isArray(value)) return value.map(toJsonValue);\n if (value && typeof value === \"object\")\n {\n const output = {};\n for (const [ key, entry ] of Object.entries(value)) output[key] = toJsonValue(entry);\n return output;\n }\n return value;\n}\n\n/**\n * Inspects the supplied bytes without decoding their payload for the WAV format\n * reader.\n */\nexport function inspectBytes(bytes)\n{\n if (isWAV(bytes)) return inspectWAV(bytes);\n if (isMP3(bytes)) return inspectMP3(bytes);\n return { sourceFormat: \"\", audioFormat: \"\" };\n}\n\n/**\n * Reports whether the supplied bytes have a RIFF/WAVE header for the WAV format\n * reader.\n */\nexport function isWAV(bytes)\n{\n return bytes.byteLength >= 12 && fourCc(bytes, 0) === \"RIFF\" && fourCc(bytes, 8) === \"WAVE\";\n}\n\n/**\n * Reports whether the supplied bytes have a supported MP3 header for the WAV\n * format reader.\n */\nexport function isMP3(bytes)\n{\n return bytes.byteLength >= 3 &&\n (fourCc(bytes, 0, 3) === \"ID3\" || (bytes[0] === 0xff && (bytes[1] & 0xe0) === 0xe0));\n}\n\nfunction inspectWAV(bytes)\n{\n let offset = 12;\n const info = {\n sourceFormat: \"wav\",\n audioFormat: \"wav\",\n sampleRate: 0,\n channels: 0,\n bitsPerSample: 0,\n byteRate: 0,\n blockAlign: 0,\n dataOffset: 0,\n dataBytes: 0,\n containerFormatTag: 0,\n validBitsPerSample: 0,\n channelMask: 0,\n channelLayout: \"unspecified\",\n durationSeconds: 0\n };\n while (offset + 8 <= bytes.byteLength)\n {\n const id = fourCc(bytes, offset), size = readU32LE(bytes, offset + 4), dataOffset = offset + 8;\n if (id === \"fmt \" && dataOffset + 16 <= bytes.byteLength)\n {\n const containerFormatTag = readU16LE(bytes, dataOffset);\n info.containerFormatTag = containerFormatTag;\n info.formatTag = containerFormatTag;\n info.channels = readU16LE(bytes, dataOffset + 2);\n info.sampleRate = readU32LE(bytes, dataOffset + 4);\n info.byteRate = readU32LE(bytes, dataOffset + 8);\n info.blockAlign = readU16LE(bytes, dataOffset + 12);\n info.bitsPerSample = readU16LE(bytes, dataOffset + 14);\n info.validBitsPerSample = info.bitsPerSample;\n if (containerFormatTag === 0xfffe && size >= 40 && dataOffset + 40 <= bytes.byteLength)\n {\n info.validBitsPerSample = readU16LE(bytes, dataOffset + 18) || info.bitsPerSample;\n info.channelMask = readU32LE(bytes, dataOffset + 20);\n info.subFormatTag = readU16LE(bytes, dataOffset + 24);\n info.formatTag = info.subFormatTag;\n info.channelLayout = channelLayoutFromMask(info.channelMask, info.channels);\n }\n info.sampleFormat = wavSampleFormat(info.formatTag, info.bitsPerSample);\n }\n if (id === \"data\")\n {\n info.dataOffset = dataOffset;\n info.dataBytes = size;\n }\n offset = dataOffset + size + (size & 1);\n }\n info.frameCount = info.blockAlign ? Math.floor(info.dataBytes / info.blockAlign) : 0;\n info.durationSeconds = info.sampleRate ? info.frameCount / info.sampleRate : 0;\n return info;\n}\n\nfunction inspectMP3(bytes)\n{\n return {\n sourceFormat: \"mp3\",\n audioFormat: \"mp3\",\n hasId3: fourCc(bytes, 0, 3) === \"ID3\"\n };\n}\n\nfunction fourCc(bytes, offset, length = 4)\n{\n let value = \"\";\n for (let i = 0; i < length; i++) value += String.fromCharCode(bytes[offset + i] || 0);\n return value;\n}\n\nfunction readU16LE(bytes, offset)\n{\n return bytes[offset] | (bytes[offset + 1] << 8);\n}\n\nfunction readU32LE(bytes, offset)\n{\n return (bytes[offset] | (bytes[offset + 1] << 8) | (bytes[offset + 2] << 16) | (bytes[offset + 3] * 0x1000000)) >>> 0;\n}\n\nfunction canEmitWavPcm(metadata)\n{\n return metadata.dataOffset > 0 &&\n [ 1, 3 ].includes(metadata.formatTag) &&\n metadata.channels > 0 &&\n metadata.sampleRate > 0 &&\n isSupportedWavSampleWidth(metadata);\n}\n\nfunction readWavPcm(bytes, metadata, emit)\n{\n if (!canEmitWavPcm(metadata))\n {\n const error = new Error(\"wav: only PCM and IEEE-float WAV data chunks can be emitted as PCM\");\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = metadata.sourceFormat;\n throw error;\n }\n\n const end = metadata.dataOffset + metadata.dataBytes;\n if (end > bytes.byteLength)\n {\n const error = new Error(\"wav: data chunk is truncated\");\n error.code = \"CJS_FORMAT_TRUNCATED\";\n error.sourceFormat = metadata.sourceFormat;\n throw error;\n }\n\n const data = decodeWavSamples(bytes, metadata, end);\n\n return {\n payloadType: emit === OUTPUT_AUDIO ? OUTPUT_AUDIO : OUTPUT_PCM,\n sourceFormat: \"wav\",\n containerOnly: false,\n isDecoded: true,\n pcmDecodeSupported: true,\n audioFormat: metadata.sampleFormat,\n sampleFormat: metadata.sampleFormat,\n sampleRate: metadata.sampleRate,\n channels: metadata.channels,\n interleaving: \"interleaved\",\n channelLayout: metadata.channelLayout || \"unspecified\",\n bitsPerSample: metadata.bitsPerSample,\n blockAlign: metadata.blockAlign,\n frameCount: metadata.frameCount,\n durationSeconds: metadata.sampleRate ? metadata.frameCount / metadata.sampleRate : 0,\n metadata,\n data\n };\n}\n\nfunction decodeWavSamples(bytes, metadata, end)\n{\n const bytesPerSample = metadata.bitsPerSample / 8;\n if (!Number.isInteger(bytesPerSample) || bytesPerSample <= 0 || metadata.dataBytes % bytesPerSample !== 0)\n {\n const error = new Error(`wav: unsupported sample width ${metadata.bitsPerSample}`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = metadata.sourceFormat;\n throw error;\n }\n\n const sampleCount = metadata.dataBytes / bytesPerSample;\n const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n if (metadata.formatTag === 1)\n {\n if (metadata.bitsPerSample === 8) return Uint8Array.from(bytes.subarray(metadata.dataOffset, end));\n if (metadata.bitsPerSample === 16)\n {\n const data = new Int16Array(sampleCount);\n for (let i = 0; i < sampleCount; i++) data[i] = view.getInt16(metadata.dataOffset + i * 2, true);\n return data;\n }\n if (metadata.bitsPerSample === 24)\n {\n const data = new Int32Array(sampleCount);\n for (let i = 0; i < sampleCount; i++)\n {\n const offset = metadata.dataOffset + i * 3;\n let value = view.getUint8(offset) | (view.getUint8(offset + 1) << 8) | (view.getUint8(offset + 2) << 16);\n if (value & 0x800000) value |= 0xff000000;\n data[i] = value;\n }\n return data;\n }\n if (metadata.bitsPerSample === 32)\n {\n const data = new Int32Array(sampleCount);\n for (let i = 0; i < sampleCount; i++) data[i] = view.getInt32(metadata.dataOffset + i * 4, true);\n return data;\n }\n }\n if (metadata.formatTag === 3 && metadata.bitsPerSample === 32)\n {\n const data = new Float32Array(sampleCount);\n for (let i = 0; i < sampleCount; i++) data[i] = view.getFloat32(metadata.dataOffset + i * 4, true);\n return data;\n }\n if (metadata.formatTag === 3 && metadata.bitsPerSample === 64)\n {\n const data = new Float64Array(sampleCount);\n for (let i = 0; i < sampleCount; i++) data[i] = view.getFloat64(metadata.dataOffset + i * 8, true);\n return data;\n }\n\n const error = new Error(`wav: unsupported ${metadata.sampleFormat} sample data`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = metadata.sourceFormat;\n throw error;\n}\n\nfunction isSupportedWavSampleWidth(metadata)\n{\n if (metadata.formatTag === 1) return [ 8, 16, 24, 32 ].includes(metadata.bitsPerSample);\n if (metadata.formatTag === 3) return [ 32, 64 ].includes(metadata.bitsPerSample);\n return false;\n}\n\nfunction wavSampleFormat(formatTag, bitsPerSample)\n{\n if (formatTag === 3) return `float${bitsPerSample}`;\n if (formatTag === 1) return `pcm${bitsPerSample}`;\n return `wav-format-${formatTag}`;\n}\n\nfunction channelLayoutFromMask(mask, channels)\n{\n const names = [\n [ 0x001, \"front-left\" ], [ 0x002, \"front-right\" ], [ 0x004, \"front-center\" ],\n [ 0x008, \"low-frequency\" ], [ 0x010, \"back-left\" ], [ 0x020, \"back-right\" ],\n [ 0x040, \"front-left-of-center\" ], [ 0x080, \"front-right-of-center\" ], [ 0x100, \"back-center\" ],\n [ 0x200, \"side-left\" ], [ 0x400, \"side-right\" ], [ 0x800, \"top-center\" ],\n [ 0x1000, \"top-front-left\" ], [ 0x2000, \"top-front-center\" ], [ 0x4000, \"top-front-right\" ],\n [ 0x8000, \"top-back-left\" ], [ 0x10000, \"top-back-center\" ], [ 0x20000, \"top-back-right\" ]\n ];\n const layout = names.filter(([ bit ]) => mask & bit).map(([ , name ]) => name);\n return layout.length === channels ? layout : layout.length ? layout : \"unspecified\";\n}\n"],"names":["OUTPUT_AUDIO","OUTPUT_PCM","OUTPUT_RAW","OUTPUT_JSON","DEFAULT_VALUES","Object","freeze","emit","inputType","source","DEBUG_OUTPUTS","wav","mp3","normalizeValues","base","options","readerName","values","normalizeInputType","normalizeEmit","String","replace","toLowerCase","undefined","includes","TypeError","JSON","stringify","toBytes","input","Uint8Array","ArrayBuffer","isView","buffer","byteOffset","byteLength","inspectWithValues","expectedType","bytes","metadata","inspectBytes","sourceFormat","payloadType","mediaTypes","isSupportedWithValues","canEmitPcm","canEmitWavPcm","mimeType","getAudioMimeType","format","supported","confidence","preferred","reason","variants","kind","codec","audioFormat","containerOnly","isDecoded","pcmDecodeSupported","sampleFormat","warnings","errors","error","message","readWithValues","readWavPcm","Error","code","toJsonValue","value","Array","isArray","map","output","key","entry","entries","isWAV","inspectWAV","isMP3","inspectMP3","fourCc","offset","info","sampleRate","channels","bitsPerSample","byteRate","blockAlign","dataOffset","dataBytes","containerFormatTag","validBitsPerSample","channelMask","channelLayout","durationSeconds","id","size","readU32LE","readU16LE","formatTag","subFormatTag","channelLayoutFromMask","wavSampleFormat","frameCount","Math","floor","hasId3","length","i","fromCharCode","isSupportedWavSampleWidth","end","data","decodeWavSamples","interleaving","bytesPerSample","Number","isInteger","sampleCount","view","DataView","from","subarray","Int16Array","getInt16","Int32Array","getUint8","getInt32","Float32Array","getFloat32","Float64Array","getFloat64","mask","names","layout","filter","bit","name"],"mappings":"AAAO,MAAMA,YAAY,GAAG;AACrB,MAAMC,UAAU,GAAG;AACnB,MAAMC,UAAU,GAAG;AACnB,MAAMC,WAAW,GAAG;MAEdC,cAAc,GAAGC,MAAM,CAACC,MAAM,CAAC;AACxCC,EAAAA,IAAI,EAAEL,UAAU;AAChBM,EAAAA,SAAS,EAAE,EAAE;AACbC,EAAAA,MAAM,EAAE;AACZ,CAAC;AAED,MAAMC,aAAa,GAAGL,MAAM,CAACC,MAAM,CAAC;AAChCK,EAAAA,GAAG,EAAE,SAAS;AACdC,EAAAA,GAAG,EAAE;AACT,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACO,SAASC,eAAeA,CAACC,IAAI,GAAGV,cAAc,EAAEW,OAAO,GAAG,EAAE,EAAEC,UAAU,GAAG,gBAAgB,EAClG;AACI,EAAA,MAAMC,MAAM,GAAG;AAAE,IAAA,GAAGb,cAAc;AAAE,IAAA,IAAIU,IAAI,IAAI,EAAE,CAAC;IAAE,IAAIC,OAAO,IAAI,EAAE;GAAG;EACzEE,MAAM,CAACT,SAAS,GAAGU,kBAAkB,CAACD,MAAM,CAACT,SAAS,CAAC;AACvDS,EAAAA,MAAM,CAACV,IAAI,GAAGY,aAAa,CAACF,MAAM,CAACV,IAAI,EAAEU,MAAM,CAACT,SAAS,EAAEQ,UAAU,CAAC;AACtE,EAAA,OAAOC,MAAM;AACjB;;AAEA;AACO,SAASC,kBAAkBA,CAACV,SAAS,EAC5C;AACI,EAAA,OAAOA,SAAS,GAAGY,MAAM,CAACZ,SAAS,CAAC,CAACa,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAACC,WAAW,EAAE,GAAG,EAAE;AAC/E;;AAEA;AACO,SAASH,aAAaA,CAACZ,IAAI,EAAEC,SAAS,EAAEQ,UAAU,EACzD;EACI,IAAIT,IAAI,KAAKgB,SAAS,IAAIhB,IAAI,KAAK,IAAI,EAAE,OAAOL,UAAU;AAC1D,EAAA,IAAIK,IAAI,KAAKJ,WAAW,IAAIK,SAAS,EAAE,OAAOE,aAAa,CAACF,SAAS,CAAC,IAAIL,WAAW;AACrF,EAAA,IAAI,CAAEH,YAAY,EAAEC,UAAU,EAAEC,UAAU,EAAEC,WAAW,CAAE,CAACqB,QAAQ,CAACjB,IAAI,CAAC,EAAE,OAAOA,IAAI;AACrF,EAAA,IAAIF,MAAM,CAACY,MAAM,CAACP,aAAa,CAAC,CAACc,QAAQ,CAACjB,IAAI,CAAC,EAAE,OAAOA,IAAI;AAC5D,EAAA,MAAM,IAAIkB,SAAS,CAAC,CAAA,EAAGT,UAAU,CAAA,qBAAA,EAAwBU,IAAI,CAACC,SAAS,CAACpB,IAAI,CAAC,EAAE,CAAC;AACpF;;AAEA;AACO,SAASqB,OAAOA,CAACC,KAAK,EAC7B;AACI,EAAA,IAAIA,KAAK,YAAYC,UAAU,EAAE,OAAOD,KAAK;EAC7C,IAAIA,KAAK,YAAYE,WAAW,EAAE,OAAO,IAAID,UAAU,CAACD,KAAK,CAAC;EAC9D,IAAIE,WAAW,CAACC,MAAM,CAACH,KAAK,CAAC,EAAE,OAAO,IAAIC,UAAU,CAACD,KAAK,CAACI,MAAM,EAAEJ,KAAK,CAACK,UAAU,EAAEL,KAAK,CAACM,UAAU,CAAC;AACtG,EAAA,MAAM,IAAIV,SAAS,CAAC,0DAA0D,CAAC;AACnF;;AAEA;AACO,SAASW,iBAAiBA,CAACP,KAAK,EAAEZ,MAAM,GAAGb,cAAc,EAAEiC,YAAY,GAAG,EAAE,EACnF;AACI,EAAA,MAAMC,KAAK,GAAGV,OAAO,CAACC,KAAK,CAAC;AAC5B,EAAA,MAAMU,QAAQ,GAAGC,YAAY,CAACF,KAAK,CAAC;EACpC,IAAID,YAAY,IAAIE,QAAQ,CAACE,YAAY,IAAIF,QAAQ,CAACE,YAAY,KAAKJ,YAAY,EACnF;IACI,MAAM,IAAIZ,SAAS,CAAC,CAAA,yBAAA,EAA4BY,YAAY,SAASE,QAAQ,CAACE,YAAY,CAAA,CAAE,CAAC;AACjG,EAAA;EACA,OAAO;AACHC,IAAAA,WAAW,EAAE,OAAO;IACpBC,UAAU,EAAE,CAAE,OAAO,CAAE;IACvBR,UAAU,EAAEG,KAAK,CAACH,UAAU;IAC5BM,YAAY,EAAEJ,YAAY,IAAIpB,MAAM,CAACT,SAAS,IAAI+B,QAAQ,CAACE,YAAY;IACvE,GAAGF;GACN;AACL;;AAEA;AACA;AACA;AACA;AACO,SAASK,qBAAqBA,CAACf,KAAK,EAAEZ,MAAM,GAAGb,cAAc,EAAEiC,YAAY,GAAG,EAAE,EACvF;EACI,IACA;IACI,MAAME,QAAQ,GAAGH,iBAAiB,CAACP,KAAK,EAAEZ,MAAM,EAAEoB,YAAY,CAAC;IAC/D,MAAMQ,UAAU,GAAGN,QAAQ,CAACE,YAAY,KAAK,KAAK,IAAIK,aAAa,CAACP,QAAQ,CAAC;AAC7E,IAAA,MAAMQ,QAAQ,GAAGC,gBAAgB,CAACT,QAAQ,CAAC;IAC3C,OAAO;MACHU,MAAM,EAAEV,QAAQ,CAACE,YAAY;AAC7BhC,MAAAA,MAAM,EAAEQ,MAAM,CAACR,MAAM,IAAI,QAAQ;MACjCyC,SAAS,EAAEX,QAAQ,CAACE,YAAY,GAAII,UAAU,GAAG,MAAM,GAAG,SAAS,GAAI,MAAM;AAC7EM,MAAAA,UAAU,EAAEZ,QAAQ,CAACE,YAAY,GAAG,CAAC,GAAG,CAAC;AACzCW,MAAAA,SAAS,EAAEP,UAAU,GAAG,KAAK,GAAG,EAAE;AAClCQ,MAAAA,MAAM,EAAEd,QAAQ,CAACE,YAAY,GAAG,8BAA8B,GAAG,4BAA4B;MAC7FF,QAAQ;AACRe,MAAAA,QAAQ,EAAE,CACN;AACIC,QAAAA,IAAI,EAAE,KAAK;AACXb,QAAAA,WAAW,EAAE,KAAK;AAClBc,QAAAA,KAAK,EAAEjB,QAAQ,CAACkB,WAAW,IAAIlB,QAAQ,CAACE,YAAY;QACpDM,QAAQ;AACRG,QAAAA,SAAS,EAAE,IAAI;AACfQ,QAAAA,aAAa,EAAE,IAAI;AACnBC,QAAAA,SAAS,EAAE,KAAK;AAChBC,QAAAA,kBAAkB,EAAEf;AACxB,OAAC,EACD;AACIU,QAAAA,IAAI,EAAE,KAAK;AACXC,QAAAA,KAAK,EAAEjB,QAAQ,CAACsB,YAAY,IAAI,KAAK;AACrCX,QAAAA,SAAS,EAAEL,UAAU;AACrBH,QAAAA,WAAW,EAAEG,UAAU,GAAG,KAAK,GAAG,KAAK;AACvCQ,QAAAA,MAAM,EAAER,UAAU,GAAG,EAAE,GAAG;AAC9B,OAAC,CACJ;AACDiB,MAAAA,QAAQ,EAAE,EAAE;AACZC,MAAAA,MAAM,EAAE;KACX;EACL,CAAC,CACD,OAAOC,KAAK,EACZ;IACI,OAAO;AACHf,MAAAA,MAAM,EAAEZ,YAAY,IAAIpB,MAAM,CAACT,SAAS,IAAI,EAAE;AAC9CC,MAAAA,MAAM,EAAEQ,MAAM,CAACR,MAAM,IAAI,QAAQ;AACjCyC,MAAAA,SAAS,EAAE,MAAM;AACjBC,MAAAA,UAAU,EAAE,CAAC;AACbC,MAAAA,SAAS,EAAE,EAAE;MACbC,MAAM,EAAEW,KAAK,CAACC,OAAO;AACrB1B,MAAAA,QAAQ,EAAE,IAAI;AACde,MAAAA,QAAQ,EAAE,EAAE;AACZQ,MAAAA,QAAQ,EAAE,EAAE;AACZC,MAAAA,MAAM,EAAE,CAAEC,KAAK,CAACC,OAAO;KAC1B;AACL,EAAA;AACJ;;AAEA;AACO,SAASC,cAAcA,CAACrC,KAAK,EAAEZ,MAAM,GAAGb,cAAc,EAAEiC,YAAY,GAAG,EAAE,EAChF;AACI,EAAA,MAAMC,KAAK,GAAGV,OAAO,CAACC,KAAK,CAAC;EAC5B,MAAMU,QAAQ,GAAGH,iBAAiB,CAACE,KAAK,EAAErB,MAAM,EAAEoB,YAAY,CAAC;AAC/D,EAAA,IAAIpB,MAAM,CAACV,IAAI,KAAKL,UAAU,EAC9B;IACI,OAAO;AACHwC,MAAAA,WAAW,EAAE,KAAK;MAClBD,YAAY,EAAEF,QAAQ,CAACE,YAAY;AACnCM,MAAAA,QAAQ,EAAEC,gBAAgB,CAACT,QAAQ,CAAC;AACpCmB,MAAAA,aAAa,EAAE,IAAI;AACnBC,MAAAA,SAAS,EAAE,KAAK;MAChBC,kBAAkB,EAAErB,QAAQ,CAACE,YAAY,KAAK,KAAK,IAAIK,aAAa,CAACP,QAAQ,CAAC;MAC9EA,QAAQ;AACRD,MAAAA;KACH;AACL,EAAA;AACA,EAAA,IAAIrB,MAAM,CAACV,IAAI,KAAKJ,WAAW,IAAIc,MAAM,CAACV,IAAI,KAAKG,aAAa,CAAC6B,QAAQ,CAACE,YAAY,CAAC,EAAE,OAAOF,QAAQ;AACxG,EAAA,IAAI,CAACtB,MAAM,CAACV,IAAI,KAAKN,UAAU,IAAIgB,MAAM,CAACV,IAAI,KAAKP,YAAY,KAAKuC,QAAQ,CAACE,YAAY,KAAK,KAAK,EACnG;IACI,OAAO0B,UAAU,CAAC7B,KAAK,EAAEC,QAAQ,EAAEtB,MAAM,CAACV,IAAI,CAAC;AACnD,EAAA;AAEA,EAAA,MAAMyD,KAAK,GAAG,IAAII,KAAK,CAAC,CAAA,EAAG7B,QAAQ,CAACE,YAAY,CAAA,QAAA,EAAWxB,MAAM,CAACV,IAAI,0BAA0B,CAAC;EACjGyD,KAAK,CAACK,IAAI,GAAG,mCAAmC;AAChDL,EAAAA,KAAK,CAACvB,YAAY,GAAGF,QAAQ,CAACE,YAAY;AAC1CuB,EAAAA,KAAK,CAACzD,IAAI,GAAGU,MAAM,CAACV,IAAI;AACxB,EAAA,MAAMyD,KAAK;AACf;AAEA,SAAShB,gBAAgBA,CAACT,QAAQ,EAClC;AACI,EAAA,IAAIA,QAAQ,CAACE,YAAY,KAAK,KAAK,EAAE,OAAO,YAAY;AACxD,EAAA,OAAO,WAAW;AACtB;;AAEA;AACO,SAAS6B,WAAWA,CAACC,KAAK,EACjC;AACI,EAAA,IAAIA,KAAK,YAAYzC,UAAU,EAAE,OAAO;IAAEK,UAAU,EAAEoC,KAAK,CAACpC;GAAY;AACxE,EAAA,IAAIqC,KAAK,CAACC,OAAO,CAACF,KAAK,CAAC,EAAE,OAAOA,KAAK,CAACG,GAAG,CAACJ,WAAW,CAAC;AACvD,EAAA,IAAIC,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EACtC;IACI,MAAMI,MAAM,GAAG,EAAE;IACjB,KAAK,MAAM,CAAEC,GAAG,EAAEC,KAAK,CAAE,IAAIxE,MAAM,CAACyE,OAAO,CAACP,KAAK,CAAC,EAAEI,MAAM,CAACC,GAAG,CAAC,GAAGN,WAAW,CAACO,KAAK,CAAC;AACpF,IAAA,OAAOF,MAAM;AACjB,EAAA;AACA,EAAA,OAAOJ,KAAK;AAChB;;AAEA;AACA;AACA;AACA;AACO,SAAS/B,YAAYA,CAACF,KAAK,EAClC;EACI,IAAIyC,KAAK,CAACzC,KAAK,CAAC,EAAE,OAAO0C,UAAU,CAAC1C,KAAK,CAAC;EAC1C,IAAI2C,KAAK,CAAC3C,KAAK,CAAC,EAAE,OAAO4C,UAAU,CAAC5C,KAAK,CAAC;EAC1C,OAAO;AAAEG,IAAAA,YAAY,EAAE,EAAE;AAAEgB,IAAAA,WAAW,EAAE;GAAI;AAChD;;AAEA;AACA;AACA;AACA;AACO,SAASsB,KAAKA,CAACzC,KAAK,EAC3B;EACI,OAAOA,KAAK,CAACH,UAAU,IAAI,EAAE,IAAIgD,MAAM,CAAC7C,KAAK,EAAE,CAAC,CAAC,KAAK,MAAM,IAAI6C,MAAM,CAAC7C,KAAK,EAAE,CAAC,CAAC,KAAK,MAAM;AAC/F;;AAEA;AACA;AACA;AACA;AACO,SAAS2C,KAAKA,CAAC3C,KAAK,EAC3B;AACI,EAAA,OAAOA,KAAK,CAACH,UAAU,IAAI,CAAC,KACvBgD,MAAM,CAAC7C,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,IAAKA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAACA,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,IAAK,CAAC;AAC5F;AAEA,SAAS0C,UAAUA,CAAC1C,KAAK,EACzB;EACI,IAAI8C,MAAM,GAAG,EAAE;AACf,EAAA,MAAMC,IAAI,GAAG;AACT5C,IAAAA,YAAY,EAAE,KAAK;AACnBgB,IAAAA,WAAW,EAAE,KAAK;AAClB6B,IAAAA,UAAU,EAAE,CAAC;AACbC,IAAAA,QAAQ,EAAE,CAAC;AACXC,IAAAA,aAAa,EAAE,CAAC;AAChBC,IAAAA,QAAQ,EAAE,CAAC;AACXC,IAAAA,UAAU,EAAE,CAAC;AACbC,IAAAA,UAAU,EAAE,CAAC;AACbC,IAAAA,SAAS,EAAE,CAAC;AACZC,IAAAA,kBAAkB,EAAE,CAAC;AACrBC,IAAAA,kBAAkB,EAAE,CAAC;AACrBC,IAAAA,WAAW,EAAE,CAAC;AACdC,IAAAA,aAAa,EAAE,aAAa;AAC5BC,IAAAA,eAAe,EAAE;GACpB;AACD,EAAA,OAAOb,MAAM,GAAG,CAAC,IAAI9C,KAAK,CAACH,UAAU,EACrC;AACI,IAAA,MAAM+D,EAAE,GAAGf,MAAM,CAAC7C,KAAK,EAAE8C,MAAM,CAAC;MAAEe,IAAI,GAAGC,SAAS,CAAC9D,KAAK,EAAE8C,MAAM,GAAG,CAAC,CAAC;MAAEO,UAAU,GAAGP,MAAM,GAAG,CAAC;IAC9F,IAAIc,EAAE,KAAK,MAAM,IAAIP,UAAU,GAAG,EAAE,IAAIrD,KAAK,CAACH,UAAU,EACxD;AACI,MAAA,MAAM0D,kBAAkB,GAAGQ,SAAS,CAAC/D,KAAK,EAAEqD,UAAU,CAAC;MACvDN,IAAI,CAACQ,kBAAkB,GAAGA,kBAAkB;MAC5CR,IAAI,CAACiB,SAAS,GAAGT,kBAAkB;MACnCR,IAAI,CAACE,QAAQ,GAAGc,SAAS,CAAC/D,KAAK,EAAEqD,UAAU,GAAG,CAAC,CAAC;MAChDN,IAAI,CAACC,UAAU,GAAGc,SAAS,CAAC9D,KAAK,EAAEqD,UAAU,GAAG,CAAC,CAAC;MAClDN,IAAI,CAACI,QAAQ,GAAGW,SAAS,CAAC9D,KAAK,EAAEqD,UAAU,GAAG,CAAC,CAAC;MAChDN,IAAI,CAACK,UAAU,GAAGW,SAAS,CAAC/D,KAAK,EAAEqD,UAAU,GAAG,EAAE,CAAC;MACnDN,IAAI,CAACG,aAAa,GAAGa,SAAS,CAAC/D,KAAK,EAAEqD,UAAU,GAAG,EAAE,CAAC;AACtDN,MAAAA,IAAI,CAACS,kBAAkB,GAAGT,IAAI,CAACG,aAAa;AAC5C,MAAA,IAAIK,kBAAkB,KAAK,MAAM,IAAIM,IAAI,IAAI,EAAE,IAAIR,UAAU,GAAG,EAAE,IAAIrD,KAAK,CAACH,UAAU,EACtF;AACIkD,QAAAA,IAAI,CAACS,kBAAkB,GAAGO,SAAS,CAAC/D,KAAK,EAAEqD,UAAU,GAAG,EAAE,CAAC,IAAIN,IAAI,CAACG,aAAa;QACjFH,IAAI,CAACU,WAAW,GAAGK,SAAS,CAAC9D,KAAK,EAAEqD,UAAU,GAAG,EAAE,CAAC;QACpDN,IAAI,CAACkB,YAAY,GAAGF,SAAS,CAAC/D,KAAK,EAAEqD,UAAU,GAAG,EAAE,CAAC;AACrDN,QAAAA,IAAI,CAACiB,SAAS,GAAGjB,IAAI,CAACkB,YAAY;AAClClB,QAAAA,IAAI,CAACW,aAAa,GAAGQ,qBAAqB,CAACnB,IAAI,CAACU,WAAW,EAAEV,IAAI,CAACE,QAAQ,CAAC;AAC/E,MAAA;AACAF,MAAAA,IAAI,CAACxB,YAAY,GAAG4C,eAAe,CAACpB,IAAI,CAACiB,SAAS,EAAEjB,IAAI,CAACG,aAAa,CAAC;AAC3E,IAAA;IACA,IAAIU,EAAE,KAAK,MAAM,EACjB;MACIb,IAAI,CAACM,UAAU,GAAGA,UAAU;MAC5BN,IAAI,CAACO,SAAS,GAAGO,IAAI;AACzB,IAAA;IACAf,MAAM,GAAGO,UAAU,GAAGQ,IAAI,IAAIA,IAAI,GAAG,CAAC,CAAC;AAC3C,EAAA;EACAd,IAAI,CAACqB,UAAU,GAAGrB,IAAI,CAACK,UAAU,GAAGiB,IAAI,CAACC,KAAK,CAACvB,IAAI,CAACO,SAAS,GAAGP,IAAI,CAACK,UAAU,CAAC,GAAG,CAAC;AACpFL,EAAAA,IAAI,CAACY,eAAe,GAAGZ,IAAI,CAACC,UAAU,GAAGD,IAAI,CAACqB,UAAU,GAAGrB,IAAI,CAACC,UAAU,GAAG,CAAC;AAC9E,EAAA,OAAOD,IAAI;AACf;AAEA,SAASH,UAAUA,CAAC5C,KAAK,EACzB;EACI,OAAO;AACHG,IAAAA,YAAY,EAAE,KAAK;AACnBgB,IAAAA,WAAW,EAAE,KAAK;IAClBoD,MAAM,EAAE1B,MAAM,CAAC7C,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK;GACnC;AACL;AAEA,SAAS6C,MAAMA,CAAC7C,KAAK,EAAE8C,MAAM,EAAE0B,MAAM,GAAG,CAAC,EACzC;EACI,IAAIvC,KAAK,GAAG,EAAE;EACd,KAAK,IAAIwC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,MAAM,EAAEC,CAAC,EAAE,EAAExC,KAAK,IAAInD,MAAM,CAAC4F,YAAY,CAAC1E,KAAK,CAAC8C,MAAM,GAAG2B,CAAC,CAAC,IAAI,CAAC,CAAC;AACrF,EAAA,OAAOxC,KAAK;AAChB;AAEA,SAAS8B,SAASA,CAAC/D,KAAK,EAAE8C,MAAM,EAChC;AACI,EAAA,OAAO9C,KAAK,CAAC8C,MAAM,CAAC,GAAI9C,KAAK,CAAC8C,MAAM,GAAG,CAAC,CAAC,IAAI,CAAE;AACnD;AAEA,SAASgB,SAASA,CAAC9D,KAAK,EAAE8C,MAAM,EAChC;AACI,EAAA,OAAO,CAAC9C,KAAK,CAAC8C,MAAM,CAAC,GAAI9C,KAAK,CAAC8C,MAAM,GAAG,CAAC,CAAC,IAAI,CAAE,GAAI9C,KAAK,CAAC8C,MAAM,GAAG,CAAC,CAAC,IAAI,EAAG,GAAI9C,KAAK,CAAC8C,MAAM,GAAG,CAAC,CAAC,GAAG,SAAU,MAAM,CAAC;AACzH;AAEA,SAAStC,aAAaA,CAACP,QAAQ,EAC/B;AACI,EAAA,OAAOA,QAAQ,CAACoD,UAAU,GAAG,CAAC,IAC1B,CAAE,CAAC,EAAE,CAAC,CAAE,CAACnE,QAAQ,CAACe,QAAQ,CAAC+D,SAAS,CAAC,IACrC/D,QAAQ,CAACgD,QAAQ,GAAG,CAAC,IACrBhD,QAAQ,CAAC+C,UAAU,GAAG,CAAC,IACvB2B,yBAAyB,CAAC1E,QAAQ,CAAC;AAC3C;AAEA,SAAS4B,UAAUA,CAAC7B,KAAK,EAAEC,QAAQ,EAAEhC,IAAI,EACzC;AACI,EAAA,IAAI,CAACuC,aAAa,CAACP,QAAQ,CAAC,EAC5B;AACI,IAAA,MAAMyB,KAAK,GAAG,IAAII,KAAK,CAAC,oEAAoE,CAAC;IAC7FJ,KAAK,CAACK,IAAI,GAAG,iCAAiC;AAC9CL,IAAAA,KAAK,CAACvB,YAAY,GAAGF,QAAQ,CAACE,YAAY;AAC1C,IAAA,MAAMuB,KAAK;AACf,EAAA;EAEA,MAAMkD,GAAG,GAAG3E,QAAQ,CAACoD,UAAU,GAAGpD,QAAQ,CAACqD,SAAS;AACpD,EAAA,IAAIsB,GAAG,GAAG5E,KAAK,CAACH,UAAU,EAC1B;AACI,IAAA,MAAM6B,KAAK,GAAG,IAAII,KAAK,CAAC,8BAA8B,CAAC;IACvDJ,KAAK,CAACK,IAAI,GAAG,sBAAsB;AACnCL,IAAAA,KAAK,CAACvB,YAAY,GAAGF,QAAQ,CAACE,YAAY;AAC1C,IAAA,MAAMuB,KAAK;AACf,EAAA;EAEA,MAAMmD,IAAI,GAAGC,gBAAgB,CAAC9E,KAAK,EAAEC,QAAQ,EAAE2E,GAAG,CAAC;EAEnD,OAAO;AACHxE,IAAAA,WAAW,EAAEnC,IAAI,KAAKP,YAAY,GAAGA,YAAY,GAAGC,UAAU;AAC9DwC,IAAAA,YAAY,EAAE,KAAK;AACnBiB,IAAAA,aAAa,EAAE,KAAK;AACpBC,IAAAA,SAAS,EAAE,IAAI;AACfC,IAAAA,kBAAkB,EAAE,IAAI;IACxBH,WAAW,EAAElB,QAAQ,CAACsB,YAAY;IAClCA,YAAY,EAAEtB,QAAQ,CAACsB,YAAY;IACnCyB,UAAU,EAAE/C,QAAQ,CAAC+C,UAAU;IAC/BC,QAAQ,EAAEhD,QAAQ,CAACgD,QAAQ;AAC3B8B,IAAAA,YAAY,EAAE,aAAa;AAC3BrB,IAAAA,aAAa,EAAEzD,QAAQ,CAACyD,aAAa,IAAI,aAAa;IACtDR,aAAa,EAAEjD,QAAQ,CAACiD,aAAa;IACrCE,UAAU,EAAEnD,QAAQ,CAACmD,UAAU;IAC/BgB,UAAU,EAAEnE,QAAQ,CAACmE,UAAU;AAC/BT,IAAAA,eAAe,EAAE1D,QAAQ,CAAC+C,UAAU,GAAG/C,QAAQ,CAACmE,UAAU,GAAGnE,QAAQ,CAAC+C,UAAU,GAAG,CAAC;IACpF/C,QAAQ;AACR4E,IAAAA;GACH;AACL;AAEA,SAASC,gBAAgBA,CAAC9E,KAAK,EAAEC,QAAQ,EAAE2E,GAAG,EAC9C;AACI,EAAA,MAAMI,cAAc,GAAG/E,QAAQ,CAACiD,aAAa,GAAG,CAAC;AACjD,EAAA,IAAI,CAAC+B,MAAM,CAACC,SAAS,CAACF,cAAc,CAAC,IAAIA,cAAc,IAAI,CAAC,IAAI/E,QAAQ,CAACqD,SAAS,GAAG0B,cAAc,KAAK,CAAC,EACzG;IACI,MAAMtD,KAAK,GAAG,IAAII,KAAK,CAAC,iCAAiC7B,QAAQ,CAACiD,aAAa,CAAA,CAAE,CAAC;IAClFxB,KAAK,CAACK,IAAI,GAAG,iCAAiC;AAC9CL,IAAAA,KAAK,CAACvB,YAAY,GAAGF,QAAQ,CAACE,YAAY;AAC1C,IAAA,MAAMuB,KAAK;AACf,EAAA;AAEA,EAAA,MAAMyD,WAAW,GAAGlF,QAAQ,CAACqD,SAAS,GAAG0B,cAAc;AACvD,EAAA,MAAMI,IAAI,GAAG,IAAIC,QAAQ,CAACrF,KAAK,CAACL,MAAM,EAAEK,KAAK,CAACJ,UAAU,EAAEI,KAAK,CAACH,UAAU,CAAC;AAC3E,EAAA,IAAII,QAAQ,CAAC+D,SAAS,KAAK,CAAC,EAC5B;IACI,IAAI/D,QAAQ,CAACiD,aAAa,KAAK,CAAC,EAAE,OAAO1D,UAAU,CAAC8F,IAAI,CAACtF,KAAK,CAACuF,QAAQ,CAACtF,QAAQ,CAACoD,UAAU,EAAEuB,GAAG,CAAC,CAAC;AAClG,IAAA,IAAI3E,QAAQ,CAACiD,aAAa,KAAK,EAAE,EACjC;AACI,MAAA,MAAM2B,IAAI,GAAG,IAAIW,UAAU,CAACL,WAAW,CAAC;AACxC,MAAA,KAAK,IAAIV,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGU,WAAW,EAAEV,CAAC,EAAE,EAAEI,IAAI,CAACJ,CAAC,CAAC,GAAGW,IAAI,CAACK,QAAQ,CAACxF,QAAQ,CAACoD,UAAU,GAAGoB,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;AAChG,MAAA,OAAOI,IAAI;AACf,IAAA;AACA,IAAA,IAAI5E,QAAQ,CAACiD,aAAa,KAAK,EAAE,EACjC;AACI,MAAA,MAAM2B,IAAI,GAAG,IAAIa,UAAU,CAACP,WAAW,CAAC;MACxC,KAAK,IAAIV,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGU,WAAW,EAAEV,CAAC,EAAE,EACpC;QACI,MAAM3B,MAAM,GAAG7C,QAAQ,CAACoD,UAAU,GAAGoB,CAAC,GAAG,CAAC;AAC1C,QAAA,IAAIxC,KAAK,GAAGmD,IAAI,CAACO,QAAQ,CAAC7C,MAAM,CAAC,GAAIsC,IAAI,CAACO,QAAQ,CAAC7C,MAAM,GAAG,CAAC,CAAC,IAAI,CAAE,GAAIsC,IAAI,CAACO,QAAQ,CAAC7C,MAAM,GAAG,CAAC,CAAC,IAAI,EAAG;AACxG,QAAA,IAAIb,KAAK,GAAG,QAAQ,EAAEA,KAAK,IAAI,UAAU;AACzC4C,QAAAA,IAAI,CAACJ,CAAC,CAAC,GAAGxC,KAAK;AACnB,MAAA;AACA,MAAA,OAAO4C,IAAI;AACf,IAAA;AACA,IAAA,IAAI5E,QAAQ,CAACiD,aAAa,KAAK,EAAE,EACjC;AACI,MAAA,MAAM2B,IAAI,GAAG,IAAIa,UAAU,CAACP,WAAW,CAAC;AACxC,MAAA,KAAK,IAAIV,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGU,WAAW,EAAEV,CAAC,EAAE,EAAEI,IAAI,CAACJ,CAAC,CAAC,GAAGW,IAAI,CAACQ,QAAQ,CAAC3F,QAAQ,CAACoD,UAAU,GAAGoB,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;AAChG,MAAA,OAAOI,IAAI;AACf,IAAA;AACJ,EAAA;EACA,IAAI5E,QAAQ,CAAC+D,SAAS,KAAK,CAAC,IAAI/D,QAAQ,CAACiD,aAAa,KAAK,EAAE,EAC7D;AACI,IAAA,MAAM2B,IAAI,GAAG,IAAIgB,YAAY,CAACV,WAAW,CAAC;AAC1C,IAAA,KAAK,IAAIV,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGU,WAAW,EAAEV,CAAC,EAAE,EAAEI,IAAI,CAACJ,CAAC,CAAC,GAAGW,IAAI,CAACU,UAAU,CAAC7F,QAAQ,CAACoD,UAAU,GAAGoB,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;AAClG,IAAA,OAAOI,IAAI;AACf,EAAA;EACA,IAAI5E,QAAQ,CAAC+D,SAAS,KAAK,CAAC,IAAI/D,QAAQ,CAACiD,aAAa,KAAK,EAAE,EAC7D;AACI,IAAA,MAAM2B,IAAI,GAAG,IAAIkB,YAAY,CAACZ,WAAW,CAAC;AAC1C,IAAA,KAAK,IAAIV,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGU,WAAW,EAAEV,CAAC,EAAE,EAAEI,IAAI,CAACJ,CAAC,CAAC,GAAGW,IAAI,CAACY,UAAU,CAAC/F,QAAQ,CAACoD,UAAU,GAAGoB,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;AAClG,IAAA,OAAOI,IAAI;AACf,EAAA;EAEA,MAAMnD,KAAK,GAAG,IAAII,KAAK,CAAC,oBAAoB7B,QAAQ,CAACsB,YAAY,CAAA,YAAA,CAAc,CAAC;EAChFG,KAAK,CAACK,IAAI,GAAG,iCAAiC;AAC9CL,EAAAA,KAAK,CAACvB,YAAY,GAAGF,QAAQ,CAACE,YAAY;AAC1C,EAAA,MAAMuB,KAAK;AACf;AAEA,SAASiD,yBAAyBA,CAAC1E,QAAQ,EAC3C;EACI,IAAIA,QAAQ,CAAC+D,SAAS,KAAK,CAAC,EAAE,OAAO,CAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,CAAC9E,QAAQ,CAACe,QAAQ,CAACiD,aAAa,CAAC;AACvF,EAAA,IAAIjD,QAAQ,CAAC+D,SAAS,KAAK,CAAC,EAAE,OAAO,CAAE,EAAE,EAAE,EAAE,CAAE,CAAC9E,QAAQ,CAACe,QAAQ,CAACiD,aAAa,CAAC;AAChF,EAAA,OAAO,KAAK;AAChB;AAEA,SAASiB,eAAeA,CAACH,SAAS,EAAEd,aAAa,EACjD;AACI,EAAA,IAAIc,SAAS,KAAK,CAAC,EAAE,OAAO,CAAA,KAAA,EAAQd,aAAa,CAAA,CAAE;AACnD,EAAA,IAAIc,SAAS,KAAK,CAAC,EAAE,OAAO,CAAA,GAAA,EAAMd,aAAa,CAAA,CAAE;EACjD,OAAO,CAAA,WAAA,EAAcc,SAAS,CAAA,CAAE;AACpC;AAEA,SAASE,qBAAqBA,CAAC+B,IAAI,EAAEhD,QAAQ,EAC7C;EACI,MAAMiD,KAAK,GAAG,CACV,CAAE,KAAK,EAAE,YAAY,CAAE,EAAE,CAAE,KAAK,EAAE,aAAa,CAAE,EAAE,CAAE,KAAK,EAAE,cAAc,CAAE,EAC5E,CAAE,KAAK,EAAE,eAAe,CAAE,EAAE,CAAE,KAAK,EAAE,WAAW,CAAE,EAAE,CAAE,KAAK,EAAE,YAAY,CAAE,EAC3E,CAAE,KAAK,EAAE,sBAAsB,CAAE,EAAE,CAAE,KAAK,EAAE,uBAAuB,CAAE,EAAE,CAAE,KAAK,EAAE,aAAa,CAAE,EAC/F,CAAE,KAAK,EAAE,WAAW,CAAE,EAAE,CAAE,KAAK,EAAE,YAAY,CAAE,EAAE,CAAE,KAAK,EAAE,YAAY,CAAE,EACxE,CAAE,MAAM,EAAE,gBAAgB,CAAE,EAAE,CAAE,MAAM,EAAE,kBAAkB,CAAE,EAAE,CAAE,MAAM,EAAE,iBAAiB,CAAE,EAC3F,CAAE,MAAM,EAAE,eAAe,CAAE,EAAE,CAAE,OAAO,EAAE,iBAAiB,CAAE,EAAE,CAAE,OAAO,EAAE,gBAAgB,CAAE,CAC7F;EACD,MAAMC,MAAM,GAAGD,KAAK,CAACE,MAAM,CAAC,CAAC,CAAEC,GAAG,CAAE,KAAKJ,IAAI,GAAGI,GAAG,CAAC,CAACjE,GAAG,CAAC,CAAC,GAAIkE,IAAI,CAAE,KAAKA,IAAI,CAAC;AAC9E,EAAA,OAAOH,MAAM,CAAC3B,MAAM,KAAKvB,QAAQ,GAAGkD,MAAM,GAAGA,MAAM,CAAC3B,MAAM,GAAG2B,MAAM,GAAG,aAAa;AACvF;;;;"}
1
+ {"version":3,"file":"helpers.js","sources":["../../../../../src/formats/wav/core/helpers.js"],"sourcesContent":["export const OUTPUT_AUDIO = \"audio\";\nexport const OUTPUT_PCM = \"pcm\";\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_JSON = \"json\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_RAW,\n inputType: \"\",\n source: \"\"\n});\n\nconst DEBUG_OUTPUTS = Object.freeze({\n wav: \"wavJson\",\n mp3: \"mp3Json\"\n});\n\n/**\n * Normalizes reader options against their supported defaults for the WAV format\n * reader.\n */\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsAudioFormat\")\n{\n const values = { ...DEFAULT_VALUES, ...(base || {}), ...(options || {}) };\n values.inputType = normalizeInputType(values.inputType);\n values.emit = normalizeEmit(values.emit, values.inputType, readerName);\n return values;\n}\n\n/** Normalizes the requested input representation for the WAV format reader. */\nexport function normalizeInputType(inputType)\n{\n return inputType ? String(inputType).replace(/^\\./u, \"\").toLowerCase() : \"\";\n}\n\n/** Normalizes the requested output representation for the WAV format reader. */\nexport function normalizeEmit(emit, inputType, readerName)\n{\n if (emit === undefined || emit === null) return OUTPUT_RAW;\n if (emit === OUTPUT_JSON && inputType) return DEBUG_OUTPUTS[inputType] || OUTPUT_JSON;\n if ([ OUTPUT_AUDIO, OUTPUT_PCM, OUTPUT_RAW, OUTPUT_JSON ].includes(emit)) return emit;\n if (Object.values(DEBUG_OUTPUTS).includes(emit)) return emit;\n throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(emit)}`);\n}\n\n/** Returns a byte view over the supplied binary input for the WAV format reader. */\nexport function toBytes(input)\n{\n if (input instanceof Uint8Array) return input;\n if (input instanceof ArrayBuffer) return new Uint8Array(input);\n if (ArrayBuffer.isView(input)) return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);\n throw new TypeError(\"Audio input must be Uint8Array, ArrayBuffer, or DataView\");\n}\n\n/** Inspects input using normalized format options for the WAV format reader. */\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = toBytes(input);\n const metadata = inspectBytes(bytes);\n if (expectedType && metadata.sourceFormat && metadata.sourceFormat !== expectedType)\n {\n throw new TypeError(`CjsAudioFormat: expected ${expectedType}, got ${metadata.sourceFormat}`);\n }\n return {\n payloadType: \"audio\",\n mediaTypes: [ \"audio\" ],\n byteLength: bytes.byteLength,\n sourceFormat: expectedType || values.inputType || metadata.sourceFormat,\n ...metadata\n };\n}\n\n/**\n * Reports whether input is supported under normalized format options for the WAV\n * format reader.\n */\nexport function probeSupportWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n try\n {\n const metadata = inspectWithValues(input, values, expectedType);\n const canEmitPcm = metadata.sourceFormat === \"wav\" && canEmitWavPcm(metadata);\n const mimeType = getAudioMimeType(metadata);\n return {\n format: metadata.sourceFormat,\n source: values.source || \"buffer\",\n supported: metadata.sourceFormat ? (canEmitPcm ? \"full\" : \"partial\") : \"none\",\n confidence: metadata.sourceFormat ? 1 : 0,\n preferredOutput: canEmitPcm ? \"pcm\" : \"raw\",\n reason: metadata.sourceFormat ? \"Container/header recognized.\" : \"Unrecognized audio format.\",\n metadata,\n variants: [\n {\n kind: \"raw\",\n payloadType: \"raw\",\n codec: metadata.audioFormat || metadata.sourceFormat,\n mimeType,\n supported: true,\n },\n {\n kind: \"pcm\",\n codec: metadata.sampleFormat || \"pcm\",\n supported: canEmitPcm,\n payloadType: canEmitPcm ? \"pcm\" : \"pcm\",\n reason: canEmitPcm ? \"\" : \"Only WAV PCM/IEEE-float data chunks can be emitted as PCM.\"\n }\n ],\n warnings: [],\n errors: []\n };\n }\n catch (error)\n {\n return {\n format: expectedType || values.inputType || \"\",\n source: values.source || \"buffer\",\n supported: \"none\",\n confidence: 0,\n preferredOutput: \"\",\n reason: error.message,\n metadata: null,\n variants: [],\n warnings: [],\n errors: [ error.message ]\n };\n }\n}\n\n/** Reads input using normalized format options for the WAV format reader. */\nexport function readWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = toBytes(input);\n const metadata = inspectWithValues(bytes, values, expectedType);\n if (values.emit === OUTPUT_RAW)\n {\n return {\n payloadType: \"raw\",\n sourceFormat: metadata.sourceFormat,\n mimeType: getAudioMimeType(metadata),\n metadata,\n bytes\n };\n }\n if (values.emit === OUTPUT_JSON || values.emit === DEBUG_OUTPUTS[metadata.sourceFormat]) return metadata;\n if ((values.emit === OUTPUT_PCM || values.emit === OUTPUT_AUDIO) && metadata.sourceFormat === \"wav\")\n {\n return readWavPcm(bytes, metadata, values.emit);\n }\n\n const error = new Error(`${metadata.sourceFormat}: emit \"${values.emit}\" is not implemented yet`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED\";\n error.sourceFormat = metadata.sourceFormat;\n error.emit = values.emit;\n throw error;\n}\n\nfunction getAudioMimeType(metadata)\n{\n if (metadata.sourceFormat === \"mp3\") return \"audio/mpeg\";\n return \"audio/wav\";\n}\n\n/** Converts a parsed payload into a JSON-safe value for the WAV format reader. */\nexport function toJsonValue(value)\n{\n if (value instanceof Uint8Array) return { byteLength: value.byteLength };\n if (Array.isArray(value)) return value.map(toJsonValue);\n if (value && typeof value === \"object\")\n {\n const output = {};\n for (const [ key, entry ] of Object.entries(value)) output[key] = toJsonValue(entry);\n return output;\n }\n return value;\n}\n\n/**\n * Inspects the supplied bytes without decoding their payload for the WAV format\n * reader.\n */\nexport function inspectBytes(bytes)\n{\n if (isWAV(bytes)) return inspectWAV(bytes);\n if (isMP3(bytes)) return inspectMP3(bytes);\n return { sourceFormat: \"\", audioFormat: \"\" };\n}\n\n/**\n * Reports whether the supplied bytes have a RIFF/WAVE header for the WAV format\n * reader.\n */\nexport function isWAV(bytes)\n{\n return bytes.byteLength >= 12 && fourCc(bytes, 0) === \"RIFF\" && fourCc(bytes, 8) === \"WAVE\";\n}\n\n/**\n * Reports whether the supplied bytes have a supported MP3 header for the WAV\n * format reader.\n */\nexport function isMP3(bytes)\n{\n return bytes.byteLength >= 3 &&\n (fourCc(bytes, 0, 3) === \"ID3\" || (bytes[0] === 0xff && (bytes[1] & 0xe0) === 0xe0));\n}\n\nfunction inspectWAV(bytes)\n{\n let offset = 12;\n const info = {\n sourceFormat: \"wav\",\n audioFormat: \"wav\",\n sampleRate: 0,\n channels: 0,\n bitsPerSample: 0,\n byteRate: 0,\n blockAlign: 0,\n dataOffset: 0,\n dataBytes: 0,\n containerFormatTag: 0,\n validBitsPerSample: 0,\n channelMask: 0,\n channelLayout: \"unspecified\",\n durationSeconds: 0\n };\n while (offset + 8 <= bytes.byteLength)\n {\n const id = fourCc(bytes, offset), size = readU32LE(bytes, offset + 4), dataOffset = offset + 8;\n if (id === \"fmt \" && dataOffset + 16 <= bytes.byteLength)\n {\n const containerFormatTag = readU16LE(bytes, dataOffset);\n info.containerFormatTag = containerFormatTag;\n info.formatTag = containerFormatTag;\n info.channels = readU16LE(bytes, dataOffset + 2);\n info.sampleRate = readU32LE(bytes, dataOffset + 4);\n info.byteRate = readU32LE(bytes, dataOffset + 8);\n info.blockAlign = readU16LE(bytes, dataOffset + 12);\n info.bitsPerSample = readU16LE(bytes, dataOffset + 14);\n info.validBitsPerSample = info.bitsPerSample;\n if (containerFormatTag === 0xfffe && size >= 40 && dataOffset + 40 <= bytes.byteLength)\n {\n info.validBitsPerSample = readU16LE(bytes, dataOffset + 18) || info.bitsPerSample;\n info.channelMask = readU32LE(bytes, dataOffset + 20);\n info.subFormatTag = readU16LE(bytes, dataOffset + 24);\n info.formatTag = info.subFormatTag;\n info.channelLayout = channelLayoutFromMask(info.channelMask, info.channels);\n }\n info.sampleFormat = wavSampleFormat(info.formatTag, info.bitsPerSample);\n }\n if (id === \"data\")\n {\n info.dataOffset = dataOffset;\n info.dataBytes = size;\n }\n offset = dataOffset + size + (size & 1);\n }\n info.frameCount = info.blockAlign ? Math.floor(info.dataBytes / info.blockAlign) : 0;\n info.durationSeconds = info.sampleRate ? info.frameCount / info.sampleRate : 0;\n return info;\n}\n\nfunction inspectMP3(bytes)\n{\n return {\n sourceFormat: \"mp3\",\n audioFormat: \"mp3\",\n hasId3: fourCc(bytes, 0, 3) === \"ID3\"\n };\n}\n\nfunction fourCc(bytes, offset, length = 4)\n{\n let value = \"\";\n for (let i = 0; i < length; i++) value += String.fromCharCode(bytes[offset + i] || 0);\n return value;\n}\n\nfunction readU16LE(bytes, offset)\n{\n return bytes[offset] | (bytes[offset + 1] << 8);\n}\n\nfunction readU32LE(bytes, offset)\n{\n return (bytes[offset] | (bytes[offset + 1] << 8) | (bytes[offset + 2] << 16) | (bytes[offset + 3] * 0x1000000)) >>> 0;\n}\n\nfunction canEmitWavPcm(metadata)\n{\n return metadata.dataOffset > 0 &&\n [ 1, 3 ].includes(metadata.formatTag) &&\n metadata.channels > 0 &&\n metadata.sampleRate > 0 &&\n canReadWavSampleWidth(metadata);\n}\n\nfunction readWavPcm(bytes, metadata, emit)\n{\n if (!canEmitWavPcm(metadata))\n {\n const error = new Error(\"wav: only PCM and IEEE-float WAV data chunks can be emitted as PCM\");\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = metadata.sourceFormat;\n throw error;\n }\n\n const end = metadata.dataOffset + metadata.dataBytes;\n if (end > bytes.byteLength)\n {\n const error = new Error(\"wav: data chunk is truncated\");\n error.code = \"CJS_FORMAT_TRUNCATED\";\n error.sourceFormat = metadata.sourceFormat;\n throw error;\n }\n\n const data = decodeWavSamples(bytes, metadata, end);\n\n return {\n payloadType: emit === OUTPUT_AUDIO ? OUTPUT_AUDIO : OUTPUT_PCM,\n sourceFormat: \"wav\",\n audioFormat: metadata.sampleFormat,\n sampleFormat: metadata.sampleFormat,\n sampleRate: metadata.sampleRate,\n channels: metadata.channels,\n interleaving: \"interleaved\",\n channelLayout: metadata.channelLayout || \"unspecified\",\n bitsPerSample: metadata.bitsPerSample,\n blockAlign: metadata.blockAlign,\n frameCount: metadata.frameCount,\n durationSeconds: metadata.sampleRate ? metadata.frameCount / metadata.sampleRate : 0,\n metadata,\n data\n };\n}\n\nfunction decodeWavSamples(bytes, metadata, end)\n{\n const bytesPerSample = metadata.bitsPerSample / 8;\n if (!Number.isInteger(bytesPerSample) || bytesPerSample <= 0 || metadata.dataBytes % bytesPerSample !== 0)\n {\n const error = new Error(`wav: unsupported sample width ${metadata.bitsPerSample}`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = metadata.sourceFormat;\n throw error;\n }\n\n const sampleCount = metadata.dataBytes / bytesPerSample;\n const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n if (metadata.formatTag === 1)\n {\n if (metadata.bitsPerSample === 8) return Uint8Array.from(bytes.subarray(metadata.dataOffset, end));\n if (metadata.bitsPerSample === 16)\n {\n const data = new Int16Array(sampleCount);\n for (let i = 0; i < sampleCount; i++) data[i] = view.getInt16(metadata.dataOffset + i * 2, true);\n return data;\n }\n if (metadata.bitsPerSample === 24)\n {\n const data = new Int32Array(sampleCount);\n for (let i = 0; i < sampleCount; i++)\n {\n const offset = metadata.dataOffset + i * 3;\n let value = view.getUint8(offset) | (view.getUint8(offset + 1) << 8) | (view.getUint8(offset + 2) << 16);\n if (value & 0x800000) value |= 0xff000000;\n data[i] = value;\n }\n return data;\n }\n if (metadata.bitsPerSample === 32)\n {\n const data = new Int32Array(sampleCount);\n for (let i = 0; i < sampleCount; i++) data[i] = view.getInt32(metadata.dataOffset + i * 4, true);\n return data;\n }\n }\n if (metadata.formatTag === 3 && metadata.bitsPerSample === 32)\n {\n const data = new Float32Array(sampleCount);\n for (let i = 0; i < sampleCount; i++) data[i] = view.getFloat32(metadata.dataOffset + i * 4, true);\n return data;\n }\n if (metadata.formatTag === 3 && metadata.bitsPerSample === 64)\n {\n const data = new Float64Array(sampleCount);\n for (let i = 0; i < sampleCount; i++) data[i] = view.getFloat64(metadata.dataOffset + i * 8, true);\n return data;\n }\n\n const error = new Error(`wav: unsupported ${metadata.sampleFormat} sample data`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = metadata.sourceFormat;\n throw error;\n}\n\nfunction canReadWavSampleWidth(metadata)\n{\n if (metadata.formatTag === 1) return [ 8, 16, 24, 32 ].includes(metadata.bitsPerSample);\n if (metadata.formatTag === 3) return [ 32, 64 ].includes(metadata.bitsPerSample);\n return false;\n}\n\nfunction wavSampleFormat(formatTag, bitsPerSample)\n{\n if (formatTag === 3) return `float${bitsPerSample}`;\n if (formatTag === 1) return `pcm${bitsPerSample}`;\n return `wav-format-${formatTag}`;\n}\n\nfunction channelLayoutFromMask(mask, channels)\n{\n const names = [\n [ 0x001, \"front-left\" ], [ 0x002, \"front-right\" ], [ 0x004, \"front-center\" ],\n [ 0x008, \"low-frequency\" ], [ 0x010, \"back-left\" ], [ 0x020, \"back-right\" ],\n [ 0x040, \"front-left-of-center\" ], [ 0x080, \"front-right-of-center\" ], [ 0x100, \"back-center\" ],\n [ 0x200, \"side-left\" ], [ 0x400, \"side-right\" ], [ 0x800, \"top-center\" ],\n [ 0x1000, \"top-front-left\" ], [ 0x2000, \"top-front-center\" ], [ 0x4000, \"top-front-right\" ],\n [ 0x8000, \"top-back-left\" ], [ 0x10000, \"top-back-center\" ], [ 0x20000, \"top-back-right\" ]\n ];\n const layout = names.filter(([ bit ]) => mask & bit).map(([ , name ]) => name);\n return layout.length === channels ? layout : layout.length ? layout : \"unspecified\";\n}\n"],"names":["OUTPUT_AUDIO","OUTPUT_PCM","OUTPUT_RAW","OUTPUT_JSON","DEFAULT_VALUES","Object","freeze","emit","inputType","source","DEBUG_OUTPUTS","wav","mp3","normalizeValues","base","options","readerName","values","normalizeInputType","normalizeEmit","String","replace","toLowerCase","undefined","includes","TypeError","JSON","stringify","toBytes","input","Uint8Array","ArrayBuffer","isView","buffer","byteOffset","byteLength","inspectWithValues","expectedType","bytes","metadata","inspectBytes","sourceFormat","payloadType","mediaTypes","probeSupportWithValues","canEmitPcm","canEmitWavPcm","mimeType","getAudioMimeType","format","supported","confidence","preferredOutput","reason","variants","kind","codec","audioFormat","sampleFormat","warnings","errors","error","message","readWithValues","readWavPcm","Error","code","toJsonValue","value","Array","isArray","map","output","key","entry","entries","isWAV","inspectWAV","isMP3","inspectMP3","fourCc","offset","info","sampleRate","channels","bitsPerSample","byteRate","blockAlign","dataOffset","dataBytes","containerFormatTag","validBitsPerSample","channelMask","channelLayout","durationSeconds","id","size","readU32LE","readU16LE","formatTag","subFormatTag","channelLayoutFromMask","wavSampleFormat","frameCount","Math","floor","hasId3","length","i","fromCharCode","canReadWavSampleWidth","end","data","decodeWavSamples","interleaving","bytesPerSample","Number","isInteger","sampleCount","view","DataView","from","subarray","Int16Array","getInt16","Int32Array","getUint8","getInt32","Float32Array","getFloat32","Float64Array","getFloat64","mask","names","layout","filter","bit","name"],"mappings":"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"}