@gmod/cram 1.6.3 → 1.7.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 (255) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/craiIndex.d.ts +19 -12
  3. package/dist/craiIndex.js +63 -123
  4. package/dist/craiIndex.js.map +1 -1
  5. package/dist/cram-bundle.js +2 -17
  6. package/dist/cram-bundle.js.LICENSE.txt +17 -0
  7. package/dist/cramFile/codecs/_base.d.ts +26 -5
  8. package/dist/cramFile/codecs/_base.js +3 -39
  9. package/dist/cramFile/codecs/_base.js.map +1 -1
  10. package/dist/cramFile/codecs/beta.d.ts +7 -3
  11. package/dist/cramFile/codecs/beta.js +13 -31
  12. package/dist/cramFile/codecs/beta.js.map +1 -1
  13. package/dist/cramFile/codecs/byteArrayLength.d.ts +13 -7
  14. package/dist/cramFile/codecs/byteArrayLength.js +22 -41
  15. package/dist/cramFile/codecs/byteArrayLength.js.map +1 -1
  16. package/dist/cramFile/codecs/byteArrayStop.d.ts +9 -5
  17. package/dist/cramFile/codecs/byteArrayStop.js +25 -46
  18. package/dist/cramFile/codecs/byteArrayStop.js.map +1 -1
  19. package/dist/cramFile/codecs/dataSeriesTypes.d.ts +4 -0
  20. package/dist/cramFile/codecs/dataSeriesTypes.js +3 -0
  21. package/dist/cramFile/codecs/dataSeriesTypes.js.map +1 -0
  22. package/dist/cramFile/codecs/external.d.ts +10 -6
  23. package/dist/cramFile/codecs/external.js +26 -44
  24. package/dist/cramFile/codecs/external.js.map +1 -1
  25. package/dist/cramFile/codecs/gamma.d.ts +7 -3
  26. package/dist/cramFile/codecs/gamma.js +16 -34
  27. package/dist/cramFile/codecs/gamma.js.map +1 -1
  28. package/dist/cramFile/codecs/getBits.d.ts +7 -0
  29. package/dist/cramFile/codecs/getBits.js +26 -0
  30. package/dist/cramFile/codecs/getBits.js.map +1 -0
  31. package/dist/cramFile/codecs/huffman.d.ts +17 -13
  32. package/dist/cramFile/codecs/huffman.js +76 -85
  33. package/dist/cramFile/codecs/huffman.js.map +1 -1
  34. package/dist/cramFile/codecs/index.d.ts +4 -2
  35. package/dist/cramFile/codecs/index.js +12 -13
  36. package/dist/cramFile/codecs/index.js.map +1 -1
  37. package/dist/cramFile/codecs/subexp.d.ts +7 -3
  38. package/dist/cramFile/codecs/subexp.js +19 -36
  39. package/dist/cramFile/codecs/subexp.js.map +1 -1
  40. package/dist/cramFile/constants.d.ts +35 -35
  41. package/dist/cramFile/constants.js +1 -1
  42. package/dist/cramFile/constants.js.map +1 -1
  43. package/dist/cramFile/container/compressionScheme.d.ts +57 -11
  44. package/dist/cramFile/container/compressionScheme.js +37 -32
  45. package/dist/cramFile/container/compressionScheme.js.map +1 -1
  46. package/dist/cramFile/container/index.d.ts +23 -9
  47. package/dist/cramFile/container/index.js +74 -144
  48. package/dist/cramFile/container/index.js.map +1 -1
  49. package/dist/cramFile/encoding.d.ts +78 -0
  50. package/dist/cramFile/encoding.js +3 -0
  51. package/dist/cramFile/encoding.js.map +1 -0
  52. package/dist/cramFile/file.d.ts +91 -41
  53. package/dist/cramFile/file.js +234 -368
  54. package/dist/cramFile/file.js.map +1 -1
  55. package/dist/cramFile/filehandle.d.ts +2 -0
  56. package/dist/cramFile/filehandle.js +3 -0
  57. package/dist/cramFile/filehandle.js.map +1 -0
  58. package/dist/cramFile/index.d.ts +1 -1
  59. package/dist/cramFile/index.js +1 -1
  60. package/dist/cramFile/index.js.map +1 -1
  61. package/dist/cramFile/record.d.ts +61 -17
  62. package/dist/cramFile/record.js +153 -77
  63. package/dist/cramFile/record.js.map +1 -1
  64. package/dist/cramFile/sectionParsers.d.ts +99 -8
  65. package/dist/cramFile/sectionParsers.js +70 -80
  66. package/dist/cramFile/sectionParsers.js.map +1 -1
  67. package/dist/cramFile/slice/decodeRecord.d.ts +30 -2
  68. package/dist/cramFile/slice/decodeRecord.js +148 -118
  69. package/dist/cramFile/slice/decodeRecord.js.map +1 -1
  70. package/dist/cramFile/slice/index.d.ts +21 -14
  71. package/dist/cramFile/slice/index.js +286 -381
  72. package/dist/cramFile/slice/index.js.map +1 -1
  73. package/dist/cramFile/util.d.ts +11 -5
  74. package/dist/cramFile/util.js +19 -97
  75. package/dist/cramFile/util.js.map +1 -1
  76. package/dist/errors.d.ts +5 -10
  77. package/dist/errors.js +11 -62
  78. package/dist/errors.js.map +1 -1
  79. package/dist/index.d.ts +3 -3
  80. package/dist/index.js +3 -3
  81. package/dist/index.js.map +1 -1
  82. package/dist/indexedCramFile.d.ts +37 -12
  83. package/dist/indexedCramFile.js +114 -154
  84. package/dist/indexedCramFile.js.map +1 -1
  85. package/dist/io/index.d.ts +5 -5
  86. package/dist/io/index.js +9 -9
  87. package/dist/io/index.js.map +1 -1
  88. package/dist/rans/constants.js +3 -3
  89. package/dist/rans/constants.js.map +1 -1
  90. package/dist/rans/d04.js +15 -15
  91. package/dist/rans/d04.js.map +1 -1
  92. package/dist/rans/d14.js +21 -21
  93. package/dist/rans/d14.js.map +1 -1
  94. package/dist/rans/decoding.js +27 -30
  95. package/dist/rans/decoding.js.map +1 -1
  96. package/dist/rans/frequencies.js +11 -11
  97. package/dist/rans/frequencies.js.map +1 -1
  98. package/dist/rans/index.js +46 -49
  99. package/dist/rans/index.js.map +1 -1
  100. package/dist/sam.d.ts +8 -1
  101. package/dist/sam.js +7 -7
  102. package/dist/sam.js.map +1 -1
  103. package/dist/typescript.d.ts +3 -0
  104. package/dist/typescript.js +11 -0
  105. package/dist/typescript.js.map +1 -0
  106. package/dist/unzip-pako.js +1 -1
  107. package/dist/unzip-pako.js.map +1 -1
  108. package/dist/unzip.js +1 -1
  109. package/dist/unzip.js.map +1 -1
  110. package/errors.js +11 -62
  111. package/esm/craiIndex.d.ts +19 -12
  112. package/esm/craiIndex.js +8 -24
  113. package/esm/craiIndex.js.map +1 -1
  114. package/esm/cramFile/codecs/_base.d.ts +26 -5
  115. package/esm/cramFile/codecs/_base.js +1 -35
  116. package/esm/cramFile/codecs/_base.js.map +1 -1
  117. package/esm/cramFile/codecs/beta.d.ts +7 -3
  118. package/esm/cramFile/codecs/beta.js +4 -3
  119. package/esm/cramFile/codecs/beta.js.map +1 -1
  120. package/esm/cramFile/codecs/byteArrayLength.d.ts +13 -7
  121. package/esm/cramFile/codecs/byteArrayLength.js +1 -1
  122. package/esm/cramFile/codecs/byteArrayLength.js.map +1 -1
  123. package/esm/cramFile/codecs/byteArrayStop.d.ts +9 -5
  124. package/esm/cramFile/codecs/byteArrayStop.js +7 -9
  125. package/esm/cramFile/codecs/byteArrayStop.js.map +1 -1
  126. package/esm/cramFile/codecs/dataSeriesTypes.d.ts +4 -0
  127. package/esm/cramFile/codecs/dataSeriesTypes.js +2 -0
  128. package/esm/cramFile/codecs/dataSeriesTypes.js.map +1 -0
  129. package/esm/cramFile/codecs/external.d.ts +10 -6
  130. package/esm/cramFile/codecs/external.js +4 -3
  131. package/esm/cramFile/codecs/external.js.map +1 -1
  132. package/esm/cramFile/codecs/gamma.d.ts +7 -3
  133. package/esm/cramFile/codecs/gamma.js +5 -4
  134. package/esm/cramFile/codecs/gamma.js.map +1 -1
  135. package/esm/cramFile/codecs/getBits.d.ts +7 -0
  136. package/esm/cramFile/codecs/getBits.js +21 -0
  137. package/esm/cramFile/codecs/getBits.js.map +1 -0
  138. package/esm/cramFile/codecs/huffman.d.ts +17 -13
  139. package/esm/cramFile/codecs/huffman.js +22 -9
  140. package/esm/cramFile/codecs/huffman.js.map +1 -1
  141. package/esm/cramFile/codecs/index.d.ts +4 -2
  142. package/esm/cramFile/codecs/index.js +1 -1
  143. package/esm/cramFile/codecs/index.js.map +1 -1
  144. package/esm/cramFile/codecs/subexp.d.ts +7 -3
  145. package/esm/cramFile/codecs/subexp.js +7 -5
  146. package/esm/cramFile/codecs/subexp.js.map +1 -1
  147. package/esm/cramFile/constants.d.ts +35 -35
  148. package/esm/cramFile/constants.js.map +1 -1
  149. package/esm/cramFile/container/compressionScheme.d.ts +57 -11
  150. package/esm/cramFile/container/compressionScheme.js +15 -8
  151. package/esm/cramFile/container/compressionScheme.js.map +1 -1
  152. package/esm/cramFile/container/index.d.ts +23 -9
  153. package/esm/cramFile/container/index.js +11 -9
  154. package/esm/cramFile/container/index.js.map +1 -1
  155. package/esm/cramFile/encoding.d.ts +78 -0
  156. package/esm/cramFile/encoding.js +2 -0
  157. package/esm/cramFile/encoding.js.map +1 -0
  158. package/esm/cramFile/file.d.ts +91 -41
  159. package/esm/cramFile/file.js +59 -47
  160. package/esm/cramFile/file.js.map +1 -1
  161. package/esm/cramFile/filehandle.d.ts +2 -0
  162. package/esm/cramFile/filehandle.js +2 -0
  163. package/esm/cramFile/filehandle.js.map +1 -0
  164. package/esm/cramFile/index.d.ts +1 -1
  165. package/esm/cramFile/index.js.map +1 -1
  166. package/esm/cramFile/record.d.ts +61 -17
  167. package/esm/cramFile/record.js +83 -5
  168. package/esm/cramFile/record.js.map +1 -1
  169. package/esm/cramFile/sectionParsers.d.ts +99 -8
  170. package/esm/cramFile/sectionParsers.js +7 -17
  171. package/esm/cramFile/sectionParsers.js.map +1 -1
  172. package/esm/cramFile/slice/decodeRecord.d.ts +30 -2
  173. package/esm/cramFile/slice/decodeRecord.js +102 -70
  174. package/esm/cramFile/slice/decodeRecord.js.map +1 -1
  175. package/esm/cramFile/slice/index.d.ts +21 -14
  176. package/esm/cramFile/slice/index.js +77 -38
  177. package/esm/cramFile/slice/index.js.map +1 -1
  178. package/esm/cramFile/util.d.ts +11 -5
  179. package/esm/cramFile/util.js +11 -82
  180. package/esm/cramFile/util.js.map +1 -1
  181. package/esm/errors.d.ts +5 -10
  182. package/esm/errors.js +0 -5
  183. package/esm/errors.js.map +1 -1
  184. package/esm/index.d.ts +3 -3
  185. package/esm/index.js.map +1 -1
  186. package/esm/indexedCramFile.d.ts +37 -12
  187. package/esm/indexedCramFile.js +19 -8
  188. package/esm/indexedCramFile.js.map +1 -1
  189. package/esm/io/index.d.ts +5 -5
  190. package/esm/io/index.js +3 -3
  191. package/esm/io/index.js.map +1 -1
  192. package/esm/sam.d.ts +8 -1
  193. package/esm/sam.js.map +1 -1
  194. package/esm/typescript.d.ts +3 -0
  195. package/esm/typescript.js +7 -0
  196. package/esm/typescript.js.map +1 -0
  197. package/package.json +18 -11
  198. package/src/{craiIndex.js → craiIndex.ts} +37 -31
  199. package/src/cramFile/codecs/_base.ts +45 -0
  200. package/src/cramFile/codecs/beta.ts +34 -0
  201. package/src/cramFile/codecs/{byteArrayLength.js → byteArrayLength.ts} +27 -5
  202. package/src/cramFile/codecs/{byteArrayStop.js → byteArrayStop.ts} +25 -12
  203. package/src/cramFile/codecs/dataSeriesTypes.ts +39 -0
  204. package/src/cramFile/codecs/{external.js → external.ts} +28 -12
  205. package/src/cramFile/codecs/gamma.ts +42 -0
  206. package/src/cramFile/codecs/getBits.ts +28 -0
  207. package/src/cramFile/codecs/{huffman.js → huffman.ts} +48 -15
  208. package/src/cramFile/codecs/{index.js → index.ts} +9 -3
  209. package/src/cramFile/codecs/subexp.ts +45 -0
  210. package/src/cramFile/{constants.js → constants.ts} +0 -0
  211. package/src/cramFile/container/{compressionScheme.js → compressionScheme.ts} +50 -18
  212. package/src/cramFile/container/{index.js → index.ts} +13 -13
  213. package/src/cramFile/encoding.ts +98 -0
  214. package/src/cramFile/{file.js → file.ts} +136 -62
  215. package/src/cramFile/filehandle.ts +3 -0
  216. package/src/cramFile/{index.js → index.ts} +0 -0
  217. package/src/cramFile/{record.js → record.ts} +185 -14
  218. package/src/cramFile/{sectionParsers.js → sectionParsers.ts} +148 -20
  219. package/src/cramFile/slice/{decodeRecord.js → decodeRecord.ts} +158 -105
  220. package/src/cramFile/slice/{index.js → index.ts} +138 -63
  221. package/src/cramFile/{util.js → util.ts} +28 -17
  222. package/src/{errors.js → errors.ts} +0 -5
  223. package/src/{index.js → index.ts} +0 -0
  224. package/src/{indexedCramFile.js → indexedCramFile.ts} +79 -19
  225. package/src/io/{index.js → index.ts} +10 -5
  226. package/src/{sam.js → sam.ts} +7 -2
  227. package/src/typescript.ts +17 -0
  228. package/src/typings/binary-parser.d.ts +44 -0
  229. package/src/typings/bzip2.d.ts +7 -0
  230. package/src/typings/htscodecs.d.ts +6 -0
  231. package/dist/io/bufferCache.d.ts +0 -12
  232. package/dist/io/bufferCache.js +0 -112
  233. package/dist/io/bufferCache.js.map +0 -1
  234. package/dist/io/localFile.d.ts +0 -10
  235. package/dist/io/localFile.js +0 -108
  236. package/dist/io/localFile.js.map +0 -1
  237. package/dist/io/remoteFile.d.ts +0 -16
  238. package/dist/io/remoteFile.js +0 -143
  239. package/dist/io/remoteFile.js.map +0 -1
  240. package/esm/io/bufferCache.d.ts +0 -12
  241. package/esm/io/bufferCache.js +0 -54
  242. package/esm/io/bufferCache.js.map +0 -1
  243. package/esm/io/localFile.d.ts +0 -10
  244. package/esm/io/localFile.js +0 -31
  245. package/esm/io/localFile.js.map +0 -1
  246. package/esm/io/remoteFile.d.ts +0 -16
  247. package/esm/io/remoteFile.js +0 -64
  248. package/esm/io/remoteFile.js.map +0 -1
  249. package/src/cramFile/codecs/_base.js +0 -49
  250. package/src/cramFile/codecs/beta.js +0 -23
  251. package/src/cramFile/codecs/gamma.js +0 -30
  252. package/src/cramFile/codecs/subexp.js +0 -32
  253. package/src/io/bufferCache.js +0 -66
  254. package/src/io/localFile.js +0 -35
  255. package/src/io/remoteFile.js +0 -71
@@ -3,17 +3,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- var long_1 = __importDefault(require("long"));
7
- var errors_1 = require("../../errors");
8
- var record_1 = __importDefault(require("../record"));
9
- var constants_1 = __importDefault(require("../constants"));
6
+ const long_1 = __importDefault(require("long"));
7
+ const errors_1 = require("../../errors");
8
+ const record_1 = require("../record");
9
+ const sectionParsers_1 = require("../sectionParsers");
10
10
  /**
11
11
  * given a Buffer, read a string up to the first null character
12
12
  * @private
13
13
  */
14
14
  function readNullTerminatedString(buffer) {
15
- var r = '';
16
- for (var i = 0; i < buffer.length && buffer[i] !== 0; i++) {
15
+ let r = '';
16
+ for (let i = 0; i < buffer.length && buffer[i] !== 0; i++) {
17
17
  r += String.fromCharCode(buffer[i]);
18
18
  }
19
19
  return r;
@@ -23,49 +23,49 @@ function readNullTerminatedString(buffer) {
23
23
  * @private
24
24
  */
25
25
  function parseTagValueArray(buffer) {
26
- var arrayType = String.fromCharCode(buffer[0]);
27
- var length = Int32Array.from(buffer.slice(1))[0];
28
- var array = new Array(length);
26
+ const arrayType = String.fromCharCode(buffer[0]);
27
+ const length = Int32Array.from(buffer.slice(1))[0];
28
+ const array = new Array(length);
29
29
  buffer = buffer.slice(5);
30
30
  if (arrayType === 'c') {
31
- var arr = new Int8Array(buffer.buffer);
32
- for (var i = 0; i < length; i += 1) {
31
+ const arr = new Int8Array(buffer.buffer);
32
+ for (let i = 0; i < length; i += 1) {
33
33
  array[i] = arr[i];
34
34
  }
35
35
  }
36
36
  else if (arrayType === 'C') {
37
- var arr = new Uint8Array(buffer.buffer);
38
- for (var i = 0; i < length; i += 1) {
37
+ const arr = new Uint8Array(buffer.buffer);
38
+ for (let i = 0; i < length; i += 1) {
39
39
  array[i] = arr[i];
40
40
  }
41
41
  }
42
42
  else if (arrayType === 's') {
43
- var arr = new Int16Array(buffer.buffer);
44
- for (var i = 0; i < length; i += 1) {
43
+ const arr = new Int16Array(buffer.buffer);
44
+ for (let i = 0; i < length; i += 1) {
45
45
  array[i] = arr[i];
46
46
  }
47
47
  }
48
48
  else if (arrayType === 'S') {
49
- var arr = new Uint16Array(buffer.buffer);
50
- for (var i = 0; i < length; i += 1) {
49
+ const arr = new Uint16Array(buffer.buffer);
50
+ for (let i = 0; i < length; i += 1) {
51
51
  array[i] = arr[i];
52
52
  }
53
53
  }
54
54
  else if (arrayType === 'i') {
55
- var arr = new Int32Array(buffer.buffer);
56
- for (var i = 0; i < length; i += 1) {
55
+ const arr = new Int32Array(buffer.buffer);
56
+ for (let i = 0; i < length; i += 1) {
57
57
  array[i] = arr[i];
58
58
  }
59
59
  }
60
60
  else if (arrayType === 'I') {
61
- var arr = new Uint32Array(buffer.buffer);
62
- for (var i = 0; i < length; i += 1) {
61
+ const arr = new Uint32Array(buffer.buffer);
62
+ for (let i = 0; i < length; i += 1) {
63
63
  array[i] = arr[i];
64
64
  }
65
65
  }
66
66
  else if (arrayType === 'f') {
67
- var arr = new Float32Array(buffer.buffer);
68
- for (var i = 0; i < length; i += 1) {
67
+ const arr = new Float32Array(buffer.buffer);
68
+ for (let i = 0; i < length; i += 1) {
69
69
  array[i] = arr[i];
70
70
  }
71
71
  }
@@ -108,15 +108,14 @@ function parseTagData(tagType, buffer) {
108
108
  if (tagType === 'B') {
109
109
  return parseTagValueArray(buffer);
110
110
  }
111
- throw new errors_1.CramMalformedError("Unrecognized tag type ".concat(tagType));
111
+ throw new errors_1.CramMalformedError(`Unrecognized tag type ${tagType}`);
112
112
  }
113
- function decodeReadFeatures(cramRecord, readFeatureCount, decodeDataSeries, compressionScheme, majorVersion) {
114
- var currentReadPos = 0;
115
- var currentRefPos = cramRecord.alignmentStart - 1;
116
- var readFeatures = new Array(readFeatureCount);
117
- function decodeRFData(_a) {
118
- var type = _a[0], dataSeriesName = _a[1];
119
- var data = decodeDataSeries(dataSeriesName);
113
+ function decodeReadFeatures(alignmentStart, readFeatureCount, decodeDataSeries, compressionScheme, majorVersion) {
114
+ let currentReadPos = 0;
115
+ let currentRefPos = alignmentStart - 1;
116
+ const readFeatures = new Array(readFeatureCount);
117
+ function decodeRFData([type, dataSeriesName]) {
118
+ const data = decodeDataSeries(dataSeriesName);
120
119
  if (type === 'character') {
121
120
  return String.fromCharCode(data);
122
121
  }
@@ -131,12 +130,11 @@ function decodeReadFeatures(cramRecord, readFeatureCount, decodeDataSeries, comp
131
130
  // }
132
131
  return data;
133
132
  }
134
- for (var i = 0; i < readFeatureCount; i += 1) {
135
- var code = String.fromCharCode(decodeDataSeries('FC'));
136
- var readPosDelta = decodeDataSeries('FP');
137
- var readFeature = { code: code };
133
+ for (let i = 0; i < readFeatureCount; i += 1) {
134
+ const code = String.fromCharCode(decodeDataSeries('FC'));
135
+ const readPosDelta = decodeDataSeries('FP');
138
136
  // map of operator name -> data series name
139
- var data1Schema = {
137
+ const data1Schema = {
140
138
  B: ['character', 'BA'],
141
139
  S: ['string', majorVersion > 1 ? 'SC' : 'IN'],
142
140
  X: ['number', 'BS'],
@@ -151,161 +149,193 @@ function decodeReadFeatures(cramRecord, readFeatureCount, decodeDataSeries, comp
151
149
  N: ['number', 'RS'],
152
150
  }[code];
153
151
  if (!data1Schema) {
154
- throw new errors_1.CramMalformedError("invalid read feature code \"".concat(code, "\""));
152
+ throw new errors_1.CramMalformedError(`invalid read feature code "${code}"`);
155
153
  }
156
- readFeature.data = decodeRFData(data1Schema);
154
+ let data = decodeRFData(data1Schema);
157
155
  // if this is a tag with two data items, make the data an array and add the second item
158
- var data2Schema = { B: ['number', 'QS'] }[code];
156
+ const data2Schema = { B: ['number', 'QS'] }[code];
159
157
  if (data2Schema) {
160
- readFeature.data = [readFeature.data, decodeRFData(data2Schema)];
158
+ data = [data, decodeRFData(data2Schema)];
161
159
  }
162
160
  currentReadPos += readPosDelta;
163
- readFeature.pos = currentReadPos;
161
+ const pos = currentReadPos;
164
162
  currentRefPos += readPosDelta;
165
- readFeature.refPos = currentRefPos;
163
+ const refPos = currentRefPos;
166
164
  // for gapping features, adjust the reference position for read features that follow
167
165
  if (code === 'D' || code === 'N') {
168
- currentRefPos += readFeature.data;
166
+ currentRefPos += data;
169
167
  }
170
168
  else if (code === 'I' || code === 'S') {
171
- currentRefPos -= readFeature.data.length;
169
+ currentRefPos -= data.length;
172
170
  }
173
171
  else if (code === 'i') {
174
172
  currentRefPos -= 1;
175
173
  }
176
- readFeatures[i] = readFeature;
174
+ readFeatures[i] = { code, pos, refPos, data };
177
175
  }
178
176
  return readFeatures;
179
177
  }
180
178
  function decodeRecord(slice, decodeDataSeries, compressionScheme, sliceHeader, coreDataBlock, blocksByContentId, cursors, majorVersion, recordNumber) {
181
- var cramRecord = new record_1.default();
182
- cramRecord.flags = decodeDataSeries('BF');
179
+ let flags = decodeDataSeries('BF');
183
180
  // note: the C data type of compressionFlags is byte in cram v1
184
181
  // and int32 in cram v2+, but that does not matter for us here
185
182
  // in javascript land.
186
- cramRecord.cramFlags = decodeDataSeries('CF');
187
- if (majorVersion > 1 && sliceHeader.content.refSeqId === -2) {
188
- cramRecord.sequenceId = decodeDataSeries('RI');
183
+ const cramFlags = decodeDataSeries('CF');
184
+ if (!(0, sectionParsers_1.isMappedSliceHeader)(sliceHeader.parsedContent)) {
185
+ throw new Error();
186
+ }
187
+ let sequenceId;
188
+ if (majorVersion > 1 && sliceHeader.parsedContent.refSeqId === -2) {
189
+ sequenceId = decodeDataSeries('RI');
189
190
  }
190
191
  else {
191
- cramRecord.sequenceId = sliceHeader.content.refSeqId;
192
+ sequenceId = sliceHeader.parsedContent.refSeqId;
192
193
  }
193
- cramRecord.readLength = decodeDataSeries('RL');
194
+ const readLength = decodeDataSeries('RL');
194
195
  // if APDelta, will calculate the true start in a second pass
195
- cramRecord.alignmentStart = decodeDataSeries('AP');
196
+ let alignmentStart = decodeDataSeries('AP');
196
197
  if (compressionScheme.APdelta) {
197
- cramRecord.alignmentStart += cursors.lastAlignmentStart;
198
+ alignmentStart = alignmentStart + cursors.lastAlignmentStart;
198
199
  }
199
- cursors.lastAlignmentStart = cramRecord.alignmentStart;
200
- cramRecord.readGroupId = decodeDataSeries('RG');
200
+ cursors.lastAlignmentStart = alignmentStart;
201
+ const readGroupId = decodeDataSeries('RG');
202
+ let readName;
201
203
  if (compressionScheme.readNamesIncluded) {
202
- cramRecord.readName = readNullTerminatedString(decodeDataSeries('RN'));
204
+ readName = readNullTerminatedString(decodeDataSeries('RN'));
203
205
  }
206
+ let mateToUse;
207
+ let templateSize;
208
+ let mateRecordNumber;
204
209
  // mate record
205
- if (cramRecord.isDetached()) {
210
+ if (record_1.CramFlagsDecoder.isDetached(cramFlags)) {
206
211
  // note: the MF is a byte in 1.0, int32 in 2+, but once again this doesn't matter for javascript
207
- var mate = {};
208
- mate.flags = decodeDataSeries('MF');
212
+ // const mate: any = {}
213
+ const mateFlags = decodeDataSeries('MF');
214
+ let mateReadName;
209
215
  if (!compressionScheme.readNamesIncluded) {
210
- mate.readName = readNullTerminatedString(decodeDataSeries('RN'));
211
- cramRecord.readName = mate.readName;
216
+ mateReadName = readNullTerminatedString(decodeDataSeries('RN'));
217
+ readName = mateReadName;
212
218
  }
213
- mate.sequenceId = decodeDataSeries('NS');
214
- mate.alignmentStart = decodeDataSeries('NP');
215
- if (mate.flags || mate.sequenceId > -1) {
216
- cramRecord.mate = mate;
219
+ const mateSequenceId = decodeDataSeries('NS');
220
+ const mateAlignmentStart = decodeDataSeries('NP');
221
+ if (mateFlags || mateSequenceId > -1) {
222
+ mateToUse = {
223
+ mateFlags,
224
+ mateSequenceId,
225
+ mateAlignmentStart,
226
+ mateReadName,
227
+ };
217
228
  }
218
- cramRecord.templateSize = decodeDataSeries('TS');
229
+ templateSize = decodeDataSeries('TS');
219
230
  // set mate unmapped if needed
220
- if (mate.flags & constants_1.default.CRAM_M_UNMAP) {
221
- cramRecord.flags |= constants_1.default.BAM_FMUNMAP;
231
+ if (record_1.MateFlagsDecoder.isUnmapped(mateFlags)) {
232
+ flags = record_1.BamFlagsDecoder.setMateUnmapped(flags);
222
233
  }
223
234
  // set mate reversed if needed
224
- if (mate.flags & constants_1.default.CRAM_M_REVERSE) {
225
- cramRecord.flags |= constants_1.default.BAM_FMREVERSE;
235
+ if (record_1.MateFlagsDecoder.isOnNegativeStrand(mateFlags)) {
236
+ flags = record_1.BamFlagsDecoder.setMateReverseComplemented(flags);
226
237
  }
227
238
  // detachedCount++
228
239
  }
229
- else if (cramRecord.hasMateDownStream()) {
230
- cramRecord.mateRecordNumber = decodeDataSeries('NF') + recordNumber + 1;
240
+ else if (record_1.CramFlagsDecoder.isWithMateDownstream(cramFlags)) {
241
+ mateRecordNumber = decodeDataSeries('NF') + recordNumber + 1;
231
242
  }
232
243
  // TODO: the aux tag parsing will have to be refactored if we want to support
233
244
  // cram v1
234
- var TLindex = decodeDataSeries('TL');
245
+ const TLindex = decodeDataSeries('TL');
235
246
  if (TLindex < 0) {
236
247
  /* TODO: check nTL: TLindex >= compressionHeader.tagEncoding.size */
237
248
  throw new errors_1.CramMalformedError('invalid TL index');
238
249
  }
250
+ const tags = {};
239
251
  // TN = tag names
240
- var TN = compressionScheme.getTagNames(TLindex);
241
- var ntags = TN.length;
242
- for (var i = 0; i < ntags; i += 1) {
243
- var tagId = TN[i];
244
- var tagName = tagId.substr(0, 2);
245
- var tagType = tagId.substr(2, 1);
246
- var tagCodec = compressionScheme.getCodecForTag(tagId);
252
+ const TN = compressionScheme.getTagNames(TLindex);
253
+ const ntags = TN.length;
254
+ for (let i = 0; i < ntags; i += 1) {
255
+ const tagId = TN[i];
256
+ const tagName = tagId.substr(0, 2);
257
+ const tagType = tagId.substr(2, 1);
258
+ const tagCodec = compressionScheme.getCodecForTag(tagId);
247
259
  if (!tagCodec) {
248
- throw new errors_1.CramMalformedError("no codec defined for auxiliary tag ".concat(tagId));
260
+ throw new errors_1.CramMalformedError(`no codec defined for auxiliary tag ${tagId}`);
249
261
  }
250
- var tagData = tagCodec.decode(slice, coreDataBlock, blocksByContentId, cursors);
251
- cramRecord.tags[tagName] = parseTagData(tagType, tagData);
252
- }
253
- if (!cramRecord.isSegmentUnmapped()) {
262
+ const tagData = tagCodec.decode(slice, coreDataBlock, blocksByContentId, cursors);
263
+ tags[tagName] = parseTagData(tagType, tagData);
264
+ }
265
+ let readFeatures;
266
+ let lengthOnRef;
267
+ let mappingQuality;
268
+ let qualityScores;
269
+ let readBases = undefined;
270
+ if (!record_1.BamFlagsDecoder.isSegmentUnmapped(flags)) {
254
271
  // reading read features
255
- var /* int */ readFeatureCount = decodeDataSeries('FN');
272
+ const readFeatureCount = decodeDataSeries('FN');
256
273
  if (readFeatureCount) {
257
- cramRecord.readFeatures = decodeReadFeatures(cramRecord, readFeatureCount, decodeDataSeries, compressionScheme, majorVersion);
274
+ readFeatures = decodeReadFeatures(alignmentStart, readFeatureCount, decodeDataSeries, compressionScheme, majorVersion);
258
275
  }
259
276
  // compute the read's true span on the reference sequence, and the end coordinate of the alignment on the reference
260
- var lengthOnRef_1 = cramRecord.readLength;
261
- if (cramRecord.readFeatures) {
262
- cramRecord.readFeatures.forEach(function (_a) {
263
- var code = _a.code, data = _a.data;
277
+ lengthOnRef = readLength;
278
+ if (readFeatures) {
279
+ for (const { code, data } of readFeatures) {
264
280
  if (code === 'D' || code === 'N') {
265
- lengthOnRef_1 += data;
281
+ lengthOnRef += data;
266
282
  }
267
283
  else if (code === 'I' || code === 'S') {
268
- lengthOnRef_1 -= data.length;
284
+ lengthOnRef = lengthOnRef - data.length;
269
285
  }
270
286
  else if (code === 'i') {
271
- lengthOnRef_1 -= 1;
287
+ lengthOnRef = lengthOnRef - 1;
272
288
  }
273
- });
289
+ }
274
290
  }
275
- if (Number.isNaN(lengthOnRef_1)) {
276
- console.warn("".concat(cramRecord.readName ||
277
- "".concat(cramRecord.sequenceId, ":").concat(cramRecord.alignmentStart), " record has invalid read features"));
278
- lengthOnRef_1 = cramRecord.readLength;
291
+ if (Number.isNaN(lengthOnRef)) {
292
+ console.warn(`${readName || `${sequenceId}:${alignmentStart}`} record has invalid read features`);
293
+ lengthOnRef = readLength;
279
294
  }
280
- cramRecord.lengthOnRef = lengthOnRef_1;
281
295
  // mapping quality
282
- cramRecord.mappingQuality = decodeDataSeries('MQ');
283
- if (cramRecord.isPreservingQualityScores()) {
284
- var bases = new Array(cramRecord.readLength);
285
- for (var i = 0; i < bases.length; i += 1) {
286
- bases[i] = decodeDataSeries('QS');
296
+ mappingQuality = decodeDataSeries('MQ');
297
+ if (record_1.CramFlagsDecoder.isPreservingQualityScores(cramFlags)) {
298
+ qualityScores = new Array(readLength);
299
+ for (let i = 0; i < qualityScores.length; i++) {
300
+ qualityScores[i] = decodeDataSeries('QS');
287
301
  }
288
- cramRecord.qualityScores = bases;
289
302
  }
290
303
  }
291
- else if (cramRecord.isUnknownBases()) {
292
- cramRecord.readBases = null;
293
- cramRecord.qualityScores = null;
304
+ else if (record_1.CramFlagsDecoder.isDecodeSequenceAsStar(cramFlags)) {
305
+ readBases = null;
306
+ qualityScores = null;
294
307
  }
295
308
  else {
296
- var bases = new Array(cramRecord.readLength);
297
- for (var i = 0; i < bases.length; i += 1) {
309
+ const bases = new Array(readLength);
310
+ for (let i = 0; i < bases.length; i += 1) {
298
311
  bases[i] = decodeDataSeries('BA');
299
312
  }
300
- cramRecord.readBases = String.fromCharCode.apply(String, bases);
301
- if (cramRecord.isPreservingQualityScores()) {
302
- for (var i = 0; i < bases.length; i += 1) {
303
- bases[i] = decodeDataSeries('QS');
313
+ readBases = String.fromCharCode(...bases);
314
+ if (record_1.CramFlagsDecoder.isPreservingQualityScores(cramFlags)) {
315
+ qualityScores = new Array(readLength);
316
+ for (let i = 0; i < bases.length; i += 1) {
317
+ qualityScores[i] = decodeDataSeries('QS');
304
318
  }
305
- cramRecord.qualityScores = bases;
306
319
  }
307
320
  }
308
- return cramRecord;
321
+ return {
322
+ readLength,
323
+ sequenceId,
324
+ cramFlags,
325
+ flags,
326
+ alignmentStart,
327
+ readGroupId,
328
+ readName,
329
+ mateToUse,
330
+ templateSize,
331
+ mateRecordNumber,
332
+ readFeatures,
333
+ lengthOnRef,
334
+ mappingQuality,
335
+ qualityScores,
336
+ readBases,
337
+ tags,
338
+ };
309
339
  }
310
340
  exports.default = decodeRecord;
311
341
  //# sourceMappingURL=decodeRecord.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"decodeRecord.js","sourceRoot":"","sources":["../../../src/cramFile/slice/decodeRecord.js"],"names":[],"mappings":";;;;;AAAA,8CAAuB;AACvB,uCAAiD;AACjD,qDAAkC;AAClC,2DAAoC;AACpC;;;GAGG;AACH,SAAS,wBAAwB,CAAC,MAAM;IACtC,IAAI,CAAC,GAAG,EAAE,CAAA;IACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE;QACzD,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;KACpC;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,MAAM;IAChC,IAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAChD,IAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAElD,IAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAA;IAC/B,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAExB,IAAI,SAAS,KAAK,GAAG,EAAE;QACrB,IAAM,GAAG,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAClC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;SAClB;KACF;SAAM,IAAI,SAAS,KAAK,GAAG,EAAE;QAC5B,IAAM,GAAG,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAClC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;SAClB;KACF;SAAM,IAAI,SAAS,KAAK,GAAG,EAAE;QAC5B,IAAM,GAAG,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAClC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;SAClB;KACF;SAAM,IAAI,SAAS,KAAK,GAAG,EAAE;QAC5B,IAAM,GAAG,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAClC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;SAClB;KACF;SAAM,IAAI,SAAS,KAAK,GAAG,EAAE;QAC5B,IAAM,GAAG,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAClC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;SAClB;KACF;SAAM,IAAI,SAAS,KAAK,GAAG,EAAE;QAC5B,IAAM,GAAG,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAClC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;SAClB;KACF;SAAM,IAAI,SAAS,KAAK,GAAG,EAAE;QAC5B,IAAM,GAAG,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAClC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;SAClB;KACF;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAA;KAC9C;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AACD,SAAS,YAAY,CAAC,OAAO,EAAE,MAAM;IACnC,IAAI,OAAO,KAAK,GAAG,EAAE;QACnB,OAAO,wBAAwB,CAAC,MAAM,CAAC,CAAA;KACxC;IACD,IAAI,OAAO,KAAK,GAAG,EAAE;QACnB,OAAO,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;KACtC;IACD,IAAI,OAAO,KAAK,GAAG,EAAE;QACnB,OAAO,cAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAA;KAC3C;IACD,IAAI,OAAO,KAAK,GAAG,EAAE;QACnB,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;KACxC;IACD,IAAI,OAAO,KAAK,GAAG,EAAE;QACnB,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;KACxC;IACD,IAAI,OAAO,KAAK,GAAG,EAAE;QACnB,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;KACzC;IACD,IAAI,OAAO,KAAK,GAAG,EAAE;QACnB,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;KACvC;IACD,IAAI,OAAO,KAAK,GAAG,EAAE;QACnB,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;KACjB;IACD,IAAI,OAAO,KAAK,GAAG,EAAE;QACnB,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;KAC1C;IACD,IAAI,OAAO,KAAK,GAAG,EAAE;QACnB,OAAO,MAAM,CAAC,QAAQ,CACpB,wBAAwB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EACnD,EAAE,CACH,CAAA;KACF;IACD,IAAI,OAAO,KAAK,GAAG,EAAE;QACnB,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAA;KAClC;IAED,MAAM,IAAI,2BAAkB,CAAC,gCAAyB,OAAO,CAAE,CAAC,CAAA;AAClE,CAAC;AAED,SAAS,kBAAkB,CACzB,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,YAAY;IAEZ,IAAI,cAAc,GAAG,CAAC,CAAA;IACtB,IAAI,aAAa,GAAG,UAAU,CAAC,cAAc,GAAG,CAAC,CAAA;IACjD,IAAM,YAAY,GAAG,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;IAEhD,SAAS,YAAY,CAAC,EAAsB;YAArB,IAAI,QAAA,EAAE,cAAc,QAAA;QACzC,IAAM,IAAI,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAA;QAC7C,IAAI,IAAI,KAAK,WAAW,EAAE;YACxB,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;SACjC;QACD,IAAI,IAAI,KAAK,QAAQ,EAAE;YACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;SAC7B;QACD,IAAI,IAAI,KAAK,UAAU,EAAE;YACvB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;SACtB;QACD,gCAAgC;QAChC,mBAAmB;QACnB,IAAI;QACJ,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,EAAE,CAAC,IAAI,CAAC,EAAE;QAC5C,IAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAA;QAExD,IAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAE3C,IAAM,WAAW,GAAG,EAAE,IAAI,MAAA,EAAE,CAAA;QAC5B,2CAA2C;QAC3C,IAAM,WAAW,GAAG;YAClB,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC;YACtB,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7C,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;YACnB,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;YACnB,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;YACnB,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC;YACtB,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;YACnB,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC;YACrB,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;YACnB,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;YACnB,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;YACnB,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;SACpB,CAAC,IAAI,CAAC,CAAA;QAEP,IAAI,CAAC,WAAW,EAAE;YAChB,MAAM,IAAI,2BAAkB,CAAC,sCAA8B,IAAI,OAAG,CAAC,CAAA;SACpE;QAED,WAAW,CAAC,IAAI,GAAG,YAAY,CAAC,WAAW,CAAC,CAAA;QAE5C,uFAAuF;QACvF,IAAM,WAAW,GAAG,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;QACjD,IAAI,WAAW,EAAE;YACf,WAAW,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC,CAAA;SACjE;QAED,cAAc,IAAI,YAAY,CAAA;QAC9B,WAAW,CAAC,GAAG,GAAG,cAAc,CAAA;QAEhC,aAAa,IAAI,YAAY,CAAA;QAC7B,WAAW,CAAC,MAAM,GAAG,aAAa,CAAA;QAElC,oFAAoF;QACpF,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE;YAChC,aAAa,IAAI,WAAW,CAAC,IAAI,CAAA;SAClC;aAAM,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE;YACvC,aAAa,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAA;SACzC;aAAM,IAAI,IAAI,KAAK,GAAG,EAAE;YACvB,aAAa,IAAI,CAAC,CAAA;SACnB;QAED,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW,CAAA;KAC9B;IACD,OAAO,YAAY,CAAA;AACrB,CAAC;AAED,SAAwB,YAAY,CAClC,KAAK,EACL,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,OAAO,EACP,YAAY,EACZ,YAAY;IAEZ,IAAM,UAAU,GAAG,IAAI,gBAAU,EAAE,CAAA;IAEnC,UAAU,CAAC,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;IAEzC,+DAA+D;IAC/D,8DAA8D;IAC9D,sBAAsB;IACtB,UAAU,CAAC,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;IAE7C,IAAI,YAAY,GAAG,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,QAAQ,KAAK,CAAC,CAAC,EAAE;QAC3D,UAAU,CAAC,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;KAC/C;SAAM;QACL,UAAU,CAAC,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAA;KACrD;IAED,UAAU,CAAC,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;IAC9C,6DAA6D;IAC7D,UAAU,CAAC,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;IAClD,IAAI,iBAAiB,CAAC,OAAO,EAAE;QAC7B,UAAU,CAAC,cAAc,IAAI,OAAO,CAAC,kBAAkB,CAAA;KACxD;IACD,OAAO,CAAC,kBAAkB,GAAG,UAAU,CAAC,cAAc,CAAA;IACtD,UAAU,CAAC,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;IAE/C,IAAI,iBAAiB,CAAC,iBAAiB,EAAE;QACvC,UAAU,CAAC,QAAQ,GAAG,wBAAwB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAA;KACvE;IAED,cAAc;IACd,IAAI,UAAU,CAAC,UAAU,EAAE,EAAE;QAC3B,gGAAgG;QAChG,IAAM,IAAI,GAAG,EAAE,CAAA;QACf,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QACnC,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE;YACxC,IAAI,CAAC,QAAQ,GAAG,wBAAwB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAA;YAChE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;SACpC;QACD,IAAI,CAAC,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QACxC,IAAI,CAAC,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAC5C,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE;YACtC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAA;SACvB;QACD,UAAU,CAAC,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAEhD,8BAA8B;QAC9B,IAAI,IAAI,CAAC,KAAK,GAAG,mBAAS,CAAC,YAAY,EAAE;YACvC,UAAU,CAAC,KAAK,IAAI,mBAAS,CAAC,WAAW,CAAA;SAC1C;QACD,8BAA8B;QAC9B,IAAI,IAAI,CAAC,KAAK,GAAG,mBAAS,CAAC,cAAc,EAAE;YACzC,UAAU,CAAC,KAAK,IAAI,mBAAS,CAAC,aAAa,CAAA;SAC5C;QAED,kBAAkB;KACnB;SAAM,IAAI,UAAU,CAAC,iBAAiB,EAAE,EAAE;QACzC,UAAU,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,YAAY,GAAG,CAAC,CAAA;KACxE;IAED,6EAA6E;IAC7E,UAAU;IACV,IAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACtC,IAAI,OAAO,GAAG,CAAC,EAAE;QACf,oEAAoE;QACpE,MAAM,IAAI,2BAAkB,CAAC,kBAAkB,CAAC,CAAA;KACjD;IAED,iBAAiB;IACjB,IAAM,EAAE,GAAG,iBAAiB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;IACjD,IAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAA;IAEvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE;QACjC,IAAM,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;QACnB,IAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAClC,IAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAElC,IAAM,QAAQ,GAAG,iBAAiB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;QACxD,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,IAAI,2BAAkB,CAC1B,6CAAsC,KAAK,CAAE,CAC9C,CAAA;SACF;QACD,IAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAC7B,KAAK,EACL,aAAa,EACb,iBAAiB,EACjB,OAAO,CACR,CAAA;QACD,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;KAC1D;IAED,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,EAAE;QACnC,wBAAwB;QACxB,IAAM,SAAS,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QACzD,IAAI,gBAAgB,EAAE;YACpB,UAAU,CAAC,YAAY,GAAG,kBAAkB,CAC1C,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,CACb,CAAA;SACF;QAED,mHAAmH;QACnH,IAAI,aAAW,GAAG,UAAU,CAAC,UAAU,CAAA;QACvC,IAAI,UAAU,CAAC,YAAY,EAAE;YAC3B,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,UAAC,EAAc;oBAAZ,IAAI,UAAA,EAAE,IAAI,UAAA;gBAC3C,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE;oBAChC,aAAW,IAAI,IAAI,CAAA;iBACpB;qBAAM,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE;oBACvC,aAAW,IAAI,IAAI,CAAC,MAAM,CAAA;iBAC3B;qBAAM,IAAI,IAAI,KAAK,GAAG,EAAE;oBACvB,aAAW,IAAI,CAAC,CAAA;iBACjB;YACH,CAAC,CAAC,CAAA;SACH;QACD,IAAI,MAAM,CAAC,KAAK,CAAC,aAAW,CAAC,EAAE;YAC7B,OAAO,CAAC,IAAI,CACV,UACE,UAAU,CAAC,QAAQ;gBACnB,UAAG,UAAU,CAAC,UAAU,cAAI,UAAU,CAAC,cAAc,CAAE,sCACtB,CACpC,CAAA;YACD,aAAW,GAAG,UAAU,CAAC,UAAU,CAAA;SACpC;QACD,UAAU,CAAC,WAAW,GAAG,aAAW,CAAA;QAEpC,kBAAkB;QAClB,UAAU,CAAC,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAClD,IAAI,UAAU,CAAC,yBAAyB,EAAE,EAAE;YAC1C,IAAM,KAAK,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;YAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;gBACxC,KAAK,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;aAClC;YACD,UAAU,CAAC,aAAa,GAAG,KAAK,CAAA;SACjC;KACF;SAAM,IAAI,UAAU,CAAC,cAAc,EAAE,EAAE;QACtC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAA;QAC3B,UAAU,CAAC,aAAa,GAAG,IAAI,CAAA;KAChC;SAAM;QACL,IAAM,KAAK,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;QAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YACxC,KAAK,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;SAClC;QACD,UAAU,CAAC,SAAS,GAAG,MAAM,CAAC,YAAY,OAAnB,MAAM,EAAiB,KAAK,CAAC,CAAA;QAEpD,IAAI,UAAU,CAAC,yBAAyB,EAAE,EAAE;YAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;gBACxC,KAAK,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;aAClC;YAED,UAAU,CAAC,aAAa,GAAG,KAAK,CAAA;SACjC;KACF;IAED,OAAO,UAAU,CAAA;AACnB,CAAC;AAvKD,+BAuKC"}
1
+ {"version":3,"file":"decodeRecord.js","sourceRoot":"","sources":["../../../src/cramFile/slice/decodeRecord.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,27 @@
1
+ import CramRecord from '../record';
2
+ import CramContainer from '../container';
3
+ import { CramFileBlock } from '../file';
4
+ import { MappedSliceHeader, UnmappedSliceHeader } from '../sectionParsers';
5
+ export declare type SliceHeader = CramFileBlock & {
6
+ parsedContent: MappedSliceHeader | UnmappedSliceHeader;
7
+ };
1
8
  export default class CramSlice {
2
- constructor(container: any, position: any);
3
- container: any;
4
- file: any;
5
- containerPosition: any;
6
- getHeader(): Promise<any>;
7
- getBlocks(): Promise<any[]>;
8
- getCoreDataBlock(): Promise<any>;
9
- _getBlocksContentIdIndex(): Promise<{}>;
10
- getBlockByContentId(id: any): Promise<any>;
9
+ container: CramContainer;
10
+ containerPosition: number;
11
+ private file;
12
+ constructor(container: CramContainer, containerPosition: number, _unused: number);
13
+ getHeader(): Promise<SliceHeader>;
14
+ getBlocks(): Promise<CramFileBlock[]>;
15
+ getCoreDataBlock(): Promise<CramFileBlock>;
16
+ _getBlocksContentIdIndex(): Promise<Record<number, CramFileBlock>>;
17
+ getBlockByContentId(id: number): Promise<CramFileBlock>;
11
18
  getReferenceRegion(): Promise<{
12
19
  seq: any;
13
- start: any;
20
+ start: number;
14
21
  end: number;
15
- span: any;
22
+ span: number;
16
23
  } | undefined>;
17
- getAllRecords(): Promise<any>;
18
- _fetchRecords(): Promise<any[]>;
19
- getRecords(filterFunction: any): Promise<any>;
24
+ getAllRecords(): Promise<CramRecord[]>;
25
+ _fetchRecords(): Promise<CramRecord[]>;
26
+ getRecords(filterFunction: (r: CramRecord) => boolean): Promise<CramRecord[]>;
20
27
  }