@loaders.gl/compression 3.4.0-alpha.2 → 3.4.0-alpha.3

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 (51) hide show
  1. package/dist/es5/brotli/decode.js +1 -24
  2. package/dist/es5/brotli/decode.js.map +1 -1
  3. package/dist/es5/compression-worker.js +1 -2
  4. package/dist/es5/compression-worker.js.map +1 -1
  5. package/dist/es5/index.js.map +1 -1
  6. package/dist/es5/lib/brotli-compression.js +41 -50
  7. package/dist/es5/lib/brotli-compression.js.map +1 -1
  8. package/dist/es5/lib/compression.js +51 -72
  9. package/dist/es5/lib/compression.js.map +1 -1
  10. package/dist/es5/lib/deflate-compression.js +138 -151
  11. package/dist/es5/lib/deflate-compression.js.map +1 -1
  12. package/dist/es5/lib/gzip-compression.js.map +1 -1
  13. package/dist/es5/lib/lz4-compression.js +3 -18
  14. package/dist/es5/lib/lz4-compression.js.map +1 -1
  15. package/dist/es5/lib/lzo-compression.js +29 -38
  16. package/dist/es5/lib/lzo-compression.js.map +1 -1
  17. package/dist/es5/lib/no-compression.js +16 -20
  18. package/dist/es5/lib/no-compression.js.map +1 -1
  19. package/dist/es5/lib/snappy-compression.js.map +1 -1
  20. package/dist/es5/lib/zstd-compression.js +16 -20
  21. package/dist/es5/lib/zstd-compression.js.map +1 -1
  22. package/dist/es5/workers/worker.js +24 -29
  23. package/dist/es5/workers/worker.js.map +1 -1
  24. package/dist/esm/brotli/decode.js +1 -25
  25. package/dist/esm/brotli/decode.js.map +1 -1
  26. package/dist/esm/bundle.js +0 -1
  27. package/dist/esm/bundle.js.map +1 -1
  28. package/dist/esm/compression-worker.js +1 -3
  29. package/dist/esm/compression-worker.js.map +1 -1
  30. package/dist/esm/lib/brotli-compression.js +0 -4
  31. package/dist/esm/lib/brotli-compression.js.map +1 -1
  32. package/dist/esm/lib/compression.js +0 -9
  33. package/dist/esm/lib/compression.js.map +1 -1
  34. package/dist/esm/lib/deflate-compression.js +1 -5
  35. package/dist/esm/lib/deflate-compression.js.map +1 -1
  36. package/dist/esm/lib/gzip-compression.js +0 -1
  37. package/dist/esm/lib/gzip-compression.js.map +1 -1
  38. package/dist/esm/lib/lz4-compression.js +0 -13
  39. package/dist/esm/lib/lz4-compression.js.map +1 -1
  40. package/dist/esm/lib/lzo-compression.js +1 -5
  41. package/dist/esm/lib/lzo-compression.js.map +1 -1
  42. package/dist/esm/lib/no-compression.js +0 -2
  43. package/dist/esm/lib/no-compression.js.map +1 -1
  44. package/dist/esm/lib/snappy-compression.js +0 -2
  45. package/dist/esm/lib/snappy-compression.js.map +1 -1
  46. package/dist/esm/lib/zstd-compression.js +0 -3
  47. package/dist/esm/lib/zstd-compression.js.map +1 -1
  48. package/dist/esm/workers/worker.js +1 -7
  49. package/dist/esm/workers/worker.js.map +1 -1
  50. package/dist/workers/worker.js +1 -1
  51. package/package.json +4 -4
@@ -1,4 +1,3 @@
1
-
2
1
  const moduleExports = require('./index');
3
2
  globalThis.loaders = globalThis.loaders || {};
4
3
  module.exports = Object.assign(globalThis.loaders, moduleExports);
@@ -1 +1 @@
1
- {"version":3,"file":"bundle.js","names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"sources":["../../src/bundle.ts"],"sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.loaders = globalThis.loaders || {};\nmodule.exports = Object.assign(globalThis.loaders, moduleExports);\n"],"mappings":";AACA,MAAMA,aAAa,GAAGC,OAAO,CAAC,SAAS,CAAC;AACxCC,UAAU,CAACC,OAAO,GAAGD,UAAU,CAACC,OAAO,IAAI,CAAC,CAAC;AAC7CC,MAAM,CAACC,OAAO,GAAGC,MAAM,CAACC,MAAM,CAACL,UAAU,CAACC,OAAO,EAAEH,aAAa,CAAC"}
1
+ {"version":3,"file":"bundle.js","names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"sources":["../../src/bundle.ts"],"sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.loaders = globalThis.loaders || {};\nmodule.exports = Object.assign(globalThis.loaders, moduleExports);\n"],"mappings":"AACA,MAAMA,aAAa,GAAGC,OAAO,CAAC,SAAS,CAAC;AACxCC,UAAU,CAACC,OAAO,GAAGD,UAAU,CAACC,OAAO,IAAI,CAAC,CAAC;AAC7CC,MAAM,CAACC,OAAO,GAAGC,MAAM,CAACC,MAAM,CAACL,UAAU,CAACC,OAAO,EAAEH,aAAa,CAAC"}
@@ -1,6 +1,5 @@
1
1
  import { processOnWorker } from '@loaders.gl/worker-utils';
2
-
3
- const VERSION = typeof "3.4.0-alpha.2" !== 'undefined' ? "3.4.0-alpha.2" : 'latest';
2
+ const VERSION = typeof "3.4.0-alpha.3" !== 'undefined' ? "3.4.0-alpha.3" : 'latest';
4
3
  export const CompressionWorker = {
5
4
  id: 'compression',
6
5
  name: 'compression',
@@ -8,7 +7,6 @@ export const CompressionWorker = {
8
7
  version: VERSION,
9
8
  options: {}
10
9
  };
11
-
12
10
  export function compressOnWorker(data, options) {
13
11
  return processOnWorker(CompressionWorker, data, options);
14
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compression-worker.js","names":["processOnWorker","VERSION","CompressionWorker","id","name","module","version","options","compressOnWorker","data","_typecheckCompressionWorker"],"sources":["../../src/compression-worker.ts"],"sourcesContent":["import type {WorkerObject} from '@loaders.gl/worker-utils';\nimport {processOnWorker} from '@loaders.gl/worker-utils';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type CompressionWorkerOptions = {\n compression: string;\n operation: 'compress' | 'decompress';\n};\n\n/**\n * Worker for Zlib real-time compression and decompression\n */\nexport const CompressionWorker = {\n id: 'compression',\n name: 'compression',\n module: 'compression',\n version: VERSION,\n options: {}\n};\n\n/**\n * Provide type safety\n */\nexport function compressOnWorker(\n data: ArrayBuffer,\n options: CompressionWorkerOptions\n): Promise<ArrayBuffer> {\n return processOnWorker(CompressionWorker, data, options);\n}\n\nexport const _typecheckCompressionWorker: WorkerObject = CompressionWorker;\n"],"mappings":"AACA,SAAQA,eAAe,QAAO,0BAA0B;;AAIxD,MAAMC,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;AAU3E,OAAO,MAAMC,iBAAiB,GAAG;EAC/BC,EAAE,EAAE,aAAa;EACjBC,IAAI,EAAE,aAAa;EACnBC,MAAM,EAAE,aAAa;EACrBC,OAAO,EAAEL,OAAO;EAChBM,OAAO,EAAE,CAAC;AACZ,CAAC;;AAKD,OAAO,SAASC,gBAAgB,CAC9BC,IAAiB,EACjBF,OAAiC,EACX;EACtB,OAAOP,eAAe,CAACE,iBAAiB,EAAEO,IAAI,EAAEF,OAAO,CAAC;AAC1D;AAEA,OAAO,MAAMG,2BAAyC,GAAGR,iBAAiB"}
1
+ {"version":3,"file":"compression-worker.js","names":["processOnWorker","VERSION","CompressionWorker","id","name","module","version","options","compressOnWorker","data","_typecheckCompressionWorker"],"sources":["../../src/compression-worker.ts"],"sourcesContent":["import type {WorkerObject} from '@loaders.gl/worker-utils';\nimport {processOnWorker} from '@loaders.gl/worker-utils';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type CompressionWorkerOptions = {\n compression: string;\n operation: 'compress' | 'decompress';\n};\n\n/**\n * Worker for Zlib real-time compression and decompression\n */\nexport const CompressionWorker = {\n id: 'compression',\n name: 'compression',\n module: 'compression',\n version: VERSION,\n options: {}\n};\n\n/**\n * Provide type safety\n */\nexport function compressOnWorker(\n data: ArrayBuffer,\n options: CompressionWorkerOptions\n): Promise<ArrayBuffer> {\n return processOnWorker(CompressionWorker, data, options);\n}\n\nexport const _typecheckCompressionWorker: WorkerObject = CompressionWorker;\n"],"mappings":"AACA,SAAQA,eAAe,QAAO,0BAA0B;AAIxD,MAAMC,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;AAU3E,OAAO,MAAMC,iBAAiB,GAAG;EAC/BC,EAAE,EAAE,aAAa;EACjBC,IAAI,EAAE,aAAa;EACnBC,MAAM,EAAE,aAAa;EACrBC,OAAO,EAAEL,OAAO;EAChBM,OAAO,EAAE,CAAC;AACZ,CAAC;AAKD,OAAO,SAASC,gBAAgBA,CAC9BC,IAAiB,EACjBF,OAAiC,EACX;EACtB,OAAOP,eAAe,CAACE,iBAAiB,EAAEO,IAAI,EAAEF,OAAO,CAAC;AAC1D;AAEA,OAAO,MAAMG,2BAAyC,GAAGR,iBAAiB"}
@@ -1,5 +1,4 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
-
3
2
  import { Compression } from './compression';
4
3
  import { isBrowser, toArrayBuffer } from '@loaders.gl/loader-utils';
5
4
  import { BrotliDecode } from '../brotli/decode';
@@ -13,7 +12,6 @@ const DEFAULT_BROTLI_OPTIONS = {
13
12
  }
14
13
  };
15
14
  let brotli;
16
-
17
15
  export class BrotliCompression extends Compression {
18
16
  constructor(options) {
19
17
  super(options);
@@ -24,7 +22,6 @@ export class BrotliCompression extends Compression {
24
22
  _defineProperty(this, "options", void 0);
25
23
  this.options = options;
26
24
  }
27
-
28
25
  async preload() {
29
26
  var _this$options, _this$options$modules;
30
27
  brotli = brotli || ((_this$options = this.options) === null || _this$options === void 0 ? void 0 : (_this$options$modules = _this$options.modules) === null || _this$options$modules === void 0 ? void 0 : _this$options$modules.brotli);
@@ -54,7 +51,6 @@ export class BrotliCompression extends Compression {
54
51
  if (!brotli) {
55
52
  throw new Error('brotli compression: brotli module not installed');
56
53
  }
57
-
58
54
  const outputArray = brotli.compress(inputArray, brotliOptions);
59
55
  return outputArray.buffer;
60
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"brotli-compression.js","names":["Compression","isBrowser","toArrayBuffer","BrotliDecode","zlib","promisify1","DEFAULT_BROTLI_OPTIONS","brotli","mode","quality","lgwin","BrotliCompression","constructor","options","preload","modules","console","warn","name","compress","input","useZlib","buffer","brotliCompress","compressSync","brotliCompressSync","brotliOptions","inputArray","Uint8Array","Error","outputArray","decompress","brotliDecompress","decompressSync","brotliDecompressSync","undefined"],"sources":["../../../src/lib/brotli-compression.ts"],"sourcesContent":["// BROTLI\nimport type {CompressionOptions} from './compression';\nimport {Compression} from './compression';\nimport {isBrowser, toArrayBuffer} from '@loaders.gl/loader-utils';\nimport type brotliNamespace from 'brotli';\n// import brotli from 'brotli'; // https://bundlephobia.com/package/brotli\nimport {BrotliDecode} from '../brotli/decode';\nimport zlib from 'zlib';\nimport {promisify1} from '@loaders.gl/loader-utils';\n\nexport type BrotliCompressionOptions = CompressionOptions & {\n brotli?: {\n mode?: number;\n quality?: number;\n lgwin?: number;\n useZlib?: boolean;\n };\n};\n\nconst DEFAULT_BROTLI_OPTIONS = {\n brotli: {\n mode: 0,\n quality: 8,\n lgwin: 22\n }\n};\n\nlet brotli: typeof brotliNamespace;\n\n/**\n * brotli compression / decompression\n */\nexport class BrotliCompression extends Compression {\n readonly name: string = 'brotli';\n readonly extensions = ['br'];\n readonly contentEncodings = ['br'];\n readonly isSupported = true;\n readonly options: BrotliCompressionOptions;\n\n constructor(options: BrotliCompressionOptions) {\n super(options);\n this.options = options;\n }\n\n /**\n * brotli is an injectable dependency due to big size\n * @param options\n */\n async preload(): Promise<void> {\n brotli = brotli || this.options?.modules?.brotli;\n if (!brotli) {\n // eslint-disable-next-line no-console\n console.warn(`${this.name} library not installed`);\n }\n }\n\n async compress(input: ArrayBuffer): Promise<ArrayBuffer> {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.brotli?.useZlib) {\n const buffer = await promisify1(zlib.brotliCompress)(input);\n return toArrayBuffer(buffer);\n }\n return this.compressSync(input);\n }\n\n compressSync(input: ArrayBuffer): ArrayBuffer {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.brotli?.useZlib) {\n const buffer = zlib.brotliCompressSync(input);\n return toArrayBuffer(buffer);\n }\n const brotliOptions = {...DEFAULT_BROTLI_OPTIONS.brotli, ...this.options?.brotli};\n const inputArray = new Uint8Array(input);\n\n if (!brotli) {\n throw new Error('brotli compression: brotli module not installed');\n }\n\n // @ts-ignore brotli types state that only Buffers are accepted...\n const outputArray = brotli.compress(inputArray, brotliOptions);\n return outputArray.buffer;\n }\n\n async decompress(input: ArrayBuffer): Promise<ArrayBuffer> {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.brotli?.useZlib) {\n const buffer = await promisify1(zlib.brotliDecompress)(input);\n return toArrayBuffer(buffer);\n }\n return this.decompressSync(input);\n }\n\n decompressSync(input: ArrayBuffer): ArrayBuffer {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.brotli?.useZlib) {\n const buffer = zlib.brotliDecompressSync(input);\n return toArrayBuffer(buffer);\n }\n\n const brotliOptions = {...DEFAULT_BROTLI_OPTIONS.brotli, ...this.options?.brotli};\n const inputArray = new Uint8Array(input);\n\n if (brotli) {\n // @ts-ignore brotli types state that only Buffers are accepted...\n const outputArray = brotli.decompress(inputArray, brotliOptions);\n return outputArray.buffer;\n }\n const outputArray = BrotliDecode(inputArray, undefined);\n return outputArray.buffer;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"brotli-compression.js","names":["Compression","isBrowser","toArrayBuffer","BrotliDecode","zlib","promisify1","DEFAULT_BROTLI_OPTIONS","brotli","mode","quality","lgwin","BrotliCompression","constructor","options","_defineProperty","preload","_this$options","_this$options$modules","modules","console","warn","concat","name","compress","input","_this$options$brotli","useZlib","buffer","brotliCompress","compressSync","_this$options$brotli2","_this$options2","brotliCompressSync","brotliOptions","inputArray","Uint8Array","Error","outputArray","decompress","_this$options$brotli3","brotliDecompress","decompressSync","_this$options$brotli4","_this$options3","brotliDecompressSync","undefined"],"sources":["../../../src/lib/brotli-compression.ts"],"sourcesContent":["// BROTLI\nimport type {CompressionOptions} from './compression';\nimport {Compression} from './compression';\nimport {isBrowser, toArrayBuffer} from '@loaders.gl/loader-utils';\nimport type brotliNamespace from 'brotli';\n// import brotli from 'brotli'; // https://bundlephobia.com/package/brotli\nimport {BrotliDecode} from '../brotli/decode';\nimport zlib from 'zlib';\nimport {promisify1} from '@loaders.gl/loader-utils';\n\nexport type BrotliCompressionOptions = CompressionOptions & {\n brotli?: {\n mode?: number;\n quality?: number;\n lgwin?: number;\n useZlib?: boolean;\n };\n};\n\nconst DEFAULT_BROTLI_OPTIONS = {\n brotli: {\n mode: 0,\n quality: 8,\n lgwin: 22\n }\n};\n\nlet brotli: typeof brotliNamespace;\n\n/**\n * brotli compression / decompression\n */\nexport class BrotliCompression extends Compression {\n readonly name: string = 'brotli';\n readonly extensions = ['br'];\n readonly contentEncodings = ['br'];\n readonly isSupported = true;\n readonly options: BrotliCompressionOptions;\n\n constructor(options: BrotliCompressionOptions) {\n super(options);\n this.options = options;\n }\n\n /**\n * brotli is an injectable dependency due to big size\n * @param options\n */\n async preload(): Promise<void> {\n brotli = brotli || this.options?.modules?.brotli;\n if (!brotli) {\n // eslint-disable-next-line no-console\n console.warn(`${this.name} library not installed`);\n }\n }\n\n async compress(input: ArrayBuffer): Promise<ArrayBuffer> {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.brotli?.useZlib) {\n const buffer = await promisify1(zlib.brotliCompress)(input);\n return toArrayBuffer(buffer);\n }\n return this.compressSync(input);\n }\n\n compressSync(input: ArrayBuffer): ArrayBuffer {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.brotli?.useZlib) {\n const buffer = zlib.brotliCompressSync(input);\n return toArrayBuffer(buffer);\n }\n const brotliOptions = {...DEFAULT_BROTLI_OPTIONS.brotli, ...this.options?.brotli};\n const inputArray = new Uint8Array(input);\n\n if (!brotli) {\n throw new Error('brotli compression: brotli module not installed');\n }\n\n // @ts-ignore brotli types state that only Buffers are accepted...\n const outputArray = brotli.compress(inputArray, brotliOptions);\n return outputArray.buffer;\n }\n\n async decompress(input: ArrayBuffer): Promise<ArrayBuffer> {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.brotli?.useZlib) {\n const buffer = await promisify1(zlib.brotliDecompress)(input);\n return toArrayBuffer(buffer);\n }\n return this.decompressSync(input);\n }\n\n decompressSync(input: ArrayBuffer): ArrayBuffer {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.brotli?.useZlib) {\n const buffer = zlib.brotliDecompressSync(input);\n return toArrayBuffer(buffer);\n }\n\n const brotliOptions = {...DEFAULT_BROTLI_OPTIONS.brotli, ...this.options?.brotli};\n const inputArray = new Uint8Array(input);\n\n if (brotli) {\n // @ts-ignore brotli types state that only Buffers are accepted...\n const outputArray = brotli.decompress(inputArray, brotliOptions);\n return outputArray.buffer;\n }\n const outputArray = BrotliDecode(inputArray, undefined);\n return outputArray.buffer;\n }\n}\n"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
2
  import { concatenateArrayBuffersAsync } from '@loaders.gl/loader-utils';
3
-
4
3
  export class Compression {
5
4
  constructor(options) {
6
5
  _defineProperty(this, "name", void 0);
@@ -10,39 +9,31 @@ export class Compression {
10
9
  this.compressBatches = this.compressBatches.bind(this);
11
10
  this.decompressBatches = this.decompressBatches.bind(this);
12
11
  }
13
-
14
12
  async preload() {
15
13
  return;
16
14
  }
17
-
18
15
  async compress(input) {
19
16
  await this.preload();
20
17
  return this.compressSync(input);
21
18
  }
22
-
23
19
  async decompress(input, size) {
24
20
  await this.preload();
25
21
  return this.decompressSync(input, size);
26
22
  }
27
-
28
23
  compressSync(input) {
29
24
  throw new Error("".concat(this.name, ": sync compression not supported"));
30
25
  }
31
-
32
26
  decompressSync(input, size) {
33
27
  throw new Error("".concat(this.name, ": sync decompression not supported"));
34
28
  }
35
-
36
29
  async *compressBatches(asyncIterator) {
37
30
  const input = await this.concatenate(asyncIterator);
38
31
  yield this.compress(input);
39
32
  }
40
-
41
33
  async *decompressBatches(asyncIterator) {
42
34
  const input = await this.concatenate(asyncIterator);
43
35
  yield this.decompress(input);
44
36
  }
45
-
46
37
  concatenate(asyncIterator) {
47
38
  return concatenateArrayBuffersAsync(asyncIterator);
48
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compression.js","names":["concatenateArrayBuffersAsync","Compression","constructor","options","compressBatches","bind","decompressBatches","preload","compress","input","compressSync","decompress","size","decompressSync","Error","name","asyncIterator","concatenate","improveError","error","message","includes"],"sources":["../../../src/lib/compression.ts"],"sourcesContent":["// Compression interface\nimport {concatenateArrayBuffersAsync} from '@loaders.gl/loader-utils';\n\n/** Compression options */\nexport type CompressionOptions = {\n // operation: 'compress' | 'decompress';\n modules?: {[moduleName: string]: any};\n};\n\n/** Compression */\nexport abstract class Compression {\n abstract readonly name: string;\n abstract readonly extensions: string[];\n abstract readonly contentEncodings: string[];\n abstract readonly isSupported: boolean;\n\n constructor(options?: CompressionOptions) {\n this.compressBatches = this.compressBatches.bind(this);\n this.decompressBatches = this.decompressBatches.bind(this);\n }\n\n /** Preloads any dynamic libraries. May enable sync functions */\n async preload(): Promise<void> {\n return;\n }\n\n /** Asynchronously compress data */\n async compress(input: ArrayBuffer): Promise<ArrayBuffer> {\n await this.preload();\n return this.compressSync(input);\n }\n\n /** Asynchronously decompress data */\n async decompress(input: ArrayBuffer, size?: number): Promise<ArrayBuffer> {\n await this.preload();\n return this.decompressSync(input, size);\n }\n\n /** Synchronously compress data */\n compressSync(input: ArrayBuffer): ArrayBuffer {\n throw new Error(`${this.name}: sync compression not supported`);\n }\n\n /** Synchronously compress data */\n decompressSync(input: ArrayBuffer, size?: number): ArrayBuffer {\n throw new Error(`${this.name}: sync decompression not supported`);\n }\n\n /** Compress batches */\n async *compressBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n // TODO - implement incremental compression\n const input = await this.concatenate(asyncIterator);\n yield this.compress(input);\n }\n\n /** Decompress batches */\n async *decompressBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n // TODO - implement incremental compression\n const input = await this.concatenate(asyncIterator);\n yield this.decompress(input);\n }\n\n // HELPERS\n\n protected concatenate(asyncIterator): Promise<ArrayBuffer> {\n return concatenateArrayBuffersAsync(asyncIterator);\n }\n\n protected improveError(error) {\n if (!error.message.includes(this.name)) {\n error.message = `${this.name} ${error.message}`;\n }\n return error;\n }\n}\n"],"mappings":";AACA,SAAQA,4BAA4B,QAAO,0BAA0B;;AASrE,OAAO,MAAeC,WAAW,CAAC;EAMhCC,WAAW,CAACC,OAA4B,EAAE;IAAA;IAAA;IAAA;IAAA;IACxC,IAAI,CAACC,eAAe,GAAG,IAAI,CAACA,eAAe,CAACC,IAAI,CAAC,IAAI,CAAC;IACtD,IAAI,CAACC,iBAAiB,GAAG,IAAI,CAACA,iBAAiB,CAACD,IAAI,CAAC,IAAI,CAAC;EAC5D;;EAGA,MAAME,OAAO,GAAkB;IAC7B;EACF;;EAGA,MAAMC,QAAQ,CAACC,KAAkB,EAAwB;IACvD,MAAM,IAAI,CAACF,OAAO,EAAE;IACpB,OAAO,IAAI,CAACG,YAAY,CAACD,KAAK,CAAC;EACjC;;EAGA,MAAME,UAAU,CAACF,KAAkB,EAAEG,IAAa,EAAwB;IACxE,MAAM,IAAI,CAACL,OAAO,EAAE;IACpB,OAAO,IAAI,CAACM,cAAc,CAACJ,KAAK,EAAEG,IAAI,CAAC;EACzC;;EAGAF,YAAY,CAACD,KAAkB,EAAe;IAC5C,MAAM,IAAIK,KAAK,WAAI,IAAI,CAACC,IAAI,sCAAmC;EACjE;;EAGAF,cAAc,CAACJ,KAAkB,EAAEG,IAAa,EAAe;IAC7D,MAAM,IAAIE,KAAK,WAAI,IAAI,CAACC,IAAI,wCAAqC;EACnE;;EAGA,OAAOX,eAAe,CACpBY,aAAiE,EACrC;IAE5B,MAAMP,KAAK,GAAG,MAAM,IAAI,CAACQ,WAAW,CAACD,aAAa,CAAC;IACnD,MAAM,IAAI,CAACR,QAAQ,CAACC,KAAK,CAAC;EAC5B;;EAGA,OAAOH,iBAAiB,CACtBU,aAAiE,EACrC;IAE5B,MAAMP,KAAK,GAAG,MAAM,IAAI,CAACQ,WAAW,CAACD,aAAa,CAAC;IACnD,MAAM,IAAI,CAACL,UAAU,CAACF,KAAK,CAAC;EAC9B;;EAIUQ,WAAW,CAACD,aAAa,EAAwB;IACzD,OAAOhB,4BAA4B,CAACgB,aAAa,CAAC;EACpD;EAEUE,YAAY,CAACC,KAAK,EAAE;IAC5B,IAAI,CAACA,KAAK,CAACC,OAAO,CAACC,QAAQ,CAAC,IAAI,CAACN,IAAI,CAAC,EAAE;MACtCI,KAAK,CAACC,OAAO,aAAM,IAAI,CAACL,IAAI,cAAII,KAAK,CAACC,OAAO,CAAE;IACjD;IACA,OAAOD,KAAK;EACd;AACF"}
1
+ {"version":3,"file":"compression.js","names":["concatenateArrayBuffersAsync","Compression","constructor","options","_defineProperty","compressBatches","bind","decompressBatches","preload","compress","input","compressSync","decompress","size","decompressSync","Error","concat","name","asyncIterator","concatenate","improveError","error","message","includes"],"sources":["../../../src/lib/compression.ts"],"sourcesContent":["// Compression interface\nimport {concatenateArrayBuffersAsync} from '@loaders.gl/loader-utils';\n\n/** Compression options */\nexport type CompressionOptions = {\n // operation: 'compress' | 'decompress';\n modules?: {[moduleName: string]: any};\n};\n\n/** Compression */\nexport abstract class Compression {\n abstract readonly name: string;\n abstract readonly extensions: string[];\n abstract readonly contentEncodings: string[];\n abstract readonly isSupported: boolean;\n\n constructor(options?: CompressionOptions) {\n this.compressBatches = this.compressBatches.bind(this);\n this.decompressBatches = this.decompressBatches.bind(this);\n }\n\n /** Preloads any dynamic libraries. May enable sync functions */\n async preload(): Promise<void> {\n return;\n }\n\n /** Asynchronously compress data */\n async compress(input: ArrayBuffer): Promise<ArrayBuffer> {\n await this.preload();\n return this.compressSync(input);\n }\n\n /** Asynchronously decompress data */\n async decompress(input: ArrayBuffer, size?: number): Promise<ArrayBuffer> {\n await this.preload();\n return this.decompressSync(input, size);\n }\n\n /** Synchronously compress data */\n compressSync(input: ArrayBuffer): ArrayBuffer {\n throw new Error(`${this.name}: sync compression not supported`);\n }\n\n /** Synchronously compress data */\n decompressSync(input: ArrayBuffer, size?: number): ArrayBuffer {\n throw new Error(`${this.name}: sync decompression not supported`);\n }\n\n /** Compress batches */\n async *compressBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n // TODO - implement incremental compression\n const input = await this.concatenate(asyncIterator);\n yield this.compress(input);\n }\n\n /** Decompress batches */\n async *decompressBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n // TODO - implement incremental compression\n const input = await this.concatenate(asyncIterator);\n yield this.decompress(input);\n }\n\n // HELPERS\n\n protected concatenate(asyncIterator): Promise<ArrayBuffer> {\n return concatenateArrayBuffersAsync(asyncIterator);\n }\n\n protected improveError(error) {\n if (!error.message.includes(this.name)) {\n error.message = `${this.name} ${error.message}`;\n }\n return error;\n }\n}\n"],"mappings":";AACA,SAAQA,4BAA4B,QAAO,0BAA0B;AASrE,OAAO,MAAeC,WAAW,CAAC;EAMhCC,WAAWA,CAACC,OAA4B,EAAE;IAAAC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IACxC,IAAI,CAACC,eAAe,GAAG,IAAI,CAACA,eAAe,CAACC,IAAI,CAAC,IAAI,CAAC;IACtD,IAAI,CAACC,iBAAiB,GAAG,IAAI,CAACA,iBAAiB,CAACD,IAAI,CAAC,IAAI,CAAC;EAC5D;EAGA,MAAME,OAAOA,CAAA,EAAkB;IAC7B;EACF;EAGA,MAAMC,QAAQA,CAACC,KAAkB,EAAwB;IACvD,MAAM,IAAI,CAACF,OAAO,EAAE;IACpB,OAAO,IAAI,CAACG,YAAY,CAACD,KAAK,CAAC;EACjC;EAGA,MAAME,UAAUA,CAACF,KAAkB,EAAEG,IAAa,EAAwB;IACxE,MAAM,IAAI,CAACL,OAAO,EAAE;IACpB,OAAO,IAAI,CAACM,cAAc,CAACJ,KAAK,EAAEG,IAAI,CAAC;EACzC;EAGAF,YAAYA,CAACD,KAAkB,EAAe;IAC5C,MAAM,IAAIK,KAAK,IAAAC,MAAA,CAAI,IAAI,CAACC,IAAI,sCAAmC;EACjE;EAGAH,cAAcA,CAACJ,KAAkB,EAAEG,IAAa,EAAe;IAC7D,MAAM,IAAIE,KAAK,IAAAC,MAAA,CAAI,IAAI,CAACC,IAAI,wCAAqC;EACnE;EAGA,OAAOZ,eAAeA,CACpBa,aAAiE,EACrC;IAE5B,MAAMR,KAAK,GAAG,MAAM,IAAI,CAACS,WAAW,CAACD,aAAa,CAAC;IACnD,MAAM,IAAI,CAACT,QAAQ,CAACC,KAAK,CAAC;EAC5B;EAGA,OAAOH,iBAAiBA,CACtBW,aAAiE,EACrC;IAE5B,MAAMR,KAAK,GAAG,MAAM,IAAI,CAACS,WAAW,CAACD,aAAa,CAAC;IACnD,MAAM,IAAI,CAACN,UAAU,CAACF,KAAK,CAAC;EAC9B;EAIUS,WAAWA,CAACD,aAAa,EAAwB;IACzD,OAAOlB,4BAA4B,CAACkB,aAAa,CAAC;EACpD;EAEUE,YAAYA,CAACC,KAAK,EAAE;IAC5B,IAAI,CAACA,KAAK,CAACC,OAAO,CAACC,QAAQ,CAAC,IAAI,CAACN,IAAI,CAAC,EAAE;MACtCI,KAAK,CAACC,OAAO,MAAAN,MAAA,CAAM,IAAI,CAACC,IAAI,OAAAD,MAAA,CAAIK,KAAK,CAACC,OAAO,CAAE;IACjD;IACA,OAAOD,KAAK;EACd;AACF"}
@@ -1,5 +1,4 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
-
3
2
  import { Compression } from './compression';
4
3
  import { isBrowser, toArrayBuffer } from '@loaders.gl/loader-utils';
5
4
  import pako from 'pako';
@@ -81,11 +80,9 @@ export class DeflateCompression extends Compression {
81
80
  const chunks = this._getChunks();
82
81
  yield* chunks;
83
82
  }
84
-
85
83
  const emptyChunk = new Uint8Array(0);
86
84
  const ok = pakoProcessor.push(emptyChunk, true);
87
- if (!ok) {
88
- }
85
+ if (!ok) {}
89
86
  const chunks = this._getChunks();
90
87
  yield* chunks;
91
88
  }
@@ -102,7 +99,6 @@ export class DeflateCompression extends Compression {
102
99
  this._chunks = [];
103
100
  return chunks;
104
101
  }
105
-
106
102
  _getError() {
107
103
  let code = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
108
104
  const MESSAGES = {
@@ -1 +1 @@
1
- {"version":3,"file":"deflate-compression.js","names":["Compression","isBrowser","toArrayBuffer","pako","zlib","promisify1","DeflateCompression","constructor","options","compress","input","deflate","useZlib","buffer","gzip","compressSync","decompress","gunzip","inflate","decompressSync","gzipSync","deflateSync","pakoOptions","inputArray","Uint8Array","gunzipSync","inflateSync","compressBatches","asyncIterator","pakoProcessor","Deflate","transformBatches","decompressBatches","Inflate","onData","_onData","bind","onEnd","_onEnd","chunk","uint8Array","ok","push","Error","_getError","chunks","_getChunks","emptyChunk","_chunks","status","length","code","MESSAGES","name"],"sources":["../../../src/lib/deflate-compression.ts"],"sourcesContent":["// DEFLATE\nimport type {CompressionOptions} from './compression';\nimport {Compression} from './compression';\nimport {isBrowser, toArrayBuffer} from '@loaders.gl/loader-utils';\nimport pako from 'pako'; // https://bundlephobia.com/package/pako\nimport zlib from 'zlib';\nimport {promisify1} from '@loaders.gl/loader-utils';\n\nexport type DeflateCompressionOptions = CompressionOptions & {\n deflate?: pako.InflateOptions & pako.DeflateOptions & {useZlib?: boolean};\n};\n\n/**\n * DEFLATE compression / decompression\n */\nexport class DeflateCompression extends Compression {\n readonly name: string = 'deflate';\n readonly extensions: string[] = [];\n readonly contentEncodings = ['deflate'];\n readonly isSupported = true;\n\n readonly options: DeflateCompressionOptions;\n\n private _chunks: ArrayBuffer[] = [];\n\n constructor(options: DeflateCompressionOptions = {}) {\n super(options);\n this.options = options;\n }\n\n async compress(input: ArrayBuffer): Promise<ArrayBuffer> {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.deflate?.useZlib) {\n const buffer = this.options.deflate?.gzip\n ? await promisify1(zlib.gzip)(input)\n : await promisify1(zlib.deflate)(input);\n return toArrayBuffer(buffer);\n }\n return this.compressSync(input);\n }\n\n async decompress(input: ArrayBuffer): Promise<ArrayBuffer> {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.deflate?.useZlib) {\n const buffer = this.options.deflate?.gzip\n ? await promisify1(zlib.gunzip)(input)\n : await promisify1(zlib.inflate)(input);\n return toArrayBuffer(buffer);\n }\n return this.decompressSync(input);\n }\n\n compressSync(input: ArrayBuffer): ArrayBuffer {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.deflate?.useZlib) {\n const buffer = this.options.deflate?.gzip ? zlib.gzipSync(input) : zlib.deflateSync(input);\n return toArrayBuffer(buffer);\n }\n const pakoOptions: pako.DeflateOptions = this.options?.deflate || {};\n const inputArray = new Uint8Array(input);\n return pako.deflate(inputArray, pakoOptions).buffer;\n }\n\n decompressSync(input: ArrayBuffer): ArrayBuffer {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.deflate?.useZlib) {\n const buffer = this.options.deflate?.gzip ? zlib.gunzipSync(input) : zlib.inflateSync(input);\n return toArrayBuffer(buffer);\n }\n const pakoOptions: pako.InflateOptions = this.options?.deflate || {};\n const inputArray = new Uint8Array(input);\n return pako.inflate(inputArray, pakoOptions).buffer;\n }\n\n async *compressBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n const pakoOptions: pako.DeflateOptions = this.options?.deflate || {};\n const pakoProcessor = new pako.Deflate(pakoOptions);\n yield* this.transformBatches(pakoProcessor, asyncIterator);\n }\n\n async *decompressBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n const pakoOptions: pako.InflateOptions = this.options?.deflate || {};\n const pakoProcessor = new pako.Inflate(pakoOptions);\n yield* this.transformBatches(pakoProcessor, asyncIterator);\n }\n\n async *transformBatches(\n pakoProcessor: pako.Inflate | pako.Deflate,\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n pakoProcessor.onData = this._onData.bind(this);\n pakoProcessor.onEnd = this._onEnd.bind(this);\n for await (const chunk of asyncIterator) {\n const uint8Array = new Uint8Array(chunk);\n const ok = pakoProcessor.push(uint8Array, false); // false -> not last chunk\n if (!ok) {\n throw new Error(`${this._getError()}write`);\n }\n const chunks = this._getChunks();\n yield* chunks;\n }\n\n // End\n const emptyChunk = new Uint8Array(0);\n const ok = pakoProcessor.push(emptyChunk, true); // true -> last chunk\n if (!ok) {\n // For some reason we get error but it still works???\n // throw new Error(this._getError() + 'end');\n }\n const chunks = this._getChunks();\n yield* chunks;\n }\n\n _onData(chunk) {\n this._chunks.push(chunk);\n }\n\n _onEnd(status) {\n if (status !== 0) {\n throw new Error(this._getError(status) + this._chunks.length);\n }\n }\n\n _getChunks(): ArrayBuffer[] {\n const chunks = this._chunks;\n this._chunks = [];\n return chunks;\n }\n\n // TODO - For some reason we don't get the error message from pako in _onEnd?\n _getError(code: number = 0): string {\n const MESSAGES = {\n /* Z_NEED_DICT 2 */\n 2: 'need dictionary',\n /* Z_STREAM_END 1 */\n 1: 'stream end',\n /* Z_OK 0 */\n 0: '',\n /* Z_ERRNO (-1) */\n '-1': 'file error',\n /* Z_STREAM_ERROR (-2) */\n '-2': 'stream error',\n /* Z_DATA_ERROR (-3) */\n '-3': 'data error',\n /* Z_MEM_ERROR (-4) */\n '-4': 'insufficient memory',\n /* Z_BUF_ERROR (-5) */\n '-5': 'buffer error',\n /* Z_VERSION_ERROR (-6) */\n '-6': 'incompatible version'\n };\n return `${this.name}: ${MESSAGES[code]}`;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"deflate-compression.js","names":["Compression","isBrowser","toArrayBuffer","pako","zlib","promisify1","DeflateCompression","constructor","options","arguments","length","undefined","_defineProperty","compress","input","_this$options$deflate","deflate","useZlib","_this$options$deflate2","buffer","gzip","compressSync","decompress","_this$options$deflate3","_this$options$deflate4","gunzip","inflate","decompressSync","_this$options$deflate5","_this$options","_this$options$deflate6","gzipSync","deflateSync","pakoOptions","inputArray","Uint8Array","_this$options$deflate7","_this$options2","_this$options$deflate8","gunzipSync","inflateSync","compressBatches","asyncIterator","_this$options3","pakoProcessor","Deflate","transformBatches","decompressBatches","_this$options4","Inflate","onData","_onData","bind","onEnd","_onEnd","chunk","uint8Array","ok","push","Error","concat","_getError","chunks","_getChunks","emptyChunk","_chunks","status","code","MESSAGES","name"],"sources":["../../../src/lib/deflate-compression.ts"],"sourcesContent":["// DEFLATE\nimport type {CompressionOptions} from './compression';\nimport {Compression} from './compression';\nimport {isBrowser, toArrayBuffer} from '@loaders.gl/loader-utils';\nimport pako from 'pako'; // https://bundlephobia.com/package/pako\nimport zlib from 'zlib';\nimport {promisify1} from '@loaders.gl/loader-utils';\n\nexport type DeflateCompressionOptions = CompressionOptions & {\n deflate?: pako.InflateOptions & pako.DeflateOptions & {useZlib?: boolean};\n};\n\n/**\n * DEFLATE compression / decompression\n */\nexport class DeflateCompression extends Compression {\n readonly name: string = 'deflate';\n readonly extensions: string[] = [];\n readonly contentEncodings = ['deflate'];\n readonly isSupported = true;\n\n readonly options: DeflateCompressionOptions;\n\n private _chunks: ArrayBuffer[] = [];\n\n constructor(options: DeflateCompressionOptions = {}) {\n super(options);\n this.options = options;\n }\n\n async compress(input: ArrayBuffer): Promise<ArrayBuffer> {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.deflate?.useZlib) {\n const buffer = this.options.deflate?.gzip\n ? await promisify1(zlib.gzip)(input)\n : await promisify1(zlib.deflate)(input);\n return toArrayBuffer(buffer);\n }\n return this.compressSync(input);\n }\n\n async decompress(input: ArrayBuffer): Promise<ArrayBuffer> {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.deflate?.useZlib) {\n const buffer = this.options.deflate?.gzip\n ? await promisify1(zlib.gunzip)(input)\n : await promisify1(zlib.inflate)(input);\n return toArrayBuffer(buffer);\n }\n return this.decompressSync(input);\n }\n\n compressSync(input: ArrayBuffer): ArrayBuffer {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.deflate?.useZlib) {\n const buffer = this.options.deflate?.gzip ? zlib.gzipSync(input) : zlib.deflateSync(input);\n return toArrayBuffer(buffer);\n }\n const pakoOptions: pako.DeflateOptions = this.options?.deflate || {};\n const inputArray = new Uint8Array(input);\n return pako.deflate(inputArray, pakoOptions).buffer;\n }\n\n decompressSync(input: ArrayBuffer): ArrayBuffer {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.deflate?.useZlib) {\n const buffer = this.options.deflate?.gzip ? zlib.gunzipSync(input) : zlib.inflateSync(input);\n return toArrayBuffer(buffer);\n }\n const pakoOptions: pako.InflateOptions = this.options?.deflate || {};\n const inputArray = new Uint8Array(input);\n return pako.inflate(inputArray, pakoOptions).buffer;\n }\n\n async *compressBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n const pakoOptions: pako.DeflateOptions = this.options?.deflate || {};\n const pakoProcessor = new pako.Deflate(pakoOptions);\n yield* this.transformBatches(pakoProcessor, asyncIterator);\n }\n\n async *decompressBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n const pakoOptions: pako.InflateOptions = this.options?.deflate || {};\n const pakoProcessor = new pako.Inflate(pakoOptions);\n yield* this.transformBatches(pakoProcessor, asyncIterator);\n }\n\n async *transformBatches(\n pakoProcessor: pako.Inflate | pako.Deflate,\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n pakoProcessor.onData = this._onData.bind(this);\n pakoProcessor.onEnd = this._onEnd.bind(this);\n for await (const chunk of asyncIterator) {\n const uint8Array = new Uint8Array(chunk);\n const ok = pakoProcessor.push(uint8Array, false); // false -> not last chunk\n if (!ok) {\n throw new Error(`${this._getError()}write`);\n }\n const chunks = this._getChunks();\n yield* chunks;\n }\n\n // End\n const emptyChunk = new Uint8Array(0);\n const ok = pakoProcessor.push(emptyChunk, true); // true -> last chunk\n if (!ok) {\n // For some reason we get error but it still works???\n // throw new Error(this._getError() + 'end');\n }\n const chunks = this._getChunks();\n yield* chunks;\n }\n\n _onData(chunk) {\n this._chunks.push(chunk);\n }\n\n _onEnd(status) {\n if (status !== 0) {\n throw new Error(this._getError(status) + this._chunks.length);\n }\n }\n\n _getChunks(): ArrayBuffer[] {\n const chunks = this._chunks;\n this._chunks = [];\n return chunks;\n }\n\n // TODO - For some reason we don't get the error message from pako in _onEnd?\n _getError(code: number = 0): string {\n const MESSAGES = {\n /* Z_NEED_DICT 2 */\n 2: 'need dictionary',\n /* Z_STREAM_END 1 */\n 1: 'stream end',\n /* Z_OK 0 */\n 0: '',\n /* Z_ERRNO (-1) */\n '-1': 'file error',\n /* Z_STREAM_ERROR (-2) */\n '-2': 'stream error',\n /* Z_DATA_ERROR (-3) */\n '-3': 'data error',\n /* Z_MEM_ERROR (-4) */\n '-4': 'insufficient memory',\n /* Z_BUF_ERROR (-5) */\n '-5': 'buffer error',\n /* Z_VERSION_ERROR (-6) */\n '-6': 'incompatible version'\n };\n return `${this.name}: ${MESSAGES[code]}`;\n }\n}\n"],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
-
3
2
  import { DeflateCompression } from './deflate-compression';
4
3
  export class GZipCompression extends DeflateCompression {
5
4
  constructor(options) {
@@ -1 +1 @@
1
- {"version":3,"file":"gzip-compression.js","names":["DeflateCompression","GZipCompression","constructor","options","deflate","gzip"],"sources":["../../../src/lib/gzip-compression.ts"],"sourcesContent":["// GZIP\n// import {isBrowser} from '@loaders.gl/loader-utils';\nimport type {CompressionOptions} from './compression';\nimport {DeflateCompression} from './deflate-compression';\nimport pako from 'pako'; // https://bundlephobia.com/package/pako\n\nexport type GZipCompressionOptions = CompressionOptions & {\n gzip?: pako.InflateOptions & pako.DeflateOptions;\n};\n\n/**\n * GZIP compression / decompression\n */\nexport class GZipCompression extends DeflateCompression {\n readonly name: string = 'gzip';\n readonly extensions = ['gz', 'gzip'];\n readonly contentEncodings = ['gzip', 'x-gzip'];\n readonly isSupported = true;\n\n constructor(options?: GZipCompressionOptions) {\n super({...options, deflate: {...options?.gzip, gzip: true}});\n }\n}\n"],"mappings":";;AAGA,SAAQA,kBAAkB,QAAO,uBAAuB;AAUxD,OAAO,MAAMC,eAAe,SAASD,kBAAkB,CAAC;EAMtDE,WAAW,CAACC,OAAgC,EAAE;IAC5C,KAAK,CAAC;MAAC,GAAGA,OAAO;MAAEC,OAAO,EAAE;QAAC,IAAGD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEE,IAAI;QAAEA,IAAI,EAAE;MAAI;IAAC,CAAC,CAAC;IAAC,8BANvC,MAAM;IAAA,oCACR,CAAC,IAAI,EAAE,MAAM,CAAC;IAAA,0CACR,CAAC,MAAM,EAAE,QAAQ,CAAC;IAAA,qCACvB,IAAI;EAI3B;AACF"}
1
+ {"version":3,"file":"gzip-compression.js","names":["DeflateCompression","GZipCompression","constructor","options","deflate","gzip","_defineProperty"],"sources":["../../../src/lib/gzip-compression.ts"],"sourcesContent":["// GZIP\n// import {isBrowser} from '@loaders.gl/loader-utils';\nimport type {CompressionOptions} from './compression';\nimport {DeflateCompression} from './deflate-compression';\nimport pako from 'pako'; // https://bundlephobia.com/package/pako\n\nexport type GZipCompressionOptions = CompressionOptions & {\n gzip?: pako.InflateOptions & pako.DeflateOptions;\n};\n\n/**\n * GZIP compression / decompression\n */\nexport class GZipCompression extends DeflateCompression {\n readonly name: string = 'gzip';\n readonly extensions = ['gz', 'gzip'];\n readonly contentEncodings = ['gzip', 'x-gzip'];\n readonly isSupported = true;\n\n constructor(options?: GZipCompressionOptions) {\n super({...options, deflate: {...options?.gzip, gzip: true}});\n }\n}\n"],"mappings":";AAGA,SAAQA,kBAAkB,QAAO,uBAAuB;AAUxD,OAAO,MAAMC,eAAe,SAASD,kBAAkB,CAAC;EAMtDE,WAAWA,CAACC,OAAgC,EAAE;IAC5C,KAAK,CAAC;MAAC,GAAGA,OAAO;MAAEC,OAAO,EAAE;QAAC,IAAGD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEE,IAAI;QAAEA,IAAI,EAAE;MAAI;IAAC,CAAC,CAAC;IAACC,eAAA,eANvC,MAAM;IAAAA,eAAA,qBACR,CAAC,IAAI,EAAE,MAAM,CAAC;IAAAA,eAAA,2BACR,CAAC,MAAM,EAAE,QAAQ,CAAC;IAAAA,eAAA,sBACvB,IAAI;EAI3B;AACF"}
@@ -1,10 +1,8 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
-
3
2
  import { toArrayBuffer } from '@loaders.gl/loader-utils';
4
3
  import { Compression } from './compression';
5
4
  const LZ4_MAGIC_NUMBER = 0x184d2204;
6
5
  let lz4js;
7
-
8
6
  export class LZ4Compression extends Compression {
9
7
  constructor(options) {
10
8
  var _this$options, _this$options$modules;
@@ -24,7 +22,6 @@ export class LZ4Compression extends Compression {
24
22
  const inputArray = new Uint8Array(input);
25
23
  return lz4js.compress(inputArray).buffer;
26
24
  }
27
-
28
25
  decompressSync(data, maxSize) {
29
26
  try {
30
27
  const isMagicNumberExists = this.checkMagicNumber(data);
@@ -44,14 +41,12 @@ export class LZ4Compression extends Compression {
44
41
  throw this.improveError(error);
45
42
  }
46
43
  }
47
-
48
44
  decodeBlock(data, output, startIndex, endIndex) {
49
45
  startIndex = startIndex || 0;
50
46
  endIndex = endIndex || data.length - startIndex;
51
47
  let uncompressedSize = 0;
52
48
  for (let index = startIndex; index < endIndex;) {
53
49
  const token = data[index++];
54
-
55
50
  let literalsLength = token >> 4;
56
51
  if (literalsLength > 0) {
57
52
  let length = literalsLength + 240;
@@ -59,40 +54,32 @@ export class LZ4Compression extends Compression {
59
54
  length = data[index++];
60
55
  literalsLength += length;
61
56
  }
62
-
63
57
  const end = index + literalsLength;
64
58
  while (index < end) {
65
59
  output[uncompressedSize++] = data[index++];
66
60
  }
67
-
68
61
  if (index === endIndex) {
69
62
  return uncompressedSize;
70
63
  }
71
64
  }
72
-
73
65
  const offset = data[index++] | data[index++] << 8;
74
-
75
66
  if (offset === 0 || offset > uncompressedSize) {
76
67
  return -(index - 2);
77
68
  }
78
-
79
69
  let matchLength = token & 0xf;
80
70
  let length = matchLength + 240;
81
71
  while (length === 255) {
82
72
  length = data[index++];
83
73
  matchLength += length;
84
74
  }
85
-
86
75
  let pos = uncompressedSize - offset;
87
76
  const end = uncompressedSize + matchLength + 4;
88
-
89
77
  while (uncompressedSize < end) {
90
78
  output[uncompressedSize++] = output[pos++];
91
79
  }
92
80
  }
93
81
  return uncompressedSize;
94
82
  }
95
-
96
83
  checkMagicNumber(data) {
97
84
  const magic = new Uint32Array(data.slice(0, 4));
98
85
  return magic[0] === LZ4_MAGIC_NUMBER;
@@ -1 +1 @@
1
- {"version":3,"file":"lz4-compression.js","names":["toArrayBuffer","Compression","LZ4_MAGIC_NUMBER","lz4js","LZ4Compression","constructor","options","modules","Error","name","compressSync","input","inputArray","Uint8Array","compress","buffer","decompressSync","data","maxSize","isMagicNumberExists","checkMagicNumber","decompress","error","improveError","uncompressed","uncompressedSize","decodeBlock","slice","output","startIndex","endIndex","length","index","token","literalsLength","end","offset","matchLength","pos","magic","Uint32Array"],"sources":["../../../src/lib/lz4-compression.ts"],"sourcesContent":["// Copyright (c) 2012 Pierre Curto\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n/* eslint-disable complexity */\n/* eslint-disable max-statements */\n\n// LZ4\nimport {toArrayBuffer} from '@loaders.gl/loader-utils';\nimport type {CompressionOptions} from './compression';\nimport {Compression} from './compression';\n// import lz4js from 'lz4js'; // https://bundlephobia.com/package/lz4\nconst LZ4_MAGIC_NUMBER = 0x184d2204;\n\nlet lz4js;\n\n/**\n * LZ4 compression / decompression\n */\nexport class LZ4Compression extends Compression {\n readonly name: string = 'lz4';\n readonly extensions = ['lz4'];\n readonly contentEncodings = ['x-lz4'];\n readonly isSupported = true;\n readonly options: CompressionOptions;\n\n constructor(options: CompressionOptions) {\n super(options);\n this.options = options;\n\n lz4js = lz4js || this.options?.modules?.lz4js;\n if (!lz4js) {\n throw new Error(this.name);\n }\n }\n\n compressSync(input: ArrayBuffer): ArrayBuffer {\n const inputArray = new Uint8Array(input);\n return lz4js.compress(inputArray).buffer;\n }\n\n /**\n * Decompresses an ArrayBuffer containing an Lz4 frame. maxSize is optional; if not\n * provided, a maximum size will be determined by examining the data. The\n * returned ArrayBuffer will always be perfectly sized.\n * If data provided without magic number we will parse it as block\n */\n decompressSync(data: ArrayBuffer, maxSize?: number): ArrayBuffer {\n try {\n const isMagicNumberExists = this.checkMagicNumber(data);\n const inputArray = new Uint8Array(data);\n\n if (isMagicNumberExists) {\n return lz4js.decompress(inputArray, maxSize).buffer;\n }\n\n if (!maxSize) {\n const error = new Error('Need to provide maxSize');\n throw this.improveError(error);\n }\n\n let uncompressed = new Uint8Array(maxSize);\n const uncompressedSize = this.decodeBlock(inputArray, uncompressed);\n uncompressed = uncompressed.slice(0, uncompressedSize);\n\n return toArrayBuffer(uncompressed);\n } catch (error) {\n throw this.improveError(error);\n }\n }\n\n /**\n * Decode lz4 file as block\n * Solution taken from here\n * https://github.com/pierrec/node-lz4/blob/0dac687262403fd34f905b963da7220692f2a4a1/lib/binding.js#L25\n * @param input\n * @param output\n * @param startIndex\n * @param endIndex\n */\n decodeBlock(\n data: Uint8Array,\n output: Uint8Array,\n startIndex?: number,\n endIndex?: number\n ): number {\n startIndex = startIndex || 0;\n endIndex = endIndex || data.length - startIndex;\n\n let uncompressedSize = 0;\n // Process each sequence in the incoming data\n for (let index = startIndex; index < endIndex; ) {\n const token = data[index++];\n\n // Literals\n let literalsLength = token >> 4;\n\n if (literalsLength > 0) {\n // length of literals\n let length = literalsLength + 240;\n\n while (length === 255) {\n length = data[index++];\n literalsLength += length;\n }\n\n // Copy the literals\n const end = index + literalsLength;\n\n while (index < end) {\n output[uncompressedSize++] = data[index++];\n }\n\n // End of buffer?\n if (index === endIndex) {\n return uncompressedSize;\n }\n }\n\n // Match copy\n // 2 bytes offset (little endian)\n const offset = data[index++] | (data[index++] << 8);\n\n // 0 is an invalid offset value\n if (offset === 0 || offset > uncompressedSize) {\n return -(index - 2);\n }\n\n // length of match copy\n let matchLength = token & 0xf;\n let length = matchLength + 240;\n\n while (length === 255) {\n length = data[index++];\n matchLength += length;\n }\n\n // Copy the match\n let pos = uncompressedSize - offset; // position of the match copy in the current output\n const end = uncompressedSize + matchLength + 4; // minmatch = 4\n\n while (uncompressedSize < end) {\n output[uncompressedSize++] = output[pos++];\n }\n }\n\n return uncompressedSize;\n }\n\n /**\n * Compare file magic with lz4 magic number\n * @param input\n */\n checkMagicNumber(data: ArrayBuffer): boolean {\n const magic = new Uint32Array(data.slice(0, 4));\n return magic[0] === LZ4_MAGIC_NUMBER;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"lz4-compression.js","names":["toArrayBuffer","Compression","LZ4_MAGIC_NUMBER","lz4js","LZ4Compression","constructor","options","_this$options","_this$options$modules","_defineProperty","modules","Error","name","compressSync","input","inputArray","Uint8Array","compress","buffer","decompressSync","data","maxSize","isMagicNumberExists","checkMagicNumber","decompress","error","improveError","uncompressed","uncompressedSize","decodeBlock","slice","output","startIndex","endIndex","length","index","token","literalsLength","end","offset","matchLength","pos","magic","Uint32Array"],"sources":["../../../src/lib/lz4-compression.ts"],"sourcesContent":["// Copyright (c) 2012 Pierre Curto\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n/* eslint-disable complexity */\n/* eslint-disable max-statements */\n\n// LZ4\nimport {toArrayBuffer} from '@loaders.gl/loader-utils';\nimport type {CompressionOptions} from './compression';\nimport {Compression} from './compression';\n// import lz4js from 'lz4js'; // https://bundlephobia.com/package/lz4\nconst LZ4_MAGIC_NUMBER = 0x184d2204;\n\nlet lz4js;\n\n/**\n * LZ4 compression / decompression\n */\nexport class LZ4Compression extends Compression {\n readonly name: string = 'lz4';\n readonly extensions = ['lz4'];\n readonly contentEncodings = ['x-lz4'];\n readonly isSupported = true;\n readonly options: CompressionOptions;\n\n constructor(options: CompressionOptions) {\n super(options);\n this.options = options;\n\n lz4js = lz4js || this.options?.modules?.lz4js;\n if (!lz4js) {\n throw new Error(this.name);\n }\n }\n\n compressSync(input: ArrayBuffer): ArrayBuffer {\n const inputArray = new Uint8Array(input);\n return lz4js.compress(inputArray).buffer;\n }\n\n /**\n * Decompresses an ArrayBuffer containing an Lz4 frame. maxSize is optional; if not\n * provided, a maximum size will be determined by examining the data. The\n * returned ArrayBuffer will always be perfectly sized.\n * If data provided without magic number we will parse it as block\n */\n decompressSync(data: ArrayBuffer, maxSize?: number): ArrayBuffer {\n try {\n const isMagicNumberExists = this.checkMagicNumber(data);\n const inputArray = new Uint8Array(data);\n\n if (isMagicNumberExists) {\n return lz4js.decompress(inputArray, maxSize).buffer;\n }\n\n if (!maxSize) {\n const error = new Error('Need to provide maxSize');\n throw this.improveError(error);\n }\n\n let uncompressed = new Uint8Array(maxSize);\n const uncompressedSize = this.decodeBlock(inputArray, uncompressed);\n uncompressed = uncompressed.slice(0, uncompressedSize);\n\n return toArrayBuffer(uncompressed);\n } catch (error) {\n throw this.improveError(error);\n }\n }\n\n /**\n * Decode lz4 file as block\n * Solution taken from here\n * https://github.com/pierrec/node-lz4/blob/0dac687262403fd34f905b963da7220692f2a4a1/lib/binding.js#L25\n * @param input\n * @param output\n * @param startIndex\n * @param endIndex\n */\n decodeBlock(\n data: Uint8Array,\n output: Uint8Array,\n startIndex?: number,\n endIndex?: number\n ): number {\n startIndex = startIndex || 0;\n endIndex = endIndex || data.length - startIndex;\n\n let uncompressedSize = 0;\n // Process each sequence in the incoming data\n for (let index = startIndex; index < endIndex; ) {\n const token = data[index++];\n\n // Literals\n let literalsLength = token >> 4;\n\n if (literalsLength > 0) {\n // length of literals\n let length = literalsLength + 240;\n\n while (length === 255) {\n length = data[index++];\n literalsLength += length;\n }\n\n // Copy the literals\n const end = index + literalsLength;\n\n while (index < end) {\n output[uncompressedSize++] = data[index++];\n }\n\n // End of buffer?\n if (index === endIndex) {\n return uncompressedSize;\n }\n }\n\n // Match copy\n // 2 bytes offset (little endian)\n const offset = data[index++] | (data[index++] << 8);\n\n // 0 is an invalid offset value\n if (offset === 0 || offset > uncompressedSize) {\n return -(index - 2);\n }\n\n // length of match copy\n let matchLength = token & 0xf;\n let length = matchLength + 240;\n\n while (length === 255) {\n length = data[index++];\n matchLength += length;\n }\n\n // Copy the match\n let pos = uncompressedSize - offset; // position of the match copy in the current output\n const end = uncompressedSize + matchLength + 4; // minmatch = 4\n\n while (uncompressedSize < end) {\n output[uncompressedSize++] = output[pos++];\n }\n }\n\n return uncompressedSize;\n }\n\n /**\n * Compare file magic with lz4 magic number\n * @param input\n */\n checkMagicNumber(data: ArrayBuffer): boolean {\n const magic = new Uint32Array(data.slice(0, 4));\n return magic[0] === LZ4_MAGIC_NUMBER;\n }\n}\n"],"mappings":"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"}
@@ -1,11 +1,8 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
2
  import { toBuffer } from '@loaders.gl/loader-utils';
3
3
  import { Compression } from './compression';
4
-
5
4
  let lzo;
6
-
7
5
  export class LZOCompression extends Compression {
8
-
9
6
  constructor(options) {
10
7
  var _this$options, _this$options$modules;
11
8
  super(options);
@@ -20,8 +17,7 @@ export class LZOCompression extends Compression {
20
17
  throw new Error(this.name);
21
18
  }
22
19
  }
23
- async preload() {
24
- }
20
+ async preload() {}
25
21
  async compress(input) {
26
22
  await this.preload();
27
23
  const inputBuffer = toBuffer(input);
@@ -1 +1 @@
1
- {"version":3,"file":"lzo-compression.js","names":["toBuffer","Compression","lzo","LZOCompression","constructor","options","modules","Error","name","preload","compress","input","inputBuffer","buffer","decompress","error"],"sources":["../../../src/lib/lzo-compression.ts"],"sourcesContent":["// LZO\n// import {loadLibrary} from '@loaders.gl/worker-utils';\nimport {toBuffer} from '@loaders.gl/loader-utils';\n\nimport type {CompressionOptions} from './compression';\nimport {Compression} from './compression';\n// import {isBrowser} from '@loaders.gl/loader-utils';\n\n// import lzo from 'lzo'; // https://bundlephobia.com/package/lzo\n// import {decompress} from 'lzo-wasm';\n\n// const LZO_WASM_JS_URL = './node_modules/lzo-wasm/lzo-wasm.js';\n// const LZO_WASM_WASM_URL = './node_modules/lzo-wasm/lzo-wasm.wasm';\n\nlet lzo;\n\n/**\n * Lempel-Ziv-Oberheimer compression / decompression\n */\nexport class LZOCompression extends Compression {\n readonly name = 'lzo';\n readonly extensions = [];\n readonly contentEncodings = [];\n readonly isSupported = false; // !isBrowser;\n readonly options: CompressionOptions;\n\n /**\n * lzo is an injectable dependency due to big size\n * @param options\n */\n constructor(options: CompressionOptions) {\n super(options);\n this.options = options;\n\n lzo = lzo || this.options?.modules?.lzo;\n if (!lzo) {\n throw new Error(this.name);\n }\n }\n\n async preload() {\n // await loadLibrary(LZO_WASM_JS_URL);\n // await loadLibrary(LZO_WASM_WASM_URL);\n }\n\n async compress(input: ArrayBuffer): Promise<ArrayBuffer> {\n await this.preload();\n // const inputArray = new Uint8Array(input);\n const inputBuffer = toBuffer(input);\n return lzo.compress(inputBuffer).buffer;\n }\n\n async decompress(input: ArrayBuffer): Promise<ArrayBuffer> {\n try {\n await this.preload();\n // const inputArray = new Uint8Array(input);\n const inputBuffer = toBuffer(input);\n return lzo.decompress(inputBuffer).buffer;\n } catch (error) {\n // TODO - solve SharedArrayBuffer issues\n // return decompress(input);\n throw error;\n }\n }\n}\n"],"mappings":";AAEA,SAAQA,QAAQ,QAAO,0BAA0B;AAGjD,SAAQC,WAAW,QAAO,eAAe;;AASzC,IAAIC,GAAG;;AAKP,OAAO,MAAMC,cAAc,SAASF,WAAW,CAAC;;EAW9CG,WAAW,CAACC,OAA2B,EAAE;IAAA;IACvC,KAAK,CAACA,OAAO,CAAC;IAAC,8BAXD,KAAK;IAAA,oCACC,EAAE;IAAA,0CACI,EAAE;IAAA,qCACP,KAAK;IAAA;IAS1B,IAAI,CAACA,OAAO,GAAGA,OAAO;IAEtBH,GAAG,GAAGA,GAAG,sBAAI,IAAI,CAACG,OAAO,2EAAZ,cAAcC,OAAO,0DAArB,sBAAuBJ,GAAG;IACvC,IAAI,CAACA,GAAG,EAAE;MACR,MAAM,IAAIK,KAAK,CAAC,IAAI,CAACC,IAAI,CAAC;IAC5B;EACF;EAEA,MAAMC,OAAO,GAAG;EAGhB;EAEA,MAAMC,QAAQ,CAACC,KAAkB,EAAwB;IACvD,MAAM,IAAI,CAACF,OAAO,EAAE;IAEpB,MAAMG,WAAW,GAAGZ,QAAQ,CAACW,KAAK,CAAC;IACnC,OAAOT,GAAG,CAACQ,QAAQ,CAACE,WAAW,CAAC,CAACC,MAAM;EACzC;EAEA,MAAMC,UAAU,CAACH,KAAkB,EAAwB;IACzD,IAAI;MACF,MAAM,IAAI,CAACF,OAAO,EAAE;MAEpB,MAAMG,WAAW,GAAGZ,QAAQ,CAACW,KAAK,CAAC;MACnC,OAAOT,GAAG,CAACY,UAAU,CAACF,WAAW,CAAC,CAACC,MAAM;IAC3C,CAAC,CAAC,OAAOE,KAAK,EAAE;MAGd,MAAMA,KAAK;IACb;EACF;AACF"}
1
+ {"version":3,"file":"lzo-compression.js","names":["toBuffer","Compression","lzo","LZOCompression","constructor","options","_this$options","_this$options$modules","_defineProperty","modules","Error","name","preload","compress","input","inputBuffer","buffer","decompress","error"],"sources":["../../../src/lib/lzo-compression.ts"],"sourcesContent":["// LZO\n// import {loadLibrary} from '@loaders.gl/worker-utils';\nimport {toBuffer} from '@loaders.gl/loader-utils';\n\nimport type {CompressionOptions} from './compression';\nimport {Compression} from './compression';\n// import {isBrowser} from '@loaders.gl/loader-utils';\n\n// import lzo from 'lzo'; // https://bundlephobia.com/package/lzo\n// import {decompress} from 'lzo-wasm';\n\n// const LZO_WASM_JS_URL = './node_modules/lzo-wasm/lzo-wasm.js';\n// const LZO_WASM_WASM_URL = './node_modules/lzo-wasm/lzo-wasm.wasm';\n\nlet lzo;\n\n/**\n * Lempel-Ziv-Oberheimer compression / decompression\n */\nexport class LZOCompression extends Compression {\n readonly name = 'lzo';\n readonly extensions = [];\n readonly contentEncodings = [];\n readonly isSupported = false; // !isBrowser;\n readonly options: CompressionOptions;\n\n /**\n * lzo is an injectable dependency due to big size\n * @param options\n */\n constructor(options: CompressionOptions) {\n super(options);\n this.options = options;\n\n lzo = lzo || this.options?.modules?.lzo;\n if (!lzo) {\n throw new Error(this.name);\n }\n }\n\n async preload() {\n // await loadLibrary(LZO_WASM_JS_URL);\n // await loadLibrary(LZO_WASM_WASM_URL);\n }\n\n async compress(input: ArrayBuffer): Promise<ArrayBuffer> {\n await this.preload();\n // const inputArray = new Uint8Array(input);\n const inputBuffer = toBuffer(input);\n return lzo.compress(inputBuffer).buffer;\n }\n\n async decompress(input: ArrayBuffer): Promise<ArrayBuffer> {\n try {\n await this.preload();\n // const inputArray = new Uint8Array(input);\n const inputBuffer = toBuffer(input);\n return lzo.decompress(inputBuffer).buffer;\n } catch (error) {\n // TODO - solve SharedArrayBuffer issues\n // return decompress(input);\n throw error;\n }\n }\n}\n"],"mappings":";AAEA,SAAQA,QAAQ,QAAO,0BAA0B;AAGjD,SAAQC,WAAW,QAAO,eAAe;AASzC,IAAIC,GAAG;AAKP,OAAO,MAAMC,cAAc,SAASF,WAAW,CAAC;EAW9CG,WAAWA,CAACC,OAA2B,EAAE;IAAA,IAAAC,aAAA,EAAAC,qBAAA;IACvC,KAAK,CAACF,OAAO,CAAC;IAACG,eAAA,eAXD,KAAK;IAAAA,eAAA,qBACC,EAAE;IAAAA,eAAA,2BACI,EAAE;IAAAA,eAAA,sBACP,KAAK;IAAAA,eAAA;IAS1B,IAAI,CAACH,OAAO,GAAGA,OAAO;IAEtBH,GAAG,GAAGA,GAAG,MAAAI,aAAA,GAAI,IAAI,CAACD,OAAO,cAAAC,aAAA,wBAAAC,qBAAA,GAAZD,aAAA,CAAcG,OAAO,cAAAF,qBAAA,uBAArBA,qBAAA,CAAuBL,GAAG;IACvC,IAAI,CAACA,GAAG,EAAE;MACR,MAAM,IAAIQ,KAAK,CAAC,IAAI,CAACC,IAAI,CAAC;IAC5B;EACF;EAEA,MAAMC,OAAOA,CAAA,EAAG,CAGhB;EAEA,MAAMC,QAAQA,CAACC,KAAkB,EAAwB;IACvD,MAAM,IAAI,CAACF,OAAO,EAAE;IAEpB,MAAMG,WAAW,GAAGf,QAAQ,CAACc,KAAK,CAAC;IACnC,OAAOZ,GAAG,CAACW,QAAQ,CAACE,WAAW,CAAC,CAACC,MAAM;EACzC;EAEA,MAAMC,UAAUA,CAACH,KAAkB,EAAwB;IACzD,IAAI;MACF,MAAM,IAAI,CAACF,OAAO,EAAE;MAEpB,MAAMG,WAAW,GAAGf,QAAQ,CAACc,KAAK,CAAC;MACnC,OAAOZ,GAAG,CAACe,UAAU,CAACF,WAAW,CAAC,CAACC,MAAM;IAC3C,CAAC,CAAC,OAAOE,KAAK,EAAE;MAGd,MAAMA,KAAK;IACb;EACF;AACF"}
@@ -1,7 +1,5 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
-
3
2
  import { Compression } from './compression';
4
-
5
3
  export class NoCompression extends Compression {
6
4
  constructor(options) {
7
5
  super(options);
@@ -1 +1 @@
1
- {"version":3,"file":"no-compression.js","names":["Compression","NoCompression","constructor","options","compressSync","input","decompressSync","compressBatches","asyncIterator","decompressBatches"],"sources":["../../../src/lib/no-compression.ts"],"sourcesContent":["// NO COMPRESSION\nimport type {CompressionOptions} from './compression';\nimport {Compression} from './compression';\n\n/**\n * Applies no compression.\n */\nexport class NoCompression extends Compression {\n readonly name: string = 'uncompressed';\n readonly extensions: string[] = [];\n readonly contentEncodings: string[] = [];\n readonly isSupported = true;\n\n readonly options: CompressionOptions;\n\n constructor(options?: CompressionOptions) {\n super(options);\n this.options = options || {};\n }\n\n compressSync(input: ArrayBuffer): ArrayBuffer {\n return input;\n }\n\n decompressSync(input: ArrayBuffer): ArrayBuffer {\n return input;\n }\n\n async *compressBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n return yield* asyncIterator;\n }\n\n async *decompressBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n return yield* asyncIterator;\n }\n}\n"],"mappings":";;AAEA,SAAQA,WAAW,QAAO,eAAe;;AAKzC,OAAO,MAAMC,aAAa,SAASD,WAAW,CAAC;EAQ7CE,WAAW,CAACC,OAA4B,EAAE;IACxC,KAAK,CAACA,OAAO,CAAC;IAAC,8BARO,cAAc;IAAA,oCACN,EAAE;IAAA,0CACI,EAAE;IAAA,qCACjB,IAAI;IAAA;IAMzB,IAAI,CAACA,OAAO,GAAGA,OAAO,IAAI,CAAC,CAAC;EAC9B;EAEAC,YAAY,CAACC,KAAkB,EAAe;IAC5C,OAAOA,KAAK;EACd;EAEAC,cAAc,CAACD,KAAkB,EAAe;IAC9C,OAAOA,KAAK;EACd;EAEA,OAAOE,eAAe,CACpBC,aAAiE,EACrC;IAC5B,OAAO,OAAOA,aAAa;EAC7B;EAEA,OAAOC,iBAAiB,CACtBD,aAAiE,EACrC;IAC5B,OAAO,OAAOA,aAAa;EAC7B;AACF"}
1
+ {"version":3,"file":"no-compression.js","names":["Compression","NoCompression","constructor","options","_defineProperty","compressSync","input","decompressSync","compressBatches","asyncIterator","decompressBatches"],"sources":["../../../src/lib/no-compression.ts"],"sourcesContent":["// NO COMPRESSION\nimport type {CompressionOptions} from './compression';\nimport {Compression} from './compression';\n\n/**\n * Applies no compression.\n */\nexport class NoCompression extends Compression {\n readonly name: string = 'uncompressed';\n readonly extensions: string[] = [];\n readonly contentEncodings: string[] = [];\n readonly isSupported = true;\n\n readonly options: CompressionOptions;\n\n constructor(options?: CompressionOptions) {\n super(options);\n this.options = options || {};\n }\n\n compressSync(input: ArrayBuffer): ArrayBuffer {\n return input;\n }\n\n decompressSync(input: ArrayBuffer): ArrayBuffer {\n return input;\n }\n\n async *compressBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n return yield* asyncIterator;\n }\n\n async *decompressBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n return yield* asyncIterator;\n }\n}\n"],"mappings":";AAEA,SAAQA,WAAW,QAAO,eAAe;AAKzC,OAAO,MAAMC,aAAa,SAASD,WAAW,CAAC;EAQ7CE,WAAWA,CAACC,OAA4B,EAAE;IACxC,KAAK,CAACA,OAAO,CAAC;IAACC,eAAA,eARO,cAAc;IAAAA,eAAA,qBACN,EAAE;IAAAA,eAAA,2BACI,EAAE;IAAAA,eAAA,sBACjB,IAAI;IAAAA,eAAA;IAMzB,IAAI,CAACD,OAAO,GAAGA,OAAO,IAAI,CAAC,CAAC;EAC9B;EAEAE,YAAYA,CAACC,KAAkB,EAAe;IAC5C,OAAOA,KAAK;EACd;EAEAC,cAAcA,CAACD,KAAkB,EAAe;IAC9C,OAAOA,KAAK;EACd;EAEA,OAAOE,eAAeA,CACpBC,aAAiE,EACrC;IAC5B,OAAO,OAAOA,aAAa;EAC7B;EAEA,OAAOC,iBAAiBA,CACtBD,aAAiE,EACrC;IAC5B,OAAO,OAAOA,aAAa;EAC7B;AACF"}
@@ -1,8 +1,6 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
-
3
2
  import { Compression } from './compression';
4
3
  import { compress, uncompress } from 'snappyjs';
5
-
6
4
  export class SnappyCompression extends Compression {
7
5
  constructor(options) {
8
6
  super(options);
@@ -1 +1 @@
1
- {"version":3,"file":"snappy-compression.js","names":["Compression","compress","uncompress","SnappyCompression","constructor","options","compressSync","input","decompressSync"],"sources":["../../../src/lib/snappy-compression.ts"],"sourcesContent":["// SNAPPY (aka ZIPPY)\nimport type {CompressionOptions} from './compression';\nimport {Compression} from './compression';\nimport {compress, uncompress} from 'snappyjs'; // https://bundlephobia.com/package/snappy\n\n/**\n * Snappy/zippy compression / decompression\n */\nexport class SnappyCompression extends Compression {\n readonly name: string = 'snappy';\n readonly extensions = [];\n readonly contentEncodings = [];\n readonly isSupported = true;\n readonly options: CompressionOptions;\n\n constructor(options?: CompressionOptions) {\n super(options);\n this.options = options || {};\n }\n\n compressSync(input: ArrayBuffer): ArrayBuffer {\n // Accepts arrayBuffer - https://github.com/zhipeng-jia/snappyjs#usage\n return compress(input);\n }\n\n decompressSync(input: ArrayBuffer): ArrayBuffer {\n // Accepts arrayBuffer - https://github.com/zhipeng-jia/snappyjs#usage\n return uncompress(input);\n }\n}\n"],"mappings":";;AAEA,SAAQA,WAAW,QAAO,eAAe;AACzC,SAAQC,QAAQ,EAAEC,UAAU,QAAO,UAAU;;AAK7C,OAAO,MAAMC,iBAAiB,SAASH,WAAW,CAAC;EAOjDI,WAAW,CAACC,OAA4B,EAAE;IACxC,KAAK,CAACA,OAAO,CAAC;IAAC,8BAPO,QAAQ;IAAA,oCACV,EAAE;IAAA,0CACI,EAAE;IAAA,qCACP,IAAI;IAAA;IAKzB,IAAI,CAACA,OAAO,GAAGA,OAAO,IAAI,CAAC,CAAC;EAC9B;EAEAC,YAAY,CAACC,KAAkB,EAAe;IAE5C,OAAON,QAAQ,CAACM,KAAK,CAAC;EACxB;EAEAC,cAAc,CAACD,KAAkB,EAAe;IAE9C,OAAOL,UAAU,CAACK,KAAK,CAAC;EAC1B;AACF"}
1
+ {"version":3,"file":"snappy-compression.js","names":["Compression","compress","uncompress","SnappyCompression","constructor","options","_defineProperty","compressSync","input","decompressSync"],"sources":["../../../src/lib/snappy-compression.ts"],"sourcesContent":["// SNAPPY (aka ZIPPY)\nimport type {CompressionOptions} from './compression';\nimport {Compression} from './compression';\nimport {compress, uncompress} from 'snappyjs'; // https://bundlephobia.com/package/snappy\n\n/**\n * Snappy/zippy compression / decompression\n */\nexport class SnappyCompression extends Compression {\n readonly name: string = 'snappy';\n readonly extensions = [];\n readonly contentEncodings = [];\n readonly isSupported = true;\n readonly options: CompressionOptions;\n\n constructor(options?: CompressionOptions) {\n super(options);\n this.options = options || {};\n }\n\n compressSync(input: ArrayBuffer): ArrayBuffer {\n // Accepts arrayBuffer - https://github.com/zhipeng-jia/snappyjs#usage\n return compress(input);\n }\n\n decompressSync(input: ArrayBuffer): ArrayBuffer {\n // Accepts arrayBuffer - https://github.com/zhipeng-jia/snappyjs#usage\n return uncompress(input);\n }\n}\n"],"mappings":";AAEA,SAAQA,WAAW,QAAO,eAAe;AACzC,SAAQC,QAAQ,EAAEC,UAAU,QAAO,UAAU;AAK7C,OAAO,MAAMC,iBAAiB,SAASH,WAAW,CAAC;EAOjDI,WAAWA,CAACC,OAA4B,EAAE;IACxC,KAAK,CAACA,OAAO,CAAC;IAACC,eAAA,eAPO,QAAQ;IAAAA,eAAA,qBACV,EAAE;IAAAA,eAAA,2BACI,EAAE;IAAAA,eAAA,sBACP,IAAI;IAAAA,eAAA;IAKzB,IAAI,CAACD,OAAO,GAAGA,OAAO,IAAI,CAAC,CAAC;EAC9B;EAEAE,YAAYA,CAACC,KAAkB,EAAe;IAE5C,OAAOP,QAAQ,CAACO,KAAK,CAAC;EACxB;EAEAC,cAAcA,CAACD,KAAkB,EAAe;IAE9C,OAAON,UAAU,CAACM,KAAK,CAAC;EAC1B;AACF"}
@@ -1,10 +1,7 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
-
3
2
  import { Compression } from './compression';
4
-
5
3
  let ZstdCodec;
6
4
  let zstd;
7
-
8
5
  export class ZstdCompression extends Compression {
9
6
  constructor(options) {
10
7
  var _this$options, _this$options$modules;
@@ -1 +1 @@
1
- {"version":3,"file":"zstd-compression.js","names":["Compression","ZstdCodec","zstd","ZstdCompression","constructor","options","modules","console","warn","name","preload","Promise","resolve","run","compressSync","input","simpleZstd","Simple","inputArray","Uint8Array","compress","buffer","decompressSync","decompress"],"sources":["../../../src/lib/zstd-compression.ts"],"sourcesContent":["// ZSTD\nimport type {CompressionOptions} from './compression';\nimport {Compression} from './compression';\n// import {ZstdCodec} from 'zstd-codec'; // https://bundlephobia.com/package/zstd-codec\n\nlet ZstdCodec;\nlet zstd;\n\n/**\n * Zstandard compression / decompression\n */\nexport class ZstdCompression extends Compression {\n readonly name: string = 'zstd';\n readonly extensions = [];\n readonly contentEncodings = [];\n readonly isSupported = true;\n readonly options: CompressionOptions;\n\n /**\n * zstd-codec is an injectable dependency due to big size\n * @param options\n */\n constructor(options: CompressionOptions) {\n super(options);\n this.options = options;\n\n ZstdCodec = this.options?.modules?.['zstd-codec'];\n if (!ZstdCodec) {\n // eslint-disable-next-line no-console\n console.warn(`${this.name} library not installed`);\n }\n }\n\n async preload(): Promise<void> {\n if (!zstd && ZstdCodec) {\n zstd = await new Promise((resolve) => ZstdCodec.run((zstd) => resolve(zstd)));\n }\n }\n\n compressSync(input: ArrayBuffer): ArrayBuffer {\n const simpleZstd = new zstd.Simple();\n const inputArray = new Uint8Array(input);\n return simpleZstd.compress(inputArray).buffer;\n }\n\n decompressSync(input: ArrayBuffer): ArrayBuffer {\n const simpleZstd = new zstd.Simple();\n // var ddict = new zstd.Dict.Decompression(dictData);\n // var jsonBytes = simpleZstd.decompressUsingDict(jsonZstData, ddict);\n const inputArray = new Uint8Array(input);\n return simpleZstd.decompress(inputArray).buffer;\n }\n}\n"],"mappings":";;AAEA,SAAQA,WAAW,QAAO,eAAe;;AAGzC,IAAIC,SAAS;AACb,IAAIC,IAAI;;AAKR,OAAO,MAAMC,eAAe,SAASH,WAAW,CAAC;EAW/CI,WAAW,CAACC,OAA2B,EAAE;IAAA;IACvC,KAAK,CAACA,OAAO,CAAC;IAAC,8BAXO,MAAM;IAAA,oCACR,EAAE;IAAA,0CACI,EAAE;IAAA,qCACP,IAAI;IAAA;IASzB,IAAI,CAACA,OAAO,GAAGA,OAAO;IAEtBJ,SAAS,oBAAG,IAAI,CAACI,OAAO,2EAAZ,cAAcC,OAAO,0DAArB,sBAAwB,YAAY,CAAC;IACjD,IAAI,CAACL,SAAS,EAAE;MAEdM,OAAO,CAACC,IAAI,WAAI,IAAI,CAACC,IAAI,4BAAyB;IACpD;EACF;EAEA,MAAMC,OAAO,GAAkB;IAC7B,IAAI,CAACR,IAAI,IAAID,SAAS,EAAE;MACtBC,IAAI,GAAG,MAAM,IAAIS,OAAO,CAAEC,OAAO,IAAKX,SAAS,CAACY,GAAG,CAAEX,IAAI,IAAKU,OAAO,CAACV,IAAI,CAAC,CAAC,CAAC;IAC/E;EACF;EAEAY,YAAY,CAACC,KAAkB,EAAe;IAC5C,MAAMC,UAAU,GAAG,IAAId,IAAI,CAACe,MAAM,EAAE;IACpC,MAAMC,UAAU,GAAG,IAAIC,UAAU,CAACJ,KAAK,CAAC;IACxC,OAAOC,UAAU,CAACI,QAAQ,CAACF,UAAU,CAAC,CAACG,MAAM;EAC/C;EAEAC,cAAc,CAACP,KAAkB,EAAe;IAC9C,MAAMC,UAAU,GAAG,IAAId,IAAI,CAACe,MAAM,EAAE;IAGpC,MAAMC,UAAU,GAAG,IAAIC,UAAU,CAACJ,KAAK,CAAC;IACxC,OAAOC,UAAU,CAACO,UAAU,CAACL,UAAU,CAAC,CAACG,MAAM;EACjD;AACF"}
1
+ {"version":3,"file":"zstd-compression.js","names":["Compression","ZstdCodec","zstd","ZstdCompression","constructor","options","_this$options","_this$options$modules","_defineProperty","modules","console","warn","concat","name","preload","Promise","resolve","run","compressSync","input","simpleZstd","Simple","inputArray","Uint8Array","compress","buffer","decompressSync","decompress"],"sources":["../../../src/lib/zstd-compression.ts"],"sourcesContent":["// ZSTD\nimport type {CompressionOptions} from './compression';\nimport {Compression} from './compression';\n// import {ZstdCodec} from 'zstd-codec'; // https://bundlephobia.com/package/zstd-codec\n\nlet ZstdCodec;\nlet zstd;\n\n/**\n * Zstandard compression / decompression\n */\nexport class ZstdCompression extends Compression {\n readonly name: string = 'zstd';\n readonly extensions = [];\n readonly contentEncodings = [];\n readonly isSupported = true;\n readonly options: CompressionOptions;\n\n /**\n * zstd-codec is an injectable dependency due to big size\n * @param options\n */\n constructor(options: CompressionOptions) {\n super(options);\n this.options = options;\n\n ZstdCodec = this.options?.modules?.['zstd-codec'];\n if (!ZstdCodec) {\n // eslint-disable-next-line no-console\n console.warn(`${this.name} library not installed`);\n }\n }\n\n async preload(): Promise<void> {\n if (!zstd && ZstdCodec) {\n zstd = await new Promise((resolve) => ZstdCodec.run((zstd) => resolve(zstd)));\n }\n }\n\n compressSync(input: ArrayBuffer): ArrayBuffer {\n const simpleZstd = new zstd.Simple();\n const inputArray = new Uint8Array(input);\n return simpleZstd.compress(inputArray).buffer;\n }\n\n decompressSync(input: ArrayBuffer): ArrayBuffer {\n const simpleZstd = new zstd.Simple();\n // var ddict = new zstd.Dict.Decompression(dictData);\n // var jsonBytes = simpleZstd.decompressUsingDict(jsonZstData, ddict);\n const inputArray = new Uint8Array(input);\n return simpleZstd.decompress(inputArray).buffer;\n }\n}\n"],"mappings":";AAEA,SAAQA,WAAW,QAAO,eAAe;AAGzC,IAAIC,SAAS;AACb,IAAIC,IAAI;AAKR,OAAO,MAAMC,eAAe,SAASH,WAAW,CAAC;EAW/CI,WAAWA,CAACC,OAA2B,EAAE;IAAA,IAAAC,aAAA,EAAAC,qBAAA;IACvC,KAAK,CAACF,OAAO,CAAC;IAACG,eAAA,eAXO,MAAM;IAAAA,eAAA,qBACR,EAAE;IAAAA,eAAA,2BACI,EAAE;IAAAA,eAAA,sBACP,IAAI;IAAAA,eAAA;IASzB,IAAI,CAACH,OAAO,GAAGA,OAAO;IAEtBJ,SAAS,IAAAK,aAAA,GAAG,IAAI,CAACD,OAAO,cAAAC,aAAA,wBAAAC,qBAAA,GAAZD,aAAA,CAAcG,OAAO,cAAAF,qBAAA,uBAArBA,qBAAA,CAAwB,YAAY,CAAC;IACjD,IAAI,CAACN,SAAS,EAAE;MAEdS,OAAO,CAACC,IAAI,IAAAC,MAAA,CAAI,IAAI,CAACC,IAAI,4BAAyB;IACpD;EACF;EAEA,MAAMC,OAAOA,CAAA,EAAkB;IAC7B,IAAI,CAACZ,IAAI,IAAID,SAAS,EAAE;MACtBC,IAAI,GAAG,MAAM,IAAIa,OAAO,CAAEC,OAAO,IAAKf,SAAS,CAACgB,GAAG,CAAEf,IAAI,IAAKc,OAAO,CAACd,IAAI,CAAC,CAAC,CAAC;IAC/E;EACF;EAEAgB,YAAYA,CAACC,KAAkB,EAAe;IAC5C,MAAMC,UAAU,GAAG,IAAIlB,IAAI,CAACmB,MAAM,EAAE;IACpC,MAAMC,UAAU,GAAG,IAAIC,UAAU,CAACJ,KAAK,CAAC;IACxC,OAAOC,UAAU,CAACI,QAAQ,CAACF,UAAU,CAAC,CAACG,MAAM;EAC/C;EAEAC,cAAcA,CAACP,KAAkB,EAAe;IAC9C,MAAMC,UAAU,GAAG,IAAIlB,IAAI,CAACmB,MAAM,EAAE;IAGpC,MAAMC,UAAU,GAAG,IAAIC,UAAU,CAACJ,KAAK,CAAC;IACxC,OAAOC,UAAU,CAACO,UAAU,CAACL,UAAU,CAAC,CAACG,MAAM;EACjD;AACF"}
@@ -1,5 +1,4 @@
1
1
  import { createWorker } from '@loaders.gl/worker-utils';
2
-
3
2
  import { NoCompression } from '../lib/no-compression';
4
3
  import { BrotliCompression } from '../lib/brotli-compression';
5
4
  import { DeflateCompression } from '../lib/deflate-compression';
@@ -7,13 +6,10 @@ import { GZipCompression } from '../lib/gzip-compression';
7
6
  import { LZ4Compression } from '../lib/lz4-compression';
8
7
  import { SnappyCompression } from '../lib/snappy-compression';
9
8
  import { ZstdCompression } from '../lib/zstd-compression';
10
-
11
9
  import lz4js from 'lz4js';
12
-
13
10
  const modules = {
14
11
  lz4js
15
12
  };
16
-
17
13
  const COMPRESSIONS = [new NoCompression({
18
14
  modules
19
15
  }), new BrotliCompression({
@@ -22,8 +18,7 @@ const COMPRESSIONS = [new NoCompression({
22
18
  modules
23
19
  }), new GZipCompression({
24
20
  modules
25
- }),
26
- new LZ4Compression({
21
+ }), new LZ4Compression({
27
22
  modules
28
23
  }), new SnappyCompression({
29
24
  modules
@@ -34,7 +29,6 @@ createWorker(async function (data) {
34
29
  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
35
30
  const operation = getOperation(String(options === null || options === void 0 ? void 0 : options.operation));
36
31
  const compression = getCompression(String(options === null || options === void 0 ? void 0 : options.compression));
37
-
38
32
  switch (operation) {
39
33
  case 'compress':
40
34
  return await compression.compress(data);
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","names":["createWorker","NoCompression","BrotliCompression","DeflateCompression","GZipCompression","LZ4Compression","SnappyCompression","ZstdCompression","lz4js","modules","COMPRESSIONS","data","options","operation","getOperation","String","compression","getCompression","compress","decompress","Error","name","Compression","find","compression_"],"sources":["../../../src/workers/worker.ts"],"sourcesContent":["import {createWorker} from '@loaders.gl/worker-utils';\n\n// Compressors\nimport {NoCompression} from '../lib/no-compression';\nimport {BrotliCompression} from '../lib/brotli-compression';\nimport {DeflateCompression} from '../lib/deflate-compression';\nimport {GZipCompression} from '../lib/gzip-compression';\nimport {LZ4Compression} from '../lib/lz4-compression';\n// import {LZOCompression} from '../lib/lzo-compression';\nimport {SnappyCompression} from '../lib/snappy-compression';\nimport {ZstdCompression} from '../lib/zstd-compression';\n\n// Import big dependencies\n\n// import brotli from 'brotli'; - brotli has problems with decompress in browsers\n// import brotliDecompress from 'brotli/decompress';\nimport lz4js from 'lz4js';\n// import lzo from 'lzo';\n// import {ZstdCodec} from 'zstd-codec';\n\n// Inject large dependencies through Compression constructor options\nconst modules = {\n // brotli has problems with decompress in browsers\n // brotli: {\n // decompress: brotliDecompress,\n // compress: () => {\n // throw new Error('brotli compress');\n // }\n // },\n lz4js\n // lzo,\n // 'zstd-codec': ZstdCodec\n};\n\n/** @type {Compression[]} */\nconst COMPRESSIONS = [\n new NoCompression({modules}),\n new BrotliCompression({modules}),\n new DeflateCompression({modules}),\n new GZipCompression({modules}),\n // new LZOCompression({modules}),\n new LZ4Compression({modules}),\n new SnappyCompression({modules}),\n new ZstdCompression({modules})\n];\n\ncreateWorker(async (data, options = {}) => {\n const operation = getOperation(String(options?.operation));\n const compression = getCompression(String(options?.compression));\n\n // @ts-ignore\n switch (operation) {\n case 'compress':\n return await compression.compress(data);\n case 'decompress':\n return await compression.decompress(data);\n default:\n throw new Error('invalid option');\n }\n});\n\nfunction getOperation(operation: string): 'compress' | 'decompress' {\n switch (operation) {\n case 'compress':\n case 'deflate':\n return 'compress';\n case 'decompress':\n case 'inflate':\n return 'decompress';\n default:\n throw new Error(\n `@loaders.gl/compression: Unsupported operation ${operation}. Expected 'compress' or 'decompress'`\n );\n }\n}\n\nfunction getCompression(name: string) {\n const Compression = COMPRESSIONS.find((compression_) => name === compression_.name);\n if (!Compression) {\n throw new Error(`@loaders.gl/compression: Unsupported compression ${name}`);\n }\n return Compression;\n}\n"],"mappings":"AAAA,SAAQA,YAAY,QAAO,0BAA0B;;AAGrD,SAAQC,aAAa,QAAO,uBAAuB;AACnD,SAAQC,iBAAiB,QAAO,2BAA2B;AAC3D,SAAQC,kBAAkB,QAAO,4BAA4B;AAC7D,SAAQC,eAAe,QAAO,yBAAyB;AACvD,SAAQC,cAAc,QAAO,wBAAwB;AAErD,SAAQC,iBAAiB,QAAO,2BAA2B;AAC3D,SAAQC,eAAe,QAAO,yBAAyB;;AAMvD,OAAOC,KAAK,MAAM,OAAO;;AAKzB,MAAMC,OAAO,GAAG;EAQdD;AAGF,CAAC;;AAGD,MAAME,YAAY,GAAG,CACnB,IAAIT,aAAa,CAAC;EAACQ;AAAO,CAAC,CAAC,EAC5B,IAAIP,iBAAiB,CAAC;EAACO;AAAO,CAAC,CAAC,EAChC,IAAIN,kBAAkB,CAAC;EAACM;AAAO,CAAC,CAAC,EACjC,IAAIL,eAAe,CAAC;EAACK;AAAO,CAAC,CAAC;AAE9B,IAAIJ,cAAc,CAAC;EAACI;AAAO,CAAC,CAAC,EAC7B,IAAIH,iBAAiB,CAAC;EAACG;AAAO,CAAC,CAAC,EAChC,IAAIF,eAAe,CAAC;EAACE;AAAO,CAAC,CAAC,CAC/B;AAEDT,YAAY,CAAC,gBAAOW,IAAI,EAAmB;EAAA,IAAjBC,OAAO,uEAAG,CAAC,CAAC;EACpC,MAAMC,SAAS,GAAGC,YAAY,CAACC,MAAM,CAACH,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,SAAS,CAAC,CAAC;EAC1D,MAAMG,WAAW,GAAGC,cAAc,CAACF,MAAM,CAACH,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEI,WAAW,CAAC,CAAC;;EAGhE,QAAQH,SAAS;IACf,KAAK,UAAU;MACb,OAAO,MAAMG,WAAW,CAACE,QAAQ,CAACP,IAAI,CAAC;IACzC,KAAK,YAAY;MACf,OAAO,MAAMK,WAAW,CAACG,UAAU,CAACR,IAAI,CAAC;IAC3C;MACE,MAAM,IAAIS,KAAK,CAAC,gBAAgB,CAAC;EAAC;AAExC,CAAC,CAAC;AAEF,SAASN,YAAY,CAACD,SAAiB,EAA6B;EAClE,QAAQA,SAAS;IACf,KAAK,UAAU;IACf,KAAK,SAAS;MACZ,OAAO,UAAU;IACnB,KAAK,YAAY;IACjB,KAAK,SAAS;MACZ,OAAO,YAAY;IACrB;MACE,MAAM,IAAIO,KAAK,0DACqCP,SAAS,2CAC5D;EAAC;AAER;AAEA,SAASI,cAAc,CAACI,IAAY,EAAE;EACpC,MAAMC,WAAW,GAAGZ,YAAY,CAACa,IAAI,CAAEC,YAAY,IAAKH,IAAI,KAAKG,YAAY,CAACH,IAAI,CAAC;EACnF,IAAI,CAACC,WAAW,EAAE;IAChB,MAAM,IAAIF,KAAK,4DAAqDC,IAAI,EAAG;EAC7E;EACA,OAAOC,WAAW;AACpB"}
1
+ {"version":3,"file":"worker.js","names":["createWorker","NoCompression","BrotliCompression","DeflateCompression","GZipCompression","LZ4Compression","SnappyCompression","ZstdCompression","lz4js","modules","COMPRESSIONS","data","options","arguments","length","undefined","operation","getOperation","String","compression","getCompression","compress","decompress","Error","concat","name","Compression","find","compression_"],"sources":["../../../src/workers/worker.ts"],"sourcesContent":["import {createWorker} from '@loaders.gl/worker-utils';\n\n// Compressors\nimport {NoCompression} from '../lib/no-compression';\nimport {BrotliCompression} from '../lib/brotli-compression';\nimport {DeflateCompression} from '../lib/deflate-compression';\nimport {GZipCompression} from '../lib/gzip-compression';\nimport {LZ4Compression} from '../lib/lz4-compression';\n// import {LZOCompression} from '../lib/lzo-compression';\nimport {SnappyCompression} from '../lib/snappy-compression';\nimport {ZstdCompression} from '../lib/zstd-compression';\n\n// Import big dependencies\n\n// import brotli from 'brotli'; - brotli has problems with decompress in browsers\n// import brotliDecompress from 'brotli/decompress';\nimport lz4js from 'lz4js';\n// import lzo from 'lzo';\n// import {ZstdCodec} from 'zstd-codec';\n\n// Inject large dependencies through Compression constructor options\nconst modules = {\n // brotli has problems with decompress in browsers\n // brotli: {\n // decompress: brotliDecompress,\n // compress: () => {\n // throw new Error('brotli compress');\n // }\n // },\n lz4js\n // lzo,\n // 'zstd-codec': ZstdCodec\n};\n\n/** @type {Compression[]} */\nconst COMPRESSIONS = [\n new NoCompression({modules}),\n new BrotliCompression({modules}),\n new DeflateCompression({modules}),\n new GZipCompression({modules}),\n // new LZOCompression({modules}),\n new LZ4Compression({modules}),\n new SnappyCompression({modules}),\n new ZstdCompression({modules})\n];\n\ncreateWorker(async (data, options = {}) => {\n const operation = getOperation(String(options?.operation));\n const compression = getCompression(String(options?.compression));\n\n // @ts-ignore\n switch (operation) {\n case 'compress':\n return await compression.compress(data);\n case 'decompress':\n return await compression.decompress(data);\n default:\n throw new Error('invalid option');\n }\n});\n\nfunction getOperation(operation: string): 'compress' | 'decompress' {\n switch (operation) {\n case 'compress':\n case 'deflate':\n return 'compress';\n case 'decompress':\n case 'inflate':\n return 'decompress';\n default:\n throw new Error(\n `@loaders.gl/compression: Unsupported operation ${operation}. Expected 'compress' or 'decompress'`\n );\n }\n}\n\nfunction getCompression(name: string) {\n const Compression = COMPRESSIONS.find((compression_) => name === compression_.name);\n if (!Compression) {\n throw new Error(`@loaders.gl/compression: Unsupported compression ${name}`);\n }\n return Compression;\n}\n"],"mappings":"AAAA,SAAQA,YAAY,QAAO,0BAA0B;AAGrD,SAAQC,aAAa,QAAO,uBAAuB;AACnD,SAAQC,iBAAiB,QAAO,2BAA2B;AAC3D,SAAQC,kBAAkB,QAAO,4BAA4B;AAC7D,SAAQC,eAAe,QAAO,yBAAyB;AACvD,SAAQC,cAAc,QAAO,wBAAwB;AAErD,SAAQC,iBAAiB,QAAO,2BAA2B;AAC3D,SAAQC,eAAe,QAAO,yBAAyB;AAMvD,OAAOC,KAAK,MAAM,OAAO;AAKzB,MAAMC,OAAO,GAAG;EAQdD;AAGF,CAAC;AAGD,MAAME,YAAY,GAAG,CACnB,IAAIT,aAAa,CAAC;EAACQ;AAAO,CAAC,CAAC,EAC5B,IAAIP,iBAAiB,CAAC;EAACO;AAAO,CAAC,CAAC,EAChC,IAAIN,kBAAkB,CAAC;EAACM;AAAO,CAAC,CAAC,EACjC,IAAIL,eAAe,CAAC;EAACK;AAAO,CAAC,CAAC,EAE9B,IAAIJ,cAAc,CAAC;EAACI;AAAO,CAAC,CAAC,EAC7B,IAAIH,iBAAiB,CAAC;EAACG;AAAO,CAAC,CAAC,EAChC,IAAIF,eAAe,CAAC;EAACE;AAAO,CAAC,CAAC,CAC/B;AAEDT,YAAY,CAAC,gBAAOW,IAAI,EAAmB;EAAA,IAAjBC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACpC,MAAMG,SAAS,GAAGC,YAAY,CAACC,MAAM,CAACN,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEI,SAAS,CAAC,CAAC;EAC1D,MAAMG,WAAW,GAAGC,cAAc,CAACF,MAAM,CAACN,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEO,WAAW,CAAC,CAAC;EAGhE,QAAQH,SAAS;IACf,KAAK,UAAU;MACb,OAAO,MAAMG,WAAW,CAACE,QAAQ,CAACV,IAAI,CAAC;IACzC,KAAK,YAAY;MACf,OAAO,MAAMQ,WAAW,CAACG,UAAU,CAACX,IAAI,CAAC;IAC3C;MACE,MAAM,IAAIY,KAAK,CAAC,gBAAgB,CAAC;EAAC;AAExC,CAAC,CAAC;AAEF,SAASN,YAAYA,CAACD,SAAiB,EAA6B;EAClE,QAAQA,SAAS;IACf,KAAK,UAAU;IACf,KAAK,SAAS;MACZ,OAAO,UAAU;IACnB,KAAK,YAAY;IACjB,KAAK,SAAS;MACZ,OAAO,YAAY;IACrB;MACE,MAAM,IAAIO,KAAK,mDAAAC,MAAA,CACqCR,SAAS,2CAC5D;EAAC;AAER;AAEA,SAASI,cAAcA,CAACK,IAAY,EAAE;EACpC,MAAMC,WAAW,GAAGhB,YAAY,CAACiB,IAAI,CAAEC,YAAY,IAAKH,IAAI,KAAKG,YAAY,CAACH,IAAI,CAAC;EACnF,IAAI,CAACC,WAAW,EAAE;IAChB,MAAM,IAAIH,KAAK,qDAAAC,MAAA,CAAqDC,IAAI,EAAG;EAC7E;EACA,OAAOC,WAAW;AACpB"}