@loaders.gl/compression 3.1.0-alpha.4 → 3.1.0-beta.3
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 +5 -0
- package/dist/compression-worker.d.ts +21 -0
- package/dist/compression-worker.d.ts.map +1 -0
- package/dist/compression-worker.js +4 -13
- 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 +2220 -0
- package/dist/es5/brotli/decode.js.map +1 -0
- package/dist/es5/bundle.js +1 -1
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/compression-worker.js +3 -3
- package/dist/es5/compression-worker.js.map +1 -1
- package/dist/es5/index.js +11 -11
- package/dist/es5/lib/brotli-compression.js +84 -184
- package/dist/es5/lib/brotli-compression.js.map +1 -1
- package/dist/es5/lib/compression.js +46 -175
- package/dist/es5/lib/compression.js.map +1 -1
- package/dist/es5/lib/deflate-compression.js +118 -373
- package/dist/es5/lib/deflate-compression.js.map +1 -1
- package/dist/es5/lib/gzip-compression.js +11 -38
- package/dist/es5/lib/gzip-compression.js.map +1 -1
- package/dist/es5/lib/lz4-compression.js +81 -112
- package/dist/es5/lib/lz4-compression.js.map +1 -1
- package/dist/es5/lib/lzo-compression.js +28 -128
- package/dist/es5/lib/lzo-compression.js.map +1 -1
- package/dist/es5/lib/no-compression.js +22 -94
- package/dist/es5/lib/no-compression.js.map +1 -1
- package/dist/es5/lib/snappy-compression.js +16 -44
- package/dist/es5/lib/snappy-compression.js.map +1 -1
- package/dist/es5/lib/zstd-compression.js +27 -98
- package/dist/es5/lib/zstd-compression.js.map +1 -1
- package/dist/es5/workers/worker.js +26 -74
- package/dist/es5/workers/worker.js.map +1 -1
- package/dist/esm/brotli/decode.js +2213 -0
- package/dist/esm/brotli/decode.js.map +1 -0
- package/dist/esm/compression-worker.js +1 -1
- package/dist/esm/compression-worker.js.map +1 -1
- package/dist/esm/lib/brotli-compression.js +16 -2
- package/dist/esm/lib/brotli-compression.js.map +1 -1
- package/dist/esm/lib/compression.js +3 -3
- package/dist/esm/lib/compression.js.map +1 -1
- package/dist/esm/lib/deflate-compression.js +2 -2
- package/dist/esm/lib/deflate-compression.js.map +1 -1
- package/dist/esm/lib/zstd-compression.js +1 -1
- package/dist/esm/lib/zstd-compression.js.map +1 -1
- package/dist/esm/workers/worker.js +3 -12
- package/dist/esm/workers/worker.js.map +1 -1
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -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 +91 -0
- package/dist/lib/compression.d.ts +31 -0
- package/dist/lib/compression.d.ts.map +1 -0
- package/dist/lib/compression.js +57 -0
- 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 +135 -0
- 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 +17 -0
- 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 +141 -0
- 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 +58 -0
- 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 +30 -0
- 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 +27 -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 +44 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/workers/worker.d.ts +2 -0
- package/dist/workers/worker.d.ts.map +1 -0
- package/dist/workers/worker.js +77 -0
- package/package.json +7 -7
- package/src/brotli/decode.ts +2441 -0
- package/src/lib/brotli-compression.ts +17 -3
- package/src/lib/zstd-compression.ts +1 -1
- package/src/workers/worker.ts +10 -10
|
@@ -7,414 +7,159 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.DeflateCompression = void 0;
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _compression = require("./compression");
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _loaderUtils = require("@loaders.gl/loader-utils");
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _pako = _interopRequireDefault(require("pako"));
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _zlib = _interopRequireDefault(require("zlib"));
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
class DeflateCompression extends _compression.Compression {
|
|
21
|
+
constructor(options = {}) {
|
|
22
|
+
super(options);
|
|
23
|
+
(0, _defineProperty2.default)(this, "name", 'deflate');
|
|
24
|
+
(0, _defineProperty2.default)(this, "extensions", []);
|
|
25
|
+
(0, _defineProperty2.default)(this, "contentEncodings", ['deflate']);
|
|
26
|
+
(0, _defineProperty2.default)(this, "isSupported", true);
|
|
27
|
+
(0, _defineProperty2.default)(this, "options", void 0);
|
|
28
|
+
(0, _defineProperty2.default)(this, "_chunks", []);
|
|
29
|
+
this.options = options;
|
|
30
|
+
}
|
|
21
31
|
|
|
22
|
-
|
|
32
|
+
async compress(input) {
|
|
33
|
+
var _this$options$deflate;
|
|
23
34
|
|
|
24
|
-
|
|
35
|
+
if (!_loaderUtils.isBrowser && (_this$options$deflate = this.options.deflate) !== null && _this$options$deflate !== void 0 && _this$options$deflate.useZlib) {
|
|
36
|
+
var _this$options$deflate2;
|
|
25
37
|
|
|
26
|
-
|
|
38
|
+
const buffer = (_this$options$deflate2 = this.options.deflate) !== null && _this$options$deflate2 !== void 0 && _this$options$deflate2.gzip ? await (0, _loaderUtils.promisify)(_zlib.default.gzip)(input) : await (0, _loaderUtils.promisify)(_zlib.default.deflate)(input);
|
|
39
|
+
return (0, _loaderUtils.toArrayBuffer)(buffer);
|
|
40
|
+
}
|
|
27
41
|
|
|
28
|
-
|
|
42
|
+
return this.compressSync(input);
|
|
43
|
+
}
|
|
29
44
|
|
|
30
|
-
|
|
45
|
+
async decompress(input) {
|
|
46
|
+
var _this$options$deflate3;
|
|
31
47
|
|
|
32
|
-
|
|
48
|
+
if (!_loaderUtils.isBrowser && (_this$options$deflate3 = this.options.deflate) !== null && _this$options$deflate3 !== void 0 && _this$options$deflate3.useZlib) {
|
|
49
|
+
var _this$options$deflate4;
|
|
33
50
|
|
|
34
|
-
|
|
51
|
+
const buffer = (_this$options$deflate4 = this.options.deflate) !== null && _this$options$deflate4 !== void 0 && _this$options$deflate4.gzip ? await (0, _loaderUtils.promisify)(_zlib.default.gunzip)(input) : await (0, _loaderUtils.promisify)(_zlib.default.inflate)(input);
|
|
52
|
+
return (0, _loaderUtils.toArrayBuffer)(buffer);
|
|
53
|
+
}
|
|
35
54
|
|
|
36
|
-
|
|
55
|
+
return this.decompressSync(input);
|
|
56
|
+
}
|
|
37
57
|
|
|
38
|
-
|
|
58
|
+
compressSync(input) {
|
|
59
|
+
var _this$options$deflate5, _this$options;
|
|
39
60
|
|
|
40
|
-
|
|
61
|
+
if (!_loaderUtils.isBrowser && (_this$options$deflate5 = this.options.deflate) !== null && _this$options$deflate5 !== void 0 && _this$options$deflate5.useZlib) {
|
|
62
|
+
var _this$options$deflate6;
|
|
41
63
|
|
|
42
|
-
|
|
64
|
+
const buffer = (_this$options$deflate6 = this.options.deflate) !== null && _this$options$deflate6 !== void 0 && _this$options$deflate6.gzip ? _zlib.default.gzipSync(input) : _zlib.default.deflateSync(input);
|
|
65
|
+
return (0, _loaderUtils.toArrayBuffer)(buffer);
|
|
66
|
+
}
|
|
43
67
|
|
|
44
|
-
|
|
68
|
+
const pakoOptions = ((_this$options = this.options) === null || _this$options === void 0 ? void 0 : _this$options.deflate) || {};
|
|
69
|
+
const inputArray = new Uint8Array(input);
|
|
70
|
+
return _pako.default.deflate(inputArray, pakoOptions).buffer;
|
|
71
|
+
}
|
|
45
72
|
|
|
46
|
-
|
|
73
|
+
decompressSync(input) {
|
|
74
|
+
var _this$options$deflate7, _this$options2;
|
|
47
75
|
|
|
48
|
-
|
|
49
|
-
|
|
76
|
+
if (!_loaderUtils.isBrowser && (_this$options$deflate7 = this.options.deflate) !== null && _this$options$deflate7 !== void 0 && _this$options$deflate7.useZlib) {
|
|
77
|
+
var _this$options$deflate8;
|
|
50
78
|
|
|
51
|
-
|
|
79
|
+
const buffer = (_this$options$deflate8 = this.options.deflate) !== null && _this$options$deflate8 !== void 0 && _this$options$deflate8.gzip ? _zlib.default.gunzipSync(input) : _zlib.default.inflateSync(input);
|
|
80
|
+
return (0, _loaderUtils.toArrayBuffer)(buffer);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const pakoOptions = ((_this$options2 = this.options) === null || _this$options2 === void 0 ? void 0 : _this$options2.deflate) || {};
|
|
84
|
+
const inputArray = new Uint8Array(input);
|
|
85
|
+
return _pako.default.inflate(inputArray, pakoOptions).buffer;
|
|
86
|
+
}
|
|
52
87
|
|
|
53
|
-
|
|
54
|
-
var
|
|
88
|
+
async *compressBatches(asyncIterator) {
|
|
89
|
+
var _this$options3;
|
|
55
90
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this4), "name", 'deflate');
|
|
60
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this4), "extensions", []);
|
|
61
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this4), "contentEncodings", ['deflate']);
|
|
62
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this4), "isSupported", true);
|
|
63
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this4), "options", void 0);
|
|
64
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this4), "_chunks", []);
|
|
65
|
-
_this4.options = options;
|
|
66
|
-
return _this4;
|
|
91
|
+
const pakoOptions = ((_this$options3 = this.options) === null || _this$options3 === void 0 ? void 0 : _this$options3.deflate) || {};
|
|
92
|
+
const pakoProcessor = new _pako.default.Deflate(pakoOptions);
|
|
93
|
+
yield* this.transformBatches(pakoProcessor, asyncIterator);
|
|
67
94
|
}
|
|
68
95
|
|
|
69
|
-
(
|
|
70
|
-
|
|
71
|
-
value: function () {
|
|
72
|
-
var _compress = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(input) {
|
|
73
|
-
var _this$options$deflate;
|
|
74
|
-
|
|
75
|
-
var _this$options$deflate2, buffer;
|
|
76
|
-
|
|
77
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
78
|
-
while (1) {
|
|
79
|
-
switch (_context.prev = _context.next) {
|
|
80
|
-
case 0:
|
|
81
|
-
if (!(!_loaderUtils.isBrowser && (_this$options$deflate = this.options.deflate) !== null && _this$options$deflate !== void 0 && _this$options$deflate.useZlib)) {
|
|
82
|
-
_context.next = 12;
|
|
83
|
-
break;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
if (!((_this$options$deflate2 = this.options.deflate) !== null && _this$options$deflate2 !== void 0 && _this$options$deflate2.gzip)) {
|
|
87
|
-
_context.next = 7;
|
|
88
|
-
break;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
_context.next = 4;
|
|
92
|
-
return (0, _loaderUtils.promisify)(_zlib.default.gzip)(input);
|
|
93
|
-
|
|
94
|
-
case 4:
|
|
95
|
-
_context.t0 = _context.sent;
|
|
96
|
-
_context.next = 10;
|
|
97
|
-
break;
|
|
98
|
-
|
|
99
|
-
case 7:
|
|
100
|
-
_context.next = 9;
|
|
101
|
-
return (0, _loaderUtils.promisify)(_zlib.default.deflate)(input);
|
|
102
|
-
|
|
103
|
-
case 9:
|
|
104
|
-
_context.t0 = _context.sent;
|
|
105
|
-
|
|
106
|
-
case 10:
|
|
107
|
-
buffer = _context.t0;
|
|
108
|
-
return _context.abrupt("return", (0, _loaderUtils.toArrayBuffer)(buffer));
|
|
109
|
-
|
|
110
|
-
case 12:
|
|
111
|
-
return _context.abrupt("return", this.compressSync(input));
|
|
112
|
-
|
|
113
|
-
case 13:
|
|
114
|
-
case "end":
|
|
115
|
-
return _context.stop();
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}, _callee, this);
|
|
119
|
-
}));
|
|
120
|
-
|
|
121
|
-
function compress(_x) {
|
|
122
|
-
return _compress.apply(this, arguments);
|
|
123
|
-
}
|
|
96
|
+
async *decompressBatches(asyncIterator) {
|
|
97
|
+
var _this$options4;
|
|
124
98
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
value: function () {
|
|
130
|
-
var _decompress = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(input) {
|
|
131
|
-
var _this$options$deflate3;
|
|
132
|
-
|
|
133
|
-
var _this$options$deflate4, buffer;
|
|
134
|
-
|
|
135
|
-
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
136
|
-
while (1) {
|
|
137
|
-
switch (_context2.prev = _context2.next) {
|
|
138
|
-
case 0:
|
|
139
|
-
if (!(!_loaderUtils.isBrowser && (_this$options$deflate3 = this.options.deflate) !== null && _this$options$deflate3 !== void 0 && _this$options$deflate3.useZlib)) {
|
|
140
|
-
_context2.next = 12;
|
|
141
|
-
break;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
if (!((_this$options$deflate4 = this.options.deflate) !== null && _this$options$deflate4 !== void 0 && _this$options$deflate4.gzip)) {
|
|
145
|
-
_context2.next = 7;
|
|
146
|
-
break;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
_context2.next = 4;
|
|
150
|
-
return (0, _loaderUtils.promisify)(_zlib.default.gunzip)(input);
|
|
151
|
-
|
|
152
|
-
case 4:
|
|
153
|
-
_context2.t0 = _context2.sent;
|
|
154
|
-
_context2.next = 10;
|
|
155
|
-
break;
|
|
156
|
-
|
|
157
|
-
case 7:
|
|
158
|
-
_context2.next = 9;
|
|
159
|
-
return (0, _loaderUtils.promisify)(_zlib.default.inflate)(input);
|
|
160
|
-
|
|
161
|
-
case 9:
|
|
162
|
-
_context2.t0 = _context2.sent;
|
|
163
|
-
|
|
164
|
-
case 10:
|
|
165
|
-
buffer = _context2.t0;
|
|
166
|
-
return _context2.abrupt("return", (0, _loaderUtils.toArrayBuffer)(buffer));
|
|
167
|
-
|
|
168
|
-
case 12:
|
|
169
|
-
return _context2.abrupt("return", this.decompressSync(input));
|
|
170
|
-
|
|
171
|
-
case 13:
|
|
172
|
-
case "end":
|
|
173
|
-
return _context2.stop();
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
}, _callee2, this);
|
|
177
|
-
}));
|
|
178
|
-
|
|
179
|
-
function decompress(_x2) {
|
|
180
|
-
return _decompress.apply(this, arguments);
|
|
181
|
-
}
|
|
99
|
+
const pakoOptions = ((_this$options4 = this.options) === null || _this$options4 === void 0 ? void 0 : _this$options4.deflate) || {};
|
|
100
|
+
const pakoProcessor = new _pako.default.Inflate(pakoOptions);
|
|
101
|
+
yield* this.transformBatches(pakoProcessor, asyncIterator);
|
|
102
|
+
}
|
|
182
103
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
key: "compressSync",
|
|
187
|
-
value: function compressSync(input) {
|
|
188
|
-
var _this$options$deflate5, _this$options;
|
|
104
|
+
async *transformBatches(pakoProcessor, asyncIterator) {
|
|
105
|
+
pakoProcessor.onData = this._onData.bind(this);
|
|
106
|
+
pakoProcessor.onEnd = this._onEnd.bind(this);
|
|
189
107
|
|
|
190
|
-
|
|
191
|
-
|
|
108
|
+
for await (const chunk of asyncIterator) {
|
|
109
|
+
const uint8Array = new Uint8Array(chunk);
|
|
110
|
+
const ok = pakoProcessor.push(uint8Array, false);
|
|
192
111
|
|
|
193
|
-
|
|
194
|
-
|
|
112
|
+
if (!ok) {
|
|
113
|
+
throw new Error("".concat(this._getError(), "write"));
|
|
195
114
|
}
|
|
196
115
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
116
|
+
const chunks = this._getChunks();
|
|
117
|
+
|
|
118
|
+
yield* chunks;
|
|
200
119
|
}
|
|
201
|
-
}, {
|
|
202
|
-
key: "decompressSync",
|
|
203
|
-
value: function decompressSync(input) {
|
|
204
|
-
var _this$options$deflate7, _this$options2;
|
|
205
120
|
|
|
206
|
-
|
|
207
|
-
|
|
121
|
+
const emptyChunk = new Uint8Array(0);
|
|
122
|
+
const ok = pakoProcessor.push(emptyChunk, true);
|
|
208
123
|
|
|
209
|
-
|
|
210
|
-
return (0, _loaderUtils.toArrayBuffer)(buffer);
|
|
211
|
-
}
|
|
124
|
+
if (!ok) {}
|
|
212
125
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
var pakoOptions, pakoProcessor;
|
|
226
|
-
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
227
|
-
while (1) {
|
|
228
|
-
switch (_context3.prev = _context3.next) {
|
|
229
|
-
case 0:
|
|
230
|
-
pakoOptions = ((_this$options3 = _this.options) === null || _this$options3 === void 0 ? void 0 : _this$options3.deflate) || {};
|
|
231
|
-
pakoProcessor = new _pako.default.Deflate(pakoOptions);
|
|
232
|
-
return _context3.delegateYield((0, _asyncGeneratorDelegate2.default)((0, _asyncIterator2.default)(_this.transformBatches(pakoProcessor, asyncIterator)), _awaitAsyncGenerator2.default), "t0", 3);
|
|
233
|
-
|
|
234
|
-
case 3:
|
|
235
|
-
case "end":
|
|
236
|
-
return _context3.stop();
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
}, _callee3);
|
|
240
|
-
}))();
|
|
241
|
-
}
|
|
242
|
-
}, {
|
|
243
|
-
key: "decompressBatches",
|
|
244
|
-
value: function decompressBatches(asyncIterator) {
|
|
245
|
-
var _this2 = this;
|
|
246
|
-
|
|
247
|
-
return (0, _wrapAsyncGenerator2.default)(_regenerator.default.mark(function _callee4() {
|
|
248
|
-
var _this2$options;
|
|
249
|
-
|
|
250
|
-
var pakoOptions, pakoProcessor;
|
|
251
|
-
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
252
|
-
while (1) {
|
|
253
|
-
switch (_context4.prev = _context4.next) {
|
|
254
|
-
case 0:
|
|
255
|
-
pakoOptions = ((_this2$options = _this2.options) === null || _this2$options === void 0 ? void 0 : _this2$options.deflate) || {};
|
|
256
|
-
pakoProcessor = new _pako.default.Inflate(pakoOptions);
|
|
257
|
-
return _context4.delegateYield((0, _asyncGeneratorDelegate2.default)((0, _asyncIterator2.default)(_this2.transformBatches(pakoProcessor, asyncIterator)), _awaitAsyncGenerator2.default), "t0", 3);
|
|
258
|
-
|
|
259
|
-
case 3:
|
|
260
|
-
case "end":
|
|
261
|
-
return _context4.stop();
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
}, _callee4);
|
|
265
|
-
}))();
|
|
266
|
-
}
|
|
267
|
-
}, {
|
|
268
|
-
key: "transformBatches",
|
|
269
|
-
value: function transformBatches(pakoProcessor, asyncIterator) {
|
|
270
|
-
var _this3 = this;
|
|
271
|
-
|
|
272
|
-
return (0, _wrapAsyncGenerator2.default)(_regenerator.default.mark(function _callee5() {
|
|
273
|
-
var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, chunk, uint8Array, _ok, _chunks, emptyChunk, ok, chunks;
|
|
274
|
-
|
|
275
|
-
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
276
|
-
while (1) {
|
|
277
|
-
switch (_context5.prev = _context5.next) {
|
|
278
|
-
case 0:
|
|
279
|
-
pakoProcessor.onData = _this3._onData.bind(_this3);
|
|
280
|
-
pakoProcessor.onEnd = _this3._onEnd.bind(_this3);
|
|
281
|
-
_iteratorNormalCompletion = true;
|
|
282
|
-
_didIteratorError = false;
|
|
283
|
-
_context5.prev = 4;
|
|
284
|
-
_iterator = (0, _asyncIterator2.default)(asyncIterator);
|
|
285
|
-
|
|
286
|
-
case 6:
|
|
287
|
-
_context5.next = 8;
|
|
288
|
-
return (0, _awaitAsyncGenerator2.default)(_iterator.next());
|
|
289
|
-
|
|
290
|
-
case 8:
|
|
291
|
-
_step = _context5.sent;
|
|
292
|
-
_iteratorNormalCompletion = _step.done;
|
|
293
|
-
_context5.next = 12;
|
|
294
|
-
return (0, _awaitAsyncGenerator2.default)(_step.value);
|
|
295
|
-
|
|
296
|
-
case 12:
|
|
297
|
-
_value = _context5.sent;
|
|
298
|
-
|
|
299
|
-
if (_iteratorNormalCompletion) {
|
|
300
|
-
_context5.next = 24;
|
|
301
|
-
break;
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
chunk = _value;
|
|
305
|
-
uint8Array = new Uint8Array(chunk);
|
|
306
|
-
_ok = pakoProcessor.push(uint8Array, false);
|
|
307
|
-
|
|
308
|
-
if (_ok) {
|
|
309
|
-
_context5.next = 19;
|
|
310
|
-
break;
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
throw new Error("".concat(_this3._getError(), "write"));
|
|
314
|
-
|
|
315
|
-
case 19:
|
|
316
|
-
_chunks = _this3._getChunks();
|
|
317
|
-
return _context5.delegateYield((0, _asyncGeneratorDelegate2.default)((0, _asyncIterator2.default)(_chunks), _awaitAsyncGenerator2.default), "t0", 21);
|
|
318
|
-
|
|
319
|
-
case 21:
|
|
320
|
-
_iteratorNormalCompletion = true;
|
|
321
|
-
_context5.next = 6;
|
|
322
|
-
break;
|
|
323
|
-
|
|
324
|
-
case 24:
|
|
325
|
-
_context5.next = 30;
|
|
326
|
-
break;
|
|
327
|
-
|
|
328
|
-
case 26:
|
|
329
|
-
_context5.prev = 26;
|
|
330
|
-
_context5.t1 = _context5["catch"](4);
|
|
331
|
-
_didIteratorError = true;
|
|
332
|
-
_iteratorError = _context5.t1;
|
|
333
|
-
|
|
334
|
-
case 30:
|
|
335
|
-
_context5.prev = 30;
|
|
336
|
-
_context5.prev = 31;
|
|
337
|
-
|
|
338
|
-
if (!(!_iteratorNormalCompletion && _iterator.return != null)) {
|
|
339
|
-
_context5.next = 35;
|
|
340
|
-
break;
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
_context5.next = 35;
|
|
344
|
-
return (0, _awaitAsyncGenerator2.default)(_iterator.return());
|
|
345
|
-
|
|
346
|
-
case 35:
|
|
347
|
-
_context5.prev = 35;
|
|
348
|
-
|
|
349
|
-
if (!_didIteratorError) {
|
|
350
|
-
_context5.next = 38;
|
|
351
|
-
break;
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
throw _iteratorError;
|
|
355
|
-
|
|
356
|
-
case 38:
|
|
357
|
-
return _context5.finish(35);
|
|
358
|
-
|
|
359
|
-
case 39:
|
|
360
|
-
return _context5.finish(30);
|
|
361
|
-
|
|
362
|
-
case 40:
|
|
363
|
-
emptyChunk = new Uint8Array(0);
|
|
364
|
-
ok = pakoProcessor.push(emptyChunk, true);
|
|
365
|
-
|
|
366
|
-
if (!ok) {}
|
|
367
|
-
|
|
368
|
-
chunks = _this3._getChunks();
|
|
369
|
-
return _context5.delegateYield((0, _asyncGeneratorDelegate2.default)((0, _asyncIterator2.default)(chunks), _awaitAsyncGenerator2.default), "t2", 45);
|
|
370
|
-
|
|
371
|
-
case 45:
|
|
372
|
-
case "end":
|
|
373
|
-
return _context5.stop();
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
|
-
}, _callee5, null, [[4, 26, 30, 40], [31,, 35, 39]]);
|
|
377
|
-
}))();
|
|
378
|
-
}
|
|
379
|
-
}, {
|
|
380
|
-
key: "_onData",
|
|
381
|
-
value: function _onData(chunk) {
|
|
382
|
-
this._chunks.push(chunk);
|
|
383
|
-
}
|
|
384
|
-
}, {
|
|
385
|
-
key: "_onEnd",
|
|
386
|
-
value: function _onEnd(status) {
|
|
387
|
-
if (status !== 0) {
|
|
388
|
-
throw new Error(this._getError(status) + this._chunks.length);
|
|
389
|
-
}
|
|
390
|
-
}
|
|
391
|
-
}, {
|
|
392
|
-
key: "_getChunks",
|
|
393
|
-
value: function _getChunks() {
|
|
394
|
-
var chunks = this._chunks;
|
|
395
|
-
this._chunks = [];
|
|
396
|
-
return chunks;
|
|
397
|
-
}
|
|
398
|
-
}, {
|
|
399
|
-
key: "_getError",
|
|
400
|
-
value: function _getError() {
|
|
401
|
-
var code = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
402
|
-
var MESSAGES = {
|
|
403
|
-
2: 'need dictionary',
|
|
404
|
-
1: 'stream end',
|
|
405
|
-
0: '',
|
|
406
|
-
'-1': 'file error',
|
|
407
|
-
'-2': 'stream error',
|
|
408
|
-
'-3': 'data error',
|
|
409
|
-
'-4': 'insufficient memory',
|
|
410
|
-
'-5': 'buffer error',
|
|
411
|
-
'-6': 'incompatible version'
|
|
412
|
-
};
|
|
413
|
-
return "".concat(this.name, ": ").concat(MESSAGES[code]);
|
|
126
|
+
const chunks = this._getChunks();
|
|
127
|
+
|
|
128
|
+
yield* chunks;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
_onData(chunk) {
|
|
132
|
+
this._chunks.push(chunk);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
_onEnd(status) {
|
|
136
|
+
if (status !== 0) {
|
|
137
|
+
throw new Error(this._getError(status) + this._chunks.length);
|
|
414
138
|
}
|
|
415
|
-
}
|
|
416
|
-
|
|
417
|
-
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
_getChunks() {
|
|
142
|
+
const chunks = this._chunks;
|
|
143
|
+
this._chunks = [];
|
|
144
|
+
return chunks;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
_getError(code = 0) {
|
|
148
|
+
const MESSAGES = {
|
|
149
|
+
2: 'need dictionary',
|
|
150
|
+
1: 'stream end',
|
|
151
|
+
0: '',
|
|
152
|
+
'-1': 'file error',
|
|
153
|
+
'-2': 'stream error',
|
|
154
|
+
'-3': 'data error',
|
|
155
|
+
'-4': 'insufficient memory',
|
|
156
|
+
'-5': 'buffer error',
|
|
157
|
+
'-6': 'incompatible version'
|
|
158
|
+
};
|
|
159
|
+
return "".concat(this.name, ": ").concat(MESSAGES[code]);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
}
|
|
418
163
|
|
|
419
164
|
exports.DeflateCompression = DeflateCompression;
|
|
420
165
|
//# sourceMappingURL=deflate-compression.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/deflate-compression.ts"],"names":["DeflateCompression","options","input","isBrowser","deflate","useZlib","gzip","zlib","buffer","compressSync","gunzip","inflate","decompressSync","gzipSync","deflateSync","pakoOptions","inputArray","Uint8Array","pako","gunzipSync","inflateSync","asyncIterator","pakoProcessor","Deflate","transformBatches","Inflate","onData","_onData","bind","onEnd","_onEnd","chunk","uint8Array","ok","push","Error","_getError","chunks","_getChunks","emptyChunk","_chunks","status","length","code","MESSAGES","name","Compression"],"mappings":"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","sourcesContent":["// DEFLATE\nimport type {CompressionOptions} from './compression';\nimport {Compression} from './compression';\nimport {isBrowser, toArrayBuffer} from '@loaders.gl/loader-utils';\nimport pako from 'pako'; // https://bundlephobia.com/package/pako\nimport zlib from 'zlib';\nimport {promisify} from '@loaders.gl/loader-utils';\n\nexport type DeflateCompressionOptions = CompressionOptions & {\n deflate?: pako.InflateOptions & pako.DeflateOptions & {useZlib?: boolean};\n};\n\n/**\n * DEFLATE compression / decompression\n */\nexport class DeflateCompression extends Compression {\n readonly name: string = 'deflate';\n readonly extensions: string[] = [];\n readonly contentEncodings = ['deflate'];\n readonly isSupported = true;\n\n readonly options: DeflateCompressionOptions;\n\n private _chunks: ArrayBuffer[] = [];\n\n constructor(options: DeflateCompressionOptions = {}) {\n super(options);\n this.options = options;\n }\n\n async compress(input: ArrayBuffer): Promise<ArrayBuffer> {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.deflate?.useZlib) {\n const buffer = this.options.deflate?.gzip\n ? await promisify(zlib.gzip)(input)\n : await promisify(zlib.deflate)(input);\n return toArrayBuffer(buffer);\n }\n return this.compressSync(input);\n }\n\n async decompress(input: ArrayBuffer): Promise<ArrayBuffer> {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.deflate?.useZlib) {\n const buffer = this.options.deflate?.gzip\n ? await promisify(zlib.gunzip)(input)\n : await promisify(zlib.inflate)(input);\n return toArrayBuffer(buffer);\n }\n return this.decompressSync(input);\n }\n\n compressSync(input: ArrayBuffer): ArrayBuffer {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.deflate?.useZlib) {\n const buffer = this.options.deflate?.gzip ? zlib.gzipSync(input) : zlib.deflateSync(input);\n return toArrayBuffer(buffer);\n }\n const pakoOptions: pako.DeflateOptions = this.options?.deflate || {};\n const inputArray = new Uint8Array(input);\n return pako.deflate(inputArray, pakoOptions).buffer;\n }\n\n decompressSync(input: ArrayBuffer): ArrayBuffer {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.deflate?.useZlib) {\n const buffer = this.options.deflate?.gzip ? zlib.gunzipSync(input) : zlib.inflateSync(input);\n return toArrayBuffer(buffer);\n }\n const pakoOptions: pako.InflateOptions = this.options?.deflate || {};\n const inputArray = new Uint8Array(input);\n return pako.inflate(inputArray, pakoOptions).buffer;\n }\n\n async *compressBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n const pakoOptions: pako.DeflateOptions = this.options?.deflate || {};\n const pakoProcessor = new pako.Deflate(pakoOptions);\n yield* this.transformBatches(pakoProcessor, asyncIterator);\n }\n\n async *decompressBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n const pakoOptions: pako.InflateOptions = this.options?.deflate || {};\n const pakoProcessor = new pako.Inflate(pakoOptions);\n yield* this.transformBatches(pakoProcessor, asyncIterator);\n }\n\n async *transformBatches(\n pakoProcessor: pako.Inflate | pako.Deflate,\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n pakoProcessor.onData = this._onData.bind(this);\n pakoProcessor.onEnd = this._onEnd.bind(this);\n for await (const chunk of asyncIterator) {\n const uint8Array = new Uint8Array(chunk);\n const ok = pakoProcessor.push(uint8Array, false); // false -> not last chunk\n if (!ok) {\n throw new Error(`${this._getError()}write`);\n }\n const chunks = this._getChunks();\n yield* chunks;\n }\n\n // End\n const emptyChunk = new Uint8Array(0);\n const ok = pakoProcessor.push(emptyChunk, true); // true -> last chunk\n if (!ok) {\n // For some reason we get error but it still works???\n // throw new Error(this._getError() + 'end');\n }\n const chunks = this._getChunks();\n yield* chunks;\n }\n\n _onData(chunk) {\n this._chunks.push(chunk);\n }\n\n _onEnd(status) {\n if (status !== 0) {\n throw new Error(this._getError(status) + this._chunks.length);\n }\n }\n\n _getChunks(): ArrayBuffer[] {\n const chunks = this._chunks;\n this._chunks = [];\n return chunks;\n }\n\n // TODO - For some reason we don't get the error message from pako in _onEnd?\n _getError(code: number = 0): string {\n const MESSAGES = {\n /* Z_NEED_DICT 2 */\n 2: 'need dictionary',\n /* Z_STREAM_END 1 */\n 1: 'stream end',\n /* Z_OK 0 */\n 0: '',\n /* Z_ERRNO (-1) */\n '-1': 'file error',\n /* Z_STREAM_ERROR (-2) */\n '-2': 'stream error',\n /* Z_DATA_ERROR (-3) */\n '-3': 'data error',\n /* Z_MEM_ERROR (-4) */\n '-4': 'insufficient memory',\n /* Z_BUF_ERROR (-5) */\n '-5': 'buffer error',\n /* Z_VERSION_ERROR (-6) */\n '-6': 'incompatible version'\n };\n return `${this.name}: ${MESSAGES[code]}`;\n }\n}\n"],"file":"deflate-compression.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/deflate-compression.ts"],"names":["DeflateCompression","Compression","constructor","options","compress","input","isBrowser","deflate","useZlib","buffer","gzip","zlib","compressSync","decompress","gunzip","inflate","decompressSync","gzipSync","deflateSync","pakoOptions","inputArray","Uint8Array","pako","gunzipSync","inflateSync","compressBatches","asyncIterator","pakoProcessor","Deflate","transformBatches","decompressBatches","Inflate","onData","_onData","bind","onEnd","_onEnd","chunk","uint8Array","ok","push","Error","_getError","chunks","_getChunks","emptyChunk","_chunks","status","length","code","MESSAGES","name"],"mappings":"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","sourcesContent":["// DEFLATE\nimport type {CompressionOptions} from './compression';\nimport {Compression} from './compression';\nimport {isBrowser, toArrayBuffer} from '@loaders.gl/loader-utils';\nimport pako from 'pako'; // https://bundlephobia.com/package/pako\nimport zlib from 'zlib';\nimport {promisify} from '@loaders.gl/loader-utils';\n\nexport type DeflateCompressionOptions = CompressionOptions & {\n deflate?: pako.InflateOptions & pako.DeflateOptions & {useZlib?: boolean};\n};\n\n/**\n * DEFLATE compression / decompression\n */\nexport class DeflateCompression extends Compression {\n readonly name: string = 'deflate';\n readonly extensions: string[] = [];\n readonly contentEncodings = ['deflate'];\n readonly isSupported = true;\n\n readonly options: DeflateCompressionOptions;\n\n private _chunks: ArrayBuffer[] = [];\n\n constructor(options: DeflateCompressionOptions = {}) {\n super(options);\n this.options = options;\n }\n\n async compress(input: ArrayBuffer): Promise<ArrayBuffer> {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.deflate?.useZlib) {\n const buffer = this.options.deflate?.gzip\n ? await promisify(zlib.gzip)(input)\n : await promisify(zlib.deflate)(input);\n return toArrayBuffer(buffer);\n }\n return this.compressSync(input);\n }\n\n async decompress(input: ArrayBuffer): Promise<ArrayBuffer> {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.deflate?.useZlib) {\n const buffer = this.options.deflate?.gzip\n ? await promisify(zlib.gunzip)(input)\n : await promisify(zlib.inflate)(input);\n return toArrayBuffer(buffer);\n }\n return this.decompressSync(input);\n }\n\n compressSync(input: ArrayBuffer): ArrayBuffer {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.deflate?.useZlib) {\n const buffer = this.options.deflate?.gzip ? zlib.gzipSync(input) : zlib.deflateSync(input);\n return toArrayBuffer(buffer);\n }\n const pakoOptions: pako.DeflateOptions = this.options?.deflate || {};\n const inputArray = new Uint8Array(input);\n return pako.deflate(inputArray, pakoOptions).buffer;\n }\n\n decompressSync(input: ArrayBuffer): ArrayBuffer {\n // On Node.js we can use built-in zlib\n if (!isBrowser && this.options.deflate?.useZlib) {\n const buffer = this.options.deflate?.gzip ? zlib.gunzipSync(input) : zlib.inflateSync(input);\n return toArrayBuffer(buffer);\n }\n const pakoOptions: pako.InflateOptions = this.options?.deflate || {};\n const inputArray = new Uint8Array(input);\n return pako.inflate(inputArray, pakoOptions).buffer;\n }\n\n async *compressBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n const pakoOptions: pako.DeflateOptions = this.options?.deflate || {};\n const pakoProcessor = new pako.Deflate(pakoOptions);\n yield* this.transformBatches(pakoProcessor, asyncIterator);\n }\n\n async *decompressBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n const pakoOptions: pako.InflateOptions = this.options?.deflate || {};\n const pakoProcessor = new pako.Inflate(pakoOptions);\n yield* this.transformBatches(pakoProcessor, asyncIterator);\n }\n\n async *transformBatches(\n pakoProcessor: pako.Inflate | pako.Deflate,\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>\n ): AsyncIterable<ArrayBuffer> {\n pakoProcessor.onData = this._onData.bind(this);\n pakoProcessor.onEnd = this._onEnd.bind(this);\n for await (const chunk of asyncIterator) {\n const uint8Array = new Uint8Array(chunk);\n const ok = pakoProcessor.push(uint8Array, false); // false -> not last chunk\n if (!ok) {\n throw new Error(`${this._getError()}write`);\n }\n const chunks = this._getChunks();\n yield* chunks;\n }\n\n // End\n const emptyChunk = new Uint8Array(0);\n const ok = pakoProcessor.push(emptyChunk, true); // true -> last chunk\n if (!ok) {\n // For some reason we get error but it still works???\n // throw new Error(this._getError() + 'end');\n }\n const chunks = this._getChunks();\n yield* chunks;\n }\n\n _onData(chunk) {\n this._chunks.push(chunk);\n }\n\n _onEnd(status) {\n if (status !== 0) {\n throw new Error(this._getError(status) + this._chunks.length);\n }\n }\n\n _getChunks(): ArrayBuffer[] {\n const chunks = this._chunks;\n this._chunks = [];\n return chunks;\n }\n\n // TODO - For some reason we don't get the error message from pako in _onEnd?\n _getError(code: number = 0): string {\n const MESSAGES = {\n /* Z_NEED_DICT 2 */\n 2: 'need dictionary',\n /* Z_STREAM_END 1 */\n 1: 'stream end',\n /* Z_OK 0 */\n 0: '',\n /* Z_ERRNO (-1) */\n '-1': 'file error',\n /* Z_STREAM_ERROR (-2) */\n '-2': 'stream error',\n /* Z_DATA_ERROR (-3) */\n '-3': 'data error',\n /* Z_MEM_ERROR (-4) */\n '-4': 'insufficient memory',\n /* Z_BUF_ERROR (-5) */\n '-5': 'buffer error',\n /* Z_VERSION_ERROR (-6) */\n '-6': 'incompatible version'\n };\n return `${this.name}: ${MESSAGES[code]}`;\n }\n}\n"],"file":"deflate-compression.js"}
|
|
@@ -7,51 +7,24 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.GZipCompression = void 0;
|
|
9
9
|
|
|
10
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
|
|
12
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
13
|
-
|
|
14
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
-
|
|
16
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
17
|
-
|
|
18
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
19
|
-
|
|
20
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
21
11
|
|
|
22
12
|
var _deflateCompression = require("./deflate-compression");
|
|
23
13
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
29
|
-
|
|
30
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
31
|
-
|
|
32
|
-
var GZipCompression = function (_DeflateCompression) {
|
|
33
|
-
(0, _inherits2.default)(GZipCompression, _DeflateCompression);
|
|
34
|
-
|
|
35
|
-
var _super = _createSuper(GZipCompression);
|
|
36
|
-
|
|
37
|
-
function GZipCompression(options) {
|
|
38
|
-
var _this;
|
|
39
|
-
|
|
40
|
-
(0, _classCallCheck2.default)(this, GZipCompression);
|
|
41
|
-
_this = _super.call(this, _objectSpread(_objectSpread({}, options), {}, {
|
|
42
|
-
deflate: _objectSpread(_objectSpread({}, options === null || options === void 0 ? void 0 : options.gzip), {}, {
|
|
14
|
+
class GZipCompression extends _deflateCompression.DeflateCompression {
|
|
15
|
+
constructor(options) {
|
|
16
|
+
super({ ...options,
|
|
17
|
+
deflate: { ...(options === null || options === void 0 ? void 0 : options.gzip),
|
|
43
18
|
gzip: true
|
|
44
|
-
}
|
|
45
|
-
})
|
|
46
|
-
(0, _defineProperty2.default)(
|
|
47
|
-
(0, _defineProperty2.default)(
|
|
48
|
-
(0, _defineProperty2.default)(
|
|
49
|
-
(0, _defineProperty2.default)(
|
|
50
|
-
return _this;
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
(0, _defineProperty2.default)(this, "name", 'gzip');
|
|
22
|
+
(0, _defineProperty2.default)(this, "extensions", ['gz', 'gzip']);
|
|
23
|
+
(0, _defineProperty2.default)(this, "contentEncodings", ['gzip', 'x-gzip']);
|
|
24
|
+
(0, _defineProperty2.default)(this, "isSupported", true);
|
|
51
25
|
}
|
|
52
26
|
|
|
53
|
-
|
|
54
|
-
}(_deflateCompression.DeflateCompression);
|
|
27
|
+
}
|
|
55
28
|
|
|
56
29
|
exports.GZipCompression = GZipCompression;
|
|
57
30
|
//# sourceMappingURL=gzip-compression.js.map
|