@loaders.gl/textures 4.0.0-alpha.9 → 4.0.0-beta.2

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 (121) hide show
  1. package/dist/basis-worker-node.js +392 -340
  2. package/dist/basis-worker.js +66 -38
  3. package/dist/compressed-texture-loader.d.ts +2 -35
  4. package/dist/compressed-texture-loader.d.ts.map +1 -1
  5. package/dist/compressed-texture-worker.js +75 -47
  6. package/dist/crunch-loader.d.ts +9 -17
  7. package/dist/crunch-loader.d.ts.map +1 -1
  8. package/dist/crunch-worker.js +53 -25
  9. package/dist/dist.min.js +99 -55
  10. package/dist/es5/compressed-texture-loader.js +15 -17
  11. package/dist/es5/compressed-texture-loader.js.map +1 -1
  12. package/dist/es5/crunch-loader.js +1 -3
  13. package/dist/es5/crunch-loader.js.map +1 -1
  14. package/dist/es5/index.js +14 -0
  15. package/dist/es5/index.js.map +1 -1
  16. package/dist/es5/ktx2-basis-writer.js +5 -5
  17. package/dist/es5/ktx2-basis-writer.js.map +1 -1
  18. package/dist/es5/lib/encoders/encode-ktx2-basis-texture.js +6 -5
  19. package/dist/es5/lib/encoders/encode-ktx2-basis-texture.js.map +1 -1
  20. package/dist/es5/lib/parsers/basis-module-loader.js +26 -21
  21. package/dist/es5/lib/parsers/basis-module-loader.js.map +1 -1
  22. package/dist/es5/lib/parsers/crunch-module-loader.js +6 -1
  23. package/dist/es5/lib/parsers/crunch-module-loader.js.map +1 -1
  24. package/dist/es5/lib/parsers/parse-basis.js +7 -7
  25. package/dist/es5/lib/parsers/parse-basis.js.map +1 -1
  26. package/dist/es5/lib/texture-api/deep-load.js.map +1 -1
  27. package/dist/es5/lib/utils/version.js +1 -1
  28. package/dist/es5/lib/utils/version.js.map +1 -1
  29. package/dist/es5/workers/compressed-texture-worker.js.map +1 -1
  30. package/dist/es5/workers/ktx2-basis-writer-worker-node.js.map +1 -1
  31. package/dist/es5/workers/ktx2-basis-writer-worker.js.map +1 -1
  32. package/dist/esm/compressed-texture-loader.js +10 -11
  33. package/dist/esm/compressed-texture-loader.js.map +1 -1
  34. package/dist/esm/crunch-loader.js +0 -1
  35. package/dist/esm/crunch-loader.js.map +1 -1
  36. package/dist/esm/index.js +2 -0
  37. package/dist/esm/index.js.map +1 -1
  38. package/dist/esm/ktx2-basis-writer.js +6 -5
  39. package/dist/esm/ktx2-basis-writer.js.map +1 -1
  40. package/dist/esm/lib/encoders/encode-ktx2-basis-texture.js +1 -1
  41. package/dist/esm/lib/encoders/encode-ktx2-basis-texture.js.map +1 -1
  42. package/dist/esm/lib/parsers/basis-module-loader.js +13 -10
  43. package/dist/esm/lib/parsers/basis-module-loader.js.map +1 -1
  44. package/dist/esm/lib/parsers/crunch-module-loader.js +4 -1
  45. package/dist/esm/lib/parsers/crunch-module-loader.js.map +1 -1
  46. package/dist/esm/lib/parsers/parse-basis.js +3 -3
  47. package/dist/esm/lib/parsers/parse-basis.js.map +1 -1
  48. package/dist/esm/lib/texture-api/deep-load.js.map +1 -1
  49. package/dist/esm/lib/utils/version.js +1 -1
  50. package/dist/esm/lib/utils/version.js.map +1 -1
  51. package/dist/esm/workers/compressed-texture-worker.js.map +1 -1
  52. package/dist/esm/workers/ktx2-basis-writer-worker-node.js.map +1 -1
  53. package/dist/esm/workers/ktx2-basis-writer-worker.js.map +1 -1
  54. package/dist/index.d.ts +2 -0
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/ktx2-basis-writer-worker-node.js +387 -333
  57. package/dist/ktx2-basis-writer-worker.js +61 -31
  58. package/dist/ktx2-basis-writer.d.ts +8 -7
  59. package/dist/ktx2-basis-writer.d.ts.map +1 -1
  60. package/dist/lib/encoders/encode-ktx2-basis-texture.d.ts.map +1 -1
  61. package/dist/lib/parsers/basis-module-loader.d.ts +11 -1
  62. package/dist/lib/parsers/basis-module-loader.d.ts.map +1 -1
  63. package/dist/lib/parsers/crunch-module-loader.d.ts +4 -0
  64. package/dist/lib/parsers/crunch-module-loader.d.ts.map +1 -1
  65. package/dist/lib/texture-api/deep-load.d.ts.map +1 -1
  66. package/dist/npy-worker.js +9 -4
  67. package/dist/workers/crunch-worker.d.ts +13 -9
  68. package/dist/workers/crunch-worker.d.ts.map +1 -1
  69. package/package.json +7 -7
  70. package/src/compressed-texture-loader.ts +14 -17
  71. package/src/crunch-loader.ts +10 -7
  72. package/src/index.ts +4 -0
  73. package/src/ktx2-basis-writer.ts +14 -13
  74. package/src/lib/encoders/encode-ktx2-basis-texture.ts +6 -1
  75. package/src/lib/parsers/basis-module-loader.ts +19 -16
  76. package/src/lib/parsers/crunch-module-loader.ts +6 -1
  77. package/src/lib/parsers/parse-basis.ts +3 -3
  78. package/src/lib/texture-api/deep-load.ts +0 -1
  79. package/src/workers/compressed-texture-worker.ts +1 -0
  80. package/src/workers/ktx2-basis-writer-worker-node.ts +2 -2
  81. package/src/workers/ktx2-basis-writer-worker.ts +2 -2
  82. package/dist/basis-loader.js +0 -37
  83. package/dist/bundle.js +0 -5
  84. package/dist/compressed-texture-loader.js +0 -64
  85. package/dist/compressed-texture-writer.js +0 -34
  86. package/dist/crunch-loader.js +0 -25
  87. package/dist/index.js +0 -52
  88. package/dist/ktx2-basis-writer.js +0 -26
  89. package/dist/lib/encoders/encode-ktx.js +0 -10
  90. package/dist/lib/encoders/encode-ktx2-basis-texture.js +0 -41
  91. package/dist/lib/encoders/encode-texture.js +0 -27
  92. package/dist/lib/gl-extensions.js +0 -72
  93. package/dist/lib/parsers/basis-module-loader.js +0 -114
  94. package/dist/lib/parsers/crunch-module-loader.js +0 -35
  95. package/dist/lib/parsers/parse-basis.js +0 -245
  96. package/dist/lib/parsers/parse-compressed-texture.js +0 -26
  97. package/dist/lib/parsers/parse-crunch.js +0 -106
  98. package/dist/lib/parsers/parse-dds.js +0 -108
  99. package/dist/lib/parsers/parse-ktx.js +0 -46
  100. package/dist/lib/parsers/parse-npy.js +0 -81
  101. package/dist/lib/parsers/parse-pvr.js +0 -250
  102. package/dist/lib/texture-api/async-deep-map.js +0 -41
  103. package/dist/lib/texture-api/deep-load.js +0 -16
  104. package/dist/lib/texture-api/generate-url.js +0 -17
  105. package/dist/lib/texture-api/load-image-array.js +0 -21
  106. package/dist/lib/texture-api/load-image-cube.js +0 -47
  107. package/dist/lib/texture-api/load-image.js +0 -43
  108. package/dist/lib/texture-api/texture-api-types.js +0 -3
  109. package/dist/lib/utils/extract-mipmap-images.js +0 -50
  110. package/dist/lib/utils/ktx-format-helper.js +0 -125
  111. package/dist/lib/utils/texture-formats.js +0 -51
  112. package/dist/lib/utils/version.js +0 -8
  113. package/dist/npy-loader.js +0 -31
  114. package/dist/types.js +0 -1
  115. package/dist/workers/basis-worker-node.js +0 -7
  116. package/dist/workers/basis-worker.js +0 -5
  117. package/dist/workers/compressed-texture-worker.js +0 -5
  118. package/dist/workers/crunch-worker.js +0 -14
  119. package/dist/workers/ktx2-basis-writer-worker-node.js +0 -28
  120. package/dist/workers/ktx2-basis-writer-worker.js +0 -26
  121. package/dist/workers/npy-worker.js +0 -5
@@ -28,10 +28,19 @@
28
28
  });
29
29
 
30
30
  // ../worker-utils/src/lib/env-utils/version.ts
31
- var VERSION = true ? "4.0.0-alpha.9" : DEFAULT_VERSION;
32
- if (false) {
33
- console.error("loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.");
31
+ function getVersion() {
32
+ if (!globalThis._loadersgl_?.version) {
33
+ globalThis._loadersgl_ = globalThis._loadersgl_ || {};
34
+ if (false) {
35
+ console.error("loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.");
36
+ globalThis._loadersgl_.version = NPM_TAG;
37
+ } else {
38
+ globalThis._loadersgl_.version = "4.0.0-beta.2";
39
+ }
40
+ }
41
+ return globalThis._loadersgl_.version;
34
42
  }
43
+ var VERSION = getVersion();
35
44
 
36
45
  // ../worker-utils/src/lib/env-utils/assert.ts
37
46
  function assert(condition, message) {
@@ -168,40 +177,38 @@
168
177
 
169
178
  // ../worker-utils/src/lib/library-utils/library-utils.ts
170
179
  var node = __toModule(require_require_utils());
171
- var LATEST = "beta";
172
- var VERSION2 = typeof VERSION !== "undefined" ? VERSION : LATEST;
173
180
  var loadLibraryPromises = {};
174
- async function loadLibrary(libraryUrl, moduleName = null, options = {}) {
181
+ async function loadLibrary(libraryUrl, moduleName = null, options = {}, libraryName = null) {
175
182
  if (moduleName) {
176
- libraryUrl = getLibraryUrl(libraryUrl, moduleName, options);
183
+ libraryUrl = getLibraryUrl(libraryUrl, moduleName, options, libraryName);
177
184
  }
178
185
  loadLibraryPromises[libraryUrl] = loadLibraryPromises[libraryUrl] || loadLibraryFromFile(libraryUrl);
179
186
  return await loadLibraryPromises[libraryUrl];
180
187
  }
181
- function getLibraryUrl(library, moduleName, options) {
182
- if (library.startsWith("http")) {
188
+ function getLibraryUrl(library, moduleName, options = {}, libraryName = null) {
189
+ if (!options.useLocalLibraries && library.startsWith("http")) {
183
190
  return library;
184
191
  }
192
+ libraryName = libraryName || library;
185
193
  const modules = options.modules || {};
186
- if (modules[library]) {
187
- return modules[library];
194
+ if (modules[libraryName]) {
195
+ return modules[libraryName];
188
196
  }
189
197
  if (!isBrowser) {
190
- return `modules/${moduleName}/dist/libs/${library}`;
198
+ return `modules/${moduleName}/dist/libs/${libraryName}`;
191
199
  }
192
200
  if (options.CDN) {
193
201
  assert(options.CDN.startsWith("http"));
194
- return `${options.CDN}/${moduleName}@${VERSION2}/dist/libs/${library}`;
202
+ return `${options.CDN}/${moduleName}@${VERSION}/dist/libs/${libraryName}`;
195
203
  }
196
204
  if (isWorker) {
197
- return `../src/libs/${library}`;
205
+ return `../src/libs/${libraryName}`;
198
206
  }
199
- return `modules/${moduleName}/src/libs/${library}`;
207
+ return `modules/${moduleName}/src/libs/${libraryName}`;
200
208
  }
201
209
  async function loadLibraryFromFile(libraryUrl) {
202
210
  if (libraryUrl.endsWith("wasm")) {
203
- const response2 = await fetch(libraryUrl);
204
- return await response2.arrayBuffer();
211
+ return await loadAsArrayBuffer(libraryUrl);
205
212
  }
206
213
  if (!isBrowser) {
207
214
  try {
@@ -213,8 +220,7 @@
213
220
  if (isWorker) {
214
221
  return importScripts(libraryUrl);
215
222
  }
216
- const response = await fetch(libraryUrl);
217
- const scriptSource = await response.text();
223
+ const scriptSource = await loadAsText(libraryUrl);
218
224
  return loadLibraryFromString(scriptSource, libraryUrl);
219
225
  }
220
226
  function loadLibraryFromString(scriptSource, id) {
@@ -235,6 +241,20 @@
235
241
  document.body.appendChild(script);
236
242
  return null;
237
243
  }
244
+ async function loadAsArrayBuffer(url) {
245
+ if (!node.readFileAsArrayBuffer || url.startsWith("http")) {
246
+ const response = await fetch(url);
247
+ return await response.arrayBuffer();
248
+ }
249
+ return await node.readFileAsArrayBuffer(url);
250
+ }
251
+ async function loadAsText(url) {
252
+ if (!node.readFileAsText || url.startsWith("http")) {
253
+ const response = await fetch(url);
254
+ return await response.text();
255
+ }
256
+ return await node.readFileAsText(url);
257
+ }
238
258
 
239
259
  // ../loader-utils/src/lib/worker-loader-utils/create-loader-worker.ts
240
260
  var requestId = 0;
@@ -253,7 +273,7 @@
253
273
  options,
254
274
  context: {
255
275
  ...context,
256
- parse: parseOnMainThread
276
+ _parse: parseOnMainThread
257
277
  }
258
278
  });
259
279
  WorkerBody.postMessage("done", { result });
@@ -266,7 +286,7 @@
266
286
  }
267
287
  };
268
288
  }
269
- function parseOnMainThread(arrayBuffer, options) {
289
+ function parseOnMainThread(arrayBuffer, loader, options, context) {
270
290
  return new Promise((resolve, reject) => {
271
291
  const id = requestId++;
272
292
  const onMessage = (type, payload2) => {
@@ -290,7 +310,12 @@
290
310
  WorkerBody.postMessage("process", payload);
291
311
  });
292
312
  }
293
- async function parseData({ loader, arrayBuffer, options, context }) {
313
+ async function parseData({
314
+ loader,
315
+ arrayBuffer,
316
+ options,
317
+ context
318
+ }) {
294
319
  let data;
295
320
  let parser;
296
321
  if (loader.parseSync || loader.parse) {
@@ -312,32 +337,35 @@
312
337
  }
313
338
 
314
339
  // src/lib/utils/version.ts
315
- var VERSION3 = true ? "4.0.0-alpha.9" : "beta";
340
+ var VERSION2 = true ? "4.0.0-beta.2" : "beta";
316
341
 
317
342
  // src/lib/parsers/basis-module-loader.ts
318
- var VERSION4 = true ? "4.0.0-alpha.9" : "beta";
319
- var BASIS_CDN_ENCODER_WASM = `https://unpkg.com/@loaders.gl/textures@${VERSION4}/dist/libs/basis_encoder.wasm`;
320
- var BASIS_CDN_ENCODER_JS = `https://unpkg.com/@loaders.gl/textures@${VERSION4}/dist/libs/basis_encoder.js`;
343
+ var BASIS_EXTERNAL_LIBRARIES = {
344
+ TRANSCODER: "basis_transcoder.js",
345
+ TRANSCODER_WASM: "basis_transcoder.wasm",
346
+ ENCODER: "basis_encoder.js",
347
+ ENCODER_WASM: "basis_encoder.wasm"
348
+ };
321
349
  var loadBasisTranscoderPromise;
322
- async function loadBasisTrascoderModule(options) {
350
+ async function loadBasisTranscoderModule(options) {
323
351
  const modules = options.modules || {};
324
352
  if (modules.basis) {
325
353
  return modules.basis;
326
354
  }
327
- loadBasisTranscoderPromise = loadBasisTranscoderPromise || loadBasisTrascoder(options);
355
+ loadBasisTranscoderPromise = loadBasisTranscoderPromise || loadBasisTranscoder(options);
328
356
  return await loadBasisTranscoderPromise;
329
357
  }
330
- async function loadBasisTrascoder(options) {
358
+ async function loadBasisTranscoder(options) {
331
359
  let BASIS = null;
332
360
  let wasmBinary = null;
333
361
  [BASIS, wasmBinary] = await Promise.all([
334
- await loadLibrary("basis_transcoder.js", "textures", options),
335
- await loadLibrary("basis_transcoder.wasm", "textures", options)
362
+ await loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER, "textures", options),
363
+ await loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER_WASM, "textures", options)
336
364
  ]);
337
365
  BASIS = BASIS || globalThis.BASIS;
338
- return await initializeBasisTrascoderModule(BASIS, wasmBinary);
366
+ return await initializeBasisTranscoderModule(BASIS, wasmBinary);
339
367
  }
340
- function initializeBasisTrascoderModule(BasisModule, wasmBinary) {
368
+ function initializeBasisTranscoderModule(BasisModule, wasmBinary) {
341
369
  const options = {};
342
370
  if (wasmBinary) {
343
371
  options.wasmBinary = wasmBinary;
@@ -363,8 +391,8 @@
363
391
  let BASIS_ENCODER = null;
364
392
  let wasmBinary = null;
365
393
  [BASIS_ENCODER, wasmBinary] = await Promise.all([
366
- await loadLibrary(BASIS_CDN_ENCODER_JS, "textures", options),
367
- await loadLibrary(BASIS_CDN_ENCODER_WASM, "textures", options)
394
+ await loadLibrary(BASIS_EXTERNAL_LIBRARIES.ENCODER, "textures", options),
395
+ await loadLibrary(BASIS_EXTERNAL_LIBRARIES.ENCODER_WASM, "textures", options)
368
396
  ]);
369
397
  BASIS_ENCODER = BASIS_ENCODER || globalThis.BASIS;
370
398
  return await initializeBasisEncoderModule(BASIS_ENCODER, wasmBinary);
@@ -581,7 +609,7 @@
581
609
  const fileConstructors = await loadBasisEncoderModule(options);
582
610
  return parseKTX2File(fileConstructors.KTX2File, data, options);
583
611
  }
584
- const { BasisFile } = await loadBasisTrascoderModule(options);
612
+ const { BasisFile } = await loadBasisTranscoderModule(options);
585
613
  return parseBasisFile(BasisFile, data, options);
586
614
  }
587
615
  switch (options.basis.module) {
@@ -596,7 +624,7 @@
596
624
  }
597
625
  case "transcoder":
598
626
  default:
599
- const { BasisFile } = await loadBasisTrascoderModule(options);
627
+ const { BasisFile } = await loadBasisTranscoderModule(options);
600
628
  return parseBasisFile(BasisFile, data, options);
601
629
  }
602
630
  }
@@ -715,7 +743,7 @@
715
743
  name: "Basis",
716
744
  id: "basis",
717
745
  module: "textures",
718
- version: VERSION3,
746
+ version: VERSION2,
719
747
  worker: true,
720
748
  extensions: ["basis", "ktx2"],
721
749
  mimeTypes: ["application/octet-stream", "image/ktx2"],
@@ -8,42 +8,9 @@ export type TextureLoaderOptions = {
8
8
  /**
9
9
  * Worker Loader for KTX, DDS, and PVR texture container formats
10
10
  */
11
- export declare const CompressedTextureWorkerLoader: {
12
- name: string;
13
- id: string;
14
- module: string;
15
- version: any;
16
- worker: boolean;
17
- extensions: string[];
18
- mimeTypes: string[];
19
- binary: boolean;
20
- options: {
21
- 'compressed-texture': {
22
- libraryPath: string;
23
- useBasis: boolean;
24
- };
25
- };
26
- };
11
+ export declare const CompressedTextureWorkerLoader: Loader<any, never, TextureLoaderOptions>;
27
12
  /**
28
13
  * Loader for KTX, DDS, and PVR texture container formats
29
14
  */
30
- export declare const CompressedTextureLoader: {
31
- parse: (arrayBuffer: any, options: any) => Promise<import("@loaders.gl/schema").TextureLevel[]>;
32
- name: string;
33
- id: string;
34
- module: string;
35
- version: any;
36
- worker: boolean;
37
- extensions: string[];
38
- mimeTypes: string[];
39
- binary: boolean;
40
- options: {
41
- 'compressed-texture': {
42
- libraryPath: string;
43
- useBasis: boolean;
44
- };
45
- };
46
- };
47
- export declare const _TypecheckCompressedTextureWorkerLoader: Loader;
48
- export declare const _TypecheckCompressedTextureLoader: LoaderWithParser;
15
+ export declare const CompressedTextureLoader: LoaderWithParser<any, never, TextureLoaderOptions>;
49
16
  //# sourceMappingURL=compressed-texture-loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compressed-texture-loader.d.ts","sourceRoot":"","sources":["../src/compressed-texture-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAKvE,MAAM,MAAM,oBAAoB,GAAG;IACjC,oBAAoB,CAAC,EAAE;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;CACH,CAAC;AASF;;GAEG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;CAqBzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;CAiBnC,CAAC;AAGF,eAAO,MAAM,uCAAuC,EAAE,MAAsC,CAAC;AAC7F,eAAO,MAAM,iCAAiC,EAAE,gBAA0C,CAAC"}
1
+ {"version":3,"file":"compressed-texture-loader.d.ts","sourceRoot":"","sources":["../src/compressed-texture-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAKvE,MAAM,MAAM,oBAAoB,GAAG;IACjC,oBAAoB,CAAC,EAAE;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,6BAA6B,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,oBAAoB,CA0BlF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,oBAAoB,CAoBtF,CAAC"}
@@ -35,10 +35,19 @@
35
35
  }
36
36
 
37
37
  // ../worker-utils/src/lib/env-utils/version.ts
38
- var VERSION = true ? "4.0.0-alpha.9" : DEFAULT_VERSION;
39
- if (false) {
40
- console.error("loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.");
38
+ function getVersion() {
39
+ if (!globalThis._loadersgl_?.version) {
40
+ globalThis._loadersgl_ = globalThis._loadersgl_ || {};
41
+ if (false) {
42
+ console.error("loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.");
43
+ globalThis._loadersgl_.version = NPM_TAG;
44
+ } else {
45
+ globalThis._loadersgl_.version = "4.0.0-beta.2";
46
+ }
47
+ }
48
+ return globalThis._loadersgl_.version;
41
49
  }
50
+ var VERSION = getVersion();
42
51
 
43
52
  // ../worker-utils/src/lib/env-utils/assert.ts
44
53
  function assert2(condition, message) {
@@ -175,40 +184,38 @@
175
184
 
176
185
  // ../worker-utils/src/lib/library-utils/library-utils.ts
177
186
  var node = __toModule(require_require_utils());
178
- var LATEST = "beta";
179
- var VERSION2 = typeof VERSION !== "undefined" ? VERSION : LATEST;
180
187
  var loadLibraryPromises = {};
181
- async function loadLibrary(libraryUrl, moduleName = null, options = {}) {
188
+ async function loadLibrary(libraryUrl, moduleName = null, options = {}, libraryName = null) {
182
189
  if (moduleName) {
183
- libraryUrl = getLibraryUrl(libraryUrl, moduleName, options);
190
+ libraryUrl = getLibraryUrl(libraryUrl, moduleName, options, libraryName);
184
191
  }
185
192
  loadLibraryPromises[libraryUrl] = loadLibraryPromises[libraryUrl] || loadLibraryFromFile(libraryUrl);
186
193
  return await loadLibraryPromises[libraryUrl];
187
194
  }
188
- function getLibraryUrl(library, moduleName, options) {
189
- if (library.startsWith("http")) {
195
+ function getLibraryUrl(library, moduleName, options = {}, libraryName = null) {
196
+ if (!options.useLocalLibraries && library.startsWith("http")) {
190
197
  return library;
191
198
  }
199
+ libraryName = libraryName || library;
192
200
  const modules = options.modules || {};
193
- if (modules[library]) {
194
- return modules[library];
201
+ if (modules[libraryName]) {
202
+ return modules[libraryName];
195
203
  }
196
204
  if (!isBrowser) {
197
- return `modules/${moduleName}/dist/libs/${library}`;
205
+ return `modules/${moduleName}/dist/libs/${libraryName}`;
198
206
  }
199
207
  if (options.CDN) {
200
208
  assert2(options.CDN.startsWith("http"));
201
- return `${options.CDN}/${moduleName}@${VERSION2}/dist/libs/${library}`;
209
+ return `${options.CDN}/${moduleName}@${VERSION}/dist/libs/${libraryName}`;
202
210
  }
203
211
  if (isWorker) {
204
- return `../src/libs/${library}`;
212
+ return `../src/libs/${libraryName}`;
205
213
  }
206
- return `modules/${moduleName}/src/libs/${library}`;
214
+ return `modules/${moduleName}/src/libs/${libraryName}`;
207
215
  }
208
216
  async function loadLibraryFromFile(libraryUrl) {
209
217
  if (libraryUrl.endsWith("wasm")) {
210
- const response2 = await fetch(libraryUrl);
211
- return await response2.arrayBuffer();
218
+ return await loadAsArrayBuffer(libraryUrl);
212
219
  }
213
220
  if (!isBrowser) {
214
221
  try {
@@ -220,8 +227,7 @@
220
227
  if (isWorker) {
221
228
  return importScripts(libraryUrl);
222
229
  }
223
- const response = await fetch(libraryUrl);
224
- const scriptSource = await response.text();
230
+ const scriptSource = await loadAsText(libraryUrl);
225
231
  return loadLibraryFromString(scriptSource, libraryUrl);
226
232
  }
227
233
  function loadLibraryFromString(scriptSource, id) {
@@ -242,6 +248,20 @@
242
248
  document.body.appendChild(script);
243
249
  return null;
244
250
  }
251
+ async function loadAsArrayBuffer(url) {
252
+ if (!node.readFileAsArrayBuffer || url.startsWith("http")) {
253
+ const response = await fetch(url);
254
+ return await response.arrayBuffer();
255
+ }
256
+ return await node.readFileAsArrayBuffer(url);
257
+ }
258
+ async function loadAsText(url) {
259
+ if (!node.readFileAsText || url.startsWith("http")) {
260
+ const response = await fetch(url);
261
+ return await response.text();
262
+ }
263
+ return await node.readFileAsText(url);
264
+ }
245
265
 
246
266
  // ../loader-utils/src/lib/worker-loader-utils/create-loader-worker.ts
247
267
  var requestId = 0;
@@ -260,7 +280,7 @@
260
280
  options,
261
281
  context: {
262
282
  ...context,
263
- parse: parseOnMainThread
283
+ _parse: parseOnMainThread
264
284
  }
265
285
  });
266
286
  WorkerBody.postMessage("done", { result });
@@ -273,7 +293,7 @@
273
293
  }
274
294
  };
275
295
  }
276
- function parseOnMainThread(arrayBuffer, options) {
296
+ function parseOnMainThread(arrayBuffer, loader, options, context) {
277
297
  return new Promise((resolve, reject) => {
278
298
  const id = requestId++;
279
299
  const onMessage = (type, payload2) => {
@@ -297,7 +317,12 @@
297
317
  WorkerBody.postMessage("process", payload);
298
318
  });
299
319
  }
300
- async function parseData({ loader, arrayBuffer, options, context }) {
320
+ async function parseData({
321
+ loader,
322
+ arrayBuffer,
323
+ options,
324
+ context
325
+ }) {
301
326
  let data;
302
327
  let parser;
303
328
  if (loader.parseSync || loader.parse) {
@@ -319,7 +344,7 @@
319
344
  }
320
345
 
321
346
  // src/lib/utils/version.ts
322
- var VERSION3 = true ? "4.0.0-alpha.9" : "beta";
347
+ var VERSION2 = true ? "4.0.0-beta.2" : "beta";
323
348
 
324
349
  // ../../node_modules/ktx-parse/dist/ktx-parse.modern.js
325
350
  var t = new Uint8Array([0]);
@@ -907,29 +932,32 @@
907
932
  }
908
933
 
909
934
  // src/lib/parsers/basis-module-loader.ts
910
- var VERSION4 = true ? "4.0.0-alpha.9" : "beta";
911
- var BASIS_CDN_ENCODER_WASM = `https://unpkg.com/@loaders.gl/textures@${VERSION4}/dist/libs/basis_encoder.wasm`;
912
- var BASIS_CDN_ENCODER_JS = `https://unpkg.com/@loaders.gl/textures@${VERSION4}/dist/libs/basis_encoder.js`;
935
+ var BASIS_EXTERNAL_LIBRARIES = {
936
+ TRANSCODER: "basis_transcoder.js",
937
+ TRANSCODER_WASM: "basis_transcoder.wasm",
938
+ ENCODER: "basis_encoder.js",
939
+ ENCODER_WASM: "basis_encoder.wasm"
940
+ };
913
941
  var loadBasisTranscoderPromise;
914
- async function loadBasisTrascoderModule(options) {
942
+ async function loadBasisTranscoderModule(options) {
915
943
  const modules = options.modules || {};
916
944
  if (modules.basis) {
917
945
  return modules.basis;
918
946
  }
919
- loadBasisTranscoderPromise = loadBasisTranscoderPromise || loadBasisTrascoder(options);
947
+ loadBasisTranscoderPromise = loadBasisTranscoderPromise || loadBasisTranscoder(options);
920
948
  return await loadBasisTranscoderPromise;
921
949
  }
922
- async function loadBasisTrascoder(options) {
950
+ async function loadBasisTranscoder(options) {
923
951
  let BASIS = null;
924
952
  let wasmBinary = null;
925
953
  [BASIS, wasmBinary] = await Promise.all([
926
- await loadLibrary("basis_transcoder.js", "textures", options),
927
- await loadLibrary("basis_transcoder.wasm", "textures", options)
954
+ await loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER, "textures", options),
955
+ await loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER_WASM, "textures", options)
928
956
  ]);
929
957
  BASIS = BASIS || globalThis.BASIS;
930
- return await initializeBasisTrascoderModule(BASIS, wasmBinary);
958
+ return await initializeBasisTranscoderModule(BASIS, wasmBinary);
931
959
  }
932
- function initializeBasisTrascoderModule(BasisModule, wasmBinary) {
960
+ function initializeBasisTranscoderModule(BasisModule, wasmBinary) {
933
961
  const options = {};
934
962
  if (wasmBinary) {
935
963
  options.wasmBinary = wasmBinary;
@@ -955,8 +983,8 @@
955
983
  let BASIS_ENCODER = null;
956
984
  let wasmBinary = null;
957
985
  [BASIS_ENCODER, wasmBinary] = await Promise.all([
958
- await loadLibrary(BASIS_CDN_ENCODER_JS, "textures", options),
959
- await loadLibrary(BASIS_CDN_ENCODER_WASM, "textures", options)
986
+ await loadLibrary(BASIS_EXTERNAL_LIBRARIES.ENCODER, "textures", options),
987
+ await loadLibrary(BASIS_EXTERNAL_LIBRARIES.ENCODER_WASM, "textures", options)
960
988
  ]);
961
989
  BASIS_ENCODER = BASIS_ENCODER || globalThis.BASIS;
962
990
  return await initializeBasisEncoderModule(BASIS_ENCODER, wasmBinary);
@@ -1062,7 +1090,7 @@
1062
1090
  const fileConstructors = await loadBasisEncoderModule(options);
1063
1091
  return parseKTX2File(fileConstructors.KTX2File, data, options);
1064
1092
  }
1065
- const { BasisFile } = await loadBasisTrascoderModule(options);
1093
+ const { BasisFile } = await loadBasisTranscoderModule(options);
1066
1094
  return parseBasisFile(BasisFile, data, options);
1067
1095
  }
1068
1096
  switch (options.basis.module) {
@@ -1077,7 +1105,7 @@
1077
1105
  }
1078
1106
  case "transcoder":
1079
1107
  default:
1080
- const { BasisFile } = await loadBasisTrascoderModule(options);
1108
+ const { BasisFile } = await loadBasisTranscoderModule(options);
1081
1109
  return parseBasisFile(BasisFile, data, options);
1082
1110
  }
1083
1111
  }
@@ -1192,17 +1220,11 @@
1192
1220
  }
1193
1221
 
1194
1222
  // src/compressed-texture-loader.ts
1195
- var DEFAULT_TEXTURE_LOADER_OPTIONS = {
1196
- "compressed-texture": {
1197
- libraryPath: "libs/",
1198
- useBasis: false
1199
- }
1200
- };
1201
1223
  var CompressedTextureWorkerLoader = {
1202
1224
  name: "Texture Containers",
1203
1225
  id: "compressed-texture",
1204
1226
  module: "textures",
1205
- version: VERSION3,
1227
+ version: VERSION2,
1206
1228
  worker: true,
1207
1229
  extensions: [
1208
1230
  "ktx",
@@ -1218,12 +1240,17 @@
1218
1240
  "application/octet-stream"
1219
1241
  ],
1220
1242
  binary: true,
1221
- options: DEFAULT_TEXTURE_LOADER_OPTIONS
1243
+ options: {
1244
+ "compressed-texture": {
1245
+ libraryPath: "libs/",
1246
+ useBasis: false
1247
+ }
1248
+ }
1222
1249
  };
1223
1250
  var CompressedTextureLoader = {
1224
1251
  ...CompressedTextureWorkerLoader,
1225
1252
  parse: async (arrayBuffer, options) => {
1226
- if (options["compressed-texture"].useBasis) {
1253
+ if (options?.["compressed-texture"]?.useBasis) {
1227
1254
  options.basis = {
1228
1255
  format: {
1229
1256
  alpha: "BC3",
@@ -1233,7 +1260,8 @@
1233
1260
  containerFormat: "ktx2",
1234
1261
  module: "encoder"
1235
1262
  };
1236
- return (await parseBasis(arrayBuffer, options))[0];
1263
+ const result = await parseBasis(arrayBuffer, options);
1264
+ return result[0];
1237
1265
  }
1238
1266
  return parseCompressedTexture(arrayBuffer);
1239
1267
  }
@@ -1,21 +1,13 @@
1
- import type { Loader } from '@loaders.gl/loader-utils';
1
+ import type { Loader, LoaderOptions } from '@loaders.gl/loader-utils';
2
+ import type { TextureLevel } from '@loaders.gl/schema';
3
+ export type CrunchLoaderOptions = LoaderOptions & {
4
+ crunch?: {
5
+ libraryPath?: string;
6
+ };
7
+ };
2
8
  /**
3
9
  * Worker loader for the Crunch compressed texture container format
10
+ * @note We avoid bundling crunch - it is a rare format and large lib, so we only offer worker loader
4
11
  */
5
- export declare const CrunchLoader: {
6
- id: string;
7
- name: string;
8
- module: string;
9
- version: any;
10
- worker: boolean;
11
- extensions: string[];
12
- mimeTypes: string[];
13
- binary: boolean;
14
- options: {
15
- crunch: {
16
- libraryPath: string;
17
- };
18
- };
19
- };
20
- export declare const _TypecheckCrunchLoader: Loader;
12
+ export declare const CrunchLoader: Loader<TextureLevel[], never, CrunchLoaderOptions>;
21
13
  //# sourceMappingURL=crunch-loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"crunch-loader.d.ts","sourceRoot":"","sources":["../src/crunch-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAGrD;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;CAcxB,CAAC;AAKF,eAAO,MAAM,sBAAsB,EAAE,MAAqB,CAAC"}
1
+ {"version":3,"file":"crunch-loader.d.ts","sourceRoot":"","sources":["../src/crunch-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAGrD,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG;IAChD,MAAM,CAAC,EAAE;QACP,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,mBAAmB,CAc3E,CAAC"}