@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,45 +1,27 @@
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 GammaCodec = /** @class */ (function (_super) {
24
- __extends(GammaCodec, _super);
25
- function GammaCodec(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 GAMMA codec"));
6
+ const errors_1 = require("../../errors");
7
+ const _base_1 = __importDefault(require("./_base"));
8
+ const getBits_1 = require("./getBits");
9
+ class GammaCodec 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 GAMMA codec`);
30
14
  }
31
- return _this;
32
15
  }
33
- GammaCodec.prototype.decode = function (slice, coreDataBlock, blocksByContentId, cursors) {
34
- var length = 1;
35
- while (this._getBits(coreDataBlock.content, cursors.coreBlock, 1) === 0) {
36
- length += 1;
16
+ decode(slice, coreDataBlock, blocksByContentId, cursors) {
17
+ let length = 1;
18
+ while ((0, getBits_1.getBits)(coreDataBlock.content, cursors.coreBlock, 1) === 0) {
19
+ length = length + 1;
37
20
  }
38
- var readBits = this._getBits(coreDataBlock.content, cursors.coreBlock, length - 1);
39
- var value = readBits | (1 << (length - 1));
21
+ const readBits = (0, getBits_1.getBits)(coreDataBlock.content, cursors.coreBlock, length - 1);
22
+ const value = readBits | (1 << (length - 1));
40
23
  return value - this.parameters.offset;
41
- };
42
- return GammaCodec;
43
- }(_base_1.default));
24
+ }
25
+ }
44
26
  exports.default = GammaCodec;
45
27
  //# sourceMappingURL=gamma.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gamma.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/gamma.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,uCAAqD;AACrD,kDAA+B;AAE/B;IAAwC,8BAAS;IAC/C,oBAAY,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,iDAA8C,CAC/D,CAAA;SACF;;IACH,CAAC;IAED,2BAAM,GAAN,UAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,OAAO;QACrD,IAAI,MAAM,GAAG,CAAC,CAAA;QAEd,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE;YACvE,MAAM,IAAI,CAAC,CAAA;SACZ;QAED,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAC5B,aAAa,CAAC,OAAO,EACrB,OAAO,CAAC,SAAS,EACjB,MAAM,GAAG,CAAC,CACX,CAAA;QAED,IAAM,KAAK,GAAG,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;QAC5C,OAAO,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAA;IACvC,CAAC;IACH,iBAAC;AAAD,CAAC,AA1BD,CAAwC,eAAS,GA0BhD"}
1
+ {"version":3,"file":"gamma.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/gamma.ts"],"names":[],"mappings":";;;;;AAAA,yCAAqD;AACrD,oDAA4C;AAC5C,uCAAmC;AAKnC,MAAqB,UAAW,SAAQ,eAGvC;IACC,YAAY,UAAuC,EAAE,QAAe;QAClE,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC3B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YAC3B,MAAM,IAAI,+BAAsB,CAC9B,GAAG,IAAI,CAAC,QAAQ,8CAA8C,CAC/D,CAAA;SACF;IACH,CAAC;IAED,MAAM,CACJ,KAAgB,EAChB,aAA4B,EAC5B,iBAAgD,EAChD,OAAgB;QAEhB,IAAI,MAAM,GAAG,CAAC,CAAA;QAEd,OAAO,IAAA,iBAAO,EAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE;YACjE,MAAM,GAAG,MAAM,GAAG,CAAC,CAAA;SACpB;QAED,MAAM,QAAQ,GAAG,IAAA,iBAAO,EACtB,aAAa,CAAC,OAAO,EACrB,OAAO,CAAC,SAAS,EACjB,MAAM,GAAG,CAAC,CACX,CAAA;QAED,MAAM,KAAK,GAAG,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;QAC5C,OAAO,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAA;IACvC,CAAC;CACF;AAlCD,6BAkCC"}
@@ -0,0 +1,7 @@
1
+ /// <reference types="node" />
2
+ export declare class CramBufferOverrunError extends Error {
3
+ }
4
+ export declare function getBits(data: Buffer, cursor: {
5
+ bytePosition: number;
6
+ bitPosition: number;
7
+ }, numBits: number): number;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getBits = exports.CramBufferOverrunError = void 0;
4
+ class CramBufferOverrunError extends Error {
5
+ }
6
+ exports.CramBufferOverrunError = CramBufferOverrunError;
7
+ function getBits(data, cursor, numBits) {
8
+ let val = 0;
9
+ if (cursor.bytePosition + (7 - cursor.bitPosition + numBits) / 8 >
10
+ data.length) {
11
+ throw new CramBufferOverrunError('read error during decoding. the file seems to be truncated.');
12
+ }
13
+ for (let dlen = numBits; dlen; dlen--) {
14
+ // get the next `dlen` bits in the input, put them in val
15
+ val <<= 1;
16
+ val |= (data[cursor.bytePosition] >> cursor.bitPosition) & 1;
17
+ cursor.bitPosition -= 1;
18
+ if (cursor.bitPosition < 0) {
19
+ cursor.bytePosition += 1;
20
+ }
21
+ cursor.bitPosition &= 7;
22
+ }
23
+ return val;
24
+ }
25
+ exports.getBits = getBits;
26
+ //# sourceMappingURL=getBits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getBits.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/getBits.ts"],"names":[],"mappings":";;;AAAA,MAAa,sBAAuB,SAAQ,KAAK;CAAG;AAApD,wDAAoD;AAEpD,SAAgB,OAAO,CACrB,IAAY,EACZ,MAAqD,EACrD,OAAe;IAEf,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,IACE,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;QAC5D,IAAI,CAAC,MAAM,EACX;QACA,MAAM,IAAI,sBAAsB,CAC9B,6DAA6D,CAC9D,CAAA;KACF;IACD,KAAK,IAAI,IAAI,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QACrC,yDAAyD;QACzD,GAAG,KAAK,CAAC,CAAA;QACT,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAC5D,MAAM,CAAC,WAAW,IAAI,CAAC,CAAA;QACvB,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE;YAC1B,MAAM,CAAC,YAAY,IAAI,CAAC,CAAA;SACzB;QACD,MAAM,CAAC,WAAW,IAAI,CAAC,CAAA;KACxB;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAzBD,0BAyBC"}
@@ -1,17 +1,21 @@
1
- export default class HuffmanIntCodec extends CramCodec {
2
- _decode(slice: any, coreDataBlock: any, coreCursor: any): any;
1
+ import CramCodec, { Cursor, Cursors } from './_base';
2
+ import { HuffmanEncoding } from '../encoding';
3
+ import CramSlice from '../slice';
4
+ import { CramFileBlock } from '../file';
5
+ export default class HuffmanIntCodec extends CramCodec<'byte' | 'int', HuffmanEncoding['parameters']> {
6
+ private codes;
7
+ private codeBook;
8
+ private sortedByValue;
9
+ private sortedCodes;
10
+ private sortedValuesByBitCode;
11
+ private sortedBitCodes;
12
+ private sortedBitLengthsByBitCode;
13
+ private bitCodeToValue;
14
+ constructor(parameters: HuffmanEncoding['parameters'], dataType: 'byte' | 'int');
3
15
  buildCodeBook(): void;
4
- codeBook: {} | undefined;
5
16
  buildCodes(): void;
6
- codes: {} | undefined;
7
17
  buildCaches(): void;
8
- sortedCodes: any[] | undefined;
9
- sortedByValue: any[] | undefined;
10
- sortedValuesByBitCode: any[] | undefined;
11
- sortedBitCodes: any[] | undefined;
12
- sortedBitLengthsByBitCode: any[] | undefined;
13
- bitCodeToValue: any[] | undefined;
14
- decode(slice: any, coreDataBlock: any, blocksByContentId: any, cursors: any): any;
15
- _decodeZeroLengthCode(): any;
18
+ decode(slice: CramSlice, coreDataBlock: CramFileBlock, blocksByContentId: Record<number, CramFileBlock>, cursors: Cursors): number;
19
+ _decodeZeroLengthCode(): number;
20
+ _decode(slice: CramSlice, coreDataBlock: CramFileBlock, coreCursor: Cursor): number;
16
21
  }
17
- import CramCodec from "./_base";
@@ -1,135 +1,126 @@
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"));
6
+ const errors_1 = require("../../errors");
7
+ const _base_1 = __importDefault(require("./_base"));
8
+ const getBits_1 = require("./getBits");
23
9
  function numberOfSetBits(ii) {
24
- var i = (ii - (ii >> 1)) & 0x55555555;
10
+ let i = (ii - (ii >> 1)) & 0x55555555;
25
11
  i = (i & 0x33333333) + ((i >> 2) & 0x33333333);
26
12
  return (((i + (i >> 4)) & 0x0f0f0f0f) * 0x01010101) >> 24;
27
13
  }
28
- var HuffmanIntCodec = /** @class */ (function (_super) {
29
- __extends(HuffmanIntCodec, _super);
30
- function HuffmanIntCodec(parameters, dataType) {
31
- if (parameters === void 0) { parameters = {}; }
32
- var _this = _super.call(this, parameters, dataType) || this;
33
- if (!['byte', 'int'].includes(_this.dataType)) {
34
- throw new TypeError("".concat(_this.dataType, " decoding not yet implemented by HUFFMAN_INT codec"));
14
+ class HuffmanIntCodec extends _base_1.default {
15
+ constructor(parameters, dataType) {
16
+ super(parameters, dataType);
17
+ this.codes = {};
18
+ this.codeBook = {};
19
+ this.sortedByValue = [];
20
+ this.sortedCodes = [];
21
+ this.sortedValuesByBitCode = [];
22
+ this.sortedBitCodes = [];
23
+ this.sortedBitLengthsByBitCode = [];
24
+ this.bitCodeToValue = [];
25
+ if (!['byte', 'int'].includes(this.dataType)) {
26
+ throw new TypeError(`${this.dataType} decoding not yet implemented by HUFFMAN_INT codec`);
35
27
  }
36
- _this.buildCodeBook();
37
- _this.buildCodes();
38
- _this.buildCaches();
28
+ this.buildCodeBook();
29
+ this.buildCodes();
30
+ this.buildCaches();
39
31
  // if this is a degenerate zero-length huffman code, special-case the decoding
40
- if (_this.sortedCodes[0].bitLength === 0) {
41
- _this._decode = _this._decodeZeroLengthCode;
32
+ if (this.sortedCodes[0].bitLength === 0) {
33
+ this._decode = this._decodeZeroLengthCode;
42
34
  }
43
- return _this;
44
35
  }
45
- HuffmanIntCodec.prototype.buildCodeBook = function () {
46
- var _this = this;
36
+ buildCodeBook() {
47
37
  // parse the parameters together into a `codes` data structure
48
- var codes = new Array(this.parameters.numCodes);
49
- for (var i = 0; i < this.parameters.numCodes; i += 1) {
38
+ let codes = new Array(this.parameters.numCodes);
39
+ for (let i = 0; i < this.parameters.numCodes; i += 1) {
50
40
  codes[i] = {
51
41
  symbol: this.parameters.symbols[i],
52
42
  bitLength: this.parameters.bitLengths[i],
53
43
  };
54
44
  }
55
45
  // sort the codes by bit length and symbol value
56
- codes = codes.sort(function (a, b) { return a.bitLength - b.bitLength || a.symbol - b.symbol; });
46
+ codes = codes.sort((a, b) => a.bitLength - b.bitLength || a.symbol - b.symbol);
57
47
  this.codeBook = {};
58
- codes.forEach(function (code) {
59
- if (!_this.codeBook[code.bitLength]) {
60
- _this.codeBook[code.bitLength] = [];
48
+ codes.forEach(code => {
49
+ if (!this.codeBook[code.bitLength]) {
50
+ this.codeBook[code.bitLength] = [];
61
51
  }
62
- _this.codeBook[code.bitLength].push(code.symbol);
52
+ this.codeBook[code.bitLength].push(code.symbol);
63
53
  });
64
- };
65
- HuffmanIntCodec.prototype.buildCodes = function () {
66
- var _this = this;
54
+ }
55
+ buildCodes() {
67
56
  this.codes = {}; /* new TreeMap<Integer, HuffmanBitCode>(); */
68
- var codeLength = 0;
69
- var codeValue = -1;
70
- Object.entries(this.codeBook).forEach(function (_a) {
71
- var bitLength = _a[0], symbols = _a[1];
72
- bitLength = parseInt(bitLength, 10);
73
- symbols.forEach(function (symbol) {
74
- var code = { bitLength: bitLength, value: symbol };
75
- codeValue += 1;
76
- var delta = bitLength - codeLength; // new length?
77
- codeValue <<= delta; // pad with 0's
57
+ let codeLength = 0;
58
+ let codeValue = -1;
59
+ Object.entries(this.codeBook).forEach(([bitLength, symbols]) => {
60
+ const bitLengthInt = parseInt(bitLength, 10);
61
+ symbols.forEach(symbol => {
62
+ const code = {
63
+ bitLength: bitLengthInt,
64
+ value: symbol,
65
+ bitCode: 0,
66
+ };
67
+ codeValue = codeValue + 1;
68
+ const delta = bitLengthInt - codeLength; // new length?
69
+ codeValue = codeValue << delta; // pad with 0's
78
70
  code.bitCode = codeValue; // calculated: huffman code
79
- codeLength += delta; // adjust current code length
80
- if (numberOfSetBits(codeValue) > bitLength) {
71
+ codeLength = codeLength + delta; // adjust current code length
72
+ if (numberOfSetBits(codeValue) > bitLengthInt) {
81
73
  throw new errors_1.CramMalformedError('Symbol out of range');
82
74
  }
83
- _this.codes[symbol] = code;
75
+ this.codes[symbol] = code;
84
76
  });
85
77
  });
86
- };
87
- HuffmanIntCodec.prototype.buildCaches = function () {
88
- this.sortedCodes = Object.values(this.codes).sort(function (a, b) { return a.bitLength - b.bitLength || a.bitCode - b.bitCode; });
78
+ }
79
+ buildCaches() {
80
+ this.sortedCodes = Object.values(this.codes).sort((a, b) => a.bitLength - b.bitLength || a.bitCode - b.bitCode);
89
81
  // this.sortedValues = this.parameters.values.sort((a,b) => a-b)
90
- this.sortedByValue = Object.values(this.codes).sort(function (a, b) { return a.value - b.value; });
91
- this.sortedValuesByBitCode = this.sortedCodes.map(function (c) { return c.value; });
92
- this.sortedBitCodes = this.sortedCodes.map(function (c) { return c.bitCode; });
93
- this.sortedBitLengthsByBitCode = this.sortedCodes.map(function (c) { return c.bitLength; });
94
- var maxBitCode = Math.max.apply(Math, this.sortedBitCodes);
82
+ this.sortedByValue = Object.values(this.codes).sort((a, b) => a.value - b.value);
83
+ this.sortedValuesByBitCode = this.sortedCodes.map(c => c.value);
84
+ this.sortedBitCodes = this.sortedCodes.map(c => c.bitCode);
85
+ this.sortedBitLengthsByBitCode = this.sortedCodes.map(c => c.bitLength);
86
+ const maxBitCode = Math.max(...this.sortedBitCodes);
95
87
  this.bitCodeToValue = new Array(maxBitCode + 1).fill(-1);
96
- for (var i = 0; i < this.sortedBitCodes.length; i += 1) {
88
+ for (let i = 0; i < this.sortedBitCodes.length; i += 1) {
97
89
  this.bitCodeToValue[this.sortedCodes[i].bitCode] = i;
98
90
  }
99
- };
100
- HuffmanIntCodec.prototype.decode = function (slice, coreDataBlock, blocksByContentId, cursors) {
91
+ }
92
+ decode(slice, coreDataBlock, blocksByContentId, cursors) {
101
93
  return this._decode(slice, coreDataBlock, cursors.coreBlock);
102
- };
94
+ }
103
95
  // _decodeNull() {
104
96
  // return -1
105
97
  // }
106
98
  // the special case for zero-length codes
107
- HuffmanIntCodec.prototype._decodeZeroLengthCode = function () {
99
+ _decodeZeroLengthCode() {
108
100
  return this.sortedCodes[0].value;
109
- };
110
- HuffmanIntCodec.prototype._decode = function (slice, coreDataBlock, coreCursor) {
111
- var input = coreDataBlock.content;
112
- var prevLen = 0;
113
- var bits = 0;
114
- for (var i = 0; i < this.sortedCodes.length; i += 1) {
115
- var length_1 = this.sortedCodes[i].bitLength;
116
- bits <<= length_1 - prevLen;
117
- bits |= this._getBits(input, coreCursor, length_1 - prevLen);
118
- prevLen = length_1;
101
+ }
102
+ _decode(slice, coreDataBlock, coreCursor) {
103
+ const input = coreDataBlock.content;
104
+ let prevLen = 0;
105
+ let bits = 0;
106
+ for (let i = 0; i < this.sortedCodes.length; i += 1) {
107
+ const length = this.sortedCodes[i].bitLength;
108
+ bits <<= length - prevLen;
109
+ bits |= (0, getBits_1.getBits)(input, coreCursor, length - prevLen);
110
+ prevLen = length;
119
111
  {
120
- var index = this.bitCodeToValue[bits];
121
- if (index > -1 && this.sortedBitLengthsByBitCode[index] === length_1) {
112
+ const index = this.bitCodeToValue[bits];
113
+ if (index > -1 && this.sortedBitLengthsByBitCode[index] === length) {
122
114
  return this.sortedValuesByBitCode[index];
123
115
  }
124
- for (var j = i; this.sortedCodes[j + 1].bitLength === length_1 &&
116
+ for (let j = i; this.sortedCodes[j + 1].bitLength === length &&
125
117
  j < this.sortedCodes.length; j += 1) {
126
118
  i += 1;
127
119
  }
128
120
  }
129
121
  }
130
122
  throw new errors_1.CramMalformedError('Huffman symbol not found.');
131
- };
132
- return HuffmanIntCodec;
133
- }(_base_1.default));
123
+ }
124
+ }
134
125
  exports.default = HuffmanIntCodec;
135
126
  //# sourceMappingURL=huffman.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"huffman.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/huffman.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"huffman.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/huffman.ts"],"names":[],"mappings":";;;;;AAAA,yCAAiD;AACjD,oDAAoD;AACpD,uCAAmC;AAMnC,SAAS,eAAe,CAAC,EAAU;IACjC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,CAAA;IACrC,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,UAAU,CAAC,CAAA;IAC9C,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,CAAA;AAC3D,CAAC;AAID,MAAqB,eAAgB,SAAQ,eAG5C;IAUC,YACE,UAAyC,EACzC,QAAwB;QAExB,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAbrB,UAAK,GAAyB,EAAE,CAAA;QAChC,aAAQ,GAA6B,EAAE,CAAA;QACvC,kBAAa,GAAW,EAAE,CAAA;QAC1B,gBAAW,GAAW,EAAE,CAAA;QACxB,0BAAqB,GAAa,EAAE,CAAA;QACpC,mBAAc,GAAa,EAAE,CAAA;QAC7B,8BAAyB,GAAa,EAAE,CAAA;QACxC,mBAAc,GAAa,EAAE,CAAA;QAOnC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC5C,MAAM,IAAI,SAAS,CACjB,GAAG,IAAI,CAAC,QAAQ,oDAAoD,CACrE,CAAA;SACF;QAED,IAAI,CAAC,aAAa,EAAE,CAAA;QACpB,IAAI,CAAC,UAAU,EAAE,CAAA;QACjB,IAAI,CAAC,WAAW,EAAE,CAAA;QAElB,8EAA8E;QAC9E,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,EAAE;YACvC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAA;SAC1C;IACH,CAAC;IAED,aAAa;QACX,8DAA8D;QAC9D,IAAI,KAAK,GAAiD,IAAI,KAAK,CACjE,IAAI,CAAC,UAAU,CAAC,QAAQ,CACzB,CAAA;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE;YACpD,KAAK,CAAC,CAAC,CAAC,GAAG;gBACT,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;gBAClC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;aACzC,CAAA;SACF;QACD,gDAAgD;QAChD,KAAK,GAAG,KAAK,CAAC,IAAI,CAChB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAC3D,CAAA;QAED,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;QAClB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACnB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAA;aACnC;YACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACjD,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,UAAU;QACR,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA,CAAC,8CAA8C;QAC9D,IAAI,UAAU,GAAG,CAAC,CAAA;QAClB,IAAI,SAAS,GAAG,CAAC,CAAC,CAAA;QAClB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE;YAC7D,MAAM,YAAY,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;YAC5C,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBACvB,MAAM,IAAI,GAAG;oBACX,SAAS,EAAE,YAAY;oBACvB,KAAK,EAAE,MAAM;oBACb,OAAO,EAAE,CAAC;iBACX,CAAA;gBACD,SAAS,GAAG,SAAS,GAAG,CAAC,CAAA;gBACzB,MAAM,KAAK,GAAG,YAAY,GAAG,UAAU,CAAA,CAAC,cAAc;gBACtD,SAAS,GAAG,SAAS,IAAI,KAAK,CAAA,CAAC,eAAe;gBAC9C,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA,CAAC,2BAA2B;gBACpD,UAAU,GAAG,UAAU,GAAG,KAAK,CAAA,CAAC,6BAA6B;gBAE7D,IAAI,eAAe,CAAC,SAAS,CAAC,GAAG,YAAY,EAAE;oBAC7C,MAAM,IAAI,2BAAkB,CAAC,qBAAqB,CAAC,CAAA;iBACpD;gBAED,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;YAC3B,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,WAAW;QACT,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAC/C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAC7D,CAAA;QAED,gEAAgE;QAChE,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CACjD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAC5B,CAAA;QAED,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QAC/D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QAC1D,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QACvE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAA;QAEnD,IAAI,CAAC,cAAc,GAAG,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YACtD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;SACrD;IACH,CAAC;IAED,MAAM,CACJ,KAAgB,EAChB,aAA4B,EAC5B,iBAAgD,EAChD,OAAgB;QAEhB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IAC9D,CAAC;IAED,kBAAkB;IAClB,cAAc;IACd,IAAI;IAEJ,yCAAyC;IACzC,qBAAqB;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IAClC,CAAC;IAED,OAAO,CAAC,KAAgB,EAAE,aAA4B,EAAE,UAAkB;QACxE,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAA;QAEnC,IAAI,OAAO,GAAG,CAAC,CAAA;QACf,IAAI,IAAI,GAAG,CAAC,CAAA;QACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YACnD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YAC5C,IAAI,KAAK,MAAM,GAAG,OAAO,CAAA;YACzB,IAAI,IAAI,IAAA,iBAAO,EAAC,KAAK,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,CAAA;YACpD,OAAO,GAAG,MAAM,CAAA;YAChB;gBACE,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;gBACvC,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,KAAK,MAAM,EAAE;oBAClE,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAA;iBACzC;gBAED,KACE,IAAI,CAAC,GAAG,CAAC,EACT,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM;oBAC5C,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAC3B,CAAC,IAAI,CAAC,EACN;oBACA,CAAC,IAAI,CAAC,CAAA;iBACP;aACF;SACF;QACD,MAAM,IAAI,2BAAkB,CAAC,2BAA2B,CAAC,CAAA;IAC3D,CAAC;CACF;AAzJD,kCAyJC"}
@@ -1,2 +1,4 @@
1
- export function getCodecClassWithId(id: any): any;
2
- export function instantiateCodec(encodingData: any, dataType: any): any;
1
+ import CramCodec from './_base';
2
+ import { CramEncoding } from '../encoding';
3
+ import { DataType } from './dataSeriesTypes';
4
+ export declare function instantiateCodec<TResult extends DataType = DataType>(encodingData: CramEncoding, dataType: DataType | 'ignore'): CramCodec<TResult>;
@@ -3,16 +3,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.instantiateCodec = exports.getCodecClassWithId = void 0;
7
- var errors_1 = require("../../errors");
8
- var huffman_1 = __importDefault(require("./huffman"));
9
- var external_1 = __importDefault(require("./external"));
10
- var byteArrayStop_1 = __importDefault(require("./byteArrayStop"));
11
- var byteArrayLength_1 = __importDefault(require("./byteArrayLength"));
12
- var beta_1 = __importDefault(require("./beta"));
13
- var gamma_1 = __importDefault(require("./gamma"));
14
- var subexp_1 = __importDefault(require("./subexp"));
15
- var codecClasses = {
6
+ exports.instantiateCodec = void 0;
7
+ const errors_1 = require("../../errors");
8
+ const huffman_1 = __importDefault(require("./huffman"));
9
+ const external_1 = __importDefault(require("./external"));
10
+ const byteArrayStop_1 = __importDefault(require("./byteArrayStop"));
11
+ const byteArrayLength_1 = __importDefault(require("./byteArrayLength"));
12
+ const beta_1 = __importDefault(require("./beta"));
13
+ const gamma_1 = __importDefault(require("./gamma"));
14
+ const subexp_1 = __importDefault(require("./subexp"));
15
+ const codecClasses = {
16
16
  1: external_1.default,
17
17
  // 2: GolombCodec,
18
18
  3: huffman_1.default,
@@ -26,11 +26,10 @@ var codecClasses = {
26
26
  function getCodecClassWithId(id) {
27
27
  return codecClasses[id];
28
28
  }
29
- exports.getCodecClassWithId = getCodecClassWithId;
30
29
  function instantiateCodec(encodingData, dataType) {
31
- var CodecClass = getCodecClassWithId(dataType === 'ignore' ? 0 : encodingData.codecId);
30
+ const CodecClass = getCodecClassWithId(dataType === 'ignore' ? 0 : encodingData.codecId);
32
31
  if (!CodecClass) {
33
- throw new errors_1.CramUnimplementedError("no codec implemented for codec ID ".concat(encodingData.codecId));
32
+ throw new errors_1.CramUnimplementedError(`no codec implemented for codec ID ${encodingData.codecId}`);
34
33
  }
35
34
  return new CodecClass(encodingData.parameters, dataType, instantiateCodec);
36
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/index.js"],"names":[],"mappings":";;;;;;AAAA,uCAAqD;AAErD,sDAAuC;AACvC,wDAAsC;AACtC,kEAAgD;AAChD,sEAAoD;AACpD,gDAA8B;AAC9B,kDAAgC;AAChC,oDAAkC;AAElC,IAAM,YAAY,GAAG;IACnB,CAAC,EAAE,kBAAa;IAChB,kBAAkB;IAClB,CAAC,EAAE,iBAAe;IAClB,CAAC,EAAE,yBAAoB;IACvB,CAAC,EAAE,uBAAkB;IACrB,CAAC,EAAE,cAAS;IACZ,CAAC,EAAE,gBAAW;IACd,sBAAsB;IACtB,CAAC,EAAE,eAAU;CACd,CAAA;AAED,SAAgB,mBAAmB,CAAC,EAAE;IACpC,OAAO,YAAY,CAAC,EAAE,CAAC,CAAA;AACzB,CAAC;AAFD,kDAEC;AAED,SAAgB,gBAAgB,CAAC,YAAY,EAAE,QAAQ;IACrD,IAAM,UAAU,GAAG,mBAAmB,CACpC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CACjD,CAAA;IACD,IAAI,CAAC,UAAU,EAAE;QACf,MAAM,IAAI,+BAAsB,CAC9B,4CAAqC,YAAY,CAAC,OAAO,CAAE,CAC5D,CAAA;KACF;IAED,OAAO,IAAI,UAAU,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAA;AAC5E,CAAC;AAXD,4CAWC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/index.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAqD;AAErD,wDAAuC;AACvC,0DAAsC;AACtC,oEAAgD;AAChD,wEAAoD;AACpD,kDAA8B;AAC9B,oDAAgC;AAChC,sDAAkC;AAKlC,MAAM,YAAY,GAAG;IACnB,CAAC,EAAE,kBAAa;IAChB,kBAAkB;IAClB,CAAC,EAAE,iBAAe;IAClB,CAAC,EAAE,yBAAoB;IACvB,CAAC,EAAE,uBAAkB;IACrB,CAAC,EAAE,cAAS;IACZ,CAAC,EAAE,gBAAW;IACd,sBAAsB;IACtB,CAAC,EAAE,eAAU;CACd,CAAA;AAED,SAAS,mBAAmB,CAAC,EAAU;IACrC,OAAQ,YAAoB,CAAC,EAAE,CAAC,CAAA;AAClC,CAAC;AAED,SAAgB,gBAAgB,CAC9B,YAA0B,EAC1B,QAA6B;IAE7B,MAAM,UAAU,GAAG,mBAAmB,CACpC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CACjD,CAAA;IACD,IAAI,CAAC,UAAU,EAAE;QACf,MAAM,IAAI,+BAAsB,CAC9B,qCAAqC,YAAY,CAAC,OAAO,EAAE,CAC5D,CAAA;KACF;IAED,OAAO,IAAI,UAAU,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAA;AAC5E,CAAC;AAdD,4CAcC"}
@@ -1,4 +1,8 @@
1
- export default class SubexpCodec 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 { SubexpEncoding } from '../encoding';
5
+ export default class SubexpCodec extends CramCodec<'int', SubexpEncoding['parameters']> {
6
+ constructor(parameters: SubexpEncoding['parameters'], dataType: 'int');
7
+ decode(slice: CramSlice, coreDataBlock: CramFileBlock, blocksByContentId: Record<number, CramFileBlock>, cursors: Cursors): number;
3
8
  }
4
- import CramCodec from "./_base";
@@ -1,53 +1,36 @@
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 SubexpCodec = /** @class */ (function (_super) {
24
- __extends(SubexpCodec, _super);
25
- function SubexpCodec(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 SUBEXP codec"));
6
+ const errors_1 = require("../../errors");
7
+ const _base_1 = __importDefault(require("./_base"));
8
+ const getBits_1 = require("./getBits");
9
+ class SubexpCodec 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 SUBEXP codec`);
30
14
  }
31
- return _this;
32
15
  }
33
- SubexpCodec.prototype.decode = function (slice, coreDataBlock, blocksByContentId, cursors) {
34
- var numLeadingOnes = 0;
35
- while (this._getBits(coreDataBlock.content, cursors.coreBlock, 1)) {
36
- numLeadingOnes += 1;
16
+ decode(slice, coreDataBlock, blocksByContentId, cursors) {
17
+ let numLeadingOnes = 0;
18
+ while ((0, getBits_1.getBits)(coreDataBlock.content, cursors.coreBlock, 1)) {
19
+ numLeadingOnes = numLeadingOnes + 1;
37
20
  }
38
- var b;
39
- var n;
21
+ let b;
22
+ let n;
40
23
  if (numLeadingOnes === 0) {
41
24
  b = this.parameters.K;
42
- n = this._getBits(coreDataBlock.content, cursors.coreBlock, b);
25
+ n = (0, getBits_1.getBits)(coreDataBlock.content, cursors.coreBlock, b);
43
26
  }
44
27
  else {
45
28
  b = numLeadingOnes + this.parameters.K - 1;
46
- n = (1 << b) | this._getBits(coreDataBlock.content, cursors.coreBlock, b);
29
+ const bits = (0, getBits_1.getBits)(coreDataBlock.content, cursors.coreBlock, b);
30
+ n = (1 << b) | bits;
47
31
  }
48
32
  return n - this.parameters.offset;
49
- };
50
- return SubexpCodec;
51
- }(_base_1.default));
33
+ }
34
+ }
52
35
  exports.default = SubexpCodec;
53
36
  //# sourceMappingURL=subexp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"subexp.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/subexp.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,uCAAqD;AACrD,kDAA+B;AAE/B;IAAyC,+BAAS;IAChD,qBAAY,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,kDAA+C,CAChE,CAAA;SACF;;IACH,CAAC;IAED,4BAAM,GAAN,UAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,OAAO;QACrD,IAAI,cAAc,GAAG,CAAC,CAAA;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE;YACjE,cAAc,IAAI,CAAC,CAAA;SACpB;QAED,IAAI,CAAC,CAAA;QACL,IAAI,CAAC,CAAA;QACL,IAAI,cAAc,KAAK,CAAC,EAAE;YACxB,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;YACrB,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;SAC/D;aAAM;YACL,CAAC,GAAG,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAA;YAC1C,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;SAC1E;QAED,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAA;IACnC,CAAC;IACH,kBAAC;AAAD,CAAC,AA5BD,CAAyC,eAAS,GA4BjD"}
1
+ {"version":3,"file":"subexp.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/subexp.ts"],"names":[],"mappings":";;;;;AAAA,yCAAqD;AACrD,oDAA4C;AAC5C,uCAAmC;AAKnC,MAAqB,WAAY,SAAQ,eAGxC;IACC,YAAY,UAAwC,EAAE,QAAe;QACnE,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC3B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YAC3B,MAAM,IAAI,+BAAsB,CAC9B,GAAG,IAAI,CAAC,QAAQ,+CAA+C,CAChE,CAAA;SACF;IACH,CAAC;IAED,MAAM,CACJ,KAAgB,EAChB,aAA4B,EAC5B,iBAAgD,EAChD,OAAgB;QAEhB,IAAI,cAAc,GAAG,CAAC,CAAA;QACtB,OAAO,IAAA,iBAAO,EAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE;YAC3D,cAAc,GAAG,cAAc,GAAG,CAAC,CAAA;SACpC;QAED,IAAI,CAAC,CAAA;QACL,IAAI,CAAC,CAAA;QACL,IAAI,cAAc,KAAK,CAAC,EAAE;YACxB,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;YACrB,CAAC,GAAG,IAAA,iBAAO,EAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;SACzD;aAAM;YACL,CAAC,GAAG,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAA;YAC1C,MAAM,IAAI,GAAG,IAAA,iBAAO,EAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;YACjE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAA;SACpB;QAED,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAA;IACnC,CAAC;CACF;AArCD,8BAqCC"}
@@ -1,36 +1,36 @@
1
+ declare const Constants: {
2
+ CRAM_FLAG_PRESERVE_QUAL_SCORES: number;
3
+ CRAM_FLAG_DETACHED: number;
4
+ CRAM_FLAG_MATE_DOWNSTREAM: number;
5
+ CRAM_FLAG_NO_SEQ: number;
6
+ CRAM_FLAG_MASK: number;
7
+ CRAM_M_REVERSE: number;
8
+ CRAM_M_UNMAP: number;
9
+ BAM_FPAIRED: number;
10
+ BAM_FPROPER_PAIR: number;
11
+ BAM_FUNMAP: number;
12
+ BAM_FMUNMAP: number;
13
+ BAM_FREVERSE: number;
14
+ BAM_FMREVERSE: number;
15
+ BAM_FREAD1: number;
16
+ BAM_FREAD2: number;
17
+ BAM_FSECONDARY: number;
18
+ BAM_FQCFAIL: number;
19
+ BAM_FDUP: number;
20
+ BAM_FSUPPLEMENTARY: number;
21
+ BAM_CMATCH: number;
22
+ BAM_CINS: number;
23
+ BAM_CDEL: number;
24
+ BAM_CREF_SKIP: number;
25
+ BAM_CSOFT_CLIP: number;
26
+ BAM_CHARD_CLIP: number;
27
+ BAM_CPAD: number;
28
+ BAM_CEQUAL: number;
29
+ BAM_CDIFF: number;
30
+ BAM_CBACK: number;
31
+ BAM_CIGAR_STR: string;
32
+ BAM_CIGAR_SHIFT: number;
33
+ BAM_CIGAR_MASK: number;
34
+ BAM_CIGAR_TYPE: number;
35
+ };
1
36
  export default Constants;
2
- declare namespace Constants {
3
- const CRAM_FLAG_PRESERVE_QUAL_SCORES: number;
4
- const CRAM_FLAG_DETACHED: number;
5
- const CRAM_FLAG_MATE_DOWNSTREAM: number;
6
- const CRAM_FLAG_NO_SEQ: number;
7
- const CRAM_FLAG_MASK: number;
8
- const CRAM_M_REVERSE: number;
9
- const CRAM_M_UNMAP: number;
10
- const BAM_FPAIRED: number;
11
- const BAM_FPROPER_PAIR: number;
12
- const BAM_FUNMAP: number;
13
- const BAM_FMUNMAP: number;
14
- const BAM_FREVERSE: number;
15
- const BAM_FMREVERSE: number;
16
- const BAM_FREAD1: number;
17
- const BAM_FREAD2: number;
18
- const BAM_FSECONDARY: number;
19
- const BAM_FQCFAIL: number;
20
- const BAM_FDUP: number;
21
- const BAM_FSUPPLEMENTARY: number;
22
- const BAM_CMATCH: number;
23
- const BAM_CINS: number;
24
- const BAM_CDEL: number;
25
- const BAM_CREF_SKIP: number;
26
- const BAM_CSOFT_CLIP: number;
27
- const BAM_CHARD_CLIP: number;
28
- const BAM_CPAD: number;
29
- const BAM_CEQUAL: number;
30
- const BAM_CDIFF: number;
31
- const BAM_CBACK: number;
32
- const BAM_CIGAR_STR: string;
33
- const BAM_CIGAR_SHIFT: number;
34
- const BAM_CIGAR_MASK: number;
35
- const BAM_CIGAR_TYPE: number;
36
- }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var Constants = {
3
+ const Constants = {
4
4
  CRAM_FLAG_PRESERVE_QUAL_SCORES: 1 << 0,
5
5
  CRAM_FLAG_DETACHED: 1 << 1,
6
6
  CRAM_FLAG_MATE_DOWNSTREAM: 1 << 2,