@loaders.gl/textures 4.4.0-alpha.2 → 4.4.0-alpha.9

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 (130) hide show
  1. package/dist/basis-loader.js +1 -0
  2. package/dist/basis-loader.js.map +1 -0
  3. package/dist/basis-worker-node.js +145 -79
  4. package/dist/basis-worker.d.ts +2 -0
  5. package/dist/basis-worker.d.ts.map +1 -0
  6. package/dist/basis-worker.js +45 -14
  7. package/dist/basis-worker.js.map +1 -0
  8. package/dist/compressed-texture-loader.d.ts +2 -1
  9. package/dist/compressed-texture-loader.d.ts.map +1 -1
  10. package/dist/compressed-texture-loader.js +2 -2
  11. package/dist/compressed-texture-loader.js.map +1 -0
  12. package/dist/compressed-texture-worker.d.ts +2 -0
  13. package/dist/compressed-texture-worker.d.ts.map +1 -0
  14. package/dist/compressed-texture-worker.js +46 -15
  15. package/dist/compressed-texture-worker.js.map +1 -0
  16. package/dist/compressed-texture-writer.js +1 -0
  17. package/dist/compressed-texture-writer.js.map +1 -0
  18. package/dist/crunch-loader.js +1 -0
  19. package/dist/crunch-loader.js.map +1 -0
  20. package/dist/crunch-worker.d.ts +2 -0
  21. package/dist/crunch-worker.d.ts.map +1 -0
  22. package/dist/crunch-worker.js +38 -7
  23. package/dist/crunch-worker.js.map +1 -0
  24. package/dist/dist.dev.js +50 -17
  25. package/dist/dist.min.js +2 -2
  26. package/dist/index.cjs +12 -10
  27. package/dist/index.cjs.map +3 -3
  28. package/dist/index.js +1 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/ktx2-basis-writer-worker-node.js +133 -72
  31. package/dist/ktx2-basis-writer-worker.d.ts +2 -0
  32. package/dist/ktx2-basis-writer-worker.d.ts.map +1 -0
  33. package/dist/ktx2-basis-writer-worker.js +35 -7
  34. package/dist/ktx2-basis-writer-worker.js.map +1 -0
  35. package/dist/ktx2-basis-writer.js +1 -0
  36. package/dist/ktx2-basis-writer.js.map +1 -0
  37. package/dist/lib/encoders/encode-ktx.d.ts +1 -1
  38. package/dist/lib/encoders/encode-ktx.d.ts.map +1 -1
  39. package/dist/lib/encoders/encode-ktx.js +1 -0
  40. package/dist/lib/encoders/encode-ktx.js.map +1 -0
  41. package/dist/lib/encoders/encode-ktx2-basis-texture.d.ts +2 -1
  42. package/dist/lib/encoders/encode-ktx2-basis-texture.d.ts.map +1 -1
  43. package/dist/lib/encoders/encode-ktx2-basis-texture.js +2 -1
  44. package/dist/lib/encoders/encode-ktx2-basis-texture.js.map +1 -0
  45. package/dist/lib/encoders/encode-texture.js +1 -0
  46. package/dist/lib/encoders/encode-texture.js.map +1 -0
  47. package/dist/lib/gl-extensions.js +1 -0
  48. package/dist/lib/gl-extensions.js.map +1 -0
  49. package/dist/lib/parsers/basis-module-loader.d.ts +3 -2
  50. package/dist/lib/parsers/basis-module-loader.d.ts.map +1 -1
  51. package/dist/lib/parsers/basis-module-loader.js +1 -0
  52. package/dist/lib/parsers/basis-module-loader.js.map +1 -0
  53. package/dist/lib/parsers/crunch-module-loader.js +1 -0
  54. package/dist/lib/parsers/crunch-module-loader.js.map +1 -0
  55. package/dist/lib/parsers/parse-basis.d.ts +11 -1
  56. package/dist/lib/parsers/parse-basis.d.ts.map +1 -1
  57. package/dist/lib/parsers/parse-basis.js +10 -7
  58. package/dist/lib/parsers/parse-basis.js.map +1 -0
  59. package/dist/lib/parsers/parse-compressed-texture.js +1 -0
  60. package/dist/lib/parsers/parse-compressed-texture.js.map +1 -0
  61. package/dist/lib/parsers/parse-crunch.js +1 -0
  62. package/dist/lib/parsers/parse-crunch.js.map +1 -0
  63. package/dist/lib/parsers/parse-dds.js +1 -0
  64. package/dist/lib/parsers/parse-dds.js.map +1 -0
  65. package/dist/lib/parsers/parse-ktx.js +1 -0
  66. package/dist/lib/parsers/parse-ktx.js.map +1 -0
  67. package/dist/lib/parsers/parse-npy.js +1 -0
  68. package/dist/lib/parsers/parse-npy.js.map +1 -0
  69. package/dist/lib/parsers/parse-pvr.js +1 -0
  70. package/dist/lib/parsers/parse-pvr.js.map +1 -0
  71. package/dist/lib/texture-api/async-deep-map.js +1 -0
  72. package/dist/lib/texture-api/async-deep-map.js.map +1 -0
  73. package/dist/lib/texture-api/deep-load.js +1 -0
  74. package/dist/lib/texture-api/deep-load.js.map +1 -0
  75. package/dist/lib/texture-api/generate-url.js +1 -0
  76. package/dist/lib/texture-api/generate-url.js.map +1 -0
  77. package/dist/lib/texture-api/load-image-array.js +1 -0
  78. package/dist/lib/texture-api/load-image-array.js.map +1 -0
  79. package/dist/lib/texture-api/load-image-cube.js +1 -0
  80. package/dist/lib/texture-api/load-image-cube.js.map +1 -0
  81. package/dist/lib/texture-api/load-image.js +1 -0
  82. package/dist/lib/texture-api/load-image.js.map +1 -0
  83. package/dist/lib/texture-api/texture-api-types.js +1 -0
  84. package/dist/lib/texture-api/texture-api-types.js.map +1 -0
  85. package/dist/lib/utils/extract-mipmap-images.js +1 -0
  86. package/dist/lib/utils/extract-mipmap-images.js.map +1 -0
  87. package/dist/lib/utils/ktx-format-helper.js +1 -0
  88. package/dist/lib/utils/ktx-format-helper.js.map +1 -0
  89. package/dist/lib/utils/texture-formats.js +1 -0
  90. package/dist/lib/utils/texture-formats.js.map +1 -0
  91. package/dist/lib/utils/version.js +2 -1
  92. package/dist/lib/utils/version.js.map +1 -0
  93. package/dist/libs/libs/README.md +9 -0
  94. package/dist/libs/libs/basis_encoder.js +21 -0
  95. package/dist/libs/libs/basis_encoder.wasm +0 -0
  96. package/dist/libs/libs/basis_transcoder.js +22 -0
  97. package/dist/libs/libs/basis_transcoder.wasm +0 -0
  98. package/dist/libs/libs/crunch.js +136 -0
  99. package/dist/npy-loader.js +1 -0
  100. package/dist/npy-loader.js.map +1 -0
  101. package/dist/npy-worker.d.ts +2 -0
  102. package/dist/npy-worker.d.ts.map +1 -0
  103. package/dist/npy-worker.js +5 -2
  104. package/dist/npy-worker.js.map +1 -0
  105. package/dist/workers/basis-worker-node.js +1 -0
  106. package/dist/workers/basis-worker-node.js.map +1 -0
  107. package/dist/workers/basis-worker.js +1 -0
  108. package/dist/workers/basis-worker.js.map +1 -0
  109. package/dist/workers/compressed-texture-worker.js +1 -1
  110. package/dist/workers/compressed-texture-worker.js.map +1 -0
  111. package/dist/workers/crunch-worker.js +1 -0
  112. package/dist/workers/crunch-worker.js.map +1 -0
  113. package/dist/workers/ktx2-basis-writer-worker-node.js +1 -0
  114. package/dist/workers/ktx2-basis-writer-worker-node.js.map +1 -0
  115. package/dist/workers/ktx2-basis-writer-worker.js +1 -0
  116. package/dist/workers/ktx2-basis-writer-worker.js.map +1 -0
  117. package/dist/workers/npy-worker.js +1 -0
  118. package/dist/workers/npy-worker.js.map +1 -0
  119. package/package.json +27 -6
  120. package/src/basis-worker.ts +7 -0
  121. package/src/compressed-texture-loader.ts +3 -4
  122. package/src/compressed-texture-worker.ts +6 -0
  123. package/src/crunch-worker.ts +6 -0
  124. package/src/ktx2-basis-writer-worker.ts +6 -0
  125. package/src/lib/encoders/encode-ktx.ts +1 -1
  126. package/src/lib/encoders/encode-ktx2-basis-texture.ts +3 -2
  127. package/src/lib/parsers/basis-module-loader.ts +5 -5
  128. package/src/lib/parsers/parse-basis.ts +40 -12
  129. package/src/npy-worker.ts +6 -0
  130. package/src/workers/compressed-texture-worker.ts +0 -1
@@ -34,3 +34,4 @@ export const BasisLoader = {
34
34
  ...BasisWorkerLoader,
35
35
  parse: parseBasis
36
36
  };
37
+ //# sourceMappingURL=basis-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basis-loader.js","sourceRoot":"","sources":["../src/basis-loader.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAIpC,OAAO,EAAC,OAAO,EAAC,+BAA4B;AAC5C,OAAO,EAAC,UAAU,EAAC,qCAAkC;AAmBrD;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,QAAQ,EAAE,IAAmC;IAC7C,SAAS,EAAE,IAAa;IAExB,IAAI,EAAE,OAAO;IACb,EAAE,EAAE,OAAO;IACX,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,CAAC,0BAA0B,EAAE,YAAY,CAAC;IACrD,KAAK,EAAE,CAAC,IAAI,CAAC;IACb,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE;QACP,KAAK,EAAE;YACL,MAAM,EAAE,MAAM;YACd,WAAW,EAAE,OAAO;YACpB,eAAe,EAAE,MAAM;YACvB,MAAM,EAAE,YAAY;SACrB;KACF;CACqE,CAAC;AAEzE;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,GAAG,iBAAiB;IACpB,KAAK,EAAE,UAAU;CAC0D,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
  // ../loader-utils/src/lib/module-utils/js-module-utils.ts
59810
59813
  function registerJSModules(modules) {
59811
59814
  globalThis.loaders ||= {};
@@ -59828,8 +59831,9 @@ function getVersion() {
59828
59831
  "loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN."
59829
59832
  );
59830
59833
  globalThis._loadersgl_.version = NPM_TAG;
59834
+ warningIssued = true;
59831
59835
  } else {
59832
- globalThis._loadersgl_.version = "4.4.0-alpha.1";
59836
+ globalThis._loadersgl_.version = "4.4.0-alpha.9";
59833
59837
  }
59834
59838
  }
59835
59839
  return globalThis._loadersgl_.version;
@@ -60000,6 +60004,9 @@ async function loadLibrary(libraryUrl, moduleName = null, options = {}, libraryN
60000
60004
  return await loadLibraryPromises[libraryUrl];
60001
60005
  }
60002
60006
  function getLibraryUrl(library, moduleName, options = {}, libraryName = null) {
60007
+ if (options == null ? void 0 : options.core) {
60008
+ throw new Error("loadLibrary: options.core must be pre-normalized");
60009
+ }
60003
60010
  if (!options.useLocalLibraries && library.startsWith("http")) {
60004
60011
  return library;
60005
60012
  }
@@ -60025,10 +60032,20 @@ async function loadLibraryFromFile(libraryUrl) {
60025
60032
  return await loadAsArrayBuffer(libraryUrl);
60026
60033
  }
60027
60034
  if (!isBrowser2) {
60035
+ const { requireFromFile: requireFromFile2 } = globalThis.loaders || {};
60028
60036
  try {
60029
- const { requireFromFile: requireFromFile2 } = globalThis.loaders || {};
60030
- return await (requireFromFile2 == null ? void 0 : requireFromFile2(libraryUrl));
60037
+ const result = await (requireFromFile2 == null ? void 0 : requireFromFile2(libraryUrl));
60038
+ if (result || !libraryUrl.includes("/dist/libs/")) {
60039
+ return result;
60040
+ }
60041
+ return await (requireFromFile2 == null ? void 0 : requireFromFile2(libraryUrl.replace("/dist/libs/", "/src/libs/")));
60031
60042
  } catch (error) {
60043
+ if (libraryUrl.includes("/dist/libs/")) {
60044
+ try {
60045
+ return await (requireFromFile2 == null ? void 0 : requireFromFile2(libraryUrl.replace("/dist/libs/", "/src/libs/")));
60046
+ } catch {
60047
+ }
60048
+ }
60032
60049
  console.error(error);
60033
60050
  return null;
60034
60051
  }
@@ -60064,7 +60081,14 @@ async function loadAsArrayBuffer(url) {
60064
60081
  const response = await fetch(url);
60065
60082
  return await response.arrayBuffer();
60066
60083
  }
60067
- return await readFileAsArrayBuffer2(url);
60084
+ try {
60085
+ return await readFileAsArrayBuffer2(url);
60086
+ } catch {
60087
+ if (url.includes("/dist/libs/")) {
60088
+ return await readFileAsArrayBuffer2(url.replace("/dist/libs/", "/src/libs/"));
60089
+ }
60090
+ throw new Error(`Failed to load ArrayBuffer from ${url}`);
60091
+ }
60068
60092
  }
60069
60093
  async function loadAsText(url) {
60070
60094
  const { readFileAsText: readFileAsText2 } = globalThis.loaders || {};
@@ -60072,7 +60096,14 @@ async function loadAsText(url) {
60072
60096
  const response = await fetch(url);
60073
60097
  return await response.text();
60074
60098
  }
60075
- return await readFileAsText2(url);
60099
+ try {
60100
+ return await readFileAsText2(url);
60101
+ } catch {
60102
+ if (url.includes("/dist/libs/")) {
60103
+ return await readFileAsText2(url.replace("/dist/libs/", "/src/libs/"));
60104
+ }
60105
+ throw new Error(`Failed to load text from ${url}`);
60106
+ }
60076
60107
  }
60077
60108
 
60078
60109
  // ../loader-utils/src/lib/worker-loader-utils/create-loader-worker.ts
@@ -60151,7 +60182,10 @@ async function parseData({
60151
60182
  options = {
60152
60183
  ...options,
60153
60184
  modules: loader && loader.options && loader.options.modules || {},
60154
- worker: false
60185
+ core: {
60186
+ ...options.core,
60187
+ worker: false
60188
+ }
60155
60189
  };
60156
60190
  return await parser(data, { ...options }, context, loader);
60157
60191
  }
@@ -60178,10 +60212,26 @@ function concatenateArrayBuffersFromArray(sources) {
60178
60212
  async function concatenateArrayBuffersAsync(asyncIterator) {
60179
60213
  const arrayBuffers = [];
60180
60214
  for await (const chunk of asyncIterator) {
60181
- arrayBuffers.push(chunk);
60215
+ arrayBuffers.push(copyToArrayBuffer(chunk));
60182
60216
  }
60183
60217
  return concatenateArrayBuffers(...arrayBuffers);
60184
60218
  }
60219
+ function copyToArrayBuffer(chunk) {
60220
+ if (chunk instanceof ArrayBuffer) {
60221
+ return chunk;
60222
+ }
60223
+ if (ArrayBuffer.isView(chunk)) {
60224
+ const { buffer, byteOffset, byteLength } = chunk;
60225
+ return copyFromBuffer(buffer, byteOffset, byteLength);
60226
+ }
60227
+ return copyFromBuffer(chunk);
60228
+ }
60229
+ function copyFromBuffer(buffer, byteOffset = 0, byteLength = buffer.byteLength - byteOffset) {
60230
+ const view = new Uint8Array(buffer, byteOffset, byteLength);
60231
+ const copy = new Uint8Array(view.length);
60232
+ copy.set(view);
60233
+ return copy.buffer;
60234
+ }
60185
60235
 
60186
60236
  // ../loader-utils/src/lib/path-utils/file-aliases.ts
60187
60237
  var pathPrefix = "";
@@ -60199,6 +60249,66 @@ function resolvePath(filename) {
60199
60249
  return filename;
60200
60250
  }
60201
60251
 
60252
+ // ../loader-utils/src/lib/node/buffer.ts
60253
+ function toArrayBuffer(buffer) {
60254
+ if (Buffer.isBuffer(buffer)) {
60255
+ const typedArray = new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.length);
60256
+ return typedArray.slice().buffer;
60257
+ }
60258
+ return buffer;
60259
+ }
60260
+
60261
+ // ../loader-utils/src/lib/binary-utils/memory-conversion-utils.ts
60262
+ function isBuffer(value) {
60263
+ return value && typeof value === "object" && value.isBuffer;
60264
+ }
60265
+ function toArrayBuffer2(data) {
60266
+ if (isBuffer(data)) {
60267
+ return toArrayBuffer(data);
60268
+ }
60269
+ if (data instanceof ArrayBuffer) {
60270
+ return data;
60271
+ }
60272
+ if (isSharedArrayBuffer(data)) {
60273
+ return copyToArrayBuffer2(data);
60274
+ }
60275
+ if (ArrayBuffer.isView(data)) {
60276
+ const buffer = data.buffer;
60277
+ if (data.byteOffset === 0 && data.byteLength === data.buffer.byteLength) {
60278
+ return buffer;
60279
+ }
60280
+ return buffer.slice(data.byteOffset, data.byteOffset + data.byteLength);
60281
+ }
60282
+ if (typeof data === "string") {
60283
+ const text = data;
60284
+ const uint8Array = new TextEncoder().encode(text);
60285
+ return uint8Array.buffer;
60286
+ }
60287
+ if (data && typeof data === "object" && data._toArrayBuffer) {
60288
+ return data._toArrayBuffer();
60289
+ }
60290
+ throw new Error("toArrayBuffer");
60291
+ }
60292
+ function ensureArrayBuffer(bufferSource) {
60293
+ if (bufferSource instanceof ArrayBuffer) {
60294
+ return bufferSource;
60295
+ }
60296
+ if (isSharedArrayBuffer(bufferSource)) {
60297
+ return copyToArrayBuffer2(bufferSource);
60298
+ }
60299
+ const { buffer, byteOffset, byteLength } = bufferSource;
60300
+ if (buffer instanceof ArrayBuffer && byteOffset === 0 && byteLength === buffer.byteLength) {
60301
+ return buffer;
60302
+ }
60303
+ return copyToArrayBuffer2(buffer, byteOffset, byteLength);
60304
+ }
60305
+ function copyToArrayBuffer2(buffer, byteOffset = 0, byteLength = buffer.byteLength - byteOffset) {
60306
+ const view = new Uint8Array(buffer, byteOffset, byteLength);
60307
+ const copy = new Uint8Array(view.length);
60308
+ copy.set(view);
60309
+ return copy.buffer;
60310
+ }
60311
+
60202
60312
  // ../polyfills/src/filesystems/node-file.ts
60203
60313
  var import_fs = __toESM(require("fs"), 1);
60204
60314
  var NodeFile = class {
@@ -60324,8 +60434,6 @@ var import_stream = require("stream");
60324
60434
 
60325
60435
  // ../polyfills/src/filesystems/stream-utils.node.ts
60326
60436
  var import_zlib = __toESM(require("zlib"), 1);
60327
- var isArrayBuffer = (x2) => x2 && x2 instanceof ArrayBuffer;
60328
- var isBuffer = (x2) => x2 && x2 instanceof Buffer;
60329
60437
  function decompressReadStream(readStream, headers) {
60330
60438
  switch (headers == null ? void 0 : headers.get("content-encoding")) {
60331
60439
  case "br":
@@ -60347,7 +60455,7 @@ async function concatenateReadStream(readStream) {
60347
60455
  if (typeof chunk === "string") {
60348
60456
  reject(new Error("Read stream not binary"));
60349
60457
  }
60350
- arrayBufferChunks.push(toArrayBuffer(chunk));
60458
+ arrayBufferChunks.push(toArrayBuffer2(chunk));
60351
60459
  });
60352
60460
  readStream.on("end", () => {
60353
60461
  const arrayBuffer = concatenateArrayBuffers2(arrayBufferChunks);
@@ -60368,27 +60476,6 @@ function concatenateArrayBuffers2(sources) {
60368
60476
  }
60369
60477
  return result.buffer;
60370
60478
  }
60371
- function toArrayBuffer(data) {
60372
- if (isArrayBuffer(data)) {
60373
- return data;
60374
- }
60375
- if (isBuffer(data)) {
60376
- const typedArray = new Uint8Array(data);
60377
- return typedArray.buffer;
60378
- }
60379
- if (ArrayBuffer.isView(data)) {
60380
- return data.buffer;
60381
- }
60382
- if (typeof data === "string") {
60383
- const text = data;
60384
- const uint8Array = new TextEncoder().encode(text);
60385
- return uint8Array.buffer;
60386
- }
60387
- if (data && typeof data === "object" && data._toArrayBuffer) {
60388
- return data._toArrayBuffer();
60389
- }
60390
- throw new Error(`toArrayBuffer(${JSON.stringify(data, null, 2).slice(10)})`);
60391
- }
60392
60479
 
60393
60480
  // ../polyfills/src/filesystems/fetch-node.ts
60394
60481
  var isBoolean = (x2) => typeof x2 === "boolean";
@@ -60402,10 +60489,10 @@ async function fetchNode(url, options) {
60402
60489
  noqueryUrl = resolvePath(noqueryUrl);
60403
60490
  const responseHeaders = new Headers();
60404
60491
  if (url.endsWith(".gz")) {
60405
- responseHeaders["content-encoding"] = "gzip";
60492
+ responseHeaders.set("content-encoding", "gzip");
60406
60493
  }
60407
60494
  if (url.endsWith(".br")) {
60408
- responseHeaders["content-encoding"] = "br";
60495
+ responseHeaders.set("content-encoding", "br");
60409
60496
  }
60410
60497
  try {
60411
60498
  const body = await new Promise((resolve, reject) => {
@@ -63086,7 +63173,7 @@ async function readFileAsArrayBuffer(filename) {
63086
63173
  return await response.arrayBuffer();
63087
63174
  }
63088
63175
  const buffer = import_fs3.default.readFileSync(filename);
63089
- return buffer.buffer;
63176
+ return ensureArrayBuffer(buffer.buffer);
63090
63177
  }
63091
63178
  async function readFileAsText(filename) {
63092
63179
  if (filename.startsWith("http")) {
@@ -63300,8 +63387,6 @@ var import_http = __toESM(require("http"), 1);
63300
63387
  var import_https = __toESM(require("https"), 1);
63301
63388
 
63302
63389
  // ../polyfills/src/fetch/decode-data-uri.ts
63303
- var isArrayBuffer2 = (x2) => x2 && x2 instanceof ArrayBuffer;
63304
- var isBuffer2 = (x2) => x2 && x2 instanceof Buffer;
63305
63390
  function decodeDataUri(uri) {
63306
63391
  const dataIndex = uri.indexOf(",");
63307
63392
  let buffer;
@@ -63320,27 +63405,6 @@ function decodeDataUri(uri) {
63320
63405
  }
63321
63406
  return { arrayBuffer: toArrayBuffer2(buffer), mimeType };
63322
63407
  }
63323
- function toArrayBuffer2(data) {
63324
- if (isArrayBuffer2(data)) {
63325
- return data;
63326
- }
63327
- if (isBuffer2(data)) {
63328
- const typedArray = new Uint8Array(data);
63329
- return typedArray.buffer;
63330
- }
63331
- if (ArrayBuffer.isView(data)) {
63332
- return data.buffer;
63333
- }
63334
- if (typeof data === "string") {
63335
- const text = data;
63336
- const uint8Array = new TextEncoder().encode(text);
63337
- return uint8Array.buffer;
63338
- }
63339
- if (data && typeof data === "object" && data._toArrayBuffer) {
63340
- return data._toArrayBuffer();
63341
- }
63342
- throw new Error(`toArrayBuffer(${JSON.stringify(data, null, 2).slice(10)})`);
63343
- }
63344
63408
 
63345
63409
  // ../polyfills/src/fetch/fetch-polyfill.ts
63346
63410
  var isDataURL = (url) => url.startsWith("data:");
@@ -63494,7 +63558,7 @@ if (nodeVersion2 < 18) {
63494
63558
  }
63495
63559
 
63496
63560
  // src/lib/utils/version.ts
63497
- var VERSION2 = true ? "4.4.0-alpha.1" : "latest";
63561
+ var VERSION2 = true ? "4.4.0-alpha.9" : "latest";
63498
63562
 
63499
63563
  // src/lib/parsers/basis-module-loader.ts
63500
63564
  var BASIS_EXTERNAL_LIBRARIES = {
@@ -63759,18 +63823,19 @@ var OutputFormat = {
63759
63823
  bgr565: { basisFormat: 15, compressed: false },
63760
63824
  rgba4444: { basisFormat: 16, compressed: false }
63761
63825
  };
63762
- async function parseBasis(data, options) {
63763
- if (options.basis.containerFormat === "auto") {
63826
+ async function parseBasis(data, options = {}) {
63827
+ var _a;
63828
+ if (!((_a = options.basis) == null ? void 0 : _a.containerFormat) || options.basis.containerFormat === "auto") {
63764
63829
  if (isKTX(data)) {
63765
- const fileConstructors = await loadBasisEncoderModule(options);
63830
+ const fileConstructors = await loadBasisEncoderModule((options == null ? void 0 : options.core) || {});
63766
63831
  return parseKTX2File(fileConstructors.KTX2File, data, options);
63767
63832
  }
63768
- const { BasisFile } = await loadBasisTranscoderModule(options);
63833
+ const { BasisFile } = await loadBasisTranscoderModule((options == null ? void 0 : options.core) || {});
63769
63834
  return parseBasisFile(BasisFile, data, options);
63770
63835
  }
63771
63836
  switch (options.basis.module) {
63772
63837
  case "encoder":
63773
- const fileConstructors = await loadBasisEncoderModule(options);
63838
+ const fileConstructors = await loadBasisEncoderModule((options == null ? void 0 : options.core) || {});
63774
63839
  switch (options.basis.containerFormat) {
63775
63840
  case "ktx2":
63776
63841
  return parseKTX2File(fileConstructors.KTX2File, data, options);
@@ -63780,7 +63845,7 @@ async function parseBasis(data, options) {
63780
63845
  }
63781
63846
  case "transcoder":
63782
63847
  default:
63783
- const { BasisFile } = await loadBasisTranscoderModule(options);
63848
+ const { BasisFile } = await loadBasisTranscoderModule(options.core || {});
63784
63849
  return parseBasisFile(BasisFile, data, options);
63785
63850
  }
63786
63851
  }
@@ -63883,7 +63948,8 @@ function transcodeKTX2Image(ktx2File, levelIndex, options) {
63883
63948
  };
63884
63949
  }
63885
63950
  function getBasisOptions(options, hasAlpha) {
63886
- let format = options && options.basis && options.basis.format;
63951
+ var _a;
63952
+ let format = (_a = options.basis) == null ? void 0 : _a.format;
63887
63953
  if (format === "auto") {
63888
63954
  format = selectSupportedBasisFormat();
63889
63955
  }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=basis-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basis-worker.d.ts","sourceRoot":"","sources":["../src/basis-worker.ts"],"names":[],"mappings":""}
@@ -20,8 +20,9 @@
20
20
  "loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN."
21
21
  );
22
22
  globalThis._loadersgl_.version = NPM_TAG;
23
+ warningIssued = true;
23
24
  } else {
24
- globalThis._loadersgl_.version = "4.4.0-alpha.1";
25
+ globalThis._loadersgl_.version = "4.4.0-alpha.9";
25
26
  }
26
27
  }
27
28
  return globalThis._loadersgl_.version;
@@ -184,6 +185,9 @@
184
185
  return await loadLibraryPromises[libraryUrl];
185
186
  }
186
187
  function getLibraryUrl(library, moduleName, options = {}, libraryName = null) {
188
+ if (options?.core) {
189
+ throw new Error("loadLibrary: options.core must be pre-normalized");
190
+ }
187
191
  if (!options.useLocalLibraries && library.startsWith("http")) {
188
192
  return library;
189
193
  }
@@ -209,10 +213,20 @@
209
213
  return await loadAsArrayBuffer(libraryUrl);
210
214
  }
211
215
  if (!isBrowser) {
216
+ const { requireFromFile } = globalThis.loaders || {};
212
217
  try {
213
- const { requireFromFile } = globalThis.loaders || {};
214
- return await requireFromFile?.(libraryUrl);
218
+ const result = await requireFromFile?.(libraryUrl);
219
+ if (result || !libraryUrl.includes("/dist/libs/")) {
220
+ return result;
221
+ }
222
+ return await requireFromFile?.(libraryUrl.replace("/dist/libs/", "/src/libs/"));
215
223
  } catch (error) {
224
+ if (libraryUrl.includes("/dist/libs/")) {
225
+ try {
226
+ return await requireFromFile?.(libraryUrl.replace("/dist/libs/", "/src/libs/"));
227
+ } catch {
228
+ }
229
+ }
216
230
  console.error(error);
217
231
  return null;
218
232
  }
@@ -248,7 +262,14 @@
248
262
  const response = await fetch(url);
249
263
  return await response.arrayBuffer();
250
264
  }
251
- return await readFileAsArrayBuffer(url);
265
+ try {
266
+ return await readFileAsArrayBuffer(url);
267
+ } catch {
268
+ if (url.includes("/dist/libs/")) {
269
+ return await readFileAsArrayBuffer(url.replace("/dist/libs/", "/src/libs/"));
270
+ }
271
+ throw new Error(`Failed to load ArrayBuffer from ${url}`);
272
+ }
252
273
  }
253
274
  async function loadAsText(url) {
254
275
  const { readFileAsText } = globalThis.loaders || {};
@@ -256,7 +277,14 @@
256
277
  const response = await fetch(url);
257
278
  return await response.text();
258
279
  }
259
- return await readFileAsText(url);
280
+ try {
281
+ return await readFileAsText(url);
282
+ } catch {
283
+ if (url.includes("/dist/libs/")) {
284
+ return await readFileAsText(url.replace("/dist/libs/", "/src/libs/"));
285
+ }
286
+ throw new Error(`Failed to load text from ${url}`);
287
+ }
260
288
  }
261
289
 
262
290
  // ../loader-utils/src/lib/worker-loader-utils/create-loader-worker.ts
@@ -335,13 +363,16 @@
335
363
  options = {
336
364
  ...options,
337
365
  modules: loader && loader.options && loader.options.modules || {},
338
- worker: false
366
+ core: {
367
+ ...options.core,
368
+ worker: false
369
+ }
339
370
  };
340
371
  return await parser(data, { ...options }, context, loader);
341
372
  }
342
373
 
343
374
  // src/lib/utils/version.ts
344
- var VERSION2 = true ? "4.4.0-alpha.1" : "latest";
375
+ var VERSION2 = true ? "4.4.0-alpha.9" : "latest";
345
376
 
346
377
  // src/lib/parsers/basis-module-loader.ts
347
378
  var BASIS_EXTERNAL_LIBRARIES = {
@@ -606,18 +637,18 @@
606
637
  bgr565: { basisFormat: 15, compressed: false },
607
638
  rgba4444: { basisFormat: 16, compressed: false }
608
639
  };
609
- async function parseBasis(data, options) {
610
- if (options.basis.containerFormat === "auto") {
640
+ async function parseBasis(data, options = {}) {
641
+ if (!options.basis?.containerFormat || options.basis.containerFormat === "auto") {
611
642
  if (isKTX(data)) {
612
- const fileConstructors = await loadBasisEncoderModule(options);
643
+ const fileConstructors = await loadBasisEncoderModule(options?.core || {});
613
644
  return parseKTX2File(fileConstructors.KTX2File, data, options);
614
645
  }
615
- const { BasisFile } = await loadBasisTranscoderModule(options);
646
+ const { BasisFile } = await loadBasisTranscoderModule(options?.core || {});
616
647
  return parseBasisFile(BasisFile, data, options);
617
648
  }
618
649
  switch (options.basis.module) {
619
650
  case "encoder":
620
- const fileConstructors = await loadBasisEncoderModule(options);
651
+ const fileConstructors = await loadBasisEncoderModule(options?.core || {});
621
652
  switch (options.basis.containerFormat) {
622
653
  case "ktx2":
623
654
  return parseKTX2File(fileConstructors.KTX2File, data, options);
@@ -627,7 +658,7 @@
627
658
  }
628
659
  case "transcoder":
629
660
  default:
630
- const { BasisFile } = await loadBasisTranscoderModule(options);
661
+ const { BasisFile } = await loadBasisTranscoderModule(options.core || {});
631
662
  return parseBasisFile(BasisFile, data, options);
632
663
  }
633
664
  }
@@ -730,7 +761,7 @@
730
761
  };
731
762
  }
732
763
  function getBasisOptions(options, hasAlpha) {
733
- let format = options && options.basis && options.basis.format;
764
+ let format = options.basis?.format;
734
765
  if (format === "auto") {
735
766
  format = selectSupportedBasisFormat();
736
767
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basis-worker.js","sourceRoot":"","sources":["../src/basis-worker.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,6EAA6E;AAC7E,gFAAgF;AAChF,MAAM,CAAC,IAAI,GAAG,CAAC,2BAA2B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
+ import type { StrictLoaderOptions } from '@loaders.gl/loader-utils';
1
2
  /** Options for the CompressedTextureLoader */
2
- export type CompressedTextureLoaderOptions = {
3
+ export type CompressedTextureLoaderOptions = StrictLoaderOptions & {
3
4
  'compressed-texture'?: {
4
5
  /** @deprecated Specify path to libraries */
5
6
  libraryPath?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"compressed-texture-loader.d.ts","sourceRoot":"","sources":["../src/compressed-texture-loader.ts"],"names":[],"mappings":"AASA,8CAA8C;AAC9C,MAAM,MAAM,8BAA8B,GAAG;IAC3C,oBAAoB,CAAC,EAAE;QACrB,4CAA4C;QAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,oCAAoC;QACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,8EAA8E;QAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,6BAA6B;uBACX,GAAG;wBACb,KAAK;;;;;;;;;;;;;;;CA2B6C,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,uBAAuB;kCAEP,WAAW,YAAY,8BAA8B;uBAnCnD,GAAG;wBACb,KAAK;;;;;;;;;;;;;;;CAoDuD,CAAC"}
1
+ {"version":3,"file":"compressed-texture-loader.d.ts","sourceRoot":"","sources":["../src/compressed-texture-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAA2B,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAK5F,8CAA8C;AAC9C,MAAM,MAAM,8BAA8B,GAAG,mBAAmB,GAAG;IACjE,oBAAoB,CAAC,EAAE;QACrB,4CAA4C;QAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,oCAAoC;QACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,8EAA8E;QAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,6BAA6B;uBACX,GAAG;wBACb,KAAK;;;;;;;;;;;;;;;CA2B6C,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,uBAAuB;kCAEP,WAAW,YAAY,8BAA8B;uBAnCnD,GAAG;wBACb,KAAK;;;;;;;;;;;;;;;CAmDuD,CAAC"}
@@ -42,14 +42,13 @@ export const CompressedTextureWorkerLoader = {
42
42
  export const CompressedTextureLoader = {
43
43
  ...CompressedTextureWorkerLoader,
44
44
  parse: async (arrayBuffer, options) => {
45
+ options = { ...options };
45
46
  if (options?.['compressed-texture']?.useBasis) {
46
- // @ts-expect-error TODO not allowed to modify inputs
47
47
  options.basis = {
48
48
  format: {
49
49
  alpha: 'BC3',
50
50
  noAlpha: 'BC1'
51
51
  },
52
- // @ts-expect-error TODO not allowed to modify inputs
53
52
  ...options.basis,
54
53
  containerFormat: 'ktx2',
55
54
  module: 'encoder'
@@ -60,3 +59,4 @@ export const CompressedTextureLoader = {
60
59
  return parseCompressedTexture(arrayBuffer);
61
60
  }
62
61
  };
62
+ //# sourceMappingURL=compressed-texture-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compressed-texture-loader.js","sourceRoot":"","sources":["../src/compressed-texture-loader.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,OAAO,EAAC,+BAA4B;AAC5C,OAAO,EAAC,sBAAsB,EAAC,kDAA+C;AAC9E,OAAO,EAAC,UAAU,EAAC,qCAAkC;AAcrD;;GAEG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,QAAQ,EAAE,IAAsB;IAChC,SAAS,EAAE,IAAa;IAExB,IAAI,EAAE,oBAAoB;IAC1B,EAAE,EAAE,oBAAoB;IACxB,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE;QACV,KAAK;QACL,MAAM;QACN,KAAK,EAAE,8DAA8D;QACrE,KAAK,CAAC,iCAAiC;KACxC;IACD,SAAS,EAAE;QACT,YAAY;QACZ,WAAW;QACX,kBAAkB;QAClB,aAAa;QACb,0BAA0B;KAC3B;IACD,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE;QACP,oBAAoB,EAAE;YACpB,WAAW,EAAE,OAAO;YACpB,QAAQ,EAAE,KAAK;SAChB;KACF;CACoE,CAAC;AAExE;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,GAAG,6BAA6B;IAChC,KAAK,EAAE,KAAK,EAAE,WAAwB,EAAE,OAAwC,EAAE,EAAE;QAClF,OAAO,GAAG,EAAC,GAAG,OAAO,EAAC,CAAC;QACvB,IAAI,OAAO,EAAE,CAAC,oBAAoB,CAAC,EAAE,QAAQ,EAAE,CAAC;YAC9C,OAAO,CAAC,KAAK,GAAG;gBACd,MAAM,EAAE;oBACN,KAAK,EAAE,KAAK;oBACZ,OAAO,EAAE,KAAK;iBACf;gBACD,GAAG,OAAO,CAAC,KAAK;gBAChB,eAAe,EAAE,MAAM;gBACvB,MAAM,EAAE,SAAS;aAClB,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACtD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;QACD,OAAO,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;CAC8E,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=compressed-texture-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compressed-texture-worker.d.ts","sourceRoot":"","sources":["../src/compressed-texture-worker.ts"],"names":[],"mappings":""}