@loaders.gl/compression 3.4.0-alpha.3 → 3.4.0-alpha.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.
@@ -1,5 +1,5 @@
1
1
  import { processOnWorker } from '@loaders.gl/worker-utils';
2
- const VERSION = typeof "3.4.0-alpha.3" !== 'undefined' ? "3.4.0-alpha.3" : 'latest';
2
+ const VERSION = typeof "3.4.0-alpha.4" !== 'undefined' ? "3.4.0-alpha.4" : 'latest';
3
3
  export const CompressionWorker = {
4
4
  id: 'compression',
5
5
  name: 'compression',
@@ -1 +1 @@
1
- {"version":3,"file":"brotli-compression.js","names":["Compression","isBrowser","toArrayBuffer","BrotliDecode","zlib","promisify1","DEFAULT_BROTLI_OPTIONS","brotli","mode","quality","lgwin","BrotliCompression","constructor","options","_defineProperty","preload","_this$options","_this$options$modules","modules","console","warn","concat","name","compress","input","_this$options$brotli","useZlib","buffer","brotliCompress","compressSync","_this$options$brotli2","_this$options2","brotliCompressSync","brotliOptions","inputArray","Uint8Array","Error","outputArray","decompress","_this$options$brotli3","brotliDecompress","decompressSync","_this$options$brotli4","_this$options3","brotliDecompressSync","undefined"],"sources":["../../../src/lib/brotli-compression.ts"],"sourcesContent":["// BROTLI\nimport type {CompressionOptions} from './compression';\nimport {Compression} from './compression';\nimport {isBrowser, toArrayBuffer} from '@loaders.gl/loader-utils';\nimport type brotliNamespace from 'brotli';\n// import brotli from 'brotli'; // https://bundlephobia.com/package/brotli\nimport {BrotliDecode} from '../brotli/decode';\nimport zlib from 'zlib';\nimport {promisify1} from '@loaders.gl/loader-utils';\n\nexport type BrotliCompressionOptions = CompressionOptions & {\n brotli?: {\n mode?: number;\n quality?: number;\n lgwin?: number;\n useZlib?: boolean;\n };\n};\n\nconst DEFAULT_BROTLI_OPTIONS = {\n brotli: {\n mode: 0,\n quality: 8,\n lgwin: 22\n }\n};\n\nlet brotli: typeof brotliNamespace;\n\n/**\n * brotli compression / decompression\n */\nexport class BrotliCompression extends Compression {\n readonly name: string = 'brotli';\n readonly extensions = ['br'];\n readonly contentEncodings = ['br'];\n readonly isSupported = true;\n readonly options: BrotliCompressionOptions;\n\n constructor(options: BrotliCompressionOptions) {\n super(options);\n this.options = options;\n }\n\n /**\n * brotli is an injectable dependency due to big size\n * @param options\n */\n async preload(): Promise<void> {\n brotli = brotli || this.options?.modules?.brotli;\n if (!brotli) {\n // eslint-disable-next-line no-console\n console.warn(`${this.name} library not installed`);\n }\n }\n\n async compress(input: ArrayBuffer): Promise<ArrayBuffer> {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.brotli?.useZlib) {\n const buffer = await promisify1(zlib.brotliCompress)(input);\n return toArrayBuffer(buffer);\n }\n return this.compressSync(input);\n }\n\n compressSync(input: ArrayBuffer): ArrayBuffer {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.brotli?.useZlib) {\n const buffer = zlib.brotliCompressSync(input);\n return toArrayBuffer(buffer);\n }\n const brotliOptions = {...DEFAULT_BROTLI_OPTIONS.brotli, ...this.options?.brotli};\n const inputArray = new Uint8Array(input);\n\n if (!brotli) {\n throw new Error('brotli compression: brotli module not installed');\n }\n\n // @ts-ignore brotli types state that only Buffers are accepted...\n const outputArray = brotli.compress(inputArray, brotliOptions);\n return outputArray.buffer;\n }\n\n async decompress(input: ArrayBuffer): Promise<ArrayBuffer> {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.brotli?.useZlib) {\n const buffer = await promisify1(zlib.brotliDecompress)(input);\n return toArrayBuffer(buffer);\n }\n return this.decompressSync(input);\n }\n\n decompressSync(input: ArrayBuffer): ArrayBuffer {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.brotli?.useZlib) {\n const buffer = zlib.brotliDecompressSync(input);\n return toArrayBuffer(buffer);\n }\n\n const brotliOptions = {...DEFAULT_BROTLI_OPTIONS.brotli, ...this.options?.brotli};\n const inputArray = new Uint8Array(input);\n\n if (brotli) {\n // @ts-ignore brotli types state that only Buffers are accepted...\n const outputArray = brotli.decompress(inputArray, brotliOptions);\n return outputArray.buffer;\n }\n const outputArray = BrotliDecode(inputArray, undefined);\n return outputArray.buffer;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"brotli-compression.js","names":["Compression","isBrowser","toArrayBuffer","BrotliDecode","zlib","promisify1","DEFAULT_BROTLI_OPTIONS","brotli","mode","quality","lgwin","BrotliCompression","constructor","options","_defineProperty","preload","_this$options","_this$options$modules","modules","console","warn","concat","name","compress","input","_this$options$brotli","useZlib","buffer","brotliCompress","compressSync","_this$options$brotli2","_this$options2","brotliCompressSync","brotliOptions","inputArray","Uint8Array","Error","outputArray","decompress","_this$options$brotli3","brotliDecompress","decompressSync","_this$options$brotli4","_this$options3","brotliDecompressSync","undefined"],"sources":["../../../src/lib/brotli-compression.ts"],"sourcesContent":["// BROTLI\nimport type {CompressionOptions} from './compression';\nimport {Compression} from './compression';\nimport {isBrowser, toArrayBuffer} from '@loaders.gl/loader-utils';\nimport type brotliNamespace from 'brotli';\n// import brotli from 'brotli'; // https://bundlephobia.com/package/brotli\nimport {BrotliDecode} from '../brotli/decode';\nimport zlib from 'zlib';\nimport {promisify1} from '@loaders.gl/loader-utils';\n\nexport type BrotliCompressionOptions = CompressionOptions & {\n brotli?: {\n mode?: number;\n quality?: number;\n lgwin?: number;\n useZlib?: boolean;\n };\n};\n\nconst DEFAULT_BROTLI_OPTIONS = {\n brotli: {\n mode: 0,\n quality: 8,\n lgwin: 22\n }\n};\n\nlet brotli: typeof brotliNamespace;\n\n/**\n * brotli compression / decompression\n */\nexport class BrotliCompression extends Compression {\n readonly name: string = 'brotli';\n readonly extensions = ['br'];\n readonly contentEncodings = ['br'];\n readonly isSupported = true;\n readonly options: BrotliCompressionOptions;\n\n constructor(options: BrotliCompressionOptions) {\n super(options);\n this.options = options;\n }\n\n /**\n * brotli is an injectable dependency due to big size\n * @param options\n */\n async preload(): Promise<void> {\n brotli = brotli || this.options?.modules?.brotli;\n if (!brotli) {\n // eslint-disable-next-line no-console\n console.warn(`${this.name} library not installed`);\n }\n }\n\n async compress(input: ArrayBuffer): Promise<ArrayBuffer> {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.brotli?.useZlib) {\n const buffer = await promisify1(zlib.brotliCompress)(input);\n return toArrayBuffer(buffer);\n }\n return this.compressSync(input);\n }\n\n compressSync(input: ArrayBuffer): ArrayBuffer {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.brotli?.useZlib) {\n const buffer = zlib.brotliCompressSync(input);\n return toArrayBuffer(buffer);\n }\n const brotliOptions = {...DEFAULT_BROTLI_OPTIONS.brotli, ...this.options?.brotli};\n const inputArray = new Uint8Array(input);\n\n if (!brotli) {\n throw new Error('brotli compression: brotli module not installed');\n }\n\n // @ts-ignore brotli types state that only Buffers are accepted...\n const outputArray = brotli.compress(inputArray, brotliOptions);\n return outputArray.buffer;\n }\n\n async decompress(input: ArrayBuffer): Promise<ArrayBuffer> {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.brotli?.useZlib) {\n const buffer = await promisify1(zlib.brotliDecompress)(input);\n return toArrayBuffer(buffer);\n }\n return this.decompressSync(input);\n }\n\n decompressSync(input: ArrayBuffer): ArrayBuffer {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.brotli?.useZlib) {\n const buffer = zlib.brotliDecompressSync(input);\n return toArrayBuffer(buffer);\n }\n\n const brotliOptions = {...DEFAULT_BROTLI_OPTIONS.brotli, ...this.options?.brotli};\n const inputArray = new Uint8Array(input);\n\n if (brotli) {\n // @ts-ignore brotli types state that only Buffers are accepted...\n const outputArray = brotli.decompress(inputArray, brotliOptions);\n return outputArray.buffer;\n }\n const outputArray = BrotliDecode(inputArray, undefined);\n return outputArray.buffer;\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"compression.js","names":["concatenateArrayBuffersAsync","Compression","constructor","options","_defineProperty","compressBatches","bind","decompressBatches","preload","compress","input","compressSync","decompress","size","decompressSync","Error","concat","name","asyncIterator","concatenate","improveError","error","message","includes"],"sources":["../../../src/lib/compression.ts"],"sourcesContent":["// Compression interface\nimport {concatenateArrayBuffersAsync} from '@loaders.gl/loader-utils';\n\n/** Compression options */\nexport type CompressionOptions = {\n // operation: 'compress' | 'decompress';\n modules?: {[moduleName: string]: any};\n};\n\n/** Compression */\nexport abstract class Compression {\n abstract readonly name: string;\n abstract readonly extensions: string[];\n abstract readonly contentEncodings: string[];\n abstract readonly isSupported: boolean;\n\n constructor(options?: CompressionOptions) {\n this.compressBatches = this.compressBatches.bind(this);\n this.decompressBatches = this.decompressBatches.bind(this);\n }\n\n /** Preloads any dynamic libraries. May enable sync functions */\n async preload(): Promise<void> {\n return;\n }\n\n /** Asynchronously compress data */\n async compress(input: ArrayBuffer): Promise<ArrayBuffer> {\n await this.preload();\n return this.compressSync(input);\n }\n\n /** Asynchronously decompress data */\n async decompress(input: ArrayBuffer, size?: number): Promise<ArrayBuffer> {\n await this.preload();\n return this.decompressSync(input, size);\n }\n\n /** Synchronously compress data */\n compressSync(input: ArrayBuffer): ArrayBuffer {\n throw new Error(`${this.name}: sync compression not supported`);\n }\n\n /** Synchronously compress data */\n decompressSync(input: ArrayBuffer, size?: number): ArrayBuffer {\n throw new Error(`${this.name}: sync decompression not supported`);\n }\n\n /** Compress batches */\n async *compressBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n // TODO - implement incremental compression\n const input = await this.concatenate(asyncIterator);\n yield this.compress(input);\n }\n\n /** Decompress batches */\n async *decompressBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n // TODO - implement incremental compression\n const input = await this.concatenate(asyncIterator);\n yield this.decompress(input);\n }\n\n // HELPERS\n\n protected concatenate(asyncIterator): Promise<ArrayBuffer> {\n return concatenateArrayBuffersAsync(asyncIterator);\n }\n\n protected improveError(error) {\n if (!error.message.includes(this.name)) {\n error.message = `${this.name} ${error.message}`;\n }\n return error;\n }\n}\n"],"mappings":";AACA,SAAQA,4BAA4B,QAAO,0BAA0B;AASrE,OAAO,MAAeC,WAAW,CAAC;EAMhCC,WAAWA,CAACC,OAA4B,EAAE;IAAAC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IACxC,IAAI,CAACC,eAAe,GAAG,IAAI,CAACA,eAAe,CAACC,IAAI,CAAC,IAAI,CAAC;IACtD,IAAI,CAACC,iBAAiB,GAAG,IAAI,CAACA,iBAAiB,CAACD,IAAI,CAAC,IAAI,CAAC;EAC5D;EAGA,MAAME,OAAOA,CAAA,EAAkB;IAC7B;EACF;EAGA,MAAMC,QAAQA,CAACC,KAAkB,EAAwB;IACvD,MAAM,IAAI,CAACF,OAAO,EAAE;IACpB,OAAO,IAAI,CAACG,YAAY,CAACD,KAAK,CAAC;EACjC;EAGA,MAAME,UAAUA,CAACF,KAAkB,EAAEG,IAAa,EAAwB;IACxE,MAAM,IAAI,CAACL,OAAO,EAAE;IACpB,OAAO,IAAI,CAACM,cAAc,CAACJ,KAAK,EAAEG,IAAI,CAAC;EACzC;EAGAF,YAAYA,CAACD,KAAkB,EAAe;IAC5C,MAAM,IAAIK,KAAK,IAAAC,MAAA,CAAI,IAAI,CAACC,IAAI,sCAAmC;EACjE;EAGAH,cAAcA,CAACJ,KAAkB,EAAEG,IAAa,EAAe;IAC7D,MAAM,IAAIE,KAAK,IAAAC,MAAA,CAAI,IAAI,CAACC,IAAI,wCAAqC;EACnE;EAGA,OAAOZ,eAAeA,CACpBa,aAAiE,EACrC;IAE5B,MAAMR,KAAK,GAAG,MAAM,IAAI,CAACS,WAAW,CAACD,aAAa,CAAC;IACnD,MAAM,IAAI,CAACT,QAAQ,CAACC,KAAK,CAAC;EAC5B;EAGA,OAAOH,iBAAiBA,CACtBW,aAAiE,EACrC;IAE5B,MAAMR,KAAK,GAAG,MAAM,IAAI,CAACS,WAAW,CAACD,aAAa,CAAC;IACnD,MAAM,IAAI,CAACN,UAAU,CAACF,KAAK,CAAC;EAC9B;EAIUS,WAAWA,CAACD,aAAa,EAAwB;IACzD,OAAOlB,4BAA4B,CAACkB,aAAa,CAAC;EACpD;EAEUE,YAAYA,CAACC,KAAK,EAAE;IAC5B,IAAI,CAACA,KAAK,CAACC,OAAO,CAACC,QAAQ,CAAC,IAAI,CAACN,IAAI,CAAC,EAAE;MACtCI,KAAK,CAACC,OAAO,MAAAN,MAAA,CAAM,IAAI,CAACC,IAAI,OAAAD,MAAA,CAAIK,KAAK,CAACC,OAAO,CAAE;IACjD;IACA,OAAOD,KAAK;EACd;AACF"}
1
+ {"version":3,"file":"compression.js","names":["concatenateArrayBuffersAsync","Compression","constructor","options","_defineProperty","compressBatches","bind","decompressBatches","preload","compress","input","compressSync","decompress","size","decompressSync","Error","concat","name","asyncIterator","concatenate","improveError","error","message","includes"],"sources":["../../../src/lib/compression.ts"],"sourcesContent":["// Compression interface\nimport {concatenateArrayBuffersAsync} from '@loaders.gl/loader-utils';\n\n/** Compression options */\nexport type CompressionOptions = {\n // operation: 'compress' | 'decompress';\n modules?: {[moduleName: string]: any};\n};\n\n/** Compression */\nexport abstract class Compression {\n abstract readonly name: string;\n abstract readonly extensions: string[];\n abstract readonly contentEncodings: string[];\n abstract readonly isSupported: boolean;\n\n constructor(options?: CompressionOptions) {\n this.compressBatches = this.compressBatches.bind(this);\n this.decompressBatches = this.decompressBatches.bind(this);\n }\n\n /** Preloads any dynamic libraries. May enable sync functions */\n async preload(): Promise<void> {\n return;\n }\n\n /** Asynchronously compress data */\n async compress(input: ArrayBuffer): Promise<ArrayBuffer> {\n await this.preload();\n return this.compressSync(input);\n }\n\n /** Asynchronously decompress data */\n async decompress(input: ArrayBuffer, size?: number): Promise<ArrayBuffer> {\n await this.preload();\n return this.decompressSync(input, size);\n }\n\n /** Synchronously compress data */\n compressSync(input: ArrayBuffer): ArrayBuffer {\n throw new Error(`${this.name}: sync compression not supported`);\n }\n\n /** Synchronously compress data */\n decompressSync(input: ArrayBuffer, size?: number): ArrayBuffer {\n throw new Error(`${this.name}: sync decompression not supported`);\n }\n\n /** Compress batches */\n async *compressBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n // TODO - implement incremental compression\n const input = await this.concatenate(asyncIterator);\n yield this.compress(input);\n }\n\n /** Decompress batches */\n async *decompressBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n // TODO - implement incremental compression\n const input = await this.concatenate(asyncIterator);\n yield this.decompress(input);\n }\n\n // HELPERS\n\n protected concatenate(asyncIterator): Promise<ArrayBuffer> {\n return concatenateArrayBuffersAsync(asyncIterator);\n }\n\n protected improveError(error) {\n if (!error.message.includes(this.name)) {\n error.message = `${this.name} ${error.message}`;\n }\n return error;\n }\n}\n"],"mappings":";AACA,SAAQA,4BAA4B,QAAO,0BAA0B;AASrE,OAAO,MAAeC,WAAW,CAAC;EAMhCC,WAAWA,CAACC,OAA4B,EAAE;IAAAC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IACxC,IAAI,CAACC,eAAe,GAAG,IAAI,CAACA,eAAe,CAACC,IAAI,CAAC,IAAI,CAAC;IACtD,IAAI,CAACC,iBAAiB,GAAG,IAAI,CAACA,iBAAiB,CAACD,IAAI,CAAC,IAAI,CAAC;EAC5D;EAGA,MAAME,OAAOA,CAAA,EAAkB;IAC7B;EACF;EAGA,MAAMC,QAAQA,CAACC,KAAkB,EAAwB;IACvD,MAAM,IAAI,CAACF,OAAO,CAAC,CAAC;IACpB,OAAO,IAAI,CAACG,YAAY,CAACD,KAAK,CAAC;EACjC;EAGA,MAAME,UAAUA,CAACF,KAAkB,EAAEG,IAAa,EAAwB;IACxE,MAAM,IAAI,CAACL,OAAO,CAAC,CAAC;IACpB,OAAO,IAAI,CAACM,cAAc,CAACJ,KAAK,EAAEG,IAAI,CAAC;EACzC;EAGAF,YAAYA,CAACD,KAAkB,EAAe;IAC5C,MAAM,IAAIK,KAAK,IAAAC,MAAA,CAAI,IAAI,CAACC,IAAI,qCAAkC,CAAC;EACjE;EAGAH,cAAcA,CAACJ,KAAkB,EAAEG,IAAa,EAAe;IAC7D,MAAM,IAAIE,KAAK,IAAAC,MAAA,CAAI,IAAI,CAACC,IAAI,uCAAoC,CAAC;EACnE;EAGA,OAAOZ,eAAeA,CACpBa,aAAiE,EACrC;IAE5B,MAAMR,KAAK,GAAG,MAAM,IAAI,CAACS,WAAW,CAACD,aAAa,CAAC;IACnD,MAAM,IAAI,CAACT,QAAQ,CAACC,KAAK,CAAC;EAC5B;EAGA,OAAOH,iBAAiBA,CACtBW,aAAiE,EACrC;IAE5B,MAAMR,KAAK,GAAG,MAAM,IAAI,CAACS,WAAW,CAACD,aAAa,CAAC;IACnD,MAAM,IAAI,CAACN,UAAU,CAACF,KAAK,CAAC;EAC9B;EAIUS,WAAWA,CAACD,aAAa,EAAwB;IACzD,OAAOlB,4BAA4B,CAACkB,aAAa,CAAC;EACpD;EAEUE,YAAYA,CAACC,KAAK,EAAE;IAC5B,IAAI,CAACA,KAAK,CAACC,OAAO,CAACC,QAAQ,CAAC,IAAI,CAACN,IAAI,CAAC,EAAE;MACtCI,KAAK,CAACC,OAAO,MAAAN,MAAA,CAAM,IAAI,CAACC,IAAI,OAAAD,MAAA,CAAIK,KAAK,CAACC,OAAO,CAAE;IACjD;IACA,OAAOD,KAAK;EACd;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"deflate-compression.js","names":["Compression","isBrowser","toArrayBuffer","pako","zlib","promisify1","DeflateCompression","constructor","options","arguments","length","undefined","_defineProperty","compress","input","_this$options$deflate","deflate","useZlib","_this$options$deflate2","buffer","gzip","compressSync","decompress","_this$options$deflate3","_this$options$deflate4","gunzip","inflate","decompressSync","_this$options$deflate5","_this$options","_this$options$deflate6","gzipSync","deflateSync","pakoOptions","inputArray","Uint8Array","_this$options$deflate7","_this$options2","_this$options$deflate8","gunzipSync","inflateSync","compressBatches","asyncIterator","_this$options3","pakoProcessor","Deflate","transformBatches","decompressBatches","_this$options4","Inflate","onData","_onData","bind","onEnd","_onEnd","chunk","uint8Array","ok","push","Error","concat","_getError","chunks","_getChunks","emptyChunk","_chunks","status","code","MESSAGES","name"],"sources":["../../../src/lib/deflate-compression.ts"],"sourcesContent":["// DEFLATE\nimport type {CompressionOptions} from './compression';\nimport {Compression} from './compression';\nimport {isBrowser, toArrayBuffer} from '@loaders.gl/loader-utils';\nimport pako from 'pako'; // https://bundlephobia.com/package/pako\nimport zlib from 'zlib';\nimport {promisify1} from '@loaders.gl/loader-utils';\n\nexport type DeflateCompressionOptions = CompressionOptions & {\n deflate?: pako.InflateOptions & pako.DeflateOptions & {useZlib?: boolean};\n};\n\n/**\n * DEFLATE compression / decompression\n */\nexport class DeflateCompression extends Compression {\n readonly name: string = 'deflate';\n readonly extensions: string[] = [];\n readonly contentEncodings = ['deflate'];\n readonly isSupported = true;\n\n readonly options: DeflateCompressionOptions;\n\n private _chunks: ArrayBuffer[] = [];\n\n constructor(options: DeflateCompressionOptions = {}) {\n super(options);\n this.options = options;\n }\n\n async compress(input: ArrayBuffer): Promise<ArrayBuffer> {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.deflate?.useZlib) {\n const buffer = this.options.deflate?.gzip\n ? await promisify1(zlib.gzip)(input)\n : await promisify1(zlib.deflate)(input);\n return toArrayBuffer(buffer);\n }\n return this.compressSync(input);\n }\n\n async decompress(input: ArrayBuffer): Promise<ArrayBuffer> {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.deflate?.useZlib) {\n const buffer = this.options.deflate?.gzip\n ? await promisify1(zlib.gunzip)(input)\n : await promisify1(zlib.inflate)(input);\n return toArrayBuffer(buffer);\n }\n return this.decompressSync(input);\n }\n\n compressSync(input: ArrayBuffer): ArrayBuffer {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.deflate?.useZlib) {\n const buffer = this.options.deflate?.gzip ? zlib.gzipSync(input) : zlib.deflateSync(input);\n return toArrayBuffer(buffer);\n }\n const pakoOptions: pako.DeflateOptions = this.options?.deflate || {};\n const inputArray = new Uint8Array(input);\n return pako.deflate(inputArray, pakoOptions).buffer;\n }\n\n decompressSync(input: ArrayBuffer): ArrayBuffer {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.deflate?.useZlib) {\n const buffer = this.options.deflate?.gzip ? zlib.gunzipSync(input) : zlib.inflateSync(input);\n return toArrayBuffer(buffer);\n }\n const pakoOptions: pako.InflateOptions = this.options?.deflate || {};\n const inputArray = new Uint8Array(input);\n return pako.inflate(inputArray, pakoOptions).buffer;\n }\n\n async *compressBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n const pakoOptions: pako.DeflateOptions = this.options?.deflate || {};\n const pakoProcessor = new pako.Deflate(pakoOptions);\n yield* this.transformBatches(pakoProcessor, asyncIterator);\n }\n\n async *decompressBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n const pakoOptions: pako.InflateOptions = this.options?.deflate || {};\n const pakoProcessor = new pako.Inflate(pakoOptions);\n yield* this.transformBatches(pakoProcessor, asyncIterator);\n }\n\n async *transformBatches(\n pakoProcessor: pako.Inflate | pako.Deflate,\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n pakoProcessor.onData = this._onData.bind(this);\n pakoProcessor.onEnd = this._onEnd.bind(this);\n for await (const chunk of asyncIterator) {\n const uint8Array = new Uint8Array(chunk);\n const ok = pakoProcessor.push(uint8Array, false); // false -> not last chunk\n if (!ok) {\n throw new Error(`${this._getError()}write`);\n }\n const chunks = this._getChunks();\n yield* chunks;\n }\n\n // End\n const emptyChunk = new Uint8Array(0);\n const ok = pakoProcessor.push(emptyChunk, true); // true -> last chunk\n if (!ok) {\n // For some reason we get error but it still works???\n // throw new Error(this._getError() + 'end');\n }\n const chunks = this._getChunks();\n yield* chunks;\n }\n\n _onData(chunk) {\n this._chunks.push(chunk);\n }\n\n _onEnd(status) {\n if (status !== 0) {\n throw new Error(this._getError(status) + this._chunks.length);\n }\n }\n\n _getChunks(): ArrayBuffer[] {\n const chunks = this._chunks;\n this._chunks = [];\n return chunks;\n }\n\n // TODO - For some reason we don't get the error message from pako in _onEnd?\n _getError(code: number = 0): string {\n const MESSAGES = {\n /* Z_NEED_DICT 2 */\n 2: 'need dictionary',\n /* Z_STREAM_END 1 */\n 1: 'stream end',\n /* Z_OK 0 */\n 0: '',\n /* Z_ERRNO (-1) */\n '-1': 'file error',\n /* Z_STREAM_ERROR (-2) */\n '-2': 'stream error',\n /* Z_DATA_ERROR (-3) */\n '-3': 'data error',\n /* Z_MEM_ERROR (-4) */\n '-4': 'insufficient memory',\n /* Z_BUF_ERROR (-5) */\n '-5': 'buffer error',\n /* Z_VERSION_ERROR (-6) */\n '-6': 'incompatible version'\n };\n return `${this.name}: ${MESSAGES[code]}`;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"deflate-compression.js","names":["Compression","isBrowser","toArrayBuffer","pako","zlib","promisify1","DeflateCompression","constructor","options","arguments","length","undefined","_defineProperty","compress","input","_this$options$deflate","deflate","useZlib","_this$options$deflate2","buffer","gzip","compressSync","decompress","_this$options$deflate3","_this$options$deflate4","gunzip","inflate","decompressSync","_this$options$deflate5","_this$options","_this$options$deflate6","gzipSync","deflateSync","pakoOptions","inputArray","Uint8Array","_this$options$deflate7","_this$options2","_this$options$deflate8","gunzipSync","inflateSync","compressBatches","asyncIterator","_this$options3","pakoProcessor","Deflate","transformBatches","decompressBatches","_this$options4","Inflate","onData","_onData","bind","onEnd","_onEnd","chunk","uint8Array","ok","push","Error","concat","_getError","chunks","_getChunks","emptyChunk","_chunks","status","code","MESSAGES","name"],"sources":["../../../src/lib/deflate-compression.ts"],"sourcesContent":["// DEFLATE\nimport type {CompressionOptions} from './compression';\nimport {Compression} from './compression';\nimport {isBrowser, toArrayBuffer} from '@loaders.gl/loader-utils';\nimport pako from 'pako'; // https://bundlephobia.com/package/pako\nimport zlib from 'zlib';\nimport {promisify1} from '@loaders.gl/loader-utils';\n\nexport type DeflateCompressionOptions = CompressionOptions & {\n deflate?: pako.InflateOptions & pako.DeflateOptions & {useZlib?: boolean};\n};\n\n/**\n * DEFLATE compression / decompression\n */\nexport class DeflateCompression extends Compression {\n readonly name: string = 'deflate';\n readonly extensions: string[] = [];\n readonly contentEncodings = ['deflate'];\n readonly isSupported = true;\n\n readonly options: DeflateCompressionOptions;\n\n private _chunks: ArrayBuffer[] = [];\n\n constructor(options: DeflateCompressionOptions = {}) {\n super(options);\n this.options = options;\n }\n\n async compress(input: ArrayBuffer): Promise<ArrayBuffer> {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.deflate?.useZlib) {\n const buffer = this.options.deflate?.gzip\n ? await promisify1(zlib.gzip)(input)\n : await promisify1(zlib.deflate)(input);\n return toArrayBuffer(buffer);\n }\n return this.compressSync(input);\n }\n\n async decompress(input: ArrayBuffer): Promise<ArrayBuffer> {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.deflate?.useZlib) {\n const buffer = this.options.deflate?.gzip\n ? await promisify1(zlib.gunzip)(input)\n : await promisify1(zlib.inflate)(input);\n return toArrayBuffer(buffer);\n }\n return this.decompressSync(input);\n }\n\n compressSync(input: ArrayBuffer): ArrayBuffer {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.deflate?.useZlib) {\n const buffer = this.options.deflate?.gzip ? zlib.gzipSync(input) : zlib.deflateSync(input);\n return toArrayBuffer(buffer);\n }\n const pakoOptions: pako.DeflateOptions = this.options?.deflate || {};\n const inputArray = new Uint8Array(input);\n return pako.deflate(inputArray, pakoOptions).buffer;\n }\n\n decompressSync(input: ArrayBuffer): ArrayBuffer {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.deflate?.useZlib) {\n const buffer = this.options.deflate?.gzip ? zlib.gunzipSync(input) : zlib.inflateSync(input);\n return toArrayBuffer(buffer);\n }\n const pakoOptions: pako.InflateOptions = this.options?.deflate || {};\n const inputArray = new Uint8Array(input);\n return pako.inflate(inputArray, pakoOptions).buffer;\n }\n\n async *compressBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n const pakoOptions: pako.DeflateOptions = this.options?.deflate || {};\n const pakoProcessor = new pako.Deflate(pakoOptions);\n yield* this.transformBatches(pakoProcessor, asyncIterator);\n }\n\n async *decompressBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n const pakoOptions: pako.InflateOptions = this.options?.deflate || {};\n const pakoProcessor = new pako.Inflate(pakoOptions);\n yield* this.transformBatches(pakoProcessor, asyncIterator);\n }\n\n async *transformBatches(\n pakoProcessor: pako.Inflate | pako.Deflate,\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n pakoProcessor.onData = this._onData.bind(this);\n pakoProcessor.onEnd = this._onEnd.bind(this);\n for await (const chunk of asyncIterator) {\n const uint8Array = new Uint8Array(chunk);\n const ok = pakoProcessor.push(uint8Array, false); // false -> not last chunk\n if (!ok) {\n throw new Error(`${this._getError()}write`);\n }\n const chunks = this._getChunks();\n yield* chunks;\n }\n\n // End\n const emptyChunk = new Uint8Array(0);\n const ok = pakoProcessor.push(emptyChunk, true); // true -> last chunk\n if (!ok) {\n // For some reason we get error but it still works???\n // throw new Error(this._getError() + 'end');\n }\n const chunks = this._getChunks();\n yield* chunks;\n }\n\n _onData(chunk) {\n this._chunks.push(chunk);\n }\n\n _onEnd(status) {\n if (status !== 0) {\n throw new Error(this._getError(status) + this._chunks.length);\n }\n }\n\n _getChunks(): ArrayBuffer[] {\n const chunks = this._chunks;\n this._chunks = [];\n return chunks;\n }\n\n // TODO - For some reason we don't get the error message from pako in _onEnd?\n _getError(code: number = 0): string {\n const MESSAGES = {\n /* Z_NEED_DICT 2 */\n 2: 'need dictionary',\n /* Z_STREAM_END 1 */\n 1: 'stream end',\n /* Z_OK 0 */\n 0: '',\n /* Z_ERRNO (-1) */\n '-1': 'file error',\n /* Z_STREAM_ERROR (-2) */\n '-2': 'stream error',\n /* Z_DATA_ERROR (-3) */\n '-3': 'data error',\n /* Z_MEM_ERROR (-4) */\n '-4': 'insufficient memory',\n /* Z_BUF_ERROR (-5) */\n '-5': 'buffer error',\n /* Z_VERSION_ERROR (-6) */\n '-6': 'incompatible version'\n };\n return `${this.name}: ${MESSAGES[code]}`;\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lzo-compression.js","names":["toBuffer","Compression","lzo","LZOCompression","constructor","options","_this$options","_this$options$modules","_defineProperty","modules","Error","name","preload","compress","input","inputBuffer","buffer","decompress","error"],"sources":["../../../src/lib/lzo-compression.ts"],"sourcesContent":["// LZO\n// import {loadLibrary} from '@loaders.gl/worker-utils';\nimport {toBuffer} from '@loaders.gl/loader-utils';\n\nimport type {CompressionOptions} from './compression';\nimport {Compression} from './compression';\n// import {isBrowser} from '@loaders.gl/loader-utils';\n\n// import lzo from 'lzo'; // https://bundlephobia.com/package/lzo\n// import {decompress} from 'lzo-wasm';\n\n// const LZO_WASM_JS_URL = './node_modules/lzo-wasm/lzo-wasm.js';\n// const LZO_WASM_WASM_URL = './node_modules/lzo-wasm/lzo-wasm.wasm';\n\nlet lzo;\n\n/**\n * Lempel-Ziv-Oberheimer compression / decompression\n */\nexport class LZOCompression extends Compression {\n readonly name = 'lzo';\n readonly extensions = [];\n readonly contentEncodings = [];\n readonly isSupported = false; // !isBrowser;\n readonly options: CompressionOptions;\n\n /**\n * lzo is an injectable dependency due to big size\n * @param options\n */\n constructor(options: CompressionOptions) {\n super(options);\n this.options = options;\n\n lzo = lzo || this.options?.modules?.lzo;\n if (!lzo) {\n throw new Error(this.name);\n }\n }\n\n async preload() {\n // await loadLibrary(LZO_WASM_JS_URL);\n // await loadLibrary(LZO_WASM_WASM_URL);\n }\n\n async compress(input: ArrayBuffer): Promise<ArrayBuffer> {\n await this.preload();\n // const inputArray = new Uint8Array(input);\n const inputBuffer = toBuffer(input);\n return lzo.compress(inputBuffer).buffer;\n }\n\n async decompress(input: ArrayBuffer): Promise<ArrayBuffer> {\n try {\n await this.preload();\n // const inputArray = new Uint8Array(input);\n const inputBuffer = toBuffer(input);\n return lzo.decompress(inputBuffer).buffer;\n } catch (error) {\n // TODO - solve SharedArrayBuffer issues\n // return decompress(input);\n throw error;\n }\n }\n}\n"],"mappings":";AAEA,SAAQA,QAAQ,QAAO,0BAA0B;AAGjD,SAAQC,WAAW,QAAO,eAAe;AASzC,IAAIC,GAAG;AAKP,OAAO,MAAMC,cAAc,SAASF,WAAW,CAAC;EAW9CG,WAAWA,CAACC,OAA2B,EAAE;IAAA,IAAAC,aAAA,EAAAC,qBAAA;IACvC,KAAK,CAACF,OAAO,CAAC;IAACG,eAAA,eAXD,KAAK;IAAAA,eAAA,qBACC,EAAE;IAAAA,eAAA,2BACI,EAAE;IAAAA,eAAA,sBACP,KAAK;IAAAA,eAAA;IAS1B,IAAI,CAACH,OAAO,GAAGA,OAAO;IAEtBH,GAAG,GAAGA,GAAG,MAAAI,aAAA,GAAI,IAAI,CAACD,OAAO,cAAAC,aAAA,wBAAAC,qBAAA,GAAZD,aAAA,CAAcG,OAAO,cAAAF,qBAAA,uBAArBA,qBAAA,CAAuBL,GAAG;IACvC,IAAI,CAACA,GAAG,EAAE;MACR,MAAM,IAAIQ,KAAK,CAAC,IAAI,CAACC,IAAI,CAAC;IAC5B;EACF;EAEA,MAAMC,OAAOA,CAAA,EAAG,CAGhB;EAEA,MAAMC,QAAQA,CAACC,KAAkB,EAAwB;IACvD,MAAM,IAAI,CAACF,OAAO,EAAE;IAEpB,MAAMG,WAAW,GAAGf,QAAQ,CAACc,KAAK,CAAC;IACnC,OAAOZ,GAAG,CAACW,QAAQ,CAACE,WAAW,CAAC,CAACC,MAAM;EACzC;EAEA,MAAMC,UAAUA,CAACH,KAAkB,EAAwB;IACzD,IAAI;MACF,MAAM,IAAI,CAACF,OAAO,EAAE;MAEpB,MAAMG,WAAW,GAAGf,QAAQ,CAACc,KAAK,CAAC;MACnC,OAAOZ,GAAG,CAACe,UAAU,CAACF,WAAW,CAAC,CAACC,MAAM;IAC3C,CAAC,CAAC,OAAOE,KAAK,EAAE;MAGd,MAAMA,KAAK;IACb;EACF;AACF"}
1
+ {"version":3,"file":"lzo-compression.js","names":["toBuffer","Compression","lzo","LZOCompression","constructor","options","_this$options","_this$options$modules","_defineProperty","modules","Error","name","preload","compress","input","inputBuffer","buffer","decompress","error"],"sources":["../../../src/lib/lzo-compression.ts"],"sourcesContent":["// LZO\n// import {loadLibrary} from '@loaders.gl/worker-utils';\nimport {toBuffer} from '@loaders.gl/loader-utils';\n\nimport type {CompressionOptions} from './compression';\nimport {Compression} from './compression';\n// import {isBrowser} from '@loaders.gl/loader-utils';\n\n// import lzo from 'lzo'; // https://bundlephobia.com/package/lzo\n// import {decompress} from 'lzo-wasm';\n\n// const LZO_WASM_JS_URL = './node_modules/lzo-wasm/lzo-wasm.js';\n// const LZO_WASM_WASM_URL = './node_modules/lzo-wasm/lzo-wasm.wasm';\n\nlet lzo;\n\n/**\n * Lempel-Ziv-Oberheimer compression / decompression\n */\nexport class LZOCompression extends Compression {\n readonly name = 'lzo';\n readonly extensions = [];\n readonly contentEncodings = [];\n readonly isSupported = false; // !isBrowser;\n readonly options: CompressionOptions;\n\n /**\n * lzo is an injectable dependency due to big size\n * @param options\n */\n constructor(options: CompressionOptions) {\n super(options);\n this.options = options;\n\n lzo = lzo || this.options?.modules?.lzo;\n if (!lzo) {\n throw new Error(this.name);\n }\n }\n\n async preload() {\n // await loadLibrary(LZO_WASM_JS_URL);\n // await loadLibrary(LZO_WASM_WASM_URL);\n }\n\n async compress(input: ArrayBuffer): Promise<ArrayBuffer> {\n await this.preload();\n // const inputArray = new Uint8Array(input);\n const inputBuffer = toBuffer(input);\n return lzo.compress(inputBuffer).buffer;\n }\n\n async decompress(input: ArrayBuffer): Promise<ArrayBuffer> {\n try {\n await this.preload();\n // const inputArray = new Uint8Array(input);\n const inputBuffer = toBuffer(input);\n return lzo.decompress(inputBuffer).buffer;\n } catch (error) {\n // TODO - solve SharedArrayBuffer issues\n // return decompress(input);\n throw error;\n }\n }\n}\n"],"mappings":";AAEA,SAAQA,QAAQ,QAAO,0BAA0B;AAGjD,SAAQC,WAAW,QAAO,eAAe;AASzC,IAAIC,GAAG;AAKP,OAAO,MAAMC,cAAc,SAASF,WAAW,CAAC;EAW9CG,WAAWA,CAACC,OAA2B,EAAE;IAAA,IAAAC,aAAA,EAAAC,qBAAA;IACvC,KAAK,CAACF,OAAO,CAAC;IAACG,eAAA,eAXD,KAAK;IAAAA,eAAA,qBACC,EAAE;IAAAA,eAAA,2BACI,EAAE;IAAAA,eAAA,sBACP,KAAK;IAAAA,eAAA;IAS1B,IAAI,CAACH,OAAO,GAAGA,OAAO;IAEtBH,GAAG,GAAGA,GAAG,MAAAI,aAAA,GAAI,IAAI,CAACD,OAAO,cAAAC,aAAA,wBAAAC,qBAAA,GAAZD,aAAA,CAAcG,OAAO,cAAAF,qBAAA,uBAArBA,qBAAA,CAAuBL,GAAG;IACvC,IAAI,CAACA,GAAG,EAAE;MACR,MAAM,IAAIQ,KAAK,CAAC,IAAI,CAACC,IAAI,CAAC;IAC5B;EACF;EAEA,MAAMC,OAAOA,CAAA,EAAG,CAGhB;EAEA,MAAMC,QAAQA,CAACC,KAAkB,EAAwB;IACvD,MAAM,IAAI,CAACF,OAAO,CAAC,CAAC;IAEpB,MAAMG,WAAW,GAAGf,QAAQ,CAACc,KAAK,CAAC;IACnC,OAAOZ,GAAG,CAACW,QAAQ,CAACE,WAAW,CAAC,CAACC,MAAM;EACzC;EAEA,MAAMC,UAAUA,CAACH,KAAkB,EAAwB;IACzD,IAAI;MACF,MAAM,IAAI,CAACF,OAAO,CAAC,CAAC;MAEpB,MAAMG,WAAW,GAAGf,QAAQ,CAACc,KAAK,CAAC;MACnC,OAAOZ,GAAG,CAACe,UAAU,CAACF,WAAW,CAAC,CAACC,MAAM;IAC3C,CAAC,CAAC,OAAOE,KAAK,EAAE;MAGd,MAAMA,KAAK;IACb;EACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"zstd-compression.js","names":["Compression","ZstdCodec","zstd","ZstdCompression","constructor","options","_this$options","_this$options$modules","_defineProperty","modules","console","warn","concat","name","preload","Promise","resolve","run","compressSync","input","simpleZstd","Simple","inputArray","Uint8Array","compress","buffer","decompressSync","decompress"],"sources":["../../../src/lib/zstd-compression.ts"],"sourcesContent":["// ZSTD\nimport type {CompressionOptions} from './compression';\nimport {Compression} from './compression';\n// import {ZstdCodec} from 'zstd-codec'; // https://bundlephobia.com/package/zstd-codec\n\nlet ZstdCodec;\nlet zstd;\n\n/**\n * Zstandard compression / decompression\n */\nexport class ZstdCompression extends Compression {\n readonly name: string = 'zstd';\n readonly extensions = [];\n readonly contentEncodings = [];\n readonly isSupported = true;\n readonly options: CompressionOptions;\n\n /**\n * zstd-codec is an injectable dependency due to big size\n * @param options\n */\n constructor(options: CompressionOptions) {\n super(options);\n this.options = options;\n\n ZstdCodec = this.options?.modules?.['zstd-codec'];\n if (!ZstdCodec) {\n // eslint-disable-next-line no-console\n console.warn(`${this.name} library not installed`);\n }\n }\n\n async preload(): Promise<void> {\n if (!zstd && ZstdCodec) {\n zstd = await new Promise((resolve) => ZstdCodec.run((zstd) => resolve(zstd)));\n }\n }\n\n compressSync(input: ArrayBuffer): ArrayBuffer {\n const simpleZstd = new zstd.Simple();\n const inputArray = new Uint8Array(input);\n return simpleZstd.compress(inputArray).buffer;\n }\n\n decompressSync(input: ArrayBuffer): ArrayBuffer {\n const simpleZstd = new zstd.Simple();\n // var ddict = new zstd.Dict.Decompression(dictData);\n // var jsonBytes = simpleZstd.decompressUsingDict(jsonZstData, ddict);\n const inputArray = new Uint8Array(input);\n return simpleZstd.decompress(inputArray).buffer;\n }\n}\n"],"mappings":";AAEA,SAAQA,WAAW,QAAO,eAAe;AAGzC,IAAIC,SAAS;AACb,IAAIC,IAAI;AAKR,OAAO,MAAMC,eAAe,SAASH,WAAW,CAAC;EAW/CI,WAAWA,CAACC,OAA2B,EAAE;IAAA,IAAAC,aAAA,EAAAC,qBAAA;IACvC,KAAK,CAACF,OAAO,CAAC;IAACG,eAAA,eAXO,MAAM;IAAAA,eAAA,qBACR,EAAE;IAAAA,eAAA,2BACI,EAAE;IAAAA,eAAA,sBACP,IAAI;IAAAA,eAAA;IASzB,IAAI,CAACH,OAAO,GAAGA,OAAO;IAEtBJ,SAAS,IAAAK,aAAA,GAAG,IAAI,CAACD,OAAO,cAAAC,aAAA,wBAAAC,qBAAA,GAAZD,aAAA,CAAcG,OAAO,cAAAF,qBAAA,uBAArBA,qBAAA,CAAwB,YAAY,CAAC;IACjD,IAAI,CAACN,SAAS,EAAE;MAEdS,OAAO,CAACC,IAAI,IAAAC,MAAA,CAAI,IAAI,CAACC,IAAI,4BAAyB;IACpD;EACF;EAEA,MAAMC,OAAOA,CAAA,EAAkB;IAC7B,IAAI,CAACZ,IAAI,IAAID,SAAS,EAAE;MACtBC,IAAI,GAAG,MAAM,IAAIa,OAAO,CAAEC,OAAO,IAAKf,SAAS,CAACgB,GAAG,CAAEf,IAAI,IAAKc,OAAO,CAACd,IAAI,CAAC,CAAC,CAAC;IAC/E;EACF;EAEAgB,YAAYA,CAACC,KAAkB,EAAe;IAC5C,MAAMC,UAAU,GAAG,IAAIlB,IAAI,CAACmB,MAAM,EAAE;IACpC,MAAMC,UAAU,GAAG,IAAIC,UAAU,CAACJ,KAAK,CAAC;IACxC,OAAOC,UAAU,CAACI,QAAQ,CAACF,UAAU,CAAC,CAACG,MAAM;EAC/C;EAEAC,cAAcA,CAACP,KAAkB,EAAe;IAC9C,MAAMC,UAAU,GAAG,IAAIlB,IAAI,CAACmB,MAAM,EAAE;IAGpC,MAAMC,UAAU,GAAG,IAAIC,UAAU,CAACJ,KAAK,CAAC;IACxC,OAAOC,UAAU,CAACO,UAAU,CAACL,UAAU,CAAC,CAACG,MAAM;EACjD;AACF"}
1
+ {"version":3,"file":"zstd-compression.js","names":["Compression","ZstdCodec","zstd","ZstdCompression","constructor","options","_this$options","_this$options$modules","_defineProperty","modules","console","warn","concat","name","preload","Promise","resolve","run","compressSync","input","simpleZstd","Simple","inputArray","Uint8Array","compress","buffer","decompressSync","decompress"],"sources":["../../../src/lib/zstd-compression.ts"],"sourcesContent":["// ZSTD\nimport type {CompressionOptions} from './compression';\nimport {Compression} from './compression';\n// import {ZstdCodec} from 'zstd-codec'; // https://bundlephobia.com/package/zstd-codec\n\nlet ZstdCodec;\nlet zstd;\n\n/**\n * Zstandard compression / decompression\n */\nexport class ZstdCompression extends Compression {\n readonly name: string = 'zstd';\n readonly extensions = [];\n readonly contentEncodings = [];\n readonly isSupported = true;\n readonly options: CompressionOptions;\n\n /**\n * zstd-codec is an injectable dependency due to big size\n * @param options\n */\n constructor(options: CompressionOptions) {\n super(options);\n this.options = options;\n\n ZstdCodec = this.options?.modules?.['zstd-codec'];\n if (!ZstdCodec) {\n // eslint-disable-next-line no-console\n console.warn(`${this.name} library not installed`);\n }\n }\n\n async preload(): Promise<void> {\n if (!zstd && ZstdCodec) {\n zstd = await new Promise((resolve) => ZstdCodec.run((zstd) => resolve(zstd)));\n }\n }\n\n compressSync(input: ArrayBuffer): ArrayBuffer {\n const simpleZstd = new zstd.Simple();\n const inputArray = new Uint8Array(input);\n return simpleZstd.compress(inputArray).buffer;\n }\n\n decompressSync(input: ArrayBuffer): ArrayBuffer {\n const simpleZstd = new zstd.Simple();\n // var ddict = new zstd.Dict.Decompression(dictData);\n // var jsonBytes = simpleZstd.decompressUsingDict(jsonZstData, ddict);\n const inputArray = new Uint8Array(input);\n return simpleZstd.decompress(inputArray).buffer;\n }\n}\n"],"mappings":";AAEA,SAAQA,WAAW,QAAO,eAAe;AAGzC,IAAIC,SAAS;AACb,IAAIC,IAAI;AAKR,OAAO,MAAMC,eAAe,SAASH,WAAW,CAAC;EAW/CI,WAAWA,CAACC,OAA2B,EAAE;IAAA,IAAAC,aAAA,EAAAC,qBAAA;IACvC,KAAK,CAACF,OAAO,CAAC;IAACG,eAAA,eAXO,MAAM;IAAAA,eAAA,qBACR,EAAE;IAAAA,eAAA,2BACI,EAAE;IAAAA,eAAA,sBACP,IAAI;IAAAA,eAAA;IASzB,IAAI,CAACH,OAAO,GAAGA,OAAO;IAEtBJ,SAAS,IAAAK,aAAA,GAAG,IAAI,CAACD,OAAO,cAAAC,aAAA,wBAAAC,qBAAA,GAAZD,aAAA,CAAcG,OAAO,cAAAF,qBAAA,uBAArBA,qBAAA,CAAwB,YAAY,CAAC;IACjD,IAAI,CAACN,SAAS,EAAE;MAEdS,OAAO,CAACC,IAAI,IAAAC,MAAA,CAAI,IAAI,CAACC,IAAI,2BAAwB,CAAC;IACpD;EACF;EAEA,MAAMC,OAAOA,CAAA,EAAkB;IAC7B,IAAI,CAACZ,IAAI,IAAID,SAAS,EAAE;MACtBC,IAAI,GAAG,MAAM,IAAIa,OAAO,CAAEC,OAAO,IAAKf,SAAS,CAACgB,GAAG,CAAEf,IAAI,IAAKc,OAAO,CAACd,IAAI,CAAC,CAAC,CAAC;IAC/E;EACF;EAEAgB,YAAYA,CAACC,KAAkB,EAAe;IAC5C,MAAMC,UAAU,GAAG,IAAIlB,IAAI,CAACmB,MAAM,CAAC,CAAC;IACpC,MAAMC,UAAU,GAAG,IAAIC,UAAU,CAACJ,KAAK,CAAC;IACxC,OAAOC,UAAU,CAACI,QAAQ,CAACF,UAAU,CAAC,CAACG,MAAM;EAC/C;EAEAC,cAAcA,CAACP,KAAkB,EAAe;IAC9C,MAAMC,UAAU,GAAG,IAAIlB,IAAI,CAACmB,MAAM,CAAC,CAAC;IAGpC,MAAMC,UAAU,GAAG,IAAIC,UAAU,CAACJ,KAAK,CAAC;IACxC,OAAOC,UAAU,CAACO,UAAU,CAACL,UAAU,CAAC,CAACG,MAAM;EACjD;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","names":["createWorker","NoCompression","BrotliCompression","DeflateCompression","GZipCompression","LZ4Compression","SnappyCompression","ZstdCompression","lz4js","modules","COMPRESSIONS","data","options","arguments","length","undefined","operation","getOperation","String","compression","getCompression","compress","decompress","Error","concat","name","Compression","find","compression_"],"sources":["../../../src/workers/worker.ts"],"sourcesContent":["import {createWorker} from '@loaders.gl/worker-utils';\n\n// Compressors\nimport {NoCompression} from '../lib/no-compression';\nimport {BrotliCompression} from '../lib/brotli-compression';\nimport {DeflateCompression} from '../lib/deflate-compression';\nimport {GZipCompression} from '../lib/gzip-compression';\nimport {LZ4Compression} from '../lib/lz4-compression';\n// import {LZOCompression} from '../lib/lzo-compression';\nimport {SnappyCompression} from '../lib/snappy-compression';\nimport {ZstdCompression} from '../lib/zstd-compression';\n\n// Import big dependencies\n\n// import brotli from 'brotli'; - brotli has problems with decompress in browsers\n// import brotliDecompress from 'brotli/decompress';\nimport lz4js from 'lz4js';\n// import lzo from 'lzo';\n// import {ZstdCodec} from 'zstd-codec';\n\n// Inject large dependencies through Compression constructor options\nconst modules = {\n // brotli has problems with decompress in browsers\n // brotli: {\n // decompress: brotliDecompress,\n // compress: () => {\n // throw new Error('brotli compress');\n // }\n // },\n lz4js\n // lzo,\n // 'zstd-codec': ZstdCodec\n};\n\n/** @type {Compression[]} */\nconst COMPRESSIONS = [\n new NoCompression({modules}),\n new BrotliCompression({modules}),\n new DeflateCompression({modules}),\n new GZipCompression({modules}),\n // new LZOCompression({modules}),\n new LZ4Compression({modules}),\n new SnappyCompression({modules}),\n new ZstdCompression({modules})\n];\n\ncreateWorker(async (data, options = {}) => {\n const operation = getOperation(String(options?.operation));\n const compression = getCompression(String(options?.compression));\n\n // @ts-ignore\n switch (operation) {\n case 'compress':\n return await compression.compress(data);\n case 'decompress':\n return await compression.decompress(data);\n default:\n throw new Error('invalid option');\n }\n});\n\nfunction getOperation(operation: string): 'compress' | 'decompress' {\n switch (operation) {\n case 'compress':\n case 'deflate':\n return 'compress';\n case 'decompress':\n case 'inflate':\n return 'decompress';\n default:\n throw new Error(\n `@loaders.gl/compression: Unsupported operation ${operation}. Expected 'compress' or 'decompress'`\n );\n }\n}\n\nfunction getCompression(name: string) {\n const Compression = COMPRESSIONS.find((compression_) => name === compression_.name);\n if (!Compression) {\n throw new Error(`@loaders.gl/compression: Unsupported compression ${name}`);\n }\n return Compression;\n}\n"],"mappings":"AAAA,SAAQA,YAAY,QAAO,0BAA0B;AAGrD,SAAQC,aAAa,QAAO,uBAAuB;AACnD,SAAQC,iBAAiB,QAAO,2BAA2B;AAC3D,SAAQC,kBAAkB,QAAO,4BAA4B;AAC7D,SAAQC,eAAe,QAAO,yBAAyB;AACvD,SAAQC,cAAc,QAAO,wBAAwB;AAErD,SAAQC,iBAAiB,QAAO,2BAA2B;AAC3D,SAAQC,eAAe,QAAO,yBAAyB;AAMvD,OAAOC,KAAK,MAAM,OAAO;AAKzB,MAAMC,OAAO,GAAG;EAQdD;AAGF,CAAC;AAGD,MAAME,YAAY,GAAG,CACnB,IAAIT,aAAa,CAAC;EAACQ;AAAO,CAAC,CAAC,EAC5B,IAAIP,iBAAiB,CAAC;EAACO;AAAO,CAAC,CAAC,EAChC,IAAIN,kBAAkB,CAAC;EAACM;AAAO,CAAC,CAAC,EACjC,IAAIL,eAAe,CAAC;EAACK;AAAO,CAAC,CAAC,EAE9B,IAAIJ,cAAc,CAAC;EAACI;AAAO,CAAC,CAAC,EAC7B,IAAIH,iBAAiB,CAAC;EAACG;AAAO,CAAC,CAAC,EAChC,IAAIF,eAAe,CAAC;EAACE;AAAO,CAAC,CAAC,CAC/B;AAEDT,YAAY,CAAC,gBAAOW,IAAI,EAAmB;EAAA,IAAjBC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACpC,MAAMG,SAAS,GAAGC,YAAY,CAACC,MAAM,CAACN,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEI,SAAS,CAAC,CAAC;EAC1D,MAAMG,WAAW,GAAGC,cAAc,CAACF,MAAM,CAACN,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEO,WAAW,CAAC,CAAC;EAGhE,QAAQH,SAAS;IACf,KAAK,UAAU;MACb,OAAO,MAAMG,WAAW,CAACE,QAAQ,CAACV,IAAI,CAAC;IACzC,KAAK,YAAY;MACf,OAAO,MAAMQ,WAAW,CAACG,UAAU,CAACX,IAAI,CAAC;IAC3C;MACE,MAAM,IAAIY,KAAK,CAAC,gBAAgB,CAAC;EAAC;AAExC,CAAC,CAAC;AAEF,SAASN,YAAYA,CAACD,SAAiB,EAA6B;EAClE,QAAQA,SAAS;IACf,KAAK,UAAU;IACf,KAAK,SAAS;MACZ,OAAO,UAAU;IACnB,KAAK,YAAY;IACjB,KAAK,SAAS;MACZ,OAAO,YAAY;IACrB;MACE,MAAM,IAAIO,KAAK,mDAAAC,MAAA,CACqCR,SAAS,2CAC5D;EAAC;AAER;AAEA,SAASI,cAAcA,CAACK,IAAY,EAAE;EACpC,MAAMC,WAAW,GAAGhB,YAAY,CAACiB,IAAI,CAAEC,YAAY,IAAKH,IAAI,KAAKG,YAAY,CAACH,IAAI,CAAC;EACnF,IAAI,CAACC,WAAW,EAAE;IAChB,MAAM,IAAIH,KAAK,qDAAAC,MAAA,CAAqDC,IAAI,EAAG;EAC7E;EACA,OAAOC,WAAW;AACpB"}
1
+ {"version":3,"file":"worker.js","names":["createWorker","NoCompression","BrotliCompression","DeflateCompression","GZipCompression","LZ4Compression","SnappyCompression","ZstdCompression","lz4js","modules","COMPRESSIONS","data","options","arguments","length","undefined","operation","getOperation","String","compression","getCompression","compress","decompress","Error","concat","name","Compression","find","compression_"],"sources":["../../../src/workers/worker.ts"],"sourcesContent":["import {createWorker} from '@loaders.gl/worker-utils';\n\n// Compressors\nimport {NoCompression} from '../lib/no-compression';\nimport {BrotliCompression} from '../lib/brotli-compression';\nimport {DeflateCompression} from '../lib/deflate-compression';\nimport {GZipCompression} from '../lib/gzip-compression';\nimport {LZ4Compression} from '../lib/lz4-compression';\n// import {LZOCompression} from '../lib/lzo-compression';\nimport {SnappyCompression} from '../lib/snappy-compression';\nimport {ZstdCompression} from '../lib/zstd-compression';\n\n// Import big dependencies\n\n// import brotli from 'brotli'; - brotli has problems with decompress in browsers\n// import brotliDecompress from 'brotli/decompress';\nimport lz4js from 'lz4js';\n// import lzo from 'lzo';\n// import {ZstdCodec} from 'zstd-codec';\n\n// Inject large dependencies through Compression constructor options\nconst modules = {\n // brotli has problems with decompress in browsers\n // brotli: {\n // decompress: brotliDecompress,\n // compress: () => {\n // throw new Error('brotli compress');\n // }\n // },\n lz4js\n // lzo,\n // 'zstd-codec': ZstdCodec\n};\n\n/** @type {Compression[]} */\nconst COMPRESSIONS = [\n new NoCompression({modules}),\n new BrotliCompression({modules}),\n new DeflateCompression({modules}),\n new GZipCompression({modules}),\n // new LZOCompression({modules}),\n new LZ4Compression({modules}),\n new SnappyCompression({modules}),\n new ZstdCompression({modules})\n];\n\ncreateWorker(async (data, options = {}) => {\n const operation = getOperation(String(options?.operation));\n const compression = getCompression(String(options?.compression));\n\n // @ts-ignore\n switch (operation) {\n case 'compress':\n return await compression.compress(data);\n case 'decompress':\n return await compression.decompress(data);\n default:\n throw new Error('invalid option');\n }\n});\n\nfunction getOperation(operation: string): 'compress' | 'decompress' {\n switch (operation) {\n case 'compress':\n case 'deflate':\n return 'compress';\n case 'decompress':\n case 'inflate':\n return 'decompress';\n default:\n throw new Error(\n `@loaders.gl/compression: Unsupported operation ${operation}. Expected 'compress' or 'decompress'`\n );\n }\n}\n\nfunction getCompression(name: string) {\n const Compression = COMPRESSIONS.find((compression_) => name === compression_.name);\n if (!Compression) {\n throw new Error(`@loaders.gl/compression: Unsupported compression ${name}`);\n }\n return Compression;\n}\n"],"mappings":"AAAA,SAAQA,YAAY,QAAO,0BAA0B;AAGrD,SAAQC,aAAa,QAAO,uBAAuB;AACnD,SAAQC,iBAAiB,QAAO,2BAA2B;AAC3D,SAAQC,kBAAkB,QAAO,4BAA4B;AAC7D,SAAQC,eAAe,QAAO,yBAAyB;AACvD,SAAQC,cAAc,QAAO,wBAAwB;AAErD,SAAQC,iBAAiB,QAAO,2BAA2B;AAC3D,SAAQC,eAAe,QAAO,yBAAyB;AAMvD,OAAOC,KAAK,MAAM,OAAO;AAKzB,MAAMC,OAAO,GAAG;EAQdD;AAGF,CAAC;AAGD,MAAME,YAAY,GAAG,CACnB,IAAIT,aAAa,CAAC;EAACQ;AAAO,CAAC,CAAC,EAC5B,IAAIP,iBAAiB,CAAC;EAACO;AAAO,CAAC,CAAC,EAChC,IAAIN,kBAAkB,CAAC;EAACM;AAAO,CAAC,CAAC,EACjC,IAAIL,eAAe,CAAC;EAACK;AAAO,CAAC,CAAC,EAE9B,IAAIJ,cAAc,CAAC;EAACI;AAAO,CAAC,CAAC,EAC7B,IAAIH,iBAAiB,CAAC;EAACG;AAAO,CAAC,CAAC,EAChC,IAAIF,eAAe,CAAC;EAACE;AAAO,CAAC,CAAC,CAC/B;AAEDT,YAAY,CAAC,gBAAOW,IAAI,EAAmB;EAAA,IAAjBC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACpC,MAAMG,SAAS,GAAGC,YAAY,CAACC,MAAM,CAACN,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEI,SAAS,CAAC,CAAC;EAC1D,MAAMG,WAAW,GAAGC,cAAc,CAACF,MAAM,CAACN,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEO,WAAW,CAAC,CAAC;EAGhE,QAAQH,SAAS;IACf,KAAK,UAAU;MACb,OAAO,MAAMG,WAAW,CAACE,QAAQ,CAACV,IAAI,CAAC;IACzC,KAAK,YAAY;MACf,OAAO,MAAMQ,WAAW,CAACG,UAAU,CAACX,IAAI,CAAC;IAC3C;MACE,MAAM,IAAIY,KAAK,CAAC,gBAAgB,CAAC;EACrC;AACF,CAAC,CAAC;AAEF,SAASN,YAAYA,CAACD,SAAiB,EAA6B;EAClE,QAAQA,SAAS;IACf,KAAK,UAAU;IACf,KAAK,SAAS;MACZ,OAAO,UAAU;IACnB,KAAK,YAAY;IACjB,KAAK,SAAS;MACZ,OAAO,YAAY;IACrB;MACE,MAAM,IAAIO,KAAK,mDAAAC,MAAA,CACqCR,SAAS,0CAC7D,CAAC;EACL;AACF;AAEA,SAASI,cAAcA,CAACK,IAAY,EAAE;EACpC,MAAMC,WAAW,GAAGhB,YAAY,CAACiB,IAAI,CAAEC,YAAY,IAAKH,IAAI,KAAKG,YAAY,CAACH,IAAI,CAAC;EACnF,IAAI,CAACC,WAAW,EAAE;IAChB,MAAM,IAAIH,KAAK,qDAAAC,MAAA,CAAqDC,IAAI,CAAE,CAAC;EAC7E;EACA,OAAOC,WAAW;AACpB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/compression",
3
- "version": "3.4.0-alpha.3",
3
+ "version": "3.4.0-alpha.4",
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.4.0-alpha.3",
42
- "@loaders.gl/worker-utils": "3.4.0-alpha.3",
41
+ "@loaders.gl/loader-utils": "3.4.0-alpha.4",
42
+ "@loaders.gl/worker-utils": "3.4.0-alpha.4",
43
43
  "@types/brotli": "^1.3.0",
44
44
  "@types/pako": "^1.0.1",
45
45
  "lzo-wasm": "^0.0.4",
@@ -49,14 +49,12 @@
49
49
  "optionalDependencies": {
50
50
  "brotli": "^1.3.2",
51
51
  "lz4js": "^0.2.0",
52
- "lzo": "^0.4.11",
53
52
  "zstd-codec": "^0.1"
54
53
  },
55
54
  "devDependencies": {
56
55
  "brotli": "^1.3.2",
57
56
  "lz4js": "^0.2.0",
58
- "lzo": "^0.4.11",
59
57
  "zstd-codec": "^0.1"
60
58
  },
61
- "gitHead": "a954528dd1d78a1f128d8f6b07e4baeb7a296924"
59
+ "gitHead": "f039a523df8b908a91f26c5ba8c4cfc1924b6140"
62
60
  }