@loaders.gl/compression 4.0.0-alpha.1 → 4.0.0-alpha.11
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/brotli/decode.d.ts +5 -0
- package/dist/brotli/decode.d.ts.map +1 -0
- package/dist/brotli/decode.js +2346 -0
- package/dist/bundle.d.ts +2 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +2 -2
- package/dist/compression-worker-node.js +4 -0
- package/dist/compression-worker-node.js.map +7 -0
- package/dist/compression-worker.d.ts +21 -0
- package/dist/compression-worker.d.ts.map +1 -0
- package/dist/compression-worker.js +4 -14
- package/dist/compression-worker.js.map +7 -1
- package/dist/dist.min.js +9 -2
- package/dist/dist.min.js.map +7 -1
- package/dist/es5/brotli/decode.js +1778 -0
- package/dist/es5/brotli/decode.js.map +1 -0
- package/dist/es5/bundle.js +6 -0
- package/dist/es5/bundle.js.map +1 -0
- package/dist/es5/compression-worker.js +23 -0
- package/dist/es5/compression-worker.js.map +1 -0
- package/dist/es5/index.js +82 -0
- package/dist/es5/index.js.map +1 -0
- package/dist/es5/lib/brotli-compression.js +170 -0
- package/dist/es5/lib/brotli-compression.js.map +1 -0
- package/dist/es5/lib/compression.js +160 -0
- package/dist/es5/lib/compression.js.map +1 -0
- package/dist/es5/lib/deflate-compression.js +318 -0
- package/dist/es5/lib/deflate-compression.js.map +1 -0
- package/dist/es5/lib/gzip-compression.js +40 -0
- package/dist/es5/lib/gzip-compression.js.map +1 -0
- package/dist/es5/lib/lz4-compression.js +119 -0
- package/dist/es5/lib/lz4-compression.js.map +1 -0
- package/dist/es5/lib/lzo-compression.js +116 -0
- package/dist/es5/lib/lzo-compression.js.map +1 -0
- package/dist/es5/lib/no-compression.js +87 -0
- package/dist/es5/lib/no-compression.js.map +1 -0
- package/dist/es5/lib/snappy-compression.js +48 -0
- package/dist/es5/lib/snappy-compression.js.map +1 -0
- package/dist/es5/lib/zstd-compression.js +90 -0
- package/dist/es5/lib/zstd-compression.js.map +1 -0
- package/dist/es5/types.js +2 -0
- package/dist/es5/types.js.map +1 -0
- package/dist/es5/workers/worker.js +91 -0
- package/dist/es5/workers/worker.js.map +1 -0
- package/dist/esm/brotli/decode.js +1771 -0
- package/dist/esm/brotli/decode.js.map +1 -0
- package/dist/esm/bundle.js +4 -0
- package/dist/esm/bundle.js.map +1 -0
- package/dist/esm/compression-worker.js +14 -0
- package/dist/esm/compression-worker.js.map +1 -0
- package/dist/esm/index.js +11 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lib/brotli-compression.js +84 -0
- package/dist/esm/lib/brotli-compression.js.map +1 -0
- package/dist/esm/lib/compression.js +47 -0
- package/dist/esm/lib/compression.js.map +1 -0
- package/dist/esm/lib/deflate-compression.js +118 -0
- package/dist/esm/lib/deflate-compression.js.map +1 -0
- package/dist/esm/lib/gzip-compression.js +18 -0
- package/dist/esm/lib/gzip-compression.js.map +1 -0
- package/dist/esm/lib/lz4-compression.js +88 -0
- package/dist/esm/lib/lz4-compression.js.map +1 -0
- package/dist/esm/lib/lzo-compression.js +36 -0
- package/dist/esm/lib/lzo-compression.js.map +1 -0
- package/dist/esm/lib/no-compression.js +26 -0
- package/dist/esm/lib/no-compression.js.map +1 -0
- package/dist/esm/lib/snappy-compression.js +21 -0
- package/dist/esm/lib/snappy-compression.js.map +1 -0
- package/dist/esm/lib/zstd-compression.js +36 -0
- package/dist/esm/lib/zstd-compression.js.map +1 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/workers/worker.js +60 -0
- package/dist/esm/workers/worker.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -11
- package/dist/lib/brotli-compression.d.ts +31 -0
- package/dist/lib/brotli-compression.d.ts.map +1 -0
- package/dist/lib/brotli-compression.js +83 -85
- package/dist/lib/compression.d.ts +31 -0
- package/dist/lib/compression.d.ts.map +1 -0
- package/dist/lib/compression.js +56 -61
- package/dist/lib/deflate-compression.d.ts +32 -0
- package/dist/lib/deflate-compression.d.ts.map +1 -0
- package/dist/lib/deflate-compression.js +128 -150
- package/dist/lib/gzip-compression.d.ts +17 -0
- package/dist/lib/gzip-compression.d.ts.map +1 -0
- package/dist/lib/gzip-compression.js +16 -20
- package/dist/lib/lz4-compression.d.ts +37 -0
- package/dist/lib/lz4-compression.d.ts.map +1 -0
- package/dist/lib/lz4-compression.js +132 -108
- package/dist/lib/lzo-compression.d.ts +21 -0
- package/dist/lib/lzo-compression.d.ts.map +1 -0
- package/dist/lib/lzo-compression.js +54 -44
- package/dist/lib/no-compression.d.ts +18 -0
- package/dist/lib/no-compression.d.ts.map +1 -0
- package/dist/lib/no-compression.js +29 -36
- package/dist/lib/snappy-compression.d.ts +16 -0
- package/dist/lib/snappy-compression.d.ts.map +1 -0
- package/dist/lib/snappy-compression.js +26 -29
- package/dist/lib/zstd-compression.d.ts +21 -0
- package/dist/lib/zstd-compression.d.ts.map +1 -0
- package/dist/lib/zstd-compression.js +43 -42
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -2
- package/dist/workers/worker.d.ts +2 -0
- package/dist/workers/worker.d.ts.map +1 -0
- package/dist/workers/worker.js +70 -70
- package/package.json +12 -12
- package/src/brotli/decode.ts +2441 -0
- package/src/index.ts +3 -2
- package/src/lib/brotli-compression.ts +22 -7
- package/src/lib/deflate-compression.ts +5 -5
- package/src/lib/zstd-compression.ts +5 -2
- package/src/workers/worker.ts +10 -10
- package/dist/bundle.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/brotli-compression.js.map +0 -1
- package/dist/lib/compression.js.map +0 -1
- package/dist/lib/deflate-compression.js.map +0 -1
- package/dist/lib/gzip-compression.js.map +0 -1
- package/dist/lib/lz4-compression.js.map +0 -1
- package/dist/lib/lzo-compression.js.map +0 -1
- package/dist/lib/no-compression.js.map +0 -1
- package/dist/lib/snappy-compression.js.map +0 -1
- package/dist/lib/zstd-compression.js.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/workers/worker.js.map +0 -1
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
import { Compression } from './compression';
|
|
3
|
+
let ZstdCodec;
|
|
4
|
+
let zstd;
|
|
5
|
+
export class ZstdCompression extends Compression {
|
|
6
|
+
constructor(options) {
|
|
7
|
+
var _this$options, _this$options$modules;
|
|
8
|
+
super(options);
|
|
9
|
+
_defineProperty(this, "name", 'zstd');
|
|
10
|
+
_defineProperty(this, "extensions", []);
|
|
11
|
+
_defineProperty(this, "contentEncodings", []);
|
|
12
|
+
_defineProperty(this, "isSupported", true);
|
|
13
|
+
_defineProperty(this, "options", void 0);
|
|
14
|
+
this.options = options;
|
|
15
|
+
ZstdCodec = (_this$options = this.options) === null || _this$options === void 0 ? void 0 : (_this$options$modules = _this$options.modules) === null || _this$options$modules === void 0 ? void 0 : _this$options$modules['zstd-codec'];
|
|
16
|
+
if (!ZstdCodec) {
|
|
17
|
+
console.warn("".concat(this.name, " library not installed"));
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
async preload() {
|
|
21
|
+
if (!zstd && ZstdCodec) {
|
|
22
|
+
zstd = await new Promise(resolve => ZstdCodec.run(zstd => resolve(zstd)));
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
compressSync(input) {
|
|
26
|
+
const simpleZstd = new zstd.Simple();
|
|
27
|
+
const inputArray = new Uint8Array(input);
|
|
28
|
+
return simpleZstd.compress(inputArray).buffer;
|
|
29
|
+
}
|
|
30
|
+
decompressSync(input) {
|
|
31
|
+
const simpleZstd = new zstd.Simple();
|
|
32
|
+
const inputArray = new Uint8Array(input);
|
|
33
|
+
return simpleZstd.decompress(inputArray).buffer;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=zstd-compression.js.map
|
|
@@ -0,0 +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,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../src/types.ts"],"sourcesContent":["export type {Compression, CompressionOptions} from './lib/compression';\n"],"mappings":""}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { createWorker } from '@loaders.gl/worker-utils';
|
|
2
|
+
import { NoCompression } from '../lib/no-compression';
|
|
3
|
+
import { BrotliCompression } from '../lib/brotli-compression';
|
|
4
|
+
import { DeflateCompression } from '../lib/deflate-compression';
|
|
5
|
+
import { GZipCompression } from '../lib/gzip-compression';
|
|
6
|
+
import { LZ4Compression } from '../lib/lz4-compression';
|
|
7
|
+
import { SnappyCompression } from '../lib/snappy-compression';
|
|
8
|
+
import { ZstdCompression } from '../lib/zstd-compression';
|
|
9
|
+
import lz4js from 'lz4js';
|
|
10
|
+
const modules = {
|
|
11
|
+
lz4js
|
|
12
|
+
};
|
|
13
|
+
const COMPRESSIONS = [new NoCompression({
|
|
14
|
+
modules
|
|
15
|
+
}), new BrotliCompression({
|
|
16
|
+
modules
|
|
17
|
+
}), new DeflateCompression({
|
|
18
|
+
modules
|
|
19
|
+
}), new GZipCompression({
|
|
20
|
+
modules
|
|
21
|
+
}), new LZ4Compression({
|
|
22
|
+
modules
|
|
23
|
+
}), new SnappyCompression({
|
|
24
|
+
modules
|
|
25
|
+
}), new ZstdCompression({
|
|
26
|
+
modules
|
|
27
|
+
})];
|
|
28
|
+
createWorker(async function (data) {
|
|
29
|
+
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
30
|
+
const operation = getOperation(String(options === null || options === void 0 ? void 0 : options.operation));
|
|
31
|
+
const compression = getCompression(String(options === null || options === void 0 ? void 0 : options.compression));
|
|
32
|
+
switch (operation) {
|
|
33
|
+
case 'compress':
|
|
34
|
+
return await compression.compress(data);
|
|
35
|
+
case 'decompress':
|
|
36
|
+
return await compression.decompress(data);
|
|
37
|
+
default:
|
|
38
|
+
throw new Error('invalid option');
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
function getOperation(operation) {
|
|
42
|
+
switch (operation) {
|
|
43
|
+
case 'compress':
|
|
44
|
+
case 'deflate':
|
|
45
|
+
return 'compress';
|
|
46
|
+
case 'decompress':
|
|
47
|
+
case 'inflate':
|
|
48
|
+
return 'decompress';
|
|
49
|
+
default:
|
|
50
|
+
throw new Error("@loaders.gl/compression: Unsupported operation ".concat(operation, ". Expected 'compress' or 'decompress'"));
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
function getCompression(name) {
|
|
54
|
+
const Compression = COMPRESSIONS.find(compression_ => name === compression_.name);
|
|
55
|
+
if (!Compression) {
|
|
56
|
+
throw new Error("@loaders.gl/compression: Unsupported compression ".concat(name));
|
|
57
|
+
}
|
|
58
|
+
return Compression;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=worker.js.map
|
|
@@ -0,0 +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;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/dist/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type { CompressionOptions } from './lib/compression';
|
|
2
|
+
export { Compression } from './lib/compression';
|
|
3
|
+
export { NoCompression } from './lib/no-compression';
|
|
4
|
+
export { DeflateCompression } from './lib/deflate-compression';
|
|
5
|
+
export { GZipCompression } from './lib/gzip-compression';
|
|
6
|
+
export { BrotliCompression } from './lib/brotli-compression';
|
|
7
|
+
export { SnappyCompression } from './lib/snappy-compression';
|
|
8
|
+
export { LZ4Compression } from './lib/lz4-compression';
|
|
9
|
+
export { ZstdCompression } from './lib/zstd-compression';
|
|
10
|
+
export { LZOCompression } from './lib/lzo-compression';
|
|
11
|
+
export type { CompressionWorkerOptions } from './compression-worker';
|
|
12
|
+
export { CompressionWorker, compressOnWorker } from './compression-worker';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAC,kBAAkB,EAAC,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAC,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAC,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAErD,YAAY,EAAC,wBAAwB,EAAC,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAC,iBAAiB,EAAE,gBAAgB,EAAC,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,24 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.compressOnWorker = exports.CompressionWorker = exports.LZOCompression = exports.ZstdCompression = exports.LZ4Compression = exports.SnappyCompression = exports.BrotliCompression = exports.GZipCompression = exports.DeflateCompression = exports.NoCompression = exports.Compression = void 0;
|
|
4
|
+
var compression_1 = require("./lib/compression");
|
|
5
|
+
Object.defineProperty(exports, "Compression", { enumerable: true, get: function () { return compression_1.Compression; } });
|
|
6
|
+
var no_compression_1 = require("./lib/no-compression");
|
|
7
|
+
Object.defineProperty(exports, "NoCompression", { enumerable: true, get: function () { return no_compression_1.NoCompression; } });
|
|
8
|
+
var deflate_compression_1 = require("./lib/deflate-compression");
|
|
9
|
+
Object.defineProperty(exports, "DeflateCompression", { enumerable: true, get: function () { return deflate_compression_1.DeflateCompression; } });
|
|
10
|
+
var gzip_compression_1 = require("./lib/gzip-compression");
|
|
11
|
+
Object.defineProperty(exports, "GZipCompression", { enumerable: true, get: function () { return gzip_compression_1.GZipCompression; } });
|
|
12
|
+
var brotli_compression_1 = require("./lib/brotli-compression");
|
|
13
|
+
Object.defineProperty(exports, "BrotliCompression", { enumerable: true, get: function () { return brotli_compression_1.BrotliCompression; } });
|
|
14
|
+
var snappy_compression_1 = require("./lib/snappy-compression");
|
|
15
|
+
Object.defineProperty(exports, "SnappyCompression", { enumerable: true, get: function () { return snappy_compression_1.SnappyCompression; } });
|
|
16
|
+
var lz4_compression_1 = require("./lib/lz4-compression");
|
|
17
|
+
Object.defineProperty(exports, "LZ4Compression", { enumerable: true, get: function () { return lz4_compression_1.LZ4Compression; } });
|
|
18
|
+
var zstd_compression_1 = require("./lib/zstd-compression");
|
|
19
|
+
Object.defineProperty(exports, "ZstdCompression", { enumerable: true, get: function () { return zstd_compression_1.ZstdCompression; } });
|
|
20
|
+
var lzo_compression_1 = require("./lib/lzo-compression");
|
|
21
|
+
Object.defineProperty(exports, "LZOCompression", { enumerable: true, get: function () { return lzo_compression_1.LZOCompression; } });
|
|
22
|
+
var compression_worker_1 = require("./compression-worker");
|
|
23
|
+
Object.defineProperty(exports, "CompressionWorker", { enumerable: true, get: function () { return compression_worker_1.CompressionWorker; } });
|
|
24
|
+
Object.defineProperty(exports, "compressOnWorker", { enumerable: true, get: function () { return compression_worker_1.compressOnWorker; } });
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { CompressionOptions } from './compression';
|
|
2
|
+
import { Compression } from './compression';
|
|
3
|
+
export type BrotliCompressionOptions = CompressionOptions & {
|
|
4
|
+
brotli?: {
|
|
5
|
+
mode?: number;
|
|
6
|
+
quality?: number;
|
|
7
|
+
lgwin?: number;
|
|
8
|
+
useZlib?: boolean;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* brotli compression / decompression
|
|
13
|
+
*/
|
|
14
|
+
export declare class BrotliCompression extends Compression {
|
|
15
|
+
readonly name: string;
|
|
16
|
+
readonly extensions: string[];
|
|
17
|
+
readonly contentEncodings: string[];
|
|
18
|
+
readonly isSupported = true;
|
|
19
|
+
readonly options: BrotliCompressionOptions;
|
|
20
|
+
constructor(options: BrotliCompressionOptions);
|
|
21
|
+
/**
|
|
22
|
+
* brotli is an injectable dependency due to big size
|
|
23
|
+
* @param options
|
|
24
|
+
*/
|
|
25
|
+
preload(): Promise<void>;
|
|
26
|
+
compress(input: ArrayBuffer): Promise<ArrayBuffer>;
|
|
27
|
+
compressSync(input: ArrayBuffer): ArrayBuffer;
|
|
28
|
+
decompress(input: ArrayBuffer): Promise<ArrayBuffer>;
|
|
29
|
+
decompressSync(input: ArrayBuffer): ArrayBuffer;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=brotli-compression.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brotli-compression.d.ts","sourceRoot":"","sources":["../../src/lib/brotli-compression.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,eAAe,CAAC;AACtD,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAQ1C,MAAM,MAAM,wBAAwB,GAAG,kBAAkB,GAAG;IAC1D,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;CACH,CAAC;AAYF;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,WAAW;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAY;IACjC,QAAQ,CAAC,UAAU,WAAU;IAC7B,QAAQ,CAAC,gBAAgB,WAAU;IACnC,QAAQ,CAAC,WAAW,QAAQ;IAC5B,QAAQ,CAAC,OAAO,EAAE,wBAAwB,CAAC;gBAE/B,OAAO,EAAE,wBAAwB;IAK7C;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQxB,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IASxD,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW;IAkBvC,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAS1D,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW;CAkBhD"}
|
|
@@ -1,94 +1,92 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.BrotliCompression = void 0;
|
|
7
|
+
const compression_1 = require("./compression");
|
|
8
|
+
const loader_utils_1 = require("@loaders.gl/loader-utils");
|
|
9
|
+
// import brotli from 'brotli'; // https://bundlephobia.com/package/brotli
|
|
10
|
+
const decode_1 = require("../brotli/decode");
|
|
11
|
+
const zlib_1 = __importDefault(require("zlib"));
|
|
12
|
+
const loader_utils_2 = require("@loaders.gl/loader-utils");
|
|
6
13
|
const DEFAULT_BROTLI_OPTIONS = {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
14
|
+
brotli: {
|
|
15
|
+
mode: 0,
|
|
16
|
+
quality: 8,
|
|
17
|
+
lgwin: 22
|
|
18
|
+
}
|
|
12
19
|
};
|
|
13
20
|
let brotli;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
if (!brotli) {
|
|
37
|
-
throw new Error(this.name);
|
|
21
|
+
/**
|
|
22
|
+
* brotli compression / decompression
|
|
23
|
+
*/
|
|
24
|
+
class BrotliCompression extends compression_1.Compression {
|
|
25
|
+
constructor(options) {
|
|
26
|
+
super(options);
|
|
27
|
+
this.name = 'brotli';
|
|
28
|
+
this.extensions = ['br'];
|
|
29
|
+
this.contentEncodings = ['br'];
|
|
30
|
+
this.isSupported = true;
|
|
31
|
+
this.options = options;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* brotli is an injectable dependency due to big size
|
|
35
|
+
* @param options
|
|
36
|
+
*/
|
|
37
|
+
async preload() {
|
|
38
|
+
brotli = brotli || this.options?.modules?.brotli;
|
|
39
|
+
if (!brotli) {
|
|
40
|
+
// eslint-disable-next-line no-console
|
|
41
|
+
console.warn(`${this.name} library not installed`);
|
|
42
|
+
}
|
|
38
43
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
return toArrayBuffer(buffer);
|
|
44
|
+
async compress(input) {
|
|
45
|
+
// On Node.js we can use built-in zlib
|
|
46
|
+
if (!loader_utils_1.isBrowser && this.options.brotli?.useZlib) {
|
|
47
|
+
const buffer = await (0, loader_utils_2.promisify1)(zlib_1.default.brotliCompress)(input);
|
|
48
|
+
return (0, loader_utils_1.toArrayBuffer)(buffer);
|
|
49
|
+
}
|
|
50
|
+
return this.compressSync(input);
|
|
47
51
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
52
|
+
compressSync(input) {
|
|
53
|
+
// On Node.js we can use built-in zlib
|
|
54
|
+
if (!loader_utils_1.isBrowser && this.options.brotli?.useZlib) {
|
|
55
|
+
const buffer = zlib_1.default.brotliCompressSync(input);
|
|
56
|
+
return (0, loader_utils_1.toArrayBuffer)(buffer);
|
|
57
|
+
}
|
|
58
|
+
const brotliOptions = { ...DEFAULT_BROTLI_OPTIONS.brotli, ...this.options?.brotli };
|
|
59
|
+
const inputArray = new Uint8Array(input);
|
|
60
|
+
if (!brotli) {
|
|
61
|
+
throw new Error('brotli compression: brotli module not installed');
|
|
62
|
+
}
|
|
63
|
+
// @ts-ignore brotli types state that only Buffers are accepted...
|
|
64
|
+
const outputArray = brotli.compress(inputArray, brotliOptions);
|
|
65
|
+
return outputArray.buffer;
|
|
58
66
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
async decompress(input) {
|
|
68
|
-
var _this$options$brotli3;
|
|
69
|
-
|
|
70
|
-
if (!isBrowser && (_this$options$brotli3 = this.options.brotli) !== null && _this$options$brotli3 !== void 0 && _this$options$brotli3.useZlib) {
|
|
71
|
-
const buffer = await promisify(zlib.brotliDecompress)(input);
|
|
72
|
-
return toArrayBuffer(buffer);
|
|
67
|
+
async decompress(input) {
|
|
68
|
+
// On Node.js we can use built-in zlib
|
|
69
|
+
if (!loader_utils_1.isBrowser && this.options.brotli?.useZlib) {
|
|
70
|
+
const buffer = await (0, loader_utils_2.promisify1)(zlib_1.default.brotliDecompress)(input);
|
|
71
|
+
return (0, loader_utils_1.toArrayBuffer)(buffer);
|
|
72
|
+
}
|
|
73
|
+
return this.decompressSync(input);
|
|
73
74
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
75
|
+
decompressSync(input) {
|
|
76
|
+
// On Node.js we can use built-in zlib
|
|
77
|
+
if (!loader_utils_1.isBrowser && this.options.brotli?.useZlib) {
|
|
78
|
+
const buffer = zlib_1.default.brotliDecompressSync(input);
|
|
79
|
+
return (0, loader_utils_1.toArrayBuffer)(buffer);
|
|
80
|
+
}
|
|
81
|
+
const brotliOptions = { ...DEFAULT_BROTLI_OPTIONS.brotli, ...this.options?.brotli };
|
|
82
|
+
const inputArray = new Uint8Array(input);
|
|
83
|
+
if (brotli) {
|
|
84
|
+
// @ts-ignore brotli types state that only Buffers are accepted...
|
|
85
|
+
const outputArray = brotli.decompress(inputArray, brotliOptions);
|
|
86
|
+
return outputArray.buffer;
|
|
87
|
+
}
|
|
88
|
+
const outputArray = (0, decode_1.BrotliDecode)(inputArray, undefined);
|
|
89
|
+
return outputArray.buffer;
|
|
84
90
|
}
|
|
85
|
-
|
|
86
|
-
const brotliOptions = { ...DEFAULT_BROTLI_OPTIONS.brotli,
|
|
87
|
-
...((_this$options3 = this.options) === null || _this$options3 === void 0 ? void 0 : _this$options3.brotli)
|
|
88
|
-
};
|
|
89
|
-
const inputArray = new Uint8Array(input);
|
|
90
|
-
return brotli.decompress(inputArray, brotliOptions);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
91
|
}
|
|
94
|
-
|
|
92
|
+
exports.BrotliCompression = BrotliCompression;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/** Compression options */
|
|
2
|
+
export type CompressionOptions = {
|
|
3
|
+
modules?: {
|
|
4
|
+
[moduleName: string]: any;
|
|
5
|
+
};
|
|
6
|
+
};
|
|
7
|
+
/** Compression */
|
|
8
|
+
export declare abstract class Compression {
|
|
9
|
+
abstract readonly name: string;
|
|
10
|
+
abstract readonly extensions: string[];
|
|
11
|
+
abstract readonly contentEncodings: string[];
|
|
12
|
+
abstract readonly isSupported: boolean;
|
|
13
|
+
constructor(options?: CompressionOptions);
|
|
14
|
+
/** Preloads any dynamic libraries. May enable sync functions */
|
|
15
|
+
preload(): Promise<void>;
|
|
16
|
+
/** Asynchronously compress data */
|
|
17
|
+
compress(input: ArrayBuffer): Promise<ArrayBuffer>;
|
|
18
|
+
/** Asynchronously decompress data */
|
|
19
|
+
decompress(input: ArrayBuffer, size?: number): Promise<ArrayBuffer>;
|
|
20
|
+
/** Synchronously compress data */
|
|
21
|
+
compressSync(input: ArrayBuffer): ArrayBuffer;
|
|
22
|
+
/** Synchronously compress data */
|
|
23
|
+
decompressSync(input: ArrayBuffer, size?: number): ArrayBuffer;
|
|
24
|
+
/** Compress batches */
|
|
25
|
+
compressBatches(asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>): AsyncIterable<ArrayBuffer>;
|
|
26
|
+
/** Decompress batches */
|
|
27
|
+
decompressBatches(asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>): AsyncIterable<ArrayBuffer>;
|
|
28
|
+
protected concatenate(asyncIterator: any): Promise<ArrayBuffer>;
|
|
29
|
+
protected improveError(error: any): any;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=compression.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../../src/lib/compression.ts"],"names":[],"mappings":"AAGA,0BAA0B;AAC1B,MAAM,MAAM,kBAAkB,GAAG;IAE/B,OAAO,CAAC,EAAE;QAAC,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAC;CACvC,CAAC;AAEF,kBAAkB;AAClB,8BAAsB,WAAW;IAC/B,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;gBAE3B,OAAO,CAAC,EAAE,kBAAkB;IAKxC,gEAAgE;IAC1D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,mCAAmC;IAC7B,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAKxD,qCAAqC;IAC/B,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAKzE,kCAAkC;IAClC,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW;IAI7C,kCAAkC;IAClC,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW;IAI9D,uBAAuB;IAChB,eAAe,CACpB,aAAa,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,GAChE,aAAa,CAAC,WAAW,CAAC;IAM7B,yBAAyB;IAClB,iBAAiB,CACtB,aAAa,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,GAChE,aAAa,CAAC,WAAW,CAAC;IAQ7B,SAAS,CAAC,WAAW,CAAC,aAAa,KAAA,GAAG,OAAO,CAAC,WAAW,CAAC;IAI1D,SAAS,CAAC,YAAY,CAAC,KAAK,KAAA;CAM7B"}
|
package/dist/lib/compression.js
CHANGED
|
@@ -1,62 +1,57 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
return error;
|
|
59
|
-
}
|
|
60
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Compression = void 0;
|
|
4
|
+
// Compression interface
|
|
5
|
+
const loader_utils_1 = require("@loaders.gl/loader-utils");
|
|
6
|
+
/** Compression */
|
|
7
|
+
class Compression {
|
|
8
|
+
constructor(options) {
|
|
9
|
+
this.compressBatches = this.compressBatches.bind(this);
|
|
10
|
+
this.decompressBatches = this.decompressBatches.bind(this);
|
|
11
|
+
}
|
|
12
|
+
/** Preloads any dynamic libraries. May enable sync functions */
|
|
13
|
+
async preload() {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
/** Asynchronously compress data */
|
|
17
|
+
async compress(input) {
|
|
18
|
+
await this.preload();
|
|
19
|
+
return this.compressSync(input);
|
|
20
|
+
}
|
|
21
|
+
/** Asynchronously decompress data */
|
|
22
|
+
async decompress(input, size) {
|
|
23
|
+
await this.preload();
|
|
24
|
+
return this.decompressSync(input, size);
|
|
25
|
+
}
|
|
26
|
+
/** Synchronously compress data */
|
|
27
|
+
compressSync(input) {
|
|
28
|
+
throw new Error(`${this.name}: sync compression not supported`);
|
|
29
|
+
}
|
|
30
|
+
/** Synchronously compress data */
|
|
31
|
+
decompressSync(input, size) {
|
|
32
|
+
throw new Error(`${this.name}: sync decompression not supported`);
|
|
33
|
+
}
|
|
34
|
+
/** Compress batches */
|
|
35
|
+
async *compressBatches(asyncIterator) {
|
|
36
|
+
// TODO - implement incremental compression
|
|
37
|
+
const input = await this.concatenate(asyncIterator);
|
|
38
|
+
yield this.compress(input);
|
|
39
|
+
}
|
|
40
|
+
/** Decompress batches */
|
|
41
|
+
async *decompressBatches(asyncIterator) {
|
|
42
|
+
// TODO - implement incremental compression
|
|
43
|
+
const input = await this.concatenate(asyncIterator);
|
|
44
|
+
yield this.decompress(input);
|
|
45
|
+
}
|
|
46
|
+
// HELPERS
|
|
47
|
+
concatenate(asyncIterator) {
|
|
48
|
+
return (0, loader_utils_1.concatenateArrayBuffersAsync)(asyncIterator);
|
|
49
|
+
}
|
|
50
|
+
improveError(error) {
|
|
51
|
+
if (!error.message.includes(this.name)) {
|
|
52
|
+
error.message = `${this.name} ${error.message}`;
|
|
53
|
+
}
|
|
54
|
+
return error;
|
|
55
|
+
}
|
|
61
56
|
}
|
|
62
|
-
|
|
57
|
+
exports.Compression = Compression;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { CompressionOptions } from './compression';
|
|
2
|
+
import { Compression } from './compression';
|
|
3
|
+
import pako from 'pako';
|
|
4
|
+
export type DeflateCompressionOptions = CompressionOptions & {
|
|
5
|
+
deflate?: pako.InflateOptions & pako.DeflateOptions & {
|
|
6
|
+
useZlib?: boolean;
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* DEFLATE compression / decompression
|
|
11
|
+
*/
|
|
12
|
+
export declare class DeflateCompression extends Compression {
|
|
13
|
+
readonly name: string;
|
|
14
|
+
readonly extensions: string[];
|
|
15
|
+
readonly contentEncodings: string[];
|
|
16
|
+
readonly isSupported = true;
|
|
17
|
+
readonly options: DeflateCompressionOptions;
|
|
18
|
+
private _chunks;
|
|
19
|
+
constructor(options?: DeflateCompressionOptions);
|
|
20
|
+
compress(input: ArrayBuffer): Promise<ArrayBuffer>;
|
|
21
|
+
decompress(input: ArrayBuffer): Promise<ArrayBuffer>;
|
|
22
|
+
compressSync(input: ArrayBuffer): ArrayBuffer;
|
|
23
|
+
decompressSync(input: ArrayBuffer): ArrayBuffer;
|
|
24
|
+
compressBatches(asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>): AsyncIterable<ArrayBuffer>;
|
|
25
|
+
decompressBatches(asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>): AsyncIterable<ArrayBuffer>;
|
|
26
|
+
transformBatches(pakoProcessor: pako.Inflate | pako.Deflate, asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>): AsyncIterable<ArrayBuffer>;
|
|
27
|
+
_onData(chunk: any): void;
|
|
28
|
+
_onEnd(status: any): void;
|
|
29
|
+
_getChunks(): ArrayBuffer[];
|
|
30
|
+
_getError(code?: number): string;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=deflate-compression.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deflate-compression.d.ts","sourceRoot":"","sources":["../../src/lib/deflate-compression.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,eAAe,CAAC;AACtD,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAE1C,OAAO,IAAI,MAAM,MAAM,CAAC;AAIxB,MAAM,MAAM,yBAAyB,GAAG,kBAAkB,GAAG;IAC3D,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAC,CAAC;CAC3E,CAAC;AAEF;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAa;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAM;IACnC,QAAQ,CAAC,gBAAgB,WAAe;IACxC,QAAQ,CAAC,WAAW,QAAQ;IAE5B,QAAQ,CAAC,OAAO,EAAE,yBAAyB,CAAC;IAE5C,OAAO,CAAC,OAAO,CAAqB;gBAExB,OAAO,GAAE,yBAA8B;IAK7C,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAWlD,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAW1D,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW;IAW7C,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW;IAWxC,eAAe,CACpB,aAAa,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,GAChE,aAAa,CAAC,WAAW,CAAC;IAMtB,iBAAiB,CACtB,aAAa,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,GAChE,aAAa,CAAC,WAAW,CAAC;IAMtB,gBAAgB,CACrB,aAAa,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,EAC1C,aAAa,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,GAChE,aAAa,CAAC,WAAW,CAAC;IAwB7B,OAAO,CAAC,KAAK,KAAA;IAIb,MAAM,CAAC,MAAM,KAAA;IAMb,UAAU,IAAI,WAAW,EAAE;IAO3B,SAAS,CAAC,IAAI,GAAE,MAAU,GAAG,MAAM;CAuBpC"}
|