@loaders.gl/gltf 4.2.0-alpha.4 → 4.2.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/dist/dist.dev.js +1049 -517
  2. package/dist/dist.min.js +9 -0
  3. package/dist/glb-loader.d.ts +2 -2
  4. package/dist/glb-loader.d.ts.map +1 -1
  5. package/dist/glb-loader.js +22 -21
  6. package/dist/glb-writer.d.ts +2 -2
  7. package/dist/glb-writer.d.ts.map +1 -1
  8. package/dist/glb-writer.js +27 -24
  9. package/dist/gltf-loader.d.ts +3 -3
  10. package/dist/gltf-loader.d.ts.map +1 -1
  11. package/dist/gltf-loader.js +31 -36
  12. package/dist/gltf-writer.js +24 -26
  13. package/dist/index.cjs +95 -284
  14. package/dist/index.cjs.map +7 -0
  15. package/dist/index.d.ts +17 -17
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +3 -1
  18. package/dist/lib/api/gltf-extensions.d.ts +2 -2
  19. package/dist/lib/api/gltf-extensions.d.ts.map +1 -1
  20. package/dist/lib/api/gltf-extensions.js +45 -22
  21. package/dist/lib/api/gltf-scenegraph.d.ts +2 -2
  22. package/dist/lib/api/gltf-scenegraph.d.ts.map +1 -1
  23. package/dist/lib/api/gltf-scenegraph.js +561 -438
  24. package/dist/lib/api/normalize-gltf-v1.js +250 -181
  25. package/dist/lib/api/post-process-gltf.d.ts +3 -3
  26. package/dist/lib/api/post-process-gltf.d.ts.map +1 -1
  27. package/dist/lib/api/post-process-gltf.js +375 -339
  28. package/dist/lib/encoders/encode-glb.js +62 -48
  29. package/dist/lib/encoders/encode-gltf.js +24 -10
  30. package/dist/lib/extensions/EXT_mesh_features.d.ts +2 -2
  31. package/dist/lib/extensions/EXT_mesh_features.d.ts.map +1 -1
  32. package/dist/lib/extensions/EXT_mesh_features.js +55 -33
  33. package/dist/lib/extensions/EXT_meshopt_compression.d.ts +2 -2
  34. package/dist/lib/extensions/EXT_meshopt_compression.d.ts.map +1 -1
  35. package/dist/lib/extensions/EXT_meshopt_compression.js +27 -31
  36. package/dist/lib/extensions/EXT_structural_metadata.d.ts +2 -2
  37. package/dist/lib/extensions/EXT_structural_metadata.d.ts.map +1 -1
  38. package/dist/lib/extensions/EXT_structural_metadata.js +434 -230
  39. package/dist/lib/extensions/EXT_texture_webp.d.ts +2 -2
  40. package/dist/lib/extensions/EXT_texture_webp.d.ts.map +1 -1
  41. package/dist/lib/extensions/EXT_texture_webp.js +24 -17
  42. package/dist/lib/extensions/KHR_binary_gltf.d.ts +1 -1
  43. package/dist/lib/extensions/KHR_binary_gltf.d.ts.map +1 -1
  44. package/dist/lib/extensions/KHR_binary_gltf.js +29 -15
  45. package/dist/lib/extensions/KHR_draco_mesh_compression.d.ts +2 -2
  46. package/dist/lib/extensions/KHR_draco_mesh_compression.d.ts.map +1 -1
  47. package/dist/lib/extensions/KHR_draco_mesh_compression.js +110 -87
  48. package/dist/lib/extensions/KHR_texture_basisu.d.ts +2 -2
  49. package/dist/lib/extensions/KHR_texture_basisu.d.ts.map +1 -1
  50. package/dist/lib/extensions/KHR_texture_basisu.js +19 -12
  51. package/dist/lib/extensions/KHR_texture_transform.d.ts +2 -2
  52. package/dist/lib/extensions/KHR_texture_transform.d.ts.map +1 -1
  53. package/dist/lib/extensions/KHR_texture_transform.js +194 -154
  54. package/dist/lib/extensions/deprecated/EXT_feature_metadata.d.ts +2 -2
  55. package/dist/lib/extensions/deprecated/EXT_feature_metadata.d.ts.map +1 -1
  56. package/dist/lib/extensions/deprecated/EXT_feature_metadata.js +263 -143
  57. package/dist/lib/extensions/deprecated/KHR_lights_punctual.d.ts +1 -1
  58. package/dist/lib/extensions/deprecated/KHR_lights_punctual.d.ts.map +1 -1
  59. package/dist/lib/extensions/deprecated/KHR_lights_punctual.js +44 -32
  60. package/dist/lib/extensions/deprecated/KHR_materials_unlit.d.ts +1 -1
  61. package/dist/lib/extensions/deprecated/KHR_materials_unlit.d.ts.map +1 -1
  62. package/dist/lib/extensions/deprecated/KHR_materials_unlit.js +30 -24
  63. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.d.ts +1 -1
  64. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.d.ts.map +1 -1
  65. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.js +65 -52
  66. package/dist/lib/extensions/utils/3d-tiles-utils.d.ts +2 -2
  67. package/dist/lib/extensions/utils/3d-tiles-utils.d.ts.map +1 -1
  68. package/dist/lib/extensions/utils/3d-tiles-utils.js +298 -181
  69. package/dist/lib/gltf-utils/get-typed-array.d.ts +1 -1
  70. package/dist/lib/gltf-utils/get-typed-array.d.ts.map +1 -1
  71. package/dist/lib/gltf-utils/get-typed-array.js +54 -42
  72. package/dist/lib/gltf-utils/gltf-attribute-utils.d.ts +1 -1
  73. package/dist/lib/gltf-utils/gltf-attribute-utils.d.ts.map +1 -1
  74. package/dist/lib/gltf-utils/gltf-attribute-utils.js +58 -52
  75. package/dist/lib/gltf-utils/gltf-constants.js +27 -27
  76. package/dist/lib/gltf-utils/gltf-utils.d.ts +1 -1
  77. package/dist/lib/gltf-utils/gltf-utils.d.ts.map +1 -1
  78. package/dist/lib/gltf-utils/gltf-utils.js +67 -60
  79. package/dist/lib/gltf-utils/resolve-url.js +12 -10
  80. package/dist/lib/parsers/parse-glb.d.ts +1 -1
  81. package/dist/lib/parsers/parse-glb.d.ts.map +1 -1
  82. package/dist/lib/parsers/parse-glb.js +132 -89
  83. package/dist/lib/parsers/parse-gltf.d.ts +3 -3
  84. package/dist/lib/parsers/parse-gltf.d.ts.map +1 -1
  85. package/dist/lib/parsers/parse-gltf.js +155 -126
  86. package/dist/lib/types/glb-types.js +0 -1
  87. package/dist/lib/types/gltf-ext-feature-metadata-schema.d.ts +1 -1
  88. package/dist/lib/types/gltf-ext-feature-metadata-schema.d.ts.map +1 -1
  89. package/dist/lib/types/gltf-ext-feature-metadata-schema.js +0 -1
  90. package/dist/lib/types/gltf-ext-mesh-features-schema.d.ts +1 -1
  91. package/dist/lib/types/gltf-ext-mesh-features-schema.d.ts.map +1 -1
  92. package/dist/lib/types/gltf-ext-mesh-features-schema.js +0 -1
  93. package/dist/lib/types/gltf-ext-structural-metadata-schema.d.ts +1 -1
  94. package/dist/lib/types/gltf-ext-structural-metadata-schema.d.ts.map +1 -1
  95. package/dist/lib/types/gltf-ext-structural-metadata-schema.js +0 -1
  96. package/dist/lib/types/gltf-json-schema.js +2 -1
  97. package/dist/lib/types/gltf-postprocessed-schema.js +2 -1
  98. package/dist/lib/types/gltf-types.d.ts +3 -3
  99. package/dist/lib/types/gltf-types.d.ts.map +1 -1
  100. package/dist/lib/types/gltf-types.js +1 -1
  101. package/dist/lib/utils/assert.js +6 -4
  102. package/dist/lib/utils/version.js +3 -1
  103. package/dist/meshopt/meshopt-decoder.js +86 -67
  104. package/dist/webp/webp.js +28 -19
  105. package/package.json +12 -8
  106. package/dist/glb-loader.js.map +0 -1
  107. package/dist/glb-writer.js.map +0 -1
  108. package/dist/gltf-loader.js.map +0 -1
  109. package/dist/gltf-writer.js.map +0 -1
  110. package/dist/index.js.map +0 -1
  111. package/dist/lib/api/gltf-extensions.js.map +0 -1
  112. package/dist/lib/api/gltf-scenegraph.js.map +0 -1
  113. package/dist/lib/api/normalize-gltf-v1.js.map +0 -1
  114. package/dist/lib/api/post-process-gltf.js.map +0 -1
  115. package/dist/lib/encoders/encode-glb.js.map +0 -1
  116. package/dist/lib/encoders/encode-gltf.js.map +0 -1
  117. package/dist/lib/extensions/EXT_mesh_features.js.map +0 -1
  118. package/dist/lib/extensions/EXT_meshopt_compression.js.map +0 -1
  119. package/dist/lib/extensions/EXT_structural_metadata.js.map +0 -1
  120. package/dist/lib/extensions/EXT_texture_webp.js.map +0 -1
  121. package/dist/lib/extensions/KHR_binary_gltf.js.map +0 -1
  122. package/dist/lib/extensions/KHR_draco_mesh_compression.js.map +0 -1
  123. package/dist/lib/extensions/KHR_texture_basisu.js.map +0 -1
  124. package/dist/lib/extensions/KHR_texture_transform.js.map +0 -1
  125. package/dist/lib/extensions/deprecated/EXT_feature_metadata.js.map +0 -1
  126. package/dist/lib/extensions/deprecated/KHR_lights_punctual.js.map +0 -1
  127. package/dist/lib/extensions/deprecated/KHR_materials_unlit.js.map +0 -1
  128. package/dist/lib/extensions/deprecated/KHR_techniques_webgl.js.map +0 -1
  129. package/dist/lib/extensions/utils/3d-tiles-utils.js.map +0 -1
  130. package/dist/lib/gltf-utils/get-typed-array.js.map +0 -1
  131. package/dist/lib/gltf-utils/gltf-attribute-utils.js.map +0 -1
  132. package/dist/lib/gltf-utils/gltf-constants.js.map +0 -1
  133. package/dist/lib/gltf-utils/gltf-utils.js.map +0 -1
  134. package/dist/lib/gltf-utils/resolve-url.js.map +0 -1
  135. package/dist/lib/parsers/parse-glb.js.map +0 -1
  136. package/dist/lib/parsers/parse-gltf.js.map +0 -1
  137. package/dist/lib/types/glb-types.js.map +0 -1
  138. package/dist/lib/types/gltf-ext-feature-metadata-schema.js.map +0 -1
  139. package/dist/lib/types/gltf-ext-mesh-features-schema.js.map +0 -1
  140. package/dist/lib/types/gltf-ext-structural-metadata-schema.js.map +0 -1
  141. package/dist/lib/types/gltf-json-schema.js.map +0 -1
  142. package/dist/lib/types/gltf-postprocessed-schema.js.map +0 -1
  143. package/dist/lib/types/gltf-types.js.map +0 -1
  144. package/dist/lib/utils/assert.js.map +0 -1
  145. package/dist/lib/utils/version.js.map +0 -1
  146. package/dist/meshopt/meshopt-decoder.js.map +0 -1
  147. package/dist/meshopt/meshopt-encoder.ts.disabled +0 -409
  148. package/dist/webp/webp.js.map +0 -1
@@ -1,409 +0,0 @@
1
- // This file is part of gltfpack and is distributed under the terms of MIT License.
2
-
3
- /**
4
- * Initialize the library with the Wasm module (library.wasm)
5
- *
6
- * @param wasm Promise with contents of library.wasm
7
- *
8
- * Note: this is called automatically in node.js
9
- */
10
- function init(wasm) {
11
- if (ready) {
12
- throw new Error("init must be called once");
13
- }
14
-
15
- ready = Promise.resolve(wasm)
16
- .then(function (buffer) {
17
- return WebAssembly.instantiate(buffer, { wasi_snapshot_preview1: wasi });
18
- })
19
- .then(function (result) {
20
- instance = result.instance;
21
- instance.exports.__wasm_call_ctors();
22
- });
23
- }
24
-
25
- /**
26
- * Pack the requested glTF data using the requested command line and access interface.
27
- *
28
- * @param args An array of strings with the input arguments; the paths for input and output files are interpreted by the interface
29
- * @param iface An interface to the system that will be used to service file requests and other system calls
30
- * @return Promise that indicates completion of the operation
31
- *
32
- * iface should contain the following methods:
33
- * read(path): Given a path, return a Uint8Array with the contents of that path
34
- * write(path, data): Write the specified Uint8Array to the provided path
35
- *
36
- * When texture compression is requested using external compressor such as toktx, iface must provide two additional methods:
37
- * execute(command): Run the requested command and return the return code
38
- * unlink(path): Remove the requested file (will be called with paths to temp files after texture compression finishes)
39
- */
40
- function pack(args, iface) {
41
- if (!ready) {
42
- throw new Error("init must be called before pack");
43
- }
44
-
45
- var argv = args.slice();
46
- argv.unshift("gltfpack");
47
-
48
- return ready.then(function () {
49
- var buf = uploadArgv(argv);
50
-
51
- output.position = 0;
52
- output.size = 0;
53
-
54
- interface = iface;
55
- var result = instance.exports.pack(argv.length, buf);
56
- interface = undefined;
57
-
58
- instance.exports.free(buf);
59
-
60
- var log = getString(output.data.buffer, 0, output.size);
61
-
62
- if (result != 0) {
63
- throw new Error(log);
64
- } else {
65
- return log;
66
- }
67
- });
68
- }
69
-
70
- // Library implementation (here be dragons)
71
- var WASI_EBADF = 8;
72
- var WASI_EINVAL = 28;
73
- var WASI_EIO = 29;
74
- var WASI_ENOSYS = 52;
75
-
76
- var ready;
77
- var instance;
78
- var interface;
79
-
80
- var output = { data: new Uint8Array(), position: 0, size: 0 };
81
- var fds = { 1: output, 2: output, 3: { mount: "/", path: "/" }, 4: { mount: "/gltfpack-$pwd", path: "" } };
82
-
83
- var wasi = {
84
- proc_exit: function(rval) {
85
- },
86
-
87
- fd_close: function(fd) {
88
- if (!fds[fd]) {
89
- return WASI_EBADF;
90
- }
91
-
92
- try {
93
- if (fds[fd].close) {
94
- fds[fd].close();
95
- }
96
- fds[fd] = undefined;
97
- return 0;
98
- } catch (err) {
99
- fds[fd] = undefined;
100
- return WASI_EIO;
101
- }
102
- },
103
-
104
- fd_fdstat_get: function(fd, stat) {
105
- if (!fds[fd]) {
106
- return WASI_EBADF;
107
- }
108
-
109
- var heap = getHeap();
110
- heap.setUint8(stat + 0, fds[fd].path !== undefined ? 3 : 4);
111
- heap.setUint16(stat + 2, 0, true);
112
- heap.setUint32(stat + 8, 0, true);
113
- heap.setUint32(stat + 12, 0, true);
114
- heap.setUint32(stat + 16, 0, true);
115
- heap.setUint32(stat + 20, 0, true);
116
- return 0;
117
- },
118
-
119
- path_open32: function(parent_fd, dirflags, path, path_len, oflags, fs_rights_base, fs_rights_inheriting, fdflags, opened_fd) {
120
- if (!fds[parent_fd] || fds[parent_fd].path === undefined) {
121
- return WASI_EBADF;
122
- }
123
-
124
- var heap = getHeap();
125
-
126
- var file = {};
127
- file.name = fds[parent_fd].path + getString(heap.buffer, path, path_len);
128
- file.position = 0;
129
-
130
- if (oflags & 1) {
131
- file.data = new Uint8Array(4096);
132
- file.size = 0;
133
- file.close = function () {
134
- interface.write(file.name, new Uint8Array(file.data.buffer, 0, file.size));
135
- };
136
- } else {
137
- try {
138
- file.data = interface.read(file.name);
139
-
140
- if (!file.data) {
141
- return WASI_EIO;
142
- }
143
-
144
- file.size = file.data.length;
145
- } catch (err) {
146
- return WASI_EIO;
147
- }
148
- }
149
-
150
- var fd = nextFd();
151
- fds[fd] = file;
152
-
153
- heap.setUint32(opened_fd, fd, true);
154
- return 0;
155
- },
156
-
157
- path_unlink_file: function(parent_fd, path, path_len) {
158
- if (!fds[parent_fd] || fds[parent_fd].path === undefined) {
159
- return WASI_EBADF;
160
- }
161
-
162
- var heap = getHeap();
163
- var name = fds[parent_fd].path + getString(heap.buffer, path, path_len);
164
-
165
- try {
166
- interface.unlink(name);
167
- return 0;
168
- } catch (err) {
169
- return WASI_EIO;
170
- }
171
- },
172
-
173
- path_filestat_get: function(parent_fd, flags, path, path_len, buf) {
174
- if (!fds[parent_fd] || fds[parent_fd].path === undefined) {
175
- return WASI_EBADF;
176
- }
177
-
178
- var heap = getHeap();
179
- var name = getString(heap.buffer, path, path_len);
180
-
181
- var heap = getHeap();
182
- for (var i = 0; i < 64; ++i)
183
- heap.setUint8(buf + i, 0);
184
-
185
- heap.setUint8(buf + 16, name == "." ? 3 : 4);
186
- return 0;
187
- },
188
-
189
- fd_prestat_get: function(fd, buf) {
190
- if (!fds[fd] || fds[fd].path === undefined) {
191
- return WASI_EBADF;
192
- }
193
-
194
- var path_buf = stringBuffer(fds[fd].mount);
195
-
196
- var heap = getHeap();
197
- heap.setUint8(buf, 0);
198
- heap.setUint32(buf + 4, path_buf.length, true);
199
- return 0;
200
- },
201
-
202
- fd_prestat_dir_name: function(fd, path, path_len) {
203
- if (!fds[fd] || fds[fd].path === undefined) {
204
- return WASI_EBADF;
205
- }
206
-
207
- var path_buf = stringBuffer(fds[fd].mount);
208
-
209
- if (path_len != path_buf.length) {
210
- return WASI_EINVAL;
211
- }
212
-
213
- var heap = getHeap();
214
- new Uint8Array(heap.buffer).set(path_buf, path);
215
- return 0;
216
- },
217
-
218
- path_remove_directory: function(parent_fd, path, path_len) {
219
- return WASI_EINVAL;
220
- },
221
-
222
- fd_fdstat_set_flags: function(fd, flags) {
223
- return WASI_ENOSYS;
224
- },
225
-
226
- fd_seek32: function(fd, offset, whence, newoffset) {
227
- if (!fds[fd]) {
228
- return WASI_EBADF;
229
- }
230
-
231
- var newposition;
232
-
233
- switch (whence) {
234
- case 0:
235
- newposition = offset;
236
- break;
237
-
238
- case 1:
239
- newposition = fds[fd].position + offset;
240
- break;
241
-
242
- case 2:
243
- newposition = fds[fd].size;
244
- break;
245
-
246
- default:
247
- return WASI_EINVAL;
248
- }
249
-
250
- if (newposition > fds[fd].size) {
251
- return WASI_EINVAL;
252
- }
253
-
254
- fds[fd].position = newposition;
255
-
256
- var heap = getHeap();
257
- heap.setUint32(newoffset, newposition, true);
258
- return 0;
259
- },
260
-
261
- fd_read: function(fd, iovs, iovs_len, nread) {
262
- if (!fds[fd]) {
263
- return WASI_EBADF;
264
- }
265
-
266
- var heap = getHeap();
267
- var read = 0;
268
-
269
- for (var i = 0; i < iovs_len; ++i) {
270
- var buf = heap.getUint32(iovs + 8 * i + 0, true);
271
- var buf_len = heap.getUint32(iovs + 8 * i + 4, true);
272
-
273
- var readi = Math.min(fds[fd].size - fds[fd].position, buf_len);
274
-
275
- new Uint8Array(heap.buffer).set(fds[fd].data.subarray(fds[fd].position, fds[fd].position + readi), buf);
276
-
277
- fds[fd].position += readi;
278
- read += readi;
279
- }
280
-
281
- heap.setUint32(nread, read, true);
282
- return 0;
283
- },
284
-
285
- fd_write: function(fd, iovs, iovs_len, nwritten) {
286
- if (!fds[fd]) {
287
- return WASI_EBADF;
288
- }
289
-
290
- var heap = getHeap();
291
- var written = 0;
292
-
293
- for (var i = 0; i < iovs_len; ++i) {
294
- var buf = heap.getUint32(iovs + 8 * i + 0, true);
295
- var buf_len = heap.getUint32(iovs + 8 * i + 4, true);
296
-
297
- if (fds[fd].position + buf_len > fds[fd].data.length) {
298
- fds[fd].data = growArray(fds[fd].data, fds[fd].position + buf_len);
299
- }
300
-
301
- fds[fd].data.set(new Uint8Array(heap.buffer, buf, buf_len), fds[fd].position);
302
- fds[fd].position += buf_len;
303
- fds[fd].size = Math.max(fds[fd].position, fds[fd].size);
304
-
305
- written += buf_len;
306
- }
307
-
308
- heap.setUint32(nwritten, written, true);
309
- return 0;
310
- },
311
-
312
- path_readlink: function(fd, path, path_len, buf, buf_len, bufused) {
313
- if (fd !== -1) {
314
- return WASI_ENOSYS;
315
- }
316
-
317
- var heap = getHeap();
318
- var command = getString(heap.buffer, path, path_len);
319
-
320
- try {
321
- return interface.execute(command);
322
- } catch (err) {
323
- return WASI_ENOSYS;
324
- }
325
- },
326
- };
327
-
328
- function nextFd() {
329
- for (var i = 1; ; ++i) {
330
- if (fds[i] === undefined) {
331
- return i;
332
- }
333
- }
334
- }
335
-
336
- function getHeap() {
337
- return new DataView(instance.exports.memory.buffer);
338
- }
339
-
340
- function getString(buffer, offset, length) {
341
- return new TextDecoder().decode(new Uint8Array(buffer, offset, length));
342
- }
343
-
344
- function stringBuffer(string) {
345
- return new TextEncoder().encode(string);
346
- }
347
-
348
- function growArray(data, len) {
349
- var new_length = Math.max(1, data.length);
350
- while (new_length < len) {
351
- new_length *= 2;
352
- }
353
-
354
- var new_data = new Uint8Array(new_length);
355
- new_data.set(data);
356
-
357
- return new_data;
358
- }
359
-
360
- function uploadArgv(argv) {
361
- var buf_size = argv.length * 4;
362
- for (var i = 0; i < argv.length; ++i) {
363
- buf_size += stringBuffer(argv[i]).length + 1;
364
- }
365
-
366
- var buf = instance.exports.malloc(buf_size);
367
- var argp = buf + argv.length * 4;
368
-
369
- var heap = getHeap();
370
-
371
- for (var i = 0; i < argv.length; ++i) {
372
- var item = stringBuffer(argv[i]);
373
-
374
- heap.setUint32(buf + i * 4, argp, true);
375
- new Uint8Array(heap.buffer).set(item, argp);
376
- heap.setUint8(argp + item.length, 0);
377
-
378
- argp += item.length + 1;
379
- }
380
-
381
- return buf;
382
- }
383
-
384
- // Automatic initialization for node.js
385
- if (typeof window === 'undefined' && typeof process !== 'undefined' && process.release.name === 'node') {
386
- var fs = require('fs');
387
- var util = require('util');
388
-
389
- // Node versions before v12 don't support TextEncoder/TextDecoder natively, but util. provides compatible replacements
390
- if (typeof TextEncoder === 'undefined' && typeof TextDecoder === 'undefined') {
391
- TextEncoder = util.TextEncoder;
392
- TextDecoder = util.TextDecoder;
393
- }
394
-
395
- init(fs.readFileSync(__dirname + '/library.wasm'));
396
- }
397
-
398
- // UMD
399
- (function (root, factory) {
400
- if (typeof define === 'function' && define.amd) {
401
- define([], factory);
402
- } else if (typeof module === 'object' && module.exports) {
403
- module.exports = factory();
404
- } else {
405
- root.gltfpack = factory();
406
- }
407
- }(typeof self !== 'undefined' ? self : this, function () {
408
- return { init, pack };
409
- }));
@@ -1 +0,0 @@
1
- {"version":3,"file":"webp.js","names":["WEBP_TEST_IMAGES","lossy","lossless","alpha","animation","WEBP_FEATURES","isWebPSupported","features","arguments","length","undefined","promises","map","feature","checkWebPFeature","statuses","Promise","all","every","_","Image","resolve","reject","img","onload","width","height","onerror","src"],"sources":["../../src/webp/webp.ts"],"sourcesContent":["const WEBP_TEST_IMAGES = {\n lossy: 'UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA',\n lossless: 'UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA==',\n alpha:\n 'UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA==',\n animation:\n 'UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA'\n};\n\nexport type WebPFeature = 'lossy' | 'lossless' | 'alpha' | 'animation';\n\nconst WEBP_FEATURES: WebPFeature[] = ['lossy', 'lossless', 'alpha', 'animation'];\n\n/**\n * Checks if WebP is supported\n * @param features Array, can include 'lossy', 'lossless', 'alpha' or 'animation'\n */\nexport async function isWebPSupported(features: WebPFeature[] = WEBP_FEATURES): Promise<boolean> {\n const promises = features.map((feature) => checkWebPFeature(feature));\n const statuses = await Promise.all(promises);\n return statuses.every((_) => _);\n}\n\n/**\n * Checks if a specific WebP feature is supported\n * @param feature 'feature' can be one of 'lossy', 'lossless', 'alpha' or 'animation'.\n *\n * Based on Google's official recommended checks\n * @see https://developers.google.com/speed/webp/faq#how_can_i_detect_browser_support_for_webp\n */\nasync function checkWebPFeature(feature: WebPFeature): Promise<boolean> {\n if (typeof Image === 'undefined') {\n return false;\n }\n return await new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = () => resolve(img.width > 0 && img.height > 0);\n img.onerror = () => resolve(false);\n img.src = `data:image/webp;base64,${WEBP_TEST_IMAGES[feature]}`;\n });\n}\n"],"mappings":"AAAA,MAAMA,gBAAgB,GAAG;EACvBC,KAAK,EAAE,0DAA0D;EACjEC,QAAQ,EAAE,kDAAkD;EAC5DC,KAAK,EACH,kHAAkH;EACpHC,SAAS,EACP;AACJ,CAAC;AAID,MAAMC,aAA4B,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC;AAMhF,OAAO,eAAeC,eAAeA,CAAA,EAA4D;EAAA,IAA3DC,QAAuB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGH,aAAa;EAC3E,MAAMM,QAAQ,GAAGJ,QAAQ,CAACK,GAAG,CAAEC,OAAO,IAAKC,gBAAgB,CAACD,OAAO,CAAC,CAAC;EACrE,MAAME,QAAQ,GAAG,MAAMC,OAAO,CAACC,GAAG,CAACN,QAAQ,CAAC;EAC5C,OAAOI,QAAQ,CAACG,KAAK,CAAEC,CAAC,IAAKA,CAAC,CAAC;AACjC;AASA,eAAeL,gBAAgBA,CAACD,OAAoB,EAAoB;EACtE,IAAI,OAAOO,KAAK,KAAK,WAAW,EAAE;IAChC,OAAO,KAAK;EACd;EACA,OAAO,MAAM,IAAIJ,OAAO,CAAC,CAACK,OAAO,EAAEC,MAAM,KAAK;IAC5C,MAAMC,GAAG,GAAG,IAAIH,KAAK,CAAC,CAAC;IACvBG,GAAG,CAACC,MAAM,GAAG,MAAMH,OAAO,CAACE,GAAG,CAACE,KAAK,GAAG,CAAC,IAAIF,GAAG,CAACG,MAAM,GAAG,CAAC,CAAC;IAC3DH,GAAG,CAACI,OAAO,GAAG,MAAMN,OAAO,CAAC,KAAK,CAAC;IAClCE,GAAG,CAACK,GAAG,GAAI,0BAAyB5B,gBAAgB,CAACa,OAAO,CAAE,EAAC;EACjE,CAAC,CAAC;AACJ"}