@loaders.gl/draco 4.4.0-alpha.1 → 4.4.0-alpha.11

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 (61) hide show
  1. package/dist/dist.dev.js +110 -26
  2. package/dist/dist.min.js +6 -6
  3. package/dist/draco-arrow-loader.d.ts +1 -1
  4. package/dist/draco-arrow-loader.js +1 -0
  5. package/dist/draco-arrow-loader.js.map +1 -0
  6. package/dist/draco-format.js +1 -0
  7. package/dist/draco-format.js.map +1 -0
  8. package/dist/draco-loader.d.ts +4 -4
  9. package/dist/draco-loader.d.ts.map +1 -1
  10. package/dist/draco-loader.js +2 -1
  11. package/dist/draco-loader.js.map +1 -0
  12. package/dist/draco-worker-node.js +197 -91
  13. package/dist/draco-worker-node.js.map +4 -4
  14. package/dist/draco-worker.js +98 -26
  15. package/dist/draco-worker.js.map +2 -2
  16. package/dist/draco-writer-worker-node.js +158 -72
  17. package/dist/draco-writer-worker-node.js.map +4 -4
  18. package/dist/draco-writer-worker.js +60 -7
  19. package/dist/draco-writer-worker.js.map +2 -2
  20. package/dist/draco-writer.js +2 -1
  21. package/dist/draco-writer.js.map +1 -0
  22. package/dist/draco3d/draco3d-types.js +1 -0
  23. package/dist/draco3d/draco3d-types.js.map +1 -0
  24. package/dist/index.cjs +49 -11
  25. package/dist/index.cjs.map +3 -3
  26. package/dist/index.js +1 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/lib/draco-builder.js +1 -0
  29. package/dist/lib/draco-builder.js.map +1 -0
  30. package/dist/lib/draco-module-loader.d.ts +3 -2
  31. package/dist/lib/draco-module-loader.d.ts.map +1 -1
  32. package/dist/lib/draco-module-loader.js +53 -10
  33. package/dist/lib/draco-module-loader.js.map +1 -0
  34. package/dist/lib/draco-parser.js +1 -0
  35. package/dist/lib/draco-parser.js.map +1 -0
  36. package/dist/lib/draco-types.js +1 -0
  37. package/dist/lib/draco-types.js.map +1 -0
  38. package/dist/lib/utils/get-draco-schema.js +1 -0
  39. package/dist/lib/utils/get-draco-schema.js.map +1 -0
  40. package/dist/lib/utils/version.js +2 -1
  41. package/dist/lib/utils/version.js.map +1 -0
  42. package/dist/libs/libs/draco_decoder.wasm +0 -0
  43. package/dist/libs/libs/draco_encoder.js +52 -0
  44. package/dist/libs/libs/draco_wasm_wrapper.js +117 -0
  45. package/dist/workers/draco-worker-node.js +1 -0
  46. package/dist/workers/draco-worker-node.js.map +1 -0
  47. package/dist/workers/draco-worker.js +1 -0
  48. package/dist/workers/draco-worker.js.map +1 -0
  49. package/dist/workers/draco-writer-worker-node.cjs +18 -0
  50. package/dist/workers/draco-writer-worker-node.cjs.map +1 -0
  51. package/dist/workers/draco-writer-worker-node.d.cts +2 -0
  52. package/dist/workers/draco-writer-worker-node.d.cts.map +1 -0
  53. package/dist/workers/draco-writer-worker-node.js +1 -0
  54. package/dist/workers/draco-writer-worker-node.js.map +1 -0
  55. package/dist/workers/draco-writer-worker.js +1 -0
  56. package/dist/workers/draco-writer-worker.js.map +1 -0
  57. package/package.json +19 -7
  58. package/src/draco-loader.ts +6 -3
  59. package/src/draco-writer.ts +1 -1
  60. package/src/lib/draco-module-loader.ts +87 -23
  61. package/src/workers/draco-writer-worker-node.cjs +18 -0
@@ -18,7 +18,7 @@ export declare const DracoArrowLoader: {
18
18
  readonly tests: ["DRACO"];
19
19
  readonly options: {
20
20
  readonly draco: {
21
- readonly decoderType: "js" | "wasm";
21
+ readonly decoderType: "wasm" | "js";
22
22
  readonly libraryPath: "libs/";
23
23
  readonly extraAttributes: {};
24
24
  readonly attributeNameEntry: undefined;
@@ -17,3 +17,4 @@ async function parse(arrayBuffer, options) {
17
17
  const arrowTable = convertMeshToTable(mesh, 'arrow-table');
18
18
  return arrowTable;
19
19
  }
20
+ //# sourceMappingURL=draco-arrow-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draco-arrow-loader.js","sourceRoot":"","sources":["../src/draco-arrow-loader.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAKpC,OAAO,EAAC,WAAW,EAAC,0BAAuB;AAC3C,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAC;AAE5D;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,GAAG,WAAW;IACd,QAAQ,EAAE,IAA6B;IACvC,MAAM,EAAE,KAAK;IACb,KAAK;CACqE,CAAC;AAE7E,KAAK,UAAU,KAAK,CAAC,WAAwB,EAAE,OAA4B;IACzE,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC3D,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -13,3 +13,4 @@ export const DracoFormat = {
13
13
  binary: true,
14
14
  tests: ['DRACO']
15
15
  };
16
+ //# sourceMappingURL=draco-format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draco-format.js","sourceRoot":"","sources":["../src/draco-format.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAIpC;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,OAAO;IACb,EAAE,EAAE,OAAO;IACX,MAAM,EAAE,OAAO;IACf,UAAU,EAAE,CAAC,KAAK,CAAC;IACnB,SAAS,EAAE,CAAC,0BAA0B,CAAC;IACvC,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,CAAC,OAAO,CAAC;CACS,CAAC"}
@@ -1,7 +1,7 @@
1
- import type { LoaderOptions } from '@loaders.gl/loader-utils';
1
+ import type { StrictLoaderOptions } from '@loaders.gl/loader-utils';
2
2
  import type { DracoMesh } from "./lib/draco-types.js";
3
3
  import type { DracoParseOptions } from "./lib/draco-parser.js";
4
- export type DracoLoaderOptions = LoaderOptions & {
4
+ export type DracoLoaderOptions = StrictLoaderOptions & {
5
5
  draco?: DracoParseOptions & {
6
6
  /** @deprecated WASM decoding is faster but JS is more backwards compatible */
7
7
  decoderType?: 'wasm' | 'js';
@@ -28,7 +28,7 @@ export declare const DracoWorkerLoader: {
28
28
  readonly tests: ["DRACO"];
29
29
  readonly options: {
30
30
  readonly draco: {
31
- readonly decoderType: "js" | "wasm";
31
+ readonly decoderType: "wasm" | "js";
32
32
  readonly libraryPath: "libs/";
33
33
  readonly extraAttributes: {};
34
34
  readonly attributeNameEntry: undefined;
@@ -53,7 +53,7 @@ export declare const DracoLoader: {
53
53
  readonly tests: ["DRACO"];
54
54
  readonly options: {
55
55
  readonly draco: {
56
- readonly decoderType: "js" | "wasm";
56
+ readonly decoderType: "wasm" | "js";
57
57
  readonly libraryPath: "libs/";
58
58
  readonly extraAttributes: {};
59
59
  readonly attributeNameEntry: undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"draco-loader.d.ts","sourceRoot":"","sources":["../src/draco-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAA2B,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACtF,OAAO,KAAK,EAAC,SAAS,EAAC,6BAA0B;AACjD,OAAO,KAAK,EAAC,iBAAiB,EAAC,8BAA2B;AAK1D,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG;IAC/C,KAAK,CAAC,EAAE,iBAAiB,GAAG;QAC1B,8EAA8E;QAC9E,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,kEAAkE;QAClE,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,8EAA8E;QAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB;uBACC,SAAS;wBACnB,KAAK;;;;;;;;;;;;;;;;;;CAmBuC,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,WAAW;;uBAzBO,SAAS;wBACnB,KAAK;;;;;;;;;;;;;;;;;;CA2BiD,CAAC;AAE5E,iBAAe,KAAK,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,SAAS,CAAC,CAQ/F"}
1
+ {"version":3,"file":"draco-loader.d.ts","sourceRoot":"","sources":["../src/draco-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAA2B,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAC5F,OAAO,KAAK,EAAC,SAAS,EAAC,6BAA0B;AACjD,OAAO,KAAK,EAAC,iBAAiB,EAAC,8BAA2B;AAK1D,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,GAAG;IACrD,KAAK,CAAC,EAAE,iBAAiB,GAAG;QAC1B,8EAA8E;QAC9E,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,kEAAkE;QAClE,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,8EAA8E;QAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB;uBACC,SAAS;wBACnB,KAAK;;;;;;;;;;;;;;;;;;CAmBuC,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,WAAW;;uBAzBO,SAAS;wBACnB,KAAK;;;;;;;;;;;;;;;;;;CA2BiD,CAAC;AAE5E,iBAAe,KAAK,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,SAAS,CAAC,CAW/F"}
@@ -37,7 +37,7 @@ export const DracoLoader = {
37
37
  parse
38
38
  };
39
39
  async function parse(arrayBuffer, options) {
40
- const { draco } = await loadDracoDecoderModule(options);
40
+ const { draco } = await loadDracoDecoderModule(options?.core, options?.draco?.decoderType || 'wasm');
41
41
  const dracoParser = new DracoParser(draco);
42
42
  try {
43
43
  return dracoParser.parseSync(arrayBuffer, options?.draco);
@@ -46,3 +46,4 @@ async function parse(arrayBuffer, options) {
46
46
  dracoParser.destroy();
47
47
  }
48
48
  }
49
+ //# sourceMappingURL=draco-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draco-loader.js","sourceRoot":"","sources":["../src/draco-loader.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAKpC,OAAO,EAAC,OAAO,EAAC,+BAA4B;AAC5C,OAAO,WAAW,8BAA2B;AAC7C,OAAO,EAAC,sBAAsB,EAAC,qCAAkC;AAajE;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,QAAQ,EAAE,IAA4B;IACtC,SAAS,EAAE,IAAa;IACxB,IAAI,EAAE,OAAO;IACb,EAAE,EAAE,OAAO;IACX,MAAM,EAAE,OAAO;IACf,oBAAoB;IACpB,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE,CAAC,KAAK,CAAC;IACnB,SAAS,EAAE,CAAC,0BAA0B,CAAC;IACvC,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,CAAC,OAAO,CAAC;IAChB,OAAO,EAAE;QACP,KAAK,EAAE;YACL,WAAW,EAAE,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,gBAAgB;YAC9E,WAAW,EAAE,OAAO;YACpB,eAAe,EAAE,EAAE;YACnB,kBAAkB,EAAE,SAAS;SAC9B;KACF;CAC8D,CAAC;AAElE;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,GAAG,iBAAiB;IACpB,KAAK;CACoE,CAAC;AAE5E,KAAK,UAAU,KAAK,CAAC,WAAwB,EAAE,OAA4B;IACzE,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,sBAAsB,CAC1C,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,KAAK,EAAE,WAAW,IAAI,MAAM,CACtC,CAAC;IACF,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC;YAAS,CAAC;QACT,WAAW,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;AACH,CAAC"}
@@ -7162,13 +7162,13 @@ var require_iota = __commonJS({
7162
7162
  var require_is_buffer = __commonJS({
7163
7163
  "../../node_modules/is-buffer/index.js"(exports, module2) {
7164
7164
  module2.exports = function(obj) {
7165
- return obj != null && (isBuffer3(obj) || isSlowBuffer(obj) || !!obj._isBuffer);
7165
+ return obj != null && (isBuffer2(obj) || isSlowBuffer(obj) || !!obj._isBuffer);
7166
7166
  };
7167
- function isBuffer3(obj) {
7167
+ function isBuffer2(obj) {
7168
7168
  return !!obj.constructor && typeof obj.constructor.isBuffer === "function" && obj.constructor.isBuffer(obj);
7169
7169
  }
7170
7170
  function isSlowBuffer(obj) {
7171
- return typeof obj.readFloatLE === "function" && typeof obj.slice === "function" && isBuffer3(obj.slice(0, 0));
7171
+ return typeof obj.readFloatLE === "function" && typeof obj.slice === "function" && isBuffer2(obj.slice(0, 0));
7172
7172
  }
7173
7173
  }
7174
7174
  });
@@ -7177,7 +7177,7 @@ var require_is_buffer = __commonJS({
7177
7177
  var require_ndarray = __commonJS({
7178
7178
  "../../node_modules/ndarray/ndarray.js"(exports, module2) {
7179
7179
  var iota = require_iota();
7180
- var isBuffer3 = require_is_buffer();
7180
+ var isBuffer2 = require_is_buffer();
7181
7181
  var hasTypedArrays = typeof Float64Array !== "undefined";
7182
7182
  function compare1st(a2, b2) {
7183
7183
  return a2[0] - b2[0];
@@ -7339,7 +7339,7 @@ var require_ndarray = __commonJS({
7339
7339
  return procedure(CACHED_CONSTRUCTORS[dtype], order);
7340
7340
  }
7341
7341
  function arrayDType(data) {
7342
- if (isBuffer3(data)) {
7342
+ if (isBuffer2(data)) {
7343
7343
  return "buffer";
7344
7344
  }
7345
7345
  if (hasTypedArrays) {
@@ -33732,7 +33732,7 @@ var require_openssh_cert = __commonJS({
33732
33732
  write,
33733
33733
  /* Internal private API */
33734
33734
  fromBuffer,
33735
- toBuffer
33735
+ toBuffer: toBuffer3
33736
33736
  };
33737
33737
  var assert3 = require_assert();
33738
33738
  var SSHBuffer = require_ssh_buffer();
@@ -33872,7 +33872,7 @@ var require_openssh_cert = __commonJS({
33872
33872
  if (cert.signatures.openssh === void 0)
33873
33873
  cert.signatures.openssh = {};
33874
33874
  try {
33875
- var blob = toBuffer(cert, true);
33875
+ var blob = toBuffer3(cert, true);
33876
33876
  } catch (e2) {
33877
33877
  delete cert.signatures.openssh;
33878
33878
  return false;
@@ -33890,7 +33890,7 @@ var require_openssh_cert = __commonJS({
33890
33890
  if (cert.signatures.openssh === void 0)
33891
33891
  cert.signatures.openssh = {};
33892
33892
  try {
33893
- var blob = toBuffer(cert, true);
33893
+ var blob = toBuffer3(cert, true);
33894
33894
  } catch (e2) {
33895
33895
  delete cert.signatures.openssh;
33896
33896
  done(e2);
@@ -33915,13 +33915,13 @@ var require_openssh_cert = __commonJS({
33915
33915
  function write(cert, options) {
33916
33916
  if (options === void 0)
33917
33917
  options = {};
33918
- var blob = toBuffer(cert);
33918
+ var blob = toBuffer3(cert);
33919
33919
  var out = getCertType(cert.subjectKey) + " " + blob.toString("base64");
33920
33920
  if (options.comment)
33921
33921
  out = out + " " + options.comment;
33922
33922
  return out;
33923
33923
  }
33924
- function toBuffer(cert, noSig) {
33924
+ function toBuffer3(cert, noSig) {
33925
33925
  assert3.object(cert.signatures.openssh, "signature for openssh format");
33926
33926
  var sig = cert.signatures.openssh;
33927
33927
  if (sig.nonce === void 0)
@@ -47454,7 +47454,7 @@ var require_utils3 = __commonJS({
47454
47454
  var isRegExp = function isRegExp2(obj) {
47455
47455
  return Object.prototype.toString.call(obj) === "[object RegExp]";
47456
47456
  };
47457
- var isBuffer3 = function isBuffer4(obj) {
47457
+ var isBuffer2 = function isBuffer3(obj) {
47458
47458
  if (obj === null || typeof obj === "undefined") {
47459
47459
  return false;
47460
47460
  }
@@ -47466,7 +47466,7 @@ var require_utils3 = __commonJS({
47466
47466
  compact,
47467
47467
  decode: decode2,
47468
47468
  encode: encode2,
47469
- isBuffer: isBuffer3,
47469
+ isBuffer: isBuffer2,
47470
47470
  isRegExp,
47471
47471
  merge
47472
47472
  };
@@ -57888,11 +57888,11 @@ var require_data_uri_to_buffer = __commonJS({
57888
57888
  // ../../node_modules/parse-data-uri/index.js
57889
57889
  var require_parse_data_uri = __commonJS({
57890
57890
  "../../node_modules/parse-data-uri/index.js"(exports, module2) {
57891
- var toBuffer = require_data_uri_to_buffer();
57891
+ var toBuffer3 = require_data_uri_to_buffer();
57892
57892
  function parseDataUri(dataUri) {
57893
57893
  return {
57894
57894
  mimeType: normalizeMimeType(parseMimeType(dataUri)),
57895
- data: toBuffer(dataUri)
57895
+ data: toBuffer3(dataUri)
57896
57896
  };
57897
57897
  }
57898
57898
  function parseMimeType(uri) {
@@ -59806,6 +59806,9 @@ function getPixelsAsync(buffer, mimeType) {
59806
59806
  );
59807
59807
  }
59808
59808
 
59809
+ // ../loader-utils/src/lib/javascript-utils/is-type.ts
59810
+ var isSharedArrayBuffer = (value) => typeof SharedArrayBuffer !== "undefined" && value instanceof SharedArrayBuffer;
59811
+
59809
59812
  // ../worker-utils/src/lib/env-utils/version.ts
59810
59813
  function getVersion() {
59811
59814
  var _a;
@@ -59816,8 +59819,9 @@ function getVersion() {
59816
59819
  "loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN."
59817
59820
  );
59818
59821
  globalThis._loadersgl_.version = NPM_TAG;
59822
+ warningIssued = true;
59819
59823
  } else {
59820
- globalThis._loadersgl_.version = "4.4.0-alpha.0";
59824
+ globalThis._loadersgl_.version = "4.4.0-alpha.11";
59821
59825
  }
59822
59826
  }
59823
59827
  return globalThis._loadersgl_.version;
@@ -59988,6 +59992,9 @@ async function loadLibrary(libraryUrl, moduleName = null, options = {}, libraryN
59988
59992
  return await loadLibraryPromises[libraryUrl];
59989
59993
  }
59990
59994
  function getLibraryUrl(library, moduleName, options = {}, libraryName = null) {
59995
+ if (options == null ? void 0 : options.core) {
59996
+ throw new Error("loadLibrary: options.core must be pre-normalized");
59997
+ }
59991
59998
  if (!options.useLocalLibraries && library.startsWith("http")) {
59992
59999
  return library;
59993
60000
  }
@@ -60013,10 +60020,20 @@ async function loadLibraryFromFile(libraryUrl) {
60013
60020
  return await loadAsArrayBuffer(libraryUrl);
60014
60021
  }
60015
60022
  if (!isBrowser2) {
60023
+ const { requireFromFile: requireFromFile2 } = globalThis.loaders || {};
60016
60024
  try {
60017
- const { requireFromFile: requireFromFile2 } = globalThis.loaders || {};
60018
- return await (requireFromFile2 == null ? void 0 : requireFromFile2(libraryUrl));
60025
+ const result = await (requireFromFile2 == null ? void 0 : requireFromFile2(libraryUrl));
60026
+ if (result || !libraryUrl.includes("/dist/libs/")) {
60027
+ return result;
60028
+ }
60029
+ return await (requireFromFile2 == null ? void 0 : requireFromFile2(libraryUrl.replace("/dist/libs/", "/src/libs/")));
60019
60030
  } catch (error) {
60031
+ if (libraryUrl.includes("/dist/libs/")) {
60032
+ try {
60033
+ return await (requireFromFile2 == null ? void 0 : requireFromFile2(libraryUrl.replace("/dist/libs/", "/src/libs/")));
60034
+ } catch {
60035
+ }
60036
+ }
60020
60037
  console.error(error);
60021
60038
  return null;
60022
60039
  }
@@ -60052,7 +60069,14 @@ async function loadAsArrayBuffer(url) {
60052
60069
  const response = await fetch(url);
60053
60070
  return await response.arrayBuffer();
60054
60071
  }
60055
- return await readFileAsArrayBuffer2(url);
60072
+ try {
60073
+ return await readFileAsArrayBuffer2(url);
60074
+ } catch {
60075
+ if (url.includes("/dist/libs/")) {
60076
+ return await readFileAsArrayBuffer2(url.replace("/dist/libs/", "/src/libs/"));
60077
+ }
60078
+ throw new Error(`Failed to load ArrayBuffer from ${url}`);
60079
+ }
60056
60080
  }
60057
60081
  async function loadAsText(url) {
60058
60082
  const { readFileAsText: readFileAsText2 } = globalThis.loaders || {};
@@ -60060,7 +60084,14 @@ async function loadAsText(url) {
60060
60084
  const response = await fetch(url);
60061
60085
  return await response.text();
60062
60086
  }
60063
- return await readFileAsText2(url);
60087
+ try {
60088
+ return await readFileAsText2(url);
60089
+ } catch {
60090
+ if (url.includes("/dist/libs/")) {
60091
+ return await readFileAsText2(url.replace("/dist/libs/", "/src/libs/"));
60092
+ }
60093
+ throw new Error(`Failed to load text from ${url}`);
60094
+ }
60064
60095
  }
60065
60096
 
60066
60097
  // ../loader-utils/src/lib/worker-loader-utils/create-loader-worker.ts
@@ -60139,7 +60170,10 @@ async function parseData({
60139
60170
  options = {
60140
60171
  ...options,
60141
60172
  modules: loader && loader.options && loader.options.modules || {},
60142
- worker: false
60173
+ core: {
60174
+ ...options.core,
60175
+ worker: false
60176
+ }
60143
60177
  };
60144
60178
  return await parser(data, { ...options }, context, loader);
60145
60179
  }
@@ -60166,10 +60200,26 @@ function concatenateArrayBuffersFromArray(sources) {
60166
60200
  async function concatenateArrayBuffersAsync(asyncIterator) {
60167
60201
  const arrayBuffers = [];
60168
60202
  for await (const chunk of asyncIterator) {
60169
- arrayBuffers.push(chunk);
60203
+ arrayBuffers.push(copyToArrayBuffer(chunk));
60170
60204
  }
60171
60205
  return concatenateArrayBuffers(...arrayBuffers);
60172
60206
  }
60207
+ function copyToArrayBuffer(chunk) {
60208
+ if (chunk instanceof ArrayBuffer) {
60209
+ return chunk;
60210
+ }
60211
+ if (ArrayBuffer.isView(chunk)) {
60212
+ const { buffer, byteOffset, byteLength } = chunk;
60213
+ return copyFromBuffer(buffer, byteOffset, byteLength);
60214
+ }
60215
+ return copyFromBuffer(chunk);
60216
+ }
60217
+ function copyFromBuffer(buffer, byteOffset = 0, byteLength = buffer.byteLength - byteOffset) {
60218
+ const view = new Uint8Array(buffer, byteOffset, byteLength);
60219
+ const copy = new Uint8Array(view.length);
60220
+ copy.set(view);
60221
+ return copy.buffer;
60222
+ }
60173
60223
 
60174
60224
  // ../loader-utils/src/lib/path-utils/file-aliases.ts
60175
60225
  var pathPrefix = "";
@@ -60187,6 +60237,66 @@ function resolvePath(filename) {
60187
60237
  return filename;
60188
60238
  }
60189
60239
 
60240
+ // ../loader-utils/src/lib/node/buffer.ts
60241
+ function toArrayBuffer(buffer) {
60242
+ if (Buffer.isBuffer(buffer)) {
60243
+ const typedArray = new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.length);
60244
+ return typedArray.slice().buffer;
60245
+ }
60246
+ return buffer;
60247
+ }
60248
+
60249
+ // ../loader-utils/src/lib/binary-utils/memory-conversion-utils.ts
60250
+ function isBuffer(value) {
60251
+ return value && typeof value === "object" && value.isBuffer;
60252
+ }
60253
+ function toArrayBuffer2(data) {
60254
+ if (isBuffer(data)) {
60255
+ return toArrayBuffer(data);
60256
+ }
60257
+ if (data instanceof ArrayBuffer) {
60258
+ return data;
60259
+ }
60260
+ if (isSharedArrayBuffer(data)) {
60261
+ return copyToArrayBuffer2(data);
60262
+ }
60263
+ if (ArrayBuffer.isView(data)) {
60264
+ const buffer = data.buffer;
60265
+ if (data.byteOffset === 0 && data.byteLength === data.buffer.byteLength) {
60266
+ return buffer;
60267
+ }
60268
+ return buffer.slice(data.byteOffset, data.byteOffset + data.byteLength);
60269
+ }
60270
+ if (typeof data === "string") {
60271
+ const text = data;
60272
+ const uint8Array = new TextEncoder().encode(text);
60273
+ return uint8Array.buffer;
60274
+ }
60275
+ if (data && typeof data === "object" && data._toArrayBuffer) {
60276
+ return data._toArrayBuffer();
60277
+ }
60278
+ throw new Error("toArrayBuffer");
60279
+ }
60280
+ function ensureArrayBuffer(bufferSource) {
60281
+ if (bufferSource instanceof ArrayBuffer) {
60282
+ return bufferSource;
60283
+ }
60284
+ if (isSharedArrayBuffer(bufferSource)) {
60285
+ return copyToArrayBuffer2(bufferSource);
60286
+ }
60287
+ const { buffer, byteOffset, byteLength } = bufferSource;
60288
+ if (buffer instanceof ArrayBuffer && byteOffset === 0 && byteLength === buffer.byteLength) {
60289
+ return buffer;
60290
+ }
60291
+ return copyToArrayBuffer2(buffer, byteOffset, byteLength);
60292
+ }
60293
+ function copyToArrayBuffer2(buffer, byteOffset = 0, byteLength = buffer.byteLength - byteOffset) {
60294
+ const view = new Uint8Array(buffer, byteOffset, byteLength);
60295
+ const copy = new Uint8Array(view.length);
60296
+ copy.set(view);
60297
+ return copy.buffer;
60298
+ }
60299
+
60190
60300
  // ../polyfills/src/filesystems/node-file.ts
60191
60301
  var import_fs = __toESM(require("fs"), 1);
60192
60302
  var NodeFile = class {
@@ -60312,8 +60422,6 @@ var import_stream = require("stream");
60312
60422
 
60313
60423
  // ../polyfills/src/filesystems/stream-utils.node.ts
60314
60424
  var import_zlib = __toESM(require("zlib"), 1);
60315
- var isArrayBuffer = (x2) => x2 && x2 instanceof ArrayBuffer;
60316
- var isBuffer = (x2) => x2 && x2 instanceof Buffer;
60317
60425
  function decompressReadStream(readStream, headers) {
60318
60426
  switch (headers == null ? void 0 : headers.get("content-encoding")) {
60319
60427
  case "br":
@@ -60335,7 +60443,7 @@ async function concatenateReadStream(readStream) {
60335
60443
  if (typeof chunk === "string") {
60336
60444
  reject(new Error("Read stream not binary"));
60337
60445
  }
60338
- arrayBufferChunks.push(toArrayBuffer(chunk));
60446
+ arrayBufferChunks.push(toArrayBuffer2(chunk));
60339
60447
  });
60340
60448
  readStream.on("end", () => {
60341
60449
  const arrayBuffer = concatenateArrayBuffers2(arrayBufferChunks);
@@ -60356,27 +60464,6 @@ function concatenateArrayBuffers2(sources) {
60356
60464
  }
60357
60465
  return result.buffer;
60358
60466
  }
60359
- function toArrayBuffer(data) {
60360
- if (isArrayBuffer(data)) {
60361
- return data;
60362
- }
60363
- if (isBuffer(data)) {
60364
- const typedArray = new Uint8Array(data);
60365
- return typedArray.buffer;
60366
- }
60367
- if (ArrayBuffer.isView(data)) {
60368
- return data.buffer;
60369
- }
60370
- if (typeof data === "string") {
60371
- const text = data;
60372
- const uint8Array = new TextEncoder().encode(text);
60373
- return uint8Array.buffer;
60374
- }
60375
- if (data && typeof data === "object" && data._toArrayBuffer) {
60376
- return data._toArrayBuffer();
60377
- }
60378
- throw new Error(`toArrayBuffer(${JSON.stringify(data, null, 2).slice(10)})`);
60379
- }
60380
60467
 
60381
60468
  // ../polyfills/src/filesystems/fetch-node.ts
60382
60469
  var isBoolean = (x2) => typeof x2 === "boolean";
@@ -60390,10 +60477,10 @@ async function fetchNode(url, options) {
60390
60477
  noqueryUrl = resolvePath(noqueryUrl);
60391
60478
  const responseHeaders = new Headers();
60392
60479
  if (url.endsWith(".gz")) {
60393
- responseHeaders["content-encoding"] = "gzip";
60480
+ responseHeaders.set("content-encoding", "gzip");
60394
60481
  }
60395
60482
  if (url.endsWith(".br")) {
60396
- responseHeaders["content-encoding"] = "br";
60483
+ responseHeaders.set("content-encoding", "br");
60397
60484
  }
60398
60485
  try {
60399
60486
  const body = await new Promise((resolve, reject) => {
@@ -63074,7 +63161,7 @@ async function readFileAsArrayBuffer(filename) {
63074
63161
  return await response.arrayBuffer();
63075
63162
  }
63076
63163
  const buffer = import_fs3.default.readFileSync(filename);
63077
- return buffer.buffer;
63164
+ return ensureArrayBuffer(buffer.buffer);
63078
63165
  }
63079
63166
  async function readFileAsText(filename) {
63080
63167
  if (filename.startsWith("http")) {
@@ -63288,8 +63375,6 @@ var import_http = __toESM(require("http"), 1);
63288
63375
  var import_https = __toESM(require("https"), 1);
63289
63376
 
63290
63377
  // ../polyfills/src/fetch/decode-data-uri.ts
63291
- var isArrayBuffer2 = (x2) => x2 && x2 instanceof ArrayBuffer;
63292
- var isBuffer2 = (x2) => x2 && x2 instanceof Buffer;
63293
63378
  function decodeDataUri(uri) {
63294
63379
  const dataIndex = uri.indexOf(",");
63295
63380
  let buffer;
@@ -63308,27 +63393,6 @@ function decodeDataUri(uri) {
63308
63393
  }
63309
63394
  return { arrayBuffer: toArrayBuffer2(buffer), mimeType };
63310
63395
  }
63311
- function toArrayBuffer2(data) {
63312
- if (isArrayBuffer2(data)) {
63313
- return data;
63314
- }
63315
- if (isBuffer2(data)) {
63316
- const typedArray = new Uint8Array(data);
63317
- return typedArray.buffer;
63318
- }
63319
- if (ArrayBuffer.isView(data)) {
63320
- return data.buffer;
63321
- }
63322
- if (typeof data === "string") {
63323
- const text = data;
63324
- const uint8Array = new TextEncoder().encode(text);
63325
- return uint8Array.buffer;
63326
- }
63327
- if (data && typeof data === "object" && data._toArrayBuffer) {
63328
- return data._toArrayBuffer();
63329
- }
63330
- throw new Error(`toArrayBuffer(${JSON.stringify(data, null, 2).slice(10)})`);
63331
- }
63332
63396
 
63333
63397
  // ../polyfills/src/fetch/fetch-polyfill.ts
63334
63398
  var isDataURL = (url) => url.startsWith("data:");
@@ -63502,21 +63566,32 @@ var DRACO_EXTERNAL_LIBRARY_URLS = {
63502
63566
  [DRACO_EXTERNAL_LIBRARIES.ENCODER]: `https://raw.githubusercontent.com/google/draco/${DRACO_ENCODER_VERSION}/javascript/${DRACO_EXTERNAL_LIBRARIES.ENCODER}`
63503
63567
  };
63504
63568
  var loadDecoderPromise;
63505
- async function loadDracoDecoderModule(options) {
63569
+ async function loadDracoDecoderModule(options = {}, type) {
63506
63570
  const modules = options.modules || {};
63507
63571
  if (modules.draco3d) {
63508
63572
  loadDecoderPromise ||= modules.draco3d.createDecoderModule({}).then((draco) => {
63509
63573
  return { draco };
63510
63574
  });
63511
63575
  } else {
63512
- loadDecoderPromise ||= loadDracoDecoder(options);
63576
+ loadDecoderPromise ||= loadDracoDecoder(options, type);
63513
63577
  }
63514
63578
  return await loadDecoderPromise;
63515
63579
  }
63516
- async function loadDracoDecoder(options) {
63580
+ function getLibraryExport(library, exportName) {
63581
+ if (library && typeof library === "object") {
63582
+ if (library.default) {
63583
+ return library.default;
63584
+ }
63585
+ if (library[exportName]) {
63586
+ return library[exportName];
63587
+ }
63588
+ }
63589
+ return library;
63590
+ }
63591
+ async function loadDracoDecoder(options, type) {
63517
63592
  let DracoDecoderModule;
63518
63593
  let wasmBinary;
63519
- switch (options.draco && options.draco.decoderType) {
63594
+ switch (type) {
63520
63595
  case "js":
63521
63596
  DracoDecoderModule = await loadLibrary(
63522
63597
  DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER],
@@ -63527,25 +63602,52 @@ async function loadDracoDecoder(options) {
63527
63602
  break;
63528
63603
  case "wasm":
63529
63604
  default:
63530
- [DracoDecoderModule, wasmBinary] = await Promise.all([
63531
- await loadLibrary(
63532
- DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER],
63533
- "draco",
63534
- options,
63535
- DRACO_EXTERNAL_LIBRARIES.DECODER
63536
- ),
63537
- await loadLibrary(
63538
- DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER_WASM],
63539
- "draco",
63540
- options,
63541
- DRACO_EXTERNAL_LIBRARIES.DECODER_WASM
63542
- )
63543
- ]);
63605
+ try {
63606
+ [DracoDecoderModule, wasmBinary] = await Promise.all([
63607
+ await loadLibrary(
63608
+ DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER],
63609
+ "draco",
63610
+ options,
63611
+ DRACO_EXTERNAL_LIBRARIES.DECODER
63612
+ ),
63613
+ await loadLibrary(
63614
+ DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER_WASM],
63615
+ "draco",
63616
+ options,
63617
+ DRACO_EXTERNAL_LIBRARIES.DECODER_WASM
63618
+ )
63619
+ ]);
63620
+ } catch {
63621
+ DracoDecoderModule = null;
63622
+ wasmBinary = null;
63623
+ }
63544
63624
  }
63625
+ DracoDecoderModule = getLibraryExport(DracoDecoderModule, "DracoDecoderModule");
63545
63626
  DracoDecoderModule = DracoDecoderModule || globalThis.DracoDecoderModule;
63627
+ if (!DracoDecoderModule && !isBrowser2) {
63628
+ [DracoDecoderModule, wasmBinary] = await Promise.all([
63629
+ await loadLibrary(
63630
+ DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER],
63631
+ "draco",
63632
+ { ...options, useLocalLibraries: true },
63633
+ DRACO_EXTERNAL_LIBRARIES.DECODER
63634
+ ),
63635
+ await loadLibrary(
63636
+ DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER_WASM],
63637
+ "draco",
63638
+ { ...options, useLocalLibraries: true },
63639
+ DRACO_EXTERNAL_LIBRARIES.DECODER_WASM
63640
+ )
63641
+ ]);
63642
+ DracoDecoderModule = getLibraryExport(DracoDecoderModule, "DracoDecoderModule");
63643
+ DracoDecoderModule = DracoDecoderModule || globalThis.DracoDecoderModule;
63644
+ }
63546
63645
  return await initializeDracoDecoder(DracoDecoderModule, wasmBinary);
63547
63646
  }
63548
63647
  function initializeDracoDecoder(DracoDecoderModule, wasmBinary) {
63648
+ if (typeof DracoDecoderModule !== "function") {
63649
+ throw new Error("DracoDecoderModule could not be loaded");
63650
+ }
63549
63651
  const options = {};
63550
63652
  if (wasmBinary) {
63551
63653
  options.wasmBinary = wasmBinary;
@@ -63560,7 +63662,7 @@ function initializeDracoDecoder(DracoDecoderModule, wasmBinary) {
63560
63662
  }
63561
63663
 
63562
63664
  // src/lib/utils/version.ts
63563
- var VERSION2 = true ? "4.4.0-alpha.0" : "latest";
63665
+ var VERSION2 = true ? "4.4.0-alpha.11" : "latest";
63564
63666
 
63565
63667
  // ../schema-utils/src/lib/schema/data-type.ts
63566
63668
  function getDataTypeFromTypedArray(array) {
@@ -64165,7 +64267,11 @@ var DracoLoader = {
64165
64267
  parse
64166
64268
  };
64167
64269
  async function parse(arrayBuffer, options) {
64168
- const { draco } = await loadDracoDecoderModule(options);
64270
+ var _a;
64271
+ const { draco } = await loadDracoDecoderModule(
64272
+ options == null ? void 0 : options.core,
64273
+ ((_a = options == null ? void 0 : options.draco) == null ? void 0 : _a.decoderType) || "wasm"
64274
+ );
64169
64275
  const dracoParser = new DracoParser(draco);
64170
64276
  try {
64171
64277
  return dracoParser.parseSync(arrayBuffer, options == null ? void 0 : options.draco);