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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (384) hide show
  1. package/dist/global/blue/BlueClasses.js +200 -0
  2. package/dist/global/blue/BlueClasses.js.map +1 -0
  3. package/dist/global/blue/IBlueClasses.js +79 -0
  4. package/dist/global/blue/IBlueClasses.js.map +1 -0
  5. package/dist/global/blue/IBlueDynamicResourceConstructor.js +16 -0
  6. package/dist/global/blue/IBlueDynamicResourceConstructor.js.map +1 -1
  7. package/dist/global/blue/blue.js +8 -2
  8. package/dist/global/blue/blue.js.map +1 -1
  9. package/dist/global/blue/index.js +2 -0
  10. package/dist/global/blue/index.js.map +1 -1
  11. package/dist/global/consts/index.js +0 -1
  12. package/dist/global/consts/index.js.map +1 -1
  13. package/dist/global/consts/renderContext/formats.js +26 -25
  14. package/dist/global/consts/renderContext/formats.js.map +1 -1
  15. package/dist/{trinityal/Tr2BitmapDimensions.js → global/imageio/BitmapDimensions.js} +19 -15
  16. package/dist/global/imageio/BitmapDimensions.js.map +1 -0
  17. package/dist/global/imageio/Cutout.js +28 -0
  18. package/dist/global/imageio/Cutout.js.map +1 -0
  19. package/dist/global/imageio/HostBitmap.js +1106 -0
  20. package/dist/global/imageio/HostBitmap.js.map +1 -0
  21. package/dist/global/imageio/ImageIOResult.js +99 -0
  22. package/dist/global/imageio/ImageIOResult.js.map +1 -0
  23. package/dist/global/imageio/ImageUtility.js +205 -0
  24. package/dist/global/imageio/ImageUtility.js.map +1 -0
  25. package/dist/global/imageio/LoadParameters.js +86 -0
  26. package/dist/global/imageio/LoadParameters.js.map +1 -0
  27. package/dist/global/imageio/Metadata.js +22 -0
  28. package/dist/global/imageio/Metadata.js.map +1 -0
  29. package/dist/global/imageio/index.js +8 -0
  30. package/dist/global/{consts/webgpu → imageio}/index.js.map +1 -1
  31. package/dist/global/index.js +2 -1
  32. package/dist/global/index.js.map +1 -1
  33. package/dist/global/math/color.js +1 -1
  34. package/dist/global/math/color.js.map +1 -1
  35. package/dist/global/schema/CjsSchema.js +8 -0
  36. package/dist/global/schema/CjsSchema.js.map +1 -1
  37. package/dist/index.js +12 -4
  38. package/dist/index.js.map +1 -1
  39. package/dist/resource/CjsResMan.js +47 -7
  40. package/dist/resource/CjsResMan.js.map +1 -1
  41. package/dist/resource/Tr2LightProfileRes.js +37 -0
  42. package/dist/resource/Tr2LightProfileRes.js.map +1 -1
  43. package/dist/resource/format/CjsByteWriter.js +46 -46
  44. package/dist/resource/format/CjsByteWriter.js.map +1 -1
  45. package/dist/resource/format/CjsFormat.js +7 -8
  46. package/dist/resource/format/CjsFormat.js.map +1 -1
  47. package/dist/resource/format/CjsFormatStore.js +8 -8
  48. package/dist/resource/format/CjsFormatStore.js.map +1 -1
  49. package/dist/resource/format/CjsGeometryFormat.js +114 -0
  50. package/dist/resource/format/CjsGeometryFormat.js.map +1 -0
  51. package/dist/resource/format/CjsImageFormat.js +282 -0
  52. package/dist/resource/format/CjsImageFormat.js.map +1 -0
  53. package/dist/resource/format/CjsResourceProbe.js +12 -48
  54. package/dist/resource/format/CjsResourceProbe.js.map +1 -1
  55. package/dist/resource/format/CjsStringTable.js +37 -37
  56. package/dist/resource/format/CjsStringTable.js.map +1 -1
  57. package/dist/resource/format/carbonEffect/CjsCarbonEffectReader.js +10 -10
  58. package/dist/resource/format/carbonEffect/CjsCarbonEffectReader.js.map +1 -1
  59. package/dist/resource/format/carbonEffect/CjsCarbonEffectWriter.js +37 -37
  60. package/dist/resource/format/carbonEffect/CjsCarbonEffectWriter.js.map +1 -1
  61. package/dist/resource/format/carbonEffect/carbonEffectBackendBlock.js +35 -7
  62. package/dist/resource/format/carbonEffect/carbonEffectBackendBlock.js.map +1 -1
  63. package/dist/resource/format/index.js +3 -1
  64. package/dist/resource/format/index.js.map +1 -1
  65. package/dist/resource/formats/black/CjsBlackFormat.js +130 -137
  66. package/dist/resource/formats/black/CjsBlackFormat.js.map +1 -1
  67. package/dist/resource/formats/bnk/CjsBnkFormat.js +12 -19
  68. package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
  69. package/dist/resource/formats/bnk/core/helpers.js +1 -3
  70. package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
  71. package/dist/resource/formats/cmf/CjsCmfFormat.js +19 -82
  72. package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
  73. package/dist/resource/formats/cmf/core/constants.js +1 -2
  74. package/dist/resource/formats/cmf/core/constants.js.map +1 -1
  75. package/dist/resource/formats/{stl/core/targets.js → cmf/core/flatShared.js} +9 -8
  76. package/dist/resource/formats/cmf/core/flatShared.js.map +1 -0
  77. package/dist/resource/formats/cmf/core/helpers.js +13 -13
  78. package/dist/resource/formats/cmf/core/helpers.js.map +1 -1
  79. package/dist/resource/formats/cmf/core/writer.js +24 -24
  80. package/dist/resource/formats/cmf/core/writer.js.map +1 -1
  81. package/dist/resource/formats/dds/CjsDdsFormat.js +134 -17
  82. package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
  83. package/dist/resource/formats/dds/core/helpers.js +125 -40
  84. package/dist/resource/formats/dds/core/helpers.js.map +1 -1
  85. package/dist/resource/formats/dxbc/CjsDxbcFormat.js +14 -16
  86. package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
  87. package/dist/resource/formats/dxbc/core/{container.js → DxbcContainer.js} +2 -2
  88. package/dist/resource/formats/dxbc/core/DxbcContainer.js.map +1 -0
  89. package/dist/resource/formats/dxbc/core/{errors.js → DxbcReadError.js} +1 -1
  90. package/dist/resource/formats/dxbc/core/DxbcReadError.js.map +1 -0
  91. package/dist/resource/formats/dxbc/core/DxbcReader.js +1 -1
  92. package/dist/resource/formats/dxbc/core/DxbcReader.js.map +1 -1
  93. package/dist/resource/formats/dxbc/core/{program.js → DxbcShaderProgram.js} +2 -2
  94. package/dist/resource/formats/dxbc/core/DxbcShaderProgram.js.map +1 -0
  95. package/dist/resource/formats/dxbc/core/{signature.js → DxbcSignatureChunk.js} +2 -2
  96. package/dist/resource/formats/dxbc/core/DxbcSignatureChunk.js.map +1 -0
  97. package/dist/resource/formats/dxbc/core/decoder.js +2 -2
  98. package/dist/resource/formats/dxbc/core/decoder.js.map +1 -1
  99. package/dist/resource/formats/dxbc/core/helpers.js +3 -3
  100. package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
  101. package/dist/resource/formats/fbx/CjsFbxFormat.js +18 -20
  102. package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
  103. package/dist/resource/formats/flac/CjsFlacFormat.js +7 -13
  104. package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
  105. package/dist/resource/formats/fsd/32/CjsFsd32Format.js +29 -29
  106. package/dist/resource/formats/fsd/32/CjsFsd32Format.js.map +1 -1
  107. package/dist/resource/formats/fsd/64/CjsFsd64Format.js +3 -3
  108. package/dist/resource/formats/fsd/64/CjsFsd64Format.js.map +1 -1
  109. package/dist/resource/formats/fsd/64/core/CjsFsd64Binary.js +23 -23
  110. package/dist/resource/formats/fsd/64/core/CjsFsd64Binary.js.map +1 -1
  111. package/dist/resource/formats/fsd/64/core/CjsFsd64Reader.js +8 -8
  112. package/dist/resource/formats/fsd/64/core/CjsFsd64Reader.js.map +1 -1
  113. package/dist/resource/formats/fsd/CjsFsdFormat.js +23 -23
  114. package/dist/resource/formats/fsd/CjsFsdFormat.js.map +1 -1
  115. package/dist/resource/formats/gif/CjsGifFormat.js +24 -15
  116. package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
  117. package/dist/resource/formats/gltf/CjsGltfFormat.js +33 -98
  118. package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
  119. package/dist/resource/formats/gltf/core/helpers.js +3 -12
  120. package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
  121. package/dist/resource/formats/gr2/CjsGr2Format.js +27 -91
  122. package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
  123. package/dist/resource/formats/hlsl/CjsHlslFormat.js +22 -25
  124. package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
  125. package/dist/resource/formats/hlsl/core/carbonDescriptionToRuntime.js +1 -1
  126. package/dist/resource/formats/hlsl/core/carbonDescriptionToRuntime.js.map +1 -1
  127. package/dist/resource/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js +3 -3
  128. package/dist/resource/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js.map +1 -1
  129. package/dist/resource/formats/ies/CjsIESFormat.js +29 -29
  130. package/dist/resource/formats/ies/CjsIESFormat.js.map +1 -1
  131. package/dist/resource/formats/jpeg/CjsJpegFormat.js +24 -15
  132. package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
  133. package/dist/resource/formats/jpeg/core/helpers.js +3 -5
  134. package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
  135. package/dist/resource/formats/jpeg/core/jpeg.js +58 -58
  136. package/dist/resource/formats/jpeg/core/jpeg.js.map +1 -1
  137. package/dist/resource/formats/jsonl/CjsJsonlFormat.js +3 -3
  138. package/dist/resource/formats/jsonl/CjsJsonlFormat.js.map +1 -1
  139. package/dist/resource/formats/mp3/CjsMp3Format.js +7 -14
  140. package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
  141. package/dist/resource/formats/mp3/core/helpers.js +3 -5
  142. package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
  143. package/dist/resource/formats/mp4/CjsMp4Format.js +7 -13
  144. package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
  145. package/dist/resource/formats/mp4/core/helpers.js +3 -5
  146. package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
  147. package/dist/resource/formats/obj/CjsObjFormat.js +92 -157
  148. package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
  149. package/dist/resource/formats/obj/core/helpers.js +5 -113
  150. package/dist/resource/formats/obj/core/helpers.js.map +1 -1
  151. package/dist/resource/formats/ogg/CjsOggFormat.js +7 -14
  152. package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
  153. package/dist/resource/formats/pickle/CjsPickleFormat.js +7 -12
  154. package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
  155. package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js +7 -7
  156. package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js.map +1 -1
  157. package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js +7 -7
  158. package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js.map +1 -1
  159. package/dist/resource/formats/png/CjsPngFormat.js +40 -15
  160. package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
  161. package/dist/resource/formats/png/core/helpers.js +4 -6
  162. package/dist/resource/formats/png/core/helpers.js.map +1 -1
  163. package/dist/resource/formats/red/CjsRedFormat.js +22 -28
  164. package/dist/resource/formats/red/CjsRedFormat.js.map +1 -1
  165. package/dist/resource/formats/schemabound/CjsSchemaBoundFormat.js +3 -7
  166. package/dist/resource/formats/schemabound/CjsSchemaBoundFormat.js.map +1 -1
  167. package/dist/resource/formats/schemabound/core/schemaBoundValues.js +5 -0
  168. package/dist/resource/formats/schemabound/core/schemaBoundValues.js.map +1 -1
  169. package/dist/resource/formats/sqlite/CjsSqliteFormat.js +4 -9
  170. package/dist/resource/formats/sqlite/CjsSqliteFormat.js.map +1 -1
  171. package/dist/resource/formats/static/CjsStaticFormat.js +4 -4
  172. package/dist/resource/formats/static/CjsStaticFormat.js.map +1 -1
  173. package/dist/resource/formats/stl/CjsStlFormat.js +39 -104
  174. package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
  175. package/dist/resource/formats/stl/core/helpers.js +5 -19
  176. package/dist/resource/formats/stl/core/helpers.js.map +1 -1
  177. package/dist/resource/formats/tga/CjsTgaFormat.js +26 -15
  178. package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
  179. package/dist/resource/formats/tga/core/helpers.js +3 -5
  180. package/dist/resource/formats/tga/core/helpers.js.map +1 -1
  181. package/dist/resource/formats/vta/CjsVtaFormat.js +8 -15
  182. package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
  183. package/dist/resource/formats/wav/CjsWavFormat.js +7 -14
  184. package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
  185. package/dist/resource/formats/wav/core/helpers.js +3 -5
  186. package/dist/resource/formats/wav/core/helpers.js.map +1 -1
  187. package/dist/resource/formats/webgl/CjsWebglFormat.js +103 -105
  188. package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
  189. package/dist/resource/formats/webgl/core/{errors.js → WebglReadError.js} +1 -1
  190. package/dist/resource/formats/webgl/core/WebglReadError.js.map +1 -0
  191. package/dist/resource/formats/webgl/core/effectPackage.js +1 -1
  192. package/dist/resource/formats/webgl/core/effectPackage.js.map +1 -1
  193. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +3 -3
  194. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
  195. package/dist/resource/formats/webgl/core/glsl/{DxbcGlslHelpers.js → DxbcGlslHelperRegistry.js} +2 -2
  196. package/dist/resource/formats/webgl/core/glsl/DxbcGlslHelperRegistry.js.map +1 -0
  197. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +1 -1
  198. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
  199. package/dist/resource/formats/webgl/core/glslBackendBlock.js +1 -1
  200. package/dist/resource/formats/webgl/core/glslBackendBlock.js.map +1 -1
  201. package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
  202. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +28 -29
  203. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
  204. package/dist/resource/formats/webgpu/core/{errors.js → WebgpuReadError.js} +1 -1
  205. package/dist/resource/formats/webgpu/core/WebgpuReadError.js.map +1 -0
  206. package/dist/resource/formats/webgpu/core/carbonWebgpu/validateContainer.js +1 -1
  207. package/dist/resource/formats/webgpu/core/carbonWebgpu/validateContainer.js.map +1 -1
  208. package/dist/resource/formats/webgpu/core/helpers.js +1 -1
  209. package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
  210. package/dist/resource/formats/webgpu/core/ir/lowerDxbcToIr.js +1 -1
  211. package/dist/resource/formats/webgpu/core/ir/lowerDxbcToIr.js.map +1 -1
  212. package/dist/resource/formats/webgpu/core/wgsl/buildWgslSet.js +18 -6
  213. package/dist/resource/formats/webgpu/core/wgsl/buildWgslSet.js.map +1 -1
  214. package/dist/resource/formats/webgpu/core/wgsl/lowerBindingLayout.js +39 -13
  215. package/dist/resource/formats/webgpu/core/wgsl/lowerBindingLayout.js.map +1 -1
  216. package/dist/resource/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js +16 -14
  217. package/dist/resource/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js.map +1 -1
  218. package/dist/resource/formats/webm/CjsWebmFormat.js +8 -13
  219. package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
  220. package/dist/resource/formats/webm/core/helpers.js +3 -5
  221. package/dist/resource/formats/webm/core/helpers.js.map +1 -1
  222. package/dist/resource/formats/webp/CjsWebpFormat.js +8 -12
  223. package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
  224. package/dist/resource/formats/wem/CjsWemFormat.js +9 -17
  225. package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
  226. package/dist/resource/formats/wem/core/bitStream.js +35 -35
  227. package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
  228. package/dist/resource/formats/wem/core/helpers.js +1 -3
  229. package/dist/resource/formats/wem/core/helpers.js.map +1 -1
  230. package/dist/resource/formats/yaml/CjsYamlFormat.js +28 -37
  231. package/dist/resource/formats/yaml/CjsYamlFormat.js.map +1 -1
  232. package/dist/resource/imageio/ImageIO.js +142 -0
  233. package/dist/resource/imageio/ImageIO.js.map +1 -0
  234. package/dist/resource/imageio/index.js +17 -0
  235. package/dist/resource/imageio/index.js.map +1 -0
  236. package/dist/resource/index.js +7 -0
  237. package/dist/resource/index.js.map +1 -1
  238. package/dist/resource/shader/reflection/Tr2EffectResource.js +24 -2
  239. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
  240. package/dist/resource/shader/reflection/Tr2Pass.js +76 -5
  241. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  242. package/dist/resource/texture/CjsTextureArrayConstructor.js +97 -0
  243. package/dist/resource/texture/CjsTextureArrayConstructor.js.map +1 -0
  244. package/dist/resource/texture/CjsTexturePackConstructor.js +160 -0
  245. package/dist/resource/texture/CjsTexturePackConstructor.js.map +1 -0
  246. package/dist/resource/texture/CjsTexturePipelineStepArray.js +72 -0
  247. package/dist/resource/texture/CjsTexturePipelineStepArray.js.map +1 -0
  248. package/dist/resource/texture/CjsTexturePipelineStepConvert.js +73 -0
  249. package/dist/resource/texture/CjsTexturePipelineStepConvert.js.map +1 -0
  250. package/dist/resource/texture/CjsTexturePipelineStepPack.js +71 -0
  251. package/dist/resource/texture/CjsTexturePipelineStepPack.js.map +1 -0
  252. package/dist/resource/texture/CjsTexturePipelineStepResize.js +123 -0
  253. package/dist/resource/texture/CjsTexturePipelineStepResize.js.map +1 -0
  254. package/dist/resource/texture/SolidColorTextureConstructor.js +11 -1
  255. package/dist/resource/texture/SolidColorTextureConstructor.js.map +1 -1
  256. package/dist/resource/texture/Tr2ImageRes.js +100 -68
  257. package/dist/resource/texture/Tr2ImageRes.js.map +1 -1
  258. package/dist/resource/texture/Tr2TexturePipeline.js +45 -25
  259. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
  260. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +34 -1
  261. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
  262. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +30 -3
  263. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
  264. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +81 -1
  265. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
  266. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +36 -1
  267. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
  268. package/dist/resource/texture/Tr2TexturePipelineStepPack.js +146 -24
  269. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
  270. package/dist/resource/texture/TriTextureRes.js +151 -29
  271. package/dist/resource/texture/TriTextureRes.js.map +1 -1
  272. package/dist/resource/texture/index.js +7 -0
  273. package/dist/resource/texture/index.js.map +1 -1
  274. package/dist/resource/texture/registerTextureResources.js +83 -0
  275. package/dist/resource/texture/registerTextureResources.js.map +1 -0
  276. package/dist/resource/texture/solidColorTexture.js +10 -19
  277. package/dist/resource/texture/solidColorTexture.js.map +1 -1
  278. package/dist/sof/EveSOF.js +39 -7
  279. package/dist/sof/EveSOF.js.map +1 -1
  280. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js +2 -2
  281. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -1
  282. package/dist/trinity/core/Tr2ImageIOHelpers.js +80 -17
  283. package/dist/trinity/core/Tr2ImageIOHelpers.js.map +1 -1
  284. package/dist/trinity/core/Tr2RenderUtils.js +1 -1
  285. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js +49 -62
  286. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -1
  287. package/dist/trinity/core/Tr2TextureReference.js +114 -0
  288. package/dist/trinity/core/Tr2TextureReference.js.map +1 -0
  289. package/dist/trinity/core/device/Tr2DepthStencil.js +2 -2
  290. package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
  291. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js +1 -1
  292. package/dist/trinity/core/index.js +1 -0
  293. package/dist/trinity/core/index.js.map +1 -1
  294. package/dist/trinity/core/lighting/Tr2LightManager.js +5 -4
  295. package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
  296. package/dist/trinity/core/procedural/GradientTextureConstructor.js +5 -4
  297. package/dist/trinity/core/procedural/GradientTextureConstructor.js.map +1 -1
  298. package/dist/trinity/core/procedural/gradientTexture.js +10 -13
  299. package/dist/trinity/core/procedural/gradientTexture.js.map +1 -1
  300. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +1 -1
  301. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
  302. package/dist/trinity/eve/EveImpactOverlay.js +102 -50
  303. package/dist/trinity/eve/EveImpactOverlay.js.map +1 -1
  304. package/dist/trinity/eve/EveModularObjectModifier.js +9 -18
  305. package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
  306. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +175 -157
  307. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  308. package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js +100 -83
  309. package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js.map +1 -1
  310. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +26 -20
  311. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -1
  312. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js +368 -179
  313. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -1
  314. package/dist/trinity/eve/child/EveChildMesh.js +242 -234
  315. package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
  316. package/dist/trinity/eve/child/EveChildTurret.js +57 -16
  317. package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
  318. package/dist/trinity/eve/child/EveSpaceObjectChild.js +28 -1
  319. package/dist/trinity/eve/child/EveSpaceObjectChild.js.map +1 -1
  320. package/dist/trinity/eve/index.js +2 -2
  321. package/dist/trinity/eve/overlays/EveDamageOverlay.js +5 -1
  322. package/dist/trinity/eve/overlays/EveDamageOverlay.js.map +1 -1
  323. package/dist/trinity/eve/scene/EveSpaceScene.js +234 -233
  324. package/dist/trinity/eve/scene/EveSpaceScene.js.map +1 -1
  325. package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js +2 -0
  326. package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js.map +1 -1
  327. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +492 -437
  328. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  329. package/dist/trinity/generated/index.js +0 -1
  330. package/dist/trinity/generated/index.js.map +1 -1
  331. package/dist/trinity/generated/trinityCore/index.js +0 -1
  332. package/dist/trinity/generated/trinityCore/index.js.map +1 -1
  333. package/dist/trinity/index.js +3 -3
  334. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +10 -1
  335. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
  336. package/dist/trinity/shader/Tr2DataTextureManager.js +152 -66
  337. package/dist/trinity/shader/Tr2DataTextureManager.js.map +1 -1
  338. package/dist/trinity/shader/Tr2Material.js +1 -1
  339. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js +5 -5
  340. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -1
  341. package/dist/trinityal/index.js +1 -1
  342. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js +2 -2
  343. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -1
  344. package/dist/trinityal/stub/Tr2SwapChainALStub.js +45 -45
  345. package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
  346. package/dist/trinityal/stub/Tr2TextureALStub.js +170 -170
  347. package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
  348. package/dist/trinityal/webgpu/CjsWebgpuDevice.js +234 -164
  349. package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
  350. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +7 -0
  351. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
  352. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +78 -14
  353. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
  354. package/dist/trinityal/webgpu/core/CjsWebgpuUtils.js +94 -0
  355. package/dist/trinityal/webgpu/core/CjsWebgpuUtils.js.map +1 -0
  356. package/dist/trinityal/webgpu/internal.js +1 -0
  357. package/dist/trinityal/webgpu/internal.js.map +1 -1
  358. package/docs/global/reference/classes/README.md +90 -0
  359. package/docs/resource/concepts/format-capabilities.md +3 -3
  360. package/docs/resource/formats/README.md +1 -1
  361. package/docs/resource/reference/classes/core.md +31 -1
  362. package/docs/resource/reference/classes/formats.md +7 -7
  363. package/docs/resource/reference/classes/resources.md +76 -16
  364. package/docs/trinity/reference/classes/generated.md +0 -10
  365. package/docs/trinity/reference/classes/trinity-core.md +1692 -1682
  366. package/docs/trinityal/reference/classes/README.md +0 -10
  367. package/docs/trinityal/webgpu/reference/classes/README.md +276 -266
  368. package/package.json +4 -3
  369. package/dist/global/consts/webgpu/index.js +0 -2
  370. package/dist/global/consts/webgpu/textureFormats.js +0 -180
  371. package/dist/global/consts/webgpu/textureFormats.js.map +0 -1
  372. package/dist/resource/formats/dxbc/core/container.js.map +0 -1
  373. package/dist/resource/formats/dxbc/core/errors.js.map +0 -1
  374. package/dist/resource/formats/dxbc/core/program.js.map +0 -1
  375. package/dist/resource/formats/dxbc/core/signature.js.map +0 -1
  376. package/dist/resource/formats/stl/core/targets.js.map +0 -1
  377. package/dist/resource/formats/webgl/core/errors.js.map +0 -1
  378. package/dist/resource/formats/webgl/core/glsl/DxbcGlslHelpers.js.map +0 -1
  379. package/dist/resource/formats/webgpu/core/errors.js.map +0 -1
  380. package/dist/resource/texture/texturePipelineBehavior.js +0 -332
  381. package/dist/resource/texture/texturePipelineBehavior.js.map +0 -1
  382. package/dist/trinity/generated/trinityCore/Tr2TextureReference.js +0 -40
  383. package/dist/trinity/generated/trinityCore/Tr2TextureReference.js.map +0 -1
  384. package/dist/trinityal/Tr2BitmapDimensions.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CjsPickleProtocol4Reader.js","sources":["../../../../../../src/resource/formats/pickle/core/CjsPickleProtocol4Reader.js"],"sourcesContent":["import {\n MARK,\n PICKLE_LIMITS,\n append,\n appendItems,\n assertJSONCompatible,\n chargeOperation,\n createEmptyContainer,\n createGlobalMarker,\n createState,\n displayOpcode,\n getMemo,\n normalizeBytes,\n normalizeLimits,\n pickleError,\n push,\n putMemo,\n readDictionary,\n readSequence,\n reduce,\n rejectGlobalMarker,\n requireContainerLimit,\n requireStack,\n setItem,\n setItems,\n stateError,\n stop\n} from \"./pickleCommon.js\";\n\nexport const PICKLE_PROTOCOL_4_LIMITS = PICKLE_LIMITS;\n\nconst DEFAULT_PROTOCOL = 4;\nconst MAXIMUM_PROTOCOL = 4;\nconst UTF8 = new TextDecoder(\"utf-8\", { fatal: true });\n\n/**\n * Construction-bound decoder for the inert data subset of Python pickle's\n * binary protocols, 1 through 4.\n *\n * Protocol 4 is what matters in practice - it is what CCP's localization\n * containers ship as - but the binary protocols are a strict chain of\n * additions, not four separate formats, so refusing 1 through 3 would mean\n * rejecting files this reader already knows how to spell. The declared protocol\n * is read from `PROTO` and reported on every error.\n *\n * The refusal discipline is identical to protocol 0's, because it is literally\n * the same code: `pickleCommon` owns the memo, the containers, the JSON rules\n * and the closed set of globals, so the only thing this file decides is how\n * bytes become values. Nothing here imports, resolves or invokes anything, and\n * an opcode outside the data subset fails closed at its byte offset.\n *\n * Two decoded shapes differ from protocol 0 because the protocol has types it\n * does not:\n *\n * - `BINBYTES` produces a `Uint8Array`. Bytes are not a JSON value and inventing\n * one (an array of numbers, a base64 string) would be indistinguishable in the\n * output from data that really was that. The payload emit carries it; the JSON\n * emit refuses it, which is the honest answer.\n * - `BINSTRING` produces latin-1 text, matching protocol 0's `STRING`. It is\n * Python 2's `str`, which is a byte string with no declared encoding, and\n * latin-1 is the mapping that loses nothing.\n */\nexport class CjsPickleProtocol4Reader\n{\n #bytes;\n #limits;\n\n /**\n * Bind one byte source and its resource limits.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Binary-protocol pickle bytes.\n * @param {object} [options] Reader options containing optional limits.\n */\n constructor(input, options = {})\n {\n this.#bytes = normalizeBytes(input);\n this.#limits = normalizeLimits(options.limits ?? options);\n\n if (this.#bytes.byteLength > this.#limits.maxInputBytes)\n {\n throw pickleError(\n \"CJS_PICKLE_FORMAT_LIMIT_EXCEEDED\",\n `Pickle input exceeds maxInputBytes (${this.#limits.maxInputBytes}).`,\n 0,\n DEFAULT_PROTOCOL\n );\n }\n }\n\n /**\n * Decode an inert JavaScript value while preserving pickle memo identity.\n *\n * @returns {*} Decoded scalar, array, or plain object graph.\n */\n Read()\n {\n return decode(this.#bytes, this.#limits);\n }\n\n /**\n * Decode a value and reject cycles or values JSON cannot represent.\n *\n * @returns {*} JSON-compatible decoded graph.\n */\n ReadJSON()\n {\n const value = this.Read();\n assertJSONCompatible(value);\n return value;\n }\n\n /**\n * Verify that a decoded value can cross the JSON boundary unchanged.\n *\n * @param {*} value Candidate decoded graph.\n * @returns {*} The supplied value.\n */\n static ToJSON(value)\n {\n assertJSONCompatible(value);\n return value;\n }\n}\n\nfunction decode(bytes, limits)\n{\n const state = createState(bytes, limits, DEFAULT_PROTOCOL);\n\n while (state.offset < bytes.byteLength)\n {\n const opcodeOffset = state.offset;\n const opcode = bytes[state.offset++];\n\n chargeOperation(state, opcodeOffset);\n\n switch (opcode)\n {\n case 0x80: // PROTO\n readProtocol(state, opcodeOffset);\n break;\n\n case 0x95: // FRAME\n readFrame(state, opcodeOffset);\n break;\n\n case 0x28: // MARK\n state.marks.push(state.stack.length);\n push(state, MARK, opcodeOffset);\n break;\n\n case 0x2e: // STOP\n return stop(state, opcodeOffset);\n\n case 0x4e: // NONE\n push(state, null, opcodeOffset);\n break;\n\n case 0x88: // NEWTRUE\n push(state, true, opcodeOffset);\n break;\n\n case 0x89: // NEWFALSE\n push(state, false, opcodeOffset);\n break;\n\n case 0x4b: // BININT1\n push(state, readUnsigned(state, 1, opcodeOffset), opcodeOffset);\n break;\n\n case 0x4d: // BININT2\n push(state, readUnsigned(state, 2, opcodeOffset), opcodeOffset);\n break;\n\n case 0x4a: // BININT\n push(state, readSignedInt32(state, opcodeOffset), opcodeOffset);\n break;\n\n case 0x8a: // LONG1\n push(state, readLong(state, readUnsigned(state, 1, opcodeOffset), opcodeOffset), opcodeOffset);\n break;\n\n case 0x8b: // LONG4\n push(state, readLong(state, readSignedInt32(state, opcodeOffset), opcodeOffset), opcodeOffset);\n break;\n\n case 0x47: // BINFLOAT\n push(state, readFloat(state, opcodeOffset), opcodeOffset);\n break;\n\n case 0x8c: // SHORT_BINUNICODE\n push(state, readText(state, readUnsigned(state, 1, opcodeOffset), opcodeOffset), opcodeOffset);\n break;\n\n case 0x58: // BINUNICODE\n push(state, readText(state, readUnsigned(state, 4, opcodeOffset), opcodeOffset), opcodeOffset);\n break;\n\n case 0x8d: // BINUNICODE8\n push(state, readText(state, readLength64(state, opcodeOffset), opcodeOffset), opcodeOffset);\n break;\n\n case 0x55: // SHORT_BINSTRING\n push(state, readLatin1(state, readUnsigned(state, 1, opcodeOffset), opcodeOffset), opcodeOffset);\n break;\n\n case 0x54: // BINSTRING\n push(state, readLatin1(state, readSignedInt32(state, opcodeOffset), opcodeOffset), opcodeOffset);\n break;\n\n case 0x43: // SHORT_BINBYTES\n push(state, readBytes(state, readUnsigned(state, 1, opcodeOffset), opcodeOffset), opcodeOffset);\n break;\n\n case 0x42: // BINBYTES\n push(state, readBytes(state, readUnsigned(state, 4, opcodeOffset), opcodeOffset), opcodeOffset);\n break;\n\n case 0x8e: // BINBYTES8\n push(state, readBytes(state, readLength64(state, opcodeOffset), opcodeOffset), opcodeOffset);\n break;\n\n case 0x5d: // EMPTY_LIST\n push(state, createEmptyContainer(state, \"list\"), opcodeOffset);\n break;\n\n case 0x7d: // EMPTY_DICT\n push(state, createEmptyContainer(state, \"dictionary\"), opcodeOffset);\n break;\n\n case 0x29: // EMPTY_TUPLE\n push(state, createEmptyContainer(state, \"tuple\"), opcodeOffset);\n break;\n\n case 0x85: // TUPLE1\n push(state, readShortTuple(state, 1, opcodeOffset), opcodeOffset);\n break;\n\n case 0x86: // TUPLE2\n push(state, readShortTuple(state, 2, opcodeOffset), opcodeOffset);\n break;\n\n case 0x87: // TUPLE3\n push(state, readShortTuple(state, 3, opcodeOffset), opcodeOffset);\n break;\n\n case 0x74: // TUPLE\n push(state, readSequence(state, opcodeOffset, false), opcodeOffset);\n break;\n\n case 0x6c: // LIST\n push(state, readSequence(state, opcodeOffset, true), opcodeOffset);\n break;\n\n case 0x64: // DICT\n push(state, readDictionary(state, opcodeOffset), opcodeOffset);\n break;\n\n case 0x61: // APPEND\n append(state, opcodeOffset);\n break;\n\n case 0x65: // APPENDS\n appendItems(state, opcodeOffset);\n break;\n\n case 0x73: // SETITEM\n setItem(state, opcodeOffset);\n break;\n\n case 0x75: // SETITEMS\n setItems(state, opcodeOffset);\n break;\n\n case 0x94: // MEMOIZE\n putMemo(state, state.memo.size, opcodeOffset);\n break;\n\n case 0x71: // BINPUT\n putMemo(state, readUnsigned(state, 1, opcodeOffset), opcodeOffset);\n break;\n\n case 0x72: // LONG_BINPUT\n putMemo(state, readUnsigned(state, 4, opcodeOffset), opcodeOffset);\n break;\n\n case 0x68: // BINGET\n getMemo(state, readUnsigned(state, 1, opcodeOffset), opcodeOffset);\n break;\n\n case 0x6a: // LONG_BINGET\n getMemo(state, readUnsigned(state, 4, opcodeOffset), opcodeOffset);\n break;\n\n case 0x93: // STACK_GLOBAL\n push(state, readStackGlobal(state, opcodeOffset), opcodeOffset);\n break;\n\n case 0x52: // REDUCE\n reduce(state, opcodeOffset);\n break;\n\n default:\n throw stateError(\n state,\n \"CJS_PICKLE_FORMAT_OPCODE_UNSUPPORTED\",\n `Data-only pickle protocol ${state.protocol} rejects opcode ${displayOpcode(opcode)}.`,\n opcodeOffset\n );\n }\n }\n\n throw stateError(\n state,\n \"CJS_PICKLE_FORMAT_STOP_MISSING\",\n \"Pickle input ended without a STOP opcode.\",\n state.offset\n );\n}\n\n/**\n * Reads PROTO, which declares the protocol the rest of the stream is written\n * in. It is recorded rather than checked against the opcodes that follow: a\n * stream using an opcode its declared protocol does not have is a stream we can\n * still decode correctly, and the opcode set is what actually bounds us.\n */\nfunction readProtocol(state, offset)\n{\n const version = readUnsigned(state, 1, offset);\n\n if (version > MAXIMUM_PROTOCOL)\n {\n throw stateError(\n state,\n \"CJS_PICKLE_FORMAT_PROTOCOL_UNSUPPORTED\",\n `Pickle declares protocol ${version}, above the supported maximum of ${MAXIMUM_PROTOCOL}.`,\n offset\n );\n }\n\n state.protocol = version;\n}\n\n/**\n * Reads FRAME, which is a size hint for a streaming unpickler and carries no\n * data. The length is validated against what remains so a truncated file fails\n * here rather than part-way through a value.\n */\nfunction readFrame(state, offset)\n{\n const length = readLength64(state, offset);\n\n if (length > state.bytes.byteLength - state.offset)\n {\n throw stateError(\n state,\n \"CJS_PICKLE_FORMAT_EOF\",\n \"Pickle frame extends past the end of the input.\",\n offset\n );\n }\n}\n\nfunction requireBytes(state, count, offset)\n{\n if (count < 0 || state.offset + count > state.bytes.byteLength)\n {\n throw stateError(\n state,\n \"CJS_PICKLE_FORMAT_EOF\",\n \"Pickle opcode argument extends past the end of the input.\",\n offset\n );\n }\n}\n\nfunction readUnsigned(state, size, offset)\n{\n requireBytes(state, size, offset);\n\n let result = 0;\n for (let index = 0; index < size; index += 1)\n {\n result += state.bytes[state.offset + index] * 2 ** (8 * index);\n }\n state.offset += size;\n return result;\n}\n\nfunction readSignedInt32(state, offset)\n{\n const value = readUnsigned(state, 4, offset);\n return value >= 0x80000000 ? value - 0x100000000 : value;\n}\n\n/**\n * Reads an 8-byte length. Bounded by `maxInputBytes` rather than by the\n * integer's own range, because a length beyond the input cannot be honoured\n * whatever it says.\n */\nfunction readLength64(state, offset)\n{\n requireBytes(state, 8, offset);\n\n const view = new DataView(state.bytes.buffer, state.bytes.byteOffset + state.offset, 8);\n const value = view.getBigUint64(0, true);\n state.offset += 8;\n\n if (value > BigInt(state.limits.maxInputBytes))\n {\n throw stateError(\n state,\n \"CJS_PICKLE_FORMAT_LIMIT_EXCEEDED\",\n `Pickle length exceeds maxInputBytes (${state.limits.maxInputBytes}).`,\n offset\n );\n }\n return Number(value);\n}\n\nfunction readFloat(state, offset)\n{\n requireBytes(state, 8, offset);\n\n const view = new DataView(state.bytes.buffer, state.bytes.byteOffset + state.offset, 8);\n const result = view.getFloat64(0, false);\n state.offset += 8;\n\n if (!Number.isFinite(result))\n {\n throw stateError(\n state,\n \"CJS_PICKLE_FORMAT_NUMBER_INVALID\",\n \"Pickle BINFLOAT must be finite for JSON-compatible output.\",\n offset\n );\n }\n return result;\n}\n\n/**\n * Reads a little-endian two's-complement integer of arbitrary width, returning\n * a decimal string once it leaves the safe-integer range - the same fallback\n * protocol 0's LONG uses, so a long is spelled identically whichever protocol\n * carried it.\n */\nfunction readLong(state, size, offset)\n{\n if (size === 0) return 0;\n requireBytes(state, size, offset);\n\n let result = 0n;\n for (let index = size - 1; index >= 0; index -= 1)\n {\n result = (result << 8n) | BigInt(state.bytes[state.offset + index]);\n }\n if (state.bytes[state.offset + size - 1] & 0x80)\n {\n result -= 1n << BigInt(8 * size);\n }\n state.offset += size;\n\n if (result >= BigInt(Number.MIN_SAFE_INTEGER) && result <= BigInt(Number.MAX_SAFE_INTEGER))\n {\n return Number(result);\n }\n return result.toString();\n}\n\nfunction requireStringLength(state, length, offset)\n{\n if (length > state.limits.maxStringBytes)\n {\n throw stateError(\n state,\n \"CJS_PICKLE_FORMAT_LIMIT_EXCEEDED\",\n `Pickle string exceeds maxStringBytes (${state.limits.maxStringBytes}).`,\n offset\n );\n }\n requireBytes(state, length, offset);\n}\n\nfunction readText(state, length, offset)\n{\n requireStringLength(state, length, offset);\n\n const bytes = state.bytes.subarray(state.offset, state.offset + length);\n state.offset += length;\n\n try\n {\n return UTF8.decode(bytes);\n }\n catch\n {\n throw stateError(\n state,\n \"CJS_PICKLE_FORMAT_STRING_INVALID\",\n \"Pickle unicode string is not valid UTF-8.\",\n offset\n );\n }\n}\n\nfunction readLatin1(state, length, offset)\n{\n requireStringLength(state, length, offset);\n\n let result = \"\";\n for (let index = 0; index < length; index += 1)\n {\n result += String.fromCharCode(state.bytes[state.offset + index]);\n }\n state.offset += length;\n return result;\n}\n\nfunction readBytes(state, length, offset)\n{\n requireStringLength(state, length, offset);\n\n const result = state.bytes.slice(state.offset, state.offset + length);\n state.offset += length;\n return result;\n}\n\nfunction readShortTuple(state, size, offset)\n{\n requireStack(state, size, offset);\n requireContainerLimit(state, size, offset);\n\n const values = state.stack.splice(state.stack.length - size, size);\n for (const value of values) rejectGlobalMarker(state, value, offset);\n state.containers.set(values, values.length);\n return values;\n}\n\n/** Reads a STACK_GLOBAL, and refuses every name outside the closed set. */\nfunction readStackGlobal(state, offset)\n{\n requireStack(state, 2, offset);\n\n const attribute = state.stack.pop();\n const module = state.stack.pop();\n\n if (typeof module !== \"string\" || typeof attribute !== \"string\")\n {\n throw stateError(\n state,\n \"CJS_PICKLE_FORMAT_GLOBAL_UNSUPPORTED\",\n \"Pickle STACK_GLOBAL requires a module and attribute name.\",\n offset\n );\n }\n\n return createGlobalMarker(state, `${module}.${attribute}`, offset);\n}\n\nexport default CjsPickleProtocol4Reader;\n"],"names":["DEFAULT_PROTOCOL","MAXIMUM_PROTOCOL","UTF8","TextDecoder","fatal","CjsPickleProtocol4Reader","constructor","input","options","normalizeBytes","normalizeLimits","limits","byteLength","maxInputBytes","pickleError","Read","decode","ReadJSON","value","assertJSONCompatible","ToJSON","bytes","state","createState","offset","opcodeOffset","opcode","chargeOperation","readProtocol","readFrame","marks","push","stack","length","MARK","stop","readUnsigned","readSignedInt32","readLong","readFloat","readText","readLength64","readLatin1","readBytes","createEmptyContainer","readShortTuple","readSequence","readDictionary","append","appendItems","setItem","setItems","putMemo","memo","size","getMemo","readStackGlobal","reduce","stateError","protocol","displayOpcode","version","requireBytes","count","result","index","view","DataView","buffer","byteOffset","getBigUint64","BigInt","Number","getFloat64","isFinite","MIN_SAFE_INTEGER","MAX_SAFE_INTEGER","toString","requireStringLength","maxStringBytes","subarray","String","fromCharCode","slice","requireStack","requireContainerLimit","values","splice","rejectGlobalMarker","containers","set","attribute","pop","module","createGlobalMarker"],"mappings":"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"}
1
+ {"version":3,"file":"CjsPickleProtocol4Reader.js","sources":["../../../../../../src/resource/formats/pickle/core/CjsPickleProtocol4Reader.js"],"sourcesContent":["import {\n MARK,\n PICKLE_LIMITS,\n append,\n appendItems,\n assertJSONCompatible,\n chargeOperation,\n createEmptyContainer,\n createGlobalMarker,\n createState,\n displayOpcode,\n getMemo,\n normalizeBytes,\n normalizeLimits,\n pickleError,\n push,\n putMemo,\n readDictionary,\n readSequence,\n reduce,\n rejectGlobalMarker,\n requireContainerLimit,\n requireStack,\n setItem,\n setItems,\n stateError,\n stop\n} from \"./pickleCommon.js\";\n\nexport const PICKLE_PROTOCOL_4_LIMITS = PICKLE_LIMITS;\n\nconst DEFAULT_PROTOCOL = 4;\nconst MAXIMUM_PROTOCOL = 4;\nconst UTF8 = new TextDecoder(\"utf-8\", { fatal: true });\n\n/**\n * Construction-bound decoder for the inert data subset of Python pickle's\n * binary protocols, 1 through 4.\n *\n * Protocol 4 is what matters in practice - it is what CCP's localization\n * containers ship as - but the binary protocols are a strict chain of\n * additions, not four separate formats, so refusing 1 through 3 would mean\n * rejecting files this reader already knows how to spell. The declared protocol\n * is read from `PROTO` and reported on every error.\n *\n * The refusal discipline is identical to protocol 0's, because it is literally\n * the same code: `pickleCommon` owns the memo, the containers, the JSON rules\n * and the closed set of globals, so the only thing this file decides is how\n * bytes become values. Nothing here imports, resolves or invokes anything, and\n * an opcode outside the data subset fails closed at its byte offset.\n *\n * Two decoded shapes differ from protocol 0 because the protocol has types it\n * does not:\n *\n * - `BINBYTES` produces a `Uint8Array`. Bytes are not a JSON value and inventing\n * one (an array of numbers, a base64 string) would be indistinguishable in the\n * output from data that really was that. The payload emit carries it; the JSON\n * emit refuses it, which is the honest answer.\n * - `BINSTRING` produces latin-1 text, matching protocol 0's `STRING`. It is\n * Python 2's `str`, which is a byte string with no declared encoding, and\n * latin-1 is the mapping that loses nothing.\n */\nexport class CjsPickleProtocol4Reader\n{\n _bytes;\n _limits;\n\n /**\n * Bind one byte source and its resource limits.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Binary-protocol pickle bytes.\n * @param {object} [options] Reader options containing optional limits.\n */\n constructor(input, options = {})\n {\n this._bytes = normalizeBytes(input);\n this._limits = normalizeLimits(options.limits ?? options);\n\n if (this._bytes.byteLength > this._limits.maxInputBytes)\n {\n throw pickleError(\n \"CJS_PICKLE_FORMAT_LIMIT_EXCEEDED\",\n `Pickle input exceeds maxInputBytes (${this._limits.maxInputBytes}).`,\n 0,\n DEFAULT_PROTOCOL\n );\n }\n }\n\n /**\n * Decode an inert JavaScript value while preserving pickle memo identity.\n *\n * @returns {*} Decoded scalar, array, or plain object graph.\n */\n Read()\n {\n return decode(this._bytes, this._limits);\n }\n\n /**\n * Decode a value and reject cycles or values JSON cannot represent.\n *\n * @returns {*} JSON-compatible decoded graph.\n */\n ReadJSON()\n {\n const value = this.Read();\n assertJSONCompatible(value);\n return value;\n }\n\n /**\n * Verify that a decoded value can cross the JSON boundary unchanged.\n *\n * @param {*} value Candidate decoded graph.\n * @returns {*} The supplied value.\n */\n static ToJSON(value)\n {\n assertJSONCompatible(value);\n return value;\n }\n}\n\nfunction decode(bytes, limits)\n{\n const state = createState(bytes, limits, DEFAULT_PROTOCOL);\n\n while (state.offset < bytes.byteLength)\n {\n const opcodeOffset = state.offset;\n const opcode = bytes[state.offset++];\n\n chargeOperation(state, opcodeOffset);\n\n switch (opcode)\n {\n case 0x80: // PROTO\n readProtocol(state, opcodeOffset);\n break;\n\n case 0x95: // FRAME\n readFrame(state, opcodeOffset);\n break;\n\n case 0x28: // MARK\n state.marks.push(state.stack.length);\n push(state, MARK, opcodeOffset);\n break;\n\n case 0x2e: // STOP\n return stop(state, opcodeOffset);\n\n case 0x4e: // NONE\n push(state, null, opcodeOffset);\n break;\n\n case 0x88: // NEWTRUE\n push(state, true, opcodeOffset);\n break;\n\n case 0x89: // NEWFALSE\n push(state, false, opcodeOffset);\n break;\n\n case 0x4b: // BININT1\n push(state, readUnsigned(state, 1, opcodeOffset), opcodeOffset);\n break;\n\n case 0x4d: // BININT2\n push(state, readUnsigned(state, 2, opcodeOffset), opcodeOffset);\n break;\n\n case 0x4a: // BININT\n push(state, readSignedInt32(state, opcodeOffset), opcodeOffset);\n break;\n\n case 0x8a: // LONG1\n push(state, readLong(state, readUnsigned(state, 1, opcodeOffset), opcodeOffset), opcodeOffset);\n break;\n\n case 0x8b: // LONG4\n push(state, readLong(state, readSignedInt32(state, opcodeOffset), opcodeOffset), opcodeOffset);\n break;\n\n case 0x47: // BINFLOAT\n push(state, readFloat(state, opcodeOffset), opcodeOffset);\n break;\n\n case 0x8c: // SHORT_BINUNICODE\n push(state, readText(state, readUnsigned(state, 1, opcodeOffset), opcodeOffset), opcodeOffset);\n break;\n\n case 0x58: // BINUNICODE\n push(state, readText(state, readUnsigned(state, 4, opcodeOffset), opcodeOffset), opcodeOffset);\n break;\n\n case 0x8d: // BINUNICODE8\n push(state, readText(state, readLength64(state, opcodeOffset), opcodeOffset), opcodeOffset);\n break;\n\n case 0x55: // SHORT_BINSTRING\n push(state, readLatin1(state, readUnsigned(state, 1, opcodeOffset), opcodeOffset), opcodeOffset);\n break;\n\n case 0x54: // BINSTRING\n push(state, readLatin1(state, readSignedInt32(state, opcodeOffset), opcodeOffset), opcodeOffset);\n break;\n\n case 0x43: // SHORT_BINBYTES\n push(state, readBytes(state, readUnsigned(state, 1, opcodeOffset), opcodeOffset), opcodeOffset);\n break;\n\n case 0x42: // BINBYTES\n push(state, readBytes(state, readUnsigned(state, 4, opcodeOffset), opcodeOffset), opcodeOffset);\n break;\n\n case 0x8e: // BINBYTES8\n push(state, readBytes(state, readLength64(state, opcodeOffset), opcodeOffset), opcodeOffset);\n break;\n\n case 0x5d: // EMPTY_LIST\n push(state, createEmptyContainer(state, \"list\"), opcodeOffset);\n break;\n\n case 0x7d: // EMPTY_DICT\n push(state, createEmptyContainer(state, \"dictionary\"), opcodeOffset);\n break;\n\n case 0x29: // EMPTY_TUPLE\n push(state, createEmptyContainer(state, \"tuple\"), opcodeOffset);\n break;\n\n case 0x85: // TUPLE1\n push(state, readShortTuple(state, 1, opcodeOffset), opcodeOffset);\n break;\n\n case 0x86: // TUPLE2\n push(state, readShortTuple(state, 2, opcodeOffset), opcodeOffset);\n break;\n\n case 0x87: // TUPLE3\n push(state, readShortTuple(state, 3, opcodeOffset), opcodeOffset);\n break;\n\n case 0x74: // TUPLE\n push(state, readSequence(state, opcodeOffset, false), opcodeOffset);\n break;\n\n case 0x6c: // LIST\n push(state, readSequence(state, opcodeOffset, true), opcodeOffset);\n break;\n\n case 0x64: // DICT\n push(state, readDictionary(state, opcodeOffset), opcodeOffset);\n break;\n\n case 0x61: // APPEND\n append(state, opcodeOffset);\n break;\n\n case 0x65: // APPENDS\n appendItems(state, opcodeOffset);\n break;\n\n case 0x73: // SETITEM\n setItem(state, opcodeOffset);\n break;\n\n case 0x75: // SETITEMS\n setItems(state, opcodeOffset);\n break;\n\n case 0x94: // MEMOIZE\n putMemo(state, state.memo.size, opcodeOffset);\n break;\n\n case 0x71: // BINPUT\n putMemo(state, readUnsigned(state, 1, opcodeOffset), opcodeOffset);\n break;\n\n case 0x72: // LONG_BINPUT\n putMemo(state, readUnsigned(state, 4, opcodeOffset), opcodeOffset);\n break;\n\n case 0x68: // BINGET\n getMemo(state, readUnsigned(state, 1, opcodeOffset), opcodeOffset);\n break;\n\n case 0x6a: // LONG_BINGET\n getMemo(state, readUnsigned(state, 4, opcodeOffset), opcodeOffset);\n break;\n\n case 0x93: // STACK_GLOBAL\n push(state, readStackGlobal(state, opcodeOffset), opcodeOffset);\n break;\n\n case 0x52: // REDUCE\n reduce(state, opcodeOffset);\n break;\n\n default:\n throw stateError(\n state,\n \"CJS_PICKLE_FORMAT_OPCODE_UNSUPPORTED\",\n `Data-only pickle protocol ${state.protocol} rejects opcode ${displayOpcode(opcode)}.`,\n opcodeOffset\n );\n }\n }\n\n throw stateError(\n state,\n \"CJS_PICKLE_FORMAT_STOP_MISSING\",\n \"Pickle input ended without a STOP opcode.\",\n state.offset\n );\n}\n\n/**\n * Reads PROTO, which declares the protocol the rest of the stream is written\n * in. It is recorded rather than checked against the opcodes that follow: a\n * stream using an opcode its declared protocol does not have is a stream we can\n * still decode correctly, and the opcode set is what actually bounds us.\n */\nfunction readProtocol(state, offset)\n{\n const version = readUnsigned(state, 1, offset);\n\n if (version > MAXIMUM_PROTOCOL)\n {\n throw stateError(\n state,\n \"CJS_PICKLE_FORMAT_PROTOCOL_UNSUPPORTED\",\n `Pickle declares protocol ${version}, above the supported maximum of ${MAXIMUM_PROTOCOL}.`,\n offset\n );\n }\n\n state.protocol = version;\n}\n\n/**\n * Reads FRAME, which is a size hint for a streaming unpickler and carries no\n * data. The length is validated against what remains so a truncated file fails\n * here rather than part-way through a value.\n */\nfunction readFrame(state, offset)\n{\n const length = readLength64(state, offset);\n\n if (length > state.bytes.byteLength - state.offset)\n {\n throw stateError(\n state,\n \"CJS_PICKLE_FORMAT_EOF\",\n \"Pickle frame extends past the end of the input.\",\n offset\n );\n }\n}\n\nfunction requireBytes(state, count, offset)\n{\n if (count < 0 || state.offset + count > state.bytes.byteLength)\n {\n throw stateError(\n state,\n \"CJS_PICKLE_FORMAT_EOF\",\n \"Pickle opcode argument extends past the end of the input.\",\n offset\n );\n }\n}\n\nfunction readUnsigned(state, size, offset)\n{\n requireBytes(state, size, offset);\n\n let result = 0;\n for (let index = 0; index < size; index += 1)\n {\n result += state.bytes[state.offset + index] * 2 ** (8 * index);\n }\n state.offset += size;\n return result;\n}\n\nfunction readSignedInt32(state, offset)\n{\n const value = readUnsigned(state, 4, offset);\n return value >= 0x80000000 ? value - 0x100000000 : value;\n}\n\n/**\n * Reads an 8-byte length. Bounded by `maxInputBytes` rather than by the\n * integer's own range, because a length beyond the input cannot be honoured\n * whatever it says.\n */\nfunction readLength64(state, offset)\n{\n requireBytes(state, 8, offset);\n\n const view = new DataView(state.bytes.buffer, state.bytes.byteOffset + state.offset, 8);\n const value = view.getBigUint64(0, true);\n state.offset += 8;\n\n if (value > BigInt(state.limits.maxInputBytes))\n {\n throw stateError(\n state,\n \"CJS_PICKLE_FORMAT_LIMIT_EXCEEDED\",\n `Pickle length exceeds maxInputBytes (${state.limits.maxInputBytes}).`,\n offset\n );\n }\n return Number(value);\n}\n\nfunction readFloat(state, offset)\n{\n requireBytes(state, 8, offset);\n\n const view = new DataView(state.bytes.buffer, state.bytes.byteOffset + state.offset, 8);\n const result = view.getFloat64(0, false);\n state.offset += 8;\n\n if (!Number.isFinite(result))\n {\n throw stateError(\n state,\n \"CJS_PICKLE_FORMAT_NUMBER_INVALID\",\n \"Pickle BINFLOAT must be finite for JSON-compatible output.\",\n offset\n );\n }\n return result;\n}\n\n/**\n * Reads a little-endian two's-complement integer of arbitrary width, returning\n * a decimal string once it leaves the safe-integer range - the same fallback\n * protocol 0's LONG uses, so a long is spelled identically whichever protocol\n * carried it.\n */\nfunction readLong(state, size, offset)\n{\n if (size === 0) return 0;\n requireBytes(state, size, offset);\n\n let result = 0n;\n for (let index = size - 1; index >= 0; index -= 1)\n {\n result = (result << 8n) | BigInt(state.bytes[state.offset + index]);\n }\n if (state.bytes[state.offset + size - 1] & 0x80)\n {\n result -= 1n << BigInt(8 * size);\n }\n state.offset += size;\n\n if (result >= BigInt(Number.MIN_SAFE_INTEGER) && result <= BigInt(Number.MAX_SAFE_INTEGER))\n {\n return Number(result);\n }\n return result.toString();\n}\n\nfunction requireStringLength(state, length, offset)\n{\n if (length > state.limits.maxStringBytes)\n {\n throw stateError(\n state,\n \"CJS_PICKLE_FORMAT_LIMIT_EXCEEDED\",\n `Pickle string exceeds maxStringBytes (${state.limits.maxStringBytes}).`,\n offset\n );\n }\n requireBytes(state, length, offset);\n}\n\nfunction readText(state, length, offset)\n{\n requireStringLength(state, length, offset);\n\n const bytes = state.bytes.subarray(state.offset, state.offset + length);\n state.offset += length;\n\n try\n {\n return UTF8.decode(bytes);\n }\n catch\n {\n throw stateError(\n state,\n \"CJS_PICKLE_FORMAT_STRING_INVALID\",\n \"Pickle unicode string is not valid UTF-8.\",\n offset\n );\n }\n}\n\nfunction readLatin1(state, length, offset)\n{\n requireStringLength(state, length, offset);\n\n let result = \"\";\n for (let index = 0; index < length; index += 1)\n {\n result += String.fromCharCode(state.bytes[state.offset + index]);\n }\n state.offset += length;\n return result;\n}\n\nfunction readBytes(state, length, offset)\n{\n requireStringLength(state, length, offset);\n\n const result = state.bytes.slice(state.offset, state.offset + length);\n state.offset += length;\n return result;\n}\n\nfunction readShortTuple(state, size, offset)\n{\n requireStack(state, size, offset);\n requireContainerLimit(state, size, offset);\n\n const values = state.stack.splice(state.stack.length - size, size);\n for (const value of values) rejectGlobalMarker(state, value, offset);\n state.containers.set(values, values.length);\n return values;\n}\n\n/** Reads a STACK_GLOBAL, and refuses every name outside the closed set. */\nfunction readStackGlobal(state, offset)\n{\n requireStack(state, 2, offset);\n\n const attribute = state.stack.pop();\n const module = state.stack.pop();\n\n if (typeof module !== \"string\" || typeof attribute !== \"string\")\n {\n throw stateError(\n state,\n \"CJS_PICKLE_FORMAT_GLOBAL_UNSUPPORTED\",\n \"Pickle STACK_GLOBAL requires a module and attribute name.\",\n offset\n );\n }\n\n return createGlobalMarker(state, `${module}.${attribute}`, offset);\n}\n\nexport default CjsPickleProtocol4Reader;\n"],"names":["DEFAULT_PROTOCOL","MAXIMUM_PROTOCOL","UTF8","TextDecoder","fatal","CjsPickleProtocol4Reader","_bytes","_limits","constructor","input","options","normalizeBytes","normalizeLimits","limits","byteLength","maxInputBytes","pickleError","Read","decode","ReadJSON","value","assertJSONCompatible","ToJSON","bytes","state","createState","offset","opcodeOffset","opcode","chargeOperation","readProtocol","readFrame","marks","push","stack","length","MARK","stop","readUnsigned","readSignedInt32","readLong","readFloat","readText","readLength64","readLatin1","readBytes","createEmptyContainer","readShortTuple","readSequence","readDictionary","append","appendItems","setItem","setItems","putMemo","memo","size","getMemo","readStackGlobal","reduce","stateError","protocol","displayOpcode","version","requireBytes","count","result","index","view","DataView","buffer","byteOffset","getBigUint64","BigInt","Number","getFloat64","isFinite","MIN_SAFE_INTEGER","MAX_SAFE_INTEGER","toString","requireStringLength","maxStringBytes","subarray","String","fromCharCode","slice","requireStack","requireContainerLimit","values","splice","rejectGlobalMarker","containers","set","attribute","pop","module","createGlobalMarker"],"mappings":";;AA+BA,MAAMA,gBAAgB,GAAG,CAAC;AAC1B,MAAMC,gBAAgB,GAAG,CAAC;AAC1B,MAAMC,IAAI,GAAG,IAAIC,WAAW,CAAC,OAAO,EAAE;AAAEC,EAAAA,KAAK,EAAE;AAAK,CAAC,CAAC;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,wBAAwB,CACrC;EACEC,MAAM;EACNC,OAAO;;AAEP;AACF;AACA;AACA;AACA;AACA;AACEC,EAAAA,WAAWA,CAACC,KAAK,EAAEC,OAAO,GAAG,EAAE,EAC/B;AACE,IAAA,IAAI,CAACJ,MAAM,GAAGK,cAAc,CAACF,KAAK,CAAC;IACnC,IAAI,CAACF,OAAO,GAAGK,eAAe,CAACF,OAAO,CAACG,MAAM,IAAIH,OAAO,CAAC;IAEzD,IAAI,IAAI,CAACJ,MAAM,CAACQ,UAAU,GAAG,IAAI,CAACP,OAAO,CAACQ,aAAa,EACvD;AACE,MAAA,MAAMC,WAAW,CACf,kCAAkC,EAClC,uCAAuC,IAAI,CAACT,OAAO,CAACQ,aAAa,CAAA,EAAA,CAAI,EACrE,CAAC,EACDf,gBACF,CAAC;AACH,IAAA;AACF,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACEiB,EAAAA,IAAIA,GACJ;IACE,OAAOC,MAAM,CAAC,IAAI,CAACZ,MAAM,EAAE,IAAI,CAACC,OAAO,CAAC;AAC1C,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACEY,EAAAA,QAAQA,GACR;AACE,IAAA,MAAMC,KAAK,GAAG,IAAI,CAACH,IAAI,EAAE;IACzBI,oBAAoB,CAACD,KAAK,CAAC;AAC3B,IAAA,OAAOA,KAAK;AACd,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;EACE,OAAOE,MAAMA,CAACF,KAAK,EACnB;IACEC,oBAAoB,CAACD,KAAK,CAAC;AAC3B,IAAA,OAAOA,KAAK;AACd,EAAA;AACF;AAEA,SAASF,MAAMA,CAACK,KAAK,EAAEV,MAAM,EAC7B;EACE,MAAMW,KAAK,GAAGC,WAAW,CAACF,KAAK,EAAEV,MAAM,EAAEb,gBAAgB,CAAC;AAE1D,EAAA,OAAOwB,KAAK,CAACE,MAAM,GAAGH,KAAK,CAACT,UAAU,EACtC;AACE,IAAA,MAAMa,YAAY,GAAGH,KAAK,CAACE,MAAM;IACjC,MAAME,MAAM,GAAGL,KAAK,CAACC,KAAK,CAACE,MAAM,EAAE,CAAC;AAEpCG,IAAAA,eAAe,CAACL,KAAK,EAAEG,YAAY,CAAC;AAEpC,IAAA,QAAQC,MAAM;AAEZ,MAAA,KAAK,IAAI;AAAE;AACTE,QAAAA,YAAY,CAACN,KAAK,EAAEG,YAAY,CAAC;AACjC,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;AACTI,QAAAA,SAAS,CAACP,KAAK,EAAEG,YAAY,CAAC;AAC9B,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;QACTH,KAAK,CAACQ,KAAK,CAACC,IAAI,CAACT,KAAK,CAACU,KAAK,CAACC,MAAM,CAAC;AACpCF,QAAAA,IAAI,CAACT,KAAK,EAAEY,IAAI,EAAET,YAAY,CAAC;AAC/B,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;AACT,QAAA,OAAOU,IAAI,CAACb,KAAK,EAAEG,YAAY,CAAC;AAElC,MAAA,KAAK,IAAI;AAAE;AACTM,QAAAA,IAAI,CAACT,KAAK,EAAE,IAAI,EAAEG,YAAY,CAAC;AAC/B,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;AACTM,QAAAA,IAAI,CAACT,KAAK,EAAE,IAAI,EAAEG,YAAY,CAAC;AAC/B,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;AACTM,QAAAA,IAAI,CAACT,KAAK,EAAE,KAAK,EAAEG,YAAY,CAAC;AAChC,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;AACTM,QAAAA,IAAI,CAACT,KAAK,EAAEc,YAAY,CAACd,KAAK,EAAE,CAAC,EAAEG,YAAY,CAAC,EAAEA,YAAY,CAAC;AAC/D,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;AACTM,QAAAA,IAAI,CAACT,KAAK,EAAEc,YAAY,CAACd,KAAK,EAAE,CAAC,EAAEG,YAAY,CAAC,EAAEA,YAAY,CAAC;AAC/D,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;QACTM,IAAI,CAACT,KAAK,EAAEe,eAAe,CAACf,KAAK,EAAEG,YAAY,CAAC,EAAEA,YAAY,CAAC;AAC/D,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;QACTM,IAAI,CAACT,KAAK,EAAEgB,QAAQ,CAAChB,KAAK,EAAEc,YAAY,CAACd,KAAK,EAAE,CAAC,EAAEG,YAAY,CAAC,EAAEA,YAAY,CAAC,EAAEA,YAAY,CAAC;AAC9F,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;AACTM,QAAAA,IAAI,CAACT,KAAK,EAAEgB,QAAQ,CAAChB,KAAK,EAAEe,eAAe,CAACf,KAAK,EAAEG,YAAY,CAAC,EAAEA,YAAY,CAAC,EAAEA,YAAY,CAAC;AAC9F,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;QACTM,IAAI,CAACT,KAAK,EAAEiB,SAAS,CAACjB,KAAK,EAAEG,YAAY,CAAC,EAAEA,YAAY,CAAC;AACzD,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;QACTM,IAAI,CAACT,KAAK,EAAEkB,QAAQ,CAAClB,KAAK,EAAEc,YAAY,CAACd,KAAK,EAAE,CAAC,EAAEG,YAAY,CAAC,EAAEA,YAAY,CAAC,EAAEA,YAAY,CAAC;AAC9F,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;QACTM,IAAI,CAACT,KAAK,EAAEkB,QAAQ,CAAClB,KAAK,EAAEc,YAAY,CAACd,KAAK,EAAE,CAAC,EAAEG,YAAY,CAAC,EAAEA,YAAY,CAAC,EAAEA,YAAY,CAAC;AAC9F,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;AACTM,QAAAA,IAAI,CAACT,KAAK,EAAEkB,QAAQ,CAAClB,KAAK,EAAEmB,YAAY,CAACnB,KAAK,EAAEG,YAAY,CAAC,EAAEA,YAAY,CAAC,EAAEA,YAAY,CAAC;AAC3F,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;QACTM,IAAI,CAACT,KAAK,EAAEoB,UAAU,CAACpB,KAAK,EAAEc,YAAY,CAACd,KAAK,EAAE,CAAC,EAAEG,YAAY,CAAC,EAAEA,YAAY,CAAC,EAAEA,YAAY,CAAC;AAChG,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;AACTM,QAAAA,IAAI,CAACT,KAAK,EAAEoB,UAAU,CAACpB,KAAK,EAAEe,eAAe,CAACf,KAAK,EAAEG,YAAY,CAAC,EAAEA,YAAY,CAAC,EAAEA,YAAY,CAAC;AAChG,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;QACTM,IAAI,CAACT,KAAK,EAAEqB,SAAS,CAACrB,KAAK,EAAEc,YAAY,CAACd,KAAK,EAAE,CAAC,EAAEG,YAAY,CAAC,EAAEA,YAAY,CAAC,EAAEA,YAAY,CAAC;AAC/F,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;QACTM,IAAI,CAACT,KAAK,EAAEqB,SAAS,CAACrB,KAAK,EAAEc,YAAY,CAACd,KAAK,EAAE,CAAC,EAAEG,YAAY,CAAC,EAAEA,YAAY,CAAC,EAAEA,YAAY,CAAC;AAC/F,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;AACTM,QAAAA,IAAI,CAACT,KAAK,EAAEqB,SAAS,CAACrB,KAAK,EAAEmB,YAAY,CAACnB,KAAK,EAAEG,YAAY,CAAC,EAAEA,YAAY,CAAC,EAAEA,YAAY,CAAC;AAC5F,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;QACTM,IAAI,CAACT,KAAK,EAAEsB,oBAAoB,CAACtB,KAAK,EAAE,MAAM,CAAC,EAAEG,YAAY,CAAC;AAC9D,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;QACTM,IAAI,CAACT,KAAK,EAAEsB,oBAAoB,CAACtB,KAAK,EAAE,YAAY,CAAC,EAAEG,YAAY,CAAC;AACpE,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;QACTM,IAAI,CAACT,KAAK,EAAEsB,oBAAoB,CAACtB,KAAK,EAAE,OAAO,CAAC,EAAEG,YAAY,CAAC;AAC/D,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;AACTM,QAAAA,IAAI,CAACT,KAAK,EAAEuB,cAAc,CAACvB,KAAK,EAAE,CAAC,EAAEG,YAAY,CAAC,EAAEA,YAAY,CAAC;AACjE,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;AACTM,QAAAA,IAAI,CAACT,KAAK,EAAEuB,cAAc,CAACvB,KAAK,EAAE,CAAC,EAAEG,YAAY,CAAC,EAAEA,YAAY,CAAC;AACjE,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;AACTM,QAAAA,IAAI,CAACT,KAAK,EAAEuB,cAAc,CAACvB,KAAK,EAAE,CAAC,EAAEG,YAAY,CAAC,EAAEA,YAAY,CAAC;AACjE,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;AACTM,QAAAA,IAAI,CAACT,KAAK,EAAEwB,YAAY,CAACxB,KAAK,EAAEG,YAAY,EAAE,KAAK,CAAC,EAAEA,YAAY,CAAC;AACnE,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;AACTM,QAAAA,IAAI,CAACT,KAAK,EAAEwB,YAAY,CAACxB,KAAK,EAAEG,YAAY,EAAE,IAAI,CAAC,EAAEA,YAAY,CAAC;AAClE,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;QACTM,IAAI,CAACT,KAAK,EAAEyB,cAAc,CAACzB,KAAK,EAAEG,YAAY,CAAC,EAAEA,YAAY,CAAC;AAC9D,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;AACTuB,QAAAA,MAAM,CAAC1B,KAAK,EAAEG,YAAY,CAAC;AAC3B,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;AACTwB,QAAAA,WAAW,CAAC3B,KAAK,EAAEG,YAAY,CAAC;AAChC,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;AACTyB,QAAAA,OAAO,CAAC5B,KAAK,EAAEG,YAAY,CAAC;AAC5B,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;AACT0B,QAAAA,QAAQ,CAAC7B,KAAK,EAAEG,YAAY,CAAC;AAC7B,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;QACT2B,OAAO,CAAC9B,KAAK,EAAEA,KAAK,CAAC+B,IAAI,CAACC,IAAI,EAAE7B,YAAY,CAAC;AAC7C,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;AACT2B,QAAAA,OAAO,CAAC9B,KAAK,EAAEc,YAAY,CAACd,KAAK,EAAE,CAAC,EAAEG,YAAY,CAAC,EAAEA,YAAY,CAAC;AAClE,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;AACT2B,QAAAA,OAAO,CAAC9B,KAAK,EAAEc,YAAY,CAACd,KAAK,EAAE,CAAC,EAAEG,YAAY,CAAC,EAAEA,YAAY,CAAC;AAClE,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;AACT8B,QAAAA,OAAO,CAACjC,KAAK,EAAEc,YAAY,CAACd,KAAK,EAAE,CAAC,EAAEG,YAAY,CAAC,EAAEA,YAAY,CAAC;AAClE,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;AACT8B,QAAAA,OAAO,CAACjC,KAAK,EAAEc,YAAY,CAACd,KAAK,EAAE,CAAC,EAAEG,YAAY,CAAC,EAAEA,YAAY,CAAC;AAClE,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;QACTM,IAAI,CAACT,KAAK,EAAEkC,eAAe,CAAClC,KAAK,EAAEG,YAAY,CAAC,EAAEA,YAAY,CAAC;AAC/D,QAAA;AAEF,MAAA,KAAK,IAAI;AAAE;AACTgC,QAAAA,MAAM,CAACnC,KAAK,EAAEG,YAAY,CAAC;AAC3B,QAAA;AAEF,MAAA;AACE,QAAA,MAAMiC,UAAU,CACdpC,KAAK,EACL,sCAAsC,EACtC,6BAA6BA,KAAK,CAACqC,QAAQ,CAAA,gBAAA,EAAmBC,aAAa,CAAClC,MAAM,CAAC,CAAA,CAAA,CAAG,EACtFD,YACF,CAAC;AACL;AACF,EAAA;EAEA,MAAMiC,UAAU,CACdpC,KAAK,EACL,gCAAgC,EAChC,2CAA2C,EAC3CA,KAAK,CAACE,MACR,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAASI,YAAYA,CAACN,KAAK,EAAEE,MAAM,EACnC;EACE,MAAMqC,OAAO,GAAGzB,YAAY,CAACd,KAAK,EAAE,CAAC,EAAEE,MAAM,CAAC;EAE9C,IAAIqC,OAAO,GAAG9D,gBAAgB,EAC9B;AACE,IAAA,MAAM2D,UAAU,CACdpC,KAAK,EACL,wCAAwC,EACxC,CAAA,yBAAA,EAA4BuC,OAAO,CAAA,iCAAA,EAAoC9D,gBAAgB,CAAA,CAAA,CAAG,EAC1FyB,MACF,CAAC;AACH,EAAA;EAEAF,KAAK,CAACqC,QAAQ,GAAGE,OAAO;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAShC,SAASA,CAACP,KAAK,EAAEE,MAAM,EAChC;AACE,EAAA,MAAMS,MAAM,GAAGQ,YAAY,CAACnB,KAAK,EAAEE,MAAM,CAAC;EAE1C,IAAIS,MAAM,GAAGX,KAAK,CAACD,KAAK,CAACT,UAAU,GAAGU,KAAK,CAACE,MAAM,EAClD;IACE,MAAMkC,UAAU,CACdpC,KAAK,EACL,uBAAuB,EACvB,iDAAiD,EACjDE,MACF,CAAC;AACH,EAAA;AACF;AAEA,SAASsC,YAAYA,CAACxC,KAAK,EAAEyC,KAAK,EAAEvC,MAAM,EAC1C;AACE,EAAA,IAAIuC,KAAK,GAAG,CAAC,IAAIzC,KAAK,CAACE,MAAM,GAAGuC,KAAK,GAAGzC,KAAK,CAACD,KAAK,CAACT,UAAU,EAC9D;IACE,MAAM8C,UAAU,CACdpC,KAAK,EACL,uBAAuB,EACvB,2DAA2D,EAC3DE,MACF,CAAC;AACH,EAAA;AACF;AAEA,SAASY,YAAYA,CAACd,KAAK,EAAEgC,IAAI,EAAE9B,MAAM,EACzC;AACEsC,EAAAA,YAAY,CAACxC,KAAK,EAAEgC,IAAI,EAAE9B,MAAM,CAAC;EAEjC,IAAIwC,MAAM,GAAG,CAAC;AACd,EAAA,KAAK,IAAIC,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGX,IAAI,EAAEW,KAAK,IAAI,CAAC,EAC5C;AACED,IAAAA,MAAM,IAAI1C,KAAK,CAACD,KAAK,CAACC,KAAK,CAACE,MAAM,GAAGyC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAGA,KAAK,CAAC;AAChE,EAAA;EACA3C,KAAK,CAACE,MAAM,IAAI8B,IAAI;AACpB,EAAA,OAAOU,MAAM;AACf;AAEA,SAAS3B,eAAeA,CAACf,KAAK,EAAEE,MAAM,EACtC;EACE,MAAMN,KAAK,GAAGkB,YAAY,CAACd,KAAK,EAAE,CAAC,EAAEE,MAAM,CAAC;EAC5C,OAAON,KAAK,IAAI,UAAU,GAAGA,KAAK,GAAG,WAAW,GAAGA,KAAK;AAC1D;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASuB,YAAYA,CAACnB,KAAK,EAAEE,MAAM,EACnC;AACEsC,EAAAA,YAAY,CAACxC,KAAK,EAAE,CAAC,EAAEE,MAAM,CAAC;EAE9B,MAAM0C,IAAI,GAAG,IAAIC,QAAQ,CAAC7C,KAAK,CAACD,KAAK,CAAC+C,MAAM,EAAE9C,KAAK,CAACD,KAAK,CAACgD,UAAU,GAAG/C,KAAK,CAACE,MAAM,EAAE,CAAC,CAAC;EACvF,MAAMN,KAAK,GAAGgD,IAAI,CAACI,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC;EACxChD,KAAK,CAACE,MAAM,IAAI,CAAC;EAEjB,IAAIN,KAAK,GAAGqD,MAAM,CAACjD,KAAK,CAACX,MAAM,CAACE,aAAa,CAAC,EAC9C;AACE,IAAA,MAAM6C,UAAU,CACdpC,KAAK,EACL,kCAAkC,EAClC,CAAA,qCAAA,EAAwCA,KAAK,CAACX,MAAM,CAACE,aAAa,CAAA,EAAA,CAAI,EACtEW,MACF,CAAC;AACH,EAAA;EACA,OAAOgD,MAAM,CAACtD,KAAK,CAAC;AACtB;AAEA,SAASqB,SAASA,CAACjB,KAAK,EAAEE,MAAM,EAChC;AACEsC,EAAAA,YAAY,CAACxC,KAAK,EAAE,CAAC,EAAEE,MAAM,CAAC;EAE9B,MAAM0C,IAAI,GAAG,IAAIC,QAAQ,CAAC7C,KAAK,CAACD,KAAK,CAAC+C,MAAM,EAAE9C,KAAK,CAACD,KAAK,CAACgD,UAAU,GAAG/C,KAAK,CAACE,MAAM,EAAE,CAAC,CAAC;EACvF,MAAMwC,MAAM,GAAGE,IAAI,CAACO,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC;EACxCnD,KAAK,CAACE,MAAM,IAAI,CAAC;AAEjB,EAAA,IAAI,CAACgD,MAAM,CAACE,QAAQ,CAACV,MAAM,CAAC,EAC5B;IACE,MAAMN,UAAU,CACdpC,KAAK,EACL,kCAAkC,EAClC,4DAA4D,EAC5DE,MACF,CAAC;AACH,EAAA;AACA,EAAA,OAAOwC,MAAM;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS1B,QAAQA,CAAChB,KAAK,EAAEgC,IAAI,EAAE9B,MAAM,EACrC;AACE,EAAA,IAAI8B,IAAI,KAAK,CAAC,EAAE,OAAO,CAAC;AACxBQ,EAAAA,YAAY,CAACxC,KAAK,EAAEgC,IAAI,EAAE9B,MAAM,CAAC;EAEjC,IAAIwC,MAAM,GAAG,EAAE;AACf,EAAA,KAAK,IAAIC,KAAK,GAAGX,IAAI,GAAG,CAAC,EAAEW,KAAK,IAAI,CAAC,EAAEA,KAAK,IAAI,CAAC,EACjD;AACED,IAAAA,MAAM,GAAIA,MAAM,IAAI,EAAE,GAAIO,MAAM,CAACjD,KAAK,CAACD,KAAK,CAACC,KAAK,CAACE,MAAM,GAAGyC,KAAK,CAAC,CAAC;AACrE,EAAA;AACA,EAAA,IAAI3C,KAAK,CAACD,KAAK,CAACC,KAAK,CAACE,MAAM,GAAG8B,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,EAC/C;IACEU,MAAM,IAAI,EAAE,IAAIO,MAAM,CAAC,CAAC,GAAGjB,IAAI,CAAC;AAClC,EAAA;EACAhC,KAAK,CAACE,MAAM,IAAI8B,IAAI;AAEpB,EAAA,IAAIU,MAAM,IAAIO,MAAM,CAACC,MAAM,CAACG,gBAAgB,CAAC,IAAIX,MAAM,IAAIO,MAAM,CAACC,MAAM,CAACI,gBAAgB,CAAC,EAC1F;IACE,OAAOJ,MAAM,CAACR,MAAM,CAAC;AACvB,EAAA;AACA,EAAA,OAAOA,MAAM,CAACa,QAAQ,EAAE;AAC1B;AAEA,SAASC,mBAAmBA,CAACxD,KAAK,EAAEW,MAAM,EAAET,MAAM,EAClD;AACE,EAAA,IAAIS,MAAM,GAAGX,KAAK,CAACX,MAAM,CAACoE,cAAc,EACxC;AACE,IAAA,MAAMrB,UAAU,CACdpC,KAAK,EACL,kCAAkC,EAClC,CAAA,sCAAA,EAAyCA,KAAK,CAACX,MAAM,CAACoE,cAAc,CAAA,EAAA,CAAI,EACxEvD,MACF,CAAC;AACH,EAAA;AACAsC,EAAAA,YAAY,CAACxC,KAAK,EAAEW,MAAM,EAAET,MAAM,CAAC;AACrC;AAEA,SAASgB,QAAQA,CAAClB,KAAK,EAAEW,MAAM,EAAET,MAAM,EACvC;AACEsD,EAAAA,mBAAmB,CAACxD,KAAK,EAAEW,MAAM,EAAET,MAAM,CAAC;AAE1C,EAAA,MAAMH,KAAK,GAAGC,KAAK,CAACD,KAAK,CAAC2D,QAAQ,CAAC1D,KAAK,CAACE,MAAM,EAAEF,KAAK,CAACE,MAAM,GAAGS,MAAM,CAAC;EACvEX,KAAK,CAACE,MAAM,IAAIS,MAAM;EAEtB,IACA;AACE,IAAA,OAAOjC,IAAI,CAACgB,MAAM,CAACK,KAAK,CAAC;AAC3B,EAAA,CAAC,CACD,MACA;IACE,MAAMqC,UAAU,CACdpC,KAAK,EACL,kCAAkC,EAClC,2CAA2C,EAC3CE,MACF,CAAC;AACH,EAAA;AACF;AAEA,SAASkB,UAAUA,CAACpB,KAAK,EAAEW,MAAM,EAAET,MAAM,EACzC;AACEsD,EAAAA,mBAAmB,CAACxD,KAAK,EAAEW,MAAM,EAAET,MAAM,CAAC;EAE1C,IAAIwC,MAAM,GAAG,EAAE;AACf,EAAA,KAAK,IAAIC,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGhC,MAAM,EAAEgC,KAAK,IAAI,CAAC,EAC9C;AACED,IAAAA,MAAM,IAAIiB,MAAM,CAACC,YAAY,CAAC5D,KAAK,CAACD,KAAK,CAACC,KAAK,CAACE,MAAM,GAAGyC,KAAK,CAAC,CAAC;AAClE,EAAA;EACA3C,KAAK,CAACE,MAAM,IAAIS,MAAM;AACtB,EAAA,OAAO+B,MAAM;AACf;AAEA,SAASrB,SAASA,CAACrB,KAAK,EAAEW,MAAM,EAAET,MAAM,EACxC;AACEsD,EAAAA,mBAAmB,CAACxD,KAAK,EAAEW,MAAM,EAAET,MAAM,CAAC;AAE1C,EAAA,MAAMwC,MAAM,GAAG1C,KAAK,CAACD,KAAK,CAAC8D,KAAK,CAAC7D,KAAK,CAACE,MAAM,EAAEF,KAAK,CAACE,MAAM,GAAGS,MAAM,CAAC;EACrEX,KAAK,CAACE,MAAM,IAAIS,MAAM;AACtB,EAAA,OAAO+B,MAAM;AACf;AAEA,SAASnB,cAAcA,CAACvB,KAAK,EAAEgC,IAAI,EAAE9B,MAAM,EAC3C;AACE4D,EAAAA,YAAY,CAAC9D,KAAK,EAAEgC,IAAI,EAAE9B,MAAM,CAAC;AACjC6D,EAAAA,qBAAqB,CAAC/D,KAAK,EAAEgC,IAAI,EAAE9B,MAAM,CAAC;AAE1C,EAAA,MAAM8D,MAAM,GAAGhE,KAAK,CAACU,KAAK,CAACuD,MAAM,CAACjE,KAAK,CAACU,KAAK,CAACC,MAAM,GAAGqB,IAAI,EAAEA,IAAI,CAAC;AAClE,EAAA,KAAK,MAAMpC,KAAK,IAAIoE,MAAM,EAAEE,kBAAkB,CAAClE,KAAK,EAAEJ,KAAK,EAAEM,MAAM,CAAC;EACpEF,KAAK,CAACmE,UAAU,CAACC,GAAG,CAACJ,MAAM,EAAEA,MAAM,CAACrD,MAAM,CAAC;AAC3C,EAAA,OAAOqD,MAAM;AACf;;AAEA;AACA,SAAS9B,eAAeA,CAAClC,KAAK,EAAEE,MAAM,EACtC;AACE4D,EAAAA,YAAY,CAAC9D,KAAK,EAAE,CAAC,EAAEE,MAAM,CAAC;EAE9B,MAAMmE,SAAS,GAAGrE,KAAK,CAACU,KAAK,CAAC4D,GAAG,EAAE;EACnC,MAAMC,MAAM,GAAGvE,KAAK,CAACU,KAAK,CAAC4D,GAAG,EAAE;EAEhC,IAAI,OAAOC,MAAM,KAAK,QAAQ,IAAI,OAAOF,SAAS,KAAK,QAAQ,EAC/D;IACE,MAAMjC,UAAU,CACdpC,KAAK,EACL,sCAAsC,EACtC,2DAA2D,EAC3DE,MACF,CAAC;AACH,EAAA;EAEA,OAAOsE,kBAAkB,CAACxE,KAAK,EAAE,CAAA,EAAGuE,MAAM,CAAA,CAAA,EAAIF,SAAS,CAAA,CAAE,EAAEnE,MAAM,CAAC;AACpE;;;;"}
@@ -1,6 +1,8 @@
1
1
  import { asUint8Array } from '#utils/bytes';
2
2
  import { CjsFormat } from '../../format/CjsFormat.js';
3
- import { DEFAULT_VALUES, normalizeValues, readWithValues, readWithValuesAsync, inspectWithValues, probeSupportWithValues, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_RGBA, OUTPUT_IMAGE } from './core/helpers.js';
3
+ import { CjsImageFormat } from '../../format/CjsImageFormat.js';
4
+ import { ImageIOResult } from '#imageio';
5
+ import { DEFAULT_VALUES, normalizeValues, readWithValues, readWithValuesAsync, inspectWithValues, probeSupportWithValues } from './core/helpers.js';
4
6
  import { encodePng, encodePngAsync } from './core/writer.js';
5
7
  import { toJsonWithByteSummary } from '../../format/jsonPolicies.js';
6
8
  import { isPNG } from '../../format/imageSignatures.js';
@@ -12,8 +14,8 @@ const FORMAT_NAME = "CjsPngFormat";
12
14
  * and emits raw bytes or debug JSON, with RGBA decoding available on the
13
15
  * asynchronous read path.
14
16
  */
15
- class CjsPngFormat extends CjsFormat {
16
- #values = DEFAULT_VALUES;
17
+ class CjsPngFormat extends CjsImageFormat {
18
+ _values = DEFAULT_VALUES;
17
19
 
18
20
  /**
19
21
  * One-shot PNG write from a normalized RGBA payload, without compressing.
@@ -72,7 +74,7 @@ class CjsPngFormat extends CjsFormat {
72
74
  * @returns {CjsPngFormat} This format profile.
73
75
  */
74
76
  SetValues(options = {}) {
75
- this.#values = normalizeValues(this.#values, {
77
+ this._values = normalizeValues(this._values, {
76
78
  inputType: "png",
77
79
  ...options
78
80
  }, FORMAT_NAME);
@@ -86,7 +88,7 @@ class CjsPngFormat extends CjsFormat {
86
88
  * @returns {object} Normalized read values.
87
89
  */
88
90
  GetValues(options = {}) {
89
- return normalizeValues(this.#values, {
91
+ return normalizeValues(this._values, {
90
92
  inputType: "png",
91
93
  ...options
92
94
  }, FORMAT_NAME);
@@ -218,15 +220,8 @@ class CjsPngFormat extends CjsFormat {
218
220
  /**
219
221
  * Emit targets for this format (canonical frozen enum).
220
222
  */
221
- static Output = Object.freeze({
222
- IMAGE: OUTPUT_IMAGE,
223
- RGBA: OUTPUT_RGBA,
224
- RAW: OUTPUT_RAW,
225
- JSON: OUTPUT_JSON
226
- });
227
- static OUTPUT_PNG_JSON = "pngJson";
228
- static id = "png";
229
- static mediaTypes = Object.freeze(["image"]);
223
+ static id = "CjsPngFormat";
224
+ static mediaTypes = ["image"];
230
225
  static inputs = CjsFormat.defineInputs({
231
226
  // async because the compressing path is the real one; the sync writer
232
227
  // emits stored blocks and is the fallback, not the intent.
@@ -256,7 +251,37 @@ class CjsPngFormat extends CjsFormat {
256
251
  passthrough: true
257
252
  }
258
253
  });
259
- static extensions = Object.freeze([".png"]);
254
+ /**
255
+ * Fill a HostBitmap through this format's RGBA8 output, for Carbon's ImageIO
256
+ * registry (`CjsPngFormat.carbon`). See CjsImageFormat.readImageFromRgbaPayload.
257
+ *
258
+ * @param {Uint8Array|ArrayBuffer} input Image bytes.
259
+ * @param {object} _loadParameters Load parameters; a single-mip image skips nothing.
260
+ * @param {object} bitmap Destination HostBitmap.
261
+ * @param {object|null} [metadata] Optional Metadata out.
262
+ * @returns {object} ImageIOResult.
263
+ */
264
+ static readImageNative(_input, _loadParameters, _bitmap, _metadata = null) {
265
+ // PNG inflates through the browser's DecompressionStream, which is
266
+ // asynchronous only; see CjsImageFormat.readImageAsync.
267
+ return new ImageIOResult(ImageIOResult.Code.METHOD_NOT_SUPPORTED, "PNG decodes asynchronously; use readImageAsync");
268
+ }
269
+
270
+ /**
271
+ * Fill a HostBitmap through this format's asynchronous RGBA8 output.
272
+ *
273
+ * @param {Uint8Array|ArrayBuffer} input Image bytes.
274
+ * @param {object} _loadParameters Load parameters.
275
+ * @param {object} bitmap Destination HostBitmap.
276
+ * @param {object|null} [metadata] Optional Metadata out.
277
+ * @returns {Promise<object>} ImageIOResult.
278
+ */
279
+ static async readImageNativeAsync(input, _loadParameters, bitmap, metadata = null) {
280
+ return this.readImageFromRgbaPayload(await this.readAsync(input, {
281
+ emit: "rgba"
282
+ }), bitmap, metadata);
283
+ }
284
+ static extensions = [".png"];
260
285
  }
261
286
 
262
287
  export { CjsPngFormat };
@@ -1 +1 @@
1
- {"version":3,"file":"CjsPngFormat.js","sources":["../../../../../src/resource/formats/png/CjsPngFormat.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 isPNG,\n probeSupportWithValues,\n normalizeValues,\n readWithValues,\n readWithValuesAsync,\n toJsonValue\n} from \"./core/helpers.js\";\nimport { encodePng, encodePngAsync } from \"./core/writer.js\";\n\nconst FORMAT_NAME = \"CjsPngFormat\";\n\n/**\n * PNG format profile that synchronously inspects chunk and header metadata\n * and emits raw bytes or debug JSON, with RGBA decoding available on the\n * asynchronous read path.\n */\nexport class CjsPngFormat extends CjsFormat\n{\n #values = DEFAULT_VALUES;\n\n /**\n * One-shot PNG write from a normalized RGBA payload, without compressing.\n *\n * @param {object} payload As emitted for `rgba`.\n * @returns {Uint8Array} PNG bytes.\n */\n static write(payload, options = {})\n {\n return encodePng(payload, options);\n }\n\n /**\n * One-shot compressed PNG write from a normalized RGBA payload.\n *\n * @param {object} payload As emitted for `rgba`.\n * @returns {Promise<Uint8Array>} PNG bytes.\n */\n static async writeAsync(payload, options = {})\n {\n return encodePngAsync(payload, options);\n }\n\n /**\n * Write a normalized RGBA payload as PNG bytes, without compressing.\n *\n * @param {object} payload As emitted for `rgba`.\n * @returns {Uint8Array} PNG bytes.\n */\n Write(payload, options = {})\n {\n return encodePng(payload, options);\n }\n\n /**\n * Write a normalized RGBA payload as compressed PNG bytes.\n *\n * @param {object} payload As emitted for `rgba`.\n * @returns {Promise<Uint8Array>} PNG bytes.\n */\n async WriteAsync(payload, options = {})\n {\n return encodePngAsync(payload, options);\n }\n\n /**\n * Create a reusable PNG format profile.\n *\n * @param {object} [options] Default read/inspect options.\n */\n constructor(options = {})\n {\n super();\n this.SetValues(options);\n }\n\n /**\n * Merge options into this profile.\n *\n * @param {object} [options] Values to merge.\n * @returns {CjsPngFormat} This format profile.\n */\n SetValues(options = {})\n {\n this.#values = normalizeValues(this.#values, { inputType: \"png\", ...options }, FORMAT_NAME);\n return this;\n }\n\n /**\n * Get normalized profile values with optional per-call overrides.\n *\n * @param {object} [options] Per-call values.\n * @returns {object} Normalized read values.\n */\n GetValues(options = {})\n {\n return normalizeValues(this.#values, { inputType: \"png\", ...options }, FORMAT_NAME);\n }\n\n /**\n * Read PNG bytes with this profile.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input PNG bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} GPU-free raw/debug payload for the selected emit target.\n */\n Read(input, options = {})\n {\n return readWithValues(input, this.GetValues(options), \"png\");\n }\n\n /**\n * Read PNG bytes asynchronously with this profile.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input PNG bytes.\n * @param {object} [options] Per-call values.\n * @returns {Promise<object>} GPU-free raw/debug payload for the selected emit target.\n */\n async ReadAsync(input, options = {})\n {\n return readWithValuesAsync(input, this.GetValues(options), \"png\");\n }\n\n /**\n * Inspect PNG bytes without decoding image data.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input PNG bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} PNG header metadata.\n */\n Inspect(input, options = {})\n {\n return inspectWithValues(input, this.GetValues(options), \"png\");\n }\n\n /**\n * Convert format output into JSON-compatible debug data.\n *\n * @param {any} value Format output.\n * @returns {any} JSON-compatible value.\n */\n ToJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * One-shot PNG read.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input PNG bytes.\n * @param {object} [options] Read options.\n * @returns {object} GPU-free raw/debug payload for the selected emit target.\n */\n static read(input, options = {})\n {\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"png\", ...options }, FORMAT_NAME), \"png\");\n }\n\n /**\n * One-shot asynchronous PNG read.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input PNG bytes.\n * @param {object} [options] Read options.\n * @returns {Promise<object>} GPU-free raw/debug payload for the selected emit target.\n */\n static async readAsync(input, options = {})\n {\n return readWithValuesAsync(input, normalizeValues(DEFAULT_VALUES, { inputType: \"png\", ...options }, FORMAT_NAME), \"png\");\n }\n\n /**\n * One-shot PNG inspection.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input PNG bytes.\n * @param {object} [options] Inspect options.\n * @returns {object} PNG header metadata.\n */\n static inspect(input, options = {})\n {\n return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"png\", ...options }, FORMAT_NAME), \"png\");\n }\n\n /**\n * One-shot PNG support probe.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input PNG bytes.\n * @param {object} [options] Probe options.\n * @returns {object} Support/probe report.\n */\n static probeSupport(input, options = {})\n {\n return probeSupportWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"png\", ...options }, FORMAT_NAME), \"png\");\n }\n\n /**\n * Convert format output into JSON-compatible debug data.\n *\n * @param {any} value Format output.\n * @returns {any} JSON-compatible value.\n */\n static toJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * Test whether bytes look like a PNG file.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Candidate PNG bytes.\n * @returns {boolean} True when the PNG signature is present.\n */\n static isPNG(input)\n {\n try\n {\n return isPNG(asUint8Array(input, \"Image 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_PNG_JSON = \"pngJson\";\n static id = \"png\";\n static mediaTypes = Object.freeze([ \"image\" ]);\n static inputs = CjsFormat.defineInputs({\n // async because the compressing path is the real one; the sync writer\n // emits stored blocks and is the fallback, not the intent.\n rgba: { default: true, writeMode: \"async\", options: [ \"compression\" ] }\n });\n\n static outputs = CjsFormat.defineOutputs({\n image: { readMode: \"async\", decoded: true, probes: [ \"image\", \"rgba\" ] },\n rgba: { readMode: \"async\", decoded: true },\n pngJson: { role: \"debug\", probes: [ \"pngJson\", \"raw\" ] },\n raw: { role: \"debug\", default: true, passthrough: true }\n });\n static extensions = Object.freeze([ \".png\" ]);\n}\n\nexport default CjsPngFormat;\n"],"names":["FORMAT_NAME","CjsPngFormat","CjsFormat","DEFAULT_VALUES","write","payload","options","encodePng","writeAsync","encodePngAsync","Write","WriteAsync","constructor","SetValues","normalizeValues","inputType","GetValues","Read","input","readWithValues","ReadAsync","readWithValuesAsync","Inspect","inspectWithValues","ToJSON","value","toJsonValue","read","readAsync","inspect","probeSupport","probeSupportWithValues","toJSON","isPNG","asUint8Array","Output","Object","freeze","IMAGE","OUTPUT_IMAGE","RGBA","OUTPUT_RGBA","RAW","OUTPUT_RAW","JSON","OUTPUT_JSON","OUTPUT_PNG_JSON","id","mediaTypes","inputs","defineInputs","rgba","default","writeMode","outputs","defineOutputs","image","readMode","decoded","probes","pngJson","role","raw","passthrough","extensions"],"mappings":"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"}
1
+ {"version":3,"file":"CjsPngFormat.js","sources":["../../../../../src/resource/formats/png/CjsPngFormat.js"],"sourcesContent":["import { asUint8Array } from \"#utils/bytes\";\nimport { CjsFormat } from \"../../format/CjsFormat.js\";\nimport { CjsImageFormat } from \"../../format/CjsImageFormat.js\";\nimport { ImageIOResult } from \"#imageio\";\nimport {\n DEFAULT_VALUES,\n OUTPUT_IMAGE,\n OUTPUT_JSON,\n OUTPUT_RAW,\n OUTPUT_RGBA,\n inspectWithValues,\n isPNG,\n probeSupportWithValues,\n normalizeValues,\n readWithValues,\n readWithValuesAsync,\n toJsonValue\n} from \"./core/helpers.js\";\nimport { encodePng, encodePngAsync } from \"./core/writer.js\";\n\nconst FORMAT_NAME = \"CjsPngFormat\";\n\n/**\n * PNG format profile that synchronously inspects chunk and header metadata\n * and emits raw bytes or debug JSON, with RGBA decoding available on the\n * asynchronous read path.\n */\nexport class CjsPngFormat extends CjsImageFormat\n{\n _values = DEFAULT_VALUES;\n\n /**\n * One-shot PNG write from a normalized RGBA payload, without compressing.\n *\n * @param {object} payload As emitted for `rgba`.\n * @returns {Uint8Array} PNG bytes.\n */\n static write(payload, options = {})\n {\n return encodePng(payload, options);\n }\n\n /**\n * One-shot compressed PNG write from a normalized RGBA payload.\n *\n * @param {object} payload As emitted for `rgba`.\n * @returns {Promise<Uint8Array>} PNG bytes.\n */\n static async writeAsync(payload, options = {})\n {\n return encodePngAsync(payload, options);\n }\n\n /**\n * Write a normalized RGBA payload as PNG bytes, without compressing.\n *\n * @param {object} payload As emitted for `rgba`.\n * @returns {Uint8Array} PNG bytes.\n */\n Write(payload, options = {})\n {\n return encodePng(payload, options);\n }\n\n /**\n * Write a normalized RGBA payload as compressed PNG bytes.\n *\n * @param {object} payload As emitted for `rgba`.\n * @returns {Promise<Uint8Array>} PNG bytes.\n */\n async WriteAsync(payload, options = {})\n {\n return encodePngAsync(payload, options);\n }\n\n /**\n * Create a reusable PNG format profile.\n *\n * @param {object} [options] Default read/inspect options.\n */\n constructor(options = {})\n {\n super();\n this.SetValues(options);\n }\n\n /**\n * Merge options into this profile.\n *\n * @param {object} [options] Values to merge.\n * @returns {CjsPngFormat} This format profile.\n */\n SetValues(options = {})\n {\n this._values = normalizeValues(this._values, { inputType: \"png\", ...options }, FORMAT_NAME);\n return this;\n }\n\n /**\n * Get normalized profile values with optional per-call overrides.\n *\n * @param {object} [options] Per-call values.\n * @returns {object} Normalized read values.\n */\n GetValues(options = {})\n {\n return normalizeValues(this._values, { inputType: \"png\", ...options }, FORMAT_NAME);\n }\n\n /**\n * Read PNG bytes with this profile.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input PNG bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} GPU-free raw/debug payload for the selected emit target.\n */\n Read(input, options = {})\n {\n return readWithValues(input, this.GetValues(options), \"png\");\n }\n\n /**\n * Read PNG bytes asynchronously with this profile.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input PNG bytes.\n * @param {object} [options] Per-call values.\n * @returns {Promise<object>} GPU-free raw/debug payload for the selected emit target.\n */\n async ReadAsync(input, options = {})\n {\n return readWithValuesAsync(input, this.GetValues(options), \"png\");\n }\n\n /**\n * Inspect PNG bytes without decoding image data.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input PNG bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} PNG header metadata.\n */\n Inspect(input, options = {})\n {\n return inspectWithValues(input, this.GetValues(options), \"png\");\n }\n\n /**\n * Convert format output into JSON-compatible debug data.\n *\n * @param {any} value Format output.\n * @returns {any} JSON-compatible value.\n */\n ToJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * One-shot PNG read.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input PNG bytes.\n * @param {object} [options] Read options.\n * @returns {object} GPU-free raw/debug payload for the selected emit target.\n */\n static read(input, options = {})\n {\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"png\", ...options }, FORMAT_NAME), \"png\");\n }\n\n /**\n * One-shot asynchronous PNG read.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input PNG bytes.\n * @param {object} [options] Read options.\n * @returns {Promise<object>} GPU-free raw/debug payload for the selected emit target.\n */\n static async readAsync(input, options = {})\n {\n return readWithValuesAsync(input, normalizeValues(DEFAULT_VALUES, { inputType: \"png\", ...options }, FORMAT_NAME), \"png\");\n }\n\n /**\n * One-shot PNG inspection.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input PNG bytes.\n * @param {object} [options] Inspect options.\n * @returns {object} PNG header metadata.\n */\n static inspect(input, options = {})\n {\n return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"png\", ...options }, FORMAT_NAME), \"png\");\n }\n\n /**\n * One-shot PNG support probe.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input PNG bytes.\n * @param {object} [options] Probe options.\n * @returns {object} Support/probe report.\n */\n static probeSupport(input, options = {})\n {\n return probeSupportWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"png\", ...options }, FORMAT_NAME), \"png\");\n }\n\n /**\n * Convert format output into JSON-compatible debug data.\n *\n * @param {any} value Format output.\n * @returns {any} JSON-compatible value.\n */\n static toJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * Test whether bytes look like a PNG file.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Candidate PNG bytes.\n * @returns {boolean} True when the PNG signature is present.\n */\n static isPNG(input)\n {\n try\n {\n return isPNG(asUint8Array(input, \"Image input\"));\n }\n catch\n {\n return false;\n }\n }\n\n /**\n * Emit targets for this format (canonical frozen enum).\n */\n static id = \"CjsPngFormat\";\n static mediaTypes = [ \"image\" ];\n static inputs = CjsFormat.defineInputs({\n // async because the compressing path is the real one; the sync writer\n // emits stored blocks and is the fallback, not the intent.\n rgba: { default: true, writeMode: \"async\", options: [ \"compression\" ] }\n });\n\n static outputs = CjsFormat.defineOutputs({\n image: { readMode: \"async\", decoded: true, probes: [ \"image\", \"rgba\" ] },\n rgba: { readMode: \"async\", decoded: true },\n pngJson: { role: \"debug\", probes: [ \"pngJson\", \"raw\" ] },\n raw: { role: \"debug\", default: true, passthrough: true }\n });\n /**\n * Fill a HostBitmap through this format's RGBA8 output, for Carbon's ImageIO\n * registry (`CjsPngFormat.carbon`). See CjsImageFormat.readImageFromRgbaPayload.\n *\n * @param {Uint8Array|ArrayBuffer} input Image bytes.\n * @param {object} _loadParameters Load parameters; a single-mip image skips nothing.\n * @param {object} bitmap Destination HostBitmap.\n * @param {object|null} [metadata] Optional Metadata out.\n * @returns {object} ImageIOResult.\n */\n static readImageNative(_input, _loadParameters, _bitmap, _metadata = null)\n {\n // PNG inflates through the browser's DecompressionStream, which is\n // asynchronous only; see CjsImageFormat.readImageAsync.\n return new ImageIOResult(ImageIOResult.Code.METHOD_NOT_SUPPORTED, \"PNG decodes asynchronously; use readImageAsync\");\n }\n\n /**\n * Fill a HostBitmap through this format's asynchronous RGBA8 output.\n *\n * @param {Uint8Array|ArrayBuffer} input Image bytes.\n * @param {object} _loadParameters Load parameters.\n * @param {object} bitmap Destination HostBitmap.\n * @param {object|null} [metadata] Optional Metadata out.\n * @returns {Promise<object>} ImageIOResult.\n */\n static async readImageNativeAsync(input, _loadParameters, bitmap, metadata = null)\n {\n return this.readImageFromRgbaPayload(await this.readAsync(input, { emit: \"rgba\" }), bitmap, metadata);\n }\n\n static extensions = [ \".png\" ];\n}\n\nexport default CjsPngFormat;\n"],"names":["FORMAT_NAME","CjsPngFormat","CjsImageFormat","_values","DEFAULT_VALUES","write","payload","options","encodePng","writeAsync","encodePngAsync","Write","WriteAsync","constructor","SetValues","normalizeValues","inputType","GetValues","Read","input","readWithValues","ReadAsync","readWithValuesAsync","Inspect","inspectWithValues","ToJSON","value","toJsonValue","read","readAsync","inspect","probeSupport","probeSupportWithValues","toJSON","isPNG","asUint8Array","id","mediaTypes","inputs","CjsFormat","defineInputs","rgba","default","writeMode","outputs","defineOutputs","image","readMode","decoded","probes","pngJson","role","raw","passthrough","readImageNative","_input","_loadParameters","_bitmap","_metadata","ImageIOResult","Code","METHOD_NOT_SUPPORTED","readImageNativeAsync","bitmap","metadata","readImageFromRgbaPayload","emit","extensions"],"mappings":"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"}
@@ -6,7 +6,6 @@ import { decompressBytes } from '#utils/compression';
6
6
  const OUTPUT_IMAGE = "image";
7
7
  const OUTPUT_RGBA = "rgba";
8
8
  const OUTPUT_RAW = "raw";
9
- const OUTPUT_JSON = "json";
10
9
  const DEFAULT_VALUES = Object.freeze({
11
10
  emit: OUTPUT_RAW,
12
11
  inputType: "",
@@ -45,8 +44,7 @@ function normalizeInputType(inputType) {
45
44
  /** Normalizes the requested output representation for the PNG format reader. */
46
45
  function normalizeEmit(emit, inputType, readerName) {
47
46
  if (emit === undefined || emit === null) return OUTPUT_RAW;
48
- if (emit === OUTPUT_JSON && inputType) return DEBUG_OUTPUTS[inputType] || OUTPUT_JSON;
49
- if ([OUTPUT_IMAGE, OUTPUT_RGBA, OUTPUT_RAW, OUTPUT_JSON].includes(emit)) return emit;
47
+ if ([OUTPUT_IMAGE, OUTPUT_RGBA, OUTPUT_RAW].includes(emit)) return emit;
50
48
  if (Object.values(DEBUG_OUTPUTS).includes(emit)) return emit;
51
49
  throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(emit)}`);
52
50
  }
@@ -128,7 +126,7 @@ function readWithValues(input, values = DEFAULT_VALUES, expectedType = "") {
128
126
  bytes
129
127
  };
130
128
  }
131
- if (values.emit === OUTPUT_JSON || values.emit === DEBUG_OUTPUTS[metadata.sourceFormat]) {
129
+ if (values.emit === DEBUG_OUTPUTS[metadata.sourceFormat]) {
132
130
  return metadata;
133
131
  }
134
132
  const error = new Error(`${metadata.sourceFormat}: emit "${values.emit}" is not implemented yet`);
@@ -145,7 +143,7 @@ function readWithValues(input, values = DEFAULT_VALUES, expectedType = "") {
145
143
  async function readWithValuesAsync(input, values = DEFAULT_VALUES, expectedType = "") {
146
144
  const bytes = asUint8Array(input, "Image input");
147
145
  const metadata = inspectWithValues(bytes, values, expectedType);
148
- if (values.emit === OUTPUT_RAW || values.emit === OUTPUT_JSON || values.emit === DEBUG_OUTPUTS[metadata.sourceFormat]) {
146
+ if (values.emit === OUTPUT_RAW || values.emit === DEBUG_OUTPUTS[metadata.sourceFormat]) {
149
147
  return readWithValues(bytes, values, expectedType);
150
148
  }
151
149
  if ((values.emit === OUTPUT_RGBA || values.emit === OUTPUT_IMAGE) && metadata.sourceFormat === "png") {
@@ -485,5 +483,5 @@ function readI32BE(bytes, offset) {
485
483
  return new DataView(bytes.buffer, bytes.byteOffset + offset, 4).getInt32(0, false);
486
484
  }
487
485
 
488
- export { DEFAULT_VALUES, OUTPUT_IMAGE, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_RGBA, inspectBytes, inspectWithValues, normalizeEmit, normalizeInputType, normalizeValues, probeSupportWithValues, readWithValues, readWithValuesAsync };
486
+ export { DEFAULT_VALUES, OUTPUT_IMAGE, OUTPUT_RAW, OUTPUT_RGBA, inspectBytes, inspectWithValues, normalizeEmit, normalizeInputType, normalizeValues, probeSupportWithValues, readWithValues, readWithValuesAsync };
489
487
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/png/core/helpers.js"],"sourcesContent":["import { toJsonWithByteSummary as toJsonValue } from \"../../../format/jsonPolicies.js\";\nimport { capitalizeFormatId, foreignImageRecord, identifyImageBytes, imageMimeType, isPNG, pngChannels, rawVariant } from \"../../../format/imageSignatures.js\";\n\n// The container sniffer is shared; re-exported because the format class\n// imports it from this module.\nexport { isPNG };\nimport { asUint8Array, readU16BE, readU16LE, readU32BE, readU32LE } from \"#utils/bytes\";\nimport { decompressBytes } from \"#utils/compression\";\nexport const OUTPUT_IMAGE = \"image\";\nexport const OUTPUT_TEXTURE = \"texture\";\nexport const OUTPUT_RGBA = \"rgba\";\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_JSON = \"json\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_RAW,\n inputType: \"\",\n source: \"\"\n});\n\nconst DEBUG_OUTPUTS = Object.freeze({\n png: \"pngJson\",\n jpeg: \"jpegJson\",\n jpg: \"jpegJson\",\n tga: \"tgaJson\",\n dds: \"ddsJson\"\n});\n\n\n/**\n * Normalizes reader options against their supported defaults for the PNG format\n * reader.\n */\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsImageFormat\")\n{\n const values = { ...DEFAULT_VALUES, ...(base || {}), ...(options || {}) };\n values.inputType = normalizeInputType(values.inputType);\n values.emit = normalizeEmit(values.emit, values.inputType, readerName);\n return values;\n}\n\n/** Normalizes the requested input representation for the PNG format reader. */\nexport function normalizeInputType(inputType)\n{\n if (!inputType) return \"\";\n const value = String(inputType).replace(/^\\./u, \"\").toLowerCase();\n return value === \"jpg\" ? \"jpeg\" : value;\n}\n\n/** Normalizes the requested output representation for the PNG format reader. */\nexport function normalizeEmit(emit, inputType, readerName)\n{\n if (emit === undefined || emit === null) return OUTPUT_RAW;\n if (emit === OUTPUT_JSON && inputType) return DEBUG_OUTPUTS[inputType] || OUTPUT_JSON;\n if ([ OUTPUT_IMAGE, OUTPUT_RGBA, OUTPUT_RAW, OUTPUT_JSON ].includes(emit)) return emit;\n if (Object.values(DEBUG_OUTPUTS).includes(emit)) return emit;\n throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(emit)}`);\n}\n\n/** Returns a byte view over the supplied binary input for the PNG format reader. */\n/** Inspects input using normalized format options for the PNG format reader. */\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = asUint8Array(input, \"Image input\");\n const detected = inspectBytes(bytes);\n const sourceFormat = expectedType || values.inputType || detected.sourceFormat;\n\n if (expectedType && detected.sourceFormat && detected.sourceFormat !== expectedType)\n {\n throw new TypeError(`CjsFormat${capitalizeFormatId(expectedType)}: expected ${expectedType}, got ${detected.sourceFormat}`);\n }\n\n return {\n payloadType: sourceFormat === \"dds\" ? \"texture\" : \"image\",\n mediaTypes: sourceFormat === \"dds\" ? [ \"texture\", \"image\" ] : [ \"image\" ],\n sourceFormat,\n byteLength: bytes.byteLength,\n ...detected\n };\n}\n\n/**\n * Reports whether input is supported under normalized format options for the PNG\n * format reader.\n */\nexport function probeSupportWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n try\n {\n const metadata = inspectWithValues(input, values, expectedType);\n const pngSupport = metadata.sourceFormat === \"png\" ? pngRgbaSupport(metadata) : null;\n const variants = [\n {\n kind: \"rgba\",\n payloadType: \"rgba\",\n codec: \"rgba8unorm\",\n supported: pngSupport?.supported === true,\n reason: pngSupport?.reason || `${metadata.sourceFormat.toUpperCase()} RGBA decode is not implemented yet.`,\n meta: { async: true }\n },\n rawVariant(metadata)\n ];\n\n return {\n format: metadata.sourceFormat,\n source: values.source || \"buffer\",\n supported: metadata.sourceFormat ? (variants.some((variant) => variant.kind === \"rgba\" && variant.supported) ? \"full\" : \"partial\") : \"none\",\n confidence: metadata.sourceFormat ? 1 : 0,\n preferredOutput: variants.find(v => v.supported)?.kind || \"\",\n reason: metadata.sourceFormat ? \"Container/header recognized.\" : \"Unrecognized image format.\",\n metadata,\n variants,\n warnings: [],\n errors: []\n };\n }\n catch (error)\n {\n return {\n format: expectedType || values.inputType || \"\",\n source: values.source || \"buffer\",\n supported: \"none\",\n confidence: 0,\n preferredOutput: \"\",\n reason: error.message,\n metadata: null,\n variants: [],\n warnings: [],\n errors: [ error.message ]\n };\n }\n}\n\n/** Reads input using normalized format options for the PNG format reader. */\nexport function readWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = asUint8Array(input, \"Image input\");\n const metadata = inspectWithValues(bytes, values, expectedType);\n\n if (values.emit === OUTPUT_RAW)\n {\n return {\n payloadType: \"raw\",\n sourceFormat: metadata.sourceFormat,\n mimeType: imageMimeType(metadata.sourceFormat),\n metadata,\n bytes\n };\n }\n\n if (values.emit === OUTPUT_JSON || values.emit === DEBUG_OUTPUTS[metadata.sourceFormat])\n {\n return metadata;\n }\n\n const error = new Error(`${metadata.sourceFormat}: emit \"${values.emit}\" is not implemented yet`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED\";\n error.sourceFormat = metadata.sourceFormat;\n error.emit = values.emit;\n throw error;\n}\n\n/**\n * Reads input asynchronously using normalized format options for the PNG format\n * reader.\n */\nexport async function readWithValuesAsync(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = asUint8Array(input, \"Image input\");\n const metadata = inspectWithValues(bytes, values, expectedType);\n\n if (values.emit === OUTPUT_RAW || values.emit === OUTPUT_JSON || values.emit === DEBUG_OUTPUTS[metadata.sourceFormat])\n {\n return readWithValues(bytes, values, expectedType);\n }\n\n if ((values.emit === OUTPUT_RGBA || values.emit === OUTPUT_IMAGE) && metadata.sourceFormat === \"png\")\n {\n return decodePngToRgba(bytes, metadata);\n }\n\n return readWithValues(bytes, values, expectedType);\n}\n\n/** Converts a parsed payload into a JSON-safe value for the PNG format reader. */\n/** The shared JSON policy for this reader, under the name its callers use. */\nexport { toJsonValue };\n\n/**\n * Inspects the supplied bytes without decoding their payload for the PNG format\n * reader.\n */\nexport function inspectBytes(bytes)\n{\n const sourceFormat = identifyImageBytes(bytes);\n return sourceFormat === \"png\" ? inspectPNG(bytes) : foreignImageRecord(sourceFormat);\n}\n\n\n\n\n\nfunction inspectPNG(bytes)\n{\n const colorType = bytes[25], bitDepth = bytes[24];\n const chunks = readPngChunkSummary(bytes);\n return {\n sourceFormat: \"png\",\n width: readU32BE(bytes, 16),\n height: readU32BE(bytes, 20),\n bitDepth,\n colorType,\n channels: pngChannels(colorType),\n pixelFormat: `png-${bitDepth}-${colorType}`,\n isCompressed: false,\n compressionMethod: bytes[26],\n filterMethod: bytes[27],\n interlaceMethod: bytes[28],\n ...chunks\n };\n}\n\nasync function decodePngToRgba(bytes, metadata)\n{\n const support = pngRgbaSupport(metadata);\n if (!support.supported)\n {\n throwPngUnsupported(metadata, support.reason);\n }\n\n const chunks = readPngChunks(bytes);\n metadata.__pngPalette = chunks.palette;\n metadata.__pngTransparency = chunks.trns;\n if (chunks.trns && metadata.colorType === 0)\n {\n metadata.__pngTransparentGray = metadata.bitDepth === 16\n ? (chunks.trns[0] << 8) | chunks.trns[1]\n : chunks.trns[1];\n }\n const compressed = concatBytes(chunks.idat);\n const inflated = await decompressBytes(compressed, \"deflate\");\n const channels = pngChannels(metadata.colorType);\n const rgba = new Uint8Array(metadata.width * metadata.height * 4);\n if (metadata.interlaceMethod === 0)\n {\n const bytesPerSample = metadata.bitDepth >= 8 ? Math.ceil(metadata.bitDepth / 8) : 1;\n const rowBytes = Math.ceil(metadata.width * channels * metadata.bitDepth / 8);\n const filterBytesPerPixel = Math.max(1, channels * bytesPerSample);\n const expectedLength = metadata.height * (rowBytes + 1);\n if (inflated.byteLength < expectedLength)\n {\n throwPngUnsupported(metadata, \"PNG image data is truncated.\");\n }\n\n const rows = unfilterPngRows(inflated, metadata.height, rowBytes, filterBytesPerPixel);\n for (let y = 0; y < metadata.height; y++)\n {\n decodePngRow(rows, y * rowBytes, rgba, y * metadata.width * 4, metadata, metadata.width);\n }\n }\n else\n {\n decodeAdam7Rows(inflated, rgba, metadata);\n }\n\n return {\n payloadType: OUTPUT_RGBA,\n sourceFormat: \"png\",\n mimeType: \"image/png\",\n width: metadata.width,\n height: metadata.height,\n pixelFormat: \"rgba8unorm\",\n strideBytes: metadata.width * 4,\n origin: \"top-left\",\n colorSpace: chunks.srgb ? \"srgb\" : \"unknown\",\n alphaMode: [ 4, 6 ].includes(metadata.colorType) || chunks.trns ? \"straight\" : \"opaque\",\n metadata,\n data: rgba\n };\n}\n\n\n\nfunction pngRgbaSupport(metadata)\n{\n if (metadata.idatChunkCount < 1 || metadata.idatBytes < 1)\n {\n return { supported: false, reason: \"PNG has no IDAT image data for RGBA decode.\" };\n }\n if (!metadata.hasIend)\n {\n return { supported: false, reason: \"PNG stream has no complete IEND chunk.\" };\n }\n const depths = {\n 0: [ 1, 2, 4, 8, 16 ],\n 2: [ 8, 16 ],\n 3: [ 1, 2, 4, 8 ],\n 4: [ 8, 16 ],\n 6: [ 8, 16 ]\n };\n if (!Object.hasOwn(depths, metadata.colorType) || !depths[metadata.colorType].includes(metadata.bitDepth))\n {\n return { supported: false, reason: \"PNG color type and bit depth are unsupported by the RGBA decoder.\" };\n }\n if (![ 0, 1 ].includes(metadata.interlaceMethod))\n {\n return { supported: false, reason: \"PNG interlace method is unsupported by the RGBA decoder.\" };\n }\n if (metadata.compressionMethod !== 0 || metadata.filterMethod !== 0)\n {\n return { supported: false, reason: \"PNG compression/filter methods are unsupported by the RGBA decoder.\" };\n }\n // `Blob` is deliberately not required: the shared `decompressBytes` feeds the\n // bytes straight to `Response`, so an environment with DecompressionStream and\n // Response but no Blob can decode and used to be told it could not.\n if (typeof DecompressionStream !== \"function\" || typeof Response !== \"function\")\n {\n return { supported: false, reason: \"PNG async RGBA decode requires platform DecompressionStream support.\" };\n }\n return { supported: true, reason: \"Use readAsync/readWithValuesAsync for platform deflate decode.\" };\n}\n\nfunction readPngChunks(bytes)\n{\n const chunks = { idat: [], palette: null, trns: null, srgb: false };\n let offset = 8;\n while (offset + 12 <= bytes.byteLength)\n {\n const length = readU32BE(bytes, offset);\n const type = String.fromCharCode(bytes[offset + 4], bytes[offset + 5], bytes[offset + 6], bytes[offset + 7]);\n const start = offset + 8;\n const end = start + length;\n if (end + 4 > bytes.byteLength) break;\n const data = bytes.subarray(start, end);\n if (type === \"IDAT\") chunks.idat.push(data);\n else if (type === \"PLTE\") chunks.palette = data;\n else if (type === \"tRNS\") chunks.trns = data;\n else if (type === \"sRGB\") chunks.srgb = true;\n offset = end + 4;\n if (type === \"IEND\") break;\n }\n return chunks;\n}\n\nfunction readPngChunkSummary(bytes)\n{\n let cursor = 8;\n let chunkCount = 0;\n let idatChunkCount = 0;\n let idatBytes = 0;\n let hasPalette = false;\n let hasTransparency = false;\n let hasSrgb = false;\n let hasIend = false;\n let chunksComplete = true;\n let pngOffset = null;\n let physicalPixelDimensions = null;\n while (cursor + 12 <= bytes.byteLength)\n {\n const length = readU32BE(bytes, cursor);\n const type = String.fromCharCode(bytes[cursor + 4], bytes[cursor + 5], bytes[cursor + 6], bytes[cursor + 7]);\n const end = cursor + 8 + length;\n if (end + 4 > bytes.byteLength)\n {\n chunksComplete = false;\n break;\n }\n chunkCount++;\n if (type === \"IDAT\")\n {\n idatChunkCount++;\n idatBytes += length;\n }\n else if (type === \"PLTE\") hasPalette = true;\n else if (type === \"tRNS\") hasTransparency = true;\n else if (type === \"sRGB\") hasSrgb = true;\n else if (type === \"oFFs\" && length === 9)\n {\n pngOffset = {\n x: readI32BE(bytes, cursor + 8),\n y: readI32BE(bytes, cursor + 12),\n unit: bytes[cursor + 16]\n };\n }\n else if (type === \"pHYs\" && length === 9)\n {\n physicalPixelDimensions = {\n x: readU32BE(bytes, cursor + 8),\n y: readU32BE(bytes, cursor + 12),\n unit: bytes[cursor + 16]\n };\n }\n else if (type === \"IEND\") hasIend = true;\n cursor = end + 4;\n if (type === \"IEND\") break;\n }\n return {\n chunkCount,\n idatChunkCount,\n idatBytes,\n hasPalette,\n hasTransparency,\n hasSrgb,\n hasIend,\n chunksComplete,\n offset: pngOffset,\n physicalPixelDimensions\n };\n}\n\nfunction concatBytes(chunks)\n{\n const length = chunks.reduce((sum, chunk) => sum + chunk.byteLength, 0);\n const output = new Uint8Array(length);\n let offset = 0;\n for (const chunk of chunks)\n {\n output.set(chunk, offset);\n offset += chunk.byteLength;\n }\n return output;\n}\n\nfunction unfilterPngRows(inflated, height, rowBytes, bytesPerPixel)\n{\n const rows = new Uint8Array(height * rowBytes);\n let inputOffset = 0;\n for (let y = 0; y < height; y++)\n {\n const filter = inflated[inputOffset++];\n const rowOffset = y * rowBytes;\n const previousOffset = (y - 1) * rowBytes;\n for (let x = 0; x < rowBytes; x++)\n {\n const raw = inflated[inputOffset++];\n const left = x >= bytesPerPixel ? rows[rowOffset + x - bytesPerPixel] : 0;\n const up = y > 0 ? rows[previousOffset + x] : 0;\n const upLeft = y > 0 && x >= bytesPerPixel ? rows[previousOffset + x - bytesPerPixel] : 0;\n let value = raw;\n if (filter === 1) value = raw + left;\n else if (filter === 2) value = raw + up;\n else if (filter === 3) value = raw + Math.floor((left + up) / 2);\n else if (filter === 4) value = raw + paeth(left, up, upLeft);\n else if (filter !== 0) throw new Error(`png: unsupported filter type ${filter}`);\n rows[rowOffset + x] = value & 0xff;\n }\n }\n return rows;\n}\n\nfunction decodePngRow(rows, rowOffset, output, outputOffset, metadata, rowWidth, xStep = 1)\n{\n const channels = pngChannels(metadata.colorType);\n const bitDepth = metadata.bitDepth;\n for (let x = 0; x < rowWidth; x++)\n {\n const samples = [];\n for (let channel = 0; channel < channels; channel++)\n {\n samples.push(readPngSample(rows, rowOffset, x * channels + channel, bitDepth));\n }\n const out = outputOffset + x * xStep * 4;\n if (metadata.colorType === 0)\n {\n const gray = scalePngSample(samples[0], bitDepth);\n output[out] = gray;\n output[out + 1] = gray;\n output[out + 2] = gray;\n output[out + 3] = pngTransparentGray(metadata, samples[0]) ? 0 : 255;\n }\n else if (metadata.colorType === 2)\n {\n output[out] = scalePngSample(samples[0], bitDepth);\n output[out + 1] = scalePngSample(samples[1], bitDepth);\n output[out + 2] = scalePngSample(samples[2], bitDepth);\n output[out + 3] = 255;\n }\n else if (metadata.colorType === 3)\n {\n const index = samples[0];\n const palette = metadata.__pngPalette || [];\n output[out] = palette[index * 3] || 0;\n output[out + 1] = palette[index * 3 + 1] || 0;\n output[out + 2] = palette[index * 3 + 2] || 0;\n output[out + 3] = metadata.__pngTransparency?.[index] ?? 255;\n }\n else if (metadata.colorType === 4)\n {\n const gray = scalePngSample(samples[0], bitDepth);\n output[out] = gray;\n output[out + 1] = gray;\n output[out + 2] = gray;\n output[out + 3] = scalePngSample(samples[1], bitDepth);\n }\n else\n {\n output[out] = scalePngSample(samples[0], bitDepth);\n output[out + 1] = scalePngSample(samples[1], bitDepth);\n output[out + 2] = scalePngSample(samples[2], bitDepth);\n output[out + 3] = scalePngSample(samples[3], bitDepth);\n }\n }\n}\n\nfunction decodeAdam7Rows(inflated, output, metadata)\n{\n const passes = [\n [ 0, 0, 8, 8 ],\n [ 4, 0, 8, 8 ],\n [ 0, 4, 4, 8 ],\n [ 2, 0, 4, 4 ],\n [ 0, 2, 2, 4 ],\n [ 1, 0, 2, 2 ],\n [ 0, 1, 1, 2 ]\n ];\n const channels = pngChannels(metadata.colorType);\n const bytesPerSample = metadata.bitDepth >= 8 ? Math.ceil(metadata.bitDepth / 8) : 1;\n const filterBytesPerPixel = Math.max(1, channels * bytesPerSample);\n let offset = 0;\n\n for (const [ xStart, yStart, xStep, yStep ] of passes)\n {\n const passWidth = Math.max(0, Math.ceil((metadata.width - xStart) / xStep));\n const passHeight = Math.max(0, Math.ceil((metadata.height - yStart) / yStep));\n if (passWidth === 0 || passHeight === 0) continue;\n\n const rowBytes = Math.ceil(passWidth * channels * metadata.bitDepth / 8);\n const expectedLength = passHeight * (rowBytes + 1);\n if (offset + expectedLength > inflated.byteLength)\n {\n throwPngUnsupported(metadata, \"PNG Adam7 image data is truncated.\");\n }\n\n const rows = unfilterPngRows(inflated.subarray(offset, offset + expectedLength), passHeight, rowBytes, filterBytesPerPixel);\n for (let y = 0; y < passHeight; y++)\n {\n const destinationY = yStart + y * yStep;\n const destinationX = xStart;\n const outputOffset = (destinationY * metadata.width + destinationX) * 4;\n decodePngRow(rows, y * rowBytes, output, outputOffset, metadata, passWidth, xStep);\n }\n offset += expectedLength;\n }\n\n if (offset !== inflated.byteLength)\n {\n throwPngUnsupported(metadata, \"PNG Adam7 image data has trailing bytes.\");\n }\n}\n\nfunction readPngSample(rows, rowOffset, sampleIndex, bitDepth)\n{\n if (bitDepth >= 8)\n {\n const bytesPerSample = bitDepth / 8;\n const offset = rowOffset + sampleIndex * bytesPerSample;\n return bytesPerSample === 1 ? rows[offset] : (rows[offset] << 8) | rows[offset + 1];\n }\n const perByte = 8 / bitDepth;\n const offset = rowOffset + Math.floor(sampleIndex / perByte);\n const shift = (perByte - 1 - (sampleIndex % perByte)) * bitDepth;\n return (rows[offset] >>> shift) & ((1 << bitDepth) - 1);\n}\n\nfunction scalePngSample(value, bitDepth)\n{\n const max = (1 << Math.min(bitDepth, 16)) - 1;\n return Math.round(value * 255 / max);\n}\n\nfunction pngTransparentGray(metadata, value)\n{\n return metadata.__pngTransparentGray !== undefined && value === metadata.__pngTransparentGray;\n}\n\nfunction paeth(a, b, c)\n{\n const p = a + b - c;\n const pa = Math.abs(p - a), pb = Math.abs(p - b), pc = Math.abs(p - c);\n return pa <= pb && pa <= pc ? a : pb <= pc ? b : c;\n}\n\nfunction throwPngUnsupported(metadata, message)\n{\n const error = new Error(`png: ${message}`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = metadata.sourceFormat;\n throw error;\n}\n\n\n\n\n\nfunction readI32BE(bytes, offset)\n{\n return new DataView(bytes.buffer, bytes.byteOffset + offset, 4).getInt32(0, false);\n}\n\n\n"],"names":["OUTPUT_IMAGE","OUTPUT_RGBA","OUTPUT_RAW","OUTPUT_JSON","DEFAULT_VALUES","Object","freeze","emit","inputType","source","DEBUG_OUTPUTS","png","jpeg","jpg","tga","dds","normalizeValues","base","options","readerName","values","normalizeInputType","normalizeEmit","value","String","replace","toLowerCase","undefined","includes","TypeError","JSON","stringify","inspectWithValues","input","expectedType","bytes","asUint8Array","detected","inspectBytes","sourceFormat","capitalizeFormatId","payloadType","mediaTypes","byteLength","probeSupportWithValues","metadata","pngSupport","pngRgbaSupport","variants","kind","codec","supported","reason","toUpperCase","meta","async","rawVariant","format","some","variant","confidence","preferredOutput","find","v","warnings","errors","error","message","readWithValues","mimeType","imageMimeType","Error","code","readWithValuesAsync","decodePngToRgba","identifyImageBytes","inspectPNG","foreignImageRecord","colorType","bitDepth","chunks","readPngChunkSummary","width","readU32BE","height","channels","pngChannels","pixelFormat","isCompressed","compressionMethod","filterMethod","interlaceMethod","support","throwPngUnsupported","readPngChunks","__pngPalette","palette","__pngTransparency","trns","__pngTransparentGray","compressed","concatBytes","idat","inflated","decompressBytes","rgba","Uint8Array","bytesPerSample","Math","ceil","rowBytes","filterBytesPerPixel","max","expectedLength","rows","unfilterPngRows","y","decodePngRow","decodeAdam7Rows","strideBytes","origin","colorSpace","srgb","alphaMode","data","idatChunkCount","idatBytes","hasIend","depths","hasOwn","DecompressionStream","Response","offset","length","type","fromCharCode","start","end","subarray","push","cursor","chunkCount","hasPalette","hasTransparency","hasSrgb","chunksComplete","pngOffset","physicalPixelDimensions","x","readI32BE","unit","reduce","sum","chunk","output","set","bytesPerPixel","inputOffset","filter","rowOffset","previousOffset","raw","left","up","upLeft","floor","paeth","outputOffset","rowWidth","xStep","samples","channel","readPngSample","out","gray","scalePngSample","pngTransparentGray","index","passes","xStart","yStart","yStep","passWidth","passHeight","destinationY","destinationX","sampleIndex","perByte","shift","min","round","a","b","c","p","pa","abs","pb","pc","DataView","buffer","byteOffset","getInt32"],"mappings":";;;;;AAQO,MAAMA,YAAY,GAAG;AAErB,MAAMC,WAAW,GAAG;AACpB,MAAMC,UAAU,GAAG;AACnB,MAAMC,WAAW,GAAG;MAEdC,cAAc,GAAGC,MAAM,CAACC,MAAM,CAAC;AACxCC,EAAAA,IAAI,EAAEL,UAAU;AAChBM,EAAAA,SAAS,EAAE,EAAE;AACbC,EAAAA,MAAM,EAAE;AACZ,CAAC;AAED,MAAMC,aAAa,GAAGL,MAAM,CAACC,MAAM,CAAC;AAChCK,EAAAA,GAAG,EAAE,SAAS;AACdC,EAAAA,IAAI,EAAE,UAAU;AAChBC,EAAAA,GAAG,EAAE,UAAU;AACfC,EAAAA,GAAG,EAAE,SAAS;AACdC,EAAAA,GAAG,EAAE;AACT,CAAC,CAAC;;AAGF;AACA;AACA;AACA;AACO,SAASC,eAAeA,CAACC,IAAI,GAAGb,cAAc,EAAEc,OAAO,GAAG,EAAE,EAAEC,UAAU,GAAG,gBAAgB,EAClG;AACI,EAAA,MAAMC,MAAM,GAAG;AAAE,IAAA,GAAGhB,cAAc;AAAE,IAAA,IAAIa,IAAI,IAAI,EAAE,CAAC;IAAE,IAAIC,OAAO,IAAI,EAAE;GAAG;EACzEE,MAAM,CAACZ,SAAS,GAAGa,kBAAkB,CAACD,MAAM,CAACZ,SAAS,CAAC;AACvDY,EAAAA,MAAM,CAACb,IAAI,GAAGe,aAAa,CAACF,MAAM,CAACb,IAAI,EAAEa,MAAM,CAACZ,SAAS,EAAEW,UAAU,CAAC;AACtE,EAAA,OAAOC,MAAM;AACjB;;AAEA;AACO,SAASC,kBAAkBA,CAACb,SAAS,EAC5C;AACI,EAAA,IAAI,CAACA,SAAS,EAAE,OAAO,EAAE;AACzB,EAAA,MAAMe,KAAK,GAAGC,MAAM,CAAChB,SAAS,CAAC,CAACiB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAACC,WAAW,EAAE;AACjE,EAAA,OAAOH,KAAK,KAAK,KAAK,GAAG,MAAM,GAAGA,KAAK;AAC3C;;AAEA;AACO,SAASD,aAAaA,CAACf,IAAI,EAAEC,SAAS,EAAEW,UAAU,EACzD;EACI,IAAIZ,IAAI,KAAKoB,SAAS,IAAIpB,IAAI,KAAK,IAAI,EAAE,OAAOL,UAAU;AAC1D,EAAA,IAAIK,IAAI,KAAKJ,WAAW,IAAIK,SAAS,EAAE,OAAOE,aAAa,CAACF,SAAS,CAAC,IAAIL,WAAW;AACrF,EAAA,IAAI,CAAEH,YAAY,EAAEC,WAAW,EAAEC,UAAU,EAAEC,WAAW,CAAE,CAACyB,QAAQ,CAACrB,IAAI,CAAC,EAAE,OAAOA,IAAI;AACtF,EAAA,IAAIF,MAAM,CAACe,MAAM,CAACV,aAAa,CAAC,CAACkB,QAAQ,CAACrB,IAAI,CAAC,EAAE,OAAOA,IAAI;AAC5D,EAAA,MAAM,IAAIsB,SAAS,CAAC,CAAA,EAAGV,UAAU,CAAA,qBAAA,EAAwBW,IAAI,CAACC,SAAS,CAACxB,IAAI,CAAC,EAAE,CAAC;AACpF;;AAEA;AACA;AACO,SAASyB,iBAAiBA,CAACC,KAAK,EAAEb,MAAM,GAAGhB,cAAc,EAAE8B,YAAY,GAAG,EAAE,EACnF;AACI,EAAA,MAAMC,KAAK,GAAGC,YAAY,CAACH,KAAK,EAAE,aAAa,CAAC;AAChD,EAAA,MAAMI,QAAQ,GAAGC,YAAY,CAACH,KAAK,CAAC;EACpC,MAAMI,YAAY,GAAGL,YAAY,IAAId,MAAM,CAACZ,SAAS,IAAI6B,QAAQ,CAACE,YAAY;EAE9E,IAAIL,YAAY,IAAIG,QAAQ,CAACE,YAAY,IAAIF,QAAQ,CAACE,YAAY,KAAKL,YAAY,EACnF;AACI,IAAA,MAAM,IAAIL,SAAS,CAAC,CAAA,SAAA,EAAYW,kBAAkB,CAACN,YAAY,CAAC,CAAA,WAAA,EAAcA,YAAY,CAAA,MAAA,EAASG,QAAQ,CAACE,YAAY,EAAE,CAAC;AAC/H,EAAA;EAEA,OAAO;AACHE,IAAAA,WAAW,EAAEF,YAAY,KAAK,KAAK,GAAG,SAAS,GAAG,OAAO;AACzDG,IAAAA,UAAU,EAAEH,YAAY,KAAK,KAAK,GAAG,CAAE,SAAS,EAAE,OAAO,CAAE,GAAG,CAAE,OAAO,CAAE;IACzEA,YAAY;IACZI,UAAU,EAAER,KAAK,CAACQ,UAAU;IAC5B,GAAGN;GACN;AACL;;AAEA;AACA;AACA;AACA;AACO,SAASO,sBAAsBA,CAACX,KAAK,EAAEb,MAAM,GAAGhB,cAAc,EAAE8B,YAAY,GAAG,EAAE,EACxF;EACI,IACA;IACI,MAAMW,QAAQ,GAAGb,iBAAiB,CAACC,KAAK,EAAEb,MAAM,EAAEc,YAAY,CAAC;AAC/D,IAAA,MAAMY,UAAU,GAAGD,QAAQ,CAACN,YAAY,KAAK,KAAK,GAAGQ,cAAc,CAACF,QAAQ,CAAC,GAAG,IAAI;IACpF,MAAMG,QAAQ,GAAG,CACb;AACIC,MAAAA,IAAI,EAAE,MAAM;AACZR,MAAAA,WAAW,EAAE,MAAM;AACnBS,MAAAA,KAAK,EAAE,YAAY;AACnBC,MAAAA,SAAS,EAAEL,UAAU,EAAEK,SAAS,KAAK,IAAI;AACzCC,MAAAA,MAAM,EAAEN,UAAU,EAAEM,MAAM,IAAI,CAAA,EAAGP,QAAQ,CAACN,YAAY,CAACc,WAAW,EAAE,CAAA,oCAAA,CAAsC;AAC1GC,MAAAA,IAAI,EAAE;AAAEC,QAAAA,KAAK,EAAE;AAAK;AACxB,KAAC,EACDC,UAAU,CAACX,QAAQ,CAAC,CACvB;IAED,OAAO;MACHY,MAAM,EAAEZ,QAAQ,CAACN,YAAY;AAC7B9B,MAAAA,MAAM,EAAEW,MAAM,CAACX,MAAM,IAAI,QAAQ;MACjC0C,SAAS,EAAEN,QAAQ,CAACN,YAAY,GAAIS,QAAQ,CAACU,IAAI,CAAEC,OAAO,IAAKA,OAAO,CAACV,IAAI,KAAK,MAAM,IAAIU,OAAO,CAACR,SAAS,CAAC,GAAG,MAAM,GAAG,SAAS,GAAI,MAAM;AAC3IS,MAAAA,UAAU,EAAEf,QAAQ,CAACN,YAAY,GAAG,CAAC,GAAG,CAAC;AACzCsB,MAAAA,eAAe,EAAEb,QAAQ,CAACc,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACZ,SAAS,CAAC,EAAEF,IAAI,IAAI,EAAE;AAC5DG,MAAAA,MAAM,EAAEP,QAAQ,CAACN,YAAY,GAAG,8BAA8B,GAAG,4BAA4B;MAC7FM,QAAQ;MACRG,QAAQ;AACRgB,MAAAA,QAAQ,EAAE,EAAE;AACZC,MAAAA,MAAM,EAAE;KACX;EACL,CAAC,CACD,OAAOC,KAAK,EACZ;IACI,OAAO;AACHT,MAAAA,MAAM,EAAEvB,YAAY,IAAId,MAAM,CAACZ,SAAS,IAAI,EAAE;AAC9CC,MAAAA,MAAM,EAAEW,MAAM,CAACX,MAAM,IAAI,QAAQ;AACjC0C,MAAAA,SAAS,EAAE,MAAM;AACjBS,MAAAA,UAAU,EAAE,CAAC;AACbC,MAAAA,eAAe,EAAE,EAAE;MACnBT,MAAM,EAAEc,KAAK,CAACC,OAAO;AACrBtB,MAAAA,QAAQ,EAAE,IAAI;AACdG,MAAAA,QAAQ,EAAE,EAAE;AACZgB,MAAAA,QAAQ,EAAE,EAAE;AACZC,MAAAA,MAAM,EAAE,CAAEC,KAAK,CAACC,OAAO;KAC1B;AACL,EAAA;AACJ;;AAEA;AACO,SAASC,cAAcA,CAACnC,KAAK,EAAEb,MAAM,GAAGhB,cAAc,EAAE8B,YAAY,GAAG,EAAE,EAChF;AACI,EAAA,MAAMC,KAAK,GAAGC,YAAY,CAACH,KAAK,EAAE,aAAa,CAAC;EAChD,MAAMY,QAAQ,GAAGb,iBAAiB,CAACG,KAAK,EAAEf,MAAM,EAAEc,YAAY,CAAC;AAE/D,EAAA,IAAId,MAAM,CAACb,IAAI,KAAKL,UAAU,EAC9B;IACI,OAAO;AACHuC,MAAAA,WAAW,EAAE,KAAK;MAClBF,YAAY,EAAEM,QAAQ,CAACN,YAAY;AACnC8B,MAAAA,QAAQ,EAAEC,aAAa,CAACzB,QAAQ,CAACN,YAAY,CAAC;MAC9CM,QAAQ;AACRV,MAAAA;KACH;AACL,EAAA;AAEA,EAAA,IAAIf,MAAM,CAACb,IAAI,KAAKJ,WAAW,IAAIiB,MAAM,CAACb,IAAI,KAAKG,aAAa,CAACmC,QAAQ,CAACN,YAAY,CAAC,EACvF;AACI,IAAA,OAAOM,QAAQ;AACnB,EAAA;AAEA,EAAA,MAAMqB,KAAK,GAAG,IAAIK,KAAK,CAAC,CAAA,EAAG1B,QAAQ,CAACN,YAAY,CAAA,QAAA,EAAWnB,MAAM,CAACb,IAAI,0BAA0B,CAAC;EACjG2D,KAAK,CAACM,IAAI,GAAG,mCAAmC;AAChDN,EAAAA,KAAK,CAAC3B,YAAY,GAAGM,QAAQ,CAACN,YAAY;AAC1C2B,EAAAA,KAAK,CAAC3D,IAAI,GAAGa,MAAM,CAACb,IAAI;AACxB,EAAA,MAAM2D,KAAK;AACf;;AAEA;AACA;AACA;AACA;AACO,eAAeO,mBAAmBA,CAACxC,KAAK,EAAEb,MAAM,GAAGhB,cAAc,EAAE8B,YAAY,GAAG,EAAE,EAC3F;AACI,EAAA,MAAMC,KAAK,GAAGC,YAAY,CAACH,KAAK,EAAE,aAAa,CAAC;EAChD,MAAMY,QAAQ,GAAGb,iBAAiB,CAACG,KAAK,EAAEf,MAAM,EAAEc,YAAY,CAAC;EAE/D,IAAId,MAAM,CAACb,IAAI,KAAKL,UAAU,IAAIkB,MAAM,CAACb,IAAI,KAAKJ,WAAW,IAAIiB,MAAM,CAACb,IAAI,KAAKG,aAAa,CAACmC,QAAQ,CAACN,YAAY,CAAC,EACrH;AACI,IAAA,OAAO6B,cAAc,CAACjC,KAAK,EAAEf,MAAM,EAAEc,YAAY,CAAC;AACtD,EAAA;AAEA,EAAA,IAAI,CAACd,MAAM,CAACb,IAAI,KAAKN,WAAW,IAAImB,MAAM,CAACb,IAAI,KAAKP,YAAY,KAAK6C,QAAQ,CAACN,YAAY,KAAK,KAAK,EACpG;AACI,IAAA,OAAOmC,eAAe,CAACvC,KAAK,EAAEU,QAAQ,CAAC;AAC3C,EAAA;AAEA,EAAA,OAAOuB,cAAc,CAACjC,KAAK,EAAEf,MAAM,EAAEc,YAAY,CAAC;AACtD;;AAMA;AACA;AACA;AACA;AACO,SAASI,YAAYA,CAACH,KAAK,EAClC;AACI,EAAA,MAAMI,YAAY,GAAGoC,kBAAkB,CAACxC,KAAK,CAAC;AAC9C,EAAA,OAAOI,YAAY,KAAK,KAAK,GAAGqC,UAAU,CAACzC,KAAK,CAAC,GAAG0C,kBAAkB,CAACtC,YAAY,CAAC;AACxF;AAMA,SAASqC,UAAUA,CAACzC,KAAK,EACzB;AACI,EAAA,MAAM2C,SAAS,GAAG3C,KAAK,CAAC,EAAE,CAAC;AAAE4C,IAAAA,QAAQ,GAAG5C,KAAK,CAAC,EAAE,CAAC;AACjD,EAAA,MAAM6C,MAAM,GAAGC,mBAAmB,CAAC9C,KAAK,CAAC;EACzC,OAAO;AACHI,IAAAA,YAAY,EAAE,KAAK;AACnB2C,IAAAA,KAAK,EAAEC,SAAS,CAAChD,KAAK,EAAE,EAAE,CAAC;AAC3BiD,IAAAA,MAAM,EAAED,SAAS,CAAChD,KAAK,EAAE,EAAE,CAAC;IAC5B4C,QAAQ;IACRD,SAAS;AACTO,IAAAA,QAAQ,EAAEC,WAAW,CAACR,SAAS,CAAC;AAChCS,IAAAA,WAAW,EAAE,CAAA,IAAA,EAAOR,QAAQ,CAAA,CAAA,EAAID,SAAS,CAAA,CAAE;AAC3CU,IAAAA,YAAY,EAAE,KAAK;AACnBC,IAAAA,iBAAiB,EAAEtD,KAAK,CAAC,EAAE,CAAC;AAC5BuD,IAAAA,YAAY,EAAEvD,KAAK,CAAC,EAAE,CAAC;AACvBwD,IAAAA,eAAe,EAAExD,KAAK,CAAC,EAAE,CAAC;IAC1B,GAAG6C;GACN;AACL;AAEA,eAAeN,eAAeA,CAACvC,KAAK,EAAEU,QAAQ,EAC9C;AACI,EAAA,MAAM+C,OAAO,GAAG7C,cAAc,CAACF,QAAQ,CAAC;AACxC,EAAA,IAAI,CAAC+C,OAAO,CAACzC,SAAS,EACtB;AACI0C,IAAAA,mBAAmB,CAAChD,QAAQ,EAAE+C,OAAO,CAACxC,MAAM,CAAC;AACjD,EAAA;AAEA,EAAA,MAAM4B,MAAM,GAAGc,aAAa,CAAC3D,KAAK,CAAC;AACnCU,EAAAA,QAAQ,CAACkD,YAAY,GAAGf,MAAM,CAACgB,OAAO;AACtCnD,EAAAA,QAAQ,CAACoD,iBAAiB,GAAGjB,MAAM,CAACkB,IAAI;EACxC,IAAIlB,MAAM,CAACkB,IAAI,IAAIrD,QAAQ,CAACiC,SAAS,KAAK,CAAC,EAC3C;AACIjC,IAAAA,QAAQ,CAACsD,oBAAoB,GAAGtD,QAAQ,CAACkC,QAAQ,KAAK,EAAE,GACjDC,MAAM,CAACkB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAIlB,MAAM,CAACkB,IAAI,CAAC,CAAC,CAAC,GACtClB,MAAM,CAACkB,IAAI,CAAC,CAAC,CAAC;AACxB,EAAA;AACA,EAAA,MAAME,UAAU,GAAGC,WAAW,CAACrB,MAAM,CAACsB,IAAI,CAAC;EAC3C,MAAMC,QAAQ,GAAG,MAAMC,eAAe,CAACJ,UAAU,EAAE,SAAS,CAAC;AAC7D,EAAA,MAAMf,QAAQ,GAAGC,WAAW,CAACzC,QAAQ,CAACiC,SAAS,CAAC;AAChD,EAAA,MAAM2B,IAAI,GAAG,IAAIC,UAAU,CAAC7D,QAAQ,CAACqC,KAAK,GAAGrC,QAAQ,CAACuC,MAAM,GAAG,CAAC,CAAC;AACjE,EAAA,IAAIvC,QAAQ,CAAC8C,eAAe,KAAK,CAAC,EAClC;AACI,IAAA,MAAMgB,cAAc,GAAG9D,QAAQ,CAACkC,QAAQ,IAAI,CAAC,GAAG6B,IAAI,CAACC,IAAI,CAAChE,QAAQ,CAACkC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC;AACpF,IAAA,MAAM+B,QAAQ,GAAGF,IAAI,CAACC,IAAI,CAAChE,QAAQ,CAACqC,KAAK,GAAGG,QAAQ,GAAGxC,QAAQ,CAACkC,QAAQ,GAAG,CAAC,CAAC;IAC7E,MAAMgC,mBAAmB,GAAGH,IAAI,CAACI,GAAG,CAAC,CAAC,EAAE3B,QAAQ,GAAGsB,cAAc,CAAC;IAClE,MAAMM,cAAc,GAAGpE,QAAQ,CAACuC,MAAM,IAAI0B,QAAQ,GAAG,CAAC,CAAC;AACvD,IAAA,IAAIP,QAAQ,CAAC5D,UAAU,GAAGsE,cAAc,EACxC;AACIpB,MAAAA,mBAAmB,CAAChD,QAAQ,EAAE,8BAA8B,CAAC;AACjE,IAAA;AAEA,IAAA,MAAMqE,IAAI,GAAGC,eAAe,CAACZ,QAAQ,EAAE1D,QAAQ,CAACuC,MAAM,EAAE0B,QAAQ,EAAEC,mBAAmB,CAAC;AACtF,IAAA,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGvE,QAAQ,CAACuC,MAAM,EAAEgC,CAAC,EAAE,EACxC;MACIC,YAAY,CAACH,IAAI,EAAEE,CAAC,GAAGN,QAAQ,EAAEL,IAAI,EAAEW,CAAC,GAAGvE,QAAQ,CAACqC,KAAK,GAAG,CAAC,EAAErC,QAAQ,EAAEA,QAAQ,CAACqC,KAAK,CAAC;AAC5F,IAAA;AACJ,EAAA,CAAC,MAED;AACIoC,IAAAA,eAAe,CAACf,QAAQ,EAAEE,IAAI,EAAE5D,QAAQ,CAAC;AAC7C,EAAA;EAEA,OAAO;AACHJ,IAAAA,WAAW,EAAExC,WAAW;AACxBsC,IAAAA,YAAY,EAAE,KAAK;AACnB8B,IAAAA,QAAQ,EAAE,WAAW;IACrBa,KAAK,EAAErC,QAAQ,CAACqC,KAAK;IACrBE,MAAM,EAAEvC,QAAQ,CAACuC,MAAM;AACvBG,IAAAA,WAAW,EAAE,YAAY;AACzBgC,IAAAA,WAAW,EAAE1E,QAAQ,CAACqC,KAAK,GAAG,CAAC;AAC/BsC,IAAAA,MAAM,EAAE,UAAU;AAClBC,IAAAA,UAAU,EAAEzC,MAAM,CAAC0C,IAAI,GAAG,MAAM,GAAG,SAAS;IAC5CC,SAAS,EAAE,CAAE,CAAC,EAAE,CAAC,CAAE,CAAC/F,QAAQ,CAACiB,QAAQ,CAACiC,SAAS,CAAC,IAAIE,MAAM,CAACkB,IAAI,GAAG,UAAU,GAAG,QAAQ;IACvFrD,QAAQ;AACR+E,IAAAA,IAAI,EAAEnB;GACT;AACL;AAIA,SAAS1D,cAAcA,CAACF,QAAQ,EAChC;EACI,IAAIA,QAAQ,CAACgF,cAAc,GAAG,CAAC,IAAIhF,QAAQ,CAACiF,SAAS,GAAG,CAAC,EACzD;IACI,OAAO;AAAE3E,MAAAA,SAAS,EAAE,KAAK;AAAEC,MAAAA,MAAM,EAAE;KAA+C;AACtF,EAAA;AACA,EAAA,IAAI,CAACP,QAAQ,CAACkF,OAAO,EACrB;IACI,OAAO;AAAE5E,MAAAA,SAAS,EAAE,KAAK;AAAEC,MAAAA,MAAM,EAAE;KAA0C;AACjF,EAAA;AACA,EAAA,MAAM4E,MAAM,GAAG;IACX,CAAC,EAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAE;AACrB,IAAA,CAAC,EAAE,CAAE,CAAC,EAAE,EAAE,CAAE;IACZ,CAAC,EAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE;AACjB,IAAA,CAAC,EAAE,CAAE,CAAC,EAAE,EAAE,CAAE;AACZ,IAAA,CAAC,EAAE,CAAE,CAAC,EAAE,EAAE;GACb;EACD,IAAI,CAAC3H,MAAM,CAAC4H,MAAM,CAACD,MAAM,EAAEnF,QAAQ,CAACiC,SAAS,CAAC,IAAI,CAACkD,MAAM,CAACnF,QAAQ,CAACiC,SAAS,CAAC,CAAClD,QAAQ,CAACiB,QAAQ,CAACkC,QAAQ,CAAC,EACzG;IACI,OAAO;AAAE5B,MAAAA,SAAS,EAAE,KAAK;AAAEC,MAAAA,MAAM,EAAE;KAAqE;AAC5G,EAAA;AACA,EAAA,IAAI,CAAC,CAAE,CAAC,EAAE,CAAC,CAAE,CAACxB,QAAQ,CAACiB,QAAQ,CAAC8C,eAAe,CAAC,EAChD;IACI,OAAO;AAAExC,MAAAA,SAAS,EAAE,KAAK;AAAEC,MAAAA,MAAM,EAAE;KAA4D;AACnG,EAAA;EACA,IAAIP,QAAQ,CAAC4C,iBAAiB,KAAK,CAAC,IAAI5C,QAAQ,CAAC6C,YAAY,KAAK,CAAC,EACnE;IACI,OAAO;AAAEvC,MAAAA,SAAS,EAAE,KAAK;AAAEC,MAAAA,MAAM,EAAE;KAAuE;AAC9G,EAAA;AACA;AACA;AACA;EACA,IAAI,OAAO8E,mBAAmB,KAAK,UAAU,IAAI,OAAOC,QAAQ,KAAK,UAAU,EAC/E;IACI,OAAO;AAAEhF,MAAAA,SAAS,EAAE,KAAK;AAAEC,MAAAA,MAAM,EAAE;KAAwE;AAC/G,EAAA;EACA,OAAO;AAAED,IAAAA,SAAS,EAAE,IAAI;AAAEC,IAAAA,MAAM,EAAE;GAAkE;AACxG;AAEA,SAAS0C,aAAaA,CAAC3D,KAAK,EAC5B;AACI,EAAA,MAAM6C,MAAM,GAAG;AAAEsB,IAAAA,IAAI,EAAE,EAAE;AAAEN,IAAAA,OAAO,EAAE,IAAI;AAAEE,IAAAA,IAAI,EAAE,IAAI;AAAEwB,IAAAA,IAAI,EAAE;GAAO;EACnE,IAAIU,MAAM,GAAG,CAAC;AACd,EAAA,OAAOA,MAAM,GAAG,EAAE,IAAIjG,KAAK,CAACQ,UAAU,EACtC;AACI,IAAA,MAAM0F,MAAM,GAAGlD,SAAS,CAAChD,KAAK,EAAEiG,MAAM,CAAC;AACvC,IAAA,MAAME,IAAI,GAAG9G,MAAM,CAAC+G,YAAY,CAACpG,KAAK,CAACiG,MAAM,GAAG,CAAC,CAAC,EAAEjG,KAAK,CAACiG,MAAM,GAAG,CAAC,CAAC,EAAEjG,KAAK,CAACiG,MAAM,GAAG,CAAC,CAAC,EAAEjG,KAAK,CAACiG,MAAM,GAAG,CAAC,CAAC,CAAC;AAC5G,IAAA,MAAMI,KAAK,GAAGJ,MAAM,GAAG,CAAC;AACxB,IAAA,MAAMK,GAAG,GAAGD,KAAK,GAAGH,MAAM;AAC1B,IAAA,IAAII,GAAG,GAAG,CAAC,GAAGtG,KAAK,CAACQ,UAAU,EAAE;IAChC,MAAMiF,IAAI,GAAGzF,KAAK,CAACuG,QAAQ,CAACF,KAAK,EAAEC,GAAG,CAAC;IACvC,IAAIH,IAAI,KAAK,MAAM,EAAEtD,MAAM,CAACsB,IAAI,CAACqC,IAAI,CAACf,IAAI,CAAC,CAAC,KACvC,IAAIU,IAAI,KAAK,MAAM,EAAEtD,MAAM,CAACgB,OAAO,GAAG4B,IAAI,CAAC,KAC3C,IAAIU,IAAI,KAAK,MAAM,EAAEtD,MAAM,CAACkB,IAAI,GAAG0B,IAAI,CAAC,KACxC,IAAIU,IAAI,KAAK,MAAM,EAAEtD,MAAM,CAAC0C,IAAI,GAAG,IAAI;IAC5CU,MAAM,GAAGK,GAAG,GAAG,CAAC;IAChB,IAAIH,IAAI,KAAK,MAAM,EAAE;AACzB,EAAA;AACA,EAAA,OAAOtD,MAAM;AACjB;AAEA,SAASC,mBAAmBA,CAAC9C,KAAK,EAClC;EACI,IAAIyG,MAAM,GAAG,CAAC;EACd,IAAIC,UAAU,GAAG,CAAC;EAClB,IAAIhB,cAAc,GAAG,CAAC;EACtB,IAAIC,SAAS,GAAG,CAAC;EACjB,IAAIgB,UAAU,GAAG,KAAK;EACtB,IAAIC,eAAe,GAAG,KAAK;EAC3B,IAAIC,OAAO,GAAG,KAAK;EACnB,IAAIjB,OAAO,GAAG,KAAK;EACnB,IAAIkB,cAAc,GAAG,IAAI;EACzB,IAAIC,SAAS,GAAG,IAAI;EACpB,IAAIC,uBAAuB,GAAG,IAAI;AAClC,EAAA,OAAOP,MAAM,GAAG,EAAE,IAAIzG,KAAK,CAACQ,UAAU,EACtC;AACI,IAAA,MAAM0F,MAAM,GAAGlD,SAAS,CAAChD,KAAK,EAAEyG,MAAM,CAAC;AACvC,IAAA,MAAMN,IAAI,GAAG9G,MAAM,CAAC+G,YAAY,CAACpG,KAAK,CAACyG,MAAM,GAAG,CAAC,CAAC,EAAEzG,KAAK,CAACyG,MAAM,GAAG,CAAC,CAAC,EAAEzG,KAAK,CAACyG,MAAM,GAAG,CAAC,CAAC,EAAEzG,KAAK,CAACyG,MAAM,GAAG,CAAC,CAAC,CAAC;AAC5G,IAAA,MAAMH,GAAG,GAAGG,MAAM,GAAG,CAAC,GAAGP,MAAM;AAC/B,IAAA,IAAII,GAAG,GAAG,CAAC,GAAGtG,KAAK,CAACQ,UAAU,EAC9B;AACIsG,MAAAA,cAAc,GAAG,KAAK;AACtB,MAAA;AACJ,IAAA;AACAJ,IAAAA,UAAU,EAAE;IACZ,IAAIP,IAAI,KAAK,MAAM,EACnB;AACIT,MAAAA,cAAc,EAAE;AAChBC,MAAAA,SAAS,IAAIO,MAAM;AACvB,IAAA,CAAC,MACI,IAAIC,IAAI,KAAK,MAAM,EAAEQ,UAAU,GAAG,IAAI,CAAC,KACvC,IAAIR,IAAI,KAAK,MAAM,EAAES,eAAe,GAAG,IAAI,CAAC,KAC5C,IAAIT,IAAI,KAAK,MAAM,EAAEU,OAAO,GAAG,IAAI,CAAC,KACpC,IAAIV,IAAI,KAAK,MAAM,IAAID,MAAM,KAAK,CAAC,EACxC;AACIa,MAAAA,SAAS,GAAG;QACRE,CAAC,EAAEC,SAAS,CAAClH,KAAK,EAAEyG,MAAM,GAAG,CAAC,CAAC;QAC/BxB,CAAC,EAAEiC,SAAS,CAAClH,KAAK,EAAEyG,MAAM,GAAG,EAAE,CAAC;AAChCU,QAAAA,IAAI,EAAEnH,KAAK,CAACyG,MAAM,GAAG,EAAE;OAC1B;IACL,CAAC,MACI,IAAIN,IAAI,KAAK,MAAM,IAAID,MAAM,KAAK,CAAC,EACxC;AACIc,MAAAA,uBAAuB,GAAG;QACtBC,CAAC,EAAEjE,SAAS,CAAChD,KAAK,EAAEyG,MAAM,GAAG,CAAC,CAAC;QAC/BxB,CAAC,EAAEjC,SAAS,CAAChD,KAAK,EAAEyG,MAAM,GAAG,EAAE,CAAC;AAChCU,QAAAA,IAAI,EAAEnH,KAAK,CAACyG,MAAM,GAAG,EAAE;OAC1B;IACL,CAAC,MACI,IAAIN,IAAI,KAAK,MAAM,EAAEP,OAAO,GAAG,IAAI;IACxCa,MAAM,GAAGH,GAAG,GAAG,CAAC;IAChB,IAAIH,IAAI,KAAK,MAAM,EAAE;AACzB,EAAA;EACA,OAAO;IACHO,UAAU;IACVhB,cAAc;IACdC,SAAS;IACTgB,UAAU;IACVC,eAAe;IACfC,OAAO;IACPjB,OAAO;IACPkB,cAAc;AACdb,IAAAA,MAAM,EAAEc,SAAS;AACjBC,IAAAA;GACH;AACL;AAEA,SAAS9C,WAAWA,CAACrB,MAAM,EAC3B;AACI,EAAA,MAAMqD,MAAM,GAAGrD,MAAM,CAACuE,MAAM,CAAC,CAACC,GAAG,EAAEC,KAAK,KAAKD,GAAG,GAAGC,KAAK,CAAC9G,UAAU,EAAE,CAAC,CAAC;AACvE,EAAA,MAAM+G,MAAM,GAAG,IAAIhD,UAAU,CAAC2B,MAAM,CAAC;EACrC,IAAID,MAAM,GAAG,CAAC;AACd,EAAA,KAAK,MAAMqB,KAAK,IAAIzE,MAAM,EAC1B;AACI0E,IAAAA,MAAM,CAACC,GAAG,CAACF,KAAK,EAAErB,MAAM,CAAC;IACzBA,MAAM,IAAIqB,KAAK,CAAC9G,UAAU;AAC9B,EAAA;AACA,EAAA,OAAO+G,MAAM;AACjB;AAEA,SAASvC,eAAeA,CAACZ,QAAQ,EAAEnB,MAAM,EAAE0B,QAAQ,EAAE8C,aAAa,EAClE;EACI,MAAM1C,IAAI,GAAG,IAAIR,UAAU,CAACtB,MAAM,GAAG0B,QAAQ,CAAC;EAC9C,IAAI+C,WAAW,GAAG,CAAC;EACnB,KAAK,IAAIzC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGhC,MAAM,EAAEgC,CAAC,EAAE,EAC/B;AACI,IAAA,MAAM0C,MAAM,GAAGvD,QAAQ,CAACsD,WAAW,EAAE,CAAC;AACtC,IAAA,MAAME,SAAS,GAAG3C,CAAC,GAAGN,QAAQ;AAC9B,IAAA,MAAMkD,cAAc,GAAG,CAAC5C,CAAC,GAAG,CAAC,IAAIN,QAAQ;IACzC,KAAK,IAAIsC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGtC,QAAQ,EAAEsC,CAAC,EAAE,EACjC;AACI,MAAA,MAAMa,GAAG,GAAG1D,QAAQ,CAACsD,WAAW,EAAE,CAAC;AACnC,MAAA,MAAMK,IAAI,GAAGd,CAAC,IAAIQ,aAAa,GAAG1C,IAAI,CAAC6C,SAAS,GAAGX,CAAC,GAAGQ,aAAa,CAAC,GAAG,CAAC;AACzE,MAAA,MAAMO,EAAE,GAAG/C,CAAC,GAAG,CAAC,GAAGF,IAAI,CAAC8C,cAAc,GAAGZ,CAAC,CAAC,GAAG,CAAC;AAC/C,MAAA,MAAMgB,MAAM,GAAGhD,CAAC,GAAG,CAAC,IAAIgC,CAAC,IAAIQ,aAAa,GAAG1C,IAAI,CAAC8C,cAAc,GAAGZ,CAAC,GAAGQ,aAAa,CAAC,GAAG,CAAC;MACzF,IAAIrI,KAAK,GAAG0I,GAAG;AACf,MAAA,IAAIH,MAAM,KAAK,CAAC,EAAEvI,KAAK,GAAG0I,GAAG,GAAGC,IAAI,CAAC,KAChC,IAAIJ,MAAM,KAAK,CAAC,EAAEvI,KAAK,GAAG0I,GAAG,GAAGE,EAAE,CAAC,KACnC,IAAIL,MAAM,KAAK,CAAC,EAAEvI,KAAK,GAAG0I,GAAG,GAAGrD,IAAI,CAACyD,KAAK,CAAC,CAACH,IAAI,GAAGC,EAAE,IAAI,CAAC,CAAC,CAAC,KAC5D,IAAIL,MAAM,KAAK,CAAC,EAAEvI,KAAK,GAAG0I,GAAG,GAAGK,KAAK,CAACJ,IAAI,EAAEC,EAAE,EAAEC,MAAM,CAAC,CAAC,KACxD,IAAIN,MAAM,KAAK,CAAC,EAAE,MAAM,IAAIvF,KAAK,CAAC,CAAA,6BAAA,EAAgCuF,MAAM,EAAE,CAAC;MAChF5C,IAAI,CAAC6C,SAAS,GAAGX,CAAC,CAAC,GAAG7H,KAAK,GAAG,IAAI;AACtC,IAAA;AACJ,EAAA;AACA,EAAA,OAAO2F,IAAI;AACf;AAEA,SAASG,YAAYA,CAACH,IAAI,EAAE6C,SAAS,EAAEL,MAAM,EAAEa,YAAY,EAAE1H,QAAQ,EAAE2H,QAAQ,EAAEC,KAAK,GAAG,CAAC,EAC1F;AACI,EAAA,MAAMpF,QAAQ,GAAGC,WAAW,CAACzC,QAAQ,CAACiC,SAAS,CAAC;AAChD,EAAA,MAAMC,QAAQ,GAAGlC,QAAQ,CAACkC,QAAQ;EAClC,KAAK,IAAIqE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGoB,QAAQ,EAAEpB,CAAC,EAAE,EACjC;IACI,MAAMsB,OAAO,GAAG,EAAE;IAClB,KAAK,IAAIC,OAAO,GAAG,CAAC,EAAEA,OAAO,GAAGtF,QAAQ,EAAEsF,OAAO,EAAE,EACnD;AACID,MAAAA,OAAO,CAAC/B,IAAI,CAACiC,aAAa,CAAC1D,IAAI,EAAE6C,SAAS,EAAEX,CAAC,GAAG/D,QAAQ,GAAGsF,OAAO,EAAE5F,QAAQ,CAAC,CAAC;AAClF,IAAA;IACA,MAAM8F,GAAG,GAAGN,YAAY,GAAGnB,CAAC,GAAGqB,KAAK,GAAG,CAAC;AACxC,IAAA,IAAI5H,QAAQ,CAACiC,SAAS,KAAK,CAAC,EAC5B;MACI,MAAMgG,IAAI,GAAGC,cAAc,CAACL,OAAO,CAAC,CAAC,CAAC,EAAE3F,QAAQ,CAAC;AACjD2E,MAAAA,MAAM,CAACmB,GAAG,CAAC,GAAGC,IAAI;AAClBpB,MAAAA,MAAM,CAACmB,GAAG,GAAG,CAAC,CAAC,GAAGC,IAAI;AACtBpB,MAAAA,MAAM,CAACmB,GAAG,GAAG,CAAC,CAAC,GAAGC,IAAI;AACtBpB,MAAAA,MAAM,CAACmB,GAAG,GAAG,CAAC,CAAC,GAAGG,kBAAkB,CAACnI,QAAQ,EAAE6H,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG;AACxE,IAAA,CAAC,MACI,IAAI7H,QAAQ,CAACiC,SAAS,KAAK,CAAC,EACjC;AACI4E,MAAAA,MAAM,CAACmB,GAAG,CAAC,GAAGE,cAAc,CAACL,OAAO,CAAC,CAAC,CAAC,EAAE3F,QAAQ,CAAC;AAClD2E,MAAAA,MAAM,CAACmB,GAAG,GAAG,CAAC,CAAC,GAAGE,cAAc,CAACL,OAAO,CAAC,CAAC,CAAC,EAAE3F,QAAQ,CAAC;AACtD2E,MAAAA,MAAM,CAACmB,GAAG,GAAG,CAAC,CAAC,GAAGE,cAAc,CAACL,OAAO,CAAC,CAAC,CAAC,EAAE3F,QAAQ,CAAC;AACtD2E,MAAAA,MAAM,CAACmB,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG;AACzB,IAAA,CAAC,MACI,IAAIhI,QAAQ,CAACiC,SAAS,KAAK,CAAC,EACjC;AACI,MAAA,MAAMmG,KAAK,GAAGP,OAAO,CAAC,CAAC,CAAC;AACxB,MAAA,MAAM1E,OAAO,GAAGnD,QAAQ,CAACkD,YAAY,IAAI,EAAE;MAC3C2D,MAAM,CAACmB,GAAG,CAAC,GAAG7E,OAAO,CAACiF,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;AACrCvB,MAAAA,MAAM,CAACmB,GAAG,GAAG,CAAC,CAAC,GAAG7E,OAAO,CAACiF,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AAC7CvB,MAAAA,MAAM,CAACmB,GAAG,GAAG,CAAC,CAAC,GAAG7E,OAAO,CAACiF,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AAC7CvB,MAAAA,MAAM,CAACmB,GAAG,GAAG,CAAC,CAAC,GAAGhI,QAAQ,CAACoD,iBAAiB,GAAGgF,KAAK,CAAC,IAAI,GAAG;AAChE,IAAA,CAAC,MACI,IAAIpI,QAAQ,CAACiC,SAAS,KAAK,CAAC,EACjC;MACI,MAAMgG,IAAI,GAAGC,cAAc,CAACL,OAAO,CAAC,CAAC,CAAC,EAAE3F,QAAQ,CAAC;AACjD2E,MAAAA,MAAM,CAACmB,GAAG,CAAC,GAAGC,IAAI;AAClBpB,MAAAA,MAAM,CAACmB,GAAG,GAAG,CAAC,CAAC,GAAGC,IAAI;AACtBpB,MAAAA,MAAM,CAACmB,GAAG,GAAG,CAAC,CAAC,GAAGC,IAAI;AACtBpB,MAAAA,MAAM,CAACmB,GAAG,GAAG,CAAC,CAAC,GAAGE,cAAc,CAACL,OAAO,CAAC,CAAC,CAAC,EAAE3F,QAAQ,CAAC;AAC1D,IAAA,CAAC,MAED;AACI2E,MAAAA,MAAM,CAACmB,GAAG,CAAC,GAAGE,cAAc,CAACL,OAAO,CAAC,CAAC,CAAC,EAAE3F,QAAQ,CAAC;AAClD2E,MAAAA,MAAM,CAACmB,GAAG,GAAG,CAAC,CAAC,GAAGE,cAAc,CAACL,OAAO,CAAC,CAAC,CAAC,EAAE3F,QAAQ,CAAC;AACtD2E,MAAAA,MAAM,CAACmB,GAAG,GAAG,CAAC,CAAC,GAAGE,cAAc,CAACL,OAAO,CAAC,CAAC,CAAC,EAAE3F,QAAQ,CAAC;AACtD2E,MAAAA,MAAM,CAACmB,GAAG,GAAG,CAAC,CAAC,GAAGE,cAAc,CAACL,OAAO,CAAC,CAAC,CAAC,EAAE3F,QAAQ,CAAC;AAC1D,IAAA;AACJ,EAAA;AACJ;AAEA,SAASuC,eAAeA,CAACf,QAAQ,EAAEmD,MAAM,EAAE7G,QAAQ,EACnD;AACI,EAAA,MAAMqI,MAAM,GAAG,CACX,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,EACd,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,EACd,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,EACd,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,EACd,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,EACd,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,EACd,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CACjB;AACD,EAAA,MAAM7F,QAAQ,GAAGC,WAAW,CAACzC,QAAQ,CAACiC,SAAS,CAAC;AAChD,EAAA,MAAM6B,cAAc,GAAG9D,QAAQ,CAACkC,QAAQ,IAAI,CAAC,GAAG6B,IAAI,CAACC,IAAI,CAAChE,QAAQ,CAACkC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC;EACpF,MAAMgC,mBAAmB,GAAGH,IAAI,CAACI,GAAG,CAAC,CAAC,EAAE3B,QAAQ,GAAGsB,cAAc,CAAC;EAClE,IAAIyB,MAAM,GAAG,CAAC;AAEd,EAAA,KAAK,MAAM,CAAE+C,MAAM,EAAEC,MAAM,EAAEX,KAAK,EAAEY,KAAK,CAAE,IAAIH,MAAM,EACrD;IACI,MAAMI,SAAS,GAAG1E,IAAI,CAACI,GAAG,CAAC,CAAC,EAAEJ,IAAI,CAACC,IAAI,CAAC,CAAChE,QAAQ,CAACqC,KAAK,GAAGiG,MAAM,IAAIV,KAAK,CAAC,CAAC;IAC3E,MAAMc,UAAU,GAAG3E,IAAI,CAACI,GAAG,CAAC,CAAC,EAAEJ,IAAI,CAACC,IAAI,CAAC,CAAChE,QAAQ,CAACuC,MAAM,GAAGgG,MAAM,IAAIC,KAAK,CAAC,CAAC;AAC7E,IAAA,IAAIC,SAAS,KAAK,CAAC,IAAIC,UAAU,KAAK,CAAC,EAAE;AAEzC,IAAA,MAAMzE,QAAQ,GAAGF,IAAI,CAACC,IAAI,CAACyE,SAAS,GAAGjG,QAAQ,GAAGxC,QAAQ,CAACkC,QAAQ,GAAG,CAAC,CAAC;AACxE,IAAA,MAAMkC,cAAc,GAAGsE,UAAU,IAAIzE,QAAQ,GAAG,CAAC,CAAC;AAClD,IAAA,IAAIsB,MAAM,GAAGnB,cAAc,GAAGV,QAAQ,CAAC5D,UAAU,EACjD;AACIkD,MAAAA,mBAAmB,CAAChD,QAAQ,EAAE,oCAAoC,CAAC;AACvE,IAAA;IAEA,MAAMqE,IAAI,GAAGC,eAAe,CAACZ,QAAQ,CAACmC,QAAQ,CAACN,MAAM,EAAEA,MAAM,GAAGnB,cAAc,CAAC,EAAEsE,UAAU,EAAEzE,QAAQ,EAAEC,mBAAmB,CAAC;IAC3H,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGmE,UAAU,EAAEnE,CAAC,EAAE,EACnC;AACI,MAAA,MAAMoE,YAAY,GAAGJ,MAAM,GAAGhE,CAAC,GAAGiE,KAAK;MACvC,MAAMI,YAAY,GAAGN,MAAM;MAC3B,MAAMZ,YAAY,GAAG,CAACiB,YAAY,GAAG3I,QAAQ,CAACqC,KAAK,GAAGuG,YAAY,IAAI,CAAC;AACvEpE,MAAAA,YAAY,CAACH,IAAI,EAAEE,CAAC,GAAGN,QAAQ,EAAE4C,MAAM,EAAEa,YAAY,EAAE1H,QAAQ,EAAEyI,SAAS,EAAEb,KAAK,CAAC;AACtF,IAAA;AACArC,IAAAA,MAAM,IAAInB,cAAc;AAC5B,EAAA;AAEA,EAAA,IAAImB,MAAM,KAAK7B,QAAQ,CAAC5D,UAAU,EAClC;AACIkD,IAAAA,mBAAmB,CAAChD,QAAQ,EAAE,0CAA0C,CAAC;AAC7E,EAAA;AACJ;AAEA,SAAS+H,aAAaA,CAAC1D,IAAI,EAAE6C,SAAS,EAAE2B,WAAW,EAAE3G,QAAQ,EAC7D;EACI,IAAIA,QAAQ,IAAI,CAAC,EACjB;AACI,IAAA,MAAM4B,cAAc,GAAG5B,QAAQ,GAAG,CAAC;AACnC,IAAA,MAAMqD,MAAM,GAAG2B,SAAS,GAAG2B,WAAW,GAAG/E,cAAc;IACvD,OAAOA,cAAc,KAAK,CAAC,GAAGO,IAAI,CAACkB,MAAM,CAAC,GAAIlB,IAAI,CAACkB,MAAM,CAAC,IAAI,CAAC,GAAIlB,IAAI,CAACkB,MAAM,GAAG,CAAC,CAAC;AACvF,EAAA;AACA,EAAA,MAAMuD,OAAO,GAAG,CAAC,GAAG5G,QAAQ;EAC5B,MAAMqD,MAAM,GAAG2B,SAAS,GAAGnD,IAAI,CAACyD,KAAK,CAACqB,WAAW,GAAGC,OAAO,CAAC;EAC5D,MAAMC,KAAK,GAAG,CAACD,OAAO,GAAG,CAAC,GAAID,WAAW,GAAGC,OAAQ,IAAI5G,QAAQ;AAChE,EAAA,OAAQmC,IAAI,CAACkB,MAAM,CAAC,KAAKwD,KAAK,GAAK,CAAC,CAAC,IAAI7G,QAAQ,IAAI,CAAE;AAC3D;AAEA,SAASgG,cAAcA,CAACxJ,KAAK,EAAEwD,QAAQ,EACvC;AACI,EAAA,MAAMiC,GAAG,GAAG,CAAC,CAAC,IAAIJ,IAAI,CAACiF,GAAG,CAAC9G,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC;EAC7C,OAAO6B,IAAI,CAACkF,KAAK,CAACvK,KAAK,GAAG,GAAG,GAAGyF,GAAG,CAAC;AACxC;AAEA,SAASgE,kBAAkBA,CAACnI,QAAQ,EAAEtB,KAAK,EAC3C;EACI,OAAOsB,QAAQ,CAACsD,oBAAoB,KAAKxE,SAAS,IAAIJ,KAAK,KAAKsB,QAAQ,CAACsD,oBAAoB;AACjG;AAEA,SAASmE,KAAKA,CAACyB,CAAC,EAAEC,CAAC,EAAEC,CAAC,EACtB;AACI,EAAA,MAAMC,CAAC,GAAGH,CAAC,GAAGC,CAAC,GAAGC,CAAC;EACnB,MAAME,EAAE,GAAGvF,IAAI,CAACwF,GAAG,CAACF,CAAC,GAAGH,CAAC,CAAC;IAAEM,EAAE,GAAGzF,IAAI,CAACwF,GAAG,CAACF,CAAC,GAAGF,CAAC,CAAC;IAAEM,EAAE,GAAG1F,IAAI,CAACwF,GAAG,CAACF,CAAC,GAAGD,CAAC,CAAC;AACtE,EAAA,OAAOE,EAAE,IAAIE,EAAE,IAAIF,EAAE,IAAIG,EAAE,GAAGP,CAAC,GAAGM,EAAE,IAAIC,EAAE,GAAGN,CAAC,GAAGC,CAAC;AACtD;AAEA,SAASpG,mBAAmBA,CAAChD,QAAQ,EAAEsB,OAAO,EAC9C;EACI,MAAMD,KAAK,GAAG,IAAIK,KAAK,CAAC,CAAA,KAAA,EAAQJ,OAAO,EAAE,CAAC;EAC1CD,KAAK,CAACM,IAAI,GAAG,iCAAiC;AAC9CN,EAAAA,KAAK,CAAC3B,YAAY,GAAGM,QAAQ,CAACN,YAAY;AAC1C,EAAA,MAAM2B,KAAK;AACf;AAMA,SAASmF,SAASA,CAAClH,KAAK,EAAEiG,MAAM,EAChC;EACI,OAAO,IAAImE,QAAQ,CAACpK,KAAK,CAACqK,MAAM,EAAErK,KAAK,CAACsK,UAAU,GAAGrE,MAAM,EAAE,CAAC,CAAC,CAACsE,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC;AACtF;;;;"}
1
+ {"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/png/core/helpers.js"],"sourcesContent":["import { toJsonWithByteSummary as toJsonValue } from \"../../../format/jsonPolicies.js\";\nimport { capitalizeFormatId, foreignImageRecord, identifyImageBytes, imageMimeType, isPNG, pngChannels, rawVariant } from \"../../../format/imageSignatures.js\";\n\n// The container sniffer is shared; re-exported because the format class\n// imports it from this module.\nexport { isPNG };\nimport { asUint8Array, readU16BE, readU16LE, readU32BE, readU32LE } from \"#utils/bytes\";\nimport { decompressBytes } from \"#utils/compression\";\nexport const OUTPUT_IMAGE = \"image\";\nexport const OUTPUT_TEXTURE = \"texture\";\nexport const OUTPUT_RGBA = \"rgba\";\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_JSON = \"json\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_RAW,\n inputType: \"\",\n source: \"\"\n});\n\nconst DEBUG_OUTPUTS = Object.freeze({\n png: \"pngJson\",\n jpeg: \"jpegJson\",\n jpg: \"jpegJson\",\n tga: \"tgaJson\",\n dds: \"ddsJson\"\n});\n\n\n/**\n * Normalizes reader options against their supported defaults for the PNG format\n * reader.\n */\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsImageFormat\")\n{\n const values = { ...DEFAULT_VALUES, ...(base || {}), ...(options || {}) };\n values.inputType = normalizeInputType(values.inputType);\n values.emit = normalizeEmit(values.emit, values.inputType, readerName);\n return values;\n}\n\n/** Normalizes the requested input representation for the PNG format reader. */\nexport function normalizeInputType(inputType)\n{\n if (!inputType) return \"\";\n const value = String(inputType).replace(/^\\./u, \"\").toLowerCase();\n return value === \"jpg\" ? \"jpeg\" : value;\n}\n\n/** Normalizes the requested output representation for the PNG format reader. */\nexport function normalizeEmit(emit, inputType, readerName)\n{\n if (emit === undefined || emit === null) return OUTPUT_RAW;\n if ([ OUTPUT_IMAGE, OUTPUT_RGBA, OUTPUT_RAW].includes(emit)) return emit;\n if (Object.values(DEBUG_OUTPUTS).includes(emit)) return emit;\n throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(emit)}`);\n}\n\n/** Returns a byte view over the supplied binary input for the PNG format reader. */\n/** Inspects input using normalized format options for the PNG format reader. */\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = asUint8Array(input, \"Image input\");\n const detected = inspectBytes(bytes);\n const sourceFormat = expectedType || values.inputType || detected.sourceFormat;\n\n if (expectedType && detected.sourceFormat && detected.sourceFormat !== expectedType)\n {\n throw new TypeError(`CjsFormat${capitalizeFormatId(expectedType)}: expected ${expectedType}, got ${detected.sourceFormat}`);\n }\n\n return {\n payloadType: sourceFormat === \"dds\" ? \"texture\" : \"image\",\n mediaTypes: sourceFormat === \"dds\" ? [ \"texture\", \"image\" ] : [ \"image\" ],\n sourceFormat,\n byteLength: bytes.byteLength,\n ...detected\n };\n}\n\n/**\n * Reports whether input is supported under normalized format options for the PNG\n * format reader.\n */\nexport function probeSupportWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n try\n {\n const metadata = inspectWithValues(input, values, expectedType);\n const pngSupport = metadata.sourceFormat === \"png\" ? pngRgbaSupport(metadata) : null;\n const variants = [\n {\n kind: \"rgba\",\n payloadType: \"rgba\",\n codec: \"rgba8unorm\",\n supported: pngSupport?.supported === true,\n reason: pngSupport?.reason || `${metadata.sourceFormat.toUpperCase()} RGBA decode is not implemented yet.`,\n meta: { async: true }\n },\n rawVariant(metadata)\n ];\n\n return {\n format: metadata.sourceFormat,\n source: values.source || \"buffer\",\n supported: metadata.sourceFormat ? (variants.some((variant) => variant.kind === \"rgba\" && variant.supported) ? \"full\" : \"partial\") : \"none\",\n confidence: metadata.sourceFormat ? 1 : 0,\n preferredOutput: variants.find(v => v.supported)?.kind || \"\",\n reason: metadata.sourceFormat ? \"Container/header recognized.\" : \"Unrecognized image format.\",\n metadata,\n variants,\n warnings: [],\n errors: []\n };\n }\n catch (error)\n {\n return {\n format: expectedType || values.inputType || \"\",\n source: values.source || \"buffer\",\n supported: \"none\",\n confidence: 0,\n preferredOutput: \"\",\n reason: error.message,\n metadata: null,\n variants: [],\n warnings: [],\n errors: [ error.message ]\n };\n }\n}\n\n/** Reads input using normalized format options for the PNG format reader. */\nexport function readWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = asUint8Array(input, \"Image input\");\n const metadata = inspectWithValues(bytes, values, expectedType);\n\n if (values.emit === OUTPUT_RAW)\n {\n return {\n payloadType: \"raw\",\n sourceFormat: metadata.sourceFormat,\n mimeType: imageMimeType(metadata.sourceFormat),\n metadata,\n bytes\n };\n }\n\n if (values.emit === DEBUG_OUTPUTS[metadata.sourceFormat])\n {\n return metadata;\n }\n\n const error = new Error(`${metadata.sourceFormat}: emit \"${values.emit}\" is not implemented yet`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED\";\n error.sourceFormat = metadata.sourceFormat;\n error.emit = values.emit;\n throw error;\n}\n\n/**\n * Reads input asynchronously using normalized format options for the PNG format\n * reader.\n */\nexport async function readWithValuesAsync(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = asUint8Array(input, \"Image input\");\n const metadata = inspectWithValues(bytes, values, expectedType);\n\n if (values.emit === OUTPUT_RAW || values.emit === DEBUG_OUTPUTS[metadata.sourceFormat])\n {\n return readWithValues(bytes, values, expectedType);\n }\n\n if ((values.emit === OUTPUT_RGBA || values.emit === OUTPUT_IMAGE) && metadata.sourceFormat === \"png\")\n {\n return decodePngToRgba(bytes, metadata);\n }\n\n return readWithValues(bytes, values, expectedType);\n}\n\n/** Converts a parsed payload into a JSON-safe value for the PNG format reader. */\n/** The shared JSON policy for this reader, under the name its callers use. */\nexport { toJsonValue };\n\n/**\n * Inspects the supplied bytes without decoding their payload for the PNG format\n * reader.\n */\nexport function inspectBytes(bytes)\n{\n const sourceFormat = identifyImageBytes(bytes);\n return sourceFormat === \"png\" ? inspectPNG(bytes) : foreignImageRecord(sourceFormat);\n}\n\n\n\n\n\nfunction inspectPNG(bytes)\n{\n const colorType = bytes[25], bitDepth = bytes[24];\n const chunks = readPngChunkSummary(bytes);\n return {\n sourceFormat: \"png\",\n width: readU32BE(bytes, 16),\n height: readU32BE(bytes, 20),\n bitDepth,\n colorType,\n channels: pngChannels(colorType),\n pixelFormat: `png-${bitDepth}-${colorType}`,\n isCompressed: false,\n compressionMethod: bytes[26],\n filterMethod: bytes[27],\n interlaceMethod: bytes[28],\n ...chunks\n };\n}\n\nasync function decodePngToRgba(bytes, metadata)\n{\n const support = pngRgbaSupport(metadata);\n if (!support.supported)\n {\n throwPngUnsupported(metadata, support.reason);\n }\n\n const chunks = readPngChunks(bytes);\n metadata.__pngPalette = chunks.palette;\n metadata.__pngTransparency = chunks.trns;\n if (chunks.trns && metadata.colorType === 0)\n {\n metadata.__pngTransparentGray = metadata.bitDepth === 16\n ? (chunks.trns[0] << 8) | chunks.trns[1]\n : chunks.trns[1];\n }\n const compressed = concatBytes(chunks.idat);\n const inflated = await decompressBytes(compressed, \"deflate\");\n const channels = pngChannels(metadata.colorType);\n const rgba = new Uint8Array(metadata.width * metadata.height * 4);\n if (metadata.interlaceMethod === 0)\n {\n const bytesPerSample = metadata.bitDepth >= 8 ? Math.ceil(metadata.bitDepth / 8) : 1;\n const rowBytes = Math.ceil(metadata.width * channels * metadata.bitDepth / 8);\n const filterBytesPerPixel = Math.max(1, channels * bytesPerSample);\n const expectedLength = metadata.height * (rowBytes + 1);\n if (inflated.byteLength < expectedLength)\n {\n throwPngUnsupported(metadata, \"PNG image data is truncated.\");\n }\n\n const rows = unfilterPngRows(inflated, metadata.height, rowBytes, filterBytesPerPixel);\n for (let y = 0; y < metadata.height; y++)\n {\n decodePngRow(rows, y * rowBytes, rgba, y * metadata.width * 4, metadata, metadata.width);\n }\n }\n else\n {\n decodeAdam7Rows(inflated, rgba, metadata);\n }\n\n return {\n payloadType: OUTPUT_RGBA,\n sourceFormat: \"png\",\n mimeType: \"image/png\",\n width: metadata.width,\n height: metadata.height,\n pixelFormat: \"rgba8unorm\",\n strideBytes: metadata.width * 4,\n origin: \"top-left\",\n colorSpace: chunks.srgb ? \"srgb\" : \"unknown\",\n alphaMode: [ 4, 6 ].includes(metadata.colorType) || chunks.trns ? \"straight\" : \"opaque\",\n metadata,\n data: rgba\n };\n}\n\n\n\nfunction pngRgbaSupport(metadata)\n{\n if (metadata.idatChunkCount < 1 || metadata.idatBytes < 1)\n {\n return { supported: false, reason: \"PNG has no IDAT image data for RGBA decode.\" };\n }\n if (!metadata.hasIend)\n {\n return { supported: false, reason: \"PNG stream has no complete IEND chunk.\" };\n }\n const depths = {\n 0: [ 1, 2, 4, 8, 16 ],\n 2: [ 8, 16 ],\n 3: [ 1, 2, 4, 8 ],\n 4: [ 8, 16 ],\n 6: [ 8, 16 ]\n };\n if (!Object.hasOwn(depths, metadata.colorType) || !depths[metadata.colorType].includes(metadata.bitDepth))\n {\n return { supported: false, reason: \"PNG color type and bit depth are unsupported by the RGBA decoder.\" };\n }\n if (![ 0, 1 ].includes(metadata.interlaceMethod))\n {\n return { supported: false, reason: \"PNG interlace method is unsupported by the RGBA decoder.\" };\n }\n if (metadata.compressionMethod !== 0 || metadata.filterMethod !== 0)\n {\n return { supported: false, reason: \"PNG compression/filter methods are unsupported by the RGBA decoder.\" };\n }\n // `Blob` is deliberately not required: the shared `decompressBytes` feeds the\n // bytes straight to `Response`, so an environment with DecompressionStream and\n // Response but no Blob can decode and used to be told it could not.\n if (typeof DecompressionStream !== \"function\" || typeof Response !== \"function\")\n {\n return { supported: false, reason: \"PNG async RGBA decode requires platform DecompressionStream support.\" };\n }\n return { supported: true, reason: \"Use readAsync/readWithValuesAsync for platform deflate decode.\" };\n}\n\nfunction readPngChunks(bytes)\n{\n const chunks = { idat: [], palette: null, trns: null, srgb: false };\n let offset = 8;\n while (offset + 12 <= bytes.byteLength)\n {\n const length = readU32BE(bytes, offset);\n const type = String.fromCharCode(bytes[offset + 4], bytes[offset + 5], bytes[offset + 6], bytes[offset + 7]);\n const start = offset + 8;\n const end = start + length;\n if (end + 4 > bytes.byteLength) break;\n const data = bytes.subarray(start, end);\n if (type === \"IDAT\") chunks.idat.push(data);\n else if (type === \"PLTE\") chunks.palette = data;\n else if (type === \"tRNS\") chunks.trns = data;\n else if (type === \"sRGB\") chunks.srgb = true;\n offset = end + 4;\n if (type === \"IEND\") break;\n }\n return chunks;\n}\n\nfunction readPngChunkSummary(bytes)\n{\n let cursor = 8;\n let chunkCount = 0;\n let idatChunkCount = 0;\n let idatBytes = 0;\n let hasPalette = false;\n let hasTransparency = false;\n let hasSrgb = false;\n let hasIend = false;\n let chunksComplete = true;\n let pngOffset = null;\n let physicalPixelDimensions = null;\n while (cursor + 12 <= bytes.byteLength)\n {\n const length = readU32BE(bytes, cursor);\n const type = String.fromCharCode(bytes[cursor + 4], bytes[cursor + 5], bytes[cursor + 6], bytes[cursor + 7]);\n const end = cursor + 8 + length;\n if (end + 4 > bytes.byteLength)\n {\n chunksComplete = false;\n break;\n }\n chunkCount++;\n if (type === \"IDAT\")\n {\n idatChunkCount++;\n idatBytes += length;\n }\n else if (type === \"PLTE\") hasPalette = true;\n else if (type === \"tRNS\") hasTransparency = true;\n else if (type === \"sRGB\") hasSrgb = true;\n else if (type === \"oFFs\" && length === 9)\n {\n pngOffset = {\n x: readI32BE(bytes, cursor + 8),\n y: readI32BE(bytes, cursor + 12),\n unit: bytes[cursor + 16]\n };\n }\n else if (type === \"pHYs\" && length === 9)\n {\n physicalPixelDimensions = {\n x: readU32BE(bytes, cursor + 8),\n y: readU32BE(bytes, cursor + 12),\n unit: bytes[cursor + 16]\n };\n }\n else if (type === \"IEND\") hasIend = true;\n cursor = end + 4;\n if (type === \"IEND\") break;\n }\n return {\n chunkCount,\n idatChunkCount,\n idatBytes,\n hasPalette,\n hasTransparency,\n hasSrgb,\n hasIend,\n chunksComplete,\n offset: pngOffset,\n physicalPixelDimensions\n };\n}\n\nfunction concatBytes(chunks)\n{\n const length = chunks.reduce((sum, chunk) => sum + chunk.byteLength, 0);\n const output = new Uint8Array(length);\n let offset = 0;\n for (const chunk of chunks)\n {\n output.set(chunk, offset);\n offset += chunk.byteLength;\n }\n return output;\n}\n\nfunction unfilterPngRows(inflated, height, rowBytes, bytesPerPixel)\n{\n const rows = new Uint8Array(height * rowBytes);\n let inputOffset = 0;\n for (let y = 0; y < height; y++)\n {\n const filter = inflated[inputOffset++];\n const rowOffset = y * rowBytes;\n const previousOffset = (y - 1) * rowBytes;\n for (let x = 0; x < rowBytes; x++)\n {\n const raw = inflated[inputOffset++];\n const left = x >= bytesPerPixel ? rows[rowOffset + x - bytesPerPixel] : 0;\n const up = y > 0 ? rows[previousOffset + x] : 0;\n const upLeft = y > 0 && x >= bytesPerPixel ? rows[previousOffset + x - bytesPerPixel] : 0;\n let value = raw;\n if (filter === 1) value = raw + left;\n else if (filter === 2) value = raw + up;\n else if (filter === 3) value = raw + Math.floor((left + up) / 2);\n else if (filter === 4) value = raw + paeth(left, up, upLeft);\n else if (filter !== 0) throw new Error(`png: unsupported filter type ${filter}`);\n rows[rowOffset + x] = value & 0xff;\n }\n }\n return rows;\n}\n\nfunction decodePngRow(rows, rowOffset, output, outputOffset, metadata, rowWidth, xStep = 1)\n{\n const channels = pngChannels(metadata.colorType);\n const bitDepth = metadata.bitDepth;\n for (let x = 0; x < rowWidth; x++)\n {\n const samples = [];\n for (let channel = 0; channel < channels; channel++)\n {\n samples.push(readPngSample(rows, rowOffset, x * channels + channel, bitDepth));\n }\n const out = outputOffset + x * xStep * 4;\n if (metadata.colorType === 0)\n {\n const gray = scalePngSample(samples[0], bitDepth);\n output[out] = gray;\n output[out + 1] = gray;\n output[out + 2] = gray;\n output[out + 3] = pngTransparentGray(metadata, samples[0]) ? 0 : 255;\n }\n else if (metadata.colorType === 2)\n {\n output[out] = scalePngSample(samples[0], bitDepth);\n output[out + 1] = scalePngSample(samples[1], bitDepth);\n output[out + 2] = scalePngSample(samples[2], bitDepth);\n output[out + 3] = 255;\n }\n else if (metadata.colorType === 3)\n {\n const index = samples[0];\n const palette = metadata.__pngPalette || [];\n output[out] = palette[index * 3] || 0;\n output[out + 1] = palette[index * 3 + 1] || 0;\n output[out + 2] = palette[index * 3 + 2] || 0;\n output[out + 3] = metadata.__pngTransparency?.[index] ?? 255;\n }\n else if (metadata.colorType === 4)\n {\n const gray = scalePngSample(samples[0], bitDepth);\n output[out] = gray;\n output[out + 1] = gray;\n output[out + 2] = gray;\n output[out + 3] = scalePngSample(samples[1], bitDepth);\n }\n else\n {\n output[out] = scalePngSample(samples[0], bitDepth);\n output[out + 1] = scalePngSample(samples[1], bitDepth);\n output[out + 2] = scalePngSample(samples[2], bitDepth);\n output[out + 3] = scalePngSample(samples[3], bitDepth);\n }\n }\n}\n\nfunction decodeAdam7Rows(inflated, output, metadata)\n{\n const passes = [\n [ 0, 0, 8, 8 ],\n [ 4, 0, 8, 8 ],\n [ 0, 4, 4, 8 ],\n [ 2, 0, 4, 4 ],\n [ 0, 2, 2, 4 ],\n [ 1, 0, 2, 2 ],\n [ 0, 1, 1, 2 ]\n ];\n const channels = pngChannels(metadata.colorType);\n const bytesPerSample = metadata.bitDepth >= 8 ? Math.ceil(metadata.bitDepth / 8) : 1;\n const filterBytesPerPixel = Math.max(1, channels * bytesPerSample);\n let offset = 0;\n\n for (const [ xStart, yStart, xStep, yStep ] of passes)\n {\n const passWidth = Math.max(0, Math.ceil((metadata.width - xStart) / xStep));\n const passHeight = Math.max(0, Math.ceil((metadata.height - yStart) / yStep));\n if (passWidth === 0 || passHeight === 0) continue;\n\n const rowBytes = Math.ceil(passWidth * channels * metadata.bitDepth / 8);\n const expectedLength = passHeight * (rowBytes + 1);\n if (offset + expectedLength > inflated.byteLength)\n {\n throwPngUnsupported(metadata, \"PNG Adam7 image data is truncated.\");\n }\n\n const rows = unfilterPngRows(inflated.subarray(offset, offset + expectedLength), passHeight, rowBytes, filterBytesPerPixel);\n for (let y = 0; y < passHeight; y++)\n {\n const destinationY = yStart + y * yStep;\n const destinationX = xStart;\n const outputOffset = (destinationY * metadata.width + destinationX) * 4;\n decodePngRow(rows, y * rowBytes, output, outputOffset, metadata, passWidth, xStep);\n }\n offset += expectedLength;\n }\n\n if (offset !== inflated.byteLength)\n {\n throwPngUnsupported(metadata, \"PNG Adam7 image data has trailing bytes.\");\n }\n}\n\nfunction readPngSample(rows, rowOffset, sampleIndex, bitDepth)\n{\n if (bitDepth >= 8)\n {\n const bytesPerSample = bitDepth / 8;\n const offset = rowOffset + sampleIndex * bytesPerSample;\n return bytesPerSample === 1 ? rows[offset] : (rows[offset] << 8) | rows[offset + 1];\n }\n const perByte = 8 / bitDepth;\n const offset = rowOffset + Math.floor(sampleIndex / perByte);\n const shift = (perByte - 1 - (sampleIndex % perByte)) * bitDepth;\n return (rows[offset] >>> shift) & ((1 << bitDepth) - 1);\n}\n\nfunction scalePngSample(value, bitDepth)\n{\n const max = (1 << Math.min(bitDepth, 16)) - 1;\n return Math.round(value * 255 / max);\n}\n\nfunction pngTransparentGray(metadata, value)\n{\n return metadata.__pngTransparentGray !== undefined && value === metadata.__pngTransparentGray;\n}\n\nfunction paeth(a, b, c)\n{\n const p = a + b - c;\n const pa = Math.abs(p - a), pb = Math.abs(p - b), pc = Math.abs(p - c);\n return pa <= pb && pa <= pc ? a : pb <= pc ? b : c;\n}\n\nfunction throwPngUnsupported(metadata, message)\n{\n const error = new Error(`png: ${message}`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = metadata.sourceFormat;\n throw error;\n}\n\n\n\n\n\nfunction readI32BE(bytes, offset)\n{\n return new DataView(bytes.buffer, bytes.byteOffset + offset, 4).getInt32(0, false);\n}\n\n\n"],"names":["OUTPUT_IMAGE","OUTPUT_RGBA","OUTPUT_RAW","DEFAULT_VALUES","Object","freeze","emit","inputType","source","DEBUG_OUTPUTS","png","jpeg","jpg","tga","dds","normalizeValues","base","options","readerName","values","normalizeInputType","normalizeEmit","value","String","replace","toLowerCase","undefined","includes","TypeError","JSON","stringify","inspectWithValues","input","expectedType","bytes","asUint8Array","detected","inspectBytes","sourceFormat","capitalizeFormatId","payloadType","mediaTypes","byteLength","probeSupportWithValues","metadata","pngSupport","pngRgbaSupport","variants","kind","codec","supported","reason","toUpperCase","meta","async","rawVariant","format","some","variant","confidence","preferredOutput","find","v","warnings","errors","error","message","readWithValues","mimeType","imageMimeType","Error","code","readWithValuesAsync","decodePngToRgba","identifyImageBytes","inspectPNG","foreignImageRecord","colorType","bitDepth","chunks","readPngChunkSummary","width","readU32BE","height","channels","pngChannels","pixelFormat","isCompressed","compressionMethod","filterMethod","interlaceMethod","support","throwPngUnsupported","readPngChunks","__pngPalette","palette","__pngTransparency","trns","__pngTransparentGray","compressed","concatBytes","idat","inflated","decompressBytes","rgba","Uint8Array","bytesPerSample","Math","ceil","rowBytes","filterBytesPerPixel","max","expectedLength","rows","unfilterPngRows","y","decodePngRow","decodeAdam7Rows","strideBytes","origin","colorSpace","srgb","alphaMode","data","idatChunkCount","idatBytes","hasIend","depths","hasOwn","DecompressionStream","Response","offset","length","type","fromCharCode","start","end","subarray","push","cursor","chunkCount","hasPalette","hasTransparency","hasSrgb","chunksComplete","pngOffset","physicalPixelDimensions","x","readI32BE","unit","reduce","sum","chunk","output","set","bytesPerPixel","inputOffset","filter","rowOffset","previousOffset","raw","left","up","upLeft","floor","paeth","outputOffset","rowWidth","xStep","samples","channel","readPngSample","out","gray","scalePngSample","pngTransparentGray","index","passes","xStart","yStart","yStep","passWidth","passHeight","destinationY","destinationX","sampleIndex","perByte","shift","min","round","a","b","c","p","pa","abs","pb","pc","DataView","buffer","byteOffset","getInt32"],"mappings":"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"}