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

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 +91 -79
  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 +86 -72
  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
@@ -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.1";
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.1" : "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"}
@@ -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.1";
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,14 +344,14 @@
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.1" : "beta";
323
348
 
324
349
  // src/crunch-loader.ts
325
350
  var CrunchLoader = {
326
351
  id: "crunch",
327
352
  name: "Crunch",
328
353
  module: "textures",
329
- version: VERSION3,
354
+ version: VERSION2,
330
355
  worker: true,
331
356
  extensions: ["crn"],
332
357
  mimeTypes: ["image/crn", "image/x-crn", "application/octet-stream"],
@@ -339,6 +364,9 @@
339
364
  };
340
365
 
341
366
  // src/lib/parsers/crunch-module-loader.ts
367
+ var CRUNCH_EXTERNAL_LIBRARIES = {
368
+ DECODER: "crunch.js"
369
+ };
342
370
  async function loadCrunchModule(options) {
343
371
  const modules = options.modules || {};
344
372
  if (modules.crunch) {
@@ -351,7 +379,7 @@
351
379
  if (crunchModule) {
352
380
  return crunchModule;
353
381
  }
354
- let loadCrunchDecoder = await loadLibrary("crunch.js", "textures", options);
382
+ let loadCrunchDecoder = await loadLibrary(CRUNCH_EXTERNAL_LIBRARIES.DECODER, "textures", options);
355
383
  loadCrunchDecoder = loadCrunchDecoder || globalThis.LoadCrunchDecoder;
356
384
  crunchModule = loadCrunchDecoder();
357
385
  return crunchModule;