@carbonenginejs/runtime-resource 0.9.2 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (544) hide show
  1. package/NOTICE +3 -2
  2. package/README.md +47 -6
  3. package/dist/CjsMotherLode.js +88 -88
  4. package/dist/CjsMotherLode.js.map +1 -1
  5. package/dist/CjsResMan.js +717 -228
  6. package/dist/CjsResMan.js.map +1 -1
  7. package/dist/CjsResManFetchProvider.js +94 -0
  8. package/dist/CjsResManFetchProvider.js.map +1 -0
  9. package/dist/{CjsResManQueue.js → CjsResManWorkQueue.js} +112 -25
  10. package/dist/CjsResManWorkQueue.js.map +1 -0
  11. package/dist/format/CjsBlueReader.js +89 -0
  12. package/dist/format/CjsBlueReader.js.map +1 -1
  13. package/dist/format/CjsFormat.js +42 -16
  14. package/dist/format/CjsFormat.js.map +1 -1
  15. package/dist/format/CjsReader.js +4 -0
  16. package/dist/format/CjsReader.js.map +1 -1
  17. package/dist/format/CjsResourceProbe.js +2 -0
  18. package/dist/format/CjsResourceProbe.js.map +1 -1
  19. package/dist/format/effect/effectPermutationGraph.js +257 -0
  20. package/dist/format/effect/effectPermutationGraph.js.map +1 -0
  21. package/dist/format/effect/effectReflectionPackage.js +636 -0
  22. package/dist/format/effect/effectReflectionPackage.js.map +1 -0
  23. package/dist/format/effect/sha256.js +114 -0
  24. package/dist/format/effect/sha256.js.map +1 -0
  25. package/dist/format/payloadContract.js +20 -0
  26. package/dist/format/payloadContract.js.map +1 -1
  27. package/dist/formats/black/CjsBlackFormat.js +15 -1
  28. package/dist/formats/black/CjsBlackFormat.js.map +1 -1
  29. package/dist/formats/black/core/CjsBlackBinaryReader.js +103 -0
  30. package/dist/formats/black/core/CjsBlackBinaryReader.js.map +1 -1
  31. package/dist/formats/black/core/CjsBlackPropertyReaders.js +61 -0
  32. package/dist/formats/black/core/CjsBlackPropertyReaders.js.map +1 -1
  33. package/dist/formats/black/core/CjsBlackReader.js +125 -0
  34. package/dist/formats/black/core/CjsBlackReader.js.map +1 -1
  35. package/dist/formats/black/core/CjsBlackSchemaRegistry.js +103 -0
  36. package/dist/formats/black/core/CjsBlackSchemaRegistry.js.map +1 -1
  37. package/dist/formats/black/core/helpers.js +17 -0
  38. package/dist/formats/black/core/helpers.js.map +1 -1
  39. package/dist/formats/bnk/CjsBnkFormat.js +8 -0
  40. package/dist/formats/bnk/CjsBnkFormat.js.map +1 -1
  41. package/dist/formats/bnk/core/helpers.js +20 -0
  42. package/dist/formats/bnk/core/helpers.js.map +1 -1
  43. package/dist/formats/bnk/core/musicNodes.js +40 -3
  44. package/dist/formats/bnk/core/musicNodes.js.map +1 -1
  45. package/dist/formats/bnk/core/soundbanksInfo.js +2 -0
  46. package/dist/formats/bnk/core/soundbanksInfo.js.map +1 -1
  47. package/dist/formats/cmf/core/binary.js +71 -0
  48. package/dist/formats/cmf/core/binary.js.map +1 -1
  49. package/dist/formats/cmf/core/buffers.js +4 -0
  50. package/dist/formats/cmf/core/buffers.js.map +1 -1
  51. package/dist/formats/cmf/core/helpers.js +31 -0
  52. package/dist/formats/cmf/core/helpers.js.map +1 -1
  53. package/dist/formats/cmf/core/schema.js +10 -0
  54. package/dist/formats/cmf/core/schema.js.map +1 -1
  55. package/dist/formats/cmf/core/shared.js +9 -0
  56. package/dist/formats/cmf/core/shared.js.map +1 -1
  57. package/dist/formats/cmf/core/writer.js +54 -0
  58. package/dist/formats/cmf/core/writer.js.map +1 -1
  59. package/dist/formats/dds/core/bc6h.js +10 -0
  60. package/dist/formats/dds/core/bc6h.js.map +1 -1
  61. package/dist/formats/dds/core/bc7.js +16 -0
  62. package/dist/formats/dds/core/bc7.js.map +1 -1
  63. package/dist/formats/dds/core/helpers.js +47 -0
  64. package/dist/formats/dds/core/helpers.js.map +1 -1
  65. package/dist/formats/dxbc/CjsDxbcFormat.js +142 -0
  66. package/dist/formats/dxbc/CjsDxbcFormat.js.map +1 -0
  67. package/dist/formats/dxbc/core/DxbcReader.js +266 -0
  68. package/dist/formats/dxbc/core/DxbcReader.js.map +1 -0
  69. package/dist/formats/dxbc/core/container.js +169 -0
  70. package/dist/formats/dxbc/core/container.js.map +1 -0
  71. package/dist/formats/dxbc/core/decoder.js +789 -0
  72. package/dist/formats/dxbc/core/decoder.js.map +1 -0
  73. package/dist/formats/dxbc/core/errors.js +19 -0
  74. package/dist/formats/dxbc/core/errors.js.map +1 -0
  75. package/dist/formats/dxbc/core/helpers.js +220 -0
  76. package/dist/formats/dxbc/core/helpers.js.map +1 -0
  77. package/dist/formats/dxbc/core/opcodes.js +45 -0
  78. package/dist/formats/dxbc/core/opcodes.js.map +1 -0
  79. package/dist/formats/dxbc/core/program.js +91 -0
  80. package/dist/formats/dxbc/core/program.js.map +1 -0
  81. package/dist/formats/dxbc/core/signature.js +172 -0
  82. package/dist/formats/dxbc/core/signature.js.map +1 -0
  83. package/dist/formats/dxbc/index.js +2 -0
  84. package/dist/formats/dxbc/index.js.map +1 -0
  85. package/dist/formats/fbx/core/helpers.js +21 -0
  86. package/dist/formats/fbx/core/helpers.js.map +1 -1
  87. package/dist/formats/flac/CjsFlacFormat.js +49 -0
  88. package/dist/formats/flac/CjsFlacFormat.js.map +1 -1
  89. package/dist/formats/flac/core/helpers.js +20 -0
  90. package/dist/formats/flac/core/helpers.js.map +1 -1
  91. package/dist/formats/gif/CjsGifFormat.js +49 -0
  92. package/dist/formats/gif/CjsGifFormat.js.map +1 -1
  93. package/dist/formats/gif/core/helpers.js +20 -0
  94. package/dist/formats/gif/core/helpers.js.map +1 -1
  95. package/dist/formats/gltf/core/helpers.js +15 -0
  96. package/dist/formats/gltf/core/helpers.js.map +1 -1
  97. package/dist/formats/gltf/core/parser.js +13 -0
  98. package/dist/formats/gltf/core/parser.js.map +1 -1
  99. package/dist/formats/gltf/core/targets.js +10 -0
  100. package/dist/formats/gltf/core/targets.js.map +1 -1
  101. package/dist/formats/gr2/core/bitknit2.js +2 -0
  102. package/dist/formats/gr2/core/bitknit2.js.map +1 -1
  103. package/dist/formats/gr2/core/helpers.js +20 -0
  104. package/dist/formats/gr2/core/helpers.js.map +1 -1
  105. package/dist/formats/gr2/core/targets.js +10 -0
  106. package/dist/formats/gr2/core/targets.js.map +1 -1
  107. package/dist/formats/hlsl/CjsHlslFormat.js +254 -0
  108. package/dist/formats/hlsl/CjsHlslFormat.js.map +1 -0
  109. package/dist/formats/hlsl/core/HlslBinaryUtils.js +15 -0
  110. package/dist/formats/hlsl/core/HlslBinaryUtils.js.map +1 -0
  111. package/dist/formats/hlsl/core/HlslEffectReadError.js +19 -0
  112. package/dist/formats/hlsl/core/HlslEffectReadError.js.map +1 -0
  113. package/dist/formats/hlsl/core/HlslEffectStateManager.js +130 -0
  114. package/dist/formats/hlsl/core/HlslEffectStateManager.js.map +1 -0
  115. package/dist/formats/hlsl/core/HlslReader.js +266 -0
  116. package/dist/formats/hlsl/core/HlslReader.js.map +1 -0
  117. package/dist/formats/hlsl/core/HlslRenderStateSetup.js +37 -0
  118. package/dist/formats/hlsl/core/HlslRenderStateSetup.js.map +1 -0
  119. package/dist/formats/hlsl/core/HlslResourceSetDescription.js +94 -0
  120. package/dist/formats/hlsl/core/HlslResourceSetDescription.js.map +1 -0
  121. package/dist/formats/hlsl/core/HlslShaderBytecode.js +44 -0
  122. package/dist/formats/hlsl/core/HlslShaderBytecode.js.map +1 -0
  123. package/dist/formats/hlsl/core/analysis.js +51 -0
  124. package/dist/formats/hlsl/core/analysis.js.map +1 -0
  125. package/dist/formats/hlsl/core/helpers.js +270 -0
  126. package/dist/formats/hlsl/core/helpers.js.map +1 -0
  127. package/dist/formats/hlsl/core/json.js +284 -0
  128. package/dist/formats/hlsl/core/json.js.map +1 -0
  129. package/dist/formats/hlsl/core/metadata.js +327 -0
  130. package/dist/formats/hlsl/core/metadata.js.map +1 -0
  131. package/dist/formats/hlsl/core/portableReflection.js +848 -0
  132. package/dist/formats/hlsl/core/portableReflection.js.map +1 -0
  133. package/dist/formats/hlsl/core/render-states.js +280 -0
  134. package/dist/formats/hlsl/core/render-states.js.map +1 -0
  135. package/dist/formats/hlsl/core/tr2/HlslRenderContextEnum.js +43 -0
  136. package/dist/formats/hlsl/core/tr2/HlslRenderContextEnum.js.map +1 -0
  137. package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js +294 -0
  138. package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js.map +1 -0
  139. package/dist/formats/hlsl/core/tr2/resources/HlslShaderPermutation.js +33 -0
  140. package/dist/formats/hlsl/core/tr2/resources/HlslShaderPermutation.js.map +1 -0
  141. package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js +416 -0
  142. package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js.map +1 -0
  143. package/dist/formats/hlsl/core/tr2/shader/HlslEffectConstant.js +40 -0
  144. package/dist/formats/hlsl/core/tr2/shader/HlslEffectConstant.js.map +1 -0
  145. package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js +742 -0
  146. package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js.map +1 -0
  147. package/dist/formats/hlsl/core/tr2/shader/HlslEffectLibrary.js +52 -0
  148. package/dist/formats/hlsl/core/tr2/shader/HlslEffectLibrary.js.map +1 -0
  149. package/dist/formats/hlsl/core/tr2/shader/HlslEffectParameterAnnotation.js +38 -0
  150. package/dist/formats/hlsl/core/tr2/shader/HlslEffectParameterAnnotation.js.map +1 -0
  151. package/dist/formats/hlsl/core/tr2/shader/HlslEffectResource.js +50 -0
  152. package/dist/formats/hlsl/core/tr2/shader/HlslEffectResource.js.map +1 -0
  153. package/dist/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js +86 -0
  154. package/dist/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js.map +1 -0
  155. package/dist/formats/hlsl/core/tr2/shader/HlslEffectTechnique.js +31 -0
  156. package/dist/formats/hlsl/core/tr2/shader/HlslEffectTechnique.js.map +1 -0
  157. package/dist/formats/hlsl/core/tr2/shader/HlslPass.js +42 -0
  158. package/dist/formats/hlsl/core/tr2/shader/HlslPass.js.map +1 -0
  159. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerDescription.js +55 -0
  160. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerDescription.js.map +1 -0
  161. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerSetup.js +29 -0
  162. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerSetup.js.map +1 -0
  163. package/dist/formats/hlsl/core/tr2/shader/HlslShader.js +220 -0
  164. package/dist/formats/hlsl/core/tr2/shader/HlslShader.js.map +1 -0
  165. package/dist/formats/hlsl/core/tr2/shader/HlslShaderOption.js +30 -0
  166. package/dist/formats/hlsl/core/tr2/shader/HlslShaderOption.js.map +1 -0
  167. package/dist/formats/hlsl/index.js +2 -0
  168. package/dist/formats/hlsl/index.js.map +1 -0
  169. package/dist/formats/hlsl/portable.js +2 -0
  170. package/dist/formats/hlsl/portable.js.map +1 -0
  171. package/dist/formats/index.js +4 -0
  172. package/dist/formats/index.js.map +1 -1
  173. package/dist/formats/jpeg/core/helpers.js +52 -0
  174. package/dist/formats/jpeg/core/helpers.js.map +1 -1
  175. package/dist/formats/jpeg/core/jpeg.js +93 -0
  176. package/dist/formats/jpeg/core/jpeg.js.map +1 -1
  177. package/dist/formats/mp3/core/helpers.js +37 -0
  178. package/dist/formats/mp3/core/helpers.js.map +1 -1
  179. package/dist/formats/mp4/core/helpers.js +35 -0
  180. package/dist/formats/mp4/core/helpers.js.map +1 -1
  181. package/dist/formats/ogg/CjsOggFormat.js +49 -0
  182. package/dist/formats/ogg/CjsOggFormat.js.map +1 -1
  183. package/dist/formats/ogg/core/helpers.js +23 -0
  184. package/dist/formats/ogg/core/helpers.js.map +1 -1
  185. package/dist/formats/ogg/core/vorbis.js +13 -0
  186. package/dist/formats/ogg/core/vorbis.js.map +1 -1
  187. package/dist/formats/png/core/helpers.js +52 -0
  188. package/dist/formats/png/core/helpers.js.map +1 -1
  189. package/dist/formats/red/CjsRedFormat.js +2 -0
  190. package/dist/formats/red/CjsRedFormat.js.map +1 -1
  191. package/dist/formats/red/core/CjsRedReader.js +52 -0
  192. package/dist/formats/red/core/CjsRedReader.js.map +1 -1
  193. package/dist/formats/red/core/helpers.js +19 -0
  194. package/dist/formats/red/core/helpers.js.map +1 -1
  195. package/dist/formats/stl/core/stl.js +8 -0
  196. package/dist/formats/stl/core/stl.js.map +1 -1
  197. package/dist/formats/stl/core/targets.js +10 -0
  198. package/dist/formats/stl/core/targets.js.map +1 -1
  199. package/dist/formats/tga/core/helpers.js +47 -0
  200. package/dist/formats/tga/core/helpers.js.map +1 -1
  201. package/dist/formats/wav/core/helpers.js +37 -0
  202. package/dist/formats/wav/core/helpers.js.map +1 -1
  203. package/dist/formats/webgl/CjsWebglFormat.js +221 -0
  204. package/dist/formats/webgl/CjsWebglFormat.js.map +1 -0
  205. package/dist/formats/webgl/core/cewg/CewgPackage.js +339 -0
  206. package/dist/formats/webgl/core/cewg/CewgPackage.js.map +1 -0
  207. package/dist/formats/webgl/core/cewg/CewgPackageBuilder.js +104 -0
  208. package/dist/formats/webgl/core/cewg/CewgPackageBuilder.js.map +1 -0
  209. package/dist/formats/webgl/core/cewg/binary.js +101 -0
  210. package/dist/formats/webgl/core/cewg/binary.js.map +1 -0
  211. package/dist/formats/webgl/core/cewgCompleteness.js +81 -0
  212. package/dist/formats/webgl/core/cewgCompleteness.js.map +1 -0
  213. package/dist/formats/webgl/core/effectPackage.js +789 -0
  214. package/dist/formats/webgl/core/effectPackage.js.map +1 -0
  215. package/dist/formats/webgl/core/effectPackageValidation.js +331 -0
  216. package/dist/formats/webgl/core/effectPackageValidation.js.map +1 -0
  217. package/dist/formats/webgl/core/errors.js +27 -0
  218. package/dist/formats/webgl/core/errors.js.map +1 -0
  219. package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js +2678 -0
  220. package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -0
  221. package/dist/formats/webgl/core/glsl/DxbcGlslHelpers.js +89 -0
  222. package/dist/formats/webgl/core/glsl/DxbcGlslHelpers.js.map +1 -0
  223. package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +428 -0
  224. package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -0
  225. package/dist/formats/webgl/core/helpers.js +306 -0
  226. package/dist/formats/webgl/core/helpers.js.map +1 -0
  227. package/dist/formats/webgl/index.js +2 -0
  228. package/dist/formats/webgl/index.js.map +1 -0
  229. package/dist/formats/webgpu/CjsWebgpuFormat.js +376 -0
  230. package/dist/formats/webgpu/CjsWebgpuFormat.js.map +1 -0
  231. package/dist/formats/webgpu/core/cewgpu/CewgpuPackage.js +415 -0
  232. package/dist/formats/webgpu/core/cewgpu/CewgpuPackage.js.map +1 -0
  233. package/dist/formats/webgpu/core/cewgpu/CewgpuPackageBuilder.js +100 -0
  234. package/dist/formats/webgpu/core/cewgpu/CewgpuPackageBuilder.js.map +1 -0
  235. package/dist/formats/webgpu/core/cewgpu/binary.js +93 -0
  236. package/dist/formats/webgpu/core/cewgpu/binary.js.map +1 -0
  237. package/dist/formats/webgpu/core/cewgpu/tags.js +17 -0
  238. package/dist/formats/webgpu/core/cewgpu/tags.js.map +1 -0
  239. package/dist/formats/webgpu/core/effectAnalysis.js +82 -0
  240. package/dist/formats/webgpu/core/effectAnalysis.js.map +1 -0
  241. package/dist/formats/webgpu/core/effectBackendBodySet.js +305 -0
  242. package/dist/formats/webgpu/core/effectBackendBodySet.js.map +1 -0
  243. package/dist/formats/webgpu/core/effectPackageValidation.js +1078 -0
  244. package/dist/formats/webgpu/core/effectPackageValidation.js.map +1 -0
  245. package/dist/formats/webgpu/core/errors.js +20 -0
  246. package/dist/formats/webgpu/core/errors.js.map +1 -0
  247. package/dist/formats/webgpu/core/helpers.js +448 -0
  248. package/dist/formats/webgpu/core/helpers.js.map +1 -0
  249. package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js +223 -0
  250. package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js.map +1 -0
  251. package/dist/formats/webgpu/core/ir/buildControlFlow.js +220 -0
  252. package/dist/formats/webgpu/core/ir/buildControlFlow.js.map +1 -0
  253. package/dist/formats/webgpu/core/ir/indexableTemps.js +137 -0
  254. package/dist/formats/webgpu/core/ir/indexableTemps.js.map +1 -0
  255. package/dist/formats/webgpu/core/ir/inferValueTypes.js +454 -0
  256. package/dist/formats/webgpu/core/ir/inferValueTypes.js.map +1 -0
  257. package/dist/formats/webgpu/core/ir/lowerDxbcToIr.js +494 -0
  258. package/dist/formats/webgpu/core/ir/lowerDxbcToIr.js.map +1 -0
  259. package/dist/formats/webgpu/core/ir/resolveRegisterFlow.js +177 -0
  260. package/dist/formats/webgpu/core/ir/resolveRegisterFlow.js.map +1 -0
  261. package/dist/formats/webgpu/core/ir/sourceLanes.js +61 -0
  262. package/dist/formats/webgpu/core/ir/sourceLanes.js.map +1 -0
  263. package/dist/formats/webgpu/core/packageEffect.js +300 -0
  264. package/dist/formats/webgpu/core/packageEffect.js.map +1 -0
  265. package/dist/formats/webgpu/core/packageEffectSelection.js +164 -0
  266. package/dist/formats/webgpu/core/packageEffectSelection.js.map +1 -0
  267. package/dist/formats/webgpu/core/packageMetadata.js +8 -0
  268. package/dist/formats/webgpu/core/packageMetadata.js.map +1 -0
  269. package/dist/formats/webgpu/core/schema.js +4 -0
  270. package/dist/formats/webgpu/core/schema.js.map +1 -0
  271. package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js +275 -0
  272. package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js.map +1 -0
  273. package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js +182 -0
  274. package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js.map +1 -0
  275. package/dist/formats/webgpu/core/wgsl/buildWgslSet.js +324 -0
  276. package/dist/formats/webgpu/core/wgsl/buildWgslSet.js.map +1 -0
  277. package/dist/formats/webgpu/core/wgsl/emitWgsl.js +356 -0
  278. package/dist/formats/webgpu/core/wgsl/emitWgsl.js.map +1 -0
  279. package/dist/formats/webgpu/core/wgsl/hoistEscapingValues.js +77 -0
  280. package/dist/formats/webgpu/core/wgsl/hoistEscapingValues.js.map +1 -0
  281. package/dist/formats/webgpu/core/wgsl/lowerBindingLayout.js +451 -0
  282. package/dist/formats/webgpu/core/wgsl/lowerBindingLayout.js.map +1 -0
  283. package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js +754 -0
  284. package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js.map +1 -0
  285. package/dist/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js +457 -0
  286. package/dist/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js.map +1 -0
  287. package/dist/formats/webgpu/core/wgsl/lowerFragmentProgram.js +1572 -0
  288. package/dist/formats/webgpu/core/wgsl/lowerFragmentProgram.js.map +1 -0
  289. package/dist/formats/webgpu/core/wgsl/lowerMergeHistogramsComputeProgram.js +659 -0
  290. package/dist/formats/webgpu/core/wgsl/lowerMergeHistogramsComputeProgram.js.map +1 -0
  291. package/dist/formats/webgpu/core/wgsl/lowerParticleClearComputePrograms.js +734 -0
  292. package/dist/formats/webgpu/core/wgsl/lowerParticleClearComputePrograms.js.map +1 -0
  293. package/dist/formats/webgpu/core/wgsl/lowerParticleEmitComputeProgram.js +583 -0
  294. package/dist/formats/webgpu/core/wgsl/lowerParticleEmitComputeProgram.js.map +1 -0
  295. package/dist/formats/webgpu/core/wgsl/lowerSkinVerticesComputeProgram.js +621 -0
  296. package/dist/formats/webgpu/core/wgsl/lowerSkinVerticesComputeProgram.js.map +1 -0
  297. package/dist/formats/webgpu/core/wgsl/lowerSortComputeProgram.js +824 -0
  298. package/dist/formats/webgpu/core/wgsl/lowerSortComputeProgram.js.map +1 -0
  299. package/dist/formats/webgpu/core/wgsl/lowerSortInnerComputeProgram.js +697 -0
  300. package/dist/formats/webgpu/core/wgsl/lowerSortInnerComputeProgram.js.map +1 -0
  301. package/dist/formats/webgpu/core/wgsl/lowerSortStepComputeProgram.js +559 -0
  302. package/dist/formats/webgpu/core/wgsl/lowerSortStepComputeProgram.js.map +1 -0
  303. package/dist/formats/webgpu/core/wgsl/lowerVertexProgram.js +1328 -0
  304. package/dist/formats/webgpu/core/wgsl/lowerVertexProgram.js.map +1 -0
  305. package/dist/formats/webgpu/core/wgsl/particleEmitSemanticDigest.js +110 -0
  306. package/dist/formats/webgpu/core/wgsl/particleEmitSemanticDigest.js.map +1 -0
  307. package/dist/formats/webgpu/core/wgsl/precisionControls.js +55 -0
  308. package/dist/formats/webgpu/core/wgsl/precisionControls.js.map +1 -0
  309. package/dist/formats/webgpu/core/wgsl/selectionPlans.js +758 -0
  310. package/dist/formats/webgpu/core/wgsl/selectionPlans.js.map +1 -0
  311. package/dist/formats/webgpu/core/wgsl/uniformity.js +78 -0
  312. package/dist/formats/webgpu/core/wgsl/uniformity.js.map +1 -0
  313. package/dist/formats/webgpu/core/wgsl/validateExactComputeIr.js +196 -0
  314. package/dist/formats/webgpu/core/wgsl/validateExactComputeIr.js.map +1 -0
  315. package/dist/formats/webgpu/core/wgsl/validateHandleOperand.js +37 -0
  316. package/dist/formats/webgpu/core/wgsl/validateHandleOperand.js.map +1 -0
  317. package/dist/formats/webgpu/index.js +2 -0
  318. package/dist/formats/webgpu/index.js.map +1 -0
  319. package/dist/formats/webm/core/helpers.js +35 -0
  320. package/dist/formats/webm/core/helpers.js.map +1 -1
  321. package/dist/formats/webp/CjsWebpFormat.js +49 -0
  322. package/dist/formats/webp/CjsWebpFormat.js.map +1 -1
  323. package/dist/formats/webp/core/helpers.js +23 -0
  324. package/dist/formats/webp/core/helpers.js.map +1 -1
  325. package/dist/formats/wem/CjsWemFormat.js +8 -0
  326. package/dist/formats/wem/CjsWemFormat.js.map +1 -1
  327. package/dist/formats/wem/core/bitStream.js +2 -0
  328. package/dist/formats/wem/core/bitStream.js.map +1 -1
  329. package/dist/formats/wem/core/helpers.js +20 -0
  330. package/dist/formats/wem/core/helpers.js.map +1 -1
  331. package/dist/formats/yaml/CjsYamlFormat.js +45 -0
  332. package/dist/formats/yaml/CjsYamlFormat.js.map +1 -1
  333. package/dist/formats/yaml/core/CjsYamlReader.js +91 -0
  334. package/dist/formats/yaml/core/CjsYamlReader.js.map +1 -1
  335. package/dist/formats/yaml/core/helpers.js +10 -0
  336. package/dist/formats/yaml/core/helpers.js.map +1 -1
  337. package/dist/index.js +56 -43
  338. package/dist/index.js.map +1 -1
  339. package/dist/{CjsResource.js → resource/CjsResource.js} +232 -17
  340. package/dist/resource/CjsResource.js.map +1 -0
  341. package/dist/{resources → resource}/Tr2LightProfileRes.js +4 -3
  342. package/dist/resource/Tr2LightProfileRes.js.map +1 -0
  343. package/dist/{resources → resource/audio}/AudioGeometryResData.js +1 -1
  344. package/dist/resource/audio/AudioGeometryResData.js.map +1 -0
  345. package/dist/resource/audio/CjsAudioBufferRes.js +86 -0
  346. package/dist/resource/audio/CjsAudioBufferRes.js.map +1 -0
  347. package/dist/resource/audio/CjsAudioRes.js +213 -0
  348. package/dist/resource/audio/CjsAudioRes.js.map +1 -0
  349. package/dist/resource/audio/index.js +4 -0
  350. package/dist/resource/audio/index.js.map +1 -0
  351. package/dist/{resources → resource/geometry}/MeshDecalData.js +1 -1
  352. package/dist/resource/geometry/MeshDecalData.js.map +1 -0
  353. package/dist/{resources → resource/geometry}/MeshDecalLodData.js +1 -1
  354. package/dist/resource/geometry/MeshDecalLodData.js.map +1 -0
  355. package/dist/resource/geometry/TriGeometryRes.js +656 -0
  356. package/dist/resource/geometry/TriGeometryRes.js.map +1 -0
  357. package/dist/{resources → resource/geometry}/TriGeometryResAreaData.js +1 -1
  358. package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -0
  359. package/dist/{resources → resource/geometry}/TriGeometryResJointData.js +1 -1
  360. package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -0
  361. package/dist/{resources → resource/geometry}/TriGeometryResLodData.js +1 -1
  362. package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -0
  363. package/dist/{resources → resource/geometry}/TriGeometryResMeshData.js +1 -1
  364. package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -0
  365. package/dist/{resources → resource/geometry}/TriGeometryResSkeletonData.js +1 -1
  366. package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -0
  367. package/dist/{resources → resource/geometry}/TriJointBinding.js +1 -1
  368. package/dist/resource/geometry/TriJointBinding.js.map +1 -0
  369. package/dist/{resources → resource/geometry}/TriMorphTargetGeometryConstants.js +1 -1
  370. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -0
  371. package/dist/{resources → resource/geometry}/TriRtGeometryConstants.js +1 -1
  372. package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -0
  373. package/dist/{resources → resource/geometry/granny}/GStateBindingCallbackData.js +1 -1
  374. package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -0
  375. package/dist/{resources → resource/geometry/granny}/Tr2GrannyIntersectionResult.js +1 -1
  376. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -0
  377. package/dist/{resources → resource/geometry/granny}/Tr2GrannyStateRes.js +6 -5
  378. package/dist/resource/geometry/granny/Tr2GrannyStateRes.js.map +1 -0
  379. package/dist/{resources → resource/geometry/granny}/TriGrannyRes.js +6 -5
  380. package/dist/resource/geometry/granny/TriGrannyRes.js.map +1 -0
  381. package/dist/{resources → resource/geometry/granny}/enums.js +1 -9
  382. package/dist/resource/geometry/granny/enums.js.map +1 -0
  383. package/dist/resource/geometry/granny/index.js +6 -0
  384. package/dist/resource/geometry/granny/index.js.map +1 -0
  385. package/dist/resource/geometry/index.js +17 -0
  386. package/dist/resource/geometry/index.js.map +1 -0
  387. package/dist/resource/index.js +52 -0
  388. package/dist/resource/index.js.map +1 -0
  389. package/dist/resource/resourceBoundary.js +64 -0
  390. package/dist/resource/resourceBoundary.js.map +1 -0
  391. package/dist/resource/shader/Tr2EffectRes.js +429 -0
  392. package/dist/resource/shader/Tr2EffectRes.js.map +1 -0
  393. package/dist/resource/shader/Tr2MaterialArea.js +34 -0
  394. package/dist/resource/shader/Tr2MaterialArea.js.map +1 -0
  395. package/dist/resource/shader/Tr2MaterialMesh.js +30 -0
  396. package/dist/resource/shader/Tr2MaterialMesh.js.map +1 -0
  397. package/dist/resource/shader/Tr2MaterialRes.js +35 -0
  398. package/dist/resource/shader/Tr2MaterialRes.js.map +1 -0
  399. package/dist/resource/shader/Tr2Shader.js +256 -0
  400. package/dist/resource/shader/Tr2Shader.js.map +1 -0
  401. package/dist/resource/shader/Tr2ShaderPermutation.js +47 -0
  402. package/dist/resource/shader/Tr2ShaderPermutation.js.map +1 -0
  403. package/dist/resource/shader/index.js +17 -0
  404. package/dist/resource/shader/index.js.map +1 -0
  405. package/dist/resource/shader/portable.js +33 -0
  406. package/dist/resource/shader/portable.js.map +1 -0
  407. package/dist/resource/shader/reflection/Tr2EffectConstant.js +135 -0
  408. package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -0
  409. package/dist/resource/shader/reflection/Tr2EffectDefine.js +28 -0
  410. package/dist/resource/shader/reflection/Tr2EffectDefine.js.map +1 -0
  411. package/dist/resource/shader/reflection/Tr2EffectDescription.js +107 -0
  412. package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -0
  413. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +145 -0
  414. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -0
  415. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +103 -0
  416. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -0
  417. package/dist/resource/shader/reflection/Tr2EffectResource.js +84 -0
  418. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -0
  419. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +239 -0
  420. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -0
  421. package/dist/resource/shader/reflection/Tr2EffectTechnique.js +66 -0
  422. package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -0
  423. package/dist/resource/shader/reflection/Tr2Pass.js +109 -0
  424. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -0
  425. package/dist/resource/shader/sampler/Tr2SamplerSetup.js +75 -0
  426. package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -0
  427. package/dist/{texture → resource/texture}/CjsTextureArrayRes.js +83 -6
  428. package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -0
  429. package/dist/{texture/CjsTextureParameterProxy.js → resource/texture/CjsTextureArrayResParameterProxy.js} +56 -10
  430. package/dist/resource/texture/CjsTextureArrayResParameterProxy.js.map +1 -0
  431. package/dist/{resources → resource/texture}/Tr2ImageRes.js +6 -4
  432. package/dist/resource/texture/Tr2ImageRes.js.map +1 -0
  433. package/dist/{resources → resource/texture}/Tr2TextureLodManager.js +3 -1
  434. package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -0
  435. package/dist/{resources → resource/texture}/Tr2TextureLodUpdateRequest.js +1 -1
  436. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -0
  437. package/dist/{resources → resource/texture}/Tr2TexturePackChannel.js +1 -1
  438. package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -0
  439. package/dist/{resources → resource/texture}/Tr2TexturePipeline.js +6 -4
  440. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -0
  441. package/dist/{resources → resource/texture}/Tr2TexturePipelineParams.js +1 -1
  442. package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -0
  443. package/dist/{resources → resource/texture}/Tr2TexturePipelineStepCompress.js +1 -1
  444. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -0
  445. package/dist/{resources → resource/texture}/Tr2TexturePipelineStepGenerateMips.js +1 -1
  446. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -0
  447. package/dist/{resources → resource/texture}/Tr2TexturePipelineStepLimitSize.js +1 -1
  448. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -0
  449. package/dist/{resources → resource/texture}/Tr2TexturePipelineStepLoad.js +1 -1
  450. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -0
  451. package/dist/{resources → resource/texture}/Tr2TexturePipelineStepPack.js +1 -1
  452. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -0
  453. package/dist/{resources → resource/texture}/TriTextureRes.js +42 -26
  454. package/dist/resource/texture/TriTextureRes.js.map +1 -0
  455. package/dist/resource/texture/index.js +15 -0
  456. package/dist/resource/texture/index.js.map +1 -0
  457. package/dist/{resources → resource/texture}/texturePipelineBehavior.js +59 -59
  458. package/dist/resource/texture/texturePipelineBehavior.js.map +1 -0
  459. package/dist/worker/CjsResManMainThreadLoader.js +87 -0
  460. package/dist/worker/CjsResManMainThreadLoader.js.map +1 -0
  461. package/dist/worker/CjsResManWorker.js +217 -0
  462. package/dist/worker/CjsResManWorker.js.map +1 -0
  463. package/dist/worker/CjsResManWorkerLoader.js +434 -0
  464. package/dist/worker/CjsResManWorkerLoader.js.map +1 -0
  465. package/dist/worker/protocol.js +12 -0
  466. package/dist/worker/protocol.js.map +1 -0
  467. package/docs/README.md +16 -3
  468. package/docs/architecture.md +39 -16
  469. package/docs/concepts/resource-lifecycle.md +2 -1
  470. package/docs/formats/README.md +8 -0
  471. package/docs/formats/provenance.md +11 -3
  472. package/docs/reference/classes/README.md +6 -4
  473. package/docs/reference/classes/audio.md +30 -0
  474. package/docs/reference/classes/core.md +31 -11
  475. package/docs/reference/classes/formats.md +440 -0
  476. package/docs/reference/classes/resources.md +151 -41
  477. package/docs/reference/classes/texture.md +7 -7
  478. package/docs/reference/motherlode-cache.md +17 -0
  479. package/docs/reference/queues.md +9 -1
  480. package/docs/reference/workers.md +135 -0
  481. package/docs/roadmap.md +27 -1
  482. package/format-notices/dxbc/LICENSE +21 -0
  483. package/format-notices/dxbc/NOTICE +20 -0
  484. package/format-notices/hlsl/LICENSE +21 -0
  485. package/format-notices/hlsl/NOTICE +25 -0
  486. package/format-notices/webgl/LICENSE +21 -0
  487. package/format-notices/webgl/NOTICE +35 -0
  488. package/format-notices/webgpu/LICENSE +21 -0
  489. package/format-notices/webgpu/NOTICE +31 -0
  490. package/package.json +13 -1
  491. package/dist/CjsResManQueue.js.map +0 -1
  492. package/dist/CjsResource.js.map +0 -1
  493. package/dist/CjsResourceSource.js +0 -68
  494. package/dist/CjsResourceSource.js.map +0 -1
  495. package/dist/resourcePath.js +0 -18
  496. package/dist/resourcePath.js.map +0 -1
  497. package/dist/resourceStates.js +0 -9
  498. package/dist/resourceStates.js.map +0 -1
  499. package/dist/resources/AudioGeometryResData.js.map +0 -1
  500. package/dist/resources/GStateBindingCallbackData.js.map +0 -1
  501. package/dist/resources/MeshDecalData.js.map +0 -1
  502. package/dist/resources/MeshDecalLodData.js.map +0 -1
  503. package/dist/resources/Tr2EffectRes.js +0 -71
  504. package/dist/resources/Tr2EffectRes.js.map +0 -1
  505. package/dist/resources/Tr2GrannyIntersectionResult.js.map +0 -1
  506. package/dist/resources/Tr2GrannyStateRes.js.map +0 -1
  507. package/dist/resources/Tr2ImageRes.js.map +0 -1
  508. package/dist/resources/Tr2LightProfileRes.js.map +0 -1
  509. package/dist/resources/Tr2MaterialArea.js +0 -34
  510. package/dist/resources/Tr2MaterialArea.js.map +0 -1
  511. package/dist/resources/Tr2MaterialMesh.js +0 -31
  512. package/dist/resources/Tr2MaterialMesh.js.map +0 -1
  513. package/dist/resources/Tr2MaterialRes.js +0 -34
  514. package/dist/resources/Tr2MaterialRes.js.map +0 -1
  515. package/dist/resources/Tr2ShaderPermutation.js +0 -43
  516. package/dist/resources/Tr2ShaderPermutation.js.map +0 -1
  517. package/dist/resources/Tr2TextureLodManager.js.map +0 -1
  518. package/dist/resources/Tr2TextureLodUpdateRequest.js.map +0 -1
  519. package/dist/resources/Tr2TexturePackChannel.js.map +0 -1
  520. package/dist/resources/Tr2TexturePipeline.js.map +0 -1
  521. package/dist/resources/Tr2TexturePipelineParams.js.map +0 -1
  522. package/dist/resources/Tr2TexturePipelineStepCompress.js.map +0 -1
  523. package/dist/resources/Tr2TexturePipelineStepGenerateMips.js.map +0 -1
  524. package/dist/resources/Tr2TexturePipelineStepLimitSize.js.map +0 -1
  525. package/dist/resources/Tr2TexturePipelineStepLoad.js.map +0 -1
  526. package/dist/resources/Tr2TexturePipelineStepPack.js.map +0 -1
  527. package/dist/resources/TriGeometryRes.js +0 -239
  528. package/dist/resources/TriGeometryRes.js.map +0 -1
  529. package/dist/resources/TriGeometryResAreaData.js.map +0 -1
  530. package/dist/resources/TriGeometryResJointData.js.map +0 -1
  531. package/dist/resources/TriGeometryResLodData.js.map +0 -1
  532. package/dist/resources/TriGeometryResMeshData.js.map +0 -1
  533. package/dist/resources/TriGeometryResSkeletonData.js.map +0 -1
  534. package/dist/resources/TriGrannyRes.js.map +0 -1
  535. package/dist/resources/TriJointBinding.js.map +0 -1
  536. package/dist/resources/TriMorphTargetGeometryConstants.js.map +0 -1
  537. package/dist/resources/TriRtGeometryConstants.js.map +0 -1
  538. package/dist/resources/TriTextureRes.js.map +0 -1
  539. package/dist/resources/enums.js.map +0 -1
  540. package/dist/resources/resourceBoundary.js +0 -47
  541. package/dist/resources/resourceBoundary.js.map +0 -1
  542. package/dist/resources/texturePipelineBehavior.js.map +0 -1
  543. package/dist/texture/CjsTextureArrayRes.js.map +0 -1
  544. package/dist/texture/CjsTextureParameterProxy.js.map +0 -1
@@ -9,6 +9,11 @@ const DEFAULT_VALUES = Object.freeze({
9
9
  inputType: "ogg",
10
10
  source: ""
11
11
  });
12
+
13
+ /**
14
+ * Normalizes reader options against their supported defaults for the Ogg format
15
+ * reader.
16
+ */
12
17
  function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = "CjsOggFormat") {
13
18
  if (!options || typeof options !== "object" || Array.isArray(options)) {
14
19
  throw new TypeError(`${readerName}: options must be an object`);
@@ -27,15 +32,24 @@ function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = "CjsO
27
32
  }
28
33
  return values;
29
34
  }
35
+
36
+ /** Returns a byte view over the supplied binary input for the Ogg format reader. */
30
37
  function toBytes(input) {
31
38
  if (input instanceof Uint8Array) return input;
32
39
  if (input instanceof ArrayBuffer) return new Uint8Array(input);
33
40
  if (ArrayBuffer.isView(input)) return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);
34
41
  throw new TypeError("OGG input must be Uint8Array, ArrayBuffer, or a view");
35
42
  }
43
+
44
+ /**
45
+ * Reports whether the supplied bytes begin with an Ogg page signature for the
46
+ * Ogg format reader.
47
+ */
36
48
  function isOGG(bytes) {
37
49
  return bytes.byteLength >= 4 && ascii(bytes, 0, 4) === "OggS";
38
50
  }
51
+
52
+ /** Inspects input using normalized format options for the Ogg format reader. */
39
53
  function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = "ogg") {
40
54
  const bytes = toBytes(input);
41
55
  if (!isOGG(bytes)) throw new TypeError("CjsOggFormat: input is not an Ogg container");
@@ -49,6 +63,11 @@ function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = "ogg")
49
63
  source: values.source || "buffer"
50
64
  };
51
65
  }
66
+
67
+ /**
68
+ * Reports whether input is supported under normalized format options for the Ogg
69
+ * format reader.
70
+ */
52
71
  function isSupportedWithValues(input, values = DEFAULT_VALUES) {
53
72
  try {
54
73
  const metadata = inspectWithValues(input, values);
@@ -107,6 +126,8 @@ function isSupportedWithValues(input, values = DEFAULT_VALUES) {
107
126
  };
108
127
  }
109
128
  }
129
+
130
+ /** Reads input using normalized format options for the Ogg format reader. */
110
131
  function readWithValues(input, values = DEFAULT_VALUES) {
111
132
  const bytes = toBytes(input);
112
133
  const metadata = inspectWithValues(bytes, values);
@@ -164,6 +185,8 @@ function readWithValues(input, values = DEFAULT_VALUES) {
164
185
  error.code = "CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED";
165
186
  throw error;
166
187
  }
188
+
189
+ /** Converts a parsed payload into a JSON-safe value for the Ogg format reader. */
167
190
  function toJsonValue(value) {
168
191
  if (value instanceof Uint8Array) return {
169
192
  byteLength: value.byteLength
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sources":["../../../../../src/formats/ogg/core/helpers.js"],"sourcesContent":["import { decodeVorbis } from \"./vorbis.js\";\n\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_JSON = \"json\";\nexport const OUTPUT_PCM = \"pcm\";\nexport const OUTPUT_AUDIO = \"audio\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_RAW,\n inputType: \"ogg\",\n source: \"\"\n});\n\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsOggFormat\")\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, \"oggJson\", \"audio\", \"pcm\" ].includes(values.emit))\n {\n throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(values.emit)}`);\n }\n return values;\n}\n\nexport function toBytes(input)\n{\n if (input instanceof Uint8Array) return input;\n if (input instanceof ArrayBuffer) return new Uint8Array(input);\n if (ArrayBuffer.isView(input)) return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);\n throw new TypeError(\"OGG input must be Uint8Array, ArrayBuffer, or a view\");\n}\n\nexport function isOGG(bytes)\n{\n return bytes.byteLength >= 4 && ascii(bytes, 0, 4) === \"OggS\";\n}\n\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"ogg\")\n{\n const bytes = toBytes(input);\n if (!isOGG(bytes)) throw new TypeError(\"CjsOggFormat: input is not an Ogg container\");\n const metadata = inspectOgg(bytes);\n if (expectedType && metadata.sourceFormat !== expectedType)\n {\n throw new TypeError(`CjsOggFormat: expected ${expectedType}, got ${metadata.sourceFormat}`);\n }\n return { ...metadata, byteLength: bytes.byteLength, source: values.source || \"buffer\" };\n}\n\nexport function isSupportedWithValues(input, values = DEFAULT_VALUES)\n{\n try\n {\n const metadata = inspectWithValues(input, values);\n const mimeType = getOggMimeType(metadata);\n const variants = [\n {\n kind: \"raw\",\n payloadType: \"raw\",\n codec: \"ogg\",\n mimeType,\n supported: true,\n containerOnly: true,\n isDecoded: false,\n pcmDecodeSupported: false,\n frameDecodeSupported: false\n },\n {\n kind: \"pcm\",\n payloadType: \"pcm\",\n codec: metadata.codec === \"vorbis\" ? \"float32\" : \"pcm\",\n supported: metadata.codec === \"vorbis\",\n reason: metadata.codec === \"vorbis\" ? \"\" : \"Only Ogg Vorbis PCM decode is implemented.\"\n }\n ];\n if (metadata.mediaType === \"video\")\n {\n variants.push({\n kind: \"decoded\",\n payloadType: \"video-frame\",\n codec: \"frames\",\n supported: false,\n reason: \"OGG Theora frame decode is not implemented yet.\"\n });\n }\n const pcmSupported = metadata.codec === \"vorbis\";\n return {\n format: \"ogg\",\n source: values.source || \"buffer\",\n supported: \"partial\",\n confidence: 1,\n preferred: pcmSupported ? \"pcm\" : (metadata.sourceFormat ? \"ogg\" : \"\"),\n reason: pcmSupported\n ? \"Ogg Vorbis recognized; PCM decode is supported.\"\n : \"Ogg pages and codec headers are recognized; raw Ogg passthrough is available.\",\n metadata,\n variants,\n warnings: [],\n errors: []\n };\n }\n catch (error)\n {\n return {\n format: \"ogg\",\n source: values.source || \"buffer\",\n supported: \"none\",\n confidence: 0,\n preferred: \"\",\n reason: error.message,\n metadata: null,\n variants: [],\n warnings: [],\n errors: [ error.message ]\n };\n }\n}\n\nexport function readWithValues(input, values = DEFAULT_VALUES)\n{\n const bytes = toBytes(input);\n const metadata = inspectWithValues(bytes, values);\n if (values.emit === OUTPUT_RAW)\n {\n return {\n payloadType: \"raw\",\n sourceFormat: \"ogg\",\n mimeType: getOggMimeType(metadata),\n containerOnly: true,\n isDecoded: false,\n pcmDecodeSupported: false,\n frameDecodeSupported: false,\n metadata,\n bytes\n };\n }\n if (values.emit === OUTPUT_JSON || values.emit === \"oggJson\") return metadata;\n if (values.emit === OUTPUT_PCM || values.emit === OUTPUT_AUDIO)\n {\n if (metadata.codec !== \"vorbis\")\n {\n const error = new Error(`ogg: PCM decode supports Vorbis only (found ${metadata.codec})`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n throw error;\n }\n const decoded = decodeVorbis(bytes);\n const data = new Float32Array(decoded.sampleCount * decoded.channels);\n for (let channel = 0; channel < decoded.channels; channel++)\n {\n const samples = decoded.channelData[channel];\n for (let i = 0; i < decoded.sampleCount; i++)\n {\n data[i * decoded.channels + channel] = samples[i];\n }\n }\n return {\n payloadType: values.emit === OUTPUT_AUDIO ? OUTPUT_AUDIO : OUTPUT_PCM,\n sourceFormat: \"ogg\",\n codec: \"vorbis\",\n containerOnly: false,\n isDecoded: true,\n pcmDecodeSupported: true,\n audioFormat: \"float32\",\n sampleFormat: \"float32\",\n sampleRate: decoded.sampleRate,\n channels: decoded.channels,\n interleaving: \"interleaved\",\n frameCount: decoded.sampleCount,\n durationSeconds: decoded.sampleRate ? decoded.sampleCount / decoded.sampleRate : 0,\n vendor: decoded.vendor,\n comments: decoded.comments,\n loop: decoded.loop,\n channelData: decoded.channelData,\n metadata,\n data\n };\n }\n const error = new Error(`ogg: emit \"${values.emit}\" is not implemented yet`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED\";\n throw error;\n}\n\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 getOggMimeType(metadata)\n{\n if (metadata.mediaType === \"video\") return \"video/ogg\";\n if (metadata.mediaType === \"audio\") return \"audio/ogg\";\n return \"application/ogg\";\n}\n\nfunction inspectOgg(bytes)\n{\n const streams = new Map();\n let offset = 0;\n let pageCount = 0;\n while (offset + 27 <= bytes.byteLength)\n {\n if (ascii(bytes, offset, 4) !== \"OggS\") throw new Error(`ogg: invalid page at byte ${offset}`);\n const version = bytes[offset + 4];\n if (version !== 0) throw new Error(`ogg: unsupported stream version ${version}`);\n const headerType = bytes[offset + 5];\n if (headerType & 0xf8) throw new Error(`ogg: reserved header flags at byte ${offset}`);\n const granulePosition = readU64LE(bytes, offset + 6);\n const serial = readU32LE(bytes, offset + 14);\n const sequence = readU32LE(bytes, offset + 18);\n const segmentCount = bytes[offset + 26];\n const tableOffset = offset + 27;\n const payloadOffset = tableOffset + segmentCount;\n if (payloadOffset > bytes.byteLength) throw new Error(\"ogg: truncated segment table\");\n let payloadLength = 0;\n for (let i = 0; i < segmentCount; i++) payloadLength += bytes[tableOffset + i];\n if (payloadOffset + payloadLength > bytes.byteLength) throw new Error(\"ogg: truncated page payload\");\n const pageLength = 27 + segmentCount + payloadLength;\n const expectedChecksum = readU32LE(bytes, offset + 22);\n if (computeOggCrc(bytes, offset, pageLength) !== expectedChecksum)\n {\n throw new Error(`ogg: page checksum mismatch at byte ${offset}`);\n }\n const stream = streams.get(serial) || {\n serial,\n pages: 0,\n firstPacket: [],\n packetBytes: 0,\n firstPacketComplete: false,\n packetOpen: false,\n codec: \"\",\n mediaType: \"unknown\",\n payloadBytes: 0\n };\n const continued = !!(headerType & 0x01);\n if (stream.pages === 0 && !(headerType & 0x02)) throw new Error(`ogg: first page of stream ${serial} is missing BOS`);\n if (stream.pages === 0 && continued) throw new Error(`ogg: first page of stream ${serial} is marked continued`);\n if (stream.eosSeen) throw new Error(`ogg: page follows EOS for stream ${serial}`);\n if (stream.pages > 0 && continued !== stream.packetOpen)\n {\n throw new Error(`ogg: continued-page state mismatch for stream ${serial}`);\n }\n if ((headerType & 0x02) && stream.pages !== 0) throw new Error(`ogg: BOS page is not first for stream ${serial}`);\n if (stream.lastSequence !== undefined && sequence !== stream.lastSequence + 1)\n {\n throw new Error(`ogg: page sequence mismatch for stream ${serial}`);\n }\n if (stream.pages === 0)\n {\n stream.firstSequence = sequence;\n stream.firstGranulePosition = granulePosition;\n stream.bos = !!(headerType & 0x02);\n }\n stream.pages++;\n stream.payloadBytes += payloadLength;\n collectFirstPacket(stream, bytes, payloadOffset, tableOffset, segmentCount);\n if ((headerType & 0x04) && stream.packetOpen) throw new Error(`ogg: EOS page leaves a packet continued for stream ${serial}`);\n stream.lastGranulePosition = granulePosition;\n stream.granulePosition = granulePosition;\n stream.lastSequence = sequence;\n stream.eos = !!(headerType & 0x04);\n stream.eosSeen = stream.eos;\n streams.set(serial, stream);\n pageCount++;\n offset = payloadOffset + payloadLength;\n }\n if (offset !== bytes.byteLength) throw new Error(`ogg: truncated trailing page at byte ${offset}`);\n if (!pageCount) throw new Error(\"ogg: no pages found\");\n const tracks = Array.from(streams.values()).map(stream => decodeCodec(stream));\n const primary = tracks.find(track => track.mediaType !== \"unknown\") || tracks[0];\n return {\n payloadType: primary?.mediaType === \"video\" ? \"video\" : primary?.mediaType === \"audio\" ? \"audio\" : \"container\",\n mediaTypes: tracks.map(track => track.mediaType),\n sourceFormat: \"ogg\",\n pageCount,\n streamCount: tracks.length,\n codec: primary?.codec || \"ogg\",\n mediaType: primary?.mediaType || \"unknown\",\n tracks\n };\n}\n\nfunction computeOggCrc(bytes, offset, length)\n{\n let crc = 0;\n for (let i = 0; i < length; i++)\n {\n const relative = i;\n const value = relative >= 22 && relative < 26 ? 0 : bytes[offset + relative];\n crc ^= value << 24;\n for (let bit = 0; bit < 8; bit++)\n {\n crc = (crc & 0x80000000) ? ((crc << 1) ^ 0x04c11db7) : (crc << 1);\n }\n }\n return crc >>> 0;\n}\n\nfunction collectFirstPacket(stream, bytes, payloadOffset, tableOffset, segmentCount)\n{\n let cursor = payloadOffset;\n let lastLength = 0;\n for (let i = 0; i < segmentCount; i++)\n {\n const length = bytes[tableOffset + i];\n if (!stream.firstPacketComplete && stream.packetBytes < 64)\n {\n const copyLength = Math.min(length, 64 - stream.packetBytes);\n stream.firstPacket.push(...bytes.subarray(cursor, cursor + copyLength));\n stream.packetBytes += copyLength;\n }\n cursor += length;\n lastLength = length;\n if (length < 255)\n {\n if (!stream.firstPacketComplete) stream.firstPacketComplete = true;\n }\n }\n stream.packetOpen = segmentCount > 0 && lastLength === 255;\n}\n\nfunction decodeCodec(stream)\n{\n const packet = Uint8Array.from(stream.firstPacket);\n if (matches(packet, [ 1, 0x76, 0x6f, 0x72, 0x62, 0x69, 0x73 ]))\n {\n if (packet.length < 30) throw new Error(`ogg: truncated Vorbis identification header for stream ${stream.serial}`);\n if (readU32LE(packet, 7) !== 0 || !packet[11] || !readU32LE(packet, 12))\n {\n throw new Error(`ogg: invalid Vorbis identification header for stream ${stream.serial}`);\n }\n stream.codec = \"vorbis\";\n stream.mediaType = \"audio\";\n stream.channels = packet[11] || 0;\n stream.sampleRate = readU32LE(packet, 12);\n stream.bitrateMaximum = readS32LE(packet, 16);\n stream.bitrateNominal = readS32LE(packet, 20);\n stream.bitrateMinimum = readS32LE(packet, 24);\n addAudioTiming(stream, 0);\n }\n else if (matches(packet, [ 0x4f, 0x70, 0x75, 0x73, 0x48, 0x65, 0x61, 0x64 ]))\n {\n if (packet.length < 19 || packet[8] !== 1 || !packet[9] || (packet[18] && packet.length < 21 + packet[9]))\n {\n throw new Error(`ogg: invalid OpusHead packet for stream ${stream.serial}`);\n }\n stream.codec = \"opus\";\n stream.mediaType = \"audio\";\n stream.channels = packet[9] || 0;\n stream.preSkip = readU16LE(packet, 10);\n stream.inputSampleRate = readU32LE(packet, 12);\n stream.sampleRate = 48000;\n stream.outputGain = readS16LE(packet, 16);\n stream.mappingFamily = packet[18] || 0;\n addAudioTiming(stream, stream.preSkip);\n }\n else if (matches(packet, [ 0x80, 0x74, 0x68, 0x65, 0x6f, 0x72, 0x61 ]))\n {\n if (packet.length < 42) throw new Error(`ogg: truncated Theora identification header for stream ${stream.serial}`);\n stream.codec = \"theora\";\n stream.mediaType = \"video\";\n stream.frameWidth = readU16BE(packet, 10) * 16;\n stream.frameHeight = readU16BE(packet, 12) * 16;\n stream.width = readU24BE(packet, 14);\n stream.height = readU24BE(packet, 17);\n stream.frameRateNumerator = readU32BE(packet, 22);\n stream.frameRateDenominator = readU32BE(packet, 26);\n stream.frameRate = stream.frameRateDenominator\n ? stream.frameRateNumerator / stream.frameRateDenominator\n : 0;\n stream.pixelAspectNumerator = readU24BE(packet, 30);\n stream.pixelAspectDenominator = readU24BE(packet, 33);\n stream.pixelAspectRatio = stream.pixelAspectDenominator\n ? stream.pixelAspectNumerator / stream.pixelAspectDenominator\n : 0;\n stream.colorSpace = packet[36] || 0;\n }\n delete stream.firstPacket;\n delete stream.packetBytes;\n delete stream.firstPacketComplete;\n delete stream.packetOpen;\n return stream;\n}\n\nfunction addAudioTiming(stream, preSkip)\n{\n stream.granulePosition = stream.lastGranulePosition;\n const granule = typeof stream.lastGranulePosition === \"number\"\n ? stream.lastGranulePosition\n : typeof stream.lastGranulePosition === \"string\" && /^\\d+$/u.test(stream.lastGranulePosition)\n ? Number(stream.lastGranulePosition)\n : null;\n if (granule === null || !Number.isSafeInteger(granule)) return;\n stream.durationSamples = Math.max(0, granule - preSkip);\n stream.durationSeconds = stream.sampleRate ? stream.durationSamples / stream.sampleRate : 0;\n}\n\nfunction matches(bytes, signature)\n{\n return signature.every((value, index) => bytes[index] === value);\n}\n\nfunction ascii(bytes, offset, length)\n{\n return String.fromCharCode(...bytes.subarray(offset, offset + length));\n}\n\nfunction readU16LE(bytes, offset)\n{\n return (bytes[offset] || 0) | ((bytes[offset + 1] || 0) << 8);\n}\n\nfunction readU16BE(bytes, offset)\n{\n return ((bytes[offset] || 0) << 8) | (bytes[offset + 1] || 0);\n}\n\nfunction readU24BE(bytes, offset)\n{\n return ((bytes[offset] || 0) * 0x10000) + ((bytes[offset + 1] || 0) << 8) + (bytes[offset + 2] || 0);\n}\n\nfunction readS16LE(bytes, offset)\n{\n const value = readU16LE(bytes, offset);\n return value & 0x8000 ? value - 0x10000 : value;\n}\n\nfunction readU32LE(bytes, offset)\n{\n return ((bytes[offset] || 0) | ((bytes[offset + 1] || 0) << 8) | ((bytes[offset + 2] || 0) << 16) | ((bytes[offset + 3] || 0) * 0x1000000)) >>> 0;\n}\n\nfunction readU32BE(bytes, offset)\n{\n return (((bytes[offset] || 0) * 0x1000000) + ((bytes[offset + 1] || 0) << 16) + ((bytes[offset + 2] || 0) << 8) + (bytes[offset + 3] || 0)) >>> 0;\n}\n\nfunction readS32LE(bytes, offset)\n{\n return readU32LE(bytes, offset) | 0;\n}\n\nfunction readU64LE(bytes, offset)\n{\n let value = 0n;\n for (let i = 7; i >= 0; i--) value = (value << 8n) | BigInt(bytes[offset + i] || 0);\n if (value === 0xffffffffffffffffn) return null;\n return value <= BigInt(Number.MAX_SAFE_INTEGER) ? Number(value) : value.toString();\n}\n"],"names":["OUTPUT_RAW","OUTPUT_JSON","OUTPUT_PCM","OUTPUT_AUDIO","DEFAULT_VALUES","Object","freeze","emit","inputType","source","normalizeValues","base","options","readerName","Array","isArray","TypeError","allowed","Set","key","keys","has","JSON","stringify","values","includes","toBytes","input","Uint8Array","ArrayBuffer","isView","buffer","byteOffset","byteLength","isOGG","bytes","ascii","inspectWithValues","expectedType","metadata","inspectOgg","sourceFormat","isSupportedWithValues","mimeType","getOggMimeType","variants","kind","payloadType","codec","supported","containerOnly","isDecoded","pcmDecodeSupported","frameDecodeSupported","reason","mediaType","push","pcmSupported","format","confidence","preferred","warnings","errors","error","message","readWithValues","Error","code","decoded","decodeVorbis","data","Float32Array","sampleCount","channels","channel","samples","channelData","i","audioFormat","sampleFormat","sampleRate","interleaving","frameCount","durationSeconds","vendor","comments","loop","toJsonValue","value","map","output","entry","entries","streams","Map","offset","pageCount","version","headerType","granulePosition","readU64LE","serial","readU32LE","sequence","segmentCount","tableOffset","payloadOffset","payloadLength","pageLength","expectedChecksum","computeOggCrc","stream","get","pages","firstPacket","packetBytes","firstPacketComplete","packetOpen","payloadBytes","continued","eosSeen","lastSequence","undefined","firstSequence","firstGranulePosition","bos","collectFirstPacket","lastGranulePosition","eos","set","tracks","from","decodeCodec","primary","find","track","mediaTypes","streamCount","length","crc","relative","bit","cursor","lastLength","copyLength","Math","min","subarray","packet","matches","bitrateMaximum","readS32LE","bitrateNominal","bitrateMinimum","addAudioTiming","preSkip","readU16LE","inputSampleRate","outputGain","readS16LE","mappingFamily","frameWidth","readU16BE","frameHeight","width","readU24BE","height","frameRateNumerator","readU32BE","frameRateDenominator","frameRate","pixelAspectNumerator","pixelAspectDenominator","pixelAspectRatio","colorSpace","granule","test","Number","isSafeInteger","durationSamples","max","signature","every","index","String","fromCharCode","BigInt","MAX_SAFE_INTEGER","toString"],"mappings":";;AAEO,MAAMA,UAAU,GAAG;AACnB,MAAMC,WAAW,GAAG;AACpB,MAAMC,UAAU,GAAG;AACnB,MAAMC,YAAY,GAAG;MAEfC,cAAc,GAAGC,MAAM,CAACC,MAAM,CAAC;AACxCC,EAAAA,IAAI,EAAEP,UAAU;AAChBQ,EAAAA,SAAS,EAAE,KAAK;AAChBC,EAAAA,MAAM,EAAE;AACZ,CAAC;AAEM,SAASC,eAAeA,CAACC,IAAI,GAAGP,cAAc,EAAEQ,OAAO,GAAG,EAAE,EAAEC,UAAU,GAAG,cAAc,EAChG;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,CAAEZ,UAAU,EAAEC,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAE,CAACwB,QAAQ,CAACD,MAAM,CAACjB,IAAI,CAAC,EACjF;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;AAEO,SAASE,OAAOA,CAACC,KAAK,EAC7B;AACI,EAAA,IAAIA,KAAK,YAAYC,UAAU,EAAE,OAAOD,KAAK;EAC7C,IAAIA,KAAK,YAAYE,WAAW,EAAE,OAAO,IAAID,UAAU,CAACD,KAAK,CAAC;EAC9D,IAAIE,WAAW,CAACC,MAAM,CAACH,KAAK,CAAC,EAAE,OAAO,IAAIC,UAAU,CAACD,KAAK,CAACI,MAAM,EAAEJ,KAAK,CAACK,UAAU,EAAEL,KAAK,CAACM,UAAU,CAAC;AACtG,EAAA,MAAM,IAAIjB,SAAS,CAAC,sDAAsD,CAAC;AAC/E;AAEO,SAASkB,KAAKA,CAACC,KAAK,EAC3B;AACI,EAAA,OAAOA,KAAK,CAACF,UAAU,IAAI,CAAC,IAAIG,KAAK,CAACD,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM;AACjE;AAEO,SAASE,iBAAiBA,CAACV,KAAK,EAAEH,MAAM,GAAGpB,cAAc,EAAEkC,YAAY,GAAG,KAAK,EACtF;AACI,EAAA,MAAMH,KAAK,GAAGT,OAAO,CAACC,KAAK,CAAC;EAC5B,IAAI,CAACO,KAAK,CAACC,KAAK,CAAC,EAAE,MAAM,IAAInB,SAAS,CAAC,6CAA6C,CAAC;AACrF,EAAA,MAAMuB,QAAQ,GAAGC,UAAU,CAACL,KAAK,CAAC;AAClC,EAAA,IAAIG,YAAY,IAAIC,QAAQ,CAACE,YAAY,KAAKH,YAAY,EAC1D;IACI,MAAM,IAAItB,SAAS,CAAC,CAAA,uBAAA,EAA0BsB,YAAY,SAASC,QAAQ,CAACE,YAAY,CAAA,CAAE,CAAC;AAC/F,EAAA;EACA,OAAO;AAAE,IAAA,GAAGF,QAAQ;IAAEN,UAAU,EAAEE,KAAK,CAACF,UAAU;AAAExB,IAAAA,MAAM,EAAEe,MAAM,CAACf,MAAM,IAAI;GAAU;AAC3F;AAEO,SAASiC,qBAAqBA,CAACf,KAAK,EAAEH,MAAM,GAAGpB,cAAc,EACpE;EACI,IACA;AACI,IAAA,MAAMmC,QAAQ,GAAGF,iBAAiB,CAACV,KAAK,EAAEH,MAAM,CAAC;AACjD,IAAA,MAAMmB,QAAQ,GAAGC,cAAc,CAACL,QAAQ,CAAC;IACzC,MAAMM,QAAQ,GAAG,CACb;AACIC,MAAAA,IAAI,EAAE,KAAK;AACXC,MAAAA,WAAW,EAAE,KAAK;AAClBC,MAAAA,KAAK,EAAE,KAAK;MACZL,QAAQ;AACRM,MAAAA,SAAS,EAAE,IAAI;AACfC,MAAAA,aAAa,EAAE,IAAI;AACnBC,MAAAA,SAAS,EAAE,KAAK;AAChBC,MAAAA,kBAAkB,EAAE,KAAK;AACzBC,MAAAA,oBAAoB,EAAE;AAC1B,KAAC,EACD;AACIP,MAAAA,IAAI,EAAE,KAAK;AACXC,MAAAA,WAAW,EAAE,KAAK;MAClBC,KAAK,EAAET,QAAQ,CAACS,KAAK,KAAK,QAAQ,GAAG,SAAS,GAAG,KAAK;AACtDC,MAAAA,SAAS,EAAEV,QAAQ,CAACS,KAAK,KAAK,QAAQ;MACtCM,MAAM,EAAEf,QAAQ,CAACS,KAAK,KAAK,QAAQ,GAAG,EAAE,GAAG;AAC/C,KAAC,CACJ;AACD,IAAA,IAAIT,QAAQ,CAACgB,SAAS,KAAK,OAAO,EAClC;MACIV,QAAQ,CAACW,IAAI,CAAC;AACVV,QAAAA,IAAI,EAAE,SAAS;AACfC,QAAAA,WAAW,EAAE,aAAa;AAC1BC,QAAAA,KAAK,EAAE,QAAQ;AACfC,QAAAA,SAAS,EAAE,KAAK;AAChBK,QAAAA,MAAM,EAAE;AACZ,OAAC,CAAC;AACN,IAAA;AACA,IAAA,MAAMG,YAAY,GAAGlB,QAAQ,CAACS,KAAK,KAAK,QAAQ;IAChD,OAAO;AACHU,MAAAA,MAAM,EAAE,KAAK;AACbjD,MAAAA,MAAM,EAAEe,MAAM,CAACf,MAAM,IAAI,QAAQ;AACjCwC,MAAAA,SAAS,EAAE,SAAS;AACpBU,MAAAA,UAAU,EAAE,CAAC;MACbC,SAAS,EAAEH,YAAY,GAAG,KAAK,GAAIlB,QAAQ,CAACE,YAAY,GAAG,KAAK,GAAG,EAAG;AACtEa,MAAAA,MAAM,EAAEG,YAAY,GACd,iDAAiD,GACjD,+EAA+E;MACrFlB,QAAQ;MACRM,QAAQ;AACRgB,MAAAA,QAAQ,EAAE,EAAE;AACZC,MAAAA,MAAM,EAAE;KACX;EACL,CAAC,CACD,OAAOC,KAAK,EACZ;IACI,OAAO;AACHL,MAAAA,MAAM,EAAE,KAAK;AACbjD,MAAAA,MAAM,EAAEe,MAAM,CAACf,MAAM,IAAI,QAAQ;AACjCwC,MAAAA,SAAS,EAAE,MAAM;AACjBU,MAAAA,UAAU,EAAE,CAAC;AACbC,MAAAA,SAAS,EAAE,EAAE;MACbN,MAAM,EAAES,KAAK,CAACC,OAAO;AACrBzB,MAAAA,QAAQ,EAAE,IAAI;AACdM,MAAAA,QAAQ,EAAE,EAAE;AACZgB,MAAAA,QAAQ,EAAE,EAAE;AACZC,MAAAA,MAAM,EAAE,CAAEC,KAAK,CAACC,OAAO;KAC1B;AACL,EAAA;AACJ;AAEO,SAASC,cAAcA,CAACtC,KAAK,EAAEH,MAAM,GAAGpB,cAAc,EAC7D;AACI,EAAA,MAAM+B,KAAK,GAAGT,OAAO,CAACC,KAAK,CAAC;AAC5B,EAAA,MAAMY,QAAQ,GAAGF,iBAAiB,CAACF,KAAK,EAAEX,MAAM,CAAC;AACjD,EAAA,IAAIA,MAAM,CAACjB,IAAI,KAAKP,UAAU,EAC9B;IACI,OAAO;AACH+C,MAAAA,WAAW,EAAE,KAAK;AAClBN,MAAAA,YAAY,EAAE,KAAK;AACnBE,MAAAA,QAAQ,EAAEC,cAAc,CAACL,QAAQ,CAAC;AAClCW,MAAAA,aAAa,EAAE,IAAI;AACnBC,MAAAA,SAAS,EAAE,KAAK;AAChBC,MAAAA,kBAAkB,EAAE,KAAK;AACzBC,MAAAA,oBAAoB,EAAE,KAAK;MAC3Bd,QAAQ;AACRJ,MAAAA;KACH;AACL,EAAA;AACA,EAAA,IAAIX,MAAM,CAACjB,IAAI,KAAKN,WAAW,IAAIuB,MAAM,CAACjB,IAAI,KAAK,SAAS,EAAE,OAAOgC,QAAQ;EAC7E,IAAIf,MAAM,CAACjB,IAAI,KAAKL,UAAU,IAAIsB,MAAM,CAACjB,IAAI,KAAKJ,YAAY,EAC9D;AACI,IAAA,IAAIoC,QAAQ,CAACS,KAAK,KAAK,QAAQ,EAC/B;MACI,MAAMe,KAAK,GAAG,IAAIG,KAAK,CAAC,+CAA+C3B,QAAQ,CAACS,KAAK,CAAA,CAAA,CAAG,CAAC;MACzFe,KAAK,CAACI,IAAI,GAAG,iCAAiC;AAC9C,MAAA,MAAMJ,KAAK;AACf,IAAA;AACA,IAAA,MAAMK,OAAO,GAAGC,YAAY,CAAClC,KAAK,CAAC;AACnC,IAAA,MAAMmC,IAAI,GAAG,IAAIC,YAAY,CAACH,OAAO,CAACI,WAAW,GAAGJ,OAAO,CAACK,QAAQ,CAAC;AACrE,IAAA,KAAK,IAAIC,OAAO,GAAG,CAAC,EAAEA,OAAO,GAAGN,OAAO,CAACK,QAAQ,EAAEC,OAAO,EAAE,EAC3D;AACI,MAAA,MAAMC,OAAO,GAAGP,OAAO,CAACQ,WAAW,CAACF,OAAO,CAAC;AAC5C,MAAA,KAAK,IAAIG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGT,OAAO,CAACI,WAAW,EAAEK,CAAC,EAAE,EAC5C;AACIP,QAAAA,IAAI,CAACO,CAAC,GAAGT,OAAO,CAACK,QAAQ,GAAGC,OAAO,CAAC,GAAGC,OAAO,CAACE,CAAC,CAAC;AACrD,MAAA;AACJ,IAAA;IACA,OAAO;MACH9B,WAAW,EAAEvB,MAAM,CAACjB,IAAI,KAAKJ,YAAY,GAAGA,YAAY,GAAGD,UAAU;AACrEuC,MAAAA,YAAY,EAAE,KAAK;AACnBO,MAAAA,KAAK,EAAE,QAAQ;AACfE,MAAAA,aAAa,EAAE,KAAK;AACpBC,MAAAA,SAAS,EAAE,IAAI;AACfC,MAAAA,kBAAkB,EAAE,IAAI;AACxB0B,MAAAA,WAAW,EAAE,SAAS;AACtBC,MAAAA,YAAY,EAAE,SAAS;MACvBC,UAAU,EAAEZ,OAAO,CAACY,UAAU;MAC9BP,QAAQ,EAAEL,OAAO,CAACK,QAAQ;AAC1BQ,MAAAA,YAAY,EAAE,aAAa;MAC3BC,UAAU,EAAEd,OAAO,CAACI,WAAW;AAC/BW,MAAAA,eAAe,EAAEf,OAAO,CAACY,UAAU,GAAGZ,OAAO,CAACI,WAAW,GAAGJ,OAAO,CAACY,UAAU,GAAG,CAAC;MAClFI,MAAM,EAAEhB,OAAO,CAACgB,MAAM;MACtBC,QAAQ,EAAEjB,OAAO,CAACiB,QAAQ;MAC1BC,IAAI,EAAElB,OAAO,CAACkB,IAAI;MAClBV,WAAW,EAAER,OAAO,CAACQ,WAAW;MAChCrC,QAAQ;AACR+B,MAAAA;KACH;AACL,EAAA;EACA,MAAMP,KAAK,GAAG,IAAIG,KAAK,CAAC,cAAc1C,MAAM,CAACjB,IAAI,CAAA,wBAAA,CAA0B,CAAC;EAC5EwD,KAAK,CAACI,IAAI,GAAG,mCAAmC;AAChD,EAAA,MAAMJ,KAAK;AACf;AAEO,SAASwB,WAAWA,CAACC,KAAK,EACjC;AACI,EAAA,IAAIA,KAAK,YAAY5D,UAAU,EAAE,OAAO;IAAEK,UAAU,EAAEuD,KAAK,CAACvD;GAAY;AACxE,EAAA,IAAInB,KAAK,CAACC,OAAO,CAACyE,KAAK,CAAC,EAAE,OAAOA,KAAK,CAACC,GAAG,CAACF,WAAW,CAAC;AACvD,EAAA,IAAIC,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EACtC;IACI,MAAME,MAAM,GAAG,EAAE;IACjB,KAAK,MAAM,CAAEvE,GAAG,EAAEwE,KAAK,CAAE,IAAItF,MAAM,CAACuF,OAAO,CAACJ,KAAK,CAAC,EAAEE,MAAM,CAACvE,GAAG,CAAC,GAAGoE,WAAW,CAACI,KAAK,CAAC;AACpF,IAAA,OAAOD,MAAM;AACjB,EAAA;AACA,EAAA,OAAOF,KAAK;AAChB;AAEA,SAAS5C,cAAcA,CAACL,QAAQ,EAChC;AACI,EAAA,IAAIA,QAAQ,CAACgB,SAAS,KAAK,OAAO,EAAE,OAAO,WAAW;AACtD,EAAA,IAAIhB,QAAQ,CAACgB,SAAS,KAAK,OAAO,EAAE,OAAO,WAAW;AACtD,EAAA,OAAO,iBAAiB;AAC5B;AAEA,SAASf,UAAUA,CAACL,KAAK,EACzB;AACI,EAAA,MAAM0D,OAAO,GAAG,IAAIC,GAAG,EAAE;EACzB,IAAIC,MAAM,GAAG,CAAC;EACd,IAAIC,SAAS,GAAG,CAAC;AACjB,EAAA,OAAOD,MAAM,GAAG,EAAE,IAAI5D,KAAK,CAACF,UAAU,EACtC;AACI,IAAA,IAAIG,KAAK,CAACD,KAAK,EAAE4D,MAAM,EAAE,CAAC,CAAC,KAAK,MAAM,EAAE,MAAM,IAAI7B,KAAK,CAAC,CAAA,0BAAA,EAA6B6B,MAAM,EAAE,CAAC;AAC9F,IAAA,MAAME,OAAO,GAAG9D,KAAK,CAAC4D,MAAM,GAAG,CAAC,CAAC;IACjC,IAAIE,OAAO,KAAK,CAAC,EAAE,MAAM,IAAI/B,KAAK,CAAC,CAAA,gCAAA,EAAmC+B,OAAO,CAAA,CAAE,CAAC;AAChF,IAAA,MAAMC,UAAU,GAAG/D,KAAK,CAAC4D,MAAM,GAAG,CAAC,CAAC;IACpC,IAAIG,UAAU,GAAG,IAAI,EAAE,MAAM,IAAIhC,KAAK,CAAC,CAAA,mCAAA,EAAsC6B,MAAM,CAAA,CAAE,CAAC;IACtF,MAAMI,eAAe,GAAGC,SAAS,CAACjE,KAAK,EAAE4D,MAAM,GAAG,CAAC,CAAC;IACpD,MAAMM,MAAM,GAAGC,SAAS,CAACnE,KAAK,EAAE4D,MAAM,GAAG,EAAE,CAAC;IAC5C,MAAMQ,QAAQ,GAAGD,SAAS,CAACnE,KAAK,EAAE4D,MAAM,GAAG,EAAE,CAAC;AAC9C,IAAA,MAAMS,YAAY,GAAGrE,KAAK,CAAC4D,MAAM,GAAG,EAAE,CAAC;AACvC,IAAA,MAAMU,WAAW,GAAGV,MAAM,GAAG,EAAE;AAC/B,IAAA,MAAMW,aAAa,GAAGD,WAAW,GAAGD,YAAY;IAChD,IAAIE,aAAa,GAAGvE,KAAK,CAACF,UAAU,EAAE,MAAM,IAAIiC,KAAK,CAAC,8BAA8B,CAAC;IACrF,IAAIyC,aAAa,GAAG,CAAC;AACrB,IAAA,KAAK,IAAI9B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2B,YAAY,EAAE3B,CAAC,EAAE,EAAE8B,aAAa,IAAIxE,KAAK,CAACsE,WAAW,GAAG5B,CAAC,CAAC;AAC9E,IAAA,IAAI6B,aAAa,GAAGC,aAAa,GAAGxE,KAAK,CAACF,UAAU,EAAE,MAAM,IAAIiC,KAAK,CAAC,6BAA6B,CAAC;AACpG,IAAA,MAAM0C,UAAU,GAAG,EAAE,GAAGJ,YAAY,GAAGG,aAAa;IACpD,MAAME,gBAAgB,GAAGP,SAAS,CAACnE,KAAK,EAAE4D,MAAM,GAAG,EAAE,CAAC;IACtD,IAAIe,aAAa,CAAC3E,KAAK,EAAE4D,MAAM,EAAEa,UAAU,CAAC,KAAKC,gBAAgB,EACjE;AACI,MAAA,MAAM,IAAI3C,KAAK,CAAC,CAAA,oCAAA,EAAuC6B,MAAM,EAAE,CAAC;AACpE,IAAA;IACA,MAAMgB,MAAM,GAAGlB,OAAO,CAACmB,GAAG,CAACX,MAAM,CAAC,IAAI;MAClCA,MAAM;AACNY,MAAAA,KAAK,EAAE,CAAC;AACRC,MAAAA,WAAW,EAAE,EAAE;AACfC,MAAAA,WAAW,EAAE,CAAC;AACdC,MAAAA,mBAAmB,EAAE,KAAK;AAC1BC,MAAAA,UAAU,EAAE,KAAK;AACjBrE,MAAAA,KAAK,EAAE,EAAE;AACTO,MAAAA,SAAS,EAAE,SAAS;AACpB+D,MAAAA,YAAY,EAAE;KACjB;AACD,IAAA,MAAMC,SAAS,GAAG,CAAC,EAAErB,UAAU,GAAG,IAAI,CAAC;AACvC,IAAA,IAAIa,MAAM,CAACE,KAAK,KAAK,CAAC,IAAI,EAAEf,UAAU,GAAG,IAAI,CAAC,EAAE,MAAM,IAAIhC,KAAK,CAAC,CAAA,0BAAA,EAA6BmC,MAAM,iBAAiB,CAAC;AACrH,IAAA,IAAIU,MAAM,CAACE,KAAK,KAAK,CAAC,IAAIM,SAAS,EAAE,MAAM,IAAIrD,KAAK,CAAC,CAAA,0BAAA,EAA6BmC,MAAM,sBAAsB,CAAC;IAC/G,IAAIU,MAAM,CAACS,OAAO,EAAE,MAAM,IAAItD,KAAK,CAAC,CAAA,iCAAA,EAAoCmC,MAAM,CAAA,CAAE,CAAC;IACjF,IAAIU,MAAM,CAACE,KAAK,GAAG,CAAC,IAAIM,SAAS,KAAKR,MAAM,CAACM,UAAU,EACvD;AACI,MAAA,MAAM,IAAInD,KAAK,CAAC,CAAA,8CAAA,EAAiDmC,MAAM,EAAE,CAAC;AAC9E,IAAA;AACA,IAAA,IAAKH,UAAU,GAAG,IAAI,IAAKa,MAAM,CAACE,KAAK,KAAK,CAAC,EAAE,MAAM,IAAI/C,KAAK,CAAC,CAAA,sCAAA,EAAyCmC,MAAM,EAAE,CAAC;AACjH,IAAA,IAAIU,MAAM,CAACU,YAAY,KAAKC,SAAS,IAAInB,QAAQ,KAAKQ,MAAM,CAACU,YAAY,GAAG,CAAC,EAC7E;AACI,MAAA,MAAM,IAAIvD,KAAK,CAAC,CAAA,uCAAA,EAA0CmC,MAAM,EAAE,CAAC;AACvE,IAAA;AACA,IAAA,IAAIU,MAAM,CAACE,KAAK,KAAK,CAAC,EACtB;MACIF,MAAM,CAACY,aAAa,GAAGpB,QAAQ;MAC/BQ,MAAM,CAACa,oBAAoB,GAAGzB,eAAe;MAC7CY,MAAM,CAACc,GAAG,GAAG,CAAC,EAAE3B,UAAU,GAAG,IAAI,CAAC;AACtC,IAAA;IACAa,MAAM,CAACE,KAAK,EAAE;IACdF,MAAM,CAACO,YAAY,IAAIX,aAAa;IACpCmB,kBAAkB,CAACf,MAAM,EAAE5E,KAAK,EAAEuE,aAAa,EAAED,WAAW,EAAED,YAAY,CAAC;AAC3E,IAAA,IAAKN,UAAU,GAAG,IAAI,IAAKa,MAAM,CAACM,UAAU,EAAE,MAAM,IAAInD,KAAK,CAAC,CAAA,mDAAA,EAAsDmC,MAAM,EAAE,CAAC;IAC7HU,MAAM,CAACgB,mBAAmB,GAAG5B,eAAe;IAC5CY,MAAM,CAACZ,eAAe,GAAGA,eAAe;IACxCY,MAAM,CAACU,YAAY,GAAGlB,QAAQ;IAC9BQ,MAAM,CAACiB,GAAG,GAAG,CAAC,EAAE9B,UAAU,GAAG,IAAI,CAAC;AAClCa,IAAAA,MAAM,CAACS,OAAO,GAAGT,MAAM,CAACiB,GAAG;AAC3BnC,IAAAA,OAAO,CAACoC,GAAG,CAAC5B,MAAM,EAAEU,MAAM,CAAC;AAC3Bf,IAAAA,SAAS,EAAE;IACXD,MAAM,GAAGW,aAAa,GAAGC,aAAa;AAC1C,EAAA;AACA,EAAA,IAAIZ,MAAM,KAAK5D,KAAK,CAACF,UAAU,EAAE,MAAM,IAAIiC,KAAK,CAAC,CAAA,qCAAA,EAAwC6B,MAAM,EAAE,CAAC;EAClG,IAAI,CAACC,SAAS,EAAE,MAAM,IAAI9B,KAAK,CAAC,qBAAqB,CAAC;EACtD,MAAMgE,MAAM,GAAGpH,KAAK,CAACqH,IAAI,CAACtC,OAAO,CAACrE,MAAM,EAAE,CAAC,CAACiE,GAAG,CAACsB,MAAM,IAAIqB,WAAW,CAACrB,MAAM,CAAC,CAAC;AAC9E,EAAA,MAAMsB,OAAO,GAAGH,MAAM,CAACI,IAAI,CAACC,KAAK,IAAIA,KAAK,CAAChF,SAAS,KAAK,SAAS,CAAC,IAAI2E,MAAM,CAAC,CAAC,CAAC;EAChF,OAAO;AACHnF,IAAAA,WAAW,EAAEsF,OAAO,EAAE9E,SAAS,KAAK,OAAO,GAAG,OAAO,GAAG8E,OAAO,EAAE9E,SAAS,KAAK,OAAO,GAAG,OAAO,GAAG,WAAW;IAC9GiF,UAAU,EAAEN,MAAM,CAACzC,GAAG,CAAC8C,KAAK,IAAIA,KAAK,CAAChF,SAAS,CAAC;AAChDd,IAAAA,YAAY,EAAE,KAAK;IACnBuD,SAAS;IACTyC,WAAW,EAAEP,MAAM,CAACQ,MAAM;AAC1B1F,IAAAA,KAAK,EAAEqF,OAAO,EAAErF,KAAK,IAAI,KAAK;AAC9BO,IAAAA,SAAS,EAAE8E,OAAO,EAAE9E,SAAS,IAAI,SAAS;AAC1C2E,IAAAA;GACH;AACL;AAEA,SAASpB,aAAaA,CAAC3E,KAAK,EAAE4D,MAAM,EAAE2C,MAAM,EAC5C;EACI,IAAIC,GAAG,GAAG,CAAC;EACX,KAAK,IAAI9D,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG6D,MAAM,EAAE7D,CAAC,EAAE,EAC/B;IACI,MAAM+D,QAAQ,GAAG/D,CAAC;AAClB,IAAA,MAAMW,KAAK,GAAGoD,QAAQ,IAAI,EAAE,IAAIA,QAAQ,GAAG,EAAE,GAAG,CAAC,GAAGzG,KAAK,CAAC4D,MAAM,GAAG6C,QAAQ,CAAC;IAC5ED,GAAG,IAAInD,KAAK,IAAI,EAAE;IAClB,KAAK,IAAIqD,GAAG,GAAG,CAAC,EAAEA,GAAG,GAAG,CAAC,EAAEA,GAAG,EAAE,EAChC;AACIF,MAAAA,GAAG,GAAIA,GAAG,GAAG,UAAU,GAAMA,GAAG,IAAI,CAAC,GAAI,UAAU,GAAKA,GAAG,IAAI,CAAE;AACrE,IAAA;AACJ,EAAA;EACA,OAAOA,GAAG,KAAK,CAAC;AACpB;AAEA,SAASb,kBAAkBA,CAACf,MAAM,EAAE5E,KAAK,EAAEuE,aAAa,EAAED,WAAW,EAAED,YAAY,EACnF;EACI,IAAIsC,MAAM,GAAGpC,aAAa;EAC1B,IAAIqC,UAAU,GAAG,CAAC;EAClB,KAAK,IAAIlE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2B,YAAY,EAAE3B,CAAC,EAAE,EACrC;AACI,IAAA,MAAM6D,MAAM,GAAGvG,KAAK,CAACsE,WAAW,GAAG5B,CAAC,CAAC;IACrC,IAAI,CAACkC,MAAM,CAACK,mBAAmB,IAAIL,MAAM,CAACI,WAAW,GAAG,EAAE,EAC1D;AACI,MAAA,MAAM6B,UAAU,GAAGC,IAAI,CAACC,GAAG,CAACR,MAAM,EAAE,EAAE,GAAG3B,MAAM,CAACI,WAAW,CAAC;AAC5DJ,MAAAA,MAAM,CAACG,WAAW,CAAC1D,IAAI,CAAC,GAAGrB,KAAK,CAACgH,QAAQ,CAACL,MAAM,EAAEA,MAAM,GAAGE,UAAU,CAAC,CAAC;MACvEjC,MAAM,CAACI,WAAW,IAAI6B,UAAU;AACpC,IAAA;AACAF,IAAAA,MAAM,IAAIJ,MAAM;AAChBK,IAAAA,UAAU,GAAGL,MAAM;IACnB,IAAIA,MAAM,GAAG,GAAG,EAChB;MACI,IAAI,CAAC3B,MAAM,CAACK,mBAAmB,EAAEL,MAAM,CAACK,mBAAmB,GAAG,IAAI;AACtE,IAAA;AACJ,EAAA;EACAL,MAAM,CAACM,UAAU,GAAGb,YAAY,GAAG,CAAC,IAAIuC,UAAU,KAAK,GAAG;AAC9D;AAEA,SAASX,WAAWA,CAACrB,MAAM,EAC3B;EACI,MAAMqC,MAAM,GAAGxH,UAAU,CAACuG,IAAI,CAACpB,MAAM,CAACG,WAAW,CAAC;EAClD,IAAImC,OAAO,CAACD,MAAM,EAAE,CAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,CAAC,EAC9D;AACI,IAAA,IAAIA,MAAM,CAACV,MAAM,GAAG,EAAE,EAAE,MAAM,IAAIxE,KAAK,CAAC,CAAA,uDAAA,EAA0D6C,MAAM,CAACV,MAAM,EAAE,CAAC;IAClH,IAAIC,SAAS,CAAC8C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAACA,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC9C,SAAS,CAAC8C,MAAM,EAAE,EAAE,CAAC,EACvE;MACI,MAAM,IAAIlF,KAAK,CAAC,CAAA,qDAAA,EAAwD6C,MAAM,CAACV,MAAM,EAAE,CAAC;AAC5F,IAAA;IACAU,MAAM,CAAC/D,KAAK,GAAG,QAAQ;IACvB+D,MAAM,CAACxD,SAAS,GAAG,OAAO;IAC1BwD,MAAM,CAACtC,QAAQ,GAAG2E,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC;IACjCrC,MAAM,CAAC/B,UAAU,GAAGsB,SAAS,CAAC8C,MAAM,EAAE,EAAE,CAAC;IACzCrC,MAAM,CAACuC,cAAc,GAAGC,SAAS,CAACH,MAAM,EAAE,EAAE,CAAC;IAC7CrC,MAAM,CAACyC,cAAc,GAAGD,SAAS,CAACH,MAAM,EAAE,EAAE,CAAC;IAC7CrC,MAAM,CAAC0C,cAAc,GAAGF,SAAS,CAACH,MAAM,EAAE,EAAE,CAAC;AAC7CM,IAAAA,cAAc,CAAC3C,MAAM,EAAE,CAAC,CAAC;EAC7B,CAAC,MACI,IAAIsC,OAAO,CAACD,MAAM,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,CAAC,EAC5E;AACI,IAAA,IAAIA,MAAM,CAACV,MAAM,GAAG,EAAE,IAAIU,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAACA,MAAM,CAAC,CAAC,CAAC,IAAKA,MAAM,CAAC,EAAE,CAAC,IAAIA,MAAM,CAACV,MAAM,GAAG,EAAE,GAAGU,MAAM,CAAC,CAAC,CAAE,EACzG;MACI,MAAM,IAAIlF,KAAK,CAAC,CAAA,wCAAA,EAA2C6C,MAAM,CAACV,MAAM,EAAE,CAAC;AAC/E,IAAA;IACAU,MAAM,CAAC/D,KAAK,GAAG,MAAM;IACrB+D,MAAM,CAACxD,SAAS,GAAG,OAAO;IAC1BwD,MAAM,CAACtC,QAAQ,GAAG2E,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAChCrC,MAAM,CAAC4C,OAAO,GAAGC,SAAS,CAACR,MAAM,EAAE,EAAE,CAAC;IACtCrC,MAAM,CAAC8C,eAAe,GAAGvD,SAAS,CAAC8C,MAAM,EAAE,EAAE,CAAC;IAC9CrC,MAAM,CAAC/B,UAAU,GAAG,KAAK;IACzB+B,MAAM,CAAC+C,UAAU,GAAGC,SAAS,CAACX,MAAM,EAAE,EAAE,CAAC;IACzCrC,MAAM,CAACiD,aAAa,GAAGZ,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC;AACtCM,IAAAA,cAAc,CAAC3C,MAAM,EAAEA,MAAM,CAAC4C,OAAO,CAAC;EAC1C,CAAC,MACI,IAAIN,OAAO,CAACD,MAAM,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,CAAC,EACtE;AACI,IAAA,IAAIA,MAAM,CAACV,MAAM,GAAG,EAAE,EAAE,MAAM,IAAIxE,KAAK,CAAC,CAAA,uDAAA,EAA0D6C,MAAM,CAACV,MAAM,EAAE,CAAC;IAClHU,MAAM,CAAC/D,KAAK,GAAG,QAAQ;IACvB+D,MAAM,CAACxD,SAAS,GAAG,OAAO;IAC1BwD,MAAM,CAACkD,UAAU,GAAGC,SAAS,CAACd,MAAM,EAAE,EAAE,CAAC,GAAG,EAAE;IAC9CrC,MAAM,CAACoD,WAAW,GAAGD,SAAS,CAACd,MAAM,EAAE,EAAE,CAAC,GAAG,EAAE;IAC/CrC,MAAM,CAACqD,KAAK,GAAGC,SAAS,CAACjB,MAAM,EAAE,EAAE,CAAC;IACpCrC,MAAM,CAACuD,MAAM,GAAGD,SAAS,CAACjB,MAAM,EAAE,EAAE,CAAC;IACrCrC,MAAM,CAACwD,kBAAkB,GAAGC,SAAS,CAACpB,MAAM,EAAE,EAAE,CAAC;IACjDrC,MAAM,CAAC0D,oBAAoB,GAAGD,SAAS,CAACpB,MAAM,EAAE,EAAE,CAAC;AACnDrC,IAAAA,MAAM,CAAC2D,SAAS,GAAG3D,MAAM,CAAC0D,oBAAoB,GACxC1D,MAAM,CAACwD,kBAAkB,GAAGxD,MAAM,CAAC0D,oBAAoB,GACvD,CAAC;IACP1D,MAAM,CAAC4D,oBAAoB,GAAGN,SAAS,CAACjB,MAAM,EAAE,EAAE,CAAC;IACnDrC,MAAM,CAAC6D,sBAAsB,GAAGP,SAAS,CAACjB,MAAM,EAAE,EAAE,CAAC;AACrDrC,IAAAA,MAAM,CAAC8D,gBAAgB,GAAG9D,MAAM,CAAC6D,sBAAsB,GACjD7D,MAAM,CAAC4D,oBAAoB,GAAG5D,MAAM,CAAC6D,sBAAsB,GAC3D,CAAC;IACP7D,MAAM,CAAC+D,UAAU,GAAG1B,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC;AACvC,EAAA;EACA,OAAOrC,MAAM,CAACG,WAAW;EACzB,OAAOH,MAAM,CAACI,WAAW;EACzB,OAAOJ,MAAM,CAACK,mBAAmB;EACjC,OAAOL,MAAM,CAACM,UAAU;AACxB,EAAA,OAAON,MAAM;AACjB;AAEA,SAAS2C,cAAcA,CAAC3C,MAAM,EAAE4C,OAAO,EACvC;AACI5C,EAAAA,MAAM,CAACZ,eAAe,GAAGY,MAAM,CAACgB,mBAAmB;AACnD,EAAA,MAAMgD,OAAO,GAAG,OAAOhE,MAAM,CAACgB,mBAAmB,KAAK,QAAQ,GACxDhB,MAAM,CAACgB,mBAAmB,GAC1B,OAAOhB,MAAM,CAACgB,mBAAmB,KAAK,QAAQ,IAAI,QAAQ,CAACiD,IAAI,CAACjE,MAAM,CAACgB,mBAAmB,CAAC,GACvFkD,MAAM,CAAClE,MAAM,CAACgB,mBAAmB,CAAC,GAClC,IAAI;EACd,IAAIgD,OAAO,KAAK,IAAI,IAAI,CAACE,MAAM,CAACC,aAAa,CAACH,OAAO,CAAC,EAAE;AACxDhE,EAAAA,MAAM,CAACoE,eAAe,GAAGlC,IAAI,CAACmC,GAAG,CAAC,CAAC,EAAEL,OAAO,GAAGpB,OAAO,CAAC;AACvD5C,EAAAA,MAAM,CAAC5B,eAAe,GAAG4B,MAAM,CAAC/B,UAAU,GAAG+B,MAAM,CAACoE,eAAe,GAAGpE,MAAM,CAAC/B,UAAU,GAAG,CAAC;AAC/F;AAEA,SAASqE,OAAOA,CAAClH,KAAK,EAAEkJ,SAAS,EACjC;AACI,EAAA,OAAOA,SAAS,CAACC,KAAK,CAAC,CAAC9F,KAAK,EAAE+F,KAAK,KAAKpJ,KAAK,CAACoJ,KAAK,CAAC,KAAK/F,KAAK,CAAC;AACpE;AAEA,SAASpD,KAAKA,CAACD,KAAK,EAAE4D,MAAM,EAAE2C,MAAM,EACpC;AACI,EAAA,OAAO8C,MAAM,CAACC,YAAY,CAAC,GAAGtJ,KAAK,CAACgH,QAAQ,CAACpD,MAAM,EAAEA,MAAM,GAAG2C,MAAM,CAAC,CAAC;AAC1E;AAEA,SAASkB,SAASA,CAACzH,KAAK,EAAE4D,MAAM,EAChC;AACI,EAAA,OAAO,CAAC5D,KAAK,CAAC4D,MAAM,CAAC,IAAI,CAAC,IAAK,CAAC5D,KAAK,CAAC4D,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAE;AACjE;AAEA,SAASmE,SAASA,CAAC/H,KAAK,EAAE4D,MAAM,EAChC;AACI,EAAA,OAAQ,CAAC5D,KAAK,CAAC4D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAK5D,KAAK,CAAC4D,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AACjE;AAEA,SAASsE,SAASA,CAAClI,KAAK,EAAE4D,MAAM,EAChC;AACI,EAAA,OAAQ,CAAC5D,KAAK,CAAC4D,MAAM,CAAC,IAAI,CAAC,IAAI,OAAO,IAAK,CAAC5D,KAAK,CAAC4D,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI5D,KAAK,CAAC4D,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AACxG;AAEA,SAASgE,SAASA,CAAC5H,KAAK,EAAE4D,MAAM,EAChC;AACI,EAAA,MAAMP,KAAK,GAAGoE,SAAS,CAACzH,KAAK,EAAE4D,MAAM,CAAC;EACtC,OAAOP,KAAK,GAAG,MAAM,GAAGA,KAAK,GAAG,OAAO,GAAGA,KAAK;AACnD;AAEA,SAASc,SAASA,CAACnE,KAAK,EAAE4D,MAAM,EAChC;EACI,OAAO,CAAC,CAAC5D,KAAK,CAAC4D,MAAM,CAAC,IAAI,CAAC,IAAK,CAAC5D,KAAK,CAAC4D,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAE,GAAI,CAAC5D,KAAK,CAAC4D,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAG,GAAI,CAAC5D,KAAK,CAAC4D,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,SAAU,MAAM,CAAC;AACrJ;AAEA,SAASyE,SAASA,CAACrI,KAAK,EAAE4D,MAAM,EAChC;EACI,OAAS,CAAC5D,KAAK,CAAC4D,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,IAAK,CAAC5D,KAAK,CAAC4D,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC5D,KAAK,CAAC4D,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI5D,KAAK,CAAC4D,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAM,CAAC;AACrJ;AAEA,SAASwD,SAASA,CAACpH,KAAK,EAAE4D,MAAM,EAChC;AACI,EAAA,OAAOO,SAAS,CAACnE,KAAK,EAAE4D,MAAM,CAAC,GAAG,CAAC;AACvC;AAEA,SAASK,SAASA,CAACjE,KAAK,EAAE4D,MAAM,EAChC;EACI,IAAIP,KAAK,GAAG,EAAE;AACd,EAAA,KAAK,IAAIX,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAEW,KAAK,GAAIA,KAAK,IAAI,EAAE,GAAIkG,MAAM,CAACvJ,KAAK,CAAC4D,MAAM,GAAGlB,CAAC,CAAC,IAAI,CAAC,CAAC;AACnF,EAAA,IAAIW,KAAK,KAAK,mBAAmB,EAAE,OAAO,IAAI;AAC9C,EAAA,OAAOA,KAAK,IAAIkG,MAAM,CAACT,MAAM,CAACU,gBAAgB,CAAC,GAAGV,MAAM,CAACzF,KAAK,CAAC,GAAGA,KAAK,CAACoG,QAAQ,EAAE;AACtF;;;;"}
1
+ {"version":3,"file":"helpers.js","sources":["../../../../../src/formats/ogg/core/helpers.js"],"sourcesContent":["import { decodeVorbis } from \"./vorbis.js\";\n\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_JSON = \"json\";\nexport const OUTPUT_PCM = \"pcm\";\nexport const OUTPUT_AUDIO = \"audio\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_RAW,\n inputType: \"ogg\",\n source: \"\"\n});\n\n/**\n * Normalizes reader options against their supported defaults for the Ogg format\n * reader.\n */\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsOggFormat\")\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, \"oggJson\", \"audio\", \"pcm\" ].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 Ogg format reader. */\nexport function toBytes(input)\n{\n if (input instanceof Uint8Array) return input;\n if (input instanceof ArrayBuffer) return new Uint8Array(input);\n if (ArrayBuffer.isView(input)) return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);\n throw new TypeError(\"OGG input must be Uint8Array, ArrayBuffer, or a view\");\n}\n\n/**\n * Reports whether the supplied bytes begin with an Ogg page signature for the\n * Ogg format reader.\n */\nexport function isOGG(bytes)\n{\n return bytes.byteLength >= 4 && ascii(bytes, 0, 4) === \"OggS\";\n}\n\n/** Inspects input using normalized format options for the Ogg format reader. */\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"ogg\")\n{\n const bytes = toBytes(input);\n if (!isOGG(bytes)) throw new TypeError(\"CjsOggFormat: input is not an Ogg container\");\n const metadata = inspectOgg(bytes);\n if (expectedType && metadata.sourceFormat !== expectedType)\n {\n throw new TypeError(`CjsOggFormat: 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 Ogg\n * format reader.\n */\nexport function isSupportedWithValues(input, values = DEFAULT_VALUES)\n{\n try\n {\n const metadata = inspectWithValues(input, values);\n const mimeType = getOggMimeType(metadata);\n const variants = [\n {\n kind: \"raw\",\n payloadType: \"raw\",\n codec: \"ogg\",\n mimeType,\n supported: true,\n containerOnly: true,\n isDecoded: false,\n pcmDecodeSupported: false,\n frameDecodeSupported: false\n },\n {\n kind: \"pcm\",\n payloadType: \"pcm\",\n codec: metadata.codec === \"vorbis\" ? \"float32\" : \"pcm\",\n supported: metadata.codec === \"vorbis\",\n reason: metadata.codec === \"vorbis\" ? \"\" : \"Only Ogg Vorbis PCM decode is implemented.\"\n }\n ];\n if (metadata.mediaType === \"video\")\n {\n variants.push({\n kind: \"decoded\",\n payloadType: \"video-frame\",\n codec: \"frames\",\n supported: false,\n reason: \"OGG Theora frame decode is not implemented yet.\"\n });\n }\n const pcmSupported = metadata.codec === \"vorbis\";\n return {\n format: \"ogg\",\n source: values.source || \"buffer\",\n supported: \"partial\",\n confidence: 1,\n preferred: pcmSupported ? \"pcm\" : (metadata.sourceFormat ? \"ogg\" : \"\"),\n reason: pcmSupported\n ? \"Ogg Vorbis recognized; PCM decode is supported.\"\n : \"Ogg pages and codec headers are recognized; raw Ogg passthrough is available.\",\n metadata,\n variants,\n warnings: [],\n errors: []\n };\n }\n catch (error)\n {\n return {\n format: \"ogg\",\n source: values.source || \"buffer\",\n supported: \"none\",\n confidence: 0,\n preferred: \"\",\n reason: error.message,\n metadata: null,\n variants: [],\n warnings: [],\n errors: [ error.message ]\n };\n }\n}\n\n/** Reads input using normalized format options for the Ogg format reader. */\nexport function readWithValues(input, values = DEFAULT_VALUES)\n{\n const bytes = toBytes(input);\n const metadata = inspectWithValues(bytes, values);\n if (values.emit === OUTPUT_RAW)\n {\n return {\n payloadType: \"raw\",\n sourceFormat: \"ogg\",\n mimeType: getOggMimeType(metadata),\n containerOnly: true,\n isDecoded: false,\n pcmDecodeSupported: false,\n frameDecodeSupported: false,\n metadata,\n bytes\n };\n }\n if (values.emit === OUTPUT_JSON || values.emit === \"oggJson\") return metadata;\n if (values.emit === OUTPUT_PCM || values.emit === OUTPUT_AUDIO)\n {\n if (metadata.codec !== \"vorbis\")\n {\n const error = new Error(`ogg: PCM decode supports Vorbis only (found ${metadata.codec})`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n throw error;\n }\n const decoded = decodeVorbis(bytes);\n const data = new Float32Array(decoded.sampleCount * decoded.channels);\n for (let channel = 0; channel < decoded.channels; channel++)\n {\n const samples = decoded.channelData[channel];\n for (let i = 0; i < decoded.sampleCount; i++)\n {\n data[i * decoded.channels + channel] = samples[i];\n }\n }\n return {\n payloadType: values.emit === OUTPUT_AUDIO ? OUTPUT_AUDIO : OUTPUT_PCM,\n sourceFormat: \"ogg\",\n codec: \"vorbis\",\n containerOnly: false,\n isDecoded: true,\n pcmDecodeSupported: true,\n audioFormat: \"float32\",\n sampleFormat: \"float32\",\n sampleRate: decoded.sampleRate,\n channels: decoded.channels,\n interleaving: \"interleaved\",\n frameCount: decoded.sampleCount,\n durationSeconds: decoded.sampleRate ? decoded.sampleCount / decoded.sampleRate : 0,\n vendor: decoded.vendor,\n comments: decoded.comments,\n loop: decoded.loop,\n channelData: decoded.channelData,\n metadata,\n data\n };\n }\n const error = new Error(`ogg: 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 Ogg 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 getOggMimeType(metadata)\n{\n if (metadata.mediaType === \"video\") return \"video/ogg\";\n if (metadata.mediaType === \"audio\") return \"audio/ogg\";\n return \"application/ogg\";\n}\n\nfunction inspectOgg(bytes)\n{\n const streams = new Map();\n let offset = 0;\n let pageCount = 0;\n while (offset + 27 <= bytes.byteLength)\n {\n if (ascii(bytes, offset, 4) !== \"OggS\") throw new Error(`ogg: invalid page at byte ${offset}`);\n const version = bytes[offset + 4];\n if (version !== 0) throw new Error(`ogg: unsupported stream version ${version}`);\n const headerType = bytes[offset + 5];\n if (headerType & 0xf8) throw new Error(`ogg: reserved header flags at byte ${offset}`);\n const granulePosition = readU64LE(bytes, offset + 6);\n const serial = readU32LE(bytes, offset + 14);\n const sequence = readU32LE(bytes, offset + 18);\n const segmentCount = bytes[offset + 26];\n const tableOffset = offset + 27;\n const payloadOffset = tableOffset + segmentCount;\n if (payloadOffset > bytes.byteLength) throw new Error(\"ogg: truncated segment table\");\n let payloadLength = 0;\n for (let i = 0; i < segmentCount; i++) payloadLength += bytes[tableOffset + i];\n if (payloadOffset + payloadLength > bytes.byteLength) throw new Error(\"ogg: truncated page payload\");\n const pageLength = 27 + segmentCount + payloadLength;\n const expectedChecksum = readU32LE(bytes, offset + 22);\n if (computeOggCrc(bytes, offset, pageLength) !== expectedChecksum)\n {\n throw new Error(`ogg: page checksum mismatch at byte ${offset}`);\n }\n const stream = streams.get(serial) || {\n serial,\n pages: 0,\n firstPacket: [],\n packetBytes: 0,\n firstPacketComplete: false,\n packetOpen: false,\n codec: \"\",\n mediaType: \"unknown\",\n payloadBytes: 0\n };\n const continued = !!(headerType & 0x01);\n if (stream.pages === 0 && !(headerType & 0x02)) throw new Error(`ogg: first page of stream ${serial} is missing BOS`);\n if (stream.pages === 0 && continued) throw new Error(`ogg: first page of stream ${serial} is marked continued`);\n if (stream.eosSeen) throw new Error(`ogg: page follows EOS for stream ${serial}`);\n if (stream.pages > 0 && continued !== stream.packetOpen)\n {\n throw new Error(`ogg: continued-page state mismatch for stream ${serial}`);\n }\n if ((headerType & 0x02) && stream.pages !== 0) throw new Error(`ogg: BOS page is not first for stream ${serial}`);\n if (stream.lastSequence !== undefined && sequence !== stream.lastSequence + 1)\n {\n throw new Error(`ogg: page sequence mismatch for stream ${serial}`);\n }\n if (stream.pages === 0)\n {\n stream.firstSequence = sequence;\n stream.firstGranulePosition = granulePosition;\n stream.bos = !!(headerType & 0x02);\n }\n stream.pages++;\n stream.payloadBytes += payloadLength;\n collectFirstPacket(stream, bytes, payloadOffset, tableOffset, segmentCount);\n if ((headerType & 0x04) && stream.packetOpen) throw new Error(`ogg: EOS page leaves a packet continued for stream ${serial}`);\n stream.lastGranulePosition = granulePosition;\n stream.granulePosition = granulePosition;\n stream.lastSequence = sequence;\n stream.eos = !!(headerType & 0x04);\n stream.eosSeen = stream.eos;\n streams.set(serial, stream);\n pageCount++;\n offset = payloadOffset + payloadLength;\n }\n if (offset !== bytes.byteLength) throw new Error(`ogg: truncated trailing page at byte ${offset}`);\n if (!pageCount) throw new Error(\"ogg: no pages found\");\n const tracks = Array.from(streams.values()).map(stream => decodeCodec(stream));\n const primary = tracks.find(track => track.mediaType !== \"unknown\") || tracks[0];\n return {\n payloadType: primary?.mediaType === \"video\" ? \"video\" : primary?.mediaType === \"audio\" ? \"audio\" : \"container\",\n mediaTypes: tracks.map(track => track.mediaType),\n sourceFormat: \"ogg\",\n pageCount,\n streamCount: tracks.length,\n codec: primary?.codec || \"ogg\",\n mediaType: primary?.mediaType || \"unknown\",\n tracks\n };\n}\n\nfunction computeOggCrc(bytes, offset, length)\n{\n let crc = 0;\n for (let i = 0; i < length; i++)\n {\n const relative = i;\n const value = relative >= 22 && relative < 26 ? 0 : bytes[offset + relative];\n crc ^= value << 24;\n for (let bit = 0; bit < 8; bit++)\n {\n crc = (crc & 0x80000000) ? ((crc << 1) ^ 0x04c11db7) : (crc << 1);\n }\n }\n return crc >>> 0;\n}\n\nfunction collectFirstPacket(stream, bytes, payloadOffset, tableOffset, segmentCount)\n{\n let cursor = payloadOffset;\n let lastLength = 0;\n for (let i = 0; i < segmentCount; i++)\n {\n const length = bytes[tableOffset + i];\n if (!stream.firstPacketComplete && stream.packetBytes < 64)\n {\n const copyLength = Math.min(length, 64 - stream.packetBytes);\n stream.firstPacket.push(...bytes.subarray(cursor, cursor + copyLength));\n stream.packetBytes += copyLength;\n }\n cursor += length;\n lastLength = length;\n if (length < 255)\n {\n if (!stream.firstPacketComplete) stream.firstPacketComplete = true;\n }\n }\n stream.packetOpen = segmentCount > 0 && lastLength === 255;\n}\n\nfunction decodeCodec(stream)\n{\n const packet = Uint8Array.from(stream.firstPacket);\n if (matches(packet, [ 1, 0x76, 0x6f, 0x72, 0x62, 0x69, 0x73 ]))\n {\n if (packet.length < 30) throw new Error(`ogg: truncated Vorbis identification header for stream ${stream.serial}`);\n if (readU32LE(packet, 7) !== 0 || !packet[11] || !readU32LE(packet, 12))\n {\n throw new Error(`ogg: invalid Vorbis identification header for stream ${stream.serial}`);\n }\n stream.codec = \"vorbis\";\n stream.mediaType = \"audio\";\n stream.channels = packet[11] || 0;\n stream.sampleRate = readU32LE(packet, 12);\n stream.bitrateMaximum = readS32LE(packet, 16);\n stream.bitrateNominal = readS32LE(packet, 20);\n stream.bitrateMinimum = readS32LE(packet, 24);\n addAudioTiming(stream, 0);\n }\n else if (matches(packet, [ 0x4f, 0x70, 0x75, 0x73, 0x48, 0x65, 0x61, 0x64 ]))\n {\n if (packet.length < 19 || packet[8] !== 1 || !packet[9] || (packet[18] && packet.length < 21 + packet[9]))\n {\n throw new Error(`ogg: invalid OpusHead packet for stream ${stream.serial}`);\n }\n stream.codec = \"opus\";\n stream.mediaType = \"audio\";\n stream.channels = packet[9] || 0;\n stream.preSkip = readU16LE(packet, 10);\n stream.inputSampleRate = readU32LE(packet, 12);\n stream.sampleRate = 48000;\n stream.outputGain = readS16LE(packet, 16);\n stream.mappingFamily = packet[18] || 0;\n addAudioTiming(stream, stream.preSkip);\n }\n else if (matches(packet, [ 0x80, 0x74, 0x68, 0x65, 0x6f, 0x72, 0x61 ]))\n {\n if (packet.length < 42) throw new Error(`ogg: truncated Theora identification header for stream ${stream.serial}`);\n stream.codec = \"theora\";\n stream.mediaType = \"video\";\n stream.frameWidth = readU16BE(packet, 10) * 16;\n stream.frameHeight = readU16BE(packet, 12) * 16;\n stream.width = readU24BE(packet, 14);\n stream.height = readU24BE(packet, 17);\n stream.frameRateNumerator = readU32BE(packet, 22);\n stream.frameRateDenominator = readU32BE(packet, 26);\n stream.frameRate = stream.frameRateDenominator\n ? stream.frameRateNumerator / stream.frameRateDenominator\n : 0;\n stream.pixelAspectNumerator = readU24BE(packet, 30);\n stream.pixelAspectDenominator = readU24BE(packet, 33);\n stream.pixelAspectRatio = stream.pixelAspectDenominator\n ? stream.pixelAspectNumerator / stream.pixelAspectDenominator\n : 0;\n stream.colorSpace = packet[36] || 0;\n }\n delete stream.firstPacket;\n delete stream.packetBytes;\n delete stream.firstPacketComplete;\n delete stream.packetOpen;\n return stream;\n}\n\nfunction addAudioTiming(stream, preSkip)\n{\n stream.granulePosition = stream.lastGranulePosition;\n const granule = typeof stream.lastGranulePosition === \"number\"\n ? stream.lastGranulePosition\n : typeof stream.lastGranulePosition === \"string\" && /^\\d+$/u.test(stream.lastGranulePosition)\n ? Number(stream.lastGranulePosition)\n : null;\n if (granule === null || !Number.isSafeInteger(granule)) return;\n stream.durationSamples = Math.max(0, granule - preSkip);\n stream.durationSeconds = stream.sampleRate ? stream.durationSamples / stream.sampleRate : 0;\n}\n\nfunction matches(bytes, signature)\n{\n return signature.every((value, index) => bytes[index] === value);\n}\n\nfunction ascii(bytes, offset, length)\n{\n return String.fromCharCode(...bytes.subarray(offset, offset + length));\n}\n\nfunction readU16LE(bytes, offset)\n{\n return (bytes[offset] || 0) | ((bytes[offset + 1] || 0) << 8);\n}\n\nfunction readU16BE(bytes, offset)\n{\n return ((bytes[offset] || 0) << 8) | (bytes[offset + 1] || 0);\n}\n\nfunction readU24BE(bytes, offset)\n{\n return ((bytes[offset] || 0) * 0x10000) + ((bytes[offset + 1] || 0) << 8) + (bytes[offset + 2] || 0);\n}\n\nfunction readS16LE(bytes, offset)\n{\n const value = readU16LE(bytes, offset);\n return value & 0x8000 ? value - 0x10000 : value;\n}\n\nfunction readU32LE(bytes, offset)\n{\n return ((bytes[offset] || 0) | ((bytes[offset + 1] || 0) << 8) | ((bytes[offset + 2] || 0) << 16) | ((bytes[offset + 3] || 0) * 0x1000000)) >>> 0;\n}\n\nfunction readU32BE(bytes, offset)\n{\n return (((bytes[offset] || 0) * 0x1000000) + ((bytes[offset + 1] || 0) << 16) + ((bytes[offset + 2] || 0) << 8) + (bytes[offset + 3] || 0)) >>> 0;\n}\n\nfunction readS32LE(bytes, offset)\n{\n return readU32LE(bytes, offset) | 0;\n}\n\nfunction readU64LE(bytes, offset)\n{\n let value = 0n;\n for (let i = 7; i >= 0; i--) value = (value << 8n) | BigInt(bytes[offset + i] || 0);\n if (value === 0xffffffffffffffffn) return null;\n return value <= BigInt(Number.MAX_SAFE_INTEGER) ? Number(value) : value.toString();\n}\n"],"names":["OUTPUT_RAW","OUTPUT_JSON","OUTPUT_PCM","OUTPUT_AUDIO","DEFAULT_VALUES","Object","freeze","emit","inputType","source","normalizeValues","base","options","readerName","Array","isArray","TypeError","allowed","Set","key","keys","has","JSON","stringify","values","includes","toBytes","input","Uint8Array","ArrayBuffer","isView","buffer","byteOffset","byteLength","isOGG","bytes","ascii","inspectWithValues","expectedType","metadata","inspectOgg","sourceFormat","isSupportedWithValues","mimeType","getOggMimeType","variants","kind","payloadType","codec","supported","containerOnly","isDecoded","pcmDecodeSupported","frameDecodeSupported","reason","mediaType","push","pcmSupported","format","confidence","preferred","warnings","errors","error","message","readWithValues","Error","code","decoded","decodeVorbis","data","Float32Array","sampleCount","channels","channel","samples","channelData","i","audioFormat","sampleFormat","sampleRate","interleaving","frameCount","durationSeconds","vendor","comments","loop","toJsonValue","value","map","output","entry","entries","streams","Map","offset","pageCount","version","headerType","granulePosition","readU64LE","serial","readU32LE","sequence","segmentCount","tableOffset","payloadOffset","payloadLength","pageLength","expectedChecksum","computeOggCrc","stream","get","pages","firstPacket","packetBytes","firstPacketComplete","packetOpen","payloadBytes","continued","eosSeen","lastSequence","undefined","firstSequence","firstGranulePosition","bos","collectFirstPacket","lastGranulePosition","eos","set","tracks","from","decodeCodec","primary","find","track","mediaTypes","streamCount","length","crc","relative","bit","cursor","lastLength","copyLength","Math","min","subarray","packet","matches","bitrateMaximum","readS32LE","bitrateNominal","bitrateMinimum","addAudioTiming","preSkip","readU16LE","inputSampleRate","outputGain","readS16LE","mappingFamily","frameWidth","readU16BE","frameHeight","width","readU24BE","height","frameRateNumerator","readU32BE","frameRateDenominator","frameRate","pixelAspectNumerator","pixelAspectDenominator","pixelAspectRatio","colorSpace","granule","test","Number","isSafeInteger","durationSamples","max","signature","every","index","String","fromCharCode","BigInt","MAX_SAFE_INTEGER","toString"],"mappings":"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"}
@@ -63,6 +63,7 @@ function lookup1Values(entries, dimensions) {
63
63
  * `eop` instead of throwing (end-of-packet is a defined decode condition).
64
64
  */
65
65
  class PacketReader {
66
+ /** Creates a PacketReader over caller-provided Ogg bytes and reader options. */
66
67
  constructor(bytes) {
67
68
  this.bytes = bytes;
68
69
  this.position = 0;
@@ -70,6 +71,8 @@ class PacketReader {
70
71
  this.bitsLeft = 0;
71
72
  this.eop = false;
72
73
  }
74
+
75
+ /** Reads bits from the current Ogg binary reader. */
73
76
  readBits(count) {
74
77
  let value = 0;
75
78
  for (let i = 0; i < count; i++) {
@@ -94,6 +97,7 @@ class PacketReader {
94
97
  * scalar and vector packet decoding.
95
98
  */
96
99
  class Codebook {
100
+ /** Creates a Codebook with caller-provided initial state. */
97
101
  constructor() {
98
102
  this.dimensions = 0;
99
103
  this.entries = 0;
@@ -105,6 +109,11 @@ class Codebook {
105
109
  this.treeNodes = null;
106
110
  this.maxLength = 0;
107
111
  }
112
+
113
+ /**
114
+ * Builds the canonical Vorbis Huffman decode tree for this codebook for the
115
+ * Ogg decoder.
116
+ */
108
117
  buildHuffman(lengths) {
109
118
  const available = new Uint32Array(33);
110
119
  this.fastTable = new Int32Array(FAST_SIZE).fill(-1);
@@ -162,6 +171,8 @@ class Codebook {
162
171
  }
163
172
  this.treeNodes = nodes;
164
173
  }
174
+
175
+ /** Decodes the Ogg input into a normalized Ogg decoder result. */
165
176
  decode(reader) {
166
177
  // fast path: peek up to FAST_BITS without consuming
167
178
  let peek = 0;
@@ -206,6 +217,8 @@ class Codebook {
206
217
  }
207
218
  throw decodeError("huffman walk exceeded max code length");
208
219
  }
220
+
221
+ /** Reconstructs one vector-quantized codebook component for the Ogg decoder. */
209
222
  vqValue(symbol, element) {
210
223
  if (this.lookupType === 1) {
211
224
  let index = symbol;