@carbonenginejs/runtime-resource 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) hide show
  1. package/FORMAT-PROVENANCE.md +135 -0
  2. package/LICENSE +21 -0
  3. package/NOTICE +29 -0
  4. package/README.md +241 -0
  5. package/dist/CjsMotherLode.js +56 -0
  6. package/dist/CjsMotherLode.js.map +1 -0
  7. package/dist/CjsResMan.js +740 -0
  8. package/dist/CjsResMan.js.map +1 -0
  9. package/dist/CjsResManQueue.js +214 -0
  10. package/dist/CjsResManQueue.js.map +1 -0
  11. package/dist/CjsResource.js +366 -0
  12. package/dist/CjsResource.js.map +1 -0
  13. package/dist/CjsResourceSource.js +59 -0
  14. package/dist/CjsResourceSource.js.map +1 -0
  15. package/dist/_virtual/_rollupPluginBabelHelpers.js +153 -0
  16. package/dist/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
  17. package/dist/format/CjsFormat.js +178 -0
  18. package/dist/format/CjsFormat.js.map +1 -0
  19. package/dist/format/CjsResourceProbe.js +269 -0
  20. package/dist/format/CjsResourceProbe.js.map +1 -0
  21. package/dist/format/payloadContract.js +173 -0
  22. package/dist/format/payloadContract.js.map +1 -0
  23. package/dist/formats/black/CjsBlackFormat.js +272 -0
  24. package/dist/formats/black/CjsBlackFormat.js.map +1 -0
  25. package/dist/formats/black/core/CjsBlackBinaryReader.js +153 -0
  26. package/dist/formats/black/core/CjsBlackBinaryReader.js.map +1 -0
  27. package/dist/formats/black/core/CjsBlackPropertyReaders.js +382 -0
  28. package/dist/formats/black/core/CjsBlackPropertyReaders.js.map +1 -0
  29. package/dist/formats/black/core/CjsBlackReader.js +760 -0
  30. package/dist/formats/black/core/CjsBlackReader.js.map +1 -0
  31. package/dist/formats/black/core/CjsBlackSchemaRegistry.js +433 -0
  32. package/dist/formats/black/core/CjsBlackSchemaRegistry.js.map +1 -0
  33. package/dist/formats/black/core/black-schema-v1-2026-07-11.json.js +4 -0
  34. package/dist/formats/black/core/black-schema-v1-2026-07-11.json.js.map +1 -0
  35. package/dist/formats/black/core/blackConstants.js +7 -0
  36. package/dist/formats/black/core/blackConstants.js.map +1 -0
  37. package/dist/formats/black/core/blackDefinitions.js +10 -0
  38. package/dist/formats/black/core/blackDefinitions.js.map +1 -0
  39. package/dist/formats/black/core/blackEnums.js +6 -0
  40. package/dist/formats/black/core/blackEnums.js.map +1 -0
  41. package/dist/formats/black/core/blackSchema.js +3 -0
  42. package/dist/formats/black/core/blackSchema.js.map +1 -0
  43. package/dist/formats/black/core/blackVersion.js +22 -0
  44. package/dist/formats/black/core/blackVersion.js.map +1 -0
  45. package/dist/formats/black/core/helpers.js +182 -0
  46. package/dist/formats/black/core/helpers.js.map +1 -0
  47. package/dist/formats/black/core/schema.js +4 -0
  48. package/dist/formats/black/core/schema.js.map +1 -0
  49. package/dist/formats/black/index.js +2 -0
  50. package/dist/formats/black/index.js.map +1 -0
  51. package/dist/formats/bnk/CjsBnkFormat.js +245 -0
  52. package/dist/formats/bnk/CjsBnkFormat.js.map +1 -0
  53. package/dist/formats/bnk/core/helpers.js +354 -0
  54. package/dist/formats/bnk/core/helpers.js.map +1 -0
  55. package/dist/formats/bnk/core/soundbanksInfo.js +246 -0
  56. package/dist/formats/bnk/core/soundbanksInfo.js.map +1 -0
  57. package/dist/formats/bnk/index.js +3 -0
  58. package/dist/formats/bnk/index.js.map +1 -0
  59. package/dist/formats/cmf/CjsCmfFormat.js +491 -0
  60. package/dist/formats/cmf/CjsCmfFormat.js.map +1 -0
  61. package/dist/formats/cmf/core/binary.js +118 -0
  62. package/dist/formats/cmf/core/binary.js.map +1 -0
  63. package/dist/formats/cmf/core/buffers.js +233 -0
  64. package/dist/formats/cmf/core/buffers.js.map +1 -0
  65. package/dist/formats/cmf/core/constants.js +47 -0
  66. package/dist/formats/cmf/core/constants.js.map +1 -0
  67. package/dist/formats/cmf/core/gr2Anim.js +453 -0
  68. package/dist/formats/cmf/core/gr2Anim.js.map +1 -0
  69. package/dist/formats/cmf/core/helpers.js +287 -0
  70. package/dist/formats/cmf/core/helpers.js.map +1 -0
  71. package/dist/formats/cmf/core/pack.js +276 -0
  72. package/dist/formats/cmf/core/pack.js.map +1 -0
  73. package/dist/formats/cmf/core/schema.js +364 -0
  74. package/dist/formats/cmf/core/schema.js.map +1 -0
  75. package/dist/formats/cmf/core/shared.js +268 -0
  76. package/dist/formats/cmf/core/shared.js.map +1 -0
  77. package/dist/formats/cmf/core/writer.js +517 -0
  78. package/dist/formats/cmf/core/writer.js.map +1 -0
  79. package/dist/formats/cmf/index.js +2 -0
  80. package/dist/formats/cmf/index.js.map +1 -0
  81. package/dist/formats/dds/CjsDdsFormat.js +187 -0
  82. package/dist/formats/dds/CjsDdsFormat.js.map +1 -0
  83. package/dist/formats/dds/core/helpers.js +812 -0
  84. package/dist/formats/dds/core/helpers.js.map +1 -0
  85. package/dist/formats/dds/index.js +2 -0
  86. package/dist/formats/dds/index.js.map +1 -0
  87. package/dist/formats/fbx/CjsFbxFormat.js +260 -0
  88. package/dist/formats/fbx/CjsFbxFormat.js.map +1 -0
  89. package/dist/formats/fbx/core/helpers.js +3901 -0
  90. package/dist/formats/fbx/core/helpers.js.map +1 -0
  91. package/dist/formats/fbx/index.js +2 -0
  92. package/dist/formats/fbx/index.js.map +1 -0
  93. package/dist/formats/flac/CjsFlacFormat.js +81 -0
  94. package/dist/formats/flac/CjsFlacFormat.js.map +1 -0
  95. package/dist/formats/flac/core/helpers.js +295 -0
  96. package/dist/formats/flac/core/helpers.js.map +1 -0
  97. package/dist/formats/flac/index.js +2 -0
  98. package/dist/formats/flac/index.js.map +1 -0
  99. package/dist/formats/gif/CjsGifFormat.js +81 -0
  100. package/dist/formats/gif/CjsGifFormat.js.map +1 -0
  101. package/dist/formats/gif/core/helpers.js +360 -0
  102. package/dist/formats/gif/core/helpers.js.map +1 -0
  103. package/dist/formats/gif/index.js +2 -0
  104. package/dist/formats/gif/index.js.map +1 -0
  105. package/dist/formats/gltf/CjsGltfFormat.js +284 -0
  106. package/dist/formats/gltf/CjsGltfFormat.js.map +1 -0
  107. package/dist/formats/gltf/core/helpers.js +292 -0
  108. package/dist/formats/gltf/core/helpers.js.map +1 -0
  109. package/dist/formats/gltf/core/json.js +79 -0
  110. package/dist/formats/gltf/core/json.js.map +1 -0
  111. package/dist/formats/gltf/core/parser.js +666 -0
  112. package/dist/formats/gltf/core/parser.js.map +1 -0
  113. package/dist/formats/gltf/core/targets.js +163 -0
  114. package/dist/formats/gltf/core/targets.js.map +1 -0
  115. package/dist/formats/gltf/index.js +2 -0
  116. package/dist/formats/gltf/index.js.map +1 -0
  117. package/dist/formats/index.js +23 -0
  118. package/dist/formats/index.js.map +1 -0
  119. package/dist/formats/jpeg/CjsJpegFormat.js +200 -0
  120. package/dist/formats/jpeg/CjsJpegFormat.js.map +1 -0
  121. package/dist/formats/jpeg/core/helpers.js +350 -0
  122. package/dist/formats/jpeg/core/helpers.js.map +1 -0
  123. package/dist/formats/jpeg/core/jpeg.js +377 -0
  124. package/dist/formats/jpeg/core/jpeg.js.map +1 -0
  125. package/dist/formats/jpeg/index.js +2 -0
  126. package/dist/formats/jpeg/index.js.map +1 -0
  127. package/dist/formats/mp3/CjsMp3Format.js +186 -0
  128. package/dist/formats/mp3/CjsMp3Format.js.map +1 -0
  129. package/dist/formats/mp3/core/helpers.js +338 -0
  130. package/dist/formats/mp3/core/helpers.js.map +1 -0
  131. package/dist/formats/mp3/index.js +2 -0
  132. package/dist/formats/mp3/index.js.map +1 -0
  133. package/dist/formats/mp4/CjsMp4Format.js +185 -0
  134. package/dist/formats/mp4/CjsMp4Format.js.map +1 -0
  135. package/dist/formats/mp4/core/helpers.js +449 -0
  136. package/dist/formats/mp4/core/helpers.js.map +1 -0
  137. package/dist/formats/mp4/index.js +2 -0
  138. package/dist/formats/mp4/index.js.map +1 -0
  139. package/dist/formats/obj/CjsObjFormat.js +247 -0
  140. package/dist/formats/obj/CjsObjFormat.js.map +1 -0
  141. package/dist/formats/obj/core/helpers.js +573 -0
  142. package/dist/formats/obj/core/helpers.js.map +1 -0
  143. package/dist/formats/obj/core/json.js +64 -0
  144. package/dist/formats/obj/core/json.js.map +1 -0
  145. package/dist/formats/obj/core/parser.js +321 -0
  146. package/dist/formats/obj/core/parser.js.map +1 -0
  147. package/dist/formats/obj/index.js +2 -0
  148. package/dist/formats/obj/index.js.map +1 -0
  149. package/dist/formats/ogg/CjsOggFormat.js +82 -0
  150. package/dist/formats/ogg/CjsOggFormat.js.map +1 -0
  151. package/dist/formats/ogg/core/helpers.js +387 -0
  152. package/dist/formats/ogg/core/helpers.js.map +1 -0
  153. package/dist/formats/ogg/core/imdct.js +178 -0
  154. package/dist/formats/ogg/core/imdct.js.map +1 -0
  155. package/dist/formats/ogg/core/vorbis.js +999 -0
  156. package/dist/formats/ogg/core/vorbis.js.map +1 -0
  157. package/dist/formats/ogg/index.js +2 -0
  158. package/dist/formats/ogg/index.js.map +1 -0
  159. package/dist/formats/png/CjsPngFormat.js +189 -0
  160. package/dist/formats/png/CjsPngFormat.js.map +1 -0
  161. package/dist/formats/png/core/helpers.js +583 -0
  162. package/dist/formats/png/core/helpers.js.map +1 -0
  163. package/dist/formats/png/index.js +2 -0
  164. package/dist/formats/png/index.js.map +1 -0
  165. package/dist/formats/red/CjsRedFormat.js +247 -0
  166. package/dist/formats/red/CjsRedFormat.js.map +1 -0
  167. package/dist/formats/red/core/CjsRedReader.js +201 -0
  168. package/dist/formats/red/core/CjsRedReader.js.map +1 -0
  169. package/dist/formats/red/core/blackDefinitions.js +3 -0
  170. package/dist/formats/red/core/blackDefinitions.js.map +1 -0
  171. package/dist/formats/red/core/helpers.js +136 -0
  172. package/dist/formats/red/core/helpers.js.map +1 -0
  173. package/dist/formats/red/core/redGraph.js +68 -0
  174. package/dist/formats/red/core/redGraph.js.map +1 -0
  175. package/dist/formats/red/core/schema.js +4 -0
  176. package/dist/formats/red/core/schema.js.map +1 -0
  177. package/dist/formats/red/index.js +2 -0
  178. package/dist/formats/red/index.js.map +1 -0
  179. package/dist/formats/stl/CjsStlFormat.js +304 -0
  180. package/dist/formats/stl/CjsStlFormat.js.map +1 -0
  181. package/dist/formats/stl/core/helpers.js +257 -0
  182. package/dist/formats/stl/core/helpers.js.map +1 -0
  183. package/dist/formats/stl/core/json.js +51 -0
  184. package/dist/formats/stl/core/json.js.map +1 -0
  185. package/dist/formats/stl/core/stl.js +544 -0
  186. package/dist/formats/stl/core/stl.js.map +1 -0
  187. package/dist/formats/stl/core/targets.js +163 -0
  188. package/dist/formats/stl/core/targets.js.map +1 -0
  189. package/dist/formats/stl/index.js +2 -0
  190. package/dist/formats/stl/index.js.map +1 -0
  191. package/dist/formats/tga/CjsTgaFormat.js +186 -0
  192. package/dist/formats/tga/CjsTgaFormat.js.map +1 -0
  193. package/dist/formats/tga/core/helpers.js +446 -0
  194. package/dist/formats/tga/core/helpers.js.map +1 -0
  195. package/dist/formats/tga/index.js +2 -0
  196. package/dist/formats/tga/index.js.map +1 -0
  197. package/dist/formats/wav/CjsWavFormat.js +186 -0
  198. package/dist/formats/wav/CjsWavFormat.js.map +1 -0
  199. package/dist/formats/wav/core/helpers.js +328 -0
  200. package/dist/formats/wav/core/helpers.js.map +1 -0
  201. package/dist/formats/wav/index.js +2 -0
  202. package/dist/formats/wav/index.js.map +1 -0
  203. package/dist/formats/webm/CjsWebmFormat.js +185 -0
  204. package/dist/formats/webm/CjsWebmFormat.js.map +1 -0
  205. package/dist/formats/webm/core/helpers.js +537 -0
  206. package/dist/formats/webm/core/helpers.js.map +1 -0
  207. package/dist/formats/webm/index.js +2 -0
  208. package/dist/formats/webm/index.js.map +1 -0
  209. package/dist/formats/webp/CjsWebpFormat.js +80 -0
  210. package/dist/formats/webp/CjsWebpFormat.js.map +1 -0
  211. package/dist/formats/webp/core/helpers.js +214 -0
  212. package/dist/formats/webp/core/helpers.js.map +1 -0
  213. package/dist/formats/webp/index.js +2 -0
  214. package/dist/formats/webp/index.js.map +1 -0
  215. package/dist/formats/wem/CjsWemFormat.js +197 -0
  216. package/dist/formats/wem/CjsWemFormat.js.map +1 -0
  217. package/dist/formats/wem/core/bitStream.js +259 -0
  218. package/dist/formats/wem/core/bitStream.js.map +1 -0
  219. package/dist/formats/wem/core/codebookLibrary.js +164 -0
  220. package/dist/formats/wem/core/codebookLibrary.js.map +1 -0
  221. package/dist/formats/wem/core/helpers.js +336 -0
  222. package/dist/formats/wem/core/helpers.js.map +1 -0
  223. package/dist/formats/wem/core/packedCodebooksAotuv603.js +30 -0
  224. package/dist/formats/wem/core/packedCodebooksAotuv603.js.map +1 -0
  225. package/dist/formats/wem/core/wemToOgg.js +485 -0
  226. package/dist/formats/wem/core/wemToOgg.js.map +1 -0
  227. package/dist/formats/wem/index.js +2 -0
  228. package/dist/formats/wem/index.js.map +1 -0
  229. package/dist/formats/yaml/CjsYamlFormat.js +77 -0
  230. package/dist/formats/yaml/CjsYamlFormat.js.map +1 -0
  231. package/dist/formats/yaml/core/CjsYamlReader.js +304 -0
  232. package/dist/formats/yaml/core/CjsYamlReader.js.map +1 -0
  233. package/dist/formats/yaml/core/helpers.js +160 -0
  234. package/dist/formats/yaml/core/helpers.js.map +1 -0
  235. package/dist/formats/yaml/index.js +2 -0
  236. package/dist/formats/yaml/index.js.map +1 -0
  237. package/dist/generated/resources/AudioGeometryResData.js +47 -0
  238. package/dist/generated/resources/AudioGeometryResData.js.map +1 -0
  239. package/dist/generated/resources/CmfVertexReader.js +46 -0
  240. package/dist/generated/resources/CmfVertexReader.js.map +1 -0
  241. package/dist/generated/resources/GStateBindingCallbackData.js +31 -0
  242. package/dist/generated/resources/GStateBindingCallbackData.js.map +1 -0
  243. package/dist/generated/resources/MeshDecalData.js +37 -0
  244. package/dist/generated/resources/MeshDecalData.js.map +1 -0
  245. package/dist/generated/resources/MeshDecalLodData.js +34 -0
  246. package/dist/generated/resources/MeshDecalLodData.js.map +1 -0
  247. package/dist/generated/resources/Tr2AsyncSave.js +46 -0
  248. package/dist/generated/resources/Tr2AsyncSave.js.map +1 -0
  249. package/dist/generated/resources/Tr2CmfContents.js +37 -0
  250. package/dist/generated/resources/Tr2CmfContents.js.map +1 -0
  251. package/dist/generated/resources/Tr2GrannyIntersectionResult.js +58 -0
  252. package/dist/generated/resources/Tr2GrannyIntersectionResult.js.map +1 -0
  253. package/dist/generated/resources/Tr2LoadPrepareFence.js +37 -0
  254. package/dist/generated/resources/Tr2LoadPrepareFence.js.map +1 -0
  255. package/dist/generated/resources/Tr2MaterialArea.js +34 -0
  256. package/dist/generated/resources/Tr2MaterialArea.js.map +1 -0
  257. package/dist/generated/resources/Tr2MaterialMesh.js +31 -0
  258. package/dist/generated/resources/Tr2MaterialMesh.js.map +1 -0
  259. package/dist/generated/resources/Tr2MaterialRes.js +34 -0
  260. package/dist/generated/resources/Tr2MaterialRes.js.map +1 -0
  261. package/dist/generated/resources/Tr2ShaderPermutation.js +43 -0
  262. package/dist/generated/resources/Tr2ShaderPermutation.js.map +1 -0
  263. package/dist/generated/resources/Tr2TextureLodManager.js +60 -0
  264. package/dist/generated/resources/Tr2TextureLodManager.js.map +1 -0
  265. package/dist/generated/resources/Tr2TextureLodUpdateRequest.js +37 -0
  266. package/dist/generated/resources/Tr2TextureLodUpdateRequest.js.map +1 -0
  267. package/dist/generated/resources/Tr2TexturePackChannel.js +37 -0
  268. package/dist/generated/resources/Tr2TexturePackChannel.js.map +1 -0
  269. package/dist/generated/resources/Tr2TexturePipeline.js +44 -0
  270. package/dist/generated/resources/Tr2TexturePipeline.js.map +1 -0
  271. package/dist/generated/resources/Tr2TexturePipelineParams.js +34 -0
  272. package/dist/generated/resources/Tr2TexturePipelineParams.js.map +1 -0
  273. package/dist/generated/resources/Tr2TexturePipelineStepCompress.js +40 -0
  274. package/dist/generated/resources/Tr2TexturePipelineStepCompress.js.map +1 -0
  275. package/dist/generated/resources/Tr2TexturePipelineStepLimitSize.js +34 -0
  276. package/dist/generated/resources/Tr2TexturePipelineStepLimitSize.js.map +1 -0
  277. package/dist/generated/resources/Tr2TexturePipelineStepLoad.js +31 -0
  278. package/dist/generated/resources/Tr2TexturePipelineStepLoad.js.map +1 -0
  279. package/dist/generated/resources/Tr2TexturePipelineStepPack.js +43 -0
  280. package/dist/generated/resources/Tr2TexturePipelineStepPack.js.map +1 -0
  281. package/dist/generated/resources/TriGeometryResAreaData.js +59 -0
  282. package/dist/generated/resources/TriGeometryResAreaData.js.map +1 -0
  283. package/dist/generated/resources/TriGeometryResJointData.js +38 -0
  284. package/dist/generated/resources/TriGeometryResJointData.js.map +1 -0
  285. package/dist/generated/resources/TriGeometryResLodData.js +88 -0
  286. package/dist/generated/resources/TriGeometryResLodData.js.map +1 -0
  287. package/dist/generated/resources/TriGeometryResMeshData.js +63 -0
  288. package/dist/generated/resources/TriGeometryResMeshData.js.map +1 -0
  289. package/dist/generated/resources/TriGeometryResSkeletonData.js +34 -0
  290. package/dist/generated/resources/TriGeometryResSkeletonData.js.map +1 -0
  291. package/dist/generated/resources/TriJointBinding.js +38 -0
  292. package/dist/generated/resources/TriJointBinding.js.map +1 -0
  293. package/dist/generated/resources/TriMorphTargetGeometryConstants.js +46 -0
  294. package/dist/generated/resources/TriMorphTargetGeometryConstants.js.map +1 -0
  295. package/dist/generated/resources/TriRtGeometryConstants.js +88 -0
  296. package/dist/generated/resources/TriRtGeometryConstants.js.map +1 -0
  297. package/dist/generated/resources/enums.js +18 -0
  298. package/dist/generated/resources/enums.js.map +1 -0
  299. package/dist/generated/resources/index.js +32 -0
  300. package/dist/generated/resources/index.js.map +1 -0
  301. package/dist/index.js +52 -0
  302. package/dist/index.js.map +1 -0
  303. package/dist/resourcePath.js +18 -0
  304. package/dist/resourcePath.js.map +1 -0
  305. package/dist/resourceStates.js +9 -0
  306. package/dist/resourceStates.js.map +1 -0
  307. package/dist/resources/Tr2EffectRes.js +71 -0
  308. package/dist/resources/Tr2EffectRes.js.map +1 -0
  309. package/dist/resources/Tr2GrannyStateRes.js +44 -0
  310. package/dist/resources/Tr2GrannyStateRes.js.map +1 -0
  311. package/dist/resources/Tr2ImageRes.js +114 -0
  312. package/dist/resources/Tr2ImageRes.js.map +1 -0
  313. package/dist/resources/Tr2LightProfileRes.js +40 -0
  314. package/dist/resources/Tr2LightProfileRes.js.map +1 -0
  315. package/dist/resources/TriGeometryRes.js +216 -0
  316. package/dist/resources/TriGeometryRes.js.map +1 -0
  317. package/dist/resources/TriGrannyRes.js +43 -0
  318. package/dist/resources/TriGrannyRes.js.map +1 -0
  319. package/dist/resources/TriTextureRes.js +304 -0
  320. package/dist/resources/TriTextureRes.js.map +1 -0
  321. package/dist/resources/resourceBoundary.js +47 -0
  322. package/dist/resources/resourceBoundary.js.map +1 -0
  323. package/dist/texture/CjsTextureArrayRes.js +406 -0
  324. package/dist/texture/CjsTextureArrayRes.js.map +1 -0
  325. package/dist/texture/CjsTextureParameterProxy.js +133 -0
  326. package/dist/texture/CjsTextureParameterProxy.js.map +1 -0
  327. package/format-notices/black/LICENSE +21 -0
  328. package/format-notices/black/NOTICE +47 -0
  329. package/format-notices/bnk/LICENSE +21 -0
  330. package/format-notices/bnk/NOTICE +17 -0
  331. package/format-notices/cmf/LICENSE +21 -0
  332. package/format-notices/cmf/NOTICE +36 -0
  333. package/format-notices/dds/LICENSE +21 -0
  334. package/format-notices/dds/NOTICE +14 -0
  335. package/format-notices/fbx/LICENSE +21 -0
  336. package/format-notices/fbx/NOTICE +14 -0
  337. package/format-notices/flac/LICENSE +21 -0
  338. package/format-notices/flac/NOTICE +14 -0
  339. package/format-notices/gif/LICENSE +21 -0
  340. package/format-notices/gif/NOTICE +14 -0
  341. package/format-notices/gltf/LICENSE +21 -0
  342. package/format-notices/gltf/NOTICE +27 -0
  343. package/format-notices/jpeg/LICENSE +21 -0
  344. package/format-notices/jpeg/NOTICE +14 -0
  345. package/format-notices/mp3/LICENSE +21 -0
  346. package/format-notices/mp3/NOTICE +14 -0
  347. package/format-notices/mp4/LICENSE +21 -0
  348. package/format-notices/mp4/NOTICE +14 -0
  349. package/format-notices/obj/LICENSE +21 -0
  350. package/format-notices/obj/NOTICE +26 -0
  351. package/format-notices/ogg/LICENSE +21 -0
  352. package/format-notices/ogg/NOTICE +28 -0
  353. package/format-notices/png/LICENSE +21 -0
  354. package/format-notices/png/NOTICE +14 -0
  355. package/format-notices/red/LICENSE +21 -0
  356. package/format-notices/red/NOTICE +31 -0
  357. package/format-notices/stl/LICENSE +21 -0
  358. package/format-notices/stl/NOTICE +21 -0
  359. package/format-notices/tga/LICENSE +21 -0
  360. package/format-notices/tga/NOTICE +14 -0
  361. package/format-notices/wav/LICENSE +21 -0
  362. package/format-notices/wav/NOTICE +14 -0
  363. package/format-notices/webm/LICENSE +21 -0
  364. package/format-notices/webm/NOTICE +14 -0
  365. package/format-notices/webp/LICENSE +21 -0
  366. package/format-notices/webp/NOTICE +14 -0
  367. package/format-notices/wem/LICENSE +57 -0
  368. package/format-notices/wem/NOTICE +33 -0
  369. package/format-notices/yaml/LICENSE +21 -0
  370. package/format-notices/yaml/NOTICE +44 -0
  371. package/package.json +51 -0
  372. package/resource-lifecycle.md +487 -0
@@ -0,0 +1,446 @@
1
+ const OUTPUT_IMAGE = "image";
2
+ const OUTPUT_RGBA = "rgba";
3
+ const OUTPUT_RAW = "raw";
4
+ const OUTPUT_JSON = "json";
5
+ const DEFAULT_VALUES = Object.freeze({
6
+ emit: OUTPUT_RAW,
7
+ inputType: "",
8
+ source: ""
9
+ });
10
+ const DEBUG_OUTPUTS = Object.freeze({
11
+ png: "pngJson",
12
+ jpeg: "jpegJson",
13
+ jpg: "jpegJson",
14
+ tga: "tgaJson",
15
+ dds: "ddsJson"
16
+ });
17
+ const IMAGE_MIME_TYPES = Object.freeze({
18
+ png: "image/png",
19
+ jpeg: "image/jpeg",
20
+ jpg: "image/jpeg",
21
+ tga: "image/x-tga",
22
+ dds: "image/vnd-ms.dds"
23
+ });
24
+ function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = "CjsImageFormat") {
25
+ const values = {
26
+ ...DEFAULT_VALUES,
27
+ ...(base || {}),
28
+ ...(options || {})
29
+ };
30
+ values.inputType = normalizeInputType(values.inputType);
31
+ values.emit = normalizeEmit(values.emit, values.inputType, readerName);
32
+ return values;
33
+ }
34
+ function normalizeInputType(inputType) {
35
+ if (!inputType) return "";
36
+ const value = String(inputType).replace(/^\./u, "").toLowerCase();
37
+ return value === "jpg" ? "jpeg" : value;
38
+ }
39
+ function normalizeEmit(emit, inputType, readerName) {
40
+ if (emit === undefined || emit === null) return OUTPUT_RAW;
41
+ if (emit === OUTPUT_JSON && inputType) return DEBUG_OUTPUTS[inputType] || OUTPUT_JSON;
42
+ if ([OUTPUT_IMAGE, OUTPUT_RGBA, OUTPUT_RAW, OUTPUT_JSON].includes(emit)) return emit;
43
+ if (Object.values(DEBUG_OUTPUTS).includes(emit)) return emit;
44
+ throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(emit)}`);
45
+ }
46
+ function toBytes(input) {
47
+ if (input instanceof Uint8Array) return input;
48
+ if (input instanceof ArrayBuffer) return new Uint8Array(input);
49
+ if (ArrayBuffer.isView(input)) return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);
50
+ throw new TypeError("Image input must be Uint8Array, ArrayBuffer, or DataView");
51
+ }
52
+ function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = "") {
53
+ const bytes = toBytes(input);
54
+ const detected = inspectBytes(bytes);
55
+ const sourceFormat = expectedType || values.inputType || detected.sourceFormat;
56
+ if (expectedType && detected.sourceFormat && detected.sourceFormat !== expectedType) {
57
+ throw new TypeError(`CjsFormat${capitalize(expectedType)}: expected ${expectedType}, got ${detected.sourceFormat}`);
58
+ }
59
+ return {
60
+ payloadType: sourceFormat === "dds" ? "texture" : "image",
61
+ mediaTypes: sourceFormat === "dds" ? ["texture", "image"] : ["image"],
62
+ sourceFormat,
63
+ byteLength: bytes.byteLength,
64
+ ...detected
65
+ };
66
+ }
67
+ function isSupportedWithValues(input, values = DEFAULT_VALUES, expectedType = "") {
68
+ try {
69
+ const metadata = inspectWithValues(input, values, expectedType);
70
+ const canDecodeTga = metadata.sourceFormat === "tga" && canDecodeTgaToRgba(metadata);
71
+ let variants;
72
+ if (metadata.sourceFormat === "tga") {
73
+ variants = [{
74
+ kind: "rgba",
75
+ payloadType: "rgba",
76
+ codec: "rgba8unorm",
77
+ supported: canDecodeTga,
78
+ reason: canDecodeTga ? "" : "Only supported true-color, grayscale, and indexed TGA images are decoded to RGBA.",
79
+ containerOnly: false,
80
+ isDecoded: canDecodeTga,
81
+ rgbaDecodeSupported: canDecodeTga
82
+ }, rawVariant(metadata, canDecodeTga)];
83
+ } else {
84
+ variants = [rawVariant(metadata, false), {
85
+ kind: "rgba",
86
+ payloadType: "rgba",
87
+ codec: "rgba8unorm",
88
+ supported: false,
89
+ reason: `${metadata.sourceFormat.toUpperCase()} RGBA decode is not implemented yet.`,
90
+ containerOnly: false,
91
+ isDecoded: false,
92
+ rgbaDecodeSupported: false
93
+ }];
94
+ }
95
+ return {
96
+ format: metadata.sourceFormat,
97
+ source: values.source || "buffer",
98
+ supported: metadata.sourceFormat ? variants.some(v => v.supported && v.kind === "rgba") ? "full" : "partial" : "none",
99
+ confidence: metadata.sourceFormat ? 1 : 0,
100
+ preferred: variants.find(v => v.supported)?.codec || "",
101
+ reason: metadata.sourceFormat ? "Container/header recognized." : "Unrecognized image format.",
102
+ metadata,
103
+ variants,
104
+ warnings: [],
105
+ errors: []
106
+ };
107
+ } catch (error) {
108
+ return {
109
+ format: expectedType || values.inputType || "",
110
+ source: values.source || "buffer",
111
+ supported: "none",
112
+ confidence: 0,
113
+ preferred: "",
114
+ reason: error.message,
115
+ metadata: null,
116
+ variants: [],
117
+ warnings: [],
118
+ errors: [error.message]
119
+ };
120
+ }
121
+ }
122
+ function readWithValues(input, values = DEFAULT_VALUES, expectedType = "") {
123
+ const bytes = toBytes(input);
124
+ const metadata = inspectWithValues(bytes, values, expectedType);
125
+ if (values.emit === OUTPUT_RAW) {
126
+ return {
127
+ payloadType: "raw",
128
+ sourceFormat: metadata.sourceFormat,
129
+ mimeType: imageMimeType(metadata.sourceFormat),
130
+ containerOnly: true,
131
+ isDecoded: false,
132
+ rgbaDecodeSupported: metadata.sourceFormat === "tga" && canDecodeTgaToRgba(metadata),
133
+ metadata,
134
+ bytes
135
+ };
136
+ }
137
+ if (values.emit === OUTPUT_JSON || values.emit === DEBUG_OUTPUTS[metadata.sourceFormat]) {
138
+ return metadata;
139
+ }
140
+ if ((values.emit === OUTPUT_RGBA || values.emit === OUTPUT_IMAGE) && metadata.sourceFormat === "tga") {
141
+ return decodeTgaToRgba(bytes, metadata);
142
+ }
143
+ const error = new Error(`${metadata.sourceFormat}: emit "${values.emit}" is not implemented yet`);
144
+ error.code = "CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED";
145
+ error.sourceFormat = metadata.sourceFormat;
146
+ error.emit = values.emit;
147
+ throw error;
148
+ }
149
+ function toJsonValue(value) {
150
+ if (value instanceof Uint8Array) {
151
+ return {
152
+ byteLength: value.byteLength
153
+ };
154
+ }
155
+ if (Array.isArray(value)) return value.map(toJsonValue);
156
+ if (value && typeof value === "object") {
157
+ const output = {};
158
+ for (const [key, entry] of Object.entries(value)) output[key] = toJsonValue(entry);
159
+ return output;
160
+ }
161
+ return value;
162
+ }
163
+ function inspectBytes(bytes) {
164
+ if (isPNG(bytes)) return inspectPNG(bytes);
165
+ if (isJPEG(bytes)) return inspectJPEG(bytes);
166
+ if (isDDS(bytes)) return inspectDDS(bytes);
167
+ if (isTGA(bytes)) return inspectTGA(bytes);
168
+ return {
169
+ sourceFormat: "",
170
+ width: 0,
171
+ height: 0
172
+ };
173
+ }
174
+ function isPNG(bytes) {
175
+ return bytes.byteLength >= 24 && bytes[0] === 0x89 && bytes[1] === 0x50 && bytes[2] === 0x4e && bytes[3] === 0x47 && bytes[4] === 0x0d && bytes[5] === 0x0a && bytes[6] === 0x1a && bytes[7] === 0x0a;
176
+ }
177
+ function isJPEG(bytes) {
178
+ return bytes.byteLength >= 4 && bytes[0] === 0xff && bytes[1] === 0xd8;
179
+ }
180
+ function isDDS(bytes) {
181
+ return bytes.byteLength >= 128 && bytes[0] === 0x44 && bytes[1] === 0x44 && bytes[2] === 0x53 && bytes[3] === 0x20;
182
+ }
183
+ function isTGA(bytes) {
184
+ if (bytes.byteLength < 18) return false;
185
+ const imageType = bytes[2],
186
+ width = readU16LE(bytes, 12),
187
+ height = readU16LE(bytes, 14),
188
+ bpp = bytes[16];
189
+ return width > 0 && height > 0 && [1, 2, 3, 9, 10, 11].includes(imageType) && [8, 15, 16, 24, 32].includes(bpp);
190
+ }
191
+ function inspectPNG(bytes) {
192
+ const colorType = bytes[25],
193
+ bitDepth = bytes[24];
194
+ return {
195
+ sourceFormat: "png",
196
+ width: readU32BE(bytes, 16),
197
+ height: readU32BE(bytes, 20),
198
+ bitDepth,
199
+ colorType,
200
+ channels: pngChannels(colorType),
201
+ pixelFormat: `png-${bitDepth}-${colorType}`,
202
+ isCompressed: false
203
+ };
204
+ }
205
+ function inspectJPEG(bytes) {
206
+ let offset = 2;
207
+ while (offset + 9 < bytes.byteLength) {
208
+ if (bytes[offset] !== 0xff) {
209
+ offset++;
210
+ continue;
211
+ }
212
+ const marker = bytes[offset + 1],
213
+ length = readU16BE(bytes, offset + 2);
214
+ if ([0xc0, 0xc1, 0xc2, 0xc3].includes(marker)) {
215
+ return {
216
+ sourceFormat: "jpeg",
217
+ width: readU16BE(bytes, offset + 7),
218
+ height: readU16BE(bytes, offset + 5),
219
+ channels: bytes[offset + 9],
220
+ marker,
221
+ pixelFormat: "jpeg-ycbcr",
222
+ isCompressed: true
223
+ };
224
+ }
225
+ offset += Math.max(length + 2, 2);
226
+ }
227
+ return {
228
+ sourceFormat: "jpeg",
229
+ width: 0,
230
+ height: 0,
231
+ channels: 0,
232
+ pixelFormat: "jpeg",
233
+ isCompressed: true
234
+ };
235
+ }
236
+ function inspectDDS(bytes) {
237
+ const fourCc = String.fromCharCode(bytes[84], bytes[85], bytes[86], bytes[87]).replace(/\0+$/u, "");
238
+ return {
239
+ sourceFormat: "dds",
240
+ width: readU32LE(bytes, 16),
241
+ height: readU32LE(bytes, 12),
242
+ mipCount: Math.max(readU32LE(bytes, 28), 1),
243
+ fourCc,
244
+ textureFormat: fourCc || "dds-legacy",
245
+ isCompressed: !!fourCc,
246
+ hasMipMaps: readU32LE(bytes, 28) > 1
247
+ };
248
+ }
249
+ function inspectTGA(bytes) {
250
+ const descriptor = bytes[17];
251
+ const colorMapEntryBytes = Math.ceil(bytes[7] / 8);
252
+ const colorMapBytes = readU16LE(bytes, 5) * colorMapEntryBytes;
253
+ const imageDataOffset = 18 + bytes[0] + colorMapBytes;
254
+ return {
255
+ sourceFormat: "tga",
256
+ idLength: bytes[0],
257
+ colorMapType: bytes[1],
258
+ colorMapFirst: readU16LE(bytes, 3),
259
+ colorMapLength: readU16LE(bytes, 5),
260
+ colorMapEntryBits: bytes[7],
261
+ colorMapBytes,
262
+ imageDataOffset,
263
+ imageDataBytes: Math.max(0, bytes.byteLength - imageDataOffset),
264
+ width: readU16LE(bytes, 12),
265
+ height: readU16LE(bytes, 14),
266
+ channels: Math.max(bytes[16] / 8, 1),
267
+ imageType: bytes[2],
268
+ bitsPerPixel: bytes[16],
269
+ descriptor,
270
+ alphaBits: descriptor & 0x0f,
271
+ hasAlpha: bytes[16] === 32 || bytes[16] === 16 || bytes[7] === 32 || bytes[7] === 16,
272
+ origin: getTgaOrigin(descriptor),
273
+ pixelFormat: `tga-${bytes[16]}`,
274
+ isCompressed: [9, 10, 11].includes(bytes[2])
275
+ };
276
+ }
277
+ function canDecodeTgaToRgba(metadata) {
278
+ const indexed = [1, 9].includes(metadata.imageType);
279
+ const direct = [2, 3, 10, 11].includes(metadata.imageType);
280
+ return hasMinimumTgaDataForRgba(metadata) && (direct && metadata.colorMapType === 0 && [8, 15, 16, 24, 32].includes(metadata.bitsPerPixel) || indexed && metadata.colorMapType === 1 && metadata.colorMapLength > 0 && [8, 15, 16, 24, 32].includes(metadata.colorMapEntryBits) && [8, 16].includes(metadata.bitsPerPixel));
281
+ }
282
+ function hasMinimumTgaDataForRgba(metadata) {
283
+ if (metadata.byteLength < metadata.imageDataOffset) return false;
284
+ if ([9, 10, 11].includes(metadata.imageType)) return metadata.imageDataBytes > 0;
285
+ return metadata.imageDataBytes >= metadata.width * metadata.height * Math.ceil(metadata.bitsPerPixel / 8);
286
+ }
287
+ function decodeTgaToRgba(bytes, metadata) {
288
+ if (!canDecodeTgaToRgba(metadata)) {
289
+ throwUnsupported(metadata, "Only true-color, grayscale, and indexed TGA images can be decoded to RGBA.");
290
+ }
291
+ const bytesPerPixel = Math.ceil(metadata.bitsPerPixel / 8);
292
+ const palette = metadata.colorMapType === 1 ? readTgaPalette(bytes, metadata) : null;
293
+ const imageOffset = 18 + metadata.idLength + (palette ? metadata.colorMapLength * (metadata.colorMapEntryBits / 8) : 0);
294
+ metadata.palette = palette;
295
+ const pixelCount = metadata.width * metadata.height;
296
+ const rgba = new Uint8Array(pixelCount * 4);
297
+ let inputOffset = imageOffset;
298
+ let pixelIndex = 0;
299
+ if ([1, 2, 3].includes(metadata.imageType)) {
300
+ while (pixelIndex < pixelCount) {
301
+ inputOffset = readTgaPixel(bytes, inputOffset, bytesPerPixel, metadata, rgba, pixelIndex++);
302
+ }
303
+ } else {
304
+ while (pixelIndex < pixelCount) {
305
+ const packet = bytes[inputOffset++];
306
+ const count = (packet & 0x7f) + 1;
307
+ if (packet & 0x80) {
308
+ const pixel = readTgaPixelBytes(bytes, inputOffset, bytesPerPixel, metadata);
309
+ inputOffset += bytesPerPixel;
310
+ for (let i = 0; i < count && pixelIndex < pixelCount; i++) writeTgaPixel(rgba, pixelIndex++, pixel, metadata);
311
+ } else {
312
+ for (let i = 0; i < count && pixelIndex < pixelCount; i++) {
313
+ inputOffset = readTgaPixel(bytes, inputOffset, bytesPerPixel, metadata, rgba, pixelIndex++);
314
+ }
315
+ }
316
+ }
317
+ }
318
+ return {
319
+ payloadType: OUTPUT_RGBA,
320
+ sourceFormat: "tga",
321
+ mimeType: "image/x-tga",
322
+ containerOnly: false,
323
+ isDecoded: true,
324
+ rgbaDecodeSupported: true,
325
+ width: metadata.width,
326
+ height: metadata.height,
327
+ pixelFormat: "rgba8unorm",
328
+ strideBytes: metadata.width * 4,
329
+ origin: "top-left",
330
+ colorSpace: "srgb",
331
+ alphaMode: metadata.hasAlpha ? "straight" : "opaque",
332
+ metadata,
333
+ data: rgba
334
+ };
335
+ }
336
+ function rawVariant(metadata, canDecode) {
337
+ return {
338
+ kind: "raw",
339
+ payloadType: "raw",
340
+ codec: metadata.sourceFormat,
341
+ mimeType: imageMimeType(metadata.sourceFormat),
342
+ supported: true,
343
+ containerOnly: true,
344
+ isDecoded: false,
345
+ rgbaDecodeSupported: metadata.sourceFormat === "tga" && canDecode === true
346
+ };
347
+ }
348
+ function imageMimeType(sourceFormat) {
349
+ return IMAGE_MIME_TYPES[sourceFormat] || "application/octet-stream";
350
+ }
351
+ function readTgaPixel(bytes, offset, bytesPerPixel, metadata, rgba, pixelIndex) {
352
+ const pixel = readTgaPixelBytes(bytes, offset, bytesPerPixel, metadata);
353
+ writeTgaPixel(rgba, pixelIndex, pixel, metadata);
354
+ return offset + bytesPerPixel;
355
+ }
356
+ function readTgaPixelBytes(bytes, offset, bytesPerPixel, metadata) {
357
+ if (offset + bytesPerPixel > bytes.byteLength) throwUnsupported(metadata, "TGA pixel data is truncated.");
358
+ if ([1, 9].includes(metadata.imageType)) {
359
+ const index = bytesPerPixel === 2 ? readU16LE(bytes, offset) : bytes[offset];
360
+ return metadata.palette[index - metadata.colorMapFirst] || [0, 0, 0, 0];
361
+ }
362
+ if (metadata.imageType === 3 || metadata.imageType === 11) {
363
+ const value = bytes[offset];
364
+ return [value, value, value, bytesPerPixel > 1 ? bytes[offset + 1] : 255];
365
+ }
366
+ if (bytesPerPixel === 2) {
367
+ const value = readU16LE(bytes, offset);
368
+ const r = (value >>> 10 & 0x1f) * 255 / 31;
369
+ const g = (value >>> 5 & 0x1f) * 255 / 31;
370
+ const b = (value & 0x1f) * 255 / 31;
371
+ const a = metadata.bitsPerPixel === 15 || (metadata.descriptor & 0x0f) === 0 ? 255 : value & 0x8000 ? 255 : 0;
372
+ return [r, g, b, a];
373
+ }
374
+ return [bytes[offset + 2], bytes[offset + 1], bytes[offset], bytesPerPixel === 4 ? bytes[offset + 3] : 255];
375
+ }
376
+ function readTgaPalette(bytes, metadata) {
377
+ const entryBytes = Math.ceil(metadata.colorMapEntryBits / 8);
378
+ const offset = 18 + metadata.idLength;
379
+ const end = offset + metadata.colorMapLength * entryBytes;
380
+ if (end > bytes.byteLength) {
381
+ throwUnsupported(metadata, "TGA color map is truncated.");
382
+ }
383
+ const palette = [];
384
+ for (let i = 0; i < metadata.colorMapLength; i++) {
385
+ palette.push(readTgaColor(bytes, offset + i * entryBytes, entryBytes, metadata.colorMapEntryBits));
386
+ }
387
+ return palette;
388
+ }
389
+ function readTgaColor(bytes, offset, entryBytes, entryBits) {
390
+ if (entryBytes === 2) {
391
+ const value = readU16LE(bytes, offset);
392
+ return [Math.round((value >>> 10 & 0x1f) * 255 / 31), Math.round((value >>> 5 & 0x1f) * 255 / 31), Math.round((value & 0x1f) * 255 / 31), entryBits === 16 && value & 0x8000 ? 255 : entryBits === 16 ? 0 : 255];
393
+ }
394
+ return [bytes[offset + 2], bytes[offset + 1], bytes[offset], entryBits === 32 ? bytes[offset + 3] : 255];
395
+ }
396
+ function writeTgaPixel(rgba, pixelIndex, pixel, metadata) {
397
+ const offset = getTgaOutputOffset(metadata, pixelIndex) * 4;
398
+ rgba[offset] = pixel[0];
399
+ rgba[offset + 1] = pixel[1];
400
+ rgba[offset + 2] = pixel[2];
401
+ rgba[offset + 3] = pixel[3];
402
+ }
403
+ function getTgaOutputOffset(metadata, pixelIndex) {
404
+ const xInput = pixelIndex % metadata.width;
405
+ const yInput = Math.floor(pixelIndex / metadata.width);
406
+ const x = metadata.origin.endsWith("right") ? metadata.width - 1 - xInput : xInput;
407
+ const y = metadata.origin.startsWith("top") ? yInput : metadata.height - 1 - yInput;
408
+ return y * metadata.width + x;
409
+ }
410
+ function getTgaOrigin(descriptor) {
411
+ const top = !!(descriptor & 0x20);
412
+ const right = !!(descriptor & 0x10);
413
+ return `${top ? "top" : "bottom"}-${right ? "right" : "left"}`;
414
+ }
415
+ function throwUnsupported(metadata, message) {
416
+ const error = new Error(`tga: ${message}`);
417
+ error.code = "CJS_FORMAT_OUTPUT_NOT_SUPPORTED";
418
+ error.sourceFormat = metadata.sourceFormat;
419
+ throw error;
420
+ }
421
+ function pngChannels(colorType) {
422
+ if (colorType === 0) return 1;
423
+ if (colorType === 2) return 3;
424
+ if (colorType === 3) return 1;
425
+ if (colorType === 4) return 2;
426
+ if (colorType === 6) return 4;
427
+ return 0;
428
+ }
429
+ function readU16BE(bytes, offset) {
430
+ return bytes[offset] << 8 | bytes[offset + 1];
431
+ }
432
+ function readU16LE(bytes, offset) {
433
+ return bytes[offset] | bytes[offset + 1] << 8;
434
+ }
435
+ function readU32BE(bytes, offset) {
436
+ return bytes[offset] * 0x1000000 + (bytes[offset + 1] << 16 | bytes[offset + 2] << 8 | bytes[offset + 3]) >>> 0;
437
+ }
438
+ function readU32LE(bytes, offset) {
439
+ return (bytes[offset] | bytes[offset + 1] << 8 | bytes[offset + 2] << 16 | bytes[offset + 3] * 0x1000000) >>> 0;
440
+ }
441
+ function capitalize(value) {
442
+ return value ? value[0].toUpperCase() + value.slice(1) : "Image";
443
+ }
444
+
445
+ export { DEFAULT_VALUES, OUTPUT_IMAGE, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_RGBA, inspectBytes, inspectWithValues, isDDS, isJPEG, isPNG, isSupportedWithValues, isTGA, normalizeEmit, normalizeInputType, normalizeValues, readWithValues, toBytes, toJsonValue };
446
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sources":["../../../../../src/formats/tga/core/helpers.js"],"sourcesContent":["export 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\nconst IMAGE_MIME_TYPES = Object.freeze({\n png: \"image/png\",\n jpeg: \"image/jpeg\",\n jpg: \"image/jpeg\",\n tga: \"image/x-tga\",\n dds: \"image/vnd-ms.dds\"\n});\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\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\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\nexport function toBytes(input)\n{\n if (input instanceof Uint8Array) return input;\n if (input instanceof ArrayBuffer) return new Uint8Array(input);\n if (ArrayBuffer.isView(input)) return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);\n throw new TypeError(\"Image input must be Uint8Array, ArrayBuffer, or DataView\");\n}\n\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = toBytes(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${capitalize(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\nexport function isSupportedWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n try\n {\n const metadata = inspectWithValues(input, values, expectedType);\n const canDecodeTga = metadata.sourceFormat === \"tga\" && canDecodeTgaToRgba(metadata);\n let variants;\n if (metadata.sourceFormat === \"tga\")\n {\n variants = [\n {\n kind: \"rgba\",\n payloadType: \"rgba\",\n codec: \"rgba8unorm\",\n supported: canDecodeTga,\n reason: canDecodeTga ? \"\" : \"Only supported true-color, grayscale, and indexed TGA images are decoded to RGBA.\",\n containerOnly: false,\n isDecoded: canDecodeTga,\n rgbaDecodeSupported: canDecodeTga\n },\n rawVariant(metadata, canDecodeTga)\n ];\n }\n else\n {\n variants = [\n rawVariant(metadata, false),\n { kind: \"rgba\", payloadType: \"rgba\", codec: \"rgba8unorm\", supported: false, reason: `${metadata.sourceFormat.toUpperCase()} RGBA decode is not implemented yet.`, containerOnly: false, isDecoded: false, rgbaDecodeSupported: false }\n ];\n }\n\n return {\n format: metadata.sourceFormat,\n source: values.source || \"buffer\",\n supported: metadata.sourceFormat ? (variants.some(v => v.supported && v.kind === \"rgba\") ? \"full\" : \"partial\") : \"none\",\n confidence: metadata.sourceFormat ? 1 : 0,\n preferred: variants.find(v => v.supported)?.codec || \"\",\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 preferred: \"\",\n reason: error.message,\n metadata: null,\n variants: [],\n warnings: [],\n errors: [ error.message ]\n };\n }\n}\n\nexport function readWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = toBytes(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 containerOnly: true,\n isDecoded: false,\n rgbaDecodeSupported: metadata.sourceFormat === \"tga\" && canDecodeTgaToRgba(metadata),\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 if ((values.emit === OUTPUT_RGBA || values.emit === OUTPUT_IMAGE) && metadata.sourceFormat === \"tga\")\n {\n return decodeTgaToRgba(bytes, 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\nexport function toJsonValue(value)\n{\n if (value instanceof Uint8Array)\n {\n return { byteLength: value.byteLength };\n }\n if (Array.isArray(value)) return value.map(toJsonValue);\n if (value && typeof value === \"object\")\n {\n const output = {};\n for (const [ key, entry ] of Object.entries(value)) output[key] = toJsonValue(entry);\n return output;\n }\n return value;\n}\n\nexport function inspectBytes(bytes)\n{\n if (isPNG(bytes)) return inspectPNG(bytes);\n if (isJPEG(bytes)) return inspectJPEG(bytes);\n if (isDDS(bytes)) return inspectDDS(bytes);\n if (isTGA(bytes)) return inspectTGA(bytes);\n return { sourceFormat: \"\", width: 0, height: 0 };\n}\n\nexport function isPNG(bytes)\n{\n return bytes.byteLength >= 24 &&\n bytes[0] === 0x89 && bytes[1] === 0x50 && bytes[2] === 0x4e && bytes[3] === 0x47 &&\n bytes[4] === 0x0d && bytes[5] === 0x0a && bytes[6] === 0x1a && bytes[7] === 0x0a;\n}\n\nexport function isJPEG(bytes)\n{\n return bytes.byteLength >= 4 && bytes[0] === 0xff && bytes[1] === 0xd8;\n}\n\nexport function isDDS(bytes)\n{\n return bytes.byteLength >= 128 && bytes[0] === 0x44 && bytes[1] === 0x44 && bytes[2] === 0x53 && bytes[3] === 0x20;\n}\n\nexport function isTGA(bytes)\n{\n if (bytes.byteLength < 18) return false;\n const imageType = bytes[2], width = readU16LE(bytes, 12), height = readU16LE(bytes, 14), bpp = bytes[16];\n return width > 0 && height > 0 && [ 1, 2, 3, 9, 10, 11 ].includes(imageType) && [ 8, 15, 16, 24, 32 ].includes(bpp);\n}\n\nfunction inspectPNG(bytes)\n{\n const colorType = bytes[25], bitDepth = bytes[24];\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 };\n}\n\nfunction inspectJPEG(bytes)\n{\n let offset = 2;\n while (offset + 9 < bytes.byteLength)\n {\n if (bytes[offset] !== 0xff)\n {\n offset++;\n continue;\n }\n const marker = bytes[offset + 1], length = readU16BE(bytes, offset + 2);\n if ([ 0xc0, 0xc1, 0xc2, 0xc3 ].includes(marker))\n {\n return {\n sourceFormat: \"jpeg\",\n width: readU16BE(bytes, offset + 7),\n height: readU16BE(bytes, offset + 5),\n channels: bytes[offset + 9],\n marker,\n pixelFormat: \"jpeg-ycbcr\",\n isCompressed: true\n };\n }\n offset += Math.max(length + 2, 2);\n }\n return { sourceFormat: \"jpeg\", width: 0, height: 0, channels: 0, pixelFormat: \"jpeg\", isCompressed: true };\n}\n\nfunction inspectDDS(bytes)\n{\n const fourCc = String.fromCharCode(bytes[84], bytes[85], bytes[86], bytes[87]).replace(/\\0+$/u, \"\");\n return {\n sourceFormat: \"dds\",\n width: readU32LE(bytes, 16),\n height: readU32LE(bytes, 12),\n mipCount: Math.max(readU32LE(bytes, 28), 1),\n fourCc,\n textureFormat: fourCc || \"dds-legacy\",\n isCompressed: !!fourCc,\n hasMipMaps: readU32LE(bytes, 28) > 1\n };\n}\n\nfunction inspectTGA(bytes)\n{\n const descriptor = bytes[17];\n const colorMapEntryBytes = Math.ceil(bytes[7] / 8);\n const colorMapBytes = readU16LE(bytes, 5) * colorMapEntryBytes;\n const imageDataOffset = 18 + bytes[0] + colorMapBytes;\n return {\n sourceFormat: \"tga\",\n idLength: bytes[0],\n colorMapType: bytes[1],\n colorMapFirst: readU16LE(bytes, 3),\n colorMapLength: readU16LE(bytes, 5),\n colorMapEntryBits: bytes[7],\n colorMapBytes,\n imageDataOffset,\n imageDataBytes: Math.max(0, bytes.byteLength - imageDataOffset),\n width: readU16LE(bytes, 12),\n height: readU16LE(bytes, 14),\n channels: Math.max(bytes[16] / 8, 1),\n imageType: bytes[2],\n bitsPerPixel: bytes[16],\n descriptor,\n alphaBits: descriptor & 0x0f,\n hasAlpha: bytes[16] === 32 || bytes[16] === 16 || bytes[7] === 32 || bytes[7] === 16,\n origin: getTgaOrigin(descriptor),\n pixelFormat: `tga-${bytes[16]}`,\n isCompressed: [ 9, 10, 11 ].includes(bytes[2])\n };\n}\n\nfunction canDecodeTgaToRgba(metadata)\n{\n const indexed = [ 1, 9 ].includes(metadata.imageType);\n const direct = [ 2, 3, 10, 11 ].includes(metadata.imageType);\n return hasMinimumTgaDataForRgba(metadata) && (\n (direct && metadata.colorMapType === 0 && [ 8, 15, 16, 24, 32 ].includes(metadata.bitsPerPixel)) ||\n (indexed && metadata.colorMapType === 1 && metadata.colorMapLength > 0 &&\n [ 8, 15, 16, 24, 32 ].includes(metadata.colorMapEntryBits) && [ 8, 16 ].includes(metadata.bitsPerPixel))\n );\n}\n\nfunction hasMinimumTgaDataForRgba(metadata)\n{\n if (metadata.byteLength < metadata.imageDataOffset) return false;\n if ([ 9, 10, 11 ].includes(metadata.imageType)) return metadata.imageDataBytes > 0;\n return metadata.imageDataBytes >= metadata.width * metadata.height * Math.ceil(metadata.bitsPerPixel / 8);\n}\n\nfunction decodeTgaToRgba(bytes, metadata)\n{\n if (!canDecodeTgaToRgba(metadata))\n {\n throwUnsupported(metadata, \"Only true-color, grayscale, and indexed TGA images can be decoded to RGBA.\");\n }\n\n const bytesPerPixel = Math.ceil(metadata.bitsPerPixel / 8);\n const palette = metadata.colorMapType === 1 ? readTgaPalette(bytes, metadata) : null;\n const imageOffset = 18 + metadata.idLength + (palette ? metadata.colorMapLength * (metadata.colorMapEntryBits / 8) : 0);\n metadata.palette = palette;\n const pixelCount = metadata.width * metadata.height;\n const rgba = new Uint8Array(pixelCount * 4);\n\n let inputOffset = imageOffset;\n let pixelIndex = 0;\n\n if ([ 1, 2, 3 ].includes(metadata.imageType))\n {\n while (pixelIndex < pixelCount)\n {\n inputOffset = readTgaPixel(bytes, inputOffset, bytesPerPixel, metadata, rgba, pixelIndex++);\n }\n }\n else\n {\n while (pixelIndex < pixelCount)\n {\n const packet = bytes[inputOffset++];\n const count = (packet & 0x7f) + 1;\n if (packet & 0x80)\n {\n const pixel = readTgaPixelBytes(bytes, inputOffset, bytesPerPixel, metadata);\n inputOffset += bytesPerPixel;\n for (let i = 0; i < count && pixelIndex < pixelCount; i++) writeTgaPixel(rgba, pixelIndex++, pixel, metadata);\n }\n else\n {\n for (let i = 0; i < count && pixelIndex < pixelCount; i++)\n {\n inputOffset = readTgaPixel(bytes, inputOffset, bytesPerPixel, metadata, rgba, pixelIndex++);\n }\n }\n }\n }\n\n return {\n payloadType: OUTPUT_RGBA,\n sourceFormat: \"tga\",\n mimeType: \"image/x-tga\",\n containerOnly: false,\n isDecoded: true,\n rgbaDecodeSupported: true,\n width: metadata.width,\n height: metadata.height,\n pixelFormat: \"rgba8unorm\",\n strideBytes: metadata.width * 4,\n origin: \"top-left\",\n colorSpace: \"srgb\",\n alphaMode: metadata.hasAlpha ? \"straight\" : \"opaque\",\n metadata,\n data: rgba\n };\n}\n\nfunction rawVariant(metadata, canDecode)\n{\n return {\n kind: \"raw\",\n payloadType: \"raw\",\n codec: metadata.sourceFormat,\n mimeType: imageMimeType(metadata.sourceFormat),\n supported: true,\n containerOnly: true,\n isDecoded: false,\n rgbaDecodeSupported: metadata.sourceFormat === \"tga\" && canDecode === true\n };\n}\n\nfunction imageMimeType(sourceFormat)\n{\n return IMAGE_MIME_TYPES[sourceFormat] || \"application/octet-stream\";\n}\n\nfunction readTgaPixel(bytes, offset, bytesPerPixel, metadata, rgba, pixelIndex)\n{\n const pixel = readTgaPixelBytes(bytes, offset, bytesPerPixel, metadata);\n writeTgaPixel(rgba, pixelIndex, pixel, metadata);\n return offset + bytesPerPixel;\n}\n\nfunction readTgaPixelBytes(bytes, offset, bytesPerPixel, metadata)\n{\n if (offset + bytesPerPixel > bytes.byteLength) throwUnsupported(metadata, \"TGA pixel data is truncated.\");\n\n if ([ 1, 9 ].includes(metadata.imageType))\n {\n const index = bytesPerPixel === 2 ? readU16LE(bytes, offset) : bytes[offset];\n return metadata.palette[index - metadata.colorMapFirst] || [ 0, 0, 0, 0 ];\n }\n\n if (metadata.imageType === 3 || metadata.imageType === 11)\n {\n const value = bytes[offset];\n return [ value, value, value, bytesPerPixel > 1 ? bytes[offset + 1] : 255 ];\n }\n\n if (bytesPerPixel === 2)\n {\n const value = readU16LE(bytes, offset);\n const r = ((value >>> 10) & 0x1f) * 255 / 31;\n const g = ((value >>> 5) & 0x1f) * 255 / 31;\n const b = (value & 0x1f) * 255 / 31;\n const a = metadata.bitsPerPixel === 15 || (metadata.descriptor & 0x0f) === 0\n ? 255\n : value & 0x8000 ? 255 : 0;\n return [ r, g, b, a ];\n }\n\n return [\n bytes[offset + 2],\n bytes[offset + 1],\n bytes[offset],\n bytesPerPixel === 4 ? bytes[offset + 3] : 255\n ];\n}\n\nfunction readTgaPalette(bytes, metadata)\n{\n const entryBytes = Math.ceil(metadata.colorMapEntryBits / 8);\n const offset = 18 + metadata.idLength;\n const end = offset + metadata.colorMapLength * entryBytes;\n if (end > bytes.byteLength)\n {\n throwUnsupported(metadata, \"TGA color map is truncated.\");\n }\n\n const palette = [];\n for (let i = 0; i < metadata.colorMapLength; i++)\n {\n palette.push(readTgaColor(bytes, offset + i * entryBytes, entryBytes, metadata.colorMapEntryBits));\n }\n return palette;\n}\n\nfunction readTgaColor(bytes, offset, entryBytes, entryBits)\n{\n if (entryBytes === 2)\n {\n const value = readU16LE(bytes, offset);\n return [\n Math.round(((value >>> 10) & 0x1f) * 255 / 31),\n Math.round(((value >>> 5) & 0x1f) * 255 / 31),\n Math.round((value & 0x1f) * 255 / 31),\n entryBits === 16 && (value & 0x8000) ? 255 : entryBits === 16 ? 0 : 255\n ];\n }\n return [\n bytes[offset + 2],\n bytes[offset + 1],\n bytes[offset],\n entryBits === 32 ? bytes[offset + 3] : 255\n ];\n}\n\nfunction writeTgaPixel(rgba, pixelIndex, pixel, metadata)\n{\n const offset = getTgaOutputOffset(metadata, pixelIndex) * 4;\n rgba[offset] = pixel[0];\n rgba[offset + 1] = pixel[1];\n rgba[offset + 2] = pixel[2];\n rgba[offset + 3] = pixel[3];\n}\n\nfunction getTgaOutputOffset(metadata, pixelIndex)\n{\n const xInput = pixelIndex % metadata.width;\n const yInput = Math.floor(pixelIndex / metadata.width);\n const x = metadata.origin.endsWith(\"right\") ? metadata.width - 1 - xInput : xInput;\n const y = metadata.origin.startsWith(\"top\") ? yInput : metadata.height - 1 - yInput;\n return y * metadata.width + x;\n}\n\nfunction getTgaOrigin(descriptor)\n{\n const top = !!(descriptor & 0x20);\n const right = !!(descriptor & 0x10);\n return `${top ? \"top\" : \"bottom\"}-${right ? \"right\" : \"left\"}`;\n}\n\nfunction throwUnsupported(metadata, message)\n{\n const error = new Error(`tga: ${message}`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = metadata.sourceFormat;\n throw error;\n}\n\nfunction pngChannels(colorType)\n{\n if (colorType === 0) return 1;\n if (colorType === 2) return 3;\n if (colorType === 3) return 1;\n if (colorType === 4) return 2;\n if (colorType === 6) return 4;\n return 0;\n}\n\nfunction readU16BE(bytes, offset)\n{\n return (bytes[offset] << 8) | bytes[offset + 1];\n}\n\nfunction readU16LE(bytes, offset)\n{\n return bytes[offset] | (bytes[offset + 1] << 8);\n}\n\nfunction readU32BE(bytes, offset)\n{\n return ((bytes[offset] * 0x1000000) + ((bytes[offset + 1] << 16) | (bytes[offset + 2] << 8) | bytes[offset + 3])) >>> 0;\n}\n\nfunction readU32LE(bytes, offset)\n{\n return (bytes[offset] | (bytes[offset + 1] << 8) | (bytes[offset + 2] << 16) | (bytes[offset + 3] * 0x1000000)) >>> 0;\n}\n\nfunction capitalize(value)\n{\n return value ? value[0].toUpperCase() + value.slice(1) : \"Image\";\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","IMAGE_MIME_TYPES","normalizeValues","base","options","readerName","values","normalizeInputType","normalizeEmit","value","String","replace","toLowerCase","undefined","includes","TypeError","JSON","stringify","toBytes","input","Uint8Array","ArrayBuffer","isView","buffer","byteOffset","byteLength","inspectWithValues","expectedType","bytes","detected","inspectBytes","sourceFormat","capitalize","payloadType","mediaTypes","isSupportedWithValues","metadata","canDecodeTga","canDecodeTgaToRgba","variants","kind","codec","supported","reason","containerOnly","isDecoded","rgbaDecodeSupported","rawVariant","toUpperCase","format","some","v","confidence","preferred","find","warnings","errors","error","message","readWithValues","mimeType","imageMimeType","decodeTgaToRgba","Error","code","toJsonValue","Array","isArray","map","output","key","entry","entries","isPNG","inspectPNG","isJPEG","inspectJPEG","isDDS","inspectDDS","isTGA","inspectTGA","width","height","imageType","readU16LE","bpp","colorType","bitDepth","readU32BE","channels","pngChannels","pixelFormat","isCompressed","offset","marker","length","readU16BE","Math","max","fourCc","fromCharCode","readU32LE","mipCount","textureFormat","hasMipMaps","descriptor","colorMapEntryBytes","ceil","colorMapBytes","imageDataOffset","idLength","colorMapType","colorMapFirst","colorMapLength","colorMapEntryBits","imageDataBytes","bitsPerPixel","alphaBits","hasAlpha","origin","getTgaOrigin","indexed","direct","hasMinimumTgaDataForRgba","throwUnsupported","bytesPerPixel","palette","readTgaPalette","imageOffset","pixelCount","rgba","inputOffset","pixelIndex","readTgaPixel","packet","count","pixel","readTgaPixelBytes","i","writeTgaPixel","strideBytes","colorSpace","alphaMode","data","canDecode","index","r","g","b","a","entryBytes","end","push","readTgaColor","entryBits","round","getTgaOutputOffset","xInput","yInput","floor","x","endsWith","y","startsWith","top","right","slice"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { CjsTgaFormat, CjsTgaFormat as default } from './CjsTgaFormat.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}