@loaders.gl/textures 3.1.8 → 3.2.0-alpha.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 (86) hide show
  1. package/dist/basis-worker.js +57 -26
  2. package/dist/compressed-texture-loader.d.ts +1 -1
  3. package/dist/compressed-texture-loader.js +1 -1
  4. package/dist/compressed-texture-worker.js +58 -27
  5. package/dist/crunch-worker.js +61 -29
  6. package/dist/dist.min.js +13 -13
  7. package/dist/es5/compressed-texture-loader.js +1 -1
  8. package/dist/es5/compressed-texture-loader.js.map +1 -1
  9. package/dist/es5/index.js.map +1 -1
  10. package/dist/es5/lib/parsers/basis-module-loader.js +1 -1
  11. package/dist/es5/lib/parsers/basis-module-loader.js.map +1 -1
  12. package/dist/es5/lib/parsers/parse-basis.js +8 -8
  13. package/dist/es5/lib/parsers/parse-basis.js.map +1 -1
  14. package/dist/es5/lib/parsers/parse-compressed-texture.js.map +1 -1
  15. package/dist/es5/lib/parsers/parse-crunch.js +8 -7
  16. package/dist/es5/lib/parsers/parse-crunch.js.map +1 -1
  17. package/dist/es5/lib/parsers/parse-dds.js.map +1 -1
  18. package/dist/es5/lib/parsers/parse-ktx.js.map +1 -1
  19. package/dist/es5/lib/parsers/parse-npy.js.map +1 -1
  20. package/dist/es5/lib/parsers/parse-pvr.js.map +1 -1
  21. package/dist/es5/lib/utils/extract-mipmap-images.js.map +1 -1
  22. package/dist/es5/lib/utils/texture-formats.js.map +1 -1
  23. package/dist/es5/lib/utils/version.js +1 -1
  24. package/dist/es5/lib/utils/version.js.map +1 -1
  25. package/dist/esm/compressed-texture-loader.js +1 -1
  26. package/dist/esm/compressed-texture-loader.js.map +1 -1
  27. package/dist/esm/index.js.map +1 -1
  28. package/dist/esm/lib/parsers/basis-module-loader.js +1 -1
  29. package/dist/esm/lib/parsers/basis-module-loader.js.map +1 -1
  30. package/dist/esm/lib/parsers/parse-basis.js +8 -8
  31. package/dist/esm/lib/parsers/parse-basis.js.map +1 -1
  32. package/dist/esm/lib/parsers/parse-compressed-texture.js.map +1 -1
  33. package/dist/esm/lib/parsers/parse-crunch.js +13 -12
  34. package/dist/esm/lib/parsers/parse-crunch.js.map +1 -1
  35. package/dist/esm/lib/parsers/parse-dds.js.map +1 -1
  36. package/dist/esm/lib/parsers/parse-ktx.js.map +1 -1
  37. package/dist/esm/lib/parsers/parse-npy.js.map +1 -1
  38. package/dist/esm/lib/parsers/parse-pvr.js.map +1 -1
  39. package/dist/esm/lib/utils/extract-mipmap-images.js.map +1 -1
  40. package/dist/esm/lib/utils/texture-formats.js.map +1 -1
  41. package/dist/esm/lib/utils/version.js +1 -1
  42. package/dist/esm/lib/utils/version.js.map +1 -1
  43. package/dist/esm/types.js +1 -1
  44. package/dist/index.d.ts +1 -1
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/lib/parsers/basis-module-loader.js +1 -1
  47. package/dist/lib/parsers/parse-basis.d.ts +8 -6
  48. package/dist/lib/parsers/parse-basis.d.ts.map +1 -1
  49. package/dist/lib/parsers/parse-basis.js +25 -25
  50. package/dist/lib/parsers/parse-compressed-texture.d.ts +1 -1
  51. package/dist/lib/parsers/parse-compressed-texture.d.ts.map +1 -1
  52. package/dist/lib/parsers/parse-crunch.d.ts +1 -1
  53. package/dist/lib/parsers/parse-crunch.d.ts.map +1 -1
  54. package/dist/lib/parsers/parse-crunch.js +14 -13
  55. package/dist/lib/parsers/parse-dds.d.ts +1 -1
  56. package/dist/lib/parsers/parse-dds.d.ts.map +1 -1
  57. package/dist/lib/parsers/parse-ktx.d.ts +2 -1
  58. package/dist/lib/parsers/parse-ktx.d.ts.map +1 -1
  59. package/dist/lib/parsers/parse-npy.d.ts.map +1 -1
  60. package/dist/lib/parsers/parse-npy.js +1 -0
  61. package/dist/lib/parsers/parse-pvr.d.ts +1 -1
  62. package/dist/lib/parsers/parse-pvr.d.ts.map +1 -1
  63. package/dist/lib/parsers/parse-pvr.js +2 -2
  64. package/dist/lib/utils/extract-mipmap-images.d.ts +8 -1
  65. package/dist/lib/utils/extract-mipmap-images.d.ts.map +1 -1
  66. package/dist/lib/utils/version.d.ts.map +1 -1
  67. package/dist/lib/utils/version.js +2 -1
  68. package/dist/npy-worker.js +46 -15
  69. package/dist/types.d.ts +0 -20
  70. package/dist/types.d.ts.map +1 -1
  71. package/dist/types.js +0 -1
  72. package/package.json +6 -5
  73. package/src/compressed-texture-loader.ts +1 -1
  74. package/src/index.ts +1 -1
  75. package/src/lib/parsers/basis-module-loader.ts +1 -1
  76. package/src/lib/parsers/parse-basis.ts +68 -36
  77. package/src/lib/parsers/parse-compressed-texture.ts +1 -1
  78. package/src/lib/parsers/parse-crunch.ts +15 -14
  79. package/src/lib/parsers/parse-dds.ts +1 -1
  80. package/src/lib/parsers/parse-ktx.ts +2 -1
  81. package/src/lib/parsers/parse-npy.ts +2 -0
  82. package/src/lib/parsers/parse-pvr.ts +2 -1
  83. package/src/lib/utils/extract-mipmap-images.ts +9 -1
  84. package/src/lib/utils/texture-formats.ts +1 -1
  85. package/src/lib/utils/version.ts +2 -1
  86. package/src/types.ts +0 -30
@@ -28,7 +28,7 @@
28
28
  });
29
29
 
30
30
  // ../worker-utils/src/lib/env-utils/version.ts
31
- var VERSION = true ? "3.1.8" : DEFAULT_VERSION;
31
+ var VERSION = true ? "3.2.0-alpha.1" : DEFAULT_VERSION;
32
32
  if (false) {
33
33
  console.error("loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.");
34
34
  }
@@ -93,16 +93,33 @@
93
93
  }
94
94
 
95
95
  // ../worker-utils/src/lib/worker-farm/worker-body.ts
96
+ function getParentPort() {
97
+ let parentPort;
98
+ try {
99
+ eval("globalThis.parentPort = require('worker_threads').parentPort");
100
+ parentPort = globalThis.parentPort;
101
+ } catch {
102
+ }
103
+ return parentPort;
104
+ }
96
105
  var onMessageWrapperMap = new Map();
97
106
  var WorkerBody = class {
107
+ static inWorkerThread() {
108
+ return typeof self !== "undefined" || Boolean(getParentPort());
109
+ }
98
110
  static set onmessage(onMessage) {
99
- self.onmessage = (message) => {
100
- if (!isKnownMessage(message)) {
101
- return;
102
- }
103
- const { type, payload } = message.data;
111
+ function handleMessage(message) {
112
+ const parentPort3 = getParentPort();
113
+ const { type, payload } = parentPort3 ? message : message.data;
104
114
  onMessage(type, payload);
105
- };
115
+ }
116
+ const parentPort2 = getParentPort();
117
+ if (parentPort2) {
118
+ parentPort2.on("message", handleMessage);
119
+ parentPort2.on("exit", () => console.debug("Node worker closing"));
120
+ } else {
121
+ globalThis.onmessage = handleMessage;
122
+ }
106
123
  }
107
124
  static addEventListener(onMessage) {
108
125
  let onMessageWrapper = onMessageWrapperMap.get(onMessage);
@@ -111,22 +128,36 @@
111
128
  if (!isKnownMessage(message)) {
112
129
  return;
113
130
  }
114
- const { type, payload } = message.data;
131
+ const parentPort3 = getParentPort();
132
+ const { type, payload } = parentPort3 ? message : message.data;
115
133
  onMessage(type, payload);
116
134
  };
117
135
  }
118
- self.addEventListener("message", onMessageWrapper);
136
+ const parentPort2 = getParentPort();
137
+ if (parentPort2) {
138
+ console.error("not implemented");
139
+ } else {
140
+ globalThis.addEventListener("message", onMessageWrapper);
141
+ }
119
142
  }
120
143
  static removeEventListener(onMessage) {
121
144
  const onMessageWrapper = onMessageWrapperMap.get(onMessage);
122
145
  onMessageWrapperMap.delete(onMessage);
123
- self.removeEventListener("message", onMessageWrapper);
146
+ const parentPort2 = getParentPort();
147
+ if (parentPort2) {
148
+ console.error("not implemented");
149
+ } else {
150
+ globalThis.removeEventListener("message", onMessageWrapper);
151
+ }
124
152
  }
125
153
  static postMessage(type, payload) {
126
- if (self) {
127
- const data = { source: "loaders.gl", type, payload };
128
- const transferList = getTransferList(payload);
129
- self.postMessage(data, transferList);
154
+ const data = { source: "loaders.gl", type, payload };
155
+ const transferList = getTransferList(payload);
156
+ const parentPort2 = getParentPort();
157
+ if (parentPort2) {
158
+ parentPort2.postMessage(data, transferList);
159
+ } else {
160
+ globalThis.postMessage(data, transferList);
130
161
  }
131
162
  }
132
163
  };
@@ -137,7 +168,7 @@
137
168
 
138
169
  // ../worker-utils/src/lib/library-utils/library-utils.ts
139
170
  var node = __toModule(require_require_utils());
140
- var LATEST = "latest";
171
+ var LATEST = "beta";
141
172
  var VERSION2 = typeof VERSION !== "undefined" ? VERSION : LATEST;
142
173
  var loadLibraryPromises = {};
143
174
  async function loadLibrary(libraryUrl, moduleName = null, options = {}) {
@@ -208,7 +239,7 @@
208
239
  // ../loader-utils/src/lib/worker-loader-utils/create-loader-worker.ts
209
240
  var requestId = 0;
210
241
  function createLoaderWorker(loader) {
211
- if (typeof self === "undefined") {
242
+ if (!WorkerBody.inWorkerThread()) {
212
243
  return;
213
244
  }
214
245
  WorkerBody.onmessage = async (type, payload) => {
@@ -280,10 +311,10 @@
280
311
  }
281
312
 
282
313
  // src/lib/utils/version.ts
283
- var VERSION3 = true ? "3.1.8" : "latest";
314
+ var VERSION3 = true ? "3.2.0-alpha.1" : "beta";
284
315
 
285
316
  // src/lib/parsers/basis-module-loader.ts
286
- var VERSION4 = true ? "3.1.8" : "latest";
317
+ var VERSION4 = true ? "3.2.0-alpha.1" : "beta";
287
318
  var BASIS_CDN_ENCODER_WASM = `https://unpkg.com/@loaders.gl/textures@${VERSION4}/dist/libs/basis_encoder.wasm`;
288
319
  var BASIS_CDN_ENCODER_JS = `https://unpkg.com/@loaders.gl/textures@${VERSION4}/dist/libs/basis_encoder.js`;
289
320
  var loadBasisTranscoderPromise;
@@ -572,7 +603,7 @@
572
603
  const basisFile = new BasisFile(new Uint8Array(data));
573
604
  try {
574
605
  if (!basisFile.startTranscoding()) {
575
- return null;
606
+ throw new Error("Failed to start basis transcoding");
576
607
  }
577
608
  const imageCount = basisFile.getNumImages();
578
609
  const images = [];
@@ -598,22 +629,22 @@
598
629
  const decodedSize = basisFile.getImageTranscodedSizeInBytes(imageIndex, levelIndex, basisFormat);
599
630
  const decodedData = new Uint8Array(decodedSize);
600
631
  if (!basisFile.transcodeImage(decodedData, imageIndex, levelIndex, basisFormat, 0, 0)) {
601
- return null;
632
+ throw new Error("failed to start Basis transcoding");
602
633
  }
603
634
  return {
604
635
  width,
605
636
  height,
606
637
  data: decodedData,
607
638
  compressed,
608
- hasAlpha,
609
- format
639
+ format,
640
+ hasAlpha
610
641
  };
611
642
  }
612
643
  function parseKTX2File(KTX2File, data, options) {
613
644
  const ktx2File = new KTX2File(new Uint8Array(data));
614
645
  try {
615
646
  if (!ktx2File.startTranscoding()) {
616
- return null;
647
+ throw new Error("failed to start KTX2 transcoding");
617
648
  }
618
649
  const levelsCount = ktx2File.getLevels();
619
650
  const levels = [];
@@ -621,7 +652,7 @@
621
652
  levels.push(transcodeKTX2Image(ktx2File, levelIndex, options));
622
653
  break;
623
654
  }
624
- return levels;
655
+ return [levels];
625
656
  } finally {
626
657
  ktx2File.close();
627
658
  ktx2File.delete();
@@ -633,14 +664,14 @@
633
664
  const decodedSize = ktx2File.getImageTranscodedSizeInBytes(levelIndex, 0, 0, basisFormat);
634
665
  const decodedData = new Uint8Array(decodedSize);
635
666
  if (!ktx2File.transcodeImage(decodedData, levelIndex, 0, 0, basisFormat, 0, -1, -1)) {
636
- return null;
667
+ throw new Error("Failed to transcode KTX2 image");
637
668
  }
638
669
  return {
639
670
  width,
640
671
  height,
641
672
  data: decodedData,
642
673
  compressed,
643
- alphaFlag,
674
+ hasAlpha: alphaFlag,
644
675
  format
645
676
  };
646
677
  }
@@ -28,7 +28,7 @@ export declare const CompressedTextureWorkerLoader: {
28
28
  * Loader for KTX, DDS, and PVR texture container formats
29
29
  */
30
30
  export declare const CompressedTextureLoader: {
31
- parse: (arrayBuffer: any, options: any) => Promise<any[] | null>;
31
+ parse: (arrayBuffer: any, options: any) => Promise<import("@loaders.gl/schema").TextureLevel[]>;
32
32
  name: string;
33
33
  id: string;
34
34
  module: string;
@@ -54,7 +54,7 @@ exports.CompressedTextureLoader = {
54
54
  containerFormat: 'ktx2',
55
55
  module: 'encoder'
56
56
  };
57
- return await (0, parse_basis_1.default)(arrayBuffer, options);
57
+ return (await (0, parse_basis_1.default)(arrayBuffer, options))[0];
58
58
  }
59
59
  return (0, parse_compressed_texture_1.parseCompressedTexture)(arrayBuffer);
60
60
  }
@@ -35,7 +35,7 @@
35
35
  }
36
36
 
37
37
  // ../worker-utils/src/lib/env-utils/version.ts
38
- var VERSION = true ? "3.1.8" : DEFAULT_VERSION;
38
+ var VERSION = true ? "3.2.0-alpha.1" : DEFAULT_VERSION;
39
39
  if (false) {
40
40
  console.error("loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.");
41
41
  }
@@ -100,16 +100,33 @@
100
100
  }
101
101
 
102
102
  // ../worker-utils/src/lib/worker-farm/worker-body.ts
103
+ function getParentPort() {
104
+ let parentPort;
105
+ try {
106
+ eval("globalThis.parentPort = require('worker_threads').parentPort");
107
+ parentPort = globalThis.parentPort;
108
+ } catch {
109
+ }
110
+ return parentPort;
111
+ }
103
112
  var onMessageWrapperMap = new Map();
104
113
  var WorkerBody = class {
114
+ static inWorkerThread() {
115
+ return typeof self !== "undefined" || Boolean(getParentPort());
116
+ }
105
117
  static set onmessage(onMessage) {
106
- self.onmessage = (message) => {
107
- if (!isKnownMessage(message)) {
108
- return;
109
- }
110
- const { type, payload } = message.data;
118
+ function handleMessage(message) {
119
+ const parentPort3 = getParentPort();
120
+ const { type, payload } = parentPort3 ? message : message.data;
111
121
  onMessage(type, payload);
112
- };
122
+ }
123
+ const parentPort2 = getParentPort();
124
+ if (parentPort2) {
125
+ parentPort2.on("message", handleMessage);
126
+ parentPort2.on("exit", () => console.debug("Node worker closing"));
127
+ } else {
128
+ globalThis.onmessage = handleMessage;
129
+ }
113
130
  }
114
131
  static addEventListener(onMessage) {
115
132
  let onMessageWrapper = onMessageWrapperMap.get(onMessage);
@@ -118,22 +135,36 @@
118
135
  if (!isKnownMessage(message)) {
119
136
  return;
120
137
  }
121
- const { type, payload } = message.data;
138
+ const parentPort3 = getParentPort();
139
+ const { type, payload } = parentPort3 ? message : message.data;
122
140
  onMessage(type, payload);
123
141
  };
124
142
  }
125
- self.addEventListener("message", onMessageWrapper);
143
+ const parentPort2 = getParentPort();
144
+ if (parentPort2) {
145
+ console.error("not implemented");
146
+ } else {
147
+ globalThis.addEventListener("message", onMessageWrapper);
148
+ }
126
149
  }
127
150
  static removeEventListener(onMessage) {
128
151
  const onMessageWrapper = onMessageWrapperMap.get(onMessage);
129
152
  onMessageWrapperMap.delete(onMessage);
130
- self.removeEventListener("message", onMessageWrapper);
153
+ const parentPort2 = getParentPort();
154
+ if (parentPort2) {
155
+ console.error("not implemented");
156
+ } else {
157
+ globalThis.removeEventListener("message", onMessageWrapper);
158
+ }
131
159
  }
132
160
  static postMessage(type, payload) {
133
- if (self) {
134
- const data = { source: "loaders.gl", type, payload };
135
- const transferList = getTransferList(payload);
136
- self.postMessage(data, transferList);
161
+ const data = { source: "loaders.gl", type, payload };
162
+ const transferList = getTransferList(payload);
163
+ const parentPort2 = getParentPort();
164
+ if (parentPort2) {
165
+ parentPort2.postMessage(data, transferList);
166
+ } else {
167
+ globalThis.postMessage(data, transferList);
137
168
  }
138
169
  }
139
170
  };
@@ -144,7 +175,7 @@
144
175
 
145
176
  // ../worker-utils/src/lib/library-utils/library-utils.ts
146
177
  var node = __toModule(require_require_utils());
147
- var LATEST = "latest";
178
+ var LATEST = "beta";
148
179
  var VERSION2 = typeof VERSION !== "undefined" ? VERSION : LATEST;
149
180
  var loadLibraryPromises = {};
150
181
  async function loadLibrary(libraryUrl, moduleName = null, options = {}) {
@@ -215,7 +246,7 @@
215
246
  // ../loader-utils/src/lib/worker-loader-utils/create-loader-worker.ts
216
247
  var requestId = 0;
217
248
  function createLoaderWorker(loader) {
218
- if (typeof self === "undefined") {
249
+ if (!WorkerBody.inWorkerThread()) {
219
250
  return;
220
251
  }
221
252
  WorkerBody.onmessage = async (type, payload) => {
@@ -287,7 +318,7 @@
287
318
  }
288
319
 
289
320
  // src/lib/utils/version.ts
290
- var VERSION3 = true ? "3.1.8" : "latest";
321
+ var VERSION3 = true ? "3.2.0-alpha.1" : "beta";
291
322
 
292
323
  // ../../node_modules/ktx-parse/dist/ktx-parse.modern.js
293
324
  var t = new Uint8Array([0]);
@@ -875,7 +906,7 @@
875
906
  }
876
907
 
877
908
  // src/lib/parsers/basis-module-loader.ts
878
- var VERSION4 = true ? "3.1.8" : "latest";
909
+ var VERSION4 = true ? "3.2.0-alpha.1" : "beta";
879
910
  var BASIS_CDN_ENCODER_WASM = `https://unpkg.com/@loaders.gl/textures@${VERSION4}/dist/libs/basis_encoder.wasm`;
880
911
  var BASIS_CDN_ENCODER_JS = `https://unpkg.com/@loaders.gl/textures@${VERSION4}/dist/libs/basis_encoder.js`;
881
912
  var loadBasisTranscoderPromise;
@@ -1053,7 +1084,7 @@
1053
1084
  const basisFile = new BasisFile(new Uint8Array(data));
1054
1085
  try {
1055
1086
  if (!basisFile.startTranscoding()) {
1056
- return null;
1087
+ throw new Error("Failed to start basis transcoding");
1057
1088
  }
1058
1089
  const imageCount = basisFile.getNumImages();
1059
1090
  const images = [];
@@ -1079,22 +1110,22 @@
1079
1110
  const decodedSize = basisFile.getImageTranscodedSizeInBytes(imageIndex, levelIndex, basisFormat);
1080
1111
  const decodedData = new Uint8Array(decodedSize);
1081
1112
  if (!basisFile.transcodeImage(decodedData, imageIndex, levelIndex, basisFormat, 0, 0)) {
1082
- return null;
1113
+ throw new Error("failed to start Basis transcoding");
1083
1114
  }
1084
1115
  return {
1085
1116
  width,
1086
1117
  height,
1087
1118
  data: decodedData,
1088
1119
  compressed,
1089
- hasAlpha,
1090
- format
1120
+ format,
1121
+ hasAlpha
1091
1122
  };
1092
1123
  }
1093
1124
  function parseKTX2File(KTX2File, data, options) {
1094
1125
  const ktx2File = new KTX2File(new Uint8Array(data));
1095
1126
  try {
1096
1127
  if (!ktx2File.startTranscoding()) {
1097
- return null;
1128
+ throw new Error("failed to start KTX2 transcoding");
1098
1129
  }
1099
1130
  const levelsCount = ktx2File.getLevels();
1100
1131
  const levels = [];
@@ -1102,7 +1133,7 @@
1102
1133
  levels.push(transcodeKTX2Image(ktx2File, levelIndex, options));
1103
1134
  break;
1104
1135
  }
1105
- return levels;
1136
+ return [levels];
1106
1137
  } finally {
1107
1138
  ktx2File.close();
1108
1139
  ktx2File.delete();
@@ -1114,14 +1145,14 @@
1114
1145
  const decodedSize = ktx2File.getImageTranscodedSizeInBytes(levelIndex, 0, 0, basisFormat);
1115
1146
  const decodedData = new Uint8Array(decodedSize);
1116
1147
  if (!ktx2File.transcodeImage(decodedData, levelIndex, 0, 0, basisFormat, 0, -1, -1)) {
1117
- return null;
1148
+ throw new Error("Failed to transcode KTX2 image");
1118
1149
  }
1119
1150
  return {
1120
1151
  width,
1121
1152
  height,
1122
1153
  data: decodedData,
1123
1154
  compressed,
1124
- alphaFlag,
1155
+ hasAlpha: alphaFlag,
1125
1156
  format
1126
1157
  };
1127
1158
  }
@@ -1200,7 +1231,7 @@
1200
1231
  containerFormat: "ktx2",
1201
1232
  module: "encoder"
1202
1233
  };
1203
- return await parseBasis(arrayBuffer, options);
1234
+ return (await parseBasis(arrayBuffer, options))[0];
1204
1235
  }
1205
1236
  return parseCompressedTexture(arrayBuffer);
1206
1237
  }
@@ -35,7 +35,7 @@
35
35
  }
36
36
 
37
37
  // ../worker-utils/src/lib/env-utils/version.ts
38
- var VERSION = true ? "3.1.8" : DEFAULT_VERSION;
38
+ var VERSION = true ? "3.2.0-alpha.1" : DEFAULT_VERSION;
39
39
  if (false) {
40
40
  console.error("loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.");
41
41
  }
@@ -100,16 +100,33 @@
100
100
  }
101
101
 
102
102
  // ../worker-utils/src/lib/worker-farm/worker-body.ts
103
+ function getParentPort() {
104
+ let parentPort;
105
+ try {
106
+ eval("globalThis.parentPort = require('worker_threads').parentPort");
107
+ parentPort = globalThis.parentPort;
108
+ } catch {
109
+ }
110
+ return parentPort;
111
+ }
103
112
  var onMessageWrapperMap = new Map();
104
113
  var WorkerBody = class {
114
+ static inWorkerThread() {
115
+ return typeof self !== "undefined" || Boolean(getParentPort());
116
+ }
105
117
  static set onmessage(onMessage) {
106
- self.onmessage = (message) => {
107
- if (!isKnownMessage(message)) {
108
- return;
109
- }
110
- const { type, payload } = message.data;
118
+ function handleMessage(message) {
119
+ const parentPort3 = getParentPort();
120
+ const { type, payload } = parentPort3 ? message : message.data;
111
121
  onMessage(type, payload);
112
- };
122
+ }
123
+ const parentPort2 = getParentPort();
124
+ if (parentPort2) {
125
+ parentPort2.on("message", handleMessage);
126
+ parentPort2.on("exit", () => console.debug("Node worker closing"));
127
+ } else {
128
+ globalThis.onmessage = handleMessage;
129
+ }
113
130
  }
114
131
  static addEventListener(onMessage) {
115
132
  let onMessageWrapper = onMessageWrapperMap.get(onMessage);
@@ -118,22 +135,36 @@
118
135
  if (!isKnownMessage(message)) {
119
136
  return;
120
137
  }
121
- const { type, payload } = message.data;
138
+ const parentPort3 = getParentPort();
139
+ const { type, payload } = parentPort3 ? message : message.data;
122
140
  onMessage(type, payload);
123
141
  };
124
142
  }
125
- self.addEventListener("message", onMessageWrapper);
143
+ const parentPort2 = getParentPort();
144
+ if (parentPort2) {
145
+ console.error("not implemented");
146
+ } else {
147
+ globalThis.addEventListener("message", onMessageWrapper);
148
+ }
126
149
  }
127
150
  static removeEventListener(onMessage) {
128
151
  const onMessageWrapper = onMessageWrapperMap.get(onMessage);
129
152
  onMessageWrapperMap.delete(onMessage);
130
- self.removeEventListener("message", onMessageWrapper);
153
+ const parentPort2 = getParentPort();
154
+ if (parentPort2) {
155
+ console.error("not implemented");
156
+ } else {
157
+ globalThis.removeEventListener("message", onMessageWrapper);
158
+ }
131
159
  }
132
160
  static postMessage(type, payload) {
133
- if (self) {
134
- const data = { source: "loaders.gl", type, payload };
135
- const transferList = getTransferList(payload);
136
- self.postMessage(data, transferList);
161
+ const data = { source: "loaders.gl", type, payload };
162
+ const transferList = getTransferList(payload);
163
+ const parentPort2 = getParentPort();
164
+ if (parentPort2) {
165
+ parentPort2.postMessage(data, transferList);
166
+ } else {
167
+ globalThis.postMessage(data, transferList);
137
168
  }
138
169
  }
139
170
  };
@@ -144,7 +175,7 @@
144
175
 
145
176
  // ../worker-utils/src/lib/library-utils/library-utils.ts
146
177
  var node = __toModule(require_require_utils());
147
- var LATEST = "latest";
178
+ var LATEST = "beta";
148
179
  var VERSION2 = typeof VERSION !== "undefined" ? VERSION : LATEST;
149
180
  var loadLibraryPromises = {};
150
181
  async function loadLibrary(libraryUrl, moduleName = null, options = {}) {
@@ -215,7 +246,7 @@
215
246
  // ../loader-utils/src/lib/worker-loader-utils/create-loader-worker.ts
216
247
  var requestId = 0;
217
248
  function createLoaderWorker(loader) {
218
- if (typeof self === "undefined") {
249
+ if (!WorkerBody.inWorkerThread()) {
219
250
  return;
220
251
  }
221
252
  WorkerBody.onmessage = async (type, payload) => {
@@ -287,7 +318,7 @@
287
318
  }
288
319
 
289
320
  // src/lib/utils/version.ts
290
- var VERSION3 = true ? "3.1.8" : "latest";
321
+ var VERSION3 = true ? "3.2.0-alpha.1" : "beta";
291
322
 
292
323
  // src/crunch-loader.ts
293
324
  var CrunchLoader = {
@@ -446,18 +477,19 @@
446
477
  cCRNFmtDXT3: 1,
447
478
  cCRNFmtDXT5: 2
448
479
  };
449
- var DXT_FORMAT_MAP = {};
450
- DXT_FORMAT_MAP[CRN_FORMAT.cCRNFmtDXT1] = {
451
- pixelFormat: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT,
452
- sizeFunction: getDxt1LevelSize
453
- };
454
- DXT_FORMAT_MAP[CRN_FORMAT.cCRNFmtDXT3] = {
455
- pixelFormat: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT,
456
- sizeFunction: getDxtXLevelSize
457
- };
458
- DXT_FORMAT_MAP[CRN_FORMAT.cCRNFmtDXT5] = {
459
- pixelFormat: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT,
460
- sizeFunction: getDxtXLevelSize
480
+ var DXT_FORMAT_MAP = {
481
+ [CRN_FORMAT.cCRNFmtDXT1]: {
482
+ pixelFormat: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT,
483
+ sizeFunction: getDxt1LevelSize
484
+ },
485
+ [CRN_FORMAT.cCRNFmtDXT3]: {
486
+ pixelFormat: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT,
487
+ sizeFunction: getDxtXLevelSize
488
+ },
489
+ [CRN_FORMAT.cCRNFmtDXT5]: {
490
+ pixelFormat: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT,
491
+ sizeFunction: getDxtXLevelSize
492
+ }
461
493
  };
462
494
  var cachedDstSize = 0;
463
495
  var dst;
package/dist/dist.min.js CHANGED
@@ -33,7 +33,7 @@
33
33
  var VERSION;
34
34
  var init_version = __esm({
35
35
  "src/lib/utils/version.ts"() {
36
- VERSION = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
36
+ VERSION = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
37
37
  }
38
38
  });
39
39
 
@@ -41,7 +41,7 @@
41
41
  var DEFAULT_VERSION, VERSION2;
42
42
  var init_version2 = __esm({
43
43
  "../worker-utils/src/lib/env-utils/version.ts"() {
44
- DEFAULT_VERSION = "latest";
44
+ DEFAULT_VERSION = "beta";
45
45
  VERSION2 = typeof __VERSION__ !== "undefined" ? __VERSION__ : DEFAULT_VERSION;
46
46
  if (typeof __VERSION__ === "undefined") {
47
47
  console.error("loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.");
@@ -160,7 +160,7 @@
160
160
  node = __toModule(require_require_utils());
161
161
  init_assert();
162
162
  init_version2();
163
- LATEST = "latest";
163
+ LATEST = "beta";
164
164
  VERSION3 = typeof VERSION2 !== "undefined" ? VERSION2 : LATEST;
165
165
  loadLibraryPromises = {};
166
166
  }
@@ -247,7 +247,7 @@
247
247
  var init_basis_module_loader = __esm({
248
248
  "src/lib/parsers/basis-module-loader.ts"() {
249
249
  init_src();
250
- VERSION4 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
250
+ VERSION4 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
251
251
  BASIS_CDN_ENCODER_WASM = `https://unpkg.com/@loaders.gl/textures@${VERSION4}/dist/libs/basis_encoder.wasm`;
252
252
  BASIS_CDN_ENCODER_JS = `https://unpkg.com/@loaders.gl/textures@${VERSION4}/dist/libs/basis_encoder.js`;
253
253
  }
@@ -648,7 +648,7 @@
648
648
  const basisFile = new BasisFile(new Uint8Array(data));
649
649
  try {
650
650
  if (!basisFile.startTranscoding()) {
651
- return null;
651
+ throw new Error("Failed to start basis transcoding");
652
652
  }
653
653
  const imageCount = basisFile.getNumImages();
654
654
  const images = [];
@@ -674,22 +674,22 @@
674
674
  const decodedSize = basisFile.getImageTranscodedSizeInBytes(imageIndex, levelIndex, basisFormat);
675
675
  const decodedData = new Uint8Array(decodedSize);
676
676
  if (!basisFile.transcodeImage(decodedData, imageIndex, levelIndex, basisFormat, 0, 0)) {
677
- return null;
677
+ throw new Error("failed to start Basis transcoding");
678
678
  }
679
679
  return {
680
680
  width,
681
681
  height,
682
682
  data: decodedData,
683
683
  compressed,
684
- hasAlpha,
685
- format
684
+ format,
685
+ hasAlpha
686
686
  };
687
687
  }
688
688
  function parseKTX2File(KTX2File, data, options) {
689
689
  const ktx2File = new KTX2File(new Uint8Array(data));
690
690
  try {
691
691
  if (!ktx2File.startTranscoding()) {
692
- return null;
692
+ throw new Error("failed to start KTX2 transcoding");
693
693
  }
694
694
  const levelsCount = ktx2File.getLevels();
695
695
  const levels = [];
@@ -697,7 +697,7 @@
697
697
  levels.push(transcodeKTX2Image(ktx2File, levelIndex, options));
698
698
  break;
699
699
  }
700
- return levels;
700
+ return [levels];
701
701
  } finally {
702
702
  ktx2File.close();
703
703
  ktx2File.delete();
@@ -709,14 +709,14 @@
709
709
  const decodedSize = ktx2File.getImageTranscodedSizeInBytes(levelIndex, 0, 0, basisFormat);
710
710
  const decodedData = new Uint8Array(decodedSize);
711
711
  if (!ktx2File.transcodeImage(decodedData, levelIndex, 0, 0, basisFormat, 0, -1, -1)) {
712
- return null;
712
+ throw new Error("Failed to transcode KTX2 image");
713
713
  }
714
714
  return {
715
715
  width,
716
716
  height,
717
717
  data: decodedData,
718
718
  compressed,
719
- alphaFlag,
719
+ hasAlpha: alphaFlag,
720
720
  format
721
721
  };
722
722
  }
@@ -1250,7 +1250,7 @@
1250
1250
  containerFormat: "ktx2",
1251
1251
  module: "encoder"
1252
1252
  };
1253
- return await parseBasis(arrayBuffer, options);
1253
+ return (await parseBasis(arrayBuffer, options))[0];
1254
1254
  }
1255
1255
  return parseCompressedTexture(arrayBuffer);
1256
1256
  }
@@ -67,7 +67,7 @@ var CompressedTextureLoader = _objectSpread(_objectSpread({}, CompressedTextureW
67
67
  return (0, _parseBasis.default)(arrayBuffer, options);
68
68
 
69
69
  case 4:
70
- return _context.abrupt("return", _context.sent);
70
+ return _context.abrupt("return", _context.sent[0]);
71
71
 
72
72
  case 5:
73
73
  return _context.abrupt("return", (0, _parseCompressedTexture.parseCompressedTexture)(arrayBuffer));