@carbonenginejs/runtime 0.1.0-alpha.4 → 0.1.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (384) hide show
  1. package/dist/global/blue/BlueClasses.js +200 -0
  2. package/dist/global/blue/BlueClasses.js.map +1 -0
  3. package/dist/global/blue/IBlueClasses.js +79 -0
  4. package/dist/global/blue/IBlueClasses.js.map +1 -0
  5. package/dist/global/blue/IBlueDynamicResourceConstructor.js +16 -0
  6. package/dist/global/blue/IBlueDynamicResourceConstructor.js.map +1 -1
  7. package/dist/global/blue/blue.js +8 -2
  8. package/dist/global/blue/blue.js.map +1 -1
  9. package/dist/global/blue/index.js +2 -0
  10. package/dist/global/blue/index.js.map +1 -1
  11. package/dist/global/consts/index.js +0 -1
  12. package/dist/global/consts/index.js.map +1 -1
  13. package/dist/global/consts/renderContext/formats.js +26 -25
  14. package/dist/global/consts/renderContext/formats.js.map +1 -1
  15. package/dist/{trinityal/Tr2BitmapDimensions.js → global/imageio/BitmapDimensions.js} +19 -15
  16. package/dist/global/imageio/BitmapDimensions.js.map +1 -0
  17. package/dist/global/imageio/Cutout.js +28 -0
  18. package/dist/global/imageio/Cutout.js.map +1 -0
  19. package/dist/global/imageio/HostBitmap.js +1106 -0
  20. package/dist/global/imageio/HostBitmap.js.map +1 -0
  21. package/dist/global/imageio/ImageIOResult.js +99 -0
  22. package/dist/global/imageio/ImageIOResult.js.map +1 -0
  23. package/dist/global/imageio/ImageUtility.js +205 -0
  24. package/dist/global/imageio/ImageUtility.js.map +1 -0
  25. package/dist/global/imageio/LoadParameters.js +86 -0
  26. package/dist/global/imageio/LoadParameters.js.map +1 -0
  27. package/dist/global/imageio/Metadata.js +22 -0
  28. package/dist/global/imageio/Metadata.js.map +1 -0
  29. package/dist/global/imageio/index.js +8 -0
  30. package/dist/global/{consts/webgpu → imageio}/index.js.map +1 -1
  31. package/dist/global/index.js +2 -1
  32. package/dist/global/index.js.map +1 -1
  33. package/dist/global/math/color.js +1 -1
  34. package/dist/global/math/color.js.map +1 -1
  35. package/dist/global/schema/CjsSchema.js +8 -0
  36. package/dist/global/schema/CjsSchema.js.map +1 -1
  37. package/dist/index.js +12 -4
  38. package/dist/index.js.map +1 -1
  39. package/dist/resource/CjsResMan.js +47 -7
  40. package/dist/resource/CjsResMan.js.map +1 -1
  41. package/dist/resource/Tr2LightProfileRes.js +37 -0
  42. package/dist/resource/Tr2LightProfileRes.js.map +1 -1
  43. package/dist/resource/format/CjsByteWriter.js +46 -46
  44. package/dist/resource/format/CjsByteWriter.js.map +1 -1
  45. package/dist/resource/format/CjsFormat.js +7 -8
  46. package/dist/resource/format/CjsFormat.js.map +1 -1
  47. package/dist/resource/format/CjsFormatStore.js +8 -8
  48. package/dist/resource/format/CjsFormatStore.js.map +1 -1
  49. package/dist/resource/format/CjsGeometryFormat.js +114 -0
  50. package/dist/resource/format/CjsGeometryFormat.js.map +1 -0
  51. package/dist/resource/format/CjsImageFormat.js +282 -0
  52. package/dist/resource/format/CjsImageFormat.js.map +1 -0
  53. package/dist/resource/format/CjsResourceProbe.js +12 -48
  54. package/dist/resource/format/CjsResourceProbe.js.map +1 -1
  55. package/dist/resource/format/CjsStringTable.js +37 -37
  56. package/dist/resource/format/CjsStringTable.js.map +1 -1
  57. package/dist/resource/format/carbonEffect/CjsCarbonEffectReader.js +10 -10
  58. package/dist/resource/format/carbonEffect/CjsCarbonEffectReader.js.map +1 -1
  59. package/dist/resource/format/carbonEffect/CjsCarbonEffectWriter.js +37 -37
  60. package/dist/resource/format/carbonEffect/CjsCarbonEffectWriter.js.map +1 -1
  61. package/dist/resource/format/carbonEffect/carbonEffectBackendBlock.js +35 -7
  62. package/dist/resource/format/carbonEffect/carbonEffectBackendBlock.js.map +1 -1
  63. package/dist/resource/format/index.js +3 -1
  64. package/dist/resource/format/index.js.map +1 -1
  65. package/dist/resource/formats/black/CjsBlackFormat.js +130 -137
  66. package/dist/resource/formats/black/CjsBlackFormat.js.map +1 -1
  67. package/dist/resource/formats/bnk/CjsBnkFormat.js +12 -19
  68. package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
  69. package/dist/resource/formats/bnk/core/helpers.js +1 -3
  70. package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
  71. package/dist/resource/formats/cmf/CjsCmfFormat.js +19 -82
  72. package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
  73. package/dist/resource/formats/cmf/core/constants.js +1 -2
  74. package/dist/resource/formats/cmf/core/constants.js.map +1 -1
  75. package/dist/resource/formats/{stl/core/targets.js → cmf/core/flatShared.js} +9 -8
  76. package/dist/resource/formats/cmf/core/flatShared.js.map +1 -0
  77. package/dist/resource/formats/cmf/core/helpers.js +13 -13
  78. package/dist/resource/formats/cmf/core/helpers.js.map +1 -1
  79. package/dist/resource/formats/cmf/core/writer.js +24 -24
  80. package/dist/resource/formats/cmf/core/writer.js.map +1 -1
  81. package/dist/resource/formats/dds/CjsDdsFormat.js +134 -17
  82. package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
  83. package/dist/resource/formats/dds/core/helpers.js +125 -40
  84. package/dist/resource/formats/dds/core/helpers.js.map +1 -1
  85. package/dist/resource/formats/dxbc/CjsDxbcFormat.js +14 -16
  86. package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
  87. package/dist/resource/formats/dxbc/core/{container.js → DxbcContainer.js} +2 -2
  88. package/dist/resource/formats/dxbc/core/DxbcContainer.js.map +1 -0
  89. package/dist/resource/formats/dxbc/core/{errors.js → DxbcReadError.js} +1 -1
  90. package/dist/resource/formats/dxbc/core/DxbcReadError.js.map +1 -0
  91. package/dist/resource/formats/dxbc/core/DxbcReader.js +1 -1
  92. package/dist/resource/formats/dxbc/core/DxbcReader.js.map +1 -1
  93. package/dist/resource/formats/dxbc/core/{program.js → DxbcShaderProgram.js} +2 -2
  94. package/dist/resource/formats/dxbc/core/DxbcShaderProgram.js.map +1 -0
  95. package/dist/resource/formats/dxbc/core/{signature.js → DxbcSignatureChunk.js} +2 -2
  96. package/dist/resource/formats/dxbc/core/DxbcSignatureChunk.js.map +1 -0
  97. package/dist/resource/formats/dxbc/core/decoder.js +2 -2
  98. package/dist/resource/formats/dxbc/core/decoder.js.map +1 -1
  99. package/dist/resource/formats/dxbc/core/helpers.js +3 -3
  100. package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
  101. package/dist/resource/formats/fbx/CjsFbxFormat.js +18 -20
  102. package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
  103. package/dist/resource/formats/flac/CjsFlacFormat.js +7 -13
  104. package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
  105. package/dist/resource/formats/fsd/32/CjsFsd32Format.js +29 -29
  106. package/dist/resource/formats/fsd/32/CjsFsd32Format.js.map +1 -1
  107. package/dist/resource/formats/fsd/64/CjsFsd64Format.js +3 -3
  108. package/dist/resource/formats/fsd/64/CjsFsd64Format.js.map +1 -1
  109. package/dist/resource/formats/fsd/64/core/CjsFsd64Binary.js +23 -23
  110. package/dist/resource/formats/fsd/64/core/CjsFsd64Binary.js.map +1 -1
  111. package/dist/resource/formats/fsd/64/core/CjsFsd64Reader.js +8 -8
  112. package/dist/resource/formats/fsd/64/core/CjsFsd64Reader.js.map +1 -1
  113. package/dist/resource/formats/fsd/CjsFsdFormat.js +23 -23
  114. package/dist/resource/formats/fsd/CjsFsdFormat.js.map +1 -1
  115. package/dist/resource/formats/gif/CjsGifFormat.js +24 -15
  116. package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
  117. package/dist/resource/formats/gltf/CjsGltfFormat.js +33 -98
  118. package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
  119. package/dist/resource/formats/gltf/core/helpers.js +3 -12
  120. package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
  121. package/dist/resource/formats/gr2/CjsGr2Format.js +27 -91
  122. package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
  123. package/dist/resource/formats/hlsl/CjsHlslFormat.js +22 -25
  124. package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
  125. package/dist/resource/formats/hlsl/core/carbonDescriptionToRuntime.js +1 -1
  126. package/dist/resource/formats/hlsl/core/carbonDescriptionToRuntime.js.map +1 -1
  127. package/dist/resource/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js +3 -3
  128. package/dist/resource/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js.map +1 -1
  129. package/dist/resource/formats/ies/CjsIESFormat.js +29 -29
  130. package/dist/resource/formats/ies/CjsIESFormat.js.map +1 -1
  131. package/dist/resource/formats/jpeg/CjsJpegFormat.js +24 -15
  132. package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
  133. package/dist/resource/formats/jpeg/core/helpers.js +3 -5
  134. package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
  135. package/dist/resource/formats/jpeg/core/jpeg.js +58 -58
  136. package/dist/resource/formats/jpeg/core/jpeg.js.map +1 -1
  137. package/dist/resource/formats/jsonl/CjsJsonlFormat.js +3 -3
  138. package/dist/resource/formats/jsonl/CjsJsonlFormat.js.map +1 -1
  139. package/dist/resource/formats/mp3/CjsMp3Format.js +7 -14
  140. package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
  141. package/dist/resource/formats/mp3/core/helpers.js +3 -5
  142. package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
  143. package/dist/resource/formats/mp4/CjsMp4Format.js +7 -13
  144. package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
  145. package/dist/resource/formats/mp4/core/helpers.js +3 -5
  146. package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
  147. package/dist/resource/formats/obj/CjsObjFormat.js +92 -157
  148. package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
  149. package/dist/resource/formats/obj/core/helpers.js +5 -113
  150. package/dist/resource/formats/obj/core/helpers.js.map +1 -1
  151. package/dist/resource/formats/ogg/CjsOggFormat.js +7 -14
  152. package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
  153. package/dist/resource/formats/pickle/CjsPickleFormat.js +7 -12
  154. package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
  155. package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js +7 -7
  156. package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js.map +1 -1
  157. package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js +7 -7
  158. package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js.map +1 -1
  159. package/dist/resource/formats/png/CjsPngFormat.js +40 -15
  160. package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
  161. package/dist/resource/formats/png/core/helpers.js +4 -6
  162. package/dist/resource/formats/png/core/helpers.js.map +1 -1
  163. package/dist/resource/formats/red/CjsRedFormat.js +22 -28
  164. package/dist/resource/formats/red/CjsRedFormat.js.map +1 -1
  165. package/dist/resource/formats/schemabound/CjsSchemaBoundFormat.js +3 -7
  166. package/dist/resource/formats/schemabound/CjsSchemaBoundFormat.js.map +1 -1
  167. package/dist/resource/formats/schemabound/core/schemaBoundValues.js +5 -0
  168. package/dist/resource/formats/schemabound/core/schemaBoundValues.js.map +1 -1
  169. package/dist/resource/formats/sqlite/CjsSqliteFormat.js +4 -9
  170. package/dist/resource/formats/sqlite/CjsSqliteFormat.js.map +1 -1
  171. package/dist/resource/formats/static/CjsStaticFormat.js +4 -4
  172. package/dist/resource/formats/static/CjsStaticFormat.js.map +1 -1
  173. package/dist/resource/formats/stl/CjsStlFormat.js +39 -104
  174. package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
  175. package/dist/resource/formats/stl/core/helpers.js +5 -19
  176. package/dist/resource/formats/stl/core/helpers.js.map +1 -1
  177. package/dist/resource/formats/tga/CjsTgaFormat.js +26 -15
  178. package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
  179. package/dist/resource/formats/tga/core/helpers.js +3 -5
  180. package/dist/resource/formats/tga/core/helpers.js.map +1 -1
  181. package/dist/resource/formats/vta/CjsVtaFormat.js +8 -15
  182. package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
  183. package/dist/resource/formats/wav/CjsWavFormat.js +7 -14
  184. package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
  185. package/dist/resource/formats/wav/core/helpers.js +3 -5
  186. package/dist/resource/formats/wav/core/helpers.js.map +1 -1
  187. package/dist/resource/formats/webgl/CjsWebglFormat.js +103 -105
  188. package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
  189. package/dist/resource/formats/webgl/core/{errors.js → WebglReadError.js} +1 -1
  190. package/dist/resource/formats/webgl/core/WebglReadError.js.map +1 -0
  191. package/dist/resource/formats/webgl/core/effectPackage.js +1 -1
  192. package/dist/resource/formats/webgl/core/effectPackage.js.map +1 -1
  193. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +3 -3
  194. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
  195. package/dist/resource/formats/webgl/core/glsl/{DxbcGlslHelpers.js → DxbcGlslHelperRegistry.js} +2 -2
  196. package/dist/resource/formats/webgl/core/glsl/DxbcGlslHelperRegistry.js.map +1 -0
  197. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +1 -1
  198. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
  199. package/dist/resource/formats/webgl/core/glslBackendBlock.js +1 -1
  200. package/dist/resource/formats/webgl/core/glslBackendBlock.js.map +1 -1
  201. package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
  202. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +28 -29
  203. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
  204. package/dist/resource/formats/webgpu/core/{errors.js → WebgpuReadError.js} +1 -1
  205. package/dist/resource/formats/webgpu/core/WebgpuReadError.js.map +1 -0
  206. package/dist/resource/formats/webgpu/core/carbonWebgpu/validateContainer.js +1 -1
  207. package/dist/resource/formats/webgpu/core/carbonWebgpu/validateContainer.js.map +1 -1
  208. package/dist/resource/formats/webgpu/core/helpers.js +1 -1
  209. package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
  210. package/dist/resource/formats/webgpu/core/ir/lowerDxbcToIr.js +1 -1
  211. package/dist/resource/formats/webgpu/core/ir/lowerDxbcToIr.js.map +1 -1
  212. package/dist/resource/formats/webgpu/core/wgsl/buildWgslSet.js +18 -6
  213. package/dist/resource/formats/webgpu/core/wgsl/buildWgslSet.js.map +1 -1
  214. package/dist/resource/formats/webgpu/core/wgsl/lowerBindingLayout.js +39 -13
  215. package/dist/resource/formats/webgpu/core/wgsl/lowerBindingLayout.js.map +1 -1
  216. package/dist/resource/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js +16 -14
  217. package/dist/resource/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js.map +1 -1
  218. package/dist/resource/formats/webm/CjsWebmFormat.js +8 -13
  219. package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
  220. package/dist/resource/formats/webm/core/helpers.js +3 -5
  221. package/dist/resource/formats/webm/core/helpers.js.map +1 -1
  222. package/dist/resource/formats/webp/CjsWebpFormat.js +8 -12
  223. package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
  224. package/dist/resource/formats/wem/CjsWemFormat.js +9 -17
  225. package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
  226. package/dist/resource/formats/wem/core/bitStream.js +35 -35
  227. package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
  228. package/dist/resource/formats/wem/core/helpers.js +1 -3
  229. package/dist/resource/formats/wem/core/helpers.js.map +1 -1
  230. package/dist/resource/formats/yaml/CjsYamlFormat.js +28 -37
  231. package/dist/resource/formats/yaml/CjsYamlFormat.js.map +1 -1
  232. package/dist/resource/imageio/ImageIO.js +142 -0
  233. package/dist/resource/imageio/ImageIO.js.map +1 -0
  234. package/dist/resource/imageio/index.js +17 -0
  235. package/dist/resource/imageio/index.js.map +1 -0
  236. package/dist/resource/index.js +7 -0
  237. package/dist/resource/index.js.map +1 -1
  238. package/dist/resource/shader/reflection/Tr2EffectResource.js +24 -2
  239. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
  240. package/dist/resource/shader/reflection/Tr2Pass.js +76 -5
  241. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  242. package/dist/resource/texture/CjsTextureArrayConstructor.js +97 -0
  243. package/dist/resource/texture/CjsTextureArrayConstructor.js.map +1 -0
  244. package/dist/resource/texture/CjsTexturePackConstructor.js +160 -0
  245. package/dist/resource/texture/CjsTexturePackConstructor.js.map +1 -0
  246. package/dist/resource/texture/CjsTexturePipelineStepArray.js +72 -0
  247. package/dist/resource/texture/CjsTexturePipelineStepArray.js.map +1 -0
  248. package/dist/resource/texture/CjsTexturePipelineStepConvert.js +73 -0
  249. package/dist/resource/texture/CjsTexturePipelineStepConvert.js.map +1 -0
  250. package/dist/resource/texture/CjsTexturePipelineStepPack.js +71 -0
  251. package/dist/resource/texture/CjsTexturePipelineStepPack.js.map +1 -0
  252. package/dist/resource/texture/CjsTexturePipelineStepResize.js +123 -0
  253. package/dist/resource/texture/CjsTexturePipelineStepResize.js.map +1 -0
  254. package/dist/resource/texture/SolidColorTextureConstructor.js +11 -1
  255. package/dist/resource/texture/SolidColorTextureConstructor.js.map +1 -1
  256. package/dist/resource/texture/Tr2ImageRes.js +100 -68
  257. package/dist/resource/texture/Tr2ImageRes.js.map +1 -1
  258. package/dist/resource/texture/Tr2TexturePipeline.js +45 -25
  259. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
  260. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +34 -1
  261. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
  262. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +30 -3
  263. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
  264. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +81 -1
  265. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
  266. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +36 -1
  267. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
  268. package/dist/resource/texture/Tr2TexturePipelineStepPack.js +146 -24
  269. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
  270. package/dist/resource/texture/TriTextureRes.js +151 -29
  271. package/dist/resource/texture/TriTextureRes.js.map +1 -1
  272. package/dist/resource/texture/index.js +7 -0
  273. package/dist/resource/texture/index.js.map +1 -1
  274. package/dist/resource/texture/registerTextureResources.js +83 -0
  275. package/dist/resource/texture/registerTextureResources.js.map +1 -0
  276. package/dist/resource/texture/solidColorTexture.js +10 -19
  277. package/dist/resource/texture/solidColorTexture.js.map +1 -1
  278. package/dist/sof/EveSOF.js +39 -7
  279. package/dist/sof/EveSOF.js.map +1 -1
  280. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js +2 -2
  281. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -1
  282. package/dist/trinity/core/Tr2ImageIOHelpers.js +80 -17
  283. package/dist/trinity/core/Tr2ImageIOHelpers.js.map +1 -1
  284. package/dist/trinity/core/Tr2RenderUtils.js +1 -1
  285. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js +49 -62
  286. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -1
  287. package/dist/trinity/core/Tr2TextureReference.js +114 -0
  288. package/dist/trinity/core/Tr2TextureReference.js.map +1 -0
  289. package/dist/trinity/core/device/Tr2DepthStencil.js +2 -2
  290. package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
  291. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js +1 -1
  292. package/dist/trinity/core/index.js +1 -0
  293. package/dist/trinity/core/index.js.map +1 -1
  294. package/dist/trinity/core/lighting/Tr2LightManager.js +5 -4
  295. package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
  296. package/dist/trinity/core/procedural/GradientTextureConstructor.js +5 -4
  297. package/dist/trinity/core/procedural/GradientTextureConstructor.js.map +1 -1
  298. package/dist/trinity/core/procedural/gradientTexture.js +10 -13
  299. package/dist/trinity/core/procedural/gradientTexture.js.map +1 -1
  300. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +1 -1
  301. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
  302. package/dist/trinity/eve/EveImpactOverlay.js +102 -50
  303. package/dist/trinity/eve/EveImpactOverlay.js.map +1 -1
  304. package/dist/trinity/eve/EveModularObjectModifier.js +9 -18
  305. package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
  306. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +175 -157
  307. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  308. package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js +100 -83
  309. package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js.map +1 -1
  310. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +26 -20
  311. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -1
  312. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js +368 -179
  313. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -1
  314. package/dist/trinity/eve/child/EveChildMesh.js +242 -234
  315. package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
  316. package/dist/trinity/eve/child/EveChildTurret.js +57 -16
  317. package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
  318. package/dist/trinity/eve/child/EveSpaceObjectChild.js +28 -1
  319. package/dist/trinity/eve/child/EveSpaceObjectChild.js.map +1 -1
  320. package/dist/trinity/eve/index.js +2 -2
  321. package/dist/trinity/eve/overlays/EveDamageOverlay.js +5 -1
  322. package/dist/trinity/eve/overlays/EveDamageOverlay.js.map +1 -1
  323. package/dist/trinity/eve/scene/EveSpaceScene.js +234 -233
  324. package/dist/trinity/eve/scene/EveSpaceScene.js.map +1 -1
  325. package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js +2 -0
  326. package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js.map +1 -1
  327. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +492 -437
  328. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  329. package/dist/trinity/generated/index.js +0 -1
  330. package/dist/trinity/generated/index.js.map +1 -1
  331. package/dist/trinity/generated/trinityCore/index.js +0 -1
  332. package/dist/trinity/generated/trinityCore/index.js.map +1 -1
  333. package/dist/trinity/index.js +3 -3
  334. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +10 -1
  335. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
  336. package/dist/trinity/shader/Tr2DataTextureManager.js +152 -66
  337. package/dist/trinity/shader/Tr2DataTextureManager.js.map +1 -1
  338. package/dist/trinity/shader/Tr2Material.js +1 -1
  339. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js +5 -5
  340. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -1
  341. package/dist/trinityal/index.js +1 -1
  342. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js +2 -2
  343. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -1
  344. package/dist/trinityal/stub/Tr2SwapChainALStub.js +45 -45
  345. package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
  346. package/dist/trinityal/stub/Tr2TextureALStub.js +170 -170
  347. package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
  348. package/dist/trinityal/webgpu/CjsWebgpuDevice.js +234 -164
  349. package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
  350. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +7 -0
  351. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
  352. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +78 -14
  353. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
  354. package/dist/trinityal/webgpu/core/CjsWebgpuUtils.js +94 -0
  355. package/dist/trinityal/webgpu/core/CjsWebgpuUtils.js.map +1 -0
  356. package/dist/trinityal/webgpu/internal.js +1 -0
  357. package/dist/trinityal/webgpu/internal.js.map +1 -1
  358. package/docs/global/reference/classes/README.md +90 -0
  359. package/docs/resource/concepts/format-capabilities.md +3 -3
  360. package/docs/resource/formats/README.md +1 -1
  361. package/docs/resource/reference/classes/core.md +31 -1
  362. package/docs/resource/reference/classes/formats.md +7 -7
  363. package/docs/resource/reference/classes/resources.md +76 -16
  364. package/docs/trinity/reference/classes/generated.md +0 -10
  365. package/docs/trinity/reference/classes/trinity-core.md +1692 -1682
  366. package/docs/trinityal/reference/classes/README.md +0 -10
  367. package/docs/trinityal/webgpu/reference/classes/README.md +276 -266
  368. package/package.json +4 -3
  369. package/dist/global/consts/webgpu/index.js +0 -2
  370. package/dist/global/consts/webgpu/textureFormats.js +0 -180
  371. package/dist/global/consts/webgpu/textureFormats.js.map +0 -1
  372. package/dist/resource/formats/dxbc/core/container.js.map +0 -1
  373. package/dist/resource/formats/dxbc/core/errors.js.map +0 -1
  374. package/dist/resource/formats/dxbc/core/program.js.map +0 -1
  375. package/dist/resource/formats/dxbc/core/signature.js.map +0 -1
  376. package/dist/resource/formats/stl/core/targets.js.map +0 -1
  377. package/dist/resource/formats/webgl/core/errors.js.map +0 -1
  378. package/dist/resource/formats/webgl/core/glsl/DxbcGlslHelpers.js.map +0 -1
  379. package/dist/resource/formats/webgpu/core/errors.js.map +0 -1
  380. package/dist/resource/texture/texturePipelineBehavior.js +0 -332
  381. package/dist/resource/texture/texturePipelineBehavior.js.map +0 -1
  382. package/dist/trinity/generated/trinityCore/Tr2TextureReference.js +0 -40
  383. package/dist/trinity/generated/trinityCore/Tr2TextureReference.js.map +0 -1
  384. package/dist/trinityal/Tr2BitmapDimensions.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CjsWebmFormat.js","sources":["../../../../../src/resource/formats/webm/CjsWebmFormat.js"],"sourcesContent":["import { asUint8Array } from \"#utils/bytes\";\nimport { CjsFormat } from \"../../format/CjsFormat.js\";\nimport {\n DEFAULT_VALUES,\n OUTPUT_JSON,\n OUTPUT_RAW,\n OUTPUT_VIDEO,\n inspectWithValues,\n probeSupportWithValues,\n isWebM,\n normalizeValues,\n readWithValues,\n toJsonValue\n} from \"./core/helpers.js\";\n\nconst FORMAT_NAME = \"CjsWebmFormat\";\n\n/**\n * WebM container format profile that inspects EBML segment and track\n * structure and emits raw bytes, debug JSON, or a container-only video\n * payload with codec and duration summaries but no frame decoding.\n */\nexport class CjsWebmFormat extends CjsFormat\n{\n #values = DEFAULT_VALUES;\n\n /**\n * Create a reusable WebM 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 {CjsWebmFormat} This format profile.\n */\n SetValues(options = {})\n {\n this.#values = normalizeValues(this.#values, { inputType: \"webm\", ...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: \"webm\", ...options }, FORMAT_NAME);\n }\n\n /**\n * Read WebM bytes with this profile.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WebM bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} GPU-free raw/debug payload for the selected emit target.\n */\n Read(input, options = {})\n {\n return readWithValues(input, this.GetValues(options), \"webm\");\n }\n\n /**\n * Read WebM bytes asynchronously with this profile.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WebM bytes.\n * @param {object} [options] Per-call values.\n * @returns {Promise<object>} GPU-free raw/debug payload for the selected emit target.\n */\n async ReadAsync(input, options = {})\n {\n return this.Read(input, options);\n }\n\n /**\n * Inspect WebM bytes without decoding media samples.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WebM bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} WebM container metadata.\n */\n Inspect(input, options = {})\n {\n return inspectWithValues(input, this.GetValues(options), \"webm\");\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 WebM read.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WebM bytes.\n * @param {object} [options] Read options.\n * @returns {object} GPU-free raw/debug payload for the selected emit target.\n */\n static read(input, options = {})\n {\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"webm\", ...options }, FORMAT_NAME), \"webm\");\n }\n\n /**\n * One-shot asynchronous WebM read.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WebM bytes.\n * @param {object} [options] Read options.\n * @returns {Promise<object>} GPU-free raw/debug payload for the selected emit target.\n */\n static async readAsync(input, options = {})\n {\n return CjsWebmFormat.read(input, options);\n }\n\n /**\n * One-shot WebM inspection.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WebM bytes.\n * @param {object} [options] Inspect options.\n * @returns {object} WebM container metadata.\n */\n static inspect(input, options = {})\n {\n return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"webm\", ...options }, FORMAT_NAME), \"webm\");\n }\n\n /**\n * One-shot WebM support probe.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WebM bytes.\n * @param {object} [options] Probe options.\n * @returns {object} Support/probe report.\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 WebM file.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Candidate WebM bytes.\n * @returns {boolean} True when the EBML signature is present.\n */\n static isWebM(input)\n {\n try\n {\n return isWebM(asUint8Array(input, \"Video 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 VIDEO: OUTPUT_VIDEO,\n RAW: OUTPUT_RAW,\n JSON: OUTPUT_JSON\n });\n\n static OUTPUT_WEBM_JSON = \"webmJson\";\n\n static id = \"webm\";\n\n static mediaTypes = Object.freeze([ \"video\" ]);\n\n static outputs = CjsFormat.defineOutputs({\n\n video: { },\n\n webmJson: { role: \"debug\", probes: [ \"webmJson\", \"raw\" ] },\n\n raw: { role: \"debug\", default: true, passthrough: true }\n\n });\n\n static extensions = Object.freeze([ \".webm\" ]);\n}\n\nexport default CjsWebmFormat;\n"],"names":["FORMAT_NAME","CjsWebmFormat","CjsFormat","DEFAULT_VALUES","constructor","options","SetValues","normalizeValues","inputType","GetValues","Read","input","readWithValues","ReadAsync","Inspect","inspectWithValues","ToJSON","value","toJsonValue","read","readAsync","inspect","toJSON","isWebM","asUint8Array","Output","Object","freeze","VIDEO","OUTPUT_VIDEO","RAW","OUTPUT_RAW","JSON","OUTPUT_JSON","OUTPUT_WEBM_JSON","id","mediaTypes","outputs","defineOutputs","video","webmJson","role","probes","raw","default","passthrough","extensions"],"mappings":"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"}
1
+ {"version":3,"file":"CjsWebmFormat.js","sources":["../../../../../src/resource/formats/webm/CjsWebmFormat.js"],"sourcesContent":["import { asUint8Array } from \"#utils/bytes\";\nimport { CjsFormat } from \"../../format/CjsFormat.js\";\nimport {\n DEFAULT_VALUES,\n OUTPUT_JSON,\n OUTPUT_RAW,\n OUTPUT_VIDEO,\n inspectWithValues,\n probeSupportWithValues,\n isWebM,\n normalizeValues,\n readWithValues,\n toJsonValue\n} from \"./core/helpers.js\";\n\nconst FORMAT_NAME = \"CjsWebmFormat\";\n\n/**\n * WebM container format profile that inspects EBML segment and track\n * structure and emits raw bytes, debug JSON, or a container-only video\n * payload with codec and duration summaries but no frame decoding.\n */\nexport class CjsWebmFormat extends CjsFormat\n{\n _values = DEFAULT_VALUES;\n\n /**\n * Create a reusable WebM 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 {CjsWebmFormat} This format profile.\n */\n SetValues(options = {})\n {\n this._values = normalizeValues(this._values, { inputType: \"webm\", ...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: \"webm\", ...options }, FORMAT_NAME);\n }\n\n /**\n * Read WebM bytes with this profile.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WebM bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} GPU-free raw/debug payload for the selected emit target.\n */\n Read(input, options = {})\n {\n return readWithValues(input, this.GetValues(options), \"webm\");\n }\n\n /**\n * Read WebM bytes asynchronously with this profile.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WebM bytes.\n * @param {object} [options] Per-call values.\n * @returns {Promise<object>} GPU-free raw/debug payload for the selected emit target.\n */\n async ReadAsync(input, options = {})\n {\n return this.Read(input, options);\n }\n\n /**\n * Inspect WebM bytes without decoding media samples.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WebM bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} WebM container metadata.\n */\n Inspect(input, options = {})\n {\n return inspectWithValues(input, this.GetValues(options), \"webm\");\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 WebM read.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WebM bytes.\n * @param {object} [options] Read options.\n * @returns {object} GPU-free raw/debug payload for the selected emit target.\n */\n static read(input, options = {})\n {\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"webm\", ...options }, FORMAT_NAME), \"webm\");\n }\n\n /**\n * One-shot asynchronous WebM read.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WebM bytes.\n * @param {object} [options] Read options.\n * @returns {Promise<object>} GPU-free raw/debug payload for the selected emit target.\n */\n static async readAsync(input, options = {})\n {\n return CjsWebmFormat.read(input, options);\n }\n\n /**\n * One-shot WebM inspection.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WebM bytes.\n * @param {object} [options] Inspect options.\n * @returns {object} WebM container metadata.\n */\n static inspect(input, options = {})\n {\n return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"webm\", ...options }, FORMAT_NAME), \"webm\");\n }\n\n /**\n * One-shot WebM support probe.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input WebM bytes.\n * @param {object} [options] Probe options.\n * @returns {object} Support/probe report.\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 WebM file.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Candidate WebM bytes.\n * @returns {boolean} True when the EBML signature is present.\n */\n static isWebM(input)\n {\n try\n {\n return isWebM(asUint8Array(input, \"Video input\"));\n }\n catch\n {\n return false;\n }\n }\n\n /**\n * Emit targets for this format (canonical frozen enum).\n */\n\n\n static id = \"CjsWebmFormat\";\n\n static mediaTypes = [ \"video\" ];\n\n static outputs = CjsFormat.defineOutputs({\n\n video: { },\n\n webmJson: { role: \"debug\", probes: [ \"webmJson\", \"raw\" ] },\n\n raw: { role: \"debug\", default: true, passthrough: true }\n\n });\n\n static extensions = [ \".webm\" ];\n}\n\nexport default CjsWebmFormat;\n"],"names":["FORMAT_NAME","CjsWebmFormat","CjsFormat","_values","DEFAULT_VALUES","constructor","options","SetValues","normalizeValues","inputType","GetValues","Read","input","readWithValues","ReadAsync","Inspect","inspectWithValues","ToJSON","value","toJsonValue","read","readAsync","inspect","toJSON","isWebM","asUint8Array","id","mediaTypes","outputs","defineOutputs","video","webmJson","role","probes","raw","default","passthrough","extensions"],"mappings":"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"}
@@ -2,7 +2,6 @@ import { asUint8Array, readFourCc } from '#utils/bytes';
2
2
 
3
3
  const OUTPUT_VIDEO = "video";
4
4
  const OUTPUT_RAW = "raw";
5
- const OUTPUT_JSON = "json";
6
5
  const DEFAULT_VALUES = Object.freeze({
7
6
  emit: OUTPUT_RAW,
8
7
  inputType: "",
@@ -31,8 +30,7 @@ function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = "CjsV
31
30
  /** Normalizes the requested output representation for the WebM format reader. */
32
31
  function normalizeEmit(emit, inputType, readerName) {
33
32
  if (emit === undefined || emit === null) return OUTPUT_RAW;
34
- if (emit === OUTPUT_JSON && inputType) return DEBUG_OUTPUTS[inputType] || OUTPUT_JSON;
35
- if ([OUTPUT_VIDEO, OUTPUT_RAW, OUTPUT_JSON].includes(emit)) return emit;
33
+ if ([OUTPUT_VIDEO, OUTPUT_RAW].includes(emit)) return emit;
36
34
  if (Object.values(DEBUG_OUTPUTS).includes(emit)) return emit;
37
35
  throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(emit)}`);
38
36
  }
@@ -66,7 +64,7 @@ function readWithValues(input, values = DEFAULT_VALUES, expectedType = "") {
66
64
  bytes
67
65
  };
68
66
  }
69
- if (values.emit === OUTPUT_JSON || values.emit === DEBUG_OUTPUTS[metadata.sourceFormat]) return metadata;
67
+ if (values.emit === DEBUG_OUTPUTS[metadata.sourceFormat]) return metadata;
70
68
  if (values.emit === OUTPUT_VIDEO && metadata.sourceFormat === "webm") {
71
69
  const codecs = getTrackCodecSummary(metadata);
72
70
  const mimeType = getMediaMimeType(metadata);
@@ -479,5 +477,5 @@ function readEbmlStringValue(bytes, element) {
479
477
  return new TextDecoder().decode(bytes.subarray(element.dataStart, element.end));
480
478
  }
481
479
 
482
- export { DEFAULT_VALUES, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_VIDEO, inspectBytes, inspectWithValues, isMP4, isWebM, normalizeEmit, normalizeValues, readWithValues };
480
+ export { DEFAULT_VALUES, OUTPUT_RAW, OUTPUT_VIDEO, inspectBytes, inspectWithValues, isMP4, isWebM, normalizeEmit, normalizeValues, readWithValues };
483
481
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/webm/core/helpers.js"],"sourcesContent":["import { toJsonWithByteSummary as toJsonValue } from \"../../../format/jsonPolicies.js\";\nimport { asUint8Array, readFourCc } from \"#utils/bytes\";\nexport const OUTPUT_VIDEO = \"video\";\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 mp4: \"mp4Json\",\n webm: \"webmJson\"\n});\n\n/**\n * Normalizes reader options against their supported defaults for the WebM format\n * reader.\n */\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsVideoFormat\")\n{\n const values = { ...DEFAULT_VALUES, ...(base || {}), ...(options || {}) };\n values.inputType = values.inputType ? String(values.inputType).replace(/^\\./u, \"\").toLowerCase() : \"\";\n values.emit = normalizeEmit(values.emit, values.inputType, readerName);\n return values;\n}\n\n/** Normalizes the requested output representation for the WebM 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_VIDEO, 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 WebM format reader. */\n/** Inspects input using normalized format options for the WebM format reader. */\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = asUint8Array(input, \"Video input\");\n const metadata = inspectBytes(bytes);\n if (expectedType && metadata.sourceFormat && metadata.sourceFormat !== expectedType)\n {\n throw new TypeError(`CjsVideoFormat: expected ${expectedType}, got ${metadata.sourceFormat}`);\n }\n return {\n payloadType: \"video\",\n mediaTypes: [ \"video\" ],\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\n * WebM format reader.\n */\nexport function probeSupportWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n try\n {\n const metadata = inspectWithValues(input, values, expectedType);\n const codecs = getTrackCodecSummary(metadata);\n const mimeType = getMediaMimeType(metadata);\n return {\n format: metadata.sourceFormat,\n source: values.source || \"buffer\",\n supported: metadata.sourceFormat ? \"partial\" : \"none\",\n confidence: metadata.sourceFormat ? 1 : 0,\n preferredOutput: \"video\",\n reason: metadata.sourceFormat ? \"Container/header recognized.\" : \"Unrecognized video format.\",\n metadata,\n variants: [\n {\n kind: \"raw\",\n payloadType: \"raw\",\n codec: metadata.sourceFormat,\n mimeType,\n supported: true,\n },\n {\n kind: \"container\",\n payloadType: \"video\",\n codec: metadata.sourceFormat,\n mimeType,\n codecs: codecs.codecs,\n videoCodecs: codecs.videoCodecs,\n audioCodecs: codecs.audioCodecs,\n supported: true,\n },\n {\n kind: \"decoded\",\n payloadType: \"video-frame\",\n codec: \"frames\",\n supported: false,\n reason: \"Video decode is not implemented in this package.\"\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 WebM format reader. */\nexport function readWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = asUint8Array(input, \"Video 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 metadata,\n bytes\n };\n }\n if (values.emit === OUTPUT_JSON || values.emit === DEBUG_OUTPUTS[metadata.sourceFormat]) return metadata;\n\n if (values.emit === OUTPUT_VIDEO && metadata.sourceFormat === \"webm\")\n {\n const codecs = getTrackCodecSummary(metadata);\n const mimeType = getMediaMimeType(metadata);\n return {\n payloadType: OUTPUT_VIDEO,\n sourceFormat: \"webm\",\n container: metadata.container,\n mimeType,\n codecs: codecs.codecs,\n videoCodecs: codecs.videoCodecs,\n audioCodecs: codecs.audioCodecs,\n duration: metadata.duration || 0,\n durationTimescale: metadata.durationTimescale || 1,\n tracks: metadata.tracks || [],\n metadata,\n sourceBytes: bytes\n };\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 getTrackCodecSummary(metadata)\n{\n const tracks = Array.isArray(metadata.tracks) ? metadata.tracks : [];\n return {\n codecs: uniqueTrackCodecs(tracks),\n videoCodecs: uniqueTrackCodecs(tracks.filter((track) => track.type === \"video\")),\n audioCodecs: uniqueTrackCodecs(tracks.filter((track) => track.type === \"audio\"))\n };\n}\n\nfunction uniqueTrackCodecs(tracks)\n{\n return [ ...new Set(tracks.map((track) => track.codec).filter(Boolean)) ];\n}\n\nfunction getMediaMimeType(metadata)\n{\n const tracks = Array.isArray(metadata.tracks) ? metadata.tracks : [];\n return tracks.some((track) => track.type === \"video\") ? \"video/webm\" : \"audio/webm\";\n}\n\n/**\n * Inspects the supplied bytes without decoding their payload for the WebM format\n * reader.\n */\nexport function inspectBytes(bytes)\n{\n if (isMP4(bytes)) return inspectMP4(bytes);\n if (isWebM(bytes)) return inspectWebM(bytes);\n return { sourceFormat: \"\" };\n}\n\n/**\n * Reports whether the supplied bytes have an ISO base-media header for the WebM\n * format reader.\n */\nexport function isMP4(bytes)\n{\n return bytes.byteLength >= 12 && readFourCc(bytes, 4) === \"ftyp\";\n}\n\n/**\n * Reports whether the supplied bytes have a WebM EBML header for the WebM format\n * reader.\n */\nexport function isWebM(bytes)\n{\n return bytes.byteLength >= 4 && bytes[0] === 0x1a && bytes[1] === 0x45 && bytes[2] === 0xdf && bytes[3] === 0xa3;\n}\n\n/** Converts a parsed payload into a JSON-safe value for the WebM format reader. */\n/** The shared JSON policy for this reader, under the name its callers use. */\nexport { toJsonValue };\n\nfunction inspectMP4(bytes)\n{\n return {\n sourceFormat: \"mp4\",\n brand: readFourCc(bytes, 8),\n container: \"isobmff\"\n };\n}\n\nfunction inspectWebM(bytes)\n{\n const roots = readEbmlElements(bytes, 0, bytes.byteLength);\n const fallbackRoots = readEbmlElements(bytes, 4, bytes.byteLength);\n const segment = roots.find((element) => element.id === 0x18538067) ||\n fallbackRoots.find((element) => element.id === 0x18538067);\n if (!segment)\n {\n return {\n sourceFormat: \"webm\",\n container: \"ebml\",\n duration: 0,\n durationTimescale: 1,\n tracks: []\n };\n }\n\n const children = readEbmlElements(bytes, segment.dataStart, segment.end);\n const info = children.find((element) => element.id === 0x1549a966);\n const tracks = children.find((element) => element.id === 0x1654ae6b);\n const infoChildren = info ? readEbmlElements(bytes, info.dataStart, info.end) : [];\n const timecodeScale = readEbmlUnsignedValue(bytes, infoChildren.find((element) => element.id === 0x2ad7b1)) || 1000000;\n const durationTicks = readEbmlFloatValue(bytes, infoChildren.find((element) => element.id === 0x4489)) || 0;\n const duration = Math.round(durationTicks * timecodeScale);\n const clusters = children.filter((element) => element.id === 0x1f43b675);\n const blockSummary = readWebmBlocks(bytes, clusters);\n\n return {\n sourceFormat: \"webm\",\n container: \"ebml\",\n timecodeScale,\n duration,\n durationTimescale: 1000000000,\n durationSeconds: duration / 1000000000,\n tracks: tracks ? readWebmTracks(bytes, tracks) : [],\n clusterCount: clusters.length,\n blockCount: blockSummary.blockCount,\n blockTrackIds: blockSummary.trackIds,\n clusterTimecodes: blockSummary.clusterTimecodes,\n blocks: blockSummary.blocks\n };\n}\n\nfunction readWebmTracks(bytes, tracksElement)\n{\n return readEbmlElements(bytes, tracksElement.dataStart, tracksElement.end)\n .filter((element) => element.id === 0xae)\n .map((entry) =>\n {\n const fields = readEbmlElements(bytes, entry.dataStart, entry.end);\n const trackType = readEbmlUnsignedValue(bytes, fields.find((field) => field.id === 0x83));\n const video = fields.find((field) => field.id === 0xe0);\n const audio = fields.find((field) => field.id === 0xe1);\n const codecPrivate = fields.find((field) => field.id === 0x63a2);\n const result = {\n id: readEbmlUnsignedValue(bytes, fields.find((field) => field.id === 0xd7)) || 0,\n type: trackType === 1 ? \"video\" : trackType === 2 ? \"audio\" : \"unknown\",\n codec: readEbmlStringValue(bytes, fields.find((field) => field.id === 0x86)) || \"\",\n language: readEbmlStringValue(bytes, fields.find((field) => field.id === 0x22b59c)) || \"und\"\n };\n const defaultDuration = readEbmlUnsignedValue(bytes, fields.find((field) => field.id === 0x23e383));\n if (defaultDuration) result.defaultDuration = defaultDuration;\n if (codecPrivate) result.codecPrivateBytes = codecPrivate.end - codecPrivate.dataStart;\n if (video)\n {\n const videoFields = readEbmlElements(bytes, video.dataStart, video.end);\n result.width = readEbmlUnsignedValue(bytes, videoFields.find((field) => field.id === 0xb0)) || 0;\n result.height = readEbmlUnsignedValue(bytes, videoFields.find((field) => field.id === 0xba)) || 0;\n }\n if (audio)\n {\n const audioFields = readEbmlElements(bytes, audio.dataStart, audio.end);\n result.channels = readEbmlUnsignedValue(bytes, audioFields.find((field) => field.id === 0x9f)) || 0;\n result.sampleRate = readEbmlFloatValue(bytes, audioFields.find((field) => field.id === 0xb5)) || 0;\n result.bitDepth = readEbmlUnsignedValue(bytes, audioFields.find((field) => field.id === 0x6264)) || 0;\n }\n return result;\n });\n}\n\nfunction readWebmBlocks(bytes, clusters)\n{\n const trackIds = new Set();\n const clusterTimecodes = [];\n const blocks = [];\n let blockCount = 0;\n for (const cluster of clusters)\n {\n const children = readEbmlElements(bytes, cluster.dataStart, cluster.end);\n const clusterTimecode = readEbmlUnsignedValue(bytes, children.find((child) => child.id === 0xe7));\n clusterTimecodes.push(clusterTimecode);\n for (const child of children)\n {\n if (child.id === 0xa3)\n {\n blockCount++;\n const block = readWebmBlock(bytes, child, clusterTimecode, true);\n if (block)\n {\n blocks.push(block);\n trackIds.add(block.trackId);\n }\n }\n else if (child.id === 0xa0)\n {\n const groupChildren = readEbmlElements(bytes, child.dataStart, child.end);\n const reference = groupChildren.some((groupChild) => groupChild.id === 0xfb);\n for (const groupChild of groupChildren)\n {\n if (groupChild.id !== 0xa1) continue;\n blockCount++;\n const block = readWebmBlock(bytes, groupChild, clusterTimecode, false);\n if (block)\n {\n block.keyframe = !reference;\n blocks.push(block);\n trackIds.add(block.trackId);\n }\n }\n }\n }\n }\n return {\n blockCount,\n trackIds: Array.from(trackIds).sort((a, b) => a - b),\n clusterTimecodes,\n blocks\n };\n}\n\nfunction readWebmBlock(bytes, element, clusterTimecode, simple)\n{\n const track = readEbmlVint(bytes, element.dataStart, element.end, true);\n if (!track || track.value === null || element.dataStart + track.length + 3 > element.end) return null;\n const timecodeOffset = element.dataStart + track.length;\n const relativeTimecode = (bytes[timecodeOffset] << 8) | bytes[timecodeOffset + 1];\n const signedTimecode = relativeTimecode & 0x8000 ? relativeTimecode - 0x10000 : relativeTimecode;\n const flags = bytes[timecodeOffset + 2];\n const lacing = [ \"none\", \"xiph\", \"fixed\", \"ebml\" ][(flags >> 1) & 0x03];\n const frames = readWebmBlockFrames(bytes, timecodeOffset + 3, element.end, lacing);\n return {\n trackId: track.value,\n timecode: signedTimecode,\n absoluteTimecode: clusterTimecode + signedTimecode,\n keyframe: simple ? !!(flags & 0x80) : false,\n invisible: !!(flags & 0x08),\n lacing,\n frameCount: frames.frameCount,\n frameSizes: frames.frameSizes,\n payloadBytes: frames.payloadBytes,\n ...(frames.error ? { lacingError: frames.error } : {})\n };\n}\n\nfunction readWebmBlockFrames(bytes, payloadStart, payloadEnd, lacing)\n{\n const payloadBytes = Math.max(0, payloadEnd - payloadStart);\n if (payloadStart > payloadEnd) return { frameCount: 0, frameSizes: [], payloadBytes: 0, error: \"invalid-payload-range\" };\n if (lacing === \"none\") return { frameCount: 1, frameSizes: [ payloadBytes ], payloadBytes };\n if (payloadStart >= payloadEnd) return { frameCount: 0, frameSizes: [], payloadBytes, error: \"missing-lacing-header\" };\n\n const frameCount = bytes[payloadStart] + 1;\n const dataStart = payloadStart + 1;\n if (frameCount < 2) return { frameCount, frameSizes: [], payloadBytes, error: \"invalid-laced-frame-count\" };\n if (lacing === \"fixed\") return readFixedLacedFrames(payloadBytes, frameCount);\n if (lacing === \"xiph\") return readXiphLacedFrames(bytes, dataStart, payloadEnd, payloadBytes, frameCount);\n return readEbmlLacedFrames(bytes, dataStart, payloadEnd, payloadBytes, frameCount);\n}\n\nfunction readFixedLacedFrames(payloadBytes, frameCount)\n{\n const dataBytes = payloadBytes - 1;\n if (dataBytes < 0 || dataBytes % frameCount !== 0)\n {\n return { frameCount, frameSizes: [], payloadBytes, error: \"invalid-fixed-lacing-size\" };\n }\n return { frameCount, frameSizes: Array.from({ length: frameCount }, () => dataBytes / frameCount), payloadBytes };\n}\n\nfunction readXiphLacedFrames(bytes, offset, end, payloadBytes, frameCount)\n{\n const frameSizes = [];\n for (let frame = 0; frame < frameCount - 1; frame++)\n {\n let size = 0;\n let closed = false;\n while (offset < end)\n {\n const value = bytes[offset++];\n size += value;\n if (value !== 255)\n {\n closed = true;\n break;\n }\n }\n if (!closed) return { frameCount, frameSizes: [], payloadBytes, error: \"unterminated-xiph-lacing-size\" };\n frameSizes.push(size);\n }\n\n const remaining = end - offset - frameSizes.reduce((sum, size) => sum + size, 0);\n if (remaining < 0) return { frameCount, frameSizes: [], payloadBytes, error: \"invalid-xiph-lacing-size\" };\n frameSizes.push(remaining);\n return { frameCount, frameSizes, payloadBytes };\n}\n\nfunction readEbmlLacedFrames(bytes, offset, end, payloadBytes, frameCount)\n{\n const first = readEbmlVint(bytes, offset, end, true);\n if (!first || first.value === null) return { frameCount, frameSizes: [], payloadBytes, error: \"missing-ebml-lacing-size\" };\n\n const frameSizes = [ first.value ];\n offset += first.length;\n for (let frame = 1; frame < frameCount - 1; frame++)\n {\n const delta = readEbmlSignedVint(bytes, offset, end);\n if (!delta) return { frameCount, frameSizes: [], payloadBytes, error: \"missing-ebml-lacing-delta\" };\n const size = frameSizes[frame - 1] + delta.value;\n if (size < 0) return { frameCount, frameSizes: [], payloadBytes, error: \"invalid-ebml-lacing-size\" };\n frameSizes.push(size);\n offset += delta.length;\n }\n\n const remaining = end - offset - frameSizes.reduce((sum, size) => sum + size, 0);\n if (remaining < 0) return { frameCount, frameSizes: [], payloadBytes, error: \"invalid-ebml-lacing-size\" };\n frameSizes.push(remaining);\n return { frameCount, frameSizes, payloadBytes };\n}\n\nfunction readEbmlElements(bytes, start, end)\n{\n const elements = [];\n let offset = start;\n while (offset < end)\n {\n const id = readEbmlId(bytes, offset, end);\n if (!id) break;\n const size = readEbmlVint(bytes, offset + id.length, end, true);\n if (!size) break;\n const dataStart = offset + id.length + size.length;\n const elementEnd = size.value === null ? end : dataStart + size.value;\n if (elementEnd > end) break;\n elements.push({ id: id.value, dataStart, end: elementEnd });\n if (size.value === null) break;\n offset = elementEnd;\n }\n return elements;\n}\n\nfunction readEbmlId(bytes, offset, end)\n{\n if (offset >= end) return null;\n const first = bytes[offset];\n let length = 1;\n let mask = 0x80;\n while (length <= 4 && !(first & mask))\n {\n length++;\n mask >>>= 1;\n }\n if (length > 4 || offset + length > end) return null;\n let value = 0;\n for (let i = 0; i < length; i++) value = value * 256 + bytes[offset + i];\n return { value, length };\n}\n\nfunction readEbmlVint(bytes, offset, end, removeMarker)\n{\n if (offset >= end) return null;\n const first = bytes[offset];\n let length = 1;\n let mask = 0x80;\n while (length <= 8 && !(first & mask))\n {\n length++;\n mask >>>= 1;\n }\n if (length > 8 || offset + length > end) return null;\n let value = removeMarker ? first & (~mask & 0xff) : first;\n for (let i = 1; i < length; i++) value = value * 256 + bytes[offset + i];\n const unknown = removeMarker && value === Math.pow(2, length * 7) - 1;\n return { value: unknown ? null : value, length };\n}\n\nfunction readEbmlSignedVint(bytes, offset, end)\n{\n const vint = readEbmlVint(bytes, offset, end, true);\n if (!vint || vint.value === null) return null;\n const bias = Math.pow(2, (vint.length * 7) - 1) - 1;\n return { value: vint.value - bias, length: vint.length };\n}\n\nfunction readEbmlUnsignedValue(bytes, element)\n{\n if (!element) return 0;\n let value = 0;\n for (let offset = element.dataStart; offset < element.end; offset++) value = value * 256 + bytes[offset];\n return value;\n}\n\nfunction readEbmlFloatValue(bytes, element)\n{\n if (!element || ![ 4, 8 ].includes(element.end - element.dataStart)) return 0;\n const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n return element.end - element.dataStart === 4\n ? view.getFloat32(element.dataStart, false)\n : view.getFloat64(element.dataStart, false);\n}\n\nfunction readEbmlStringValue(bytes, element)\n{\n if (!element) return \"\";\n return new TextDecoder().decode(bytes.subarray(element.dataStart, element.end));\n}\n\n"],"names":["OUTPUT_VIDEO","OUTPUT_RAW","OUTPUT_JSON","DEFAULT_VALUES","Object","freeze","emit","inputType","source","DEBUG_OUTPUTS","mp4","webm","normalizeValues","base","options","readerName","values","String","replace","toLowerCase","normalizeEmit","undefined","includes","TypeError","JSON","stringify","inspectWithValues","input","expectedType","bytes","asUint8Array","metadata","inspectBytes","sourceFormat","payloadType","mediaTypes","byteLength","readWithValues","codecs","getTrackCodecSummary","mimeType","getMediaMimeType","container","videoCodecs","audioCodecs","duration","durationTimescale","tracks","sourceBytes","error","Error","code","Array","isArray","uniqueTrackCodecs","filter","track","type","Set","map","codec","Boolean","some","isMP4","inspectMP4","isWebM","inspectWebM","readFourCc","brand","roots","readEbmlElements","fallbackRoots","segment","find","element","id","children","dataStart","end","info","infoChildren","timecodeScale","readEbmlUnsignedValue","durationTicks","readEbmlFloatValue","Math","round","clusters","blockSummary","readWebmBlocks","durationSeconds","readWebmTracks","clusterCount","length","blockCount","blockTrackIds","trackIds","clusterTimecodes","blocks","tracksElement","entry","fields","trackType","field","video","audio","codecPrivate","result","readEbmlStringValue","language","defaultDuration","codecPrivateBytes","videoFields","width","height","audioFields","channels","sampleRate","bitDepth","cluster","clusterTimecode","child","push","block","readWebmBlock","add","trackId","groupChildren","reference","groupChild","keyframe","from","sort","a","b","simple","readEbmlVint","value","timecodeOffset","relativeTimecode","signedTimecode","flags","lacing","frames","readWebmBlockFrames","timecode","absoluteTimecode","invisible","frameCount","frameSizes","payloadBytes","lacingError","payloadStart","payloadEnd","max","readFixedLacedFrames","readXiphLacedFrames","readEbmlLacedFrames","dataBytes","offset","frame","size","closed","remaining","reduce","sum","first","delta","readEbmlSignedVint","start","elements","readEbmlId","elementEnd","mask","i","removeMarker","unknown","pow","vint","bias","view","DataView","buffer","byteOffset","getFloat32","getFloat64","TextDecoder","decode","subarray"],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/webm/core/helpers.js"],"sourcesContent":["import { toJsonWithByteSummary as toJsonValue } from \"../../../format/jsonPolicies.js\";\nimport { asUint8Array, readFourCc } from \"#utils/bytes\";\nexport const OUTPUT_VIDEO = \"video\";\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 mp4: \"mp4Json\",\n webm: \"webmJson\"\n});\n\n/**\n * Normalizes reader options against their supported defaults for the WebM format\n * reader.\n */\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsVideoFormat\")\n{\n const values = { ...DEFAULT_VALUES, ...(base || {}), ...(options || {}) };\n values.inputType = values.inputType ? String(values.inputType).replace(/^\\./u, \"\").toLowerCase() : \"\";\n values.emit = normalizeEmit(values.emit, values.inputType, readerName);\n return values;\n}\n\n/** Normalizes the requested output representation for the WebM format reader. */\nexport function normalizeEmit(emit, inputType, readerName)\n{\n if (emit === undefined || emit === null) return OUTPUT_RAW;\n if ([ OUTPUT_VIDEO, OUTPUT_RAW].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 WebM format reader. */\n/** Inspects input using normalized format options for the WebM format reader. */\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = asUint8Array(input, \"Video input\");\n const metadata = inspectBytes(bytes);\n if (expectedType && metadata.sourceFormat && metadata.sourceFormat !== expectedType)\n {\n throw new TypeError(`CjsVideoFormat: expected ${expectedType}, got ${metadata.sourceFormat}`);\n }\n return {\n payloadType: \"video\",\n mediaTypes: [ \"video\" ],\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\n * WebM format reader.\n */\nexport function probeSupportWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n try\n {\n const metadata = inspectWithValues(input, values, expectedType);\n const codecs = getTrackCodecSummary(metadata);\n const mimeType = getMediaMimeType(metadata);\n return {\n format: metadata.sourceFormat,\n source: values.source || \"buffer\",\n supported: metadata.sourceFormat ? \"partial\" : \"none\",\n confidence: metadata.sourceFormat ? 1 : 0,\n preferredOutput: \"video\",\n reason: metadata.sourceFormat ? \"Container/header recognized.\" : \"Unrecognized video format.\",\n metadata,\n variants: [\n {\n kind: \"raw\",\n payloadType: \"raw\",\n codec: metadata.sourceFormat,\n mimeType,\n supported: true,\n },\n {\n kind: \"container\",\n payloadType: \"video\",\n codec: metadata.sourceFormat,\n mimeType,\n codecs: codecs.codecs,\n videoCodecs: codecs.videoCodecs,\n audioCodecs: codecs.audioCodecs,\n supported: true,\n },\n {\n kind: \"decoded\",\n payloadType: \"video-frame\",\n codec: \"frames\",\n supported: false,\n reason: \"Video decode is not implemented in this package.\"\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 WebM format reader. */\nexport function readWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = asUint8Array(input, \"Video 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 metadata,\n bytes\n };\n }\n if (values.emit === DEBUG_OUTPUTS[metadata.sourceFormat]) return metadata;\n\n if (values.emit === OUTPUT_VIDEO && metadata.sourceFormat === \"webm\")\n {\n const codecs = getTrackCodecSummary(metadata);\n const mimeType = getMediaMimeType(metadata);\n return {\n payloadType: OUTPUT_VIDEO,\n sourceFormat: \"webm\",\n container: metadata.container,\n mimeType,\n codecs: codecs.codecs,\n videoCodecs: codecs.videoCodecs,\n audioCodecs: codecs.audioCodecs,\n duration: metadata.duration || 0,\n durationTimescale: metadata.durationTimescale || 1,\n tracks: metadata.tracks || [],\n metadata,\n sourceBytes: bytes\n };\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 getTrackCodecSummary(metadata)\n{\n const tracks = Array.isArray(metadata.tracks) ? metadata.tracks : [];\n return {\n codecs: uniqueTrackCodecs(tracks),\n videoCodecs: uniqueTrackCodecs(tracks.filter((track) => track.type === \"video\")),\n audioCodecs: uniqueTrackCodecs(tracks.filter((track) => track.type === \"audio\"))\n };\n}\n\nfunction uniqueTrackCodecs(tracks)\n{\n return [ ...new Set(tracks.map((track) => track.codec).filter(Boolean)) ];\n}\n\nfunction getMediaMimeType(metadata)\n{\n const tracks = Array.isArray(metadata.tracks) ? metadata.tracks : [];\n return tracks.some((track) => track.type === \"video\") ? \"video/webm\" : \"audio/webm\";\n}\n\n/**\n * Inspects the supplied bytes without decoding their payload for the WebM format\n * reader.\n */\nexport function inspectBytes(bytes)\n{\n if (isMP4(bytes)) return inspectMP4(bytes);\n if (isWebM(bytes)) return inspectWebM(bytes);\n return { sourceFormat: \"\" };\n}\n\n/**\n * Reports whether the supplied bytes have an ISO base-media header for the WebM\n * format reader.\n */\nexport function isMP4(bytes)\n{\n return bytes.byteLength >= 12 && readFourCc(bytes, 4) === \"ftyp\";\n}\n\n/**\n * Reports whether the supplied bytes have a WebM EBML header for the WebM format\n * reader.\n */\nexport function isWebM(bytes)\n{\n return bytes.byteLength >= 4 && bytes[0] === 0x1a && bytes[1] === 0x45 && bytes[2] === 0xdf && bytes[3] === 0xa3;\n}\n\n/** Converts a parsed payload into a JSON-safe value for the WebM format reader. */\n/** The shared JSON policy for this reader, under the name its callers use. */\nexport { toJsonValue };\n\nfunction inspectMP4(bytes)\n{\n return {\n sourceFormat: \"mp4\",\n brand: readFourCc(bytes, 8),\n container: \"isobmff\"\n };\n}\n\nfunction inspectWebM(bytes)\n{\n const roots = readEbmlElements(bytes, 0, bytes.byteLength);\n const fallbackRoots = readEbmlElements(bytes, 4, bytes.byteLength);\n const segment = roots.find((element) => element.id === 0x18538067) ||\n fallbackRoots.find((element) => element.id === 0x18538067);\n if (!segment)\n {\n return {\n sourceFormat: \"webm\",\n container: \"ebml\",\n duration: 0,\n durationTimescale: 1,\n tracks: []\n };\n }\n\n const children = readEbmlElements(bytes, segment.dataStart, segment.end);\n const info = children.find((element) => element.id === 0x1549a966);\n const tracks = children.find((element) => element.id === 0x1654ae6b);\n const infoChildren = info ? readEbmlElements(bytes, info.dataStart, info.end) : [];\n const timecodeScale = readEbmlUnsignedValue(bytes, infoChildren.find((element) => element.id === 0x2ad7b1)) || 1000000;\n const durationTicks = readEbmlFloatValue(bytes, infoChildren.find((element) => element.id === 0x4489)) || 0;\n const duration = Math.round(durationTicks * timecodeScale);\n const clusters = children.filter((element) => element.id === 0x1f43b675);\n const blockSummary = readWebmBlocks(bytes, clusters);\n\n return {\n sourceFormat: \"webm\",\n container: \"ebml\",\n timecodeScale,\n duration,\n durationTimescale: 1000000000,\n durationSeconds: duration / 1000000000,\n tracks: tracks ? readWebmTracks(bytes, tracks) : [],\n clusterCount: clusters.length,\n blockCount: blockSummary.blockCount,\n blockTrackIds: blockSummary.trackIds,\n clusterTimecodes: blockSummary.clusterTimecodes,\n blocks: blockSummary.blocks\n };\n}\n\nfunction readWebmTracks(bytes, tracksElement)\n{\n return readEbmlElements(bytes, tracksElement.dataStart, tracksElement.end)\n .filter((element) => element.id === 0xae)\n .map((entry) =>\n {\n const fields = readEbmlElements(bytes, entry.dataStart, entry.end);\n const trackType = readEbmlUnsignedValue(bytes, fields.find((field) => field.id === 0x83));\n const video = fields.find((field) => field.id === 0xe0);\n const audio = fields.find((field) => field.id === 0xe1);\n const codecPrivate = fields.find((field) => field.id === 0x63a2);\n const result = {\n id: readEbmlUnsignedValue(bytes, fields.find((field) => field.id === 0xd7)) || 0,\n type: trackType === 1 ? \"video\" : trackType === 2 ? \"audio\" : \"unknown\",\n codec: readEbmlStringValue(bytes, fields.find((field) => field.id === 0x86)) || \"\",\n language: readEbmlStringValue(bytes, fields.find((field) => field.id === 0x22b59c)) || \"und\"\n };\n const defaultDuration = readEbmlUnsignedValue(bytes, fields.find((field) => field.id === 0x23e383));\n if (defaultDuration) result.defaultDuration = defaultDuration;\n if (codecPrivate) result.codecPrivateBytes = codecPrivate.end - codecPrivate.dataStart;\n if (video)\n {\n const videoFields = readEbmlElements(bytes, video.dataStart, video.end);\n result.width = readEbmlUnsignedValue(bytes, videoFields.find((field) => field.id === 0xb0)) || 0;\n result.height = readEbmlUnsignedValue(bytes, videoFields.find((field) => field.id === 0xba)) || 0;\n }\n if (audio)\n {\n const audioFields = readEbmlElements(bytes, audio.dataStart, audio.end);\n result.channels = readEbmlUnsignedValue(bytes, audioFields.find((field) => field.id === 0x9f)) || 0;\n result.sampleRate = readEbmlFloatValue(bytes, audioFields.find((field) => field.id === 0xb5)) || 0;\n result.bitDepth = readEbmlUnsignedValue(bytes, audioFields.find((field) => field.id === 0x6264)) || 0;\n }\n return result;\n });\n}\n\nfunction readWebmBlocks(bytes, clusters)\n{\n const trackIds = new Set();\n const clusterTimecodes = [];\n const blocks = [];\n let blockCount = 0;\n for (const cluster of clusters)\n {\n const children = readEbmlElements(bytes, cluster.dataStart, cluster.end);\n const clusterTimecode = readEbmlUnsignedValue(bytes, children.find((child) => child.id === 0xe7));\n clusterTimecodes.push(clusterTimecode);\n for (const child of children)\n {\n if (child.id === 0xa3)\n {\n blockCount++;\n const block = readWebmBlock(bytes, child, clusterTimecode, true);\n if (block)\n {\n blocks.push(block);\n trackIds.add(block.trackId);\n }\n }\n else if (child.id === 0xa0)\n {\n const groupChildren = readEbmlElements(bytes, child.dataStart, child.end);\n const reference = groupChildren.some((groupChild) => groupChild.id === 0xfb);\n for (const groupChild of groupChildren)\n {\n if (groupChild.id !== 0xa1) continue;\n blockCount++;\n const block = readWebmBlock(bytes, groupChild, clusterTimecode, false);\n if (block)\n {\n block.keyframe = !reference;\n blocks.push(block);\n trackIds.add(block.trackId);\n }\n }\n }\n }\n }\n return {\n blockCount,\n trackIds: Array.from(trackIds).sort((a, b) => a - b),\n clusterTimecodes,\n blocks\n };\n}\n\nfunction readWebmBlock(bytes, element, clusterTimecode, simple)\n{\n const track = readEbmlVint(bytes, element.dataStart, element.end, true);\n if (!track || track.value === null || element.dataStart + track.length + 3 > element.end) return null;\n const timecodeOffset = element.dataStart + track.length;\n const relativeTimecode = (bytes[timecodeOffset] << 8) | bytes[timecodeOffset + 1];\n const signedTimecode = relativeTimecode & 0x8000 ? relativeTimecode - 0x10000 : relativeTimecode;\n const flags = bytes[timecodeOffset + 2];\n const lacing = [ \"none\", \"xiph\", \"fixed\", \"ebml\" ][(flags >> 1) & 0x03];\n const frames = readWebmBlockFrames(bytes, timecodeOffset + 3, element.end, lacing);\n return {\n trackId: track.value,\n timecode: signedTimecode,\n absoluteTimecode: clusterTimecode + signedTimecode,\n keyframe: simple ? !!(flags & 0x80) : false,\n invisible: !!(flags & 0x08),\n lacing,\n frameCount: frames.frameCount,\n frameSizes: frames.frameSizes,\n payloadBytes: frames.payloadBytes,\n ...(frames.error ? { lacingError: frames.error } : {})\n };\n}\n\nfunction readWebmBlockFrames(bytes, payloadStart, payloadEnd, lacing)\n{\n const payloadBytes = Math.max(0, payloadEnd - payloadStart);\n if (payloadStart > payloadEnd) return { frameCount: 0, frameSizes: [], payloadBytes: 0, error: \"invalid-payload-range\" };\n if (lacing === \"none\") return { frameCount: 1, frameSizes: [ payloadBytes ], payloadBytes };\n if (payloadStart >= payloadEnd) return { frameCount: 0, frameSizes: [], payloadBytes, error: \"missing-lacing-header\" };\n\n const frameCount = bytes[payloadStart] + 1;\n const dataStart = payloadStart + 1;\n if (frameCount < 2) return { frameCount, frameSizes: [], payloadBytes, error: \"invalid-laced-frame-count\" };\n if (lacing === \"fixed\") return readFixedLacedFrames(payloadBytes, frameCount);\n if (lacing === \"xiph\") return readXiphLacedFrames(bytes, dataStart, payloadEnd, payloadBytes, frameCount);\n return readEbmlLacedFrames(bytes, dataStart, payloadEnd, payloadBytes, frameCount);\n}\n\nfunction readFixedLacedFrames(payloadBytes, frameCount)\n{\n const dataBytes = payloadBytes - 1;\n if (dataBytes < 0 || dataBytes % frameCount !== 0)\n {\n return { frameCount, frameSizes: [], payloadBytes, error: \"invalid-fixed-lacing-size\" };\n }\n return { frameCount, frameSizes: Array.from({ length: frameCount }, () => dataBytes / frameCount), payloadBytes };\n}\n\nfunction readXiphLacedFrames(bytes, offset, end, payloadBytes, frameCount)\n{\n const frameSizes = [];\n for (let frame = 0; frame < frameCount - 1; frame++)\n {\n let size = 0;\n let closed = false;\n while (offset < end)\n {\n const value = bytes[offset++];\n size += value;\n if (value !== 255)\n {\n closed = true;\n break;\n }\n }\n if (!closed) return { frameCount, frameSizes: [], payloadBytes, error: \"unterminated-xiph-lacing-size\" };\n frameSizes.push(size);\n }\n\n const remaining = end - offset - frameSizes.reduce((sum, size) => sum + size, 0);\n if (remaining < 0) return { frameCount, frameSizes: [], payloadBytes, error: \"invalid-xiph-lacing-size\" };\n frameSizes.push(remaining);\n return { frameCount, frameSizes, payloadBytes };\n}\n\nfunction readEbmlLacedFrames(bytes, offset, end, payloadBytes, frameCount)\n{\n const first = readEbmlVint(bytes, offset, end, true);\n if (!first || first.value === null) return { frameCount, frameSizes: [], payloadBytes, error: \"missing-ebml-lacing-size\" };\n\n const frameSizes = [ first.value ];\n offset += first.length;\n for (let frame = 1; frame < frameCount - 1; frame++)\n {\n const delta = readEbmlSignedVint(bytes, offset, end);\n if (!delta) return { frameCount, frameSizes: [], payloadBytes, error: \"missing-ebml-lacing-delta\" };\n const size = frameSizes[frame - 1] + delta.value;\n if (size < 0) return { frameCount, frameSizes: [], payloadBytes, error: \"invalid-ebml-lacing-size\" };\n frameSizes.push(size);\n offset += delta.length;\n }\n\n const remaining = end - offset - frameSizes.reduce((sum, size) => sum + size, 0);\n if (remaining < 0) return { frameCount, frameSizes: [], payloadBytes, error: \"invalid-ebml-lacing-size\" };\n frameSizes.push(remaining);\n return { frameCount, frameSizes, payloadBytes };\n}\n\nfunction readEbmlElements(bytes, start, end)\n{\n const elements = [];\n let offset = start;\n while (offset < end)\n {\n const id = readEbmlId(bytes, offset, end);\n if (!id) break;\n const size = readEbmlVint(bytes, offset + id.length, end, true);\n if (!size) break;\n const dataStart = offset + id.length + size.length;\n const elementEnd = size.value === null ? end : dataStart + size.value;\n if (elementEnd > end) break;\n elements.push({ id: id.value, dataStart, end: elementEnd });\n if (size.value === null) break;\n offset = elementEnd;\n }\n return elements;\n}\n\nfunction readEbmlId(bytes, offset, end)\n{\n if (offset >= end) return null;\n const first = bytes[offset];\n let length = 1;\n let mask = 0x80;\n while (length <= 4 && !(first & mask))\n {\n length++;\n mask >>>= 1;\n }\n if (length > 4 || offset + length > end) return null;\n let value = 0;\n for (let i = 0; i < length; i++) value = value * 256 + bytes[offset + i];\n return { value, length };\n}\n\nfunction readEbmlVint(bytes, offset, end, removeMarker)\n{\n if (offset >= end) return null;\n const first = bytes[offset];\n let length = 1;\n let mask = 0x80;\n while (length <= 8 && !(first & mask))\n {\n length++;\n mask >>>= 1;\n }\n if (length > 8 || offset + length > end) return null;\n let value = removeMarker ? first & (~mask & 0xff) : first;\n for (let i = 1; i < length; i++) value = value * 256 + bytes[offset + i];\n const unknown = removeMarker && value === Math.pow(2, length * 7) - 1;\n return { value: unknown ? null : value, length };\n}\n\nfunction readEbmlSignedVint(bytes, offset, end)\n{\n const vint = readEbmlVint(bytes, offset, end, true);\n if (!vint || vint.value === null) return null;\n const bias = Math.pow(2, (vint.length * 7) - 1) - 1;\n return { value: vint.value - bias, length: vint.length };\n}\n\nfunction readEbmlUnsignedValue(bytes, element)\n{\n if (!element) return 0;\n let value = 0;\n for (let offset = element.dataStart; offset < element.end; offset++) value = value * 256 + bytes[offset];\n return value;\n}\n\nfunction readEbmlFloatValue(bytes, element)\n{\n if (!element || ![ 4, 8 ].includes(element.end - element.dataStart)) return 0;\n const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n return element.end - element.dataStart === 4\n ? view.getFloat32(element.dataStart, false)\n : view.getFloat64(element.dataStart, false);\n}\n\nfunction readEbmlStringValue(bytes, element)\n{\n if (!element) return \"\";\n return new TextDecoder().decode(bytes.subarray(element.dataStart, element.end));\n}\n\n"],"names":["OUTPUT_VIDEO","OUTPUT_RAW","DEFAULT_VALUES","Object","freeze","emit","inputType","source","DEBUG_OUTPUTS","mp4","webm","normalizeValues","base","options","readerName","values","String","replace","toLowerCase","normalizeEmit","undefined","includes","TypeError","JSON","stringify","inspectWithValues","input","expectedType","bytes","asUint8Array","metadata","inspectBytes","sourceFormat","payloadType","mediaTypes","byteLength","readWithValues","codecs","getTrackCodecSummary","mimeType","getMediaMimeType","container","videoCodecs","audioCodecs","duration","durationTimescale","tracks","sourceBytes","error","Error","code","Array","isArray","uniqueTrackCodecs","filter","track","type","Set","map","codec","Boolean","some","isMP4","inspectMP4","isWebM","inspectWebM","readFourCc","brand","roots","readEbmlElements","fallbackRoots","segment","find","element","id","children","dataStart","end","info","infoChildren","timecodeScale","readEbmlUnsignedValue","durationTicks","readEbmlFloatValue","Math","round","clusters","blockSummary","readWebmBlocks","durationSeconds","readWebmTracks","clusterCount","length","blockCount","blockTrackIds","trackIds","clusterTimecodes","blocks","tracksElement","entry","fields","trackType","field","video","audio","codecPrivate","result","readEbmlStringValue","language","defaultDuration","codecPrivateBytes","videoFields","width","height","audioFields","channels","sampleRate","bitDepth","cluster","clusterTimecode","child","push","block","readWebmBlock","add","trackId","groupChildren","reference","groupChild","keyframe","from","sort","a","b","simple","readEbmlVint","value","timecodeOffset","relativeTimecode","signedTimecode","flags","lacing","frames","readWebmBlockFrames","timecode","absoluteTimecode","invisible","frameCount","frameSizes","payloadBytes","lacingError","payloadStart","payloadEnd","max","readFixedLacedFrames","readXiphLacedFrames","readEbmlLacedFrames","dataBytes","offset","frame","size","closed","remaining","reduce","sum","first","delta","readEbmlSignedVint","start","elements","readEbmlId","elementEnd","mask","i","removeMarker","unknown","pow","vint","bias","view","DataView","buffer","byteOffset","getFloat32","getFloat64","TextDecoder","decode","subarray"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { asUint8Array } from '#utils/bytes';
2
2
  import { CjsFormat } from '../../format/CjsFormat.js';
3
- import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues, isWebP, OUTPUT_JSON, OUTPUT_RAW } from './core/helpers.js';
3
+ import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues, isWebP } from './core/helpers.js';
4
4
  import { toJsonWithByteSummary } from '../../format/jsonPolicies.js';
5
5
 
6
6
  const FORMAT_NAME = "CjsWebpFormat";
@@ -10,7 +10,7 @@ const FORMAT_NAME = "CjsWebpFormat";
10
10
  * emits raw container bytes or debug JSON without decoding pixels.
11
11
  */
12
12
  class CjsWebpFormat extends CjsFormat {
13
- #values = DEFAULT_VALUES;
13
+ _values = DEFAULT_VALUES;
14
14
 
15
15
  /** Creates a CjsWebpFormat with caller-provided reader configuration. */
16
16
  constructor(options = {}) {
@@ -23,7 +23,7 @@ class CjsWebpFormat extends CjsFormat {
23
23
  * WebP format configuration.
24
24
  */
25
25
  SetValues(options = {}) {
26
- this.#values = normalizeValues(this.#values, {
26
+ this._values = normalizeValues(this._values, {
27
27
  inputType: "webp",
28
28
  ...options
29
29
  }, FORMAT_NAME);
@@ -35,7 +35,7 @@ class CjsWebpFormat extends CjsFormat {
35
35
  * configuration.
36
36
  */
37
37
  GetValues(options = {}) {
38
- return normalizeValues(this.#values, {
38
+ return normalizeValues(this._values, {
39
39
  inputType: "webp",
40
40
  ...options
41
41
  }, FORMAT_NAME);
@@ -113,13 +113,9 @@ class CjsWebpFormat extends CjsFormat {
113
113
  /**
114
114
  * Emit targets for this format (canonical frozen enum).
115
115
  */
116
- static Output = Object.freeze({
117
- RAW: OUTPUT_RAW,
118
- JSON: OUTPUT_JSON
119
- });
120
- static OUTPUT_WEBP_JSON = "webpJson";
121
- static id = "webp";
122
- static mediaTypes = Object.freeze(["image"]);
116
+
117
+ static id = "CjsWebpFormat";
118
+ static mediaTypes = ["image"];
123
119
  static outputs = CjsFormat.defineOutputs({
124
120
  webpJson: {
125
121
  role: "debug",
@@ -131,7 +127,7 @@ class CjsWebpFormat extends CjsFormat {
131
127
  passthrough: true
132
128
  }
133
129
  });
134
- static extensions = Object.freeze([".webp"]);
130
+ static extensions = [".webp"];
135
131
  }
136
132
 
137
133
  export { CjsWebpFormat };
@@ -1 +1 @@
1
- {"version":3,"file":"CjsWebpFormat.js","sources":["../../../../../src/resource/formats/webp/CjsWebpFormat.js"],"sourcesContent":["import { asUint8Array } from \"#utils/bytes\";\nimport { CjsFormat } from \"../../format/CjsFormat.js\";\nimport {\n DEFAULT_VALUES,\n OUTPUT_JSON,\n OUTPUT_RAW,\n inspectWithValues,\n probeSupportWithValues,\n isWebP,\n normalizeValues,\n readWithValues,\n toJsonValue\n} from \"./core/helpers.js\";\n\nconst FORMAT_NAME = \"CjsWebpFormat\";\n\n/**\n * Metadata-only WebP format profile that inspects RIFF chunk headers and\n * emits raw container bytes or debug JSON without decoding pixels.\n */\nexport class CjsWebpFormat extends CjsFormat\n{\n #values = DEFAULT_VALUES;\n\n /** Creates a CjsWebpFormat with caller-provided reader configuration. */\n constructor(options = {})\n {\n super();\n this.SetValues(options);\n }\n\n /**\n * Applies caller-provided options after normalizing supported fields for the\n * WebP format configuration.\n */\n SetValues(options = {})\n {\n this.#values = normalizeValues(this.#values, { inputType: \"webp\", ...options }, FORMAT_NAME);\n return this;\n }\n\n /**\n * Returns a snapshot of the normalized reader options for the WebP format\n * configuration.\n */\n GetValues(options = {})\n {\n return normalizeValues(this.#values, { inputType: \"webp\", ...options }, FORMAT_NAME);\n }\n\n /**\n * Reads the primary public payload representation from the supplied input\n * for the WebP format configuration.\n */\n Read(input, options = {})\n {\n return readWithValues(input, this.GetValues(options));\n }\n\n /**\n * Reads the primary public payload representation asynchronously for the\n * WebP format configuration.\n */\n async ReadAsync(input, options = {})\n {\n return this.Read(input, options);\n }\n\n /**\n * Returns structural metadata without materializing the decoded payload for\n * the WebP format configuration.\n */\n Inspect(input, options = {})\n {\n return inspectWithValues(input, this.GetValues(options));\n }\n\n /**\n * Converts the current decoded payload into a JSON-safe representation for\n * the WebP format configuration.\n */\n ToJSON(value)\n {\n return toJsonValue(value);\n }\n\n /** Provides the one-shot WebP payload reader entry point. */\n static read(input, options = {})\n {\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"webp\", ...options }, FORMAT_NAME));\n }\n\n /** Provides the asynchronous one-shot WebP payload reader entry point. */\n static async readAsync(input, options = {})\n {\n return CjsWebpFormat.read(input, options);\n }\n\n /** Provides the one-shot WebP metadata inspection entry point. */\n static inspect(input, options = {})\n {\n return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"webp\", ...options }, FORMAT_NAME));\n }\n\n /** Checks one input against the WebP decoder capability contract. */\n\n /** Provides the one-shot WebP JSON conversion entry point. */\n static toJSON(value)\n {\n return toJsonValue(value);\n }\n\n /** Checks whether caller-provided bytes carry the expected WebP signature. */\n static isWebP(input)\n {\n try\n {\n return isWebP(asUint8Array(input, \"WebP input\"));\n }\n catch\n {\n return false;\n }\n }\n\n /**\n * Emit targets for this format (canonical frozen enum).\n */\n static Output = Object.freeze({\n RAW: OUTPUT_RAW,\n JSON: OUTPUT_JSON\n });\n\n static OUTPUT_WEBP_JSON = \"webpJson\";\n\n static id = \"webp\";\n\n static mediaTypes = Object.freeze([ \"image\" ]);\n\n static outputs = CjsFormat.defineOutputs({\n\n webpJson: { role: \"debug\", probes: [ \"webpJson\", \"raw\" ] },\n\n raw: { role: \"debug\", default: true, passthrough: true }\n\n });\n\n static extensions = Object.freeze([ \".webp\" ]);\n}\n\nexport default CjsWebpFormat;\n"],"names":["FORMAT_NAME","CjsWebpFormat","CjsFormat","DEFAULT_VALUES","constructor","options","SetValues","normalizeValues","inputType","GetValues","Read","input","readWithValues","ReadAsync","Inspect","inspectWithValues","ToJSON","value","toJsonValue","read","readAsync","inspect","toJSON","isWebP","asUint8Array","Output","Object","freeze","RAW","OUTPUT_RAW","JSON","OUTPUT_JSON","OUTPUT_WEBP_JSON","id","mediaTypes","outputs","defineOutputs","webpJson","role","probes","raw","default","passthrough","extensions"],"mappings":"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"}
1
+ {"version":3,"file":"CjsWebpFormat.js","sources":["../../../../../src/resource/formats/webp/CjsWebpFormat.js"],"sourcesContent":["import { asUint8Array } from \"#utils/bytes\";\nimport { CjsFormat } from \"../../format/CjsFormat.js\";\nimport {\n DEFAULT_VALUES,\n OUTPUT_JSON,\n OUTPUT_RAW,\n inspectWithValues,\n probeSupportWithValues,\n isWebP,\n normalizeValues,\n readWithValues,\n toJsonValue\n} from \"./core/helpers.js\";\n\nconst FORMAT_NAME = \"CjsWebpFormat\";\n\n/**\n * Metadata-only WebP format profile that inspects RIFF chunk headers and\n * emits raw container bytes or debug JSON without decoding pixels.\n */\nexport class CjsWebpFormat extends CjsFormat\n{\n _values = DEFAULT_VALUES;\n\n /** Creates a CjsWebpFormat with caller-provided reader configuration. */\n constructor(options = {})\n {\n super();\n this.SetValues(options);\n }\n\n /**\n * Applies caller-provided options after normalizing supported fields for the\n * WebP format configuration.\n */\n SetValues(options = {})\n {\n this._values = normalizeValues(this._values, { inputType: \"webp\", ...options }, FORMAT_NAME);\n return this;\n }\n\n /**\n * Returns a snapshot of the normalized reader options for the WebP format\n * configuration.\n */\n GetValues(options = {})\n {\n return normalizeValues(this._values, { inputType: \"webp\", ...options }, FORMAT_NAME);\n }\n\n /**\n * Reads the primary public payload representation from the supplied input\n * for the WebP format configuration.\n */\n Read(input, options = {})\n {\n return readWithValues(input, this.GetValues(options));\n }\n\n /**\n * Reads the primary public payload representation asynchronously for the\n * WebP format configuration.\n */\n async ReadAsync(input, options = {})\n {\n return this.Read(input, options);\n }\n\n /**\n * Returns structural metadata without materializing the decoded payload for\n * the WebP format configuration.\n */\n Inspect(input, options = {})\n {\n return inspectWithValues(input, this.GetValues(options));\n }\n\n /**\n * Converts the current decoded payload into a JSON-safe representation for\n * the WebP format configuration.\n */\n ToJSON(value)\n {\n return toJsonValue(value);\n }\n\n /** Provides the one-shot WebP payload reader entry point. */\n static read(input, options = {})\n {\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"webp\", ...options }, FORMAT_NAME));\n }\n\n /** Provides the asynchronous one-shot WebP payload reader entry point. */\n static async readAsync(input, options = {})\n {\n return CjsWebpFormat.read(input, options);\n }\n\n /** Provides the one-shot WebP metadata inspection entry point. */\n static inspect(input, options = {})\n {\n return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"webp\", ...options }, FORMAT_NAME));\n }\n\n /** Checks one input against the WebP decoder capability contract. */\n\n /** Provides the one-shot WebP JSON conversion entry point. */\n static toJSON(value)\n {\n return toJsonValue(value);\n }\n\n /** Checks whether caller-provided bytes carry the expected WebP signature. */\n static isWebP(input)\n {\n try\n {\n return isWebP(asUint8Array(input, \"WebP input\"));\n }\n catch\n {\n return false;\n }\n }\n\n /**\n * Emit targets for this format (canonical frozen enum).\n */\n\n\n static id = \"CjsWebpFormat\";\n\n static mediaTypes = [ \"image\" ];\n\n static outputs = CjsFormat.defineOutputs({\n\n webpJson: { role: \"debug\", probes: [ \"webpJson\", \"raw\" ] },\n\n raw: { role: \"debug\", default: true, passthrough: true }\n\n });\n\n static extensions = [ \".webp\" ];\n}\n\nexport default CjsWebpFormat;\n"],"names":["FORMAT_NAME","CjsWebpFormat","CjsFormat","_values","DEFAULT_VALUES","constructor","options","SetValues","normalizeValues","inputType","GetValues","Read","input","readWithValues","ReadAsync","Inspect","inspectWithValues","ToJSON","value","toJsonValue","read","readAsync","inspect","toJSON","isWebP","asUint8Array","id","mediaTypes","outputs","defineOutputs","webpJson","role","probes","raw","default","passthrough","extensions"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { asUint8Array } from '#utils/bytes';
2
2
  import { CjsFormat } from '../../format/CjsFormat.js';
3
- import { DEFAULT_VALUES, OUTPUT_RAW, OUTPUT_OGG, OUTPUT_PCM, OUTPUT_WEM_JSON, normalizeValues, readWithValues, inspectWithValues, isWEM, OUTPUT_JSON, WEM_CODEC_NAMES } from './core/helpers.js';
3
+ import { DEFAULT_VALUES, OUTPUT_RAW, OUTPUT_OGG, OUTPUT_PCM, OUTPUT_WEM_JSON, normalizeValues, readWithValues, inspectWithValues, isWEM } from './core/helpers.js';
4
4
  import { probeCodecSupportWithValues } from './core/probeCodecSupport.js';
5
5
  import { toJsonWithByteSummary } from '../../format/jsonPolicies.js';
6
6
 
@@ -15,17 +15,17 @@ const FORMAT_NAME = "CjsWemFormat";
15
15
  * `emit: "pcm"` decodes PTADPCM / 16-bit PCM media to float32 samples.
16
16
  */
17
17
  class CjsWemFormat extends CjsFormat {
18
- #values = DEFAULT_VALUES;
18
+ _values = DEFAULT_VALUES;
19
19
 
20
20
  /**
21
21
  * Browser-worker module declaration consumed by CjsResManWorkerLoader.
22
22
  */
23
- static worker = Object.freeze({
23
+ static worker = {
24
24
  module: import.meta.url,
25
25
  exportName: "CjsWemFormat",
26
26
  outputTypes: Object.freeze([OUTPUT_RAW, OUTPUT_OGG, OUTPUT_PCM, OUTPUT_WEM_JSON]),
27
27
  defaultOutput: OUTPUT_RAW
28
- });
28
+ };
29
29
 
30
30
  /**
31
31
  * Create a reusable wem format profile.
@@ -44,7 +44,7 @@ class CjsWemFormat extends CjsFormat {
44
44
  * @returns {CjsWemFormat} This format profile.
45
45
  */
46
46
  SetValues(options = {}) {
47
- this.#values = normalizeValues(this.#values, options, FORMAT_NAME);
47
+ this._values = normalizeValues(this._values, options, FORMAT_NAME);
48
48
  return this;
49
49
  }
50
50
 
@@ -55,7 +55,7 @@ class CjsWemFormat extends CjsFormat {
55
55
  * @returns {object} Normalized read values.
56
56
  */
57
57
  GetValues(options = {}) {
58
- return normalizeValues(this.#values, options, FORMAT_NAME);
58
+ return normalizeValues(this._values, options, FORMAT_NAME);
59
59
  }
60
60
 
61
61
  /**
@@ -208,16 +208,8 @@ class CjsWemFormat extends CjsFormat {
208
208
  /**
209
209
  * Emit targets for this format (canonical frozen enum).
210
210
  */
211
- static Output = Object.freeze({
212
- RAW: OUTPUT_RAW,
213
- JSON: OUTPUT_JSON,
214
- WEM_JSON: OUTPUT_WEM_JSON,
215
- OGG: OUTPUT_OGG,
216
- PCM: OUTPUT_PCM
217
- });
218
- static CODEC_NAMES = WEM_CODEC_NAMES;
219
- static id = "wem";
220
- static mediaTypes = Object.freeze(["audio"]);
211
+ static id = "CjsWemFormat";
212
+ static mediaTypes = ["audio"];
221
213
  static outputs = CjsFormat.defineOutputs({
222
214
  raw: {
223
215
  default: true,
@@ -232,7 +224,7 @@ class CjsWemFormat extends CjsFormat {
232
224
  probes: ["wemJson", "raw"]
233
225
  }
234
226
  });
235
- static extensions = Object.freeze([".wem"]);
227
+ static extensions = [".wem"];
236
228
  }
237
229
 
238
230
  export { CjsWemFormat };
@@ -1 +1 @@
1
- {"version":3,"file":"CjsWemFormat.js","sources":["../../../../../src/resource/formats/wem/CjsWemFormat.js"],"sourcesContent":["import { asUint8Array } from \"#utils/bytes\";\nimport { CjsFormat } from \"../../format/CjsFormat.js\";\nimport {\n DEFAULT_VALUES,\n OUTPUT_JSON,\n OUTPUT_OGG,\n OUTPUT_PCM,\n OUTPUT_RAW,\n OUTPUT_WEM_JSON,\n WEM_CODEC_NAMES,\n inspectWithValues,\n probeSupportWithValues,\n isWEM,\n normalizeValues,\n readWithValues,\n toJsonValue\n} from \"./core/helpers.js\";\nimport { probeCodecSupportWithValues } from \"./core/probeCodecSupport.js\";\n\nconst FORMAT_NAME = \"CjsWemFormat\";\n\n/**\n * Reader for Audiokinetic Wwise media (.wem) containers.\n *\n * Inspection identifies the codec, channel/rate layout, and Vorbis duration\n * without decoding audio data. Read emits the container bytes untouched by\n * default; `emit: \"ogg\"` repacks Wwise Vorbis into a standard Ogg stream and\n * `emit: \"pcm\"` decodes PTADPCM / 16-bit PCM media to float32 samples.\n */\nexport class CjsWemFormat extends CjsFormat\n{\n #values = DEFAULT_VALUES;\n\n /**\n * Browser-worker module declaration consumed by CjsResManWorkerLoader.\n */\n static worker = Object.freeze({\n module: import.meta.url,\n exportName: \"CjsWemFormat\",\n outputTypes: Object.freeze([ OUTPUT_RAW, OUTPUT_OGG, OUTPUT_PCM, OUTPUT_WEM_JSON ]),\n defaultOutput: OUTPUT_RAW\n });\n\n /**\n * Create a reusable wem 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 {CjsWemFormat} This format profile.\n */\n SetValues(options = {})\n {\n this.#values = normalizeValues(this.#values, 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, options, FORMAT_NAME);\n }\n\n /**\n * Read wem bytes with this profile.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Wem bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} GPU-free raw/debug payload for the selected emit target.\n */\n Read(input, options = {})\n {\n return readWithValues(input, this.GetValues(options));\n }\n\n /**\n * Read wem bytes asynchronously with this profile.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Wem bytes.\n * @param {object} [options] Per-call values.\n * @returns {Promise<object>} GPU-free raw/debug payload for the selected emit target.\n */\n async ReadAsync(input, options = {})\n {\n return this.Read(input, options);\n }\n\n /**\n * Inspect wem bytes without decoding audio data.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Wem bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} Wwise container metadata.\n */\n Inspect(input, options = {})\n {\n return inspectWithValues(input, this.GetValues(options));\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 wem read.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Wem bytes.\n * @param {object} [options] Read options.\n * @returns {object} GPU-free raw/debug payload for the selected emit target.\n */\n static read(input, options = {})\n {\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME));\n }\n\n /**\n * One-shot asynchronous wem read.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Wem bytes.\n * @param {object} [options] Read options.\n * @returns {Promise<object>} GPU-free raw/debug payload for the selected emit target.\n */\n static async readAsync(input, options = {})\n {\n return CjsWemFormat.read(input, options);\n }\n\n /**\n * One-shot wem inspection.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Wem bytes.\n * @param {object} [options] Inspect options.\n * @returns {object} Wwise container metadata.\n */\n static inspect(input, options = {})\n {\n return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME));\n }\n\n /**\n * One-shot wem support probe.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Wem bytes.\n * @param {object} [options] Probe options.\n * @returns {object} Support/probe report.\n */\n static probeSupport(input, options = {})\n {\n return probeCodecSupportWithValues(input, normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME));\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 Wwise media container.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Candidate wem bytes.\n * @returns {boolean} True when RIFF/RIFX WAVE signatures are present.\n */\n static isWEM(input)\n {\n try\n {\n return isWEM(asUint8Array(input, \"Wem input\"));\n }\n catch\n {\n return false;\n }\n }\n\n /**\n * Repack Wwise Vorbis wem bytes into a standard Ogg Vorbis stream.\n *\n * Lossless container transform (no audio decode/re-encode); output plays\n * natively where Ogg Vorbis is supported. Equivalent to\n * `read(input, { emit: \"ogg\" })`.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Wem bytes.\n * @param {object} [options] Options, including a `codebooks` override.\n * @returns {object} Ogg payload with bytes, timing, and loop metadata.\n */\n static toOgg(input, options = {})\n {\n return CjsWemFormat.read(input, { ...options, emit: OUTPUT_OGG });\n }\n\n /**\n * Decode wem audio data to per-channel float32 PCM (AudioBuffer-ready).\n *\n * Covers Wwise PTADPCM (0x8311) and uncompressed 16-bit PCM. Wwise Vorbis\n * is not decoded here - repack it with `toOgg()` instead. Equivalent to\n * `read(input, { emit: \"pcm\" })`.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Wem bytes.\n * @param {object} [options] Read options.\n * @returns {object} PCM payload with channelData, sample rate, and timing.\n */\n static toPcm(input, options = {})\n {\n return CjsWemFormat.read(input, { ...options, emit: OUTPUT_PCM });\n }\n\n /**\n * Emit targets for this format (canonical frozen enum).\n */\n static Output = Object.freeze({\n RAW: OUTPUT_RAW,\n JSON: OUTPUT_JSON,\n WEM_JSON: OUTPUT_WEM_JSON,\n OGG: OUTPUT_OGG,\n PCM: OUTPUT_PCM\n });\n static CODEC_NAMES = WEM_CODEC_NAMES;\n static id = \"wem\";\n static mediaTypes = Object.freeze([ \"audio\" ]);\n static outputs = CjsFormat.defineOutputs({\n raw: { default: true, passthrough: true },\n ogg: { },\n pcm: { decoded: true },\n wemJson: { role: \"debug\", probes: [ \"wemJson\", \"raw\" ] }\n });\n static extensions = Object.freeze([ \".wem\" ]);\n}\n\nexport default CjsWemFormat;\n"],"names":["FORMAT_NAME","CjsWemFormat","CjsFormat","DEFAULT_VALUES","worker","Object","freeze","module","import","meta","url","exportName","outputTypes","OUTPUT_RAW","OUTPUT_OGG","OUTPUT_PCM","OUTPUT_WEM_JSON","defaultOutput","constructor","options","SetValues","normalizeValues","GetValues","Read","input","readWithValues","ReadAsync","Inspect","inspectWithValues","ToJSON","value","toJsonValue","read","readAsync","inspect","probeSupport","probeCodecSupportWithValues","toJSON","isWEM","asUint8Array","toOgg","emit","toPcm","Output","RAW","JSON","OUTPUT_JSON","WEM_JSON","OGG","PCM","CODEC_NAMES","WEM_CODEC_NAMES","id","mediaTypes","outputs","defineOutputs","raw","default","passthrough","ogg","pcm","decoded","wemJson","role","probes","extensions"],"mappings":"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"}
1
+ {"version":3,"file":"CjsWemFormat.js","sources":["../../../../../src/resource/formats/wem/CjsWemFormat.js"],"sourcesContent":["import { asUint8Array } from \"#utils/bytes\";\nimport { CjsFormat } from \"../../format/CjsFormat.js\";\nimport {\n DEFAULT_VALUES,\n OUTPUT_JSON,\n OUTPUT_OGG,\n OUTPUT_PCM,\n OUTPUT_RAW,\n OUTPUT_WEM_JSON,\n WEM_CODEC_NAMES,\n inspectWithValues,\n probeSupportWithValues,\n isWEM,\n normalizeValues,\n readWithValues,\n toJsonValue\n} from \"./core/helpers.js\";\nimport { probeCodecSupportWithValues } from \"./core/probeCodecSupport.js\";\n\nconst FORMAT_NAME = \"CjsWemFormat\";\n\n/**\n * Reader for Audiokinetic Wwise media (.wem) containers.\n *\n * Inspection identifies the codec, channel/rate layout, and Vorbis duration\n * without decoding audio data. Read emits the container bytes untouched by\n * default; `emit: \"ogg\"` repacks Wwise Vorbis into a standard Ogg stream and\n * `emit: \"pcm\"` decodes PTADPCM / 16-bit PCM media to float32 samples.\n */\nexport class CjsWemFormat extends CjsFormat\n{\n _values = DEFAULT_VALUES;\n\n /**\n * Browser-worker module declaration consumed by CjsResManWorkerLoader.\n */\n static worker = {\n module: import.meta.url,\n exportName: \"CjsWemFormat\",\n outputTypes: Object.freeze([ OUTPUT_RAW, OUTPUT_OGG, OUTPUT_PCM, OUTPUT_WEM_JSON ]),\n defaultOutput: OUTPUT_RAW\n };\n\n /**\n * Create a reusable wem 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 {CjsWemFormat} This format profile.\n */\n SetValues(options = {})\n {\n this._values = normalizeValues(this._values, 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, options, FORMAT_NAME);\n }\n\n /**\n * Read wem bytes with this profile.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Wem bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} GPU-free raw/debug payload for the selected emit target.\n */\n Read(input, options = {})\n {\n return readWithValues(input, this.GetValues(options));\n }\n\n /**\n * Read wem bytes asynchronously with this profile.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Wem bytes.\n * @param {object} [options] Per-call values.\n * @returns {Promise<object>} GPU-free raw/debug payload for the selected emit target.\n */\n async ReadAsync(input, options = {})\n {\n return this.Read(input, options);\n }\n\n /**\n * Inspect wem bytes without decoding audio data.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Wem bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} Wwise container metadata.\n */\n Inspect(input, options = {})\n {\n return inspectWithValues(input, this.GetValues(options));\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 wem read.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Wem bytes.\n * @param {object} [options] Read options.\n * @returns {object} GPU-free raw/debug payload for the selected emit target.\n */\n static read(input, options = {})\n {\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME));\n }\n\n /**\n * One-shot asynchronous wem read.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Wem bytes.\n * @param {object} [options] Read options.\n * @returns {Promise<object>} GPU-free raw/debug payload for the selected emit target.\n */\n static async readAsync(input, options = {})\n {\n return CjsWemFormat.read(input, options);\n }\n\n /**\n * One-shot wem inspection.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Wem bytes.\n * @param {object} [options] Inspect options.\n * @returns {object} Wwise container metadata.\n */\n static inspect(input, options = {})\n {\n return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME));\n }\n\n /**\n * One-shot wem support probe.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Wem bytes.\n * @param {object} [options] Probe options.\n * @returns {object} Support/probe report.\n */\n static probeSupport(input, options = {})\n {\n return probeCodecSupportWithValues(input, normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME));\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 Wwise media container.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Candidate wem bytes.\n * @returns {boolean} True when RIFF/RIFX WAVE signatures are present.\n */\n static isWEM(input)\n {\n try\n {\n return isWEM(asUint8Array(input, \"Wem input\"));\n }\n catch\n {\n return false;\n }\n }\n\n /**\n * Repack Wwise Vorbis wem bytes into a standard Ogg Vorbis stream.\n *\n * Lossless container transform (no audio decode/re-encode); output plays\n * natively where Ogg Vorbis is supported. Equivalent to\n * `read(input, { emit: \"ogg\" })`.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Wem bytes.\n * @param {object} [options] Options, including a `codebooks` override.\n * @returns {object} Ogg payload with bytes, timing, and loop metadata.\n */\n static toOgg(input, options = {})\n {\n return CjsWemFormat.read(input, { ...options, emit: OUTPUT_OGG });\n }\n\n /**\n * Decode wem audio data to per-channel float32 PCM (AudioBuffer-ready).\n *\n * Covers Wwise PTADPCM (0x8311) and uncompressed 16-bit PCM. Wwise Vorbis\n * is not decoded here - repack it with `toOgg()` instead. Equivalent to\n * `read(input, { emit: \"pcm\" })`.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Wem bytes.\n * @param {object} [options] Read options.\n * @returns {object} PCM payload with channelData, sample rate, and timing.\n */\n static toPcm(input, options = {})\n {\n return CjsWemFormat.read(input, { ...options, emit: OUTPUT_PCM });\n }\n\n /**\n * Emit targets for this format (canonical frozen enum).\n */\n static id = \"CjsWemFormat\";\n static mediaTypes = [ \"audio\" ];\n static outputs = CjsFormat.defineOutputs({\n raw: { default: true, passthrough: true },\n ogg: { },\n pcm: { decoded: true },\n wemJson: { role: \"debug\", probes: [ \"wemJson\", \"raw\" ] }\n });\n static extensions = [ \".wem\" ];\n}\n\nexport default CjsWemFormat;\n"],"names":["FORMAT_NAME","CjsWemFormat","CjsFormat","_values","DEFAULT_VALUES","worker","module","import","meta","url","exportName","outputTypes","Object","freeze","OUTPUT_RAW","OUTPUT_OGG","OUTPUT_PCM","OUTPUT_WEM_JSON","defaultOutput","constructor","options","SetValues","normalizeValues","GetValues","Read","input","readWithValues","ReadAsync","Inspect","inspectWithValues","ToJSON","value","toJsonValue","read","readAsync","inspect","probeSupport","probeCodecSupportWithValues","toJSON","isWEM","asUint8Array","toOgg","emit","toPcm","id","mediaTypes","outputs","defineOutputs","raw","default","passthrough","ogg","pcm","decoded","wemJson","role","probes","extensions"],"mappings":"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"}