@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
@@ -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
  }
@@ -1,7 +1,10 @@
1
- import { CramMalformedError, CramBufferOverrunError, CramArgumentError, } from '../../errors';
2
- import { parseItem, tinyMemoize, sequenceMD5 } from '../util';
1
+ import { CramArgumentError, CramMalformedError } from '../../errors';
2
+ import { parseItem, sequenceMD5, tinyMemoize } from '../util';
3
3
  import Constants from '../constants';
4
4
  import decodeRecord from './decodeRecord';
5
+ import CramRecord from '../record';
6
+ import { isMappedSliceHeader, } from '../sectionParsers';
7
+ import { CramBufferOverrunError } from '../codecs/getBits';
5
8
  /**
6
9
  * @private
7
10
  * Try to estimate the template length from a bunch of interrelated multi-segment reads.
@@ -12,7 +15,8 @@ import decodeRecord from './decodeRecord';
12
15
  function calculateMultiSegmentMatedTemplateLength(allRecords, currentRecordNumber, thisRecord) {
13
16
  function getAllMatedRecords(startRecord) {
14
17
  const records = [startRecord];
15
- if (startRecord.mateRecordNumber >= 0) {
18
+ if (startRecord.mateRecordNumber !== undefined &&
19
+ startRecord.mateRecordNumber >= 0) {
16
20
  const mateRecord = allRecords[startRecord.mateRecordNumber];
17
21
  if (!mateRecord) {
18
22
  throw new CramMalformedError('intra-slice mate record not found, this file seems malformed');
@@ -120,10 +124,10 @@ function associateIntraSliceMate(allRecords, currentRecordNumber, thisRecord, ma
120
124
  delete thisRecord.mateRecordNumber;
121
125
  }
122
126
  export default class CramSlice {
123
- constructor(container, position) {
127
+ constructor(container, containerPosition, _unused) {
124
128
  this.container = container;
129
+ this.containerPosition = containerPosition;
125
130
  this.file = container.file;
126
- this.containerPosition = position;
127
131
  }
128
132
  // memoize
129
133
  async getHeader() {
@@ -131,25 +135,33 @@ export default class CramSlice {
131
135
  const sectionParsers = await this.file.getSectionParsers();
132
136
  const containerHeader = await this.container.getHeader();
133
137
  const header = await this.file.readBlock(containerHeader._endPosition + this.containerPosition);
138
+ if (header === undefined) {
139
+ throw new Error();
140
+ }
134
141
  if (header.contentType === 'MAPPED_SLICE_HEADER') {
135
- header.content = parseItem(header.content, sectionParsers.cramMappedSliceHeader.parser, 0, containerHeader._endPosition);
142
+ const content = parseItem(header.content, sectionParsers.cramMappedSliceHeader.parser, 0, containerHeader._endPosition);
143
+ return { ...header, parsedContent: content };
136
144
  }
137
145
  else if (header.contentType === 'UNMAPPED_SLICE_HEADER') {
138
- header.content = parseItem(header.content, sectionParsers.cramUnmappedSliceHeader.parser, 0, containerHeader._endPosition);
146
+ const content = parseItem(header.content, sectionParsers.cramUnmappedSliceHeader.parser, 0, containerHeader._endPosition);
147
+ return { ...header, parsedContent: content };
139
148
  }
140
149
  else {
141
- throw new CramMalformedError(`error reading slice header block, invalid content type ${header._contentType}`);
150
+ throw new CramMalformedError(`error reading slice header block, invalid content type ${header.contentType}`);
142
151
  }
143
- return header;
144
152
  }
145
153
  // memoize
146
154
  async getBlocks() {
147
155
  const header = await this.getHeader();
148
156
  // read all the blocks into memory and store them
149
157
  let blockPosition = header._endPosition;
150
- const blocks = new Array(header.content.numBlocks);
158
+ const blocks = new Array(header.parsedContent.numBlocks);
151
159
  for (let i = 0; i < blocks.length; i += 1) {
152
- blocks[i] = await this.file.readBlock(blockPosition);
160
+ const block = await this.file.readBlock(blockPosition);
161
+ if (block === undefined) {
162
+ throw new Error();
163
+ }
164
+ blocks[i] = block;
153
165
  blockPosition = blocks[i]._endPosition;
154
166
  }
155
167
  return blocks;
@@ -177,20 +189,28 @@ export default class CramSlice {
177
189
  }
178
190
  async getReferenceRegion() {
179
191
  // read the slice header
180
- const sliceHeader = (await this.getHeader()).content;
192
+ const sliceHeader = (await this.getHeader()).parsedContent;
193
+ if (!isMappedSliceHeader(sliceHeader)) {
194
+ throw new Error();
195
+ }
181
196
  if (sliceHeader.refSeqId < 0) {
182
197
  return undefined;
183
198
  }
184
199
  const compressionScheme = await this.container.getCompressionScheme();
200
+ if (compressionScheme === undefined) {
201
+ throw new Error();
202
+ }
185
203
  // console.log(JSON.stringify(sliceHeader, null, ' '))
186
204
  if (sliceHeader.refBaseBlockId >= 0) {
187
- const refBlock = this.getBlockByContentId(sliceHeader.refBaseBlockId);
205
+ const refBlock = await this.getBlockByContentId(sliceHeader.refBaseBlockId);
188
206
  if (!refBlock) {
189
207
  throw new CramMalformedError('embedded reference specified, but reference block does not exist');
190
208
  }
191
- if (sliceHeader.span > refBlock.uncompressedSize) {
192
- throw new CramMalformedError('Embedded reference is too small');
193
- }
209
+ // TODO: we do not read anything named 'span'
210
+ // if (sliceHeader.span > refBlock.uncompressedSize) {
211
+ // throw new CramMalformedError('Embedded reference is too small')
212
+ // }
213
+ // TODO verify
194
214
  return {
195
215
  seq: refBlock.data.toString('utf8'),
196
216
  start: sliceHeader.refSeqStart,
@@ -222,22 +242,29 @@ export default class CramSlice {
222
242
  async _fetchRecords() {
223
243
  const { majorVersion } = await this.file.getDefinition();
224
244
  const compressionScheme = await this.container.getCompressionScheme();
245
+ if (compressionScheme === undefined) {
246
+ throw new Error();
247
+ }
225
248
  const sliceHeader = await this.getHeader();
249
+ if (sliceHeader === undefined) {
250
+ throw new Error();
251
+ }
226
252
  const blocksByContentId = await this._getBlocksContentIdIndex();
227
253
  // check MD5 of reference if available
228
254
  if (majorVersion > 1 &&
229
255
  this.file.options.checkSequenceMD5 &&
230
- sliceHeader.content.refSeqId >= 0 &&
231
- sliceHeader.content.md5.join('') !== '0000000000000000') {
256
+ isMappedSliceHeader(sliceHeader.parsedContent) &&
257
+ sliceHeader.parsedContent.refSeqId >= 0 &&
258
+ sliceHeader.parsedContent.md5.join('') !== '0000000000000000') {
232
259
  const refRegion = await this.getReferenceRegion();
233
260
  if (refRegion) {
234
261
  const { seq, start, end } = refRegion;
235
262
  const seqMd5 = sequenceMD5(seq);
236
- const storedMd5 = sliceHeader.content.md5
263
+ const storedMd5 = sliceHeader.parsedContent.md5
237
264
  .map(byte => (byte < 16 ? '0' : '') + byte.toString(16))
238
265
  .join('');
239
266
  if (seqMd5 !== storedMd5) {
240
- throw new CramMalformedError(`MD5 checksum reference mismatch for ref ${sliceHeader.content.refSeqId} pos ${start}..${end}. recorded MD5: ${storedMd5}, calculated MD5: ${seqMd5}`);
267
+ throw new CramMalformedError(`MD5 checksum reference mismatch for ref ${sliceHeader.parsedContent.refSeqId} pos ${start}..${end}. recorded MD5: ${storedMd5}, calculated MD5: ${seqMd5}`);
241
268
  }
242
269
  }
243
270
  }
@@ -247,7 +274,9 @@ export default class CramSlice {
247
274
  // data block
248
275
  const coreDataBlock = await this.getCoreDataBlock();
249
276
  const cursors = {
250
- lastAlignmentStart: sliceHeader.content.refSeqStart || 0,
277
+ lastAlignmentStart: isMappedSliceHeader(sliceHeader.parsedContent)
278
+ ? sliceHeader.parsedContent.refSeqStart
279
+ : 0,
251
280
  coreBlock: { bitPosition: 7, bytePosition: 0 },
252
281
  externalBlocks: {
253
282
  map: new Map(),
@@ -261,23 +290,26 @@ export default class CramSlice {
261
290
  },
262
291
  },
263
292
  };
264
- const decodeDataSeries = dataSeriesName => {
293
+ const decodeDataSeries = (dataSeriesName) => {
265
294
  const codec = compressionScheme.getCodecForDataSeries(dataSeriesName);
266
295
  if (!codec) {
267
296
  throw new CramMalformedError(`no codec defined for ${dataSeriesName} data series`);
268
297
  }
269
298
  // console.log(dataSeriesName, Object.getPrototypeOf(codec))
270
- return codec.decode(this, coreDataBlock, blocksByContentId, cursors);
299
+ const decoded = codec.decode(this, coreDataBlock, blocksByContentId, cursors);
300
+ return decoded;
271
301
  };
272
- let records = new Array(sliceHeader.content.numRecords);
302
+ let records = new Array(sliceHeader.parsedContent.numRecords);
273
303
  for (let i = 0; i < records.length; i += 1) {
274
304
  try {
275
- records[i] = decodeRecord(this, decodeDataSeries, compressionScheme, sliceHeader, coreDataBlock, blocksByContentId, cursors, majorVersion, i);
276
- records[i].uniqueId =
277
- sliceHeader.contentPosition +
278
- sliceHeader.content.recordCounter +
305
+ const init = decodeRecord(this, decodeDataSeries, compressionScheme, sliceHeader, coreDataBlock, blocksByContentId, cursors, majorVersion, i);
306
+ records[i] = new CramRecord({
307
+ ...init,
308
+ uniqueId: sliceHeader.contentPosition +
309
+ sliceHeader.parsedContent.recordCounter +
279
310
  i +
280
- 1;
311
+ 1,
312
+ });
281
313
  }
282
314
  catch (e) {
283
315
  if (e instanceof CramBufferOverrunError) {
@@ -294,7 +326,7 @@ export default class CramSlice {
294
326
  // objects Resolve mate pair cross-references between records in this slice
295
327
  for (let i = 0; i < records.length; i += 1) {
296
328
  const { mateRecordNumber } = records[i];
297
- if (mateRecordNumber >= 0) {
329
+ if (mateRecordNumber !== undefined && mateRecordNumber >= 0) {
298
330
  associateIntraSliceMate(records, i, records[i], records[mateRecordNumber]);
299
331
  }
300
332
  }
@@ -303,22 +335,27 @@ export default class CramSlice {
303
335
  async getRecords(filterFunction) {
304
336
  // fetch the features if necessary, using the file-level feature cache
305
337
  const cacheKey = this.container.filePosition + this.containerPosition;
306
- let recordsPromise = this.file.featureCache.get(cacheKey);
338
+ let recordsPromise = this.file.featureCache.get(cacheKey.toString());
307
339
  if (!recordsPromise) {
308
340
  recordsPromise = this._fetchRecords();
309
- this.file.featureCache.set(cacheKey, recordsPromise);
341
+ this.file.featureCache.set(cacheKey.toString(), recordsPromise);
310
342
  }
311
- const records = (await recordsPromise).filter(filterFunction);
343
+ const unfiltered = await recordsPromise;
344
+ const records = unfiltered.filter(filterFunction);
312
345
  // if we can fetch reference sequence, add the reference sequence to the records
313
346
  if (records.length && this.file.fetchReferenceSequenceCallback) {
314
347
  const sliceHeader = await this.getHeader();
315
- if (sliceHeader.content.refSeqId >= 0 || // single-ref slice
316
- sliceHeader.content.refSeqId === -2 // multi-ref slice
348
+ if (isMappedSliceHeader(sliceHeader.parsedContent) &&
349
+ (sliceHeader.parsedContent.refSeqId >= 0 || // single-ref slice
350
+ sliceHeader.parsedContent.refSeqId === -2) // multi-ref slice
317
351
  ) {
318
- const singleRefId = sliceHeader.content.refSeqId >= 0
319
- ? sliceHeader.content.refSeqId
352
+ const singleRefId = sliceHeader.parsedContent.refSeqId >= 0
353
+ ? sliceHeader.parsedContent.refSeqId
320
354
  : undefined;
321
355
  const compressionScheme = await this.container.getCompressionScheme();
356
+ if (compressionScheme === undefined) {
357
+ throw new Error();
358
+ }
322
359
  const refRegions = {}; // seqId => { start, end, seq }
323
360
  // iterate over the records to find the spans of the reference sequences we need to fetch
324
361
  for (let i = 0; i < records.length; i += 1) {
@@ -329,6 +366,7 @@ export default class CramSlice {
329
366
  id: seqId,
330
367
  start: records[i].alignmentStart,
331
368
  end: -Infinity,
369
+ seq: null,
332
370
  };
333
371
  refRegions[seqId] = refRegion;
334
372
  }
@@ -353,7 +391,8 @@ export default class CramSlice {
353
391
  const seqId = singleRefId !== undefined ? singleRefId : records[i].sequenceId;
354
392
  const refRegion = refRegions[seqId];
355
393
  if (refRegion && refRegion.seq) {
356
- records[i].addReferenceSequence(refRegion, compressionScheme);
394
+ const seq = refRegion.seq;
395
+ records[i].addReferenceSequence({ ...refRegion, seq }, compressionScheme);
357
396
  }
358
397
  }
359
398
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cramFile/slice/index.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cramFile/slice/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACpE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE7D,OAAO,SAAS,MAAM,cAAc,CAAA;AACpC,OAAO,YAAmC,MAAM,gBAAgB,CAAA;AAChE,OAAO,UAAU,MAAM,WAAW,CAAA;AAGlC,OAAO,EACL,mBAAmB,GAGpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAS1D;;;;;;GAMG;AACH,SAAS,wCAAwC,CAC/C,UAAwB,EACxB,mBAA2B,EAC3B,UAAsB;IAEtB,SAAS,kBAAkB,CAAC,WAAuB;QACjD,MAAM,OAAO,GAAG,CAAC,WAAW,CAAC,CAAA;QAC7B,IACE,WAAW,CAAC,gBAAgB,KAAK,SAAS;YAC1C,WAAW,CAAC,gBAAgB,IAAI,CAAC,EACjC;YACA,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAA;YAC3D,IAAI,CAAC,UAAU,EAAE;gBACf,MAAM,IAAI,kBAAkB,CAC1B,8DAA8D,CAC/D,CAAA;aACF;YACD,OAAO,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAA;SAChD;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,MAAM,YAAY,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAA;IACnD,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAA;IACtD,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAA;IACvE,MAAM,uBAAuB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IAC3E,IAAI,uBAAuB,IAAI,CAAC,EAAE;QAChC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACvB,IAAI,CAAC,CAAC,cAAc,KAAK,SAAS,EAAE;gBAClC,MAAM,IAAI,kBAAkB,CAC1B,gGAAgG,CACjG,CAAA;aACF;YACD,CAAC,CAAC,cAAc,GAAG,uBAAuB,CAAA;QAC5C,CAAC,CAAC,CAAA;KACH;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,yCAAyC,CAChD,UAAsB,EACtB,UAAsB;IAEtB,kGAAkG;IAClG,wFAAwF;IACxF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,EAAE,UAAU,CAAC,cAAc,CAAC,CAAA;IAC5E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAClB,UAAU,CAAC,cAAc,GAAG,UAAU,CAAC,UAAU,GAAG,CAAC,EACrD,UAAU,CAAC,cAAc,GAAG,UAAU,CAAC,UAAU,GAAG,CAAC,CACtD,CAAA;IACD,MAAM,cAAc,GAAG,GAAG,GAAG,KAAK,GAAG,CAAC,CAAA;IACtC,UAAU,CAAC,cAAc,GAAG,cAAc,CAAA;IAC1C,UAAU,CAAC,cAAc,GAAG,cAAc,CAAA;AAC5C,CAAC;AAED;;;;GAIG;AACH,SAAS,uBAAuB,CAC9B,UAAwB,EACxB,mBAA2B,EAC3B,UAAsB,EACtB,UAAsB;IAEtB,IAAI,CAAC,UAAU,EAAE;QACf,MAAM,IAAI,kBAAkB,CAC1B,6EAA6E,CAC9E,CAAA;KACF;IAED,MAAM,uBAAuB,GAAG,CAAC,CAAC,CAChC,UAAU,CAAC,IAAI;QACf,CAAC,UAAU,CAAC,gBAAgB,KAAK,SAAS;YACxC,UAAU,CAAC,gBAAgB,KAAK,mBAAmB,CAAC,CACvD,CAAA;IAED,6BAA6B;IAC7B,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;QACxB,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;QACjD,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAA;KAC1C;IAED,UAAU,CAAC,IAAI,GAAG;QAChB,UAAU,EAAE,UAAU,CAAC,UAAU;QACjC,cAAc,EAAE,UAAU,CAAC,cAAc;QACzC,QAAQ,EAAE,UAAU,CAAC,QAAQ;KAC9B,CAAA;IACD,IAAI,UAAU,CAAC,QAAQ,EAAE;QACvB,UAAU,CAAC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAA;KAC/C;IAED,2EAA2E;IAC3E,oFAAoF;IACpF,6CAA6C;IAC7C,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,gBAAgB,KAAK,SAAS,EAAE;QACjE,UAAU,CAAC,IAAI,GAAG;YAChB,UAAU,EAAE,UAAU,CAAC,UAAU;YACjC,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,QAAQ,EAAE,UAAU,CAAC,QAAQ;SAC9B,CAAA;QACD,IAAI,UAAU,CAAC,QAAQ,EAAE;YACvB,UAAU,CAAC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAA;SAC/C;KACF;IAED,mEAAmE;IACnE,SAAS;IACT,UAAU,CAAC,KAAK,IAAI,SAAS,CAAC,WAAW,CAAA;IAEzC,8BAA8B;IAC9B,IAAI,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,UAAU,EAAE;QAC3C,UAAU,CAAC,KAAK,IAAI,SAAS,CAAC,WAAW,CAAA;QACzC,gCAAgC;KACjC;IACD,IAAI,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,UAAU,EAAE;QAC3C,gCAAgC;QAChC,UAAU,CAAC,KAAK,IAAI,SAAS,CAAC,WAAW,CAAA;KAC1C;IAED,8BAA8B;IAC9B,IAAI,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,YAAY,EAAE;QAC7C,UAAU,CAAC,KAAK,IAAI,SAAS,CAAC,aAAa,CAAA;KAC5C;IACD,IAAI,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,YAAY,EAAE;QAC7C,UAAU,CAAC,KAAK,IAAI,SAAS,CAAC,aAAa,CAAA;KAC5C;IAED,IAAI,UAAU,CAAC,cAAc,KAAK,SAAS,EAAE;QAC3C,IAAI,uBAAuB,EAAE;YAC3B,wCAAwC,CACtC,UAAU,EACV,mBAAmB,EACnB,UAAU,CACX,CAAA;SACF;aAAM;YACL,yCAAyC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;SAClE;KACF;IAED,4CAA4C;IAC5C,yCAAyC;IACzC,OAAO,UAAU,CAAC,gBAAgB,CAAA;AACpC,CAAC;AAED,MAAM,CAAC,OAAO,OAAO,SAAS;IAG5B,YACS,SAAwB,EACxB,iBAAyB,EAChC,OAAe;QAFR,cAAS,GAAT,SAAS,CAAe;QACxB,sBAAiB,GAAjB,iBAAiB,CAAQ;QAGhC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAA;IAC5B,CAAC;IAED,UAAU;IACV,KAAK,CAAC,SAAS;QACb,mCAAmC;QACnC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAC1D,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAA;QACxD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CACtC,eAAe,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CACtD,CAAA;QACD,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,MAAM,IAAI,KAAK,EAAE,CAAA;SAClB;QACD,IAAI,MAAM,CAAC,WAAW,KAAK,qBAAqB,EAAE;YAChD,MAAM,OAAO,GAAG,SAAS,CACvB,MAAM,CAAC,OAAO,EACd,cAAc,CAAC,qBAAqB,CAAC,MAAM,EAC3C,CAAC,EACD,eAAe,CAAC,YAAY,CAC7B,CAAA;YACD,OAAO,EAAE,GAAG,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,CAAA;SAC7C;aAAM,IAAI,MAAM,CAAC,WAAW,KAAK,uBAAuB,EAAE;YACzD,MAAM,OAAO,GAAG,SAAS,CACvB,MAAM,CAAC,OAAO,EACd,cAAc,CAAC,uBAAuB,CAAC,MAAM,EAC7C,CAAC,EACD,eAAe,CAAC,YAAY,CAC7B,CAAA;YACD,OAAO,EAAE,GAAG,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,CAAA;SAC7C;aAAM;YACL,MAAM,IAAI,kBAAkB,CAC1B,0DAA0D,MAAM,CAAC,WAAW,EAAE,CAC/E,CAAA;SACF;IACH,CAAC;IAED,UAAU;IACV,KAAK,CAAC,SAAS;QACb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;QACrC,iDAAiD;QACjD,IAAI,aAAa,GAAG,MAAM,CAAC,YAAY,CAAA;QACvC,MAAM,MAAM,GAAoB,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;QACzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YACzC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;YACtD,IAAI,KAAK,KAAK,SAAS,EAAE;gBACvB,MAAM,IAAI,KAAK,EAAE,CAAA;aAClB;YACD,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;YACjB,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAA;SACvC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAED,aAAa;IACb,KAAK,CAAC,gBAAgB;QACpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;QACrC,6DAA6D;QAC7D,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;IAClB,CAAC;IAED,UAAU;IACV,KAAK,CAAC,wBAAwB;QAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;QACrC,MAAM,iBAAiB,GAAkC,EAAE,CAAA;QAC3D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACrB,IAAI,KAAK,CAAC,WAAW,KAAK,eAAe,EAAE;gBACzC,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,KAAK,CAAA;aAC3C;QACH,CAAC,CAAC,CAAA;QACF,OAAO,iBAAiB,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,EAAU;QAClC,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAA;QAC/D,OAAO,iBAAiB,CAAC,EAAE,CAAC,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,wBAAwB;QACxB,MAAM,WAAW,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,aAAa,CAAA;QAC1D,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAE;YACrC,MAAM,IAAI,KAAK,EAAE,CAAA;SAClB;QAED,IAAI,WAAW,CAAC,QAAQ,GAAG,CAAC,EAAE;YAC5B,OAAO,SAAS,CAAA;SACjB;QAED,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAA;QACrE,IAAI,iBAAiB,KAAK,SAAS,EAAE;YACnC,MAAM,IAAI,KAAK,EAAE,CAAA;SAClB;QAED,uDAAuD;QAEvD,IAAI,WAAW,CAAC,cAAc,IAAI,CAAC,EAAE;YACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAC7C,WAAW,CAAC,cAAc,CAC3B,CAAA;YACD,IAAI,CAAC,QAAQ,EAAE;gBACb,MAAM,IAAI,kBAAkB,CAC1B,kEAAkE,CACnE,CAAA;aACF;YAED,6CAA6C;YAC7C,sDAAsD;YACtD,oEAAoE;YACpE,IAAI;YAEJ,cAAc;YACd,OAAO;gBACL,GAAG,EAAG,QAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC5C,KAAK,EAAE,WAAW,CAAC,WAAW;gBAC9B,GAAG,EAAE,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC,UAAU,GAAG,CAAC;gBACzD,IAAI,EAAE,WAAW,CAAC,UAAU;aAC7B,CAAA;SACF;QACD,IACE,iBAAiB,CAAC,iBAAiB;YACnC,IAAI,CAAC,IAAI,CAAC,8BAA8B,EACxC;YACA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,8BAA8B,EAAE;gBAC7C,MAAM,IAAI,KAAK,CACb,sGAAsG,CACvG,CAAA;aACF;YAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,8BAA8B,CACxD,WAAW,CAAC,QAAQ,EACpB,WAAW,CAAC,WAAW,EACvB,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC,UAAU,GAAG,CAAC,CACrD,CAAA;YAED,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,CAAC,UAAU,EAAE;gBACzC,MAAM,IAAI,iBAAiB,CACzB,qEAAqE,CACtE,CAAA;aACF;YAED,OAAO;gBACL,GAAG;gBACH,KAAK,EAAE,WAAW,CAAC,WAAW;gBAC9B,GAAG,EAAE,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC,UAAU,GAAG,CAAC;gBACzD,IAAI,EAAE,WAAW,CAAC,UAAU;aAC7B,CAAA;SACF;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAA;QAExD,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAA;QACrE,IAAI,iBAAiB,KAAK,SAAS,EAAE;YACnC,MAAM,IAAI,KAAK,EAAE,CAAA;SAClB;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;QAC1C,IAAI,WAAW,KAAK,SAAS,EAAE;YAC7B,MAAM,IAAI,KAAK,EAAE,CAAA;SAClB;QAED,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAA;QAE/D,sCAAsC;QACtC,IACE,YAAY,GAAG,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB;YAClC,mBAAmB,CAAC,WAAW,CAAC,aAAa,CAAC;YAC9C,WAAW,CAAC,aAAa,CAAC,QAAQ,IAAI,CAAC;YACvC,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,kBAAkB,EAC7D;YACA,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAA;YACjD,IAAI,SAAS,EAAE;gBACb,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,SAAS,CAAA;gBACrC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;gBAC/B,MAAM,SAAS,GAAG,WAAW,CAAC,aAAa,CAAC,GAAG;qBAC5C,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;qBACvD,IAAI,CAAC,EAAE,CAAC,CAAA;gBACX,IAAI,MAAM,KAAK,SAAS,EAAE;oBACxB,MAAM,IAAI,kBAAkB,CAC1B,2CAA2C,WAAW,CAAC,aAAa,CAAC,QAAQ,QAAQ,KAAK,KAAK,GAAG,mBAAmB,SAAS,qBAAqB,MAAM,EAAE,CAC5J,CAAA;iBACF;aACF;SACF;QAED,oEAAoE;QACpE,kEAAkE;QAClE,oEAAoE;QACpE,aAAa;QACb,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACnD,MAAM,OAAO,GAAY;YACvB,kBAAkB,EAAE,mBAAmB,CAAC,WAAW,CAAC,aAAa,CAAC;gBAChE,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW;gBACvC,CAAC,CAAC,CAAC;YACL,SAAS,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YAC9C,cAAc,EAAE;gBACd,GAAG,EAAE,IAAI,GAAG,EAAE;gBACd,SAAS,CAAC,SAAiB;oBACzB,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;oBAC/B,IAAI,CAAC,KAAK,SAAS,EAAE;wBACnB,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAA;wBACvC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;qBAC3B;oBACD,OAAO,CAAC,CAAA;gBACV,CAAC;aACF;SACF,CAAA;QAED,MAAM,gBAAgB,GAAsB,CAG1C,cAAiB,EACoB,EAAE;YACvC,MAAM,KAAK,GAAG,iBAAiB,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAA;YACrE,IAAI,CAAC,KAAK,EAAE;gBACV,MAAM,IAAI,kBAAkB,CAC1B,wBAAwB,cAAc,cAAc,CACrD,CAAA;aACF;YACD,4DAA4D;YAC5D,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAC1B,IAAI,EACJ,aAAa,EACb,iBAAiB,EACjB,OAAO,CACR,CAAA;YACD,OAAO,OAAO,CAAA;QAChB,CAAC,CAAA;QACD,IAAI,OAAO,GAAiB,IAAI,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;QAC3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAC1C,IAAI;gBACF,MAAM,IAAI,GAAG,YAAY,CACvB,IAAI,EACJ,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,OAAO,EACP,YAAY,EACZ,CAAC,CACF,CAAA;gBACD,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC;oBAC1B,GAAG,IAAI;oBACP,QAAQ,EACN,WAAW,CAAC,eAAe;wBAC3B,WAAW,CAAC,aAAa,CAAC,aAAa;wBACvC,CAAC;wBACD,CAAC;iBACJ,CAAC,CAAA;aACH;YAAC,OAAO,CAAC,EAAE;gBACV,IAAI,CAAC,YAAY,sBAAsB,EAAE;oBACvC,OAAO,CAAC,IAAI,CACV,4DAA4D,CAC7D,CAAA;oBACD,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBAClC,MAAK;iBACN;qBAAM;oBACL,MAAM,CAAC,CAAA;iBACR;aACF;SACF;QAED,uEAAuE;QACvE,2EAA2E;QAC3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAC1C,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;YACvC,IAAI,gBAAgB,KAAK,SAAS,IAAI,gBAAgB,IAAI,CAAC,EAAE;gBAC3D,uBAAuB,CACrB,OAAO,EACP,CAAC,EACD,OAAO,CAAC,CAAC,CAAC,EACV,OAAO,CAAC,gBAAgB,CAAC,CAC1B,CAAA;aACF;SACF;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,cAA0C;QACzD,sEAAsE;QACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAA;QACrE,IAAI,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;QACpE,IAAI,CAAC,cAAc,EAAE;YACnB,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;YACrC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,cAAc,CAAC,CAAA;SAChE;QAED,MAAM,UAAU,GAAG,MAAM,cAAc,CAAA;QACvC,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;QAEjD,gFAAgF;QAChF,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,8BAA8B,EAAE;YAC9D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;YAC1C,IACE,mBAAmB,CAAC,WAAW,CAAC,aAAa,CAAC;gBAC9C,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,IAAI,CAAC,IAAI,mBAAmB;oBAC7D,WAAW,CAAC,aAAa,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB;cAC/D;gBACA,MAAM,WAAW,GACf,WAAW,CAAC,aAAa,CAAC,QAAQ,IAAI,CAAC;oBACrC,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ;oBACpC,CAAC,CAAC,SAAS,CAAA;gBACf,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAA;gBACrE,IAAI,iBAAiB,KAAK,SAAS,EAAE;oBACnC,MAAM,IAAI,KAAK,EAAE,CAAA;iBAClB;gBACD,MAAM,UAAU,GAGZ,EAAE,CAAA,CAAC,+BAA+B;gBAEtC,yFAAyF;gBACzF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;oBAC1C,MAAM,KAAK,GACT,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;oBACjE,IAAI,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;oBACjC,IAAI,CAAC,SAAS,EAAE;wBACd,SAAS,GAAG;4BACV,EAAE,EAAE,KAAK;4BACT,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc;4BAChC,GAAG,EAAE,CAAC,QAAQ;4BACd,GAAG,EAAE,IAAI;yBACV,CAAA;wBACD,UAAU,CAAC,KAAK,CAAC,GAAG,SAAS,CAAA;qBAC9B;oBAED,MAAM,GAAG,GACP,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc;wBACzB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;wBACjD,CAAC,CAAA;oBACH,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE;wBACvB,SAAS,CAAC,GAAG,GAAG,GAAG,CAAA;qBACpB;oBACD,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,SAAS,CAAC,KAAK,EAAE;wBAC/C,SAAS,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAA;qBAC5C;iBACF;gBAED,6CAA6C;gBAC7C,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,KAAK,EAAC,SAAS,EAAC,EAAE;oBAC9C,IAAI,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE;wBAC3D,SAAS,CAAC,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAC5D,SAAS,CAAC,EAAE,EACZ,SAAS,CAAC,KAAK,EACf,SAAS,CAAC,GAAG,CACd,CAAA;qBACF;gBACH,CAAC,CAAC,CACH,CAAA;gBAED,yCAAyC;gBACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;oBAC1C,MAAM,KAAK,GACT,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;oBACjE,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;oBACnC,IAAI,SAAS,IAAI,SAAS,CAAC,GAAG,EAAE;wBAC9B,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAA;wBACzB,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAC7B,EAAE,GAAG,SAAS,EAAE,GAAG,EAAE,EACrB,iBAAiB,CAClB,CAAA;qBACF;iBACF;aACF;SACF;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;CACF;AAED,uDAAuD;AACvD,8CAA8C;KAC3C,KAAK,CAAC,GAAG,CAAC;KACV,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAA"}
@@ -1,5 +1,11 @@
1
- export function itf8Size(v: any): 1 | 2 | 3 | 4 | 5;
2
- export function parseItf8(buffer: any, initialOffset: any): any[];
3
- export function parseItem(buffer: any, parser: any, startBufferPosition?: number, startFilePosition?: number): any;
4
- export function tinyMemoize(_class: any, methodName: any): void;
5
- export function sequenceMD5(seq: any): any;
1
+ /// <reference types="node" />
2
+ import { Parser } from '@gmod/binary-parser';
3
+ export declare function itf8Size(v: number): 1 | 2 | 3 | 4 | 5;
4
+ export declare function parseItf8(buffer: Uint8Array, initialOffset: number): [number, number];
5
+ export declare type ParsedItem<T> = T & {
6
+ _endPosition: number;
7
+ _size: number;
8
+ };
9
+ export declare function parseItem<T>(buffer: Buffer, parser: Parser<T>, startBufferPosition?: number, startFilePosition?: number): ParsedItem<T>;
10
+ export declare function tinyMemoize(_class: any, methodName: any): void;
11
+ export declare function sequenceMD5(seq: string): string;
@@ -1,5 +1,5 @@
1
1
  import md5 from 'md5';
2
- import { CramBufferOverrunError } from '../errors';
2
+ import { CramBufferOverrunError } from './codecs/getBits';
3
3
  export function itf8Size(v) {
4
4
  if (!(v & ~0x7f)) {
5
5
  return 1;
@@ -21,17 +21,17 @@ export function parseItf8(buffer, initialOffset) {
21
21
  let result;
22
22
  if (countFlags < 0x80) {
23
23
  result = countFlags;
24
- offset += 1;
24
+ offset = offset + 1;
25
25
  }
26
26
  else if (countFlags < 0xc0) {
27
27
  result = ((countFlags << 8) | buffer[offset + 1]) & 0x3fff;
28
- offset += 2;
28
+ offset = offset + 2;
29
29
  }
30
30
  else if (countFlags < 0xe0) {
31
31
  result =
32
32
  ((countFlags << 16) | (buffer[offset + 1] << 8) | buffer[offset + 2]) &
33
33
  0x1fffff;
34
- offset += 3;
34
+ offset = offset + 3;
35
35
  }
36
36
  else if (countFlags < 0xf0) {
37
37
  result =
@@ -40,7 +40,7 @@ export function parseItf8(buffer, initialOffset) {
40
40
  (buffer[offset + 2] << 8) |
41
41
  buffer[offset + 3]) &
42
42
  0x0fffffff;
43
- offset += 4;
43
+ offset = offset + 4;
44
44
  }
45
45
  else {
46
46
  result =
@@ -51,91 +51,20 @@ export function parseItf8(buffer, initialOffset) {
51
51
  (buffer[offset + 4] & 0x0f);
52
52
  // x=((0xff & 0x0f)<<28) | (0xff<<20) | (0xff<<12) | (0xff<<4) | (0x0f & 0x0f);
53
53
  // TODO *val_p = uv < 0x80000000UL ? uv : -((int32_t) (0xffffffffUL - uv)) - 1;
54
- offset += 5;
54
+ offset = offset + 5;
55
55
  }
56
56
  if (offset > buffer.length) {
57
57
  throw new CramBufferOverrunError('Attempted to read beyond end of buffer; this file seems truncated.');
58
58
  }
59
59
  return [result, offset - initialOffset];
60
60
  }
61
- // parseLtf8(buffer, initialOffset) {
62
- // let offset = initialOffset
63
- // const countFlags = buffer[offset]
64
- // let result
65
- // if (countFlags < 0x80) {
66
- // result = countFlags
67
- // offset += 1
68
- // } else if (countFlags < 0xc0) {
69
- // result = ((buffer[offset] << 8) | buffer[offset + 1]) & 0x3fff
70
- // offset += 2
71
- // } else if (countFlags < 0xe0) {
72
- // result =
73
- // ((buffer[offset] << 16) |
74
- // (buffer[offset + 1] << 8) |
75
- // buffer[offset + 2]) &
76
- // 0x1fffff
77
- // offset += 3
78
- // } else if (countFlags < 0xf0) {
79
- // result =
80
- // ((buffer[offset] << 24) |
81
- // (buffer[offset + 1] << 16) |
82
- // (buffer[offset + 2] << 8) |
83
- // buffer[offset + 3]) &
84
- // 0x0fffffff
85
- // offset += 4
86
- // } else if (countFlags < 0xf8) {
87
- // result =
88
- // ((buffer[offset] & 15) * Math.pow(2,32) + (buffer[offset + 1] << 24)) |
89
- // ((buffer[offset + 2] << 16) |
90
- // (buffer[offset + 3] << 8) |
91
- // buffer[offset + 4])
92
- // // TODO *val_p = uv < 0x80000000UL ? uv : -((int32_t) (0xffffffffUL - uv)) - 1;
93
- // offset += 5
94
- // } else if (countFlags < 0xfc) {
95
- // result =
96
- // ((((buffer[offset] & 7) << 8) | buffer[offset + 1]) * Math.pow(2,32) +
97
- // (buffer[offset + 2] << 24)) |
98
- // ((buffer[offset + 3] << 16) |
99
- // (buffer[offset + 4] << 8) |
100
- // buffer[offset + 5])
101
- // offset += 6
102
- // } else if (countFlags < 0xfe) {
103
- // result =
104
- // ((((buffer[offset] & 3) << 16) |
105
- // (buffer[offset + 1] << 8) |
106
- // buffer[offset + 2]) *
107
- // Math.pow(2,32) +
108
- // (buffer[offset + 3] << 24)) |
109
- // ((buffer[offset + 4] << 16) |
110
- // (buffer[offset + 5] << 8) |
111
- // buffer[offset + 6])
112
- // offset += 7
113
- // } else if (countFlags < 0xff) {
114
- // result = Long.fromBytesBE(buffer.slice(offset + 1, offset + 8))
115
- // if (
116
- // result.greaterThan(Number.MAX_SAFE_INTEGER) ||
117
- // result.lessThan(Number.MIN_SAFE_INTEGER)
118
- // )
119
- // throw new CramUnimplementedError('integer overflow')
120
- // result = result.toNumber()
121
- // offset += 8
122
- // } else {
123
- // result = Long.fromBytesBE(buffer.slice(offset + 1, offset + 9))
124
- // if (
125
- // result.greaterThan(Number.MAX_SAFE_INTEGER) ||
126
- // result.lessThan(Number.MIN_SAFE_INTEGER)
127
- // )
128
- // throw new CramUnimplementedError('integer overflow')
129
- // result = result.toNumber()
130
- // offset += 9
131
- // }
132
- // return [result, offset - initialOffset]
133
- // },
134
61
  export function parseItem(buffer, parser, startBufferPosition = 0, startFilePosition = 0) {
135
62
  const { offset, result } = parser.parse(buffer);
136
- result._endPosition = offset + startFilePosition;
137
- result._size = offset - startBufferPosition;
138
- return result;
63
+ return {
64
+ ...result,
65
+ _endPosition: offset + startFilePosition,
66
+ _size: offset - startBufferPosition,
67
+ };
139
68
  }
140
69
  // this would be nice as a decorator, but i'm a little worried about
141
70
  // babel support for it going away or changing.
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/cramFile/util.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/cramFile/util.ts"],"names":[],"mappings":"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"}
package/esm/errors.d.ts CHANGED
@@ -1,23 +1,18 @@
1
- export class CramError extends Error {
1
+ export declare class CramError extends Error {
2
2
  }
3
3
  /** Error caused by encountering a part of the CRAM spec that has not yet been implemented */
4
- export class CramUnimplementedError extends Error {
4
+ export declare class CramUnimplementedError extends Error {
5
5
  }
6
6
  /** An error caused by malformed data. */
7
- export class CramMalformedError extends CramError {
8
- }
9
- /**
10
- * An error caused by attempting to read beyond the end of the defined data.
11
- */
12
- export class CramBufferOverrunError extends CramMalformedError {
7
+ export declare class CramMalformedError extends CramError {
13
8
  }
14
9
  /**
15
10
  * An error caused by data being too big, exceeding a size limit.
16
11
  */
17
- export class CramSizeLimitError extends CramError {
12
+ export declare class CramSizeLimitError extends CramError {
18
13
  }
19
14
  /**
20
15
  * An invalid argument was supplied to a cram-js method or object.
21
16
  */
22
- export class CramArgumentError extends CramError {
17
+ export declare class CramArgumentError extends CramError {
23
18
  }
package/esm/errors.js CHANGED
@@ -6,11 +6,6 @@ export class CramUnimplementedError extends Error {
6
6
  /** An error caused by malformed data. */
7
7
  export class CramMalformedError extends CramError {
8
8
  }
9
- /**
10
- * An error caused by attempting to read beyond the end of the defined data.
11
- */
12
- export class CramBufferOverrunError extends CramMalformedError {
13
- }
14
9
  /**
15
10
  * An error caused by data being too big, exceeding a size limit.
16
11
  */
package/esm/errors.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.js"],"names":[],"mappings":"AAAA,MAAM,OAAO,SAAU,SAAQ,KAAK;CAAG;AAEvC,6FAA6F;AAC7F,MAAM,OAAO,sBAAuB,SAAQ,KAAK;CAAG;AAEpD,0CAA0C;AAC1C,MAAM,OAAO,kBAAmB,SAAQ,SAAS;CAAG;AAEpD;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,kBAAkB;CAAG;AAEjE;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,SAAS;CAAG;AAEpD;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,SAAS;CAAG"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,SAAU,SAAQ,KAAK;CAAG;AAEvC,6FAA6F;AAC7F,MAAM,OAAO,sBAAuB,SAAQ,KAAK;CAAG;AAEpD,0CAA0C;AAC1C,MAAM,OAAO,kBAAmB,SAAQ,SAAS;CAAG;AAEpD;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,SAAS;CAAG;AAEpD;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,SAAS;CAAG"}
package/esm/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import CramFile from "./cramFile";
2
- import IndexedCramFile from "./indexedCramFile";
3
- import CraiIndex from "./craiIndex";
1
+ import CramFile from './cramFile';
2
+ import IndexedCramFile from './indexedCramFile';
3
+ import CraiIndex from './craiIndex';
4
4
  export { CramFile, IndexedCramFile, CraiIndex };
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.js"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAA;AACjC,OAAO,eAAe,MAAM,mBAAmB,CAAA;AAC/C,OAAO,SAAS,MAAM,aAAa,CAAA;AAEnC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAA;AACjC,OAAO,eAAe,MAAM,mBAAmB,CAAA;AAC/C,OAAO,SAAS,MAAM,aAAa,CAAA;AAEnC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,CAAA"}