@loaders.gl/zip 4.0.0-alpha.21 → 4.0.0-alpha.22

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.
@@ -15,6 +15,7 @@ var _fileProvider = require("../file-provider/file-provider");
15
15
  var _fileHandleFile = require("../file-provider/file-handle-file");
16
16
  var _cdFileHeader = require("../parse-zip/cd-file-header");
17
17
  var _localFileHeader = require("../parse-zip/local-file-header");
18
+ var _compression = require("@loaders.gl/compression");
18
19
  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; }
19
20
  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; }
20
21
  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"); }
@@ -36,13 +37,40 @@ var COMPRESSION_METHODS = {
36
37
  return _2.apply(this, arguments);
37
38
  }
38
39
  return _;
40
+ }(),
41
+ 8: function () {
42
+ var _3 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(compressedFile) {
43
+ var compression, decompressedData;
44
+ return _regenerator.default.wrap(function _callee2$(_context2) {
45
+ while (1) switch (_context2.prev = _context2.next) {
46
+ case 0:
47
+ compression = new _compression.DeflateCompression({
48
+ raw: true
49
+ });
50
+ _context2.next = 3;
51
+ return compression.decompress(compressedFile);
52
+ case 3:
53
+ decompressedData = _context2.sent;
54
+ return _context2.abrupt("return", decompressedData);
55
+ case 5:
56
+ case "end":
57
+ return _context2.stop();
58
+ }
59
+ }, _callee2);
60
+ }));
61
+ function _(_x2) {
62
+ return _3.apply(this, arguments);
63
+ }
64
+ return _;
39
65
  }()
40
66
  };
41
67
  var ZipFileSystem = function () {
42
68
  function ZipFileSystem(file) {
43
69
  (0, _classCallCheck2.default)(this, ZipFileSystem);
44
70
  (0, _defineProperty2.default)(this, "fileProvider", Promise.resolve(null));
71
+ (0, _defineProperty2.default)(this, "fileName", void 0);
45
72
  if (typeof file === 'string') {
73
+ this.fileName = file;
46
74
  if (!_core.isBrowser) {
47
75
  this.fileProvider = _fileHandleFile.FileHandleFile.from(file);
48
76
  } else {
@@ -55,23 +83,26 @@ var ZipFileSystem = function () {
55
83
  (0, _createClass2.default)(ZipFileSystem, [{
56
84
  key: "destroy",
57
85
  value: function () {
58
- var _destroy = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2() {
86
+ var _destroy = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3() {
59
87
  var fileProvider;
60
- return _regenerator.default.wrap(function _callee2$(_context2) {
61
- while (1) switch (_context2.prev = _context2.next) {
88
+ return _regenerator.default.wrap(function _callee3$(_context3) {
89
+ while (1) switch (_context3.prev = _context3.next) {
62
90
  case 0:
63
- _context2.next = 2;
91
+ _context3.next = 2;
64
92
  return this.fileProvider;
65
93
  case 2:
66
- fileProvider = _context2.sent;
67
- if (fileProvider) {
68
- fileProvider.destroy();
94
+ fileProvider = _context3.sent;
95
+ if (!fileProvider) {
96
+ _context3.next = 6;
97
+ break;
69
98
  }
70
- case 4:
99
+ _context3.next = 6;
100
+ return fileProvider.destroy();
101
+ case 6:
71
102
  case "end":
72
- return _context2.stop();
103
+ return _context3.stop();
73
104
  }
74
- }, _callee2, this);
105
+ }, _callee3, this);
75
106
  }));
76
107
  function destroy() {
77
108
  return _destroy.apply(this, arguments);
@@ -81,17 +112,17 @@ var ZipFileSystem = function () {
81
112
  }, {
82
113
  key: "readdir",
83
114
  value: function () {
84
- var _readdir = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3() {
115
+ var _readdir = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4() {
85
116
  var fileProvider, fileNames, zipCDIterator, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, cdHeader;
86
- return _regenerator.default.wrap(function _callee3$(_context3) {
87
- while (1) switch (_context3.prev = _context3.next) {
117
+ return _regenerator.default.wrap(function _callee4$(_context4) {
118
+ while (1) switch (_context4.prev = _context4.next) {
88
119
  case 0:
89
- _context3.next = 2;
120
+ _context4.next = 2;
90
121
  return this.fileProvider;
91
122
  case 2:
92
- fileProvider = _context3.sent;
123
+ fileProvider = _context4.sent;
93
124
  if (fileProvider) {
94
- _context3.next = 5;
125
+ _context4.next = 5;
95
126
  break;
96
127
  }
97
128
  throw new Error('No data detected in the zip archive');
@@ -100,57 +131,57 @@ var ZipFileSystem = function () {
100
131
  zipCDIterator = (0, _cdFileHeader.zipCDFileHeaderGenerator)(fileProvider);
101
132
  _iteratorAbruptCompletion = false;
102
133
  _didIteratorError = false;
103
- _context3.prev = 9;
134
+ _context4.prev = 9;
104
135
  _iterator = _asyncIterator(zipCDIterator);
105
136
  case 11:
106
- _context3.next = 13;
137
+ _context4.next = 13;
107
138
  return _iterator.next();
108
139
  case 13:
109
- if (!(_iteratorAbruptCompletion = !(_step = _context3.sent).done)) {
110
- _context3.next = 19;
140
+ if (!(_iteratorAbruptCompletion = !(_step = _context4.sent).done)) {
141
+ _context4.next = 19;
111
142
  break;
112
143
  }
113
144
  cdHeader = _step.value;
114
145
  fileNames.push(cdHeader.fileName);
115
146
  case 16:
116
147
  _iteratorAbruptCompletion = false;
117
- _context3.next = 11;
148
+ _context4.next = 11;
118
149
  break;
119
150
  case 19:
120
- _context3.next = 25;
151
+ _context4.next = 25;
121
152
  break;
122
153
  case 21:
123
- _context3.prev = 21;
124
- _context3.t0 = _context3["catch"](9);
154
+ _context4.prev = 21;
155
+ _context4.t0 = _context4["catch"](9);
125
156
  _didIteratorError = true;
126
- _iteratorError = _context3.t0;
157
+ _iteratorError = _context4.t0;
127
158
  case 25:
128
- _context3.prev = 25;
129
- _context3.prev = 26;
159
+ _context4.prev = 25;
160
+ _context4.prev = 26;
130
161
  if (!(_iteratorAbruptCompletion && _iterator.return != null)) {
131
- _context3.next = 30;
162
+ _context4.next = 30;
132
163
  break;
133
164
  }
134
- _context3.next = 30;
165
+ _context4.next = 30;
135
166
  return _iterator.return();
136
167
  case 30:
137
- _context3.prev = 30;
168
+ _context4.prev = 30;
138
169
  if (!_didIteratorError) {
139
- _context3.next = 33;
170
+ _context4.next = 33;
140
171
  break;
141
172
  }
142
173
  throw _iteratorError;
143
174
  case 33:
144
- return _context3.finish(30);
175
+ return _context4.finish(30);
145
176
  case 34:
146
- return _context3.finish(25);
177
+ return _context4.finish(25);
147
178
  case 35:
148
- return _context3.abrupt("return", fileNames);
179
+ return _context4.abrupt("return", fileNames);
149
180
  case 36:
150
181
  case "end":
151
- return _context3.stop();
182
+ return _context4.stop();
152
183
  }
153
- }, _callee3, this, [[9, 21, 25, 35], [26,, 30, 34]]);
184
+ }, _callee4, this, [[9, 21, 25, 35], [26,, 30, 34]]);
154
185
  }));
155
186
  function readdir() {
156
187
  return _readdir.apply(this, arguments);
@@ -160,25 +191,25 @@ var ZipFileSystem = function () {
160
191
  }, {
161
192
  key: "stat",
162
193
  value: function () {
163
- var _stat = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(filename) {
194
+ var _stat = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee5(filename) {
164
195
  var cdFileHeader;
165
- return _regenerator.default.wrap(function _callee4$(_context4) {
166
- while (1) switch (_context4.prev = _context4.next) {
196
+ return _regenerator.default.wrap(function _callee5$(_context5) {
197
+ while (1) switch (_context5.prev = _context5.next) {
167
198
  case 0:
168
- _context4.next = 2;
199
+ _context5.next = 2;
169
200
  return this.getCDFileHeader(filename);
170
201
  case 2:
171
- cdFileHeader = _context4.sent;
172
- return _context4.abrupt("return", _objectSpread(_objectSpread({}, cdFileHeader), {}, {
202
+ cdFileHeader = _context5.sent;
203
+ return _context5.abrupt("return", _objectSpread(_objectSpread({}, cdFileHeader), {}, {
173
204
  size: Number(cdFileHeader.uncompressedSize)
174
205
  }));
175
206
  case 4:
176
207
  case "end":
177
- return _context4.stop();
208
+ return _context5.stop();
178
209
  }
179
- }, _callee4, this);
210
+ }, _callee5, this);
180
211
  }));
181
- function stat(_x2) {
212
+ function stat(_x3) {
182
213
  return _stat.apply(this, arguments);
183
214
  }
184
215
  return stat;
@@ -186,59 +217,62 @@ var ZipFileSystem = function () {
186
217
  }, {
187
218
  key: "fetch",
188
219
  value: function () {
189
- var _fetch = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee5(filename) {
220
+ var _fetch = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee6(filename) {
190
221
  var fileProvider, cdFileHeader, localFileHeader, compressionHandler, compressedFile, uncompressedFile, response;
191
- return _regenerator.default.wrap(function _callee5$(_context5) {
192
- while (1) switch (_context5.prev = _context5.next) {
222
+ return _regenerator.default.wrap(function _callee6$(_context6) {
223
+ while (1) switch (_context6.prev = _context6.next) {
193
224
  case 0:
194
- _context5.next = 2;
225
+ _context6.next = 2;
195
226
  return this.fileProvider;
196
227
  case 2:
197
- fileProvider = _context5.sent;
228
+ fileProvider = _context6.sent;
198
229
  if (fileProvider) {
199
- _context5.next = 5;
230
+ _context6.next = 5;
200
231
  break;
201
232
  }
202
233
  throw new Error('No data detected in the zip archive');
203
234
  case 5:
204
- _context5.next = 7;
235
+ _context6.next = 7;
205
236
  return this.getCDFileHeader(filename);
206
237
  case 7:
207
- cdFileHeader = _context5.sent;
208
- _context5.next = 10;
238
+ cdFileHeader = _context6.sent;
239
+ _context6.next = 10;
209
240
  return (0, _localFileHeader.parseZipLocalFileHeader)(cdFileHeader.localHeaderOffset, fileProvider);
210
241
  case 10:
211
- localFileHeader = _context5.sent;
242
+ localFileHeader = _context6.sent;
212
243
  if (localFileHeader) {
213
- _context5.next = 13;
244
+ _context6.next = 13;
214
245
  break;
215
246
  }
216
247
  throw new Error('Local file header has not been found in the zip archive`');
217
248
  case 13:
218
249
  compressionHandler = COMPRESSION_METHODS[localFileHeader.compressionMethod.toString()];
219
250
  if (compressionHandler) {
220
- _context5.next = 16;
251
+ _context6.next = 16;
221
252
  break;
222
253
  }
223
254
  throw Error('Only Deflation compression is supported');
224
255
  case 16:
225
- _context5.next = 18;
256
+ _context6.next = 18;
226
257
  return fileProvider.slice(localFileHeader.fileDataOffset, localFileHeader.fileDataOffset + localFileHeader.compressedSize);
227
258
  case 18:
228
- compressedFile = _context5.sent;
229
- _context5.next = 21;
259
+ compressedFile = _context6.sent;
260
+ _context6.next = 21;
230
261
  return compressionHandler(compressedFile);
231
262
  case 21:
232
- uncompressedFile = _context5.sent;
263
+ uncompressedFile = _context6.sent;
233
264
  response = new Response(uncompressedFile);
234
- return _context5.abrupt("return", response);
235
- case 24:
265
+ Object.defineProperty(response, 'url', {
266
+ value: "".concat(this.fileName || '', "/").concat(filename)
267
+ });
268
+ return _context6.abrupt("return", response);
269
+ case 25:
236
270
  case "end":
237
- return _context5.stop();
271
+ return _context6.stop();
238
272
  }
239
- }, _callee5, this);
273
+ }, _callee6, this);
240
274
  }));
241
- function fetch(_x3) {
275
+ function fetch(_x4) {
242
276
  return _fetch.apply(this, arguments);
243
277
  }
244
278
  return fetch;
@@ -246,17 +280,17 @@ var ZipFileSystem = function () {
246
280
  }, {
247
281
  key: "getCDFileHeader",
248
282
  value: function () {
249
- var _getCDFileHeader = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee6(filename) {
283
+ var _getCDFileHeader = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee7(filename) {
250
284
  var fileProvider, zipCDIterator, result, _iteratorAbruptCompletion2, _didIteratorError2, _iteratorError2, _iterator2, _step2, cdHeader;
251
- return _regenerator.default.wrap(function _callee6$(_context6) {
252
- while (1) switch (_context6.prev = _context6.next) {
285
+ return _regenerator.default.wrap(function _callee7$(_context7) {
286
+ while (1) switch (_context7.prev = _context7.next) {
253
287
  case 0:
254
- _context6.next = 2;
288
+ _context7.next = 2;
255
289
  return this.fileProvider;
256
290
  case 2:
257
- fileProvider = _context6.sent;
291
+ fileProvider = _context7.sent;
258
292
  if (fileProvider) {
259
- _context6.next = 5;
293
+ _context7.next = 5;
260
294
  break;
261
295
  }
262
296
  throw new Error('No data detected in the zip archive');
@@ -265,70 +299,70 @@ var ZipFileSystem = function () {
265
299
  result = null;
266
300
  _iteratorAbruptCompletion2 = false;
267
301
  _didIteratorError2 = false;
268
- _context6.prev = 9;
302
+ _context7.prev = 9;
269
303
  _iterator2 = _asyncIterator(zipCDIterator);
270
304
  case 11:
271
- _context6.next = 13;
305
+ _context7.next = 13;
272
306
  return _iterator2.next();
273
307
  case 13:
274
- if (!(_iteratorAbruptCompletion2 = !(_step2 = _context6.sent).done)) {
275
- _context6.next = 21;
308
+ if (!(_iteratorAbruptCompletion2 = !(_step2 = _context7.sent).done)) {
309
+ _context7.next = 21;
276
310
  break;
277
311
  }
278
312
  cdHeader = _step2.value;
279
313
  if (!(cdHeader.fileName === filename)) {
280
- _context6.next = 18;
314
+ _context7.next = 18;
281
315
  break;
282
316
  }
283
317
  result = cdHeader;
284
- return _context6.abrupt("break", 21);
318
+ return _context7.abrupt("break", 21);
285
319
  case 18:
286
320
  _iteratorAbruptCompletion2 = false;
287
- _context6.next = 11;
321
+ _context7.next = 11;
288
322
  break;
289
323
  case 21:
290
- _context6.next = 27;
324
+ _context7.next = 27;
291
325
  break;
292
326
  case 23:
293
- _context6.prev = 23;
294
- _context6.t0 = _context6["catch"](9);
327
+ _context7.prev = 23;
328
+ _context7.t0 = _context7["catch"](9);
295
329
  _didIteratorError2 = true;
296
- _iteratorError2 = _context6.t0;
330
+ _iteratorError2 = _context7.t0;
297
331
  case 27:
298
- _context6.prev = 27;
299
- _context6.prev = 28;
332
+ _context7.prev = 27;
333
+ _context7.prev = 28;
300
334
  if (!(_iteratorAbruptCompletion2 && _iterator2.return != null)) {
301
- _context6.next = 32;
335
+ _context7.next = 32;
302
336
  break;
303
337
  }
304
- _context6.next = 32;
338
+ _context7.next = 32;
305
339
  return _iterator2.return();
306
340
  case 32:
307
- _context6.prev = 32;
341
+ _context7.prev = 32;
308
342
  if (!_didIteratorError2) {
309
- _context6.next = 35;
343
+ _context7.next = 35;
310
344
  break;
311
345
  }
312
346
  throw _iteratorError2;
313
347
  case 35:
314
- return _context6.finish(32);
348
+ return _context7.finish(32);
315
349
  case 36:
316
- return _context6.finish(27);
350
+ return _context7.finish(27);
317
351
  case 37:
318
352
  if (result) {
319
- _context6.next = 39;
353
+ _context7.next = 39;
320
354
  break;
321
355
  }
322
356
  throw new Error('File has not been found in the zip archive');
323
357
  case 39:
324
- return _context6.abrupt("return", result);
358
+ return _context7.abrupt("return", result);
325
359
  case 40:
326
360
  case "end":
327
- return _context6.stop();
361
+ return _context7.stop();
328
362
  }
329
- }, _callee6, this, [[9, 23, 27, 37], [28,, 32, 36]]);
363
+ }, _callee7, this, [[9, 23, 27, 37], [28,, 32, 36]]);
330
364
  }));
331
- function getCDFileHeader(_x4) {
365
+ function getCDFileHeader(_x5) {
332
366
  return _getCDFileHeader.apply(this, arguments);
333
367
  }
334
368
  return getCDFileHeader;
@@ -1 +1 @@
1
- {"version":3,"file":"zip-filesystem.js","names":["_core","require","_fileProvider","_fileHandleFile","_cdFileHeader","_localFileHeader","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","ZipFileSystem","file","_classCallCheck2","isBrowser","fileProvider","FileHandleFile","from","Error","isFileProvider","_createClass2","_destroy","_callee2","_callee2$","_context2","sent","destroy","_readdir","_callee3","fileNames","zipCDIterator","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","cdHeader","_callee3$","_context3","zipCDFileHeaderGenerator","fileName","t0","finish","readdir","_stat","_callee4","filename","cdFileHeader","_callee4$","_context4","getCDFileHeader","size","Number","uncompressedSize","stat","_x2","_fetch","_callee5","localFileHeader","compressionHandler","uncompressedFile","response","_callee5$","_context5","parseZipLocalFileHeader","localHeaderOffset","compressionMethod","toString","slice","fileDataOffset","compressedSize","Response","fetch","_x3","_getCDFileHeader","_callee6","result","_iteratorAbruptCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","_callee6$","_context6","_x4","exports"],"sources":["../../../src/filesystems/zip-filesystem.ts"],"sourcesContent":["import {FileSystem, isBrowser} from '@loaders.gl/core';\nimport {FileProvider, isFileProvider} from '../file-provider/file-provider';\nimport {FileHandleFile} from '../file-provider/file-handle-file';\nimport {ZipCDFileHeader, zipCDFileHeaderGenerator} from '../parse-zip/cd-file-header';\nimport {parseZipLocalFileHeader} from '../parse-zip/local-file-header';\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};\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 private fileProvider: Promise<FileProvider | null> = Promise.resolve(null);\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 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 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 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
+ {"version":3,"file":"zip-filesystem.js","names":["_core","require","_fileProvider","_fileHandleFile","_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/core';\nimport {FileProvider, isFileProvider} from '../file-provider/file-provider';\nimport {FileHandleFile} from '../file-provider/file-handle-file';\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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"}
package/dist/es5/index.js CHANGED
@@ -22,6 +22,12 @@ Object.defineProperty(exports, "TarBuilder", {
22
22
  return _tarBuilder.default;
23
23
  }
24
24
  });
25
+ Object.defineProperty(exports, "ZipFileSystem", {
26
+ enumerable: true,
27
+ get: function get() {
28
+ return _zipFilesystem.ZipFileSystem;
29
+ }
30
+ });
25
31
  Object.defineProperty(exports, "ZipLoader", {
26
32
  enumerable: true,
27
33
  get: function get() {
@@ -110,4 +116,5 @@ var _localFileHeader = require("./parse-zip/local-file-header");
110
116
  var _endOfCentralDirectory = require("./parse-zip/end-of-central-directory");
111
117
  var _searchFromTheEnd = require("./parse-zip/search-from-the-end");
112
118
  var _hashFileUtility = require("./hash-file-utility");
119
+ var _zipFilesystem = require("./filesystems/zip-filesystem");
113
120
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_zipLoader","require","_zipWriter","_tarBuilder","_interopRequireDefault","_fileHandleFile","_dataViewFile","_cdFileHeader","_localFileHeader","_endOfCentralDirectory","_searchFromTheEnd","_hashFileUtility"],"sources":["../../src/index.ts"],"sourcesContent":["export {ZipLoader} from './zip-loader';\nexport {ZipWriter} from './zip-writer';\nexport {default as TarBuilder} from './tar-builder';\n\nexport type {FileProvider} from './file-provider/file-provider';\nexport {FileHandleFile} from './file-provider/file-handle-file';\nexport {DataViewFile} from './file-provider/data-view-file';\n\nexport {\n parseZipCDFileHeader,\n zipCDFileHeaderGenerator,\n signature as cdSignature\n} from './parse-zip/cd-file-header';\nexport {\n parseZipLocalFileHeader,\n signature as localHeaderSignature\n} from './parse-zip/local-file-header';\nexport {parseEoCDRecord} from './parse-zip/end-of-central-directory';\nexport {searchFromTheEnd} from './parse-zip/search-from-the-end';\n\nexport type {HashElement} from './hash-file-utility';\nexport {compareHashes, parseHashFile, findBin, generateHashInfo} from './hash-file-utility';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAC,sBAAA,CAAAH,OAAA;AAGA,IAAAI,eAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AAEA,IAAAM,aAAA,GAAAN,OAAA;AAKA,IAAAO,gBAAA,GAAAP,OAAA;AAIA,IAAAQ,sBAAA,GAAAR,OAAA;AACA,IAAAS,iBAAA,GAAAT,OAAA;AAGA,IAAAU,gBAAA,GAAAV,OAAA"}
1
+ {"version":3,"file":"index.js","names":["_zipLoader","require","_zipWriter","_tarBuilder","_interopRequireDefault","_fileHandleFile","_dataViewFile","_cdFileHeader","_localFileHeader","_endOfCentralDirectory","_searchFromTheEnd","_hashFileUtility","_zipFilesystem"],"sources":["../../src/index.ts"],"sourcesContent":["export {ZipLoader} from './zip-loader';\nexport {ZipWriter} from './zip-writer';\nexport {default as TarBuilder} from './tar-builder';\n\nexport type {FileProvider} from './file-provider/file-provider';\nexport {FileHandleFile} from './file-provider/file-handle-file';\nexport {DataViewFile} from './file-provider/data-view-file';\n\nexport {\n parseZipCDFileHeader,\n zipCDFileHeaderGenerator,\n signature as cdSignature\n} from './parse-zip/cd-file-header';\nexport {\n parseZipLocalFileHeader,\n signature as localHeaderSignature\n} from './parse-zip/local-file-header';\nexport {parseEoCDRecord} from './parse-zip/end-of-central-directory';\nexport {searchFromTheEnd} from './parse-zip/search-from-the-end';\n\nexport type {HashElement} from './hash-file-utility';\nexport {compareHashes, parseHashFile, findBin, generateHashInfo} from './hash-file-utility';\n\nexport {ZipFileSystem} from './filesystems/zip-filesystem';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAC,sBAAA,CAAAH,OAAA;AAGA,IAAAI,eAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AAEA,IAAAM,aAAA,GAAAN,OAAA;AAKA,IAAAO,gBAAA,GAAAP,OAAA;AAIA,IAAAQ,sBAAA,GAAAR,OAAA;AACA,IAAAS,iBAAA,GAAAT,OAAA;AAGA,IAAAU,gBAAA,GAAAV,OAAA;AAEA,IAAAW,cAAA,GAAAX,OAAA"}
@@ -8,7 +8,7 @@ exports._typecheckZipLoader = exports.ZipLoader = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _jszip = _interopRequireDefault(require("jszip"));
11
- var VERSION = typeof "4.0.0-alpha.21" !== 'undefined' ? "4.0.0-alpha.21" : 'latest';
11
+ var VERSION = typeof "4.0.0-alpha.22" !== 'undefined' ? "4.0.0-alpha.22" : 'latest';
12
12
  var ZipLoader = {
13
13
  id: 'zip',
14
14
  module: 'zip',
@@ -4,13 +4,23 @@ import { isFileProvider } from '../file-provider/file-provider';
4
4
  import { FileHandleFile } from '../file-provider/file-handle-file';
5
5
  import { zipCDFileHeaderGenerator } from '../parse-zip/cd-file-header';
6
6
  import { parseZipLocalFileHeader } from '../parse-zip/local-file-header';
7
+ import { DeflateCompression } from '@loaders.gl/compression';
7
8
  const COMPRESSION_METHODS = {
8
- 0: async compressedFile => compressedFile
9
+ 0: async compressedFile => compressedFile,
10
+ 8: async compressedFile => {
11
+ const compression = new DeflateCompression({
12
+ raw: true
13
+ });
14
+ const decompressedData = await compression.decompress(compressedFile);
15
+ return decompressedData;
16
+ }
9
17
  };
10
18
  export class ZipFileSystem {
11
19
  constructor(file) {
12
20
  _defineProperty(this, "fileProvider", Promise.resolve(null));
21
+ _defineProperty(this, "fileName", void 0);
13
22
  if (typeof file === 'string') {
23
+ this.fileName = file;
14
24
  if (!isBrowser) {
15
25
  this.fileProvider = FileHandleFile.from(file);
16
26
  } else {
@@ -23,7 +33,7 @@ export class ZipFileSystem {
23
33
  async destroy() {
24
34
  const fileProvider = await this.fileProvider;
25
35
  if (fileProvider) {
26
- fileProvider.destroy();
36
+ await fileProvider.destroy();
27
37
  }
28
38
  }
29
39
  async readdir() {
@@ -62,6 +72,9 @@ export class ZipFileSystem {
62
72
  const compressedFile = await fileProvider.slice(localFileHeader.fileDataOffset, localFileHeader.fileDataOffset + localFileHeader.compressedSize);
63
73
  const uncompressedFile = await compressionHandler(compressedFile);
64
74
  const response = new Response(uncompressedFile);
75
+ Object.defineProperty(response, 'url', {
76
+ value: "".concat(this.fileName || '', "/").concat(filename)
77
+ });
65
78
  return response;
66
79
  }
67
80
  async getCDFileHeader(filename) {