@loaders.gl/compression 4.4.0-alpha.2 → 4.4.0-alpha.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/brotli/decode.js +1 -0
  2. package/dist/brotli/decode.js.map +1 -0
  3. package/dist/compress-on-worker.js +2 -1
  4. package/dist/compress-on-worker.js.map +1 -0
  5. package/dist/compression-worker.js +2 -2
  6. package/dist/compression-worker.js.map +4 -4
  7. package/dist/dist.dev.js +59 -56
  8. package/dist/dist.min.js +3 -3
  9. package/dist/index.cjs +8 -46
  10. package/dist/index.cjs.map +4 -4
  11. package/dist/index.d.ts +0 -1
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +1 -1
  14. package/dist/index.js.map +1 -0
  15. package/dist/lib/brotli-compression.js +3 -2
  16. package/dist/lib/brotli-compression.js.map +1 -0
  17. package/dist/lib/compression.js +1 -0
  18. package/dist/lib/compression.js.map +1 -0
  19. package/dist/lib/deflate-compression.js +3 -2
  20. package/dist/lib/deflate-compression.js.map +1 -0
  21. package/dist/lib/gzip-compression.js +1 -0
  22. package/dist/lib/gzip-compression.js.map +1 -0
  23. package/dist/lib/lz4-compression.js +1 -0
  24. package/dist/lib/lz4-compression.js.map +1 -0
  25. package/dist/lib/no-compression.js +1 -0
  26. package/dist/lib/no-compression.js.map +1 -0
  27. package/dist/lib/snappy-compression.js +1 -0
  28. package/dist/lib/snappy-compression.js.map +1 -0
  29. package/dist/lib/zstd-compression.d.ts.map +1 -1
  30. package/dist/lib/zstd-compression.js +5 -2
  31. package/dist/lib/zstd-compression.js.map +1 -0
  32. package/dist/types.js +1 -0
  33. package/dist/types.js.map +1 -0
  34. package/dist/workers/compression-worker-node.js +1 -0
  35. package/dist/workers/compression-worker-node.js.map +1 -0
  36. package/dist/workers/compression-worker.js +1 -0
  37. package/dist/workers/compression-worker.js.map +1 -0
  38. package/package.json +10 -5
  39. package/src/index.ts +0 -1
  40. package/src/lib/brotli-compression.ts +2 -2
  41. package/src/lib/deflate-compression.ts +4 -4
  42. package/src/lib/zstd-compression.ts +6 -3
  43. package/dist/lib/lzo-compression.d.ts +0 -21
  44. package/dist/lib/lzo-compression.d.ts.map +0 -1
  45. package/dist/lib/lzo-compression.js +0 -57
  46. package/src/lib/lzo-compression.ts +0 -66
package/dist/dist.dev.js CHANGED
@@ -4665,7 +4665,6 @@ var __exports__ = (() => {
4665
4665
  DeflateCompression: () => DeflateCompression,
4666
4666
  GZipCompression: () => GZipCompression,
4667
4667
  LZ4Compression: () => LZ4Compression,
4668
- LZOCompression: () => LZOCompression,
4669
4668
  NoCompression: () => NoCompression,
4670
4669
  SnappyCompression: () => SnappyCompression,
4671
4670
  ZstdCompression: () => ZstdCompression,
@@ -5136,6 +5135,9 @@ var __exports__ = (() => {
5136
5135
  }
5137
5136
  var log = createLog();
5138
5137
 
5138
+ // ../loader-utils/src/lib/javascript-utils/is-type.ts
5139
+ var isSharedArrayBuffer = (value) => typeof SharedArrayBuffer !== "undefined" && value instanceof SharedArrayBuffer;
5140
+
5139
5141
  // ../loader-utils/src/lib/module-utils/js-module-utils.ts
5140
5142
  function registerJSModules(modules) {
5141
5143
  globalThis.loaders ||= {};
@@ -5164,14 +5166,16 @@ var __exports__ = (() => {
5164
5166
  var NPM_TAG = "beta";
5165
5167
 
5166
5168
  // ../worker-utils/src/lib/env-utils/version.ts
5169
+ var warningIssued = false;
5167
5170
  function getVersion() {
5168
5171
  if (!globalThis._loadersgl_?.version) {
5169
5172
  globalThis._loadersgl_ = globalThis._loadersgl_ || {};
5170
- if (typeof __VERSION__ === "undefined") {
5173
+ if (typeof __VERSION__ === "undefined" && !warningIssued) {
5171
5174
  console.warn(
5172
5175
  "loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN."
5173
5176
  );
5174
5177
  globalThis._loadersgl_.version = NPM_TAG;
5178
+ warningIssued = true;
5175
5179
  } else {
5176
5180
  globalThis._loadersgl_.version = __VERSION__;
5177
5181
  }
@@ -5443,7 +5447,8 @@ var __exports__ = (() => {
5443
5447
  if (this.url) {
5444
5448
  const absolute = this.url.includes(":/") || this.url.startsWith("/");
5445
5449
  const url = absolute ? this.url : `./${this.url}`;
5446
- worker = new NodeWorker(url, { eval: false });
5450
+ const type = this.url.endsWith(".ts") || this.url.endsWith(".mjs") ? "module" : "commonjs";
5451
+ worker = new NodeWorker(url, { eval: false, type });
5447
5452
  } else if (this.source) {
5448
5453
  worker = new NodeWorker(this.source, { eval: true });
5449
5454
  } else {
@@ -5699,7 +5704,8 @@ var __exports__ = (() => {
5699
5704
  if (!url && worker.id === "compression") {
5700
5705
  url = options.workerUrl;
5701
5706
  }
5702
- if (options._workerType === "test") {
5707
+ const workerType = options._workerType || options?.core?._workerType;
5708
+ if (workerType === "test") {
5703
5709
  if (isBrowser3) {
5704
5710
  url = `modules/${worker.module}/dist/${workerFile}`;
5705
5711
  } else {
@@ -5788,26 +5794,36 @@ var __exports__ = (() => {
5788
5794
  async function concatenateArrayBuffersAsync(asyncIterator) {
5789
5795
  const arrayBuffers = [];
5790
5796
  for await (const chunk of asyncIterator) {
5791
- arrayBuffers.push(chunk);
5797
+ arrayBuffers.push(copyToArrayBuffer(chunk));
5792
5798
  }
5793
5799
  return concatenateArrayBuffers(...arrayBuffers);
5794
5800
  }
5801
+ function copyToArrayBuffer(chunk) {
5802
+ if (chunk instanceof ArrayBuffer) {
5803
+ return chunk;
5804
+ }
5805
+ if (ArrayBuffer.isView(chunk)) {
5806
+ const { buffer, byteOffset, byteLength } = chunk;
5807
+ return copyFromBuffer(buffer, byteOffset, byteLength);
5808
+ }
5809
+ return copyFromBuffer(chunk);
5810
+ }
5811
+ function copyFromBuffer(buffer, byteOffset = 0, byteLength = buffer.byteLength - byteOffset) {
5812
+ const view = new Uint8Array(buffer, byteOffset, byteLength);
5813
+ const copy = new Uint8Array(view.length);
5814
+ copy.set(view);
5815
+ return copy.buffer;
5816
+ }
5795
5817
 
5796
5818
  // ../loader-utils/src/lib/node/buffer.browser.ts
5797
5819
  function toArrayBuffer(buffer) {
5798
5820
  return buffer;
5799
5821
  }
5800
- function toBuffer(binaryData) {
5801
- throw new Error("Buffer not supported in browser");
5802
- }
5803
5822
 
5804
5823
  // ../loader-utils/src/lib/binary-utils/memory-conversion-utils.ts
5805
5824
  function isBuffer(value) {
5806
5825
  return value && typeof value === "object" && value.isBuffer;
5807
5826
  }
5808
- function toBuffer2(data) {
5809
- return toBuffer ? toBuffer(data) : data;
5810
- }
5811
5827
  function toArrayBuffer2(data) {
5812
5828
  if (isBuffer(data)) {
5813
5829
  return toArrayBuffer(data);
@@ -5815,11 +5831,15 @@ var __exports__ = (() => {
5815
5831
  if (data instanceof ArrayBuffer) {
5816
5832
  return data;
5817
5833
  }
5834
+ if (isSharedArrayBuffer(data)) {
5835
+ return copyToArrayBuffer2(data);
5836
+ }
5818
5837
  if (ArrayBuffer.isView(data)) {
5838
+ const buffer = data.buffer;
5819
5839
  if (data.byteOffset === 0 && data.byteLength === data.buffer.byteLength) {
5820
- return data.buffer;
5840
+ return buffer;
5821
5841
  }
5822
- return data.buffer.slice(data.byteOffset, data.byteOffset + data.byteLength);
5842
+ return buffer.slice(data.byteOffset, data.byteOffset + data.byteLength);
5823
5843
  }
5824
5844
  if (typeof data === "string") {
5825
5845
  const text = data;
@@ -5831,6 +5851,25 @@ var __exports__ = (() => {
5831
5851
  }
5832
5852
  throw new Error("toArrayBuffer");
5833
5853
  }
5854
+ function ensureArrayBuffer(bufferSource) {
5855
+ if (bufferSource instanceof ArrayBuffer) {
5856
+ return bufferSource;
5857
+ }
5858
+ if (isSharedArrayBuffer(bufferSource)) {
5859
+ return copyToArrayBuffer2(bufferSource);
5860
+ }
5861
+ const { buffer, byteOffset, byteLength } = bufferSource;
5862
+ if (buffer instanceof ArrayBuffer && byteOffset === 0 && byteLength === buffer.byteLength) {
5863
+ return buffer;
5864
+ }
5865
+ return copyToArrayBuffer2(buffer, byteOffset, byteLength);
5866
+ }
5867
+ function copyToArrayBuffer2(buffer, byteOffset = 0, byteLength = buffer.byteLength - byteOffset) {
5868
+ const view = new Uint8Array(buffer, byteOffset, byteLength);
5869
+ const copy = new Uint8Array(view.length);
5870
+ copy.set(view);
5871
+ return copy.buffer;
5872
+ }
5834
5873
 
5835
5874
  // ../loader-utils/src/lib/node/promisify.ts
5836
5875
  function promisify1(fn) {
@@ -5951,7 +5990,7 @@ var __exports__ = (() => {
5951
5990
  const pakoOptions = this.options?.deflate || {};
5952
5991
  const inputArray = new Uint8Array(input);
5953
5992
  const deflate = this.options?.raw ? import_pako.default.deflateRaw : import_pako.default.deflate;
5954
- return deflate(inputArray, pakoOptions).buffer;
5993
+ return toArrayBuffer2(deflate(inputArray, pakoOptions).buffer);
5955
5994
  }
5956
5995
  decompressSync(input) {
5957
5996
  if (!isBrowser && this.options.deflate?.useZlib) {
@@ -5961,7 +6000,7 @@ var __exports__ = (() => {
5961
6000
  const pakoOptions = this.options?.deflate || {};
5962
6001
  const inputArray = new Uint8Array(input);
5963
6002
  const inflate = this.options?.raw ? import_pako.default.inflateRaw : import_pako.default.inflate;
5964
- return inflate(inputArray, pakoOptions).buffer;
6003
+ return toArrayBuffer2(inflate(inputArray, pakoOptions).buffer);
5965
6004
  }
5966
6005
  async *compressBatches(asyncIterator) {
5967
6006
  const pakoOptions = this.options?.deflate || {};
@@ -8151,7 +8190,7 @@ var __exports__ = (() => {
8151
8190
  const inputArray = new Uint8Array(input);
8152
8191
  const brotli = getJSModule("brotli", this.name);
8153
8192
  const outputArray = brotli.compress(inputArray, brotliOptions);
8154
- return outputArray.buffer;
8193
+ return toArrayBuffer2(outputArray.buffer);
8155
8194
  }
8156
8195
  async decompress(input) {
8157
8196
  if (!isBrowser && this.options.brotli?.useZlib) {
@@ -8170,7 +8209,7 @@ var __exports__ = (() => {
8170
8209
  const brotli = getJSModuleOrNull("brotli");
8171
8210
  if (brotli) {
8172
8211
  const outputArray2 = brotli.decompress(inputArray, brotliOptions);
8173
- return outputArray2.buffer;
8212
+ return toArrayBuffer2(outputArray2.buffer);
8174
8213
  }
8175
8214
  const outputArray = BrotliDecode(inputArray, void 0);
8176
8215
  return outputArray.buffer;
@@ -8348,51 +8387,15 @@ var __exports__ = (() => {
8348
8387
  const inputArray = new Uint8Array(input);
8349
8388
  const chunks = [];
8350
8389
  for (let i = 0; i <= inputArray.length; i += CHUNK_SIZE) {
8351
- chunks.push(inputArray.subarray(i, i + CHUNK_SIZE));
8390
+ const chunkView = inputArray.subarray(i, i + CHUNK_SIZE);
8391
+ const chunkArrayBuffer = ensureArrayBuffer(chunkView);
8392
+ chunks.push(new Uint8Array(chunkArrayBuffer));
8352
8393
  }
8353
8394
  const decompressResult = await simpleZstd.decompressChunks(chunks);
8354
8395
  return decompressResult.buffer;
8355
8396
  }
8356
8397
  };
8357
8398
 
8358
- // src/lib/lzo-compression.ts
8359
- var LZOCompression = class extends Compression {
8360
- name = "lzo";
8361
- extensions = [];
8362
- contentEncodings = [];
8363
- isSupported = false;
8364
- // !isBrowser;
8365
- options;
8366
- /**
8367
- * lzo is an injectable dependency due to big size
8368
- * @param options
8369
- */
8370
- constructor(options) {
8371
- super(options);
8372
- this.options = options;
8373
- registerJSModules(options?.modules);
8374
- }
8375
- async preload(modules = {}) {
8376
- registerJSModules(modules);
8377
- }
8378
- async compress(input) {
8379
- await this.preload();
8380
- const lzo = getJSModule("lzo", this.name);
8381
- const inputBuffer = toBuffer2(input);
8382
- return lzo.compress(inputBuffer).buffer;
8383
- }
8384
- async decompress(input) {
8385
- try {
8386
- await this.preload();
8387
- const lzo = getJSModule("lzo", this.name);
8388
- const inputBuffer = toBuffer2(input);
8389
- return lzo.decompress(inputBuffer).buffer;
8390
- } catch (error) {
8391
- throw error;
8392
- }
8393
- }
8394
- };
8395
-
8396
8399
  // src/compress-on-worker.ts
8397
8400
  var VERSION4 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
8398
8401
  var CompressionWorker = {