@loaders.gl/compression 3.1.3 → 4.0.0-alpha.5
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.js +2187 -2320
- package/dist/brotli/decode.js.map +1 -0
- package/dist/bundle.js +2 -2
- package/dist/bundle.js.map +1 -0
- package/dist/compression-worker.js +2 -2
- package/dist/compression-worker.js.map +2 -2
- package/dist/dist.min.js +3 -3
- package/dist/dist.min.js.map +2 -2
- package/dist/index.js +11 -24
- package/dist/index.js.map +1 -0
- package/dist/lib/brotli-compression.d.ts.map +1 -1
- package/dist/lib/brotli-compression.js +98 -81
- package/dist/lib/brotli-compression.js.map +1 -0
- package/dist/lib/compression.js +61 -56
- package/dist/lib/compression.js.map +1 -0
- package/dist/lib/deflate-compression.js +150 -128
- package/dist/lib/deflate-compression.js.map +1 -0
- package/dist/lib/gzip-compression.js +20 -16
- package/dist/lib/gzip-compression.js.map +1 -0
- package/dist/lib/lz4-compression.js +108 -132
- package/dist/lib/lz4-compression.js.map +1 -0
- package/dist/lib/lzo-compression.js +44 -54
- package/dist/lib/lzo-compression.js.map +1 -0
- package/dist/lib/no-compression.js +36 -29
- package/dist/lib/no-compression.js.map +1 -0
- package/dist/lib/snappy-compression.js +29 -26
- package/dist/lib/snappy-compression.js.map +1 -0
- package/dist/lib/zstd-compression.d.ts.map +1 -1
- package/dist/lib/zstd-compression.js +43 -39
- package/dist/lib/zstd-compression.js.map +1 -0
- package/dist/types.js +2 -2
- package/dist/{es5/types.js.map → types.js.map} +0 -0
- package/dist/workers/worker.js +61 -70
- package/dist/workers/worker.js.map +1 -0
- package/package.json +7 -7
- package/src/lib/brotli-compression.ts +2 -1
- package/src/lib/zstd-compression.ts +4 -1
- package/dist/es5/brotli/decode.js +0 -2221
- package/dist/es5/brotli/decode.js.map +0 -1
- package/dist/es5/bundle.js +0 -7
- package/dist/es5/bundle.js.map +0 -1
- package/dist/es5/compression-worker.js +0 -27
- package/dist/es5/compression-worker.js.map +0 -1
- package/dist/es5/index.js +0 -92
- package/dist/es5/index.js.map +0 -1
- package/dist/es5/lib/brotli-compression.js +0 -236
- package/dist/es5/lib/brotli-compression.js.map +0 -1
- package/dist/es5/lib/compression.js +0 -200
- package/dist/es5/lib/compression.js.map +0 -1
- package/dist/es5/lib/deflate-compression.js +0 -420
- package/dist/es5/lib/deflate-compression.js.map +0 -1
- package/dist/es5/lib/gzip-compression.js +0 -57
- package/dist/es5/lib/gzip-compression.js.map +0 -1
- package/dist/es5/lib/lz4-compression.js +0 -157
- package/dist/es5/lib/lz4-compression.js.map +0 -1
- package/dist/es5/lib/lzo-compression.js +0 -157
- package/dist/es5/lib/lzo-compression.js.map +0 -1
- package/dist/es5/lib/no-compression.js +0 -116
- package/dist/es5/lib/no-compression.js.map +0 -1
- package/dist/es5/lib/snappy-compression.js +0 -66
- package/dist/es5/lib/snappy-compression.js.map +0 -1
- package/dist/es5/lib/zstd-compression.js +0 -125
- package/dist/es5/lib/zstd-compression.js.map +0 -1
- package/dist/es5/types.js +0 -2
- package/dist/es5/workers/worker.js +0 -118
- package/dist/es5/workers/worker.js.map +0 -1
- package/dist/esm/brotli/decode.js +0 -2213
- package/dist/esm/brotli/decode.js.map +0 -1
- package/dist/esm/bundle.js +0 -5
- package/dist/esm/bundle.js.map +0 -1
- package/dist/esm/compression-worker.js +0 -14
- package/dist/esm/compression-worker.js.map +0 -1
- package/dist/esm/index.js +0 -11
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/lib/brotli-compression.js +0 -108
- package/dist/esm/lib/brotli-compression.js.map +0 -1
- package/dist/esm/lib/compression.js +0 -62
- package/dist/esm/lib/compression.js.map +0 -1
- package/dist/esm/lib/deflate-compression.js +0 -157
- package/dist/esm/lib/deflate-compression.js.map +0 -1
- package/dist/esm/lib/gzip-compression.js +0 -21
- package/dist/esm/lib/gzip-compression.js.map +0 -1
- package/dist/esm/lib/lz4-compression.js +0 -117
- package/dist/esm/lib/lz4-compression.js.map +0 -1
- package/dist/esm/lib/lzo-compression.js +0 -48
- package/dist/esm/lib/lzo-compression.js.map +0 -1
- package/dist/esm/lib/no-compression.js +0 -37
- package/dist/esm/lib/no-compression.js.map +0 -1
- package/dist/esm/lib/snappy-compression.js +0 -30
- package/dist/esm/lib/snappy-compression.js.map +0 -1
- package/dist/esm/lib/zstd-compression.js +0 -46
- package/dist/esm/lib/zstd-compression.js.map +0 -1
- package/dist/esm/types.js +0 -2
- package/dist/esm/types.js.map +0 -1
- package/dist/esm/workers/worker.js +0 -68
- package/dist/esm/workers/worker.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,24 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
var lz4_compression_1 = require("./lib/lz4-compression");
|
|
13
|
-
Object.defineProperty(exports, "LZ4Compression", { enumerable: true, get: function () { return lz4_compression_1.LZ4Compression; } });
|
|
14
|
-
var zstd_compression_1 = require("./lib/zstd-compression");
|
|
15
|
-
Object.defineProperty(exports, "ZstdCompression", { enumerable: true, get: function () { return zstd_compression_1.ZstdCompression; } });
|
|
16
|
-
var snappy_compression_1 = require("./lib/snappy-compression");
|
|
17
|
-
Object.defineProperty(exports, "SnappyCompression", { enumerable: true, get: function () { return snappy_compression_1.SnappyCompression; } });
|
|
18
|
-
var brotli_compression_1 = require("./lib/brotli-compression");
|
|
19
|
-
Object.defineProperty(exports, "BrotliCompression", { enumerable: true, get: function () { return brotli_compression_1.BrotliCompression; } });
|
|
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; } });
|
|
1
|
+
export { Compression } from './lib/compression';
|
|
2
|
+
export { NoCompression } from './lib/no-compression';
|
|
3
|
+
export { DeflateCompression } from './lib/deflate-compression';
|
|
4
|
+
export { GZipCompression } from './lib/gzip-compression';
|
|
5
|
+
export { LZ4Compression } from './lib/lz4-compression';
|
|
6
|
+
export { ZstdCompression } from './lib/zstd-compression';
|
|
7
|
+
export { SnappyCompression } from './lib/snappy-compression';
|
|
8
|
+
export { BrotliCompression } from './lib/brotli-compression';
|
|
9
|
+
export { LZOCompression } from './lib/lzo-compression';
|
|
10
|
+
export { CompressionWorker, compressOnWorker } from './compression-worker';
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":["Compression","NoCompression","DeflateCompression","GZipCompression","LZ4Compression","ZstdCompression","SnappyCompression","BrotliCompression","LZOCompression","CompressionWorker","compressOnWorker"],"mappings":"AAEA,SAAQA,WAAR,QAA0B,mBAA1B;AACA,SAAQC,aAAR,QAA4B,sBAA5B;AACA,SAAQC,kBAAR,QAAiC,2BAAjC;AACA,SAAQC,eAAR,QAA8B,wBAA9B;AACA,SAAQC,cAAR,QAA6B,uBAA7B;AACA,SAAQC,eAAR,QAA8B,wBAA9B;AACA,SAAQC,iBAAR,QAAgC,0BAAhC;AACA,SAAQC,iBAAR,QAAgC,0BAAhC;AACA,SAAQC,cAAR,QAA6B,uBAA7B;AAGA,SAAQC,iBAAR,EAA2BC,gBAA3B,QAAkD,sBAAlD","sourcesContent":["export type {CompressionOptions} from './lib/compression';\n\nexport {Compression} from './lib/compression';\nexport {NoCompression} from './lib/no-compression';\nexport {DeflateCompression} from './lib/deflate-compression';\nexport {GZipCompression} from './lib/gzip-compression';\nexport {LZ4Compression} from './lib/lz4-compression';\nexport {ZstdCompression} from './lib/zstd-compression';\nexport {SnappyCompression} from './lib/snappy-compression';\nexport {BrotliCompression} from './lib/brotli-compression';\nexport {LZOCompression} from './lib/lzo-compression';\n\nexport type {CompressionWorkerOptions} from './compression-worker';\nexport {CompressionWorker, compressOnWorker} from './compression-worker';\n"],"file":"index.js"}
|
|
@@ -1 +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,oBAAY,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;
|
|
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,oBAAY,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,91 +1,108 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
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");
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
import { Compression } from './compression';
|
|
3
|
+
import { isBrowser, toArrayBuffer } from '@loaders.gl/loader-utils';
|
|
4
|
+
import { BrotliDecode } from '../brotli/decode';
|
|
5
|
+
import zlib from 'zlib';
|
|
6
|
+
import { promisify } from '@loaders.gl/loader-utils';
|
|
13
7
|
const DEFAULT_BROTLI_OPTIONS = {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
8
|
+
brotli: {
|
|
9
|
+
mode: 0,
|
|
10
|
+
quality: 8,
|
|
11
|
+
lgwin: 22
|
|
12
|
+
}
|
|
19
13
|
};
|
|
20
14
|
let brotli;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
15
|
+
export class BrotliCompression extends Compression {
|
|
16
|
+
constructor(options) {
|
|
17
|
+
super(options);
|
|
18
|
+
|
|
19
|
+
_defineProperty(this, "name", 'brotli');
|
|
20
|
+
|
|
21
|
+
_defineProperty(this, "extensions", ['br']);
|
|
22
|
+
|
|
23
|
+
_defineProperty(this, "contentEncodings", ['br']);
|
|
24
|
+
|
|
25
|
+
_defineProperty(this, "isSupported", true);
|
|
26
|
+
|
|
27
|
+
_defineProperty(this, "options", void 0);
|
|
28
|
+
|
|
29
|
+
this.options = options;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
async preload() {
|
|
33
|
+
var _this$options, _this$options$modules;
|
|
34
|
+
|
|
35
|
+
brotli = brotli || ((_this$options = this.options) === null || _this$options === void 0 ? void 0 : (_this$options$modules = _this$options.modules) === null || _this$options$modules === void 0 ? void 0 : _this$options$modules.brotli);
|
|
36
|
+
|
|
37
|
+
if (!brotli) {
|
|
38
|
+
console.warn("".concat(this.name, " library not installed"));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
async compress(input) {
|
|
43
|
+
var _this$options$brotli;
|
|
44
|
+
|
|
45
|
+
if (!isBrowser && (_this$options$brotli = this.options.brotli) !== null && _this$options$brotli !== void 0 && _this$options$brotli.useZlib) {
|
|
46
|
+
const buffer = await promisify(zlib.brotliCompress)(input);
|
|
47
|
+
return toArrayBuffer(buffer);
|
|
32
48
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
49
|
+
|
|
50
|
+
return this.compressSync(input);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
compressSync(input) {
|
|
54
|
+
var _this$options$brotli2, _this$options2;
|
|
55
|
+
|
|
56
|
+
if (!isBrowser && (_this$options$brotli2 = this.options.brotli) !== null && _this$options$brotli2 !== void 0 && _this$options$brotli2.useZlib) {
|
|
57
|
+
const buffer = zlib.brotliCompressSync(input);
|
|
58
|
+
return toArrayBuffer(buffer);
|
|
42
59
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
60
|
+
|
|
61
|
+
const brotliOptions = { ...DEFAULT_BROTLI_OPTIONS.brotli,
|
|
62
|
+
...((_this$options2 = this.options) === null || _this$options2 === void 0 ? void 0 : _this$options2.brotli)
|
|
63
|
+
};
|
|
64
|
+
const inputArray = new Uint8Array(input);
|
|
65
|
+
|
|
66
|
+
if (!brotli) {
|
|
67
|
+
throw new Error('brotli compression: brotli module not installed');
|
|
50
68
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
// @ts-ignore brotli types state that only Buffers are accepted...
|
|
63
|
-
const outputArray = brotli.compress(inputArray, brotliOptions);
|
|
64
|
-
return outputArray.buffer;
|
|
69
|
+
|
|
70
|
+
const outputArray = brotli.compress(inputArray, brotliOptions);
|
|
71
|
+
return outputArray.buffer;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
async decompress(input) {
|
|
75
|
+
var _this$options$brotli3;
|
|
76
|
+
|
|
77
|
+
if (!isBrowser && (_this$options$brotli3 = this.options.brotli) !== null && _this$options$brotli3 !== void 0 && _this$options$brotli3.useZlib) {
|
|
78
|
+
const buffer = await promisify(zlib.brotliDecompress)(input);
|
|
79
|
+
return toArrayBuffer(buffer);
|
|
65
80
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
81
|
+
|
|
82
|
+
return this.decompressSync(input);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
decompressSync(input) {
|
|
86
|
+
var _this$options$brotli4, _this$options3;
|
|
87
|
+
|
|
88
|
+
if (!isBrowser && (_this$options$brotli4 = this.options.brotli) !== null && _this$options$brotli4 !== void 0 && _this$options$brotli4.useZlib) {
|
|
89
|
+
const buffer = zlib.brotliDecompressSync(input);
|
|
90
|
+
return toArrayBuffer(buffer);
|
|
73
91
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
// @ts-ignore brotli types state that only Buffers are accepted...
|
|
84
|
-
const outputArray = brotli.decompress(inputArray, brotliOptions);
|
|
85
|
-
return outputArray.buffer;
|
|
86
|
-
}
|
|
87
|
-
const outputArray = (0, decode_1.BrotliDecode)(inputArray, undefined);
|
|
88
|
-
return outputArray.buffer;
|
|
92
|
+
|
|
93
|
+
const brotliOptions = { ...DEFAULT_BROTLI_OPTIONS.brotli,
|
|
94
|
+
...((_this$options3 = this.options) === null || _this$options3 === void 0 ? void 0 : _this$options3.brotli)
|
|
95
|
+
};
|
|
96
|
+
const inputArray = new Uint8Array(input);
|
|
97
|
+
|
|
98
|
+
if (brotli) {
|
|
99
|
+
const outputArray = brotli.decompress(inputArray, brotliOptions);
|
|
100
|
+
return outputArray.buffer;
|
|
89
101
|
}
|
|
102
|
+
|
|
103
|
+
const outputArray = BrotliDecode(inputArray, undefined);
|
|
104
|
+
return outputArray.buffer;
|
|
105
|
+
}
|
|
106
|
+
|
|
90
107
|
}
|
|
91
|
-
|
|
108
|
+
//# sourceMappingURL=brotli-compression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/brotli-compression.ts"],"names":["Compression","isBrowser","toArrayBuffer","BrotliDecode","zlib","promisify","DEFAULT_BROTLI_OPTIONS","brotli","mode","quality","lgwin","BrotliCompression","constructor","options","preload","modules","console","warn","name","compress","input","useZlib","buffer","brotliCompress","compressSync","brotliCompressSync","brotliOptions","inputArray","Uint8Array","Error","outputArray","decompress","brotliDecompress","decompressSync","brotliDecompressSync","undefined"],"mappings":"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","sourcesContent":["// BROTLI\nimport type {CompressionOptions} from './compression';\nimport {Compression} from './compression';\nimport {isBrowser, toArrayBuffer} from '@loaders.gl/loader-utils';\nimport type brotliNamespace from 'brotli';\n// import brotli from 'brotli'; // https://bundlephobia.com/package/brotli\nimport {BrotliDecode} from '../brotli/decode';\nimport zlib from 'zlib';\nimport {promisify} from '@loaders.gl/loader-utils';\n\nexport type BrotliCompressionOptions = CompressionOptions & {\n brotli?: {\n mode?: number;\n quality?: number;\n lgwin?: number;\n useZlib?: boolean;\n };\n};\n\nconst DEFAULT_BROTLI_OPTIONS = {\n brotli: {\n mode: 0,\n quality: 8,\n lgwin: 22\n }\n};\n\nlet brotli: typeof brotliNamespace;\n\n/**\n * brotli compression / decompression\n */\nexport class BrotliCompression extends Compression {\n readonly name: string = 'brotli';\n readonly extensions = ['br'];\n readonly contentEncodings = ['br'];\n readonly isSupported = true;\n readonly options: BrotliCompressionOptions;\n\n constructor(options: BrotliCompressionOptions) {\n super(options);\n this.options = options;\n }\n\n /**\n * brotli is an injectable dependency due to big size\n * @param options\n */\n async preload(): Promise<void> {\n brotli = brotli || this.options?.modules?.brotli;\n if (!brotli) {\n // eslint-disable-next-line no-console\n console.warn(`${this.name} library not installed`);\n }\n }\n\n async compress(input: ArrayBuffer): Promise<ArrayBuffer> {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.brotli?.useZlib) {\n const buffer = await promisify(zlib.brotliCompress)(input);\n return toArrayBuffer(buffer);\n }\n return this.compressSync(input);\n }\n\n compressSync(input: ArrayBuffer): ArrayBuffer {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.brotli?.useZlib) {\n const buffer = zlib.brotliCompressSync(input);\n return toArrayBuffer(buffer);\n }\n const brotliOptions = {...DEFAULT_BROTLI_OPTIONS.brotli, ...this.options?.brotli};\n const inputArray = new Uint8Array(input);\n\n if (!brotli) {\n throw new Error('brotli compression: brotli module not installed');\n }\n\n // @ts-ignore brotli types state that only Buffers are accepted...\n const outputArray = brotli.compress(inputArray, brotliOptions);\n return outputArray.buffer;\n }\n\n async decompress(input: ArrayBuffer): Promise<ArrayBuffer> {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.brotli?.useZlib) {\n const buffer = await promisify(zlib.brotliDecompress)(input);\n return toArrayBuffer(buffer);\n }\n return this.decompressSync(input);\n }\n\n decompressSync(input: ArrayBuffer): ArrayBuffer {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.brotli?.useZlib) {\n const buffer = zlib.brotliDecompressSync(input);\n return toArrayBuffer(buffer);\n }\n\n const brotliOptions = {...DEFAULT_BROTLI_OPTIONS.brotli, ...this.options?.brotli};\n const inputArray = new Uint8Array(input);\n\n if (brotli) {\n // @ts-ignore brotli types state that only Buffers are accepted...\n const outputArray = brotli.decompress(inputArray, brotliOptions);\n return outputArray.buffer;\n }\n const outputArray = BrotliDecode(inputArray, undefined);\n return outputArray.buffer;\n }\n}\n"],"file":"brotli-compression.js"}
|
package/dist/lib/compression.js
CHANGED
|
@@ -1,57 +1,62 @@
|
|
|
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
|
-
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
import { concatenateArrayBuffersAsync } from '@loaders.gl/loader-utils';
|
|
3
|
+
export class Compression {
|
|
4
|
+
constructor(options) {
|
|
5
|
+
_defineProperty(this, "name", void 0);
|
|
6
|
+
|
|
7
|
+
_defineProperty(this, "extensions", void 0);
|
|
8
|
+
|
|
9
|
+
_defineProperty(this, "contentEncodings", void 0);
|
|
10
|
+
|
|
11
|
+
_defineProperty(this, "isSupported", void 0);
|
|
12
|
+
|
|
13
|
+
this.compressBatches = this.compressBatches.bind(this);
|
|
14
|
+
this.decompressBatches = this.decompressBatches.bind(this);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
async preload() {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
async compress(input) {
|
|
22
|
+
await this.preload();
|
|
23
|
+
return this.compressSync(input);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
async decompress(input, size) {
|
|
27
|
+
await this.preload();
|
|
28
|
+
return this.decompressSync(input, size);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
compressSync(input) {
|
|
32
|
+
throw new Error("".concat(this.name, ": sync compression not supported"));
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
decompressSync(input, size) {
|
|
36
|
+
throw new Error("".concat(this.name, ": sync decompression not supported"));
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
async *compressBatches(asyncIterator) {
|
|
40
|
+
const input = await this.concatenate(asyncIterator);
|
|
41
|
+
yield this.compress(input);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
async *decompressBatches(asyncIterator) {
|
|
45
|
+
const input = await this.concatenate(asyncIterator);
|
|
46
|
+
yield this.decompress(input);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
concatenate(asyncIterator) {
|
|
50
|
+
return concatenateArrayBuffersAsync(asyncIterator);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
improveError(error) {
|
|
54
|
+
if (!error.message.includes(this.name)) {
|
|
55
|
+
error.message = "".concat(this.name, " ").concat(error.message);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return error;
|
|
59
|
+
}
|
|
60
|
+
|
|
56
61
|
}
|
|
57
|
-
|
|
62
|
+
//# sourceMappingURL=compression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/compression.ts"],"names":["concatenateArrayBuffersAsync","Compression","constructor","options","compressBatches","bind","decompressBatches","preload","compress","input","compressSync","decompress","size","decompressSync","Error","name","asyncIterator","concatenate","improveError","error","message","includes"],"mappings":";AACA,SAAQA,4BAAR,QAA2C,0BAA3C;AASA,OAAO,MAAeC,WAAf,CAA2B;AAMhCC,EAAAA,WAAW,CAACC,OAAD,EAA+B;AAAA;;AAAA;;AAAA;;AAAA;;AACxC,SAAKC,eAAL,GAAuB,KAAKA,eAAL,CAAqBC,IAArB,CAA0B,IAA1B,CAAvB;AACA,SAAKC,iBAAL,GAAyB,KAAKA,iBAAL,CAAuBD,IAAvB,CAA4B,IAA5B,CAAzB;AACD;;AAGY,QAAPE,OAAO,GAAkB;AAC7B;AACD;;AAGa,QAARC,QAAQ,CAACC,KAAD,EAA2C;AACvD,UAAM,KAAKF,OAAL,EAAN;AACA,WAAO,KAAKG,YAAL,CAAkBD,KAAlB,CAAP;AACD;;AAGe,QAAVE,UAAU,CAACF,KAAD,EAAqBG,IAArB,EAA0D;AACxE,UAAM,KAAKL,OAAL,EAAN;AACA,WAAO,KAAKM,cAAL,CAAoBJ,KAApB,EAA2BG,IAA3B,CAAP;AACD;;AAGDF,EAAAA,YAAY,CAACD,KAAD,EAAkC;AAC5C,UAAM,IAAIK,KAAJ,WAAa,KAAKC,IAAlB,sCAAN;AACD;;AAGDF,EAAAA,cAAc,CAACJ,KAAD,EAAqBG,IAArB,EAAiD;AAC7D,UAAM,IAAIE,KAAJ,WAAa,KAAKC,IAAlB,wCAAN;AACD;;AAGqB,SAAfX,eAAe,CACpBY,aADoB,EAEQ;AAE5B,UAAMP,KAAK,GAAG,MAAM,KAAKQ,WAAL,CAAiBD,aAAjB,CAApB;AACA,UAAM,KAAKR,QAAL,CAAcC,KAAd,CAAN;AACD;;AAGuB,SAAjBH,iBAAiB,CACtBU,aADsB,EAEM;AAE5B,UAAMP,KAAK,GAAG,MAAM,KAAKQ,WAAL,CAAiBD,aAAjB,CAApB;AACA,UAAM,KAAKL,UAAL,CAAgBF,KAAhB,CAAN;AACD;;AAISQ,EAAAA,WAAW,CAACD,aAAD,EAAsC;AACzD,WAAOhB,4BAA4B,CAACgB,aAAD,CAAnC;AACD;;AAESE,EAAAA,YAAY,CAACC,KAAD,EAAQ;AAC5B,QAAI,CAACA,KAAK,CAACC,OAAN,CAAcC,QAAd,CAAuB,KAAKN,IAA5B,CAAL,EAAwC;AACtCI,MAAAA,KAAK,CAACC,OAAN,aAAmB,KAAKL,IAAxB,cAAgCI,KAAK,CAACC,OAAtC;AACD;;AACD,WAAOD,KAAP;AACD;;AAnE+B","sourcesContent":["// Compression interface\nimport {concatenateArrayBuffersAsync} from '@loaders.gl/loader-utils';\n\n/** Compression options */\nexport type CompressionOptions = {\n // operation: 'compress' | 'decompress';\n modules?: {[moduleName: string]: any};\n};\n\n/** Compression */\nexport abstract class Compression {\n abstract readonly name: string;\n abstract readonly extensions: string[];\n abstract readonly contentEncodings: string[];\n abstract readonly isSupported: boolean;\n\n constructor(options?: CompressionOptions) {\n this.compressBatches = this.compressBatches.bind(this);\n this.decompressBatches = this.decompressBatches.bind(this);\n }\n\n /** Preloads any dynamic libraries. May enable sync functions */\n async preload(): Promise<void> {\n return;\n }\n\n /** Asynchronously compress data */\n async compress(input: ArrayBuffer): Promise<ArrayBuffer> {\n await this.preload();\n return this.compressSync(input);\n }\n\n /** Asynchronously decompress data */\n async decompress(input: ArrayBuffer, size?: number): Promise<ArrayBuffer> {\n await this.preload();\n return this.decompressSync(input, size);\n }\n\n /** Synchronously compress data */\n compressSync(input: ArrayBuffer): ArrayBuffer {\n throw new Error(`${this.name}: sync compression not supported`);\n }\n\n /** Synchronously compress data */\n decompressSync(input: ArrayBuffer, size?: number): ArrayBuffer {\n throw new Error(`${this.name}: sync decompression not supported`);\n }\n\n /** Compress batches */\n async *compressBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n // TODO - implement incremental compression\n const input = await this.concatenate(asyncIterator);\n yield this.compress(input);\n }\n\n /** Decompress batches */\n async *decompressBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n // TODO - implement incremental compression\n const input = await this.concatenate(asyncIterator);\n yield this.decompress(input);\n }\n\n // HELPERS\n\n protected concatenate(asyncIterator): Promise<ArrayBuffer> {\n return concatenateArrayBuffersAsync(asyncIterator);\n }\n\n protected improveError(error) {\n if (!error.message.includes(this.name)) {\n error.message = `${this.name} ${error.message}`;\n }\n return error;\n }\n}\n"],"file":"compression.js"}
|