@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
@@ -0,0 +1,17 @@
1
+ /*!
2
+ * Determine if an object is a Buffer
3
+ *
4
+ * @author Feross Aboukhadijeh <https://feross.org>
5
+ * @license MIT
6
+ */
7
+
8
+ /*!
9
+ * The buffer module from node.js, for the browser.
10
+ *
11
+ * @author Feross Aboukhadijeh <https://feross.org>
12
+ * @license MIT
13
+ */
14
+
15
+ /*! https://mths.be/punycode v1.3.2 by @mathias */
16
+
17
+ /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
@@ -1,6 +1,27 @@
1
- export default class CramCodec {
2
- constructor(parameters: {} | undefined, dataType: any);
3
- parameters: {};
4
- dataType: any;
5
- _getBits(data: any, cursor: any, numBits: any): number;
1
+ import CramSlice from '../slice';
2
+ import { CramFileBlock } from '../file';
3
+ import { DataType } from './dataSeriesTypes';
4
+ export declare type DataTypeMapping = {
5
+ byte: number;
6
+ int: number;
7
+ long: number;
8
+ byteArray: Uint8Array;
9
+ };
10
+ export declare type Cursor = {
11
+ bitPosition: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7;
12
+ bytePosition: number;
13
+ };
14
+ export declare type Cursors = {
15
+ lastAlignmentStart: number;
16
+ coreBlock: Cursor;
17
+ externalBlocks: {
18
+ map: Map<any, any>;
19
+ getCursor: (contentId: number) => Cursor;
20
+ };
21
+ };
22
+ export default abstract class CramCodec<TResult extends DataType = DataType, TParameters = unknown> {
23
+ parameters: TParameters;
24
+ dataType: DataType;
25
+ constructor(parameters: TParameters, dataType: TResult);
26
+ abstract decode(slice: CramSlice, coreDataBlock: CramFileBlock, blocksByContentId: Record<number, CramFileBlock>, cursors: Cursors): DataTypeMapping[TResult];
6
27
  }
@@ -1,47 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var errors_1 = require("../../errors");
4
- var validDataTypes = {
5
- int: true,
6
- byte: true,
7
- long: true,
8
- byteArray: true,
9
- byteArrayBlock: true,
10
- };
11
3
  // codec base class
12
- var CramCodec = /** @class */ (function () {
13
- function CramCodec(parameters, dataType) {
14
- if (parameters === void 0) { parameters = {}; }
4
+ class CramCodec {
5
+ constructor(parameters, dataType) {
15
6
  this.parameters = parameters;
16
7
  this.dataType = dataType;
17
- if (!dataType) {
18
- throw new TypeError('must provide a data type to codec constructor');
19
- }
20
- if (!validDataTypes[dataType]) {
21
- throw new TypeError("invalid data type ".concat(dataType));
22
- }
23
8
  }
24
- // decode(slice, coreDataBlock, blocksByContentId, cursors) {
25
- // }
26
- CramCodec.prototype._getBits = function (data, cursor, numBits) {
27
- var val = 0;
28
- if (cursor.bytePosition + (7 - cursor.bitPosition + numBits) / 8 >
29
- data.length) {
30
- throw new errors_1.CramBufferOverrunError('read error during decoding. the file seems to be truncated.');
31
- }
32
- for (var dlen = numBits; dlen; dlen -= 1) {
33
- // get the next `dlen` bits in the input, put them in val
34
- val <<= 1;
35
- val |= (data[cursor.bytePosition] >> cursor.bitPosition) & 1;
36
- cursor.bitPosition -= 1;
37
- if (cursor.bitPosition < 0) {
38
- cursor.bytePosition += 1;
39
- }
40
- cursor.bitPosition &= 7;
41
- }
42
- return val;
43
- };
44
- return CramCodec;
45
- }());
9
+ }
46
10
  exports.default = CramCodec;
47
11
  //# sourceMappingURL=_base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_base.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/_base.js"],"names":[],"mappings":";;AAAA,uCAAqD;AAErD,IAAM,cAAc,GAAG;IACrB,GAAG,EAAE,IAAI;IACT,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,SAAS,EAAE,IAAI;IACf,cAAc,EAAE,IAAI;CACrB,CAAA;AAED,mBAAmB;AACnB;IACE,mBAAY,UAAe,EAAE,QAAQ;QAAzB,2BAAA,EAAA,eAAe;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAA;SACrE;QACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;YAC7B,MAAM,IAAI,SAAS,CAAC,4BAAqB,QAAQ,CAAE,CAAC,CAAA;SACrD;IACH,CAAC;IAED,6DAA6D;IAC7D,IAAI;IAEJ,4BAAQ,GAAR,UAAS,IAAI,EAAE,MAAM,EAAE,OAAO;QAC5B,IAAI,GAAG,GAAG,CAAC,CAAA;QACX,IACE,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;YAC5D,IAAI,CAAC,MAAM,EACX;YACA,MAAM,IAAI,+BAAsB,CAC9B,6DAA6D,CAC9D,CAAA;SACF;QACD,KAAK,IAAI,IAAI,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE;YACxC,yDAAyD;YACzD,GAAG,KAAK,CAAC,CAAA;YACT,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YAC5D,MAAM,CAAC,WAAW,IAAI,CAAC,CAAA;YACvB,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE;gBAC1B,MAAM,CAAC,YAAY,IAAI,CAAC,CAAA;aACzB;YACD,MAAM,CAAC,WAAW,IAAI,CAAC,CAAA;SACxB;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IACH,gBAAC;AAAD,CAAC,AArCD,IAqCC"}
1
+ {"version":3,"file":"_base.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/_base.ts"],"names":[],"mappings":";;AAyBA,mBAAmB;AACnB,MAA8B,SAAS;IAOrC,YAAY,UAAuB,EAAE,QAAiB;QACpD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;CAQF;AAlBD,4BAkBC"}
@@ -1,4 +1,8 @@
1
- export default class BetaCodec extends CramCodec {
2
- decode(slice: any, coreDataBlock: any, blocksByContentId: any, cursors: any): number;
1
+ import CramCodec, { Cursors } from './_base';
2
+ import CramSlice from '../slice';
3
+ import { CramFileBlock } from '../file';
4
+ import { BetaEncoding } from '../encoding';
5
+ export default class BetaCodec extends CramCodec<'int', BetaEncoding['parameters']> {
6
+ constructor(parameters: BetaEncoding['parameters'], dataType: 'int');
7
+ decode(slice: CramSlice, coreDataBlock: CramFileBlock, blocksByContentId: Record<number, CramFileBlock>, cursors: Cursors): number;
3
8
  }
4
- import CramCodec from "./_base";
@@ -1,40 +1,22 @@
1
1
  "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
18
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
19
4
  };
20
5
  Object.defineProperty(exports, "__esModule", { value: true });
21
- var errors_1 = require("../../errors");
22
- var _base_1 = __importDefault(require("./_base"));
23
- var BetaCodec = /** @class */ (function (_super) {
24
- __extends(BetaCodec, _super);
25
- function BetaCodec(parameters, dataType) {
26
- if (parameters === void 0) { parameters = {}; }
27
- var _this = _super.call(this, parameters, dataType) || this;
28
- if (_this.dataType !== 'int') {
29
- throw new errors_1.CramUnimplementedError("".concat(_this.dataType, " decoding not yet implemented by BETA codec"));
6
+ const errors_1 = require("../../errors");
7
+ const _base_1 = __importDefault(require("./_base"));
8
+ const getBits_1 = require("./getBits");
9
+ class BetaCodec extends _base_1.default {
10
+ constructor(parameters, dataType) {
11
+ super(parameters, dataType);
12
+ if (this.dataType !== 'int') {
13
+ throw new errors_1.CramUnimplementedError(`${this.dataType} decoding not yet implemented by BETA codec`);
30
14
  }
31
- return _this;
32
15
  }
33
- BetaCodec.prototype.decode = function (slice, coreDataBlock, blocksByContentId, cursors) {
34
- var data = this._getBits(coreDataBlock.content, cursors.coreBlock, this.parameters.length) - this.parameters.offset;
35
- return data;
36
- };
37
- return BetaCodec;
38
- }(_base_1.default));
16
+ decode(slice, coreDataBlock, blocksByContentId, cursors) {
17
+ const fromBits = (0, getBits_1.getBits)(coreDataBlock.content, cursors.coreBlock, this.parameters.length);
18
+ return fromBits - this.parameters.offset;
19
+ }
20
+ }
39
21
  exports.default = BetaCodec;
40
22
  //# sourceMappingURL=beta.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"beta.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/beta.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,uCAAqD;AACrD,kDAA+B;AAE/B;IAAuC,6BAAS;IAC9C,mBAAY,UAAe,EAAE,QAAQ;QAAzB,2BAAA,EAAA,eAAe;QAA3B,YACE,kBAAM,UAAU,EAAE,QAAQ,CAAC,SAM5B;QALC,IAAI,KAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YAC3B,MAAM,IAAI,+BAAsB,CAC9B,UAAG,KAAI,CAAC,QAAQ,gDAA6C,CAC9D,CAAA;SACF;;IACH,CAAC;IAED,0BAAM,GAAN,UAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,OAAO;QACrD,IAAM,IAAI,GACR,IAAI,CAAC,QAAQ,CACX,aAAa,CAAC,OAAO,EACrB,OAAO,CAAC,SAAS,EACjB,IAAI,CAAC,UAAU,CAAC,MAAM,CACvB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IACH,gBAAC;AAAD,CAAC,AAnBD,CAAuC,eAAS,GAmB/C"}
1
+ {"version":3,"file":"beta.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/beta.ts"],"names":[],"mappings":";;;;;AAAA,yCAAqD;AACrD,oDAA4C;AAC5C,uCAAmC;AAKnC,MAAqB,SAAU,SAAQ,eAGtC;IACC,YAAY,UAAsC,EAAE,QAAe;QACjE,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC3B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YAC3B,MAAM,IAAI,+BAAsB,CAC9B,GAAG,IAAI,CAAC,QAAQ,6CAA6C,CAC9D,CAAA;SACF;IACH,CAAC;IAED,MAAM,CACJ,KAAgB,EAChB,aAA4B,EAC5B,iBAAgD,EAChD,OAAgB;QAEhB,MAAM,QAAQ,GAAG,IAAA,iBAAO,EACtB,aAAa,CAAC,OAAO,EACrB,OAAO,CAAC,SAAS,EACjB,IAAI,CAAC,UAAU,CAAC,MAAM,CACvB,CAAA;QACD,OAAO,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAA;IAC1C,CAAC;CACF;AA1BD,4BA0BC"}
@@ -1,8 +1,14 @@
1
- export default class ByteArrayStopCodec extends CramCodec {
2
- constructor(parameters: {} | undefined, dataType: any, instantiateCodec: any);
3
- instantiateCodec: any;
4
- decode(slice: any, coreDataBlock: any, blocksByContentId: any, cursors: any): Uint8Array;
5
- _getLengthCodec(): any;
6
- _getDataCodec(): any;
1
+ import CramCodec, { Cursors } from './_base';
2
+ import { ByteArrayLengthEncoding, CramEncoding } from '../encoding';
3
+ import CramSlice from '../slice';
4
+ import { CramFileBlock } from '../file';
5
+ import { DataType } from './dataSeriesTypes';
6
+ declare type CramCodecFactory = <TData extends DataType = DataType>(encodingData: CramEncoding, dataType: TData | 'ignore') => CramCodec<TData>;
7
+ export default class ByteArrayStopCodec extends CramCodec<'byteArray', ByteArrayLengthEncoding['parameters']> {
8
+ private instantiateCodec;
9
+ constructor(parameters: ByteArrayLengthEncoding['parameters'], dataType: 'byteArray', instantiateCodec: CramCodecFactory);
10
+ decode(slice: CramSlice, coreDataBlock: CramFileBlock, blocksByContentId: Record<number, CramFileBlock>, cursors: Cursors): Uint8Array;
11
+ _getLengthCodec(): CramCodec<"int", unknown>;
12
+ _getDataCodec(): CramCodec<"byte", unknown>;
7
13
  }
8
- import CramCodec from "./_base";
14
+ export {};
@@ -1,60 +1,41 @@
1
1
  "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
18
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
19
4
  };
20
5
  Object.defineProperty(exports, "__esModule", { value: true });
21
- var util_1 = require("../util");
22
- var _base_1 = __importDefault(require("./_base"));
23
- var ByteArrayStopCodec = /** @class */ (function (_super) {
24
- __extends(ByteArrayStopCodec, _super);
25
- function ByteArrayStopCodec(parameters, dataType, instantiateCodec) {
26
- if (parameters === void 0) { parameters = {}; }
27
- var _this = _super.call(this, parameters, dataType) || this;
28
- _this.instantiateCodec = instantiateCodec;
6
+ const util_1 = require("../util");
7
+ const _base_1 = __importDefault(require("./_base"));
8
+ class ByteArrayStopCodec extends _base_1.default {
9
+ constructor(parameters, dataType, instantiateCodec) {
10
+ super(parameters, dataType);
11
+ this.instantiateCodec = instantiateCodec;
29
12
  if (dataType !== 'byteArray') {
30
- throw new TypeError("byteArrayLength does not support data type ".concat(dataType));
13
+ throw new TypeError(`byteArrayLength does not support data type ${dataType}`);
31
14
  }
32
- return _this;
33
15
  }
34
- ByteArrayStopCodec.prototype.decode = function (slice, coreDataBlock, blocksByContentId, cursors) {
35
- var lengthCodec = this._getLengthCodec();
36
- var arrayLength = lengthCodec.decode(slice, coreDataBlock, blocksByContentId, cursors);
37
- var dataCodec = this._getDataCodec();
38
- var data = new Uint8Array(arrayLength);
39
- for (var i = 0; i < arrayLength; i += 1) {
16
+ decode(slice, coreDataBlock, blocksByContentId, cursors) {
17
+ const lengthCodec = this._getLengthCodec();
18
+ const arrayLength = lengthCodec.decode(slice, coreDataBlock, blocksByContentId, cursors);
19
+ const dataCodec = this._getDataCodec();
20
+ const data = new Uint8Array(arrayLength);
21
+ for (let i = 0; i < arrayLength; i += 1) {
40
22
  data[i] = dataCodec.decode(slice, coreDataBlock, blocksByContentId, cursors);
41
23
  }
42
24
  return data;
43
- };
25
+ }
44
26
  // memoize
45
- ByteArrayStopCodec.prototype._getLengthCodec = function () {
46
- var encodingParams = this.parameters.lengthsEncoding;
27
+ _getLengthCodec() {
28
+ const encodingParams = this.parameters.lengthsEncoding;
47
29
  return this.instantiateCodec(encodingParams, 'int');
48
- };
30
+ }
49
31
  // memoize
50
- ByteArrayStopCodec.prototype._getDataCodec = function () {
51
- var encodingParams = this.parameters.valuesEncoding;
32
+ _getDataCodec() {
33
+ const encodingParams = this.parameters.valuesEncoding;
52
34
  return this.instantiateCodec(encodingParams, 'byte');
53
- };
54
- return ByteArrayStopCodec;
55
- }(_base_1.default));
35
+ }
36
+ }
56
37
  exports.default = ByteArrayStopCodec;
57
38
  '_getLengthCodec _getDataCodec'
58
39
  .split(' ')
59
- .forEach(function (method) { return (0, util_1.tinyMemoize)(ByteArrayStopCodec, method); });
40
+ .forEach(method => (0, util_1.tinyMemoize)(ByteArrayStopCodec, method));
60
41
  //# sourceMappingURL=byteArrayLength.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"byteArrayLength.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/byteArrayLength.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,gCAAqC;AAErC,kDAA+B;AAE/B;IAAgD,sCAAS;IACvD,4BAAY,UAAe,EAAE,QAAQ,EAAE,gBAAgB;QAA3C,2BAAA,EAAA,eAAe;QAA3B,YACE,kBAAM,UAAU,EAAE,QAAQ,CAAC,SAO5B;QANC,KAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;QACxC,IAAI,QAAQ,KAAK,WAAW,EAAE;YAC5B,MAAM,IAAI,SAAS,CACjB,qDAA8C,QAAQ,CAAE,CACzD,CAAA;SACF;;IACH,CAAC;IAED,mCAAM,GAAN,UAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,OAAO;QACrD,IAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;QAC1C,IAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CACpC,KAAK,EACL,aAAa,EACb,iBAAiB,EACjB,OAAO,CACR,CAAA;QAED,IAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACtC,IAAM,IAAI,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAA;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE;YACvC,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CACxB,KAAK,EACL,aAAa,EACb,iBAAiB,EACjB,OAAO,CACR,CAAA;SACF;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,UAAU;IACV,4CAAe,GAAf;QACE,IAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAA;QACtD,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;IACrD,CAAC;IAED,UAAU;IACV,0CAAa,GAAb;QACE,IAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAA;QAErD,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;IACtD,CAAC;IACH,yBAAC;AAAD,CAAC,AA9CD,CAAgD,eAAS,GA8CxD;;AAED,+BAA+B;KAC5B,KAAK,CAAC,GAAG,CAAC;KACV,OAAO,CAAC,UAAA,MAAM,IAAI,OAAA,IAAA,kBAAW,EAAC,kBAAkB,EAAE,MAAM,CAAC,EAAvC,CAAuC,CAAC,CAAA"}
1
+ {"version":3,"file":"byteArrayLength.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/byteArrayLength.ts"],"names":[],"mappings":";;;;;AAAA,kCAAqC;AAErC,oDAA4C;AAW5C,MAAqB,kBAAmB,SAAQ,eAG/C;IAGC,YACE,UAAiD,EACjD,QAAqB,EACrB,gBAAkC;QAElC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC3B,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;QACxC,IAAI,QAAQ,KAAK,WAAW,EAAE;YAC5B,MAAM,IAAI,SAAS,CACjB,8CAA8C,QAAQ,EAAE,CACzD,CAAA;SACF;IACH,CAAC;IAED,MAAM,CACJ,KAAgB,EAChB,aAA4B,EAC5B,iBAAgD,EAChD,OAAgB;QAEhB,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;QAC1C,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CACpC,KAAK,EACL,aAAa,EACb,iBAAiB,EACjB,OAAO,CACR,CAAA;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACtC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAA;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE;YACvC,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CACxB,KAAK,EACL,aAAa,EACb,iBAAiB,EACjB,OAAO,CACR,CAAA;SACF;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,UAAU;IACV,eAAe;QACb,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAA;QACtD,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;IACrD,CAAC;IAED,UAAU;IACV,aAAa;QACX,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAA;QACrD,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;IACtD,CAAC;CACF;AA3DD,qCA2DC;AAED,+BAA+B;KAC5B,KAAK,CAAC,GAAG,CAAC;KACV,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,IAAA,kBAAW,EAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAA"}
@@ -1,6 +1,10 @@
1
- export default class ByteArrayStopCodec extends CramCodec {
2
- _decode: (contentBlock: any, cursor: any) => any;
3
- decode(slice: any, coreDataBlock: any, blocksByContentId: any, cursors: any): any;
4
- _decodeByteArray(contentBlock: any, cursor: any): any;
1
+ /// <reference types="node" />
2
+ import CramCodec, { Cursor, Cursors } from './_base';
3
+ import CramSlice from '../slice';
4
+ import { CramFileBlock } from '../file';
5
+ import { ByteArrayStopCramEncoding } from '../encoding';
6
+ export default class ByteArrayStopCodec extends CramCodec<'byteArray', ByteArrayStopCramEncoding['parameters']> {
7
+ constructor(parameters: ByteArrayStopCramEncoding['parameters'], dataType: 'byteArray');
8
+ decode(slice: CramSlice, coreDataBlock: CramFileBlock, blocksByContentId: Record<number, CramFileBlock>, cursors: Cursors): Buffer;
9
+ _decodeByteArray(contentBlock: CramFileBlock, cursor: Cursor): Buffer;
5
10
  }
6
- import CramCodec from "./_base";
@@ -1,64 +1,43 @@
1
1
  "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
18
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
19
4
  };
20
5
  Object.defineProperty(exports, "__esModule", { value: true });
21
- var errors_1 = require("../../errors");
22
- var _base_1 = __importDefault(require("./_base"));
23
- var ByteArrayStopCodec = /** @class */ (function (_super) {
24
- __extends(ByteArrayStopCodec, _super);
25
- function ByteArrayStopCodec(parameters, dataType) {
26
- if (parameters === void 0) { parameters = {}; }
27
- var _this = _super.call(this, parameters, dataType) || this;
28
- if (dataType === 'byteArray') {
29
- _this._decode = _this._decodeByteArray;
6
+ const errors_1 = require("../../errors");
7
+ const _base_1 = __importDefault(require("./_base"));
8
+ const getBits_1 = require("./getBits");
9
+ class ByteArrayStopCodec extends _base_1.default {
10
+ constructor(parameters, dataType) {
11
+ super(parameters, dataType);
12
+ if (dataType !== 'byteArray') {
13
+ throw new TypeError(`byteArrayStop codec does not support data type ${dataType}`);
30
14
  }
31
- else {
32
- throw new TypeError("byteArrayStop codec does not support data type ".concat(dataType));
33
- }
34
- return _this;
35
15
  }
36
- ByteArrayStopCodec.prototype.decode = function (slice, coreDataBlock, blocksByContentId, cursors) {
37
- var blockContentId = this.parameters.blockContentId;
38
- var contentBlock = blocksByContentId[blockContentId];
16
+ decode(slice, coreDataBlock, blocksByContentId, cursors) {
17
+ const { blockContentId } = this.parameters;
18
+ const contentBlock = blocksByContentId[blockContentId];
39
19
  if (!contentBlock) {
40
- throw new errors_1.CramMalformedError("no block found with content ID ".concat(blockContentId));
20
+ throw new errors_1.CramMalformedError(`no block found with content ID ${blockContentId}`);
41
21
  }
42
- var cursor = cursors.externalBlocks.getCursor(blockContentId);
43
- return this._decode(contentBlock, cursor);
44
- };
45
- ByteArrayStopCodec.prototype._decodeByteArray = function (contentBlock, cursor) {
46
- var dataBuffer = contentBlock.content;
47
- var stopByte = this.parameters.stopByte;
22
+ const cursor = cursors.externalBlocks.getCursor(blockContentId);
23
+ return this._decodeByteArray(contentBlock, cursor);
24
+ }
25
+ _decodeByteArray(contentBlock, cursor) {
26
+ const dataBuffer = contentBlock.content;
27
+ const { stopByte } = this.parameters;
48
28
  // scan to the next stop byte
49
- var startPosition = cursor.bytePosition;
50
- var stopPosition = cursor.bytePosition;
29
+ const startPosition = cursor.bytePosition;
30
+ let stopPosition = cursor.bytePosition;
51
31
  while (dataBuffer[stopPosition] !== stopByte &&
52
32
  stopPosition < dataBuffer.length) {
53
33
  if (stopPosition === dataBuffer.length) {
54
- throw new errors_1.CramBufferOverrunError("byteArrayStop reading beyond length of data buffer?");
34
+ throw new getBits_1.CramBufferOverrunError(`byteArrayStop reading beyond length of data buffer?`);
55
35
  }
56
- stopPosition += 1;
36
+ stopPosition = stopPosition + 1;
57
37
  }
58
38
  cursor.bytePosition = stopPosition + 1;
59
- return dataBuffer.slice(startPosition, stopPosition);
60
- };
61
- return ByteArrayStopCodec;
62
- }(_base_1.default));
39
+ return dataBuffer.subarray(startPosition, stopPosition);
40
+ }
41
+ }
63
42
  exports.default = ByteArrayStopCodec;
64
43
  //# sourceMappingURL=byteArrayStop.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"byteArrayStop.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/byteArrayStop.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,uCAAyE;AAEzE,kDAA+B;AAE/B;IAAgD,sCAAS;IACvD,4BAAY,UAAe,EAAE,QAAQ;QAAzB,2BAAA,EAAA,eAAe;QAA3B,YACE,kBAAM,UAAU,EAAE,QAAQ,CAAC,SAQ5B;QAPC,IAAI,QAAQ,KAAK,WAAW,EAAE;YAC5B,KAAI,CAAC,OAAO,GAAG,KAAI,CAAC,gBAAgB,CAAA;SACrC;aAAM;YACL,MAAM,IAAI,SAAS,CACjB,yDAAkD,QAAQ,CAAE,CAC7D,CAAA;SACF;;IACH,CAAC;IAED,mCAAM,GAAN,UAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,OAAO;QAC7C,IAAA,cAAc,GAAK,IAAI,CAAC,UAAU,eAApB,CAAoB;QAC1C,IAAM,YAAY,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAA;QACtD,IAAI,CAAC,YAAY,EAAE;YACjB,MAAM,IAAI,2BAAkB,CAC1B,yCAAkC,cAAc,CAAE,CACnD,CAAA;SACF;QACD,IAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;QAC/D,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;IAC3C,CAAC;IAED,6CAAgB,GAAhB,UAAiB,YAAY,EAAE,MAAM;QACnC,IAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAA;QAC/B,IAAA,QAAQ,GAAK,IAAI,CAAC,UAAU,SAApB,CAAoB;QACpC,6BAA6B;QAC7B,IAAM,aAAa,GAAG,MAAM,CAAC,YAAY,CAAA;QACzC,IAAI,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;QACtC,OACE,UAAU,CAAC,YAAY,CAAC,KAAK,QAAQ;YACrC,YAAY,GAAG,UAAU,CAAC,MAAM,EAChC;YACA,IAAI,YAAY,KAAK,UAAU,CAAC,MAAM,EAAE;gBACtC,MAAM,IAAI,+BAAsB,CAC9B,qDAAqD,CACtD,CAAA;aACF;YACD,YAAY,IAAI,CAAC,CAAA;SAClB;QACD,MAAM,CAAC,YAAY,GAAG,YAAY,GAAG,CAAC,CAAA;QACtC,OAAO,UAAU,CAAC,KAAK,CAAC,aAAa,EAAE,YAAY,CAAC,CAAA;IACtD,CAAC;IACH,yBAAC;AAAD,CAAC,AA5CD,CAAgD,eAAS,GA4CxD"}
1
+ {"version":3,"file":"byteArrayStop.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/byteArrayStop.ts"],"names":[],"mappings":";;;;;AAAA,yCAAiD;AAEjD,oDAAoD;AAIpD,uCAAkD;AAElD,MAAqB,kBAAmB,SAAQ,eAG/C;IACC,YACE,UAAmD,EACnD,QAAqB;QAErB,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC3B,IAAI,QAAQ,KAAK,WAAW,EAAE;YAC5B,MAAM,IAAI,SAAS,CACjB,kDAAkD,QAAQ,EAAE,CAC7D,CAAA;SACF;IACH,CAAC;IAED,MAAM,CACJ,KAAgB,EAChB,aAA4B,EAC5B,iBAAgD,EAChD,OAAgB;QAEhB,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,UAAU,CAAA;QAC1C,MAAM,YAAY,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAA;QACtD,IAAI,CAAC,YAAY,EAAE;YACjB,MAAM,IAAI,2BAAkB,CAC1B,kCAAkC,cAAc,EAAE,CACnD,CAAA;SACF;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;QAC/D,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;IACpD,CAAC;IAED,gBAAgB,CAAC,YAA2B,EAAE,MAAc;QAC1D,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAA;QACvC,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,UAAU,CAAA;QACpC,6BAA6B;QAC7B,MAAM,aAAa,GAAG,MAAM,CAAC,YAAY,CAAA;QACzC,IAAI,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;QACtC,OACE,UAAU,CAAC,YAAY,CAAC,KAAK,QAAQ;YACrC,YAAY,GAAG,UAAU,CAAC,MAAM,EAChC;YACA,IAAI,YAAY,KAAK,UAAU,CAAC,MAAM,EAAE;gBACtC,MAAM,IAAI,gCAAsB,CAC9B,qDAAqD,CACtD,CAAA;aACF;YACD,YAAY,GAAG,YAAY,GAAG,CAAC,CAAA;SAChC;QACD,MAAM,CAAC,YAAY,GAAG,YAAY,GAAG,CAAC,CAAA;QACtC,OAAO,UAAU,CAAC,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC,CAAA;IACzD,CAAC;CACF;AArDD,qCAqDC"}
@@ -0,0 +1,4 @@
1
+ import { CramEncoding } from '../encoding';
2
+ export declare type DataType = 'int' | 'byte' | 'long' | 'byteArray';
3
+ export declare type DataSeriesEncodingKey = 'BF' | 'CF' | 'RI' | 'RL' | 'AP' | 'RG' | 'RN' | 'MF' | 'NS' | 'NP' | 'TS' | 'NF' | 'TL' | 'FN' | 'FC' | 'FP' | 'DL' | 'BB' | 'QQ' | 'BS' | 'IN' | 'RS' | 'PD' | 'HC' | 'SC' | 'MQ' | 'BA' | 'QS' | 'TC' | 'TN';
4
+ export declare type DataSeriesEncodingMap = Record<DataSeriesEncodingKey, CramEncoding>;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=dataSeriesTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataSeriesTypes.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/dataSeriesTypes.ts"],"names":[],"mappings":""}
@@ -1,7 +1,11 @@
1
- export default class ExternalCodec extends CramCodec {
2
- _decodeData: (contentBlock: any, cursor: any) => any;
3
- decode(slice: any, coreDataBlock: any, blocksByContentId: any, cursors: any): any;
4
- _decodeInt(contentBlock: any, cursor: any): any;
5
- _decodeByte(contentBlock: any, cursor: any): any;
1
+ import CramCodec, { Cursor, Cursors } from './_base';
2
+ import CramSlice from '../slice';
3
+ import { CramFileBlock } from '../file';
4
+ import { ExternalCramEncoding } from '../encoding';
5
+ export default class ExternalCodec extends CramCodec<'int' | 'byte', ExternalCramEncoding['parameters']> {
6
+ private readonly _decodeData;
7
+ constructor(parameters: ExternalCramEncoding['parameters'], dataType: 'int' | 'byte');
8
+ decode(slice: CramSlice, coreDataBlock: CramFileBlock, blocksByContentId: Record<number, CramFileBlock>, cursors: Cursors): number;
9
+ _decodeInt(contentBlock: CramFileBlock, cursor: Cursor): number;
10
+ _decodeByte(contentBlock: CramFileBlock, cursor: Cursor): number;
6
11
  }
7
- import CramCodec from "./_base";
@@ -1,63 +1,45 @@
1
1
  "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
18
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
19
4
  };
20
5
  Object.defineProperty(exports, "__esModule", { value: true });
21
- var errors_1 = require("../../errors");
22
- var _base_1 = __importDefault(require("./_base"));
23
- var util_1 = require("../util");
24
- var ExternalCodec = /** @class */ (function (_super) {
25
- __extends(ExternalCodec, _super);
26
- function ExternalCodec(parameters, dataType) {
27
- if (parameters === void 0) { parameters = {}; }
28
- var _this = _super.call(this, parameters, dataType) || this;
29
- if (_this.dataType === 'int') {
30
- _this._decodeData = _this._decodeInt;
6
+ const errors_1 = require("../../errors");
7
+ const _base_1 = __importDefault(require("./_base"));
8
+ const util_1 = require("../util");
9
+ const getBits_1 = require("./getBits");
10
+ class ExternalCodec extends _base_1.default {
11
+ constructor(parameters, dataType) {
12
+ super(parameters, dataType);
13
+ if (this.dataType === 'int') {
14
+ this._decodeData = this._decodeInt;
31
15
  }
32
- else if (_this.dataType === 'byte') {
33
- _this._decodeData = _this._decodeByte;
16
+ else if (this.dataType === 'byte') {
17
+ this._decodeData = this._decodeByte;
34
18
  }
35
19
  else {
36
- throw new errors_1.CramUnimplementedError("".concat(_this.dataType, " decoding not yet implemented by EXTERNAL codec"));
20
+ throw new errors_1.CramUnimplementedError(`${this.dataType} decoding not yet implemented by EXTERNAL codec`);
37
21
  }
38
- return _this;
39
22
  }
40
- ExternalCodec.prototype.decode = function (slice, coreDataBlock, blocksByContentId, cursors) {
41
- var blockContentId = this.parameters.blockContentId;
42
- var contentBlock = blocksByContentId[blockContentId];
23
+ decode(slice, coreDataBlock, blocksByContentId, cursors) {
24
+ const { blockContentId } = this.parameters;
25
+ const contentBlock = blocksByContentId[blockContentId];
43
26
  if (!contentBlock) {
44
- throw new errors_1.CramMalformedError("no block found with content ID ".concat(blockContentId));
27
+ throw new errors_1.CramMalformedError(`no block found with content ID ${blockContentId}`);
45
28
  }
46
- var cursor = cursors.externalBlocks.getCursor(blockContentId);
29
+ const cursor = cursors.externalBlocks.getCursor(blockContentId);
47
30
  return this._decodeData(contentBlock, cursor);
48
- };
49
- ExternalCodec.prototype._decodeInt = function (contentBlock, cursor) {
50
- var _a = (0, util_1.parseItf8)(contentBlock.content, cursor.bytePosition), result = _a[0], bytesRead = _a[1];
51
- cursor.bytePosition += bytesRead;
31
+ }
32
+ _decodeInt(contentBlock, cursor) {
33
+ const [result, bytesRead] = (0, util_1.parseItf8)(contentBlock.content, cursor.bytePosition);
34
+ cursor.bytePosition = cursor.bytePosition + bytesRead;
52
35
  return result;
53
- };
54
- ExternalCodec.prototype._decodeByte = function (contentBlock, cursor) {
36
+ }
37
+ _decodeByte(contentBlock, cursor) {
55
38
  if (cursor.bytePosition >= contentBlock.content.length) {
56
- throw new errors_1.CramBufferOverrunError('attempted to read beyond end of block. this file seems truncated.');
39
+ throw new getBits_1.CramBufferOverrunError('attempted to read beyond end of block. this file seems truncated.');
57
40
  }
58
41
  return contentBlock.content[cursor.bytePosition++];
59
- };
60
- return ExternalCodec;
61
- }(_base_1.default));
42
+ }
43
+ }
62
44
  exports.default = ExternalCodec;
63
45
  //# sourceMappingURL=external.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"external.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/external.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,uCAIqB;AACrB,kDAA+B;AAC/B,gCAAmC;AAEnC;IAA2C,iCAAS;IAClD,uBAAY,UAAe,EAAE,QAAQ;QAAzB,2BAAA,EAAA,eAAe;QAA3B,YACE,kBAAM,UAAU,EAAE,QAAQ,CAAC,SAU5B;QATC,IAAI,KAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YAC3B,KAAI,CAAC,WAAW,GAAG,KAAI,CAAC,UAAU,CAAA;SACnC;aAAM,IAAI,KAAI,CAAC,QAAQ,KAAK,MAAM,EAAE;YACnC,KAAI,CAAC,WAAW,GAAG,KAAI,CAAC,WAAW,CAAA;SACpC;aAAM;YACL,MAAM,IAAI,+BAAsB,CAC9B,UAAG,KAAI,CAAC,QAAQ,oDAAiD,CAClE,CAAA;SACF;;IACH,CAAC;IAED,8BAAM,GAAN,UAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,OAAO;QAC7C,IAAA,cAAc,GAAK,IAAI,CAAC,UAAU,eAApB,CAAoB;QAC1C,IAAM,YAAY,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAA;QACtD,IAAI,CAAC,YAAY,EAAE;YACjB,MAAM,IAAI,2BAAkB,CAC1B,yCAAkC,cAAc,CAAE,CACnD,CAAA;SACF;QACD,IAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;QAC/D,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;IAC/C,CAAC;IAED,kCAAU,GAAV,UAAW,YAAY,EAAE,MAAM;QACvB,IAAA,KAAsB,IAAA,gBAAS,EACnC,YAAY,CAAC,OAAO,EACpB,MAAM,CAAC,YAAY,CACpB,EAHM,MAAM,QAAA,EAAE,SAAS,QAGvB,CAAA;QACD,MAAM,CAAC,YAAY,IAAI,SAAS,CAAA;QAChC,OAAO,MAAM,CAAA;IACf,CAAC;IAED,mCAAW,GAAX,UAAY,YAAY,EAAE,MAAM;QAC9B,IAAI,MAAM,CAAC,YAAY,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE;YACtD,MAAM,IAAI,+BAAsB,CAC9B,mEAAmE,CACpE,CAAA;SACF;QACD,OAAO,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAA;IACpD,CAAC;IACH,oBAAC;AAAD,CAAC,AA3CD,CAA2C,eAAS,GA2CnD"}
1
+ {"version":3,"file":"external.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/external.ts"],"names":[],"mappings":";;;;;AAAA,yCAAyE;AACzE,oDAAoD;AACpD,kCAAmC;AAGnC,uCAAkD;AAGlD,MAAqB,aAAc,SAAQ,eAG1C;IAMC,YACE,UAA8C,EAC9C,QAAwB;QAExB,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC3B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAA;SACnC;aAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE;YACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;SACpC;aAAM;YACL,MAAM,IAAI,+BAAsB,CAC9B,GAAG,IAAI,CAAC,QAAQ,iDAAiD,CAClE,CAAA;SACF;IACH,CAAC;IAED,MAAM,CACJ,KAAgB,EAChB,aAA4B,EAC5B,iBAAgD,EAChD,OAAgB;QAEhB,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,UAAU,CAAA;QAC1C,MAAM,YAAY,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAA;QACtD,IAAI,CAAC,YAAY,EAAE;YACjB,MAAM,IAAI,2BAAkB,CAC1B,kCAAkC,cAAc,EAAE,CACnD,CAAA;SACF;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;QAC/D,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;IAC/C,CAAC;IAED,UAAU,CAAC,YAA2B,EAAE,MAAc;QACpD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAS,EACnC,YAAY,CAAC,OAAO,EACpB,MAAM,CAAC,YAAY,CACpB,CAAA;QACD,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,GAAG,SAAS,CAAA;QACrD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,WAAW,CAAC,YAA2B,EAAE,MAAc;QACrD,IAAI,MAAM,CAAC,YAAY,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE;YACtD,MAAM,IAAI,gCAAsB,CAC9B,mEAAmE,CACpE,CAAA;SACF;QACD,OAAO,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAA;IACpD,CAAC;CACF;AA3DD,gCA2DC"}
@@ -1,4 +1,8 @@
1
- export default class GammaCodec extends CramCodec {
2
- decode(slice: any, coreDataBlock: any, blocksByContentId: any, cursors: any): number;
1
+ import CramCodec, { Cursors } from './_base';
2
+ import { GammaEncoding } from '../encoding';
3
+ import CramSlice from '../slice';
4
+ import { CramFileBlock } from '../file';
5
+ export default class GammaCodec extends CramCodec<'int', GammaEncoding['parameters']> {
6
+ constructor(parameters: GammaEncoding['parameters'], dataType: 'int');
7
+ decode(slice: CramSlice, coreDataBlock: CramFileBlock, blocksByContentId: Record<number, CramFileBlock>, cursors: Cursors): number;
3
8
  }
4
- import CramCodec from "./_base";