@loaders.gl/textures 3.2.12 → 3.3.0-alpha.10

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 (197) hide show
  1. package/dist/basis-loader.d.ts.map +1 -1
  2. package/dist/basis-loader.js +2 -1
  3. package/dist/basis-nodejs-worker.js +66386 -0
  4. package/dist/basis-worker.js +5 -5
  5. package/dist/compressed-texture-loader.d.ts +1 -1
  6. package/dist/compressed-texture-loader.d.ts.map +1 -1
  7. package/dist/compressed-texture-worker.js +4 -4
  8. package/dist/compressed-texture-writer.d.ts +1 -1
  9. package/dist/compressed-texture-writer.d.ts.map +1 -1
  10. package/dist/crunch-worker.js +3 -3
  11. package/dist/dist.min.js +13 -9
  12. package/dist/es5/basis-loader.js +6 -12
  13. package/dist/es5/basis-loader.js.map +1 -1
  14. package/dist/es5/bundle.js +0 -1
  15. package/dist/es5/bundle.js.map +1 -1
  16. package/dist/es5/compressed-texture-loader.js +8 -21
  17. package/dist/es5/compressed-texture-loader.js.map +1 -1
  18. package/dist/es5/compressed-texture-writer.js +1 -3
  19. package/dist/es5/compressed-texture-writer.js.map +1 -1
  20. package/dist/es5/crunch-loader.js +2 -2
  21. package/dist/es5/crunch-loader.js.map +1 -1
  22. package/dist/es5/index.js +22 -35
  23. package/dist/es5/index.js.map +1 -1
  24. package/dist/es5/ktx2-basis-writer-nodejs.js +0 -2
  25. package/dist/es5/ktx2-basis-writer-nodejs.js.map +1 -1
  26. package/dist/es5/ktx2-basis-writer.js +1 -3
  27. package/dist/es5/ktx2-basis-writer.js.map +1 -1
  28. package/dist/es5/lib/encoders/encode-ktx.js +0 -2
  29. package/dist/es5/lib/encoders/encode-ktx.js.map +1 -1
  30. package/dist/es5/lib/encoders/encode-ktx2-basis-texture.js +15 -26
  31. package/dist/es5/lib/encoders/encode-ktx2-basis-texture.js.map +1 -1
  32. package/dist/es5/lib/encoders/encode-texture.js +2 -9
  33. package/dist/es5/lib/encoders/encode-texture.js.map +1 -1
  34. package/dist/es5/lib/gl-extensions.js +8 -0
  35. package/dist/es5/lib/gl-extensions.js.map +1 -1
  36. package/dist/es5/lib/parsers/basis-module-loader.js +6 -46
  37. package/dist/es5/lib/parsers/basis-module-loader.js.map +1 -1
  38. package/dist/es5/lib/parsers/crunch-module-loader.js +0 -16
  39. package/dist/es5/lib/parsers/crunch-module-loader.js.map +1 -1
  40. package/dist/es5/lib/parsers/parse-basis.js +10 -53
  41. package/dist/es5/lib/parsers/parse-basis.js.map +1 -1
  42. package/dist/es5/lib/parsers/parse-compressed-texture.js +0 -7
  43. package/dist/es5/lib/parsers/parse-compressed-texture.js.map +1 -1
  44. package/dist/es5/lib/parsers/parse-crunch.js +4 -20
  45. package/dist/es5/lib/parsers/parse-crunch.js.map +1 -1
  46. package/dist/es5/lib/parsers/parse-dds.js +2 -8
  47. package/dist/es5/lib/parsers/parse-dds.js.map +1 -1
  48. package/dist/es5/lib/parsers/parse-ktx.js +15 -7
  49. package/dist/es5/lib/parsers/parse-ktx.js.map +1 -1
  50. package/dist/es5/lib/parsers/parse-npy.js +11 -18
  51. package/dist/es5/lib/parsers/parse-npy.js.map +1 -1
  52. package/dist/es5/lib/parsers/parse-pvr.js +0 -2
  53. package/dist/es5/lib/parsers/parse-pvr.js.map +1 -1
  54. package/dist/es5/lib/texture-api/async-deep-map.js +3 -32
  55. package/dist/es5/lib/texture-api/async-deep-map.js.map +1 -1
  56. package/dist/es5/lib/texture-api/deep-load.js +0 -14
  57. package/dist/es5/lib/texture-api/deep-load.js.map +1 -1
  58. package/dist/es5/lib/texture-api/generate-url.js +3 -10
  59. package/dist/es5/lib/texture-api/generate-url.js.map +1 -1
  60. package/dist/es5/lib/texture-api/load-image-array.js +7 -24
  61. package/dist/es5/lib/texture-api/load-image-array.js.map +1 -1
  62. package/dist/es5/lib/texture-api/load-image-cube.js +4 -27
  63. package/dist/es5/lib/texture-api/load-image-cube.js.map +1 -1
  64. package/dist/es5/lib/texture-api/load-image.js +8 -41
  65. package/dist/es5/lib/texture-api/load-image.js.map +1 -1
  66. package/dist/es5/lib/texture-api/texture-api-types.js.map +1 -1
  67. package/dist/es5/lib/utils/extract-mipmap-images.js +0 -7
  68. package/dist/es5/lib/utils/extract-mipmap-images.js.map +1 -1
  69. package/dist/es5/lib/utils/ktx-format-helper.js +0 -2
  70. package/dist/es5/lib/utils/ktx-format-helper.js.map +1 -1
  71. package/dist/es5/lib/utils/texture-formats.js +2 -9
  72. package/dist/es5/lib/utils/texture-formats.js.map +1 -1
  73. package/dist/es5/lib/utils/version.js +1 -1
  74. package/dist/es5/lib/utils/version.js.map +1 -1
  75. package/dist/es5/npy-loader.js +5 -16
  76. package/dist/es5/npy-loader.js.map +1 -1
  77. package/dist/es5/types.js.map +1 -1
  78. package/dist/es5/workers/basis-nodejs-worker.js +7 -0
  79. package/dist/es5/workers/basis-nodejs-worker.js.map +1 -0
  80. package/dist/es5/workers/basis-worker.js +0 -2
  81. package/dist/es5/workers/basis-worker.js.map +1 -1
  82. package/dist/es5/workers/compressed-texture-worker.js +0 -2
  83. package/dist/es5/workers/compressed-texture-worker.js.map +1 -1
  84. package/dist/es5/workers/crunch-worker.js +2 -11
  85. package/dist/es5/workers/crunch-worker.js.map +1 -1
  86. package/dist/es5/workers/ktx2-basis-writer-nodejs-worker.js +0 -15
  87. package/dist/es5/workers/ktx2-basis-writer-nodejs-worker.js.map +1 -1
  88. package/dist/es5/workers/ktx2-basis-writer-worker.js +0 -15
  89. package/dist/es5/workers/ktx2-basis-writer-worker.js.map +1 -1
  90. package/dist/es5/workers/npy-worker.js +0 -2
  91. package/dist/es5/workers/npy-worker.js.map +1 -1
  92. package/dist/esm/basis-loader.js +7 -2
  93. package/dist/esm/basis-loader.js.map +1 -1
  94. package/dist/esm/bundle.js +1 -1
  95. package/dist/esm/bundle.js.map +1 -1
  96. package/dist/esm/compressed-texture-loader.js +8 -3
  97. package/dist/esm/compressed-texture-loader.js.map +1 -1
  98. package/dist/esm/compressed-texture-writer.js +1 -0
  99. package/dist/esm/compressed-texture-writer.js.map +1 -1
  100. package/dist/esm/crunch-loader.js +2 -0
  101. package/dist/esm/crunch-loader.js.map +1 -1
  102. package/dist/esm/index.js +5 -0
  103. package/dist/esm/index.js.map +1 -1
  104. package/dist/esm/ktx2-basis-writer-nodejs.js +1 -0
  105. package/dist/esm/ktx2-basis-writer-nodejs.js.map +1 -1
  106. package/dist/esm/ktx2-basis-writer.js +2 -0
  107. package/dist/esm/ktx2-basis-writer.js.map +1 -1
  108. package/dist/esm/lib/encoders/encode-ktx.js.map +1 -1
  109. package/dist/esm/lib/encoders/encode-ktx2-basis-texture.js +3 -2
  110. package/dist/esm/lib/encoders/encode-ktx2-basis-texture.js.map +1 -1
  111. package/dist/esm/lib/encoders/encode-texture.js +2 -1
  112. package/dist/esm/lib/encoders/encode-texture.js.map +1 -1
  113. package/dist/esm/lib/gl-extensions.js +9 -0
  114. package/dist/esm/lib/gl-extensions.js.map +1 -1
  115. package/dist/esm/lib/parsers/basis-module-loader.js +7 -10
  116. package/dist/esm/lib/parsers/basis-module-loader.js.map +1 -1
  117. package/dist/esm/lib/parsers/crunch-module-loader.js +3 -3
  118. package/dist/esm/lib/parsers/crunch-module-loader.js.map +1 -1
  119. package/dist/esm/lib/parsers/parse-basis.js +6 -23
  120. package/dist/esm/lib/parsers/parse-basis.js.map +1 -1
  121. package/dist/esm/lib/parsers/parse-compressed-texture.js +1 -3
  122. package/dist/esm/lib/parsers/parse-compressed-texture.js.map +1 -1
  123. package/dist/esm/lib/parsers/parse-crunch.js +5 -10
  124. package/dist/esm/lib/parsers/parse-crunch.js.map +1 -1
  125. package/dist/esm/lib/parsers/parse-dds.js +4 -2
  126. package/dist/esm/lib/parsers/parse-dds.js.map +1 -1
  127. package/dist/esm/lib/parsers/parse-ktx.js +16 -2
  128. package/dist/esm/lib/parsers/parse-ktx.js.map +1 -1
  129. package/dist/esm/lib/parsers/parse-npy.js +11 -13
  130. package/dist/esm/lib/parsers/parse-npy.js.map +1 -1
  131. package/dist/esm/lib/parsers/parse-pvr.js +4 -0
  132. package/dist/esm/lib/parsers/parse-pvr.js.map +1 -1
  133. package/dist/esm/lib/texture-api/async-deep-map.js +6 -6
  134. package/dist/esm/lib/texture-api/async-deep-map.js.map +1 -1
  135. package/dist/esm/lib/texture-api/deep-load.js +1 -0
  136. package/dist/esm/lib/texture-api/deep-load.js.map +1 -1
  137. package/dist/esm/lib/texture-api/generate-url.js +4 -3
  138. package/dist/esm/lib/texture-api/generate-url.js.map +1 -1
  139. package/dist/esm/lib/texture-api/load-image-array.js +5 -4
  140. package/dist/esm/lib/texture-api/load-image-array.js.map +1 -1
  141. package/dist/esm/lib/texture-api/load-image-cube.js +7 -4
  142. package/dist/esm/lib/texture-api/load-image-cube.js.map +1 -1
  143. package/dist/esm/lib/texture-api/load-image.js +9 -7
  144. package/dist/esm/lib/texture-api/load-image.js.map +1 -1
  145. package/dist/esm/lib/texture-api/texture-api-types.js.map +1 -1
  146. package/dist/esm/lib/utils/extract-mipmap-images.js +1 -6
  147. package/dist/esm/lib/utils/extract-mipmap-images.js.map +1 -1
  148. package/dist/esm/lib/utils/ktx-format-helper.js +1 -0
  149. package/dist/esm/lib/utils/ktx-format-helper.js.map +1 -1
  150. package/dist/esm/lib/utils/texture-formats.js +2 -2
  151. package/dist/esm/lib/utils/texture-formats.js.map +1 -1
  152. package/dist/esm/lib/utils/version.js +2 -1
  153. package/dist/esm/lib/utils/version.js.map +1 -1
  154. package/dist/esm/npy-loader.js +6 -1
  155. package/dist/esm/npy-loader.js.map +1 -1
  156. package/dist/esm/types.js.map +1 -1
  157. package/dist/esm/workers/basis-nodejs-worker.js +5 -0
  158. package/dist/esm/workers/basis-nodejs-worker.js.map +1 -0
  159. package/dist/esm/workers/basis-worker.js.map +1 -1
  160. package/dist/esm/workers/compressed-texture-worker.js.map +1 -1
  161. package/dist/esm/workers/crunch-worker.js +3 -1
  162. package/dist/esm/workers/crunch-worker.js.map +1 -1
  163. package/dist/esm/workers/ktx2-basis-writer-nodejs-worker.js +0 -4
  164. package/dist/esm/workers/ktx2-basis-writer-nodejs-worker.js.map +1 -1
  165. package/dist/esm/workers/ktx2-basis-writer-worker.js +0 -4
  166. package/dist/esm/workers/ktx2-basis-writer-worker.js.map +1 -1
  167. package/dist/esm/workers/npy-worker.js.map +1 -1
  168. package/dist/ktx2-basis-writer-nodejs-worker.js +1860 -2453
  169. package/dist/ktx2-basis-writer-worker.js +4 -4
  170. package/dist/lib/parsers/parse-basis.d.ts +1 -1
  171. package/dist/lib/parsers/parse-basis.d.ts.map +1 -1
  172. package/dist/lib/parsers/parse-npy.d.ts +2 -2
  173. package/dist/lib/parsers/parse-npy.d.ts.map +1 -1
  174. package/dist/lib/parsers/parse-npy.js +7 -7
  175. package/dist/lib/texture-api/async-deep-map.d.ts +2 -2
  176. package/dist/lib/texture-api/async-deep-map.d.ts.map +1 -1
  177. package/dist/lib/texture-api/deep-load.d.ts +2 -2
  178. package/dist/lib/texture-api/deep-load.d.ts.map +1 -1
  179. package/dist/lib/texture-api/load-image-cube.d.ts +1 -1
  180. package/dist/lib/texture-api/load-image-cube.d.ts.map +1 -1
  181. package/dist/lib/texture-api/texture-api-types.d.ts +2 -2
  182. package/dist/lib/texture-api/texture-api-types.d.ts.map +1 -1
  183. package/dist/lib/utils/extract-mipmap-images.d.ts +1 -1
  184. package/dist/lib/utils/extract-mipmap-images.d.ts.map +1 -1
  185. package/dist/lib/utils/version.d.ts.map +1 -1
  186. package/dist/lib/utils/version.js +1 -1
  187. package/dist/npy-loader.d.ts +2 -2
  188. package/dist/npy-loader.d.ts.map +1 -1
  189. package/dist/npy-worker.js +8 -6
  190. package/dist/workers/basis-nodejs-worker.d.ts +2 -0
  191. package/dist/workers/basis-nodejs-worker.d.ts.map +1 -0
  192. package/dist/workers/basis-nodejs-worker.js +6 -0
  193. package/package.json +9 -8
  194. package/src/basis-loader.ts +2 -1
  195. package/src/lib/parsers/parse-npy.ts +20 -9
  196. package/src/lib/utils/version.ts +1 -1
  197. package/src/workers/basis-nodejs-worker.ts +5 -0
@@ -28,7 +28,7 @@
28
28
  });
29
29
 
30
30
  // ../worker-utils/src/lib/env-utils/version.ts
31
- var VERSION = true ? "3.2.12" : DEFAULT_VERSION;
31
+ var VERSION = true ? "3.3.0-alpha.10" : 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
  }
@@ -168,7 +168,7 @@
168
168
 
169
169
  // ../worker-utils/src/lib/library-utils/library-utils.ts
170
170
  var node = __toModule(require_require_utils());
171
- var LATEST = "latest";
171
+ var LATEST = "beta";
172
172
  var VERSION2 = typeof VERSION !== "undefined" ? VERSION : LATEST;
173
173
  var loadLibraryPromises = {};
174
174
  async function loadLibrary(libraryUrl, moduleName = null, options = {}) {
@@ -237,10 +237,10 @@
237
237
  }
238
238
 
239
239
  // src/lib/utils/version.ts
240
- var VERSION3 = true ? "3.2.12" : "latest";
240
+ var VERSION3 = true ? "3.3.0-alpha.10" : "beta";
241
241
 
242
242
  // src/lib/parsers/basis-module-loader.ts
243
- var VERSION4 = true ? "3.2.12" : "beta";
243
+ var VERSION4 = true ? "3.3.0-alpha.10" : "beta";
244
244
  var BASIS_CDN_ENCODER_WASM = `https://unpkg.com/@loaders.gl/textures@${VERSION4}/dist/libs/basis_encoder.wasm`;
245
245
  var BASIS_CDN_ENCODER_JS = `https://unpkg.com/@loaders.gl/textures@${VERSION4}/dist/libs/basis_encoder.js`;
246
246
  var loadBasisEncoderPromise;
@@ -1,5 +1,5 @@
1
1
  import type { TextureLevel } from '@loaders.gl/schema';
2
- export declare type BasisFormat = 'etc1' | 'etc2' | 'bc1' | 'bc3' | 'bc4' | 'bc5' | 'bc7-m6-opaque-only' | 'bc7-m5' | 'pvrtc1-4-rgb' | 'pvrtc1-4-rgba' | 'astc-4x4' | 'atc-rgb' | 'atc-rgba-interpolated-alpha' | 'rgba32' | 'rgb565' | 'bgr565' | 'rgba4444';
2
+ export type BasisFormat = 'etc1' | 'etc2' | 'bc1' | 'bc3' | 'bc4' | 'bc5' | 'bc7-m6-opaque-only' | 'bc7-m5' | 'pvrtc1-4-rgb' | 'pvrtc1-4-rgba' | 'astc-4x4' | 'atc-rgb' | 'atc-rgba-interpolated-alpha' | 'rgba32' | 'rgb565' | 'bgr565' | 'rgba4444';
3
3
  /**
4
4
  * parse data with a Binomial Basis_Universal module
5
5
  * @param data
@@ -1 +1 @@
1
- {"version":3,"file":"parse-basis.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-basis.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAMrD,oBAAY,WAAW,GACnB,MAAM,GACN,MAAM,GACN,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,oBAAoB,GACpB,QAAQ,GACR,cAAc,GACd,eAAe,GACf,UAAU,GACV,SAAS,GACT,6BAA6B,GAC7B,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,UAAU,CAAC;AAoDf;;;;;GAKG;AACH,wBAA8B,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,KAAA,GAAG,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAwB9F;AA8KD;;;GAGG;AACH,wBAAgB,0BAA0B,IACtC,WAAW,GACX;IACE,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;CACtB,CAoBJ"}
1
+ {"version":3,"file":"parse-basis.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-basis.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAMrD,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,MAAM,GACN,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,oBAAoB,GACpB,QAAQ,GACR,cAAc,GACd,eAAe,GACf,UAAU,GACV,SAAS,GACT,6BAA6B,GAC7B,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,UAAU,CAAC;AAoDf;;;;;GAKG;AACH,wBAA8B,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,KAAA,GAAG,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAwB9F;AA8KD;;;GAGG;AACH,wBAAgB,0BAA0B,IACtC,WAAW,GACX;IACE,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;CACtB,CAoBJ"}
@@ -1,9 +1,9 @@
1
- declare type NumpyHeader = {
1
+ type NumpyHeader = {
2
2
  descr: string;
3
3
  shape: number[];
4
4
  };
5
5
  export declare function parseNPY(arrayBuffer: ArrayBuffer, options?: unknown): {
6
- data: any;
6
+ data: Uint8Array | Uint32Array | Int32Array | Int8Array | Int16Array | Uint16Array | Float32Array | Float64Array;
7
7
  header: NumpyHeader;
8
8
  } | null;
9
9
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"parse-npy.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-npy.ts"],"names":[],"mappings":"AAEA,aAAK,WAAW,GAAG;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAC,CAAC;AA6BpD,wBAAgB,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,OAAO;;;SA+BnE"}
1
+ {"version":3,"file":"parse-npy.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-npy.ts"],"names":[],"mappings":"AAEA,KAAK,WAAW,GAAG;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAC,CAAC;AAwCpD,wBAAgB,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,OAAO;;;SA+BnE"}
@@ -35,17 +35,17 @@ function parseNPY(arrayBuffer, options) {
35
35
  const numpyType = header.descr;
36
36
  const ArrayType = DTYPES[numpyType.slice(1, 3)];
37
37
  if (!ArrayType) {
38
- // eslint-disable-next-line no-console, no-undef
39
- console.warn(`Decoding of npy dtype not implemented: ${numpyType}`);
40
- return null;
38
+ throw new Error(`Unimplemented type ${numpyType}`);
41
39
  }
42
40
  const nArrayElements = header.shape?.reduce((a, b) => a * b);
43
41
  const arrayByteLength = nArrayElements * ArrayType.BYTES_PER_ELEMENT;
42
+ if (arrayBuffer.byteLength < headerEndOffset + arrayByteLength) {
43
+ throw new Error('Buffer overflow');
44
+ }
44
45
  const data = new ArrayType(arrayBuffer.slice(headerEndOffset, headerEndOffset + arrayByteLength));
45
46
  // Swap endianness if needed
46
47
  if ((numpyType[0] === '>' && LITTLE_ENDIAN_OS) || (numpyType[0] === '<' && !LITTLE_ENDIAN_OS)) {
47
- // eslint-disable-next-line no-console, no-undef
48
- console.warn('Data is wrong endianness, byte swapping not yet implemented.');
48
+ throw new Error('Incorrect endianness');
49
49
  }
50
50
  return {
51
51
  data,
@@ -65,11 +65,11 @@ function parseHeader(view) {
65
65
  let offset = 8;
66
66
  let headerLength;
67
67
  if (majorVersion >= 2) {
68
- headerLength = view.getUint32(8, true);
68
+ headerLength = view.getUint32(offset, true);
69
69
  offset += 4;
70
70
  }
71
71
  else {
72
- headerLength = view.getUint16(8, true);
72
+ headerLength = view.getUint16(offset, true);
73
73
  offset += 2;
74
74
  }
75
75
  const encoding = majorVersion <= 2 ? 'latin1' : 'utf-8';
@@ -1,5 +1,5 @@
1
- export declare type Options = Record<string, any>;
2
- export declare type Func = (url: string, options: Options) => unknown;
1
+ export type Options = Record<string, any>;
2
+ export type Func = (url: string, options: Options) => unknown;
3
3
  export declare function asyncDeepMap(tree: unknown, func: Func, options?: Options): Promise<unknown>;
4
4
  export declare function mapSubtree(object: unknown, func: Func, options: Options): Promise<unknown>;
5
5
  //# sourceMappingURL=async-deep-map.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"async-deep-map.d.ts","sourceRoot":"","sources":["../../../src/lib/texture-api/async-deep-map.ts"],"names":[],"mappings":"AAgBA,oBAAY,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC1C,oBAAY,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC;AAO9D,wBAAsB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,GAAE,OAAY,oBAElF;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,oBAY7E"}
1
+ {"version":3,"file":"async-deep-map.d.ts","sourceRoot":"","sources":["../../../src/lib/texture-api/async-deep-map.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC1C,MAAM,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC;AAO9D,wBAAsB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,GAAE,OAAY,oBAElF;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,oBAY7E"}
@@ -1,5 +1,5 @@
1
- export declare type LoadOptions = Record<string, any>;
2
- export declare type Load = (data: ArrayBuffer, options: Record<string, any>) => Promise<any>;
1
+ export type LoadOptions = Record<string, any>;
2
+ export type Load = (data: ArrayBuffer, options: Record<string, any>) => Promise<any>;
3
3
  export declare function deepLoad(urlTree: unknown, load: Load, options: LoadOptions): Promise<unknown>;
4
4
  export declare function shallowLoad(url: string, load: Load, options: LoadOptions): Promise<any>;
5
5
  //# sourceMappingURL=deep-load.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deep-load.d.ts","sourceRoot":"","sources":["../../../src/lib/texture-api/deep-load.ts"],"names":[],"mappings":"AAGA,oBAAY,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC9C,oBAAY,IAAI,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAErF,wBAAsB,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,oBAEhF;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAK7F"}
1
+ {"version":3,"file":"deep-load.d.ts","sourceRoot":"","sources":["../../../src/lib/texture-api/deep-load.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC9C,MAAM,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAErF,wBAAsB,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,oBAEhF;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAK7F"}
@@ -1,5 +1,5 @@
1
1
  import type { GetUrl, UrlOptions } from './texture-api-types';
2
- export declare type ImageCubeTexture = {
2
+ export type ImageCubeTexture = {
3
3
  GL_TEXTURE_CUBE_MAP_POSITIVE_X: any;
4
4
  GL_TEXTURE_CUBE_MAP_NEGATIVE_X: any;
5
5
  GL_TEXTURE_CUBE_MAP_POSITIVE_Y: any;
@@ -1 +1 @@
1
- {"version":3,"file":"load-image-cube.d.ts","sourceRoot":"","sources":["../../../src/lib/texture-api/load-image-cube.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAqB5D,oBAAY,gBAAgB,GAAG;IAC7B,8BAA8B,EAAE,GAAG,CAAC;IACpC,8BAA8B,EAAE,GAAG,CAAC;IACpC,8BAA8B,EAAE,GAAG,CAAC;IACpC,8BAA8B,EAAE,GAAG,CAAC;IACpC,8BAA8B,EAAE,GAAG,CAAC;IACpC,8BAA8B,EAAE,GAAG,CAAC;CACrC,CAAC;AAIF,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,8CAiBzE;AAID,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,OAAO,KAAK,GACX,OAAO,CAAC,gBAAgB,CAAC,CAG3B"}
1
+ {"version":3,"file":"load-image-cube.d.ts","sourceRoot":"","sources":["../../../src/lib/texture-api/load-image-cube.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAqB5D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,8BAA8B,EAAE,GAAG,CAAC;IACpC,8BAA8B,EAAE,GAAG,CAAC;IACpC,8BAA8B,EAAE,GAAG,CAAC;IACpC,8BAA8B,EAAE,GAAG,CAAC;IACpC,8BAA8B,EAAE,GAAG,CAAC;IACpC,8BAA8B,EAAE,GAAG,CAAC;CACrC,CAAC;AAIF,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,8CAiBzE;AAID,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,OAAO,KAAK,GACX,OAAO,CAAC,gBAAgB,CAAC,CAG3B"}
@@ -1,10 +1,10 @@
1
1
  export type { ImageType } from '@loaders.gl/images';
2
- export declare type UrlOptions = {
2
+ export type UrlOptions = {
3
3
  baseUrl?: string;
4
4
  index?: number;
5
5
  face?: number;
6
6
  lod?: number;
7
7
  direction?: string;
8
8
  };
9
- export declare type GetUrl = (options: UrlOptions) => string;
9
+ export type GetUrl = (options: UrlOptions) => string;
10
10
  //# sourceMappingURL=texture-api-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"texture-api-types.d.ts","sourceRoot":"","sources":["../../../src/lib/texture-api/texture-api-types.ts"],"names":[],"mappings":"AAEA,YAAY,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAElD,oBAAY,UAAU,GAAG;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AACF,oBAAY,MAAM,GAAG,CAAC,OAAO,EAAE,UAAU,KAAK,MAAM,CAAC"}
1
+ {"version":3,"file":"texture-api-types.d.ts","sourceRoot":"","sources":["../../../src/lib/texture-api/texture-api-types.ts"],"names":[],"mappings":"AAEA,YAAY,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAElD,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AACF,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,UAAU,KAAK,MAAM,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { TextureLevel } from '@loaders.gl/schema';
2
- export declare type CompressedTextureExtractOptions = {
2
+ export type CompressedTextureExtractOptions = {
3
3
  mipMapLevels: number;
4
4
  width: number;
5
5
  height: number;
@@ -1 +1 @@
1
- {"version":3,"file":"extract-mipmap-images.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/extract-mipmap-images.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAErD,oBAAY,+BAA+B,GAAG;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,QAAQ,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,UAAU,GAAG,MAAM,EAAE,EAC3B,OAAO,EAAE,+BAA+B,GACvC,YAAY,EAAE,CA4BhB"}
1
+ {"version":3,"file":"extract-mipmap-images.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/extract-mipmap-images.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAErD,MAAM,MAAM,+BAA+B,GAAG;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,QAAQ,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,UAAU,GAAG,MAAM,EAAE,EAC3B,OAAO,EAAE,+BAA+B,GACvC,YAAY,EAAE,CA4BhB"}
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/version.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,OAAO,KAA8D,CAAC"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/version.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,OAAO,KAA4D,CAAC"}
@@ -5,4 +5,4 @@ exports.VERSION = void 0;
5
5
  // __VERSION__ is injected by babel-plugin-version-inline
6
6
  // TODO: use 'latest' instead of 'beta' when 3.0.0 version is released as 'latest'
7
7
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
8
- exports.VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
8
+ exports.VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'beta';
@@ -21,8 +21,8 @@ export declare const NPYWorkerLoader: {
21
21
  */
22
22
  export declare const NPYLoader: {
23
23
  parseSync: typeof parseNPY;
24
- parse: (arrayBuffer: ArrayBuffer, options?: LoaderOptions | undefined) => Promise<{
25
- data: any;
24
+ parse: (arrayBuffer: ArrayBuffer, options?: LoaderOptions) => Promise<{
25
+ data: Uint8Array | Uint32Array | Int32Array | Int8Array | Int16Array | Uint16Array | Float32Array | Float64Array;
26
26
  header: {
27
27
  descr: string;
28
28
  shape: number[];
@@ -1 +1 @@
1
- {"version":3,"file":"npy-loader.d.ts","sourceRoot":"","sources":["../src/npy-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAEtF,OAAO,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAC;AAKjD;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;CAY3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS;;yBAGO,WAAW;;;;;;;;;;;;;;;;;;CACvC,CAAC;AAGF,eAAO,MAAM,yBAAyB,EAAE,MAAwB,CAAC;AACjE,eAAO,MAAM,mBAAmB,EAAE,gBAA4B,CAAC"}
1
+ {"version":3,"file":"npy-loader.d.ts","sourceRoot":"","sources":["../src/npy-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAEtF,OAAO,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAC;AAKjD;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;CAY3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS;;yBAGO,WAAW,YAAY,aAAa;;;;;;;;;;;;;;;;;;CAChE,CAAC;AAGF,eAAO,MAAM,yBAAyB,EAAE,MAAwB,CAAC;AACjE,eAAO,MAAM,mBAAmB,EAAE,gBAA4B,CAAC"}
@@ -1,6 +1,6 @@
1
1
  (() => {
2
2
  // src/lib/utils/version.ts
3
- var VERSION = true ? "3.2.12" : "latest";
3
+ var VERSION = true ? "3.3.0-alpha.10" : "beta";
4
4
 
5
5
  // src/lib/parsers/parse-npy.ts
6
6
  function systemIsLittleEndian() {
@@ -28,14 +28,16 @@
28
28
  const numpyType = header.descr;
29
29
  const ArrayType = DTYPES[numpyType.slice(1, 3)];
30
30
  if (!ArrayType) {
31
- console.warn(`Decoding of npy dtype not implemented: ${numpyType}`);
32
- return null;
31
+ throw new Error(`Unimplemented type ${numpyType}`);
33
32
  }
34
33
  const nArrayElements = header.shape?.reduce((a, b) => a * b);
35
34
  const arrayByteLength = nArrayElements * ArrayType.BYTES_PER_ELEMENT;
35
+ if (arrayBuffer.byteLength < headerEndOffset + arrayByteLength) {
36
+ throw new Error("Buffer overflow");
37
+ }
36
38
  const data = new ArrayType(arrayBuffer.slice(headerEndOffset, headerEndOffset + arrayByteLength));
37
39
  if (numpyType[0] === ">" && LITTLE_ENDIAN_OS || numpyType[0] === "<" && !LITTLE_ENDIAN_OS) {
38
- console.warn("Data is wrong endianness, byte swapping not yet implemented.");
40
+ throw new Error("Incorrect endianness");
39
41
  }
40
42
  return {
41
43
  data,
@@ -47,10 +49,10 @@
47
49
  let offset = 8;
48
50
  let headerLength;
49
51
  if (majorVersion >= 2) {
50
- headerLength = view.getUint32(8, true);
52
+ headerLength = view.getUint32(offset, true);
51
53
  offset += 4;
52
54
  } else {
53
- headerLength = view.getUint16(8, true);
55
+ headerLength = view.getUint16(offset, true);
54
56
  offset += 2;
55
57
  }
56
58
  const encoding = majorVersion <= 2 ? "latin1" : "utf-8";
@@ -0,0 +1,2 @@
1
+ import '@loaders.gl/polyfills';
2
+ //# sourceMappingURL=basis-nodejs-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basis-nodejs-worker.d.ts","sourceRoot":"","sources":["../../src/workers/basis-nodejs-worker.ts"],"names":[],"mappings":"AACA,OAAO,uBAAuB,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const loader_utils_1 = require("@loaders.gl/loader-utils");
4
+ require("@loaders.gl/polyfills");
5
+ const basis_loader_1 = require("../basis-loader");
6
+ (0, loader_utils_1.createLoaderWorker)(basis_loader_1.BasisLoader);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/textures",
3
- "version": "3.2.12",
3
+ "version": "3.3.0-alpha.10",
4
4
  "description": "Framework-independent loaders for compressed and super compressed (basis) textures ",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -35,8 +35,9 @@
35
35
  "pre-build": "npm run copy-libs && npm run build-worker && npm run build-bundle",
36
36
  "copy-libs": "cp -rf ./src/libs ./dist/libs",
37
37
  "build-bundle": "esbuild src/bundle.ts --bundle --outfile=dist/dist.min.js",
38
- "build-worker": "npm run build-basis-worker && npm run build-npy-worker && npm run build-compressed-texture-worker && npm run build-crunch-worker && npm run build-ktx2-basis-writer-worker && npm run build-ktx2-basis-writer-nodejs-worker",
38
+ "build-worker": "npm run build-basis-worker && npm run build-basis-nodejs-worker && npm run build-npy-worker && npm run build-compressed-texture-worker && npm run build-crunch-worker && npm run build-ktx2-basis-writer-worker && npm run build-ktx2-basis-writer-nodejs-worker",
39
39
  "build-basis-worker": "esbuild src/workers/basis-worker.ts --bundle --outfile=dist/basis-worker.js --define:__VERSION__=\\\"$npm_package_version\\\"",
40
+ "build-basis-nodejs-worker": "esbuild src/workers/basis-nodejs-worker.ts --platform=node --target=esnext,node12 --bundle --outfile=dist/basis-nodejs-worker.js --define:__VERSION__=\\\"$npm_package_version\\\"",
40
41
  "build-npy-worker": "esbuild src/workers/npy-worker.ts --bundle --outfile=dist/npy-worker.js --define:__VERSION__=\\\"$npm_package_version\\\"",
41
42
  "build-compressed-texture-worker": "esbuild src/workers/compressed-texture-worker.ts --bundle --outfile=dist/compressed-texture-worker.js --define:__VERSION__=\\\"$npm_package_version\\\"",
42
43
  "build-crunch-worker": "esbuild src/workers/crunch-worker.ts --bundle --outfile=dist/crunch-worker.js --define:__VERSION__=\\\"$npm_package_version\\\"",
@@ -44,15 +45,15 @@
44
45
  "build-ktx2-basis-writer-nodejs-worker": "esbuild src/workers/ktx2-basis-writer-nodejs-worker.ts --platform=node --target=esnext,node12 --bundle --outfile=dist/ktx2-basis-writer-nodejs-worker.js --define:__VERSION__=\\\"$npm_package_version\\\""
45
46
  },
46
47
  "dependencies": {
47
- "@loaders.gl/images": "3.2.12",
48
- "@loaders.gl/loader-utils": "3.2.12",
49
- "@loaders.gl/schema": "3.2.12",
50
- "@loaders.gl/worker-utils": "3.2.12",
48
+ "@loaders.gl/images": "3.3.0-alpha.10",
49
+ "@loaders.gl/loader-utils": "3.3.0-alpha.10",
50
+ "@loaders.gl/schema": "3.3.0-alpha.10",
51
+ "@loaders.gl/worker-utils": "3.3.0-alpha.10",
51
52
  "ktx-parse": "^0.0.4",
52
53
  "texture-compressor": "^1.0.2"
53
54
  },
54
55
  "devDependencies": {
55
- "@loaders.gl/polyfills": "3.2.12"
56
+ "@loaders.gl/polyfills": "3.3.0-alpha.10"
56
57
  },
57
- "gitHead": "7d46e4ff10047e479374e9b3411f5142a79df15f"
58
+ "gitHead": "53bc8d3f18fbc3445a00f8509038479119895c78"
58
59
  }
@@ -1,4 +1,5 @@
1
1
  import type {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';
2
+ import {isBrowser} from '@loaders.gl/worker-utils';
2
3
  import {VERSION} from './lib/utils/version';
3
4
  import parseBasis from './lib/parsers/parse-basis';
4
5
 
@@ -7,7 +8,7 @@ import parseBasis from './lib/parsers/parse-basis';
7
8
  */
8
9
  export const BasisWorkerLoader = {
9
10
  name: 'Basis',
10
- id: 'basis',
11
+ id: isBrowser ? 'basis' : 'basis-nodejs',
11
12
  module: 'textures',
12
13
  version: VERSION,
13
14
  worker: true,
@@ -1,6 +1,17 @@
1
1
  // import type {TextureLevel} from '@loaders.gl/schema';
2
2
 
3
3
  type NumpyHeader = {descr: string; shape: number[]};
4
+ type TypedArrayConstructor =
5
+ | typeof Int8Array
6
+ | typeof Uint8Array
7
+ | typeof Int16Array
8
+ | typeof Uint16Array
9
+ | typeof Int32Array
10
+ | typeof Uint32Array
11
+ | typeof Int32Array
12
+ | typeof Uint32Array
13
+ | typeof Float32Array
14
+ | typeof Float64Array;
4
15
 
5
16
  function systemIsLittleEndian() {
6
17
  const a = new Uint32Array([0x12345678]);
@@ -18,7 +29,7 @@ const LITTLE_ENDIAN_OS = systemIsLittleEndian();
18
29
  //
19
30
  // Here I only include the second and third characters, and check endianness
20
31
  // separately
21
- const DTYPES: Record<string, any> = {
32
+ const DTYPES: Record<string, TypedArrayConstructor> = {
22
33
  u1: Uint8Array,
23
34
  i1: Int8Array,
24
35
  u2: Uint16Array,
@@ -40,20 +51,20 @@ export function parseNPY(arrayBuffer: ArrayBuffer, options?: unknown) {
40
51
  const numpyType = header.descr;
41
52
  const ArrayType = DTYPES[numpyType.slice(1, 3)];
42
53
  if (!ArrayType) {
43
- // eslint-disable-next-line no-console, no-undef
44
- console.warn(`Decoding of npy dtype not implemented: ${numpyType}`);
45
- return null;
54
+ throw new Error(`Unimplemented type ${numpyType}`);
46
55
  }
47
56
 
48
57
  const nArrayElements = header.shape?.reduce((a: number, b: number): number => a * b);
49
58
  const arrayByteLength = nArrayElements * ArrayType.BYTES_PER_ELEMENT;
50
59
 
60
+ if (arrayBuffer.byteLength < headerEndOffset + arrayByteLength) {
61
+ throw new Error('Buffer overflow');
62
+ }
51
63
  const data = new ArrayType(arrayBuffer.slice(headerEndOffset, headerEndOffset + arrayByteLength));
52
64
 
53
65
  // Swap endianness if needed
54
66
  if ((numpyType[0] === '>' && LITTLE_ENDIAN_OS) || (numpyType[0] === '<' && !LITTLE_ENDIAN_OS)) {
55
- // eslint-disable-next-line no-console, no-undef
56
- console.warn('Data is wrong endianness, byte swapping not yet implemented.');
67
+ throw new Error('Incorrect endianness');
57
68
  }
58
69
 
59
70
  return {
@@ -73,12 +84,12 @@ function parseHeader(view: DataView): {header: NumpyHeader; headerEndOffset: num
73
84
  // const minorVersion = view.getUint8(7);
74
85
 
75
86
  let offset = 8;
76
- let headerLength;
87
+ let headerLength: number;
77
88
  if (majorVersion >= 2) {
78
- headerLength = view.getUint32(8, true);
89
+ headerLength = view.getUint32(offset, true);
79
90
  offset += 4;
80
91
  } else {
81
- headerLength = view.getUint16(8, true);
92
+ headerLength = view.getUint16(offset, true);
82
93
  offset += 2;
83
94
  }
84
95
 
@@ -2,4 +2,4 @@
2
2
  // __VERSION__ is injected by babel-plugin-version-inline
3
3
  // TODO: use 'latest' instead of 'beta' when 3.0.0 version is released as 'latest'
4
4
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
5
- export const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
5
+ export const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'beta';
@@ -0,0 +1,5 @@
1
+ import {createLoaderWorker} from '@loaders.gl/loader-utils';
2
+ import '@loaders.gl/polyfills';
3
+ import {BasisLoader} from '../basis-loader';
4
+
5
+ createLoaderWorker(BasisLoader);