@loaders.gl/compression 3.3.0-alpha.5 → 3.3.0-alpha.6

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 (58) hide show
  1. package/dist/es5/brotli/decode.js +3 -423
  2. package/dist/es5/brotli/decode.js.map +1 -1
  3. package/dist/es5/bundle.js +0 -1
  4. package/dist/es5/bundle.js.map +1 -1
  5. package/dist/es5/compression-worker.js +3 -6
  6. package/dist/es5/compression-worker.js.map +1 -1
  7. package/dist/es5/index.js +16 -26
  8. package/dist/es5/index.js.map +1 -1
  9. package/dist/es5/lib/brotli-compression.js +2 -56
  10. package/dist/es5/lib/brotli-compression.js.map +1 -1
  11. package/dist/es5/lib/compression.js +15 -34
  12. package/dist/es5/lib/compression.js.map +1 -1
  13. package/dist/es5/lib/deflate-compression.js +40 -129
  14. package/dist/es5/lib/deflate-compression.js.map +1 -1
  15. package/dist/es5/lib/gzip-compression.js +4 -21
  16. package/dist/es5/lib/gzip-compression.js.map +1 -1
  17. package/dist/es5/lib/lz4-compression.js +10 -33
  18. package/dist/es5/lib/lz4-compression.js.map +1 -1
  19. package/dist/es5/lib/lzo-compression.js +0 -32
  20. package/dist/es5/lib/lzo-compression.js.map +1 -1
  21. package/dist/es5/lib/no-compression.js +4 -29
  22. package/dist/es5/lib/no-compression.js.map +1 -1
  23. package/dist/es5/lib/snappy-compression.js +0 -18
  24. package/dist/es5/lib/snappy-compression.js.map +1 -1
  25. package/dist/es5/lib/zstd-compression.js +0 -26
  26. package/dist/es5/lib/zstd-compression.js.map +1 -1
  27. package/dist/es5/types.js.map +1 -1
  28. package/dist/es5/workers/worker.js +6 -28
  29. package/dist/es5/workers/worker.js.map +1 -1
  30. package/dist/esm/brotli/decode.js +4 -422
  31. package/dist/esm/brotli/decode.js.map +1 -1
  32. package/dist/esm/bundle.js +1 -1
  33. package/dist/esm/bundle.js.map +1 -1
  34. package/dist/esm/compression-worker.js +3 -1
  35. package/dist/esm/compression-worker.js.map +1 -1
  36. package/dist/esm/index.js.map +1 -1
  37. package/dist/esm/lib/brotli-compression.js +6 -26
  38. package/dist/esm/lib/brotli-compression.js.map +1 -1
  39. package/dist/esm/lib/compression.js +1 -7
  40. package/dist/esm/lib/compression.js.map +1 -1
  41. package/dist/esm/lib/deflate-compression.js +7 -42
  42. package/dist/esm/lib/deflate-compression.js.map +1 -1
  43. package/dist/esm/lib/gzip-compression.js +5 -7
  44. package/dist/esm/lib/gzip-compression.js.map +1 -1
  45. package/dist/esm/lib/lz4-compression.js +3 -19
  46. package/dist/esm/lib/lz4-compression.js.map +1 -1
  47. package/dist/esm/lib/lzo-compression.js +5 -13
  48. package/dist/esm/lib/lzo-compression.js.map +1 -1
  49. package/dist/esm/lib/no-compression.js +2 -11
  50. package/dist/esm/lib/no-compression.js.map +1 -1
  51. package/dist/esm/lib/snappy-compression.js +2 -9
  52. package/dist/esm/lib/snappy-compression.js.map +1 -1
  53. package/dist/esm/lib/zstd-compression.js +3 -12
  54. package/dist/esm/lib/zstd-compression.js.map +1 -1
  55. package/dist/esm/types.js.map +1 -1
  56. package/dist/esm/workers/worker.js +8 -10
  57. package/dist/esm/workers/worker.js.map +1 -1
  58. package/package.json +4 -4
@@ -1,5 +1,5 @@
1
- const moduleExports = require('./index');
2
1
 
2
+ const moduleExports = require('./index');
3
3
  globalThis.loaders = globalThis.loaders || {};
4
4
  module.exports = Object.assign(globalThis.loaders, moduleExports);
5
5
  //# sourceMappingURL=bundle.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/bundle.ts"],"names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"mappings":"AACA,MAAMA,aAAa,GAAGC,OAAO,CAAC,SAAD,CAA7B;;AACAC,UAAU,CAACC,OAAX,GAAqBD,UAAU,CAACC,OAAX,IAAsB,EAA3C;AACAC,MAAM,CAACC,OAAP,GAAiBC,MAAM,CAACC,MAAP,CAAcL,UAAU,CAACC,OAAzB,EAAkCH,aAAlC,CAAjB","sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.loaders = globalThis.loaders || {};\nmodule.exports = Object.assign(globalThis.loaders, moduleExports);\n"],"file":"bundle.js"}
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,5 +1,6 @@
1
1
  import { processOnWorker } from '@loaders.gl/worker-utils';
2
- const VERSION = typeof "3.3.0-alpha.5" !== 'undefined' ? "3.3.0-alpha.5" : 'latest';
2
+
3
+ const VERSION = typeof "3.3.0-alpha.6" !== 'undefined' ? "3.3.0-alpha.6" : 'latest';
3
4
  export const CompressionWorker = {
4
5
  id: 'compression',
5
6
  name: 'compression',
@@ -7,6 +8,7 @@ export const CompressionWorker = {
7
8
  version: VERSION,
8
9
  options: {}
9
10
  };
11
+
10
12
  export function compressOnWorker(data, options) {
11
13
  return processOnWorker(CompressionWorker, data, options);
12
14
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/compression-worker.ts"],"names":["processOnWorker","VERSION","CompressionWorker","id","name","module","version","options","compressOnWorker","data","_typecheckCompressionWorker"],"mappings":"AACA,SAAQA,eAAR,QAA8B,0BAA9B;AAIA,MAAMC,OAAO,GAAG,2BAAuB,WAAvB,qBAAmD,QAAnE;AAUA,OAAO,MAAMC,iBAAiB,GAAG;AAC/BC,EAAAA,EAAE,EAAE,aAD2B;AAE/BC,EAAAA,IAAI,EAAE,aAFyB;AAG/BC,EAAAA,MAAM,EAAE,aAHuB;AAI/BC,EAAAA,OAAO,EAAEL,OAJsB;AAK/BM,EAAAA,OAAO,EAAE;AALsB,CAA1B;AAWP,OAAO,SAASC,gBAAT,CACLC,IADK,EAELF,OAFK,EAGiB;AACtB,SAAOP,eAAe,CAACE,iBAAD,EAAoBO,IAApB,EAA0BF,OAA1B,CAAtB;AACD;AAED,OAAO,MAAMG,2BAAyC,GAAGR,iBAAlD","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"],"file":"compression-worker.js"}
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 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":["Compression","NoCompression","DeflateCompression","GZipCompression","LZ4Compression","ZstdCompression","SnappyCompression","BrotliCompression","LZOCompression","CompressionWorker","compressOnWorker"],"mappings":"AAEA,SAAQA,WAAR,QAA0B,mBAA1B;AACA,SAAQC,aAAR,QAA4B,sBAA5B;AACA,SAAQC,kBAAR,QAAiC,2BAAjC;AACA,SAAQC,eAAR,QAA8B,wBAA9B;AACA,SAAQC,cAAR,QAA6B,uBAA7B;AACA,SAAQC,eAAR,QAA8B,wBAA9B;AACA,SAAQC,iBAAR,QAAgC,0BAAhC;AACA,SAAQC,iBAAR,QAAgC,0BAAhC;AACA,SAAQC,cAAR,QAA6B,uBAA7B;AAGA,SAAQC,iBAAR,EAA2BC,gBAA3B,QAAkD,sBAAlD","sourcesContent":["export type {CompressionOptions} from './lib/compression';\n\nexport {Compression} from './lib/compression';\nexport {NoCompression} from './lib/no-compression';\nexport {DeflateCompression} from './lib/deflate-compression';\nexport {GZipCompression} from './lib/gzip-compression';\nexport {LZ4Compression} from './lib/lz4-compression';\nexport {ZstdCompression} from './lib/zstd-compression';\nexport {SnappyCompression} from './lib/snappy-compression';\nexport {BrotliCompression} from './lib/brotli-compression';\nexport {LZOCompression} from './lib/lzo-compression';\n\nexport type {CompressionWorkerOptions} from './compression-worker';\nexport {CompressionWorker, compressOnWorker} from './compression-worker';\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["Compression","NoCompression","DeflateCompression","GZipCompression","LZ4Compression","ZstdCompression","SnappyCompression","BrotliCompression","LZOCompression","CompressionWorker","compressOnWorker"],"sources":["../../src/index.ts"],"sourcesContent":["export type {CompressionOptions} from './lib/compression';\n\nexport {Compression} from './lib/compression';\nexport {NoCompression} from './lib/no-compression';\nexport {DeflateCompression} from './lib/deflate-compression';\nexport {GZipCompression} from './lib/gzip-compression';\nexport {LZ4Compression} from './lib/lz4-compression';\nexport {ZstdCompression} from './lib/zstd-compression';\nexport {SnappyCompression} from './lib/snappy-compression';\nexport {BrotliCompression} from './lib/brotli-compression';\nexport {LZOCompression} from './lib/lzo-compression';\n\nexport type {CompressionWorkerOptions} from './compression-worker';\nexport {CompressionWorker, compressOnWorker} from './compression-worker';\n"],"mappings":"AAEA,SAAQA,WAAW,QAAO,mBAAmB;AAC7C,SAAQC,aAAa,QAAO,sBAAsB;AAClD,SAAQC,kBAAkB,QAAO,2BAA2B;AAC5D,SAAQC,eAAe,QAAO,wBAAwB;AACtD,SAAQC,cAAc,QAAO,uBAAuB;AACpD,SAAQC,eAAe,QAAO,wBAAwB;AACtD,SAAQC,iBAAiB,QAAO,0BAA0B;AAC1D,SAAQC,iBAAiB,QAAO,0BAA0B;AAC1D,SAAQC,cAAc,QAAO,uBAAuB;AAGpD,SAAQC,iBAAiB,EAAEC,gBAAgB,QAAO,sBAAsB"}
@@ -1,4 +1,5 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+
2
3
  import { Compression } from './compression';
3
4
  import { isBrowser, toArrayBuffer } from '@loaders.gl/loader-utils';
4
5
  import { BrotliDecode } from '../brotli/decode';
@@ -12,57 +13,44 @@ const DEFAULT_BROTLI_OPTIONS = {
12
13
  }
13
14
  };
14
15
  let brotli;
16
+
15
17
  export class BrotliCompression extends Compression {
16
18
  constructor(options) {
17
19
  super(options);
18
-
19
20
  _defineProperty(this, "name", 'brotli');
20
-
21
21
  _defineProperty(this, "extensions", ['br']);
22
-
23
22
  _defineProperty(this, "contentEncodings", ['br']);
24
-
25
23
  _defineProperty(this, "isSupported", true);
26
-
27
24
  _defineProperty(this, "options", void 0);
28
-
29
25
  this.options = options;
30
26
  }
31
27
 
32
28
  async preload() {
33
29
  var _this$options, _this$options$modules;
34
-
35
30
  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);
36
-
37
31
  if (!brotli) {
38
32
  console.warn("".concat(this.name, " library not installed"));
39
33
  }
40
34
  }
41
-
42
35
  async compress(input) {
43
36
  var _this$options$brotli;
44
-
45
37
  if (!isBrowser && (_this$options$brotli = this.options.brotli) !== null && _this$options$brotli !== void 0 && _this$options$brotli.useZlib) {
46
38
  const buffer = await promisify(zlib.brotliCompress)(input);
47
39
  return toArrayBuffer(buffer);
48
40
  }
49
-
50
41
  return this.compressSync(input);
51
42
  }
52
-
53
43
  compressSync(input) {
54
44
  var _this$options$brotli2, _this$options2;
55
-
56
45
  if (!isBrowser && (_this$options$brotli2 = this.options.brotli) !== null && _this$options$brotli2 !== void 0 && _this$options$brotli2.useZlib) {
57
46
  const buffer = zlib.brotliCompressSync(input);
58
47
  return toArrayBuffer(buffer);
59
48
  }
60
-
61
- const brotliOptions = { ...DEFAULT_BROTLI_OPTIONS.brotli,
49
+ const brotliOptions = {
50
+ ...DEFAULT_BROTLI_OPTIONS.brotli,
62
51
  ...((_this$options2 = this.options) === null || _this$options2 === void 0 ? void 0 : _this$options2.brotli)
63
52
  };
64
53
  const inputArray = new Uint8Array(input);
65
-
66
54
  if (!brotli) {
67
55
  throw new Error('brotli compression: brotli module not installed');
68
56
  }
@@ -70,39 +58,31 @@ export class BrotliCompression extends Compression {
70
58
  const outputArray = brotli.compress(inputArray, brotliOptions);
71
59
  return outputArray.buffer;
72
60
  }
73
-
74
61
  async decompress(input) {
75
62
  var _this$options$brotli3;
76
-
77
63
  if (!isBrowser && (_this$options$brotli3 = this.options.brotli) !== null && _this$options$brotli3 !== void 0 && _this$options$brotli3.useZlib) {
78
64
  const buffer = await promisify(zlib.brotliDecompress)(input);
79
65
  return toArrayBuffer(buffer);
80
66
  }
81
-
82
67
  return this.decompressSync(input);
83
68
  }
84
-
85
69
  decompressSync(input) {
86
70
  var _this$options$brotli4, _this$options3;
87
-
88
71
  if (!isBrowser && (_this$options$brotli4 = this.options.brotli) !== null && _this$options$brotli4 !== void 0 && _this$options$brotli4.useZlib) {
89
72
  const buffer = zlib.brotliDecompressSync(input);
90
73
  return toArrayBuffer(buffer);
91
74
  }
92
-
93
- const brotliOptions = { ...DEFAULT_BROTLI_OPTIONS.brotli,
75
+ const brotliOptions = {
76
+ ...DEFAULT_BROTLI_OPTIONS.brotli,
94
77
  ...((_this$options3 = this.options) === null || _this$options3 === void 0 ? void 0 : _this$options3.brotli)
95
78
  };
96
79
  const inputArray = new Uint8Array(input);
97
-
98
80
  if (brotli) {
99
81
  const outputArray = brotli.decompress(inputArray, brotliOptions);
100
82
  return outputArray.buffer;
101
83
  }
102
-
103
84
  const outputArray = BrotliDecode(inputArray, undefined);
104
85
  return outputArray.buffer;
105
86
  }
106
-
107
87
  }
108
88
  //# sourceMappingURL=brotli-compression.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/brotli-compression.ts"],"names":["Compression","isBrowser","toArrayBuffer","BrotliDecode","zlib","promisify","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"],"mappings":"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","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 {promisify} 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 promisify(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 promisify(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"],"file":"brotli-compression.js"}
1
+ {"version":3,"file":"brotli-compression.js","names":["Compression","isBrowser","toArrayBuffer","BrotliDecode","zlib","promisify","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 {promisify} 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 promisify(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 promisify(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,15 +1,12 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
2
  import { concatenateArrayBuffersAsync } from '@loaders.gl/loader-utils';
3
+
3
4
  export class Compression {
4
5
  constructor(options) {
5
6
  _defineProperty(this, "name", void 0);
6
-
7
7
  _defineProperty(this, "extensions", void 0);
8
-
9
8
  _defineProperty(this, "contentEncodings", void 0);
10
-
11
9
  _defineProperty(this, "isSupported", void 0);
12
-
13
10
  this.compressBatches = this.compressBatches.bind(this);
14
11
  this.decompressBatches = this.decompressBatches.bind(this);
15
12
  }
@@ -49,14 +46,11 @@ export class Compression {
49
46
  concatenate(asyncIterator) {
50
47
  return concatenateArrayBuffersAsync(asyncIterator);
51
48
  }
52
-
53
49
  improveError(error) {
54
50
  if (!error.message.includes(this.name)) {
55
51
  error.message = "".concat(this.name, " ").concat(error.message);
56
52
  }
57
-
58
53
  return error;
59
54
  }
60
-
61
55
  }
62
56
  //# sourceMappingURL=compression.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/compression.ts"],"names":["concatenateArrayBuffersAsync","Compression","constructor","options","compressBatches","bind","decompressBatches","preload","compress","input","compressSync","decompress","size","decompressSync","Error","name","asyncIterator","concatenate","improveError","error","message","includes"],"mappings":";AACA,SAAQA,4BAAR,QAA2C,0BAA3C;AASA,OAAO,MAAeC,WAAf,CAA2B;AAMhCC,EAAAA,WAAW,CAACC,OAAD,EAA+B;AAAA;;AAAA;;AAAA;;AAAA;;AACxC,SAAKC,eAAL,GAAuB,KAAKA,eAAL,CAAqBC,IAArB,CAA0B,IAA1B,CAAvB;AACA,SAAKC,iBAAL,GAAyB,KAAKA,iBAAL,CAAuBD,IAAvB,CAA4B,IAA5B,CAAzB;AACD;;AAGY,QAAPE,OAAO,GAAkB;AAC7B;AACD;;AAGa,QAARC,QAAQ,CAACC,KAAD,EAA2C;AACvD,UAAM,KAAKF,OAAL,EAAN;AACA,WAAO,KAAKG,YAAL,CAAkBD,KAAlB,CAAP;AACD;;AAGe,QAAVE,UAAU,CAACF,KAAD,EAAqBG,IAArB,EAA0D;AACxE,UAAM,KAAKL,OAAL,EAAN;AACA,WAAO,KAAKM,cAAL,CAAoBJ,KAApB,EAA2BG,IAA3B,CAAP;AACD;;AAGDF,EAAAA,YAAY,CAACD,KAAD,EAAkC;AAC5C,UAAM,IAAIK,KAAJ,WAAa,KAAKC,IAAlB,sCAAN;AACD;;AAGDF,EAAAA,cAAc,CAACJ,KAAD,EAAqBG,IAArB,EAAiD;AAC7D,UAAM,IAAIE,KAAJ,WAAa,KAAKC,IAAlB,wCAAN;AACD;;AAGqB,SAAfX,eAAe,CACpBY,aADoB,EAEQ;AAE5B,UAAMP,KAAK,GAAG,MAAM,KAAKQ,WAAL,CAAiBD,aAAjB,CAApB;AACA,UAAM,KAAKR,QAAL,CAAcC,KAAd,CAAN;AACD;;AAGuB,SAAjBH,iBAAiB,CACtBU,aADsB,EAEM;AAE5B,UAAMP,KAAK,GAAG,MAAM,KAAKQ,WAAL,CAAiBD,aAAjB,CAApB;AACA,UAAM,KAAKL,UAAL,CAAgBF,KAAhB,CAAN;AACD;;AAISQ,EAAAA,WAAW,CAACD,aAAD,EAAsC;AACzD,WAAOhB,4BAA4B,CAACgB,aAAD,CAAnC;AACD;;AAESE,EAAAA,YAAY,CAACC,KAAD,EAAQ;AAC5B,QAAI,CAACA,KAAK,CAACC,OAAN,CAAcC,QAAd,CAAuB,KAAKN,IAA5B,CAAL,EAAwC;AACtCI,MAAAA,KAAK,CAACC,OAAN,aAAmB,KAAKL,IAAxB,cAAgCI,KAAK,CAACC,OAAtC;AACD;;AACD,WAAOD,KAAP;AACD;;AAnE+B","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"],"file":"compression.js"}
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,144 +1,110 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+
2
3
  import { Compression } from './compression';
3
4
  import { isBrowser, toArrayBuffer } from '@loaders.gl/loader-utils';
4
5
  import pako from 'pako';
5
6
  import zlib from 'zlib';
6
7
  import { promisify } from '@loaders.gl/loader-utils';
7
8
  export class DeflateCompression extends Compression {
8
- constructor(options = {}) {
9
+ constructor() {
10
+ let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
9
11
  super(options);
10
-
11
12
  _defineProperty(this, "name", 'deflate');
12
-
13
13
  _defineProperty(this, "extensions", []);
14
-
15
14
  _defineProperty(this, "contentEncodings", ['deflate']);
16
-
17
15
  _defineProperty(this, "isSupported", true);
18
-
19
16
  _defineProperty(this, "options", void 0);
20
-
21
17
  _defineProperty(this, "_chunks", []);
22
-
23
18
  this.options = options;
24
19
  }
25
-
26
20
  async compress(input) {
27
21
  var _this$options$deflate;
28
-
29
22
  if (!isBrowser && (_this$options$deflate = this.options.deflate) !== null && _this$options$deflate !== void 0 && _this$options$deflate.useZlib) {
30
23
  var _this$options$deflate2;
31
-
32
24
  const buffer = (_this$options$deflate2 = this.options.deflate) !== null && _this$options$deflate2 !== void 0 && _this$options$deflate2.gzip ? await promisify(zlib.gzip)(input) : await promisify(zlib.deflate)(input);
33
25
  return toArrayBuffer(buffer);
34
26
  }
35
-
36
27
  return this.compressSync(input);
37
28
  }
38
-
39
29
  async decompress(input) {
40
30
  var _this$options$deflate3;
41
-
42
31
  if (!isBrowser && (_this$options$deflate3 = this.options.deflate) !== null && _this$options$deflate3 !== void 0 && _this$options$deflate3.useZlib) {
43
32
  var _this$options$deflate4;
44
-
45
33
  const buffer = (_this$options$deflate4 = this.options.deflate) !== null && _this$options$deflate4 !== void 0 && _this$options$deflate4.gzip ? await promisify(zlib.gunzip)(input) : await promisify(zlib.inflate)(input);
46
34
  return toArrayBuffer(buffer);
47
35
  }
48
-
49
36
  return this.decompressSync(input);
50
37
  }
51
-
52
38
  compressSync(input) {
53
39
  var _this$options$deflate5, _this$options;
54
-
55
40
  if (!isBrowser && (_this$options$deflate5 = this.options.deflate) !== null && _this$options$deflate5 !== void 0 && _this$options$deflate5.useZlib) {
56
41
  var _this$options$deflate6;
57
-
58
42
  const buffer = (_this$options$deflate6 = this.options.deflate) !== null && _this$options$deflate6 !== void 0 && _this$options$deflate6.gzip ? zlib.gzipSync(input) : zlib.deflateSync(input);
59
43
  return toArrayBuffer(buffer);
60
44
  }
61
-
62
45
  const pakoOptions = ((_this$options = this.options) === null || _this$options === void 0 ? void 0 : _this$options.deflate) || {};
63
46
  const inputArray = new Uint8Array(input);
64
47
  return pako.deflate(inputArray, pakoOptions).buffer;
65
48
  }
66
-
67
49
  decompressSync(input) {
68
50
  var _this$options$deflate7, _this$options2;
69
-
70
51
  if (!isBrowser && (_this$options$deflate7 = this.options.deflate) !== null && _this$options$deflate7 !== void 0 && _this$options$deflate7.useZlib) {
71
52
  var _this$options$deflate8;
72
-
73
53
  const buffer = (_this$options$deflate8 = this.options.deflate) !== null && _this$options$deflate8 !== void 0 && _this$options$deflate8.gzip ? zlib.gunzipSync(input) : zlib.inflateSync(input);
74
54
  return toArrayBuffer(buffer);
75
55
  }
76
-
77
56
  const pakoOptions = ((_this$options2 = this.options) === null || _this$options2 === void 0 ? void 0 : _this$options2.deflate) || {};
78
57
  const inputArray = new Uint8Array(input);
79
58
  return pako.inflate(inputArray, pakoOptions).buffer;
80
59
  }
81
-
82
60
  async *compressBatches(asyncIterator) {
83
61
  var _this$options3;
84
-
85
62
  const pakoOptions = ((_this$options3 = this.options) === null || _this$options3 === void 0 ? void 0 : _this$options3.deflate) || {};
86
63
  const pakoProcessor = new pako.Deflate(pakoOptions);
87
64
  yield* this.transformBatches(pakoProcessor, asyncIterator);
88
65
  }
89
-
90
66
  async *decompressBatches(asyncIterator) {
91
67
  var _this$options4;
92
-
93
68
  const pakoOptions = ((_this$options4 = this.options) === null || _this$options4 === void 0 ? void 0 : _this$options4.deflate) || {};
94
69
  const pakoProcessor = new pako.Inflate(pakoOptions);
95
70
  yield* this.transformBatches(pakoProcessor, asyncIterator);
96
71
  }
97
-
98
72
  async *transformBatches(pakoProcessor, asyncIterator) {
99
73
  pakoProcessor.onData = this._onData.bind(this);
100
74
  pakoProcessor.onEnd = this._onEnd.bind(this);
101
-
102
75
  for await (const chunk of asyncIterator) {
103
76
  const uint8Array = new Uint8Array(chunk);
104
77
  const ok = pakoProcessor.push(uint8Array, false);
105
-
106
78
  if (!ok) {
107
79
  throw new Error("".concat(this._getError(), "write"));
108
80
  }
109
-
110
81
  const chunks = this._getChunks();
111
-
112
82
  yield* chunks;
113
83
  }
114
84
 
115
85
  const emptyChunk = new Uint8Array(0);
116
86
  const ok = pakoProcessor.push(emptyChunk, true);
117
-
118
- if (!ok) {}
119
-
87
+ if (!ok) {
88
+ }
120
89
  const chunks = this._getChunks();
121
-
122
90
  yield* chunks;
123
91
  }
124
-
125
92
  _onData(chunk) {
126
93
  this._chunks.push(chunk);
127
94
  }
128
-
129
95
  _onEnd(status) {
130
96
  if (status !== 0) {
131
97
  throw new Error(this._getError(status) + this._chunks.length);
132
98
  }
133
99
  }
134
-
135
100
  _getChunks() {
136
101
  const chunks = this._chunks;
137
102
  this._chunks = [];
138
103
  return chunks;
139
104
  }
140
105
 
141
- _getError(code = 0) {
106
+ _getError() {
107
+ let code = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
142
108
  const MESSAGES = {
143
109
  2: 'need dictionary',
144
110
  1: 'stream end',
@@ -152,6 +118,5 @@ export class DeflateCompression extends Compression {
152
118
  };
153
119
  return "".concat(this.name, ": ").concat(MESSAGES[code]);
154
120
  }
155
-
156
121
  }
157
122
  //# sourceMappingURL=deflate-compression.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/deflate-compression.ts"],"names":["Compression","isBrowser","toArrayBuffer","pako","zlib","promisify","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"],"mappings":"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","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 {promisify} 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 promisify(zlib.gzip)(input)\n : await promisify(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 promisify(zlib.gunzip)(input)\n : await promisify(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"],"file":"deflate-compression.js"}
1
+ {"version":3,"file":"deflate-compression.js","names":["Compression","isBrowser","toArrayBuffer","pako","zlib","promisify","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 {promisify} 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 promisify(zlib.gzip)(input)\n : await promisify(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 promisify(zlib.gunzip)(input)\n : await promisify(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,21 +1,19 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+
2
3
  import { DeflateCompression } from './deflate-compression';
3
4
  export class GZipCompression extends DeflateCompression {
4
5
  constructor(options) {
5
- super({ ...options,
6
- deflate: { ...(options === null || options === void 0 ? void 0 : options.gzip),
6
+ super({
7
+ ...options,
8
+ deflate: {
9
+ ...(options === null || options === void 0 ? void 0 : options.gzip),
7
10
  gzip: true
8
11
  }
9
12
  });
10
-
11
13
  _defineProperty(this, "name", 'gzip');
12
-
13
14
  _defineProperty(this, "extensions", ['gz', 'gzip']);
14
-
15
15
  _defineProperty(this, "contentEncodings", ['gzip', 'x-gzip']);
16
-
17
16
  _defineProperty(this, "isSupported", true);
18
17
  }
19
-
20
18
  }
21
19
  //# sourceMappingURL=gzip-compression.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/gzip-compression.ts"],"names":["DeflateCompression","GZipCompression","constructor","options","deflate","gzip"],"mappings":";AAGA,SAAQA,kBAAR,QAAiC,uBAAjC;AAUA,OAAO,MAAMC,eAAN,SAA8BD,kBAA9B,CAAiD;AAMtDE,EAAAA,WAAW,CAACC,OAAD,EAAmC;AAC5C,UAAM,EAAC,GAAGA,OAAJ;AAAaC,MAAAA,OAAO,EAAE,EAAC,IAAGD,OAAH,aAAGA,OAAH,uBAAGA,OAAO,CAAEE,IAAZ,CAAD;AAAmBA,QAAAA,IAAI,EAAE;AAAzB;AAAtB,KAAN;;AAD4C,kCALtB,MAKsB;;AAAA,wCAJxB,CAAC,IAAD,EAAO,MAAP,CAIwB;;AAAA,8CAHlB,CAAC,MAAD,EAAS,QAAT,CAGkB;;AAAA,yCAFvB,IAEuB;AAE7C;;AARqD","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"],"file":"gzip-compression.js"}
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,32 +1,25 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+
2
3
  import { toArrayBuffer } from '@loaders.gl/loader-utils';
3
4
  import { Compression } from './compression';
4
5
  const LZ4_MAGIC_NUMBER = 0x184d2204;
5
6
  let lz4js;
7
+
6
8
  export class LZ4Compression extends Compression {
7
9
  constructor(options) {
8
10
  var _this$options, _this$options$modules;
9
-
10
11
  super(options);
11
-
12
12
  _defineProperty(this, "name", 'lz4');
13
-
14
13
  _defineProperty(this, "extensions", ['lz4']);
15
-
16
14
  _defineProperty(this, "contentEncodings", ['x-lz4']);
17
-
18
15
  _defineProperty(this, "isSupported", true);
19
-
20
16
  _defineProperty(this, "options", void 0);
21
-
22
17
  this.options = options;
23
18
  lz4js = lz4js || ((_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.lz4js);
24
-
25
19
  if (!lz4js) {
26
20
  throw new Error(this.name);
27
21
  }
28
22
  }
29
-
30
23
  compressSync(input) {
31
24
  const inputArray = new Uint8Array(input);
32
25
  return lz4js.compress(inputArray).buffer;
@@ -36,16 +29,13 @@ export class LZ4Compression extends Compression {
36
29
  try {
37
30
  const isMagicNumberExists = this.checkMagicNumber(data);
38
31
  const inputArray = new Uint8Array(data);
39
-
40
32
  if (isMagicNumberExists) {
41
33
  return lz4js.decompress(inputArray, maxSize).buffer;
42
34
  }
43
-
44
35
  if (!maxSize) {
45
36
  const error = new Error('Need to provide maxSize');
46
37
  throw this.improveError(error);
47
38
  }
48
-
49
39
  let uncompressed = new Uint8Array(maxSize);
50
40
  const uncompressedSize = this.decodeBlock(inputArray, uncompressed);
51
41
  uncompressed = uncompressed.slice(0, uncompressedSize);
@@ -59,21 +49,18 @@ export class LZ4Compression extends Compression {
59
49
  startIndex = startIndex || 0;
60
50
  endIndex = endIndex || data.length - startIndex;
61
51
  let uncompressedSize = 0;
62
-
63
52
  for (let index = startIndex; index < endIndex;) {
64
53
  const token = data[index++];
65
- let literalsLength = token >> 4;
66
54
 
55
+ let literalsLength = token >> 4;
67
56
  if (literalsLength > 0) {
68
57
  let length = literalsLength + 240;
69
-
70
58
  while (length === 255) {
71
59
  length = data[index++];
72
60
  literalsLength += length;
73
61
  }
74
62
 
75
63
  const end = index + literalsLength;
76
-
77
64
  while (index < end) {
78
65
  output[uncompressedSize++] = data[index++];
79
66
  }
@@ -91,7 +78,6 @@ export class LZ4Compression extends Compression {
91
78
 
92
79
  let matchLength = token & 0xf;
93
80
  let length = matchLength + 240;
94
-
95
81
  while (length === 255) {
96
82
  length = data[index++];
97
83
  matchLength += length;
@@ -104,7 +90,6 @@ export class LZ4Compression extends Compression {
104
90
  output[uncompressedSize++] = output[pos++];
105
91
  }
106
92
  }
107
-
108
93
  return uncompressedSize;
109
94
  }
110
95
 
@@ -112,6 +97,5 @@ export class LZ4Compression extends Compression {
112
97
  const magic = new Uint32Array(data.slice(0, 4));
113
98
  return magic[0] === LZ4_MAGIC_NUMBER;
114
99
  }
115
-
116
100
  }
117
101
  //# sourceMappingURL=lz4-compression.js.map