@gmod/bam 4.0.0 → 5.0.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 (68) hide show
  1. package/CHANGELOG.md +4 -4
  2. package/README.md +7 -11
  3. package/dist/bai.d.ts +1 -1
  4. package/dist/bai.js +151 -169
  5. package/dist/bai.js.map +1 -1
  6. package/dist/bamFile.d.ts +4 -5
  7. package/dist/bamFile.js +271 -350
  8. package/dist/bamFile.js.map +1 -1
  9. package/dist/chunk.d.ts +1 -1
  10. package/dist/chunk.js +5 -0
  11. package/dist/chunk.js.map +1 -1
  12. package/dist/csi.d.ts +1 -1
  13. package/dist/csi.js +140 -145
  14. package/dist/csi.js.map +1 -1
  15. package/dist/htsget.d.ts +1 -2
  16. package/dist/htsget.js +131 -161
  17. package/dist/htsget.js.map +1 -1
  18. package/dist/indexFile.d.ts +1 -1
  19. package/dist/indexFile.js +2 -0
  20. package/dist/indexFile.js.map +1 -1
  21. package/dist/nullIndex.js +2 -13
  22. package/dist/nullIndex.js.map +1 -1
  23. package/dist/record.d.ts +5 -5
  24. package/dist/record.js +44 -37
  25. package/dist/record.js.map +1 -1
  26. package/dist/util.d.ts +4 -2
  27. package/dist/util.js +25 -15
  28. package/dist/util.js.map +1 -1
  29. package/dist/virtualOffset.d.ts +1 -1
  30. package/dist/virtualOffset.js +2 -0
  31. package/dist/virtualOffset.js.map +1 -1
  32. package/esm/bai.d.ts +1 -1
  33. package/esm/bai.js +13 -13
  34. package/esm/bai.js.map +1 -1
  35. package/esm/bamFile.d.ts +4 -5
  36. package/esm/bamFile.js +49 -50
  37. package/esm/bamFile.js.map +1 -1
  38. package/esm/chunk.d.ts +1 -1
  39. package/esm/chunk.js +5 -0
  40. package/esm/chunk.js.map +1 -1
  41. package/esm/csi.d.ts +1 -1
  42. package/esm/csi.js +26 -28
  43. package/esm/csi.js.map +1 -1
  44. package/esm/htsget.d.ts +1 -2
  45. package/esm/htsget.js +21 -11
  46. package/esm/htsget.js.map +1 -1
  47. package/esm/indexFile.d.ts +1 -1
  48. package/esm/indexFile.js +2 -0
  49. package/esm/indexFile.js.map +1 -1
  50. package/esm/record.d.ts +5 -5
  51. package/esm/record.js +44 -37
  52. package/esm/record.js.map +1 -1
  53. package/esm/util.d.ts +4 -2
  54. package/esm/util.js +20 -1
  55. package/esm/util.js.map +1 -1
  56. package/esm/virtualOffset.d.ts +1 -1
  57. package/esm/virtualOffset.js +2 -0
  58. package/esm/virtualOffset.js.map +1 -1
  59. package/package.json +6 -6
  60. package/src/bai.ts +11 -8
  61. package/src/bamFile.ts +22 -41
  62. package/src/chunk.ts +1 -1
  63. package/src/csi.ts +22 -19
  64. package/src/htsget.ts +18 -9
  65. package/src/indexFile.ts +1 -1
  66. package/src/record.ts +44 -43
  67. package/src/util.ts +23 -3
  68. package/src/virtualOffset.ts +1 -1
package/dist/htsget.js CHANGED
@@ -15,185 +15,155 @@ 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
- };
34
- var __rest = (this && this.__rest) || function (s, e) {
35
- var t = {};
36
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
37
- t[p] = s[p];
38
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
39
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
40
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
41
- t[p[i]] = s[p[i]];
42
- }
43
- return t;
44
- };
45
- var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
46
- var __asyncValues = (this && this.__asyncValues) || function (o) {
47
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
48
- var m = o[Symbol.asyncIterator], i;
49
- return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
50
- function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
51
- function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
52
- };
53
- var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {
54
- var i, p;
55
- return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
56
- function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }
57
- };
58
- var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
59
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
60
- var g = generator.apply(thisArg, _arguments || []), i, q = [];
61
- return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
62
- function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
63
- function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
64
- function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
65
- function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
66
- function fulfill(value) { resume("next", value); }
67
- function reject(value) { resume("throw", value); }
68
- function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
69
- };
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
+ })();
70
35
  Object.defineProperty(exports, "__esModule", { value: true });
71
36
  const bgzf_filehandle_1 = require("@gmod/bgzf-filehandle");
72
- const buffer_1 = require("buffer");
37
+ const util_1 = require("./util");
73
38
  const bamFile_1 = __importStar(require("./bamFile"));
74
39
  const sam_1 = require("./sam");
75
- function concat(arr, opts) {
76
- return __awaiter(this, void 0, void 0, function* () {
77
- const res = yield Promise.all(arr.map((chunk) => __awaiter(this, void 0, void 0, function* () {
78
- const { url, headers } = chunk;
79
- if (url.startsWith('data:')) {
80
- return buffer_1.Buffer.from(url.split(',')[1], 'base64');
81
- }
82
- else {
83
- //remove referer header, it is not even allowed to be specified
84
- // @ts-expect-error
85
- const { referer } = headers, rest = __rest(headers, ["referer"]);
86
- const res = yield fetch(url, Object.assign(Object.assign({}, opts), { headers: Object.assign(Object.assign({}, opts === null || opts === void 0 ? void 0 : opts.headers), rest) }));
87
- if (!res.ok) {
88
- throw new Error(`HTTP ${res.status} fetching ${url}: ${yield res.text()}`);
89
- }
90
- return buffer_1.Buffer.from(yield res.arrayBuffer());
40
+ async function concat(arr, opts) {
41
+ const res = await Promise.all(arr.map(async (chunk) => {
42
+ const { url, headers } = chunk;
43
+ if (url.startsWith('data:')) {
44
+ // @ts-expect-error
45
+ return Uint8Array.fromBase64(url.split(',')[1], 'base64');
46
+ }
47
+ else {
48
+ //remove referer header, it is not even allowed to be specified
49
+ // @ts-expect-error
50
+ const { referer, ...rest } = headers;
51
+ const res = await fetch(url, {
52
+ ...opts,
53
+ headers: { ...opts?.headers, ...rest },
54
+ });
55
+ if (!res.ok) {
56
+ throw new Error(`HTTP ${res.status} fetching ${url}: ${await res.text()}`);
91
57
  }
92
- })));
93
- return buffer_1.Buffer.concat(yield Promise.all(res.map(elt => (0, bgzf_filehandle_1.unzip)(elt))));
94
- });
58
+ return new Uint8Array(await res.arrayBuffer());
59
+ }
60
+ }));
61
+ return (0, util_1.concatUint8Array)(await Promise.all(res.map(elt => (0, bgzf_filehandle_1.unzip)(elt))));
95
62
  }
96
63
  class HtsgetFile extends bamFile_1.default {
64
+ baseUrl;
65
+ trackId;
97
66
  constructor(args) {
98
67
  super({ htsget: true });
99
68
  this.baseUrl = args.baseUrl;
100
69
  this.trackId = args.trackId;
101
70
  }
102
- streamRecordsForRange(chr, min, max, opts) {
103
- return __asyncGenerator(this, arguments, function* streamRecordsForRange_1() {
104
- var _a;
105
- const base = `${this.baseUrl}/${this.trackId}`;
106
- const url = `${base}?referenceName=${chr}&start=${min}&end=${max}&format=BAM`;
107
- const chrId = (_a = this.chrToIndex) === null || _a === void 0 ? void 0 : _a[chr];
108
- if (chrId === undefined) {
109
- yield yield __await([]);
71
+ async *streamRecordsForRange(chr, min, max, opts) {
72
+ const base = `${this.baseUrl}/${this.trackId}`;
73
+ const url = `${base}?referenceName=${chr}&start=${min}&end=${max}&format=BAM`;
74
+ const chrId = this.chrToIndex?.[chr];
75
+ if (chrId === undefined) {
76
+ yield [];
77
+ }
78
+ else {
79
+ const result = await fetch(url, { ...opts });
80
+ if (!result.ok) {
81
+ throw new Error(`HTTP ${result.status} fetching ${url}: ${await result.text()}`);
110
82
  }
111
- else {
112
- const result = yield __await(fetch(url, Object.assign({}, opts)));
113
- if (!result.ok) {
114
- throw new Error(`HTTP ${result.status} fetching ${url}: ${yield __await(result.text())}`);
115
- }
116
- const data = yield __await(result.json());
117
- const uncba = yield __await(concat(data.htsget.urls.slice(1), opts));
118
- yield __await(yield* __asyncDelegator(__asyncValues(this._fetchChunkFeatures([
119
- // fake stuff to pretend to be a Chunk
120
- {
121
- buffer: uncba,
122
- _fetchedSize: undefined,
123
- bin: 0,
124
- compareTo() {
125
- return 0;
126
- },
127
- toUniqueString() {
128
- return `${chr}_${min}_${max}`;
129
- },
130
- fetchedSize() {
131
- return 0;
132
- },
133
- minv: {
134
- dataPosition: 0,
135
- blockPosition: 0,
136
- compareTo: () => 0,
137
- },
138
- maxv: {
139
- dataPosition: Number.MAX_SAFE_INTEGER,
140
- blockPosition: 0,
141
- compareTo: () => 0,
142
- },
143
- toString() {
144
- return `${chr}_${min}_${max}`;
145
- },
83
+ const data = await result.json();
84
+ const uncba = await concat(data.htsget.urls.slice(1), opts);
85
+ yield* this._fetchChunkFeatures([
86
+ // fake stuff to pretend to be a Chunk
87
+ {
88
+ buffer: uncba,
89
+ _fetchedSize: undefined,
90
+ bin: 0,
91
+ compareTo() {
92
+ return 0;
146
93
  },
147
- ], chrId, min, max, opts))));
148
- }
149
- });
94
+ toUniqueString() {
95
+ return `${chr}_${min}_${max}`;
96
+ },
97
+ fetchedSize() {
98
+ return 0;
99
+ },
100
+ minv: {
101
+ dataPosition: 0,
102
+ blockPosition: 0,
103
+ compareTo: () => 0,
104
+ },
105
+ maxv: {
106
+ dataPosition: Number.MAX_SAFE_INTEGER,
107
+ blockPosition: 0,
108
+ compareTo: () => 0,
109
+ },
110
+ toString() {
111
+ return `${chr}_${min}_${max}`;
112
+ },
113
+ },
114
+ ], chrId, min, max, opts);
115
+ }
150
116
  }
151
- _readChunk(_a) {
152
- return __awaiter(this, arguments, void 0, function* ({ chunk }) {
153
- if (!chunk.buffer) {
154
- throw new Error('expected chunk.buffer in htsget');
155
- }
156
- return { data: chunk.buffer, cpositions: [], dpositions: [], chunk };
157
- });
117
+ // @ts-expect-error
118
+ async _readChunk({ chunk }) {
119
+ if (!chunk.buffer) {
120
+ throw new Error('expected chunk.buffer in htsget');
121
+ }
122
+ return {
123
+ data: chunk.buffer,
124
+ cpositions: [],
125
+ dpositions: [],
126
+ chunk,
127
+ };
158
128
  }
159
- getHeader() {
160
- return __awaiter(this, arguments, void 0, function* (opts = {}) {
161
- const url = `${this.baseUrl}/${this.trackId}?referenceName=na&class=header`;
162
- const result = yield fetch(url, opts);
163
- if (!result.ok) {
164
- throw new Error(`HTTP ${result.status} fetching ${url}: ${yield result.text()}`);
165
- }
166
- const data = yield result.json();
167
- const uncba = yield concat(data.htsget.urls, opts);
168
- if (uncba.readInt32LE(0) !== bamFile_1.BAM_MAGIC) {
169
- throw new Error('Not a BAM file');
170
- }
171
- const headLen = uncba.readInt32LE(4);
172
- const headerText = uncba.toString('utf8', 8, 8 + headLen);
173
- const samHeader = (0, sam_1.parseHeaderText)(headerText);
174
- // use the @SQ lines in the header to figure out the
175
- // mapping between ref ref ID numbers and names
176
- const idToName = [];
177
- const nameToId = {};
178
- const sqLines = samHeader.filter(l => l.tag === 'SQ');
179
- for (const [refId, sqLine] of sqLines.entries()) {
180
- let refName = '';
181
- let length = 0;
182
- for (const item of sqLine.data) {
183
- if (item.tag === 'SN') {
184
- refName = item.value;
185
- }
186
- else if (item.tag === 'LN') {
187
- length = +item.value;
188
- }
129
+ async getHeader(opts = {}) {
130
+ const url = `${this.baseUrl}/${this.trackId}?referenceName=na&class=header`;
131
+ const result = await fetch(url, opts);
132
+ if (!result.ok) {
133
+ throw new Error(`HTTP ${result.status} fetching ${url}: ${await result.text()}`);
134
+ }
135
+ const data = await result.json();
136
+ const uncba = await concat(data.htsget.urls, opts);
137
+ const dataView = new DataView(uncba.buffer);
138
+ if (dataView.getInt32(0, true) !== bamFile_1.BAM_MAGIC) {
139
+ throw new Error('Not a BAM file');
140
+ }
141
+ const headLen = dataView.getInt32(4, true);
142
+ const decoder = new TextDecoder('utf8');
143
+ const headerText = decoder.decode(uncba.subarray(8, 8 + headLen));
144
+ const samHeader = (0, sam_1.parseHeaderText)(headerText);
145
+ // use the @SQ lines in the header to figure out the
146
+ // mapping between ref ref ID numbers and names
147
+ const idToName = [];
148
+ const nameToId = {};
149
+ const sqLines = samHeader.filter(l => l.tag === 'SQ');
150
+ for (const [refId, sqLine] of sqLines.entries()) {
151
+ let refName = '';
152
+ let length = 0;
153
+ for (const item of sqLine.data) {
154
+ if (item.tag === 'SN') {
155
+ refName = item.value;
156
+ }
157
+ else if (item.tag === 'LN') {
158
+ length = +item.value;
189
159
  }
190
- nameToId[refName] = refId;
191
- idToName[refId] = { refName, length };
192
160
  }
193
- this.chrToIndex = nameToId;
194
- this.indexToChr = idToName;
195
- return samHeader;
196
- });
161
+ nameToId[refName] = refId;
162
+ idToName[refId] = { refName, length };
163
+ }
164
+ this.chrToIndex = nameToId;
165
+ this.indexToChr = idToName;
166
+ return samHeader;
197
167
  }
198
168
  }
199
169
  exports.default = HtsgetFile;
@@ -1 +1 @@
1
- {"version":3,"file":"htsget.js","sourceRoot":"","sources":["../src/htsget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"htsget.js","sourceRoot":"","sources":["../src/htsget.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { GenericFilehandle } from 'generic-filehandle';
1
+ import { GenericFilehandle } from 'generic-filehandle2';
2
2
  import Chunk from './chunk';
3
3
  import { BaseOpts } from './util';
4
4
  export default abstract class IndexFile {
package/dist/indexFile.js CHANGED
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  class IndexFile {
4
+ filehandle;
5
+ renameRefSeq;
4
6
  /**
5
7
  * @param {filehandle} filehandle
6
8
  * @param {function} [renameRefSeqs]
@@ -1 +1 @@
1
- {"version":3,"file":"indexFile.js","sourceRoot":"","sources":["../src/indexFile.ts"],"names":[],"mappings":";;AAIA,MAA8B,SAAS;IAIrC;;;OAGG;IACH,YAAY,EACV,UAAU,EACV,YAAY,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAIhC;QACC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IAClC,CAAC;CAcF;AA/BD,4BA+BC"}
1
+ {"version":3,"file":"indexFile.js","sourceRoot":"","sources":["../src/indexFile.ts"],"names":[],"mappings":";;AAIA,MAA8B,SAAS;IAC9B,UAAU,CAAmB;IAC7B,YAAY,CAAuB;IAE1C;;;OAGG;IACH,YAAY,EACV,UAAU,EACV,YAAY,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAIhC;QACC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IAClC,CAAC;CAcF;AA/BD,4BA+BC"}
package/dist/nullIndex.js CHANGED
@@ -1,13 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
12
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
4
  };
@@ -20,10 +11,8 @@ class NullIndex extends indexFile_1.default {
20
11
  _parse() {
21
12
  throw new Error('never called');
22
13
  }
23
- indexCov() {
24
- return __awaiter(this, void 0, void 0, function* () {
25
- throw new Error('never called');
26
- });
14
+ async indexCov() {
15
+ throw new Error('never called');
27
16
  }
28
17
  blocksForRange() {
29
18
  throw new Error('never called');
@@ -1 +1 @@
1
- {"version":3,"file":"nullIndex.js","sourceRoot":"","sources":["../src/nullIndex.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,4DAAmC;AAEnC,MAAqB,SAAU,SAAQ,mBAAS;IACvC,SAAS;QACd,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;IACjC,CAAC;IACS,MAAM;QACd,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;IACjC,CAAC;IAEY,QAAQ;;YACnB,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;QACjC,CAAC;KAAA;IAEM,cAAc;QACnB,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;IACjC,CAAC;CACF;AAfD,4BAeC"}
1
+ {"version":3,"file":"nullIndex.js","sourceRoot":"","sources":["../src/nullIndex.ts"],"names":[],"mappings":";;;;;AAAA,4DAAmC;AAEnC,MAAqB,SAAU,SAAQ,mBAAS;IACvC,SAAS;QACd,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;IACjC,CAAC;IACS,MAAM;QACd,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;IACjC,CAAC;IAEM,KAAK,CAAC,QAAQ;QACnB,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;IACjC,CAAC;IAEM,cAAc;QACnB,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;IACjC,CAAC;CACF;AAfD,4BAeC"}
package/dist/record.d.ts CHANGED
@@ -1,17 +1,17 @@
1
- import type { Buffer } from 'buffer';
2
1
  interface Bytes {
3
2
  start: number;
4
3
  end: number;
5
- byteArray: Buffer;
4
+ byteArray: Uint8Array;
6
5
  }
7
6
  export default class BamRecord {
7
+ #private;
8
8
  fileOffset: number;
9
9
  private bytes;
10
10
  constructor(args: {
11
11
  bytes: Bytes;
12
12
  fileOffset: number;
13
13
  });
14
- get byteArray(): Buffer;
14
+ get byteArray(): Uint8Array<ArrayBufferLike>;
15
15
  get flags(): number;
16
16
  get ref_id(): number;
17
17
  get start(): number;
@@ -19,7 +19,7 @@ export default class BamRecord {
19
19
  get id(): number;
20
20
  get mq(): number | undefined;
21
21
  get score(): number | undefined;
22
- get qual(): Buffer | undefined;
22
+ get qual(): Uint8Array<ArrayBufferLike> | undefined;
23
23
  get strand(): 1 | -1;
24
24
  get b0(): number;
25
25
  get name(): string;
@@ -61,7 +61,7 @@ export default class BamRecord {
61
61
  get read_name_length(): number;
62
62
  get num_seq_bytes(): number;
63
63
  get seq(): string;
64
- get pair_orientation(): string;
64
+ get pair_orientation(): string | undefined;
65
65
  get bin_mq_nl(): number;
66
66
  get flag_nc(): number;
67
67
  get seq_length(): number;