@loaders.gl/textures 4.0.0-alpha.5 → 4.0.0-alpha.6

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 (324) hide show
  1. package/dist/basis-loader.d.ts +4 -43
  2. package/dist/basis-loader.d.ts.map +1 -1
  3. package/dist/basis-loader.js +36 -24
  4. package/dist/basis-nodejs-worker.js +66490 -0
  5. package/dist/basis-worker.js +52 -19
  6. package/dist/bundle.js +2 -2
  7. package/dist/compressed-texture-loader.d.ts +1 -1
  8. package/dist/compressed-texture-loader.d.ts.map +1 -1
  9. package/dist/compressed-texture-loader.js +59 -36
  10. package/dist/compressed-texture-worker.js +51 -18
  11. package/dist/compressed-texture-writer.d.ts +13 -21
  12. package/dist/compressed-texture-writer.d.ts.map +1 -1
  13. package/dist/compressed-texture-writer.js +33 -21
  14. package/dist/crunch-loader.js +23 -16
  15. package/dist/crunch-worker.js +49 -17
  16. package/dist/dist.min.js +218 -146
  17. package/dist/es5/basis-loader.js +38 -0
  18. package/dist/es5/basis-loader.js.map +1 -0
  19. package/dist/es5/bundle.js +6 -0
  20. package/dist/es5/bundle.js.map +1 -0
  21. package/dist/es5/compressed-texture-loader.js +76 -0
  22. package/dist/es5/compressed-texture-loader.js.map +1 -0
  23. package/dist/es5/compressed-texture-writer.js +28 -0
  24. package/dist/es5/compressed-texture-writer.js.map +1 -0
  25. package/dist/es5/crunch-loader.js +26 -0
  26. package/dist/es5/crunch-loader.js.map +1 -0
  27. package/dist/es5/index.js +132 -0
  28. package/dist/es5/index.js.map +1 -0
  29. package/dist/es5/ktx2-basis-writer-nodejs.js +14 -0
  30. package/dist/es5/ktx2-basis-writer-nodejs.js.map +1 -0
  31. package/dist/es5/ktx2-basis-writer.js +26 -0
  32. package/dist/es5/ktx2-basis-writer.js.map +1 -0
  33. package/dist/es5/lib/encoders/encode-ktx.js +12 -0
  34. package/dist/es5/lib/encoders/encode-ktx.js.map +1 -0
  35. package/dist/es5/lib/encoders/encode-ktx2-basis-texture.js +74 -0
  36. package/dist/es5/lib/encoders/encode-ktx2-basis-texture.js.map +1 -0
  37. package/dist/es5/lib/encoders/encode-texture.js +38 -0
  38. package/dist/es5/lib/encoders/encode-texture.js.map +1 -0
  39. package/dist/es5/lib/gl-extensions.js +68 -0
  40. package/dist/es5/lib/gl-extensions.js.map +1 -0
  41. package/dist/es5/lib/parsers/basis-module-loader.js +194 -0
  42. package/dist/es5/lib/parsers/basis-module-loader.js.map +1 -0
  43. package/dist/es5/lib/parsers/crunch-module-loader.js +67 -0
  44. package/dist/es5/lib/parsers/crunch-module-loader.js.map +1 -0
  45. package/dist/es5/lib/parsers/parse-basis.js +270 -0
  46. package/dist/es5/lib/parsers/parse-basis.js.map +1 -0
  47. package/dist/es5/lib/parsers/parse-compressed-texture.js +22 -0
  48. package/dist/es5/lib/parsers/parse-compressed-texture.js.map +1 -0
  49. package/dist/es5/lib/parsers/parse-crunch.js +100 -0
  50. package/dist/es5/lib/parsers/parse-crunch.js.map +1 -0
  51. package/dist/es5/lib/parsers/parse-dds.js +84 -0
  52. package/dist/es5/lib/parsers/parse-dds.js.map +1 -0
  53. package/dist/es5/lib/parsers/parse-ktx.js +34 -0
  54. package/dist/es5/lib/parsers/parse-ktx.js.map +1 -0
  55. package/dist/es5/lib/parsers/parse-npy.js +70 -0
  56. package/dist/es5/lib/parsers/parse-npy.js.map +1 -0
  57. package/dist/es5/lib/parsers/parse-pvr.js +161 -0
  58. package/dist/es5/lib/parsers/parse-pvr.js.map +1 -0
  59. package/dist/es5/lib/texture-api/async-deep-map.js +156 -0
  60. package/dist/es5/lib/texture-api/async-deep-map.js.map +1 -0
  61. package/dist/es5/lib/texture-api/deep-load.js +63 -0
  62. package/dist/es5/lib/texture-api/deep-load.js.map +1 -0
  63. package/dist/es5/lib/texture-api/generate-url.js +20 -0
  64. package/dist/es5/lib/texture-api/generate-url.js.map +1 -0
  65. package/dist/es5/lib/texture-api/load-image-array.js +75 -0
  66. package/dist/es5/lib/texture-api/load-image-array.js.map +1 -0
  67. package/dist/es5/lib/texture-api/load-image-cube.js +136 -0
  68. package/dist/es5/lib/texture-api/load-image-cube.js.map +1 -0
  69. package/dist/es5/lib/texture-api/load-image.js +129 -0
  70. package/dist/es5/lib/texture-api/load-image.js.map +1 -0
  71. package/dist/es5/lib/texture-api/texture-api-types.js +2 -0
  72. package/dist/es5/lib/texture-api/texture-api-types.js.map +1 -0
  73. package/dist/es5/lib/utils/extract-mipmap-images.js +41 -0
  74. package/dist/es5/lib/utils/extract-mipmap-images.js.map +1 -0
  75. package/dist/es5/lib/utils/ktx-format-helper.js +79 -0
  76. package/dist/es5/lib/utils/ktx-format-helper.js.map +1 -0
  77. package/dist/es5/lib/utils/texture-formats.js +54 -0
  78. package/dist/es5/lib/utils/texture-formats.js.map +1 -0
  79. package/dist/es5/lib/utils/version.js +9 -0
  80. package/dist/es5/lib/utils/version.js.map +1 -0
  81. package/dist/es5/libs/basis_encoder.js +21 -0
  82. package/dist/es5/libs/basis_encoder.wasm +0 -0
  83. package/dist/es5/libs/basis_transcoder.js +22 -0
  84. package/dist/{libs → es5}/libs/basis_transcoder.wasm +0 -0
  85. package/dist/es5/npy-loader.js +51 -0
  86. package/dist/es5/npy-loader.js.map +1 -0
  87. package/dist/es5/types.js +2 -0
  88. package/dist/es5/types.js.map +1 -0
  89. package/dist/es5/workers/basis-nodejs-worker.js +7 -0
  90. package/dist/es5/workers/basis-nodejs-worker.js.map +1 -0
  91. package/dist/es5/workers/basis-worker.js +6 -0
  92. package/dist/es5/workers/basis-worker.js.map +1 -0
  93. package/dist/es5/workers/compressed-texture-worker.js +6 -0
  94. package/dist/es5/workers/compressed-texture-worker.js.map +1 -0
  95. package/dist/es5/workers/crunch-worker.js +19 -0
  96. package/dist/es5/workers/crunch-worker.js.map +1 -0
  97. package/dist/es5/workers/ktx2-basis-writer-nodejs-worker.js +53 -0
  98. package/dist/es5/workers/ktx2-basis-writer-nodejs-worker.js.map +1 -0
  99. package/dist/es5/workers/ktx2-basis-writer-worker.js +53 -0
  100. package/dist/es5/workers/ktx2-basis-writer-worker.js.map +1 -0
  101. package/dist/es5/workers/npy-worker.js +6 -0
  102. package/dist/es5/workers/npy-worker.js.map +1 -0
  103. package/dist/esm/basis-loader.js +27 -0
  104. package/dist/esm/basis-loader.js.map +1 -0
  105. package/dist/esm/bundle.js +4 -0
  106. package/dist/esm/bundle.js.map +1 -0
  107. package/dist/esm/compressed-texture-loader.js +41 -0
  108. package/dist/esm/compressed-texture-loader.js.map +1 -0
  109. package/dist/esm/compressed-texture-writer.js +21 -0
  110. package/dist/esm/compressed-texture-writer.js.map +1 -0
  111. package/dist/esm/crunch-loader.js +18 -0
  112. package/dist/esm/crunch-loader.js.map +1 -0
  113. package/dist/esm/index.js +30 -0
  114. package/dist/esm/index.js.map +1 -0
  115. package/dist/esm/ktx2-basis-writer-nodejs.js +3 -0
  116. package/dist/esm/ktx2-basis-writer-nodejs.js.map +1 -0
  117. package/dist/{ktx2-basis-universal-texture-writer.js → esm/ktx2-basis-writer.js} +4 -4
  118. package/dist/esm/ktx2-basis-writer.js.map +1 -0
  119. package/dist/esm/lib/encoders/encode-ktx.js +6 -0
  120. package/dist/esm/lib/encoders/encode-ktx.js.map +1 -0
  121. package/dist/esm/lib/encoders/encode-ktx2-basis-texture.js +35 -0
  122. package/dist/esm/lib/encoders/encode-ktx2-basis-texture.js.map +1 -0
  123. package/dist/esm/lib/encoders/encode-texture.js +12 -0
  124. package/dist/esm/lib/encoders/encode-texture.js.map +1 -0
  125. package/dist/esm/lib/gl-extensions.js +61 -0
  126. package/dist/esm/lib/gl-extensions.js.map +1 -0
  127. package/dist/esm/lib/parsers/basis-module-loader.js +77 -0
  128. package/dist/esm/lib/parsers/basis-module-loader.js.map +1 -0
  129. package/dist/esm/lib/parsers/crunch-module-loader.js +19 -0
  130. package/dist/esm/lib/parsers/crunch-module-loader.js.map +1 -0
  131. package/dist/esm/lib/parsers/parse-basis.js +231 -0
  132. package/dist/esm/lib/parsers/parse-basis.js.map +1 -0
  133. package/dist/esm/lib/parsers/parse-compressed-texture.js +16 -0
  134. package/dist/esm/lib/parsers/parse-compressed-texture.js.map +1 -0
  135. package/dist/esm/lib/parsers/parse-crunch.js +75 -0
  136. package/dist/esm/lib/parsers/parse-crunch.js.map +1 -0
  137. package/dist/esm/lib/parsers/parse-dds.js +75 -0
  138. package/dist/esm/lib/parsers/parse-dds.js.map +1 -0
  139. package/dist/esm/lib/parsers/parse-ktx.js +25 -0
  140. package/dist/esm/lib/parsers/parse-ktx.js.map +1 -0
  141. package/dist/esm/lib/parsers/parse-npy.js +63 -0
  142. package/dist/esm/lib/parsers/parse-npy.js.map +1 -0
  143. package/dist/esm/lib/parsers/parse-pvr.js +154 -0
  144. package/dist/esm/lib/parsers/parse-pvr.js.map +1 -0
  145. package/dist/esm/lib/texture-api/async-deep-map.js +34 -0
  146. package/dist/esm/lib/texture-api/async-deep-map.js.map +1 -0
  147. package/dist/esm/lib/texture-api/deep-load.js +10 -0
  148. package/dist/esm/lib/texture-api/deep-load.js.map +1 -0
  149. package/dist/esm/lib/texture-api/generate-url.js +13 -0
  150. package/dist/esm/lib/texture-api/generate-url.js.map +1 -0
  151. package/dist/esm/lib/texture-api/load-image-array.js +20 -0
  152. package/dist/esm/lib/texture-api/load-image-array.js.map +1 -0
  153. package/dist/esm/lib/texture-api/load-image-cube.js +63 -0
  154. package/dist/esm/lib/texture-api/load-image-cube.js.map +1 -0
  155. package/dist/esm/lib/texture-api/load-image.js +46 -0
  156. package/dist/esm/lib/texture-api/load-image.js.map +1 -0
  157. package/dist/esm/lib/texture-api/texture-api-types.js +2 -0
  158. package/dist/esm/lib/texture-api/texture-api-types.js.map +1 -0
  159. package/dist/esm/lib/utils/extract-mipmap-images.js +35 -0
  160. package/dist/esm/lib/utils/extract-mipmap-images.js.map +1 -0
  161. package/dist/esm/lib/utils/ktx-format-helper.js +73 -0
  162. package/dist/esm/lib/utils/ktx-format-helper.js.map +1 -0
  163. package/dist/esm/lib/utils/texture-formats.js +36 -0
  164. package/dist/esm/lib/utils/texture-formats.js.map +1 -0
  165. package/dist/esm/lib/utils/version.js +2 -0
  166. package/dist/esm/lib/utils/version.js.map +1 -0
  167. package/dist/esm/libs/README.md +9 -0
  168. package/dist/esm/libs/basis_encoder.js +21 -0
  169. package/dist/esm/libs/basis_encoder.wasm +0 -0
  170. package/dist/esm/libs/basis_transcoder.js +22 -0
  171. package/dist/esm/libs/basis_transcoder.wasm +0 -0
  172. package/dist/esm/libs/crunch.js +136 -0
  173. package/dist/esm/npy-loader.js +22 -0
  174. package/dist/esm/npy-loader.js.map +1 -0
  175. package/dist/esm/types.js +2 -0
  176. package/dist/esm/types.js.map +1 -0
  177. package/dist/esm/workers/basis-nodejs-worker.js +5 -0
  178. package/dist/esm/workers/basis-nodejs-worker.js.map +1 -0
  179. package/dist/esm/workers/basis-worker.js +4 -0
  180. package/dist/esm/workers/basis-worker.js.map +1 -0
  181. package/dist/esm/workers/compressed-texture-worker.js +4 -0
  182. package/dist/esm/workers/compressed-texture-worker.js.map +1 -0
  183. package/dist/esm/workers/crunch-worker.js +9 -0
  184. package/dist/esm/workers/crunch-worker.js.map +1 -0
  185. package/dist/esm/workers/ktx2-basis-writer-nodejs-worker.js +31 -0
  186. package/dist/esm/workers/ktx2-basis-writer-nodejs-worker.js.map +1 -0
  187. package/dist/esm/workers/ktx2-basis-writer-worker.js +31 -0
  188. package/dist/esm/workers/ktx2-basis-writer-worker.js.map +1 -0
  189. package/dist/esm/workers/npy-worker.js +4 -0
  190. package/dist/esm/workers/npy-worker.js.map +1 -0
  191. package/dist/index.d.ts +15 -1
  192. package/dist/index.d.ts.map +1 -1
  193. package/dist/index.js +53 -14
  194. package/dist/ktx2-basis-writer-nodejs-worker.js +65949 -0
  195. package/dist/ktx2-basis-writer-nodejs.d.ts +3 -0
  196. package/dist/ktx2-basis-writer-nodejs.d.ts.map +1 -0
  197. package/dist/ktx2-basis-writer-nodejs.js +7 -0
  198. package/dist/ktx2-basis-writer-worker.js +343 -0
  199. package/dist/ktx2-basis-writer.d.ts +16 -0
  200. package/dist/ktx2-basis-writer.d.ts.map +1 -0
  201. package/dist/ktx2-basis-writer.js +26 -0
  202. package/dist/lib/encoders/encode-ktx.js +9 -5
  203. package/dist/lib/encoders/encode-ktx2-basis-texture.js +40 -34
  204. package/dist/lib/encoders/encode-texture.d.ts +2 -3
  205. package/dist/lib/encoders/encode-texture.d.ts.map +1 -1
  206. package/dist/lib/encoders/encode-texture.js +26 -11
  207. package/dist/lib/gl-extensions.js +71 -60
  208. package/dist/lib/parsers/basis-module-loader.js +100 -76
  209. package/dist/lib/parsers/crunch-module-loader.js +30 -18
  210. package/dist/lib/parsers/parse-basis.d.ts +1 -1
  211. package/dist/lib/parsers/parse-basis.d.ts.map +1 -1
  212. package/dist/lib/parsers/parse-basis.js +225 -240
  213. package/dist/lib/parsers/parse-compressed-texture.js +25 -18
  214. package/dist/lib/parsers/parse-crunch.js +96 -82
  215. package/dist/lib/parsers/parse-dds.js +93 -63
  216. package/dist/lib/parsers/parse-ktx.js +44 -23
  217. package/dist/lib/parsers/parse-npy.d.ts +10 -5
  218. package/dist/lib/parsers/parse-npy.d.ts.map +1 -1
  219. package/dist/lib/parsers/parse-npy.js +76 -71
  220. package/dist/lib/parsers/parse-pvr.js +212 -133
  221. package/dist/lib/texture-api/async-deep-map.d.ts +2 -2
  222. package/dist/lib/texture-api/async-deep-map.d.ts.map +1 -1
  223. package/dist/lib/texture-api/async-deep-map.js +35 -33
  224. package/dist/lib/texture-api/deep-load.d.ts +2 -2
  225. package/dist/lib/texture-api/deep-load.d.ts.map +1 -1
  226. package/dist/lib/texture-api/deep-load.js +14 -8
  227. package/dist/lib/texture-api/generate-url.js +16 -13
  228. package/dist/lib/texture-api/load-image-array.js +19 -18
  229. package/dist/lib/texture-api/load-image-cube.d.ts +1 -1
  230. package/dist/lib/texture-api/load-image-cube.d.ts.map +1 -1
  231. package/dist/lib/texture-api/load-image-cube.js +39 -55
  232. package/dist/lib/texture-api/load-image.js +38 -43
  233. package/dist/lib/texture-api/texture-api-types.d.ts +2 -2
  234. package/dist/lib/texture-api/texture-api-types.d.ts.map +1 -1
  235. package/dist/lib/texture-api/texture-api-types.js +3 -2
  236. package/dist/lib/utils/extract-mipmap-images.d.ts +1 -1
  237. package/dist/lib/utils/extract-mipmap-images.d.ts.map +1 -1
  238. package/dist/lib/utils/extract-mipmap-images.js +45 -36
  239. package/dist/lib/utils/ktx-format-helper.js +122 -70
  240. package/dist/lib/utils/texture-formats.js +42 -30
  241. package/dist/lib/utils/version.js +8 -2
  242. package/dist/libs/basis_encoder.js +20 -21
  243. package/dist/libs/basis_encoder.wasm +0 -0
  244. package/dist/libs/basis_transcoder.js +14 -13
  245. package/dist/libs/basis_transcoder.wasm +0 -0
  246. package/dist/npy-loader.d.ts +6 -37
  247. package/dist/npy-loader.d.ts.map +1 -1
  248. package/dist/npy-loader.js +28 -20
  249. package/dist/npy-worker.js +60 -31
  250. package/dist/types.js +1 -2
  251. package/dist/workers/basis-nodejs-worker.d.ts +2 -0
  252. package/dist/workers/basis-nodejs-worker.d.ts.map +1 -0
  253. package/dist/workers/basis-nodejs-worker.js +6 -0
  254. package/dist/workers/basis-worker.js +5 -4
  255. package/dist/workers/compressed-texture-worker.js +5 -4
  256. package/dist/workers/crunch-worker.js +13 -7
  257. package/dist/workers/ktx2-basis-writer-nodejs-worker.d.ts +2 -0
  258. package/dist/workers/ktx2-basis-writer-nodejs-worker.d.ts.map +1 -0
  259. package/dist/workers/ktx2-basis-writer-nodejs-worker.js +26 -0
  260. package/dist/workers/ktx2-basis-writer-worker.d.ts +2 -0
  261. package/dist/workers/ktx2-basis-writer-worker.d.ts.map +1 -0
  262. package/dist/workers/ktx2-basis-writer-worker.js +26 -0
  263. package/dist/workers/npy-worker.js +5 -4
  264. package/package.json +16 -10
  265. package/src/basis-loader.ts +8 -8
  266. package/src/compressed-texture-writer.ts +21 -3
  267. package/src/index.ts +19 -1
  268. package/src/ktx2-basis-writer-nodejs.ts +4 -0
  269. package/src/{ktx2-basis-universal-texture-writer.ts → ktx2-basis-writer.ts} +14 -3
  270. package/src/lib/encoders/encode-texture.ts +2 -1
  271. package/src/lib/parsers/parse-basis.ts +1 -1
  272. package/src/lib/parsers/parse-npy.ts +52 -31
  273. package/src/libs/basis_encoder.js +20 -21
  274. package/src/libs/basis_encoder.wasm +0 -0
  275. package/src/libs/basis_transcoder.js +14 -13
  276. package/src/libs/basis_transcoder.wasm +0 -0
  277. package/src/npy-loader.ts +7 -7
  278. package/src/workers/basis-nodejs-worker.ts +5 -0
  279. package/src/workers/ktx2-basis-writer-nodejs-worker.ts +25 -0
  280. package/src/workers/ktx2-basis-writer-worker.ts +25 -0
  281. package/dist/basis-loader.js.map +0 -1
  282. package/dist/bundle.js.map +0 -1
  283. package/dist/compressed-texture-loader.js.map +0 -1
  284. package/dist/compressed-texture-writer.js.map +0 -1
  285. package/dist/crunch-loader.js.map +0 -1
  286. package/dist/index.js.map +0 -1
  287. package/dist/ktx2-basis-universal-texture-writer.d.ts +0 -22
  288. package/dist/ktx2-basis-universal-texture-writer.d.ts.map +0 -1
  289. package/dist/ktx2-basis-universal-texture-writer.js.map +0 -1
  290. package/dist/lib/encoders/encode-ktx.js.map +0 -1
  291. package/dist/lib/encoders/encode-ktx2-basis-texture.js.map +0 -1
  292. package/dist/lib/encoders/encode-texture.js.map +0 -1
  293. package/dist/lib/gl-extensions.js.map +0 -1
  294. package/dist/lib/parsers/basis-module-loader.js.map +0 -1
  295. package/dist/lib/parsers/crunch-module-loader.js.map +0 -1
  296. package/dist/lib/parsers/parse-basis.js.map +0 -1
  297. package/dist/lib/parsers/parse-compressed-texture.js.map +0 -1
  298. package/dist/lib/parsers/parse-crunch.js.map +0 -1
  299. package/dist/lib/parsers/parse-dds.js.map +0 -1
  300. package/dist/lib/parsers/parse-ktx.js.map +0 -1
  301. package/dist/lib/parsers/parse-npy.js.map +0 -1
  302. package/dist/lib/parsers/parse-pvr.js.map +0 -1
  303. package/dist/lib/texture-api/async-deep-map.js.map +0 -1
  304. package/dist/lib/texture-api/deep-load.js.map +0 -1
  305. package/dist/lib/texture-api/generate-url.js.map +0 -1
  306. package/dist/lib/texture-api/load-image-array.js.map +0 -1
  307. package/dist/lib/texture-api/load-image-cube.js.map +0 -1
  308. package/dist/lib/texture-api/load-image.js.map +0 -1
  309. package/dist/lib/texture-api/texture-api-types.js.map +0 -1
  310. package/dist/lib/utils/extract-mipmap-images.js.map +0 -1
  311. package/dist/lib/utils/ktx-format-helper.js.map +0 -1
  312. package/dist/lib/utils/texture-formats.js.map +0 -1
  313. package/dist/lib/utils/version.js.map +0 -1
  314. package/dist/libs/libs/basis_encoder.js +0 -22
  315. package/dist/libs/libs/basis_encoder.wasm +0 -0
  316. package/dist/libs/libs/basis_transcoder.js +0 -21
  317. package/dist/npy-loader.js.map +0 -1
  318. package/dist/types.js.map +0 -1
  319. package/dist/workers/basis-worker.js.map +0 -1
  320. package/dist/workers/compressed-texture-worker.js.map +0 -1
  321. package/dist/workers/crunch-worker.js.map +0 -1
  322. package/dist/workers/npy-worker.js.map +0 -1
  323. /package/dist/{libs → es5}/libs/README.md +0 -0
  324. /package/dist/{libs → es5}/libs/crunch.js +0 -0
package/dist/dist.min.js CHANGED
@@ -29,20 +29,43 @@
29
29
  return __reExport(__markAsModule(__defProp(module != null ? __create(__getProtoOf(module)) : {}, "default", module && module.__esModule && "default" in module ? { get: () => module.default, enumerable: true } : { value: module, enumerable: true })), module);
30
30
  };
31
31
 
32
- // src/lib/utils/version.ts
33
- var VERSION;
34
- var init_version = __esm({
35
- "src/lib/utils/version.ts"() {
36
- VERSION = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
32
+ // ../loader-utils/src/lib/env-utils/assert.ts
33
+ function assert(condition, message) {
34
+ if (!condition) {
35
+ throw new Error(message || "loader assertion failed.");
36
+ }
37
+ }
38
+ var init_assert = __esm({
39
+ "../loader-utils/src/lib/env-utils/assert.ts"() {
40
+ }
41
+ });
42
+
43
+ // ../loader-utils/src/lib/env-utils/globals.ts
44
+ var globals, self_, window_, global_, document_, isBrowser, matches, nodeVersion;
45
+ var init_globals = __esm({
46
+ "../loader-utils/src/lib/env-utils/globals.ts"() {
47
+ globals = {
48
+ self: typeof self !== "undefined" && self,
49
+ window: typeof window !== "undefined" && window,
50
+ global: typeof global !== "undefined" && global,
51
+ document: typeof document !== "undefined" && document
52
+ };
53
+ self_ = globals.self || globals.window || globals.global || {};
54
+ window_ = globals.window || globals.self || globals.global || {};
55
+ global_ = globals.global || globals.self || globals.window || {};
56
+ document_ = globals.document || {};
57
+ isBrowser = Boolean(typeof process !== "object" || String(process) !== "[object process]" || process.browser);
58
+ matches = typeof process !== "undefined" && process.version && /v([0-9]*)/.exec(process.version);
59
+ nodeVersion = matches && parseFloat(matches[1]) || 0;
37
60
  }
38
61
  });
39
62
 
40
63
  // ../worker-utils/src/lib/env-utils/version.ts
41
- var DEFAULT_VERSION, VERSION2;
42
- var init_version2 = __esm({
64
+ var DEFAULT_VERSION, VERSION;
65
+ var init_version = __esm({
43
66
  "../worker-utils/src/lib/env-utils/version.ts"() {
44
67
  DEFAULT_VERSION = "beta";
45
- VERSION2 = typeof __VERSION__ !== "undefined" ? __VERSION__ : DEFAULT_VERSION;
68
+ VERSION = typeof __VERSION__ !== "undefined" ? __VERSION__ : DEFAULT_VERSION;
46
69
  if (typeof __VERSION__ === "undefined") {
47
70
  console.error("loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.");
48
71
  }
@@ -50,35 +73,35 @@
50
73
  });
51
74
 
52
75
  // ../worker-utils/src/lib/env-utils/assert.ts
53
- function assert(condition, message) {
76
+ function assert2(condition, message) {
54
77
  if (!condition) {
55
78
  throw new Error(message || "loaders.gl assertion failed.");
56
79
  }
57
80
  }
58
- var init_assert = __esm({
81
+ var init_assert2 = __esm({
59
82
  "../worker-utils/src/lib/env-utils/assert.ts"() {
60
83
  }
61
84
  });
62
85
 
63
86
  // ../worker-utils/src/lib/env-utils/globals.ts
64
- var globals, self_, window_, global_, document_, isBrowser, isWorker, isMobile, matches, nodeVersion;
65
- var init_globals = __esm({
87
+ var globals2, self_2, window_2, global_2, document_2, isBrowser2, isWorker, isMobile, matches2, nodeVersion2;
88
+ var init_globals2 = __esm({
66
89
  "../worker-utils/src/lib/env-utils/globals.ts"() {
67
- globals = {
90
+ globals2 = {
68
91
  self: typeof self !== "undefined" && self,
69
92
  window: typeof window !== "undefined" && window,
70
93
  global: typeof global !== "undefined" && global,
71
94
  document: typeof document !== "undefined" && document
72
95
  };
73
- self_ = globals.self || globals.window || globals.global || {};
74
- window_ = globals.window || globals.self || globals.global || {};
75
- global_ = globals.global || globals.self || globals.window || {};
76
- document_ = globals.document || {};
77
- isBrowser = typeof process !== "object" || String(process) !== "[object process]" || process.browser;
96
+ self_2 = globals2.self || globals2.window || globals2.global || {};
97
+ window_2 = globals2.window || globals2.self || globals2.global || {};
98
+ global_2 = globals2.global || globals2.self || globals2.window || {};
99
+ document_2 = globals2.document || {};
100
+ isBrowser2 = typeof process !== "object" || String(process) !== "[object process]" || process.browser;
78
101
  isWorker = typeof importScripts === "function";
79
102
  isMobile = typeof window !== "undefined" && typeof window.orientation !== "undefined";
80
- matches = typeof process !== "undefined" && process.version && /v([0-9]*)/.exec(process.version);
81
- nodeVersion = matches && parseFloat(matches[1]) || 0;
103
+ matches2 = typeof process !== "undefined" && process.version && /v([0-9]*)/.exec(process.version);
104
+ nodeVersion2 = matches2 && parseFloat(matches2[1]) || 0;
82
105
  }
83
106
  });
84
107
 
@@ -104,12 +127,12 @@
104
127
  if (modules[library]) {
105
128
  return modules[library];
106
129
  }
107
- if (!isBrowser) {
130
+ if (!isBrowser2) {
108
131
  return `modules/${moduleName}/dist/libs/${library}`;
109
132
  }
110
133
  if (options.CDN) {
111
- assert(options.CDN.startsWith("http"));
112
- return `${options.CDN}/${moduleName}@${VERSION3}/dist/libs/${library}`;
134
+ assert2(options.CDN.startsWith("http"));
135
+ return `${options.CDN}/${moduleName}@${VERSION2}/dist/libs/${library}`;
113
136
  }
114
137
  if (isWorker) {
115
138
  return `../src/libs/${library}`;
@@ -121,7 +144,7 @@
121
144
  const response2 = await fetch(libraryUrl);
122
145
  return await response2.arrayBuffer();
123
146
  }
124
- if (!isBrowser) {
147
+ if (!isBrowser2) {
125
148
  try {
126
149
  return node && node.requireFromFile && await node.requireFromFile(libraryUrl);
127
150
  } catch {
@@ -136,11 +159,11 @@
136
159
  return loadLibraryFromString(scriptSource, libraryUrl);
137
160
  }
138
161
  function loadLibraryFromString(scriptSource, id) {
139
- if (!isBrowser) {
162
+ if (!isBrowser2) {
140
163
  return node.requireFromString && node.requireFromString(scriptSource, id);
141
164
  }
142
165
  if (isWorker) {
143
- eval.call(global_, scriptSource);
166
+ eval.call(global_2, scriptSource);
144
167
  return null;
145
168
  }
146
169
  const script = document.createElement("script");
@@ -153,15 +176,15 @@
153
176
  document.body.appendChild(script);
154
177
  return null;
155
178
  }
156
- var node, LATEST, VERSION3, loadLibraryPromises;
179
+ var node, LATEST, VERSION2, loadLibraryPromises;
157
180
  var init_library_utils = __esm({
158
181
  "../worker-utils/src/lib/library-utils/library-utils.ts"() {
159
- init_globals();
182
+ init_globals2();
160
183
  node = __toModule(require_require_utils());
161
- init_assert();
162
- init_version2();
184
+ init_assert2();
185
+ init_version();
163
186
  LATEST = "beta";
164
- VERSION3 = typeof VERSION2 !== "undefined" ? VERSION2 : LATEST;
187
+ VERSION2 = typeof VERSION !== "undefined" ? VERSION : LATEST;
165
188
  loadLibraryPromises = {};
166
189
  }
167
190
  });
@@ -175,11 +198,50 @@
175
198
  // ../worker-utils/src/index.ts
176
199
  var init_src = __esm({
177
200
  "../worker-utils/src/index.ts"() {
201
+ init_globals2();
178
202
  init_library_utils();
179
203
  init_child_process_proxy();
180
204
  }
181
205
  });
182
206
 
207
+ // ../loader-utils/src/lib/path-utils/file-aliases.ts
208
+ function resolvePath(filename) {
209
+ for (const alias in fileAliases) {
210
+ if (filename.startsWith(alias)) {
211
+ const replacement = fileAliases[alias];
212
+ filename = filename.replace(alias, replacement);
213
+ }
214
+ }
215
+ if (!filename.startsWith("http://") && !filename.startsWith("https://")) {
216
+ filename = `${pathPrefix}${filename}`;
217
+ }
218
+ return filename;
219
+ }
220
+ var pathPrefix, fileAliases;
221
+ var init_file_aliases = __esm({
222
+ "../loader-utils/src/lib/path-utils/file-aliases.ts"() {
223
+ pathPrefix = "";
224
+ fileAliases = {};
225
+ }
226
+ });
227
+
228
+ // ../loader-utils/src/index.ts
229
+ var init_src2 = __esm({
230
+ "../loader-utils/src/index.ts"() {
231
+ init_assert();
232
+ init_globals();
233
+ init_file_aliases();
234
+ }
235
+ });
236
+
237
+ // src/lib/utils/version.ts
238
+ var VERSION3;
239
+ var init_version2 = __esm({
240
+ "src/lib/utils/version.ts"() {
241
+ VERSION3 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
242
+ }
243
+ });
244
+
183
245
  // src/lib/parsers/basis-module-loader.ts
184
246
  async function loadBasisTrascoderModule(options) {
185
247
  const modules = options.modules || {};
@@ -370,21 +432,21 @@
370
432
  const n2 = new Uint8Array(t2.buffer, t2.byteOffset, e.length);
371
433
  if (n2[0] !== e[0] || n2[1] !== e[1] || n2[2] !== e[2] || n2[3] !== e[3] || n2[4] !== e[4] || n2[5] !== e[5] || n2[6] !== e[6] || n2[7] !== e[7] || n2[8] !== e[8] || n2[9] !== e[9] || n2[10] !== e[10] || n2[11] !== e[11])
372
434
  throw new Error("Missing KTX 2.0 identifier.");
373
- const i2 = new U(), s2 = 17 * Uint32Array.BYTES_PER_ELEMENT, a2 = new c(t2, e.length, s2, true);
374
- i2.vkFormat = a2._nextUint32(), i2.typeSize = a2._nextUint32(), i2.pixelWidth = a2._nextUint32(), i2.pixelHeight = a2._nextUint32(), i2.pixelDepth = a2._nextUint32(), i2.layerCount = a2._nextUint32(), i2.faceCount = a2._nextUint32();
375
- const r2 = a2._nextUint32();
376
- i2.supercompressionScheme = a2._nextUint32();
377
- const o2 = a2._nextUint32(), l2 = a2._nextUint32(), f2 = a2._nextUint32(), h = a2._nextUint32(), g = a2._nextUint64(), p2 = a2._nextUint64(), x = new c(t2, e.length + s2, 3 * r2 * 8, true);
435
+ const i2 = new U(), s2 = 17 * Uint32Array.BYTES_PER_ELEMENT, a3 = new c(t2, e.length, s2, true);
436
+ i2.vkFormat = a3._nextUint32(), i2.typeSize = a3._nextUint32(), i2.pixelWidth = a3._nextUint32(), i2.pixelHeight = a3._nextUint32(), i2.pixelDepth = a3._nextUint32(), i2.layerCount = a3._nextUint32(), i2.faceCount = a3._nextUint32();
437
+ const r2 = a3._nextUint32();
438
+ i2.supercompressionScheme = a3._nextUint32();
439
+ const o2 = a3._nextUint32(), l2 = a3._nextUint32(), f2 = a3._nextUint32(), h = a3._nextUint32(), g = a3._nextUint64(), p2 = a3._nextUint64(), x = new c(t2, e.length + s2, 3 * r2 * 8, true);
378
440
  for (let e2 = 0; e2 < r2; e2++)
379
441
  i2.levels.push({ levelData: new Uint8Array(t2.buffer, t2.byteOffset + x._nextUint64(), x._nextUint64()), uncompressedByteLength: x._nextUint64() });
380
442
  const u = new c(t2, o2, l2, true), y = { vendorId: u._skip(4)._nextUint16(), descriptorType: u._nextUint16(), versionNumber: u._nextUint16(), descriptorBlockSize: u._nextUint16(), colorModel: u._nextUint8(), colorPrimaries: u._nextUint8(), transferFunction: u._nextUint8(), flags: u._nextUint8(), texelBlockDimension: { x: u._nextUint8() + 1, y: u._nextUint8() + 1, z: u._nextUint8() + 1, w: u._nextUint8() + 1 }, bytesPlane: [u._nextUint8(), u._nextUint8(), u._nextUint8(), u._nextUint8(), u._nextUint8(), u._nextUint8(), u._nextUint8(), u._nextUint8()], samples: [] }, D = (y.descriptorBlockSize / 4 - 6) / 4;
381
443
  for (let t3 = 0; t3 < D; t3++)
382
444
  y.samples[t3] = { bitOffset: u._nextUint16(), bitLength: u._nextUint8(), channelID: u._nextUint8(), samplePosition: [u._nextUint8(), u._nextUint8(), u._nextUint8(), u._nextUint8()], sampleLower: u._nextUint32(), sampleUpper: u._nextUint32() };
383
445
  i2.dataFormatDescriptor.length = 0, i2.dataFormatDescriptor.push(y);
384
- const b = new c(t2, f2, h, true);
385
- for (; b._offset < h; ) {
386
- const t3 = b._nextUint32(), e2 = b._scan(t3), n3 = _(e2), s3 = b._scan(t3 - e2.byteLength);
387
- i2.keyValue[n3] = n3.match(/^ktx/i) ? _(s3) : s3, t3 % 4 && b._skip(4 - t3 % 4);
446
+ const b2 = new c(t2, f2, h, true);
447
+ for (; b2._offset < h; ) {
448
+ const t3 = b2._nextUint32(), e2 = b2._scan(t3), n3 = _(e2), s3 = b2._scan(t3 - e2.byteLength);
449
+ i2.keyValue[n3] = n3.match(/^ktx/i) ? _(s3) : s3, t3 % 4 && b2._skip(4 - t3 % 4);
388
450
  }
389
451
  if (p2 <= 0)
390
452
  return i2;
@@ -716,6 +778,7 @@
716
778
  height,
717
779
  data: decodedData,
718
780
  compressed,
781
+ levelSize: decodedSize,
719
782
  hasAlpha: alphaFlag,
720
783
  format
721
784
  };
@@ -809,13 +872,14 @@
809
872
  var BasisWorkerLoader, BasisLoader;
810
873
  var init_basis_loader = __esm({
811
874
  "src/basis-loader.ts"() {
812
- init_version();
875
+ init_src();
876
+ init_version2();
813
877
  init_parse_basis();
814
878
  BasisWorkerLoader = {
815
879
  name: "Basis",
816
- id: "basis",
880
+ id: isBrowser2 ? "basis" : "basis-nodejs",
817
881
  module: "textures",
818
- version: VERSION,
882
+ version: VERSION3,
819
883
  worker: true,
820
884
  extensions: ["basis", "ktx2"],
821
885
  mimeTypes: ["application/octet-stream", "image/ktx2"],
@@ -837,67 +901,6 @@
837
901
  }
838
902
  });
839
903
 
840
- // ../loader-utils/src/lib/env-utils/assert.ts
841
- function assert2(condition, message) {
842
- if (!condition) {
843
- throw new Error(message || "loader assertion failed.");
844
- }
845
- }
846
- var init_assert2 = __esm({
847
- "../loader-utils/src/lib/env-utils/assert.ts"() {
848
- }
849
- });
850
-
851
- // ../loader-utils/src/lib/env-utils/globals.ts
852
- var globals2, self_2, window_2, global_2, document_2, isBrowser2, matches2, nodeVersion2;
853
- var init_globals2 = __esm({
854
- "../loader-utils/src/lib/env-utils/globals.ts"() {
855
- globals2 = {
856
- self: typeof self !== "undefined" && self,
857
- window: typeof window !== "undefined" && window,
858
- global: typeof global !== "undefined" && global,
859
- document: typeof document !== "undefined" && document
860
- };
861
- self_2 = globals2.self || globals2.window || globals2.global || {};
862
- window_2 = globals2.window || globals2.self || globals2.global || {};
863
- global_2 = globals2.global || globals2.self || globals2.window || {};
864
- document_2 = globals2.document || {};
865
- isBrowser2 = Boolean(typeof process !== "object" || String(process) !== "[object process]" || process.browser);
866
- matches2 = typeof process !== "undefined" && process.version && /v([0-9]*)/.exec(process.version);
867
- nodeVersion2 = matches2 && parseFloat(matches2[1]) || 0;
868
- }
869
- });
870
-
871
- // ../loader-utils/src/lib/path-utils/file-aliases.ts
872
- function resolvePath(filename) {
873
- for (const alias in fileAliases) {
874
- if (filename.startsWith(alias)) {
875
- const replacement = fileAliases[alias];
876
- filename = filename.replace(alias, replacement);
877
- }
878
- }
879
- if (!filename.startsWith("http://") && !filename.startsWith("https://")) {
880
- filename = `${pathPrefix}${filename}`;
881
- }
882
- return filename;
883
- }
884
- var pathPrefix, fileAliases;
885
- var init_file_aliases = __esm({
886
- "../loader-utils/src/lib/path-utils/file-aliases.ts"() {
887
- pathPrefix = "";
888
- fileAliases = {};
889
- }
890
- });
891
-
892
- // ../loader-utils/src/index.ts
893
- var init_src2 = __esm({
894
- "../loader-utils/src/index.ts"() {
895
- init_assert2();
896
- init_globals2();
897
- init_file_aliases();
898
- }
899
- });
900
-
901
904
  // src/lib/parsers/parse-dds.ts
902
905
  function isDDS(data) {
903
906
  const header = new Uint32Array(data, 0, DDS_CONSTANTS.HEADER_LENGTH);
@@ -907,11 +910,11 @@
907
910
  function parseDDS(data) {
908
911
  const header = new Int32Array(data, 0, DDS_CONSTANTS.HEADER_LENGTH);
909
912
  const pixelFormatNumber = header[DDS_CONSTANTS.HEADER_PF_FOURCC_INDEX];
910
- assert2(Boolean(header[DDS_CONSTANTS.HEADER_PF_FLAGS_INDEX] & DDS_CONSTANTS.DDPF_FOURCC), "DDS: Unsupported format, must contain a FourCC code");
913
+ assert(Boolean(header[DDS_CONSTANTS.HEADER_PF_FLAGS_INDEX] & DDS_CONSTANTS.DDPF_FOURCC), "DDS: Unsupported format, must contain a FourCC code");
911
914
  const fourCC = int32ToFourCC(pixelFormatNumber);
912
915
  const internalFormat = DDS_PIXEL_FORMATS[fourCC];
913
916
  const sizeFunction = DDS_SIZE_FUNCTIONS[fourCC];
914
- assert2(internalFormat && sizeFunction, `DDS: Unknown pixel format ${pixelFormatNumber}`);
917
+ assert(internalFormat && sizeFunction, `DDS: Unknown pixel format ${pixelFormatNumber}`);
915
918
  let mipMapLevels = 1;
916
919
  if (header[DDS_CONSTANTS.HEADER_FLAGS_INDEX] & DDS_CONSTANTS.DDSD_MIPMAPCOUNT) {
917
920
  mipMapLevels = Math.max(1, header[DDS_CONSTANTS.MIPMAPCOUNT_INDEX]);
@@ -1206,7 +1209,7 @@
1206
1209
  var DEFAULT_TEXTURE_LOADER_OPTIONS, CompressedTextureWorkerLoader, CompressedTextureLoader;
1207
1210
  var init_compressed_texture_loader = __esm({
1208
1211
  "src/compressed-texture-loader.ts"() {
1209
- init_version();
1212
+ init_version2();
1210
1213
  init_parse_compressed_texture();
1211
1214
  init_parse_basis();
1212
1215
  DEFAULT_TEXTURE_LOADER_OPTIONS = {
@@ -1219,7 +1222,7 @@
1219
1222
  name: "Texture Containers",
1220
1223
  id: "compressed-texture",
1221
1224
  module: "textures",
1222
- version: VERSION,
1225
+ version: VERSION3,
1223
1226
  worker: true,
1224
1227
  extensions: [
1225
1228
  "ktx",
@@ -1262,12 +1265,12 @@
1262
1265
  var CrunchLoader;
1263
1266
  var init_crunch_loader = __esm({
1264
1267
  "src/crunch-loader.ts"() {
1265
- init_version();
1268
+ init_version2();
1266
1269
  CrunchLoader = {
1267
1270
  id: "crunch",
1268
1271
  name: "Crunch",
1269
1272
  module: "textures",
1270
- version: VERSION,
1273
+ version: VERSION3,
1271
1274
  worker: true,
1272
1275
  extensions: ["crn"],
1273
1276
  mimeTypes: ["image/crn", "image/x-crn", "application/octet-stream"],
@@ -1282,28 +1285,22 @@
1282
1285
  });
1283
1286
 
1284
1287
  // src/lib/parsers/parse-npy.ts
1285
- function systemIsLittleEndian() {
1286
- const a2 = new Uint32Array([305419896]);
1287
- const b = new Uint8Array(a2.buffer, a2.byteOffset, a2.byteLength);
1288
- return !(b[0] === 18);
1289
- }
1290
1288
  function parseNPY(arrayBuffer, options) {
1291
- if (!arrayBuffer) {
1292
- return null;
1293
- }
1294
1289
  const view = new DataView(arrayBuffer);
1295
1290
  const { header, headerEndOffset } = parseHeader(view);
1296
1291
  const numpyType = header.descr;
1297
1292
  const ArrayType = DTYPES[numpyType.slice(1, 3)];
1298
1293
  if (!ArrayType) {
1299
- console.warn(`Decoding of npy dtype not implemented: ${numpyType}`);
1300
- return null;
1294
+ throw new Error(`Unimplemented type ${numpyType}`);
1301
1295
  }
1302
- const nArrayElements = header.shape?.reduce((a2, b) => a2 * b);
1296
+ const nArrayElements = header.shape?.reduce((a3, b2) => a3 * b2);
1303
1297
  const arrayByteLength = nArrayElements * ArrayType.BYTES_PER_ELEMENT;
1298
+ if (arrayBuffer.byteLength < headerEndOffset + arrayByteLength) {
1299
+ throw new Error("Buffer overflow");
1300
+ }
1304
1301
  const data = new ArrayType(arrayBuffer.slice(headerEndOffset, headerEndOffset + arrayByteLength));
1305
1302
  if (numpyType[0] === ">" && LITTLE_ENDIAN_OS || numpyType[0] === "<" && !LITTLE_ENDIAN_OS) {
1306
- console.warn("Data is wrong endianness, byte swapping not yet implemented.");
1303
+ throw new Error("Incorrect endianness");
1307
1304
  }
1308
1305
  return {
1309
1306
  data,
@@ -1315,10 +1312,10 @@
1315
1312
  let offset = 8;
1316
1313
  let headerLength;
1317
1314
  if (majorVersion >= 2) {
1318
- headerLength = view.getUint32(8, true);
1315
+ headerLength = view.getUint32(offset, true);
1319
1316
  offset += 4;
1320
1317
  } else {
1321
- headerLength = view.getUint16(8, true);
1318
+ headerLength = view.getUint16(offset, true);
1322
1319
  offset += 2;
1323
1320
  }
1324
1321
  const encoding = majorVersion <= 2 ? "latin1" : "utf-8";
@@ -1329,10 +1326,13 @@
1329
1326
  const header = JSON.parse(headerText.replace(/'/g, '"').replace("False", "false").replace("(", "[").replace(/,*\),*/g, "]"));
1330
1327
  return { header, headerEndOffset: offset };
1331
1328
  }
1332
- var LITTLE_ENDIAN_OS, DTYPES;
1329
+ var a2, b, isLittleEndian, LITTLE_ENDIAN_OS, DTYPES;
1333
1330
  var init_parse_npy = __esm({
1334
1331
  "src/lib/parsers/parse-npy.ts"() {
1335
- LITTLE_ENDIAN_OS = systemIsLittleEndian();
1332
+ a2 = new Uint32Array([305419896]);
1333
+ b = new Uint8Array(a2.buffer, a2.byteOffset, a2.byteLength);
1334
+ isLittleEndian = !(b[0] === 18);
1335
+ LITTLE_ENDIAN_OS = isLittleEndian;
1336
1336
  DTYPES = {
1337
1337
  u1: Uint8Array,
1338
1338
  i1: Int8Array,
@@ -1350,14 +1350,14 @@
1350
1350
  var NPY_MAGIC_NUMBER, NPYWorkerLoader, NPYLoader;
1351
1351
  var init_npy_loader = __esm({
1352
1352
  "src/npy-loader.ts"() {
1353
- init_version();
1353
+ init_version2();
1354
1354
  init_parse_npy();
1355
1355
  NPY_MAGIC_NUMBER = new Uint8Array([147, 78, 85, 77, 80, 89]);
1356
1356
  NPYWorkerLoader = {
1357
1357
  name: "NPY",
1358
1358
  id: "npy",
1359
1359
  module: "textures",
1360
- version: VERSION,
1360
+ version: VERSION3,
1361
1361
  worker: true,
1362
1362
  extensions: ["npy"],
1363
1363
  mimeTypes: [],
@@ -1407,13 +1407,13 @@
1407
1407
  var CompressedTextureWriter;
1408
1408
  var init_compressed_texture_writer = __esm({
1409
1409
  "src/compressed-texture-writer.ts"() {
1410
- init_version();
1410
+ init_version2();
1411
1411
  init_encode_texture();
1412
1412
  CompressedTextureWriter = {
1413
1413
  name: "DDS Texture Container",
1414
1414
  id: "dds",
1415
1415
  module: "textures",
1416
- version: VERSION,
1416
+ version: VERSION3,
1417
1417
  extensions: ["dds"],
1418
1418
  options: {
1419
1419
  texture: {
@@ -1462,17 +1462,17 @@
1462
1462
  }
1463
1463
  });
1464
1464
 
1465
- // src/ktx2-basis-universal-texture-writer.ts
1466
- var KTX2BasisUniversalTextureWriter;
1467
- var init_ktx2_basis_universal_texture_writer = __esm({
1468
- "src/ktx2-basis-universal-texture-writer.ts"() {
1469
- init_version();
1465
+ // src/ktx2-basis-writer.ts
1466
+ var KTX2BasisWriter;
1467
+ var init_ktx2_basis_writer = __esm({
1468
+ "src/ktx2-basis-writer.ts"() {
1469
+ init_version2();
1470
1470
  init_encode_ktx2_basis_texture();
1471
- KTX2BasisUniversalTextureWriter = {
1471
+ KTX2BasisWriter = {
1472
1472
  name: "Basis Universal Supercompressed GPU Texture",
1473
- id: "ktx2-basis-supercompressed-texture",
1473
+ id: "ktx2-basis-writer",
1474
1474
  module: "textures",
1475
- version: VERSION,
1475
+ version: VERSION3,
1476
1476
  extensions: ["ktx2"],
1477
1477
  options: {
1478
1478
  useSRGB: false,
@@ -1528,7 +1528,7 @@
1528
1528
  IMAGE_SUPPORTED = typeof Image !== "undefined";
1529
1529
  IMAGE_BITMAP_SUPPORTED = typeof ImageBitmap !== "undefined";
1530
1530
  NODE_IMAGE_SUPPORTED = Boolean(_parseImageNode);
1531
- DATA_SUPPORTED = isBrowser2 ? true : NODE_IMAGE_SUPPORTED;
1531
+ DATA_SUPPORTED = isBrowser ? true : NODE_IMAGE_SUPPORTED;
1532
1532
  }
1533
1533
  });
1534
1534
 
@@ -1690,10 +1690,62 @@
1690
1690
  }
1691
1691
  });
1692
1692
 
1693
+ // ../images/src/lib/category-api/parse-isobmff-binary.ts
1694
+ function getISOBMFFMediaType(buffer) {
1695
+ if (!checkString(buffer, "ftyp", 4)) {
1696
+ return null;
1697
+ }
1698
+ if ((buffer[8] & 96) === 0) {
1699
+ return null;
1700
+ }
1701
+ return decodeMajorBrand(buffer);
1702
+ }
1703
+ function decodeMajorBrand(buffer) {
1704
+ const brandMajor = getUTF8String(buffer, 8, 12).replace("\0", " ").trim();
1705
+ switch (brandMajor) {
1706
+ case "avif":
1707
+ case "avis":
1708
+ return { extension: "avif", mimeType: "image/avif" };
1709
+ default:
1710
+ return null;
1711
+ }
1712
+ }
1713
+ function getUTF8String(array, start, end) {
1714
+ return String.fromCharCode(...array.slice(start, end));
1715
+ }
1716
+ function stringToBytes(string) {
1717
+ return [...string].map((character) => character.charCodeAt(0));
1718
+ }
1719
+ function checkString(buffer, header, offset = 0) {
1720
+ const headerBytes = stringToBytes(header);
1721
+ for (let i2 = 0; i2 < headerBytes.length; ++i2) {
1722
+ if (headerBytes[i2] !== buffer[i2 + offset]) {
1723
+ return false;
1724
+ }
1725
+ }
1726
+ return true;
1727
+ }
1728
+ var init_parse_isobmff_binary = __esm({
1729
+ "../images/src/lib/category-api/parse-isobmff-binary.ts"() {
1730
+ }
1731
+ });
1732
+
1693
1733
  // ../images/src/lib/category-api/binary-image-api.ts
1694
1734
  function getBinaryImageMetadata(binaryData) {
1695
1735
  const dataView = toDataView(binaryData);
1696
- return getPngMetadata(dataView) || getJpegMetadata(dataView) || getGifMetadata(dataView) || getBmpMetadata(dataView);
1736
+ return getPngMetadata(dataView) || getJpegMetadata(dataView) || getGifMetadata(dataView) || getBmpMetadata(dataView) || getISOBMFFMetadata(dataView);
1737
+ }
1738
+ function getISOBMFFMetadata(binaryData) {
1739
+ const buffer = new Uint8Array(binaryData instanceof DataView ? binaryData.buffer : binaryData);
1740
+ const mediaType = getISOBMFFMediaType(buffer);
1741
+ if (!mediaType) {
1742
+ return null;
1743
+ }
1744
+ return {
1745
+ mimeType: mediaType.mimeType,
1746
+ width: 0,
1747
+ height: 0
1748
+ };
1697
1749
  }
1698
1750
  function getPngMetadata(binaryData) {
1699
1751
  const dataView = toDataView(binaryData);
@@ -1794,6 +1846,7 @@
1794
1846
  var BIG_ENDIAN, LITTLE_ENDIAN;
1795
1847
  var init_binary_image_api = __esm({
1796
1848
  "../images/src/lib/category-api/binary-image-api.ts"() {
1849
+ init_parse_isobmff_binary();
1797
1850
  BIG_ENDIAN = false;
1798
1851
  LITTLE_ENDIAN = true;
1799
1852
  }
@@ -1803,7 +1856,7 @@
1803
1856
  async function parseToNodeImage(arrayBuffer, options) {
1804
1857
  const { mimeType } = getBinaryImageMetadata(arrayBuffer) || {};
1805
1858
  const _parseImageNode2 = globalThis._parseImageNode;
1806
- assert2(_parseImageNode2);
1859
+ assert(_parseImageNode2);
1807
1860
  return await _parseImageNode2(arrayBuffer, mimeType);
1808
1861
  }
1809
1862
  var init_parse_to_node_image = __esm({
@@ -1832,7 +1885,7 @@
1832
1885
  image = await parseToNodeImage(arrayBuffer, options);
1833
1886
  break;
1834
1887
  default:
1835
- assert2(false);
1888
+ assert(false);
1836
1889
  }
1837
1890
  if (imageType === "data") {
1838
1891
  image = getImageData(image);
@@ -1867,12 +1920,13 @@
1867
1920
  init_version3();
1868
1921
  init_parse_image();
1869
1922
  init_binary_image_api();
1870
- EXTENSIONS = ["png", "jpg", "jpeg", "gif", "webp", "bmp", "ico", "svg"];
1923
+ EXTENSIONS = ["png", "jpg", "jpeg", "gif", "webp", "bmp", "ico", "svg", "avif"];
1871
1924
  MIME_TYPES = [
1872
1925
  "image/png",
1873
1926
  "image/jpeg",
1874
1927
  "image/gif",
1875
1928
  "image/webp",
1929
+ "image/avif",
1876
1930
  "image/bmp",
1877
1931
  "image/vnd.microsoft.icon",
1878
1932
  "image/svg+xml"
@@ -1991,7 +2045,7 @@
1991
2045
  mipLevels = getMipLevels({ width, height });
1992
2046
  urls.push(url);
1993
2047
  }
1994
- assert2(mipLevels > 0);
2048
+ assert(mipLevels > 0);
1995
2049
  for (let mipLevel = urls.length; mipLevel < mipLevels; ++mipLevel) {
1996
2050
  const url = generateUrl(getUrl, options, { ...urlOptions, lod: mipLevel });
1997
2051
  urls.push(url);
@@ -2084,7 +2138,8 @@
2084
2138
  CrunchLoader: () => CrunchLoader,
2085
2139
  CrunchWorkerLoader: () => CrunchLoader,
2086
2140
  GL_EXTENSIONS_CONSTANTS: () => GL_EXTENSIONS_CONSTANTS,
2087
- KTX2BasisUniversalTextureWriter: () => KTX2BasisUniversalTextureWriter,
2141
+ KTX2BasisWriter: () => KTX2BasisWriter,
2142
+ KTX2BasisWriterWorker: () => KTX2BasisWriterWorker,
2088
2143
  NPYLoader: () => NPYLoader,
2089
2144
  NPYWorkerLoader: () => NPYWorkerLoader,
2090
2145
  getSupportedGPUTextureFormats: () => getSupportedGPUTextureFormats,
@@ -2093,14 +2148,17 @@
2093
2148
  loadImageTextureCube: () => loadImageTextureCube,
2094
2149
  selectSupportedBasisFormat: () => selectSupportedBasisFormat
2095
2150
  });
2151
+ var KTX2BasisWriterWorker;
2096
2152
  var init_src4 = __esm({
2097
2153
  "src/index.ts"() {
2154
+ init_src2();
2155
+ init_version2();
2098
2156
  init_basis_loader();
2099
2157
  init_compressed_texture_loader();
2100
2158
  init_crunch_loader();
2101
2159
  init_npy_loader();
2102
2160
  init_compressed_texture_writer();
2103
- init_ktx2_basis_universal_texture_writer();
2161
+ init_ktx2_basis_writer();
2104
2162
  init_load_image();
2105
2163
  init_load_image_array();
2106
2164
  init_load_image_cube();
@@ -2108,6 +2166,20 @@
2108
2166
  init_parse_basis();
2109
2167
  init_texture_formats();
2110
2168
  init_crunch_loader();
2169
+ KTX2BasisWriterWorker = {
2170
+ name: "Basis Universal Supercompressed GPU Texture",
2171
+ id: isBrowser ? "ktx2-basis-writer" : "ktx2-basis-writer-nodejs",
2172
+ module: "textures",
2173
+ version: VERSION3,
2174
+ extensions: ["ktx2"],
2175
+ worker: true,
2176
+ options: {
2177
+ useSRGB: false,
2178
+ qualityLevel: 10,
2179
+ encodeUASTC: false,
2180
+ mipmaps: false
2181
+ }
2182
+ };
2111
2183
  }
2112
2184
  });
2113
2185