@loaders.gl/gltf 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 (292) hide show
  1. package/dist/bundle.js +2 -2
  2. package/dist/dist.min.js +2037 -1013
  3. package/dist/es5/bundle.js +6 -0
  4. package/dist/es5/bundle.js.map +1 -0
  5. package/dist/es5/glb-loader.js +56 -0
  6. package/dist/es5/glb-loader.js.map +1 -0
  7. package/dist/es5/glb-writer.js +35 -0
  8. package/dist/es5/glb-writer.js.map +1 -0
  9. package/dist/es5/gltf-loader.js +81 -0
  10. package/dist/es5/gltf-loader.js.map +1 -0
  11. package/dist/es5/gltf-writer.js +35 -0
  12. package/dist/es5/gltf-writer.js.map +1 -0
  13. package/dist/es5/index.js +49 -0
  14. package/dist/es5/index.js.map +1 -0
  15. package/dist/es5/lib/api/gltf-extensions.js +109 -0
  16. package/dist/es5/lib/api/gltf-extensions.js.map +1 -0
  17. package/dist/es5/lib/api/gltf-scenegraph.js +578 -0
  18. package/dist/es5/lib/api/gltf-scenegraph.js.map +1 -0
  19. package/dist/es5/lib/api/normalize-gltf-v1.js +331 -0
  20. package/dist/es5/lib/api/normalize-gltf-v1.js.map +1 -0
  21. package/dist/es5/lib/api/post-process-gltf.js +422 -0
  22. package/dist/es5/lib/api/post-process-gltf.js.map +1 -0
  23. package/dist/es5/lib/encoders/encode-glb.js +61 -0
  24. package/dist/es5/lib/encoders/encode-glb.js.map +1 -0
  25. package/dist/es5/lib/encoders/encode-gltf.js +21 -0
  26. package/dist/es5/lib/encoders/encode-gltf.js.map +1 -0
  27. package/dist/es5/lib/extensions/EXT_meshopt_compression.js +96 -0
  28. package/dist/es5/lib/extensions/EXT_meshopt_compression.js.map +1 -0
  29. package/dist/es5/lib/extensions/EXT_texture_webp.js +44 -0
  30. package/dist/es5/lib/extensions/EXT_texture_webp.js.map +1 -0
  31. package/dist/es5/lib/extensions/KHR_binary_gltf.js +40 -0
  32. package/dist/es5/lib/extensions/KHR_binary_gltf.js.map +1 -0
  33. package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js +246 -0
  34. package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js.map +1 -0
  35. package/dist/es5/lib/extensions/KHR_texture_basisu.js +37 -0
  36. package/dist/es5/lib/extensions/KHR_texture_basisu.js.map +1 -0
  37. package/dist/es5/lib/extensions/KHR_texture_transform.js +229 -0
  38. package/dist/es5/lib/extensions/KHR_texture_transform.js.map +1 -0
  39. package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js +103 -0
  40. package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js.map +1 -0
  41. package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js +99 -0
  42. package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -0
  43. package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js +76 -0
  44. package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -0
  45. package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js +113 -0
  46. package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -0
  47. package/dist/es5/lib/gltf-utils/get-typed-array.js +23 -0
  48. package/dist/es5/lib/gltf-utils/get-typed-array.js.map +1 -0
  49. package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js +68 -0
  50. package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js.map +1 -0
  51. package/dist/es5/lib/gltf-utils/gltf-constants.js +48 -0
  52. package/dist/es5/lib/gltf-utils/gltf-constants.js.map +1 -0
  53. package/dist/es5/lib/gltf-utils/gltf-utils.js +62 -0
  54. package/dist/es5/lib/gltf-utils/gltf-utils.js.map +1 -0
  55. package/dist/es5/lib/gltf-utils/resolve-url.js +18 -0
  56. package/dist/es5/lib/gltf-utils/resolve-url.js.map +1 -0
  57. package/dist/es5/lib/parsers/parse-glb.js +120 -0
  58. package/dist/es5/lib/parsers/parse-glb.js.map +1 -0
  59. package/dist/es5/lib/parsers/parse-gltf.js +287 -0
  60. package/dist/es5/lib/parsers/parse-gltf.js.map +1 -0
  61. package/dist/es5/lib/types/glb-types.js +2 -0
  62. package/dist/es5/lib/types/glb-types.js.map +1 -0
  63. package/dist/es5/lib/types/gltf-json-schema.js +2 -0
  64. package/dist/es5/lib/types/gltf-json-schema.js.map +1 -0
  65. package/dist/es5/lib/types/gltf-postprocessed-schema.js +2 -0
  66. package/dist/es5/lib/types/gltf-postprocessed-schema.js.map +1 -0
  67. package/dist/es5/lib/types/gltf-types.js +2 -0
  68. package/dist/es5/lib/types/gltf-types.js.map +1 -0
  69. package/dist/es5/lib/utils/assert.js +12 -0
  70. package/dist/es5/lib/utils/assert.js.map +1 -0
  71. package/dist/es5/lib/utils/version.js +9 -0
  72. package/dist/es5/lib/utils/version.js.map +1 -0
  73. package/dist/es5/meshopt/meshopt-decoder.js +215 -0
  74. package/dist/es5/meshopt/meshopt-decoder.js.map +1 -0
  75. package/dist/es5/webp/webp.js +83 -0
  76. package/dist/es5/webp/webp.js.map +1 -0
  77. package/dist/esm/bundle.js +4 -0
  78. package/dist/esm/bundle.js.map +1 -0
  79. package/dist/esm/glb-loader.js +31 -0
  80. package/dist/esm/glb-loader.js.map +1 -0
  81. package/dist/esm/glb-writer.js +27 -0
  82. package/dist/esm/glb-writer.js.map +1 -0
  83. package/dist/esm/gltf-loader.js +51 -0
  84. package/dist/esm/gltf-loader.js.map +1 -0
  85. package/dist/esm/gltf-writer.js +28 -0
  86. package/dist/esm/gltf-writer.js.map +1 -0
  87. package/dist/esm/index.js +7 -0
  88. package/dist/esm/index.js.map +1 -0
  89. package/dist/esm/lib/api/gltf-extensions.js +35 -0
  90. package/dist/esm/lib/api/gltf-extensions.js.map +1 -0
  91. package/dist/esm/lib/api/gltf-scenegraph.js +441 -0
  92. package/dist/esm/lib/api/gltf-scenegraph.js.map +1 -0
  93. package/dist/esm/lib/api/normalize-gltf-v1.js +204 -0
  94. package/dist/esm/lib/api/normalize-gltf-v1.js.map +1 -0
  95. package/dist/esm/lib/api/post-process-gltf.js +341 -0
  96. package/dist/esm/lib/api/post-process-gltf.js.map +1 -0
  97. package/dist/esm/lib/encoders/encode-glb.js +54 -0
  98. package/dist/esm/lib/encoders/encode-glb.js.map +1 -0
  99. package/dist/esm/lib/encoders/encode-gltf.js +14 -0
  100. package/dist/esm/lib/encoders/encode-gltf.js.map +1 -0
  101. package/dist/esm/lib/extensions/EXT_meshopt_compression.js +42 -0
  102. package/dist/esm/lib/extensions/EXT_meshopt_compression.js.map +1 -0
  103. package/dist/esm/lib/extensions/EXT_texture_webp.js +25 -0
  104. package/dist/esm/lib/extensions/EXT_texture_webp.js.map +1 -0
  105. package/dist/esm/lib/extensions/KHR_binary_gltf.js +21 -0
  106. package/dist/esm/lib/extensions/KHR_binary_gltf.js.map +1 -0
  107. package/dist/esm/lib/extensions/KHR_draco_mesh_compression.js +110 -0
  108. package/dist/esm/lib/extensions/KHR_draco_mesh_compression.js.map +1 -0
  109. package/dist/esm/lib/extensions/KHR_texture_basisu.js +18 -0
  110. package/dist/esm/lib/extensions/KHR_texture_basisu.js.map +1 -0
  111. package/dist/esm/lib/extensions/KHR_texture_transform.js +181 -0
  112. package/dist/esm/lib/extensions/KHR_texture_transform.js.map +1 -0
  113. package/dist/esm/lib/extensions/deprecated/EXT_feature_metadata.js +77 -0
  114. package/dist/esm/lib/extensions/deprecated/EXT_feature_metadata.js.map +1 -0
  115. package/dist/esm/lib/extensions/deprecated/KHR_lights_punctual.js +42 -0
  116. package/dist/esm/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -0
  117. package/dist/esm/lib/extensions/deprecated/KHR_materials_unlit.js +33 -0
  118. package/dist/esm/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -0
  119. package/dist/esm/lib/extensions/deprecated/KHR_techniques_webgl.js +61 -0
  120. package/dist/esm/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -0
  121. package/dist/esm/lib/gltf-utils/get-typed-array.js +16 -0
  122. package/dist/esm/lib/gltf-utils/get-typed-array.js.map +1 -0
  123. package/dist/esm/lib/gltf-utils/gltf-attribute-utils.js +62 -0
  124. package/dist/esm/lib/gltf-utils/gltf-attribute-utils.js.map +1 -0
  125. package/dist/esm/lib/gltf-utils/gltf-constants.js +37 -0
  126. package/dist/esm/lib/gltf-utils/gltf-constants.js.map +1 -0
  127. package/dist/esm/lib/gltf-utils/gltf-utils.js +54 -0
  128. package/dist/esm/lib/gltf-utils/gltf-utils.js.map +1 -0
  129. package/dist/esm/lib/gltf-utils/resolve-url.js +12 -0
  130. package/dist/esm/lib/gltf-utils/resolve-url.js.map +1 -0
  131. package/dist/esm/lib/parsers/parse-glb.js +114 -0
  132. package/dist/esm/lib/parsers/parse-glb.js.map +1 -0
  133. package/dist/esm/lib/parsers/parse-gltf.js +156 -0
  134. package/dist/esm/lib/parsers/parse-gltf.js.map +1 -0
  135. package/dist/esm/lib/types/glb-types.js +2 -0
  136. package/dist/esm/lib/types/glb-types.js.map +1 -0
  137. package/dist/esm/lib/types/gltf-json-schema.js +2 -0
  138. package/dist/esm/lib/types/gltf-json-schema.js.map +1 -0
  139. package/dist/esm/lib/types/gltf-postprocessed-schema.js +2 -0
  140. package/dist/esm/lib/types/gltf-postprocessed-schema.js.map +1 -0
  141. package/dist/esm/lib/types/gltf-types.js +2 -0
  142. package/dist/esm/lib/types/gltf-types.js.map +1 -0
  143. package/dist/esm/lib/utils/assert.js +6 -0
  144. package/dist/esm/lib/utils/assert.js.map +1 -0
  145. package/dist/esm/lib/utils/version.js +2 -0
  146. package/dist/esm/lib/utils/version.js.map +1 -0
  147. package/dist/esm/meshopt/meshopt-decoder.js +91 -0
  148. package/dist/esm/meshopt/meshopt-decoder.js.map +1 -0
  149. package/dist/esm/meshopt/meshopt-encoder.ts.disabled +409 -0
  150. package/dist/esm/webp/webp.js +25 -0
  151. package/dist/esm/webp/webp.js.map +1 -0
  152. package/dist/glb-loader.d.ts +3 -2
  153. package/dist/glb-loader.d.ts.map +1 -1
  154. package/dist/glb-loader.js +33 -28
  155. package/dist/glb-writer.d.ts +7 -16
  156. package/dist/glb-writer.d.ts.map +1 -1
  157. package/dist/glb-writer.js +34 -26
  158. package/dist/gltf-loader.d.ts +3 -2
  159. package/dist/gltf-loader.d.ts.map +1 -1
  160. package/dist/gltf-loader.js +46 -43
  161. package/dist/gltf-writer.d.ts +2 -2
  162. package/dist/gltf-writer.d.ts.map +1 -1
  163. package/dist/gltf-writer.js +29 -26
  164. package/dist/index.d.ts +2 -1
  165. package/dist/index.d.ts.map +1 -1
  166. package/dist/index.js +21 -7
  167. package/dist/lib/api/gltf-extensions.d.ts +6 -1
  168. package/dist/lib/api/gltf-extensions.d.ts.map +1 -1
  169. package/dist/lib/api/gltf-extensions.js +79 -31
  170. package/dist/lib/api/gltf-scenegraph.d.ts +5 -11
  171. package/dist/lib/api/gltf-scenegraph.d.ts.map +1 -1
  172. package/dist/lib/api/gltf-scenegraph.js +563 -512
  173. package/dist/lib/api/normalize-gltf-v1.d.ts.map +1 -1
  174. package/dist/lib/api/normalize-gltf-v1.js +278 -229
  175. package/dist/lib/api/post-process-gltf.js +324 -376
  176. package/dist/lib/encoders/encode-glb.d.ts +2 -1
  177. package/dist/lib/encoders/encode-glb.d.ts.map +1 -1
  178. package/dist/lib/encoders/encode-glb.js +56 -58
  179. package/dist/lib/encoders/encode-gltf.d.ts +18 -0
  180. package/dist/lib/encoders/encode-gltf.d.ts.map +1 -1
  181. package/dist/lib/encoders/encode-gltf.js +33 -12
  182. package/dist/lib/extensions/EXT_meshopt_compression.d.ts +0 -3
  183. package/dist/lib/extensions/EXT_meshopt_compression.d.ts.map +1 -1
  184. package/dist/lib/extensions/EXT_meshopt_compression.js +39 -50
  185. package/dist/lib/extensions/EXT_texture_webp.d.ts.map +1 -1
  186. package/dist/lib/extensions/EXT_texture_webp.js +35 -28
  187. package/dist/lib/extensions/KHR_binary_gltf.js +39 -23
  188. package/dist/lib/extensions/KHR_draco_mesh_compression.js +126 -111
  189. package/dist/lib/extensions/KHR_texture_basisu.d.ts.map +1 -1
  190. package/dist/lib/extensions/KHR_texture_basisu.js +29 -19
  191. package/dist/lib/extensions/KHR_texture_transform.d.ts +13 -0
  192. package/dist/lib/extensions/KHR_texture_transform.d.ts.map +1 -0
  193. package/dist/lib/extensions/KHR_texture_transform.js +230 -0
  194. package/dist/lib/extensions/deprecated/EXT_feature_metadata.d.ts +6 -0
  195. package/dist/lib/extensions/deprecated/EXT_feature_metadata.d.ts.map +1 -0
  196. package/dist/lib/extensions/deprecated/EXT_feature_metadata.js +118 -0
  197. package/dist/lib/extensions/deprecated/KHR_lights_punctual.js +57 -44
  198. package/dist/lib/extensions/deprecated/KHR_materials_unlit.js +42 -32
  199. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.d.ts.map +1 -1
  200. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.js +76 -62
  201. package/dist/lib/gltf-utils/get-typed-array.js +39 -14
  202. package/dist/lib/gltf-utils/gltf-attribute-utils.js +65 -65
  203. package/dist/lib/gltf-utils/gltf-constants.d.ts +17 -0
  204. package/dist/lib/gltf-utils/gltf-constants.d.ts.map +1 -1
  205. package/dist/lib/gltf-utils/gltf-constants.js +38 -32
  206. package/dist/lib/gltf-utils/gltf-utils.js +52 -45
  207. package/dist/lib/gltf-utils/resolve-url.js +17 -15
  208. package/dist/lib/parsers/parse-glb.d.ts +1 -1
  209. package/dist/lib/parsers/parse-glb.d.ts.map +1 -1
  210. package/dist/lib/parsers/parse-glb.js +120 -107
  211. package/dist/lib/parsers/parse-gltf.d.ts +2 -2
  212. package/dist/lib/parsers/parse-gltf.d.ts.map +1 -1
  213. package/dist/lib/parsers/parse-gltf.js +187 -154
  214. package/dist/lib/types/glb-types.d.ts +3 -3
  215. package/dist/lib/types/glb-types.d.ts.map +1 -1
  216. package/dist/lib/types/glb-types.js +2 -2
  217. package/dist/lib/types/gltf-json-schema.d.ts +396 -11
  218. package/dist/lib/types/gltf-json-schema.d.ts.map +1 -1
  219. package/dist/lib/types/gltf-json-schema.js +4 -2
  220. package/dist/lib/types/gltf-postprocessed-schema.d.ts +10 -10
  221. package/dist/lib/types/gltf-postprocessed-schema.d.ts.map +1 -1
  222. package/dist/lib/types/gltf-postprocessed-schema.js +4 -2
  223. package/dist/lib/types/gltf-types.d.ts +8 -5
  224. package/dist/lib/types/gltf-types.d.ts.map +1 -1
  225. package/dist/lib/types/gltf-types.js +3 -2
  226. package/dist/lib/utils/assert.js +11 -5
  227. package/dist/lib/utils/version.js +7 -2
  228. package/dist/meshopt/meshopt-decoder.js +97 -82
  229. package/dist/webp/webp.d.ts +1 -1
  230. package/dist/webp/webp.d.ts.map +1 -1
  231. package/dist/webp/webp.js +32 -23
  232. package/package.json +9 -8
  233. package/src/glb-loader.ts +1 -1
  234. package/src/glb-writer.ts +9 -3
  235. package/src/gltf-writer.ts +2 -2
  236. package/src/index.ts +10 -1
  237. package/src/lib/api/gltf-extensions.ts +13 -2
  238. package/src/lib/api/gltf-scenegraph.ts +21 -12
  239. package/src/lib/api/normalize-gltf-v1.ts +2 -1
  240. package/src/lib/encoders/encode-glb.ts +8 -1
  241. package/src/lib/encoders/encode-gltf.ts +18 -9
  242. package/src/lib/extensions/EXT_meshopt_compression.ts +12 -19
  243. package/src/lib/extensions/EXT_texture_webp.ts +3 -2
  244. package/src/lib/extensions/KHR_binary_gltf.ts +1 -1
  245. package/src/lib/extensions/KHR_draco_mesh_compression.ts +1 -1
  246. package/src/lib/extensions/KHR_texture_basisu.ts +1 -0
  247. package/src/lib/extensions/KHR_texture_transform.ts +305 -0
  248. package/src/lib/extensions/deprecated/EXT_feature_metadata.ts +163 -0
  249. package/src/lib/extensions/deprecated/KHR_materials_unlit.ts +3 -3
  250. package/src/lib/extensions/deprecated/KHR_techniques_webgl.ts +1 -0
  251. package/src/lib/gltf-utils/gltf-constants.ts +2 -2
  252. package/src/lib/parsers/parse-gltf.ts +10 -1
  253. package/src/lib/types/glb-types.ts +1 -1
  254. package/src/lib/types/gltf-json-schema.ts +434 -5
  255. package/src/lib/types/gltf-postprocessed-schema.ts +9 -9
  256. package/src/lib/types/gltf-types.ts +24 -3
  257. package/dist/bundle.js.map +0 -1
  258. package/dist/glb-loader.js.map +0 -1
  259. package/dist/glb-writer.js.map +0 -1
  260. package/dist/gltf-loader.js.map +0 -1
  261. package/dist/gltf-writer.js.map +0 -1
  262. package/dist/index.js.map +0 -1
  263. package/dist/lib/api/gltf-extensions.js.map +0 -1
  264. package/dist/lib/api/gltf-scenegraph.js.map +0 -1
  265. package/dist/lib/api/normalize-gltf-v1.js.map +0 -1
  266. package/dist/lib/api/post-process-gltf.js.map +0 -1
  267. package/dist/lib/encoders/encode-glb.js.map +0 -1
  268. package/dist/lib/encoders/encode-gltf.js.map +0 -1
  269. package/dist/lib/extensions/EXT_meshopt_compression.js.map +0 -1
  270. package/dist/lib/extensions/EXT_texture_webp.js.map +0 -1
  271. package/dist/lib/extensions/KHR_binary_gltf.js.map +0 -1
  272. package/dist/lib/extensions/KHR_draco_mesh_compression.js.map +0 -1
  273. package/dist/lib/extensions/KHR_texture_basisu.js.map +0 -1
  274. package/dist/lib/extensions/deprecated/KHR_lights_punctual.js.map +0 -1
  275. package/dist/lib/extensions/deprecated/KHR_materials_unlit.js.map +0 -1
  276. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.js.map +0 -1
  277. package/dist/lib/gltf-utils/get-typed-array.js.map +0 -1
  278. package/dist/lib/gltf-utils/gltf-attribute-utils.js.map +0 -1
  279. package/dist/lib/gltf-utils/gltf-constants.js.map +0 -1
  280. package/dist/lib/gltf-utils/gltf-utils.js.map +0 -1
  281. package/dist/lib/gltf-utils/resolve-url.js.map +0 -1
  282. package/dist/lib/parsers/parse-glb.js.map +0 -1
  283. package/dist/lib/parsers/parse-gltf.js.map +0 -1
  284. package/dist/lib/types/glb-types.js.map +0 -1
  285. package/dist/lib/types/gltf-json-schema.js.map +0 -1
  286. package/dist/lib/types/gltf-postprocessed-schema.js.map +0 -1
  287. package/dist/lib/types/gltf-types.js.map +0 -1
  288. package/dist/lib/utils/assert.js.map +0 -1
  289. package/dist/lib/utils/version.js.map +0 -1
  290. package/dist/meshopt/meshopt-decoder.js.map +0 -1
  291. package/dist/webp/webp.js.map +0 -1
  292. /package/dist/{meshopt → es5/meshopt}/meshopt-encoder.ts.disabled +0 -0
@@ -1,2 +1,4 @@
1
- export {};
2
- //# sourceMappingURL=gltf-postprocessed-schema.js.map
1
+ "use strict";
2
+ // Types forked from https://github.com/bwasty/gltf-loader-ts under MIT license
3
+ // Generated from official JSON schema using `npm run generate-interface` on 2018-02-24
4
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,8 +1,11 @@
1
- import type { GLTF, Accessor as GLTFAccessor, Buffer as GLTFBuffer, BufferView as GLTFBufferView, MeshPrimitive as GLTFMeshPrimitive, Mesh as GLTFMesh, Node as GLTFNode, Material as GLTFMaterial, Sampler as GLTFSampler, Scene as GLTFScene, Skin as GLTFSkin, Texture as GLTFTexture, Image as GLTFImage, GLTF_KHR_binary_glTF, GLTF_KHR_draco_mesh_compression, GLTF_KHR_texture_basisu, GLTF_EXT_meshopt_compression, GLTF_EXT_texture_webp } from './gltf-json-schema';
2
- import type { Image as GLTFImagePostprocessed } from './gltf-postprocessed-schema';
3
- export type { GLTF, GLTFAccessor, GLTFBuffer, GLTFBufferView, GLTFMeshPrimitive, GLTFMesh, GLTFNode, GLTFMaterial, GLTFSampler, GLTFScene, GLTFSkin, GLTFTexture, GLTFImage, GLTF_KHR_binary_glTF, GLTF_KHR_draco_mesh_compression, GLTF_KHR_texture_basisu, GLTF_EXT_meshopt_compression, GLTF_EXT_texture_webp, GLTFImagePostprocessed };
4
- export declare type GLTFObject = GLTFAccessor | GLTFBuffer | GLTFBufferView | GLTFMeshPrimitive | GLTFMesh | GLTFNode | GLTFMaterial | GLTFSampler | GLTFScene | GLTFSkin | GLTFTexture | GLTFImage;
5
- export declare type GLTFWithBuffers = {
1
+ import type { GLTF, Accessor as GLTFAccessor, Buffer as GLTFBuffer, BufferView as GLTFBufferView, MeshPrimitive as GLTFMeshPrimitive, Mesh as GLTFMesh, Node as GLTFNode, Material as GLTFMaterial, Sampler as GLTFSampler, Scene as GLTFScene, Skin as GLTFSkin, Texture as GLTFTexture, Image as GLTFImage, GLTF_KHR_binary_glTF, GLTF_KHR_draco_mesh_compression, GLTF_KHR_texture_basisu, GLTF_EXT_meshopt_compression, GLTF_EXT_texture_webp, GLTF_EXT_feature_metadata } from './gltf-json-schema';
2
+ import type { GLTF as GLTFPostprocessed, Accessor as GLTFAccessorPostprocessed, Image as GLTFImagePostprocessed, Mesh as GLTFMeshPostprocessed, MeshPrimitive as GLTFMeshPrimitivePostprocessed, Material as GLTFMaterialPostprocessed, Node as GLTFNodePostprocessed, Texture as GLTFTexturePostprocessed } from './gltf-postprocessed-schema';
3
+ export type { GLTF, GLTFAccessor, GLTFBuffer, GLTFBufferView, GLTFMeshPrimitive, GLTFMesh, GLTFNode, GLTFMaterial, GLTFSampler, GLTFScene, GLTFSkin, GLTFTexture, GLTFImage, GLTF_KHR_binary_glTF, GLTF_KHR_draco_mesh_compression, GLTF_KHR_texture_basisu, GLTF_EXT_meshopt_compression, GLTF_EXT_texture_webp, GLTFPostprocessed, GLTFAccessorPostprocessed, GLTFImagePostprocessed, GLTFNodePostprocessed, GLTFMeshPostprocessed, GLTFMeshPrimitivePostprocessed, GLTFMaterialPostprocessed, GLTFTexturePostprocessed, GLTF_EXT_feature_metadata };
4
+ export type GLTFObject = GLTFAccessor | GLTFBuffer | GLTFBufferView | GLTFMeshPrimitive | GLTFMesh | GLTFNode | GLTFMaterial | GLTFSampler | GLTFScene | GLTFSkin | GLTFTexture | GLTFImage;
5
+ /** GLTFLoader removes processed extensions from `extensionsUsed` and `extensionsUsed`
6
+ * `processedExtensions` is used to track those extensions
7
+ */
8
+ export type GLTFWithBuffers = {
6
9
  json: GLTF;
7
10
  buffers: any[];
8
11
  binary?: ArrayBuffer;
@@ -1 +1 @@
1
- {"version":3,"file":"gltf-types.d.ts","sourceRoot":"","sources":["../../../src/lib/types/gltf-types.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,IAAI,EACJ,QAAQ,IAAI,YAAY,EACxB,MAAM,IAAI,UAAU,EACpB,UAAU,IAAI,cAAc,EAC5B,aAAa,IAAI,iBAAiB,EAClC,IAAI,IAAI,QAAQ,EAChB,IAAI,IAAI,QAAQ,EAChB,QAAQ,IAAI,YAAY,EACxB,OAAO,IAAI,WAAW,EACtB,KAAK,IAAI,SAAS,EAClB,IAAI,IAAI,QAAQ,EAChB,OAAO,IAAI,WAAW,EACtB,KAAK,IAAI,SAAS,EAClB,oBAAoB,EACpB,+BAA+B,EAC/B,uBAAuB,EACvB,4BAA4B,EAC5B,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAC,KAAK,IAAI,sBAAsB,EAAC,MAAM,6BAA6B,CAAC;AAEjF,YAAY,EACV,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,SAAS,EACT,QAAQ,EACR,WAAW,EACX,SAAS,EACT,oBAAoB,EACpB,+BAA+B,EAC/B,uBAAuB,EACvB,4BAA4B,EAC5B,qBAAqB,EACrB,sBAAsB,EACvB,CAAC;AAEF,oBAAY,UAAU,GAClB,YAAY,GACZ,UAAU,GACV,cAAc,GACd,iBAAiB,GACjB,QAAQ,GACR,QAAQ,GACR,YAAY,GACZ,WAAW,GACX,SAAS,GACT,QAAQ,GACR,WAAW,GACX,SAAS,CAAC;AAEd,oBAAY,eAAe,GAAG;IAC5B,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;CAChB,CAAC"}
1
+ {"version":3,"file":"gltf-types.d.ts","sourceRoot":"","sources":["../../../src/lib/types/gltf-types.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,IAAI,EACJ,QAAQ,IAAI,YAAY,EACxB,MAAM,IAAI,UAAU,EACpB,UAAU,IAAI,cAAc,EAC5B,aAAa,IAAI,iBAAiB,EAClC,IAAI,IAAI,QAAQ,EAChB,IAAI,IAAI,QAAQ,EAChB,QAAQ,IAAI,YAAY,EACxB,OAAO,IAAI,WAAW,EACtB,KAAK,IAAI,SAAS,EAClB,IAAI,IAAI,QAAQ,EAChB,OAAO,IAAI,WAAW,EACtB,KAAK,IAAI,SAAS,EAClB,oBAAoB,EACpB,+BAA+B,EAC/B,uBAAuB,EACvB,4BAA4B,EAC5B,qBAAqB,EACrB,yBAAyB,EAC1B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EACV,IAAI,IAAI,iBAAiB,EACzB,QAAQ,IAAI,yBAAyB,EACrC,KAAK,IAAI,sBAAsB,EAC/B,IAAI,IAAI,qBAAqB,EAC7B,aAAa,IAAI,8BAA8B,EAC/C,QAAQ,IAAI,yBAAyB,EACrC,IAAI,IAAI,qBAAqB,EAC7B,OAAO,IAAI,wBAAwB,EACpC,MAAM,6BAA6B,CAAC;AAErC,YAAY,EACV,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,SAAS,EACT,QAAQ,EACR,WAAW,EACX,SAAS,EACT,oBAAoB,EACpB,+BAA+B,EAC/B,uBAAuB,EACvB,4BAA4B,EAC5B,qBAAqB,EACrB,iBAAiB,EACjB,yBAAyB,EACzB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,8BAA8B,EAC9B,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EAC1B,CAAC;AAEF,MAAM,MAAM,UAAU,GAClB,YAAY,GACZ,UAAU,GACV,cAAc,GACd,iBAAiB,GACjB,QAAQ,GACR,QAAQ,GACR,YAAY,GACZ,WAAW,GACX,SAAS,GACT,QAAQ,GACR,WAAW,GACX,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;CAChB,CAAC"}
@@ -1,2 +1,3 @@
1
- export {};
2
- //# sourceMappingURL=gltf-types.js.map
1
+ "use strict";
2
+ /* eslint-disable camelcase */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,6 +1,12 @@
1
- export function assert(condition, message) {
2
- if (!condition) {
3
- throw new Error(message || 'assert failed: gltf');
4
- }
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assert = void 0;
4
+ // Replacement for the external assert method to reduce bundle size
5
+ // Note: We don't use the second "message" argument in calling code,
6
+ // so no need to support it here
7
+ function assert(condition, message) {
8
+ if (!condition) {
9
+ throw new Error(message || 'assert failed: gltf');
10
+ }
5
11
  }
6
- //# sourceMappingURL=assert.js.map
12
+ exports.assert = assert;
@@ -1,2 +1,7 @@
1
- export const VERSION = typeof "4.0.0-alpha.5" !== 'undefined' ? "4.0.0-alpha.5" : 'latest';
2
- //# sourceMappingURL=version.js.map
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VERSION = void 0;
4
+ // Version constant cannot be imported, it needs to correspond to the build version of **this** module.
5
+ // __VERSION__ is injected by babel-plugin-version-inline
6
+ // @ts-ignore TS2304: Cannot find name '__VERSION__'.
7
+ exports.VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
@@ -1,103 +1,118 @@
1
+ "use strict";
2
+ // This file is part of meshoptimizer library and is distributed under the terms of MIT License.
3
+ // Copyright (C) 2016-2021, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com)
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.meshoptDecodeGltfBuffer = exports.meshoptDecodeIndexSequence = exports.meshoptDecodeIndexBuffer = exports.meshoptDecodeVertexBuffer = exports.isMeshoptSupported = void 0;
6
+ /* eslint-disable camelcase */
1
7
  const isWebAssemblySupported = typeof WebAssembly !== 'object';
8
+ // Built with clang version 11.0.0 (https://github.com/llvm/llvm-project.git 0160ad802e899c2922bc9b29564080c22eb0908c)
9
+ // Built from meshoptimizer 0.16
2
10
  const wasm_base = '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';
3
11
  const wasm_simd = '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';
4
- const detector = new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 4, 1, 96, 0, 0, 3, 3, 2, 0, 0, 5, 3, 1, 0, 1, 12, 1, 0, 10, 22, 2, 12, 0, 65, 0, 65, 0, 65, 0, 252, 10, 0, 0, 11, 7, 0, 65, 0, 253, 15, 26, 11]);
5
- const wasmpack = new Uint8Array([32, 0, 65, 253, 3, 1, 2, 34, 4, 106, 6, 5, 11, 8, 7, 20, 13, 33, 12, 16, 128, 9, 116, 64, 19, 113, 127, 15, 10, 21, 22, 14, 255, 66, 24, 54, 136, 107, 18, 23, 192, 26, 114, 118, 132, 17, 77, 101, 130, 144, 27, 87, 131, 44, 45, 74, 156, 154, 70, 167]);
12
+ // Uses bulk-memory and simd extensions
13
+ const detector = new Uint8Array([
14
+ 0, 97, 115, 109, 1, 0, 0, 0, 1, 4, 1, 96, 0, 0, 3, 3, 2, 0, 0, 5, 3, 1, 0, 1, 12, 1, 0, 10, 22, 2,
15
+ 12, 0, 65, 0, 65, 0, 65, 0, 252, 10, 0, 0, 11, 7, 0, 65, 0, 253, 15, 26, 11
16
+ ]);
17
+ // Used to unpack wasm
18
+ const wasmpack = new Uint8Array([
19
+ 32, 0, 65, 253, 3, 1, 2, 34, 4, 106, 6, 5, 11, 8, 7, 20, 13, 33, 12, 16, 128, 9, 116, 64, 19, 113,
20
+ 127, 15, 10, 21, 22, 14, 255, 66, 24, 54, 136, 107, 18, 23, 192, 26, 114, 118, 132, 17, 77, 101,
21
+ 130, 144, 27, 87, 131, 44, 45, 74, 156, 154, 70, 167
22
+ ]);
6
23
  const FILTERS = {
7
- 0: '',
8
- 1: 'meshopt_decodeFilterOct',
9
- 2: 'meshopt_decodeFilterQuat',
10
- 3: 'meshopt_decodeFilterExp',
11
- NONE: '',
12
- OCTAHEDRAL: 'meshopt_decodeFilterOct',
13
- QUATERNION: 'meshopt_decodeFilterQuat',
14
- EXPONENTIAL: 'meshopt_decodeFilterExp'
24
+ // legacy index-based enums for glTF
25
+ 0: '',
26
+ 1: 'meshopt_decodeFilterOct',
27
+ 2: 'meshopt_decodeFilterQuat',
28
+ 3: 'meshopt_decodeFilterExp',
29
+ // string-based enums for glTF
30
+ NONE: '',
31
+ OCTAHEDRAL: 'meshopt_decodeFilterOct',
32
+ QUATERNION: 'meshopt_decodeFilterQuat',
33
+ EXPONENTIAL: 'meshopt_decodeFilterExp'
15
34
  };
16
35
  const DECODERS = {
17
- 0: 'meshopt_decodeVertexBuffer',
18
- 1: 'meshopt_decodeIndexBuffer',
19
- 2: 'meshopt_decodeIndexSequence',
20
- ATTRIBUTES: 'meshopt_decodeVertexBuffer',
21
- TRIANGLES: 'meshopt_decodeIndexBuffer',
22
- INDICES: 'meshopt_decodeIndexSequence'
36
+ // legacy index-based enums for glTF
37
+ 0: 'meshopt_decodeVertexBuffer',
38
+ 1: 'meshopt_decodeIndexBuffer',
39
+ 2: 'meshopt_decodeIndexSequence',
40
+ // string-based enums for glTF
41
+ ATTRIBUTES: 'meshopt_decodeVertexBuffer',
42
+ TRIANGLES: 'meshopt_decodeIndexBuffer',
43
+ INDICES: 'meshopt_decodeIndexSequence'
23
44
  };
24
- export function isMeshoptSupported() {
25
- return isWebAssemblySupported;
45
+ function isMeshoptSupported() {
46
+ return isWebAssemblySupported;
26
47
  }
27
- export async function meshoptDecodeVertexBuffer(target, count, size, source, filter = 'NONE') {
28
- const instance = await loadWasmInstance();
29
- decode(instance, instance.exports.meshopt_decodeVertexBuffer, target, count, size, source, instance.exports[FILTERS[filter]]);
48
+ exports.isMeshoptSupported = isMeshoptSupported;
49
+ async function meshoptDecodeVertexBuffer(target, count, size, source, filter = 'NONE') {
50
+ const instance = await loadWasmInstance();
51
+ decode(instance, instance.exports.meshopt_decodeVertexBuffer, target, count, size, source, instance.exports[FILTERS[filter]]);
30
52
  }
31
- export async function meshoptDecodeIndexBuffer(target, count, size, source) {
32
- const instance = await loadWasmInstance();
33
- decode(instance, instance.exports.meshopt_decodeIndexBuffer, target, count, size, source);
53
+ exports.meshoptDecodeVertexBuffer = meshoptDecodeVertexBuffer;
54
+ async function meshoptDecodeIndexBuffer(target, count, size, source) {
55
+ const instance = await loadWasmInstance();
56
+ decode(instance, instance.exports.meshopt_decodeIndexBuffer, target, count, size, source);
34
57
  }
35
- export async function meshoptDecodeIndexSequence(target, count, size, source) {
36
- const instance = await loadWasmInstance();
37
- decode(instance, instance.exports.meshopt_decodeIndexSequence, target, count, size, source);
58
+ exports.meshoptDecodeIndexBuffer = meshoptDecodeIndexBuffer;
59
+ async function meshoptDecodeIndexSequence(target, count, size, source) {
60
+ const instance = await loadWasmInstance();
61
+ decode(instance, instance.exports.meshopt_decodeIndexSequence, target, count, size, source);
38
62
  }
39
- export async function meshoptDecodeGltfBuffer(target, count, size, source, mode, filter = 'NONE') {
40
- const instance = await loadWasmInstance();
41
- decode(instance, instance.exports[DECODERS[mode]], target, count, size, source, instance.exports[FILTERS[filter || 'NONE']]);
63
+ exports.meshoptDecodeIndexSequence = meshoptDecodeIndexSequence;
64
+ // eslint-disable-next-line max-params
65
+ async function meshoptDecodeGltfBuffer(target, count, size, source, mode, filter = 'NONE') {
66
+ const instance = await loadWasmInstance();
67
+ decode(instance, instance.exports[DECODERS[mode]], target, count, size, source, instance.exports[FILTERS[filter || 'NONE']]);
42
68
  }
69
+ exports.meshoptDecodeGltfBuffer = meshoptDecodeGltfBuffer;
43
70
  let wasmPromise;
44
-
45
71
  async function loadWasmInstance() {
46
- if (!wasmPromise) {
47
- wasmPromise = loadWasmModule();
48
- }
49
-
50
- return wasmPromise;
72
+ // eslint-disable-next-line
73
+ if (!wasmPromise) {
74
+ wasmPromise = loadWasmModule();
75
+ }
76
+ return wasmPromise;
51
77
  }
52
-
53
78
  async function loadWasmModule() {
54
- let wasm = wasm_base;
55
-
56
- if (WebAssembly.validate(detector)) {
57
- wasm = wasm_simd;
58
- console.log('Warning: meshopt_decoder is using experimental SIMD support');
59
- }
60
-
61
- const result = await WebAssembly.instantiate(unpack(wasm), {});
62
- await result.instance.exports.__wasm_call_ctors();
63
- return result.instance;
79
+ let wasm = wasm_base;
80
+ if (WebAssembly.validate(detector)) {
81
+ wasm = wasm_simd;
82
+ // eslint-disable-next-line no-console
83
+ console.log('Warning: meshopt_decoder is using experimental SIMD support');
84
+ }
85
+ const result = await WebAssembly.instantiate(unpack(wasm), {});
86
+ await result.instance.exports.__wasm_call_ctors();
87
+ return result.instance;
64
88
  }
65
-
66
89
  function unpack(data) {
67
- const result = new Uint8Array(data.length);
68
-
69
- for (let i = 0; i < data.length; ++i) {
70
- const ch = data.charCodeAt(i);
71
- result[i] = ch > 96 ? ch - 71 : ch > 64 ? ch - 65 : ch > 47 ? ch + 4 : ch > 46 ? 63 : 62;
72
- }
73
-
74
- let write = 0;
75
-
76
- for (let i = 0; i < data.length; ++i) {
77
- result[write++] = result[i] < 60 ? wasmpack[result[i]] : (result[i] - 60) * 64 + result[++i];
78
- }
79
-
80
- return result.buffer.slice(0, write);
90
+ const result = new Uint8Array(data.length);
91
+ for (let i = 0; i < data.length; ++i) {
92
+ const ch = data.charCodeAt(i);
93
+ result[i] = ch > 96 ? ch - 71 : ch > 64 ? ch - 65 : ch > 47 ? ch + 4 : ch > 46 ? 63 : 62;
94
+ }
95
+ let write = 0;
96
+ for (let i = 0; i < data.length; ++i) {
97
+ result[write++] = result[i] < 60 ? wasmpack[result[i]] : (result[i] - 60) * 64 + result[++i];
98
+ }
99
+ return result.buffer.slice(0, write);
81
100
  }
82
-
101
+ // eslint-disable-next-line max-params
83
102
  function decode(instance, fun, target, count, size, source, filter) {
84
- const sbrk = instance.exports.sbrk;
85
- const count4 = count + 3 & ~3;
86
- const tp = sbrk(count4 * size);
87
- const sp = sbrk(source.length);
88
- const heap = new Uint8Array(instance.exports.memory.buffer);
89
- heap.set(source, sp);
90
- const res = fun(tp, count, size, sp, source.length);
91
-
92
- if (res === 0 && filter) {
93
- filter(tp, count4, size);
94
- }
95
-
96
- target.set(heap.subarray(tp, tp + count * size));
97
- sbrk(tp - sbrk(0));
98
-
99
- if (res !== 0) {
100
- throw new Error("Malformed buffer data: ".concat(res));
101
- }
103
+ const sbrk = instance.exports.sbrk;
104
+ const count4 = (count + 3) & ~3; // pad for SIMD filter
105
+ const tp = sbrk(count4 * size);
106
+ const sp = sbrk(source.length);
107
+ const heap = new Uint8Array(instance.exports.memory.buffer);
108
+ heap.set(source, sp);
109
+ const res = fun(tp, count, size, sp, source.length);
110
+ if (res === 0 && filter) {
111
+ filter(tp, count4, size);
112
+ }
113
+ target.set(heap.subarray(tp, tp + count * size));
114
+ sbrk(tp - sbrk(0));
115
+ if (res !== 0) {
116
+ throw new Error(`Malformed buffer data: ${res}`);
117
+ }
102
118
  }
103
- //# sourceMappingURL=meshopt-decoder.js.map
@@ -1,4 +1,4 @@
1
- export declare type WebPFeature = 'lossy' | 'lossless' | 'alpha' | 'animation';
1
+ export type WebPFeature = 'lossy' | 'lossless' | 'alpha' | 'animation';
2
2
  /**
3
3
  * Checks if WebP is supported
4
4
  * @param features Array, can include 'lossy', 'lossless', 'alpha' or 'animation'
@@ -1 +1 @@
1
- {"version":3,"file":"webp.d.ts","sourceRoot":"","sources":["../../src/webp/webp.ts"],"names":[],"mappings":"AASA,oBAAY,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,WAAW,CAAC;AAIvE;;;GAGG;AACH,wBAAsB,eAAe,CAAC,QAAQ,GAAE,WAAW,EAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAI/F"}
1
+ {"version":3,"file":"webp.d.ts","sourceRoot":"","sources":["../../src/webp/webp.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,WAAW,CAAC;AAIvE;;;GAGG;AACH,wBAAsB,eAAe,CAAC,QAAQ,GAAE,WAAW,EAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAI/F"}
package/dist/webp/webp.js CHANGED
@@ -1,29 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isWebPSupported = void 0;
1
4
  const WEBP_TEST_IMAGES = {
2
- lossy: 'UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA',
3
- lossless: 'UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA==',
4
- alpha: 'UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA==',
5
- animation: 'UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA'
5
+ lossy: 'UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA',
6
+ lossless: 'UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA==',
7
+ alpha: 'UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA==',
8
+ animation: 'UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA'
6
9
  };
7
10
  const WEBP_FEATURES = ['lossy', 'lossless', 'alpha', 'animation'];
8
- export async function isWebPSupported(features = WEBP_FEATURES) {
9
- const promises = features.map(feature => checkWebPFeature(feature));
10
- const statuses = await Promise.all(promises);
11
- return statuses.every(_ => _);
11
+ /**
12
+ * Checks if WebP is supported
13
+ * @param features Array, can include 'lossy', 'lossless', 'alpha' or 'animation'
14
+ */
15
+ async function isWebPSupported(features = WEBP_FEATURES) {
16
+ const promises = features.map((feature) => checkWebPFeature(feature));
17
+ const statuses = await Promise.all(promises);
18
+ return statuses.every((_) => _);
12
19
  }
13
-
20
+ exports.isWebPSupported = isWebPSupported;
21
+ /**
22
+ * Checks if a specific WebP feature is supported
23
+ * @param feature 'feature' can be one of 'lossy', 'lossless', 'alpha' or 'animation'.
24
+ *
25
+ * Based on Google's official recommended checks
26
+ * @see https://developers.google.com/speed/webp/faq#how_can_i_detect_browser_support_for_webp
27
+ */
14
28
  async function checkWebPFeature(feature) {
15
- if (typeof Image === 'undefined') {
16
- return false;
17
- }
18
-
19
- return await new Promise((resolve, reject) => {
20
- const img = new Image();
21
-
22
- img.onload = () => resolve(img.width > 0 && img.height > 0);
23
-
24
- img.onerror = () => resolve(false);
25
-
26
- img.src = "data:image/webp;base64,".concat(WEBP_TEST_IMAGES[feature]);
27
- });
29
+ if (typeof Image === 'undefined') {
30
+ return false;
31
+ }
32
+ return await new Promise((resolve, reject) => {
33
+ const img = new Image();
34
+ img.onload = () => resolve(img.width > 0 && img.height > 0);
35
+ img.onerror = () => resolve(false);
36
+ img.src = `data:image/webp;base64,${WEBP_TEST_IMAGES[feature]}`;
37
+ });
28
38
  }
29
- //# sourceMappingURL=webp.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/gltf",
3
- "version": "4.0.0-alpha.5",
3
+ "version": "4.0.0-alpha.6",
4
4
  "description": "Framework-independent loader for the glTF format",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -20,8 +20,8 @@
20
20
  "glTF"
21
21
  ],
22
22
  "types": "dist/index.d.ts",
23
- "main": "dist/index.js",
24
- "module": "dist/index.js",
23
+ "main": "dist/es5/index.js",
24
+ "module": "dist/esm/index.js",
25
25
  "sideEffects": false,
26
26
  "files": [
27
27
  "src",
@@ -34,10 +34,11 @@
34
34
  "build-bundle": "esbuild src/bundle.ts --bundle --outfile=dist/dist.min.js"
35
35
  },
36
36
  "dependencies": {
37
- "@loaders.gl/draco": "4.0.0-alpha.5",
38
- "@loaders.gl/images": "4.0.0-alpha.5",
39
- "@loaders.gl/loader-utils": "4.0.0-alpha.5",
40
- "@loaders.gl/textures": "4.0.0-alpha.5"
37
+ "@loaders.gl/draco": "4.0.0-alpha.6",
38
+ "@loaders.gl/images": "4.0.0-alpha.6",
39
+ "@loaders.gl/loader-utils": "4.0.0-alpha.6",
40
+ "@loaders.gl/textures": "4.0.0-alpha.6",
41
+ "@math.gl/core": "^3.5.1"
41
42
  },
42
- "gitHead": "7a71a54bdf1ddf985cc3af3db90b82e7fa97d025"
43
+ "gitHead": "acc1985050dfaa0f1f0c066f8da5bce7454a046c"
43
44
  }
package/src/glb-loader.ts CHANGED
@@ -13,7 +13,7 @@ export type GLBLoaderOptions = LoaderOptions & {
13
13
  * GLB Loader -
14
14
  * GLB is the binary container format for GLTF
15
15
  */
16
- export const GLBLoader: LoaderWithParser = {
16
+ export const GLBLoader: LoaderWithParser<GLB, never, GLBLoaderOptions> = {
17
17
  name: 'GLB',
18
18
  id: 'glb',
19
19
  module: 'gltf',
package/src/glb-writer.ts CHANGED
@@ -1,12 +1,18 @@
1
- import type {Writer} from '@loaders.gl/loader-utils';
2
- import {VERSION} from './lib/utils/version';
1
+ import type {Writer, WriterOptions} from '@loaders.gl/loader-utils';
2
+ import type {GLB} from './lib/types/glb-types';
3
+ import type {GLBEncodeOptions} from './lib/encoders/encode-glb';
3
4
  import encodeGLBSync from './lib/encoders/encode-glb';
5
+ import {VERSION} from './lib/utils/version';
6
+
7
+ export type GLBWriterOptions = WriterOptions & {
8
+ glb?: GLBEncodeOptions;
9
+ };
4
10
 
5
11
  /**
6
12
  * GLB exporter
7
13
  * GLB is the binary container format for GLTF
8
14
  */
9
- export const GLBWriter = {
15
+ export const GLBWriter: Writer<GLB, never, GLBWriterOptions> = {
10
16
  name: 'GLB',
11
17
  id: 'glb',
12
18
  module: 'gltf',
@@ -1,8 +1,8 @@
1
- import type {Writer} from '@loaders.gl/loader-utils';
1
+ import type {Writer, WriterOptions} from '@loaders.gl/loader-utils';
2
2
  import {VERSION} from './lib/utils/version';
3
3
  import {encodeGLTFSync} from './lib/encoders/encode-gltf';
4
4
 
5
- export type GLTFWriterOptions = {
5
+ export type GLTFWriterOptions = WriterOptions & {
6
6
  gltf?: {};
7
7
  byteOffset?: number;
8
8
  };
package/src/index.ts CHANGED
@@ -14,13 +14,21 @@ export type {
14
14
  GLTFSkin,
15
15
  GLTFTexture,
16
16
  GLTFImage,
17
+ GLTFPostprocessed,
18
+ GLTFAccessorPostprocessed,
19
+ GLTFNodePostprocessed,
20
+ GLTFMaterialPostprocessed,
21
+ GLTFMeshPostprocessed,
22
+ GLTFMeshPrimitivePostprocessed,
17
23
  GLTFImagePostprocessed,
24
+ GLTFTexturePostprocessed,
18
25
  // The following extensions are handled by the GLTFLoader and removed from the parsed glTF (disable via options.gltf.excludeExtensions)
19
26
  GLTF_KHR_binary_glTF,
20
27
  GLTF_KHR_draco_mesh_compression,
21
28
  GLTF_KHR_texture_basisu,
22
29
  GLTF_EXT_meshopt_compression,
23
- GLTF_EXT_texture_webp
30
+ GLTF_EXT_texture_webp,
31
+ GLTF_EXT_feature_metadata
24
32
  } from './lib/types/gltf-types';
25
33
 
26
34
  // glTF loader/writer definition objects
@@ -36,3 +44,4 @@ export {default as GLTFScenegraph} from './lib/api/gltf-scenegraph';
36
44
  export {postProcessGLTF} from './lib/api/post-process-gltf';
37
45
  export type {Mesh} from './lib/types/gltf-json-schema';
38
46
  export type {GLTFObject} from './lib/types/gltf-types';
47
+ export type {Node, Accessor, Image} from './lib/types/gltf-postprocessed-schema';
@@ -10,18 +10,27 @@ import * as EXT_meshopt_compression from '../extensions/EXT_meshopt_compression'
10
10
  import * as EXT_texture_webp from '../extensions/EXT_texture_webp';
11
11
  import * as KHR_texture_basisu from '../extensions/KHR_texture_basisu';
12
12
  import * as KHR_draco_mesh_compression from '../extensions/KHR_draco_mesh_compression';
13
+ import * as KHR_texture_transform from '../extensions/KHR_texture_transform';
13
14
 
14
15
  // Deprecated. These should be handled by rendering library (e.g. luma.gl), not the loader.
15
16
  import * as KHR_lights_punctual from '../extensions/deprecated/KHR_lights_punctual';
16
17
  import * as KHR_materials_unlit from '../extensions/deprecated/KHR_materials_unlit';
17
18
  import * as KHR_techniques_webgl from '../extensions/deprecated/KHR_techniques_webgl';
19
+ import * as EXT_feature_metadata from '../extensions/deprecated/EXT_feature_metadata';
18
20
 
19
21
  // Vendor extensions
20
22
 
21
23
  type GLTFExtensionPlugin = {
22
24
  name: string;
23
25
  preprocess?: (gltfData: {json: GLTF}, options: GLTFLoaderOptions, context) => void;
24
- decode?: (gltfData: {json: GLTF}, options: GLTFLoaderOptions, context) => Promise<void>;
26
+ decode?: (
27
+ gltfData: {
28
+ json: GLTF;
29
+ buffers: {arrayBuffer: ArrayBuffer; byteOffset: number; byteLength: number}[];
30
+ },
31
+ options: GLTFLoaderOptions,
32
+ context
33
+ ) => Promise<void>;
25
34
  encode?: (gltfData: {json: GLTF}, options: GLTFLoaderOptions) => void;
26
35
  };
27
36
 
@@ -43,7 +52,9 @@ export const EXTENSIONS: GLTFExtensionPlugin[] = [
43
52
  KHR_draco_mesh_compression,
44
53
  KHR_lights_punctual,
45
54
  KHR_materials_unlit,
46
- KHR_techniques_webgl
55
+ KHR_techniques_webgl,
56
+ KHR_texture_transform,
57
+ EXT_feature_metadata
47
58
  ];
48
59
 
49
60
  /** Call before any resource loading starts */