@gmod/cram 1.5.9 → 1.6.2
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/CHANGELOG.md +90 -0
- package/README.md +182 -172
- package/dist/craiIndex.d.ts +37 -0
- package/dist/craiIndex.js +196 -301
- package/dist/craiIndex.js.map +1 -0
- package/dist/cram-bundle.js +6 -15
- package/dist/cramFile/codecs/_base.d.ts +6 -0
- package/dist/cramFile/codecs/_base.js +44 -53
- package/dist/cramFile/codecs/_base.js.map +1 -0
- package/dist/cramFile/codecs/beta.d.ts +4 -0
- package/dist/cramFile/codecs/beta.js +38 -48
- package/dist/cramFile/codecs/beta.js.map +1 -0
- package/dist/cramFile/codecs/byteArrayLength.d.ts +8 -0
- package/dist/cramFile/codecs/byteArrayLength.js +58 -78
- package/dist/cramFile/codecs/byteArrayLength.js.map +1 -0
- package/dist/cramFile/codecs/byteArrayStop.d.ts +6 -0
- package/dist/cramFile/codecs/byteArrayStop.js +62 -76
- package/dist/cramFile/codecs/byteArrayStop.js.map +1 -0
- package/dist/cramFile/codecs/external.d.ts +7 -0
- package/dist/cramFile/codecs/external.js +63 -81
- package/dist/cramFile/codecs/external.js.map +1 -0
- package/dist/cramFile/codecs/gamma.d.ts +4 -0
- package/dist/cramFile/codecs/gamma.js +43 -56
- package/dist/cramFile/codecs/gamma.js.map +1 -0
- package/dist/cramFile/codecs/huffman.d.ts +17 -0
- package/dist/cramFile/codecs/huffman.js +126 -199
- package/dist/cramFile/codecs/huffman.js.map +1 -0
- package/dist/cramFile/codecs/index.d.ts +2 -0
- package/dist/cramFile/codecs/index.js +31 -38
- package/dist/cramFile/codecs/index.js.map +1 -0
- package/dist/cramFile/codecs/subexp.d.ts +4 -0
- package/dist/cramFile/codecs/subexp.js +51 -64
- package/dist/cramFile/codecs/subexp.js.map +1 -0
- package/dist/cramFile/constants.d.ts +36 -0
- package/dist/cramFile/constants.js +52 -50
- package/dist/cramFile/constants.js.map +1 -0
- package/dist/cramFile/container/compressionScheme.d.ts +23 -0
- package/dist/cramFile/container/compressionScheme.js +115 -153
- package/dist/cramFile/container/compressionScheme.js.map +1 -0
- package/dist/cramFile/container/index.d.ts +13 -0
- package/dist/cramFile/container/index.js +169 -283
- package/dist/cramFile/container/index.js.map +1 -0
- package/dist/cramFile/file.d.ts +63 -0
- package/dist/cramFile/file.js +440 -766
- package/dist/cramFile/file.js.map +1 -0
- package/dist/cramFile/index.d.ts +2 -0
- package/dist/cramFile/index.js +7 -4
- package/dist/cramFile/index.js.map +1 -0
- package/dist/cramFile/record.d.ts +79 -0
- package/dist/cramFile/record.js +253 -308
- package/dist/cramFile/record.js.map +1 -0
- package/dist/cramFile/sectionParsers.d.ts +18 -0
- package/dist/cramFile/sectionParsers.js +324 -362
- package/dist/cramFile/sectionParsers.js.map +1 -0
- package/dist/cramFile/slice/decodeRecord.d.ts +2 -0
- package/dist/cramFile/slice/decodeRecord.js +278 -298
- package/dist/cramFile/slice/decodeRecord.js.map +1 -0
- package/dist/cramFile/slice/index.d.ts +20 -0
- package/dist/cramFile/slice/index.js +488 -789
- package/dist/cramFile/slice/index.js.map +1 -0
- package/dist/cramFile/util.d.ts +5 -0
- package/dist/cramFile/util.js +158 -144
- package/dist/cramFile/util.js.map +1 -0
- package/dist/errors.d.ts +23 -0
- package/dist/errors.js +66 -103
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +12 -12
- package/dist/index.js.map +1 -0
- package/dist/indexedCramFile.d.ts +39 -0
- package/dist/indexedCramFile.js +213 -315
- package/dist/indexedCramFile.js.map +1 -0
- package/dist/io/bufferCache.d.ts +12 -0
- package/dist/io/bufferCache.js +108 -128
- package/dist/io/bufferCache.js.map +1 -0
- package/dist/io/index.d.ts +5 -0
- package/dist/io/index.js +29 -27
- package/dist/io/index.js.map +1 -0
- package/dist/io/localFile.d.ts +10 -0
- package/dist/io/localFile.js +105 -162
- package/dist/io/localFile.js.map +1 -0
- package/dist/io/remoteFile.d.ts +16 -0
- package/dist/io/remoteFile.js +137 -206
- package/dist/io/remoteFile.js.map +1 -0
- package/dist/rans/constants.d.ts +3 -0
- package/dist/rans/constants.js +6 -6
- package/dist/rans/constants.js.map +1 -0
- package/dist/rans/d04.d.ts +1 -0
- package/dist/rans/d04.js +70 -99
- package/dist/rans/d04.js.map +1 -0
- package/dist/rans/d14.d.ts +1 -0
- package/dist/rans/d14.js +55 -93
- package/dist/rans/d14.js.map +1 -0
- package/dist/rans/decoding.d.ts +30 -0
- package/dist/rans/decoding.js +112 -159
- package/dist/rans/decoding.js.map +1 -0
- package/dist/rans/frequencies.d.ts +2 -0
- package/dist/rans/frequencies.js +110 -119
- package/dist/rans/frequencies.js.map +1 -0
- package/dist/rans/index.d.ts +1 -0
- package/dist/rans/index.js +111 -174
- package/dist/rans/index.js.map +1 -0
- package/dist/sam.d.ts +1 -0
- package/dist/sam.js +16 -41
- package/dist/sam.js.map +1 -0
- package/dist/unzip-pako.d.ts +2 -0
- package/dist/unzip-pako.js +9 -0
- package/dist/unzip-pako.js.map +1 -0
- package/dist/unzip.d.ts +2 -0
- package/dist/unzip.js +6 -0
- package/dist/unzip.js.map +1 -0
- package/errors.js +66 -103
- package/esm/craiIndex.d.ts +37 -0
- package/esm/craiIndex.js +158 -0
- package/esm/craiIndex.js.map +1 -0
- package/esm/cramFile/codecs/_base.d.ts +6 -0
- package/esm/cramFile/codecs/_base.js +42 -0
- package/esm/cramFile/codecs/_base.js.map +1 -0
- package/esm/cramFile/codecs/beta.d.ts +4 -0
- package/esm/cramFile/codecs/beta.js +15 -0
- package/esm/cramFile/codecs/beta.js.map +1 -0
- package/esm/cramFile/codecs/byteArrayLength.d.ts +8 -0
- package/esm/cramFile/codecs/byteArrayLength.js +35 -0
- package/esm/cramFile/codecs/byteArrayLength.js.map +1 -0
- package/esm/cramFile/codecs/byteArrayStop.d.ts +6 -0
- package/esm/cramFile/codecs/byteArrayStop.js +40 -0
- package/esm/cramFile/codecs/byteArrayStop.js.map +1 -0
- package/esm/cramFile/codecs/external.d.ts +7 -0
- package/esm/cramFile/codecs/external.js +40 -0
- package/esm/cramFile/codecs/external.js.map +1 -0
- package/esm/cramFile/codecs/gamma.d.ts +4 -0
- package/esm/cramFile/codecs/gamma.js +20 -0
- package/esm/cramFile/codecs/gamma.js.map +1 -0
- package/esm/cramFile/codecs/huffman.d.ts +17 -0
- package/esm/cramFile/codecs/huffman.js +107 -0
- package/esm/cramFile/codecs/huffman.js.map +1 -0
- package/esm/cramFile/codecs/index.d.ts +2 -0
- package/esm/cramFile/codecs/index.js +30 -0
- package/esm/cramFile/codecs/index.js.map +1 -0
- package/esm/cramFile/codecs/subexp.d.ts +4 -0
- package/esm/cramFile/codecs/subexp.js +28 -0
- package/esm/cramFile/codecs/subexp.js.map +1 -0
- package/esm/cramFile/constants.d.ts +36 -0
- package/esm/cramFile/constants.js +51 -0
- package/esm/cramFile/constants.js.map +1 -0
- package/esm/cramFile/container/compressionScheme.d.ts +23 -0
- package/esm/cramFile/container/compressionScheme.js +123 -0
- package/esm/cramFile/container/compressionScheme.js.map +1 -0
- package/esm/cramFile/container/index.d.ts +13 -0
- package/esm/cramFile/container/index.js +84 -0
- package/esm/cramFile/container/index.js.map +1 -0
- package/esm/cramFile/file.d.ts +63 -0
- package/esm/cramFile/file.js +281 -0
- package/esm/cramFile/file.js.map +1 -0
- package/esm/cramFile/index.d.ts +2 -0
- package/esm/cramFile/index.js +3 -0
- package/esm/cramFile/index.js.map +1 -0
- package/esm/cramFile/record.d.ts +79 -0
- package/esm/cramFile/record.js +297 -0
- package/esm/cramFile/record.js.map +1 -0
- package/esm/cramFile/sectionParsers.d.ts +18 -0
- package/esm/cramFile/sectionParsers.js +347 -0
- package/esm/cramFile/sectionParsers.js.map +1 -0
- package/esm/cramFile/slice/decodeRecord.d.ts +2 -0
- package/esm/cramFile/slice/decodeRecord.js +299 -0
- package/esm/cramFile/slice/decodeRecord.js.map +1 -0
- package/esm/cramFile/slice/index.d.ts +20 -0
- package/esm/cramFile/slice/index.js +364 -0
- package/esm/cramFile/slice/index.js.map +1 -0
- package/esm/cramFile/util.d.ts +5 -0
- package/esm/cramFile/util.js +161 -0
- package/esm/cramFile/util.js.map +1 -0
- package/esm/errors.d.ts +23 -0
- package/esm/errors.js +24 -0
- package/esm/errors.js.map +1 -0
- package/esm/index.d.ts +4 -0
- package/esm/index.js +5 -0
- package/esm/index.js.map +1 -0
- package/esm/indexedCramFile.d.ts +39 -0
- package/esm/indexedCramFile.js +155 -0
- package/esm/indexedCramFile.js.map +1 -0
- package/esm/io/bufferCache.d.ts +12 -0
- package/esm/io/bufferCache.js +54 -0
- package/esm/io/bufferCache.js.map +1 -0
- package/esm/io/index.d.ts +5 -0
- package/esm/io/index.js +24 -0
- package/esm/io/index.js.map +1 -0
- package/esm/io/localFile.d.ts +10 -0
- package/esm/io/localFile.js +31 -0
- package/esm/io/localFile.js.map +1 -0
- package/esm/io/remoteFile.d.ts +16 -0
- package/esm/io/remoteFile.js +64 -0
- package/esm/io/remoteFile.js.map +1 -0
- package/esm/rans/constants.d.ts +3 -0
- package/esm/rans/constants.js +5 -0
- package/esm/rans/constants.js.map +1 -0
- package/esm/rans/d04.d.ts +1 -0
- package/esm/rans/d04.js +67 -0
- package/esm/rans/d04.js.map +1 -0
- package/esm/rans/d14.d.ts +1 -0
- package/esm/rans/d14.js +52 -0
- package/esm/rans/d14.js.map +1 -0
- package/esm/rans/decoding.d.ts +30 -0
- package/esm/rans/decoding.js +118 -0
- package/esm/rans/decoding.js.map +1 -0
- package/esm/rans/frequencies.d.ts +2 -0
- package/esm/rans/frequencies.js +110 -0
- package/esm/rans/frequencies.js.map +1 -0
- package/esm/rans/index.d.ts +1 -0
- package/esm/rans/index.js +195 -0
- package/esm/rans/index.js.map +1 -0
- package/esm/sam.d.ts +1 -0
- package/esm/sam.js +16 -0
- package/esm/sam.js.map +1 -0
- package/esm/unzip-pako.d.ts +2 -0
- package/esm/unzip-pako.js +5 -0
- package/esm/unzip-pako.js.map +1 -0
- package/esm/unzip.d.ts +2 -0
- package/esm/unzip.js +3 -0
- package/esm/unzip.js.map +1 -0
- package/package.json +38 -35
- package/src/craiIndex.js +180 -0
- package/src/cramFile/codecs/_base.js +49 -0
- package/src/cramFile/codecs/beta.js +23 -0
- package/src/cramFile/codecs/byteArrayLength.js +55 -0
- package/src/cramFile/codecs/byteArrayStop.js +50 -0
- package/src/cramFile/codecs/external.js +54 -0
- package/src/cramFile/codecs/gamma.js +30 -0
- package/src/cramFile/codecs/huffman.js +137 -0
- package/src/cramFile/codecs/index.js +38 -0
- package/src/cramFile/codecs/subexp.js +32 -0
- package/src/cramFile/constants.js +55 -0
- package/src/cramFile/container/compressionScheme.js +144 -0
- package/src/cramFile/container/index.js +119 -0
- package/src/cramFile/file.js +347 -0
- package/src/cramFile/index.js +3 -0
- package/src/cramFile/record.js +337 -0
- package/src/cramFile/sectionParsers.js +379 -0
- package/src/cramFile/slice/decodeRecord.js +362 -0
- package/src/cramFile/slice/index.js +497 -0
- package/src/cramFile/util.js +169 -0
- package/src/errors.js +22 -0
- package/src/index.js +5 -0
- package/src/indexedCramFile.js +191 -0
- package/src/io/bufferCache.js +66 -0
- package/src/io/index.js +26 -0
- package/src/io/localFile.js +35 -0
- package/src/io/remoteFile.js +71 -0
- package/src/rans/README.md +1 -0
- package/src/rans/constants.js +5 -0
- package/src/rans/d04.js +83 -0
- package/src/rans/d14.js +59 -0
- package/src/rans/decoding.js +141 -0
- package/src/rans/frequencies.js +121 -0
- package/src/rans/index.js +249 -0
- package/src/sam.js +15 -0
- package/src/unzip-pako.ts +5 -0
- package/src/unzip.ts +2 -0
package/dist/io/bufferCache.js
CHANGED
|
@@ -1,132 +1,112 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise"));
|
|
10
|
-
|
|
11
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/asyncToGenerator"));
|
|
12
|
-
|
|
13
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck"));
|
|
14
|
-
|
|
15
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/createClass"));
|
|
16
|
-
|
|
17
|
-
var LRU = require('quick-lru');
|
|
18
|
-
|
|
19
|
-
var BufferCache =
|
|
20
|
-
/*#__PURE__*/
|
|
21
|
-
function () {
|
|
22
|
-
function BufferCache(_ref) {
|
|
23
|
-
var fetch = _ref.fetch,
|
|
24
|
-
_ref$size = _ref.size,
|
|
25
|
-
size = _ref$size === void 0 ? 10000000 : _ref$size,
|
|
26
|
-
_ref$chunkSize = _ref.chunkSize,
|
|
27
|
-
chunkSize = _ref$chunkSize === void 0 ? 32768 : _ref$chunkSize;
|
|
28
|
-
(0, _classCallCheck2.default)(this, BufferCache);
|
|
29
|
-
if (!fetch) throw new Error('fetch function required');
|
|
30
|
-
this.fetch = fetch;
|
|
31
|
-
this.chunkSize = chunkSize;
|
|
32
|
-
this.lruCache = new LRU({
|
|
33
|
-
maxSize: Math.floor(size / chunkSize)
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
34
9
|
});
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
case 2:
|
|
59
|
-
// calculate the list of chunks involved in this fetch
|
|
60
|
-
firstChunk = Math.floor(position / this.chunkSize);
|
|
61
|
-
lastChunk = Math.floor((position + length) / this.chunkSize); // fetch them all as necessary
|
|
62
|
-
|
|
63
|
-
fetches = new Array(lastChunk - firstChunk + 1);
|
|
64
|
-
|
|
65
|
-
_loop = function _loop(chunk) {
|
|
66
|
-
fetches[chunk - firstChunk] = _this._getChunk(chunk).then(function (data) {
|
|
67
|
-
return {
|
|
68
|
-
data: data,
|
|
69
|
-
chunkNumber: chunk
|
|
70
|
-
};
|
|
71
|
-
});
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
for (chunk = firstChunk; chunk <= lastChunk; chunk += 1) {
|
|
75
|
-
_loop(chunk);
|
|
76
|
-
} // stitch together the response buffer using them
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
_context.next = 9;
|
|
80
|
-
return _promise.default.all(fetches);
|
|
81
|
-
|
|
82
|
-
case 9:
|
|
83
|
-
chunks = _context.sent;
|
|
84
|
-
chunksOffset = position - chunks[0].chunkNumber * this.chunkSize;
|
|
85
|
-
(0, _forEach.default)(chunks).call(chunks, function (_ref2) {
|
|
86
|
-
var data = _ref2.data,
|
|
87
|
-
chunkNumber = _ref2.chunkNumber;
|
|
88
|
-
var chunkPositionStart = chunkNumber * _this.chunkSize;
|
|
89
|
-
var copyStart = 0;
|
|
90
|
-
var copyEnd = _this.chunkSize;
|
|
91
|
-
var copyOffset = offset + (chunkNumber - firstChunk) * _this.chunkSize - chunksOffset;
|
|
92
|
-
|
|
93
|
-
if (chunkNumber === firstChunk) {
|
|
94
|
-
copyOffset = offset;
|
|
95
|
-
copyStart = chunksOffset;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
if (chunkNumber === lastChunk) {
|
|
99
|
-
copyEnd = position + length - chunkPositionStart;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
data.copy(outputBuffer, copyOffset, copyStart, copyEnd);
|
|
103
|
-
});
|
|
104
|
-
|
|
105
|
-
case 12:
|
|
106
|
-
case "end":
|
|
107
|
-
return _context.stop();
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
108
32
|
}
|
|
109
|
-
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
var quick_lru_1 = __importDefault(require("quick-lru"));
|
|
43
|
+
var BufferCache = /** @class */ (function () {
|
|
44
|
+
function BufferCache(_a) {
|
|
45
|
+
var fetch = _a.fetch, _b = _a.size, size = _b === void 0 ? 10000000 : _b, _c = _a.chunkSize, chunkSize = _c === void 0 ? 32768 : _c;
|
|
46
|
+
if (!fetch) {
|
|
47
|
+
throw new Error('fetch function required');
|
|
48
|
+
}
|
|
49
|
+
this.fetch = fetch;
|
|
50
|
+
this.chunkSize = chunkSize;
|
|
51
|
+
this.lruCache = new quick_lru_1.default({ maxSize: Math.floor(size / chunkSize) });
|
|
127
52
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
53
|
+
BufferCache.prototype.get = function (outputBuffer, offset, length, position) {
|
|
54
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
55
|
+
var firstChunk, lastChunk, fetches, _loop_1, this_1, chunk, chunks, chunksOffset;
|
|
56
|
+
var _this = this;
|
|
57
|
+
return __generator(this, function (_a) {
|
|
58
|
+
switch (_a.label) {
|
|
59
|
+
case 0:
|
|
60
|
+
if (outputBuffer.length < offset + length) {
|
|
61
|
+
throw new Error('output buffer not big enough for request');
|
|
62
|
+
}
|
|
63
|
+
firstChunk = Math.floor(position / this.chunkSize);
|
|
64
|
+
lastChunk = Math.floor((position + length) / this.chunkSize);
|
|
65
|
+
fetches = new Array(lastChunk - firstChunk + 1);
|
|
66
|
+
_loop_1 = function (chunk) {
|
|
67
|
+
fetches[chunk - firstChunk] = this_1._getChunk(chunk).then(function (data) { return ({
|
|
68
|
+
data: data,
|
|
69
|
+
chunkNumber: chunk,
|
|
70
|
+
}); });
|
|
71
|
+
};
|
|
72
|
+
this_1 = this;
|
|
73
|
+
for (chunk = firstChunk; chunk <= lastChunk; chunk += 1) {
|
|
74
|
+
_loop_1(chunk);
|
|
75
|
+
}
|
|
76
|
+
return [4 /*yield*/, Promise.all(fetches)];
|
|
77
|
+
case 1:
|
|
78
|
+
chunks = _a.sent();
|
|
79
|
+
chunksOffset = position - chunks[0].chunkNumber * this.chunkSize;
|
|
80
|
+
chunks.forEach(function (_a) {
|
|
81
|
+
var data = _a.data, chunkNumber = _a.chunkNumber;
|
|
82
|
+
var chunkPositionStart = chunkNumber * _this.chunkSize;
|
|
83
|
+
var copyStart = 0;
|
|
84
|
+
var copyEnd = _this.chunkSize;
|
|
85
|
+
var copyOffset = offset + (chunkNumber - firstChunk) * _this.chunkSize - chunksOffset;
|
|
86
|
+
if (chunkNumber === firstChunk) {
|
|
87
|
+
copyOffset = offset;
|
|
88
|
+
copyStart = chunksOffset;
|
|
89
|
+
}
|
|
90
|
+
if (chunkNumber === lastChunk) {
|
|
91
|
+
copyEnd = position + length - chunkPositionStart;
|
|
92
|
+
}
|
|
93
|
+
data.copy(outputBuffer, copyOffset, copyStart, copyEnd);
|
|
94
|
+
});
|
|
95
|
+
return [2 /*return*/];
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
};
|
|
100
|
+
BufferCache.prototype._getChunk = function (chunkNumber) {
|
|
101
|
+
var cachedPromise = this.lruCache.get(chunkNumber);
|
|
102
|
+
if (cachedPromise) {
|
|
103
|
+
return cachedPromise;
|
|
104
|
+
}
|
|
105
|
+
var freshPromise = this.fetch(chunkNumber * this.chunkSize, this.chunkSize);
|
|
106
|
+
this.lruCache.set(chunkNumber, freshPromise);
|
|
107
|
+
return freshPromise;
|
|
108
|
+
};
|
|
109
|
+
return BufferCache;
|
|
110
|
+
}());
|
|
111
|
+
exports.default = BufferCache;
|
|
112
|
+
//# sourceMappingURL=bufferCache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bufferCache.js","sourceRoot":"","sources":["../../src/io/bufferCache.js"],"names":[],"mappings":"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"}
|
package/dist/io/index.js
CHANGED
|
@@ -1,31 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
var
|
|
8
|
-
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.open = exports.fromUrl = exports.RemoteFile = exports.LocalFile = void 0;
|
|
7
|
+
var url_1 = __importDefault(require("url"));
|
|
8
|
+
var remoteFile_1 = __importDefault(require("./remoteFile"));
|
|
9
|
+
exports.RemoteFile = remoteFile_1.default;
|
|
10
|
+
var localFile_1 = __importDefault(require("./localFile"));
|
|
11
|
+
exports.LocalFile = localFile_1.default;
|
|
9
12
|
function fromUrl(source) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
return new LocalFile(unescape(pathname));
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
return new RemoteFile(source);
|
|
13
|
+
var _a = url_1.default.parse(source), protocol = _a.protocol, pathname = _a.pathname;
|
|
14
|
+
if (protocol === 'file:') {
|
|
15
|
+
return new localFile_1.default(unescape(pathname));
|
|
16
|
+
}
|
|
17
|
+
return new remoteFile_1.default(source);
|
|
19
18
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
if (maybePath)
|
|
19
|
+
exports.fromUrl = fromUrl;
|
|
20
|
+
function open(maybeUrl, maybePath, maybeFilehandle) {
|
|
21
|
+
if (maybeFilehandle) {
|
|
22
|
+
return maybeFilehandle;
|
|
23
|
+
}
|
|
24
|
+
if (maybeUrl) {
|
|
25
|
+
return fromUrl(maybeUrl);
|
|
26
|
+
}
|
|
27
|
+
if (maybePath) {
|
|
28
|
+
return new localFile_1.default(maybePath);
|
|
29
|
+
}
|
|
29
30
|
throw new Error('no url, path, or filehandle provided, cannot open');
|
|
30
|
-
|
|
31
|
-
|
|
31
|
+
}
|
|
32
|
+
exports.open = open;
|
|
33
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/io/index.js"],"names":[],"mappings":";;;;;;AAAA,4CAAqB;AACrB,4DAAqC;AAwBjB,qBAxBb,oBAAU,CAwBa;AAvB9B,0DAAmC;AAuB1B,oBAvBF,mBAAS,CAuBE;AArBlB,SAAS,OAAO,CAAC,MAAM;IACf,IAAA,KAAyB,aAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAxC,QAAQ,cAAA,EAAE,QAAQ,cAAsB,CAAA;IAChD,IAAI,QAAQ,KAAK,OAAO,EAAE;QACxB,OAAO,IAAI,mBAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;KACzC;IACD,OAAO,IAAI,oBAAU,CAAC,MAAM,CAAC,CAAA;AAC/B,CAAC;AAe+B,0BAAO;AAbvC,SAAS,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,eAAe;IAChD,IAAI,eAAe,EAAE;QACnB,OAAO,eAAe,CAAA;KACvB;IACD,IAAI,QAAQ,EAAE;QACZ,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAA;KACzB;IACD,IAAI,SAAS,EAAE;QACb,OAAO,IAAI,mBAAS,CAAC,SAAS,CAAC,CAAA;KAChC;IACD,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;AACtE,CAAC;AAEwC,oBAAI"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export default class LocalFile {
|
|
2
|
+
constructor(source: any);
|
|
3
|
+
position: number;
|
|
4
|
+
filename: any;
|
|
5
|
+
fd: any;
|
|
6
|
+
read(buffer: any, offset: number | undefined, length: any, position: any): Promise<any>;
|
|
7
|
+
readFile(): Promise<any>;
|
|
8
|
+
stat(): Promise<any>;
|
|
9
|
+
_stat: any;
|
|
10
|
+
}
|
package/dist/io/localFile.js
CHANGED
|
@@ -1,165 +1,108 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
var
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
(0, _createClass2.default)(LocalFile, [{
|
|
35
|
-
key: "read",
|
|
36
|
-
value: function () {
|
|
37
|
-
var _read = (0, _asyncToGenerator2.default)(
|
|
38
|
-
/*#__PURE__*/
|
|
39
|
-
_regenerator.default.mark(function _callee(buffer) {
|
|
40
|
-
var offset,
|
|
41
|
-
length,
|
|
42
|
-
position,
|
|
43
|
-
readPosition,
|
|
44
|
-
_args = arguments;
|
|
45
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
46
|
-
while (1) {
|
|
47
|
-
switch (_context.prev = _context.next) {
|
|
48
|
-
case 0:
|
|
49
|
-
offset = _args.length > 1 && _args[1] !== undefined ? _args[1] : 0;
|
|
50
|
-
length = _args.length > 2 ? _args[2] : undefined;
|
|
51
|
-
position = _args.length > 3 ? _args[3] : undefined;
|
|
52
|
-
readPosition = position;
|
|
53
|
-
|
|
54
|
-
if (readPosition === null) {
|
|
55
|
-
readPosition = this.position;
|
|
56
|
-
this.position += length;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
_context.t0 = fsRead;
|
|
60
|
-
_context.next = 8;
|
|
61
|
-
return this.fd;
|
|
62
|
-
|
|
63
|
-
case 8:
|
|
64
|
-
_context.t1 = _context.sent;
|
|
65
|
-
_context.t2 = buffer;
|
|
66
|
-
_context.t3 = offset;
|
|
67
|
-
_context.t4 = length;
|
|
68
|
-
_context.t5 = position;
|
|
69
|
-
return _context.abrupt("return", (0, _context.t0)(_context.t1, _context.t2, _context.t3, _context.t4, _context.t5));
|
|
70
|
-
|
|
71
|
-
case 14:
|
|
72
|
-
case "end":
|
|
73
|
-
return _context.stop();
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}, _callee, this);
|
|
77
|
-
}));
|
|
78
|
-
|
|
79
|
-
function read(_x) {
|
|
80
|
-
return _read.apply(this, arguments);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
return read;
|
|
84
|
-
}()
|
|
85
|
-
}, {
|
|
86
|
-
key: "readFile",
|
|
87
|
-
value: function () {
|
|
88
|
-
var _readFile = (0, _asyncToGenerator2.default)(
|
|
89
|
-
/*#__PURE__*/
|
|
90
|
-
_regenerator.default.mark(function _callee2() {
|
|
91
|
-
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
92
|
-
while (1) {
|
|
93
|
-
switch (_context2.prev = _context2.next) {
|
|
94
|
-
case 0:
|
|
95
|
-
_context2.t0 = fsReadFile;
|
|
96
|
-
_context2.next = 3;
|
|
97
|
-
return this.fd;
|
|
98
|
-
|
|
99
|
-
case 3:
|
|
100
|
-
_context2.t1 = _context2.sent;
|
|
101
|
-
return _context2.abrupt("return", (0, _context2.t0)(_context2.t1));
|
|
102
|
-
|
|
103
|
-
case 5:
|
|
104
|
-
case "end":
|
|
105
|
-
return _context2.stop();
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
106
32
|
}
|
|
107
|
-
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
var es6_promisify_1 = require("es6-promisify");
|
|
43
|
+
var fs_1 = __importDefault(require("fs"));
|
|
44
|
+
var fsOpen = fs_1.default && (0, es6_promisify_1.promisify)(fs_1.default.open);
|
|
45
|
+
var fsRead = fs_1.default && (0, es6_promisify_1.promisify)(fs_1.default.read);
|
|
46
|
+
var fsFStat = fs_1.default && (0, es6_promisify_1.promisify)(fs_1.default.fstat);
|
|
47
|
+
var fsReadFile = fs_1.default && (0, es6_promisify_1.promisify)(fs_1.default.readFile);
|
|
48
|
+
var LocalFile = /** @class */ (function () {
|
|
49
|
+
function LocalFile(source) {
|
|
50
|
+
this.position = 0;
|
|
51
|
+
this.filename = source;
|
|
52
|
+
this.fd = fsOpen(this.filename, 'r');
|
|
53
|
+
}
|
|
54
|
+
LocalFile.prototype.read = function (buffer, offset, length, position) {
|
|
55
|
+
if (offset === void 0) { offset = 0; }
|
|
56
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
57
|
+
var readPosition, _a;
|
|
58
|
+
return __generator(this, function (_b) {
|
|
59
|
+
switch (_b.label) {
|
|
60
|
+
case 0:
|
|
61
|
+
readPosition = position;
|
|
62
|
+
if (readPosition === null) {
|
|
63
|
+
readPosition = this.position;
|
|
64
|
+
this.position += length;
|
|
65
|
+
}
|
|
66
|
+
_a = fsRead;
|
|
67
|
+
return [4 /*yield*/, this.fd];
|
|
68
|
+
case 1: return [2 /*return*/, _a.apply(void 0, [_b.sent(), buffer, offset, length, position])];
|
|
130
69
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
};
|
|
73
|
+
LocalFile.prototype.readFile = function () {
|
|
74
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
75
|
+
var _a;
|
|
76
|
+
return __generator(this, function (_b) {
|
|
77
|
+
switch (_b.label) {
|
|
78
|
+
case 0:
|
|
79
|
+
_a = fsReadFile;
|
|
80
|
+
return [4 /*yield*/, this.fd];
|
|
81
|
+
case 1: return [2 /*return*/, _a.apply(void 0, [_b.sent()])];
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
LocalFile.prototype.stat = function () {
|
|
87
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
88
|
+
var _a, _b;
|
|
89
|
+
return __generator(this, function (_c) {
|
|
90
|
+
switch (_c.label) {
|
|
91
|
+
case 0:
|
|
92
|
+
if (!!this._stat) return [3 /*break*/, 3];
|
|
93
|
+
_a = this;
|
|
94
|
+
_b = fsFStat;
|
|
95
|
+
return [4 /*yield*/, this.fd];
|
|
96
|
+
case 1: return [4 /*yield*/, _b.apply(void 0, [_c.sent()])];
|
|
97
|
+
case 2:
|
|
98
|
+
_a._stat = _c.sent();
|
|
99
|
+
_c.label = 3;
|
|
100
|
+
case 3: return [2 /*return*/, this._stat];
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
};
|
|
105
|
+
return LocalFile;
|
|
106
|
+
}());
|
|
107
|
+
exports.default = LocalFile;
|
|
108
|
+
//# sourceMappingURL=localFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localFile.js","sourceRoot":"","sources":["../../src/io/localFile.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAyC;AACzC,0CAAmB;AAEnB,IAAM,MAAM,GAAG,YAAE,IAAI,IAAA,yBAAS,EAAC,YAAE,CAAC,IAAI,CAAC,CAAA;AACvC,IAAM,MAAM,GAAG,YAAE,IAAI,IAAA,yBAAS,EAAC,YAAE,CAAC,IAAI,CAAC,CAAA;AACvC,IAAM,OAAO,GAAG,YAAE,IAAI,IAAA,yBAAS,EAAC,YAAE,CAAC,KAAK,CAAC,CAAA;AACzC,IAAM,UAAU,GAAG,YAAE,IAAI,IAAA,yBAAS,EAAC,YAAE,CAAC,QAAQ,CAAC,CAAA;AAE/C;IACE,mBAAY,MAAM;QAChB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAA;QACjB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAA;QACtB,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;IACtC,CAAC;IAEK,wBAAI,GAAV,UAAW,MAAM,EAAE,MAAU,EAAE,MAAM,EAAE,QAAQ;QAA5B,uBAAA,EAAA,UAAU;;;;;;wBACvB,YAAY,GAAG,QAAQ,CAAA;wBAC3B,IAAI,YAAY,KAAK,IAAI,EAAE;4BACzB,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAA;4BAC5B,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAA;yBACxB;wBACM,KAAA,MAAM,CAAA;wBAAC,qBAAM,IAAI,CAAC,EAAE,EAAA;4BAA3B,sBAAO,kBAAO,SAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAC,EAAA;;;;KAC/D;IAEK,4BAAQ,GAAd;;;;;;wBACS,KAAA,UAAU,CAAA;wBAAC,qBAAM,IAAI,CAAC,EAAE,EAAA;4BAA/B,sBAAO,kBAAW,SAAa,EAAC,EAAA;;;;KACjC;IAEK,wBAAI,GAAV;;;;;;6BACM,CAAC,IAAI,CAAC,KAAK,EAAX,wBAAW;wBACb,KAAA,IAAI,CAAA;wBAAe,KAAA,OAAO,CAAA;wBAAC,qBAAM,IAAI,CAAC,EAAE,EAAA;4BAA3B,qBAAM,kBAAQ,SAAa,EAAC,EAAA;;wBAAzC,GAAK,KAAK,GAAG,SAA4B,CAAA;;4BAE3C,sBAAO,IAAI,CAAC,KAAK,EAAA;;;;KAClB;IACH,gBAAC;AAAD,CAAC,AA1BD,IA0BC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export default class RemoteFile {
|
|
2
|
+
constructor(source: any);
|
|
3
|
+
position: number;
|
|
4
|
+
url: any;
|
|
5
|
+
cache: BufferCache;
|
|
6
|
+
_fetch(position: any, length: any): Promise<Buffer>;
|
|
7
|
+
_stat: {
|
|
8
|
+
size: number;
|
|
9
|
+
} | undefined;
|
|
10
|
+
read(buffer: any, offset?: number, length?: number, position?: number): Promise<void>;
|
|
11
|
+
readFile(): Promise<Buffer>;
|
|
12
|
+
stat(): Promise<{
|
|
13
|
+
size: number;
|
|
14
|
+
}>;
|
|
15
|
+
}
|
|
16
|
+
import BufferCache from "./bufferCache";
|