@loaders.gl/compression 4.0.0-alpha.4 → 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.d.ts +5 -0
- package/dist/brotli/decode.d.ts.map +1 -0
- package/dist/brotli/decode.js +2213 -0
- package/dist/brotli/decode.js.map +1 -0
- package/dist/bundle.d.ts +2 -0
- package/dist/bundle.d.ts.map +1 -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/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- 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 +17 -3
- package/dist/lib/brotli-compression.js.map +1 -1
- package/dist/lib/compression.d.ts +31 -0
- package/dist/lib/compression.d.ts.map +1 -0
- package/dist/lib/deflate-compression.d.ts +32 -0
- package/dist/lib/deflate-compression.d.ts.map +1 -0
- package/dist/lib/gzip-compression.d.ts +17 -0
- package/dist/lib/gzip-compression.d.ts.map +1 -0
- package/dist/lib/lz4-compression.d.ts +37 -0
- package/dist/lib/lz4-compression.d.ts.map +1 -0
- package/dist/lib/lzo-compression.d.ts +21 -0
- package/dist/lib/lzo-compression.d.ts.map +1 -0
- package/dist/lib/no-compression.d.ts +18 -0
- package/dist/lib/no-compression.d.ts.map +1 -0
- package/dist/lib/snappy-compression.d.ts +16 -0
- package/dist/lib/snappy-compression.d.ts.map +1 -0
- 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 +4 -2
- package/dist/lib/zstd-compression.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/workers/worker.d.ts +2 -0
- package/dist/workers/worker.d.ts.map +1 -0
- package/dist/workers/worker.js +1 -10
- package/dist/workers/worker.js.map +1 -1
- package/package.json +7 -7
- package/src/brotli/decode.ts +2441 -0
- package/src/lib/brotli-compression.ts +19 -4
- package/src/lib/zstd-compression.ts +5 -2
- package/src/workers/worker.ts +10 -10
|
@@ -4,6 +4,7 @@ import {Compression} from './compression';
|
|
|
4
4
|
import {isBrowser, toArrayBuffer} from '@loaders.gl/loader-utils';
|
|
5
5
|
import type brotliNamespace from 'brotli';
|
|
6
6
|
// import brotli from 'brotli'; // https://bundlephobia.com/package/brotli
|
|
7
|
+
import {BrotliDecode} from '../brotli/decode';
|
|
7
8
|
import zlib from 'zlib';
|
|
8
9
|
import {promisify} from '@loaders.gl/loader-utils';
|
|
9
10
|
|
|
@@ -48,7 +49,8 @@ export class BrotliCompression extends Compression {
|
|
|
48
49
|
async preload(): Promise<void> {
|
|
49
50
|
brotli = brotli || this.options?.modules?.brotli;
|
|
50
51
|
if (!brotli) {
|
|
51
|
-
|
|
52
|
+
// eslint-disable-next-line no-console
|
|
53
|
+
console.warn(`${this.name} library not installed`);
|
|
52
54
|
}
|
|
53
55
|
}
|
|
54
56
|
|
|
@@ -69,8 +71,14 @@ export class BrotliCompression extends Compression {
|
|
|
69
71
|
}
|
|
70
72
|
const brotliOptions = {...DEFAULT_BROTLI_OPTIONS.brotli, ...this.options?.brotli};
|
|
71
73
|
const inputArray = new Uint8Array(input);
|
|
74
|
+
|
|
75
|
+
if (!brotli) {
|
|
76
|
+
throw new Error('brotli compression: brotli module not installed');
|
|
77
|
+
}
|
|
78
|
+
|
|
72
79
|
// @ts-ignore brotli types state that only Buffers are accepted...
|
|
73
|
-
|
|
80
|
+
const outputArray = brotli.compress(inputArray, brotliOptions);
|
|
81
|
+
return outputArray.buffer;
|
|
74
82
|
}
|
|
75
83
|
|
|
76
84
|
async decompress(input: ArrayBuffer): Promise<ArrayBuffer> {
|
|
@@ -88,9 +96,16 @@ export class BrotliCompression extends Compression {
|
|
|
88
96
|
const buffer = zlib.brotliDecompressSync(input);
|
|
89
97
|
return toArrayBuffer(buffer);
|
|
90
98
|
}
|
|
99
|
+
|
|
91
100
|
const brotliOptions = {...DEFAULT_BROTLI_OPTIONS.brotli, ...this.options?.brotli};
|
|
92
101
|
const inputArray = new Uint8Array(input);
|
|
93
|
-
|
|
94
|
-
|
|
102
|
+
|
|
103
|
+
if (brotli) {
|
|
104
|
+
// @ts-ignore brotli types state that only Buffers are accepted...
|
|
105
|
+
const outputArray = brotli.decompress(inputArray, brotliOptions);
|
|
106
|
+
return outputArray.buffer;
|
|
107
|
+
}
|
|
108
|
+
const outputArray = BrotliDecode(inputArray, undefined);
|
|
109
|
+
return outputArray.buffer;
|
|
95
110
|
}
|
|
96
111
|
}
|
|
@@ -26,12 +26,15 @@ export class ZstdCompression extends Compression {
|
|
|
26
26
|
|
|
27
27
|
ZstdCodec = this.options?.modules?.['zstd-codec'];
|
|
28
28
|
if (!ZstdCodec) {
|
|
29
|
-
|
|
29
|
+
// eslint-disable-next-line no-console
|
|
30
|
+
console.warn(`${this.name} library not installed`);
|
|
30
31
|
}
|
|
31
32
|
}
|
|
32
33
|
|
|
33
34
|
async preload(): Promise<void> {
|
|
34
|
-
|
|
35
|
+
if (!zstd && ZstdCodec) {
|
|
36
|
+
zstd = await new Promise((resolve) => ZstdCodec.run((zstd) => resolve(zstd)));
|
|
37
|
+
}
|
|
35
38
|
}
|
|
36
39
|
|
|
37
40
|
compressSync(input: ArrayBuffer): ArrayBuffer {
|
package/src/workers/worker.ts
CHANGED
|
@@ -13,23 +13,23 @@ import {ZstdCompression} from '../lib/zstd-compression';
|
|
|
13
13
|
// Import big dependencies
|
|
14
14
|
|
|
15
15
|
// import brotli from 'brotli'; - brotli has problems with decompress in browsers
|
|
16
|
-
import brotliDecompress from 'brotli/decompress';
|
|
16
|
+
// import brotliDecompress from 'brotli/decompress';
|
|
17
17
|
import lz4js from 'lz4js';
|
|
18
18
|
// import lzo from 'lzo';
|
|
19
|
-
import {ZstdCodec} from 'zstd-codec';
|
|
19
|
+
// import {ZstdCodec} from 'zstd-codec';
|
|
20
20
|
|
|
21
21
|
// Inject large dependencies through Compression constructor options
|
|
22
22
|
const modules = {
|
|
23
23
|
// brotli has problems with decompress in browsers
|
|
24
|
-
brotli: {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
},
|
|
30
|
-
lz4js
|
|
24
|
+
// brotli: {
|
|
25
|
+
// decompress: brotliDecompress,
|
|
26
|
+
// compress: () => {
|
|
27
|
+
// throw new Error('brotli compress');
|
|
28
|
+
// }
|
|
29
|
+
// },
|
|
30
|
+
lz4js
|
|
31
31
|
// lzo,
|
|
32
|
-
'zstd-codec': ZstdCodec
|
|
32
|
+
// 'zstd-codec': ZstdCodec
|
|
33
33
|
};
|
|
34
34
|
|
|
35
35
|
/** @type {Compression[]} */
|