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