@loaders.gl/textures 4.4.0-alpha.1 → 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 +28 -7
  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
@@ -27,8 +27,9 @@
27
27
  "loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN."
28
28
  );
29
29
  globalThis._loadersgl_.version = NPM_TAG;
30
+ warningIssued = true;
30
31
  } else {
31
- globalThis._loadersgl_.version = "4.4.0-alpha.0";
32
+ globalThis._loadersgl_.version = "4.4.0-alpha.9";
32
33
  }
33
34
  }
34
35
  return globalThis._loadersgl_.version;
@@ -191,6 +192,9 @@
191
192
  return await loadLibraryPromises[libraryUrl];
192
193
  }
193
194
  function getLibraryUrl(library, moduleName, options = {}, libraryName = null) {
195
+ if (options?.core) {
196
+ throw new Error("loadLibrary: options.core must be pre-normalized");
197
+ }
194
198
  if (!options.useLocalLibraries && library.startsWith("http")) {
195
199
  return library;
196
200
  }
@@ -216,10 +220,20 @@
216
220
  return await loadAsArrayBuffer(libraryUrl);
217
221
  }
218
222
  if (!isBrowser) {
223
+ const { requireFromFile } = globalThis.loaders || {};
219
224
  try {
220
- const { requireFromFile } = globalThis.loaders || {};
221
- return await requireFromFile?.(libraryUrl);
225
+ const result = await requireFromFile?.(libraryUrl);
226
+ if (result || !libraryUrl.includes("/dist/libs/")) {
227
+ return result;
228
+ }
229
+ return await requireFromFile?.(libraryUrl.replace("/dist/libs/", "/src/libs/"));
222
230
  } catch (error) {
231
+ if (libraryUrl.includes("/dist/libs/")) {
232
+ try {
233
+ return await requireFromFile?.(libraryUrl.replace("/dist/libs/", "/src/libs/"));
234
+ } catch {
235
+ }
236
+ }
223
237
  console.error(error);
224
238
  return null;
225
239
  }
@@ -255,7 +269,14 @@
255
269
  const response = await fetch(url);
256
270
  return await response.arrayBuffer();
257
271
  }
258
- return await readFileAsArrayBuffer(url);
272
+ try {
273
+ return await readFileAsArrayBuffer(url);
274
+ } catch {
275
+ if (url.includes("/dist/libs/")) {
276
+ return await readFileAsArrayBuffer(url.replace("/dist/libs/", "/src/libs/"));
277
+ }
278
+ throw new Error(`Failed to load ArrayBuffer from ${url}`);
279
+ }
259
280
  }
260
281
  async function loadAsText(url) {
261
282
  const { readFileAsText } = globalThis.loaders || {};
@@ -263,7 +284,14 @@
263
284
  const response = await fetch(url);
264
285
  return await response.text();
265
286
  }
266
- return await readFileAsText(url);
287
+ try {
288
+ return await readFileAsText(url);
289
+ } catch {
290
+ if (url.includes("/dist/libs/")) {
291
+ return await readFileAsText(url.replace("/dist/libs/", "/src/libs/"));
292
+ }
293
+ throw new Error(`Failed to load text from ${url}`);
294
+ }
267
295
  }
268
296
 
269
297
  // ../loader-utils/src/lib/worker-loader-utils/create-loader-worker.ts
@@ -342,13 +370,16 @@
342
370
  options = {
343
371
  ...options,
344
372
  modules: loader && loader.options && loader.options.modules || {},
345
- worker: false
373
+ core: {
374
+ ...options.core,
375
+ worker: false
376
+ }
346
377
  };
347
378
  return await parser(data, { ...options }, context, loader);
348
379
  }
349
380
 
350
381
  // src/lib/utils/version.ts
351
- var VERSION2 = true ? "4.4.0-alpha.0" : "latest";
382
+ var VERSION2 = true ? "4.4.0-alpha.9" : "latest";
352
383
 
353
384
  // ../../node_modules/ktx-parse/dist/ktx-parse.modern.js
354
385
  var KHR_SUPERCOMPRESSION_NONE = 0;
@@ -1318,18 +1349,18 @@
1318
1349
  bgr565: { basisFormat: 15, compressed: false },
1319
1350
  rgba4444: { basisFormat: 16, compressed: false }
1320
1351
  };
1321
- async function parseBasis(data, options) {
1322
- if (options.basis.containerFormat === "auto") {
1352
+ async function parseBasis(data, options = {}) {
1353
+ if (!options.basis?.containerFormat || options.basis.containerFormat === "auto") {
1323
1354
  if (isKTX(data)) {
1324
- const fileConstructors = await loadBasisEncoderModule(options);
1355
+ const fileConstructors = await loadBasisEncoderModule(options?.core || {});
1325
1356
  return parseKTX2File(fileConstructors.KTX2File, data, options);
1326
1357
  }
1327
- const { BasisFile } = await loadBasisTranscoderModule(options);
1358
+ const { BasisFile } = await loadBasisTranscoderModule(options?.core || {});
1328
1359
  return parseBasisFile(BasisFile, data, options);
1329
1360
  }
1330
1361
  switch (options.basis.module) {
1331
1362
  case "encoder":
1332
- const fileConstructors = await loadBasisEncoderModule(options);
1363
+ const fileConstructors = await loadBasisEncoderModule(options?.core || {});
1333
1364
  switch (options.basis.containerFormat) {
1334
1365
  case "ktx2":
1335
1366
  return parseKTX2File(fileConstructors.KTX2File, data, options);
@@ -1339,7 +1370,7 @@
1339
1370
  }
1340
1371
  case "transcoder":
1341
1372
  default:
1342
- const { BasisFile } = await loadBasisTranscoderModule(options);
1373
+ const { BasisFile } = await loadBasisTranscoderModule(options.core || {});
1343
1374
  return parseBasisFile(BasisFile, data, options);
1344
1375
  }
1345
1376
  }
@@ -1442,7 +1473,7 @@
1442
1473
  };
1443
1474
  }
1444
1475
  function getBasisOptions(options, hasAlpha) {
1445
- let format = options && options.basis && options.basis.format;
1476
+ let format = options.basis?.format;
1446
1477
  if (format === "auto") {
1447
1478
  format = selectSupportedBasisFormat();
1448
1479
  }
@@ -1509,13 +1540,13 @@
1509
1540
  var CompressedTextureLoader = {
1510
1541
  ...CompressedTextureWorkerLoader,
1511
1542
  parse: async (arrayBuffer, options) => {
1543
+ options = { ...options };
1512
1544
  if (options?.["compressed-texture"]?.useBasis) {
1513
1545
  options.basis = {
1514
1546
  format: {
1515
1547
  alpha: "BC3",
1516
1548
  noAlpha: "BC1"
1517
1549
  },
1518
- // @ts-expect-error TODO not allowed to modify inputs
1519
1550
  ...options.basis,
1520
1551
  containerFormat: "ktx2",
1521
1552
  module: "encoder"
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compressed-texture-worker.js","sourceRoot":"","sources":["../src/compressed-texture-worker.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,6EAA6E;AAC7E,MAAM,CAAC,IAAI,GAAG,CAAC,wCAAwC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC"}
@@ -28,3 +28,4 @@ export const CompressedTextureWriter = {
28
28
  throw new Error('Not implemented');
29
29
  }
30
30
  };
31
+ //# sourceMappingURL=compressed-texture-writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compressed-texture-writer.js","sourceRoot":"","sources":["../src/compressed-texture-writer.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,OAAO,EAAC,+BAA4B;AAC5C,OAAO,EAAC,oCAAoC,EAAC,yCAAsC;AAiBnF;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,IAAI,EAAE,uBAAuB;IAC7B,EAAE,EAAE,KAAK;IACT,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,OAAO;IAEhB,UAAU,EAAE,CAAC,KAAK,CAAC;IACnB,SAAS,EAAE,CAAC,kBAAkB,EAAE,aAAa,EAAE,0BAA0B,CAAC;IAE1E,OAAO,EAAE;QACP,OAAO,EAAE;YACP,MAAM,EAAE,MAAM;YACd,WAAW,EAAE,MAAM;YACnB,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,KAAK;YACZ,SAAS,EAAE,EAAE;SACd;KACF;IAED,cAAc,EAAE,oCAAoC;IACpD,MAAM;QACJ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;CACqF,CAAC"}
@@ -23,3 +23,4 @@ export const CrunchLoader = {
23
23
  }
24
24
  }
25
25
  };
26
+ //# sourceMappingURL=crunch-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crunch-loader.js","sourceRoot":"","sources":["../src/crunch-loader.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAIpC,OAAO,EAAC,OAAO,EAAC,+BAA4B;AAa5C;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,QAAQ,EAAE,IAAiC;IAC3C,SAAS,EAAE,IAAa;IAExB,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE,CAAC,KAAK,CAAC;IACnB,SAAS,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,0BAA0B,CAAC;IACnE,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE;QACP,MAAM,EAAE;YACN,WAAW,EAAE,OAAO;SACrB;KACF;CACoE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=crunch-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crunch-worker.d.ts","sourceRoot":"","sources":["../src/crunch-worker.ts"],"names":[],"mappings":""}
@@ -27,8 +27,9 @@
27
27
  "loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN."
28
28
  );
29
29
  globalThis._loadersgl_.version = NPM_TAG;
30
+ warningIssued = true;
30
31
  } else {
31
- globalThis._loadersgl_.version = "4.4.0-alpha.0";
32
+ globalThis._loadersgl_.version = "4.4.0-alpha.9";
32
33
  }
33
34
  }
34
35
  return globalThis._loadersgl_.version;
@@ -191,6 +192,9 @@
191
192
  return await loadLibraryPromises[libraryUrl];
192
193
  }
193
194
  function getLibraryUrl(library, moduleName, options = {}, libraryName = null) {
195
+ if (options?.core) {
196
+ throw new Error("loadLibrary: options.core must be pre-normalized");
197
+ }
194
198
  if (!options.useLocalLibraries && library.startsWith("http")) {
195
199
  return library;
196
200
  }
@@ -216,10 +220,20 @@
216
220
  return await loadAsArrayBuffer(libraryUrl);
217
221
  }
218
222
  if (!isBrowser) {
223
+ const { requireFromFile } = globalThis.loaders || {};
219
224
  try {
220
- const { requireFromFile } = globalThis.loaders || {};
221
- return await requireFromFile?.(libraryUrl);
225
+ const result = await requireFromFile?.(libraryUrl);
226
+ if (result || !libraryUrl.includes("/dist/libs/")) {
227
+ return result;
228
+ }
229
+ return await requireFromFile?.(libraryUrl.replace("/dist/libs/", "/src/libs/"));
222
230
  } catch (error) {
231
+ if (libraryUrl.includes("/dist/libs/")) {
232
+ try {
233
+ return await requireFromFile?.(libraryUrl.replace("/dist/libs/", "/src/libs/"));
234
+ } catch {
235
+ }
236
+ }
223
237
  console.error(error);
224
238
  return null;
225
239
  }
@@ -255,7 +269,14 @@
255
269
  const response = await fetch(url);
256
270
  return await response.arrayBuffer();
257
271
  }
258
- return await readFileAsArrayBuffer(url);
272
+ try {
273
+ return await readFileAsArrayBuffer(url);
274
+ } catch {
275
+ if (url.includes("/dist/libs/")) {
276
+ return await readFileAsArrayBuffer(url.replace("/dist/libs/", "/src/libs/"));
277
+ }
278
+ throw new Error(`Failed to load ArrayBuffer from ${url}`);
279
+ }
259
280
  }
260
281
  async function loadAsText(url) {
261
282
  const { readFileAsText } = globalThis.loaders || {};
@@ -263,7 +284,14 @@
263
284
  const response = await fetch(url);
264
285
  return await response.text();
265
286
  }
266
- return await readFileAsText(url);
287
+ try {
288
+ return await readFileAsText(url);
289
+ } catch {
290
+ if (url.includes("/dist/libs/")) {
291
+ return await readFileAsText(url.replace("/dist/libs/", "/src/libs/"));
292
+ }
293
+ throw new Error(`Failed to load text from ${url}`);
294
+ }
267
295
  }
268
296
 
269
297
  // ../loader-utils/src/lib/worker-loader-utils/create-loader-worker.ts
@@ -342,13 +370,16 @@
342
370
  options = {
343
371
  ...options,
344
372
  modules: loader && loader.options && loader.options.modules || {},
345
- worker: false
373
+ core: {
374
+ ...options.core,
375
+ worker: false
376
+ }
346
377
  };
347
378
  return await parser(data, { ...options }, context, loader);
348
379
  }
349
380
 
350
381
  // src/lib/utils/version.ts
351
- var VERSION2 = true ? "4.4.0-alpha.0" : "latest";
382
+ var VERSION2 = true ? "4.4.0-alpha.9" : "latest";
352
383
 
353
384
  // src/crunch-loader.ts
354
385
  var CrunchLoader = {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crunch-worker.js","sourceRoot":"","sources":["../src/crunch-worker.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,6EAA6E;AAC7E,MAAM,CAAC,IAAI,GAAG,CAAC,4BAA4B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC"}
package/dist/dist.dev.js CHANGED
@@ -120,14 +120,16 @@ var __exports__ = (() => {
120
120
  var NPM_TAG = "beta";
121
121
 
122
122
  // ../worker-utils/src/lib/env-utils/version.ts
123
+ var warningIssued = false;
123
124
  function getVersion() {
124
125
  if (!globalThis._loadersgl_?.version) {
125
126
  globalThis._loadersgl_ = globalThis._loadersgl_ || {};
126
- if (typeof __VERSION__ === "undefined") {
127
+ if (typeof __VERSION__ === "undefined" && !warningIssued) {
127
128
  console.warn(
128
129
  "loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN."
129
130
  );
130
131
  globalThis._loadersgl_.version = NPM_TAG;
132
+ warningIssued = true;
131
133
  } else {
132
134
  globalThis._loadersgl_.version = __VERSION__;
133
135
  }
@@ -174,6 +176,9 @@ var __exports__ = (() => {
174
176
  return await loadLibraryPromises[libraryUrl];
175
177
  }
176
178
  function getLibraryUrl(library, moduleName, options = {}, libraryName = null) {
179
+ if (options?.core) {
180
+ throw new Error("loadLibrary: options.core must be pre-normalized");
181
+ }
177
182
  if (!options.useLocalLibraries && library.startsWith("http")) {
178
183
  return library;
179
184
  }
@@ -199,10 +204,20 @@ var __exports__ = (() => {
199
204
  return await loadAsArrayBuffer(libraryUrl);
200
205
  }
201
206
  if (!isBrowser2) {
207
+ const { requireFromFile } = globalThis.loaders || {};
202
208
  try {
203
- const { requireFromFile } = globalThis.loaders || {};
204
- return await requireFromFile?.(libraryUrl);
209
+ const result = await requireFromFile?.(libraryUrl);
210
+ if (result || !libraryUrl.includes("/dist/libs/")) {
211
+ return result;
212
+ }
213
+ return await requireFromFile?.(libraryUrl.replace("/dist/libs/", "/src/libs/"));
205
214
  } catch (error) {
215
+ if (libraryUrl.includes("/dist/libs/")) {
216
+ try {
217
+ return await requireFromFile?.(libraryUrl.replace("/dist/libs/", "/src/libs/"));
218
+ } catch {
219
+ }
220
+ }
206
221
  console.error(error);
207
222
  return null;
208
223
  }
@@ -238,7 +253,14 @@ var __exports__ = (() => {
238
253
  const response = await fetch(url);
239
254
  return await response.arrayBuffer();
240
255
  }
241
- return await readFileAsArrayBuffer(url);
256
+ try {
257
+ return await readFileAsArrayBuffer(url);
258
+ } catch {
259
+ if (url.includes("/dist/libs/")) {
260
+ return await readFileAsArrayBuffer(url.replace("/dist/libs/", "/src/libs/"));
261
+ }
262
+ throw new Error(`Failed to load ArrayBuffer from ${url}`);
263
+ }
242
264
  }
243
265
  async function loadAsText(url) {
244
266
  const { readFileAsText } = globalThis.loaders || {};
@@ -246,7 +268,14 @@ var __exports__ = (() => {
246
268
  const response = await fetch(url);
247
269
  return await response.text();
248
270
  }
249
- return await readFileAsText(url);
271
+ try {
272
+ return await readFileAsText(url);
273
+ } catch {
274
+ if (url.includes("/dist/libs/")) {
275
+ return await readFileAsText(url.replace("/dist/libs/", "/src/libs/"));
276
+ }
277
+ throw new Error(`Failed to load text from ${url}`);
278
+ }
250
279
  }
251
280
 
252
281
  // ../worker-utils/src/index.ts
@@ -946,18 +975,18 @@ var __exports__ = (() => {
946
975
  bgr565: { basisFormat: 15, compressed: false },
947
976
  rgba4444: { basisFormat: 16, compressed: false }
948
977
  };
949
- async function parseBasis(data, options) {
950
- if (options.basis.containerFormat === "auto") {
978
+ async function parseBasis(data, options = {}) {
979
+ if (!options.basis?.containerFormat || options.basis.containerFormat === "auto") {
951
980
  if (isKTX(data)) {
952
- const fileConstructors = await loadBasisEncoderModule(options);
981
+ const fileConstructors = await loadBasisEncoderModule(options?.core || {});
953
982
  return parseKTX2File(fileConstructors.KTX2File, data, options);
954
983
  }
955
- const { BasisFile } = await loadBasisTranscoderModule(options);
984
+ const { BasisFile } = await loadBasisTranscoderModule(options?.core || {});
956
985
  return parseBasisFile(BasisFile, data, options);
957
986
  }
958
987
  switch (options.basis.module) {
959
988
  case "encoder":
960
- const fileConstructors = await loadBasisEncoderModule(options);
989
+ const fileConstructors = await loadBasisEncoderModule(options?.core || {});
961
990
  switch (options.basis.containerFormat) {
962
991
  case "ktx2":
963
992
  return parseKTX2File(fileConstructors.KTX2File, data, options);
@@ -967,7 +996,7 @@ var __exports__ = (() => {
967
996
  }
968
997
  case "transcoder":
969
998
  default:
970
- const { BasisFile } = await loadBasisTranscoderModule(options);
999
+ const { BasisFile } = await loadBasisTranscoderModule(options.core || {});
971
1000
  return parseBasisFile(BasisFile, data, options);
972
1001
  }
973
1002
  }
@@ -1070,7 +1099,7 @@ var __exports__ = (() => {
1070
1099
  };
1071
1100
  }
1072
1101
  function getBasisOptions(options, hasAlpha) {
1073
- let format = options && options.basis && options.basis.format;
1102
+ let format = options.basis?.format;
1074
1103
  if (format === "auto") {
1075
1104
  format = selectSupportedBasisFormat();
1076
1105
  }
@@ -1454,13 +1483,13 @@ var __exports__ = (() => {
1454
1483
  var CompressedTextureLoader = {
1455
1484
  ...CompressedTextureWorkerLoader,
1456
1485
  parse: async (arrayBuffer, options) => {
1486
+ options = { ...options };
1457
1487
  if (options?.["compressed-texture"]?.useBasis) {
1458
1488
  options.basis = {
1459
1489
  format: {
1460
1490
  alpha: "BC3",
1461
1491
  noAlpha: "BC1"
1462
1492
  },
1463
- // @ts-expect-error TODO not allowed to modify inputs
1464
1493
  ...options.basis,
1465
1494
  containerFormat: "ktx2",
1466
1495
  module: "encoder"
@@ -1636,7 +1665,7 @@ var __exports__ = (() => {
1636
1665
  encodeUASTC = false,
1637
1666
  mipmaps = false
1638
1667
  } = options?.["ktx2-basis-writer"] || {};
1639
- const { BasisEncoder } = await loadBasisEncoderModule(options);
1668
+ const { BasisEncoder } = await loadBasisEncoderModule(options.core || {});
1640
1669
  const basisEncoder = new BasisEncoder();
1641
1670
  try {
1642
1671
  const basisFileData = new Uint8Array(image.width * image.height * 4);
@@ -1821,7 +1850,6 @@ var __exports__ = (() => {
1821
1850
  }
1822
1851
 
1823
1852
  // ../images/src/lib/parsers/parse-to-image-bitmap.ts
1824
- var EMPTY_OBJECT = {};
1825
1853
  var imagebitmapOptionsSupported = true;
1826
1854
  async function parseToImageBitmap(arrayBuffer, options, url) {
1827
1855
  let blob;
@@ -1849,8 +1877,13 @@ var __exports__ = (() => {
1849
1877
  return await createImageBitmap(blob);
1850
1878
  }
1851
1879
  function isEmptyObject(object) {
1852
- for (const key in object || EMPTY_OBJECT) {
1853
- return false;
1880
+ if (!object) {
1881
+ return true;
1882
+ }
1883
+ for (const key in object) {
1884
+ if (Object.prototype.hasOwnProperty.call(object, key)) {
1885
+ return false;
1886
+ }
1854
1887
  }
1855
1888
  return true;
1856
1889
  }