@loaders.gl/compression 3.0.10 → 3.0.14

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.
package/dist/es5/index.js CHANGED
@@ -77,7 +77,7 @@ var _brotliCompression = require("./lib/brotli-compression");
77
77
 
78
78
  var _lzoCompression = require("./lib/lzo-compression");
79
79
 
80
- var VERSION = typeof "3.0.10" !== 'undefined' ? "3.0.10" : 'latest';
80
+ var VERSION = typeof "3.0.14" !== 'undefined' ? "3.0.14" : 'latest';
81
81
  var CompressionWorker = {
82
82
  id: 'compression',
83
83
  name: 'compression',
@@ -31,8 +31,6 @@ var _loaderUtils = require("@loaders.gl/loader-utils");
31
31
 
32
32
  var _zlib = _interopRequireDefault(require("zlib"));
33
33
 
34
- var _util = require("util");
35
-
36
34
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
37
35
 
38
36
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
@@ -119,7 +117,7 @@ var BrotliCompression = function (_Compression) {
119
117
  }
120
118
 
121
119
  _context2.next = 3;
122
- return (0, _util.promisify)(_zlib.default.brotliCompress)(input);
120
+ return (0, _loaderUtils.promisify)(_zlib.default.brotliCompress)(input);
123
121
 
124
122
  case 3:
125
123
  buffer = _context2.sent;
@@ -175,7 +173,7 @@ var BrotliCompression = function (_Compression) {
175
173
  }
176
174
 
177
175
  _context3.next = 3;
178
- return (0, _util.promisify)(_zlib.default.brotliDecompress)(input);
176
+ return (0, _loaderUtils.promisify)(_zlib.default.brotliDecompress)(input);
179
177
 
180
178
  case 3:
181
179
  buffer = _context3.sent;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/brotli-compression.ts"],"names":["DEFAULT_BROTLI_OPTIONS","brotli","mode","quality","lgwin","BrotliCompression","options","modules","Error","name","input","isBrowser","useZlib","zlib","brotliCompress","buffer","compressSync","brotliCompressSync","brotliOptions","inputArray","Uint8Array","compress","brotliDecompress","decompressSync","brotliDecompressSync","decompress","Compression"],"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 zlib from 'zlib';\nimport {promisify} from 'util';\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","options","modules","Error","name","input","isBrowser","useZlib","zlib","brotliCompress","buffer","compressSync","brotliCompressSync","brotliOptions","inputArray","Uint8Array","compress","brotliDecompress","decompressSync","brotliDecompressSync","decompress","Compression"],"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 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"}
@@ -41,8 +41,6 @@ var _pako = _interopRequireDefault(require("pako"));
41
41
 
42
42
  var _zlib = _interopRequireDefault(require("zlib"));
43
43
 
44
- var _util = require("util");
45
-
46
44
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
47
45
 
48
46
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
@@ -91,7 +89,7 @@ var DeflateCompression = function (_Compression) {
91
89
  }
92
90
 
93
91
  _context.next = 4;
94
- return (0, _util.promisify)(_zlib.default.gzip)(input);
92
+ return (0, _loaderUtils.promisify)(_zlib.default.gzip)(input);
95
93
 
96
94
  case 4:
97
95
  _context.t0 = _context.sent;
@@ -100,7 +98,7 @@ var DeflateCompression = function (_Compression) {
100
98
 
101
99
  case 7:
102
100
  _context.next = 9;
103
- return (0, _util.promisify)(_zlib.default.deflate)(input);
101
+ return (0, _loaderUtils.promisify)(_zlib.default.deflate)(input);
104
102
 
105
103
  case 9:
106
104
  _context.t0 = _context.sent;
@@ -149,7 +147,7 @@ var DeflateCompression = function (_Compression) {
149
147
  }
150
148
 
151
149
  _context2.next = 4;
152
- return (0, _util.promisify)(_zlib.default.gunzip)(input);
150
+ return (0, _loaderUtils.promisify)(_zlib.default.gunzip)(input);
153
151
 
154
152
  case 4:
155
153
  _context2.t0 = _context2.sent;
@@ -158,7 +156,7 @@ var DeflateCompression = function (_Compression) {
158
156
 
159
157
  case 7:
160
158
  _context2.next = 9;
161
- return (0, _util.promisify)(_zlib.default.inflate)(input);
159
+ return (0, _loaderUtils.promisify)(_zlib.default.inflate)(input);
162
160
 
163
161
  case 9:
164
162
  _context2.t0 = _context2.sent;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/deflate-compression.ts"],"names":["DeflateCompression","options","input","isBrowser","deflate","useZlib","gzip","zlib","buffer","compressSync","gunzip","inflate","decompressSync","gzipSync","deflateSync","pakoOptions","inputArray","Uint8Array","pako","gunzipSync","inflateSync","asyncIterator","pakoProcessor","Deflate","transformBatches","Inflate","onData","_onData","bind","onEnd","_onEnd","chunk","uint8Array","ok","push","Error","_getError","chunks","_getChunks","emptyChunk","_chunks","status","length","code","MESSAGES","name","Compression"],"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 'util';\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,"sources":["../../../src/lib/deflate-compression.ts"],"names":["DeflateCompression","options","input","isBrowser","deflate","useZlib","gzip","zlib","buffer","compressSync","gunzip","inflate","decompressSync","gzipSync","deflateSync","pakoOptions","inputArray","Uint8Array","pako","gunzipSync","inflateSync","asyncIterator","pakoProcessor","Deflate","transformBatches","Inflate","onData","_onData","bind","onEnd","_onEnd","chunk","uint8Array","ok","push","Error","_getError","chunks","_getChunks","emptyChunk","_chunks","status","length","code","MESSAGES","name","Compression"],"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"}
package/dist/esm/index.js CHANGED
@@ -7,7 +7,7 @@ export { ZstdCompression } from './lib/zstd-compression';
7
7
  export { SnappyCompression } from './lib/snappy-compression';
8
8
  export { BrotliCompression } from './lib/brotli-compression';
9
9
  export { LZOCompression } from './lib/lzo-compression';
10
- const VERSION = typeof "3.0.10" !== 'undefined' ? "3.0.10" : 'latest';
10
+ const VERSION = typeof "3.0.14" !== 'undefined' ? "3.0.14" : 'latest';
11
11
  export const CompressionWorker = {
12
12
  id: 'compression',
13
13
  name: 'compression',
@@ -2,7 +2,7 @@ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
2
  import { Compression } from './compression';
3
3
  import { isBrowser, toArrayBuffer } from '@loaders.gl/loader-utils';
4
4
  import zlib from 'zlib';
5
- import { promisify } from 'util';
5
+ import { promisify } from '@loaders.gl/loader-utils';
6
6
  const DEFAULT_BROTLI_OPTIONS = {
7
7
  brotli: {
8
8
  mode: 0,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/brotli-compression.ts"],"names":["Compression","isBrowser","toArrayBuffer","zlib","promisify","DEFAULT_BROTLI_OPTIONS","brotli","mode","quality","lgwin","BrotliCompression","constructor","options","preload","modules","Error","name","compress","input","useZlib","buffer","brotliCompress","compressSync","brotliCompressSync","brotliOptions","inputArray","Uint8Array","decompress","brotliDecompress","decompressSync","brotliDecompressSync"],"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 zlib from 'zlib';\nimport {promisify} from 'util';\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":["Compression","isBrowser","toArrayBuffer","zlib","promisify","DEFAULT_BROTLI_OPTIONS","brotli","mode","quality","lgwin","BrotliCompression","constructor","options","preload","modules","Error","name","compress","input","useZlib","buffer","brotliCompress","compressSync","brotliCompressSync","brotliOptions","inputArray","Uint8Array","decompress","brotliDecompress","decompressSync","brotliDecompressSync"],"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 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"}
@@ -29,11 +29,11 @@ export class Compression {
29
29
  }
30
30
 
31
31
  compressSync(input) {
32
- throw new Error(`${this.name}: sync compression not supported`);
32
+ throw new Error("".concat(this.name, ": sync compression not supported"));
33
33
  }
34
34
 
35
35
  decompressSync(input) {
36
- throw new Error(`${this.name}: sync decompression not supported`);
36
+ throw new Error("".concat(this.name, ": sync decompression not supported"));
37
37
  }
38
38
 
39
39
  async *compressBatches(asyncIterator) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/compression.ts"],"names":["concatenateArrayBuffersAsync","Compression","constructor","options","compressBatches","bind","decompressBatches","preload","compress","input","compressSync","decompress","decompressSync","Error","name","asyncIterator","concatenate"],"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,EAA2C;AACzD,UAAM,KAAKF,OAAL,EAAN;AACA,WAAO,KAAKK,cAAL,CAAoBH,KAApB,CAAP;AACD;;AAGDC,EAAAA,YAAY,CAACD,KAAD,EAAkC;AAC5C,UAAM,IAAII,KAAJ,CAAW,GAAE,KAAKC,IAAK,kCAAvB,CAAN;AACD;;AAGDF,EAAAA,cAAc,CAACH,KAAD,EAAkC;AAC9C,UAAM,IAAII,KAAJ,CAAW,GAAE,KAAKC,IAAK,oCAAvB,CAAN;AACD;;AAGqB,SAAfV,eAAe,CACpBW,aADoB,EAEQ;AAE5B,UAAMN,KAAK,GAAG,MAAM,KAAKO,WAAL,CAAiBD,aAAjB,CAApB;AACA,UAAM,KAAKP,QAAL,CAAcC,KAAd,CAAN;AACD;;AAGuB,SAAjBH,iBAAiB,CACtBS,aADsB,EAEM;AAE5B,UAAMN,KAAK,GAAG,MAAM,KAAKO,WAAL,CAAiBD,aAAjB,CAApB;AACA,UAAM,KAAKJ,UAAL,CAAgBF,KAAhB,CAAN;AACD;;AAISO,EAAAA,WAAW,CAACD,aAAD,EAAsC;AACzD,WAAOf,4BAA4B,CAACe,aAAD,CAAnC;AACD;;AA5D+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): Promise<ArrayBuffer> {\n await this.preload();\n return this.decompressSync(input);\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): 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"],"file":"compression.js"}
1
+ {"version":3,"sources":["../../../src/lib/compression.ts"],"names":["concatenateArrayBuffersAsync","Compression","constructor","options","compressBatches","bind","decompressBatches","preload","compress","input","compressSync","decompress","decompressSync","Error","name","asyncIterator","concatenate"],"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,EAA2C;AACzD,UAAM,KAAKF,OAAL,EAAN;AACA,WAAO,KAAKK,cAAL,CAAoBH,KAApB,CAAP;AACD;;AAGDC,EAAAA,YAAY,CAACD,KAAD,EAAkC;AAC5C,UAAM,IAAII,KAAJ,WAAa,KAAKC,IAAlB,sCAAN;AACD;;AAGDF,EAAAA,cAAc,CAACH,KAAD,EAAkC;AAC9C,UAAM,IAAII,KAAJ,WAAa,KAAKC,IAAlB,wCAAN;AACD;;AAGqB,SAAfV,eAAe,CACpBW,aADoB,EAEQ;AAE5B,UAAMN,KAAK,GAAG,MAAM,KAAKO,WAAL,CAAiBD,aAAjB,CAApB;AACA,UAAM,KAAKP,QAAL,CAAcC,KAAd,CAAN;AACD;;AAGuB,SAAjBH,iBAAiB,CACtBS,aADsB,EAEM;AAE5B,UAAMN,KAAK,GAAG,MAAM,KAAKO,WAAL,CAAiBD,aAAjB,CAApB;AACA,UAAM,KAAKJ,UAAL,CAAgBF,KAAhB,CAAN;AACD;;AAISO,EAAAA,WAAW,CAACD,aAAD,EAAsC;AACzD,WAAOf,4BAA4B,CAACe,aAAD,CAAnC;AACD;;AA5D+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): Promise<ArrayBuffer> {\n await this.preload();\n return this.decompressSync(input);\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): 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"],"file":"compression.js"}
@@ -3,7 +3,7 @@ import { Compression } from './compression';
3
3
  import { isBrowser, toArrayBuffer } from '@loaders.gl/loader-utils';
4
4
  import pako from 'pako';
5
5
  import zlib from 'zlib';
6
- import { promisify } from 'util';
6
+ import { promisify } from '@loaders.gl/loader-utils';
7
7
  export class DeflateCompression extends Compression {
8
8
  constructor(options = {}) {
9
9
  super(options);
@@ -104,7 +104,7 @@ export class DeflateCompression extends Compression {
104
104
  const ok = pakoProcessor.push(uint8Array, false);
105
105
 
106
106
  if (!ok) {
107
- throw new Error(`${this._getError()}write`);
107
+ throw new Error("".concat(this._getError(), "write"));
108
108
  }
109
109
 
110
110
  const chunks = this._getChunks();
@@ -150,7 +150,7 @@ export class DeflateCompression extends Compression {
150
150
  '-5': 'buffer error',
151
151
  '-6': 'incompatible version'
152
152
  };
153
- return `${this.name}: ${MESSAGES[code]}`;
153
+ return "".concat(this.name, ": ").concat(MESSAGES[code]);
154
154
  }
155
155
 
156
156
  }
@@ -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 'util';\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,"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"}
@@ -66,7 +66,7 @@ function getOperation(operation) {
66
66
  return 'decompress';
67
67
 
68
68
  default:
69
- throw new Error(`@loaders.gl/compression: Unsupported operation ${operation}. Expected 'compress' or 'decompress'`);
69
+ throw new Error("@loaders.gl/compression: Unsupported operation ".concat(operation, ". Expected 'compress' or 'decompress'"));
70
70
  }
71
71
  }
72
72
 
@@ -74,7 +74,7 @@ function getCompression(name) {
74
74
  const Compression = COMPRESSIONS.find(compression_ => name === compression_.name);
75
75
 
76
76
  if (!Compression) {
77
- throw new Error(`@loaders.gl/compression: Unsupported compression ${name}`);
77
+ throw new Error("@loaders.gl/compression: Unsupported compression ".concat(name));
78
78
  }
79
79
 
80
80
  return Compression;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/workers/worker.ts"],"names":["createWorker","NoCompression","BrotliCompression","DeflateCompression","GZipCompression","LZ4Compression","LZOCompression","SnappyCompression","ZstdCompression","brotliDecompress","lz4js","lzo","ZstdCodec","modules","brotli","decompress","compress","Error","COMPRESSIONS","data","options","operation","getOperation","String","compression","getCompression","name","Compression","find","compression_"],"mappings":"AAAA,SAAQA,YAAR,QAA2B,0BAA3B;AAGA,SAAQC,aAAR,QAA4B,uBAA5B;AACA,SAAQC,iBAAR,QAAgC,2BAAhC;AACA,SAAQC,kBAAR,QAAiC,4BAAjC;AACA,SAAQC,eAAR,QAA8B,yBAA9B;AACA,SAAQC,cAAR,QAA6B,wBAA7B;AACA,SAAQC,cAAR,QAA6B,wBAA7B;AACA,SAAQC,iBAAR,QAAgC,2BAAhC;AACA,SAAQC,eAAR,QAA8B,yBAA9B;AAKA,OAAOC,gBAAP,MAA6B,mBAA7B;AACA,OAAOC,KAAP,MAAkB,OAAlB;AACA,OAAOC,GAAP,MAAgB,KAAhB;AACA,SAAQC,SAAR,QAAwB,YAAxB;AAGA,MAAMC,OAAO,GAAG;AAEdC,EAAAA,MAAM,EAAE;AACNC,IAAAA,UAAU,EAAEN,gBADN;AAENO,IAAAA,QAAQ,EAAE,MAAM;AACd,YAAM,IAAIC,KAAJ,CAAU,iBAAV,CAAN;AACD;AAJK,GAFM;AAQdP,EAAAA,KARc;AASdC,EAAAA,GATc;AAUd,gBAAcC;AAVA,CAAhB;AAcA,MAAMM,YAAY,GAAG,CACnB,IAAIjB,aAAJ,CAAkB;AAACY,EAAAA;AAAD,CAAlB,CADmB,EAEnB,IAAIX,iBAAJ,CAAsB;AAACW,EAAAA;AAAD,CAAtB,CAFmB,EAGnB,IAAIV,kBAAJ,CAAuB;AAACU,EAAAA;AAAD,CAAvB,CAHmB,EAInB,IAAIT,eAAJ,CAAoB;AAACS,EAAAA;AAAD,CAApB,CAJmB,EAKnB,IAAIP,cAAJ,CAAmB;AAACO,EAAAA;AAAD,CAAnB,CALmB,EAMnB,IAAIR,cAAJ,CAAmB;AAACQ,EAAAA;AAAD,CAAnB,CANmB,EAOnB,IAAIN,iBAAJ,CAAsB;AAACM,EAAAA;AAAD,CAAtB,CAPmB,EAQnB,IAAIL,eAAJ,CAAoB;AAACK,EAAAA;AAAD,CAApB,CARmB,CAArB;AAWAb,YAAY,CAAC,OAAOmB,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,CAACR,QAAZ,CAAqBG,IAArB,CAAb;;AACF,SAAK,YAAL;AACE,aAAO,MAAMK,WAAW,CAACT,UAAZ,CAAuBI,IAAvB,CAAb;;AACF;AACE,YAAM,IAAIF,KAAJ,CAAU,gBAAV,CAAN;AANJ;AAQD,CAbW,CAAZ;;AAeA,SAASK,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,IAAIJ,KAAJ,CACH,kDAAiDI,SAAU,uCADxD,CAAN;AARJ;AAYD;;AAED,SAASI,cAAT,CAAwBC,IAAxB,EAAsC;AACpC,QAAMC,WAAW,GAAGT,YAAY,CAACU,IAAb,CAAmBC,YAAD,IAAkBH,IAAI,KAAKG,YAAY,CAACH,IAA1D,CAApB;;AACA,MAAI,CAACC,WAAL,EAAkB;AAChB,UAAM,IAAIV,KAAJ,CAAW,oDAAmDS,IAAK,EAAnE,CAAN;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';\nimport {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';\nimport 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":["createWorker","NoCompression","BrotliCompression","DeflateCompression","GZipCompression","LZ4Compression","LZOCompression","SnappyCompression","ZstdCompression","brotliDecompress","lz4js","lzo","ZstdCodec","modules","brotli","decompress","compress","Error","COMPRESSIONS","data","options","operation","getOperation","String","compression","getCompression","name","Compression","find","compression_"],"mappings":"AAAA,SAAQA,YAAR,QAA2B,0BAA3B;AAGA,SAAQC,aAAR,QAA4B,uBAA5B;AACA,SAAQC,iBAAR,QAAgC,2BAAhC;AACA,SAAQC,kBAAR,QAAiC,4BAAjC;AACA,SAAQC,eAAR,QAA8B,yBAA9B;AACA,SAAQC,cAAR,QAA6B,wBAA7B;AACA,SAAQC,cAAR,QAA6B,wBAA7B;AACA,SAAQC,iBAAR,QAAgC,2BAAhC;AACA,SAAQC,eAAR,QAA8B,yBAA9B;AAKA,OAAOC,gBAAP,MAA6B,mBAA7B;AACA,OAAOC,KAAP,MAAkB,OAAlB;AACA,OAAOC,GAAP,MAAgB,KAAhB;AACA,SAAQC,SAAR,QAAwB,YAAxB;AAGA,MAAMC,OAAO,GAAG;AAEdC,EAAAA,MAAM,EAAE;AACNC,IAAAA,UAAU,EAAEN,gBADN;AAENO,IAAAA,QAAQ,EAAE,MAAM;AACd,YAAM,IAAIC,KAAJ,CAAU,iBAAV,CAAN;AACD;AAJK,GAFM;AAQdP,EAAAA,KARc;AASdC,EAAAA,GATc;AAUd,gBAAcC;AAVA,CAAhB;AAcA,MAAMM,YAAY,GAAG,CACnB,IAAIjB,aAAJ,CAAkB;AAACY,EAAAA;AAAD,CAAlB,CADmB,EAEnB,IAAIX,iBAAJ,CAAsB;AAACW,EAAAA;AAAD,CAAtB,CAFmB,EAGnB,IAAIV,kBAAJ,CAAuB;AAACU,EAAAA;AAAD,CAAvB,CAHmB,EAInB,IAAIT,eAAJ,CAAoB;AAACS,EAAAA;AAAD,CAApB,CAJmB,EAKnB,IAAIP,cAAJ,CAAmB;AAACO,EAAAA;AAAD,CAAnB,CALmB,EAMnB,IAAIR,cAAJ,CAAmB;AAACQ,EAAAA;AAAD,CAAnB,CANmB,EAOnB,IAAIN,iBAAJ,CAAsB;AAACM,EAAAA;AAAD,CAAtB,CAPmB,EAQnB,IAAIL,eAAJ,CAAoB;AAACK,EAAAA;AAAD,CAApB,CARmB,CAArB;AAWAb,YAAY,CAAC,OAAOmB,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,CAACR,QAAZ,CAAqBG,IAArB,CAAb;;AACF,SAAK,YAAL;AACE,aAAO,MAAMK,WAAW,CAACT,UAAZ,CAAuBI,IAAvB,CAAb;;AACF;AACE,YAAM,IAAIF,KAAJ,CAAU,gBAAV,CAAN;AANJ;AAQD,CAbW,CAAZ;;AAeA,SAASK,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,IAAIJ,KAAJ,0DAC8CI,SAD9C,2CAAN;AARJ;AAYD;;AAED,SAASI,cAAT,CAAwBC,IAAxB,EAAsC;AACpC,QAAMC,WAAW,GAAGT,YAAY,CAACU,IAAb,CAAmBC,YAAD,IAAkBH,IAAI,KAAKG,YAAY,CAACH,IAA1D,CAApB;;AACA,MAAI,CAACC,WAAL,EAAkB;AAChB,UAAM,IAAIV,KAAJ,4DAA8DS,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';\nimport {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';\nimport 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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/compression",
3
- "version": "3.0.10",
3
+ "version": "3.0.14",
4
4
  "description": "Decompression and compression plugins for loaders.gl",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -38,8 +38,8 @@
38
38
  },
39
39
  "dependencies": {
40
40
  "@babel/runtime": "^7.3.1",
41
- "@loaders.gl/loader-utils": "3.0.10",
42
- "@loaders.gl/worker-utils": "3.0.10",
41
+ "@loaders.gl/loader-utils": "3.0.14",
42
+ "@loaders.gl/worker-utils": "3.0.14",
43
43
  "@types/brotli": "^1.3.0",
44
44
  "@types/pako": "^1.0.1",
45
45
  "lzo-wasm": "^0.0.4",
@@ -58,5 +58,5 @@
58
58
  "lzo": "^0.4.11",
59
59
  "zstd-codec": "^0.1"
60
60
  },
61
- "gitHead": "b6986964a745616ff74dcb397026afc9aa315f2f"
61
+ "gitHead": "dc931768fc34de549ef6baeb94e2ee5aa8163baf"
62
62
  }
@@ -5,7 +5,7 @@ import {isBrowser, toArrayBuffer} from '@loaders.gl/loader-utils';
5
5
  import type brotliNamespace from 'brotli';
6
6
  // import brotli from 'brotli'; // https://bundlephobia.com/package/brotli
7
7
  import zlib from 'zlib';
8
- import {promisify} from 'util';
8
+ import {promisify} from '@loaders.gl/loader-utils';
9
9
 
10
10
  export type BrotliCompressionOptions = CompressionOptions & {
11
11
  brotli?: {
@@ -4,7 +4,7 @@ import {Compression} from './compression';
4
4
  import {isBrowser, toArrayBuffer} from '@loaders.gl/loader-utils';
5
5
  import pako from 'pako'; // https://bundlephobia.com/package/pako
6
6
  import zlib from 'zlib';
7
- import {promisify} from 'util';
7
+ import {promisify} from '@loaders.gl/loader-utils';
8
8
 
9
9
  export type DeflateCompressionOptions = CompressionOptions & {
10
10
  deflate?: pako.InflateOptions & pako.DeflateOptions & {useZlib?: boolean};