@carbonenginejs/runtime 0.1.0-alpha.0 → 0.1.0-alpha.2

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 (935) hide show
  1. package/README.md +58 -125
  2. package/dist/audio/index.js +8 -1
  3. package/dist/audio/index.js.map +1 -1
  4. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js +84 -0
  5. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js.map +1 -0
  6. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js +14 -0
  7. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js.map +1 -0
  8. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js +26 -0
  9. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js.map +1 -0
  10. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js +27 -0
  11. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js.map +1 -0
  12. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js +27 -0
  13. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js.map +1 -0
  14. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js +25 -0
  15. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js.map +1 -0
  16. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js +26 -0
  17. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js.map +1 -0
  18. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js +58 -0
  19. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js.map +1 -0
  20. package/dist/audio/trinity/audio/AudManager.js +1 -1
  21. package/dist/audio/trinity/audio/AudManager.js.map +1 -1
  22. package/dist/audio/trinity/audio/{AudObstructionOcclusion.js → AudObstructionOcclusion/AudObstructionOcclusion.js} +8 -52
  23. package/dist/audio/trinity/audio/AudObstructionOcclusion/AudObstructionOcclusion.js.map +1 -0
  24. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js +17 -0
  25. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js.map +1 -0
  26. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js +46 -0
  27. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js.map +1 -0
  28. package/dist/audio/trinity/index.js +8 -1
  29. package/dist/audio/trinity/index.js.map +1 -1
  30. package/dist/character/CjsCharacterAppearanceConstruction.js +5 -0
  31. package/dist/character/CjsCharacterAppearanceConstruction.js.map +1 -1
  32. package/dist/character/CjsCharacterAppearanceManager.js +14 -0
  33. package/dist/character/CjsCharacterAppearanceManager.js.map +1 -1
  34. package/dist/character/CjsCharacterFoundationConstruction.js +5 -0
  35. package/dist/character/CjsCharacterFoundationConstruction.js.map +1 -1
  36. package/dist/character/CjsCharacterTexturePolicy.js +5 -0
  37. package/dist/character/CjsCharacterTexturePolicy.js.map +1 -1
  38. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js +17 -0
  39. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js.map +1 -1
  40. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js +2 -0
  41. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js.map +1 -1
  42. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js +5 -0
  43. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js.map +1 -1
  44. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js +5 -0
  45. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js.map +1 -1
  46. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js +2 -0
  47. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js.map +1 -1
  48. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js +5 -0
  49. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js.map +1 -1
  50. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js +5 -0
  51. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js.map +1 -1
  52. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js +9 -0
  53. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js.map +1 -1
  54. package/dist/global/blue/CjsScriptCallback.js +142 -0
  55. package/dist/global/blue/CjsScriptCallback.js.map +1 -0
  56. package/dist/global/blue/index.js +2 -0
  57. package/dist/global/blue/index.js.map +1 -0
  58. package/dist/global/consts/renderContext/formats.js +51 -1
  59. package/dist/global/consts/renderContext/formats.js.map +1 -1
  60. package/dist/global/consts/renderContext/index.js +2 -2
  61. package/dist/global/consts/renderContext/renderStates.js +16 -1
  62. package/dist/global/consts/renderContext/renderStates.js.map +1 -1
  63. package/dist/global/contracts/index.js +0 -1
  64. package/dist/global/contracts/index.js.map +1 -1
  65. package/dist/global/index.js +4 -3
  66. package/dist/global/index.js.map +1 -1
  67. package/dist/global/math/index.js +2 -0
  68. package/dist/global/math/index.js.map +1 -1
  69. package/dist/global/math/mesh.js +70 -16
  70. package/dist/global/math/mesh.js.map +1 -1
  71. package/dist/global/math/noise.js +47 -68
  72. package/dist/global/math/noise.js.map +1 -1
  73. package/dist/global/math/pool.js +18 -3
  74. package/dist/global/math/pool.js.map +1 -1
  75. package/dist/global/math/random.js +52 -0
  76. package/dist/global/math/random.js.map +1 -0
  77. package/dist/global/math/tri3.js +18 -4
  78. package/dist/global/math/tri3.js.map +1 -1
  79. package/dist/global/schema/CjsSchema.js +20 -2
  80. package/dist/global/schema/CjsSchema.js.map +1 -1
  81. package/dist/global/schema/hydration.js +14 -0
  82. package/dist/global/schema/hydration.js.map +1 -1
  83. package/dist/global/utils/bytes.js +22 -4
  84. package/dist/global/utils/bytes.js.map +1 -1
  85. package/dist/global/utils/checksum.js +80 -0
  86. package/dist/global/utils/checksum.js.map +1 -0
  87. package/dist/global/utils/errors/CjsCancellationError.js +36 -0
  88. package/dist/global/utils/errors/CjsCancellationError.js.map +1 -0
  89. package/dist/global/utils/errors/CjsError.js +21 -52
  90. package/dist/global/utils/errors/CjsError.js.map +1 -1
  91. package/dist/global/utils/errors/abort.js +1 -1
  92. package/dist/global/utils/errors/abort.js.map +1 -1
  93. package/dist/global/utils/errors/index.js +2 -1
  94. package/dist/global/utils/errors/index.js.map +1 -1
  95. package/dist/global/utils/index.js +4 -2
  96. package/dist/global/utils/index.js.map +1 -1
  97. package/dist/index.js +95 -35
  98. package/dist/index.js.map +1 -1
  99. package/dist/input/Tr2MainWindow.js +7 -9
  100. package/dist/input/Tr2MainWindow.js.map +1 -1
  101. package/dist/resource/CjsResMan.js +33 -39
  102. package/dist/resource/CjsResMan.js.map +1 -1
  103. package/dist/resource/CjsResource.js +19 -5
  104. package/dist/resource/CjsResource.js.map +1 -1
  105. package/dist/resource/audio/AudioGeometryResData.js +22 -27
  106. package/dist/resource/audio/AudioGeometryResData.js.map +1 -1
  107. package/dist/resource/audio/CjsAudioRes.js +4 -5
  108. package/dist/resource/audio/CjsAudioRes.js.map +1 -1
  109. package/dist/resource/format/CjsBitReader.js +263 -0
  110. package/dist/resource/format/CjsBitReader.js.map +1 -0
  111. package/dist/resource/format/CjsByteReader.js +130 -125
  112. package/dist/resource/format/CjsByteReader.js.map +1 -1
  113. package/dist/resource/format/CjsFormat.js +11 -4
  114. package/dist/resource/format/CjsFormat.js.map +1 -1
  115. package/dist/resource/format/CjsFormatError.js +37 -1
  116. package/dist/resource/format/CjsFormatError.js.map +1 -1
  117. package/dist/resource/format/CjsResourceProbe.js +41 -37
  118. package/dist/resource/format/CjsResourceProbe.js.map +1 -1
  119. package/dist/resource/format/carbonRecordGuard.js +33 -0
  120. package/dist/resource/format/carbonRecordGuard.js.map +1 -0
  121. package/dist/resource/format/imageSignatures.js +202 -0
  122. package/dist/resource/format/imageSignatures.js.map +1 -0
  123. package/dist/resource/format/index.js +2 -1
  124. package/dist/resource/format/index.js.map +1 -1
  125. package/dist/resource/format/jsonPolicies.js +180 -0
  126. package/dist/resource/format/jsonPolicies.js.map +1 -0
  127. package/dist/resource/formats/black/core/helpers.js +18 -29
  128. package/dist/resource/formats/black/core/helpers.js.map +1 -1
  129. package/dist/resource/formats/bnk/CjsBnkFormat.js +4 -3
  130. package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
  131. package/dist/resource/formats/bnk/core/WwiseCursor.js +218 -0
  132. package/dist/resource/formats/bnk/core/WwiseCursor.js.map +1 -0
  133. package/dist/resource/formats/bnk/core/busNodes.js +2 -1
  134. package/dist/resource/formats/bnk/core/busNodes.js.map +1 -1
  135. package/dist/resource/formats/bnk/core/effectNodes.js +2 -1
  136. package/dist/resource/formats/bnk/core/effectNodes.js.map +1 -1
  137. package/dist/resource/formats/bnk/core/eventAction.js +15 -93
  138. package/dist/resource/formats/bnk/core/eventAction.js.map +1 -1
  139. package/dist/resource/formats/bnk/core/globalSettings.js +19 -94
  140. package/dist/resource/formats/bnk/core/globalSettings.js.map +1 -1
  141. package/dist/resource/formats/bnk/core/helpers.js +2 -48
  142. package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
  143. package/dist/resource/formats/bnk/core/musicNodes.js +42 -134
  144. package/dist/resource/formats/bnk/core/musicNodes.js.map +1 -1
  145. package/dist/resource/formats/bnk/core/nodeBase.js +20 -111
  146. package/dist/resource/formats/bnk/core/nodeBase.js.map +1 -1
  147. package/dist/resource/formats/bnk/core/sfxNodes.js +2 -1
  148. package/dist/resource/formats/bnk/core/sfxNodes.js.map +1 -1
  149. package/dist/resource/formats/cmf/CjsCmfFormat.js +242 -228
  150. package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
  151. package/dist/resource/formats/cmf/core/binary.js +54 -60
  152. package/dist/resource/formats/cmf/core/binary.js.map +1 -1
  153. package/dist/resource/formats/dds/CjsDdsFormat.js +5 -3
  154. package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
  155. package/dist/resource/formats/dds/core/bc6h.js +16 -18
  156. package/dist/resource/formats/dds/core/bc6h.js.map +1 -1
  157. package/dist/resource/formats/dds/core/bc7.js +28 -24
  158. package/dist/resource/formats/dds/core/bc7.js.map +1 -1
  159. package/dist/resource/formats/dds/core/helpers.js +7 -133
  160. package/dist/resource/formats/dds/core/helpers.js.map +1 -1
  161. package/dist/resource/formats/dxbc/CjsDxbcFormat.js +3 -2
  162. package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
  163. package/dist/resource/formats/dxbc/core/helpers.js +4 -32
  164. package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
  165. package/dist/resource/formats/fbx/CjsFbxFormat.js +11 -0
  166. package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
  167. package/dist/resource/formats/fbx/core/helpers.js +18 -12
  168. package/dist/resource/formats/fbx/core/helpers.js.map +1 -1
  169. package/dist/resource/formats/flac/CjsFlacFormat.js +4 -9
  170. package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
  171. package/dist/resource/formats/flac/core/helpers.js +1 -62
  172. package/dist/resource/formats/flac/core/helpers.js.map +1 -1
  173. package/dist/resource/formats/gif/CjsGifFormat.js +4 -9
  174. package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
  175. package/dist/resource/formats/gif/core/helpers.js +1 -63
  176. package/dist/resource/formats/gif/core/helpers.js.map +1 -1
  177. package/dist/resource/formats/gltf/CjsGltfFormat.js +4 -3
  178. package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
  179. package/dist/resource/formats/gltf/core/helpers.js +3 -19
  180. package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
  181. package/dist/resource/formats/gr2/CjsGr2Format.js +105 -92
  182. package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
  183. package/dist/resource/formats/gr2/core/container.js +1 -10
  184. package/dist/resource/formats/gr2/core/container.js.map +1 -1
  185. package/dist/resource/formats/gr2/core/helpers.js +24 -35
  186. package/dist/resource/formats/gr2/core/helpers.js.map +1 -1
  187. package/dist/resource/formats/gr2/core/shared.js +193 -189
  188. package/dist/resource/formats/gr2/core/shared.js.map +1 -1
  189. package/dist/resource/formats/hlsl/CjsHlslFormat.js +4 -3
  190. package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
  191. package/dist/resource/formats/hlsl/core/helpers.js +1 -30
  192. package/dist/resource/formats/hlsl/core/helpers.js.map +1 -1
  193. package/dist/resource/formats/jpeg/CjsJpegFormat.js +5 -3
  194. package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
  195. package/dist/resource/formats/jpeg/core/helpers.js +7 -134
  196. package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
  197. package/dist/resource/formats/mp3/CjsMp3Format.js +4 -9
  198. package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
  199. package/dist/resource/formats/mp3/core/helpers.js +1 -64
  200. package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
  201. package/dist/resource/formats/mp4/CjsMp4Format.js +4 -9
  202. package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
  203. package/dist/resource/formats/mp4/core/helpers.js +1 -73
  204. package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
  205. package/dist/resource/formats/obj/CjsObjFormat.js +4 -3
  206. package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
  207. package/dist/resource/formats/obj/core/helpers.js +93 -115
  208. package/dist/resource/formats/obj/core/helpers.js.map +1 -1
  209. package/dist/resource/formats/ogg/CjsOggFormat.js +4 -3
  210. package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
  211. package/dist/resource/formats/ogg/core/helpers.js +1 -15
  212. package/dist/resource/formats/ogg/core/helpers.js.map +1 -1
  213. package/dist/resource/formats/ogg/core/vorbis.js +138 -144
  214. package/dist/resource/formats/ogg/core/vorbis.js.map +1 -1
  215. package/dist/resource/formats/pickle/CjsPickleFormat.js +83 -114
  216. package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
  217. package/dist/resource/formats/png/CjsPngFormat.js +5 -3
  218. package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
  219. package/dist/resource/formats/png/core/helpers.js +13 -152
  220. package/dist/resource/formats/png/core/helpers.js.map +1 -1
  221. package/dist/resource/formats/png/core/writer.js +3 -27
  222. package/dist/resource/formats/png/core/writer.js.map +1 -1
  223. package/dist/resource/formats/red/core/helpers.js +19 -29
  224. package/dist/resource/formats/red/core/helpers.js.map +1 -1
  225. package/dist/resource/formats/stl/CjsStlFormat.js +158 -147
  226. package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
  227. package/dist/resource/formats/stl/core/helpers.js +44 -66
  228. package/dist/resource/formats/stl/core/helpers.js.map +1 -1
  229. package/dist/resource/formats/tga/CjsTgaFormat.js +5 -3
  230. package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
  231. package/dist/resource/formats/tga/core/helpers.js +7 -153
  232. package/dist/resource/formats/tga/core/helpers.js.map +1 -1
  233. package/dist/resource/formats/vta/CjsVtaFormat.js +4 -3
  234. package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
  235. package/dist/resource/formats/vta/core/helpers.js +1 -17
  236. package/dist/resource/formats/vta/core/helpers.js.map +1 -1
  237. package/dist/resource/formats/wav/CjsWavFormat.js +4 -3
  238. package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
  239. package/dist/resource/formats/wav/core/helpers.js +1 -15
  240. package/dist/resource/formats/wav/core/helpers.js.map +1 -1
  241. package/dist/resource/formats/webgl/CjsWebglFormat.js +4 -3
  242. package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
  243. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +69 -9
  244. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
  245. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +12 -3
  246. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
  247. package/dist/resource/formats/webgl/core/helpers.js +39 -68
  248. package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
  249. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +4 -3
  250. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
  251. package/dist/resource/formats/webgpu/core/helpers.js +4 -30
  252. package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
  253. package/dist/resource/formats/webm/CjsWebmFormat.js +4 -9
  254. package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
  255. package/dist/resource/formats/webm/core/helpers.js +1 -73
  256. package/dist/resource/formats/webm/core/helpers.js.map +1 -1
  257. package/dist/resource/formats/webp/CjsWebpFormat.js +4 -9
  258. package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
  259. package/dist/resource/formats/webp/core/helpers.js +1 -62
  260. package/dist/resource/formats/webp/core/helpers.js.map +1 -1
  261. package/dist/resource/formats/wem/CjsWemFormat.js +4 -3
  262. package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
  263. package/dist/resource/formats/wem/core/bitStream.js +83 -106
  264. package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
  265. package/dist/resource/formats/wem/core/codebookLibrary.js +52 -52
  266. package/dist/resource/formats/wem/core/codebookLibrary.js.map +1 -1
  267. package/dist/resource/formats/wem/core/helpers.js +1 -15
  268. package/dist/resource/formats/wem/core/helpers.js.map +1 -1
  269. package/dist/resource/formats/wem/core/wemToOgg.js +67 -67
  270. package/dist/resource/formats/wem/core/wemToOgg.js.map +1 -1
  271. package/dist/resource/geometry/MeshDecalData.js +23 -25
  272. package/dist/resource/geometry/MeshDecalData.js.map +1 -1
  273. package/dist/resource/geometry/MeshDecalLodData.js +14 -23
  274. package/dist/resource/geometry/MeshDecalLodData.js.map +1 -1
  275. package/dist/resource/geometry/TriGeometryRes.js +299 -284
  276. package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
  277. package/dist/resource/geometry/TriGeometryResAreaData.js +30 -31
  278. package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -1
  279. package/dist/resource/geometry/TriGeometryResJointData.js +16 -24
  280. package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -1
  281. package/dist/resource/geometry/TriGeometryResLodData.js +50 -41
  282. package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -1
  283. package/dist/resource/geometry/TriGeometryResMeshData.js +32 -32
  284. package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -1
  285. package/dist/resource/geometry/TriGeometryResSkeletonData.js +14 -23
  286. package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -1
  287. package/dist/resource/geometry/TriJointBinding.js +16 -24
  288. package/dist/resource/geometry/TriJointBinding.js.map +1 -1
  289. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +22 -27
  290. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -1
  291. package/dist/resource/geometry/TriRtGeometryConstants.js +50 -41
  292. package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -1
  293. package/dist/resource/geometry/granny/GStateBindingCallbackData.js +12 -22
  294. package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -1
  295. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +30 -31
  296. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
  297. package/dist/resource/index.js +1 -1
  298. package/dist/resource/shader/reflection/Tr2EffectConstant.js +16 -17
  299. package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
  300. package/dist/resource/shader/reflection/Tr2EffectDescription.js +26 -28
  301. package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
  302. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +24 -25
  303. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
  304. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +21 -22
  305. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
  306. package/dist/resource/shader/reflection/Tr2EffectResource.js +25 -26
  307. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
  308. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +69 -72
  309. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
  310. package/dist/resource/shader/reflection/Tr2EffectTechnique.js +17 -18
  311. package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
  312. package/dist/resource/shader/reflection/Tr2Pass.js +42 -43
  313. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  314. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js +26 -5
  315. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js.map +1 -1
  316. package/dist/resource/shader/reflection/carbonRecordFields.js +87 -90
  317. package/dist/resource/shader/reflection/carbonRecordFields.js.map +1 -1
  318. package/dist/resource/shader/sampler/Tr2SamplerSetup.js +32 -34
  319. package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
  320. package/dist/resource/texture/CjsTextureArrayRes.js +1 -6
  321. package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
  322. package/dist/resource/texture/Tr2TextureLodManager.js +35 -27
  323. package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
  324. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +16 -24
  325. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -1
  326. package/dist/resource/texture/Tr2TexturePackChannel.js +16 -24
  327. package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
  328. package/dist/resource/texture/Tr2TexturePipeline.js +24 -20
  329. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
  330. package/dist/resource/texture/Tr2TexturePipelineParams.js +14 -23
  331. package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -1
  332. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +18 -25
  333. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
  334. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +11 -16
  335. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
  336. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +14 -23
  337. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
  338. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +12 -22
  339. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
  340. package/dist/resource/texture/Tr2TexturePipelineStepPack.js +38 -26
  341. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
  342. package/dist/resource/worker/CjsResManMainThreadLoader.js +2 -5
  343. package/dist/resource/worker/CjsResManMainThreadLoader.js.map +1 -1
  344. package/dist/resource/worker/CjsResManWorkerLoader.js +6 -7
  345. package/dist/resource/worker/CjsResManWorkerLoader.js.map +1 -1
  346. package/dist/resource/worker/protocol.js +18 -1
  347. package/dist/resource/worker/protocol.js.map +1 -1
  348. package/dist/sof/EveSOF.js +2 -222
  349. package/dist/sof/EveSOF.js.map +1 -1
  350. package/dist/sof/SofDocumentBuilder.js +205 -0
  351. package/dist/sof/SofDocumentBuilder.js.map +1 -0
  352. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js +16 -0
  353. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js.map +1 -0
  354. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js +16 -0
  355. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js.map +1 -0
  356. package/dist/sof/faction/EveSOFDataFactionColorSet.js +3 -27
  357. package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
  358. package/dist/sof/faction/index.js +3 -1
  359. package/dist/sof/faction/index.js.map +1 -1
  360. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js +18 -0
  361. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js.map +1 -0
  362. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js +18 -0
  363. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js.map +1 -0
  364. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js +21 -0
  365. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js.map +1 -0
  366. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js +21 -0
  367. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js.map +1 -0
  368. package/dist/sof/generic/EveSOFDataGeneric.js +5 -69
  369. package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
  370. package/dist/sof/generic/index.js +5 -1
  371. package/dist/sof/generic/index.js.map +1 -1
  372. package/dist/sof/index.js +23 -7
  373. package/dist/sof/index.js.map +1 -1
  374. package/dist/sof/pattern/ErrSOFProjectionNotFound.js +20 -0
  375. package/dist/sof/pattern/ErrSOFProjectionNotFound.js.map +1 -0
  376. package/dist/sof/pattern/EveSOFDataPattern.js +2 -17
  377. package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
  378. package/dist/sof/pattern/index.js +2 -1
  379. package/dist/sof/pattern/index.js.map +1 -1
  380. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js +16 -0
  381. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js.map +1 -0
  382. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js +16 -0
  383. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js.map +1 -0
  384. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js +16 -0
  385. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js.map +1 -0
  386. package/dist/sof/shared/EveSOFDataArea.js +2 -13
  387. package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
  388. package/dist/sof/shared/EveSOFDataLogoSet.js +3 -27
  389. package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
  390. package/dist/sof/shared/EveSOFDataParameter.js +2 -146
  391. package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
  392. package/dist/sof/shared/EveSOFDataParameterBool.js +40 -0
  393. package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -0
  394. package/dist/sof/shared/EveSOFDataParameterColor.js +36 -0
  395. package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -0
  396. package/dist/sof/shared/EveSOFDataParameterFloat.js +37 -0
  397. package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -0
  398. package/dist/sof/shared/EveSOFDataParameterInt.js +37 -0
  399. package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -0
  400. package/dist/sof/shared/EveSOFDataParameterVector2.js +37 -0
  401. package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -0
  402. package/dist/sof/shared/EveSOFDataParameterVector3.js +37 -0
  403. package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -0
  404. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js → EveSOFDataSpotLightAttachment.js} +1 -1
  405. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js.map → EveSOFDataSpotLightAttachment.js.map} +1 -1
  406. package/dist/sof/shared/index.js +13 -4
  407. package/dist/sof/shared/index.js.map +1 -1
  408. package/dist/sof/sofDocumentValues.js +33 -0
  409. package/dist/sof/sofDocumentValues.js.map +1 -0
  410. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +168 -0
  411. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -0
  412. package/dist/trinity/controllers/{ITr2Controller.js → ITr2Controller/ITr2Controller.js} +2 -134
  413. package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -0
  414. package/dist/trinity/controllers/Tr2Controller.js +2 -1
  415. package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
  416. package/dist/trinity/controllers/Tr2ControllerReference.js +2 -1
  417. package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
  418. package/dist/trinity/controllers/action/ITr2ControllerAction.js +2 -1
  419. package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
  420. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +10 -9
  421. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
  422. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js +26 -0
  423. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js.map +1 -0
  424. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js +24 -0
  425. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js.map +1 -0
  426. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js +387 -0
  427. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js.map +1 -0
  428. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js +4 -1011
  429. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js.map +1 -1
  430. package/dist/trinity/controllers/expression/expressionRuntime.js +605 -0
  431. package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -0
  432. package/dist/trinity/controllers/index.js +5 -2
  433. package/dist/trinity/controllers/index.js.map +1 -1
  434. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +2 -1
  435. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
  436. package/dist/trinity/controllers/timeline/Tr2TimelineController.js +2 -1
  437. package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
  438. package/dist/trinity/core/ITr2Updateable.js +2 -1
  439. package/dist/trinity/core/ITr2Updateable.js.map +1 -1
  440. package/dist/trinity/core/Tr2Blitter.js +6 -3
  441. package/dist/trinity/core/Tr2Blitter.js.map +1 -1
  442. package/dist/trinity/core/Tr2Denoiser.js +256 -0
  443. package/dist/trinity/core/Tr2Denoiser.js.map +1 -0
  444. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js +115 -0
  445. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js.map +1 -0
  446. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js +79 -0
  447. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js.map +1 -0
  448. package/dist/trinity/core/{Tr2GpuResourcePool.js → Tr2GpuResourcePool/Tr2GpuResourcePool.js} +63 -151
  449. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -0
  450. package/dist/trinity/core/{Tr2QuadRenderer.js → Tr2QuadRenderer/Tr2QuadRenderer.js} +8 -30
  451. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -0
  452. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +38 -0
  453. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -0
  454. package/dist/trinity/core/Tr2RenderUtils.js +20 -3
  455. package/dist/trinity/core/Tr2RenderUtils.js.map +1 -1
  456. package/dist/trinity/core/Tr2Renderer.js +146 -1
  457. package/dist/trinity/core/Tr2Renderer.js.map +1 -1
  458. package/dist/trinity/core/Tr2ShadowMap.js +135 -14
  459. package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
  460. package/dist/trinity/core/{Tr2TextureArray.js → Tr2TextureArray/Tr2TextureArray.js} +3 -58
  461. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -0
  462. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js +61 -0
  463. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js.map +1 -0
  464. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js +26 -0
  465. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js.map +1 -0
  466. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js +29 -0
  467. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js.map +1 -0
  468. package/dist/trinity/core/batch/{ITriRenderBatchAccumulator.js → TriRenderBatch/ITriRenderBatchAccumulator.js} +30 -30
  469. package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -0
  470. package/dist/trinity/core/batch/{Tr2RenderBatch.js → TriRenderBatch/Tr2RenderBatch.js} +81 -154
  471. package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -0
  472. package/dist/trinity/core/batch/{TriRenderBatchAccumulator.js → TriRenderBatch/TriRenderBatchAccumulator.js} +7 -38
  473. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAccumulator.js.map +1 -0
  474. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js +61 -0
  475. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js.map +1 -0
  476. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js +40 -0
  477. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js.map +1 -0
  478. package/dist/trinity/core/batch/TriRenderBatchMap.js +6 -1
  479. package/dist/trinity/core/batch/TriRenderBatchMap.js.map +1 -1
  480. package/dist/trinity/core/context/Tr2RenderContext.js +75 -57
  481. package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
  482. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js +67 -0
  483. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js.map +1 -0
  484. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js +50 -0
  485. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js.map +1 -0
  486. package/dist/trinity/core/device/Tr2DepthStencil.js +186 -13
  487. package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
  488. package/dist/trinity/core/device/{Tr2RingBuffer.js → Tr2RingBuffer/Tr2RingBuffer.js} +27 -79
  489. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -0
  490. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js +114 -0
  491. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js.map +1 -0
  492. package/dist/trinity/core/device/{Tr2SuballocatedBuffer.js → Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js} +5 -59
  493. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js.map +1 -0
  494. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js +80 -0
  495. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js.map +1 -0
  496. package/dist/trinity/core/index.js +42 -15
  497. package/dist/trinity/core/index.js.map +1 -1
  498. package/dist/trinity/core/lighting/Tr2LightManager.js +6 -1
  499. package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
  500. package/dist/trinity/core/mesh/{ITr2ImpostorSource.js → ITr2ImpostorSource/ITr2ImpostorSource.js} +6 -28
  501. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -0
  502. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js +32 -0
  503. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js.map +1 -0
  504. package/dist/trinity/core/mesh/{ITr2InstanceData.js → ITr2InstanceData/ITr2InstanceData.js} +5 -29
  505. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -0
  506. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js +33 -0
  507. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js.map +1 -0
  508. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +2 -1
  509. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
  510. package/dist/trinity/core/mesh/Tr2MeshBase.js +7 -1
  511. package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
  512. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +2 -1
  513. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
  514. package/dist/trinity/core/mesh/TriGeometryResAllocations.js +6 -2
  515. package/dist/trinity/core/mesh/TriGeometryResAllocations.js.map +1 -1
  516. package/dist/trinity/core/rawData/CjsConstantLayout.js +196 -0
  517. package/dist/trinity/core/rawData/CjsConstantLayout.js.map +1 -0
  518. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js +8 -3
  519. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js.map +1 -1
  520. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js +40 -732
  521. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js.map +1 -1
  522. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js +34 -0
  523. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js.map +1 -0
  524. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js +69 -0
  525. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js.map +1 -0
  526. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js +59 -0
  527. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js.map +1 -0
  528. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js +37 -0
  529. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js.map +1 -0
  530. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js +44 -0
  531. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js.map +1 -0
  532. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js +31 -0
  533. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js.map +1 -0
  534. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js +29 -0
  535. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js.map +1 -0
  536. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js +39 -0
  537. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js.map +1 -0
  538. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js +30 -0
  539. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js.map +1 -0
  540. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js +78 -0
  541. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js.map +1 -0
  542. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js +169 -0
  543. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js.map +1 -0
  544. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js +107 -0
  545. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js.map +1 -0
  546. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js +44 -0
  547. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js.map +1 -0
  548. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js +34 -0
  549. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js.map +1 -0
  550. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js +82 -0
  551. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js.map +1 -0
  552. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js +42 -0
  553. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js.map +1 -0
  554. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js +55 -0
  555. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js.map +1 -0
  556. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js +59 -0
  557. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js.map +1 -0
  558. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js +59 -0
  559. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js.map +1 -0
  560. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js +55 -0
  561. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js.map +1 -0
  562. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js +55 -0
  563. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js.map +1 -0
  564. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js +59 -0
  565. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js.map +1 -0
  566. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js +55 -0
  567. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js.map +1 -0
  568. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js +55 -0
  569. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js.map +1 -0
  570. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js +55 -0
  571. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +1 -0
  572. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js +55 -0
  573. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js.map +1 -0
  574. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js +59 -0
  575. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js.map +1 -0
  576. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js +55 -0
  577. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js.map +1 -0
  578. package/dist/trinity/core/rawData/{Tr2PerObjectData.js → perObjectData/Tr2PerObjectData.js} +110 -62
  579. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -0
  580. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +104 -0
  581. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -0
  582. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +87 -0
  583. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -0
  584. package/dist/trinity/core/variable/TriVariable.js +83 -83
  585. package/dist/trinity/core/variable/TriVariable.js.map +1 -1
  586. package/dist/trinity/core/vertex/{Tr2VertexDefinition.js → Tr2VertexDefinition/Tr2VertexDefinition.js} +4 -20
  587. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -0
  588. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js +29 -0
  589. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js.map +1 -0
  590. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +116 -36
  591. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
  592. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +50 -92
  593. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
  594. package/dist/trinity/eve/EveModularObjectModifier.js +9 -5
  595. package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
  596. package/dist/trinity/eve/IEveInheritPropertiesOwner.js +2 -1
  597. package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
  598. package/dist/trinity/eve/IEveSpaceObject2.js +2 -1
  599. package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
  600. package/dist/trinity/eve/IEveTransform.js +2 -1
  601. package/dist/trinity/eve/IEveTransform.js.map +1 -1
  602. package/dist/trinity/eve/attachment/banner/EveBannerSet.js +2 -2
  603. package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
  604. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +109 -133
  605. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
  606. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +40 -0
  607. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -0
  608. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +1 -1
  609. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
  610. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js +2 -14
  611. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js.map +1 -1
  612. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js +18 -0
  613. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js.map +1 -0
  614. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +1 -1
  615. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
  616. package/dist/trinity/eve/attachment/haze/EveHazeSet.js +1 -1
  617. package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
  618. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +1 -1
  619. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
  620. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +2 -2
  621. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
  622. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +1 -1
  623. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
  624. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +4 -2
  625. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
  626. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +143 -139
  627. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  628. package/dist/trinity/eve/camera/EveCamera.js +1 -1
  629. package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
  630. package/dist/trinity/eve/child/EveChildBoosterSet.js +12 -1
  631. package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
  632. package/dist/trinity/eve/child/EveChildCloud2.js +178 -151
  633. package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
  634. package/dist/trinity/eve/child/EveChildContainer.js +141 -141
  635. package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
  636. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +87 -0
  637. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -0
  638. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +46 -0
  639. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -0
  640. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +35 -0
  641. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -0
  642. package/dist/trinity/eve/child/{EveChildInstancedMeshes.js → EveChildInstancedMeshes/EveChildInstancedMeshes.js} +42 -163
  643. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -0
  644. package/dist/trinity/eve/child/EveChildMesh.js +218 -218
  645. package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
  646. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +53 -0
  647. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -0
  648. package/dist/trinity/eve/child/{EveChildPartData.js → EveChildPartData/EveChildPartDataPartData.js} +9 -45
  649. package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -0
  650. package/dist/trinity/eve/child/EveChildParticleSystem.js +30 -29
  651. package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
  652. package/dist/trinity/eve/child/EveChildTransform.js +5 -0
  653. package/dist/trinity/eve/child/EveChildTransform.js.map +1 -1
  654. package/dist/trinity/eve/child/EveChildTurret.js +7 -0
  655. package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
  656. package/dist/trinity/eve/index.js +10 -4
  657. package/dist/trinity/eve/index.js.map +1 -1
  658. package/dist/trinity/eve/lights/Tr2Light.js +5 -0
  659. package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
  660. package/dist/trinity/eve/overlays/overlayBatches.js +6 -1
  661. package/dist/trinity/eve/overlays/overlayBatches.js.map +1 -1
  662. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +4 -4
  663. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
  664. package/dist/trinity/eve/renderable/stretch/EveStretch2.js +76 -71
  665. package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
  666. package/dist/trinity/eve/renderable/stretch/EveStretch3.js +1 -1
  667. package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
  668. package/dist/trinity/eve/spaceObject/EveShip2.js +3 -3
  669. package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
  670. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +408 -407
  671. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  672. package/dist/trinity/eve/ui/EveTacticalOverlay.js +1 -1
  673. package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
  674. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +9 -9
  675. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
  676. package/dist/trinity/eve/ui/lines/EveLineSet.js +27 -25
  677. package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
  678. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +3 -2
  679. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -1
  680. package/dist/trinity/generated/index.js +0 -1
  681. package/dist/trinity/generated/index.js.map +1 -1
  682. package/dist/trinity/generated/trinityCore/index.js +0 -1
  683. package/dist/trinity/generated/trinityCore/index.js.map +1 -1
  684. package/dist/trinity/index.js +59 -23
  685. package/dist/trinity/index.js.map +1 -1
  686. package/dist/trinity/particle/{ITr2GenericEmitter.js → ITr2GenericEmitter/ITr2GenericEmitter.js} +4 -32
  687. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -0
  688. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js +36 -0
  689. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js.map +1 -0
  690. package/dist/trinity/particle/Tr2ParticleSystem.js +4 -2
  691. package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
  692. package/dist/trinity/particle/element/Tr2ParticleElementData.js +15 -4
  693. package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
  694. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +21 -20
  695. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
  696. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +23 -22
  697. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
  698. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +14 -13
  699. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
  700. package/dist/trinity/particle/index.js +2 -1
  701. package/dist/trinity/particle/index.js.map +1 -1
  702. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +7 -1
  703. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
  704. package/dist/trinity/shader/Tr2Effect.js +131 -58
  705. package/dist/trinity/shader/Tr2Effect.js.map +1 -1
  706. package/dist/trinity/shader/Tr2EffectStateManager.js +17 -5
  707. package/dist/trinity/shader/Tr2EffectStateManager.js.map +1 -1
  708. package/dist/trinity/shader/Tr2Material.js +21 -4
  709. package/dist/trinity/shader/Tr2Material.js.map +1 -1
  710. package/dist/trinity/shader/material/Tr2EffectPassParameters.js +4 -1
  711. package/dist/trinity/shader/material/Tr2EffectPassParameters.js.map +1 -1
  712. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +2 -2
  713. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
  714. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js +79 -0
  715. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js.map +1 -0
  716. package/dist/trinityal/{Tr2DeviceResourceAL.js → Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js} +77 -79
  717. package/dist/trinityal/Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js.map +1 -0
  718. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js +24 -0
  719. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js.map +1 -0
  720. package/dist/trinityal/Tr2DrawUPHelper.js +2 -1
  721. package/dist/trinityal/Tr2DrawUPHelper.js.map +1 -1
  722. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js +45 -0
  723. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js.map +1 -0
  724. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js +154 -0
  725. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js.map +1 -0
  726. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js +48 -0
  727. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js.map +1 -0
  728. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js +75 -0
  729. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js.map +1 -0
  730. package/dist/trinityal/{Tr2HalHelperStructures.js → Tr2HalHelperStructures/Tr2TextureSubresource.js} +11 -115
  731. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -0
  732. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js +51 -0
  733. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js.map +1 -0
  734. package/dist/trinityal/{Tr2RenderPassAL.js → Tr2RenderPassAL/Tr2ColorAttachment.js} +5 -28
  735. package/dist/trinityal/Tr2RenderPassAL/Tr2ColorAttachment.js.map +1 -0
  736. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js +38 -0
  737. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js.map +1 -0
  738. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js +80 -0
  739. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js.map +1 -0
  740. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js +76 -0
  741. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js.map +1 -0
  742. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js +96 -0
  743. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -0
  744. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js +196 -0
  745. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js.map +1 -0
  746. package/dist/trinityal/index.js +22 -9
  747. package/dist/trinityal/index.js.map +1 -1
  748. package/dist/trinityal/stub/Tr2BufferALStub.js +86 -141
  749. package/dist/trinityal/stub/Tr2BufferALStub.js.map +1 -1
  750. package/dist/trinityal/stub/Tr2CapsALStub.js +17 -0
  751. package/dist/trinityal/stub/Tr2CapsALStub.js.map +1 -1
  752. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js +57 -41
  753. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js.map +1 -1
  754. package/dist/trinityal/stub/Tr2FenceALStub.js +18 -2
  755. package/dist/trinityal/stub/Tr2FenceALStub.js.map +1 -1
  756. package/dist/trinityal/stub/Tr2GpuTimerALStub.js +97 -0
  757. package/dist/trinityal/stub/Tr2GpuTimerALStub.js.map +1 -0
  758. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js +124 -0
  759. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js.map +1 -0
  760. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js +146 -0
  761. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js.map +1 -0
  762. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js +28 -0
  763. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js.map +1 -0
  764. package/dist/trinityal/stub/{Tr2RenderContextALStub.js → Tr2RenderContextALStub/Tr2RenderContextALStub.js} +70 -75
  765. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -0
  766. package/dist/trinityal/stub/Tr2SamplerStateALStub.js +47 -31
  767. package/dist/trinityal/stub/Tr2SamplerStateALStub.js.map +1 -1
  768. package/dist/trinityal/stub/Tr2ShaderALStub.js +61 -45
  769. package/dist/trinityal/stub/Tr2ShaderALStub.js.map +1 -1
  770. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js +51 -33
  771. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js.map +1 -1
  772. package/dist/trinityal/stub/Tr2SwapChainALStub.js +61 -45
  773. package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
  774. package/dist/trinityal/stub/Tr2TextureALStub.js +188 -171
  775. package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
  776. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js +43 -27
  777. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js.map +1 -1
  778. package/dist/trinityal/stub/{Tr2VideoAdapterInfoALStub.js → Tr2VideoAdapterInfoStub.js} +16 -1
  779. package/dist/trinityal/stub/Tr2VideoAdapterInfoStub.js.map +1 -0
  780. package/dist/trinityal/stub/index.js +8 -4
  781. package/dist/trinityal/stub/index.js.map +1 -1
  782. package/dist/trinityal/vertexLayoutMatch.js +2 -2
  783. package/dist/trinityal/vertexLayoutMatch.js.map +1 -1
  784. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js +105 -90
  785. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js.map +1 -1
  786. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js +17 -0
  787. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js.map +1 -1
  788. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js +15 -0
  789. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js.map +1 -1
  790. package/dist/trinityal/webgpu/CjsWebgpuDevice.js +2 -2
  791. package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
  792. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +900 -938
  793. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
  794. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js +56 -60
  795. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
  796. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js +16 -1
  797. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js.map +1 -1
  798. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js +100 -379
  799. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js.map +1 -1
  800. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js +330 -0
  801. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js.map +1 -0
  802. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +15 -0
  803. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
  804. package/dist/trinityal/webgpu/core/{constantArena.js → CjsWebgpuConstantArena.js} +1 -1
  805. package/dist/trinityal/webgpu/core/CjsWebgpuConstantArena.js.map +1 -0
  806. package/dist/trinityal/webgpu/core/{batchGroups.js → CjsWebgpuEncodeState.js} +1 -1
  807. package/dist/trinityal/webgpu/core/CjsWebgpuEncodeState.js.map +1 -0
  808. package/dist/trinityal/webgpu/core/{perFrameSource.js → CjsWebgpuPerFrameSource.js} +1 -1
  809. package/dist/trinityal/webgpu/core/CjsWebgpuPerFrameSource.js.map +1 -0
  810. package/dist/trinityal/webgpu/core/{pipelineCache.js → CjsWebgpuPipelineCache.js} +1 -1
  811. package/dist/trinityal/webgpu/core/CjsWebgpuPipelineCache.js.map +1 -0
  812. package/dist/trinityal/webgpu/core/{psoDescription.js → CjsWebgpuPsoDescription.js} +2 -2
  813. package/dist/trinityal/webgpu/core/CjsWebgpuPsoDescription.js.map +1 -0
  814. package/dist/trinityal/webgpu/core/{renderTarget.js → CjsWebgpuRenderTarget.js} +1 -1
  815. package/dist/trinityal/webgpu/core/CjsWebgpuRenderTarget.js.map +1 -0
  816. package/dist/trinityal/webgpu/core/{samplerSource.js → CjsWebgpuSamplerSource.js} +1 -1
  817. package/dist/trinityal/webgpu/core/CjsWebgpuSamplerSource.js.map +1 -0
  818. package/dist/trinityal/webgpu/core/{textureSource.js → CjsWebgpuTextureSource.js} +1 -1
  819. package/dist/trinityal/webgpu/core/CjsWebgpuTextureSource.js.map +1 -0
  820. package/dist/trinityal/webgpu/core/{trinityBatchDispatcher.js → CjsWebgpuTrinityBatchDispatcher.js} +4 -4
  821. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchDispatcher.js.map +1 -0
  822. package/dist/trinityal/webgpu/core/{trinityBatchResolver.js → CjsWebgpuTrinityBatchResolver.js} +81 -81
  823. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchResolver.js.map +1 -0
  824. package/dist/trinityal/webgpu/core/{trinityPassEncoder.js → CjsWebgpuTrinityPassEncoder.js} +2 -2
  825. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityPassEncoder.js.map +1 -0
  826. package/dist/trinityal/webgpu/core/{workQueue.js → CjsWebgpuWorkQueue.js} +1 -1
  827. package/dist/trinityal/webgpu/core/CjsWebgpuWorkQueue.js.map +1 -0
  828. package/dist/trinityal/webgpu/internal.js +12 -11
  829. package/dist/trinityal/webgpu/internal.js.map +1 -1
  830. package/docs/audio/reference/classes/trinity.md +44 -34
  831. package/docs/character/architecture.md +276 -0
  832. package/docs/character/reference/character-appearance-plans.md +30 -66
  833. package/docs/character/reference/prepared-libraries.md +14 -30
  834. package/docs/global/reference/api.md +2 -1
  835. package/docs/global/reference/classes/README.md +53 -71
  836. package/docs/global/reference/classes/dropped.md +16 -0
  837. package/docs/resource/README.md +19 -15
  838. package/docs/resource/architecture.md +9 -2
  839. package/docs/resource/concepts/format-capabilities.md +124 -80
  840. package/docs/resource/concepts/shared-format-helpers.md +94 -0
  841. package/docs/resource/formats/README.md +230 -224
  842. package/docs/resource/formats/bitknit2.md +221 -0
  843. package/docs/resource/formats/carbon-effect-container.md +184 -269
  844. package/docs/resource/formats/gr2.md +6 -1
  845. package/docs/resource/formats/schemabound.md +28 -48
  846. package/docs/resource/formats/static.md +70 -97
  847. package/docs/resource/formats/webgl/carbon-constant-layouts.md +8 -8
  848. package/docs/resource/formats/webgl/decl-io.md +165 -256
  849. package/docs/resource/formats/webgl/memory-structured.md +64 -142
  850. package/docs/resource/formats/webgl/texture-sample.md +109 -138
  851. package/docs/resource/formats/webgpu/formats/carbon-webgpu.md +38 -69
  852. package/docs/resource/formats/webgpu/guides/effect-packaging.md +54 -116
  853. package/docs/resource/formats/webgpu/reference/api.md +64 -67
  854. package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +158 -345
  855. package/docs/resource/reference/classes/core.md +256 -236
  856. package/docs/resource/reference/classes/formats.md +1668 -1672
  857. package/docs/resource/reference/workers.md +4 -2
  858. package/docs/sof/reference/classes/core.md +1 -1
  859. package/docs/sof/reference/classes/faction.md +2 -2
  860. package/docs/sof/reference/classes/generic.md +4 -4
  861. package/docs/sof/reference/classes/pattern.md +1 -1
  862. package/docs/sof/reference/classes/shared.md +10 -10
  863. package/docs/trinity/architecture.md +55 -44
  864. package/docs/trinity/concepts/generated-class-lifecycle.md +10 -15
  865. package/docs/trinity/reference/classes/curves-and-utilities.md +496 -506
  866. package/docs/trinity/reference/classes/dropped.md +0 -189
  867. package/docs/trinity/reference/classes/eve-runtime.md +8 -8
  868. package/docs/trinity/reference/classes/generated.md +0 -10
  869. package/docs/trinity/reference/classes/particle.md +2 -2
  870. package/docs/trinity/reference/classes/trinity-core.md +1554 -1256
  871. package/docs/trinity/reference/implementation-status.md +50 -75
  872. package/docs/trinity/reference/main-semantic-extraction.md +13 -17
  873. package/docs/trinityal/reference/classes/README.md +77 -27
  874. package/docs/trinityal/reference/classes/dropped.md +92 -0
  875. package/docs/trinityal/webgpu/README.md +3 -1
  876. package/docs/trinityal/webgpu/architecture.md +121 -228
  877. package/docs/trinityal/webgpu/reference/api.md +5 -5
  878. package/docs/trinityal/webgpu/reference/classes/README.md +13 -13
  879. package/format-notices/gr2/NOTICE +18 -12
  880. package/format-notices/gr2/THIRD-PARTY-NOTICES.md +5 -5
  881. package/package.json +4 -1
  882. package/dist/audio/trinity/audio/AudActionLog.js +0 -173
  883. package/dist/audio/trinity/audio/AudActionLog.js.map +0 -1
  884. package/dist/audio/trinity/audio/AudObstructionOcclusion.js.map +0 -1
  885. package/dist/global/contracts/CjsScriptCallback.js +0 -94
  886. package/dist/global/contracts/CjsScriptCallback.js.map +0 -1
  887. package/dist/trinity/controllers/ITr2Controller.js.map +0 -1
  888. package/dist/trinity/core/Tr2GpuResourcePool.js.map +0 -1
  889. package/dist/trinity/core/Tr2QuadRenderer.js.map +0 -1
  890. package/dist/trinity/core/Tr2TextureArray.js.map +0 -1
  891. package/dist/trinity/core/batch/ITriRenderBatchAccumulator.js.map +0 -1
  892. package/dist/trinity/core/batch/Tr2RenderBatch.js.map +0 -1
  893. package/dist/trinity/core/batch/TriRenderBatchAccumulator.js.map +0 -1
  894. package/dist/trinity/core/context/CjsShadowMapExecutor.js +0 -43
  895. package/dist/trinity/core/context/CjsShadowMapExecutor.js.map +0 -1
  896. package/dist/trinity/core/context/CjsVolumetricsExecutor.js +0 -64
  897. package/dist/trinity/core/context/CjsVolumetricsExecutor.js.map +0 -1
  898. package/dist/trinity/core/context/Tr2VisibilityResults.js +0 -109
  899. package/dist/trinity/core/context/Tr2VisibilityResults.js.map +0 -1
  900. package/dist/trinity/core/device/Tr2RingBuffer.js.map +0 -1
  901. package/dist/trinity/core/device/Tr2SuballocatedBuffer.js.map +0 -1
  902. package/dist/trinity/core/mesh/ITr2ImpostorSource.js.map +0 -1
  903. package/dist/trinity/core/mesh/ITr2InstanceData.js.map +0 -1
  904. package/dist/trinity/core/rawData/Tr2PerObjectData.js.map +0 -1
  905. package/dist/trinity/core/rawData/constantLayout.js +0 -175
  906. package/dist/trinity/core/rawData/constantLayout.js.map +0 -1
  907. package/dist/trinity/core/vertex/Tr2VertexDefinition.js.map +0 -1
  908. package/dist/trinity/eve/child/EveChildInstancedMeshes.js.map +0 -1
  909. package/dist/trinity/eve/child/EveChildPartData.js.map +0 -1
  910. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js +0 -47
  911. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js.map +0 -1
  912. package/dist/trinity/particle/ITr2GenericEmitter.js.map +0 -1
  913. package/dist/trinityal/Tr2DeviceResourceAL.js.map +0 -1
  914. package/dist/trinityal/Tr2HalHelperStructures.js.map +0 -1
  915. package/dist/trinityal/Tr2RenderPassAL.js.map +0 -1
  916. package/dist/trinityal/Tr2ResourceSetAL.js +0 -419
  917. package/dist/trinityal/Tr2ResourceSetAL.js.map +0 -1
  918. package/dist/trinityal/Tr2SamplerDescription.js +0 -72
  919. package/dist/trinityal/Tr2SamplerDescription.js.map +0 -1
  920. package/dist/trinityal/stub/Tr2QueryALStub.js +0 -326
  921. package/dist/trinityal/stub/Tr2QueryALStub.js.map +0 -1
  922. package/dist/trinityal/stub/Tr2RenderContextALStub.js.map +0 -1
  923. package/dist/trinityal/stub/Tr2VideoAdapterInfoALStub.js.map +0 -1
  924. package/dist/trinityal/webgpu/core/batchGroups.js.map +0 -1
  925. package/dist/trinityal/webgpu/core/constantArena.js.map +0 -1
  926. package/dist/trinityal/webgpu/core/perFrameSource.js.map +0 -1
  927. package/dist/trinityal/webgpu/core/pipelineCache.js.map +0 -1
  928. package/dist/trinityal/webgpu/core/psoDescription.js.map +0 -1
  929. package/dist/trinityal/webgpu/core/renderTarget.js.map +0 -1
  930. package/dist/trinityal/webgpu/core/samplerSource.js.map +0 -1
  931. package/dist/trinityal/webgpu/core/textureSource.js.map +0 -1
  932. package/dist/trinityal/webgpu/core/trinityBatchDispatcher.js.map +0 -1
  933. package/dist/trinityal/webgpu/core/trinityBatchResolver.js.map +0 -1
  934. package/dist/trinityal/webgpu/core/trinityPassEncoder.js.map +0 -1
  935. package/dist/trinityal/webgpu/core/workQueue.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/webm/core/helpers.js"],"sourcesContent":["import { 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. */\r/** 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. */\nexport function toJsonValue(value)\n{\n if (value instanceof Uint8Array) return { byteLength: value.byteLength };\n if (Array.isArray(value)) return value.map(toJsonValue);\n if (value && typeof value === \"object\")\n {\n const output = {};\n for (const [ key, entry ] of Object.entries(value)) output[key] = toJsonValue(entry);\n return output;\n }\n return value;\n}\n\nfunction 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","probeSupportWithValues","codecs","getTrackCodecSummary","mimeType","getMediaMimeType","format","supported","confidence","preferredOutput","reason","variants","kind","codec","videoCodecs","audioCodecs","warnings","errors","error","message","readWithValues","container","duration","durationTimescale","tracks","sourceBytes","Error","code","Array","isArray","uniqueTrackCodecs","filter","track","type","Set","map","Boolean","some","isMP4","inspectMP4","isWebM","inspectWebM","readFourCc","toJsonValue","value","Uint8Array","output","key","entry","entries","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","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","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 (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,6 +1,7 @@
1
1
  import { asUint8Array } from '#utils/bytes';
2
2
  import { CjsFormat } from '../../format/CjsFormat.js';
3
- import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues, toJsonValue, probeSupportWithValues, isWebP, OUTPUT_JSON, OUTPUT_RAW } from './core/helpers.js';
3
+ import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues, isWebP, OUTPUT_JSON, OUTPUT_RAW } from './core/helpers.js';
4
+ import { toJsonWithByteSummary } from '../../format/jsonPolicies.js';
4
5
 
5
6
  const FORMAT_NAME = "CjsWebpFormat";
6
7
 
@@ -69,7 +70,7 @@ class CjsWebpFormat extends CjsFormat {
69
70
  * the WebP format configuration.
70
71
  */
71
72
  ToJSON(value) {
72
- return toJsonValue(value);
73
+ return toJsonWithByteSummary(value);
73
74
  }
74
75
 
75
76
  /** Provides the one-shot WebP payload reader entry point. */
@@ -94,16 +95,10 @@ class CjsWebpFormat extends CjsFormat {
94
95
  }
95
96
 
96
97
  /** Checks one input against the WebP decoder capability contract. */
97
- static probeSupport(input, options = {}) {
98
- return probeSupportWithValues(input, normalizeValues(DEFAULT_VALUES, {
99
- inputType: "webp",
100
- ...options
101
- }, FORMAT_NAME));
102
- }
103
98
 
104
99
  /** Provides the one-shot WebP JSON conversion entry point. */
105
100
  static toJSON(value) {
106
- return toJsonValue(value);
101
+ return toJsonWithByteSummary(value);
107
102
  }
108
103
 
109
104
  /** Checks whether caller-provided bytes carry the expected WebP signature. */
@@ -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 static probeSupport(input, options = {})\n {\n return probeSupportWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"webp\", ...options }, FORMAT_NAME));\n }\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","probeSupport","probeSupportWithValues","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 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":";;;;;AAcA,MAAMA,WAAW,GAAG,eAAe;;AAEnC;AACA;AACA;AACA;AACO,MAAMC,aAAa,SAASC,SAAS,CAC5C;EACI,OAAO,GAAGC,cAAc;;AAExB;AACAC,EAAAA,WAAWA,CAACC,OAAO,GAAG,EAAE,EACxB;AACI,IAAA,KAAK,EAAE;AACP,IAAA,IAAI,CAACC,SAAS,CAACD,OAAO,CAAC;AAC3B,EAAA;;AAEA;AACJ;AACA;AACA;AACIC,EAAAA,SAASA,CAACD,OAAO,GAAG,EAAE,EACtB;IACI,IAAI,CAAC,OAAO,GAAGE,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE;AAAEC,MAAAA,SAAS,EAAE,MAAM;MAAE,GAAGH;KAAS,EAAEL,WAAW,CAAC;AAC5F,IAAA,OAAO,IAAI;AACf,EAAA;;AAEA;AACJ;AACA;AACA;AACIS,EAAAA,SAASA,CAACJ,OAAO,GAAG,EAAE,EACtB;AACI,IAAA,OAAOE,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE;AAAEC,MAAAA,SAAS,EAAE,MAAM;MAAE,GAAGH;KAAS,EAAEL,WAAW,CAAC;AACxF,EAAA;;AAEA;AACJ;AACA;AACA;AACIU,EAAAA,IAAIA,CAACC,KAAK,EAAEN,OAAO,GAAG,EAAE,EACxB;IACI,OAAOO,cAAc,CAACD,KAAK,EAAE,IAAI,CAACF,SAAS,CAACJ,OAAO,CAAC,CAAC;AACzD,EAAA;;AAEA;AACJ;AACA;AACA;EACI,MAAMQ,SAASA,CAACF,KAAK,EAAEN,OAAO,GAAG,EAAE,EACnC;AACI,IAAA,OAAO,IAAI,CAACK,IAAI,CAACC,KAAK,EAAEN,OAAO,CAAC;AACpC,EAAA;;AAEA;AACJ;AACA;AACA;AACIS,EAAAA,OAAOA,CAACH,KAAK,EAAEN,OAAO,GAAG,EAAE,EAC3B;IACI,OAAOU,iBAAiB,CAACJ,KAAK,EAAE,IAAI,CAACF,SAAS,CAACJ,OAAO,CAAC,CAAC;AAC5D,EAAA;;AAEA;AACJ;AACA;AACA;EACIW,MAAMA,CAACC,KAAK,EACZ;IACI,OAAOC,qBAAW,CAACD,KAAK,CAAC;AAC7B,EAAA;;AAEA;EACA,OAAOE,IAAIA,CAACR,KAAK,EAAEN,OAAO,GAAG,EAAE,EAC/B;AACI,IAAA,OAAOO,cAAc,CAACD,KAAK,EAAEJ,eAAe,CAACJ,cAAc,EAAE;AAAEK,MAAAA,SAAS,EAAE,MAAM;MAAE,GAAGH;KAAS,EAAEL,WAAW,CAAC,CAAC;AACjH,EAAA;;AAEA;EACA,aAAaoB,SAASA,CAACT,KAAK,EAAEN,OAAO,GAAG,EAAE,EAC1C;AACI,IAAA,OAAOJ,aAAa,CAACkB,IAAI,CAACR,KAAK,EAAEN,OAAO,CAAC;AAC7C,EAAA;;AAEA;EACA,OAAOgB,OAAOA,CAACV,KAAK,EAAEN,OAAO,GAAG,EAAE,EAClC;AACI,IAAA,OAAOU,iBAAiB,CAACJ,KAAK,EAAEJ,eAAe,CAACJ,cAAc,EAAE;AAAEK,MAAAA,SAAS,EAAE,MAAM;MAAE,GAAGH;KAAS,EAAEL,WAAW,CAAC,CAAC;AACpH,EAAA;;AAEA;;AAEA;EACA,OAAOsB,MAAMA,CAACL,KAAK,EACnB;IACI,OAAOC,qBAAW,CAACD,KAAK,CAAC;AAC7B,EAAA;;AAEA;EACA,OAAOM,MAAMA,CAACZ,KAAK,EACnB;IACI,IACA;MACI,OAAOY,MAAM,CAACC,YAAY,CAACb,KAAK,EAAE,YAAY,CAAC,CAAC;AACpD,IAAA,CAAC,CACD,MACA;AACI,MAAA,OAAO,KAAK;AAChB,IAAA;AACJ,EAAA;;AAEA;AACJ;AACA;AACI,EAAA,OAAOc,MAAM,GAAGC,MAAM,CAACC,MAAM,CAAC;AAC1BC,IAAAA,GAAG,EAAEC,UAAU;AACfC,IAAAA,IAAI,EAAEC;AACV,GAAC,CAAC;EAEF,OAAOC,gBAAgB,GAAG,UAAU;EAEpC,OAAOC,EAAE,GAAG,MAAM;EAElB,OAAOC,UAAU,GAAGR,MAAM,CAACC,MAAM,CAAC,CAAE,OAAO,CAAE,CAAC;AAE9C,EAAA,OAAOQ,OAAO,GAAGjC,SAAS,CAACkC,aAAa,CAAC;AAErCC,IAAAA,QAAQ,EAAE;AAAEC,MAAAA,IAAI,EAAE,OAAO;AAAEC,MAAAA,MAAM,EAAE,CAAE,UAAU,EAAE,KAAK;KAAI;AAE1DC,IAAAA,GAAG,EAAE;AAAEF,MAAAA,IAAI,EAAE,OAAO;AAAEG,MAAAA,OAAO,EAAE,IAAI;AAAEC,MAAAA,WAAW,EAAE;AAAK;AAE3D,GAAC,CAAC;EAEF,OAAOC,UAAU,GAAGjB,MAAM,CAACC,MAAM,CAAC,CAAE,OAAO,CAAE,CAAC;AAClD;;;;"}
@@ -55,53 +55,6 @@ function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = "webp"
55
55
  };
56
56
  }
57
57
 
58
- /**
59
- * Reports whether input is supported under normalized format options for the
60
- * WebP format reader.
61
- */
62
- function probeSupportWithValues(input, values = DEFAULT_VALUES) {
63
- try {
64
- const metadata = inspectWithValues(input, values);
65
- return {
66
- format: "webp",
67
- source: values.source || "buffer",
68
- supported: "partial",
69
- confidence: 1,
70
- preferredOutput: "raw",
71
- reason: "WebP container and image metadata are recognized; software RGBA decode is not implemented.",
72
- metadata,
73
- variants: [{
74
- kind: "raw",
75
- payloadType: "raw",
76
- codec: "webp",
77
- mimeType: "image/webp",
78
- supported: true
79
- }, {
80
- kind: "rgba",
81
- payloadType: "rgba",
82
- codec: "rgba8unorm",
83
- supported: false,
84
- reason: "WebP software RGBA decode is not implemented yet."
85
- }],
86
- warnings: [],
87
- errors: []
88
- };
89
- } catch (error) {
90
- return {
91
- format: "webp",
92
- source: values.source || "buffer",
93
- supported: "none",
94
- confidence: 0,
95
- preferredOutput: "",
96
- reason: error.message,
97
- metadata: null,
98
- variants: [],
99
- warnings: [],
100
- errors: [error.message]
101
- };
102
- }
103
- }
104
-
105
58
  /** Reads input using normalized format options for the WebP format reader. */
106
59
  function readWithValues(input, values = DEFAULT_VALUES) {
107
60
  const bytes = asUint8Array(input, "WebP input");
@@ -120,20 +73,6 @@ function readWithValues(input, values = DEFAULT_VALUES) {
120
73
  error.code = "CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED";
121
74
  throw error;
122
75
  }
123
-
124
- /** Converts a parsed payload into a JSON-safe value for the WebP format reader. */
125
- function toJsonValue(value) {
126
- if (value instanceof Uint8Array) return {
127
- byteLength: value.byteLength
128
- };
129
- if (Array.isArray(value)) return value.map(toJsonValue);
130
- if (value && typeof value === "object") {
131
- const output = {};
132
- for (const [key, entry] of Object.entries(value)) output[key] = toJsonValue(entry);
133
- return output;
134
- }
135
- return value;
136
- }
137
76
  function inspectWebP(bytes) {
138
77
  const riffLength = readU32LE(bytes, 4);
139
78
  const chunks = [];
@@ -213,5 +152,5 @@ function ascii(bytes, offset, length) {
213
152
  return String.fromCharCode(...bytes.subarray(offset, offset + length));
214
153
  }
215
154
 
216
- export { DEFAULT_VALUES, OUTPUT_JSON, OUTPUT_RAW, inspectWithValues, isWebP, normalizeValues, probeSupportWithValues, readWithValues, toJsonValue };
155
+ export { DEFAULT_VALUES, OUTPUT_JSON, OUTPUT_RAW, inspectWithValues, isWebP, normalizeValues, readWithValues };
217
156
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/webp/core/helpers.js"],"sourcesContent":["import { asUint8Array, readU16LE, readU24LE, readU32LE } from \"#utils/bytes\";\n\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_JSON = \"json\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_RAW,\n inputType: \"webp\",\n source: \"\"\n});\n\n/**\n * Normalizes reader options against their supported defaults for the WebP format\n * reader.\n */\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsWebpFormat\")\n{\n if (!options || typeof options !== \"object\" || Array.isArray(options))\n {\n throw new TypeError(`${readerName}: options must be an object`);\n }\n const allowed = new Set([ \"emit\", \"inputType\", \"source\" ]);\n for (const key of Object.keys(options))\n {\n if (!allowed.has(key)) throw new TypeError(`${readerName}: unknown option ${JSON.stringify(key)}`);\n }\n const values = { ...DEFAULT_VALUES, ...(base || {}), ...options };\n if (![ OUTPUT_RAW, OUTPUT_JSON, \"webpJson\" ].includes(values.emit))\n {\n throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(values.emit)}`);\n }\n return values;\n}\n\n/** Returns a byte view over the supplied binary input for the WebP format reader. */\r/**\n * Reports whether the supplied bytes have a RIFF/WebP header for the WebP format\n * reader.\n */\nexport function isWebP(bytes)\n{\n return bytes.byteLength >= 12 &&\n ascii(bytes, 0, 4) === \"RIFF\" && ascii(bytes, 8, 4) === \"WEBP\";\n}\n\n/** Inspects input using normalized format options for the WebP format reader. */\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"webp\")\n{\n const bytes = asUint8Array(input, \"WebP input\");\n if (!isWebP(bytes)) throw new TypeError(\"CjsWebpFormat: input is not a RIFF WebP container\");\n const metadata = inspectWebP(bytes);\n if (expectedType && metadata.sourceFormat !== expectedType)\n {\n throw new TypeError(`CjsWebpFormat: expected ${expectedType}, got ${metadata.sourceFormat}`);\n }\n return { ...metadata, byteLength: bytes.byteLength, source: values.source || \"buffer\" };\n}\n\n/**\n * Reports whether input is supported under normalized format options for the\n * WebP format reader.\n */\nexport function probeSupportWithValues(input, values = DEFAULT_VALUES)\n{\n try\n {\n const metadata = inspectWithValues(input, values);\n return {\n format: \"webp\",\n source: values.source || \"buffer\",\n supported: \"partial\",\n confidence: 1,\n preferredOutput: \"raw\",\n reason: \"WebP container and image metadata are recognized; software RGBA decode is not implemented.\",\n metadata,\n variants: [\n {\n kind: \"raw\",\n payloadType: \"raw\",\n codec: \"webp\",\n mimeType: \"image/webp\",\n supported: true,\n },\n { kind: \"rgba\", payloadType: \"rgba\", codec: \"rgba8unorm\", supported: false, reason: \"WebP software RGBA decode is not implemented yet.\" }\n ],\n warnings: [],\n errors: []\n };\n }\n catch (error)\n {\n return {\n format: \"webp\",\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 WebP format reader. */\nexport function readWithValues(input, values = DEFAULT_VALUES)\n{\n const bytes = asUint8Array(input, \"WebP input\");\n const metadata = inspectWithValues(bytes, values);\n if (values.emit === OUTPUT_RAW)\n {\n return {\n payloadType: \"raw\",\n sourceFormat: \"webp\",\n mimeType: \"image/webp\",\n metadata,\n bytes\n };\n }\n if (values.emit === OUTPUT_JSON || values.emit === \"webpJson\") return metadata;\n const error = new Error(`webp: emit \"${values.emit}\" is not implemented yet`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED\";\n throw error;\n}\n\n/** Converts a parsed payload into a JSON-safe value for the WebP format reader. */\nexport function toJsonValue(value)\n{\n if (value instanceof Uint8Array) return { byteLength: value.byteLength };\n if (Array.isArray(value)) return value.map(toJsonValue);\n if (value && typeof value === \"object\")\n {\n const output = {};\n for (const [ key, entry ] of Object.entries(value)) output[key] = toJsonValue(entry);\n return output;\n }\n return value;\n}\n\nfunction inspectWebP(bytes)\n{\n const riffLength = readU32LE(bytes, 4);\n const chunks = [];\n let width = 0;\n let height = 0;\n let codec = \"webp\";\n let hasAlpha = false;\n let animated = false;\n const animationFrames = [];\n let offset = 12;\n while (offset + 8 <= bytes.byteLength)\n {\n const type = ascii(bytes, offset, 4);\n const size = readU32LE(bytes, offset + 4);\n const dataOffset = offset + 8;\n if (dataOffset + size > bytes.byteLength) throw new Error(`webp: ${type} chunk is truncated`);\n chunks.push({ type, byteOffset: dataOffset, byteLength: size });\n if (type === \"VP8 \")\n {\n codec = \"vp8\";\n if (size >= 10 && bytes[dataOffset + 3] === 0x9d && bytes[dataOffset + 4] === 0x01 && bytes[dataOffset + 5] === 0x2a)\n {\n width = readU16LE(bytes, dataOffset + 6) & 0x3fff;\n height = readU16LE(bytes, dataOffset + 8) & 0x3fff;\n }\n }\n else if (type === \"VP8L\")\n {\n codec = \"vp8l\";\n if (size >= 5 && bytes[dataOffset] === 0x2f)\n {\n width = 1 + (bytes[dataOffset + 1] | ((bytes[dataOffset + 2] & 0x3f) << 8));\n height = 1 + ((bytes[dataOffset + 2] >>> 6) | (bytes[dataOffset + 3] << 2) | ((bytes[dataOffset + 4] & 0x0f) << 10));\n hasAlpha = true;\n }\n }\n else if (type === \"VP8X\")\n {\n codec = \"vp8x\";\n if (size >= 10)\n {\n const flags = bytes[dataOffset];\n hasAlpha = !!(flags & 0x10);\n animated = !!(flags & 0x02);\n width = 1 + readU24LE(bytes, dataOffset + 4);\n height = 1 + readU24LE(bytes, dataOffset + 7);\n }\n }\n else if (type === \"ALPH\") hasAlpha = true;\n else if (type === \"ANIM\") animated = true;\n else if (type === \"ANMF\")\n {\n animated = true;\n if (size >= 16)\n {\n animationFrames.push({\n x: readU24LE(bytes, dataOffset),\n y: readU24LE(bytes, dataOffset + 3),\n width: 1 + readU24LE(bytes, dataOffset + 6),\n height: 1 + readU24LE(bytes, dataOffset + 9),\n durationMs: readU24LE(bytes, dataOffset + 12),\n flags: bytes[dataOffset + 15]\n });\n }\n }\n offset = dataOffset + size + (size & 1);\n }\n return {\n payloadType: \"image\",\n mediaTypes: [ \"image\" ],\n sourceFormat: \"webp\",\n container: \"riff\",\n riffLength,\n codec,\n width,\n height,\n hasAlpha,\n animated,\n animationFrameCount: animationFrames.length,\n animationDurationMs: animationFrames.reduce((sum, frame) => sum + frame.durationMs, 0),\n animationFrames,\n isCompressed: true,\n chunks\n };\n}\n\nfunction ascii(bytes, offset, length)\n{\n return String.fromCharCode(...bytes.subarray(offset, offset + length));\n}\n\n\n"],"names":["OUTPUT_RAW","OUTPUT_JSON","DEFAULT_VALUES","Object","freeze","emit","inputType","source","normalizeValues","base","options","readerName","Array","isArray","TypeError","allowed","Set","key","keys","has","JSON","stringify","values","includes","isWebP","bytes","byteLength","ascii","inspectWithValues","input","expectedType","asUint8Array","metadata","inspectWebP","sourceFormat","probeSupportWithValues","format","supported","confidence","preferredOutput","reason","variants","kind","payloadType","codec","mimeType","warnings","errors","error","message","readWithValues","Error","code","toJsonValue","value","Uint8Array","map","output","entry","entries","riffLength","readU32LE","chunks","width","height","hasAlpha","animated","animationFrames","offset","type","size","dataOffset","push","byteOffset","readU16LE","flags","readU24LE","x","y","durationMs","mediaTypes","container","animationFrameCount","length","animationDurationMs","reduce","sum","frame","isCompressed","String","fromCharCode","subarray"],"mappings":";;AAEO,MAAMA,UAAU,GAAG;AACnB,MAAMC,WAAW,GAAG;MAEdC,cAAc,GAAGC,MAAM,CAACC,MAAM,CAAC;AACxCC,EAAAA,IAAI,EAAEL,UAAU;AAChBM,EAAAA,SAAS,EAAE,MAAM;AACjBC,EAAAA,MAAM,EAAE;AACZ,CAAC;;AAED;AACA;AACA;AACA;AACO,SAASC,eAAeA,CAACC,IAAI,GAAGP,cAAc,EAAEQ,OAAO,GAAG,EAAE,EAAEC,UAAU,GAAG,eAAe,EACjG;AACI,EAAA,IAAI,CAACD,OAAO,IAAI,OAAOA,OAAO,KAAK,QAAQ,IAAIE,KAAK,CAACC,OAAO,CAACH,OAAO,CAAC,EACrE;AACI,IAAA,MAAM,IAAII,SAAS,CAAC,CAAA,EAAGH,UAAU,6BAA6B,CAAC;AACnE,EAAA;AACA,EAAA,MAAMI,OAAO,GAAG,IAAIC,GAAG,CAAC,CAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAE,CAAC;EAC1D,KAAK,MAAMC,GAAG,IAAId,MAAM,CAACe,IAAI,CAACR,OAAO,CAAC,EACtC;IACI,IAAI,CAACK,OAAO,CAACI,GAAG,CAACF,GAAG,CAAC,EAAE,MAAM,IAAIH,SAAS,CAAC,CAAA,EAAGH,UAAU,oBAAoBS,IAAI,CAACC,SAAS,CAACJ,GAAG,CAAC,CAAA,CAAE,CAAC;AACtG,EAAA;AACA,EAAA,MAAMK,MAAM,GAAG;AAAE,IAAA,GAAGpB,cAAc;AAAE,IAAA,IAAIO,IAAI,IAAI,EAAE,CAAC;IAAE,GAAGC;GAAS;AACjE,EAAA,IAAI,CAAC,CAAEV,UAAU,EAAEC,WAAW,EAAE,UAAU,CAAE,CAACsB,QAAQ,CAACD,MAAM,CAACjB,IAAI,CAAC,EAClE;AACI,IAAA,MAAM,IAAIS,SAAS,CAAC,CAAA,EAAGH,UAAU,CAAA,qBAAA,EAAwBS,IAAI,CAACC,SAAS,CAACC,MAAM,CAACjB,IAAI,CAAC,EAAE,CAAC;AAC3F,EAAA;AACA,EAAA,OAAOiB,MAAM;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,MAAMA,CAACC,KAAK,EAC5B;EACI,OAAOA,KAAK,CAACC,UAAU,IAAI,EAAE,IACzBC,KAAK,CAACF,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,IAAIE,KAAK,CAACF,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM;AACtE;;AAEA;AACO,SAASG,iBAAiBA,CAACC,KAAK,EAAEP,MAAM,GAAGpB,cAAc,EAAE4B,YAAY,GAAG,MAAM,EACvF;AACI,EAAA,MAAML,KAAK,GAAGM,YAAY,CAACF,KAAK,EAAE,YAAY,CAAC;EAC/C,IAAI,CAACL,MAAM,CAACC,KAAK,CAAC,EAAE,MAAM,IAAIX,SAAS,CAAC,mDAAmD,CAAC;AAC5F,EAAA,MAAMkB,QAAQ,GAAGC,WAAW,CAACR,KAAK,CAAC;AACnC,EAAA,IAAIK,YAAY,IAAIE,QAAQ,CAACE,YAAY,KAAKJ,YAAY,EAC1D;IACI,MAAM,IAAIhB,SAAS,CAAC,CAAA,wBAAA,EAA2BgB,YAAY,SAASE,QAAQ,CAACE,YAAY,CAAA,CAAE,CAAC;AAChG,EAAA;EACA,OAAO;AAAE,IAAA,GAAGF,QAAQ;IAAEN,UAAU,EAAED,KAAK,CAACC,UAAU;AAAEnB,IAAAA,MAAM,EAAEe,MAAM,CAACf,MAAM,IAAI;GAAU;AAC3F;;AAEA;AACA;AACA;AACA;AACO,SAAS4B,sBAAsBA,CAACN,KAAK,EAAEP,MAAM,GAAGpB,cAAc,EACrE;EACI,IACA;AACI,IAAA,MAAM8B,QAAQ,GAAGJ,iBAAiB,CAACC,KAAK,EAAEP,MAAM,CAAC;IACjD,OAAO;AACHc,MAAAA,MAAM,EAAE,MAAM;AACd7B,MAAAA,MAAM,EAAEe,MAAM,CAACf,MAAM,IAAI,QAAQ;AACjC8B,MAAAA,SAAS,EAAE,SAAS;AACpBC,MAAAA,UAAU,EAAE,CAAC;AACbC,MAAAA,eAAe,EAAE,KAAK;AACtBC,MAAAA,MAAM,EAAE,4FAA4F;MACpGR,QAAQ;AACRS,MAAAA,QAAQ,EAAE,CACN;AACIC,QAAAA,IAAI,EAAE,KAAK;AACXC,QAAAA,WAAW,EAAE,KAAK;AAClBC,QAAAA,KAAK,EAAE,MAAM;AACbC,QAAAA,QAAQ,EAAE,YAAY;AACtBR,QAAAA,SAAS,EAAE;AACf,OAAC,EACD;AAAEK,QAAAA,IAAI,EAAE,MAAM;AAAEC,QAAAA,WAAW,EAAE,MAAM;AAAEC,QAAAA,KAAK,EAAE,YAAY;AAAEP,QAAAA,SAAS,EAAE,KAAK;AAAEG,QAAAA,MAAM,EAAE;AAAoD,OAAC,CAC5I;AACDM,MAAAA,QAAQ,EAAE,EAAE;AACZC,MAAAA,MAAM,EAAE;KACX;EACL,CAAC,CACD,OAAOC,KAAK,EACZ;IACI,OAAO;AACHZ,MAAAA,MAAM,EAAE,MAAM;AACd7B,MAAAA,MAAM,EAAEe,MAAM,CAACf,MAAM,IAAI,QAAQ;AACjC8B,MAAAA,SAAS,EAAE,MAAM;AACjBC,MAAAA,UAAU,EAAE,CAAC;AACbC,MAAAA,eAAe,EAAE,EAAE;MACnBC,MAAM,EAAEQ,KAAK,CAACC,OAAO;AACrBjB,MAAAA,QAAQ,EAAE,IAAI;AACdS,MAAAA,QAAQ,EAAE,EAAE;AACZK,MAAAA,QAAQ,EAAE,EAAE;AACZC,MAAAA,MAAM,EAAE,CAAEC,KAAK,CAACC,OAAO;KAC1B;AACL,EAAA;AACJ;;AAEA;AACO,SAASC,cAAcA,CAACrB,KAAK,EAAEP,MAAM,GAAGpB,cAAc,EAC7D;AACI,EAAA,MAAMuB,KAAK,GAAGM,YAAY,CAACF,KAAK,EAAE,YAAY,CAAC;AAC/C,EAAA,MAAMG,QAAQ,GAAGJ,iBAAiB,CAACH,KAAK,EAAEH,MAAM,CAAC;AACjD,EAAA,IAAIA,MAAM,CAACjB,IAAI,KAAKL,UAAU,EAC9B;IACI,OAAO;AACH2C,MAAAA,WAAW,EAAE,KAAK;AAClBT,MAAAA,YAAY,EAAE,MAAM;AACpBW,MAAAA,QAAQ,EAAE,YAAY;MACtBb,QAAQ;AACRP,MAAAA;KACH;AACL,EAAA;AACA,EAAA,IAAIH,MAAM,CAACjB,IAAI,KAAKJ,WAAW,IAAIqB,MAAM,CAACjB,IAAI,KAAK,UAAU,EAAE,OAAO2B,QAAQ;EAC9E,MAAMgB,KAAK,GAAG,IAAIG,KAAK,CAAC,eAAe7B,MAAM,CAACjB,IAAI,CAAA,wBAAA,CAA0B,CAAC;EAC7E2C,KAAK,CAACI,IAAI,GAAG,mCAAmC;AAChD,EAAA,MAAMJ,KAAK;AACf;;AAEA;AACO,SAASK,WAAWA,CAACC,KAAK,EACjC;AACI,EAAA,IAAIA,KAAK,YAAYC,UAAU,EAAE,OAAO;IAAE7B,UAAU,EAAE4B,KAAK,CAAC5B;GAAY;AACxE,EAAA,IAAId,KAAK,CAACC,OAAO,CAACyC,KAAK,CAAC,EAAE,OAAOA,KAAK,CAACE,GAAG,CAACH,WAAW,CAAC;AACvD,EAAA,IAAIC,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EACtC;IACI,MAAMG,MAAM,GAAG,EAAE;IACjB,KAAK,MAAM,CAAExC,GAAG,EAAEyC,KAAK,CAAE,IAAIvD,MAAM,CAACwD,OAAO,CAACL,KAAK,CAAC,EAAEG,MAAM,CAACxC,GAAG,CAAC,GAAGoC,WAAW,CAACK,KAAK,CAAC;AACpF,IAAA,OAAOD,MAAM;AACjB,EAAA;AACA,EAAA,OAAOH,KAAK;AAChB;AAEA,SAASrB,WAAWA,CAACR,KAAK,EAC1B;AACI,EAAA,MAAMmC,UAAU,GAAGC,SAAS,CAACpC,KAAK,EAAE,CAAC,CAAC;EACtC,MAAMqC,MAAM,GAAG,EAAE;EACjB,IAAIC,KAAK,GAAG,CAAC;EACb,IAAIC,MAAM,GAAG,CAAC;EACd,IAAIpB,KAAK,GAAG,MAAM;EAClB,IAAIqB,QAAQ,GAAG,KAAK;EACpB,IAAIC,QAAQ,GAAG,KAAK;EACpB,MAAMC,eAAe,GAAG,EAAE;EAC1B,IAAIC,MAAM,GAAG,EAAE;AACf,EAAA,OAAOA,MAAM,GAAG,CAAC,IAAI3C,KAAK,CAACC,UAAU,EACrC;IACI,MAAM2C,IAAI,GAAG1C,KAAK,CAACF,KAAK,EAAE2C,MAAM,EAAE,CAAC,CAAC;IACpC,MAAME,IAAI,GAAGT,SAAS,CAACpC,KAAK,EAAE2C,MAAM,GAAG,CAAC,CAAC;AACzC,IAAA,MAAMG,UAAU,GAAGH,MAAM,GAAG,CAAC;AAC7B,IAAA,IAAIG,UAAU,GAAGD,IAAI,GAAG7C,KAAK,CAACC,UAAU,EAAE,MAAM,IAAIyB,KAAK,CAAC,CAAA,MAAA,EAASkB,IAAI,qBAAqB,CAAC;IAC7FP,MAAM,CAACU,IAAI,CAAC;MAAEH,IAAI;AAAEI,MAAAA,UAAU,EAAEF,UAAU;AAAE7C,MAAAA,UAAU,EAAE4C;AAAK,KAAC,CAAC;IAC/D,IAAID,IAAI,KAAK,MAAM,EACnB;AACIzB,MAAAA,KAAK,GAAG,KAAK;AACb,MAAA,IAAI0B,IAAI,IAAI,EAAE,IAAI7C,KAAK,CAAC8C,UAAU,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI9C,KAAK,CAAC8C,UAAU,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI9C,KAAK,CAAC8C,UAAU,GAAG,CAAC,CAAC,KAAK,IAAI,EACpH;QACIR,KAAK,GAAGW,SAAS,CAACjD,KAAK,EAAE8C,UAAU,GAAG,CAAC,CAAC,GAAG,MAAM;QACjDP,MAAM,GAAGU,SAAS,CAACjD,KAAK,EAAE8C,UAAU,GAAG,CAAC,CAAC,GAAG,MAAM;AACtD,MAAA;AACJ,IAAA,CAAC,MACI,IAAIF,IAAI,KAAK,MAAM,EACxB;AACIzB,MAAAA,KAAK,GAAG,MAAM;MACd,IAAI0B,IAAI,IAAI,CAAC,IAAI7C,KAAK,CAAC8C,UAAU,CAAC,KAAK,IAAI,EAC3C;QACIR,KAAK,GAAG,CAAC,IAAItC,KAAK,CAAC8C,UAAU,GAAG,CAAC,CAAC,GAAI,CAAC9C,KAAK,CAAC8C,UAAU,GAAG,CAAC,CAAC,GAAG,IAAI,KAAK,CAAE,CAAC;AAC3EP,QAAAA,MAAM,GAAG,CAAC,IAAKvC,KAAK,CAAC8C,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,GAAK9C,KAAK,CAAC8C,UAAU,GAAG,CAAC,CAAC,IAAI,CAAE,GAAI,CAAC9C,KAAK,CAAC8C,UAAU,GAAG,CAAC,CAAC,GAAG,IAAI,KAAK,EAAG,CAAC;AACpHN,QAAAA,QAAQ,GAAG,IAAI;AACnB,MAAA;AACJ,IAAA,CAAC,MACI,IAAII,IAAI,KAAK,MAAM,EACxB;AACIzB,MAAAA,KAAK,GAAG,MAAM;MACd,IAAI0B,IAAI,IAAI,EAAE,EACd;AACI,QAAA,MAAMK,KAAK,GAAGlD,KAAK,CAAC8C,UAAU,CAAC;AAC/BN,QAAAA,QAAQ,GAAG,CAAC,EAAEU,KAAK,GAAG,IAAI,CAAC;AAC3BT,QAAAA,QAAQ,GAAG,CAAC,EAAES,KAAK,GAAG,IAAI,CAAC;QAC3BZ,KAAK,GAAG,CAAC,GAAGa,SAAS,CAACnD,KAAK,EAAE8C,UAAU,GAAG,CAAC,CAAC;QAC5CP,MAAM,GAAG,CAAC,GAAGY,SAAS,CAACnD,KAAK,EAAE8C,UAAU,GAAG,CAAC,CAAC;AACjD,MAAA;IACJ,CAAC,MACI,IAAIF,IAAI,KAAK,MAAM,EAAEJ,QAAQ,GAAG,IAAI,CAAC,KACrC,IAAII,IAAI,KAAK,MAAM,EAAEH,QAAQ,GAAG,IAAI,CAAC,KACrC,IAAIG,IAAI,KAAK,MAAM,EACxB;AACIH,MAAAA,QAAQ,GAAG,IAAI;MACf,IAAII,IAAI,IAAI,EAAE,EACd;QACIH,eAAe,CAACK,IAAI,CAAC;AACjBK,UAAAA,CAAC,EAAED,SAAS,CAACnD,KAAK,EAAE8C,UAAU,CAAC;UAC/BO,CAAC,EAAEF,SAAS,CAACnD,KAAK,EAAE8C,UAAU,GAAG,CAAC,CAAC;UACnCR,KAAK,EAAE,CAAC,GAAGa,SAAS,CAACnD,KAAK,EAAE8C,UAAU,GAAG,CAAC,CAAC;UAC3CP,MAAM,EAAE,CAAC,GAAGY,SAAS,CAACnD,KAAK,EAAE8C,UAAU,GAAG,CAAC,CAAC;UAC5CQ,UAAU,EAAEH,SAAS,CAACnD,KAAK,EAAE8C,UAAU,GAAG,EAAE,CAAC;AAC7CI,UAAAA,KAAK,EAAElD,KAAK,CAAC8C,UAAU,GAAG,EAAE;AAChC,SAAC,CAAC;AACN,MAAA;AACJ,IAAA;IACAH,MAAM,GAAGG,UAAU,GAAGD,IAAI,IAAIA,IAAI,GAAG,CAAC,CAAC;AAC3C,EAAA;EACA,OAAO;AACH3B,IAAAA,WAAW,EAAE,OAAO;IACpBqC,UAAU,EAAE,CAAE,OAAO,CAAE;AACvB9C,IAAAA,YAAY,EAAE,MAAM;AACpB+C,IAAAA,SAAS,EAAE,MAAM;IACjBrB,UAAU;IACVhB,KAAK;IACLmB,KAAK;IACLC,MAAM;IACNC,QAAQ;IACRC,QAAQ;IACRgB,mBAAmB,EAAEf,eAAe,CAACgB,MAAM;AAC3CC,IAAAA,mBAAmB,EAAEjB,eAAe,CAACkB,MAAM,CAAC,CAACC,GAAG,EAAEC,KAAK,KAAKD,GAAG,GAAGC,KAAK,CAACR,UAAU,EAAE,CAAC,CAAC;IACtFZ,eAAe;AACfqB,IAAAA,YAAY,EAAE,IAAI;AAClB1B,IAAAA;GACH;AACL;AAEA,SAASnC,KAAKA,CAACF,KAAK,EAAE2C,MAAM,EAAEe,MAAM,EACpC;AACI,EAAA,OAAOM,MAAM,CAACC,YAAY,CAAC,GAAGjE,KAAK,CAACkE,QAAQ,CAACvB,MAAM,EAAEA,MAAM,GAAGe,MAAM,CAAC,CAAC;AAC1E;;;;"}
1
+ {"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/webp/core/helpers.js"],"sourcesContent":["import { toJsonWithByteSummary as toJsonValue } from \"../../../format/jsonPolicies.js\";\nimport { asUint8Array, readU16LE, readU24LE, readU32LE } from \"#utils/bytes\";\n\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_JSON = \"json\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_RAW,\n inputType: \"webp\",\n source: \"\"\n});\n\n/**\n * Normalizes reader options against their supported defaults for the WebP format\n * reader.\n */\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsWebpFormat\")\n{\n if (!options || typeof options !== \"object\" || Array.isArray(options))\n {\n throw new TypeError(`${readerName}: options must be an object`);\n }\n const allowed = new Set([ \"emit\", \"inputType\", \"source\" ]);\n for (const key of Object.keys(options))\n {\n if (!allowed.has(key)) throw new TypeError(`${readerName}: unknown option ${JSON.stringify(key)}`);\n }\n const values = { ...DEFAULT_VALUES, ...(base || {}), ...options };\n if (![ OUTPUT_RAW, OUTPUT_JSON, \"webpJson\" ].includes(values.emit))\n {\n throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(values.emit)}`);\n }\n return values;\n}\n\n/** Returns a byte view over the supplied binary input for the WebP format reader. */\n/**\n * Reports whether the supplied bytes have a RIFF/WebP header for the WebP format\n * reader.\n */\nexport function isWebP(bytes)\n{\n return bytes.byteLength >= 12 &&\n ascii(bytes, 0, 4) === \"RIFF\" && ascii(bytes, 8, 4) === \"WEBP\";\n}\n\n/** Inspects input using normalized format options for the WebP format reader. */\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"webp\")\n{\n const bytes = asUint8Array(input, \"WebP input\");\n if (!isWebP(bytes)) throw new TypeError(\"CjsWebpFormat: input is not a RIFF WebP container\");\n const metadata = inspectWebP(bytes);\n if (expectedType && metadata.sourceFormat !== expectedType)\n {\n throw new TypeError(`CjsWebpFormat: expected ${expectedType}, got ${metadata.sourceFormat}`);\n }\n return { ...metadata, byteLength: bytes.byteLength, source: values.source || \"buffer\" };\n}\n\n/**\n * Reports whether input is supported under normalized format options for the\n * WebP format reader.\n */\nexport function probeSupportWithValues(input, values = DEFAULT_VALUES)\n{\n try\n {\n const metadata = inspectWithValues(input, values);\n return {\n format: \"webp\",\n source: values.source || \"buffer\",\n supported: \"partial\",\n confidence: 1,\n preferredOutput: \"raw\",\n reason: \"WebP container and image metadata are recognized; software RGBA decode is not implemented.\",\n metadata,\n variants: [\n {\n kind: \"raw\",\n payloadType: \"raw\",\n codec: \"webp\",\n mimeType: \"image/webp\",\n supported: true,\n },\n { kind: \"rgba\", payloadType: \"rgba\", codec: \"rgba8unorm\", supported: false, reason: \"WebP software RGBA decode is not implemented yet.\" }\n ],\n warnings: [],\n errors: []\n };\n }\n catch (error)\n {\n return {\n format: \"webp\",\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 WebP format reader. */\nexport function readWithValues(input, values = DEFAULT_VALUES)\n{\n const bytes = asUint8Array(input, \"WebP input\");\n const metadata = inspectWithValues(bytes, values);\n if (values.emit === OUTPUT_RAW)\n {\n return {\n payloadType: \"raw\",\n sourceFormat: \"webp\",\n mimeType: \"image/webp\",\n metadata,\n bytes\n };\n }\n if (values.emit === OUTPUT_JSON || values.emit === \"webpJson\") return metadata;\n const error = new Error(`webp: emit \"${values.emit}\" is not implemented yet`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED\";\n throw error;\n}\n\n/** Converts a parsed payload into a JSON-safe value for the WebP format reader. */\n/** The shared JSON policy for this reader, under the name its callers use. */\nexport { toJsonValue };\n\nfunction inspectWebP(bytes)\n{\n const riffLength = readU32LE(bytes, 4);\n const chunks = [];\n let width = 0;\n let height = 0;\n let codec = \"webp\";\n let hasAlpha = false;\n let animated = false;\n const animationFrames = [];\n let offset = 12;\n while (offset + 8 <= bytes.byteLength)\n {\n const type = ascii(bytes, offset, 4);\n const size = readU32LE(bytes, offset + 4);\n const dataOffset = offset + 8;\n if (dataOffset + size > bytes.byteLength) throw new Error(`webp: ${type} chunk is truncated`);\n chunks.push({ type, byteOffset: dataOffset, byteLength: size });\n if (type === \"VP8 \")\n {\n codec = \"vp8\";\n if (size >= 10 && bytes[dataOffset + 3] === 0x9d && bytes[dataOffset + 4] === 0x01 && bytes[dataOffset + 5] === 0x2a)\n {\n width = readU16LE(bytes, dataOffset + 6) & 0x3fff;\n height = readU16LE(bytes, dataOffset + 8) & 0x3fff;\n }\n }\n else if (type === \"VP8L\")\n {\n codec = \"vp8l\";\n if (size >= 5 && bytes[dataOffset] === 0x2f)\n {\n width = 1 + (bytes[dataOffset + 1] | ((bytes[dataOffset + 2] & 0x3f) << 8));\n height = 1 + ((bytes[dataOffset + 2] >>> 6) | (bytes[dataOffset + 3] << 2) | ((bytes[dataOffset + 4] & 0x0f) << 10));\n hasAlpha = true;\n }\n }\n else if (type === \"VP8X\")\n {\n codec = \"vp8x\";\n if (size >= 10)\n {\n const flags = bytes[dataOffset];\n hasAlpha = !!(flags & 0x10);\n animated = !!(flags & 0x02);\n width = 1 + readU24LE(bytes, dataOffset + 4);\n height = 1 + readU24LE(bytes, dataOffset + 7);\n }\n }\n else if (type === \"ALPH\") hasAlpha = true;\n else if (type === \"ANIM\") animated = true;\n else if (type === \"ANMF\")\n {\n animated = true;\n if (size >= 16)\n {\n animationFrames.push({\n x: readU24LE(bytes, dataOffset),\n y: readU24LE(bytes, dataOffset + 3),\n width: 1 + readU24LE(bytes, dataOffset + 6),\n height: 1 + readU24LE(bytes, dataOffset + 9),\n durationMs: readU24LE(bytes, dataOffset + 12),\n flags: bytes[dataOffset + 15]\n });\n }\n }\n offset = dataOffset + size + (size & 1);\n }\n return {\n payloadType: \"image\",\n mediaTypes: [ \"image\" ],\n sourceFormat: \"webp\",\n container: \"riff\",\n riffLength,\n codec,\n width,\n height,\n hasAlpha,\n animated,\n animationFrameCount: animationFrames.length,\n animationDurationMs: animationFrames.reduce((sum, frame) => sum + frame.durationMs, 0),\n animationFrames,\n isCompressed: true,\n chunks\n };\n}\n\nfunction ascii(bytes, offset, length)\n{\n return String.fromCharCode(...bytes.subarray(offset, offset + length));\n}\n\n\n"],"names":["OUTPUT_RAW","OUTPUT_JSON","DEFAULT_VALUES","Object","freeze","emit","inputType","source","normalizeValues","base","options","readerName","Array","isArray","TypeError","allowed","Set","key","keys","has","JSON","stringify","values","includes","isWebP","bytes","byteLength","ascii","inspectWithValues","input","expectedType","asUint8Array","metadata","inspectWebP","sourceFormat","readWithValues","payloadType","mimeType","error","Error","code","riffLength","readU32LE","chunks","width","height","codec","hasAlpha","animated","animationFrames","offset","type","size","dataOffset","push","byteOffset","readU16LE","flags","readU24LE","x","y","durationMs","mediaTypes","container","animationFrameCount","length","animationDurationMs","reduce","sum","frame","isCompressed","String","fromCharCode","subarray"],"mappings":"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"}
@@ -1,7 +1,8 @@
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, toJsonValue, 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, OUTPUT_JSON, WEM_CODEC_NAMES } from './core/helpers.js';
4
4
  import { probeCodecSupportWithValues } from './core/probeCodecSupport.js';
5
+ import { toJsonWithByteSummary } from '../../format/jsonPolicies.js';
5
6
 
6
7
  const FORMAT_NAME = "CjsWemFormat";
7
8
 
@@ -97,7 +98,7 @@ class CjsWemFormat extends CjsFormat {
97
98
  * @returns {any} JSON-compatible value.
98
99
  */
99
100
  ToJSON(value) {
100
- return toJsonValue(value);
101
+ return toJsonWithByteSummary(value);
101
102
  }
102
103
 
103
104
  /**
@@ -151,7 +152,7 @@ class CjsWemFormat extends CjsFormat {
151
152
  * @returns {any} JSON-compatible value.
152
153
  */
153
154
  static toJSON(value) {
154
- return toJsonValue(value);
155
+ return toJsonWithByteSummary(value);
155
156
  }
156
157
 
157
158
  /**
@@ -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 = 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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"}