@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/tbi.js
CHANGED
|
@@ -15,22 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
return
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
34
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
37
|
};
|
|
@@ -44,7 +45,8 @@ const indexFile_1 = __importDefault(require("./indexFile"));
|
|
|
44
45
|
const TBI_MAGIC = 21578324; // TBI\1
|
|
45
46
|
const TAD_LIDX_SHIFT = 14;
|
|
46
47
|
/**
|
|
47
|
-
* calculate the list of bins that may overlap with region [beg,end)
|
|
48
|
+
* calculate the list of bins that may overlap with region [beg,end)
|
|
49
|
+
* (zero-based half-open)
|
|
48
50
|
*/
|
|
49
51
|
function reg2bins(beg, end) {
|
|
50
52
|
beg += 1; // < convert to 1-based closed
|
|
@@ -59,125 +61,121 @@ function reg2bins(beg, end) {
|
|
|
59
61
|
];
|
|
60
62
|
}
|
|
61
63
|
class TabixIndex extends indexFile_1.default {
|
|
62
|
-
lineCount(
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
return -1;
|
|
67
|
-
}
|
|
68
|
-
const refId = indexData.refNameToId[refName];
|
|
69
|
-
const idx = indexData.indices[refId];
|
|
70
|
-
if (!idx) {
|
|
71
|
-
return -1;
|
|
72
|
-
}
|
|
73
|
-
const { stats } = indexData.indices[refId];
|
|
74
|
-
if (stats) {
|
|
75
|
-
return stats.lineCount;
|
|
76
|
-
}
|
|
64
|
+
async lineCount(refName, opts = {}) {
|
|
65
|
+
const indexData = await this.parse(opts);
|
|
66
|
+
const refId = indexData.refNameToId[refName];
|
|
67
|
+
if (refId === undefined) {
|
|
77
68
|
return -1;
|
|
78
|
-
}
|
|
69
|
+
}
|
|
70
|
+
const idx = indexData.indices[refId];
|
|
71
|
+
if (!idx) {
|
|
72
|
+
return -1;
|
|
73
|
+
}
|
|
74
|
+
const { stats } = indexData.indices[refId];
|
|
75
|
+
if (stats) {
|
|
76
|
+
return stats.lineCount;
|
|
77
|
+
}
|
|
78
|
+
return -1;
|
|
79
79
|
}
|
|
80
80
|
// fetch and parse the index
|
|
81
|
-
_parse() {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
81
|
+
async _parse(opts = {}) {
|
|
82
|
+
const buf = await this.filehandle.readFile(opts);
|
|
83
|
+
const bytes = await (0, bgzf_filehandle_1.unzip)(buf);
|
|
84
|
+
(0, util_1.checkAbortSignal)(opts.signal);
|
|
85
|
+
// check TBI magic numbers
|
|
86
|
+
if (bytes.readUInt32LE(0) !== TBI_MAGIC /* "TBI\1" */) {
|
|
87
|
+
throw new Error('Not a TBI file');
|
|
88
|
+
// TODO: do we need to support big-endian TBI files?
|
|
89
|
+
}
|
|
90
|
+
// number of reference sequences in the index
|
|
91
|
+
const refCount = bytes.readInt32LE(4);
|
|
92
|
+
const formatFlags = bytes.readInt32LE(8);
|
|
93
|
+
const coordinateType = formatFlags & 0x10000 ? 'zero-based-half-open' : '1-based-closed';
|
|
94
|
+
const formatOpts = {
|
|
95
|
+
0: 'generic',
|
|
96
|
+
1: 'SAM',
|
|
97
|
+
2: 'VCF',
|
|
98
|
+
};
|
|
99
|
+
const format = formatOpts[formatFlags & 0xf];
|
|
100
|
+
if (!format) {
|
|
101
|
+
throw new Error(`invalid Tabix preset format flags ${formatFlags}`);
|
|
102
|
+
}
|
|
103
|
+
const columnNumbers = {
|
|
104
|
+
ref: bytes.readInt32LE(12),
|
|
105
|
+
start: bytes.readInt32LE(16),
|
|
106
|
+
end: bytes.readInt32LE(20),
|
|
107
|
+
};
|
|
108
|
+
const metaValue = bytes.readInt32LE(24);
|
|
109
|
+
const depth = 5;
|
|
110
|
+
const maxBinNumber = ((1 << ((depth + 1) * 3)) - 1) / 7;
|
|
111
|
+
const maxRefLength = 2 ** (14 + depth * 3);
|
|
112
|
+
const metaChar = metaValue ? String.fromCharCode(metaValue) : null;
|
|
113
|
+
const skipLines = bytes.readInt32LE(28);
|
|
114
|
+
// read sequence dictionary
|
|
115
|
+
const nameSectionLength = bytes.readInt32LE(32);
|
|
116
|
+
const { refNameToId, refIdToName } = this._parseNameBytes(bytes.slice(36, 36 + nameSectionLength));
|
|
117
|
+
// read the indexes for each reference sequence
|
|
118
|
+
let currOffset = 36 + nameSectionLength;
|
|
119
|
+
let firstDataLine;
|
|
120
|
+
const indices = new Array(refCount).fill(0).map(() => {
|
|
121
|
+
// the binning index
|
|
122
|
+
const binCount = bytes.readInt32LE(currOffset);
|
|
123
|
+
currOffset += 4;
|
|
124
|
+
const binIndex = {};
|
|
125
|
+
let stats;
|
|
126
|
+
for (let j = 0; j < binCount; j += 1) {
|
|
127
|
+
const bin = bytes.readUInt32LE(currOffset);
|
|
124
128
|
currOffset += 4;
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
+
if (bin > maxBinNumber + 1) {
|
|
130
|
+
throw new Error('tabix index contains too many bins, please use a CSI index');
|
|
131
|
+
}
|
|
132
|
+
else if (bin === maxBinNumber + 1) {
|
|
133
|
+
const chunkCount = bytes.readInt32LE(currOffset);
|
|
129
134
|
currOffset += 4;
|
|
130
|
-
if (
|
|
131
|
-
|
|
132
|
-
}
|
|
133
|
-
else if (bin === maxBinNumber + 1) {
|
|
134
|
-
const chunkCount = bytes.readInt32LE(currOffset);
|
|
135
|
-
currOffset += 4;
|
|
136
|
-
if (chunkCount === 2) {
|
|
137
|
-
stats = this.parsePseudoBin(bytes, currOffset);
|
|
138
|
-
}
|
|
139
|
-
currOffset += 16 * chunkCount;
|
|
140
|
-
}
|
|
141
|
-
else {
|
|
142
|
-
const chunkCount = bytes.readInt32LE(currOffset);
|
|
143
|
-
currOffset += 4;
|
|
144
|
-
const chunks = new Array(chunkCount);
|
|
145
|
-
for (let k = 0; k < chunkCount; k += 1) {
|
|
146
|
-
const u = (0, virtualOffset_1.fromBytes)(bytes, currOffset);
|
|
147
|
-
const v = (0, virtualOffset_1.fromBytes)(bytes, currOffset + 8);
|
|
148
|
-
currOffset += 16;
|
|
149
|
-
firstDataLine = this._findFirstData(firstDataLine, u);
|
|
150
|
-
chunks[k] = new chunk_1.default(u, v, bin);
|
|
151
|
-
}
|
|
152
|
-
binIndex[bin] = chunks;
|
|
135
|
+
if (chunkCount === 2) {
|
|
136
|
+
stats = this.parsePseudoBin(bytes, currOffset);
|
|
153
137
|
}
|
|
138
|
+
currOffset += 16 * chunkCount;
|
|
154
139
|
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
140
|
+
else {
|
|
141
|
+
const chunkCount = bytes.readInt32LE(currOffset);
|
|
142
|
+
currOffset += 4;
|
|
143
|
+
const chunks = new Array(chunkCount);
|
|
144
|
+
for (let k = 0; k < chunkCount; k += 1) {
|
|
145
|
+
const u = (0, virtualOffset_1.fromBytes)(bytes, currOffset);
|
|
146
|
+
const v = (0, virtualOffset_1.fromBytes)(bytes, currOffset + 8);
|
|
147
|
+
currOffset += 16;
|
|
148
|
+
firstDataLine = this._findFirstData(firstDataLine, u);
|
|
149
|
+
chunks[k] = new chunk_1.default(u, v, bin);
|
|
150
|
+
}
|
|
151
|
+
binIndex[bin] = chunks;
|
|
163
152
|
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
firstDataLine,
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
format,
|
|
176
|
-
refIdToName,
|
|
177
|
-
refNameToId,
|
|
178
|
-
maxBlockSize: 1 << 16,
|
|
179
|
-
};
|
|
153
|
+
}
|
|
154
|
+
// the linear index
|
|
155
|
+
const linearCount = bytes.readInt32LE(currOffset);
|
|
156
|
+
currOffset += 4;
|
|
157
|
+
const linearIndex = new Array(linearCount);
|
|
158
|
+
for (let k = 0; k < linearCount; k += 1) {
|
|
159
|
+
linearIndex[k] = (0, virtualOffset_1.fromBytes)(bytes, currOffset);
|
|
160
|
+
currOffset += 8;
|
|
161
|
+
firstDataLine = this._findFirstData(firstDataLine, linearIndex[k]);
|
|
162
|
+
}
|
|
163
|
+
return { binIndex, linearIndex, stats };
|
|
180
164
|
});
|
|
165
|
+
return {
|
|
166
|
+
indices,
|
|
167
|
+
metaChar,
|
|
168
|
+
maxBinNumber,
|
|
169
|
+
maxRefLength,
|
|
170
|
+
skipLines,
|
|
171
|
+
firstDataLine,
|
|
172
|
+
columnNumbers,
|
|
173
|
+
coordinateType,
|
|
174
|
+
format,
|
|
175
|
+
refIdToName,
|
|
176
|
+
refNameToId,
|
|
177
|
+
maxBlockSize: 1 << 16,
|
|
178
|
+
};
|
|
181
179
|
}
|
|
182
180
|
parsePseudoBin(bytes, offset) {
|
|
183
181
|
const lineCount = (0, util_1.longToNumber)(long_1.default.fromBytesLE(bytes.slice(offset + 16, offset + 24), true));
|
|
@@ -202,57 +200,55 @@ class TabixIndex extends indexFile_1.default {
|
|
|
202
200
|
}
|
|
203
201
|
return { refNameToId, refIdToName };
|
|
204
202
|
}
|
|
205
|
-
blocksForRange(
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
? ba.linearIndex
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
for (
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
chunks.push(new chunk_1.default(c.minv, c.maxv, bin));
|
|
236
|
-
}
|
|
203
|
+
async blocksForRange(refName, min, max, opts = {}) {
|
|
204
|
+
if (min < 0) {
|
|
205
|
+
min = 0;
|
|
206
|
+
}
|
|
207
|
+
const indexData = await this.parse(opts);
|
|
208
|
+
const refId = indexData.refNameToId[refName];
|
|
209
|
+
if (refId === undefined) {
|
|
210
|
+
return [];
|
|
211
|
+
}
|
|
212
|
+
const ba = indexData.indices[refId];
|
|
213
|
+
if (!ba) {
|
|
214
|
+
return [];
|
|
215
|
+
}
|
|
216
|
+
const minOffset = ba.linearIndex.length
|
|
217
|
+
? ba.linearIndex[min >> TAD_LIDX_SHIFT >= ba.linearIndex.length
|
|
218
|
+
? ba.linearIndex.length - 1
|
|
219
|
+
: min >> TAD_LIDX_SHIFT]
|
|
220
|
+
: new virtualOffset_1.default(0, 0);
|
|
221
|
+
if (!minOffset) {
|
|
222
|
+
console.warn('querying outside of possible tabix range');
|
|
223
|
+
}
|
|
224
|
+
// const { linearIndex, binIndex } = indexes
|
|
225
|
+
const overlappingBins = reg2bins(min, max); // List of bin #s that overlap min, max
|
|
226
|
+
const chunks = [];
|
|
227
|
+
// Find chunks in overlapping bins. Leaf bins (< 4681) are not pruned
|
|
228
|
+
for (const [start, end] of overlappingBins) {
|
|
229
|
+
for (let bin = start; bin <= end; bin++) {
|
|
230
|
+
if (ba.binIndex[bin]) {
|
|
231
|
+
for (const c of ba.binIndex[bin]) {
|
|
232
|
+
chunks.push(new chunk_1.default(c.minv, c.maxv, bin));
|
|
237
233
|
}
|
|
238
234
|
}
|
|
239
235
|
}
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
236
|
+
}
|
|
237
|
+
// Use the linear index to find minimum file position of chunks that could
|
|
238
|
+
// contain alignments in the region
|
|
239
|
+
const nintv = ba.linearIndex.length;
|
|
240
|
+
let lowest = null;
|
|
241
|
+
const minLin = Math.min(min >> 14, nintv - 1);
|
|
242
|
+
const maxLin = Math.min(max >> 14, nintv - 1);
|
|
243
|
+
for (let i = minLin; i <= maxLin; ++i) {
|
|
244
|
+
const vp = ba.linearIndex[i];
|
|
245
|
+
if (vp) {
|
|
246
|
+
if (!lowest || vp.compareTo(lowest) < 0) {
|
|
247
|
+
lowest = vp;
|
|
252
248
|
}
|
|
253
249
|
}
|
|
254
|
-
|
|
255
|
-
|
|
250
|
+
}
|
|
251
|
+
return (0, util_1.optimizeChunks)(chunks, lowest);
|
|
256
252
|
}
|
|
257
253
|
}
|
|
258
254
|
exports.default = TabixIndex;
|
package/dist/tbi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tbi.js","sourceRoot":"","sources":["../src/tbi.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tbi.js","sourceRoot":"","sources":["../src/tbi.ts"],"names":[],"mappings":"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"}
|
package/dist/util.d.ts
CHANGED
|
@@ -2,14 +2,15 @@ import Chunk from './chunk';
|
|
|
2
2
|
import VirtualOffset from './virtualOffset';
|
|
3
3
|
export declare function longToNumber(long: Long): number;
|
|
4
4
|
/**
|
|
5
|
-
* Properly check if the given AbortSignal is aborted.
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* with a `code` attribute set to `ERR_ABORTED`.
|
|
5
|
+
* Properly check if the given AbortSignal is aborted. Per the standard, if the
|
|
6
|
+
* signal reads as aborted, this function throws either a DOMException
|
|
7
|
+
* AbortError, or a regular error with a `code` attribute set to `ERR_ABORTED`.
|
|
9
8
|
*
|
|
10
9
|
* For convenience, passing `undefined` is a no-op
|
|
11
10
|
*
|
|
12
|
-
* @param {AbortSignal} [signal] an AbortSignal, or anything with an `aborted`
|
|
11
|
+
* @param {AbortSignal} [signal] an AbortSignal, or anything with an `aborted`
|
|
12
|
+
* attribute
|
|
13
|
+
*
|
|
13
14
|
* @returns nothing
|
|
14
15
|
*/
|
|
15
16
|
export declare function checkAbortSignal(signal?: AbortSignal): void;
|
|
@@ -21,4 +22,4 @@ export declare function checkAbortSignal(signal?: AbortSignal): void;
|
|
|
21
22
|
*/
|
|
22
23
|
export declare function abortBreakPoint(signal?: AbortSignal): Promise<void>;
|
|
23
24
|
export declare function canMergeBlocks(chunk1: Chunk, chunk2: Chunk): boolean;
|
|
24
|
-
export declare function optimizeChunks(chunks: Chunk[], lowest
|
|
25
|
+
export declare function optimizeChunks(chunks: Chunk[], lowest?: VirtualOffset): Chunk[];
|
package/dist/util.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
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.longToNumber = longToNumber;
|
|
13
4
|
exports.checkAbortSignal = checkAbortSignal;
|
|
@@ -24,14 +15,15 @@ function longToNumber(long) {
|
|
|
24
15
|
class AbortError extends Error {
|
|
25
16
|
}
|
|
26
17
|
/**
|
|
27
|
-
* Properly check if the given AbortSignal is aborted.
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* with a `code` attribute set to `ERR_ABORTED`.
|
|
18
|
+
* Properly check if the given AbortSignal is aborted. Per the standard, if the
|
|
19
|
+
* signal reads as aborted, this function throws either a DOMException
|
|
20
|
+
* AbortError, or a regular error with a `code` attribute set to `ERR_ABORTED`.
|
|
31
21
|
*
|
|
32
22
|
* For convenience, passing `undefined` is a no-op
|
|
33
23
|
*
|
|
34
|
-
* @param {AbortSignal} [signal] an AbortSignal, or anything with an `aborted`
|
|
24
|
+
* @param {AbortSignal} [signal] an AbortSignal, or anything with an `aborted`
|
|
25
|
+
* attribute
|
|
26
|
+
*
|
|
35
27
|
* @returns nothing
|
|
36
28
|
*/
|
|
37
29
|
function checkAbortSignal(signal) {
|
|
@@ -55,11 +47,9 @@ function checkAbortSignal(signal) {
|
|
|
55
47
|
* provide a place to break when an abort signal is received.
|
|
56
48
|
* @param {AbortSignal} signal
|
|
57
49
|
*/
|
|
58
|
-
function abortBreakPoint(signal) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
checkAbortSignal(signal);
|
|
62
|
-
});
|
|
50
|
+
async function abortBreakPoint(signal) {
|
|
51
|
+
await Promise.resolve();
|
|
52
|
+
checkAbortSignal(signal);
|
|
63
53
|
}
|
|
64
54
|
function canMergeBlocks(chunk1, chunk2) {
|
|
65
55
|
return (chunk2.minv.blockPosition - chunk1.maxv.blockPosition < 65000 &&
|
package/dist/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
|
package/dist/virtualOffset.d.ts
CHANGED
|
@@ -5,6 +5,5 @@ export default class VirtualOffset {
|
|
|
5
5
|
constructor(blockPosition: number, dataPosition: number);
|
|
6
6
|
toString(): string;
|
|
7
7
|
compareTo(b: VirtualOffset): number;
|
|
8
|
-
static min(...args: VirtualOffset[]): VirtualOffset;
|
|
9
8
|
}
|
|
10
9
|
export declare function fromBytes(bytes: Buffer, offset?: number, bigendian?: boolean): VirtualOffset;
|
package/dist/virtualOffset.js
CHANGED
|
@@ -12,19 +12,6 @@ class VirtualOffset {
|
|
|
12
12
|
compareTo(b) {
|
|
13
13
|
return (this.blockPosition - b.blockPosition || this.dataPosition - b.dataPosition);
|
|
14
14
|
}
|
|
15
|
-
static min(...args) {
|
|
16
|
-
let min;
|
|
17
|
-
let i = 0;
|
|
18
|
-
for (; !min; i += 1) {
|
|
19
|
-
min = args[i];
|
|
20
|
-
}
|
|
21
|
-
for (; i < args.length; i += 1) {
|
|
22
|
-
if (min.compareTo(args[i]) > 0) {
|
|
23
|
-
min = args[i];
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
return min;
|
|
27
|
-
}
|
|
28
15
|
}
|
|
29
16
|
exports.default = VirtualOffset;
|
|
30
17
|
function fromBytes(bytes, offset = 0, bigendian = false) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtualOffset.js","sourceRoot":"","sources":["../src/virtualOffset.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"virtualOffset.js","sourceRoot":"","sources":["../src/virtualOffset.ts"],"names":[],"mappings":";;AAmBA,8BAcC;AAhCD,MAAqB,aAAa;IAGhC,YAAY,aAAqB,EAAE,YAAoB;QACrD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA,CAAC,wCAAwC;QAC3E,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA,CAAC,sCAAsC;IACzE,CAAC;IAED,QAAQ;QACN,OAAO,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,EAAE,CAAA;IACrD,CAAC;IAED,SAAS,CAAC,CAAgB;QACxB,OAAO,CACL,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAC3E,CAAA;IACH,CAAC;CACF;AAjBD,gCAiBC;AACD,SAAgB,SAAS,CAAC,KAAa,EAAE,MAAM,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK;IACpE,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;IACpE,CAAC;IAED,OAAO,IAAI,aAAa,CACtB,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,GAAG,aAAa;QAChC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,GAAG,WAAW;QAChC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,GAAG,SAAS;QAC9B,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,GAAG,OAAO;QAC5B,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,GAAG,KAAK;QAC1B,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,EACpB,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAE,CAC3C,CAAA;AACH,CAAC"}
|
package/esm/chunk.js
CHANGED
|
@@ -7,7 +7,6 @@ export default class Chunk {
|
|
|
7
7
|
this._fetchedSize = fetchedSize;
|
|
8
8
|
}
|
|
9
9
|
toUniqueString() {
|
|
10
|
-
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
11
10
|
return `${this.minv}..${this.maxv} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`;
|
|
12
11
|
}
|
|
13
12
|
toString() {
|
package/esm/chunk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk.js","sourceRoot":"","sources":["../src/chunk.ts"],"names":[],"mappings":"AAEA,iDAAiD;AACjD,MAAM,CAAC,OAAO,OAAO,KAAK;IAMxB,YACE,IAAmB,EACnB,IAAmB,EACnB,GAAW,EACX,WAAW,GAAG,SAAS;QAEvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,YAAY,GAAG,WAAW,CAAA;IACjC,CAAC;IAED,cAAc;QACZ,
|
|
1
|
+
{"version":3,"file":"chunk.js","sourceRoot":"","sources":["../src/chunk.ts"],"names":[],"mappings":"AAEA,iDAAiD;AACjD,MAAM,CAAC,OAAO,OAAO,KAAK;IAMxB,YACE,IAAmB,EACnB,IAAmB,EACnB,GAAW,EACX,WAAW,GAAG,SAAS;QAEvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,YAAY,GAAG,WAAW,CAAA;IACjC,CAAC;IAED,cAAc;QACZ,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,SAC/B,IAAI,CAAC,GACP,iBAAiB,IAAI,CAAC,WAAW,EAAE,GAAG,CAAA;IACxC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,cAAc,EAAE,CAAA;IAC9B,CAAC;IAED,SAAS,CAAC,CAAQ;QAChB,OAAO,CACL,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3B,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CACjB,CAAA;IACH,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,YAAY,CAAA;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAA;IACtE,CAAC;CACF"}
|
package/esm/csi.d.ts
CHANGED
|
@@ -85,5 +85,5 @@ export default class CSI extends IndexFile {
|
|
|
85
85
|
/**
|
|
86
86
|
* calculate the list of bins that may overlap with region [beg,end) (zero-based half-open)
|
|
87
87
|
*/
|
|
88
|
-
reg2bins(beg: number, end: number): number
|
|
88
|
+
reg2bins(beg: number, end: number): (readonly [number, number])[];
|
|
89
89
|
}
|
package/esm/csi.js
CHANGED
|
@@ -21,10 +21,10 @@ export default class CSI extends IndexFile {
|
|
|
21
21
|
}
|
|
22
22
|
async lineCount(refName, opts = {}) {
|
|
23
23
|
const indexData = await this.parse(opts);
|
|
24
|
-
|
|
24
|
+
const refId = indexData.refNameToId[refName];
|
|
25
|
+
if (refId === undefined) {
|
|
25
26
|
return -1;
|
|
26
27
|
}
|
|
27
|
-
const refId = indexData.refNameToId[refName];
|
|
28
28
|
const idx = indexData.indices[refId];
|
|
29
29
|
if (!idx) {
|
|
30
30
|
return -1;
|
|
@@ -172,10 +172,10 @@ export default class CSI extends IndexFile {
|
|
|
172
172
|
min = 0;
|
|
173
173
|
}
|
|
174
174
|
const indexData = await this.parse(opts);
|
|
175
|
-
|
|
175
|
+
const refId = indexData.refNameToId[refName];
|
|
176
|
+
if (refId === undefined) {
|
|
176
177
|
return [];
|
|
177
178
|
}
|
|
178
|
-
const refId = indexData.refNameToId[refName];
|
|
179
179
|
const ba = indexData.indices[refId];
|
|
180
180
|
if (!ba) {
|
|
181
181
|
return [];
|