@loaders.gl/zip 4.0.0-beta.2 → 4.0.0-beta.4

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 (105) hide show
  1. package/dist/{dist.min.js → dist.dev.js} +1929 -1728
  2. package/dist/filesystems/zip-filesystem.d.ts +1 -1
  3. package/dist/filesystems/zip-filesystem.d.ts.map +1 -1
  4. package/dist/{esm/filesystems → filesystems}/zip-filesystem.js +16 -21
  5. package/dist/filesystems/zip-filesystem.js.map +1 -0
  6. package/dist/hash-file-utility.d.ts +5 -26
  7. package/dist/hash-file-utility.d.ts.map +1 -1
  8. package/dist/hash-file-utility.js +29 -0
  9. package/dist/hash-file-utility.js.map +1 -0
  10. package/dist/index.cjs +653 -0
  11. package/dist/index.d.ts +2 -3
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +10 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/{esm/lib → lib}/tar/header.js +1 -1
  16. package/dist/lib/tar/header.js.map +1 -0
  17. package/dist/{esm/lib → lib}/tar/tar.js +8 -9
  18. package/dist/lib/tar/tar.js.map +1 -0
  19. package/dist/lib/tar/types.js.map +1 -0
  20. package/dist/lib/tar/utils.js.map +1 -0
  21. package/dist/parse-zip/cd-file-header.d.ts +2 -2
  22. package/dist/parse-zip/cd-file-header.d.ts.map +1 -1
  23. package/dist/parse-zip/cd-file-header.js +57 -0
  24. package/dist/parse-zip/cd-file-header.js.map +1 -0
  25. package/dist/parse-zip/end-of-central-directory.d.ts +2 -2
  26. package/dist/parse-zip/end-of-central-directory.d.ts.map +1 -1
  27. package/dist/parse-zip/end-of-central-directory.js +34 -0
  28. package/dist/parse-zip/end-of-central-directory.js.map +1 -0
  29. package/dist/parse-zip/local-file-header.d.ts +2 -1
  30. package/dist/parse-zip/local-file-header.d.ts.map +1 -1
  31. package/dist/{esm/parse-zip → parse-zip}/local-file-header.js +4 -2
  32. package/dist/parse-zip/local-file-header.js.map +1 -0
  33. package/dist/parse-zip/search-from-the-end.d.ts +1 -1
  34. package/dist/parse-zip/search-from-the-end.d.ts.map +1 -1
  35. package/dist/parse-zip/search-from-the-end.js.map +1 -0
  36. package/dist/{esm/tar-builder.js → tar-builder.js} +4 -5
  37. package/dist/tar-builder.js.map +1 -0
  38. package/dist/{esm/zip-loader.js → zip-loader.js} +3 -3
  39. package/dist/zip-loader.js.map +1 -0
  40. package/dist/{esm/zip-writer.js → zip-writer.js} +1 -1
  41. package/dist/zip-writer.js.map +1 -0
  42. package/package.json +17 -8
  43. package/src/filesystems/zip-filesystem.ts +13 -17
  44. package/src/hash-file-utility.ts +37 -85
  45. package/src/index.ts +3 -3
  46. package/src/parse-zip/cd-file-header.ts +20 -27
  47. package/src/parse-zip/end-of-central-directory.ts +16 -26
  48. package/src/parse-zip/local-file-header.ts +5 -7
  49. package/src/parse-zip/search-from-the-end.ts +1 -1
  50. package/dist/bundle.d.ts +0 -2
  51. package/dist/bundle.d.ts.map +0 -1
  52. package/dist/es5/bundle.js +0 -6
  53. package/dist/es5/bundle.js.map +0 -1
  54. package/dist/es5/filesystems/zip-filesystem.js +0 -372
  55. package/dist/es5/filesystems/zip-filesystem.js.map +0 -1
  56. package/dist/es5/hash-file-utility.js +0 -130
  57. package/dist/es5/hash-file-utility.js.map +0 -1
  58. package/dist/es5/index.js +0 -105
  59. package/dist/es5/index.js.map +0 -1
  60. package/dist/es5/lib/tar/header.js +0 -52
  61. package/dist/es5/lib/tar/header.js.map +0 -1
  62. package/dist/es5/lib/tar/tar.js +0 -137
  63. package/dist/es5/lib/tar/tar.js.map +0 -1
  64. package/dist/es5/lib/tar/types.js +0 -2
  65. package/dist/es5/lib/tar/types.js.map +0 -1
  66. package/dist/es5/lib/tar/utils.js +0 -32
  67. package/dist/es5/lib/tar/utils.js.map +0 -1
  68. package/dist/es5/parse-zip/cd-file-header.js +0 -163
  69. package/dist/es5/parse-zip/cd-file-header.js.map +0 -1
  70. package/dist/es5/parse-zip/end-of-central-directory.js +0 -98
  71. package/dist/es5/parse-zip/end-of-central-directory.js.map +0 -1
  72. package/dist/es5/parse-zip/local-file-header.js +0 -117
  73. package/dist/es5/parse-zip/local-file-header.js.map +0 -1
  74. package/dist/es5/parse-zip/search-from-the-end.js +0 -69
  75. package/dist/es5/parse-zip/search-from-the-end.js.map +0 -1
  76. package/dist/es5/tar-builder.js +0 -69
  77. package/dist/es5/tar-builder.js.map +0 -1
  78. package/dist/es5/zip-loader.js +0 -103
  79. package/dist/es5/zip-loader.js.map +0 -1
  80. package/dist/es5/zip-writer.js +0 -66
  81. package/dist/es5/zip-writer.js.map +0 -1
  82. package/dist/esm/bundle.js +0 -4
  83. package/dist/esm/bundle.js.map +0 -1
  84. package/dist/esm/filesystems/zip-filesystem.js.map +0 -1
  85. package/dist/esm/hash-file-utility.js +0 -55
  86. package/dist/esm/hash-file-utility.js.map +0 -1
  87. package/dist/esm/index.js +0 -10
  88. package/dist/esm/index.js.map +0 -1
  89. package/dist/esm/lib/tar/header.js.map +0 -1
  90. package/dist/esm/lib/tar/tar.js.map +0 -1
  91. package/dist/esm/lib/tar/types.js.map +0 -1
  92. package/dist/esm/lib/tar/utils.js.map +0 -1
  93. package/dist/esm/parse-zip/cd-file-header.js +0 -54
  94. package/dist/esm/parse-zip/cd-file-header.js.map +0 -1
  95. package/dist/esm/parse-zip/end-of-central-directory.js +0 -31
  96. package/dist/esm/parse-zip/end-of-central-directory.js.map +0 -1
  97. package/dist/esm/parse-zip/local-file-header.js.map +0 -1
  98. package/dist/esm/parse-zip/search-from-the-end.js.map +0 -1
  99. package/dist/esm/tar-builder.js.map +0 -1
  100. package/dist/esm/zip-loader.js.map +0 -1
  101. package/dist/esm/zip-writer.js.map +0 -1
  102. package/src/bundle.ts +0 -4
  103. /package/dist/{esm/lib → lib}/tar/types.js +0 -0
  104. /package/dist/{esm/lib → lib}/tar/utils.js +0 -0
  105. /package/dist/{esm/parse-zip → parse-zip}/search-from-the-end.js +0 -0
@@ -1,372 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.ZipFileSystem = void 0;
8
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
- var _loaderUtils = require("@loaders.gl/loader-utils");
14
- var _cdFileHeader = require("../parse-zip/cd-file-header");
15
- var _localFileHeader = require("../parse-zip/local-file-header");
16
- var _compression = require("@loaders.gl/compression");
17
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
18
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
19
- function _asyncIterator(iterable) { var method, async, sync, retry = 2; for ("undefined" != typeof Symbol && (async = Symbol.asyncIterator, sync = Symbol.iterator); retry--;) { if (async && null != (method = iterable[async])) return method.call(iterable); if (sync && null != (method = iterable[sync])) return new AsyncFromSyncIterator(method.call(iterable)); async = "@@asyncIterator", sync = "@@iterator"; } throw new TypeError("Object is not async iterable"); }
20
- function AsyncFromSyncIterator(s) { function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); var done = r.done; return Promise.resolve(r.value).then(function (value) { return { value: value, done: done }; }); } return AsyncFromSyncIterator = function AsyncFromSyncIterator(s) { this.s = s, this.n = s.next; }, AsyncFromSyncIterator.prototype = { s: null, n: null, next: function next() { return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); }, return: function _return(value) { var ret = this.s.return; return void 0 === ret ? Promise.resolve({ value: value, done: !0 }) : AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments)); }, throw: function _throw(value) { var thr = this.s.return; return void 0 === thr ? Promise.reject(value) : AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments)); } }, new AsyncFromSyncIterator(s); }
21
- var COMPRESSION_METHODS = {
22
- 0: function () {
23
- var _2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(compressedFile) {
24
- return _regenerator.default.wrap(function _callee$(_context) {
25
- while (1) switch (_context.prev = _context.next) {
26
- case 0:
27
- return _context.abrupt("return", compressedFile);
28
- case 1:
29
- case "end":
30
- return _context.stop();
31
- }
32
- }, _callee);
33
- }));
34
- function _(_x) {
35
- return _2.apply(this, arguments);
36
- }
37
- return _;
38
- }(),
39
- 8: function () {
40
- var _3 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(compressedFile) {
41
- var compression, decompressedData;
42
- return _regenerator.default.wrap(function _callee2$(_context2) {
43
- while (1) switch (_context2.prev = _context2.next) {
44
- case 0:
45
- compression = new _compression.DeflateCompression({
46
- raw: true
47
- });
48
- _context2.next = 3;
49
- return compression.decompress(compressedFile);
50
- case 3:
51
- decompressedData = _context2.sent;
52
- return _context2.abrupt("return", decompressedData);
53
- case 5:
54
- case "end":
55
- return _context2.stop();
56
- }
57
- }, _callee2);
58
- }));
59
- function _(_x2) {
60
- return _3.apply(this, arguments);
61
- }
62
- return _;
63
- }()
64
- };
65
- var ZipFileSystem = function () {
66
- function ZipFileSystem(file) {
67
- (0, _classCallCheck2.default)(this, ZipFileSystem);
68
- (0, _defineProperty2.default)(this, "fileProvider", Promise.resolve(null));
69
- (0, _defineProperty2.default)(this, "fileName", void 0);
70
- if (typeof file === 'string') {
71
- this.fileName = file;
72
- if (!_loaderUtils.isBrowser) {
73
- this.fileProvider = _loaderUtils.FileHandleFile.from(file);
74
- } else {
75
- throw new Error('Cannot open file for random access in a WEB browser');
76
- }
77
- } else if ((0, _loaderUtils.isFileProvider)(file)) {
78
- this.fileProvider = Promise.resolve(file);
79
- }
80
- }
81
- (0, _createClass2.default)(ZipFileSystem, [{
82
- key: "destroy",
83
- value: function () {
84
- var _destroy = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3() {
85
- var fileProvider;
86
- return _regenerator.default.wrap(function _callee3$(_context3) {
87
- while (1) switch (_context3.prev = _context3.next) {
88
- case 0:
89
- _context3.next = 2;
90
- return this.fileProvider;
91
- case 2:
92
- fileProvider = _context3.sent;
93
- if (!fileProvider) {
94
- _context3.next = 6;
95
- break;
96
- }
97
- _context3.next = 6;
98
- return fileProvider.destroy();
99
- case 6:
100
- case "end":
101
- return _context3.stop();
102
- }
103
- }, _callee3, this);
104
- }));
105
- function destroy() {
106
- return _destroy.apply(this, arguments);
107
- }
108
- return destroy;
109
- }()
110
- }, {
111
- key: "readdir",
112
- value: function () {
113
- var _readdir = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4() {
114
- var fileProvider, fileNames, zipCDIterator, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, cdHeader;
115
- return _regenerator.default.wrap(function _callee4$(_context4) {
116
- while (1) switch (_context4.prev = _context4.next) {
117
- case 0:
118
- _context4.next = 2;
119
- return this.fileProvider;
120
- case 2:
121
- fileProvider = _context4.sent;
122
- if (fileProvider) {
123
- _context4.next = 5;
124
- break;
125
- }
126
- throw new Error('No data detected in the zip archive');
127
- case 5:
128
- fileNames = [];
129
- zipCDIterator = (0, _cdFileHeader.zipCDFileHeaderGenerator)(fileProvider);
130
- _iteratorAbruptCompletion = false;
131
- _didIteratorError = false;
132
- _context4.prev = 9;
133
- _iterator = _asyncIterator(zipCDIterator);
134
- case 11:
135
- _context4.next = 13;
136
- return _iterator.next();
137
- case 13:
138
- if (!(_iteratorAbruptCompletion = !(_step = _context4.sent).done)) {
139
- _context4.next = 19;
140
- break;
141
- }
142
- cdHeader = _step.value;
143
- fileNames.push(cdHeader.fileName);
144
- case 16:
145
- _iteratorAbruptCompletion = false;
146
- _context4.next = 11;
147
- break;
148
- case 19:
149
- _context4.next = 25;
150
- break;
151
- case 21:
152
- _context4.prev = 21;
153
- _context4.t0 = _context4["catch"](9);
154
- _didIteratorError = true;
155
- _iteratorError = _context4.t0;
156
- case 25:
157
- _context4.prev = 25;
158
- _context4.prev = 26;
159
- if (!(_iteratorAbruptCompletion && _iterator.return != null)) {
160
- _context4.next = 30;
161
- break;
162
- }
163
- _context4.next = 30;
164
- return _iterator.return();
165
- case 30:
166
- _context4.prev = 30;
167
- if (!_didIteratorError) {
168
- _context4.next = 33;
169
- break;
170
- }
171
- throw _iteratorError;
172
- case 33:
173
- return _context4.finish(30);
174
- case 34:
175
- return _context4.finish(25);
176
- case 35:
177
- return _context4.abrupt("return", fileNames);
178
- case 36:
179
- case "end":
180
- return _context4.stop();
181
- }
182
- }, _callee4, this, [[9, 21, 25, 35], [26,, 30, 34]]);
183
- }));
184
- function readdir() {
185
- return _readdir.apply(this, arguments);
186
- }
187
- return readdir;
188
- }()
189
- }, {
190
- key: "stat",
191
- value: function () {
192
- var _stat = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee5(filename) {
193
- var cdFileHeader;
194
- return _regenerator.default.wrap(function _callee5$(_context5) {
195
- while (1) switch (_context5.prev = _context5.next) {
196
- case 0:
197
- _context5.next = 2;
198
- return this.getCDFileHeader(filename);
199
- case 2:
200
- cdFileHeader = _context5.sent;
201
- return _context5.abrupt("return", _objectSpread(_objectSpread({}, cdFileHeader), {}, {
202
- size: Number(cdFileHeader.uncompressedSize)
203
- }));
204
- case 4:
205
- case "end":
206
- return _context5.stop();
207
- }
208
- }, _callee5, this);
209
- }));
210
- function stat(_x3) {
211
- return _stat.apply(this, arguments);
212
- }
213
- return stat;
214
- }()
215
- }, {
216
- key: "fetch",
217
- value: function () {
218
- var _fetch = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee6(filename) {
219
- var fileProvider, cdFileHeader, localFileHeader, compressionHandler, compressedFile, uncompressedFile, response;
220
- return _regenerator.default.wrap(function _callee6$(_context6) {
221
- while (1) switch (_context6.prev = _context6.next) {
222
- case 0:
223
- _context6.next = 2;
224
- return this.fileProvider;
225
- case 2:
226
- fileProvider = _context6.sent;
227
- if (fileProvider) {
228
- _context6.next = 5;
229
- break;
230
- }
231
- throw new Error('No data detected in the zip archive');
232
- case 5:
233
- _context6.next = 7;
234
- return this.getCDFileHeader(filename);
235
- case 7:
236
- cdFileHeader = _context6.sent;
237
- _context6.next = 10;
238
- return (0, _localFileHeader.parseZipLocalFileHeader)(cdFileHeader.localHeaderOffset, fileProvider);
239
- case 10:
240
- localFileHeader = _context6.sent;
241
- if (localFileHeader) {
242
- _context6.next = 13;
243
- break;
244
- }
245
- throw new Error('Local file header has not been found in the zip archive`');
246
- case 13:
247
- compressionHandler = COMPRESSION_METHODS[localFileHeader.compressionMethod.toString()];
248
- if (compressionHandler) {
249
- _context6.next = 16;
250
- break;
251
- }
252
- throw Error('Only Deflation compression is supported');
253
- case 16:
254
- _context6.next = 18;
255
- return fileProvider.slice(localFileHeader.fileDataOffset, localFileHeader.fileDataOffset + localFileHeader.compressedSize);
256
- case 18:
257
- compressedFile = _context6.sent;
258
- _context6.next = 21;
259
- return compressionHandler(compressedFile);
260
- case 21:
261
- uncompressedFile = _context6.sent;
262
- response = new Response(uncompressedFile);
263
- Object.defineProperty(response, 'url', {
264
- value: "".concat(this.fileName || '', "/").concat(filename)
265
- });
266
- return _context6.abrupt("return", response);
267
- case 25:
268
- case "end":
269
- return _context6.stop();
270
- }
271
- }, _callee6, this);
272
- }));
273
- function fetch(_x4) {
274
- return _fetch.apply(this, arguments);
275
- }
276
- return fetch;
277
- }()
278
- }, {
279
- key: "getCDFileHeader",
280
- value: function () {
281
- var _getCDFileHeader = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee7(filename) {
282
- var fileProvider, zipCDIterator, result, _iteratorAbruptCompletion2, _didIteratorError2, _iteratorError2, _iterator2, _step2, cdHeader;
283
- return _regenerator.default.wrap(function _callee7$(_context7) {
284
- while (1) switch (_context7.prev = _context7.next) {
285
- case 0:
286
- _context7.next = 2;
287
- return this.fileProvider;
288
- case 2:
289
- fileProvider = _context7.sent;
290
- if (fileProvider) {
291
- _context7.next = 5;
292
- break;
293
- }
294
- throw new Error('No data detected in the zip archive');
295
- case 5:
296
- zipCDIterator = (0, _cdFileHeader.zipCDFileHeaderGenerator)(fileProvider);
297
- result = null;
298
- _iteratorAbruptCompletion2 = false;
299
- _didIteratorError2 = false;
300
- _context7.prev = 9;
301
- _iterator2 = _asyncIterator(zipCDIterator);
302
- case 11:
303
- _context7.next = 13;
304
- return _iterator2.next();
305
- case 13:
306
- if (!(_iteratorAbruptCompletion2 = !(_step2 = _context7.sent).done)) {
307
- _context7.next = 21;
308
- break;
309
- }
310
- cdHeader = _step2.value;
311
- if (!(cdHeader.fileName === filename)) {
312
- _context7.next = 18;
313
- break;
314
- }
315
- result = cdHeader;
316
- return _context7.abrupt("break", 21);
317
- case 18:
318
- _iteratorAbruptCompletion2 = false;
319
- _context7.next = 11;
320
- break;
321
- case 21:
322
- _context7.next = 27;
323
- break;
324
- case 23:
325
- _context7.prev = 23;
326
- _context7.t0 = _context7["catch"](9);
327
- _didIteratorError2 = true;
328
- _iteratorError2 = _context7.t0;
329
- case 27:
330
- _context7.prev = 27;
331
- _context7.prev = 28;
332
- if (!(_iteratorAbruptCompletion2 && _iterator2.return != null)) {
333
- _context7.next = 32;
334
- break;
335
- }
336
- _context7.next = 32;
337
- return _iterator2.return();
338
- case 32:
339
- _context7.prev = 32;
340
- if (!_didIteratorError2) {
341
- _context7.next = 35;
342
- break;
343
- }
344
- throw _iteratorError2;
345
- case 35:
346
- return _context7.finish(32);
347
- case 36:
348
- return _context7.finish(27);
349
- case 37:
350
- if (result) {
351
- _context7.next = 39;
352
- break;
353
- }
354
- throw new Error('File has not been found in the zip archive');
355
- case 39:
356
- return _context7.abrupt("return", result);
357
- case 40:
358
- case "end":
359
- return _context7.stop();
360
- }
361
- }, _callee7, this, [[9, 23, 27, 37], [28,, 32, 36]]);
362
- }));
363
- function getCDFileHeader(_x5) {
364
- return _getCDFileHeader.apply(this, arguments);
365
- }
366
- return getCDFileHeader;
367
- }()
368
- }]);
369
- return ZipFileSystem;
370
- }();
371
- exports.ZipFileSystem = ZipFileSystem;
372
- //# sourceMappingURL=zip-filesystem.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"zip-filesystem.js","names":["_loaderUtils","require","_cdFileHeader","_localFileHeader","_compression","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_asyncIterator","iterable","method","async","sync","retry","Symbol","asyncIterator","iterator","call","AsyncFromSyncIterator","TypeError","s","AsyncFromSyncIteratorContinuation","r","Promise","reject","done","resolve","value","then","n","next","prototype","return","_return","ret","throw","_throw","thr","COMPRESSION_METHODS","_2","_asyncToGenerator2","_regenerator","mark","_callee","compressedFile","wrap","_callee$","_context","prev","abrupt","stop","_","_x","_3","_callee2","compression","decompressedData","_callee2$","_context2","DeflateCompression","raw","decompress","sent","_x2","ZipFileSystem","file","_classCallCheck2","fileName","isBrowser","fileProvider","FileHandleFile","from","Error","isFileProvider","_createClass2","_destroy","_callee3","_callee3$","_context3","destroy","_readdir","_callee4","fileNames","zipCDIterator","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","cdHeader","_callee4$","_context4","zipCDFileHeaderGenerator","t0","finish","readdir","_stat","_callee5","filename","cdFileHeader","_callee5$","_context5","getCDFileHeader","size","Number","uncompressedSize","stat","_x3","_fetch","_callee6","localFileHeader","compressionHandler","uncompressedFile","response","_callee6$","_context6","parseZipLocalFileHeader","localHeaderOffset","compressionMethod","toString","slice","fileDataOffset","compressedSize","Response","concat","fetch","_x4","_getCDFileHeader","_callee7","result","_iteratorAbruptCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","_callee7$","_context7","_x5","exports"],"sources":["../../../src/filesystems/zip-filesystem.ts"],"sourcesContent":["import {FileSystem, isBrowser} from '@loaders.gl/loader-utils';\nimport {FileProvider, isFileProvider} from '@loaders.gl/loader-utils';\nimport {FileHandleFile} from '@loaders.gl/loader-utils';\nimport {ZipCDFileHeader, zipCDFileHeaderGenerator} from '../parse-zip/cd-file-header';\nimport {parseZipLocalFileHeader} from '../parse-zip/local-file-header';\nimport {DeflateCompression} from '@loaders.gl/compression';\n\ntype CompressionHandler = (compressedFile: ArrayBuffer) => Promise<ArrayBuffer>;\n/** Handling different compression types in zip */\nconst COMPRESSION_METHODS: {[key: number]: CompressionHandler} = {\n /** No compression */\n 0: async (compressedFile) => compressedFile,\n /** Deflation */\n 8: async (compressedFile) => {\n const compression = new DeflateCompression({raw: true});\n const decompressedData = await compression.decompress(compressedFile);\n return decompressedData;\n }\n};\n\n/**\n * FileSystem adapter for a ZIP file\n * Holds FileProvider object that provides random access to archived files\n */\nexport class ZipFileSystem implements FileSystem {\n /** FileProvider instance promise */\n protected fileProvider: Promise<FileProvider | null> = Promise.resolve(null);\n public fileName?: string;\n\n /**\n * Constructor\n * @param file - instance of FileProvider or file path string\n */\n constructor(file: FileProvider | string) {\n // Try to open file in NodeJS\n if (typeof file === 'string') {\n this.fileName = file;\n if (!isBrowser) {\n this.fileProvider = FileHandleFile.from(file);\n } else {\n throw new Error('Cannot open file for random access in a WEB browser');\n }\n } else if (isFileProvider(file)) {\n this.fileProvider = Promise.resolve(file);\n }\n }\n\n /** Clean up resources */\n async destroy() {\n const fileProvider = await this.fileProvider;\n if (fileProvider) {\n await fileProvider.destroy();\n }\n }\n\n /**\n * Get file names list from zip archive\n * @returns array of file names\n */\n async readdir(): Promise<string[]> {\n const fileProvider = await this.fileProvider;\n if (!fileProvider) {\n throw new Error('No data detected in the zip archive');\n }\n const fileNames: string[] = [];\n const zipCDIterator = zipCDFileHeaderGenerator(fileProvider);\n for await (const cdHeader of zipCDIterator) {\n fileNames.push(cdHeader.fileName);\n }\n return fileNames;\n }\n\n /**\n * Get file metadata\n * @param filename - name of a file\n * @returns central directory data\n */\n async stat(filename: string): Promise<ZipCDFileHeader & {size: number}> {\n const cdFileHeader = await this.getCDFileHeader(filename);\n return {...cdFileHeader, size: Number(cdFileHeader.uncompressedSize)};\n }\n\n /**\n * Implementation of fetch against this file system\n * @param filename - name of a file\n * @returns - Response with file data\n */\n async fetch(filename: string): Promise<Response> {\n const fileProvider = await this.fileProvider;\n if (!fileProvider) {\n throw new Error('No data detected in the zip archive');\n }\n const cdFileHeader = await this.getCDFileHeader(filename);\n const localFileHeader = await parseZipLocalFileHeader(\n cdFileHeader.localHeaderOffset,\n fileProvider\n );\n if (!localFileHeader) {\n throw new Error('Local file header has not been found in the zip archive`');\n }\n\n const compressionHandler = COMPRESSION_METHODS[localFileHeader.compressionMethod.toString()];\n if (!compressionHandler) {\n throw Error('Only Deflation compression is supported');\n }\n\n const compressedFile = await fileProvider.slice(\n localFileHeader.fileDataOffset,\n localFileHeader.fileDataOffset + localFileHeader.compressedSize\n );\n\n const uncompressedFile = await compressionHandler(compressedFile);\n\n const response = new Response(uncompressedFile);\n Object.defineProperty(response, 'url', {value: `${this.fileName || ''}/${filename}`});\n return response;\n }\n\n /**\n * Get central directory file header\n * @param filename - name of a file\n * @returns central directory file header\n */\n private async getCDFileHeader(filename: string): Promise<ZipCDFileHeader> {\n const fileProvider = await this.fileProvider;\n if (!fileProvider) {\n throw new Error('No data detected in the zip archive');\n }\n const zipCDIterator = zipCDFileHeaderGenerator(fileProvider);\n let result: ZipCDFileHeader | null = null;\n for await (const cdHeader of zipCDIterator) {\n if (cdHeader.fileName === filename) {\n result = cdHeader;\n break;\n }\n }\n if (!result) {\n throw new Error('File has not been found in the zip archive');\n }\n return result;\n }\n}\n"],"mappings":"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"}
@@ -1,130 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.parseHashFile = exports.generateHashInfo = exports.findBin = exports.compareHashes = void 0;
8
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
- var _md = _interopRequireDefault(require("md5"));
11
- var _cdFileHeader = require("./parse-zip/cd-file-header");
12
- function _asyncIterator(iterable) { var method, async, sync, retry = 2; for ("undefined" != typeof Symbol && (async = Symbol.asyncIterator, sync = Symbol.iterator); retry--;) { if (async && null != (method = iterable[async])) return method.call(iterable); if (sync && null != (method = iterable[sync])) return new AsyncFromSyncIterator(method.call(iterable)); async = "@@asyncIterator", sync = "@@iterator"; } throw new TypeError("Object is not async iterable"); }
13
- function AsyncFromSyncIterator(s) { function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); var done = r.done; return Promise.resolve(r.value).then(function (value) { return { value: value, done: done }; }); } return AsyncFromSyncIterator = function AsyncFromSyncIterator(s) { this.s = s, this.n = s.next; }, AsyncFromSyncIterator.prototype = { s: null, n: null, next: function next() { return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); }, return: function _return(value) { var ret = this.s.return; return void 0 === ret ? Promise.resolve({ value: value, done: !0 }) : AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments)); }, throw: function _throw(value) { var thr = this.s.return; return void 0 === thr ? Promise.reject(value) : AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments)); } }, new AsyncFromSyncIterator(s); }
14
- var compareHashes = function compareHashes(hash1, hash2) {
15
- var h1 = new BigUint64Array(hash1.buffer, hash1.byteOffset, 2);
16
- var h2 = new BigUint64Array(hash2.buffer, hash2.byteOffset, 2);
17
- var diff = h1[0] === h2[0] ? h1[1] - h2[1] : h1[0] - h2[0];
18
- if (diff < 0n) {
19
- return -1;
20
- } else if (diff === 0n) {
21
- return 0;
22
- }
23
- return 1;
24
- };
25
- exports.compareHashes = compareHashes;
26
- var parseHashFile = function parseHashFile(hashFile) {
27
- var hashFileBuffer = Buffer.from(hashFile);
28
- var hashArray = [];
29
- for (var i = 0; i < hashFileBuffer.buffer.byteLength; i = i + 24) {
30
- var offsetBuffer = new DataView(hashFileBuffer.buffer.slice(hashFileBuffer.byteOffset + i + 16, hashFileBuffer.byteOffset + i + 24));
31
- var offset = offsetBuffer.getBigUint64(offsetBuffer.byteOffset, true);
32
- hashArray.push({
33
- hash: Buffer.from(hashFileBuffer.subarray(hashFileBuffer.byteOffset + i, hashFileBuffer.byteOffset + i + 16)),
34
- offset: offset
35
- });
36
- }
37
- return hashArray;
38
- };
39
- exports.parseHashFile = parseHashFile;
40
- var findBin = function findBin(hashToSearch, hashArray) {
41
- var lowerBorder = 0;
42
- var upperBorder = hashArray.length;
43
- while (upperBorder - lowerBorder > 1) {
44
- var middle = lowerBorder + Math.floor((upperBorder - lowerBorder) / 2);
45
- var value = compareHashes(hashArray[middle].hash, hashToSearch);
46
- if (value === 0) {
47
- return hashArray[middle];
48
- } else if (value < 0) {
49
- lowerBorder = middle;
50
- } else {
51
- upperBorder = middle;
52
- }
53
- }
54
- return undefined;
55
- };
56
- exports.findBin = findBin;
57
- var generateHashInfo = function () {
58
- var _ref = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(fileProvider) {
59
- var zipCDIterator, hashInfo, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, cdHeader;
60
- return _regenerator.default.wrap(function _callee$(_context) {
61
- while (1) switch (_context.prev = _context.next) {
62
- case 0:
63
- zipCDIterator = (0, _cdFileHeader.zipCDFileHeaderGenerator)(fileProvider);
64
- hashInfo = [];
65
- _iteratorAbruptCompletion = false;
66
- _didIteratorError = false;
67
- _context.prev = 4;
68
- _iterator = _asyncIterator(zipCDIterator);
69
- case 6:
70
- _context.next = 8;
71
- return _iterator.next();
72
- case 8:
73
- if (!(_iteratorAbruptCompletion = !(_step = _context.sent).done)) {
74
- _context.next = 14;
75
- break;
76
- }
77
- cdHeader = _step.value;
78
- hashInfo.push({
79
- hash: Buffer.from((0, _md.default)(cdHeader.fileName.split('\\').join('/').toLocaleLowerCase()), 'hex'),
80
- offset: cdHeader.localHeaderOffset
81
- });
82
- case 11:
83
- _iteratorAbruptCompletion = false;
84
- _context.next = 6;
85
- break;
86
- case 14:
87
- _context.next = 20;
88
- break;
89
- case 16:
90
- _context.prev = 16;
91
- _context.t0 = _context["catch"](4);
92
- _didIteratorError = true;
93
- _iteratorError = _context.t0;
94
- case 20:
95
- _context.prev = 20;
96
- _context.prev = 21;
97
- if (!(_iteratorAbruptCompletion && _iterator.return != null)) {
98
- _context.next = 25;
99
- break;
100
- }
101
- _context.next = 25;
102
- return _iterator.return();
103
- case 25:
104
- _context.prev = 25;
105
- if (!_didIteratorError) {
106
- _context.next = 28;
107
- break;
108
- }
109
- throw _iteratorError;
110
- case 28:
111
- return _context.finish(25);
112
- case 29:
113
- return _context.finish(20);
114
- case 30:
115
- hashInfo.sort(function (a, b) {
116
- return compareHashes(a.hash, b.hash);
117
- });
118
- return _context.abrupt("return", hashInfo);
119
- case 32:
120
- case "end":
121
- return _context.stop();
122
- }
123
- }, _callee, null, [[4, 16, 20, 30], [21,, 25, 29]]);
124
- }));
125
- return function generateHashInfo(_x) {
126
- return _ref.apply(this, arguments);
127
- };
128
- }();
129
- exports.generateHashInfo = generateHashInfo;
130
- //# sourceMappingURL=hash-file-utility.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hash-file-utility.js","names":["_md","_interopRequireDefault","require","_cdFileHeader","_asyncIterator","iterable","method","async","sync","retry","Symbol","asyncIterator","iterator","call","AsyncFromSyncIterator","TypeError","s","AsyncFromSyncIteratorContinuation","r","Object","Promise","reject","done","resolve","value","then","n","next","prototype","apply","arguments","return","_return","ret","throw","_throw","thr","compareHashes","hash1","hash2","h1","BigUint64Array","buffer","byteOffset","h2","diff","exports","parseHashFile","hashFile","hashFileBuffer","Buffer","from","hashArray","i","byteLength","offsetBuffer","DataView","slice","offset","getBigUint64","push","hash","subarray","findBin","hashToSearch","lowerBorder","upperBorder","length","middle","Math","floor","undefined","generateHashInfo","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","fileProvider","zipCDIterator","hashInfo","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","cdHeader","wrap","_callee$","_context","prev","zipCDFileHeaderGenerator","sent","md5","fileName","split","join","toLocaleLowerCase","localHeaderOffset","t0","finish","sort","a","b","abrupt","stop","_x"],"sources":["../../src/hash-file-utility.ts"],"sourcesContent":["import md5 from 'md5';\nimport {FileProvider} from '@loaders.gl/loader-utils';\nimport {zipCDFileHeaderGenerator} from './parse-zip/cd-file-header';\n\n/** Element of hash array */\nexport type HashElement = {\n /** File name hash */\n hash: Buffer;\n /** File offset in the archive */\n offset: bigint;\n};\n\n/**\n * Comparing md5 hashes according to https://github.com/Esri/i3s-spec/blob/master/docs/2.0/slpk_hashtable.pcsl.md step 5\n * @param hash1 hash to compare\n * @param hash2 hash to compare\n * @returns -1 if hash1 < hash2, 0 of hash1 === hash2, 1 if hash1 > hash2\n */\nexport const compareHashes = (hash1: Buffer, hash2: Buffer): number => {\n const h1 = new BigUint64Array(hash1.buffer, hash1.byteOffset, 2);\n const h2 = new BigUint64Array(hash2.buffer, hash2.byteOffset, 2);\n\n const diff = h1[0] === h2[0] ? h1[1] - h2[1] : h1[0] - h2[0];\n\n if (diff < 0n) {\n return -1;\n } else if (diff === 0n) {\n return 0;\n }\n return 1;\n};\n\n/**\n * Reads hash file from buffer and returns it in ready-to-use form\n * @param hashFile - bufer containing hash file\n * @returns Array containing file info\n */\nexport const parseHashFile = (hashFile: ArrayBuffer): HashElement[] => {\n const hashFileBuffer = Buffer.from(hashFile);\n const hashArray: HashElement[] = [];\n for (let i = 0; i < hashFileBuffer.buffer.byteLength; i = i + 24) {\n const offsetBuffer = new DataView(\n hashFileBuffer.buffer.slice(\n hashFileBuffer.byteOffset + i + 16,\n hashFileBuffer.byteOffset + i + 24\n )\n );\n const offset = offsetBuffer.getBigUint64(offsetBuffer.byteOffset, true);\n hashArray.push({\n hash: Buffer.from(\n hashFileBuffer.subarray(hashFileBuffer.byteOffset + i, hashFileBuffer.byteOffset + i + 16)\n ),\n offset\n });\n }\n return hashArray;\n};\n\n/**\n * Binary search in the hash info\n * @param hashToSearch hash that we need to find\n * @returns required hash element or undefined if not found\n */\nexport const findBin = (\n hashToSearch: Buffer,\n hashArray: HashElement[]\n): HashElement | undefined => {\n let lowerBorder = 0;\n let upperBorder = hashArray.length;\n\n while (upperBorder - lowerBorder > 1) {\n const middle = lowerBorder + Math.floor((upperBorder - lowerBorder) / 2);\n const value = compareHashes(hashArray[middle].hash, hashToSearch);\n if (value === 0) {\n return hashArray[middle];\n } else if (value < 0) {\n lowerBorder = middle;\n } else {\n upperBorder = middle;\n }\n }\n return undefined;\n};\n\n/**\n * generates hash info from central directory\n * @param fileProvider - provider of the archive\n * @returns ready to use hash info\n */\nexport const generateHashInfo = async (fileProvider: FileProvider): Promise<HashElement[]> => {\n const zipCDIterator = zipCDFileHeaderGenerator(fileProvider);\n const hashInfo: HashElement[] = [];\n for await (const cdHeader of zipCDIterator) {\n hashInfo.push({\n hash: Buffer.from(md5(cdHeader.fileName.split('\\\\').join('/').toLocaleLowerCase()), 'hex'),\n offset: cdHeader.localHeaderOffset\n });\n }\n hashInfo.sort((a, b) => compareHashes(a.hash, b.hash));\n return hashInfo;\n};\n"],"mappings":"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"}
package/dist/es5/index.js DELETED
@@ -1,105 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "TarBuilder", {
7
- enumerable: true,
8
- get: function get() {
9
- return _tarBuilder.TarBuilder;
10
- }
11
- });
12
- Object.defineProperty(exports, "ZipFileSystem", {
13
- enumerable: true,
14
- get: function get() {
15
- return _zipFilesystem.ZipFileSystem;
16
- }
17
- });
18
- Object.defineProperty(exports, "ZipLoader", {
19
- enumerable: true,
20
- get: function get() {
21
- return _zipLoader.ZipLoader;
22
- }
23
- });
24
- Object.defineProperty(exports, "ZipWriter", {
25
- enumerable: true,
26
- get: function get() {
27
- return _zipWriter.ZipWriter;
28
- }
29
- });
30
- Object.defineProperty(exports, "cdSignature", {
31
- enumerable: true,
32
- get: function get() {
33
- return _cdFileHeader.signature;
34
- }
35
- });
36
- Object.defineProperty(exports, "compareHashes", {
37
- enumerable: true,
38
- get: function get() {
39
- return _hashFileUtility.compareHashes;
40
- }
41
- });
42
- Object.defineProperty(exports, "findBin", {
43
- enumerable: true,
44
- get: function get() {
45
- return _hashFileUtility.findBin;
46
- }
47
- });
48
- Object.defineProperty(exports, "generateHashInfo", {
49
- enumerable: true,
50
- get: function get() {
51
- return _hashFileUtility.generateHashInfo;
52
- }
53
- });
54
- Object.defineProperty(exports, "localHeaderSignature", {
55
- enumerable: true,
56
- get: function get() {
57
- return _localFileHeader.signature;
58
- }
59
- });
60
- Object.defineProperty(exports, "parseEoCDRecord", {
61
- enumerable: true,
62
- get: function get() {
63
- return _endOfCentralDirectory.parseEoCDRecord;
64
- }
65
- });
66
- Object.defineProperty(exports, "parseHashFile", {
67
- enumerable: true,
68
- get: function get() {
69
- return _hashFileUtility.parseHashFile;
70
- }
71
- });
72
- Object.defineProperty(exports, "parseZipCDFileHeader", {
73
- enumerable: true,
74
- get: function get() {
75
- return _cdFileHeader.parseZipCDFileHeader;
76
- }
77
- });
78
- Object.defineProperty(exports, "parseZipLocalFileHeader", {
79
- enumerable: true,
80
- get: function get() {
81
- return _localFileHeader.parseZipLocalFileHeader;
82
- }
83
- });
84
- Object.defineProperty(exports, "searchFromTheEnd", {
85
- enumerable: true,
86
- get: function get() {
87
- return _searchFromTheEnd.searchFromTheEnd;
88
- }
89
- });
90
- Object.defineProperty(exports, "zipCDFileHeaderGenerator", {
91
- enumerable: true,
92
- get: function get() {
93
- return _cdFileHeader.zipCDFileHeaderGenerator;
94
- }
95
- });
96
- var _zipLoader = require("./zip-loader");
97
- var _zipWriter = require("./zip-writer");
98
- var _tarBuilder = require("./tar-builder");
99
- var _cdFileHeader = require("./parse-zip/cd-file-header");
100
- var _localFileHeader = require("./parse-zip/local-file-header");
101
- var _endOfCentralDirectory = require("./parse-zip/end-of-central-directory");
102
- var _searchFromTheEnd = require("./parse-zip/search-from-the-end");
103
- var _hashFileUtility = require("./hash-file-utility");
104
- var _zipFilesystem = require("./filesystems/zip-filesystem");
105
- //# sourceMappingURL=index.js.map