@loaders.gl/compression 3.1.0-alpha.5 → 3.1.0-beta.4

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 (73) hide show
  1. package/dist/brotli/decode.d.ts +5 -0
  2. package/dist/brotli/decode.d.ts.map +1 -0
  3. package/dist/brotli/decode.js +2346 -0
  4. package/dist/bundle.d.ts +1 -0
  5. package/dist/bundle.d.ts.map +1 -0
  6. package/dist/bundle.js +5 -0
  7. package/dist/compression-worker.d.ts +1 -0
  8. package/dist/compression-worker.d.ts.map +1 -0
  9. package/dist/compression-worker.js +4 -13
  10. package/dist/compression-worker.js.map +7 -1
  11. package/dist/dist.min.js +9 -2
  12. package/dist/dist.min.js.map +7 -1
  13. package/dist/es5/brotli/decode.js +2220 -0
  14. package/dist/es5/brotli/decode.js.map +1 -0
  15. package/dist/es5/compression-worker.js +1 -1
  16. package/dist/es5/compression-worker.js.map +1 -1
  17. package/dist/es5/lib/brotli-compression.js +17 -2
  18. package/dist/es5/lib/brotli-compression.js.map +1 -1
  19. package/dist/es5/lib/zstd-compression.js +1 -1
  20. package/dist/es5/lib/zstd-compression.js.map +1 -1
  21. package/dist/es5/workers/worker.js +1 -12
  22. package/dist/es5/workers/worker.js.map +1 -1
  23. package/dist/esm/brotli/decode.js +2213 -0
  24. package/dist/esm/brotli/decode.js.map +1 -0
  25. package/dist/esm/compression-worker.js +1 -1
  26. package/dist/esm/compression-worker.js.map +1 -1
  27. package/dist/esm/lib/brotli-compression.js +16 -2
  28. package/dist/esm/lib/brotli-compression.js.map +1 -1
  29. package/dist/esm/lib/zstd-compression.js +1 -1
  30. package/dist/esm/lib/zstd-compression.js.map +1 -1
  31. package/dist/esm/workers/worker.js +1 -10
  32. package/dist/esm/workers/worker.js.map +1 -1
  33. package/dist/index.d.ts +1 -0
  34. package/dist/index.d.ts.map +1 -0
  35. package/dist/index.js +24 -0
  36. package/dist/lib/brotli-compression.d.ts +1 -0
  37. package/dist/lib/brotli-compression.d.ts.map +1 -0
  38. package/dist/lib/brotli-compression.js +91 -0
  39. package/dist/lib/compression.d.ts +1 -0
  40. package/dist/lib/compression.d.ts.map +1 -0
  41. package/dist/lib/compression.js +57 -0
  42. package/dist/lib/deflate-compression.d.ts +1 -0
  43. package/dist/lib/deflate-compression.d.ts.map +1 -0
  44. package/dist/lib/deflate-compression.js +135 -0
  45. package/dist/lib/gzip-compression.d.ts +1 -0
  46. package/dist/lib/gzip-compression.d.ts.map +1 -0
  47. package/dist/lib/gzip-compression.js +17 -0
  48. package/dist/lib/lz4-compression.d.ts +1 -0
  49. package/dist/lib/lz4-compression.d.ts.map +1 -0
  50. package/dist/lib/lz4-compression.js +141 -0
  51. package/dist/lib/lzo-compression.d.ts +1 -0
  52. package/dist/lib/lzo-compression.d.ts.map +1 -0
  53. package/dist/lib/lzo-compression.js +58 -0
  54. package/dist/lib/no-compression.d.ts +1 -0
  55. package/dist/lib/no-compression.d.ts.map +1 -0
  56. package/dist/lib/no-compression.js +30 -0
  57. package/dist/lib/snappy-compression.d.ts +1 -0
  58. package/dist/lib/snappy-compression.d.ts.map +1 -0
  59. package/dist/lib/snappy-compression.js +27 -0
  60. package/dist/lib/zstd-compression.d.ts +1 -0
  61. package/dist/lib/zstd-compression.d.ts.map +1 -0
  62. package/dist/lib/zstd-compression.js +44 -0
  63. package/dist/types.d.ts +1 -0
  64. package/dist/types.d.ts.map +1 -0
  65. package/dist/types.js +2 -0
  66. package/dist/workers/worker.d.ts +1 -0
  67. package/dist/workers/worker.d.ts.map +1 -0
  68. package/dist/workers/worker.js +77 -0
  69. package/package.json +6 -7
  70. package/src/brotli/decode.ts +2441 -0
  71. package/src/lib/brotli-compression.ts +17 -3
  72. package/src/lib/zstd-compression.ts +1 -1
  73. package/src/workers/worker.ts +10 -10
@@ -8,7 +8,7 @@ exports._typecheckCompressionWorker = exports.CompressionWorker = void 0;
8
8
 
9
9
  var _workerUtils = require("@loaders.gl/worker-utils");
10
10
 
11
- const VERSION = typeof "3.1.0-alpha.5" !== 'undefined' ? "3.1.0-alpha.5" : 'latest';
11
+ const VERSION = typeof "3.1.0-beta.4" !== 'undefined' ? "3.1.0-beta.4" : 'latest';
12
12
  const CompressionWorker = {
13
13
  id: 'compression',
14
14
  name: 'compression',
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/compression-worker.ts"],"names":["VERSION","CompressionWorker","id","name","module","version","options","compressOnWorker","data","_typecheckCompressionWorker"],"mappings":";;;;;;;;AACA;;AAIA,MAAMA,OAAO,GAAG,2BAAuB,WAAvB,qBAAmD,QAAnE;AAUO,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;;;AAWA,SAASC,gBAAT,CACLC,IADK,EAELF,OAFK,EAGiB;AACtB,SAAO,kCAAgBL,iBAAhB,EAAmCO,IAAnC,EAAyCF,OAAzC,CAAP;AACD;;AAEM,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,"sources":["../../src/compression-worker.ts"],"names":["VERSION","CompressionWorker","id","name","module","version","options","compressOnWorker","data","_typecheckCompressionWorker"],"mappings":";;;;;;;;AACA;;AAIA,MAAMA,OAAO,GAAG,0BAAuB,WAAvB,oBAAmD,QAAnE;AAUO,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;;;AAWA,SAASC,gBAAT,CACLC,IADK,EAELF,OAFK,EAGiB;AACtB,SAAO,kCAAgBL,iBAAhB,EAAmCO,IAAnC,EAAyCF,OAAzC,CAAP;AACD;;AAEM,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"}
@@ -13,6 +13,8 @@ var _compression = require("./compression");
13
13
 
14
14
  var _loaderUtils = require("@loaders.gl/loader-utils");
15
15
 
16
+ var _decode = require("../brotli/decode");
17
+
16
18
  var _zlib = _interopRequireDefault(require("zlib"));
17
19
 
18
20
  const DEFAULT_BROTLI_OPTIONS = {
@@ -69,7 +71,13 @@ class BrotliCompression extends _compression.Compression {
69
71
  ...((_this$options2 = this.options) === null || _this$options2 === void 0 ? void 0 : _this$options2.brotli)
70
72
  };
71
73
  const inputArray = new Uint8Array(input);
72
- return brotli.compress(inputArray, brotliOptions);
74
+
75
+ if (!brotli) {
76
+ throw new Error('brotli compression: brotli module not installed');
77
+ }
78
+
79
+ const outputArray = brotli.compress(inputArray, brotliOptions);
80
+ return outputArray.buffer;
73
81
  }
74
82
 
75
83
  async decompress(input) {
@@ -96,7 +104,14 @@ class BrotliCompression extends _compression.Compression {
96
104
  ...((_this$options3 = this.options) === null || _this$options3 === void 0 ? void 0 : _this$options3.brotli)
97
105
  };
98
106
  const inputArray = new Uint8Array(input);
99
- return brotli.decompress(inputArray, brotliOptions);
107
+
108
+ if (brotli) {
109
+ const outputArray = brotli.decompress(inputArray, brotliOptions);
110
+ return outputArray.buffer;
111
+ }
112
+
113
+ const outputArray = (0, _decode.BrotliDecode)(inputArray, undefined);
114
+ return outputArray.buffer;
100
115
  }
101
116
 
102
117
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/brotli-compression.ts"],"names":["DEFAULT_BROTLI_OPTIONS","brotli","mode","quality","lgwin","BrotliCompression","Compression","constructor","options","preload","modules","Error","name","compress","input","isBrowser","useZlib","buffer","zlib","brotliCompress","compressSync","brotliCompressSync","brotliOptions","inputArray","Uint8Array","decompress","brotliDecompress","decompressSync","brotliDecompressSync"],"mappings":";;;;;;;;;;;AAEA;;AACA;;AAGA;;AAYA,MAAMA,sBAAsB,GAAG;AAC7BC,EAAAA,MAAM,EAAE;AACNC,IAAAA,IAAI,EAAE,CADA;AAENC,IAAAA,OAAO,EAAE,CAFH;AAGNC,IAAAA,KAAK,EAAE;AAHD;AADqB,CAA/B;AAQA,IAAIH,MAAJ;;AAKO,MAAMI,iBAAN,SAAgCC,wBAAhC,CAA4C;AAOjDC,EAAAA,WAAW,CAACC,OAAD,EAAoC;AAC7C,UAAMA,OAAN;AAD6C,gDANvB,QAMuB;AAAA,sDALzB,CAAC,IAAD,CAKyB;AAAA,4DAJnB,CAAC,IAAD,CAImB;AAAA,uDAHxB,IAGwB;AAAA;AAE7C,SAAKA,OAAL,GAAeA,OAAf;AACD;;AAMY,QAAPC,OAAO,GAAkB;AAAA;;AAC7BR,IAAAA,MAAM,GAAGA,MAAM,sBAAI,KAAKO,OAAT,2EAAI,cAAcE,OAAlB,0DAAI,sBAAuBT,MAA3B,CAAf;;AACA,QAAI,CAACA,MAAL,EAAa;AACX,YAAM,IAAIU,KAAJ,CAAU,KAAKC,IAAf,CAAN;AACD;AACF;;AAEa,QAARC,QAAQ,CAACC,KAAD,EAA2C;AAAA;;AAEvD,QAAI,CAACC,sBAAD,4BAAc,KAAKP,OAAL,CAAaP,MAA3B,iDAAc,qBAAqBe,OAAvC,EAAgD;AAC9C,YAAMC,MAAM,GAAG,MAAM,4BAAUC,cAAKC,cAAf,EAA+BL,KAA/B,CAArB;AACA,aAAO,gCAAcG,MAAd,CAAP;AACD;;AACD,WAAO,KAAKG,YAAL,CAAkBN,KAAlB,CAAP;AACD;;AAEDM,EAAAA,YAAY,CAACN,KAAD,EAAkC;AAAA;;AAE5C,QAAI,CAACC,sBAAD,6BAAc,KAAKP,OAAL,CAAaP,MAA3B,kDAAc,sBAAqBe,OAAvC,EAAgD;AAC9C,YAAMC,MAAM,GAAGC,cAAKG,kBAAL,CAAwBP,KAAxB,CAAf;;AACA,aAAO,gCAAcG,MAAd,CAAP;AACD;;AACD,UAAMK,aAAa,GAAG,EAAC,GAAGtB,sBAAsB,CAACC,MAA3B;AAAmC,4BAAG,KAAKO,OAAR,mDAAG,eAAcP,MAAjB;AAAnC,KAAtB;AACA,UAAMsB,UAAU,GAAG,IAAIC,UAAJ,CAAeV,KAAf,CAAnB;AAEA,WAAOb,MAAM,CAACY,QAAP,CAAgBU,UAAhB,EAA4BD,aAA5B,CAAP;AACD;;AAEe,QAAVG,UAAU,CAACX,KAAD,EAA2C;AAAA;;AAEzD,QAAI,CAACC,sBAAD,6BAAc,KAAKP,OAAL,CAAaP,MAA3B,kDAAc,sBAAqBe,OAAvC,EAAgD;AAC9C,YAAMC,MAAM,GAAG,MAAM,4BAAUC,cAAKQ,gBAAf,EAAiCZ,KAAjC,CAArB;AACA,aAAO,gCAAcG,MAAd,CAAP;AACD;;AACD,WAAO,KAAKU,cAAL,CAAoBb,KAApB,CAAP;AACD;;AAEDa,EAAAA,cAAc,CAACb,KAAD,EAAkC;AAAA;;AAE9C,QAAI,CAACC,sBAAD,6BAAc,KAAKP,OAAL,CAAaP,MAA3B,kDAAc,sBAAqBe,OAAvC,EAAgD;AAC9C,YAAMC,MAAM,GAAGC,cAAKU,oBAAL,CAA0Bd,KAA1B,CAAf;;AACA,aAAO,gCAAcG,MAAd,CAAP;AACD;;AACD,UAAMK,aAAa,GAAG,EAAC,GAAGtB,sBAAsB,CAACC,MAA3B;AAAmC,4BAAG,KAAKO,OAAR,mDAAG,eAAcP,MAAjB;AAAnC,KAAtB;AACA,UAAMsB,UAAU,GAAG,IAAIC,UAAJ,CAAeV,KAAf,CAAnB;AAEA,WAAOb,MAAM,CAACwB,UAAP,CAAkBF,UAAlB,EAA8BD,aAA9B,CAAP;AACD;;AA/DgD","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 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 throw new Error(this.name);\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 // @ts-ignore brotli types state that only Buffers are accepted...\n return brotli.compress(inputArray, brotliOptions);\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 const brotliOptions = {...DEFAULT_BROTLI_OPTIONS.brotli, ...this.options?.brotli};\n const inputArray = new Uint8Array(input);\n // @ts-ignore brotli types state that only Buffers are accepted...\n return brotli.decompress(inputArray, brotliOptions);\n }\n}\n"],"file":"brotli-compression.js"}
1
+ {"version":3,"sources":["../../../src/lib/brotli-compression.ts"],"names":["DEFAULT_BROTLI_OPTIONS","brotli","mode","quality","lgwin","BrotliCompression","Compression","constructor","options","preload","modules","Error","name","compress","input","isBrowser","useZlib","buffer","zlib","brotliCompress","compressSync","brotliCompressSync","brotliOptions","inputArray","Uint8Array","outputArray","decompress","brotliDecompress","decompressSync","brotliDecompressSync","undefined"],"mappings":";;;;;;;;;;;AAEA;;AACA;;AAGA;;AACA;;AAYA,MAAMA,sBAAsB,GAAG;AAC7BC,EAAAA,MAAM,EAAE;AACNC,IAAAA,IAAI,EAAE,CADA;AAENC,IAAAA,OAAO,EAAE,CAFH;AAGNC,IAAAA,KAAK,EAAE;AAHD;AADqB,CAA/B;AAQA,IAAIH,MAAJ;;AAKO,MAAMI,iBAAN,SAAgCC,wBAAhC,CAA4C;AAOjDC,EAAAA,WAAW,CAACC,OAAD,EAAoC;AAC7C,UAAMA,OAAN;AAD6C,gDANvB,QAMuB;AAAA,sDALzB,CAAC,IAAD,CAKyB;AAAA,4DAJnB,CAAC,IAAD,CAImB;AAAA,uDAHxB,IAGwB;AAAA;AAE7C,SAAKA,OAAL,GAAeA,OAAf;AACD;;AAMY,QAAPC,OAAO,GAAkB;AAAA;;AAC7BR,IAAAA,MAAM,GAAGA,MAAM,sBAAI,KAAKO,OAAT,2EAAI,cAAcE,OAAlB,0DAAI,sBAAuBT,MAA3B,CAAf;;AACA,QAAI,CAACA,MAAL,EAAa;AACX,YAAM,IAAIU,KAAJ,CAAU,KAAKC,IAAf,CAAN;AACD;AACF;;AAEa,QAARC,QAAQ,CAACC,KAAD,EAA2C;AAAA;;AAEvD,QAAI,CAACC,sBAAD,4BAAc,KAAKP,OAAL,CAAaP,MAA3B,iDAAc,qBAAqBe,OAAvC,EAAgD;AAC9C,YAAMC,MAAM,GAAG,MAAM,4BAAUC,cAAKC,cAAf,EAA+BL,KAA/B,CAArB;AACA,aAAO,gCAAcG,MAAd,CAAP;AACD;;AACD,WAAO,KAAKG,YAAL,CAAkBN,KAAlB,CAAP;AACD;;AAEDM,EAAAA,YAAY,CAACN,KAAD,EAAkC;AAAA;;AAE5C,QAAI,CAACC,sBAAD,6BAAc,KAAKP,OAAL,CAAaP,MAA3B,kDAAc,sBAAqBe,OAAvC,EAAgD;AAC9C,YAAMC,MAAM,GAAGC,cAAKG,kBAAL,CAAwBP,KAAxB,CAAf;;AACA,aAAO,gCAAcG,MAAd,CAAP;AACD;;AACD,UAAMK,aAAa,GAAG,EAAC,GAAGtB,sBAAsB,CAACC,MAA3B;AAAmC,4BAAG,KAAKO,OAAR,mDAAG,eAAcP,MAAjB;AAAnC,KAAtB;AACA,UAAMsB,UAAU,GAAG,IAAIC,UAAJ,CAAeV,KAAf,CAAnB;;AAEA,QAAI,CAACb,MAAL,EAAa;AACX,YAAM,IAAIU,KAAJ,CAAU,iDAAV,CAAN;AACD;;AAGD,UAAMc,WAAW,GAAGxB,MAAM,CAACY,QAAP,CAAgBU,UAAhB,EAA4BD,aAA5B,CAApB;AACA,WAAOG,WAAW,CAACR,MAAnB;AACD;;AAEe,QAAVS,UAAU,CAACZ,KAAD,EAA2C;AAAA;;AAEzD,QAAI,CAACC,sBAAD,6BAAc,KAAKP,OAAL,CAAaP,MAA3B,kDAAc,sBAAqBe,OAAvC,EAAgD;AAC9C,YAAMC,MAAM,GAAG,MAAM,4BAAUC,cAAKS,gBAAf,EAAiCb,KAAjC,CAArB;AACA,aAAO,gCAAcG,MAAd,CAAP;AACD;;AACD,WAAO,KAAKW,cAAL,CAAoBd,KAApB,CAAP;AACD;;AAEDc,EAAAA,cAAc,CAACd,KAAD,EAAkC;AAAA;;AAE9C,QAAI,CAACC,sBAAD,6BAAc,KAAKP,OAAL,CAAaP,MAA3B,kDAAc,sBAAqBe,OAAvC,EAAgD;AAC9C,YAAMC,MAAM,GAAGC,cAAKW,oBAAL,CAA0Bf,KAA1B,CAAf;;AACA,aAAO,gCAAcG,MAAd,CAAP;AACD;;AAED,UAAMK,aAAa,GAAG,EAAC,GAAGtB,sBAAsB,CAACC,MAA3B;AAAmC,4BAAG,KAAKO,OAAR,mDAAG,eAAcP,MAAjB;AAAnC,KAAtB;AACA,UAAMsB,UAAU,GAAG,IAAIC,UAAJ,CAAeV,KAAf,CAAnB;;AAEA,QAAIb,MAAJ,EAAY;AAEV,YAAMwB,WAAW,GAAGxB,MAAM,CAACyB,UAAP,CAAkBH,UAAlB,EAA8BD,aAA9B,CAApB;AACA,aAAOG,WAAW,CAACR,MAAnB;AACD;;AACD,UAAMQ,WAAW,GAAG,0BAAaF,UAAb,EAAyBO,SAAzB,CAApB;AACA,WAAOL,WAAW,CAACR,MAAnB;AACD;;AA5EgD","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 throw new Error(this.name);\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"}
@@ -28,7 +28,7 @@ class ZstdCompression extends _compression.Compression {
28
28
  ZstdCodec = (_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['zstd-codec'];
29
29
 
30
30
  if (!ZstdCodec) {
31
- throw new Error(this.name);
31
+ console.warn("".concat(this.name, " library not installed"));
32
32
  }
33
33
  }
34
34
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/zstd-compression.ts"],"names":["ZstdCodec","zstd","ZstdCompression","Compression","constructor","options","modules","Error","name","preload","Promise","resolve","run","compressSync","input","simpleZstd","Simple","inputArray","Uint8Array","compress","buffer","decompressSync","decompress"],"mappings":";;;;;;;;;;;AAEA;;AAGA,IAAIA,SAAJ;AACA,IAAIC,IAAJ;;AAKO,MAAMC,eAAN,SAA8BC,wBAA9B,CAA0C;AAW/CC,EAAAA,WAAW,CAACC,OAAD,EAA8B;AAAA;;AACvC,UAAMA,OAAN;AADuC,gDAVjB,MAUiB;AAAA,sDATnB,EASmB;AAAA,4DARb,EAQa;AAAA,uDAPlB,IAOkB;AAAA;AAEvC,SAAKA,OAAL,GAAeA,OAAf;AAEAL,IAAAA,SAAS,oBAAG,KAAKK,OAAR,2EAAG,cAAcC,OAAjB,0DAAG,sBAAwB,YAAxB,CAAZ;;AACA,QAAI,CAACN,SAAL,EAAgB;AACd,YAAM,IAAIO,KAAJ,CAAU,KAAKC,IAAf,CAAN;AACD;AACF;;AAEY,QAAPC,OAAO,GAAkB;AAC7BR,IAAAA,IAAI,GAAGA,IAAI,KAAK,MAAM,IAAIS,OAAJ,CAAaC,OAAD,IAAaX,SAAS,CAACY,GAAV,CAAeX,IAAD,IAAUU,OAAO,CAACV,IAAD,CAA/B,CAAzB,CAAX,CAAX;AACD;;AAEDY,EAAAA,YAAY,CAACC,KAAD,EAAkC;AAC5C,UAAMC,UAAU,GAAG,IAAId,IAAI,CAACe,MAAT,EAAnB;AACA,UAAMC,UAAU,GAAG,IAAIC,UAAJ,CAAeJ,KAAf,CAAnB;AACA,WAAOC,UAAU,CAACI,QAAX,CAAoBF,UAApB,EAAgCG,MAAvC;AACD;;AAEDC,EAAAA,cAAc,CAACP,KAAD,EAAkC;AAC9C,UAAMC,UAAU,GAAG,IAAId,IAAI,CAACe,MAAT,EAAnB;AAGA,UAAMC,UAAU,GAAG,IAAIC,UAAJ,CAAeJ,KAAf,CAAnB;AACA,WAAOC,UAAU,CAACO,UAAX,CAAsBL,UAAtB,EAAkCG,MAAzC;AACD;;AArC8C","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 throw new Error(this.name);\n }\n }\n\n async preload(): Promise<void> {\n zstd = zstd || (await new Promise((resolve) => ZstdCodec.run((zstd) => resolve(zstd))));\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"],"file":"zstd-compression.js"}
1
+ {"version":3,"sources":["../../../src/lib/zstd-compression.ts"],"names":["ZstdCodec","zstd","ZstdCompression","Compression","constructor","options","modules","console","warn","name","preload","Promise","resolve","run","compressSync","input","simpleZstd","Simple","inputArray","Uint8Array","compress","buffer","decompressSync","decompress"],"mappings":";;;;;;;;;;;AAEA;;AAGA,IAAIA,SAAJ;AACA,IAAIC,IAAJ;;AAKO,MAAMC,eAAN,SAA8BC,wBAA9B,CAA0C;AAW/CC,EAAAA,WAAW,CAACC,OAAD,EAA8B;AAAA;;AACvC,UAAMA,OAAN;AADuC,gDAVjB,MAUiB;AAAA,sDATnB,EASmB;AAAA,4DARb,EAQa;AAAA,uDAPlB,IAOkB;AAAA;AAEvC,SAAKA,OAAL,GAAeA,OAAf;AAEAL,IAAAA,SAAS,oBAAG,KAAKK,OAAR,2EAAG,cAAcC,OAAjB,0DAAG,sBAAwB,YAAxB,CAAZ;;AACA,QAAI,CAACN,SAAL,EAAgB;AACdO,MAAAA,OAAO,CAACC,IAAR,WAAgB,KAAKC,IAArB;AACD;AACF;;AAEY,QAAPC,OAAO,GAAkB;AAC7BT,IAAAA,IAAI,GAAGA,IAAI,KAAK,MAAM,IAAIU,OAAJ,CAAaC,OAAD,IAAaZ,SAAS,CAACa,GAAV,CAAeZ,IAAD,IAAUW,OAAO,CAACX,IAAD,CAA/B,CAAzB,CAAX,CAAX;AACD;;AAEDa,EAAAA,YAAY,CAACC,KAAD,EAAkC;AAC5C,UAAMC,UAAU,GAAG,IAAIf,IAAI,CAACgB,MAAT,EAAnB;AACA,UAAMC,UAAU,GAAG,IAAIC,UAAJ,CAAeJ,KAAf,CAAnB;AACA,WAAOC,UAAU,CAACI,QAAX,CAAoBF,UAApB,EAAgCG,MAAvC;AACD;;AAEDC,EAAAA,cAAc,CAACP,KAAD,EAAkC;AAC9C,UAAMC,UAAU,GAAG,IAAIf,IAAI,CAACgB,MAAT,EAAnB;AAGA,UAAMC,UAAU,GAAG,IAAIC,UAAJ,CAAeJ,KAAf,CAAnB;AACA,WAAOC,UAAU,CAACO,UAAX,CAAsBL,UAAtB,EAAkCG,MAAzC;AACD;;AArC8C","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 console.warn(`${this.name} library not installed`);\n }\n }\n\n async preload(): Promise<void> {\n zstd = zstd || (await new Promise((resolve) => ZstdCodec.run((zstd) => resolve(zstd))));\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"],"file":"zstd-compression.js"}
@@ -18,21 +18,10 @@ var _snappyCompression = require("../lib/snappy-compression");
18
18
 
19
19
  var _zstdCompression = require("../lib/zstd-compression");
20
20
 
21
- var _decompress = _interopRequireDefault(require("brotli/decompress"));
22
-
23
21
  var _lz4js = _interopRequireDefault(require("lz4js"));
24
22
 
25
- var _zstdCodec = require("zstd-codec");
26
-
27
23
  const modules = {
28
- brotli: {
29
- decompress: _decompress.default,
30
- compress: () => {
31
- throw new Error('brotli compress');
32
- }
33
- },
34
- lz4js: _lz4js.default,
35
- 'zstd-codec': _zstdCodec.ZstdCodec
24
+ lz4js: _lz4js.default
36
25
  };
37
26
  const COMPRESSIONS = [new _noCompression.NoCompression({
38
27
  modules
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/workers/worker.ts"],"names":["modules","brotli","decompress","brotliDecompress","compress","Error","lz4js","ZstdCodec","COMPRESSIONS","NoCompression","BrotliCompression","DeflateCompression","GZipCompression","LZ4Compression","SnappyCompression","ZstdCompression","data","options","operation","getOperation","String","compression","getCompression","name","Compression","find","compression_"],"mappings":";;;;AAAA;;AAGA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AAKA;;AACA;;AAEA;;AAGA,MAAMA,OAAO,GAAG;AAEdC,EAAAA,MAAM,EAAE;AACNC,IAAAA,UAAU,EAAEC,mBADN;AAENC,IAAAA,QAAQ,EAAE,MAAM;AACd,YAAM,IAAIC,KAAJ,CAAU,iBAAV,CAAN;AACD;AAJK,GAFM;AAQdC,EAAAA,KAAK,EAALA,cARc;AAUd,gBAAcC;AAVA,CAAhB;AAcA,MAAMC,YAAY,GAAG,CACnB,IAAIC,4BAAJ,CAAkB;AAACT,EAAAA;AAAD,CAAlB,CADmB,EAEnB,IAAIU,oCAAJ,CAAsB;AAACV,EAAAA;AAAD,CAAtB,CAFmB,EAGnB,IAAIW,sCAAJ,CAAuB;AAACX,EAAAA;AAAD,CAAvB,CAHmB,EAInB,IAAIY,gCAAJ,CAAoB;AAACZ,EAAAA;AAAD,CAApB,CAJmB,EAMnB,IAAIa,8BAAJ,CAAmB;AAACb,EAAAA;AAAD,CAAnB,CANmB,EAOnB,IAAIc,oCAAJ,CAAsB;AAACd,EAAAA;AAAD,CAAtB,CAPmB,EAQnB,IAAIe,gCAAJ,CAAoB;AAACf,EAAAA;AAAD,CAApB,CARmB,CAArB;AAWA,+BAAa,OAAOgB,IAAP,EAAaC,OAAO,GAAG,EAAvB,KAA8B;AACzC,QAAMC,SAAS,GAAGC,YAAY,CAACC,MAAM,CAACH,OAAD,aAACA,OAAD,uBAACA,OAAO,CAAEC,SAAV,CAAP,CAA9B;AACA,QAAMG,WAAW,GAAGC,cAAc,CAACF,MAAM,CAACH,OAAD,aAACA,OAAD,uBAACA,OAAO,CAAEI,WAAV,CAAP,CAAlC;;AAGA,UAAQH,SAAR;AACE,SAAK,UAAL;AACE,aAAO,MAAMG,WAAW,CAACjB,QAAZ,CAAqBY,IAArB,CAAb;;AACF,SAAK,YAAL;AACE,aAAO,MAAMK,WAAW,CAACnB,UAAZ,CAAuBc,IAAvB,CAAb;;AACF;AACE,YAAM,IAAIX,KAAJ,CAAU,gBAAV,CAAN;AANJ;AAQD,CAbD;;AAeA,SAASc,YAAT,CAAsBD,SAAtB,EAAoE;AAClE,UAAQA,SAAR;AACE,SAAK,UAAL;AACA,SAAK,SAAL;AACE,aAAO,UAAP;;AACF,SAAK,YAAL;AACA,SAAK,SAAL;AACE,aAAO,YAAP;;AACF;AACE,YAAM,IAAIb,KAAJ,0DAC8Ca,SAD9C,2CAAN;AARJ;AAYD;;AAED,SAASI,cAAT,CAAwBC,IAAxB,EAAsC;AACpC,QAAMC,WAAW,GAAGhB,YAAY,CAACiB,IAAb,CAAmBC,YAAD,IAAkBH,IAAI,KAAKG,YAAY,CAACH,IAA1D,CAApB;;AACA,MAAI,CAACC,WAAL,EAAkB;AAChB,UAAM,IAAInB,KAAJ,4DAA8DkB,IAA9D,EAAN;AACD;;AACD,SAAOC,WAAP;AACD","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\nimport brotliDecompress from 'brotli/decompress';\nimport lz4js from 'lz4js';\n// import lzo from 'lzo';\nimport {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"],"file":"worker.js"}
1
+ {"version":3,"sources":["../../../src/workers/worker.ts"],"names":["modules","lz4js","COMPRESSIONS","NoCompression","BrotliCompression","DeflateCompression","GZipCompression","LZ4Compression","SnappyCompression","ZstdCompression","data","options","operation","getOperation","String","compression","getCompression","compress","decompress","Error","name","Compression","find","compression_"],"mappings":";;;;AAAA;;AAGA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AAMA;;AAKA,MAAMA,OAAO,GAAG;AAQdC,EAAAA,KAAK,EAALA;AARc,CAAhB;AAcA,MAAMC,YAAY,GAAG,CACnB,IAAIC,4BAAJ,CAAkB;AAACH,EAAAA;AAAD,CAAlB,CADmB,EAEnB,IAAII,oCAAJ,CAAsB;AAACJ,EAAAA;AAAD,CAAtB,CAFmB,EAGnB,IAAIK,sCAAJ,CAAuB;AAACL,EAAAA;AAAD,CAAvB,CAHmB,EAInB,IAAIM,gCAAJ,CAAoB;AAACN,EAAAA;AAAD,CAApB,CAJmB,EAMnB,IAAIO,8BAAJ,CAAmB;AAACP,EAAAA;AAAD,CAAnB,CANmB,EAOnB,IAAIQ,oCAAJ,CAAsB;AAACR,EAAAA;AAAD,CAAtB,CAPmB,EAQnB,IAAIS,gCAAJ,CAAoB;AAACT,EAAAA;AAAD,CAApB,CARmB,CAArB;AAWA,+BAAa,OAAOU,IAAP,EAAaC,OAAO,GAAG,EAAvB,KAA8B;AACzC,QAAMC,SAAS,GAAGC,YAAY,CAACC,MAAM,CAACH,OAAD,aAACA,OAAD,uBAACA,OAAO,CAAEC,SAAV,CAAP,CAA9B;AACA,QAAMG,WAAW,GAAGC,cAAc,CAACF,MAAM,CAACH,OAAD,aAACA,OAAD,uBAACA,OAAO,CAAEI,WAAV,CAAP,CAAlC;;AAGA,UAAQH,SAAR;AACE,SAAK,UAAL;AACE,aAAO,MAAMG,WAAW,CAACE,QAAZ,CAAqBP,IAArB,CAAb;;AACF,SAAK,YAAL;AACE,aAAO,MAAMK,WAAW,CAACG,UAAZ,CAAuBR,IAAvB,CAAb;;AACF;AACE,YAAM,IAAIS,KAAJ,CAAU,gBAAV,CAAN;AANJ;AAQD,CAbD;;AAeA,SAASN,YAAT,CAAsBD,SAAtB,EAAoE;AAClE,UAAQA,SAAR;AACE,SAAK,UAAL;AACA,SAAK,SAAL;AACE,aAAO,UAAP;;AACF,SAAK,YAAL;AACA,SAAK,SAAL;AACE,aAAO,YAAP;;AACF;AACE,YAAM,IAAIO,KAAJ,0DAC8CP,SAD9C,2CAAN;AARJ;AAYD;;AAED,SAASI,cAAT,CAAwBI,IAAxB,EAAsC;AACpC,QAAMC,WAAW,GAAGnB,YAAY,CAACoB,IAAb,CAAmBC,YAAD,IAAkBH,IAAI,KAAKG,YAAY,CAACH,IAA1D,CAApB;;AACA,MAAI,CAACC,WAAL,EAAkB;AAChB,UAAM,IAAIF,KAAJ,4DAA8DC,IAA9D,EAAN;AACD;;AACD,SAAOC,WAAP;AACD","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"],"file":"worker.js"}