@loaders.gl/compression 4.3.4 → 4.4.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 (48) 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 +66 -61
  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.d.ts.map +1 -1
  24. package/dist/lib/lz4-compression.js +2 -0
  25. package/dist/lib/lz4-compression.js.map +1 -0
  26. package/dist/lib/no-compression.js +1 -0
  27. package/dist/lib/no-compression.js.map +1 -0
  28. package/dist/lib/snappy-compression.js +1 -0
  29. package/dist/lib/snappy-compression.js.map +1 -0
  30. package/dist/lib/zstd-compression.d.ts.map +1 -1
  31. package/dist/lib/zstd-compression.js +5 -2
  32. package/dist/lib/zstd-compression.js.map +1 -0
  33. package/dist/types.js +1 -0
  34. package/dist/types.js.map +1 -0
  35. package/dist/workers/compression-worker-node.js +1 -0
  36. package/dist/workers/compression-worker-node.js.map +1 -0
  37. package/dist/workers/compression-worker.js +1 -0
  38. package/dist/workers/compression-worker.js.map +1 -0
  39. package/package.json +12 -7
  40. package/src/index.ts +0 -1
  41. package/src/lib/brotli-compression.ts +2 -2
  42. package/src/lib/deflate-compression.ts +4 -4
  43. package/src/lib/lz4-compression.ts +1 -0
  44. package/src/lib/zstd-compression.ts +6 -3
  45. package/dist/lib/lzo-compression.d.ts +0 -21
  46. package/dist/lib/lzo-compression.d.ts.map +0 -1
  47. package/dist/lib/lzo-compression.js +0 -57
  48. 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,
@@ -4691,14 +4690,14 @@ var __exports__ = (() => {
4691
4690
  var matches = typeof process !== "undefined" && process.version && /v([0-9]*)/.exec(process.version);
4692
4691
  var nodeVersion = matches && parseFloat(matches[1]) || 0;
4693
4692
 
4694
- // ../../node_modules/@probe.gl/log/node_modules/@probe.gl/env/dist/lib/globals.js
4693
+ // ../../node_modules/@probe.gl/env/dist/lib/globals.js
4695
4694
  var window_2 = globalThis;
4696
4695
  var document_2 = globalThis.document || {};
4697
4696
  var process_ = globalThis.process || {};
4698
4697
  var console_ = globalThis.console;
4699
4698
  var navigator_ = globalThis.navigator || {};
4700
4699
 
4701
- // ../../node_modules/@probe.gl/log/node_modules/@probe.gl/env/dist/lib/is-electron.js
4700
+ // ../../node_modules/@probe.gl/env/dist/lib/is-electron.js
4702
4701
  function isElectron(mockUserAgent) {
4703
4702
  if (typeof window !== "undefined" && window.process?.type === "renderer") {
4704
4703
  return true;
@@ -4711,7 +4710,7 @@ var __exports__ = (() => {
4711
4710
  return Boolean(userAgent && userAgent.indexOf("Electron") >= 0);
4712
4711
  }
4713
4712
 
4714
- // ../../node_modules/@probe.gl/log/node_modules/@probe.gl/env/dist/lib/is-browser.js
4713
+ // ../../node_modules/@probe.gl/env/dist/lib/is-browser.js
4715
4714
  function isBrowser2() {
4716
4715
  const isNode = (
4717
4716
  // @ts-expect-error
@@ -4720,7 +4719,7 @@ var __exports__ = (() => {
4720
4719
  return !isNode || isElectron();
4721
4720
  }
4722
4721
 
4723
- // ../../node_modules/@probe.gl/log/node_modules/@probe.gl/env/dist/index.js
4722
+ // ../../node_modules/@probe.gl/env/dist/index.js
4724
4723
  var VERSION = true ? "4.0.7" : "untranspiled source";
4725
4724
 
4726
4725
  // ../../node_modules/@probe.gl/log/dist/utils/local-storage.js
@@ -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 ||= {};
@@ -5160,16 +5162,20 @@ var __exports__ = (() => {
5160
5162
  return module || null;
5161
5163
  }
5162
5164
 
5165
+ // ../worker-utils/src/lib/npm-tag.ts
5166
+ var NPM_TAG = "beta";
5167
+
5163
5168
  // ../worker-utils/src/lib/env-utils/version.ts
5164
- var NPM_TAG = "latest";
5169
+ var warningIssued = false;
5165
5170
  function getVersion() {
5166
5171
  if (!globalThis._loadersgl_?.version) {
5167
5172
  globalThis._loadersgl_ = globalThis._loadersgl_ || {};
5168
- if (typeof __VERSION__ === "undefined") {
5173
+ if (typeof __VERSION__ === "undefined" && !warningIssued) {
5169
5174
  console.warn(
5170
5175
  "loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN."
5171
5176
  );
5172
5177
  globalThis._loadersgl_.version = NPM_TAG;
5178
+ warningIssued = true;
5173
5179
  } else {
5174
5180
  globalThis._loadersgl_.version = __VERSION__;
5175
5181
  }
@@ -5441,7 +5447,8 @@ var __exports__ = (() => {
5441
5447
  if (this.url) {
5442
5448
  const absolute = this.url.includes(":/") || this.url.startsWith("/");
5443
5449
  const url = absolute ? this.url : `./${this.url}`;
5444
- 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 });
5445
5452
  } else if (this.source) {
5446
5453
  worker = new NodeWorker(this.source, { eval: true });
5447
5454
  } else {
@@ -5697,7 +5704,8 @@ var __exports__ = (() => {
5697
5704
  if (!url && worker.id === "compression") {
5698
5705
  url = options.workerUrl;
5699
5706
  }
5700
- if (options._workerType === "test") {
5707
+ const workerType = options._workerType || options?.core?._workerType;
5708
+ if (workerType === "test") {
5701
5709
  if (isBrowser3) {
5702
5710
  url = `modules/${worker.module}/dist/${workerFile}`;
5703
5711
  } else {
@@ -5786,26 +5794,36 @@ var __exports__ = (() => {
5786
5794
  async function concatenateArrayBuffersAsync(asyncIterator) {
5787
5795
  const arrayBuffers = [];
5788
5796
  for await (const chunk of asyncIterator) {
5789
- arrayBuffers.push(chunk);
5797
+ arrayBuffers.push(copyToArrayBuffer(chunk));
5790
5798
  }
5791
5799
  return concatenateArrayBuffers(...arrayBuffers);
5792
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
+ }
5793
5817
 
5794
5818
  // ../loader-utils/src/lib/node/buffer.browser.ts
5795
5819
  function toArrayBuffer(buffer) {
5796
5820
  return buffer;
5797
5821
  }
5798
- function toBuffer(binaryData) {
5799
- throw new Error("Buffer not supported in browser");
5800
- }
5801
5822
 
5802
5823
  // ../loader-utils/src/lib/binary-utils/memory-conversion-utils.ts
5803
5824
  function isBuffer(value) {
5804
5825
  return value && typeof value === "object" && value.isBuffer;
5805
5826
  }
5806
- function toBuffer2(data) {
5807
- return toBuffer ? toBuffer(data) : data;
5808
- }
5809
5827
  function toArrayBuffer2(data) {
5810
5828
  if (isBuffer(data)) {
5811
5829
  return toArrayBuffer(data);
@@ -5813,11 +5831,15 @@ var __exports__ = (() => {
5813
5831
  if (data instanceof ArrayBuffer) {
5814
5832
  return data;
5815
5833
  }
5834
+ if (isSharedArrayBuffer(data)) {
5835
+ return copyToArrayBuffer2(data);
5836
+ }
5816
5837
  if (ArrayBuffer.isView(data)) {
5838
+ const buffer = data.buffer;
5817
5839
  if (data.byteOffset === 0 && data.byteLength === data.buffer.byteLength) {
5818
- return data.buffer;
5840
+ return buffer;
5819
5841
  }
5820
- return data.buffer.slice(data.byteOffset, data.byteOffset + data.byteLength);
5842
+ return buffer.slice(data.byteOffset, data.byteOffset + data.byteLength);
5821
5843
  }
5822
5844
  if (typeof data === "string") {
5823
5845
  const text = data;
@@ -5829,6 +5851,25 @@ var __exports__ = (() => {
5829
5851
  }
5830
5852
  throw new Error("toArrayBuffer");
5831
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
+ }
5832
5873
 
5833
5874
  // ../loader-utils/src/lib/node/promisify.ts
5834
5875
  function promisify1(fn) {
@@ -5949,7 +5990,7 @@ var __exports__ = (() => {
5949
5990
  const pakoOptions = this.options?.deflate || {};
5950
5991
  const inputArray = new Uint8Array(input);
5951
5992
  const deflate = this.options?.raw ? import_pako.default.deflateRaw : import_pako.default.deflate;
5952
- return deflate(inputArray, pakoOptions).buffer;
5993
+ return toArrayBuffer2(deflate(inputArray, pakoOptions).buffer);
5953
5994
  }
5954
5995
  decompressSync(input) {
5955
5996
  if (!isBrowser && this.options.deflate?.useZlib) {
@@ -5959,7 +6000,7 @@ var __exports__ = (() => {
5959
6000
  const pakoOptions = this.options?.deflate || {};
5960
6001
  const inputArray = new Uint8Array(input);
5961
6002
  const inflate = this.options?.raw ? import_pako.default.inflateRaw : import_pako.default.inflate;
5962
- return inflate(inputArray, pakoOptions).buffer;
6003
+ return toArrayBuffer2(inflate(inputArray, pakoOptions).buffer);
5963
6004
  }
5964
6005
  async *compressBatches(asyncIterator) {
5965
6006
  const pakoOptions = this.options?.deflate || {};
@@ -8149,7 +8190,7 @@ var __exports__ = (() => {
8149
8190
  const inputArray = new Uint8Array(input);
8150
8191
  const brotli = getJSModule("brotli", this.name);
8151
8192
  const outputArray = brotli.compress(inputArray, brotliOptions);
8152
- return outputArray.buffer;
8193
+ return toArrayBuffer2(outputArray.buffer);
8153
8194
  }
8154
8195
  async decompress(input) {
8155
8196
  if (!isBrowser && this.options.brotli?.useZlib) {
@@ -8168,7 +8209,7 @@ var __exports__ = (() => {
8168
8209
  const brotli = getJSModuleOrNull("brotli");
8169
8210
  if (brotli) {
8170
8211
  const outputArray2 = brotli.decompress(inputArray, brotliOptions);
8171
- return outputArray2.buffer;
8212
+ return toArrayBuffer2(outputArray2.buffer);
8172
8213
  }
8173
8214
  const outputArray = BrotliDecode(inputArray, void 0);
8174
8215
  return outputArray.buffer;
@@ -8346,51 +8387,15 @@ var __exports__ = (() => {
8346
8387
  const inputArray = new Uint8Array(input);
8347
8388
  const chunks = [];
8348
8389
  for (let i = 0; i <= inputArray.length; i += CHUNK_SIZE) {
8349
- 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));
8350
8393
  }
8351
8394
  const decompressResult = await simpleZstd.decompressChunks(chunks);
8352
8395
  return decompressResult.buffer;
8353
8396
  }
8354
8397
  };
8355
8398
 
8356
- // src/lib/lzo-compression.ts
8357
- var LZOCompression = class extends Compression {
8358
- name = "lzo";
8359
- extensions = [];
8360
- contentEncodings = [];
8361
- isSupported = false;
8362
- // !isBrowser;
8363
- options;
8364
- /**
8365
- * lzo is an injectable dependency due to big size
8366
- * @param options
8367
- */
8368
- constructor(options) {
8369
- super(options);
8370
- this.options = options;
8371
- registerJSModules(options?.modules);
8372
- }
8373
- async preload(modules = {}) {
8374
- registerJSModules(modules);
8375
- }
8376
- async compress(input) {
8377
- await this.preload();
8378
- const lzo = getJSModule("lzo", this.name);
8379
- const inputBuffer = toBuffer2(input);
8380
- return lzo.compress(inputBuffer).buffer;
8381
- }
8382
- async decompress(input) {
8383
- try {
8384
- await this.preload();
8385
- const lzo = getJSModule("lzo", this.name);
8386
- const inputBuffer = toBuffer2(input);
8387
- return lzo.decompress(inputBuffer).buffer;
8388
- } catch (error) {
8389
- throw error;
8390
- }
8391
- }
8392
- };
8393
-
8394
8399
  // src/compress-on-worker.ts
8395
8400
  var VERSION4 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
8396
8401
  var CompressionWorker = {