@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.
Files changed (48) hide show
  1. package/CHANGELOG.md +9 -5
  2. package/README.md +182 -35
  3. package/dist/chunk.js +0 -1
  4. package/dist/chunk.js.map +1 -1
  5. package/dist/csi.d.ts +1 -1
  6. package/dist/csi.js +132 -128
  7. package/dist/csi.js.map +1 -1
  8. package/dist/indexFile.js +15 -41
  9. package/dist/indexFile.js.map +1 -1
  10. package/dist/tabix-bundle.js +2 -0
  11. package/dist/tabix-bundle.js.LICENSE.txt +8 -0
  12. package/dist/tabixIndexedFile.d.ts +49 -25
  13. package/dist/tabixIndexedFile.js +214 -195
  14. package/dist/tabixIndexedFile.js.map +1 -1
  15. package/dist/tbi.js +169 -173
  16. package/dist/tbi.js.map +1 -1
  17. package/dist/util.d.ts +7 -6
  18. package/dist/util.js +9 -19
  19. package/dist/util.js.map +1 -1
  20. package/dist/virtualOffset.d.ts +0 -1
  21. package/dist/virtualOffset.js +0 -13
  22. package/dist/virtualOffset.js.map +1 -1
  23. package/esm/chunk.js +0 -1
  24. package/esm/chunk.js.map +1 -1
  25. package/esm/csi.d.ts +1 -1
  26. package/esm/csi.js +4 -4
  27. package/esm/csi.js.map +1 -1
  28. package/esm/indexFile.js +1 -1
  29. package/esm/indexFile.js.map +1 -1
  30. package/esm/tabixIndexedFile.d.ts +49 -25
  31. package/esm/tabixIndexedFile.js +134 -90
  32. package/esm/tabixIndexedFile.js.map +1 -1
  33. package/esm/tbi.js +6 -5
  34. package/esm/tbi.js.map +1 -1
  35. package/esm/util.d.ts +7 -6
  36. package/esm/util.js +6 -5
  37. package/esm/util.js.map +1 -1
  38. package/esm/virtualOffset.d.ts +0 -1
  39. package/esm/virtualOffset.js +0 -13
  40. package/esm/virtualOffset.js.map +1 -1
  41. package/package.json +24 -19
  42. package/src/chunk.ts +0 -1
  43. package/src/csi.ts +6 -5
  44. package/src/indexFile.ts +1 -1
  45. package/src/tabixIndexedFile.ts +141 -106
  46. package/src/tbi.ts +7 -6
  47. package/src/util.ts +7 -6
  48. 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 (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
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) (zero-based half-open)
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(refName_1) {
63
- return __awaiter(this, arguments, void 0, function* (refName, opts = {}) {
64
- const indexData = yield this.parse(opts);
65
- if (!indexData) {
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
- return __awaiter(this, arguments, void 0, function* (opts = {}) {
83
- const buf = yield this.filehandle.readFile(opts);
84
- const bytes = yield (0, bgzf_filehandle_1.unzip)(buf);
85
- (0, util_1.checkAbortSignal)(opts.signal);
86
- // check TBI magic numbers
87
- if (bytes.readUInt32LE(0) !== TBI_MAGIC /* "TBI\1" */) {
88
- throw new Error('Not a TBI file');
89
- // TODO: do we need to support big-endian TBI files?
90
- }
91
- // number of reference sequences in the index
92
- const refCount = bytes.readInt32LE(4);
93
- const formatFlags = bytes.readInt32LE(8);
94
- const coordinateType = formatFlags & 0x10000 ? 'zero-based-half-open' : '1-based-closed';
95
- const formatOpts = {
96
- 0: 'generic',
97
- 1: 'SAM',
98
- 2: 'VCF',
99
- };
100
- const format = formatOpts[formatFlags & 0xf];
101
- if (!format) {
102
- throw new Error(`invalid Tabix preset format flags ${formatFlags}`);
103
- }
104
- const columnNumbers = {
105
- ref: bytes.readInt32LE(12),
106
- start: bytes.readInt32LE(16),
107
- end: bytes.readInt32LE(20),
108
- };
109
- const metaValue = bytes.readInt32LE(24);
110
- const depth = 5;
111
- const maxBinNumber = ((1 << ((depth + 1) * 3)) - 1) / 7;
112
- const maxRefLength = Math.pow(2, (14 + depth * 3));
113
- const metaChar = metaValue ? String.fromCharCode(metaValue) : null;
114
- const skipLines = bytes.readInt32LE(28);
115
- // read sequence dictionary
116
- const nameSectionLength = bytes.readInt32LE(32);
117
- const { refNameToId, refIdToName } = this._parseNameBytes(bytes.slice(36, 36 + nameSectionLength));
118
- // read the indexes for each reference sequence
119
- let currOffset = 36 + nameSectionLength;
120
- let firstDataLine;
121
- const indices = new Array(refCount).fill(0).map(() => {
122
- // the binning index
123
- const binCount = bytes.readInt32LE(currOffset);
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
- const binIndex = {};
126
- let stats;
127
- for (let j = 0; j < binCount; j += 1) {
128
- const bin = bytes.readUInt32LE(currOffset);
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 (bin > maxBinNumber + 1) {
131
- throw new Error('tabix index contains too many bins, please use a CSI index');
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
- // the linear index
156
- const linearCount = bytes.readInt32LE(currOffset);
157
- currOffset += 4;
158
- const linearIndex = new Array(linearCount);
159
- for (let k = 0; k < linearCount; k += 1) {
160
- linearIndex[k] = (0, virtualOffset_1.fromBytes)(bytes, currOffset);
161
- currOffset += 8;
162
- firstDataLine = this._findFirstData(firstDataLine, linearIndex[k]);
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
- return { binIndex, linearIndex, stats };
165
- });
166
- return {
167
- indices,
168
- metaChar,
169
- maxBinNumber,
170
- maxRefLength,
171
- skipLines,
172
- firstDataLine,
173
- columnNumbers,
174
- coordinateType,
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(refName_1, min_1, max_1) {
206
- return __awaiter(this, arguments, void 0, function* (refName, min, max, opts = {}) {
207
- if (min < 0) {
208
- min = 0;
209
- }
210
- const indexData = yield this.parse(opts);
211
- if (!indexData) {
212
- return [];
213
- }
214
- const refId = indexData.refNameToId[refName];
215
- const ba = indexData.indices[refId];
216
- if (!ba) {
217
- return [];
218
- }
219
- const minOffset = ba.linearIndex.length
220
- ? ba.linearIndex[min >> TAD_LIDX_SHIFT >= ba.linearIndex.length
221
- ? ba.linearIndex.length - 1
222
- : min >> TAD_LIDX_SHIFT]
223
- : new virtualOffset_1.default(0, 0);
224
- if (!minOffset) {
225
- console.warn('querying outside of possible tabix range');
226
- }
227
- // const { linearIndex, binIndex } = indexes
228
- const overlappingBins = reg2bins(min, max); // List of bin #s that overlap min, max
229
- const chunks = [];
230
- // Find chunks in overlapping bins. Leaf bins (< 4681) are not pruned
231
- for (const [start, end] of overlappingBins) {
232
- for (let bin = start; bin <= end; bin++) {
233
- if (ba.binIndex[bin]) {
234
- for (const c of ba.binIndex[bin]) {
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
- // Use the linear index to find minimum file position of chunks that could
241
- // contain alignments in the region
242
- const nintv = ba.linearIndex.length;
243
- let lowest = null;
244
- const minLin = Math.min(min >> 14, nintv - 1);
245
- const maxLin = Math.min(max >> 14, nintv - 1);
246
- for (let i = minLin; i <= maxLin; ++i) {
247
- const vp = ba.linearIndex[i];
248
- if (vp) {
249
- if (!lowest || vp.compareTo(lowest) < 0) {
250
- lowest = vp;
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
- return (0, util_1.optimizeChunks)(chunks, lowest);
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAuB;AAEvB,iEAA0D;AAC1D,oDAA2B;AAC3B,2DAA6C;AAC7C,iCAAuE;AACvE,4DAAgD;AAEhD,MAAM,SAAS,GAAG,QAAQ,CAAA,CAAC,QAAQ;AACnC,MAAM,cAAc,GAAG,EAAE,CAAA;AAEzB;;GAEG;AACH,SAAS,QAAQ,CAAC,GAAW,EAAE,GAAW;IACxC,GAAG,IAAI,CAAC,CAAA,CAAC,8BAA8B;IACvC,GAAG,IAAI,CAAC,CAAA;IACR,OAAO;QACL,CAAC,CAAC,EAAE,CAAC,CAAC;QACN,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QACpC,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QACtC,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;KACzC,CAAA;AACH,CAAC;AAED,MAAqB,UAAW,SAAQ,mBAAS;IACzC,SAAS;6DAAC,OAAe,EAAE,OAAgB,EAAE;YACjD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACxC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,CAAC,CAAC,CAAA;YACX,CAAC;YACD,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;YAC5C,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACpC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO,CAAC,CAAC,CAAA;YACX,CAAC;YACD,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YAC1C,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,KAAK,CAAC,SAAS,CAAA;YACxB,CAAC;YACD,OAAO,CAAC,CAAC,CAAA;QACX,CAAC;KAAA;IAED,4BAA4B;IACtB,MAAM;6DAAC,OAAgB,EAAE;YAC7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YAChD,MAAM,KAAK,GAAG,MAAM,IAAA,uBAAK,EAAC,GAAG,CAAC,CAAA;YAC9B,IAAA,uBAAgB,EAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAE7B,0BAA0B;YAC1B,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,aAAa,EAAE,CAAC;gBACtD,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;gBACjC,oDAAoD;YACtD,CAAC;YAED,6CAA6C;YAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;YACrC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;YACxC,MAAM,cAAc,GAClB,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,gBAAgB,CAAA;YACnE,MAAM,UAAU,GAA2B;gBACzC,CAAC,EAAE,SAAS;gBACZ,CAAC,EAAE,KAAK;gBACR,CAAC,EAAE,KAAK;aACT,CAAA;YACD,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,GAAG,GAAG,CAAC,CAAA;YAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,qCAAqC,WAAW,EAAE,CAAC,CAAA;YACrE,CAAC;YACD,MAAM,aAAa,GAAG;gBACpB,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC1B,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC5B,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;aAC3B,CAAA;YACD,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;YACvC,MAAM,KAAK,GAAG,CAAC,CAAA;YACf,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;YACvD,MAAM,YAAY,GAAG,SAAA,CAAC,EAAI,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC,CAAA,CAAA;YAC1C,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YAClE,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;YAEvC,2BAA2B;YAC3B,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;YAC/C,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,eAAe,CACvD,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,iBAAiB,CAAC,CACxC,CAAA;YAED,+CAA+C;YAC/C,IAAI,UAAU,GAAG,EAAE,GAAG,iBAAiB,CAAA;YACvC,IAAI,aAAwC,CAAA;YAC5C,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;gBACnD,oBAAoB;gBACpB,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;gBAC9C,UAAU,IAAI,CAAC,CAAA;gBACf,MAAM,QAAQ,GAA4B,EAAE,CAAA;gBAC5C,IAAI,KAAK,CAAA;gBACT,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBACrC,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;oBAC1C,UAAU,IAAI,CAAC,CAAA;oBACf,IAAI,GAAG,GAAG,YAAY,GAAG,CAAC,EAAE,CAAC;wBAC3B,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAA;oBACH,CAAC;yBAAM,IAAI,GAAG,KAAK,YAAY,GAAG,CAAC,EAAE,CAAC;wBACpC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;wBAChD,UAAU,IAAI,CAAC,CAAA;wBACf,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;4BACrB,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;wBAChD,CAAC;wBACD,UAAU,IAAI,EAAE,GAAG,UAAU,CAAA;oBAC/B,CAAC;yBAAM,CAAC;wBACN,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;wBAChD,UAAU,IAAI,CAAC,CAAA;wBACf,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC,CAAA;wBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;4BACvC,MAAM,CAAC,GAAG,IAAA,yBAAS,EAAC,KAAK,EAAE,UAAU,CAAC,CAAA;4BACtC,MAAM,CAAC,GAAG,IAAA,yBAAS,EAAC,KAAK,EAAE,UAAU,GAAG,CAAC,CAAC,CAAA;4BAC1C,UAAU,IAAI,EAAE,CAAA;4BAChB,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC,CAAA;4BACrD,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,eAAK,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;wBAClC,CAAC;wBACD,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,CAAA;oBACxB,CAAC;gBACH,CAAC;gBAED,mBAAmB;gBACnB,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;gBACjD,UAAU,IAAI,CAAC,CAAA;gBACf,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC,CAAA;gBAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxC,WAAW,CAAC,CAAC,CAAC,GAAG,IAAA,yBAAS,EAAC,KAAK,EAAE,UAAU,CAAC,CAAA;oBAC7C,UAAU,IAAI,CAAC,CAAA;oBACf,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;gBACpE,CAAC;gBACD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,CAAA;YACzC,CAAC,CAAC,CAAA;YAEF,OAAO;gBACL,OAAO;gBACP,QAAQ;gBACR,YAAY;gBACZ,YAAY;gBACZ,SAAS;gBACT,aAAa;gBACb,aAAa;gBACb,cAAc;gBACd,MAAM;gBACN,WAAW;gBACX,WAAW;gBACX,YAAY,EAAE,CAAC,IAAI,EAAE;aACtB,CAAA;QACH,CAAC;KAAA;IAED,cAAc,CAAC,KAAa,EAAE,MAAc;QAC1C,MAAM,SAAS,GAAG,IAAA,mBAAY,EAC5B,cAAI,CAAC,WAAW,CACd,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,CAAwB,EAC5D,IAAI,CACL,CACF,CAAA;QACD,OAAO,EAAE,SAAS,EAAE,CAAA;IACtB,CAAC;IAED,eAAe,CAAC,UAAkB;QAChC,IAAI,SAAS,GAAG,CAAC,CAAA;QACjB,IAAI,aAAa,GAAG,CAAC,CAAA;QACrB,MAAM,WAAW,GAAa,EAAE,CAAA;QAChC,MAAM,WAAW,GAA2B,EAAE,CAAA;QAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnB,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;oBACtB,IAAI,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,CAAA;oBAC3D,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;oBACpC,WAAW,CAAC,SAAS,CAAC,GAAG,OAAO,CAAA;oBAChC,WAAW,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;gBAClC,CAAC;gBACD,aAAa,GAAG,CAAC,GAAG,CAAC,CAAA;gBACrB,SAAS,IAAI,CAAC,CAAA;YAChB,CAAC;QACH,CAAC;QACD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,CAAA;IACrC,CAAC;IAEK,cAAc;6DAClB,OAAe,EACf,GAAW,EACX,GAAW,EACX,OAAgB,EAAE;YAElB,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBACZ,GAAG,GAAG,CAAC,CAAA;YACT,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACxC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,EAAE,CAAA;YACX,CAAC;YACD,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;YAC5C,MAAM,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACnC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,OAAO,EAAE,CAAA;YACX,CAAC;YAED,MAAM,SAAS,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM;gBACrC,CAAC,CAAC,EAAE,CAAC,WAAW,CACZ,GAAG,IAAI,cAAc,IAAI,EAAE,CAAC,WAAW,CAAC,MAAM;oBAC5C,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;oBAC3B,CAAC,CAAC,GAAG,IAAI,cAAc,CAC1B;gBACH,CAAC,CAAC,IAAI,uBAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAC3B,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;YAC1D,CAAC;YAED,4CAA4C;YAE5C,MAAM,eAAe,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA,CAAC,uCAAuC;YAClF,MAAM,MAAM,GAAY,EAAE,CAAA;YAE1B,sEAAsE;YACtE,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,eAAe,EAAE,CAAC;gBAC3C,KAAK,IAAI,GAAG,GAAG,KAAK,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;oBACxC,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBACrB,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;4BACjC,MAAM,CAAC,IAAI,CAAC,IAAI,eAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;wBAC7C,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,0EAA0E;YAC1E,mCAAmC;YACnC,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAA;YACnC,IAAI,MAAM,GAAG,IAAI,CAAA;YACjB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;YAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;YAC7C,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;gBACtC,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;gBAC5B,IAAI,EAAE,EAAE,CAAC;oBACP,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;wBACxC,MAAM,GAAG,EAAE,CAAA;oBACb,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,IAAA,qBAAc,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACvC,CAAC;KAAA;CACF;AA9ND,6BA8NC"}
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
- * Per the standard, if the signal reads as aborted,
7
- * this function throws either a DOMException AbortError, or a regular error
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` attribute
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: VirtualOffset): Chunk[];
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
- * Per the standard, if the signal reads as aborted,
29
- * this function throws either a DOMException AbortError, or a regular error
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` attribute
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
- return __awaiter(this, void 0, void 0, function* () {
60
- yield Promise.resolve();
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":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
@@ -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;
@@ -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":";;AAiCA,8BAcC;AA9CD,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;IAED,MAAM,CAAC,GAAG,CAAC,GAAG,IAAqB;QACjC,IAAI,GAAG,CAAA;QACP,IAAI,CAAC,GAAG,CAAC,CAAA;QACT,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACf,CAAC;QACD,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YACf,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;CACF;AA/BD,gCA+BC;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,CAAC,GAAG,aAAa;QAC/B,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,WAAW;QAC/B,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS;QAC7B,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,OAAO;QAC3B,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK;QACzB,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EACnB,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CACzC,CAAA;AACH,CAAC"}
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,4EAA4E;QAC5E,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"}
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
- if (!indexData) {
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
- if (!indexData) {
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 [];