@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.
Files changed (94) hide show
  1. package/dist/brotli/decode.d.ts +5 -0
  2. package/dist/brotli/decode.d.ts.map +1 -0
  3. package/dist/brotli/decode.js +2346 -0
  4. package/dist/bundle.d.ts +2 -0
  5. package/dist/bundle.d.ts.map +1 -0
  6. package/dist/bundle.js +5 -0
  7. package/dist/compression-worker.d.ts +21 -0
  8. package/dist/compression-worker.d.ts.map +1 -0
  9. package/dist/compression-worker.js +4 -13
  10. package/dist/compression-worker.js.map +7 -1
  11. package/dist/dist.min.js +9 -2
  12. package/dist/dist.min.js.map +7 -1
  13. package/dist/es5/brotli/decode.js +2220 -0
  14. package/dist/es5/brotli/decode.js.map +1 -0
  15. package/dist/es5/bundle.js +1 -1
  16. package/dist/es5/bundle.js.map +1 -1
  17. package/dist/es5/compression-worker.js +3 -3
  18. package/dist/es5/compression-worker.js.map +1 -1
  19. package/dist/es5/index.js +11 -11
  20. package/dist/es5/lib/brotli-compression.js +84 -184
  21. package/dist/es5/lib/brotli-compression.js.map +1 -1
  22. package/dist/es5/lib/compression.js +46 -175
  23. package/dist/es5/lib/compression.js.map +1 -1
  24. package/dist/es5/lib/deflate-compression.js +118 -373
  25. package/dist/es5/lib/deflate-compression.js.map +1 -1
  26. package/dist/es5/lib/gzip-compression.js +11 -38
  27. package/dist/es5/lib/gzip-compression.js.map +1 -1
  28. package/dist/es5/lib/lz4-compression.js +81 -112
  29. package/dist/es5/lib/lz4-compression.js.map +1 -1
  30. package/dist/es5/lib/lzo-compression.js +28 -128
  31. package/dist/es5/lib/lzo-compression.js.map +1 -1
  32. package/dist/es5/lib/no-compression.js +22 -94
  33. package/dist/es5/lib/no-compression.js.map +1 -1
  34. package/dist/es5/lib/snappy-compression.js +16 -44
  35. package/dist/es5/lib/snappy-compression.js.map +1 -1
  36. package/dist/es5/lib/zstd-compression.js +27 -98
  37. package/dist/es5/lib/zstd-compression.js.map +1 -1
  38. package/dist/es5/workers/worker.js +26 -74
  39. package/dist/es5/workers/worker.js.map +1 -1
  40. package/dist/esm/brotli/decode.js +2213 -0
  41. package/dist/esm/brotli/decode.js.map +1 -0
  42. package/dist/esm/compression-worker.js +1 -1
  43. package/dist/esm/compression-worker.js.map +1 -1
  44. package/dist/esm/lib/brotli-compression.js +16 -2
  45. package/dist/esm/lib/brotli-compression.js.map +1 -1
  46. package/dist/esm/lib/compression.js +3 -3
  47. package/dist/esm/lib/compression.js.map +1 -1
  48. package/dist/esm/lib/deflate-compression.js +2 -2
  49. package/dist/esm/lib/deflate-compression.js.map +1 -1
  50. package/dist/esm/lib/zstd-compression.js +1 -1
  51. package/dist/esm/lib/zstd-compression.js.map +1 -1
  52. package/dist/esm/workers/worker.js +3 -12
  53. package/dist/esm/workers/worker.js.map +1 -1
  54. package/dist/index.d.ts +13 -0
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/index.js +24 -0
  57. package/dist/lib/brotli-compression.d.ts +31 -0
  58. package/dist/lib/brotli-compression.d.ts.map +1 -0
  59. package/dist/lib/brotli-compression.js +91 -0
  60. package/dist/lib/compression.d.ts +31 -0
  61. package/dist/lib/compression.d.ts.map +1 -0
  62. package/dist/lib/compression.js +57 -0
  63. package/dist/lib/deflate-compression.d.ts +32 -0
  64. package/dist/lib/deflate-compression.d.ts.map +1 -0
  65. package/dist/lib/deflate-compression.js +135 -0
  66. package/dist/lib/gzip-compression.d.ts +17 -0
  67. package/dist/lib/gzip-compression.d.ts.map +1 -0
  68. package/dist/lib/gzip-compression.js +17 -0
  69. package/dist/lib/lz4-compression.d.ts +37 -0
  70. package/dist/lib/lz4-compression.d.ts.map +1 -0
  71. package/dist/lib/lz4-compression.js +141 -0
  72. package/dist/lib/lzo-compression.d.ts +21 -0
  73. package/dist/lib/lzo-compression.d.ts.map +1 -0
  74. package/dist/lib/lzo-compression.js +58 -0
  75. package/dist/lib/no-compression.d.ts +18 -0
  76. package/dist/lib/no-compression.d.ts.map +1 -0
  77. package/dist/lib/no-compression.js +30 -0
  78. package/dist/lib/snappy-compression.d.ts +16 -0
  79. package/dist/lib/snappy-compression.d.ts.map +1 -0
  80. package/dist/lib/snappy-compression.js +27 -0
  81. package/dist/lib/zstd-compression.d.ts +21 -0
  82. package/dist/lib/zstd-compression.d.ts.map +1 -0
  83. package/dist/lib/zstd-compression.js +44 -0
  84. package/dist/types.d.ts +2 -0
  85. package/dist/types.d.ts.map +1 -0
  86. package/dist/types.js +2 -0
  87. package/dist/workers/worker.d.ts +2 -0
  88. package/dist/workers/worker.d.ts.map +1 -0
  89. package/dist/workers/worker.js +77 -0
  90. package/package.json +7 -7
  91. package/src/brotli/decode.ts +2441 -0
  92. package/src/lib/brotli-compression.ts +17 -3
  93. package/src/lib/zstd-compression.ts +1 -1
  94. 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 _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
 
12
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
12
+ var _compression = require("./compression");
13
13
 
14
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
14
+ var _loaderUtils = require("@loaders.gl/loader-utils");
15
15
 
16
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
16
+ var _pako = _interopRequireDefault(require("pako"));
17
17
 
18
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
18
+ var _zlib = _interopRequireDefault(require("zlib"));
19
19
 
20
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
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
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
32
+ async compress(input) {
33
+ var _this$options$deflate;
23
34
 
24
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
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
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
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
- var _wrapAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapAsyncGenerator"));
42
+ return this.compressSync(input);
43
+ }
29
44
 
30
- var _awaitAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/awaitAsyncGenerator"));
45
+ async decompress(input) {
46
+ var _this$options$deflate3;
31
47
 
32
- var _asyncIterator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncIterator"));
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
- var _asyncGeneratorDelegate2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncGeneratorDelegate"));
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
- var _compression = require("./compression");
55
+ return this.decompressSync(input);
56
+ }
37
57
 
38
- var _loaderUtils = require("@loaders.gl/loader-utils");
58
+ compressSync(input) {
59
+ var _this$options$deflate5, _this$options;
39
60
 
40
- var _pako = _interopRequireDefault(require("pako"));
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
- var _zlib = _interopRequireDefault(require("zlib"));
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
- 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); }; }
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
- 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; } }
73
+ decompressSync(input) {
74
+ var _this$options$deflate7, _this$options2;
47
75
 
48
- var DeflateCompression = function (_Compression) {
49
- (0, _inherits2.default)(DeflateCompression, _Compression);
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
- var _super = _createSuper(DeflateCompression);
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
- function DeflateCompression() {
54
- var _this4;
88
+ async *compressBatches(asyncIterator) {
89
+ var _this$options3;
55
90
 
56
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
57
- (0, _classCallCheck2.default)(this, DeflateCompression);
58
- _this4 = _super.call(this, options);
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
- (0, _createClass2.default)(DeflateCompression, [{
70
- key: "compress",
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
- return compress;
126
- }()
127
- }, {
128
- key: "decompress",
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
- return decompress;
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
- if (!_loaderUtils.isBrowser && (_this$options$deflate5 = this.options.deflate) !== null && _this$options$deflate5 !== void 0 && _this$options$deflate5.useZlib) {
191
- var _this$options$deflate6;
108
+ for await (const chunk of asyncIterator) {
109
+ const uint8Array = new Uint8Array(chunk);
110
+ const ok = pakoProcessor.push(uint8Array, false);
192
111
 
193
- var 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);
194
- return (0, _loaderUtils.toArrayBuffer)(buffer);
112
+ if (!ok) {
113
+ throw new Error("".concat(this._getError(), "write"));
195
114
  }
196
115
 
197
- var pakoOptions = ((_this$options = this.options) === null || _this$options === void 0 ? void 0 : _this$options.deflate) || {};
198
- var inputArray = new Uint8Array(input);
199
- return _pako.default.deflate(inputArray, pakoOptions).buffer;
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
- if (!_loaderUtils.isBrowser && (_this$options$deflate7 = this.options.deflate) !== null && _this$options$deflate7 !== void 0 && _this$options$deflate7.useZlib) {
207
- var _this$options$deflate8;
121
+ const emptyChunk = new Uint8Array(0);
122
+ const ok = pakoProcessor.push(emptyChunk, true);
208
123
 
209
- var 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);
210
- return (0, _loaderUtils.toArrayBuffer)(buffer);
211
- }
124
+ if (!ok) {}
212
125
 
213
- var pakoOptions = ((_this$options2 = this.options) === null || _this$options2 === void 0 ? void 0 : _this$options2.deflate) || {};
214
- var inputArray = new Uint8Array(input);
215
- return _pako.default.inflate(inputArray, pakoOptions).buffer;
216
- }
217
- }, {
218
- key: "compressBatches",
219
- value: function compressBatches(asyncIterator) {
220
- var _this = this;
221
-
222
- return (0, _wrapAsyncGenerator2.default)(_regenerator.default.mark(function _callee3() {
223
- var _this$options3;
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
- return DeflateCompression;
417
- }(_compression.Compression);
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
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
25
-
26
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
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)((0, _assertThisInitialized2.default)(_this), "name", 'gzip');
47
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "extensions", ['gz', 'gzip']);
48
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "contentEncodings", ['gzip', 'x-gzip']);
49
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isSupported", true);
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
- return GZipCompression;
54
- }(_deflateCompression.DeflateCompression);
27
+ }
55
28
 
56
29
  exports.GZipCompression = GZipCompression;
57
30
  //# sourceMappingURL=gzip-compression.js.map