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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (935) hide show
  1. package/README.md +58 -125
  2. package/dist/audio/index.js +8 -1
  3. package/dist/audio/index.js.map +1 -1
  4. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js +84 -0
  5. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js.map +1 -0
  6. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js +14 -0
  7. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js.map +1 -0
  8. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js +26 -0
  9. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js.map +1 -0
  10. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js +27 -0
  11. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js.map +1 -0
  12. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js +27 -0
  13. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js.map +1 -0
  14. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js +25 -0
  15. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js.map +1 -0
  16. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js +26 -0
  17. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js.map +1 -0
  18. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js +58 -0
  19. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js.map +1 -0
  20. package/dist/audio/trinity/audio/AudManager.js +1 -1
  21. package/dist/audio/trinity/audio/AudManager.js.map +1 -1
  22. package/dist/audio/trinity/audio/{AudObstructionOcclusion.js → AudObstructionOcclusion/AudObstructionOcclusion.js} +8 -52
  23. package/dist/audio/trinity/audio/AudObstructionOcclusion/AudObstructionOcclusion.js.map +1 -0
  24. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js +17 -0
  25. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js.map +1 -0
  26. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js +46 -0
  27. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js.map +1 -0
  28. package/dist/audio/trinity/index.js +8 -1
  29. package/dist/audio/trinity/index.js.map +1 -1
  30. package/dist/character/CjsCharacterAppearanceConstruction.js +5 -0
  31. package/dist/character/CjsCharacterAppearanceConstruction.js.map +1 -1
  32. package/dist/character/CjsCharacterAppearanceManager.js +14 -0
  33. package/dist/character/CjsCharacterAppearanceManager.js.map +1 -1
  34. package/dist/character/CjsCharacterFoundationConstruction.js +5 -0
  35. package/dist/character/CjsCharacterFoundationConstruction.js.map +1 -1
  36. package/dist/character/CjsCharacterTexturePolicy.js +5 -0
  37. package/dist/character/CjsCharacterTexturePolicy.js.map +1 -1
  38. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js +17 -0
  39. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js.map +1 -1
  40. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js +2 -0
  41. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js.map +1 -1
  42. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js +5 -0
  43. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js.map +1 -1
  44. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js +5 -0
  45. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js.map +1 -1
  46. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js +2 -0
  47. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js.map +1 -1
  48. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js +5 -0
  49. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js.map +1 -1
  50. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js +5 -0
  51. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js.map +1 -1
  52. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js +9 -0
  53. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js.map +1 -1
  54. package/dist/global/blue/CjsScriptCallback.js +142 -0
  55. package/dist/global/blue/CjsScriptCallback.js.map +1 -0
  56. package/dist/global/blue/index.js +2 -0
  57. package/dist/global/blue/index.js.map +1 -0
  58. package/dist/global/consts/renderContext/formats.js +51 -1
  59. package/dist/global/consts/renderContext/formats.js.map +1 -1
  60. package/dist/global/consts/renderContext/index.js +2 -2
  61. package/dist/global/consts/renderContext/renderStates.js +16 -1
  62. package/dist/global/consts/renderContext/renderStates.js.map +1 -1
  63. package/dist/global/contracts/index.js +0 -1
  64. package/dist/global/contracts/index.js.map +1 -1
  65. package/dist/global/index.js +4 -3
  66. package/dist/global/index.js.map +1 -1
  67. package/dist/global/math/index.js +2 -0
  68. package/dist/global/math/index.js.map +1 -1
  69. package/dist/global/math/mesh.js +70 -16
  70. package/dist/global/math/mesh.js.map +1 -1
  71. package/dist/global/math/noise.js +47 -68
  72. package/dist/global/math/noise.js.map +1 -1
  73. package/dist/global/math/pool.js +18 -3
  74. package/dist/global/math/pool.js.map +1 -1
  75. package/dist/global/math/random.js +52 -0
  76. package/dist/global/math/random.js.map +1 -0
  77. package/dist/global/math/tri3.js +18 -4
  78. package/dist/global/math/tri3.js.map +1 -1
  79. package/dist/global/schema/CjsSchema.js +20 -2
  80. package/dist/global/schema/CjsSchema.js.map +1 -1
  81. package/dist/global/schema/hydration.js +14 -0
  82. package/dist/global/schema/hydration.js.map +1 -1
  83. package/dist/global/utils/bytes.js +22 -4
  84. package/dist/global/utils/bytes.js.map +1 -1
  85. package/dist/global/utils/checksum.js +80 -0
  86. package/dist/global/utils/checksum.js.map +1 -0
  87. package/dist/global/utils/errors/CjsCancellationError.js +36 -0
  88. package/dist/global/utils/errors/CjsCancellationError.js.map +1 -0
  89. package/dist/global/utils/errors/CjsError.js +21 -52
  90. package/dist/global/utils/errors/CjsError.js.map +1 -1
  91. package/dist/global/utils/errors/abort.js +1 -1
  92. package/dist/global/utils/errors/abort.js.map +1 -1
  93. package/dist/global/utils/errors/index.js +2 -1
  94. package/dist/global/utils/errors/index.js.map +1 -1
  95. package/dist/global/utils/index.js +4 -2
  96. package/dist/global/utils/index.js.map +1 -1
  97. package/dist/index.js +95 -35
  98. package/dist/index.js.map +1 -1
  99. package/dist/input/Tr2MainWindow.js +7 -9
  100. package/dist/input/Tr2MainWindow.js.map +1 -1
  101. package/dist/resource/CjsResMan.js +33 -39
  102. package/dist/resource/CjsResMan.js.map +1 -1
  103. package/dist/resource/CjsResource.js +19 -5
  104. package/dist/resource/CjsResource.js.map +1 -1
  105. package/dist/resource/audio/AudioGeometryResData.js +22 -27
  106. package/dist/resource/audio/AudioGeometryResData.js.map +1 -1
  107. package/dist/resource/audio/CjsAudioRes.js +4 -5
  108. package/dist/resource/audio/CjsAudioRes.js.map +1 -1
  109. package/dist/resource/format/CjsBitReader.js +263 -0
  110. package/dist/resource/format/CjsBitReader.js.map +1 -0
  111. package/dist/resource/format/CjsByteReader.js +130 -125
  112. package/dist/resource/format/CjsByteReader.js.map +1 -1
  113. package/dist/resource/format/CjsFormat.js +11 -4
  114. package/dist/resource/format/CjsFormat.js.map +1 -1
  115. package/dist/resource/format/CjsFormatError.js +37 -1
  116. package/dist/resource/format/CjsFormatError.js.map +1 -1
  117. package/dist/resource/format/CjsResourceProbe.js +41 -37
  118. package/dist/resource/format/CjsResourceProbe.js.map +1 -1
  119. package/dist/resource/format/carbonRecordGuard.js +33 -0
  120. package/dist/resource/format/carbonRecordGuard.js.map +1 -0
  121. package/dist/resource/format/imageSignatures.js +202 -0
  122. package/dist/resource/format/imageSignatures.js.map +1 -0
  123. package/dist/resource/format/index.js +2 -1
  124. package/dist/resource/format/index.js.map +1 -1
  125. package/dist/resource/format/jsonPolicies.js +180 -0
  126. package/dist/resource/format/jsonPolicies.js.map +1 -0
  127. package/dist/resource/formats/black/core/helpers.js +18 -29
  128. package/dist/resource/formats/black/core/helpers.js.map +1 -1
  129. package/dist/resource/formats/bnk/CjsBnkFormat.js +4 -3
  130. package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
  131. package/dist/resource/formats/bnk/core/WwiseCursor.js +218 -0
  132. package/dist/resource/formats/bnk/core/WwiseCursor.js.map +1 -0
  133. package/dist/resource/formats/bnk/core/busNodes.js +2 -1
  134. package/dist/resource/formats/bnk/core/busNodes.js.map +1 -1
  135. package/dist/resource/formats/bnk/core/effectNodes.js +2 -1
  136. package/dist/resource/formats/bnk/core/effectNodes.js.map +1 -1
  137. package/dist/resource/formats/bnk/core/eventAction.js +15 -93
  138. package/dist/resource/formats/bnk/core/eventAction.js.map +1 -1
  139. package/dist/resource/formats/bnk/core/globalSettings.js +19 -94
  140. package/dist/resource/formats/bnk/core/globalSettings.js.map +1 -1
  141. package/dist/resource/formats/bnk/core/helpers.js +2 -48
  142. package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
  143. package/dist/resource/formats/bnk/core/musicNodes.js +42 -134
  144. package/dist/resource/formats/bnk/core/musicNodes.js.map +1 -1
  145. package/dist/resource/formats/bnk/core/nodeBase.js +20 -111
  146. package/dist/resource/formats/bnk/core/nodeBase.js.map +1 -1
  147. package/dist/resource/formats/bnk/core/sfxNodes.js +2 -1
  148. package/dist/resource/formats/bnk/core/sfxNodes.js.map +1 -1
  149. package/dist/resource/formats/cmf/CjsCmfFormat.js +242 -228
  150. package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
  151. package/dist/resource/formats/cmf/core/binary.js +54 -60
  152. package/dist/resource/formats/cmf/core/binary.js.map +1 -1
  153. package/dist/resource/formats/dds/CjsDdsFormat.js +5 -3
  154. package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
  155. package/dist/resource/formats/dds/core/bc6h.js +16 -18
  156. package/dist/resource/formats/dds/core/bc6h.js.map +1 -1
  157. package/dist/resource/formats/dds/core/bc7.js +28 -24
  158. package/dist/resource/formats/dds/core/bc7.js.map +1 -1
  159. package/dist/resource/formats/dds/core/helpers.js +7 -133
  160. package/dist/resource/formats/dds/core/helpers.js.map +1 -1
  161. package/dist/resource/formats/dxbc/CjsDxbcFormat.js +3 -2
  162. package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
  163. package/dist/resource/formats/dxbc/core/helpers.js +4 -32
  164. package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
  165. package/dist/resource/formats/fbx/CjsFbxFormat.js +11 -0
  166. package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
  167. package/dist/resource/formats/fbx/core/helpers.js +18 -12
  168. package/dist/resource/formats/fbx/core/helpers.js.map +1 -1
  169. package/dist/resource/formats/flac/CjsFlacFormat.js +4 -9
  170. package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
  171. package/dist/resource/formats/flac/core/helpers.js +1 -62
  172. package/dist/resource/formats/flac/core/helpers.js.map +1 -1
  173. package/dist/resource/formats/gif/CjsGifFormat.js +4 -9
  174. package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
  175. package/dist/resource/formats/gif/core/helpers.js +1 -63
  176. package/dist/resource/formats/gif/core/helpers.js.map +1 -1
  177. package/dist/resource/formats/gltf/CjsGltfFormat.js +4 -3
  178. package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
  179. package/dist/resource/formats/gltf/core/helpers.js +3 -19
  180. package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
  181. package/dist/resource/formats/gr2/CjsGr2Format.js +105 -92
  182. package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
  183. package/dist/resource/formats/gr2/core/container.js +1 -10
  184. package/dist/resource/formats/gr2/core/container.js.map +1 -1
  185. package/dist/resource/formats/gr2/core/helpers.js +24 -35
  186. package/dist/resource/formats/gr2/core/helpers.js.map +1 -1
  187. package/dist/resource/formats/gr2/core/shared.js +193 -189
  188. package/dist/resource/formats/gr2/core/shared.js.map +1 -1
  189. package/dist/resource/formats/hlsl/CjsHlslFormat.js +4 -3
  190. package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
  191. package/dist/resource/formats/hlsl/core/helpers.js +1 -30
  192. package/dist/resource/formats/hlsl/core/helpers.js.map +1 -1
  193. package/dist/resource/formats/jpeg/CjsJpegFormat.js +5 -3
  194. package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
  195. package/dist/resource/formats/jpeg/core/helpers.js +7 -134
  196. package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
  197. package/dist/resource/formats/mp3/CjsMp3Format.js +4 -9
  198. package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
  199. package/dist/resource/formats/mp3/core/helpers.js +1 -64
  200. package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
  201. package/dist/resource/formats/mp4/CjsMp4Format.js +4 -9
  202. package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
  203. package/dist/resource/formats/mp4/core/helpers.js +1 -73
  204. package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
  205. package/dist/resource/formats/obj/CjsObjFormat.js +4 -3
  206. package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
  207. package/dist/resource/formats/obj/core/helpers.js +93 -115
  208. package/dist/resource/formats/obj/core/helpers.js.map +1 -1
  209. package/dist/resource/formats/ogg/CjsOggFormat.js +4 -3
  210. package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
  211. package/dist/resource/formats/ogg/core/helpers.js +1 -15
  212. package/dist/resource/formats/ogg/core/helpers.js.map +1 -1
  213. package/dist/resource/formats/ogg/core/vorbis.js +138 -144
  214. package/dist/resource/formats/ogg/core/vorbis.js.map +1 -1
  215. package/dist/resource/formats/pickle/CjsPickleFormat.js +83 -114
  216. package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
  217. package/dist/resource/formats/png/CjsPngFormat.js +5 -3
  218. package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
  219. package/dist/resource/formats/png/core/helpers.js +13 -152
  220. package/dist/resource/formats/png/core/helpers.js.map +1 -1
  221. package/dist/resource/formats/png/core/writer.js +3 -27
  222. package/dist/resource/formats/png/core/writer.js.map +1 -1
  223. package/dist/resource/formats/red/core/helpers.js +19 -29
  224. package/dist/resource/formats/red/core/helpers.js.map +1 -1
  225. package/dist/resource/formats/stl/CjsStlFormat.js +158 -147
  226. package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
  227. package/dist/resource/formats/stl/core/helpers.js +44 -66
  228. package/dist/resource/formats/stl/core/helpers.js.map +1 -1
  229. package/dist/resource/formats/tga/CjsTgaFormat.js +5 -3
  230. package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
  231. package/dist/resource/formats/tga/core/helpers.js +7 -153
  232. package/dist/resource/formats/tga/core/helpers.js.map +1 -1
  233. package/dist/resource/formats/vta/CjsVtaFormat.js +4 -3
  234. package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
  235. package/dist/resource/formats/vta/core/helpers.js +1 -17
  236. package/dist/resource/formats/vta/core/helpers.js.map +1 -1
  237. package/dist/resource/formats/wav/CjsWavFormat.js +4 -3
  238. package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
  239. package/dist/resource/formats/wav/core/helpers.js +1 -15
  240. package/dist/resource/formats/wav/core/helpers.js.map +1 -1
  241. package/dist/resource/formats/webgl/CjsWebglFormat.js +4 -3
  242. package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
  243. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +69 -9
  244. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
  245. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +12 -3
  246. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
  247. package/dist/resource/formats/webgl/core/helpers.js +39 -68
  248. package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
  249. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +4 -3
  250. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
  251. package/dist/resource/formats/webgpu/core/helpers.js +4 -30
  252. package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
  253. package/dist/resource/formats/webm/CjsWebmFormat.js +4 -9
  254. package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
  255. package/dist/resource/formats/webm/core/helpers.js +1 -73
  256. package/dist/resource/formats/webm/core/helpers.js.map +1 -1
  257. package/dist/resource/formats/webp/CjsWebpFormat.js +4 -9
  258. package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
  259. package/dist/resource/formats/webp/core/helpers.js +1 -62
  260. package/dist/resource/formats/webp/core/helpers.js.map +1 -1
  261. package/dist/resource/formats/wem/CjsWemFormat.js +4 -3
  262. package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
  263. package/dist/resource/formats/wem/core/bitStream.js +83 -106
  264. package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
  265. package/dist/resource/formats/wem/core/codebookLibrary.js +52 -52
  266. package/dist/resource/formats/wem/core/codebookLibrary.js.map +1 -1
  267. package/dist/resource/formats/wem/core/helpers.js +1 -15
  268. package/dist/resource/formats/wem/core/helpers.js.map +1 -1
  269. package/dist/resource/formats/wem/core/wemToOgg.js +67 -67
  270. package/dist/resource/formats/wem/core/wemToOgg.js.map +1 -1
  271. package/dist/resource/geometry/MeshDecalData.js +23 -25
  272. package/dist/resource/geometry/MeshDecalData.js.map +1 -1
  273. package/dist/resource/geometry/MeshDecalLodData.js +14 -23
  274. package/dist/resource/geometry/MeshDecalLodData.js.map +1 -1
  275. package/dist/resource/geometry/TriGeometryRes.js +299 -284
  276. package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
  277. package/dist/resource/geometry/TriGeometryResAreaData.js +30 -31
  278. package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -1
  279. package/dist/resource/geometry/TriGeometryResJointData.js +16 -24
  280. package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -1
  281. package/dist/resource/geometry/TriGeometryResLodData.js +50 -41
  282. package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -1
  283. package/dist/resource/geometry/TriGeometryResMeshData.js +32 -32
  284. package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -1
  285. package/dist/resource/geometry/TriGeometryResSkeletonData.js +14 -23
  286. package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -1
  287. package/dist/resource/geometry/TriJointBinding.js +16 -24
  288. package/dist/resource/geometry/TriJointBinding.js.map +1 -1
  289. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +22 -27
  290. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -1
  291. package/dist/resource/geometry/TriRtGeometryConstants.js +50 -41
  292. package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -1
  293. package/dist/resource/geometry/granny/GStateBindingCallbackData.js +12 -22
  294. package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -1
  295. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +30 -31
  296. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
  297. package/dist/resource/index.js +1 -1
  298. package/dist/resource/shader/reflection/Tr2EffectConstant.js +16 -17
  299. package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
  300. package/dist/resource/shader/reflection/Tr2EffectDescription.js +26 -28
  301. package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
  302. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +24 -25
  303. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
  304. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +21 -22
  305. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
  306. package/dist/resource/shader/reflection/Tr2EffectResource.js +25 -26
  307. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
  308. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +69 -72
  309. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
  310. package/dist/resource/shader/reflection/Tr2EffectTechnique.js +17 -18
  311. package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
  312. package/dist/resource/shader/reflection/Tr2Pass.js +42 -43
  313. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  314. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js +26 -5
  315. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js.map +1 -1
  316. package/dist/resource/shader/reflection/carbonRecordFields.js +87 -90
  317. package/dist/resource/shader/reflection/carbonRecordFields.js.map +1 -1
  318. package/dist/resource/shader/sampler/Tr2SamplerSetup.js +32 -34
  319. package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
  320. package/dist/resource/texture/CjsTextureArrayRes.js +1 -6
  321. package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
  322. package/dist/resource/texture/Tr2TextureLodManager.js +35 -27
  323. package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
  324. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +16 -24
  325. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -1
  326. package/dist/resource/texture/Tr2TexturePackChannel.js +16 -24
  327. package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
  328. package/dist/resource/texture/Tr2TexturePipeline.js +24 -20
  329. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
  330. package/dist/resource/texture/Tr2TexturePipelineParams.js +14 -23
  331. package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -1
  332. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +18 -25
  333. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
  334. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +11 -16
  335. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
  336. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +14 -23
  337. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
  338. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +12 -22
  339. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
  340. package/dist/resource/texture/Tr2TexturePipelineStepPack.js +38 -26
  341. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
  342. package/dist/resource/worker/CjsResManMainThreadLoader.js +2 -5
  343. package/dist/resource/worker/CjsResManMainThreadLoader.js.map +1 -1
  344. package/dist/resource/worker/CjsResManWorkerLoader.js +6 -7
  345. package/dist/resource/worker/CjsResManWorkerLoader.js.map +1 -1
  346. package/dist/resource/worker/protocol.js +18 -1
  347. package/dist/resource/worker/protocol.js.map +1 -1
  348. package/dist/sof/EveSOF.js +2 -222
  349. package/dist/sof/EveSOF.js.map +1 -1
  350. package/dist/sof/SofDocumentBuilder.js +205 -0
  351. package/dist/sof/SofDocumentBuilder.js.map +1 -0
  352. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js +16 -0
  353. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js.map +1 -0
  354. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js +16 -0
  355. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js.map +1 -0
  356. package/dist/sof/faction/EveSOFDataFactionColorSet.js +3 -27
  357. package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
  358. package/dist/sof/faction/index.js +3 -1
  359. package/dist/sof/faction/index.js.map +1 -1
  360. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js +18 -0
  361. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js.map +1 -0
  362. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js +18 -0
  363. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js.map +1 -0
  364. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js +21 -0
  365. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js.map +1 -0
  366. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js +21 -0
  367. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js.map +1 -0
  368. package/dist/sof/generic/EveSOFDataGeneric.js +5 -69
  369. package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
  370. package/dist/sof/generic/index.js +5 -1
  371. package/dist/sof/generic/index.js.map +1 -1
  372. package/dist/sof/index.js +23 -7
  373. package/dist/sof/index.js.map +1 -1
  374. package/dist/sof/pattern/ErrSOFProjectionNotFound.js +20 -0
  375. package/dist/sof/pattern/ErrSOFProjectionNotFound.js.map +1 -0
  376. package/dist/sof/pattern/EveSOFDataPattern.js +2 -17
  377. package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
  378. package/dist/sof/pattern/index.js +2 -1
  379. package/dist/sof/pattern/index.js.map +1 -1
  380. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js +16 -0
  381. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js.map +1 -0
  382. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js +16 -0
  383. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js.map +1 -0
  384. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js +16 -0
  385. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js.map +1 -0
  386. package/dist/sof/shared/EveSOFDataArea.js +2 -13
  387. package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
  388. package/dist/sof/shared/EveSOFDataLogoSet.js +3 -27
  389. package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
  390. package/dist/sof/shared/EveSOFDataParameter.js +2 -146
  391. package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
  392. package/dist/sof/shared/EveSOFDataParameterBool.js +40 -0
  393. package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -0
  394. package/dist/sof/shared/EveSOFDataParameterColor.js +36 -0
  395. package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -0
  396. package/dist/sof/shared/EveSOFDataParameterFloat.js +37 -0
  397. package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -0
  398. package/dist/sof/shared/EveSOFDataParameterInt.js +37 -0
  399. package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -0
  400. package/dist/sof/shared/EveSOFDataParameterVector2.js +37 -0
  401. package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -0
  402. package/dist/sof/shared/EveSOFDataParameterVector3.js +37 -0
  403. package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -0
  404. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js → EveSOFDataSpotLightAttachment.js} +1 -1
  405. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js.map → EveSOFDataSpotLightAttachment.js.map} +1 -1
  406. package/dist/sof/shared/index.js +13 -4
  407. package/dist/sof/shared/index.js.map +1 -1
  408. package/dist/sof/sofDocumentValues.js +33 -0
  409. package/dist/sof/sofDocumentValues.js.map +1 -0
  410. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +168 -0
  411. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -0
  412. package/dist/trinity/controllers/{ITr2Controller.js → ITr2Controller/ITr2Controller.js} +2 -134
  413. package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -0
  414. package/dist/trinity/controllers/Tr2Controller.js +2 -1
  415. package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
  416. package/dist/trinity/controllers/Tr2ControllerReference.js +2 -1
  417. package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
  418. package/dist/trinity/controllers/action/ITr2ControllerAction.js +2 -1
  419. package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
  420. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +10 -9
  421. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
  422. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js +26 -0
  423. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js.map +1 -0
  424. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js +24 -0
  425. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js.map +1 -0
  426. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js +387 -0
  427. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js.map +1 -0
  428. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js +4 -1011
  429. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js.map +1 -1
  430. package/dist/trinity/controllers/expression/expressionRuntime.js +605 -0
  431. package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -0
  432. package/dist/trinity/controllers/index.js +5 -2
  433. package/dist/trinity/controllers/index.js.map +1 -1
  434. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +2 -1
  435. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
  436. package/dist/trinity/controllers/timeline/Tr2TimelineController.js +2 -1
  437. package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
  438. package/dist/trinity/core/ITr2Updateable.js +2 -1
  439. package/dist/trinity/core/ITr2Updateable.js.map +1 -1
  440. package/dist/trinity/core/Tr2Blitter.js +6 -3
  441. package/dist/trinity/core/Tr2Blitter.js.map +1 -1
  442. package/dist/trinity/core/Tr2Denoiser.js +256 -0
  443. package/dist/trinity/core/Tr2Denoiser.js.map +1 -0
  444. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js +115 -0
  445. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js.map +1 -0
  446. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js +79 -0
  447. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js.map +1 -0
  448. package/dist/trinity/core/{Tr2GpuResourcePool.js → Tr2GpuResourcePool/Tr2GpuResourcePool.js} +63 -151
  449. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -0
  450. package/dist/trinity/core/{Tr2QuadRenderer.js → Tr2QuadRenderer/Tr2QuadRenderer.js} +8 -30
  451. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -0
  452. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +38 -0
  453. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -0
  454. package/dist/trinity/core/Tr2RenderUtils.js +20 -3
  455. package/dist/trinity/core/Tr2RenderUtils.js.map +1 -1
  456. package/dist/trinity/core/Tr2Renderer.js +146 -1
  457. package/dist/trinity/core/Tr2Renderer.js.map +1 -1
  458. package/dist/trinity/core/Tr2ShadowMap.js +135 -14
  459. package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
  460. package/dist/trinity/core/{Tr2TextureArray.js → Tr2TextureArray/Tr2TextureArray.js} +3 -58
  461. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -0
  462. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js +61 -0
  463. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js.map +1 -0
  464. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js +26 -0
  465. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js.map +1 -0
  466. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js +29 -0
  467. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js.map +1 -0
  468. package/dist/trinity/core/batch/{ITriRenderBatchAccumulator.js → TriRenderBatch/ITriRenderBatchAccumulator.js} +30 -30
  469. package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -0
  470. package/dist/trinity/core/batch/{Tr2RenderBatch.js → TriRenderBatch/Tr2RenderBatch.js} +81 -154
  471. package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -0
  472. package/dist/trinity/core/batch/{TriRenderBatchAccumulator.js → TriRenderBatch/TriRenderBatchAccumulator.js} +7 -38
  473. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAccumulator.js.map +1 -0
  474. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js +61 -0
  475. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js.map +1 -0
  476. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js +40 -0
  477. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js.map +1 -0
  478. package/dist/trinity/core/batch/TriRenderBatchMap.js +6 -1
  479. package/dist/trinity/core/batch/TriRenderBatchMap.js.map +1 -1
  480. package/dist/trinity/core/context/Tr2RenderContext.js +75 -57
  481. package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
  482. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js +67 -0
  483. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js.map +1 -0
  484. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js +50 -0
  485. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js.map +1 -0
  486. package/dist/trinity/core/device/Tr2DepthStencil.js +186 -13
  487. package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
  488. package/dist/trinity/core/device/{Tr2RingBuffer.js → Tr2RingBuffer/Tr2RingBuffer.js} +27 -79
  489. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -0
  490. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js +114 -0
  491. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js.map +1 -0
  492. package/dist/trinity/core/device/{Tr2SuballocatedBuffer.js → Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js} +5 -59
  493. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js.map +1 -0
  494. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js +80 -0
  495. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js.map +1 -0
  496. package/dist/trinity/core/index.js +42 -15
  497. package/dist/trinity/core/index.js.map +1 -1
  498. package/dist/trinity/core/lighting/Tr2LightManager.js +6 -1
  499. package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
  500. package/dist/trinity/core/mesh/{ITr2ImpostorSource.js → ITr2ImpostorSource/ITr2ImpostorSource.js} +6 -28
  501. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -0
  502. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js +32 -0
  503. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js.map +1 -0
  504. package/dist/trinity/core/mesh/{ITr2InstanceData.js → ITr2InstanceData/ITr2InstanceData.js} +5 -29
  505. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -0
  506. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js +33 -0
  507. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js.map +1 -0
  508. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +2 -1
  509. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
  510. package/dist/trinity/core/mesh/Tr2MeshBase.js +7 -1
  511. package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
  512. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +2 -1
  513. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
  514. package/dist/trinity/core/mesh/TriGeometryResAllocations.js +6 -2
  515. package/dist/trinity/core/mesh/TriGeometryResAllocations.js.map +1 -1
  516. package/dist/trinity/core/rawData/CjsConstantLayout.js +196 -0
  517. package/dist/trinity/core/rawData/CjsConstantLayout.js.map +1 -0
  518. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js +8 -3
  519. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js.map +1 -1
  520. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js +40 -732
  521. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js.map +1 -1
  522. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js +34 -0
  523. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js.map +1 -0
  524. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js +69 -0
  525. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js.map +1 -0
  526. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js +59 -0
  527. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js.map +1 -0
  528. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js +37 -0
  529. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js.map +1 -0
  530. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js +44 -0
  531. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js.map +1 -0
  532. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js +31 -0
  533. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js.map +1 -0
  534. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js +29 -0
  535. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js.map +1 -0
  536. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js +39 -0
  537. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js.map +1 -0
  538. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js +30 -0
  539. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js.map +1 -0
  540. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js +78 -0
  541. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js.map +1 -0
  542. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js +169 -0
  543. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js.map +1 -0
  544. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js +107 -0
  545. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js.map +1 -0
  546. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js +44 -0
  547. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js.map +1 -0
  548. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js +34 -0
  549. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js.map +1 -0
  550. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js +82 -0
  551. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js.map +1 -0
  552. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js +42 -0
  553. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js.map +1 -0
  554. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js +55 -0
  555. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js.map +1 -0
  556. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js +59 -0
  557. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js.map +1 -0
  558. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js +59 -0
  559. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js.map +1 -0
  560. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js +55 -0
  561. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js.map +1 -0
  562. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js +55 -0
  563. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js.map +1 -0
  564. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js +59 -0
  565. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js.map +1 -0
  566. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js +55 -0
  567. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js.map +1 -0
  568. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js +55 -0
  569. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js.map +1 -0
  570. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js +55 -0
  571. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +1 -0
  572. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js +55 -0
  573. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js.map +1 -0
  574. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js +59 -0
  575. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js.map +1 -0
  576. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js +55 -0
  577. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js.map +1 -0
  578. package/dist/trinity/core/rawData/{Tr2PerObjectData.js → perObjectData/Tr2PerObjectData.js} +110 -62
  579. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -0
  580. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +104 -0
  581. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -0
  582. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +87 -0
  583. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -0
  584. package/dist/trinity/core/variable/TriVariable.js +83 -83
  585. package/dist/trinity/core/variable/TriVariable.js.map +1 -1
  586. package/dist/trinity/core/vertex/{Tr2VertexDefinition.js → Tr2VertexDefinition/Tr2VertexDefinition.js} +4 -20
  587. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -0
  588. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js +29 -0
  589. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js.map +1 -0
  590. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +116 -36
  591. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
  592. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +50 -92
  593. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
  594. package/dist/trinity/eve/EveModularObjectModifier.js +9 -5
  595. package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
  596. package/dist/trinity/eve/IEveInheritPropertiesOwner.js +2 -1
  597. package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
  598. package/dist/trinity/eve/IEveSpaceObject2.js +2 -1
  599. package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
  600. package/dist/trinity/eve/IEveTransform.js +2 -1
  601. package/dist/trinity/eve/IEveTransform.js.map +1 -1
  602. package/dist/trinity/eve/attachment/banner/EveBannerSet.js +2 -2
  603. package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
  604. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +109 -133
  605. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
  606. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +40 -0
  607. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -0
  608. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +1 -1
  609. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
  610. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js +2 -14
  611. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js.map +1 -1
  612. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js +18 -0
  613. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js.map +1 -0
  614. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +1 -1
  615. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
  616. package/dist/trinity/eve/attachment/haze/EveHazeSet.js +1 -1
  617. package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
  618. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +1 -1
  619. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
  620. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +2 -2
  621. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
  622. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +1 -1
  623. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
  624. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +4 -2
  625. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
  626. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +143 -139
  627. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  628. package/dist/trinity/eve/camera/EveCamera.js +1 -1
  629. package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
  630. package/dist/trinity/eve/child/EveChildBoosterSet.js +12 -1
  631. package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
  632. package/dist/trinity/eve/child/EveChildCloud2.js +178 -151
  633. package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
  634. package/dist/trinity/eve/child/EveChildContainer.js +141 -141
  635. package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
  636. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +87 -0
  637. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -0
  638. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +46 -0
  639. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -0
  640. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +35 -0
  641. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -0
  642. package/dist/trinity/eve/child/{EveChildInstancedMeshes.js → EveChildInstancedMeshes/EveChildInstancedMeshes.js} +42 -163
  643. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -0
  644. package/dist/trinity/eve/child/EveChildMesh.js +218 -218
  645. package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
  646. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +53 -0
  647. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -0
  648. package/dist/trinity/eve/child/{EveChildPartData.js → EveChildPartData/EveChildPartDataPartData.js} +9 -45
  649. package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -0
  650. package/dist/trinity/eve/child/EveChildParticleSystem.js +30 -29
  651. package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
  652. package/dist/trinity/eve/child/EveChildTransform.js +5 -0
  653. package/dist/trinity/eve/child/EveChildTransform.js.map +1 -1
  654. package/dist/trinity/eve/child/EveChildTurret.js +7 -0
  655. package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
  656. package/dist/trinity/eve/index.js +10 -4
  657. package/dist/trinity/eve/index.js.map +1 -1
  658. package/dist/trinity/eve/lights/Tr2Light.js +5 -0
  659. package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
  660. package/dist/trinity/eve/overlays/overlayBatches.js +6 -1
  661. package/dist/trinity/eve/overlays/overlayBatches.js.map +1 -1
  662. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +4 -4
  663. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
  664. package/dist/trinity/eve/renderable/stretch/EveStretch2.js +76 -71
  665. package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
  666. package/dist/trinity/eve/renderable/stretch/EveStretch3.js +1 -1
  667. package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
  668. package/dist/trinity/eve/spaceObject/EveShip2.js +3 -3
  669. package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
  670. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +408 -407
  671. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  672. package/dist/trinity/eve/ui/EveTacticalOverlay.js +1 -1
  673. package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
  674. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +9 -9
  675. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
  676. package/dist/trinity/eve/ui/lines/EveLineSet.js +27 -25
  677. package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
  678. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +3 -2
  679. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -1
  680. package/dist/trinity/generated/index.js +0 -1
  681. package/dist/trinity/generated/index.js.map +1 -1
  682. package/dist/trinity/generated/trinityCore/index.js +0 -1
  683. package/dist/trinity/generated/trinityCore/index.js.map +1 -1
  684. package/dist/trinity/index.js +59 -23
  685. package/dist/trinity/index.js.map +1 -1
  686. package/dist/trinity/particle/{ITr2GenericEmitter.js → ITr2GenericEmitter/ITr2GenericEmitter.js} +4 -32
  687. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -0
  688. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js +36 -0
  689. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js.map +1 -0
  690. package/dist/trinity/particle/Tr2ParticleSystem.js +4 -2
  691. package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
  692. package/dist/trinity/particle/element/Tr2ParticleElementData.js +15 -4
  693. package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
  694. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +21 -20
  695. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
  696. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +23 -22
  697. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
  698. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +14 -13
  699. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
  700. package/dist/trinity/particle/index.js +2 -1
  701. package/dist/trinity/particle/index.js.map +1 -1
  702. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +7 -1
  703. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
  704. package/dist/trinity/shader/Tr2Effect.js +131 -58
  705. package/dist/trinity/shader/Tr2Effect.js.map +1 -1
  706. package/dist/trinity/shader/Tr2EffectStateManager.js +17 -5
  707. package/dist/trinity/shader/Tr2EffectStateManager.js.map +1 -1
  708. package/dist/trinity/shader/Tr2Material.js +21 -4
  709. package/dist/trinity/shader/Tr2Material.js.map +1 -1
  710. package/dist/trinity/shader/material/Tr2EffectPassParameters.js +4 -1
  711. package/dist/trinity/shader/material/Tr2EffectPassParameters.js.map +1 -1
  712. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +2 -2
  713. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
  714. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js +79 -0
  715. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js.map +1 -0
  716. package/dist/trinityal/{Tr2DeviceResourceAL.js → Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js} +77 -79
  717. package/dist/trinityal/Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js.map +1 -0
  718. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js +24 -0
  719. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js.map +1 -0
  720. package/dist/trinityal/Tr2DrawUPHelper.js +2 -1
  721. package/dist/trinityal/Tr2DrawUPHelper.js.map +1 -1
  722. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js +45 -0
  723. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js.map +1 -0
  724. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js +154 -0
  725. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js.map +1 -0
  726. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js +48 -0
  727. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js.map +1 -0
  728. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js +75 -0
  729. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js.map +1 -0
  730. package/dist/trinityal/{Tr2HalHelperStructures.js → Tr2HalHelperStructures/Tr2TextureSubresource.js} +11 -115
  731. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -0
  732. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js +51 -0
  733. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js.map +1 -0
  734. package/dist/trinityal/{Tr2RenderPassAL.js → Tr2RenderPassAL/Tr2ColorAttachment.js} +5 -28
  735. package/dist/trinityal/Tr2RenderPassAL/Tr2ColorAttachment.js.map +1 -0
  736. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js +38 -0
  737. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js.map +1 -0
  738. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js +80 -0
  739. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js.map +1 -0
  740. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js +76 -0
  741. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js.map +1 -0
  742. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js +96 -0
  743. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -0
  744. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js +196 -0
  745. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js.map +1 -0
  746. package/dist/trinityal/index.js +22 -9
  747. package/dist/trinityal/index.js.map +1 -1
  748. package/dist/trinityal/stub/Tr2BufferALStub.js +86 -141
  749. package/dist/trinityal/stub/Tr2BufferALStub.js.map +1 -1
  750. package/dist/trinityal/stub/Tr2CapsALStub.js +17 -0
  751. package/dist/trinityal/stub/Tr2CapsALStub.js.map +1 -1
  752. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js +57 -41
  753. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js.map +1 -1
  754. package/dist/trinityal/stub/Tr2FenceALStub.js +18 -2
  755. package/dist/trinityal/stub/Tr2FenceALStub.js.map +1 -1
  756. package/dist/trinityal/stub/Tr2GpuTimerALStub.js +97 -0
  757. package/dist/trinityal/stub/Tr2GpuTimerALStub.js.map +1 -0
  758. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js +124 -0
  759. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js.map +1 -0
  760. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js +146 -0
  761. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js.map +1 -0
  762. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js +28 -0
  763. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js.map +1 -0
  764. package/dist/trinityal/stub/{Tr2RenderContextALStub.js → Tr2RenderContextALStub/Tr2RenderContextALStub.js} +70 -75
  765. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -0
  766. package/dist/trinityal/stub/Tr2SamplerStateALStub.js +47 -31
  767. package/dist/trinityal/stub/Tr2SamplerStateALStub.js.map +1 -1
  768. package/dist/trinityal/stub/Tr2ShaderALStub.js +61 -45
  769. package/dist/trinityal/stub/Tr2ShaderALStub.js.map +1 -1
  770. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js +51 -33
  771. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js.map +1 -1
  772. package/dist/trinityal/stub/Tr2SwapChainALStub.js +61 -45
  773. package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
  774. package/dist/trinityal/stub/Tr2TextureALStub.js +188 -171
  775. package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
  776. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js +43 -27
  777. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js.map +1 -1
  778. package/dist/trinityal/stub/{Tr2VideoAdapterInfoALStub.js → Tr2VideoAdapterInfoStub.js} +16 -1
  779. package/dist/trinityal/stub/Tr2VideoAdapterInfoStub.js.map +1 -0
  780. package/dist/trinityal/stub/index.js +8 -4
  781. package/dist/trinityal/stub/index.js.map +1 -1
  782. package/dist/trinityal/vertexLayoutMatch.js +2 -2
  783. package/dist/trinityal/vertexLayoutMatch.js.map +1 -1
  784. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js +105 -90
  785. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js.map +1 -1
  786. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js +17 -0
  787. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js.map +1 -1
  788. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js +15 -0
  789. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js.map +1 -1
  790. package/dist/trinityal/webgpu/CjsWebgpuDevice.js +2 -2
  791. package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
  792. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +900 -938
  793. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
  794. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js +56 -60
  795. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
  796. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js +16 -1
  797. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js.map +1 -1
  798. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js +100 -379
  799. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js.map +1 -1
  800. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js +330 -0
  801. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js.map +1 -0
  802. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +15 -0
  803. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
  804. package/dist/trinityal/webgpu/core/{constantArena.js → CjsWebgpuConstantArena.js} +1 -1
  805. package/dist/trinityal/webgpu/core/CjsWebgpuConstantArena.js.map +1 -0
  806. package/dist/trinityal/webgpu/core/{batchGroups.js → CjsWebgpuEncodeState.js} +1 -1
  807. package/dist/trinityal/webgpu/core/CjsWebgpuEncodeState.js.map +1 -0
  808. package/dist/trinityal/webgpu/core/{perFrameSource.js → CjsWebgpuPerFrameSource.js} +1 -1
  809. package/dist/trinityal/webgpu/core/CjsWebgpuPerFrameSource.js.map +1 -0
  810. package/dist/trinityal/webgpu/core/{pipelineCache.js → CjsWebgpuPipelineCache.js} +1 -1
  811. package/dist/trinityal/webgpu/core/CjsWebgpuPipelineCache.js.map +1 -0
  812. package/dist/trinityal/webgpu/core/{psoDescription.js → CjsWebgpuPsoDescription.js} +2 -2
  813. package/dist/trinityal/webgpu/core/CjsWebgpuPsoDescription.js.map +1 -0
  814. package/dist/trinityal/webgpu/core/{renderTarget.js → CjsWebgpuRenderTarget.js} +1 -1
  815. package/dist/trinityal/webgpu/core/CjsWebgpuRenderTarget.js.map +1 -0
  816. package/dist/trinityal/webgpu/core/{samplerSource.js → CjsWebgpuSamplerSource.js} +1 -1
  817. package/dist/trinityal/webgpu/core/CjsWebgpuSamplerSource.js.map +1 -0
  818. package/dist/trinityal/webgpu/core/{textureSource.js → CjsWebgpuTextureSource.js} +1 -1
  819. package/dist/trinityal/webgpu/core/CjsWebgpuTextureSource.js.map +1 -0
  820. package/dist/trinityal/webgpu/core/{trinityBatchDispatcher.js → CjsWebgpuTrinityBatchDispatcher.js} +4 -4
  821. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchDispatcher.js.map +1 -0
  822. package/dist/trinityal/webgpu/core/{trinityBatchResolver.js → CjsWebgpuTrinityBatchResolver.js} +81 -81
  823. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchResolver.js.map +1 -0
  824. package/dist/trinityal/webgpu/core/{trinityPassEncoder.js → CjsWebgpuTrinityPassEncoder.js} +2 -2
  825. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityPassEncoder.js.map +1 -0
  826. package/dist/trinityal/webgpu/core/{workQueue.js → CjsWebgpuWorkQueue.js} +1 -1
  827. package/dist/trinityal/webgpu/core/CjsWebgpuWorkQueue.js.map +1 -0
  828. package/dist/trinityal/webgpu/internal.js +12 -11
  829. package/dist/trinityal/webgpu/internal.js.map +1 -1
  830. package/docs/audio/reference/classes/trinity.md +44 -34
  831. package/docs/character/architecture.md +276 -0
  832. package/docs/character/reference/character-appearance-plans.md +30 -66
  833. package/docs/character/reference/prepared-libraries.md +14 -30
  834. package/docs/global/reference/api.md +2 -1
  835. package/docs/global/reference/classes/README.md +53 -71
  836. package/docs/global/reference/classes/dropped.md +16 -0
  837. package/docs/resource/README.md +19 -15
  838. package/docs/resource/architecture.md +9 -2
  839. package/docs/resource/concepts/format-capabilities.md +124 -80
  840. package/docs/resource/concepts/shared-format-helpers.md +94 -0
  841. package/docs/resource/formats/README.md +230 -224
  842. package/docs/resource/formats/bitknit2.md +221 -0
  843. package/docs/resource/formats/carbon-effect-container.md +184 -269
  844. package/docs/resource/formats/gr2.md +6 -1
  845. package/docs/resource/formats/schemabound.md +28 -48
  846. package/docs/resource/formats/static.md +70 -97
  847. package/docs/resource/formats/webgl/carbon-constant-layouts.md +8 -8
  848. package/docs/resource/formats/webgl/decl-io.md +165 -256
  849. package/docs/resource/formats/webgl/memory-structured.md +64 -142
  850. package/docs/resource/formats/webgl/texture-sample.md +109 -138
  851. package/docs/resource/formats/webgpu/formats/carbon-webgpu.md +38 -69
  852. package/docs/resource/formats/webgpu/guides/effect-packaging.md +54 -116
  853. package/docs/resource/formats/webgpu/reference/api.md +64 -67
  854. package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +158 -345
  855. package/docs/resource/reference/classes/core.md +256 -236
  856. package/docs/resource/reference/classes/formats.md +1668 -1672
  857. package/docs/resource/reference/workers.md +4 -2
  858. package/docs/sof/reference/classes/core.md +1 -1
  859. package/docs/sof/reference/classes/faction.md +2 -2
  860. package/docs/sof/reference/classes/generic.md +4 -4
  861. package/docs/sof/reference/classes/pattern.md +1 -1
  862. package/docs/sof/reference/classes/shared.md +10 -10
  863. package/docs/trinity/architecture.md +55 -44
  864. package/docs/trinity/concepts/generated-class-lifecycle.md +10 -15
  865. package/docs/trinity/reference/classes/curves-and-utilities.md +496 -506
  866. package/docs/trinity/reference/classes/dropped.md +0 -189
  867. package/docs/trinity/reference/classes/eve-runtime.md +8 -8
  868. package/docs/trinity/reference/classes/generated.md +0 -10
  869. package/docs/trinity/reference/classes/particle.md +2 -2
  870. package/docs/trinity/reference/classes/trinity-core.md +1554 -1256
  871. package/docs/trinity/reference/implementation-status.md +50 -75
  872. package/docs/trinity/reference/main-semantic-extraction.md +13 -17
  873. package/docs/trinityal/reference/classes/README.md +77 -27
  874. package/docs/trinityal/reference/classes/dropped.md +92 -0
  875. package/docs/trinityal/webgpu/README.md +3 -1
  876. package/docs/trinityal/webgpu/architecture.md +121 -228
  877. package/docs/trinityal/webgpu/reference/api.md +5 -5
  878. package/docs/trinityal/webgpu/reference/classes/README.md +13 -13
  879. package/format-notices/gr2/NOTICE +18 -12
  880. package/format-notices/gr2/THIRD-PARTY-NOTICES.md +5 -5
  881. package/package.json +4 -1
  882. package/dist/audio/trinity/audio/AudActionLog.js +0 -173
  883. package/dist/audio/trinity/audio/AudActionLog.js.map +0 -1
  884. package/dist/audio/trinity/audio/AudObstructionOcclusion.js.map +0 -1
  885. package/dist/global/contracts/CjsScriptCallback.js +0 -94
  886. package/dist/global/contracts/CjsScriptCallback.js.map +0 -1
  887. package/dist/trinity/controllers/ITr2Controller.js.map +0 -1
  888. package/dist/trinity/core/Tr2GpuResourcePool.js.map +0 -1
  889. package/dist/trinity/core/Tr2QuadRenderer.js.map +0 -1
  890. package/dist/trinity/core/Tr2TextureArray.js.map +0 -1
  891. package/dist/trinity/core/batch/ITriRenderBatchAccumulator.js.map +0 -1
  892. package/dist/trinity/core/batch/Tr2RenderBatch.js.map +0 -1
  893. package/dist/trinity/core/batch/TriRenderBatchAccumulator.js.map +0 -1
  894. package/dist/trinity/core/context/CjsShadowMapExecutor.js +0 -43
  895. package/dist/trinity/core/context/CjsShadowMapExecutor.js.map +0 -1
  896. package/dist/trinity/core/context/CjsVolumetricsExecutor.js +0 -64
  897. package/dist/trinity/core/context/CjsVolumetricsExecutor.js.map +0 -1
  898. package/dist/trinity/core/context/Tr2VisibilityResults.js +0 -109
  899. package/dist/trinity/core/context/Tr2VisibilityResults.js.map +0 -1
  900. package/dist/trinity/core/device/Tr2RingBuffer.js.map +0 -1
  901. package/dist/trinity/core/device/Tr2SuballocatedBuffer.js.map +0 -1
  902. package/dist/trinity/core/mesh/ITr2ImpostorSource.js.map +0 -1
  903. package/dist/trinity/core/mesh/ITr2InstanceData.js.map +0 -1
  904. package/dist/trinity/core/rawData/Tr2PerObjectData.js.map +0 -1
  905. package/dist/trinity/core/rawData/constantLayout.js +0 -175
  906. package/dist/trinity/core/rawData/constantLayout.js.map +0 -1
  907. package/dist/trinity/core/vertex/Tr2VertexDefinition.js.map +0 -1
  908. package/dist/trinity/eve/child/EveChildInstancedMeshes.js.map +0 -1
  909. package/dist/trinity/eve/child/EveChildPartData.js.map +0 -1
  910. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js +0 -47
  911. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js.map +0 -1
  912. package/dist/trinity/particle/ITr2GenericEmitter.js.map +0 -1
  913. package/dist/trinityal/Tr2DeviceResourceAL.js.map +0 -1
  914. package/dist/trinityal/Tr2HalHelperStructures.js.map +0 -1
  915. package/dist/trinityal/Tr2RenderPassAL.js.map +0 -1
  916. package/dist/trinityal/Tr2ResourceSetAL.js +0 -419
  917. package/dist/trinityal/Tr2ResourceSetAL.js.map +0 -1
  918. package/dist/trinityal/Tr2SamplerDescription.js +0 -72
  919. package/dist/trinityal/Tr2SamplerDescription.js.map +0 -1
  920. package/dist/trinityal/stub/Tr2QueryALStub.js +0 -326
  921. package/dist/trinityal/stub/Tr2QueryALStub.js.map +0 -1
  922. package/dist/trinityal/stub/Tr2RenderContextALStub.js.map +0 -1
  923. package/dist/trinityal/stub/Tr2VideoAdapterInfoALStub.js.map +0 -1
  924. package/dist/trinityal/webgpu/core/batchGroups.js.map +0 -1
  925. package/dist/trinityal/webgpu/core/constantArena.js.map +0 -1
  926. package/dist/trinityal/webgpu/core/perFrameSource.js.map +0 -1
  927. package/dist/trinityal/webgpu/core/pipelineCache.js.map +0 -1
  928. package/dist/trinityal/webgpu/core/psoDescription.js.map +0 -1
  929. package/dist/trinityal/webgpu/core/renderTarget.js.map +0 -1
  930. package/dist/trinityal/webgpu/core/samplerSource.js.map +0 -1
  931. package/dist/trinityal/webgpu/core/textureSource.js.map +0 -1
  932. package/dist/trinityal/webgpu/core/trinityBatchDispatcher.js.map +0 -1
  933. package/dist/trinityal/webgpu/core/trinityBatchResolver.js.map +0 -1
  934. package/dist/trinityal/webgpu/core/trinityPassEncoder.js.map +0 -1
  935. package/dist/trinityal/webgpu/core/workQueue.js.map +0 -1
@@ -1,6 +1,7 @@
1
1
  import { asUint8Array } from '#utils/bytes';
2
2
  import { CjsFormat } from '../../format/CjsFormat.js';
3
- import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues, toJsonValue, probeSupportWithValues, isFLAC, OUTPUT_JSON, OUTPUT_PCM, OUTPUT_RAW } from './core/helpers.js';
3
+ import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues, isFLAC, OUTPUT_JSON, OUTPUT_PCM, OUTPUT_RAW } from './core/helpers.js';
4
+ import { toJsonWithByteSummary } from '../../format/jsonPolicies.js';
4
5
 
5
6
  const FORMAT_NAME = "CjsFlacFormat";
6
7
 
@@ -70,7 +71,7 @@ class CjsFlacFormat extends CjsFormat {
70
71
  * the FLAC format configuration.
71
72
  */
72
73
  ToJSON(value) {
73
- return toJsonValue(value);
74
+ return toJsonWithByteSummary(value);
74
75
  }
75
76
 
76
77
  /** Provides the one-shot FLAC payload reader entry point. */
@@ -95,16 +96,10 @@ class CjsFlacFormat extends CjsFormat {
95
96
  }
96
97
 
97
98
  /** Checks one input against the FLAC decoder capability contract. */
98
- static probeSupport(input, options = {}) {
99
- return probeSupportWithValues(input, normalizeValues(DEFAULT_VALUES, {
100
- inputType: "flac",
101
- ...options
102
- }, FORMAT_NAME));
103
- }
104
99
 
105
100
  /** Provides the one-shot FLAC JSON conversion entry point. */
106
101
  static toJSON(value) {
107
- return toJsonValue(value);
102
+ return toJsonWithByteSummary(value);
108
103
  }
109
104
 
110
105
  /** Checks whether caller-provided bytes carry the expected FLAC signature. */
@@ -1 +1 @@
1
- {"version":3,"file":"CjsFlacFormat.js","sources":["../../../../../src/resource/formats/flac/CjsFlacFormat.js"],"sourcesContent":["import { asUint8Array } from \"#utils/bytes\";\nimport { CjsFormat } from \"../../format/CjsFormat.js\";\nimport {\n DEFAULT_VALUES,\n OUTPUT_JSON,\n OUTPUT_PCM,\n OUTPUT_RAW,\n inspectWithValues,\n isFLAC,\n probeSupportWithValues,\n normalizeValues,\n readWithValues,\n toJsonValue\n} from \"./core/helpers.js\";\n\nconst FORMAT_NAME = \"CjsFlacFormat\";\n\n/**\n * Metadata-only FLAC format profile that validates the stream signature,\n * inspects stream metadata, and emits raw container bytes or debug JSON\n * without decoding PCM.\n */\nexport class CjsFlacFormat extends CjsFormat\n{\n #values = DEFAULT_VALUES;\n\n /** Creates a CjsFlacFormat with caller-provided reader configuration. */\n constructor(options = {})\n {\n super();\n this.SetValues(options);\n }\n\n /**\n * Applies caller-provided options after normalizing supported fields for the\n * FLAC format configuration.\n */\n SetValues(options = {})\n {\n this.#values = normalizeValues(this.#values, { inputType: \"flac\", ...options }, FORMAT_NAME);\n return this;\n }\n\n /**\n * Returns a snapshot of the normalized reader options for the FLAC format\n * configuration.\n */\n GetValues(options = {})\n {\n return normalizeValues(this.#values, { inputType: \"flac\", ...options }, FORMAT_NAME);\n }\n\n /**\n * Reads the primary public payload representation from the supplied input\n * for the FLAC format configuration.\n */\n Read(input, options = {}) { return readWithValues(input, this.GetValues(options)); }\n\n /**\n * Reads the primary public payload representation asynchronously for the\n * FLAC format configuration.\n */\n async ReadAsync(input, options = {}) { return this.Read(input, options); }\n\n /**\n * Returns structural metadata without materializing the decoded payload for\n * the FLAC format configuration.\n */\n Inspect(input, options = {}) { return inspectWithValues(input, this.GetValues(options)); }\n\n /**\n * Converts the current decoded payload into a JSON-safe representation for\n * the FLAC format configuration.\n */\n ToJSON(value) { return toJsonValue(value); }\n\n /** Provides the one-shot FLAC payload reader entry point. */\n static read(input, options = {})\n {\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"flac\", ...options }, FORMAT_NAME));\n }\n\n /** Provides the asynchronous one-shot FLAC payload reader entry point. */\n static async readAsync(input, options = {}) { return CjsFlacFormat.read(input, options); }\n\n /** Provides the one-shot FLAC metadata inspection entry point. */\n static inspect(input, options = {})\n {\n return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"flac\", ...options }, FORMAT_NAME));\n }\n\n /** Checks one input against the FLAC decoder capability contract. */\n static probeSupport(input, options = {})\n {\n return probeSupportWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"flac\", ...options }, FORMAT_NAME));\n }\n\n /** Provides the one-shot FLAC JSON conversion entry point. */\n static toJSON(value) { return toJsonValue(value); }\n\n /** Checks whether caller-provided bytes carry the expected FLAC signature. */\n static isFLAC(input)\n {\n try { return isFLAC(asUint8Array(input, \"FLAC input\")); }\n catch { return false; }\n }\n\n /**\n * Emit targets for this format (canonical frozen enum).\n */\n static Output = Object.freeze({\n RAW: OUTPUT_RAW,\n PCM: OUTPUT_PCM,\n JSON: OUTPUT_JSON\n });\n static OUTPUT_FLAC_JSON = \"flacJson\";\n static id = \"flac\";\n static mediaTypes = Object.freeze([ \"audio\" ]);\n static outputs = CjsFormat.defineOutputs({\n flacJson: { role: \"debug\", probes: [ \"flacJson\", \"raw\" ] },\n raw: { role: \"debug\", default: true, passthrough: true }\n });\n static extensions = Object.freeze([ \".flac\" ]);\n}\n\nexport default CjsFlacFormat;\n"],"names":["FORMAT_NAME","CjsFlacFormat","CjsFormat","DEFAULT_VALUES","constructor","options","SetValues","normalizeValues","inputType","GetValues","Read","input","readWithValues","ReadAsync","Inspect","inspectWithValues","ToJSON","value","toJsonValue","read","readAsync","inspect","probeSupport","probeSupportWithValues","toJSON","isFLAC","asUint8Array","Output","Object","freeze","RAW","OUTPUT_RAW","PCM","OUTPUT_PCM","JSON","OUTPUT_JSON","OUTPUT_FLAC_JSON","id","mediaTypes","outputs","defineOutputs","flacJson","role","probes","raw","default","passthrough","extensions"],"mappings":"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"}
1
+ {"version":3,"file":"CjsFlacFormat.js","sources":["../../../../../src/resource/formats/flac/CjsFlacFormat.js"],"sourcesContent":["import { asUint8Array } from \"#utils/bytes\";\nimport { CjsFormat } from \"../../format/CjsFormat.js\";\nimport {\n DEFAULT_VALUES,\n OUTPUT_JSON,\n OUTPUT_PCM,\n OUTPUT_RAW,\n inspectWithValues,\n isFLAC,\n probeSupportWithValues,\n normalizeValues,\n readWithValues,\n toJsonValue\n} from \"./core/helpers.js\";\n\nconst FORMAT_NAME = \"CjsFlacFormat\";\n\n/**\n * Metadata-only FLAC format profile that validates the stream signature,\n * inspects stream metadata, and emits raw container bytes or debug JSON\n * without decoding PCM.\n */\nexport class CjsFlacFormat extends CjsFormat\n{\n #values = DEFAULT_VALUES;\n\n /** Creates a CjsFlacFormat with caller-provided reader configuration. */\n constructor(options = {})\n {\n super();\n this.SetValues(options);\n }\n\n /**\n * Applies caller-provided options after normalizing supported fields for the\n * FLAC format configuration.\n */\n SetValues(options = {})\n {\n this.#values = normalizeValues(this.#values, { inputType: \"flac\", ...options }, FORMAT_NAME);\n return this;\n }\n\n /**\n * Returns a snapshot of the normalized reader options for the FLAC format\n * configuration.\n */\n GetValues(options = {})\n {\n return normalizeValues(this.#values, { inputType: \"flac\", ...options }, FORMAT_NAME);\n }\n\n /**\n * Reads the primary public payload representation from the supplied input\n * for the FLAC format configuration.\n */\n Read(input, options = {}) { return readWithValues(input, this.GetValues(options)); }\n\n /**\n * Reads the primary public payload representation asynchronously for the\n * FLAC format configuration.\n */\n async ReadAsync(input, options = {}) { return this.Read(input, options); }\n\n /**\n * Returns structural metadata without materializing the decoded payload for\n * the FLAC format configuration.\n */\n Inspect(input, options = {}) { return inspectWithValues(input, this.GetValues(options)); }\n\n /**\n * Converts the current decoded payload into a JSON-safe representation for\n * the FLAC format configuration.\n */\n ToJSON(value) { return toJsonValue(value); }\n\n /** Provides the one-shot FLAC payload reader entry point. */\n static read(input, options = {})\n {\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"flac\", ...options }, FORMAT_NAME));\n }\n\n /** Provides the asynchronous one-shot FLAC payload reader entry point. */\n static async readAsync(input, options = {}) { return CjsFlacFormat.read(input, options); }\n\n /** Provides the one-shot FLAC metadata inspection entry point. */\n static inspect(input, options = {})\n {\n return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"flac\", ...options }, FORMAT_NAME));\n }\n\n /** Checks one input against the FLAC decoder capability contract. */\n\n /** Provides the one-shot FLAC JSON conversion entry point. */\n static toJSON(value) { return toJsonValue(value); }\n\n /** Checks whether caller-provided bytes carry the expected FLAC signature. */\n static isFLAC(input)\n {\n try { return isFLAC(asUint8Array(input, \"FLAC input\")); }\n catch { return false; }\n }\n\n /**\n * Emit targets for this format (canonical frozen enum).\n */\n static Output = Object.freeze({\n RAW: OUTPUT_RAW,\n PCM: OUTPUT_PCM,\n JSON: OUTPUT_JSON\n });\n static OUTPUT_FLAC_JSON = \"flacJson\";\n static id = \"flac\";\n static mediaTypes = Object.freeze([ \"audio\" ]);\n static outputs = CjsFormat.defineOutputs({\n flacJson: { role: \"debug\", probes: [ \"flacJson\", \"raw\" ] },\n raw: { role: \"debug\", default: true, passthrough: true }\n });\n static extensions = Object.freeze([ \".flac\" ]);\n}\n\nexport default CjsFlacFormat;\n"],"names":["FORMAT_NAME","CjsFlacFormat","CjsFormat","DEFAULT_VALUES","constructor","options","SetValues","normalizeValues","inputType","GetValues","Read","input","readWithValues","ReadAsync","Inspect","inspectWithValues","ToJSON","value","toJsonValue","read","readAsync","inspect","toJSON","isFLAC","asUint8Array","Output","Object","freeze","RAW","OUTPUT_RAW","PCM","OUTPUT_PCM","JSON","OUTPUT_JSON","OUTPUT_FLAC_JSON","id","mediaTypes","outputs","defineOutputs","flacJson","role","probes","raw","default","passthrough","extensions"],"mappings":"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"}
@@ -47,53 +47,6 @@ function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = "") {
47
47
  };
48
48
  }
49
49
 
50
- /**
51
- * Reports whether input is supported under normalized format options for the
52
- * FLAC format reader.
53
- */
54
- function probeSupportWithValues(input, values = DEFAULT_VALUES, expectedType = "") {
55
- try {
56
- const metadata = inspectWithValues(input, values, expectedType);
57
- return {
58
- format: "flac",
59
- source: values.source || "buffer",
60
- supported: "partial",
61
- confidence: 1,
62
- preferredOutput: "raw",
63
- reason: "FLAC metadata and raw source are recognized; PCM decoding remains a backend/decoder task.",
64
- metadata,
65
- variants: [{
66
- kind: "raw",
67
- payloadType: "raw",
68
- codec: "flac",
69
- mimeType: "audio/flac",
70
- supported: true
71
- }, {
72
- kind: "pcm",
73
- payloadType: "pcm",
74
- codec: "pcm",
75
- supported: false,
76
- reason: "FLAC PCM decode/output is not implemented in this package."
77
- }],
78
- warnings: [],
79
- errors: []
80
- };
81
- } catch (error) {
82
- return {
83
- format: expectedType || values.inputType || "flac",
84
- source: values.source || "buffer",
85
- supported: "none",
86
- confidence: 0,
87
- preferredOutput: "",
88
- reason: error.message,
89
- metadata: null,
90
- variants: [],
91
- warnings: [],
92
- errors: [error.message]
93
- };
94
- }
95
- }
96
-
97
50
  /** Reads input using normalized format options for the FLAC format reader. */
98
51
  function readWithValues(input, values = DEFAULT_VALUES, expectedType = "") {
99
52
  const bytes = asUint8Array(input, "FLAC input");
@@ -114,20 +67,6 @@ function readWithValues(input, values = DEFAULT_VALUES, expectedType = "") {
114
67
  bytes
115
68
  };
116
69
  }
117
-
118
- /** Converts a parsed payload into a JSON-safe value for the FLAC format reader. */
119
- function toJsonValue(value) {
120
- if (value instanceof Uint8Array) return {
121
- byteLength: value.byteLength
122
- };
123
- if (Array.isArray(value)) return value.map(toJsonValue);
124
- if (value && typeof value === "object") {
125
- const output = {};
126
- for (const [key, entry] of Object.entries(value)) output[key] = toJsonValue(entry);
127
- return output;
128
- }
129
- return value;
130
- }
131
70
  function inspectBytes(bytes) {
132
71
  const blocks = [];
133
72
  let offset = 4;
@@ -288,5 +227,5 @@ function readU64BE(bytes, offset) {
288
227
  return high > 0x1fffff ? null : high * 0x100000000 + low;
289
228
  }
290
229
 
291
- export { DEFAULT_VALUES, OUTPUT_JSON, OUTPUT_PCM, OUTPUT_RAW, inspectWithValues, isFLAC, normalizeValues, probeSupportWithValues, readWithValues, toJsonValue };
230
+ export { DEFAULT_VALUES, OUTPUT_JSON, OUTPUT_PCM, OUTPUT_RAW, inspectWithValues, isFLAC, normalizeValues, readWithValues };
292
231
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/flac/core/helpers.js"],"sourcesContent":["import { asUint8Array, readU16BE, readU24BE, readU32BE, readU32LE } from \"#utils/bytes\";\n\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_PCM = \"pcm\";\nexport const OUTPUT_JSON = \"json\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_RAW,\n inputType: \"\",\n source: \"\"\n});\n\nconst DEBUG_OUTPUT = \"flacJson\";\n\n/**\n * Normalizes reader options against their supported defaults for the FLAC format\n * reader.\n */\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsFlacFormat\")\n{\n const values = { ...DEFAULT_VALUES, ...(base || {}), ...(options || {}) };\n values.inputType = values.inputType ? String(values.inputType).replace(/^\\./u, \"\").toLowerCase() : \"\";\n if (![ OUTPUT_RAW, OUTPUT_PCM, OUTPUT_JSON, DEBUG_OUTPUT ].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 FLAC format reader. */\r/** Reports whether the current FLAC format reader satisfies FLAC. */\nexport function isFLAC(bytes)\n{\n return bytes.byteLength >= 4 && bytes[0] === 0x66 && bytes[1] === 0x4c && bytes[2] === 0x61 && bytes[3] === 0x43;\n}\n\n/** Inspects input using normalized format options for the FLAC format reader. */\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = asUint8Array(input, \"FLAC input\");\n if (!isFLAC(bytes)) throw new TypeError(\"CjsFlacFormat: input is not a FLAC stream\");\n const sourceFormat = expectedType || values.inputType || \"flac\";\n if (sourceFormat !== \"flac\") throw new TypeError(`CjsFlacFormat: expected ${sourceFormat}, got flac`);\n return { payloadType: \"audio\", mediaTypes: [ \"audio\" ], byteLength: bytes.byteLength, ...inspectBytes(bytes) };\n}\n\n/**\n * Reports whether input is supported under normalized format options for the\n * FLAC format reader.\n */\nexport function probeSupportWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n try\n {\n const metadata = inspectWithValues(input, values, expectedType);\n return {\n format: \"flac\",\n source: values.source || \"buffer\",\n supported: \"partial\",\n confidence: 1,\n preferredOutput: \"raw\",\n reason: \"FLAC metadata and raw source are recognized; PCM decoding remains a backend/decoder task.\",\n metadata,\n variants: [\n {\n kind: \"raw\",\n payloadType: \"raw\",\n codec: \"flac\",\n mimeType: \"audio/flac\",\n supported: true,\n },\n { kind: \"pcm\", payloadType: \"pcm\", codec: \"pcm\", supported: false, reason: \"FLAC PCM decode/output is not implemented in this package.\" }\n ],\n warnings: [],\n errors: []\n };\n }\n catch (error)\n {\n return {\n format: expectedType || values.inputType || \"flac\",\n source: values.source || \"buffer\",\n supported: \"none\",\n confidence: 0,\n preferredOutput: \"\",\n reason: error.message,\n metadata: null,\n variants: [],\n warnings: [],\n errors: [ error.message ]\n };\n }\n}\n\n/** Reads input using normalized format options for the FLAC format reader. */\nexport function readWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = asUint8Array(input, \"FLAC input\");\n const metadata = inspectWithValues(bytes, values, expectedType);\n if (values.emit === OUTPUT_JSON || values.emit === DEBUG_OUTPUT) return metadata;\n if (values.emit === OUTPUT_PCM)\n {\n const error = new Error(\"flac: PCM decode/output is not implemented in this package\");\n error.code = \"CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED\";\n error.sourceFormat = \"flac\";\n error.emit = values.emit;\n throw error;\n }\n return {\n payloadType: OUTPUT_RAW,\n sourceFormat: \"flac\",\n mimeType: \"audio/flac\",\n metadata,\n bytes\n };\n}\n\n/** Converts a parsed payload into a JSON-safe value for the FLAC 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 inspectBytes(bytes)\n{\n const blocks = [];\n let offset = 4;\n let streamInfo = null;\n let comments = null;\n let seekTable = [];\n const pictures = [];\n let hasLastMetadataBlock = false;\n while (offset + 4 <= bytes.byteLength)\n {\n const header = bytes[offset];\n const type = header & 0x7f;\n const isLast = !!(header & 0x80);\n const length = readU24BE(bytes, offset + 1);\n const dataStart = offset + 4;\n const end = dataStart + length;\n if (end > bytes.byteLength) throw new Error(`FLAC metadata block ${type} is truncated`);\n const block = { type, isLast, offset, byteLength: length };\n if (type === 0)\n {\n if (length < 34) throw new Error(\"FLAC STREAMINFO block is truncated\");\n streamInfo = readStreamInfo(bytes, dataStart);\n Object.assign(block, streamInfo);\n }\n else if (type === 4)\n {\n comments = readVorbisComment(bytes, dataStart, end);\n Object.assign(block, { vendor: comments.vendor, comments: comments.comments });\n }\n else if (type === 3)\n {\n seekTable = readSeekTable(bytes, dataStart, length);\n block.points = seekTable;\n }\n else if (type === 6)\n {\n const picture = readPicture(bytes, dataStart, end);\n pictures.push(picture);\n Object.assign(block, picture);\n }\n blocks.push(block);\n offset = end;\n if (isLast)\n {\n hasLastMetadataBlock = true;\n break;\n }\n }\n if (!streamInfo) throw new Error(\"FLAC stream has no STREAMINFO block\");\n return {\n sourceFormat: \"flac\",\n container: \"flac\",\n audioFormat: \"flac\",\n sampleRate: streamInfo.sampleRate,\n channels: streamInfo.channels,\n bitsPerSample: streamInfo.bitsPerSample,\n totalSamples: streamInfo.totalSamples,\n durationSamples: streamInfo.totalSamples,\n durationSeconds: streamInfo.sampleRate ? streamInfo.totalSamples / streamInfo.sampleRate : 0,\n streamInfo,\n comments,\n seekTable,\n pictures,\n metadataBlockCount: blocks.length,\n hasLastMetadataBlock,\n audioDataOffset: offset,\n audioDataBytes: Math.max(0, bytes.byteLength - offset),\n metadataBlocks: blocks\n };\n}\n\nfunction readStreamInfo(bytes, offset)\n{\n const sampleRate = bytes[offset + 10] * 4096 + bytes[offset + 11] * 16 + (bytes[offset + 12] >> 4);\n const channels = ((bytes[offset + 12] >> 1) & 0x07) + 1;\n const bitsPerSample = (((bytes[offset + 12] & 1) << 4) | (bytes[offset + 13] >> 4)) + 1;\n const totalSamples = (bytes[offset + 13] & 0x0f) * 0x100000000 + readU32BE(bytes, offset + 14);\n return {\n minBlockSize: readU16BE(bytes, offset),\n maxBlockSize: readU16BE(bytes, offset + 2),\n minFrameSize: readU24BE(bytes, offset + 4),\n maxFrameSize: readU24BE(bytes, offset + 7),\n sampleRate,\n channels,\n bitsPerSample,\n totalSamples,\n md5: Array.from(bytes.subarray(offset + 18, offset + 34), (value) => value.toString(16).padStart(2, \"0\")).join(\"\")\n };\n}\n\nfunction readVorbisComment(bytes, start, end)\n{\n let offset = start;\n if (offset + 8 > end) throw new Error(\"FLAC Vorbis comment block is truncated\");\n const vendorLength = readU32LE(bytes, offset);\n offset += 4;\n if (offset + vendorLength + 4 > end) throw new Error(\"FLAC Vorbis vendor string is truncated\");\n const vendor = new TextDecoder().decode(bytes.subarray(offset, offset + vendorLength));\n offset += vendorLength;\n const count = readU32LE(bytes, offset);\n offset += 4;\n const result = [];\n for (let index = 0; index < count; index++)\n {\n if (offset + 4 > end) throw new Error(\"FLAC Vorbis comment list is truncated\");\n const length = readU32LE(bytes, offset);\n offset += 4;\n if (offset + length > end) throw new Error(\"FLAC Vorbis comment is truncated\");\n result.push(new TextDecoder().decode(bytes.subarray(offset, offset + length)));\n offset += length;\n }\n return { vendor, comments: result };\n}\n\nfunction readSeekTable(bytes, start, length)\n{\n if (length % 18 !== 0) throw new Error(\"FLAC SEEKTABLE block has an invalid length\");\n const points = [];\n for (let offset = start; offset < start + length; offset += 18)\n {\n points.push({\n sampleNumber: readU64BE(bytes, offset),\n offset: readU64BE(bytes, offset + 8),\n numberSamples: readU16BE(bytes, offset + 16)\n });\n }\n return points;\n}\n\nfunction readPicture(bytes, start, end)\n{\n let offset = start;\n if (offset + 4 > end) throw new Error(\"FLAC picture block is truncated\");\n const pictureType = readU32BE(bytes, offset);\n offset += 4;\n const mimeLength = readU32BE(bytes, offset);\n offset += 4;\n if (offset + mimeLength + 4 > end) throw new Error(\"FLAC picture MIME type is truncated\");\n const mimeType = new TextDecoder().decode(bytes.subarray(offset, offset + mimeLength));\n offset += mimeLength;\n const descriptionLength = readU32BE(bytes, offset);\n offset += 4;\n if (offset + descriptionLength + 20 > end) throw new Error(\"FLAC picture description is truncated\");\n const description = new TextDecoder().decode(bytes.subarray(offset, offset + descriptionLength));\n offset += descriptionLength;\n const width = readU32BE(bytes, offset);\n const height = readU32BE(bytes, offset + 4);\n const colorDepth = readU32BE(bytes, offset + 8);\n const colors = readU32BE(bytes, offset + 12);\n const dataLength = readU32BE(bytes, offset + 16);\n if (offset + 20 + dataLength > end) throw new Error(\"FLAC picture data is truncated\");\n return { pictureType, mimeType, description, width, height, colorDepth, colors, dataByteLength: dataLength };\n}\n\nfunction readU64BE(bytes, offset)\n{\n const high = readU32BE(bytes, offset);\n const low = readU32BE(bytes, offset + 4);\n return high > 0x1fffff ? null : high * 0x100000000 + low;\n}\n\n"],"names":["OUTPUT_RAW","OUTPUT_PCM","OUTPUT_JSON","DEFAULT_VALUES","Object","freeze","emit","inputType","source","DEBUG_OUTPUT","normalizeValues","base","options","readerName","values","String","replace","toLowerCase","includes","TypeError","JSON","stringify","isFLAC","bytes","byteLength","inspectWithValues","input","expectedType","asUint8Array","sourceFormat","payloadType","mediaTypes","inspectBytes","probeSupportWithValues","metadata","format","supported","confidence","preferredOutput","reason","variants","kind","codec","mimeType","warnings","errors","error","message","readWithValues","Error","code","toJsonValue","value","Uint8Array","Array","isArray","map","output","key","entry","entries","blocks","offset","streamInfo","comments","seekTable","pictures","hasLastMetadataBlock","header","type","isLast","length","readU24BE","dataStart","end","block","readStreamInfo","assign","readVorbisComment","vendor","readSeekTable","points","picture","readPicture","push","container","audioFormat","sampleRate","channels","bitsPerSample","totalSamples","durationSamples","durationSeconds","metadataBlockCount","audioDataOffset","audioDataBytes","Math","max","metadataBlocks","readU32BE","minBlockSize","readU16BE","maxBlockSize","minFrameSize","maxFrameSize","md5","from","subarray","toString","padStart","join","start","vendorLength","readU32LE","TextDecoder","decode","count","result","index","sampleNumber","readU64BE","numberSamples","pictureType","mimeLength","descriptionLength","description","width","height","colorDepth","colors","dataLength","dataByteLength","high","low"],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/flac/core/helpers.js"],"sourcesContent":["import { toJsonWithByteSummary as toJsonValue } from \"../../../format/jsonPolicies.js\";\nimport { asUint8Array, readU16BE, readU24BE, readU32BE, readU32LE } from \"#utils/bytes\";\n\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_PCM = \"pcm\";\nexport const OUTPUT_JSON = \"json\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_RAW,\n inputType: \"\",\n source: \"\"\n});\n\nconst DEBUG_OUTPUT = \"flacJson\";\n\n/**\n * Normalizes reader options against their supported defaults for the FLAC format\n * reader.\n */\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsFlacFormat\")\n{\n const values = { ...DEFAULT_VALUES, ...(base || {}), ...(options || {}) };\n values.inputType = values.inputType ? String(values.inputType).replace(/^\\./u, \"\").toLowerCase() : \"\";\n if (![ OUTPUT_RAW, OUTPUT_PCM, OUTPUT_JSON, DEBUG_OUTPUT ].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 FLAC format reader. */\n/** Reports whether the current FLAC format reader satisfies FLAC. */\nexport function isFLAC(bytes)\n{\n return bytes.byteLength >= 4 && bytes[0] === 0x66 && bytes[1] === 0x4c && bytes[2] === 0x61 && bytes[3] === 0x43;\n}\n\n/** Inspects input using normalized format options for the FLAC format reader. */\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = asUint8Array(input, \"FLAC input\");\n if (!isFLAC(bytes)) throw new TypeError(\"CjsFlacFormat: input is not a FLAC stream\");\n const sourceFormat = expectedType || values.inputType || \"flac\";\n if (sourceFormat !== \"flac\") throw new TypeError(`CjsFlacFormat: expected ${sourceFormat}, got flac`);\n return { payloadType: \"audio\", mediaTypes: [ \"audio\" ], byteLength: bytes.byteLength, ...inspectBytes(bytes) };\n}\n\n/**\n * Reports whether input is supported under normalized format options for the\n * FLAC format reader.\n */\nexport function probeSupportWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n try\n {\n const metadata = inspectWithValues(input, values, expectedType);\n return {\n format: \"flac\",\n source: values.source || \"buffer\",\n supported: \"partial\",\n confidence: 1,\n preferredOutput: \"raw\",\n reason: \"FLAC metadata and raw source are recognized; PCM decoding remains a backend/decoder task.\",\n metadata,\n variants: [\n {\n kind: \"raw\",\n payloadType: \"raw\",\n codec: \"flac\",\n mimeType: \"audio/flac\",\n supported: true,\n },\n { kind: \"pcm\", payloadType: \"pcm\", codec: \"pcm\", supported: false, reason: \"FLAC PCM decode/output is not implemented in this package.\" }\n ],\n warnings: [],\n errors: []\n };\n }\n catch (error)\n {\n return {\n format: expectedType || values.inputType || \"flac\",\n source: values.source || \"buffer\",\n supported: \"none\",\n confidence: 0,\n preferredOutput: \"\",\n reason: error.message,\n metadata: null,\n variants: [],\n warnings: [],\n errors: [ error.message ]\n };\n }\n}\n\n/** Reads input using normalized format options for the FLAC format reader. */\nexport function readWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = asUint8Array(input, \"FLAC input\");\n const metadata = inspectWithValues(bytes, values, expectedType);\n if (values.emit === OUTPUT_JSON || values.emit === DEBUG_OUTPUT) return metadata;\n if (values.emit === OUTPUT_PCM)\n {\n const error = new Error(\"flac: PCM decode/output is not implemented in this package\");\n error.code = \"CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED\";\n error.sourceFormat = \"flac\";\n error.emit = values.emit;\n throw error;\n }\n return {\n payloadType: OUTPUT_RAW,\n sourceFormat: \"flac\",\n mimeType: \"audio/flac\",\n metadata,\n bytes\n };\n}\n\n/** Converts a parsed payload into a JSON-safe value for the FLAC format reader. */\n/** The shared JSON policy for this reader, under the name its callers use. */\nexport { toJsonValue };\n\nfunction inspectBytes(bytes)\n{\n const blocks = [];\n let offset = 4;\n let streamInfo = null;\n let comments = null;\n let seekTable = [];\n const pictures = [];\n let hasLastMetadataBlock = false;\n while (offset + 4 <= bytes.byteLength)\n {\n const header = bytes[offset];\n const type = header & 0x7f;\n const isLast = !!(header & 0x80);\n const length = readU24BE(bytes, offset + 1);\n const dataStart = offset + 4;\n const end = dataStart + length;\n if (end > bytes.byteLength) throw new Error(`FLAC metadata block ${type} is truncated`);\n const block = { type, isLast, offset, byteLength: length };\n if (type === 0)\n {\n if (length < 34) throw new Error(\"FLAC STREAMINFO block is truncated\");\n streamInfo = readStreamInfo(bytes, dataStart);\n Object.assign(block, streamInfo);\n }\n else if (type === 4)\n {\n comments = readVorbisComment(bytes, dataStart, end);\n Object.assign(block, { vendor: comments.vendor, comments: comments.comments });\n }\n else if (type === 3)\n {\n seekTable = readSeekTable(bytes, dataStart, length);\n block.points = seekTable;\n }\n else if (type === 6)\n {\n const picture = readPicture(bytes, dataStart, end);\n pictures.push(picture);\n Object.assign(block, picture);\n }\n blocks.push(block);\n offset = end;\n if (isLast)\n {\n hasLastMetadataBlock = true;\n break;\n }\n }\n if (!streamInfo) throw new Error(\"FLAC stream has no STREAMINFO block\");\n return {\n sourceFormat: \"flac\",\n container: \"flac\",\n audioFormat: \"flac\",\n sampleRate: streamInfo.sampleRate,\n channels: streamInfo.channels,\n bitsPerSample: streamInfo.bitsPerSample,\n totalSamples: streamInfo.totalSamples,\n durationSamples: streamInfo.totalSamples,\n durationSeconds: streamInfo.sampleRate ? streamInfo.totalSamples / streamInfo.sampleRate : 0,\n streamInfo,\n comments,\n seekTable,\n pictures,\n metadataBlockCount: blocks.length,\n hasLastMetadataBlock,\n audioDataOffset: offset,\n audioDataBytes: Math.max(0, bytes.byteLength - offset),\n metadataBlocks: blocks\n };\n}\n\nfunction readStreamInfo(bytes, offset)\n{\n const sampleRate = bytes[offset + 10] * 4096 + bytes[offset + 11] * 16 + (bytes[offset + 12] >> 4);\n const channels = ((bytes[offset + 12] >> 1) & 0x07) + 1;\n const bitsPerSample = (((bytes[offset + 12] & 1) << 4) | (bytes[offset + 13] >> 4)) + 1;\n const totalSamples = (bytes[offset + 13] & 0x0f) * 0x100000000 + readU32BE(bytes, offset + 14);\n return {\n minBlockSize: readU16BE(bytes, offset),\n maxBlockSize: readU16BE(bytes, offset + 2),\n minFrameSize: readU24BE(bytes, offset + 4),\n maxFrameSize: readU24BE(bytes, offset + 7),\n sampleRate,\n channels,\n bitsPerSample,\n totalSamples,\n md5: Array.from(bytes.subarray(offset + 18, offset + 34), (value) => value.toString(16).padStart(2, \"0\")).join(\"\")\n };\n}\n\nfunction readVorbisComment(bytes, start, end)\n{\n let offset = start;\n if (offset + 8 > end) throw new Error(\"FLAC Vorbis comment block is truncated\");\n const vendorLength = readU32LE(bytes, offset);\n offset += 4;\n if (offset + vendorLength + 4 > end) throw new Error(\"FLAC Vorbis vendor string is truncated\");\n const vendor = new TextDecoder().decode(bytes.subarray(offset, offset + vendorLength));\n offset += vendorLength;\n const count = readU32LE(bytes, offset);\n offset += 4;\n const result = [];\n for (let index = 0; index < count; index++)\n {\n if (offset + 4 > end) throw new Error(\"FLAC Vorbis comment list is truncated\");\n const length = readU32LE(bytes, offset);\n offset += 4;\n if (offset + length > end) throw new Error(\"FLAC Vorbis comment is truncated\");\n result.push(new TextDecoder().decode(bytes.subarray(offset, offset + length)));\n offset += length;\n }\n return { vendor, comments: result };\n}\n\nfunction readSeekTable(bytes, start, length)\n{\n if (length % 18 !== 0) throw new Error(\"FLAC SEEKTABLE block has an invalid length\");\n const points = [];\n for (let offset = start; offset < start + length; offset += 18)\n {\n points.push({\n sampleNumber: readU64BE(bytes, offset),\n offset: readU64BE(bytes, offset + 8),\n numberSamples: readU16BE(bytes, offset + 16)\n });\n }\n return points;\n}\n\nfunction readPicture(bytes, start, end)\n{\n let offset = start;\n if (offset + 4 > end) throw new Error(\"FLAC picture block is truncated\");\n const pictureType = readU32BE(bytes, offset);\n offset += 4;\n const mimeLength = readU32BE(bytes, offset);\n offset += 4;\n if (offset + mimeLength + 4 > end) throw new Error(\"FLAC picture MIME type is truncated\");\n const mimeType = new TextDecoder().decode(bytes.subarray(offset, offset + mimeLength));\n offset += mimeLength;\n const descriptionLength = readU32BE(bytes, offset);\n offset += 4;\n if (offset + descriptionLength + 20 > end) throw new Error(\"FLAC picture description is truncated\");\n const description = new TextDecoder().decode(bytes.subarray(offset, offset + descriptionLength));\n offset += descriptionLength;\n const width = readU32BE(bytes, offset);\n const height = readU32BE(bytes, offset + 4);\n const colorDepth = readU32BE(bytes, offset + 8);\n const colors = readU32BE(bytes, offset + 12);\n const dataLength = readU32BE(bytes, offset + 16);\n if (offset + 20 + dataLength > end) throw new Error(\"FLAC picture data is truncated\");\n return { pictureType, mimeType, description, width, height, colorDepth, colors, dataByteLength: dataLength };\n}\n\nfunction readU64BE(bytes, offset)\n{\n const high = readU32BE(bytes, offset);\n const low = readU32BE(bytes, offset + 4);\n return high > 0x1fffff ? null : high * 0x100000000 + low;\n}\n\n"],"names":["OUTPUT_RAW","OUTPUT_PCM","OUTPUT_JSON","DEFAULT_VALUES","Object","freeze","emit","inputType","source","DEBUG_OUTPUT","normalizeValues","base","options","readerName","values","String","replace","toLowerCase","includes","TypeError","JSON","stringify","isFLAC","bytes","byteLength","inspectWithValues","input","expectedType","asUint8Array","sourceFormat","payloadType","mediaTypes","inspectBytes","readWithValues","metadata","error","Error","code","mimeType","blocks","offset","streamInfo","comments","seekTable","pictures","hasLastMetadataBlock","header","type","isLast","length","readU24BE","dataStart","end","block","readStreamInfo","assign","readVorbisComment","vendor","readSeekTable","points","picture","readPicture","push","container","audioFormat","sampleRate","channels","bitsPerSample","totalSamples","durationSamples","durationSeconds","metadataBlockCount","audioDataOffset","audioDataBytes","Math","max","metadataBlocks","readU32BE","minBlockSize","readU16BE","maxBlockSize","minFrameSize","maxFrameSize","md5","Array","from","subarray","value","toString","padStart","join","start","vendorLength","readU32LE","TextDecoder","decode","count","result","index","sampleNumber","readU64BE","numberSamples","pictureType","mimeLength","descriptionLength","description","width","height","colorDepth","colors","dataLength","dataByteLength","high","low"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { asUint8Array } from '#utils/bytes';
2
2
  import { CjsFormat } from '../../format/CjsFormat.js';
3
- import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues, toJsonValue, probeSupportWithValues, isGIF, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_RGBA, OUTPUT_IMAGE } from './core/helpers.js';
3
+ import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues, isGIF, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_RGBA, OUTPUT_IMAGE } from './core/helpers.js';
4
+ import { toJsonWithByteSummary } from '../../format/jsonPolicies.js';
4
5
 
5
6
  const FORMAT_NAME = "CjsGifFormat";
6
7
 
@@ -69,7 +70,7 @@ class CjsGifFormat extends CjsFormat {
69
70
  * the GIF format configuration.
70
71
  */
71
72
  ToJSON(value) {
72
- return toJsonValue(value);
73
+ return toJsonWithByteSummary(value);
73
74
  }
74
75
 
75
76
  /** Provides the one-shot GIF payload reader entry point. */
@@ -94,16 +95,10 @@ class CjsGifFormat extends CjsFormat {
94
95
  }
95
96
 
96
97
  /** Checks one input against the GIF decoder capability contract. */
97
- static probeSupport(input, options = {}) {
98
- return probeSupportWithValues(input, normalizeValues(DEFAULT_VALUES, {
99
- inputType: "gif",
100
- ...options
101
- }, FORMAT_NAME));
102
- }
103
98
 
104
99
  /** Provides the one-shot GIF JSON conversion entry point. */
105
100
  static toJSON(value) {
106
- return toJsonValue(value);
101
+ return toJsonWithByteSummary(value);
107
102
  }
108
103
 
109
104
  /** Checks whether caller-provided bytes carry the expected GIF signature. */
@@ -1 +1 @@
1
- {"version":3,"file":"CjsGifFormat.js","sources":["../../../../../src/resource/formats/gif/CjsGifFormat.js"],"sourcesContent":["import { asUint8Array } from \"#utils/bytes\";\nimport { CjsFormat } from \"../../format/CjsFormat.js\";\nimport {\n DEFAULT_VALUES,\n OUTPUT_IMAGE,\n OUTPUT_JSON,\n OUTPUT_RAW,\n OUTPUT_RGBA,\n inspectWithValues,\n isGIF,\n probeSupportWithValues,\n normalizeValues,\n readWithValues,\n toJsonValue\n} from \"./core/helpers.js\";\n\nconst FORMAT_NAME = \"CjsGifFormat\";\n\n/**\n * GIF format profile that inspects header and frame metadata and reads GIF\n * bytes into raw, debug JSON, or LZW-decoded RGBA frame payloads.\n */\nexport class CjsGifFormat extends CjsFormat\n{\n #values = DEFAULT_VALUES;\n\n /** Creates a CjsGifFormat with caller-provided reader configuration. */\n constructor(options = {})\n {\n super();\n this.SetValues(options);\n }\n\n /**\n * Applies caller-provided options after normalizing supported fields for the\n * GIF format configuration.\n */\n SetValues(options = {})\n {\n this.#values = normalizeValues(this.#values, { inputType: \"gif\", ...options }, FORMAT_NAME);\n return this;\n }\n\n /**\n * Returns a snapshot of the normalized reader options for the GIF format\n * configuration.\n */\n GetValues(options = {})\n {\n return normalizeValues(this.#values, { inputType: \"gif\", ...options }, FORMAT_NAME);\n }\n\n /**\n * Reads the primary public payload representation from the supplied input\n * for the GIF format configuration.\n */\n Read(input, options = {})\n {\n return readWithValues(input, this.GetValues(options));\n }\n\n /**\n * Reads the primary public payload representation asynchronously for the GIF\n * format configuration.\n */\n async ReadAsync(input, options = {})\n {\n return this.Read(input, options);\n }\n\n /**\n * Returns structural metadata without materializing the decoded payload for\n * the GIF format configuration.\n */\n Inspect(input, options = {})\n {\n return inspectWithValues(input, this.GetValues(options));\n }\n\n /**\n * Converts the current decoded payload into a JSON-safe representation for\n * the GIF format configuration.\n */\n ToJSON(value)\n {\n return toJsonValue(value);\n }\n\n /** Provides the one-shot GIF payload reader entry point. */\n static read(input, options = {})\n {\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"gif\", ...options }, FORMAT_NAME));\n }\n\n /** Provides the asynchronous one-shot GIF payload reader entry point. */\n static async readAsync(input, options = {})\n {\n return CjsGifFormat.read(input, options);\n }\n\n /** Provides the one-shot GIF metadata inspection entry point. */\n static inspect(input, options = {})\n {\n return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"gif\", ...options }, FORMAT_NAME));\n }\n\n /** Checks one input against the GIF decoder capability contract. */\n static probeSupport(input, options = {})\n {\n return probeSupportWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"gif\", ...options }, FORMAT_NAME));\n }\n\n /** Provides the one-shot GIF JSON conversion entry point. */\n static toJSON(value)\n {\n return toJsonValue(value);\n }\n\n /** Checks whether caller-provided bytes carry the expected GIF signature. */\n static isGIF(input)\n {\n try\n {\n return isGIF(asUint8Array(input, \"GIF input\"));\n }\n catch\n {\n return false;\n }\n }\n\n /**\n * Emit targets for this format (canonical frozen enum).\n */\n static Output = Object.freeze({\n IMAGE: OUTPUT_IMAGE,\n RGBA: OUTPUT_RGBA,\n RAW: OUTPUT_RAW,\n JSON: OUTPUT_JSON\n });\n static OUTPUT_GIF_JSON = \"gifJson\";\n static id = \"gif\";\n static mediaTypes = Object.freeze([ \"image\" ]);\n static outputs = CjsFormat.defineOutputs({\n image: { decoded: true, probes: [ \"image\", \"rgba\" ] },\n rgba: { decoded: true },\n gifJson: { role: \"debug\", probes: [ \"gifJson\", \"raw\" ] },\n raw: { role: \"debug\", default: true, passthrough: true }\n });\n static extensions = Object.freeze([ \".gif\" ]);\n}\n\nexport default CjsGifFormat;\n"],"names":["FORMAT_NAME","CjsGifFormat","CjsFormat","DEFAULT_VALUES","constructor","options","SetValues","normalizeValues","inputType","GetValues","Read","input","readWithValues","ReadAsync","Inspect","inspectWithValues","ToJSON","value","toJsonValue","read","readAsync","inspect","probeSupport","probeSupportWithValues","toJSON","isGIF","asUint8Array","Output","Object","freeze","IMAGE","OUTPUT_IMAGE","RGBA","OUTPUT_RGBA","RAW","OUTPUT_RAW","JSON","OUTPUT_JSON","OUTPUT_GIF_JSON","id","mediaTypes","outputs","defineOutputs","image","decoded","probes","rgba","gifJson","role","raw","default","passthrough","extensions"],"mappings":"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"}
1
+ {"version":3,"file":"CjsGifFormat.js","sources":["../../../../../src/resource/formats/gif/CjsGifFormat.js"],"sourcesContent":["import { asUint8Array } from \"#utils/bytes\";\nimport { CjsFormat } from \"../../format/CjsFormat.js\";\nimport {\n DEFAULT_VALUES,\n OUTPUT_IMAGE,\n OUTPUT_JSON,\n OUTPUT_RAW,\n OUTPUT_RGBA,\n inspectWithValues,\n isGIF,\n probeSupportWithValues,\n normalizeValues,\n readWithValues,\n toJsonValue\n} from \"./core/helpers.js\";\n\nconst FORMAT_NAME = \"CjsGifFormat\";\n\n/**\n * GIF format profile that inspects header and frame metadata and reads GIF\n * bytes into raw, debug JSON, or LZW-decoded RGBA frame payloads.\n */\nexport class CjsGifFormat extends CjsFormat\n{\n #values = DEFAULT_VALUES;\n\n /** Creates a CjsGifFormat with caller-provided reader configuration. */\n constructor(options = {})\n {\n super();\n this.SetValues(options);\n }\n\n /**\n * Applies caller-provided options after normalizing supported fields for the\n * GIF format configuration.\n */\n SetValues(options = {})\n {\n this.#values = normalizeValues(this.#values, { inputType: \"gif\", ...options }, FORMAT_NAME);\n return this;\n }\n\n /**\n * Returns a snapshot of the normalized reader options for the GIF format\n * configuration.\n */\n GetValues(options = {})\n {\n return normalizeValues(this.#values, { inputType: \"gif\", ...options }, FORMAT_NAME);\n }\n\n /**\n * Reads the primary public payload representation from the supplied input\n * for the GIF format configuration.\n */\n Read(input, options = {})\n {\n return readWithValues(input, this.GetValues(options));\n }\n\n /**\n * Reads the primary public payload representation asynchronously for the GIF\n * format configuration.\n */\n async ReadAsync(input, options = {})\n {\n return this.Read(input, options);\n }\n\n /**\n * Returns structural metadata without materializing the decoded payload for\n * the GIF format configuration.\n */\n Inspect(input, options = {})\n {\n return inspectWithValues(input, this.GetValues(options));\n }\n\n /**\n * Converts the current decoded payload into a JSON-safe representation for\n * the GIF format configuration.\n */\n ToJSON(value)\n {\n return toJsonValue(value);\n }\n\n /** Provides the one-shot GIF payload reader entry point. */\n static read(input, options = {})\n {\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"gif\", ...options }, FORMAT_NAME));\n }\n\n /** Provides the asynchronous one-shot GIF payload reader entry point. */\n static async readAsync(input, options = {})\n {\n return CjsGifFormat.read(input, options);\n }\n\n /** Provides the one-shot GIF metadata inspection entry point. */\n static inspect(input, options = {})\n {\n return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"gif\", ...options }, FORMAT_NAME));\n }\n\n /** Checks one input against the GIF decoder capability contract. */\n\n /** Provides the one-shot GIF JSON conversion entry point. */\n static toJSON(value)\n {\n return toJsonValue(value);\n }\n\n /** Checks whether caller-provided bytes carry the expected GIF signature. */\n static isGIF(input)\n {\n try\n {\n return isGIF(asUint8Array(input, \"GIF input\"));\n }\n catch\n {\n return false;\n }\n }\n\n /**\n * Emit targets for this format (canonical frozen enum).\n */\n static Output = Object.freeze({\n IMAGE: OUTPUT_IMAGE,\n RGBA: OUTPUT_RGBA,\n RAW: OUTPUT_RAW,\n JSON: OUTPUT_JSON\n });\n static OUTPUT_GIF_JSON = \"gifJson\";\n static id = \"gif\";\n static mediaTypes = Object.freeze([ \"image\" ]);\n static outputs = CjsFormat.defineOutputs({\n image: { decoded: true, probes: [ \"image\", \"rgba\" ] },\n rgba: { decoded: true },\n gifJson: { role: \"debug\", probes: [ \"gifJson\", \"raw\" ] },\n raw: { role: \"debug\", default: true, passthrough: true }\n });\n static extensions = Object.freeze([ \".gif\" ]);\n}\n\nexport default CjsGifFormat;\n"],"names":["FORMAT_NAME","CjsGifFormat","CjsFormat","DEFAULT_VALUES","constructor","options","SetValues","normalizeValues","inputType","GetValues","Read","input","readWithValues","ReadAsync","Inspect","inspectWithValues","ToJSON","value","toJsonValue","read","readAsync","inspect","toJSON","isGIF","asUint8Array","Output","Object","freeze","IMAGE","OUTPUT_IMAGE","RGBA","OUTPUT_RGBA","RAW","OUTPUT_RAW","JSON","OUTPUT_JSON","OUTPUT_GIF_JSON","id","mediaTypes","outputs","defineOutputs","image","decoded","probes","rgba","gifJson","role","raw","default","passthrough","extensions"],"mappings":"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"}
@@ -54,54 +54,6 @@ function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = "gif")
54
54
  };
55
55
  }
56
56
 
57
- /**
58
- * Reports whether input is supported under normalized format options for the GIF
59
- * format reader.
60
- */
61
- function probeSupportWithValues(input, values = DEFAULT_VALUES) {
62
- try {
63
- const metadata = inspectWithValues(input, values);
64
- const decoded = metadata.frameCount > 0 && metadata.lzwSupported;
65
- return {
66
- format: "gif",
67
- source: values.source || "buffer",
68
- supported: decoded ? "full" : "partial",
69
- confidence: 1,
70
- preferredOutput: decoded ? "rgba" : "raw",
71
- reason: decoded ? "GIF frame RGBA decode and compositing are available." : "GIF metadata/raw input is recognized but no decodable image frame was found.",
72
- metadata,
73
- variants: [{
74
- kind: "rgba",
75
- payloadType: "rgba",
76
- codec: "rgba8unorm",
77
- supported: decoded,
78
- reason: decoded ? "" : "GIF LZW frame decode is unavailable."
79
- }, {
80
- kind: "raw",
81
- payloadType: "raw",
82
- codec: "gif",
83
- mimeType: "image/gif",
84
- supported: true
85
- }],
86
- warnings: [],
87
- errors: []
88
- };
89
- } catch (error) {
90
- return {
91
- format: "gif",
92
- source: values.source || "buffer",
93
- supported: "none",
94
- confidence: 0,
95
- preferredOutput: "",
96
- reason: error.message,
97
- metadata: null,
98
- variants: [],
99
- warnings: [],
100
- errors: [error.message]
101
- };
102
- }
103
- }
104
-
105
57
  /** Reads input using normalized format options for the GIF format reader. */
106
58
  function readWithValues(input, values = DEFAULT_VALUES) {
107
59
  const bytes = asUint8Array(input, "GIF input");
@@ -123,20 +75,6 @@ function readWithValues(input, values = DEFAULT_VALUES) {
123
75
  error.code = "CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED";
124
76
  throw error;
125
77
  }
126
-
127
- /** Converts a parsed payload into a JSON-safe value for the GIF format reader. */
128
- function toJsonValue(value) {
129
- if (value instanceof Uint8Array) return {
130
- byteLength: value.byteLength
131
- };
132
- if (Array.isArray(value)) return value.map(toJsonValue);
133
- if (value && typeof value === "object") {
134
- const output = {};
135
- for (const [key, entry] of Object.entries(value)) output[key] = toJsonValue(entry);
136
- return output;
137
- }
138
- return value;
139
- }
140
78
  function inspectGif(bytes) {
141
79
  const width = readU16LE(bytes, 6);
142
80
  const height = readU16LE(bytes, 8);
@@ -356,5 +294,5 @@ function ascii(bytes, offset, length) {
356
294
  return String.fromCharCode(...bytes.subarray(offset, offset + length));
357
295
  }
358
296
 
359
- export { DEFAULT_VALUES, OUTPUT_IMAGE, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_RGBA, inspectWithValues, isGIF, normalizeValues, probeSupportWithValues, readWithValues, toJsonValue };
297
+ export { DEFAULT_VALUES, OUTPUT_IMAGE, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_RGBA, inspectWithValues, isGIF, normalizeValues, readWithValues };
360
298
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/gif/core/helpers.js"],"sourcesContent":["import { asUint8Array, readU16LE } from \"#utils/bytes\";\n\nexport const OUTPUT_IMAGE = \"image\";\nexport const OUTPUT_RGBA = \"rgba\";\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_JSON = \"json\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_RAW,\n inputType: \"gif\",\n source: \"\"\n});\n\n/**\n * Normalizes reader options against their supported defaults for the GIF format\n * reader.\n */\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsGifFormat\")\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_IMAGE, OUTPUT_RGBA, OUTPUT_RAW, OUTPUT_JSON, \"gifJson\" ].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 GIF format reader. */\r/** Reports whether the current GIF format reader satisfies GIF. */\nexport function isGIF(bytes)\n{\n return bytes.byteLength >= 13 && (ascii(bytes, 0, 6) === \"GIF87a\" || ascii(bytes, 0, 6) === \"GIF89a\");\n}\n\n/** Inspects input using normalized format options for the GIF format reader. */\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"gif\")\n{\n const bytes = asUint8Array(input, \"GIF input\");\n if (!isGIF(bytes)) throw new TypeError(\"CjsGifFormat: input is not a GIF87a/GIF89a image\");\n const metadata = inspectGif(bytes);\n if (expectedType && metadata.sourceFormat !== expectedType)\n {\n throw new TypeError(`CjsGifFormat: 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 GIF\n * format reader.\n */\nexport function probeSupportWithValues(input, values = DEFAULT_VALUES)\n{\n try\n {\n const metadata = inspectWithValues(input, values);\n const decoded = metadata.frameCount > 0 && metadata.lzwSupported;\n return {\n format: \"gif\",\n source: values.source || \"buffer\",\n supported: decoded ? \"full\" : \"partial\",\n confidence: 1,\n preferredOutput: decoded ? \"rgba\" : \"raw\",\n reason: decoded ? \"GIF frame RGBA decode and compositing are available.\" : \"GIF metadata/raw input is recognized but no decodable image frame was found.\",\n metadata,\n variants: [\n { kind: \"rgba\", payloadType: \"rgba\", codec: \"rgba8unorm\", supported: decoded, reason: decoded ? \"\" : \"GIF LZW frame decode is unavailable.\"},\n { kind: \"raw\", payloadType: \"raw\", codec: \"gif\", mimeType: \"image/gif\", supported: true}\n ],\n warnings: [],\n errors: []\n };\n }\n catch (error)\n {\n return {\n format: \"gif\",\n source: values.source || \"buffer\",\n supported: \"none\",\n confidence: 0,\n preferredOutput: \"\",\n reason: error.message,\n metadata: null,\n variants: [],\n warnings: [],\n errors: [ error.message ]\n };\n }\n}\n\n/** Reads input using normalized format options for the GIF format reader. */\nexport function readWithValues(input, values = DEFAULT_VALUES)\n{\n const bytes = asUint8Array(input, \"GIF input\");\n const metadata = inspectWithValues(bytes, values);\n if (values.emit === OUTPUT_RAW)\n {\n return {\n payloadType: \"raw\",\n sourceFormat: \"gif\",\n mimeType: \"image/gif\",\n metadata,\n bytes\n };\n }\n if (values.emit === OUTPUT_JSON || values.emit === \"gifJson\") return metadata;\n if (values.emit === OUTPUT_RGBA || values.emit === OUTPUT_IMAGE)\n {\n return decodeFrames(bytes, metadata);\n }\n const error = new Error(`gif: 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 GIF 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 inspectGif(bytes)\n{\n const width = readU16LE(bytes, 6);\n const height = readU16LE(bytes, 8);\n const packed = bytes[10];\n const hasGlobalPalette = !!(packed & 0x80);\n const globalPaletteCount = hasGlobalPalette ? 1 << ((packed & 7) + 1) : 0;\n if (hasGlobalPalette) readPalette(bytes, 13, globalPaletteCount);\n let offset = 13 + globalPaletteCount * 3;\n let frameCount = 0;\n const frames = [];\n let firstFrame = null;\n let graphicsControl = null;\n let loopCount = null;\n while (offset < bytes.length)\n {\n const marker = bytes[offset++];\n if (marker === 0x3b) break;\n if (marker === 0x21)\n {\n const label = bytes[offset++];\n if (label === 0xf9)\n {\n if (bytes[offset++] !== 4) throw new Error(\"gif: invalid graphics control extension\");\n const control = bytes[offset++];\n graphicsControl = {\n disposalMethod: (control >>> 2) & 7,\n userInput: !!(control & 2),\n transparent: !!(control & 1),\n delayCentiseconds: readU16LE(bytes, offset)\n };\n offset += 2;\n graphicsControl.transparentIndex = bytes[offset++];\n if (bytes[offset++] !== 0) throw new Error(\"gif: unterminated graphics control extension\");\n }\n else if (label === 0xff)\n {\n const size = bytes[offset++];\n const application = ascii(bytes, offset, size);\n offset += size;\n const data = readSubBlocks(bytes, offset);\n offset = data.offset;\n if (application === \"NETSCAPE2.0\" || application === \"ANIMEXTS1.0\")\n {\n if (data.bytes.length >= 3 && data.bytes[0] === 1) loopCount = readU16LE(data.bytes, 1);\n }\n }\n else\n {\n offset = skipSubBlocks(bytes, offset);\n }\n }\n else if (marker === 0x2c)\n {\n if (offset + 9 > bytes.length) throw new Error(\"gif: truncated image descriptor\");\n const frame = {\n left: readU16LE(bytes, offset),\n top: readU16LE(bytes, offset + 2),\n width: readU16LE(bytes, offset + 4),\n height: readU16LE(bytes, offset + 6),\n packed: bytes[offset + 8],\n graphicsControl\n };\n offset += 9;\n const localPaletteCount = frame.packed & 0x80 ? 1 << ((frame.packed & 7) + 1) : 0;\n frame.localPalette = localPaletteCount ? readPalette(bytes, offset, localPaletteCount) : null;\n offset += localPaletteCount * 3;\n frame.lzwMinCodeSize = bytes[offset++];\n const data = readSubBlocks(bytes, offset);\n frame.compressed = data.bytes;\n offset = data.offset;\n frame.interlaced = !!(frame.packed & 0x40);\n frameCount++;\n frames.push(frame);\n if (!firstFrame) firstFrame = frame;\n graphicsControl = null;\n }\n else if (marker === 0x00)\n {\n throw new Error(\"gif: unexpected data before image descriptor\");\n }\n else\n {\n throw new Error(`gif: unsupported block marker 0x${marker.toString(16)}`);\n }\n }\n return {\n payloadType: \"image\",\n mediaTypes: [ \"image\" ],\n sourceFormat: \"gif\",\n version: ascii(bytes, 0, 6),\n width,\n height,\n frameCount,\n animated: frameCount > 1,\n loopCount,\n hasGlobalPalette,\n backgroundColorIndex: bytes[11],\n colorResolution: ((packed >>> 4) & 7) + 1,\n lzwSupported: frames.length > 0 && frames.every((frame) => frame.lzwMinCodeSize >= 2 && frame.lzwMinCodeSize <= 8),\n firstFrame,\n frames\n };\n}\n\nfunction decodeFrames(bytes, metadata)\n{\n if (!metadata.firstFrame || !metadata.lzwSupported) throw new Error(\"gif: no supported LZW image frame found\");\n const globalPalette = readPalette(bytes, 13, metadata.hasGlobalPalette ? 1 << ((bytes[10] & 7) + 1) : 0);\n const canvas = new Uint8Array(metadata.width * metadata.height * 4);\n const frames = [];\n\n for (const frame of metadata.frames)\n {\n const restore = frame.graphicsControl?.disposalMethod === 3 ? canvas.slice() : null;\n const palette = frame.localPalette || globalPalette;\n const indices = decodeLzw(frame.compressed, frame.lzwMinCodeSize, frame.width * frame.height);\n const rows = frame.interlaced ? interlacedRows(frame.height) : Array.from({ length: frame.height }, (_, row) => row);\n for (let sourceRow = 0; sourceRow < frame.height; sourceRow++)\n {\n const targetRow = rows[sourceRow];\n for (let x = 0; x < frame.width; x++)\n {\n const index = indices[sourceRow * frame.width + x];\n const targetX = frame.left + x;\n const targetY = frame.top + targetRow;\n if (targetX >= metadata.width || targetY >= metadata.height) continue;\n if (frame.graphicsControl?.transparent && index === frame.graphicsControl.transparentIndex) continue;\n const target = (targetY * metadata.width + targetX) * 4;\n const color = palette[index] || [ 0, 0, 0 ];\n canvas[target] = color[0];\n canvas[target + 1] = color[1];\n canvas[target + 2] = color[2];\n canvas[target + 3] = 255;\n }\n }\n\n frames.push({\n index: frames.length,\n delayCentiseconds: frame.graphicsControl?.delayCentiseconds || 0,\n disposalMethod: frame.graphicsControl?.disposalMethod || 0,\n data: canvas.slice()\n });\n const disposal = frame.graphicsControl?.disposalMethod || 0;\n if (disposal === 2) canvas.fill(0);\n else if (disposal === 3 && restore) canvas.set(restore);\n }\n\n const data = frames[0].data;\n return {\n payloadType: \"rgba\",\n sourceFormat: \"gif\",\n mimeType: \"image/gif\",\n width: metadata.width,\n height: metadata.height,\n pixelFormat: \"rgba8unorm\",\n data,\n frames,\n strideBytes: metadata.width * 4,\n origin: \"top-left\",\n colorSpace: \"srgb\",\n alphaMode: \"straight\",\n metadata\n };\n}\n\nfunction decodeLzw(bytes, minimumCodeSize, expectedLength)\n{\n const clear = 1 << minimumCodeSize;\n const end = clear + 1;\n let codeSize = minimumCodeSize + 1;\n let dictionary = Array.from({ length: clear }, (_, index) => [ index ]);\n let bitOffset = 0;\n let previous = null;\n const output = [];\n while (bitOffset + codeSize <= bytes.length * 8)\n {\n let code = 0;\n for (let bit = 0; bit < codeSize; bit++)\n {\n code |= (((bytes[bitOffset >>> 3] >>> (bitOffset & 7)) & 1) << bit);\n bitOffset++;\n }\n if (code === clear)\n {\n dictionary = Array.from({ length: clear }, (_, index) => [ index ]);\n codeSize = minimumCodeSize + 1;\n previous = null;\n continue;\n }\n if (code === end) break;\n let entry;\n if (code < dictionary.length) entry = dictionary[code];\n else if (code === dictionary.length && previous) entry = previous.concat(previous[0]);\n else throw new Error(\"gif: invalid LZW code\");\n output.push(...entry);\n if (previous)\n {\n dictionary.push(previous.concat(entry[0]));\n if (dictionary.length === (1 << codeSize) && codeSize < 12) codeSize++;\n }\n previous = entry;\n if (output.length >= expectedLength) break;\n }\n if (output.length < expectedLength) throw new Error(\"gif: LZW stream ended before the frame was filled\");\n return output.slice(0, expectedLength);\n}\n\nfunction readSubBlocks(bytes, offset)\n{\n const output = [];\n while (offset < bytes.length)\n {\n if (offset >= bytes.length) throw new Error(\"gif: truncated sub-block sequence\");\n const length = bytes[offset++];\n if (!length) return { bytes: Uint8Array.from(output), offset };\n if (offset + length > bytes.length) throw new Error(\"gif: truncated sub-block payload\");\n output.push(...bytes.subarray(offset, offset + length));\n offset += length;\n }\n throw new Error(\"gif: truncated sub-block sequence\");\n}\n\nfunction skipSubBlocks(bytes, offset)\n{\n return readSubBlocks(bytes, offset).offset;\n}\n\nfunction readPalette(bytes, offset, count)\n{\n const palette = [];\n for (let i = 0; i < count; i++)\n {\n if (offset + 3 > bytes.length) throw new Error(\"gif: truncated color table\");\n palette.push([ bytes[offset], bytes[offset + 1], bytes[offset + 2] ]);\n offset += 3;\n }\n return palette;\n}\n\nfunction interlacedRows(height)\n{\n const rows = [];\n for (const [ start, step ] of [ [ 0, 8 ], [ 4, 8 ], [ 2, 4 ], [ 1, 2 ] ])\n {\n for (let row = start; row < height; row += step) rows.push(row);\n }\n return rows;\n}\n\nfunction ascii(bytes, offset, length)\n{\n return String.fromCharCode(...bytes.subarray(offset, offset + length));\n}\n\n\n"],"names":["OUTPUT_IMAGE","OUTPUT_RGBA","OUTPUT_RAW","OUTPUT_JSON","DEFAULT_VALUES","Object","freeze","emit","inputType","source","normalizeValues","base","options","readerName","Array","isArray","TypeError","allowed","Set","key","keys","has","JSON","stringify","values","includes","isGIF","bytes","byteLength","ascii","inspectWithValues","input","expectedType","asUint8Array","metadata","inspectGif","sourceFormat","probeSupportWithValues","decoded","frameCount","lzwSupported","format","supported","confidence","preferredOutput","reason","variants","kind","payloadType","codec","mimeType","warnings","errors","error","message","readWithValues","decodeFrames","Error","code","toJsonValue","value","Uint8Array","map","output","entry","entries","width","readU16LE","height","packed","hasGlobalPalette","globalPaletteCount","readPalette","offset","frames","firstFrame","graphicsControl","loopCount","length","marker","label","control","disposalMethod","userInput","transparent","delayCentiseconds","transparentIndex","size","application","data","readSubBlocks","skipSubBlocks","frame","left","top","localPaletteCount","localPalette","lzwMinCodeSize","compressed","interlaced","push","toString","mediaTypes","version","animated","backgroundColorIndex","colorResolution","every","globalPalette","canvas","restore","slice","palette","indices","decodeLzw","rows","interlacedRows","from","_","row","sourceRow","targetRow","x","index","targetX","targetY","target","color","disposal","fill","set","pixelFormat","strideBytes","origin","colorSpace","alphaMode","minimumCodeSize","expectedLength","clear","end","codeSize","dictionary","bitOffset","previous","bit","concat","subarray","count","i","start","step","String","fromCharCode"],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/gif/core/helpers.js"],"sourcesContent":["import { toJsonWithByteSummary as toJsonValue } from \"../../../format/jsonPolicies.js\";\nimport { asUint8Array, readU16LE } from \"#utils/bytes\";\n\nexport const OUTPUT_IMAGE = \"image\";\nexport const OUTPUT_RGBA = \"rgba\";\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_JSON = \"json\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_RAW,\n inputType: \"gif\",\n source: \"\"\n});\n\n/**\n * Normalizes reader options against their supported defaults for the GIF format\n * reader.\n */\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsGifFormat\")\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_IMAGE, OUTPUT_RGBA, OUTPUT_RAW, OUTPUT_JSON, \"gifJson\" ].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 GIF format reader. */\n/** Reports whether the current GIF format reader satisfies GIF. */\nexport function isGIF(bytes)\n{\n return bytes.byteLength >= 13 && (ascii(bytes, 0, 6) === \"GIF87a\" || ascii(bytes, 0, 6) === \"GIF89a\");\n}\n\n/** Inspects input using normalized format options for the GIF format reader. */\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"gif\")\n{\n const bytes = asUint8Array(input, \"GIF input\");\n if (!isGIF(bytes)) throw new TypeError(\"CjsGifFormat: input is not a GIF87a/GIF89a image\");\n const metadata = inspectGif(bytes);\n if (expectedType && metadata.sourceFormat !== expectedType)\n {\n throw new TypeError(`CjsGifFormat: 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 GIF\n * format reader.\n */\nexport function probeSupportWithValues(input, values = DEFAULT_VALUES)\n{\n try\n {\n const metadata = inspectWithValues(input, values);\n const decoded = metadata.frameCount > 0 && metadata.lzwSupported;\n return {\n format: \"gif\",\n source: values.source || \"buffer\",\n supported: decoded ? \"full\" : \"partial\",\n confidence: 1,\n preferredOutput: decoded ? \"rgba\" : \"raw\",\n reason: decoded ? \"GIF frame RGBA decode and compositing are available.\" : \"GIF metadata/raw input is recognized but no decodable image frame was found.\",\n metadata,\n variants: [\n { kind: \"rgba\", payloadType: \"rgba\", codec: \"rgba8unorm\", supported: decoded, reason: decoded ? \"\" : \"GIF LZW frame decode is unavailable.\"},\n { kind: \"raw\", payloadType: \"raw\", codec: \"gif\", mimeType: \"image/gif\", supported: true}\n ],\n warnings: [],\n errors: []\n };\n }\n catch (error)\n {\n return {\n format: \"gif\",\n source: values.source || \"buffer\",\n supported: \"none\",\n confidence: 0,\n preferredOutput: \"\",\n reason: error.message,\n metadata: null,\n variants: [],\n warnings: [],\n errors: [ error.message ]\n };\n }\n}\n\n/** Reads input using normalized format options for the GIF format reader. */\nexport function readWithValues(input, values = DEFAULT_VALUES)\n{\n const bytes = asUint8Array(input, \"GIF input\");\n const metadata = inspectWithValues(bytes, values);\n if (values.emit === OUTPUT_RAW)\n {\n return {\n payloadType: \"raw\",\n sourceFormat: \"gif\",\n mimeType: \"image/gif\",\n metadata,\n bytes\n };\n }\n if (values.emit === OUTPUT_JSON || values.emit === \"gifJson\") return metadata;\n if (values.emit === OUTPUT_RGBA || values.emit === OUTPUT_IMAGE)\n {\n return decodeFrames(bytes, metadata);\n }\n const error = new Error(`gif: 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 GIF format reader. */\n/** The shared JSON policy for this reader, under the name its callers use. */\nexport { toJsonValue };\n\nfunction inspectGif(bytes)\n{\n const width = readU16LE(bytes, 6);\n const height = readU16LE(bytes, 8);\n const packed = bytes[10];\n const hasGlobalPalette = !!(packed & 0x80);\n const globalPaletteCount = hasGlobalPalette ? 1 << ((packed & 7) + 1) : 0;\n if (hasGlobalPalette) readPalette(bytes, 13, globalPaletteCount);\n let offset = 13 + globalPaletteCount * 3;\n let frameCount = 0;\n const frames = [];\n let firstFrame = null;\n let graphicsControl = null;\n let loopCount = null;\n while (offset < bytes.length)\n {\n const marker = bytes[offset++];\n if (marker === 0x3b) break;\n if (marker === 0x21)\n {\n const label = bytes[offset++];\n if (label === 0xf9)\n {\n if (bytes[offset++] !== 4) throw new Error(\"gif: invalid graphics control extension\");\n const control = bytes[offset++];\n graphicsControl = {\n disposalMethod: (control >>> 2) & 7,\n userInput: !!(control & 2),\n transparent: !!(control & 1),\n delayCentiseconds: readU16LE(bytes, offset)\n };\n offset += 2;\n graphicsControl.transparentIndex = bytes[offset++];\n if (bytes[offset++] !== 0) throw new Error(\"gif: unterminated graphics control extension\");\n }\n else if (label === 0xff)\n {\n const size = bytes[offset++];\n const application = ascii(bytes, offset, size);\n offset += size;\n const data = readSubBlocks(bytes, offset);\n offset = data.offset;\n if (application === \"NETSCAPE2.0\" || application === \"ANIMEXTS1.0\")\n {\n if (data.bytes.length >= 3 && data.bytes[0] === 1) loopCount = readU16LE(data.bytes, 1);\n }\n }\n else\n {\n offset = skipSubBlocks(bytes, offset);\n }\n }\n else if (marker === 0x2c)\n {\n if (offset + 9 > bytes.length) throw new Error(\"gif: truncated image descriptor\");\n const frame = {\n left: readU16LE(bytes, offset),\n top: readU16LE(bytes, offset + 2),\n width: readU16LE(bytes, offset + 4),\n height: readU16LE(bytes, offset + 6),\n packed: bytes[offset + 8],\n graphicsControl\n };\n offset += 9;\n const localPaletteCount = frame.packed & 0x80 ? 1 << ((frame.packed & 7) + 1) : 0;\n frame.localPalette = localPaletteCount ? readPalette(bytes, offset, localPaletteCount) : null;\n offset += localPaletteCount * 3;\n frame.lzwMinCodeSize = bytes[offset++];\n const data = readSubBlocks(bytes, offset);\n frame.compressed = data.bytes;\n offset = data.offset;\n frame.interlaced = !!(frame.packed & 0x40);\n frameCount++;\n frames.push(frame);\n if (!firstFrame) firstFrame = frame;\n graphicsControl = null;\n }\n else if (marker === 0x00)\n {\n throw new Error(\"gif: unexpected data before image descriptor\");\n }\n else\n {\n throw new Error(`gif: unsupported block marker 0x${marker.toString(16)}`);\n }\n }\n return {\n payloadType: \"image\",\n mediaTypes: [ \"image\" ],\n sourceFormat: \"gif\",\n version: ascii(bytes, 0, 6),\n width,\n height,\n frameCount,\n animated: frameCount > 1,\n loopCount,\n hasGlobalPalette,\n backgroundColorIndex: bytes[11],\n colorResolution: ((packed >>> 4) & 7) + 1,\n lzwSupported: frames.length > 0 && frames.every((frame) => frame.lzwMinCodeSize >= 2 && frame.lzwMinCodeSize <= 8),\n firstFrame,\n frames\n };\n}\n\nfunction decodeFrames(bytes, metadata)\n{\n if (!metadata.firstFrame || !metadata.lzwSupported) throw new Error(\"gif: no supported LZW image frame found\");\n const globalPalette = readPalette(bytes, 13, metadata.hasGlobalPalette ? 1 << ((bytes[10] & 7) + 1) : 0);\n const canvas = new Uint8Array(metadata.width * metadata.height * 4);\n const frames = [];\n\n for (const frame of metadata.frames)\n {\n const restore = frame.graphicsControl?.disposalMethod === 3 ? canvas.slice() : null;\n const palette = frame.localPalette || globalPalette;\n const indices = decodeLzw(frame.compressed, frame.lzwMinCodeSize, frame.width * frame.height);\n const rows = frame.interlaced ? interlacedRows(frame.height) : Array.from({ length: frame.height }, (_, row) => row);\n for (let sourceRow = 0; sourceRow < frame.height; sourceRow++)\n {\n const targetRow = rows[sourceRow];\n for (let x = 0; x < frame.width; x++)\n {\n const index = indices[sourceRow * frame.width + x];\n const targetX = frame.left + x;\n const targetY = frame.top + targetRow;\n if (targetX >= metadata.width || targetY >= metadata.height) continue;\n if (frame.graphicsControl?.transparent && index === frame.graphicsControl.transparentIndex) continue;\n const target = (targetY * metadata.width + targetX) * 4;\n const color = palette[index] || [ 0, 0, 0 ];\n canvas[target] = color[0];\n canvas[target + 1] = color[1];\n canvas[target + 2] = color[2];\n canvas[target + 3] = 255;\n }\n }\n\n frames.push({\n index: frames.length,\n delayCentiseconds: frame.graphicsControl?.delayCentiseconds || 0,\n disposalMethod: frame.graphicsControl?.disposalMethod || 0,\n data: canvas.slice()\n });\n const disposal = frame.graphicsControl?.disposalMethod || 0;\n if (disposal === 2) canvas.fill(0);\n else if (disposal === 3 && restore) canvas.set(restore);\n }\n\n const data = frames[0].data;\n return {\n payloadType: \"rgba\",\n sourceFormat: \"gif\",\n mimeType: \"image/gif\",\n width: metadata.width,\n height: metadata.height,\n pixelFormat: \"rgba8unorm\",\n data,\n frames,\n strideBytes: metadata.width * 4,\n origin: \"top-left\",\n colorSpace: \"srgb\",\n alphaMode: \"straight\",\n metadata\n };\n}\n\nfunction decodeLzw(bytes, minimumCodeSize, expectedLength)\n{\n const clear = 1 << minimumCodeSize;\n const end = clear + 1;\n let codeSize = minimumCodeSize + 1;\n let dictionary = Array.from({ length: clear }, (_, index) => [ index ]);\n let bitOffset = 0;\n let previous = null;\n const output = [];\n while (bitOffset + codeSize <= bytes.length * 8)\n {\n let code = 0;\n for (let bit = 0; bit < codeSize; bit++)\n {\n code |= (((bytes[bitOffset >>> 3] >>> (bitOffset & 7)) & 1) << bit);\n bitOffset++;\n }\n if (code === clear)\n {\n dictionary = Array.from({ length: clear }, (_, index) => [ index ]);\n codeSize = minimumCodeSize + 1;\n previous = null;\n continue;\n }\n if (code === end) break;\n let entry;\n if (code < dictionary.length) entry = dictionary[code];\n else if (code === dictionary.length && previous) entry = previous.concat(previous[0]);\n else throw new Error(\"gif: invalid LZW code\");\n output.push(...entry);\n if (previous)\n {\n dictionary.push(previous.concat(entry[0]));\n if (dictionary.length === (1 << codeSize) && codeSize < 12) codeSize++;\n }\n previous = entry;\n if (output.length >= expectedLength) break;\n }\n if (output.length < expectedLength) throw new Error(\"gif: LZW stream ended before the frame was filled\");\n return output.slice(0, expectedLength);\n}\n\nfunction readSubBlocks(bytes, offset)\n{\n const output = [];\n while (offset < bytes.length)\n {\n if (offset >= bytes.length) throw new Error(\"gif: truncated sub-block sequence\");\n const length = bytes[offset++];\n if (!length) return { bytes: Uint8Array.from(output), offset };\n if (offset + length > bytes.length) throw new Error(\"gif: truncated sub-block payload\");\n output.push(...bytes.subarray(offset, offset + length));\n offset += length;\n }\n throw new Error(\"gif: truncated sub-block sequence\");\n}\n\nfunction skipSubBlocks(bytes, offset)\n{\n return readSubBlocks(bytes, offset).offset;\n}\n\nfunction readPalette(bytes, offset, count)\n{\n const palette = [];\n for (let i = 0; i < count; i++)\n {\n if (offset + 3 > bytes.length) throw new Error(\"gif: truncated color table\");\n palette.push([ bytes[offset], bytes[offset + 1], bytes[offset + 2] ]);\n offset += 3;\n }\n return palette;\n}\n\nfunction interlacedRows(height)\n{\n const rows = [];\n for (const [ start, step ] of [ [ 0, 8 ], [ 4, 8 ], [ 2, 4 ], [ 1, 2 ] ])\n {\n for (let row = start; row < height; row += step) rows.push(row);\n }\n return rows;\n}\n\nfunction ascii(bytes, offset, length)\n{\n return String.fromCharCode(...bytes.subarray(offset, offset + length));\n}\n\n\n"],"names":["OUTPUT_IMAGE","OUTPUT_RGBA","OUTPUT_RAW","OUTPUT_JSON","DEFAULT_VALUES","Object","freeze","emit","inputType","source","normalizeValues","base","options","readerName","Array","isArray","TypeError","allowed","Set","key","keys","has","JSON","stringify","values","includes","isGIF","bytes","byteLength","ascii","inspectWithValues","input","expectedType","asUint8Array","metadata","inspectGif","sourceFormat","readWithValues","payloadType","mimeType","decodeFrames","error","Error","code","width","readU16LE","height","packed","hasGlobalPalette","globalPaletteCount","readPalette","offset","frameCount","frames","firstFrame","graphicsControl","loopCount","length","marker","label","control","disposalMethod","userInput","transparent","delayCentiseconds","transparentIndex","size","application","data","readSubBlocks","skipSubBlocks","frame","left","top","localPaletteCount","localPalette","lzwMinCodeSize","compressed","interlaced","push","toString","mediaTypes","version","animated","backgroundColorIndex","colorResolution","lzwSupported","every","globalPalette","canvas","Uint8Array","restore","slice","palette","indices","decodeLzw","rows","interlacedRows","from","_","row","sourceRow","targetRow","x","index","targetX","targetY","target","color","disposal","fill","set","pixelFormat","strideBytes","origin","colorSpace","alphaMode","minimumCodeSize","expectedLength","clear","end","codeSize","dictionary","bitOffset","previous","output","bit","entry","concat","subarray","count","i","start","step","String","fromCharCode"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { asUint8Array } from '#utils/bytes';
2
2
  import { CjsFormat } from '../../format/CjsFormat.js';
3
- import { DEFAULT_VALUES, normalizeValues, validateClassKey, validateClass, readWithValues, inspectWithValues, toJsonValue, OUTPUT_CMF, OUTPUT_GR2, OUTPUT_SHARED, OUTPUT_GLTF_JSON, OUTPUT_JSON, CLASS_KEYS } from './core/helpers.js';
3
+ import { DEFAULT_VALUES, normalizeValues, validateClassKey, validateClass, readWithValues, inspectWithValues, OUTPUT_CMF, OUTPUT_GR2, OUTPUT_SHARED, OUTPUT_GLTF_JSON, OUTPUT_JSON, CLASS_KEYS } from './core/helpers.js';
4
+ import { toJsonWithArrayValues } from '../../format/jsonPolicies.js';
4
5
  import { isGlb } from './core/parser.js';
5
6
 
6
7
  const FORMAT_NAME = "CjsGltfFormat";
@@ -163,7 +164,7 @@ class CjsGltfFormat extends CjsFormat {
163
164
  * @returns {any} Plain JSON-compatible data.
164
165
  */
165
166
  ToJSON(value) {
166
- return toJsonValue(value);
167
+ return toJsonWithArrayValues(value);
167
168
  }
168
169
 
169
170
  /**
@@ -195,7 +196,7 @@ class CjsGltfFormat extends CjsFormat {
195
196
  * @returns {any} Plain JSON-compatible data.
196
197
  */
197
198
  static toJSON(value) {
198
- return toJsonValue(value);
199
+ return toJsonWithArrayValues(value);
199
200
  }
200
201
 
201
202
  /**