@loaders.gl/draco 4.4.0-alpha.2 → 4.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dist.dev.js +3185 -2745
- package/dist/dist.min.js +6 -6
- package/dist/draco-arrow-loader.d.ts +1 -2
- package/dist/draco-arrow-loader.d.ts.map +1 -1
- package/dist/draco-arrow-loader.js +1 -0
- package/dist/draco-arrow-loader.js.map +1 -0
- package/dist/draco-format.js +1 -0
- package/dist/draco-format.js.map +1 -0
- package/dist/draco-loader.d.ts +4 -8
- package/dist/draco-loader.d.ts.map +1 -1
- package/dist/draco-loader.js +3 -2
- package/dist/draco-loader.js.map +1 -0
- package/dist/draco-worker-node.js +638 -9852
- package/dist/draco-worker-node.js.map +4 -4
- package/dist/draco-worker.js +108 -27
- package/dist/draco-worker.js.map +2 -2
- package/dist/draco-writer-worker-node.js +599 -9832
- package/dist/draco-writer-worker-node.js.map +4 -4
- package/dist/draco-writer-worker.js +70 -7
- package/dist/draco-writer-worker.js.map +2 -2
- package/dist/draco-writer.d.ts.map +1 -1
- package/dist/draco-writer.js +3 -1
- package/dist/draco-writer.js.map +1 -0
- package/dist/draco3d/draco3d-types.js +1 -0
- package/dist/draco3d/draco3d-types.js.map +1 -0
- package/dist/index.cjs +55 -12
- package/dist/index.cjs.map +4 -4
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/draco-builder.js +1 -0
- package/dist/lib/draco-builder.js.map +1 -0
- package/dist/lib/draco-module-loader.d.ts +7 -3
- package/dist/lib/draco-module-loader.d.ts.map +1 -1
- package/dist/lib/draco-module-loader.js +53 -10
- package/dist/lib/draco-module-loader.js.map +1 -0
- package/dist/lib/draco-parser.d.ts +2 -2
- package/dist/lib/draco-parser.js +1 -0
- package/dist/lib/draco-parser.js.map +1 -0
- package/dist/lib/draco-types.js +1 -0
- package/dist/lib/draco-types.js.map +1 -0
- package/dist/lib/utils/get-draco-schema.js +1 -0
- package/dist/lib/utils/get-draco-schema.js.map +1 -0
- package/dist/lib/utils/version.js +2 -1
- package/dist/lib/utils/version.js.map +1 -0
- package/dist/libs/libs/draco_decoder.wasm +0 -0
- package/dist/libs/libs/draco_encoder.js +52 -0
- package/dist/libs/libs/draco_wasm_wrapper.js +117 -0
- package/dist/workers/draco-worker-node.js +1 -0
- package/dist/workers/draco-worker-node.js.map +1 -0
- package/dist/workers/draco-worker.js +1 -0
- package/dist/workers/draco-worker.js.map +1 -0
- package/dist/workers/draco-writer-worker-node.cjs +17 -0
- package/dist/workers/draco-writer-worker-node.cjs.map +1 -0
- package/dist/workers/draco-writer-worker-node.d.cts +2 -0
- package/dist/workers/draco-writer-worker-node.d.cts.map +1 -0
- package/dist/workers/draco-writer-worker-node.js +1 -0
- package/dist/workers/draco-writer-worker-node.js.map +1 -0
- package/dist/workers/draco-writer-worker.js +1 -0
- package/dist/workers/draco-writer-worker.js.map +1 -0
- package/package.json +18 -6
- package/src/draco-loader.ts +7 -6
- package/src/draco-writer.ts +2 -1
- package/src/lib/draco-module-loader.ts +87 -23
- package/src/workers/draco-writer-worker-node.cjs +17 -0
package/dist/draco-worker.js
CHANGED
|
@@ -9,8 +9,9 @@
|
|
|
9
9
|
"loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN."
|
|
10
10
|
);
|
|
11
11
|
globalThis._loadersgl_.version = NPM_TAG;
|
|
12
|
+
warningIssued = true;
|
|
12
13
|
} else {
|
|
13
|
-
globalThis._loadersgl_.version = "4.4.0
|
|
14
|
+
globalThis._loadersgl_.version = "4.4.0";
|
|
14
15
|
}
|
|
15
16
|
}
|
|
16
17
|
return globalThis._loadersgl_.version;
|
|
@@ -164,6 +165,16 @@
|
|
|
164
165
|
|
|
165
166
|
// ../worker-utils/src/lib/library-utils/library-utils.ts
|
|
166
167
|
var loadLibraryPromises = {};
|
|
168
|
+
function extractLoadLibraryOptions(options = {}) {
|
|
169
|
+
const useLocalLibraries = options.useLocalLibraries ?? options.core?.useLocalLibraries;
|
|
170
|
+
const CDN = options.CDN ?? options.core?.CDN;
|
|
171
|
+
const modules = options.modules;
|
|
172
|
+
return {
|
|
173
|
+
...useLocalLibraries !== void 0 ? { useLocalLibraries } : {},
|
|
174
|
+
...CDN !== void 0 ? { CDN } : {},
|
|
175
|
+
...modules !== void 0 ? { modules } : {}
|
|
176
|
+
};
|
|
177
|
+
}
|
|
167
178
|
async function loadLibrary(libraryUrl, moduleName = null, options = {}, libraryName = null) {
|
|
168
179
|
if (moduleName) {
|
|
169
180
|
libraryUrl = getLibraryUrl(libraryUrl, moduleName, options, libraryName);
|
|
@@ -173,6 +184,9 @@
|
|
|
173
184
|
return await loadLibraryPromises[libraryUrl];
|
|
174
185
|
}
|
|
175
186
|
function getLibraryUrl(library, moduleName, options = {}, libraryName = null) {
|
|
187
|
+
if (options?.core) {
|
|
188
|
+
throw new Error("loadLibrary: options.core must be pre-normalized");
|
|
189
|
+
}
|
|
176
190
|
if (!options.useLocalLibraries && library.startsWith("http")) {
|
|
177
191
|
return library;
|
|
178
192
|
}
|
|
@@ -198,10 +212,20 @@
|
|
|
198
212
|
return await loadAsArrayBuffer(libraryUrl);
|
|
199
213
|
}
|
|
200
214
|
if (!isBrowser) {
|
|
215
|
+
const { requireFromFile } = globalThis.loaders || {};
|
|
201
216
|
try {
|
|
202
|
-
const
|
|
203
|
-
|
|
217
|
+
const result = await requireFromFile?.(libraryUrl);
|
|
218
|
+
if (result || !libraryUrl.includes("/dist/libs/")) {
|
|
219
|
+
return result;
|
|
220
|
+
}
|
|
221
|
+
return await requireFromFile?.(libraryUrl.replace("/dist/libs/", "/src/libs/"));
|
|
204
222
|
} catch (error) {
|
|
223
|
+
if (libraryUrl.includes("/dist/libs/")) {
|
|
224
|
+
try {
|
|
225
|
+
return await requireFromFile?.(libraryUrl.replace("/dist/libs/", "/src/libs/"));
|
|
226
|
+
} catch {
|
|
227
|
+
}
|
|
228
|
+
}
|
|
205
229
|
console.error(error);
|
|
206
230
|
return null;
|
|
207
231
|
}
|
|
@@ -237,7 +261,14 @@
|
|
|
237
261
|
const response = await fetch(url);
|
|
238
262
|
return await response.arrayBuffer();
|
|
239
263
|
}
|
|
240
|
-
|
|
264
|
+
try {
|
|
265
|
+
return await readFileAsArrayBuffer(url);
|
|
266
|
+
} catch {
|
|
267
|
+
if (url.includes("/dist/libs/")) {
|
|
268
|
+
return await readFileAsArrayBuffer(url.replace("/dist/libs/", "/src/libs/"));
|
|
269
|
+
}
|
|
270
|
+
throw new Error(`Failed to load ArrayBuffer from ${url}`);
|
|
271
|
+
}
|
|
241
272
|
}
|
|
242
273
|
async function loadAsText(url) {
|
|
243
274
|
const { readFileAsText } = globalThis.loaders || {};
|
|
@@ -245,7 +276,14 @@
|
|
|
245
276
|
const response = await fetch(url);
|
|
246
277
|
return await response.text();
|
|
247
278
|
}
|
|
248
|
-
|
|
279
|
+
try {
|
|
280
|
+
return await readFileAsText(url);
|
|
281
|
+
} catch {
|
|
282
|
+
if (url.includes("/dist/libs/")) {
|
|
283
|
+
return await readFileAsText(url.replace("/dist/libs/", "/src/libs/"));
|
|
284
|
+
}
|
|
285
|
+
throw new Error(`Failed to load text from ${url}`);
|
|
286
|
+
}
|
|
249
287
|
}
|
|
250
288
|
|
|
251
289
|
// ../loader-utils/src/lib/worker-loader-utils/create-loader-worker.ts
|
|
@@ -324,7 +362,10 @@
|
|
|
324
362
|
options = {
|
|
325
363
|
...options,
|
|
326
364
|
modules: loader && loader.options && loader.options.modules || {},
|
|
327
|
-
|
|
365
|
+
core: {
|
|
366
|
+
...options.core,
|
|
367
|
+
worker: false
|
|
368
|
+
}
|
|
328
369
|
};
|
|
329
370
|
return await parser(data, { ...options }, context, loader);
|
|
330
371
|
}
|
|
@@ -350,21 +391,32 @@
|
|
|
350
391
|
[DRACO_EXTERNAL_LIBRARIES.ENCODER]: `https://raw.githubusercontent.com/google/draco/${DRACO_ENCODER_VERSION}/javascript/${DRACO_EXTERNAL_LIBRARIES.ENCODER}`
|
|
351
392
|
};
|
|
352
393
|
var loadDecoderPromise;
|
|
353
|
-
async function loadDracoDecoderModule(options) {
|
|
394
|
+
async function loadDracoDecoderModule(options = {}, type) {
|
|
354
395
|
const modules = options.modules || {};
|
|
355
396
|
if (modules.draco3d) {
|
|
356
397
|
loadDecoderPromise ||= modules.draco3d.createDecoderModule({}).then((draco) => {
|
|
357
398
|
return { draco };
|
|
358
399
|
});
|
|
359
400
|
} else {
|
|
360
|
-
loadDecoderPromise ||= loadDracoDecoder(options);
|
|
401
|
+
loadDecoderPromise ||= loadDracoDecoder(options, type);
|
|
361
402
|
}
|
|
362
403
|
return await loadDecoderPromise;
|
|
363
404
|
}
|
|
364
|
-
|
|
405
|
+
function getLibraryExport(library, exportName) {
|
|
406
|
+
if (library && typeof library === "object") {
|
|
407
|
+
if (library.default) {
|
|
408
|
+
return library.default;
|
|
409
|
+
}
|
|
410
|
+
if (library[exportName]) {
|
|
411
|
+
return library[exportName];
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
return library;
|
|
415
|
+
}
|
|
416
|
+
async function loadDracoDecoder(options, type) {
|
|
365
417
|
let DracoDecoderModule;
|
|
366
418
|
let wasmBinary;
|
|
367
|
-
switch (
|
|
419
|
+
switch (type) {
|
|
368
420
|
case "js":
|
|
369
421
|
DracoDecoderModule = await loadLibrary(
|
|
370
422
|
DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER],
|
|
@@ -375,25 +427,52 @@
|
|
|
375
427
|
break;
|
|
376
428
|
case "wasm":
|
|
377
429
|
default:
|
|
378
|
-
|
|
379
|
-
await
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
430
|
+
try {
|
|
431
|
+
[DracoDecoderModule, wasmBinary] = await Promise.all([
|
|
432
|
+
await loadLibrary(
|
|
433
|
+
DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER],
|
|
434
|
+
"draco",
|
|
435
|
+
options,
|
|
436
|
+
DRACO_EXTERNAL_LIBRARIES.DECODER
|
|
437
|
+
),
|
|
438
|
+
await loadLibrary(
|
|
439
|
+
DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER_WASM],
|
|
440
|
+
"draco",
|
|
441
|
+
options,
|
|
442
|
+
DRACO_EXTERNAL_LIBRARIES.DECODER_WASM
|
|
443
|
+
)
|
|
444
|
+
]);
|
|
445
|
+
} catch {
|
|
446
|
+
DracoDecoderModule = null;
|
|
447
|
+
wasmBinary = null;
|
|
448
|
+
}
|
|
392
449
|
}
|
|
450
|
+
DracoDecoderModule = getLibraryExport(DracoDecoderModule, "DracoDecoderModule");
|
|
393
451
|
DracoDecoderModule = DracoDecoderModule || globalThis.DracoDecoderModule;
|
|
452
|
+
if (!DracoDecoderModule && !isBrowser) {
|
|
453
|
+
[DracoDecoderModule, wasmBinary] = await Promise.all([
|
|
454
|
+
await loadLibrary(
|
|
455
|
+
DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER],
|
|
456
|
+
"draco",
|
|
457
|
+
{ ...options, useLocalLibraries: true },
|
|
458
|
+
DRACO_EXTERNAL_LIBRARIES.DECODER
|
|
459
|
+
),
|
|
460
|
+
await loadLibrary(
|
|
461
|
+
DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER_WASM],
|
|
462
|
+
"draco",
|
|
463
|
+
{ ...options, useLocalLibraries: true },
|
|
464
|
+
DRACO_EXTERNAL_LIBRARIES.DECODER_WASM
|
|
465
|
+
)
|
|
466
|
+
]);
|
|
467
|
+
DracoDecoderModule = getLibraryExport(DracoDecoderModule, "DracoDecoderModule");
|
|
468
|
+
DracoDecoderModule = DracoDecoderModule || globalThis.DracoDecoderModule;
|
|
469
|
+
}
|
|
394
470
|
return await initializeDracoDecoder(DracoDecoderModule, wasmBinary);
|
|
395
471
|
}
|
|
396
472
|
function initializeDracoDecoder(DracoDecoderModule, wasmBinary) {
|
|
473
|
+
if (typeof DracoDecoderModule !== "function") {
|
|
474
|
+
throw new Error("DracoDecoderModule could not be loaded");
|
|
475
|
+
}
|
|
397
476
|
const options = {};
|
|
398
477
|
if (wasmBinary) {
|
|
399
478
|
options.wasmBinary = wasmBinary;
|
|
@@ -408,7 +487,7 @@
|
|
|
408
487
|
}
|
|
409
488
|
|
|
410
489
|
// src/lib/utils/version.ts
|
|
411
|
-
var VERSION2 = true ? "4.4.0
|
|
490
|
+
var VERSION2 = true ? "4.4.0" : "latest";
|
|
412
491
|
|
|
413
492
|
// ../schema-utils/src/lib/schema/data-type.ts
|
|
414
493
|
function getDataTypeFromTypedArray(array) {
|
|
@@ -1002,7 +1081,6 @@
|
|
|
1002
1081
|
draco: {
|
|
1003
1082
|
decoderType: typeof WebAssembly === "object" ? "wasm" : "js",
|
|
1004
1083
|
// 'js' for IE11
|
|
1005
|
-
libraryPath: "libs/",
|
|
1006
1084
|
extraAttributes: {},
|
|
1007
1085
|
attributeNameEntry: void 0
|
|
1008
1086
|
}
|
|
@@ -1013,7 +1091,10 @@
|
|
|
1013
1091
|
parse
|
|
1014
1092
|
};
|
|
1015
1093
|
async function parse(arrayBuffer, options) {
|
|
1016
|
-
const { draco } = await loadDracoDecoderModule(
|
|
1094
|
+
const { draco } = await loadDracoDecoderModule(
|
|
1095
|
+
extractLoadLibraryOptions(options),
|
|
1096
|
+
options?.draco?.decoderType || "wasm"
|
|
1097
|
+
);
|
|
1017
1098
|
const dracoParser = new DracoParser(draco);
|
|
1018
1099
|
try {
|
|
1019
1100
|
return dracoParser.parseSync(arrayBuffer, options?.draco);
|