@loaders.gl/compression 4.2.0-alpha.6 → 4.2.0-beta.2
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/compress-on-worker.d.ts.map +1 -1
- package/dist/compress-on-worker.js +4 -1
- package/dist/compression-worker.js +2 -2
- package/dist/compression-worker.js.map +4 -4
- package/dist/dist.dev.js +663 -50
- package/dist/dist.min.js +3 -3
- package/dist/index.cjs +76 -63
- package/dist/index.cjs.map +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/lib/brotli-compression.d.ts +1 -1
- package/dist/lib/brotli-compression.d.ts.map +1 -1
- package/dist/lib/brotli-compression.js +9 -10
- package/dist/lib/compression.d.ts +1 -1
- package/dist/lib/compression.d.ts.map +1 -1
- package/dist/lib/compression.js +6 -1
- package/dist/lib/deflate-compression.d.ts.map +1 -1
- package/dist/lib/deflate-compression.js +3 -0
- package/dist/lib/gzip-compression.d.ts.map +1 -1
- package/dist/lib/gzip-compression.js +3 -0
- package/dist/lib/lz4-compression.d.ts +1 -0
- package/dist/lib/lz4-compression.d.ts.map +1 -1
- package/dist/lib/lz4-compression.js +10 -5
- package/dist/lib/lzo-compression.d.ts +1 -1
- package/dist/lib/lzo-compression.d.ts.map +1 -1
- package/dist/lib/lzo-compression.js +9 -7
- package/dist/lib/no-compression.d.ts.map +1 -1
- package/dist/lib/no-compression.js +3 -0
- package/dist/lib/snappy-compression.d.ts.map +1 -1
- package/dist/lib/snappy-compression.js +3 -0
- package/dist/lib/zstd-compression.d.ts +2 -1
- package/dist/lib/zstd-compression.d.ts.map +1 -1
- package/dist/lib/zstd-compression.js +29 -9
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +3 -0
- package/dist/workers/compression-worker-node.d.ts.map +1 -1
- package/dist/workers/compression-worker-node.js +3 -0
- package/dist/workers/compression-worker.js +3 -0
- package/package.json +4 -4
- package/src/compress-on-worker.ts +4 -0
- package/src/index.ts +4 -0
- package/src/lib/brotli-compression.ts +12 -11
- package/src/lib/compression.ts +7 -1
- package/src/lib/deflate-compression.ts +4 -0
- package/src/lib/gzip-compression.ts +4 -0
- package/src/lib/lz4-compression.ts +13 -6
- package/src/lib/lzo-compression.ts +10 -9
- package/src/lib/no-compression.ts +4 -0
- package/src/lib/snappy-compression.ts +4 -0
- package/src/lib/zstd-compression.ts +35 -10
- package/src/types.ts +4 -0
- package/src/workers/compression-worker-node.ts +4 -0
- package/src/workers/compression-worker.ts +4 -0
package/dist/index.cjs
CHANGED
|
@@ -46,13 +46,15 @@ module.exports = __toCommonJS(dist_exports);
|
|
|
46
46
|
|
|
47
47
|
// dist/lib/compression.js
|
|
48
48
|
var import_loader_utils = require("@loaders.gl/loader-utils");
|
|
49
|
+
var import_loader_utils2 = require("@loaders.gl/loader-utils");
|
|
49
50
|
var Compression = class {
|
|
50
51
|
constructor(options) {
|
|
51
52
|
this.compressBatches = this.compressBatches.bind(this);
|
|
52
53
|
this.decompressBatches = this.decompressBatches.bind(this);
|
|
53
54
|
}
|
|
54
55
|
/** Preloads any dynamic libraries. May enable sync functions */
|
|
55
|
-
async preload() {
|
|
56
|
+
async preload(modules = {}) {
|
|
57
|
+
(0, import_loader_utils2.registerJSModules)(modules);
|
|
56
58
|
return;
|
|
57
59
|
}
|
|
58
60
|
/** Asynchronously compress data */
|
|
@@ -121,10 +123,10 @@ var NoCompression = class extends Compression {
|
|
|
121
123
|
};
|
|
122
124
|
|
|
123
125
|
// dist/lib/deflate-compression.js
|
|
124
|
-
var
|
|
126
|
+
var import_loader_utils3 = require("@loaders.gl/loader-utils");
|
|
125
127
|
var import_pako = __toESM(require("pako"), 1);
|
|
126
128
|
var import_zlib = __toESM(require("zlib"), 1);
|
|
127
|
-
var
|
|
129
|
+
var import_loader_utils4 = require("@loaders.gl/loader-utils");
|
|
128
130
|
var DeflateCompression = class extends Compression {
|
|
129
131
|
name = "deflate";
|
|
130
132
|
extensions = [];
|
|
@@ -138,25 +140,25 @@ var DeflateCompression = class extends Compression {
|
|
|
138
140
|
}
|
|
139
141
|
async compress(input) {
|
|
140
142
|
var _a, _b;
|
|
141
|
-
if (!
|
|
142
|
-
const buffer = ((_b = this.options.deflate) == null ? void 0 : _b.gzip) ? await (0,
|
|
143
|
-
return (0,
|
|
143
|
+
if (!import_loader_utils3.isBrowser && ((_a = this.options.deflate) == null ? void 0 : _a.useZlib)) {
|
|
144
|
+
const buffer = ((_b = this.options.deflate) == null ? void 0 : _b.gzip) ? await (0, import_loader_utils4.promisify1)(import_zlib.default.gzip)(input) : await (0, import_loader_utils4.promisify1)(import_zlib.default.deflate)(input);
|
|
145
|
+
return (0, import_loader_utils3.toArrayBuffer)(buffer);
|
|
144
146
|
}
|
|
145
147
|
return this.compressSync(input);
|
|
146
148
|
}
|
|
147
149
|
async decompress(input) {
|
|
148
150
|
var _a, _b;
|
|
149
|
-
if (!
|
|
150
|
-
const buffer = ((_b = this.options.deflate) == null ? void 0 : _b.gzip) ? await (0,
|
|
151
|
-
return (0,
|
|
151
|
+
if (!import_loader_utils3.isBrowser && ((_a = this.options.deflate) == null ? void 0 : _a.useZlib)) {
|
|
152
|
+
const buffer = ((_b = this.options.deflate) == null ? void 0 : _b.gzip) ? await (0, import_loader_utils4.promisify1)(import_zlib.default.gunzip)(input) : await (0, import_loader_utils4.promisify1)(import_zlib.default.inflate)(input);
|
|
153
|
+
return (0, import_loader_utils3.toArrayBuffer)(buffer);
|
|
152
154
|
}
|
|
153
155
|
return this.decompressSync(input);
|
|
154
156
|
}
|
|
155
157
|
compressSync(input) {
|
|
156
158
|
var _a, _b, _c, _d;
|
|
157
|
-
if (!
|
|
159
|
+
if (!import_loader_utils3.isBrowser && ((_a = this.options.deflate) == null ? void 0 : _a.useZlib)) {
|
|
158
160
|
const buffer = ((_b = this.options.deflate) == null ? void 0 : _b.gzip) ? import_zlib.default.gzipSync(input) : import_zlib.default.deflateSync(input);
|
|
159
|
-
return (0,
|
|
161
|
+
return (0, import_loader_utils3.toArrayBuffer)(buffer);
|
|
160
162
|
}
|
|
161
163
|
const pakoOptions = ((_c = this.options) == null ? void 0 : _c.deflate) || {};
|
|
162
164
|
const inputArray = new Uint8Array(input);
|
|
@@ -165,9 +167,9 @@ var DeflateCompression = class extends Compression {
|
|
|
165
167
|
}
|
|
166
168
|
decompressSync(input) {
|
|
167
169
|
var _a, _b, _c, _d;
|
|
168
|
-
if (!
|
|
170
|
+
if (!import_loader_utils3.isBrowser && ((_a = this.options.deflate) == null ? void 0 : _a.useZlib)) {
|
|
169
171
|
const buffer = ((_b = this.options.deflate) == null ? void 0 : _b.gzip) ? import_zlib.default.gunzipSync(input) : import_zlib.default.inflateSync(input);
|
|
170
|
-
return (0,
|
|
172
|
+
return (0, import_loader_utils3.toArrayBuffer)(buffer);
|
|
171
173
|
}
|
|
172
174
|
const pakoOptions = ((_c = this.options) == null ? void 0 : _c.deflate) || {};
|
|
173
175
|
const inputArray = new Uint8Array(input);
|
|
@@ -256,7 +258,8 @@ var GZipCompression = class extends DeflateCompression {
|
|
|
256
258
|
};
|
|
257
259
|
|
|
258
260
|
// dist/lib/brotli-compression.js
|
|
259
|
-
var
|
|
261
|
+
var import_loader_utils5 = require("@loaders.gl/loader-utils");
|
|
262
|
+
var import_loader_utils6 = require("@loaders.gl/loader-utils");
|
|
260
263
|
|
|
261
264
|
// dist/brotli/decode.js
|
|
262
265
|
var makeBrotliDecode = () => {
|
|
@@ -2242,7 +2245,7 @@ var BrotliDecode = makeBrotliDecode();
|
|
|
2242
2245
|
|
|
2243
2246
|
// dist/lib/brotli-compression.js
|
|
2244
2247
|
var import_zlib2 = __toESM(require("zlib"), 1);
|
|
2245
|
-
var
|
|
2248
|
+
var import_loader_utils7 = require("@loaders.gl/loader-utils");
|
|
2246
2249
|
var DEFAULT_BROTLI_OPTIONS = {
|
|
2247
2250
|
brotli: {
|
|
2248
2251
|
mode: 0,
|
|
@@ -2250,7 +2253,6 @@ var DEFAULT_BROTLI_OPTIONS = {
|
|
|
2250
2253
|
lgwin: 22
|
|
2251
2254
|
}
|
|
2252
2255
|
};
|
|
2253
|
-
var brotli;
|
|
2254
2256
|
var BrotliCompression = class extends Compression {
|
|
2255
2257
|
name = "brotli";
|
|
2256
2258
|
extensions = ["br"];
|
|
@@ -2260,56 +2262,52 @@ var BrotliCompression = class extends Compression {
|
|
|
2260
2262
|
constructor(options) {
|
|
2261
2263
|
super(options);
|
|
2262
2264
|
this.options = options;
|
|
2265
|
+
(0, import_loader_utils6.registerJSModules)(options == null ? void 0 : options.modules);
|
|
2263
2266
|
}
|
|
2264
2267
|
/**
|
|
2265
2268
|
* brotli is an injectable dependency due to big size
|
|
2266
2269
|
* @param options
|
|
2267
2270
|
*/
|
|
2268
|
-
async preload() {
|
|
2269
|
-
|
|
2270
|
-
brotli = brotli || ((_b = (_a = this.options) == null ? void 0 : _a.modules) == null ? void 0 : _b.brotli);
|
|
2271
|
-
if (!brotli) {
|
|
2272
|
-
console.warn(`${this.name} library not installed`);
|
|
2273
|
-
}
|
|
2271
|
+
async preload(modules = {}) {
|
|
2272
|
+
(0, import_loader_utils6.registerJSModules)(modules);
|
|
2274
2273
|
}
|
|
2275
2274
|
async compress(input) {
|
|
2276
2275
|
var _a;
|
|
2277
|
-
if (!
|
|
2278
|
-
const buffer = await (0,
|
|
2279
|
-
return (0,
|
|
2276
|
+
if (!import_loader_utils5.isBrowser && ((_a = this.options.brotli) == null ? void 0 : _a.useZlib)) {
|
|
2277
|
+
const buffer = await (0, import_loader_utils7.promisify1)(import_zlib2.default.brotliCompress)(input);
|
|
2278
|
+
return (0, import_loader_utils5.toArrayBuffer)(buffer);
|
|
2280
2279
|
}
|
|
2281
2280
|
return this.compressSync(input);
|
|
2282
2281
|
}
|
|
2283
2282
|
compressSync(input) {
|
|
2284
2283
|
var _a, _b;
|
|
2285
|
-
if (!
|
|
2284
|
+
if (!import_loader_utils5.isBrowser && ((_a = this.options.brotli) == null ? void 0 : _a.useZlib)) {
|
|
2286
2285
|
const buffer = import_zlib2.default.brotliCompressSync(input);
|
|
2287
|
-
return (0,
|
|
2286
|
+
return (0, import_loader_utils5.toArrayBuffer)(buffer);
|
|
2288
2287
|
}
|
|
2289
2288
|
const brotliOptions = { ...DEFAULT_BROTLI_OPTIONS.brotli, ...(_b = this.options) == null ? void 0 : _b.brotli };
|
|
2290
2289
|
const inputArray = new Uint8Array(input);
|
|
2291
|
-
|
|
2292
|
-
throw new Error("brotli compression: brotli module not installed");
|
|
2293
|
-
}
|
|
2290
|
+
const brotli = (0, import_loader_utils6.getJSModule)("brotli", this.name);
|
|
2294
2291
|
const outputArray = brotli.compress(inputArray, brotliOptions);
|
|
2295
2292
|
return outputArray.buffer;
|
|
2296
2293
|
}
|
|
2297
2294
|
async decompress(input) {
|
|
2298
2295
|
var _a;
|
|
2299
|
-
if (!
|
|
2300
|
-
const buffer = await (0,
|
|
2301
|
-
return (0,
|
|
2296
|
+
if (!import_loader_utils5.isBrowser && ((_a = this.options.brotli) == null ? void 0 : _a.useZlib)) {
|
|
2297
|
+
const buffer = await (0, import_loader_utils7.promisify1)(import_zlib2.default.brotliDecompress)(input);
|
|
2298
|
+
return (0, import_loader_utils5.toArrayBuffer)(buffer);
|
|
2302
2299
|
}
|
|
2303
2300
|
return this.decompressSync(input);
|
|
2304
2301
|
}
|
|
2305
2302
|
decompressSync(input) {
|
|
2306
2303
|
var _a, _b;
|
|
2307
|
-
if (!
|
|
2304
|
+
if (!import_loader_utils5.isBrowser && ((_a = this.options.brotli) == null ? void 0 : _a.useZlib)) {
|
|
2308
2305
|
const buffer = import_zlib2.default.brotliDecompressSync(input);
|
|
2309
|
-
return (0,
|
|
2306
|
+
return (0, import_loader_utils5.toArrayBuffer)(buffer);
|
|
2310
2307
|
}
|
|
2311
2308
|
const brotliOptions = { ...DEFAULT_BROTLI_OPTIONS.brotli, ...(_b = this.options) == null ? void 0 : _b.brotli };
|
|
2312
2309
|
const inputArray = new Uint8Array(input);
|
|
2310
|
+
const brotli = (0, import_loader_utils6.getJSModuleOrNull)("brotli");
|
|
2313
2311
|
if (brotli) {
|
|
2314
2312
|
const outputArray2 = brotli.decompress(inputArray, brotliOptions);
|
|
2315
2313
|
return outputArray2.buffer;
|
|
@@ -2340,9 +2338,9 @@ var SnappyCompression = class extends Compression {
|
|
|
2340
2338
|
};
|
|
2341
2339
|
|
|
2342
2340
|
// dist/lib/lz4-compression.js
|
|
2343
|
-
var
|
|
2341
|
+
var import_loader_utils8 = require("@loaders.gl/loader-utils");
|
|
2342
|
+
var import_loader_utils9 = require("@loaders.gl/loader-utils");
|
|
2344
2343
|
var LZ4_MAGIC_NUMBER = 407708164;
|
|
2345
|
-
var lz4js;
|
|
2346
2344
|
var LZ4Compression = class extends Compression {
|
|
2347
2345
|
name = "lz4";
|
|
2348
2346
|
extensions = ["lz4"];
|
|
@@ -2350,15 +2348,15 @@ var LZ4Compression = class extends Compression {
|
|
|
2350
2348
|
isSupported = true;
|
|
2351
2349
|
options;
|
|
2352
2350
|
constructor(options) {
|
|
2353
|
-
var _a, _b;
|
|
2354
2351
|
super(options);
|
|
2355
2352
|
this.options = options;
|
|
2356
|
-
|
|
2357
|
-
|
|
2358
|
-
|
|
2359
|
-
|
|
2353
|
+
(0, import_loader_utils9.registerJSModules)(options == null ? void 0 : options.modules);
|
|
2354
|
+
}
|
|
2355
|
+
async preload(modules = {}) {
|
|
2356
|
+
(0, import_loader_utils9.registerJSModules)(modules);
|
|
2360
2357
|
}
|
|
2361
2358
|
compressSync(input) {
|
|
2359
|
+
const lz4js = (0, import_loader_utils9.getJSModule)("lz4js", this.name);
|
|
2362
2360
|
const inputArray = new Uint8Array(input);
|
|
2363
2361
|
return lz4js.compress(inputArray).buffer;
|
|
2364
2362
|
}
|
|
@@ -2369,6 +2367,7 @@ var LZ4Compression = class extends Compression {
|
|
|
2369
2367
|
* If data provided without magic number we will parse it as block
|
|
2370
2368
|
*/
|
|
2371
2369
|
decompressSync(data, maxSize) {
|
|
2370
|
+
const lz4js = (0, import_loader_utils9.getJSModule)("lz4js", this.name);
|
|
2372
2371
|
try {
|
|
2373
2372
|
const isMagicNumberExists = this.checkMagicNumber(data);
|
|
2374
2373
|
const inputArray = new Uint8Array(data);
|
|
@@ -2382,7 +2381,7 @@ var LZ4Compression = class extends Compression {
|
|
|
2382
2381
|
let uncompressed = new Uint8Array(maxSize);
|
|
2383
2382
|
const uncompressedSize = this.decodeBlock(inputArray, uncompressed);
|
|
2384
2383
|
uncompressed = uncompressed.slice(0, uncompressedSize);
|
|
2385
|
-
return (0,
|
|
2384
|
+
return (0, import_loader_utils8.toArrayBuffer)(uncompressed);
|
|
2386
2385
|
} catch (error) {
|
|
2387
2386
|
throw this.improveError(error);
|
|
2388
2387
|
}
|
|
@@ -2446,7 +2445,10 @@ var LZ4Compression = class extends Compression {
|
|
|
2446
2445
|
};
|
|
2447
2446
|
|
|
2448
2447
|
// dist/lib/zstd-compression.js
|
|
2449
|
-
var
|
|
2448
|
+
var import_loader_utils10 = require("@loaders.gl/loader-utils");
|
|
2449
|
+
var import_loader_utils11 = require("@loaders.gl/loader-utils");
|
|
2450
|
+
var CHUNK_SIZE = 1e6;
|
|
2451
|
+
var zstdPromise;
|
|
2450
2452
|
var zstd;
|
|
2451
2453
|
var ZstdCompression = class extends Compression {
|
|
2452
2454
|
name = "zstd";
|
|
@@ -2459,34 +2461,46 @@ var ZstdCompression = class extends Compression {
|
|
|
2459
2461
|
* @param options
|
|
2460
2462
|
*/
|
|
2461
2463
|
constructor(options) {
|
|
2462
|
-
var _a, _b;
|
|
2463
2464
|
super(options);
|
|
2464
2465
|
this.options = options;
|
|
2465
|
-
|
|
2466
|
-
if (!ZstdCodec) {
|
|
2467
|
-
console.warn(`${this.name} library not installed`);
|
|
2468
|
-
}
|
|
2466
|
+
(0, import_loader_utils10.registerJSModules)(options == null ? void 0 : options.modules);
|
|
2469
2467
|
}
|
|
2470
|
-
async preload() {
|
|
2471
|
-
|
|
2472
|
-
|
|
2468
|
+
async preload(modules = {}) {
|
|
2469
|
+
(0, import_loader_utils10.registerJSModules)(modules);
|
|
2470
|
+
(0, import_loader_utils11.checkJSModule)("zstd-codec", this.name);
|
|
2471
|
+
const ZstdCodec = (0, import_loader_utils11.getJSModuleOrNull)("zstd-codec");
|
|
2472
|
+
if (!zstdPromise && ZstdCodec) {
|
|
2473
|
+
zstdPromise = new Promise((resolve) => ZstdCodec.run((zstd2) => resolve(zstd2)));
|
|
2474
|
+
zstd = await zstdPromise;
|
|
2473
2475
|
}
|
|
2474
2476
|
}
|
|
2475
2477
|
compressSync(input) {
|
|
2478
|
+
(0, import_loader_utils11.getJSModule)("zstd-codec", this.name);
|
|
2476
2479
|
const simpleZstd = new zstd.Simple();
|
|
2477
2480
|
const inputArray = new Uint8Array(input);
|
|
2478
2481
|
return simpleZstd.compress(inputArray).buffer;
|
|
2479
2482
|
}
|
|
2480
2483
|
decompressSync(input) {
|
|
2484
|
+
(0, import_loader_utils11.getJSModule)("zstd-codec", this.name);
|
|
2481
2485
|
const simpleZstd = new zstd.Simple();
|
|
2482
2486
|
const inputArray = new Uint8Array(input);
|
|
2483
2487
|
return simpleZstd.decompress(inputArray).buffer;
|
|
2484
2488
|
}
|
|
2489
|
+
async decompress(input, size) {
|
|
2490
|
+
await this.preload();
|
|
2491
|
+
const simpleZstd = new zstd.Streaming();
|
|
2492
|
+
const inputArray = new Uint8Array(input);
|
|
2493
|
+
const chunks = [];
|
|
2494
|
+
for (let i = 0; i <= inputArray.length; i += CHUNK_SIZE) {
|
|
2495
|
+
chunks.push(inputArray.subarray(i, i + CHUNK_SIZE));
|
|
2496
|
+
}
|
|
2497
|
+
const decompressResult = await simpleZstd.decompressChunks(chunks);
|
|
2498
|
+
return decompressResult.buffer;
|
|
2499
|
+
}
|
|
2485
2500
|
};
|
|
2486
2501
|
|
|
2487
2502
|
// dist/lib/lzo-compression.js
|
|
2488
|
-
var
|
|
2489
|
-
var lzo;
|
|
2503
|
+
var import_loader_utils12 = require("@loaders.gl/loader-utils");
|
|
2490
2504
|
var LZOCompression = class extends Compression {
|
|
2491
2505
|
name = "lzo";
|
|
2492
2506
|
extensions = [];
|
|
@@ -2499,25 +2513,24 @@ var LZOCompression = class extends Compression {
|
|
|
2499
2513
|
* @param options
|
|
2500
2514
|
*/
|
|
2501
2515
|
constructor(options) {
|
|
2502
|
-
var _a, _b;
|
|
2503
2516
|
super(options);
|
|
2504
2517
|
this.options = options;
|
|
2505
|
-
|
|
2506
|
-
if (!lzo) {
|
|
2507
|
-
throw new Error(this.name);
|
|
2508
|
-
}
|
|
2518
|
+
(0, import_loader_utils12.registerJSModules)(options == null ? void 0 : options.modules);
|
|
2509
2519
|
}
|
|
2510
|
-
async preload() {
|
|
2520
|
+
async preload(modules = {}) {
|
|
2521
|
+
(0, import_loader_utils12.registerJSModules)(modules);
|
|
2511
2522
|
}
|
|
2512
2523
|
async compress(input) {
|
|
2513
2524
|
await this.preload();
|
|
2514
|
-
const
|
|
2525
|
+
const lzo = (0, import_loader_utils12.getJSModule)("lzo", this.name);
|
|
2526
|
+
const inputBuffer = (0, import_loader_utils12.toBuffer)(input);
|
|
2515
2527
|
return lzo.compress(inputBuffer).buffer;
|
|
2516
2528
|
}
|
|
2517
2529
|
async decompress(input) {
|
|
2518
2530
|
try {
|
|
2519
2531
|
await this.preload();
|
|
2520
|
-
const
|
|
2532
|
+
const lzo = (0, import_loader_utils12.getJSModule)("lzo", this.name);
|
|
2533
|
+
const inputBuffer = (0, import_loader_utils12.toBuffer)(input);
|
|
2521
2534
|
return lzo.decompress(inputBuffer).buffer;
|
|
2522
2535
|
} catch (error) {
|
|
2523
2536
|
throw error;
|
|
@@ -2527,7 +2540,7 @@ var LZOCompression = class extends Compression {
|
|
|
2527
2540
|
|
|
2528
2541
|
// dist/compress-on-worker.js
|
|
2529
2542
|
var import_worker_utils = require("@loaders.gl/worker-utils");
|
|
2530
|
-
var VERSION = true ? "4.2.0-
|
|
2543
|
+
var VERSION = true ? "4.2.0-beta.1" : "latest";
|
|
2531
2544
|
var CompressionWorker = {
|
|
2532
2545
|
id: "compression",
|
|
2533
2546
|
name: "compression",
|