@gmod/tabix 1.5.4 → 1.5.5
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 +6 -0
- package/README.md +37 -37
- package/dist/chunk.js +12 -14
- package/dist/chunk.js.map +1 -1
- package/dist/csi.js +170 -253
- package/dist/csi.js.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/indexFile.js +27 -73
- package/dist/indexFile.js.map +1 -1
- package/dist/tabixIndexedFile.d.ts +1 -1
- package/dist/tabixIndexedFile.js +205 -306
- package/dist/tabixIndexedFile.js.map +1 -1
- package/dist/tbi.js +185 -256
- package/dist/tbi.js.map +1 -1
- package/dist/util.js +10 -64
- package/dist/util.js.map +1 -1
- package/dist/virtualOffset.js +13 -20
- package/dist/virtualOffset.js.map +1 -1
- package/esm/tabixIndexedFile.d.ts +1 -1
- package/package.json +6 -7
package/dist/util.js
CHANGED
|
@@ -1,19 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
18
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
19
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -23,33 +8,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
23
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
24
9
|
});
|
|
25
10
|
};
|
|
26
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
27
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
28
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
29
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
30
|
-
function step(op) {
|
|
31
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
32
|
-
while (_) try {
|
|
33
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
34
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
35
|
-
switch (op[0]) {
|
|
36
|
-
case 0: case 1: t = op; break;
|
|
37
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
38
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
39
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
40
|
-
default:
|
|
41
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
42
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
43
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
44
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
45
|
-
if (t[2]) _.ops.pop();
|
|
46
|
-
_.trys.pop(); continue;
|
|
47
|
-
}
|
|
48
|
-
op = body.call(thisArg, _);
|
|
49
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
50
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
12
|
exports.optimizeChunks = exports.canMergeBlocks = exports.abortBreakPoint = exports.checkAbortSignal = exports.longToNumber = void 0;
|
|
55
13
|
function longToNumber(long) {
|
|
@@ -60,13 +18,8 @@ function longToNumber(long) {
|
|
|
60
18
|
return long.toNumber();
|
|
61
19
|
}
|
|
62
20
|
exports.longToNumber = longToNumber;
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
function AbortError() {
|
|
66
|
-
return _super !== null && _super.apply(this, arguments) || this;
|
|
67
|
-
}
|
|
68
|
-
return AbortError;
|
|
69
|
-
}(Error));
|
|
21
|
+
class AbortError extends Error {
|
|
22
|
+
}
|
|
70
23
|
/**
|
|
71
24
|
* Properly check if the given AbortSignal is aborted.
|
|
72
25
|
* Per the standard, if the signal reads as aborted,
|
|
@@ -89,7 +42,7 @@ function checkAbortSignal(signal) {
|
|
|
89
42
|
throw new DOMException('aborted', 'AbortError');
|
|
90
43
|
}
|
|
91
44
|
else {
|
|
92
|
-
|
|
45
|
+
const e = new AbortError('aborted');
|
|
93
46
|
e.code = 'ERR_ABORTED';
|
|
94
47
|
throw e;
|
|
95
48
|
}
|
|
@@ -103,16 +56,9 @@ exports.checkAbortSignal = checkAbortSignal;
|
|
|
103
56
|
* @param {AbortSignal} signal
|
|
104
57
|
*/
|
|
105
58
|
function abortBreakPoint(signal) {
|
|
106
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
case 0: return [4 /*yield*/, Promise.resolve()];
|
|
110
|
-
case 1:
|
|
111
|
-
_a.sent();
|
|
112
|
-
checkAbortSignal(signal);
|
|
113
|
-
return [2 /*return*/];
|
|
114
|
-
}
|
|
115
|
-
});
|
|
59
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
60
|
+
yield Promise.resolve();
|
|
61
|
+
checkAbortSignal(signal);
|
|
116
62
|
});
|
|
117
63
|
}
|
|
118
64
|
exports.abortBreakPoint = abortBreakPoint;
|
|
@@ -122,13 +68,13 @@ function canMergeBlocks(chunk1, chunk2) {
|
|
|
122
68
|
}
|
|
123
69
|
exports.canMergeBlocks = canMergeBlocks;
|
|
124
70
|
function optimizeChunks(chunks, lowest) {
|
|
125
|
-
|
|
126
|
-
|
|
71
|
+
const mergedChunks = [];
|
|
72
|
+
let lastChunk = null;
|
|
127
73
|
if (chunks.length === 0) {
|
|
128
74
|
return chunks;
|
|
129
75
|
}
|
|
130
76
|
chunks.sort(function (c0, c1) {
|
|
131
|
-
|
|
77
|
+
const dif = c0.minv.blockPosition - c1.minv.blockPosition;
|
|
132
78
|
if (dif !== 0) {
|
|
133
79
|
return dif;
|
|
134
80
|
}
|
|
@@ -136,7 +82,7 @@ function optimizeChunks(chunks, lowest) {
|
|
|
136
82
|
return c0.minv.dataPosition - c1.minv.dataPosition;
|
|
137
83
|
}
|
|
138
84
|
});
|
|
139
|
-
chunks.forEach(
|
|
85
|
+
chunks.forEach(chunk => {
|
|
140
86
|
if (!lowest || chunk.maxv.compareTo(lowest) > 0) {
|
|
141
87
|
if (lastChunk === null) {
|
|
142
88
|
mergedChunks.push(chunk);
|
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.js
CHANGED
|
@@ -1,24 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.fromBytes = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
class VirtualOffset {
|
|
5
|
+
constructor(blockPosition, dataPosition) {
|
|
6
6
|
this.blockPosition = blockPosition; // < offset of the compressed data block
|
|
7
7
|
this.dataPosition = dataPosition; // < offset into the uncompressed data
|
|
8
8
|
}
|
|
9
|
-
|
|
10
|
-
return
|
|
11
|
-
}
|
|
12
|
-
|
|
9
|
+
toString() {
|
|
10
|
+
return `${this.blockPosition}:${this.dataPosition}`;
|
|
11
|
+
}
|
|
12
|
+
compareTo(b) {
|
|
13
13
|
return (this.blockPosition - b.blockPosition || this.dataPosition - b.dataPosition);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
args[_i] = arguments[_i];
|
|
19
|
-
}
|
|
20
|
-
var min;
|
|
21
|
-
var i = 0;
|
|
14
|
+
}
|
|
15
|
+
static min(...args) {
|
|
16
|
+
let min;
|
|
17
|
+
let i = 0;
|
|
22
18
|
for (; !min; i += 1) {
|
|
23
19
|
min = args[i];
|
|
24
20
|
}
|
|
@@ -28,13 +24,10 @@ var VirtualOffset = /** @class */ (function () {
|
|
|
28
24
|
}
|
|
29
25
|
}
|
|
30
26
|
return min;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
}());
|
|
27
|
+
}
|
|
28
|
+
}
|
|
34
29
|
exports.default = VirtualOffset;
|
|
35
|
-
function fromBytes(bytes, offset, bigendian) {
|
|
36
|
-
if (offset === void 0) { offset = 0; }
|
|
37
|
-
if (bigendian === void 0) { bigendian = false; }
|
|
30
|
+
function fromBytes(bytes, offset = 0, bigendian = false) {
|
|
38
31
|
if (bigendian) {
|
|
39
32
|
throw new Error('big-endian virtual file offsets not implemented');
|
|
40
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtualOffset.js","sourceRoot":"","sources":["../src/virtualOffset.ts"],"names":[],"mappings":";;;AAAA;
|
|
1
|
+
{"version":3,"file":"virtualOffset.js","sourceRoot":"","sources":["../src/virtualOffset.ts"],"names":[],"mappings":";;;AAAA,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;YACnB,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;SACd;QACD,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAC9B,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;gBAC9B,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;aACd;SACF;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;QACb,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;KACnE;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;AAdD,8BAcC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { GenericFilehandle } from 'generic-filehandle';
|
|
3
3
|
import { Options } from './indexFile';
|
|
4
4
|
import Chunk from './chunk';
|
|
5
|
-
|
|
5
|
+
type GetLinesCallback = (line: string, fileOffset: number) => void;
|
|
6
6
|
interface GetLinesOpts {
|
|
7
7
|
[key: string]: unknown;
|
|
8
8
|
signal?: AbortSignal;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gmod/tabix",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.5",
|
|
4
4
|
"description": "Read Tabix-indexed files, supports both .tbi and .csi indexes",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": "GMOD/tabix-js",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"clean": "rimraf dist esm",
|
|
27
27
|
"prebuild": "npm run clean && npm run lint",
|
|
28
28
|
"build:esm": "tsc --target es2018 --outDir esm",
|
|
29
|
-
"build:es5": "tsc --target
|
|
29
|
+
"build:es5": "tsc --target es2015 --module commonjs --outDir dist",
|
|
30
30
|
"build": "npm run build:esm && npm run build:es5",
|
|
31
31
|
"preversion": "npm run lint && npm test && npm run build",
|
|
32
32
|
"prepublishOnly": "npm run lint && npm test && npm run build",
|
|
@@ -41,13 +41,12 @@
|
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@gmod/bgzf-filehandle": "^1.3.3",
|
|
43
43
|
"abortable-promise-cache": "^1.4.1",
|
|
44
|
-
"es6-promisify": "^6.0.1",
|
|
45
44
|
"generic-filehandle": "^3.0.0",
|
|
46
45
|
"long": "^4.0.0",
|
|
47
46
|
"quick-lru": "^4.0.0"
|
|
48
47
|
},
|
|
49
48
|
"devDependencies": {
|
|
50
|
-
"@types/jest": "^
|
|
49
|
+
"@types/jest": "^29.2.4",
|
|
51
50
|
"@types/long": "^4.0.0",
|
|
52
51
|
"@types/node": "^18.0.6",
|
|
53
52
|
"@types/quick-lru": "2.0.0",
|
|
@@ -57,12 +56,12 @@
|
|
|
57
56
|
"eslint-config-prettier": "^8.3.0",
|
|
58
57
|
"eslint-plugin-import": "^2.25.3",
|
|
59
58
|
"eslint-plugin-prettier": "^4.2.1",
|
|
60
|
-
"jest": "^
|
|
61
|
-
"jest-environment-jsdom": "^
|
|
59
|
+
"jest": "^29.3.1",
|
|
60
|
+
"jest-environment-jsdom": "^29.3.1",
|
|
62
61
|
"prettier": "^2.7.1",
|
|
63
62
|
"rimraf": "^3.0.2",
|
|
64
63
|
"standard-changelog": "^2.0.27",
|
|
65
|
-
"ts-jest": "^
|
|
64
|
+
"ts-jest": "^29.0.3",
|
|
66
65
|
"typescript": "^4.7.4"
|
|
67
66
|
},
|
|
68
67
|
"publishConfig": {
|