@gmod/bbi 1.0.27 → 1.0.31
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 +27 -0
- package/README.md +42 -27
- package/dist/bbi.d.ts +18 -15
- package/dist/bbi.js +361 -593
- package/dist/bigbed.d.ts +7 -16
- package/dist/bigbed.js +285 -455
- package/dist/bigwig.d.ts +2 -2
- package/dist/bigwig.js +88 -110
- package/dist/blockView.d.ts +2 -1
- package/dist/blockView.js +404 -508
- package/dist/index.d.ts +1 -1
- package/dist/index.js +6 -35
- package/dist/range.js +115 -178
- package/dist/util.js +110 -114
- package/esm/bbi.d.ts +84 -0
- package/esm/bbi.js +259 -0
- package/esm/bigbed.d.ts +12 -0
- package/esm/bigbed.js +182 -0
- package/esm/bigwig.d.ts +13 -0
- package/esm/bigwig.js +35 -0
- package/esm/blockView.d.ts +42 -0
- package/esm/blockView.js +323 -0
- package/esm/index.d.ts +3 -0
- package/esm/index.js +7 -0
- package/esm/range.d.ts +18 -0
- package/esm/range.js +126 -0
- package/esm/util.d.ts +24 -0
- package/esm/util.js +74 -0
- package/package.json +17 -27
- package/dist/declares.d.js +0 -2
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,36 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
});
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
get: function get() {
|
|
9
|
-
return _bigwig.BigWig;
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
|
-
Object.defineProperty(exports, "BigBed", {
|
|
13
|
-
enumerable: true,
|
|
14
|
-
get: function get() {
|
|
15
|
-
return _bigbed.BigBed;
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
Object.defineProperty(exports, "Feature", {
|
|
19
|
-
enumerable: true,
|
|
20
|
-
get: function get() {
|
|
21
|
-
return _bbi.Feature;
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
Object.defineProperty(exports, "Header", {
|
|
25
|
-
enumerable: true,
|
|
26
|
-
get: function get() {
|
|
27
|
-
return _bbi.Header;
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
var _bigwig = require("./bigwig");
|
|
32
|
-
|
|
33
|
-
var _bigbed = require("./bigbed");
|
|
34
|
-
|
|
35
|
-
var _bbi = require("./bbi");
|
|
36
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEJpZ1dpZyB9IGZyb20gJy4vYmlnd2lnJ1xuZXhwb3J0IHsgQmlnQmVkIH0gZnJvbSAnLi9iaWdiZWQnXG5leHBvcnQgeyBGZWF0dXJlLCBIZWFkZXIgfSBmcm9tICcuL2JiaSdcbiJdfQ==
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BigBed = exports.BigWig = void 0;
|
|
4
|
+
var bigwig_1 = require("./bigwig");
|
|
5
|
+
Object.defineProperty(exports, "BigWig", { enumerable: true, get: function () { return bigwig_1.BigWig; } });
|
|
6
|
+
var bigbed_1 = require("./bigbed");
|
|
7
|
+
Object.defineProperty(exports, "BigBed", { enumerable: true, get: function () { return bigbed_1.BigBed; } });
|
package/dist/range.js
CHANGED
|
@@ -1,190 +1,127 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.default = void 0;
|
|
9
|
-
|
|
10
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
|
|
12
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
|
|
14
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
-
|
|
16
2
|
/* eslint prefer-rest-params:0, no-nested-ternary:0 */
|
|
17
|
-
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
4
|
/**
|
|
19
5
|
* Adapted from a combination of Range and _Compound in the
|
|
20
6
|
* Dalliance Genome Explorer, (c) Thomas Down 2006-2010.
|
|
21
7
|
*/
|
|
22
|
-
var Range =
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
max: arg2
|
|
31
|
-
}] : 0 in arg1 ? Object.assign({}, arg1) : [arg1];
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
(0, _createClass2.default)(Range, [{
|
|
35
|
-
key: "min",
|
|
36
|
-
value: function min() {
|
|
37
|
-
return this.ranges[0].min;
|
|
8
|
+
var Range = /** @class */ (function () {
|
|
9
|
+
function Range(arg1, arg2) {
|
|
10
|
+
this.ranges =
|
|
11
|
+
arguments.length === 2
|
|
12
|
+
? [{ min: arg1, max: arg2 }]
|
|
13
|
+
: 0 in arg1
|
|
14
|
+
? Object.assign({}, arg1)
|
|
15
|
+
: [arg1];
|
|
38
16
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
return true;
|
|
17
|
+
Range.prototype.min = function () {
|
|
18
|
+
return this.ranges[0].min;
|
|
19
|
+
};
|
|
20
|
+
Range.prototype.max = function () {
|
|
21
|
+
return this.ranges[this.ranges.length - 1].max;
|
|
22
|
+
};
|
|
23
|
+
Range.prototype.contains = function (pos) {
|
|
24
|
+
for (var s = 0; s < this.ranges.length; s += 1) {
|
|
25
|
+
var r = this.ranges[s];
|
|
26
|
+
if (r.min <= pos && r.max >= pos) {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
52
29
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
key: "union",
|
|
78
|
-
value: function union(s1) {
|
|
79
|
-
var ranges = this.getRanges().concat(s1.getRanges()).sort(this.rangeOrder);
|
|
80
|
-
var oranges = [];
|
|
81
|
-
var current = ranges[0];
|
|
82
|
-
|
|
83
|
-
for (var i = 1; i < ranges.length; i += 1) {
|
|
84
|
-
var nxt = ranges[i];
|
|
85
|
-
|
|
86
|
-
if (nxt.min() > current.max() + 1) {
|
|
87
|
-
oranges.push(current);
|
|
88
|
-
current = nxt;
|
|
89
|
-
} else if (nxt.max() > current.max()) {
|
|
90
|
-
current = new Range(current.min(), nxt.max());
|
|
30
|
+
return false;
|
|
31
|
+
};
|
|
32
|
+
Range.prototype.isContiguous = function () {
|
|
33
|
+
return this.ranges.length > 1;
|
|
34
|
+
};
|
|
35
|
+
Range.prototype.getRanges = function () {
|
|
36
|
+
return this.ranges.map(function (r) { return new Range(r.min, r.max); });
|
|
37
|
+
};
|
|
38
|
+
Range.prototype.toString = function () {
|
|
39
|
+
return this.ranges.map(function (r) { return "[".concat(r.min, "-").concat(r.max, "]"); }).join(',');
|
|
40
|
+
};
|
|
41
|
+
Range.prototype.union = function (s1) {
|
|
42
|
+
var ranges = this.getRanges().concat(s1.getRanges()).sort(this.rangeOrder);
|
|
43
|
+
var oranges = [];
|
|
44
|
+
var current = ranges[0];
|
|
45
|
+
for (var i = 1; i < ranges.length; i += 1) {
|
|
46
|
+
var nxt = ranges[i];
|
|
47
|
+
if (nxt.min() > current.max() + 1) {
|
|
48
|
+
oranges.push(current);
|
|
49
|
+
current = nxt;
|
|
50
|
+
}
|
|
51
|
+
else if (nxt.max() > current.max()) {
|
|
52
|
+
current = new Range(current.min(), nxt.max());
|
|
53
|
+
}
|
|
91
54
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
if (oranges.length === 1) {
|
|
97
|
-
return oranges[0];
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
return new Range(oranges);
|
|
101
|
-
}
|
|
102
|
-
}, {
|
|
103
|
-
key: "intersection",
|
|
104
|
-
value: function intersection(arg) {
|
|
105
|
-
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
106
|
-
var s0 = this;
|
|
107
|
-
var s1 = arg;
|
|
108
|
-
var r0 = this.ranges();
|
|
109
|
-
var r1 = s1.ranges();
|
|
110
|
-
var l0 = r0.length;
|
|
111
|
-
var l1 = r1.length;
|
|
112
|
-
var i0 = 0;
|
|
113
|
-
var i1 = 0;
|
|
114
|
-
var or = [];
|
|
115
|
-
|
|
116
|
-
while (i0 < l0 && i1 < l1) {
|
|
117
|
-
s0 = r0[i0];
|
|
118
|
-
s1 = r1[i1];
|
|
119
|
-
var lapMin = Math.max(s0.min(), s1.min());
|
|
120
|
-
var lapMax = Math.min(s0.max(), s1.max());
|
|
121
|
-
|
|
122
|
-
if (lapMax >= lapMin) {
|
|
123
|
-
or.push(new Range(lapMin, lapMax));
|
|
55
|
+
oranges.push(current);
|
|
56
|
+
if (oranges.length === 1) {
|
|
57
|
+
return oranges[0];
|
|
124
58
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
59
|
+
return new Range(oranges);
|
|
60
|
+
};
|
|
61
|
+
Range.prototype.intersection = function (arg) {
|
|
62
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
63
|
+
var s0 = this;
|
|
64
|
+
var s1 = arg;
|
|
65
|
+
var r0 = this.ranges();
|
|
66
|
+
var r1 = s1.ranges();
|
|
67
|
+
var l0 = r0.length;
|
|
68
|
+
var l1 = r1.length;
|
|
69
|
+
var i0 = 0;
|
|
70
|
+
var i1 = 0;
|
|
71
|
+
var or = [];
|
|
72
|
+
while (i0 < l0 && i1 < l1) {
|
|
73
|
+
s0 = r0[i0];
|
|
74
|
+
s1 = r1[i1];
|
|
75
|
+
var lapMin = Math.max(s0.min(), s1.min());
|
|
76
|
+
var lapMax = Math.min(s0.max(), s1.max());
|
|
77
|
+
if (lapMax >= lapMin) {
|
|
78
|
+
or.push(new Range(lapMin, lapMax));
|
|
79
|
+
}
|
|
80
|
+
if (s0.max() > s1.max()) {
|
|
81
|
+
i1 += 1;
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
i0 += 1;
|
|
85
|
+
}
|
|
130
86
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
var
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
a
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
if (a.min() > b.min()) {
|
|
172
|
-
return 1;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
if (a.max() < b.max()) {
|
|
176
|
-
return -1;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
if (b.max() > a.max()) {
|
|
180
|
-
return 1;
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
return 0;
|
|
184
|
-
}
|
|
185
|
-
}]);
|
|
186
|
-
return Range;
|
|
187
|
-
}();
|
|
188
|
-
|
|
87
|
+
if (or.length === 0) {
|
|
88
|
+
throw new Error('found range of length 0');
|
|
89
|
+
}
|
|
90
|
+
if (or.length === 1) {
|
|
91
|
+
return or[0];
|
|
92
|
+
}
|
|
93
|
+
return new Range(or);
|
|
94
|
+
};
|
|
95
|
+
Range.prototype.coverage = function () {
|
|
96
|
+
var tot = 0;
|
|
97
|
+
var rl = this.ranges();
|
|
98
|
+
for (var ri = 0; ri < rl.length; ri += 1) {
|
|
99
|
+
var r = rl[ri];
|
|
100
|
+
tot += r.max() - r.min() + 1;
|
|
101
|
+
}
|
|
102
|
+
return tot;
|
|
103
|
+
};
|
|
104
|
+
Range.prototype.rangeOrder = function (tmpa, tmpb) {
|
|
105
|
+
var a = tmpa;
|
|
106
|
+
var b = tmpb;
|
|
107
|
+
if (arguments.length < 2) {
|
|
108
|
+
b = a;
|
|
109
|
+
a = this;
|
|
110
|
+
}
|
|
111
|
+
if (a.min() < b.min()) {
|
|
112
|
+
return -1;
|
|
113
|
+
}
|
|
114
|
+
if (a.min() > b.min()) {
|
|
115
|
+
return 1;
|
|
116
|
+
}
|
|
117
|
+
if (a.max() < b.max()) {
|
|
118
|
+
return -1;
|
|
119
|
+
}
|
|
120
|
+
if (b.max() > a.max()) {
|
|
121
|
+
return 1;
|
|
122
|
+
}
|
|
123
|
+
return 0;
|
|
124
|
+
};
|
|
125
|
+
return Range;
|
|
126
|
+
}());
|
|
189
127
|
exports.default = Range;
|
|
190
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yYW5nZS50cyJdLCJuYW1lcyI6WyJSYW5nZSIsImFyZzEiLCJhcmcyIiwicmFuZ2VzIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwibWluIiwibWF4IiwiT2JqZWN0IiwiYXNzaWduIiwicG9zIiwicyIsInIiLCJtYXAiLCJqb2luIiwiczEiLCJnZXRSYW5nZXMiLCJjb25jYXQiLCJzb3J0IiwicmFuZ2VPcmRlciIsIm9yYW5nZXMiLCJjdXJyZW50IiwiaSIsIm54dCIsInB1c2giLCJhcmciLCJzMCIsInIwIiwicjEiLCJsMCIsImwxIiwiaTAiLCJpMSIsIm9yIiwibGFwTWluIiwiTWF0aCIsImxhcE1heCIsIkVycm9yIiwidG90IiwicmwiLCJyaSIsInRtcGEiLCJ0bXBiIiwiYSIsImIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUVBOzs7O0lBSXFCQSxLOzs7QUFHbkIsaUJBQW1CQyxJQUFuQixFQUE4QkMsSUFBOUIsRUFBMEM7QUFBQTtBQUFBO0FBQ3hDLFNBQUtDLE1BQUwsR0FBY0MsU0FBUyxDQUFDQyxNQUFWLEtBQXFCLENBQXJCLEdBQXlCLENBQUM7QUFBRUMsTUFBQUEsR0FBRyxFQUFFTCxJQUFQO0FBQWFNLE1BQUFBLEdBQUcsRUFBRUw7QUFBbEIsS0FBRCxDQUF6QixHQUFzRCxLQUFLRCxJQUFMLEdBQVlPLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjLEVBQWQsRUFBa0JSLElBQWxCLENBQVosR0FBc0MsQ0FBQ0EsSUFBRCxDQUExRztBQUNEOzs7OzBCQUVvQjtBQUNuQixhQUFPLEtBQUtFLE1BQUwsQ0FBWSxDQUFaLEVBQWVHLEdBQXRCO0FBQ0Q7OzswQkFFb0I7QUFDbkIsYUFBTyxLQUFLSCxNQUFMLENBQVksS0FBS0EsTUFBTCxDQUFZRSxNQUFaLEdBQXFCLENBQWpDLEVBQW9DRSxHQUEzQztBQUNEOzs7NkJBRWVHLEcsRUFBc0I7QUFDcEMsV0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBYixFQUFnQkEsQ0FBQyxHQUFH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LENBQUNsQyxNQUF6QixFQUFpQ21DLEVBQUUsSUFBSSxDQUF2QyxFQUEwQztBQUN4QyxZQUFNNUIsQ0FBQyxHQUFHMkIsRUFBRSxDQUFDQyxFQUFELENBQVo7QUFDQUYsUUFBQUEsR0FBRyxJQUFJMUIsQ0FBQyxDQUFDTCxHQUFGLEtBQVVLLENBQUMsQ0FBQ04sR0FBRixFQUFWLEdBQW9CLENBQTNCO0FBQ0Q7O0FBQ0QsYUFBT2dDLEdBQVA7QUFDRDs7OytCQUVpQkcsSSxFQUFhQyxJLEVBQXFCO0FBQ2xELFVBQUlDLENBQUMsR0FBR0YsSUFBUjtBQUNBLFVBQUlHLENBQUMsR0FBR0YsSUFBUjs7QUFDQSxVQUFJdEMsU0FBUyxDQUFDQyxNQUFWLEdBQW1CLENBQXZCLEVBQTBCO0FBQ3hCdUMsUUFBQUEsQ0FBQyxHQUFHRCxDQUFKO0FBQ0FBLFFBQUFBLENBQUMsR0FBRyxJQUFKO0FBQ0Q7O0FBRUQsVUFBSUEsQ0FBQyxDQUFDckMsR0FBRixLQUFVc0MsQ0FBQyxDQUFDdEMsR0FBRixFQUFkLEVBQXVCO0FBQ3JCLGVBQU8sQ0FBQyxDQUFSO0FBQ0Q7O0FBQ0QsVUFBSXFDLENBQUMsQ0FBQ3JDLEdBQUYsS0FBVXNDLENBQUMsQ0FBQ3RDLEdBQUYsRUFBZCxFQUF1QjtBQUNyQixlQUFPLENBQVA7QUFDRDs7QUFDRCxVQUFJcUMsQ0FBQyxDQUFDcEMsR0FBRixLQUFVcUMsQ0FBQyxDQUFDckMsR0FBRixFQUFkLEVBQXVCO0FBQ3JCLGVBQU8sQ0FBQyxDQUFSO0FBQ0Q7O0FBQ0QsVUFBSXFDLENBQUMsQ0FBQ3JDLEdBQUYsS0FBVW9DLENBQUMsQ0FBQ3BDLEdBQUYsRUFBZCxFQUF1QjtBQUNyQixlQUFPLENBQVA7QUFDRDs7QUFDRCxhQUFPLENBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludCBwcmVmZXItcmVzdC1wYXJhbXM6MCwgbm8tbmVzdGVkLXRlcm5hcnk6MCAqL1xuXG4vKipcbiAqIEFkYXB0ZWQgZnJvbSBhIGNvbWJpbmF0aW9uIG9mIFJhbmdlIGFuZCBfQ29tcG91bmQgaW4gdGhlXG4gKiBEYWxsaWFuY2UgR2Vub21lIEV4cGxvcmVyLCAoYykgVGhvbWFzIERvd24gMjAwNi0yMDEwLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSYW5nZSB7XG4gIHB1YmxpYyByYW5nZXM6IGFueVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihhcmcxOiBhbnksIGFyZzI/OiBhbnkpIHtcbiAgICB0aGlzLnJhbmdlcyA9IGFyZ3VtZW50cy5sZW5ndGggPT09IDIgPyBbeyBtaW46IGFyZzEsIG1heDogYXJnMiB9XSA6IDAgaW4gYXJnMSA/IE9iamVjdC5hc3NpZ24oe30sIGFyZzEpIDogW2FyZzFdXG4gIH1cblxuICBwdWJsaWMgbWluKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucmFuZ2VzWzBdLm1pblxuICB9XG5cbiAgcHVibGljIG1heCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnJhbmdlc1t0aGlzLnJhbmdlcy5sZW5ndGggLSAxXS5tYXhcbiAgfVxuXG4gIHB1YmxpYyBjb250YWlucyhwb3M6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGZvciAobGV0IHMgPSAwOyBzIDwgdGhpcy5yYW5nZXMubGVuZ3RoOyBzICs9IDEpIHtcbiAgICAgIGNvbnN0IHIgPSB0aGlzLnJhbmdlc1tzXVxuICAgICAgaWYgKHIubWluIDw9IHBvcyAmJiByLm1heCA+PSBwb3MpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBwdWJsaWMgaXNDb250aWd1b3VzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJhbmdlcy5sZW5ndGggPiAxXG4gIH1cblxuICBwdWJsaWMgZ2V0UmFuZ2VzKCk6IFJhbmdlW10ge1xuICAgIHJldHVybiB0aGlzLnJhbmdlcy5tYXAoKHI6IFJhbmdlKSA9PiBuZXcgUmFuZ2Uoci5taW4sIHIubWF4KSlcbiAgfVxuXG4gIHB1YmxpYyB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJhbmdlcy5tYXAoKHI6IFJhbmdlKSA9PiBgWyR7ci5taW59LSR7ci5tYXh9XWApLmpvaW4oJywnKVxuICB9XG5cbiAgcHVibGljIHVuaW9uKHMxOiBSYW5nZSk6IFJhbmdlIHtcbiAgICBjb25zdCByYW5nZXMgPSB0aGlzLmdldFJhbmdlcygpXG4gICAgICAuY29uY2F0KHMxLmdldFJhbmdlcygpKVxuICAgICAgLnNvcnQodGhpcy5yYW5nZU9yZGVyKVxuICAgIGNvbnN0IG9yYW5nZXMgPSBbXVxuICAgIGxldCBjdXJyZW50ID0gcmFuZ2VzWzBdXG5cbiAgICBmb3IgKGxldCBpID0gMTsgaSA8IHJhbmdlcy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgY29uc3Qgbnh0ID0gcmFuZ2VzW2ldXG4gICAgICBpZiAobnh0Lm1pbigpID4gY3VycmVudC5tYXgoKSArIDEpIHtcbiAgICAgICAgb3Jhbmdlcy5wdXNoKGN1cnJlbnQpXG4gICAgICAgIGN1cnJlbnQgPSBueHRcbiAgICAgIH0gZWxzZSBpZiAobnh0Lm1heCgpID4gY3VycmVudC5tYXgoKSkge1xuICAgICAgICBjdXJyZW50ID0gbmV3IFJhbmdlKGN1cnJlbnQubWluKCksIG54dC5tYXgoKSlcbiAgICAgIH1cbiAgICB9XG4gICAgb3Jhbmdlcy5wdXNoKGN1cnJlbnQpXG5cbiAgICBpZiAob3Jhbmdlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHJldHVybiBvcmFuZ2VzWzBdXG4gICAgfVxuICAgIHJldHVybiBuZXcgUmFuZ2Uob3JhbmdlcylcbiAgfVxuXG4gIHB1YmxpYyBpbnRlcnNlY3Rpb24oYXJnOiBSYW5nZSk6IFJhbmdlIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXNcbiAgICBsZXQgczAgPSB0aGlzXG4gICAgbGV0IHMxID0gYXJnXG4gICAgY29uc3QgcjAgPSB0aGlzLnJhbmdlcygpXG4gICAgY29uc3QgcjEgPSBzMS5yYW5nZXMoKVxuICAgIGNvbnN0IGwwID0gcjAubGVuZ3RoXG5cbiAgICBjb25zdCBsMSA9IHIxLmxlbmd0aFxuICAgIGxldCBpMCA9IDBcblxuICAgIGxldCBpMSA9IDBcbiAgICBjb25zdCBvciA9IFtdXG5cbiAgICB3aGlsZSAoaTAgPCBsMCAmJiBpMSA8IGwxKSB7XG4gICAgICBzMCA9IHIwW2kwXVxuICAgICAgczEgPSByMVtpMV1cbiAgICAgIGNvbnN0IGxhcE1pbiA9IE1hdGgubWF4KHMwLm1pbigpLCBzMS5taW4oKSlcbiAgICAgIGNvbnN0IGxhcE1heCA9IE1hdGgubWluKHMwLm1heCgpLCBzMS5tYXgoKSlcbiAgICAgIGlmIChsYXBNYXggPj0gbGFwTWluKSB7XG4gICAgICAgIG9yLnB1c2gobmV3IFJhbmdlKGxhcE1pbiwgbGFwTWF4KSlcbiAgICAgIH1cbiAgICAgIGlmIChzMC5tYXgoKSA+IHMxLm1heCgpKSB7XG4gICAgICAgIGkxICs9IDFcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGkwICs9IDFcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAob3IubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ZvdW5kIHJhbmdlIG9mIGxlbmd0aCAwJylcbiAgICB9XG4gICAgaWYgKG9yLmxlbmd0aCA9PT0gMSkge1xuICAgICAgcmV0dXJuIG9yWzBdXG4gICAgfVxuICAgIHJldHVybiBuZXcgUmFuZ2Uob3IpXG4gIH1cblxuICBwdWJsaWMgY292ZXJhZ2UoKTogbnVtYmVyIHtcbiAgICBsZXQgdG90ID0gMFxuICAgIGNvbnN0IHJsID0gdGhpcy5yYW5nZXMoKVxuICAgIGZvciAobGV0IHJpID0gMDsgcmkgPCBybC5sZW5ndGg7IHJpICs9IDEpIHtcbiAgICAgIGNvbnN0IHIgPSBybFtyaV1cbiAgICAgIHRvdCArPSByLm1heCgpIC0gci5taW4oKSArIDFcbiAgICB9XG4gICAgcmV0dXJuIHRvdFxuICB9XG5cbiAgcHVibGljIHJhbmdlT3JkZXIodG1wYTogUmFuZ2UsIHRtcGI6IFJhbmdlKTogbnVtYmVyIHtcbiAgICBsZXQgYSA9IHRtcGFcbiAgICBsZXQgYiA9IHRtcGJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA8IDIpIHtcbiAgICAgIGIgPSBhXG4gICAgICBhID0gdGhpc1xuICAgIH1cblxuICAgIGlmIChhLm1pbigpIDwgYi5taW4oKSkge1xuICAgICAgcmV0dXJuIC0xXG4gICAgfVxuICAgIGlmIChhLm1pbigpID4gYi5taW4oKSkge1xuICAgICAgcmV0dXJuIDFcbiAgICB9XG4gICAgaWYgKGEubWF4KCkgPCBiLm1heCgpKSB7XG4gICAgICByZXR1cm4gLTFcbiAgICB9XG4gICAgaWYgKGIubWF4KCkgPiBhLm1heCgpKSB7XG4gICAgICByZXR1cm4gMVxuICAgIH1cbiAgICByZXR1cm4gMFxuICB9XG59XG4iXX0=
|
package/dist/util.js
CHANGED
|
@@ -1,81 +1,92 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
var
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
var
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
18
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
19
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
20
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
21
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
22
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
23
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
24
|
+
});
|
|
25
|
+
};
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
|
+
exports.abortBreakPoint = exports.checkAbortSignal = exports.groupBlocks = exports.AbortError = void 0;
|
|
31
55
|
/* eslint no-bitwise: ["error", { "allow": ["|"] }] */
|
|
32
|
-
var AbortError =
|
|
33
|
-
|
|
34
|
-
function (
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
_this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(AbortError).call(this, message));
|
|
42
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "code", void 0);
|
|
43
|
-
_this.code = 'ERR_ABORTED';
|
|
44
|
-
return _this;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
return AbortError;
|
|
48
|
-
}((0, _wrapNativeSuper2.default)(Error)); // sort blocks by file offset and
|
|
49
|
-
// group blocks that are within 2KB of eachother
|
|
50
|
-
|
|
51
|
-
|
|
56
|
+
var AbortError = /** @class */ (function (_super) {
|
|
57
|
+
__extends(AbortError, _super);
|
|
58
|
+
function AbortError(message) {
|
|
59
|
+
var _this = _super.call(this, message) || this;
|
|
60
|
+
_this.code = 'ERR_ABORTED';
|
|
61
|
+
return _this;
|
|
62
|
+
}
|
|
63
|
+
return AbortError;
|
|
64
|
+
}(Error));
|
|
52
65
|
exports.AbortError = AbortError;
|
|
53
|
-
|
|
66
|
+
// sort blocks by file offset and
|
|
67
|
+
// group blocks that are within 2KB of eachother
|
|
54
68
|
function groupBlocks(blocks) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
blocks.sort(function (b0, b1) { return (b0.offset | 0) - (b1.offset | 0); });
|
|
70
|
+
var blockGroups = [];
|
|
71
|
+
var lastBlock;
|
|
72
|
+
var lastBlockEnd;
|
|
73
|
+
for (var i = 0; i < blocks.length; i += 1) {
|
|
74
|
+
if (lastBlock && blocks[i].offset - lastBlockEnd <= 2000) {
|
|
75
|
+
lastBlock.length += blocks[i].length - lastBlockEnd + blocks[i].offset;
|
|
76
|
+
lastBlock.blocks.push(blocks[i]);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
blockGroups.push((lastBlock = {
|
|
80
|
+
blocks: [blocks[i]],
|
|
81
|
+
length: blocks[i].length,
|
|
82
|
+
offset: blocks[i].offset,
|
|
83
|
+
}));
|
|
84
|
+
}
|
|
85
|
+
lastBlockEnd = lastBlock.offset + lastBlock.length;
|
|
72
86
|
}
|
|
73
|
-
|
|
74
|
-
lastBlockEnd = lastBlock.offset + lastBlock.length;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
return blockGroups;
|
|
87
|
+
return blockGroups;
|
|
78
88
|
}
|
|
89
|
+
exports.groupBlocks = groupBlocks;
|
|
79
90
|
/**
|
|
80
91
|
* Properly check if the given AbortSignal is aborted.
|
|
81
92
|
* Per the standard, if the signal reads as aborted,
|
|
@@ -87,55 +98,40 @@ function groupBlocks(blocks) {
|
|
|
87
98
|
* @param {AbortSignal} [signal] an AbortSignal, or anything with an `aborted` attribute
|
|
88
99
|
* @returns nothing
|
|
89
100
|
*/
|
|
90
|
-
|
|
91
|
-
|
|
92
101
|
function checkAbortSignal(signal) {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
102
|
+
if (!signal) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
if (signal.aborted) {
|
|
106
|
+
// console.log('bam aborted!')
|
|
107
|
+
if (typeof DOMException !== 'undefined') {
|
|
108
|
+
throw new DOMException('aborted', 'AbortError');
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
var e = new AbortError('aborted');
|
|
112
|
+
e.code = 'ERR_ABORTED';
|
|
113
|
+
throw e;
|
|
114
|
+
}
|
|
103
115
|
}
|
|
104
|
-
}
|
|
105
116
|
}
|
|
117
|
+
exports.checkAbortSignal = checkAbortSignal;
|
|
106
118
|
/**
|
|
107
119
|
* Skips to the next tick, then runs `checkAbortSignal`.
|
|
108
120
|
* Await this to inside an otherwise synchronous loop to
|
|
109
121
|
* provide a place to break when an abort signal is received.
|
|
110
122
|
* @param {AbortSignal} signal
|
|
111
123
|
*/
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
function
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
switch (_context.prev = _context.next) {
|
|
125
|
-
case 0:
|
|
126
|
-
_context.next = 2;
|
|
127
|
-
return Promise.resolve();
|
|
128
|
-
|
|
129
|
-
case 2:
|
|
130
|
-
checkAbortSignal(signal);
|
|
131
|
-
|
|
132
|
-
case 3:
|
|
133
|
-
case "end":
|
|
134
|
-
return _context.stop();
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}, _callee);
|
|
138
|
-
}));
|
|
139
|
-
return _abortBreakPoint.apply(this, arguments);
|
|
124
|
+
function abortBreakPoint(signal) {
|
|
125
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
126
|
+
return __generator(this, function (_a) {
|
|
127
|
+
switch (_a.label) {
|
|
128
|
+
case 0: return [4 /*yield*/, Promise.resolve()];
|
|
129
|
+
case 1:
|
|
130
|
+
_a.sent();
|
|
131
|
+
checkAbortSignal(signal);
|
|
132
|
+
return [2 /*return*/];
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
});
|
|
140
136
|
}
|
|
141
|
-
|
|
137
|
+
exports.abortBreakPoint = abortBreakPoint;
|