@gmod/tabix 1.5.14 → 1.6.0
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 +9 -5
- package/README.md +182 -35
- package/dist/chunk.js +0 -1
- package/dist/chunk.js.map +1 -1
- package/dist/csi.d.ts +1 -1
- package/dist/csi.js +132 -128
- package/dist/csi.js.map +1 -1
- package/dist/indexFile.js +15 -41
- package/dist/indexFile.js.map +1 -1
- package/dist/tabix-bundle.js +2 -0
- package/dist/tabix-bundle.js.LICENSE.txt +8 -0
- package/dist/tabixIndexedFile.d.ts +49 -25
- package/dist/tabixIndexedFile.js +214 -195
- package/dist/tabixIndexedFile.js.map +1 -1
- package/dist/tbi.js +169 -173
- package/dist/tbi.js.map +1 -1
- package/dist/util.d.ts +7 -6
- package/dist/util.js +9 -19
- package/dist/util.js.map +1 -1
- package/dist/virtualOffset.d.ts +0 -1
- package/dist/virtualOffset.js +0 -13
- package/dist/virtualOffset.js.map +1 -1
- package/esm/chunk.js +0 -1
- package/esm/chunk.js.map +1 -1
- package/esm/csi.d.ts +1 -1
- package/esm/csi.js +4 -4
- package/esm/csi.js.map +1 -1
- package/esm/indexFile.js +1 -1
- package/esm/indexFile.js.map +1 -1
- package/esm/tabixIndexedFile.d.ts +49 -25
- package/esm/tabixIndexedFile.js +134 -90
- package/esm/tabixIndexedFile.js.map +1 -1
- package/esm/tbi.js +6 -5
- package/esm/tbi.js.map +1 -1
- package/esm/util.d.ts +7 -6
- package/esm/util.js +6 -5
- package/esm/util.js.map +1 -1
- package/esm/virtualOffset.d.ts +0 -1
- package/esm/virtualOffset.js +0 -13
- package/esm/virtualOffset.js.map +1 -1
- package/package.json +24 -19
- package/src/chunk.ts +0 -1
- package/src/csi.ts +6 -5
- package/src/indexFile.ts +1 -1
- package/src/tabixIndexedFile.ts +141 -106
- package/src/tbi.ts +7 -6
- package/src/util.ts +7 -6
- package/src/virtualOffset.ts +7 -21
package/dist/tabixIndexedFile.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
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
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
4
|
};
|
|
@@ -20,31 +11,48 @@ const bgzf_filehandle_1 = require("@gmod/bgzf-filehandle");
|
|
|
20
11
|
const util_1 = require("./util");
|
|
21
12
|
const tbi_1 = __importDefault(require("./tbi"));
|
|
22
13
|
const csi_1 = __importDefault(require("./csi"));
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
return
|
|
14
|
+
function isASCII(str) {
|
|
15
|
+
// eslint-disable-next-line no-control-regex
|
|
16
|
+
return /^[\u0000-\u007F]*$/.test(str);
|
|
26
17
|
}
|
|
18
|
+
const decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined;
|
|
27
19
|
class TabixIndexedFile {
|
|
28
20
|
/**
|
|
29
21
|
* @param {object} args
|
|
22
|
+
*
|
|
30
23
|
* @param {string} [args.path]
|
|
24
|
+
*
|
|
31
25
|
* @param {filehandle} [args.filehandle]
|
|
26
|
+
*
|
|
32
27
|
* @param {string} [args.tbiPath]
|
|
28
|
+
*
|
|
33
29
|
* @param {filehandle} [args.tbiFilehandle]
|
|
30
|
+
*
|
|
34
31
|
* @param {string} [args.csiPath]
|
|
32
|
+
*
|
|
35
33
|
* @param {filehandle} [args.csiFilehandle]
|
|
36
|
-
*
|
|
37
|
-
* @param {
|
|
38
|
-
*
|
|
39
|
-
*
|
|
34
|
+
*
|
|
35
|
+
* @param {url} [args.url]
|
|
36
|
+
*
|
|
37
|
+
* @param {csiUrl} [args.csiUrl]
|
|
38
|
+
*
|
|
39
|
+
* @param {tbiUrl} [args.tbiUrl]
|
|
40
|
+
*
|
|
41
|
+
* @param {function} [args.renameRefSeqs] optional function with sig `string
|
|
42
|
+
* => string` to transform reference sequence names for the purpose of
|
|
43
|
+
* indexing and querying. note that the data that is returned is not altered,
|
|
44
|
+
* just the names of the reference sequences that are used for querying.
|
|
40
45
|
*/
|
|
41
|
-
constructor({ path, filehandle, tbiPath, tbiFilehandle, csiPath,
|
|
46
|
+
constructor({ path, filehandle, url, tbiPath, tbiUrl, tbiFilehandle, csiPath, csiUrl, csiFilehandle, renameRefSeqs = n => n, chunkCacheSize = 5 * 2 ** 20, }) {
|
|
42
47
|
if (filehandle) {
|
|
43
48
|
this.filehandle = filehandle;
|
|
44
49
|
}
|
|
45
50
|
else if (path) {
|
|
46
51
|
this.filehandle = new generic_filehandle_1.LocalFile(path);
|
|
47
52
|
}
|
|
53
|
+
else if (url) {
|
|
54
|
+
this.filehandle = new generic_filehandle_1.RemoteFile(url);
|
|
55
|
+
}
|
|
48
56
|
else {
|
|
49
57
|
throw new TypeError('must provide either filehandle or path');
|
|
50
58
|
}
|
|
@@ -78,12 +86,25 @@ class TabixIndexedFile {
|
|
|
78
86
|
renameRefSeqs,
|
|
79
87
|
});
|
|
80
88
|
}
|
|
89
|
+
else if (csiUrl) {
|
|
90
|
+
this.index = new csi_1.default({
|
|
91
|
+
filehandle: new generic_filehandle_1.RemoteFile(csiUrl),
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
else if (tbiUrl) {
|
|
95
|
+
this.index = new tbi_1.default({
|
|
96
|
+
filehandle: new generic_filehandle_1.RemoteFile(tbiUrl),
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
else if (url) {
|
|
100
|
+
this.index = new tbi_1.default({
|
|
101
|
+
filehandle: new generic_filehandle_1.RemoteFile(`${url}.tbi`),
|
|
102
|
+
});
|
|
103
|
+
}
|
|
81
104
|
else {
|
|
82
|
-
throw new TypeError('must provide one of tbiFilehandle, tbiPath, csiFilehandle,
|
|
105
|
+
throw new TypeError('must provide one of tbiFilehandle, tbiPath, csiFilehandle, csiPath, tbiUrl, csiUrl');
|
|
83
106
|
}
|
|
84
|
-
this.chunkSizeLimit = chunkSizeLimit;
|
|
85
107
|
this.renameRefSeq = renameRefSeqs;
|
|
86
|
-
this.yieldTime = yieldTime;
|
|
87
108
|
this.chunkCache = new abortable_promise_cache_1.default({
|
|
88
109
|
cache: new quick_lru_1.default({ maxSize: Math.floor(chunkCacheSize / (1 << 16)) }),
|
|
89
110
|
fill: (args, signal) => this.readChunk(args, { signal }),
|
|
@@ -91,183 +112,170 @@ class TabixIndexedFile {
|
|
|
91
112
|
}
|
|
92
113
|
/**
|
|
93
114
|
* @param refName name of the reference sequence
|
|
115
|
+
*
|
|
94
116
|
* @param start start of the region (in 0-based half-open coordinates)
|
|
117
|
+
*
|
|
95
118
|
* @param end end of the region (in 0-based half-open coordinates)
|
|
96
|
-
*
|
|
97
|
-
* @
|
|
119
|
+
*
|
|
120
|
+
* @param opts callback called for each line in the region. can also pass a
|
|
121
|
+
* object param containing obj.lineCallback, obj.signal, etc
|
|
122
|
+
*
|
|
123
|
+
* @returns promise that is resolved when the whole read is finished,
|
|
124
|
+
* rejected on error
|
|
98
125
|
*/
|
|
99
|
-
getLines(refName, s, e, opts) {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
throw new TypeError('invalid start and end coordinates. start must be less than or equal to end');
|
|
128
|
-
}
|
|
129
|
-
if (start === end) {
|
|
130
|
-
return;
|
|
131
|
-
}
|
|
132
|
-
const chunks = yield this.index.blocksForRange(refName, start, end, options);
|
|
126
|
+
async getLines(refName, s, e, opts) {
|
|
127
|
+
var _a, _b;
|
|
128
|
+
let signal;
|
|
129
|
+
let options = {};
|
|
130
|
+
let callback;
|
|
131
|
+
if (typeof opts === 'function') {
|
|
132
|
+
callback = opts;
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
options = opts;
|
|
136
|
+
callback = opts.lineCallback;
|
|
137
|
+
signal = opts.signal;
|
|
138
|
+
}
|
|
139
|
+
const metadata = await this.index.getMetadata(options);
|
|
140
|
+
(0, util_1.checkAbortSignal)(signal);
|
|
141
|
+
const start = s !== null && s !== void 0 ? s : 0;
|
|
142
|
+
const end = e !== null && e !== void 0 ? e : metadata.maxRefLength;
|
|
143
|
+
if (!(start <= end)) {
|
|
144
|
+
throw new TypeError('invalid start and end coordinates. start must be less than or equal to end');
|
|
145
|
+
}
|
|
146
|
+
if (start === end) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
const chunks = await this.index.blocksForRange(refName, start, end, options);
|
|
150
|
+
(0, util_1.checkAbortSignal)(signal);
|
|
151
|
+
// now go through each chunk and parse and filter the lines out of it
|
|
152
|
+
for (const c of chunks) {
|
|
153
|
+
const { buffer, cpositions, dpositions } = await this.chunkCache.get(c.toString(), c, signal);
|
|
133
154
|
(0, util_1.checkAbortSignal)(signal);
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
155
|
+
let blockStart = 0;
|
|
156
|
+
let pos = 0;
|
|
157
|
+
const str = (_a = decoder === null || decoder === void 0 ? void 0 : decoder.decode(buffer)) !== null && _a !== void 0 ? _a : buffer.toString();
|
|
158
|
+
// fast path, Buffer is just ASCII chars and not gigantor, can be
|
|
159
|
+
// converted to string and processed directly. if it is not ASCII or
|
|
160
|
+
// gigantic (chrome max str len is 512Mb), we have to decode line by line
|
|
161
|
+
const strIsASCII = buffer.length < 500000000 && isASCII(str);
|
|
162
|
+
while (blockStart < str.length) {
|
|
163
|
+
let line;
|
|
164
|
+
let n;
|
|
165
|
+
if (strIsASCII) {
|
|
166
|
+
n = str.indexOf('\n', blockStart);
|
|
167
|
+
if (n === -1) {
|
|
168
|
+
break;
|
|
169
|
+
}
|
|
170
|
+
line = str.slice(blockStart, n);
|
|
140
171
|
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
let last = Date.now();
|
|
144
|
-
for (const c of chunks) {
|
|
145
|
-
let previousStartCoordinate;
|
|
146
|
-
const { buffer, cpositions, dpositions } = yield this.chunkCache.get(c.toString(), c, signal);
|
|
147
|
-
(0, util_1.checkAbortSignal)(signal);
|
|
148
|
-
let blockStart = 0;
|
|
149
|
-
let pos = 0;
|
|
150
|
-
while (blockStart < buffer.length) {
|
|
151
|
-
const n = buffer.indexOf('\n', blockStart);
|
|
172
|
+
else {
|
|
173
|
+
n = buffer.indexOf('\n', blockStart);
|
|
152
174
|
if (n === -1) {
|
|
153
175
|
break;
|
|
154
176
|
}
|
|
155
177
|
const b = buffer.slice(blockStart, n);
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
// we must be at the end of the relevant data and we can stop
|
|
189
|
-
// processing data now
|
|
190
|
-
return;
|
|
191
|
-
}
|
|
192
|
-
// yield if we have emitted beyond the yield limit
|
|
193
|
-
if (this.yieldTime && last - Date.now() > this.yieldTime) {
|
|
194
|
-
last = Date.now();
|
|
195
|
-
(0, util_1.checkAbortSignal)(signal);
|
|
196
|
-
yield timeout(1);
|
|
197
|
-
}
|
|
198
|
-
blockStart = n + 1;
|
|
178
|
+
line = (_b = decoder === null || decoder === void 0 ? void 0 : decoder.decode(b)) !== null && _b !== void 0 ? _b : b.toString();
|
|
179
|
+
}
|
|
180
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
181
|
+
if (dpositions) {
|
|
182
|
+
while (blockStart + c.minv.dataPosition >= dpositions[pos++]) { }
|
|
183
|
+
pos--;
|
|
184
|
+
}
|
|
185
|
+
// filter the line for whether it is within the requested range
|
|
186
|
+
const { startCoordinate, overlaps } = this.checkLine(metadata, refName, start, end, line);
|
|
187
|
+
if (overlaps) {
|
|
188
|
+
callback(line,
|
|
189
|
+
// cpositions[pos] refers to actual file offset of a bgzip block
|
|
190
|
+
// boundaries
|
|
191
|
+
//
|
|
192
|
+
// we multiply by (1 <<8) in order to make sure each block has a
|
|
193
|
+
// "unique" address space so that data in that block could never
|
|
194
|
+
// overlap
|
|
195
|
+
//
|
|
196
|
+
// then the blockStart-dpositions is an uncompressed file offset
|
|
197
|
+
// from that bgzip block boundary, and since the cpositions are
|
|
198
|
+
// multiplied by (1 << 8) these uncompressed offsets get a unique
|
|
199
|
+
// space
|
|
200
|
+
cpositions[pos] * (1 << 8) +
|
|
201
|
+
(blockStart - dpositions[pos]) +
|
|
202
|
+
c.minv.dataPosition +
|
|
203
|
+
1);
|
|
204
|
+
}
|
|
205
|
+
else if (startCoordinate !== undefined && startCoordinate >= end) {
|
|
206
|
+
// the lines were overlapping the region, but now have stopped, so we
|
|
207
|
+
// must be at the end of the relevant data and we can stop processing
|
|
208
|
+
// data now
|
|
209
|
+
return;
|
|
199
210
|
}
|
|
211
|
+
blockStart = n + 1;
|
|
200
212
|
}
|
|
201
|
-
}
|
|
213
|
+
}
|
|
202
214
|
}
|
|
203
|
-
getMetadata() {
|
|
204
|
-
return
|
|
205
|
-
return this.index.getMetadata(opts);
|
|
206
|
-
});
|
|
215
|
+
async getMetadata(opts = {}) {
|
|
216
|
+
return this.index.getMetadata(opts);
|
|
207
217
|
}
|
|
208
218
|
/**
|
|
209
|
-
* get a buffer containing the "header" region of
|
|
210
|
-
*
|
|
211
|
-
* non-meta line
|
|
219
|
+
* get a buffer containing the "header" region of the file, which are the
|
|
220
|
+
* bytes up to the first non-meta line
|
|
212
221
|
*/
|
|
213
|
-
getHeaderBuffer() {
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
}
|
|
222
|
+
async getHeaderBuffer(opts = {}) {
|
|
223
|
+
const { firstDataLine, metaChar, maxBlockSize } = await this.getMetadata(opts);
|
|
224
|
+
(0, util_1.checkAbortSignal)(opts.signal);
|
|
225
|
+
// eslint-disable-next-line @typescript-eslint/restrict-plus-operands
|
|
226
|
+
const maxFetch = ((firstDataLine === null || firstDataLine === void 0 ? void 0 : firstDataLine.blockPosition) || 0) + maxBlockSize;
|
|
227
|
+
// TODO: what if we don't have a firstDataLine, and the header
|
|
228
|
+
// actually takes up more than one block? this case is not covered here
|
|
229
|
+
const buf = await this._readRegion(0, maxFetch, opts);
|
|
230
|
+
const bytes = await (0, bgzf_filehandle_1.unzip)(buf);
|
|
231
|
+
// trim off lines after the last non-meta line
|
|
232
|
+
if (metaChar) {
|
|
233
|
+
// trim backward from the end
|
|
234
|
+
let lastNewline = -1;
|
|
235
|
+
const newlineByte = '\n'.charCodeAt(0);
|
|
236
|
+
const metaByte = metaChar.charCodeAt(0);
|
|
237
|
+
for (let i = 0; i < bytes.length; i += 1) {
|
|
238
|
+
if (i === lastNewline + 1 && bytes[i] !== metaByte) {
|
|
239
|
+
break;
|
|
240
|
+
}
|
|
241
|
+
if (bytes[i] === newlineByte) {
|
|
242
|
+
lastNewline = i;
|
|
235
243
|
}
|
|
236
|
-
return bytes.slice(0, lastNewline + 1);
|
|
237
244
|
}
|
|
238
|
-
return bytes;
|
|
239
|
-
}
|
|
245
|
+
return bytes.subarray(0, lastNewline + 1);
|
|
246
|
+
}
|
|
247
|
+
return bytes;
|
|
240
248
|
}
|
|
241
249
|
/**
|
|
242
|
-
* get a string containing the "header" region of the
|
|
243
|
-
*
|
|
250
|
+
* get a string containing the "header" region of the file, is the portion up
|
|
251
|
+
* to the first non-meta line
|
|
244
252
|
*
|
|
245
253
|
* @returns {Promise} for a string
|
|
246
254
|
*/
|
|
247
|
-
getHeader() {
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
return bytes.toString('utf8');
|
|
251
|
-
});
|
|
255
|
+
async getHeader(opts = {}) {
|
|
256
|
+
const bytes = await this.getHeaderBuffer(opts);
|
|
257
|
+
return bytes.toString('utf8');
|
|
252
258
|
}
|
|
253
259
|
/**
|
|
254
|
-
* get an array of reference sequence names, in the order in which
|
|
255
|
-
*
|
|
256
|
-
* to these names.
|
|
260
|
+
* get an array of reference sequence names, in the order in which they occur
|
|
261
|
+
* in the file. reference sequence renaming is not applied to these names.
|
|
257
262
|
*/
|
|
258
|
-
getReferenceSequenceNames() {
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
return metadata.refIdToName;
|
|
262
|
-
});
|
|
263
|
+
async getReferenceSequenceNames(opts = {}) {
|
|
264
|
+
const metadata = await this.getMetadata(opts);
|
|
265
|
+
return metadata.refIdToName;
|
|
263
266
|
}
|
|
264
267
|
/**
|
|
265
|
-
* @param {object} metadata metadata object from the parsed index,
|
|
266
|
-
*
|
|
268
|
+
* @param {object} metadata metadata object from the parsed index, containing
|
|
269
|
+
* columnNumbers, metaChar, and format
|
|
270
|
+
*
|
|
267
271
|
* @param {string} regionRefName
|
|
272
|
+
*
|
|
268
273
|
* @param {number} regionStart region start coordinate (0-based-half-open)
|
|
274
|
+
*
|
|
269
275
|
* @param {number} regionEnd region end coordinate (0-based-half-open)
|
|
276
|
+
*
|
|
270
277
|
* @param {array[string]} line
|
|
278
|
+
*
|
|
271
279
|
* @returns {object} like `{startCoordinate, overlaps}`. overlaps is boolean,
|
|
272
280
|
* true if line is a data line that overlaps the given region
|
|
273
281
|
*/
|
|
@@ -292,19 +300,22 @@ class TabixIndexedFile {
|
|
|
292
300
|
end = 8;
|
|
293
301
|
}
|
|
294
302
|
const maxColumn = Math.max(ref, start, end);
|
|
295
|
-
// this code is kind of complex, but it is fairly fast.
|
|
296
|
-
//
|
|
297
|
-
//
|
|
303
|
+
// this code is kind of complex, but it is fairly fast. basically, we want
|
|
304
|
+
// to avoid doing a split, because if the lines are really long that could
|
|
305
|
+
// lead to us allocating a bunch of extra memory, which is slow
|
|
298
306
|
let currentColumnNumber = 1; // cols are numbered starting at 1 in the index metadata
|
|
299
307
|
let currentColumnStart = 0;
|
|
300
308
|
let refSeq = '';
|
|
301
309
|
let startCoordinate = -Infinity;
|
|
302
|
-
|
|
303
|
-
|
|
310
|
+
const l = line.length;
|
|
311
|
+
for (let i = 0; i < l + 1; i++) {
|
|
312
|
+
if (line[i] === '\t' || i === l) {
|
|
304
313
|
if (currentColumnNumber === ref) {
|
|
305
314
|
if (this.renameRefSeq(line.slice(currentColumnStart, i)) !==
|
|
306
315
|
regionRefName) {
|
|
307
|
-
return {
|
|
316
|
+
return {
|
|
317
|
+
overlaps: false,
|
|
318
|
+
};
|
|
308
319
|
}
|
|
309
320
|
}
|
|
310
321
|
else if (currentColumnNumber === start) {
|
|
@@ -314,12 +325,18 @@ class TabixIndexedFile {
|
|
|
314
325
|
startCoordinate -= 1;
|
|
315
326
|
}
|
|
316
327
|
if (startCoordinate >= regionEnd) {
|
|
317
|
-
return {
|
|
328
|
+
return {
|
|
329
|
+
startCoordinate,
|
|
330
|
+
overlaps: false,
|
|
331
|
+
};
|
|
318
332
|
}
|
|
319
333
|
if (end === 0 || end === start) {
|
|
320
334
|
// if we have no end, we assume the feature is 1 bp long
|
|
321
335
|
if (startCoordinate + 1 <= regionStart) {
|
|
322
|
-
return {
|
|
336
|
+
return {
|
|
337
|
+
startCoordinate,
|
|
338
|
+
overlaps: false,
|
|
339
|
+
};
|
|
323
340
|
}
|
|
324
341
|
}
|
|
325
342
|
}
|
|
@@ -330,9 +347,11 @@ class TabixIndexedFile {
|
|
|
330
347
|
// this will never match if there is no end column
|
|
331
348
|
const endCoordinate = format === 'VCF'
|
|
332
349
|
? this._getVcfEnd(startCoordinate, refSeq, line.slice(currentColumnStart, i))
|
|
333
|
-
: parseInt(line.slice(currentColumnStart, i), 10);
|
|
350
|
+
: Number.parseInt(line.slice(currentColumnStart, i), 10);
|
|
334
351
|
if (endCoordinate <= regionStart) {
|
|
335
|
-
return {
|
|
352
|
+
return {
|
|
353
|
+
overlaps: false,
|
|
354
|
+
};
|
|
336
355
|
}
|
|
337
356
|
}
|
|
338
357
|
currentColumnStart = i + 1;
|
|
@@ -342,7 +361,10 @@ class TabixIndexedFile {
|
|
|
342
361
|
}
|
|
343
362
|
}
|
|
344
363
|
}
|
|
345
|
-
return {
|
|
364
|
+
return {
|
|
365
|
+
startCoordinate,
|
|
366
|
+
overlaps: true,
|
|
367
|
+
};
|
|
346
368
|
}
|
|
347
369
|
_getVcfEnd(startCoordinate, refSeq, info) {
|
|
348
370
|
let endCoordinate = startCoordinate + refSeq.length;
|
|
@@ -372,33 +394,30 @@ class TabixIndexedFile {
|
|
|
372
394
|
return endCoordinate;
|
|
373
395
|
}
|
|
374
396
|
/**
|
|
375
|
-
* return the approximate number of data lines in the given reference
|
|
397
|
+
* return the approximate number of data lines in the given reference
|
|
398
|
+
* sequence
|
|
399
|
+
*
|
|
376
400
|
* @param refSeq reference sequence name
|
|
401
|
+
*
|
|
377
402
|
* @returns number of data lines present on that reference sequence
|
|
378
403
|
*/
|
|
379
|
-
lineCount(
|
|
380
|
-
return
|
|
381
|
-
return this.index.lineCount(refName, opts);
|
|
382
|
-
});
|
|
404
|
+
async lineCount(refName, opts = {}) {
|
|
405
|
+
return this.index.lineCount(refName, opts);
|
|
383
406
|
}
|
|
384
|
-
_readRegion(
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
return buffer.slice(0, bytesRead);
|
|
389
|
-
});
|
|
407
|
+
async _readRegion(pos, size, opts = {}) {
|
|
408
|
+
const b = buffer_1.Buffer.alloc(size);
|
|
409
|
+
const { bytesRead, buffer } = await this.filehandle.read(b, 0, size, pos, opts);
|
|
410
|
+
return buffer.subarray(0, bytesRead);
|
|
390
411
|
}
|
|
391
412
|
/**
|
|
392
413
|
* read and uncompress the data in a chunk (composed of one or more
|
|
393
414
|
* contiguous bgzip blocks) of the file
|
|
394
415
|
*/
|
|
395
|
-
readChunk(
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
return (0, bgzf_filehandle_1.unzipChunkSlice)(data, c);
|
|
401
|
-
});
|
|
416
|
+
async readChunk(c, opts = {}) {
|
|
417
|
+
// fetch the uncompressed data, uncompress carefully a block at a time, and
|
|
418
|
+
// stop when done
|
|
419
|
+
const data = await this._readRegion(c.minv.blockPosition, c.fetchedSize(), opts);
|
|
420
|
+
return (0, bgzf_filehandle_1.unzipChunkSlice)(data, c);
|
|
402
421
|
}
|
|
403
422
|
}
|
|
404
423
|
exports.default = TabixIndexedFile;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabixIndexedFile.js","sourceRoot":"","sources":["../src/tabixIndexedFile.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,4FAAiE;AACjE,0DAA2B;AAC3B,mCAA+B;AAC/B,2DAAiE;AACjE,2DAA8D;AAC9D,iCAAyC;AAIzC,gDAAuB;AACvB,gDAAuB;AAIvB,MAAM,OAAO,GACX,OAAO,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAc1E,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;AAC1D,CAAC;AACD,MAAqB,gBAAgB;IAQnC;;;;;;;;;;;;OAYG;IACH,YAAY,EACV,IAAI,EACJ,UAAU,EACV,OAAO,EACP,aAAa,EACb,OAAO,EACP,aAAa,EACb,SAAS,GAAG,GAAG,EACf,cAAc,GAAG,QAAQ,EACzB,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EACtB,cAAc,GAAG,CAAC,GAAG,SAAA,CAAC,EAAI,EAAE,CAAA,GAY7B;QACC,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC9B,CAAC;aAAM,IAAI,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,UAAU,GAAG,IAAI,8BAAS,CAAC,IAAI,CAAC,CAAA;QACvC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,SAAS,CAAC,wCAAwC,CAAC,CAAA;QAC/D,CAAC;QAED,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,GAAG,IAAI,aAAG,CAAC;gBACnB,UAAU,EAAE,aAAa;gBACzB,aAAa;aACd,CAAC,CAAA;QACJ,CAAC;aAAM,IAAI,aAAa,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,IAAI,aAAG,CAAC;gBACnB,UAAU,EAAE,aAAa;gBACzB,aAAa;aACd,CAAC,CAAA;QACJ,CAAC;aAAM,IAAI,OAAO,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,GAAG,IAAI,aAAG,CAAC;gBACnB,UAAU,EAAE,IAAI,8BAAS,CAAC,OAAO,CAAC;gBAClC,aAAa;aACd,CAAC,CAAA;QACJ,CAAC;aAAM,IAAI,OAAO,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,GAAG,IAAI,aAAG,CAAC;gBACnB,UAAU,EAAE,IAAI,8BAAS,CAAC,OAAO,CAAC;gBAClC,aAAa;aACd,CAAC,CAAA;QACJ,CAAC;aAAM,IAAI,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,GAAG,IAAI,aAAG,CAAC;gBACnB,UAAU,EAAE,IAAI,8BAAS,CAAC,GAAG,IAAI,MAAM,CAAC;gBACxC,aAAa;aACd,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,SAAS,CACjB,uEAAuE,CACxE,CAAA;QACH,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,CAAC,YAAY,GAAG,aAAa,CAAA;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,iCAAqB,CAAmB;YAC5D,KAAK,EAAE,IAAI,mBAAG,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YACnE,IAAI,EAAE,CAAC,IAAW,EAAE,MAAoB,EAAE,EAAE,CAC1C,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC;SACnC,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;OAMG;IACG,QAAQ,CACZ,OAAe,EACf,CAAqB,EACrB,CAAqB,EACrB,IAAqC;;;YAErC,IAAI,MAA+B,CAAA;YACnC,IAAI,OAAO,GAAY,EAAE,CAAA;YACzB,IAAI,QAAoD,CAAA;YACxD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAA;YACvD,CAAC;YACD,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC/B,QAAQ,GAAG,IAAI,CAAA;YACjB,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,IAAI,CAAA;gBACd,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAA;gBAC5B,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;YACtB,CAAC;YACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,IAAI,SAAS,CAAC,wCAAwC,CAAC,CAAA;YAC/D,CAAC;YACD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAA;YACvD,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;YACtD,IAAA,uBAAgB,EAAC,MAAM,CAAC,CAAA;YACxB,MAAM,KAAK,GAAG,CAAC,aAAD,CAAC,cAAD,CAAC,GAAI,CAAC,CAAA;YACpB,MAAM,GAAG,GAAG,CAAC,aAAD,CAAC,cAAD,CAAC,GAAI,QAAQ,CAAC,YAAY,CAAA;YACtC,IAAI,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,IAAI,SAAS,CACjB,4EAA4E,CAC7E,CAAA;YACH,CAAC;YACD,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;gBAClB,OAAM;YACR,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;YAC5E,IAAA,uBAAgB,EAAC,MAAM,CAAC,CAAA;YAExB,6DAA6D;YAC7D,mCAAmC;YACnC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;gBAChC,IAAI,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;oBAC/B,MAAM,IAAI,KAAK,CACb,6BAA6B,IAAI,CAAC,cAAc,EAAE,oCAAoC,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,GAAG,CAC9H,CAAA;gBACH,CAAC;YACH,CAAC;YAED,qEAAqE;YACrE,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACrB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,IAAI,uBAA2C,CAAA;gBAC/C,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAClE,CAAC,CAAC,QAAQ,EAAE,EACZ,CAAC,EACD,MAAM,CACP,CAAA;gBAED,IAAA,uBAAgB,EAAC,MAAM,CAAC,CAAA;gBACxB,IAAI,UAAU,GAAG,CAAC,CAAA;gBAClB,IAAI,GAAG,GAAG,CAAC,CAAA;gBACX,OAAO,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;oBAC1C,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;wBACb,MAAK;oBACP,CAAC;oBACD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;oBACrC,MAAM,IAAI,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAC,CAAC,CAAC,mCAAI,CAAC,CAAC,QAAQ,EAAE,CAAA;oBAE/C,IAAI,UAAU,EAAE,CAAC;wBACf,OAAO,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA,CAAC;wBAChE,GAAG,EAAE,CAAA;oBACP,CAAC;oBAED,+DAA+D;oBAC/D,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAClD,QAAQ,EACR,OAAO,EACP,KAAK,EACL,GAAG,EACH,IAAI,CACL,CAAA;oBAED,sEAAsE;oBACtE,sBAAsB;oBACtB,IACE,uBAAuB,KAAK,SAAS;wBACrC,eAAe,KAAK,SAAS;wBAC7B,uBAAuB,GAAG,eAAe,EACzC,CAAC;wBACD,MAAM,IAAI,KAAK,CACb,yCAAyC,uBAAuB,MAAM,eAAe,wCAAwC,CAC9H,CAAA;oBACH,CAAC;oBACD,uBAAuB,GAAG,eAAe,CAAA;oBAEzC,IAAI,QAAQ,EAAE,CAAC;wBACb,QAAQ,CACN,IAAI,CAAC,IAAI,EAAE;wBACX,2EAA2E;wBAC3E,EAAE;wBACF,yEAAyE;wBACzE,+DAA+D;wBAC/D,EAAE;wBACF,qEAAqE;wBACrE,wEAAwE;wBACxE,yDAAyD;wBACzD,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;4BACxB,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;4BAC9B,CAAC,CAAC,IAAI,CAAC,YAAY;4BACnB,CAAC,CACJ,CAAA;oBACH,CAAC;yBAAM,IAAI,eAAe,KAAK,SAAS,IAAI,eAAe,IAAI,GAAG,EAAE,CAAC;wBACnE,kEAAkE;wBAClE,6DAA6D;wBAC7D,sBAAsB;wBACtB,OAAM;oBACR,CAAC;oBAED,kDAAkD;oBAClD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;wBACzD,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;wBACjB,IAAA,uBAAgB,EAAC,MAAM,CAAC,CAAA;wBACxB,MAAM,OAAO,CAAC,CAAC,CAAC,CAAA;oBAClB,CAAC;oBACD,UAAU,GAAG,CAAC,GAAG,CAAC,CAAA;gBACpB,CAAC;YACH,CAAC;QACH,CAAC;KAAA;IAEK,WAAW;6DAAC,OAAgB,EAAE;YAClC,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QACrC,CAAC;KAAA;IAED;;;;OAIG;IACG,eAAe;6DAAC,OAAgB,EAAE;YACtC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,GAC7C,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;YAC9B,IAAA,uBAAgB,EAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC7B,MAAM,QAAQ,GAAG,CAAC,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,aAAa,KAAI,CAAC,CAAC,GAAG,YAAY,CAAA;YACnE,8DAA8D;YAC9D,uEAAuE;YAEvE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;YACrD,MAAM,KAAK,GAAG,MAAM,IAAA,uBAAK,EAAC,GAAG,CAAC,CAAA;YAE9B,8CAA8C;YAC9C,IAAI,QAAQ,EAAE,CAAC;gBACb,6BAA6B;gBAC7B,IAAI,WAAW,GAAG,CAAC,CAAC,CAAA;gBACpB,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;gBACtC,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;gBACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBACzC,IAAI,CAAC,KAAK,WAAW,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;wBACnD,MAAK;oBACP,CAAC;oBACD,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC;wBAC7B,WAAW,GAAG,CAAC,CAAA;oBACjB,CAAC;gBACH,CAAC;gBACD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,CAAA;YACxC,CAAC;YACD,OAAO,KAAK,CAAA;QACd,CAAC;KAAA;IAED;;;;;OAKG;IACG,SAAS;6DAAC,OAAgB,EAAE;YAChC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;YAC9C,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC/B,CAAC;KAAA;IAED;;;;OAIG;IACG,yBAAyB;6DAAC,OAAgB,EAAE;YAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;YAC7C,OAAO,QAAQ,CAAC,WAAW,CAAA;QAC7B,CAAC;KAAA;IAED;;;;;;;;;OASG;IACH,SAAS,CACP,QAAmB,EACnB,aAAqB,EACrB,WAAmB,EACnB,SAAiB,EACjB,IAAY;QAEZ,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAA;QACpE,kBAAkB;QAClB,IAAI,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1C,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;QAC5B,CAAC;QAED,uDAAuD;QACvD,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,aAAa,CAAA;QACvC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,CAAC,CAAA;QACT,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,CAAC,CAAA;QACX,CAAC;QACD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,CAAC,CAAA;QACT,CAAC;QACD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,GAAG,GAAG,CAAC,CAAA;QACT,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;QAE3C,uDAAuD;QACvD,kFAAkF;QAClF,0EAA0E;QAE1E,IAAI,mBAAmB,GAAG,CAAC,CAAA,CAAC,wDAAwD;QACpF,IAAI,kBAAkB,GAAG,CAAC,CAAA;QAC1B,IAAI,MAAM,GAAG,EAAE,CAAA;QACf,IAAI,eAAe,GAAG,CAAC,QAAQ,CAAA;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5C,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC1C,IAAI,mBAAmB,KAAK,GAAG,EAAE,CAAC;oBAChC,IACE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;wBACpD,aAAa,EACb,CAAC;wBACD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;oBAC5B,CAAC;gBACH,CAAC;qBAAM,IAAI,mBAAmB,KAAK,KAAK,EAAE,CAAC;oBACzC,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;oBACjE,kCAAkC;oBAClC,IAAI,cAAc,KAAK,gBAAgB,EAAE,CAAC;wBACxC,eAAe,IAAI,CAAC,CAAA;oBACtB,CAAC;oBACD,IAAI,eAAe,IAAI,SAAS,EAAE,CAAC;wBACjC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;oBAC7C,CAAC;oBACD,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;wBAC/B,wDAAwD;wBACxD,IAAI,eAAe,GAAG,CAAC,IAAI,WAAW,EAAE,CAAC;4BACvC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;wBAC7C,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,IAAI,MAAM,KAAK,KAAK,IAAI,mBAAmB,KAAK,CAAC,EAAE,CAAC;oBACzD,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAA;gBAC5C,CAAC;qBAAM,IAAI,mBAAmB,KAAK,GAAG,EAAE,CAAC;oBACvC,kDAAkD;oBAClD,MAAM,aAAa,GACjB,MAAM,KAAK,KAAK;wBACd,CAAC,CAAC,IAAI,CAAC,UAAU,CACb,eAAe,EACf,MAAM,EACN,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAClC;wBACH,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;oBACrD,IAAI,aAAa,IAAI,WAAW,EAAE,CAAC;wBACjC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;oBAC5B,CAAC;gBACH,CAAC;gBACD,kBAAkB,GAAG,CAAC,GAAG,CAAC,CAAA;gBAC1B,mBAAmB,IAAI,CAAC,CAAA;gBACxB,IAAI,mBAAmB,GAAG,SAAS,EAAE,CAAC;oBACpC,MAAK;gBACP,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;IAC5C,CAAC;IAED,UAAU,CAAC,eAAuB,EAAE,MAAc,EAAE,IAAS;QAC3D,IAAI,aAAa,GAAG,eAAe,GAAG,MAAM,CAAC,MAAM,CAAA;QACnD,2EAA2E;QAC3E,aAAa;QACb,EAAE;QACF,0EAA0E;QAC1E,qDAAqD;QACrD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;QACzC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,QAAQ,GAAG,GAAG,CAAA;YAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxC,IAAI,QAAQ,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;oBACxD,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;oBACnC,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;wBACpB,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAA;oBACxB,CAAC;oBACD,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAA;oBACzD,MAAK;gBACP,CAAC;gBACD,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YACpB,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,EAAE,CAAC;YACjB,OAAO,eAAe,GAAG,CAAC,CAAA;QAC5B,CAAC;QACD,OAAO,aAAa,CAAA;IACtB,CAAC;IAED;;;;OAIG;IACG,SAAS;6DAAC,OAAe,EAAE,OAAgB,EAAE;YACjD,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAC5C,CAAC;KAAA;IAEK,WAAW;6DAAC,GAAW,EAAE,IAAY,EAAE,OAAgB,EAAE;YAC7D,MAAM,CAAC,GAAG,eAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAC5B,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CACtD,CAAC,EACD,CAAC,EACD,IAAI,EACJ,GAAG,EACH,IAAI,CACL,CAAA;YAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;QACnC,CAAC;KAAA;IAED;;;OAGG;IACG,SAAS;6DAAC,CAAQ,EAAE,OAAgB,EAAE;YAC1C,uEAAuE;YACvE,qBAAqB;YAErB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CACjC,CAAC,CAAC,IAAI,CAAC,aAAa,EACpB,CAAC,CAAC,WAAW,EAAE,EACf,IAAI,CACL,CAAA;YACD,OAAO,IAAA,iCAAe,EAAC,IAAI,EAAE,CAAC,CAAC,CAAA;QACjC,CAAC;KAAA;CACF;AAxcD,mCAwcC"}
|
|
1
|
+
{"version":3,"file":"tabixIndexedFile.js","sourceRoot":"","sources":["../src/tabixIndexedFile.ts"],"names":[],"mappings":"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"}
|