@gmod/cram 1.5.9 → 1.6.2

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 (258) hide show
  1. package/CHANGELOG.md +90 -0
  2. package/README.md +182 -172
  3. package/dist/craiIndex.d.ts +37 -0
  4. package/dist/craiIndex.js +196 -301
  5. package/dist/craiIndex.js.map +1 -0
  6. package/dist/cram-bundle.js +6 -15
  7. package/dist/cramFile/codecs/_base.d.ts +6 -0
  8. package/dist/cramFile/codecs/_base.js +44 -53
  9. package/dist/cramFile/codecs/_base.js.map +1 -0
  10. package/dist/cramFile/codecs/beta.d.ts +4 -0
  11. package/dist/cramFile/codecs/beta.js +38 -48
  12. package/dist/cramFile/codecs/beta.js.map +1 -0
  13. package/dist/cramFile/codecs/byteArrayLength.d.ts +8 -0
  14. package/dist/cramFile/codecs/byteArrayLength.js +58 -78
  15. package/dist/cramFile/codecs/byteArrayLength.js.map +1 -0
  16. package/dist/cramFile/codecs/byteArrayStop.d.ts +6 -0
  17. package/dist/cramFile/codecs/byteArrayStop.js +62 -76
  18. package/dist/cramFile/codecs/byteArrayStop.js.map +1 -0
  19. package/dist/cramFile/codecs/external.d.ts +7 -0
  20. package/dist/cramFile/codecs/external.js +63 -81
  21. package/dist/cramFile/codecs/external.js.map +1 -0
  22. package/dist/cramFile/codecs/gamma.d.ts +4 -0
  23. package/dist/cramFile/codecs/gamma.js +43 -56
  24. package/dist/cramFile/codecs/gamma.js.map +1 -0
  25. package/dist/cramFile/codecs/huffman.d.ts +17 -0
  26. package/dist/cramFile/codecs/huffman.js +126 -199
  27. package/dist/cramFile/codecs/huffman.js.map +1 -0
  28. package/dist/cramFile/codecs/index.d.ts +2 -0
  29. package/dist/cramFile/codecs/index.js +31 -38
  30. package/dist/cramFile/codecs/index.js.map +1 -0
  31. package/dist/cramFile/codecs/subexp.d.ts +4 -0
  32. package/dist/cramFile/codecs/subexp.js +51 -64
  33. package/dist/cramFile/codecs/subexp.js.map +1 -0
  34. package/dist/cramFile/constants.d.ts +36 -0
  35. package/dist/cramFile/constants.js +52 -50
  36. package/dist/cramFile/constants.js.map +1 -0
  37. package/dist/cramFile/container/compressionScheme.d.ts +23 -0
  38. package/dist/cramFile/container/compressionScheme.js +115 -153
  39. package/dist/cramFile/container/compressionScheme.js.map +1 -0
  40. package/dist/cramFile/container/index.d.ts +13 -0
  41. package/dist/cramFile/container/index.js +169 -283
  42. package/dist/cramFile/container/index.js.map +1 -0
  43. package/dist/cramFile/file.d.ts +63 -0
  44. package/dist/cramFile/file.js +440 -766
  45. package/dist/cramFile/file.js.map +1 -0
  46. package/dist/cramFile/index.d.ts +2 -0
  47. package/dist/cramFile/index.js +7 -4
  48. package/dist/cramFile/index.js.map +1 -0
  49. package/dist/cramFile/record.d.ts +79 -0
  50. package/dist/cramFile/record.js +253 -308
  51. package/dist/cramFile/record.js.map +1 -0
  52. package/dist/cramFile/sectionParsers.d.ts +18 -0
  53. package/dist/cramFile/sectionParsers.js +324 -362
  54. package/dist/cramFile/sectionParsers.js.map +1 -0
  55. package/dist/cramFile/slice/decodeRecord.d.ts +2 -0
  56. package/dist/cramFile/slice/decodeRecord.js +278 -298
  57. package/dist/cramFile/slice/decodeRecord.js.map +1 -0
  58. package/dist/cramFile/slice/index.d.ts +20 -0
  59. package/dist/cramFile/slice/index.js +488 -789
  60. package/dist/cramFile/slice/index.js.map +1 -0
  61. package/dist/cramFile/util.d.ts +5 -0
  62. package/dist/cramFile/util.js +158 -144
  63. package/dist/cramFile/util.js.map +1 -0
  64. package/dist/errors.d.ts +23 -0
  65. package/dist/errors.js +66 -103
  66. package/dist/errors.js.map +1 -0
  67. package/dist/index.d.ts +4 -0
  68. package/dist/index.js +12 -12
  69. package/dist/index.js.map +1 -0
  70. package/dist/indexedCramFile.d.ts +39 -0
  71. package/dist/indexedCramFile.js +213 -315
  72. package/dist/indexedCramFile.js.map +1 -0
  73. package/dist/io/bufferCache.d.ts +12 -0
  74. package/dist/io/bufferCache.js +108 -128
  75. package/dist/io/bufferCache.js.map +1 -0
  76. package/dist/io/index.d.ts +5 -0
  77. package/dist/io/index.js +29 -27
  78. package/dist/io/index.js.map +1 -0
  79. package/dist/io/localFile.d.ts +10 -0
  80. package/dist/io/localFile.js +105 -162
  81. package/dist/io/localFile.js.map +1 -0
  82. package/dist/io/remoteFile.d.ts +16 -0
  83. package/dist/io/remoteFile.js +137 -206
  84. package/dist/io/remoteFile.js.map +1 -0
  85. package/dist/rans/constants.d.ts +3 -0
  86. package/dist/rans/constants.js +6 -6
  87. package/dist/rans/constants.js.map +1 -0
  88. package/dist/rans/d04.d.ts +1 -0
  89. package/dist/rans/d04.js +70 -99
  90. package/dist/rans/d04.js.map +1 -0
  91. package/dist/rans/d14.d.ts +1 -0
  92. package/dist/rans/d14.js +55 -93
  93. package/dist/rans/d14.js.map +1 -0
  94. package/dist/rans/decoding.d.ts +30 -0
  95. package/dist/rans/decoding.js +112 -159
  96. package/dist/rans/decoding.js.map +1 -0
  97. package/dist/rans/frequencies.d.ts +2 -0
  98. package/dist/rans/frequencies.js +110 -119
  99. package/dist/rans/frequencies.js.map +1 -0
  100. package/dist/rans/index.d.ts +1 -0
  101. package/dist/rans/index.js +111 -174
  102. package/dist/rans/index.js.map +1 -0
  103. package/dist/sam.d.ts +1 -0
  104. package/dist/sam.js +16 -41
  105. package/dist/sam.js.map +1 -0
  106. package/dist/unzip-pako.d.ts +2 -0
  107. package/dist/unzip-pako.js +9 -0
  108. package/dist/unzip-pako.js.map +1 -0
  109. package/dist/unzip.d.ts +2 -0
  110. package/dist/unzip.js +6 -0
  111. package/dist/unzip.js.map +1 -0
  112. package/errors.js +66 -103
  113. package/esm/craiIndex.d.ts +37 -0
  114. package/esm/craiIndex.js +158 -0
  115. package/esm/craiIndex.js.map +1 -0
  116. package/esm/cramFile/codecs/_base.d.ts +6 -0
  117. package/esm/cramFile/codecs/_base.js +42 -0
  118. package/esm/cramFile/codecs/_base.js.map +1 -0
  119. package/esm/cramFile/codecs/beta.d.ts +4 -0
  120. package/esm/cramFile/codecs/beta.js +15 -0
  121. package/esm/cramFile/codecs/beta.js.map +1 -0
  122. package/esm/cramFile/codecs/byteArrayLength.d.ts +8 -0
  123. package/esm/cramFile/codecs/byteArrayLength.js +35 -0
  124. package/esm/cramFile/codecs/byteArrayLength.js.map +1 -0
  125. package/esm/cramFile/codecs/byteArrayStop.d.ts +6 -0
  126. package/esm/cramFile/codecs/byteArrayStop.js +40 -0
  127. package/esm/cramFile/codecs/byteArrayStop.js.map +1 -0
  128. package/esm/cramFile/codecs/external.d.ts +7 -0
  129. package/esm/cramFile/codecs/external.js +40 -0
  130. package/esm/cramFile/codecs/external.js.map +1 -0
  131. package/esm/cramFile/codecs/gamma.d.ts +4 -0
  132. package/esm/cramFile/codecs/gamma.js +20 -0
  133. package/esm/cramFile/codecs/gamma.js.map +1 -0
  134. package/esm/cramFile/codecs/huffman.d.ts +17 -0
  135. package/esm/cramFile/codecs/huffman.js +107 -0
  136. package/esm/cramFile/codecs/huffman.js.map +1 -0
  137. package/esm/cramFile/codecs/index.d.ts +2 -0
  138. package/esm/cramFile/codecs/index.js +30 -0
  139. package/esm/cramFile/codecs/index.js.map +1 -0
  140. package/esm/cramFile/codecs/subexp.d.ts +4 -0
  141. package/esm/cramFile/codecs/subexp.js +28 -0
  142. package/esm/cramFile/codecs/subexp.js.map +1 -0
  143. package/esm/cramFile/constants.d.ts +36 -0
  144. package/esm/cramFile/constants.js +51 -0
  145. package/esm/cramFile/constants.js.map +1 -0
  146. package/esm/cramFile/container/compressionScheme.d.ts +23 -0
  147. package/esm/cramFile/container/compressionScheme.js +123 -0
  148. package/esm/cramFile/container/compressionScheme.js.map +1 -0
  149. package/esm/cramFile/container/index.d.ts +13 -0
  150. package/esm/cramFile/container/index.js +84 -0
  151. package/esm/cramFile/container/index.js.map +1 -0
  152. package/esm/cramFile/file.d.ts +63 -0
  153. package/esm/cramFile/file.js +281 -0
  154. package/esm/cramFile/file.js.map +1 -0
  155. package/esm/cramFile/index.d.ts +2 -0
  156. package/esm/cramFile/index.js +3 -0
  157. package/esm/cramFile/index.js.map +1 -0
  158. package/esm/cramFile/record.d.ts +79 -0
  159. package/esm/cramFile/record.js +297 -0
  160. package/esm/cramFile/record.js.map +1 -0
  161. package/esm/cramFile/sectionParsers.d.ts +18 -0
  162. package/esm/cramFile/sectionParsers.js +347 -0
  163. package/esm/cramFile/sectionParsers.js.map +1 -0
  164. package/esm/cramFile/slice/decodeRecord.d.ts +2 -0
  165. package/esm/cramFile/slice/decodeRecord.js +299 -0
  166. package/esm/cramFile/slice/decodeRecord.js.map +1 -0
  167. package/esm/cramFile/slice/index.d.ts +20 -0
  168. package/esm/cramFile/slice/index.js +364 -0
  169. package/esm/cramFile/slice/index.js.map +1 -0
  170. package/esm/cramFile/util.d.ts +5 -0
  171. package/esm/cramFile/util.js +161 -0
  172. package/esm/cramFile/util.js.map +1 -0
  173. package/esm/errors.d.ts +23 -0
  174. package/esm/errors.js +24 -0
  175. package/esm/errors.js.map +1 -0
  176. package/esm/index.d.ts +4 -0
  177. package/esm/index.js +5 -0
  178. package/esm/index.js.map +1 -0
  179. package/esm/indexedCramFile.d.ts +39 -0
  180. package/esm/indexedCramFile.js +155 -0
  181. package/esm/indexedCramFile.js.map +1 -0
  182. package/esm/io/bufferCache.d.ts +12 -0
  183. package/esm/io/bufferCache.js +54 -0
  184. package/esm/io/bufferCache.js.map +1 -0
  185. package/esm/io/index.d.ts +5 -0
  186. package/esm/io/index.js +24 -0
  187. package/esm/io/index.js.map +1 -0
  188. package/esm/io/localFile.d.ts +10 -0
  189. package/esm/io/localFile.js +31 -0
  190. package/esm/io/localFile.js.map +1 -0
  191. package/esm/io/remoteFile.d.ts +16 -0
  192. package/esm/io/remoteFile.js +64 -0
  193. package/esm/io/remoteFile.js.map +1 -0
  194. package/esm/rans/constants.d.ts +3 -0
  195. package/esm/rans/constants.js +5 -0
  196. package/esm/rans/constants.js.map +1 -0
  197. package/esm/rans/d04.d.ts +1 -0
  198. package/esm/rans/d04.js +67 -0
  199. package/esm/rans/d04.js.map +1 -0
  200. package/esm/rans/d14.d.ts +1 -0
  201. package/esm/rans/d14.js +52 -0
  202. package/esm/rans/d14.js.map +1 -0
  203. package/esm/rans/decoding.d.ts +30 -0
  204. package/esm/rans/decoding.js +118 -0
  205. package/esm/rans/decoding.js.map +1 -0
  206. package/esm/rans/frequencies.d.ts +2 -0
  207. package/esm/rans/frequencies.js +110 -0
  208. package/esm/rans/frequencies.js.map +1 -0
  209. package/esm/rans/index.d.ts +1 -0
  210. package/esm/rans/index.js +195 -0
  211. package/esm/rans/index.js.map +1 -0
  212. package/esm/sam.d.ts +1 -0
  213. package/esm/sam.js +16 -0
  214. package/esm/sam.js.map +1 -0
  215. package/esm/unzip-pako.d.ts +2 -0
  216. package/esm/unzip-pako.js +5 -0
  217. package/esm/unzip-pako.js.map +1 -0
  218. package/esm/unzip.d.ts +2 -0
  219. package/esm/unzip.js +3 -0
  220. package/esm/unzip.js.map +1 -0
  221. package/package.json +38 -35
  222. package/src/craiIndex.js +180 -0
  223. package/src/cramFile/codecs/_base.js +49 -0
  224. package/src/cramFile/codecs/beta.js +23 -0
  225. package/src/cramFile/codecs/byteArrayLength.js +55 -0
  226. package/src/cramFile/codecs/byteArrayStop.js +50 -0
  227. package/src/cramFile/codecs/external.js +54 -0
  228. package/src/cramFile/codecs/gamma.js +30 -0
  229. package/src/cramFile/codecs/huffman.js +137 -0
  230. package/src/cramFile/codecs/index.js +38 -0
  231. package/src/cramFile/codecs/subexp.js +32 -0
  232. package/src/cramFile/constants.js +55 -0
  233. package/src/cramFile/container/compressionScheme.js +144 -0
  234. package/src/cramFile/container/index.js +119 -0
  235. package/src/cramFile/file.js +347 -0
  236. package/src/cramFile/index.js +3 -0
  237. package/src/cramFile/record.js +337 -0
  238. package/src/cramFile/sectionParsers.js +379 -0
  239. package/src/cramFile/slice/decodeRecord.js +362 -0
  240. package/src/cramFile/slice/index.js +497 -0
  241. package/src/cramFile/util.js +169 -0
  242. package/src/errors.js +22 -0
  243. package/src/index.js +5 -0
  244. package/src/indexedCramFile.js +191 -0
  245. package/src/io/bufferCache.js +66 -0
  246. package/src/io/index.js +26 -0
  247. package/src/io/localFile.js +35 -0
  248. package/src/io/remoteFile.js +71 -0
  249. package/src/rans/README.md +1 -0
  250. package/src/rans/constants.js +5 -0
  251. package/src/rans/d04.js +83 -0
  252. package/src/rans/d14.js +59 -0
  253. package/src/rans/decoding.js +141 -0
  254. package/src/rans/frequencies.js +121 -0
  255. package/src/rans/index.js +249 -0
  256. package/src/sam.js +15 -0
  257. package/src/unzip-pako.ts +5 -0
  258. package/src/unzip.ts +2 -0
@@ -1,83 +1,65 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
-
5
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
6
-
7
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck"));
8
-
9
- var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/createClass"));
10
-
11
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/possibleConstructorReturn"));
12
-
13
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/getPrototypeOf"));
14
-
15
- var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/inherits"));
16
-
17
- var _require = require('../../errors'),
18
- CramUnimplementedError = _require.CramUnimplementedError,
19
- CramMalformedError = _require.CramMalformedError,
20
- CramBufferOverrunError = _require.CramBufferOverrunError;
21
-
22
- var CramCodec = require('./_base');
23
-
24
- var _require2 = require('../util'),
25
- parseItf8 = _require2.parseItf8;
26
-
27
- var ExternalCodec =
28
- /*#__PURE__*/
29
- function (_CramCodec) {
30
- (0, _inherits2.default)(ExternalCodec, _CramCodec);
31
-
32
- function ExternalCodec() {
33
- var _this;
34
-
35
- var parameters = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
36
- var dataType = arguments.length > 1 ? arguments[1] : undefined;
37
- (0, _classCallCheck2.default)(this, ExternalCodec);
38
- _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(ExternalCodec).call(this, parameters, dataType));
39
-
40
- if (_this.dataType === 'int') {
41
- _this._decodeData = _this._decodeInt;
42
- } else if (_this.dataType === 'byte') {
43
- _this._decodeData = _this._decodeByte;
44
- } else {
45
- throw new CramUnimplementedError("".concat(_this.dataType, " decoding not yet implemented by EXTERNAL codec"));
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
18
+ return (mod && mod.__esModule) ? mod : { "default": mod };
19
+ };
20
+ 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;
31
+ }
32
+ else if (_this.dataType === 'byte') {
33
+ _this._decodeData = _this._decodeByte;
34
+ }
35
+ else {
36
+ throw new errors_1.CramUnimplementedError("".concat(_this.dataType, " decoding not yet implemented by EXTERNAL codec"));
37
+ }
38
+ return _this;
46
39
  }
47
-
48
- return _this;
49
- }
50
-
51
- (0, _createClass2.default)(ExternalCodec, [{
52
- key: "decode",
53
- value: function decode(slice, coreDataBlock, blocksByContentId, cursors) {
54
- var blockContentId = this.parameters.blockContentId;
55
- var contentBlock = blocksByContentId[blockContentId];
56
- if (!contentBlock) throw new CramMalformedError("no block found with content ID ".concat(blockContentId));
57
- var cursor = cursors.externalBlocks.getCursor(blockContentId);
58
- return this._decodeData(contentBlock, cursor);
59
- }
60
- }, {
61
- key: "_decodeInt",
62
- value: function _decodeInt(contentBlock, cursor) {
63
- var _parseItf = parseItf8(contentBlock.content, cursor.bytePosition),
64
- _parseItf2 = (0, _slicedToArray2.default)(_parseItf, 2),
65
- result = _parseItf2[0],
66
- bytesRead = _parseItf2[1];
67
-
68
- cursor.bytePosition += bytesRead;
69
- return result;
70
- }
71
- }, {
72
- key: "_decodeByte",
73
- value: function _decodeByte(contentBlock, cursor) {
74
- if (cursor.bytePosition >= contentBlock.content.length) throw new CramBufferOverrunError('attempted to read beyond end of block. this file seems truncated.');
75
- var result = contentBlock.content[cursor.bytePosition];
76
- cursor.bytePosition += 1;
77
- return result;
78
- }
79
- }]);
80
- return ExternalCodec;
81
- }(CramCodec);
82
-
83
- module.exports = ExternalCodec;
40
+ ExternalCodec.prototype.decode = function (slice, coreDataBlock, blocksByContentId, cursors) {
41
+ var blockContentId = this.parameters.blockContentId;
42
+ var contentBlock = blocksByContentId[blockContentId];
43
+ if (!contentBlock) {
44
+ throw new errors_1.CramMalformedError("no block found with content ID ".concat(blockContentId));
45
+ }
46
+ var cursor = cursors.externalBlocks.getCursor(blockContentId);
47
+ 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;
52
+ return result;
53
+ };
54
+ ExternalCodec.prototype._decodeByte = function (contentBlock, cursor) {
55
+ if (cursor.bytePosition >= contentBlock.content.length) {
56
+ throw new errors_1.CramBufferOverrunError('attempted to read beyond end of block. this file seems truncated.');
57
+ }
58
+ var result = contentBlock.content[cursor.bytePosition];
59
+ cursor.bytePosition += 1;
60
+ return result;
61
+ };
62
+ return ExternalCodec;
63
+ }(_base_1.default));
64
+ exports.default = ExternalCodec;
65
+ //# sourceMappingURL=external.js.map
@@ -0,0 +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,IAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QACxD,MAAM,CAAC,YAAY,IAAI,CAAC,CAAA;QACxB,OAAO,MAAM,CAAA;IACf,CAAC;IACH,oBAAC;AAAD,CAAC,AA7CD,CAA2C,eAAS,GA6CnD"}
@@ -0,0 +1,4 @@
1
+ export default class GammaCodec extends CramCodec {
2
+ decode(slice: any, coreDataBlock: any, blocksByContentId: any, cursors: any): number;
3
+ }
4
+ import CramCodec from "./_base";
@@ -1,58 +1,45 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
-
5
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck"));
6
-
7
- var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/createClass"));
8
-
9
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/possibleConstructorReturn"));
10
-
11
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/getPrototypeOf"));
12
-
13
- var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/inherits"));
14
-
15
- var _require = require('../../errors'),
16
- CramUnimplementedError = _require.CramUnimplementedError;
17
-
18
- var CramCodec = require('./_base');
19
-
20
- var GammaCodec =
21
- /*#__PURE__*/
22
- function (_CramCodec) {
23
- (0, _inherits2.default)(GammaCodec, _CramCodec);
24
-
25
- function GammaCodec() {
26
- var _this;
27
-
28
- var parameters = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
29
- var dataType = arguments.length > 1 ? arguments[1] : undefined;
30
- (0, _classCallCheck2.default)(this, GammaCodec);
31
- _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(GammaCodec).call(this, parameters, dataType));
32
-
33
- if (_this.dataType !== 'int') {
34
- throw new CramUnimplementedError("".concat(_this.dataType, " decoding not yet implemented by GAMMA codec"));
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
18
+ return (mod && mod.__esModule) ? mod : { "default": mod };
19
+ };
20
+ 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"));
30
+ }
31
+ return _this;
35
32
  }
36
-
37
- return _this;
38
- }
39
-
40
- (0, _createClass2.default)(GammaCodec, [{
41
- key: "decode",
42
- value: function decode(slice, coreDataBlock, blocksByContentId, cursors) {
43
- var length = 1;
44
-
45
- while (this._getBits(coreDataBlock.content, cursors.coreBlock, 1) === 0) {
46
- length += 1;
47
- }
48
-
49
- var readBits = this._getBits(coreDataBlock.content, cursors.coreBlock, length - 1);
50
-
51
- var value = readBits | 1 << length - 1;
52
- return value - this.parameters.offset;
53
- }
54
- }]);
55
- return GammaCodec;
56
- }(CramCodec);
57
-
58
- module.exports = GammaCodec;
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;
37
+ }
38
+ var readBits = this._getBits(coreDataBlock.content, cursors.coreBlock, length - 1);
39
+ var value = readBits | (1 << (length - 1));
40
+ return value - this.parameters.offset;
41
+ };
42
+ return GammaCodec;
43
+ }(_base_1.default));
44
+ exports.default = GammaCodec;
45
+ //# sourceMappingURL=gamma.js.map
@@ -0,0 +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"}
@@ -0,0 +1,17 @@
1
+ export default class HuffmanIntCodec extends CramCodec {
2
+ _decode(slice: any, coreDataBlock: any, coreCursor: any): any;
3
+ buildCodeBook(): void;
4
+ codeBook: {} | undefined;
5
+ buildCodes(): void;
6
+ codes: {} | undefined;
7
+ 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;
16
+ }
17
+ import CramCodec from "./_base";
@@ -1,208 +1,135 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
-
5
- var _fill = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/fill"));
6
-
7
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/toConsumableArray"));
8
-
9
- var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
10
-
11
- var _values = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/values"));
12
-
13
- var _parseInt2 = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/parse-int"));
14
-
15
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
16
-
17
- var _entries = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/entries"));
18
-
19
- var _forEach = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/for-each"));
20
-
21
- var _sort = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/sort"));
22
-
23
- var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
24
-
25
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck"));
26
-
27
- var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/createClass"));
28
-
29
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/possibleConstructorReturn"));
30
-
31
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/getPrototypeOf"));
32
-
33
- var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/inherits"));
34
-
35
- var _require = require('../../errors'),
36
- CramMalformedError = _require.CramMalformedError;
37
-
38
- var CramCodec = require('./_base');
39
-
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
18
+ return (mod && mod.__esModule) ? mod : { "default": mod };
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ var errors_1 = require("../../errors");
22
+ var _base_1 = __importDefault(require("./_base"));
40
23
  function numberOfSetBits(ii) {
41
- var i = ii - (ii >> 1) & 0x55555555;
42
- i = (i & 0x33333333) + (i >> 2 & 0x33333333);
43
- return (i + (i >> 4) & 0x0f0f0f0f) * 0x01010101 >> 24;
24
+ var i = (ii - (ii >> 1)) & 0x55555555;
25
+ i = (i & 0x33333333) + ((i >> 2) & 0x33333333);
26
+ return (((i + (i >> 4)) & 0x0f0f0f0f) * 0x01010101) >> 24;
44
27
  }
45
-
46
- var HuffmanIntCodec =
47
- /*#__PURE__*/
48
- function (_CramCodec) {
49
- (0, _inherits2.default)(HuffmanIntCodec, _CramCodec);
50
-
51
- function HuffmanIntCodec() {
52
- var _context;
53
-
54
- var _this;
55
-
56
- var parameters = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
57
- var dataType = arguments.length > 1 ? arguments[1] : undefined;
58
- (0, _classCallCheck2.default)(this, HuffmanIntCodec);
59
- _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(HuffmanIntCodec).call(this, parameters, dataType));
60
-
61
- if (!(0, _includes.default)(_context = ['byte', 'int']).call(_context, _this.dataType)) {
62
- throw new TypeError("".concat(_this.dataType, " decoding not yet implemented by HUFFMAN_INT codec"));
63
- }
64
-
65
- _this.buildCodeBook();
66
-
67
- _this.buildCodes();
68
-
69
- _this.buildCaches(); // if this is a degenerate zero-length huffman code, special-case the decoding
70
-
71
-
72
- if (_this.sortedCodes[0].bitLength === 0) _this._decode = _this._decodeZeroLengthCode;
73
- return _this;
74
- }
75
-
76
- (0, _createClass2.default)(HuffmanIntCodec, [{
77
- key: "buildCodeBook",
78
- value: function buildCodeBook() {
79
- var _this2 = this;
80
-
81
- // parse the parameters together into a `codes` data structure
82
- var codes = new Array(this.parameters.numCodes);
83
-
84
- for (var i = 0; i < this.parameters.numCodes; i += 1) {
85
- codes[i] = {
86
- symbol: this.parameters.symbols[i],
87
- bitLength: this.parameters.bitLengths[i]
88
- };
89
- } // sort the codes by bit length and symbol value
90
-
91
-
92
- codes = (0, _sort.default)(codes).call(codes, function (a, b) {
93
- return a.bitLength - b.bitLength || a.symbol - b.symbol;
94
- });
95
- this.codeBook = {};
96
- (0, _forEach.default)(codes).call(codes, function (code) {
97
- if (!_this2.codeBook[code.bitLength]) _this2.codeBook[code.bitLength] = [];
98
-
99
- _this2.codeBook[code.bitLength].push(code.symbol);
100
- });
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"));
35
+ }
36
+ _this.buildCodeBook();
37
+ _this.buildCodes();
38
+ _this.buildCaches();
39
+ // 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;
42
+ }
43
+ return _this;
101
44
  }
102
- }, {
103
- key: "buildCodes",
104
- value: function buildCodes() {
105
- var _context2,
106
- _this3 = this;
107
-
108
- this.codes = {};
109
- /* new TreeMap<Integer, HuffmanBitCode>(); */
110
-
111
- var codeLength = 0;
112
- var codeValue = -1;
113
- (0, _forEach.default)(_context2 = (0, _entries.default)(this.codeBook)).call(_context2, function (_ref) {
114
- var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
115
- bitLength = _ref2[0],
116
- symbols = _ref2[1];
117
-
118
- bitLength = (0, _parseInt2.default)(bitLength, 10);
119
- (0, _forEach.default)(symbols).call(symbols, function (symbol) {
120
- var code = {
121
- bitLength: bitLength,
122
- value: symbol
123
- };
124
- codeValue += 1;
125
- var delta = bitLength - codeLength; // new length?
126
-
127
- codeValue <<= delta; // pad with 0's
128
-
129
- code.bitCode = codeValue; // calculated: huffman code
130
-
131
- codeLength += delta; // adjust current code length
132
-
133
- if (numberOfSetBits(codeValue) > bitLength) throw new CramMalformedError('Symbol out of range');
134
- _this3.codes[symbol] = code;
45
+ HuffmanIntCodec.prototype.buildCodeBook = function () {
46
+ var _this = this;
47
+ // 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) {
50
+ codes[i] = {
51
+ symbol: this.parameters.symbols[i],
52
+ bitLength: this.parameters.bitLengths[i],
53
+ };
54
+ }
55
+ // 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; });
57
+ this.codeBook = {};
58
+ codes.forEach(function (code) {
59
+ if (!_this.codeBook[code.bitLength]) {
60
+ _this.codeBook[code.bitLength] = [];
61
+ }
62
+ _this.codeBook[code.bitLength].push(code.symbol);
135
63
  });
136
- });
137
- }
138
- }, {
139
- key: "buildCaches",
140
- value: function buildCaches() {
141
- var _context3, _context4, _context5, _context6, _context7, _context8;
142
-
143
- this.sortedCodes = (0, _sort.default)(_context3 = (0, _values.default)(this.codes)).call(_context3, function (a, b) {
144
- return a.bitLength - b.bitLength || a.bitCode - b.bitCode;
145
- }); // this.sortedValues = this.parameters.values.sort((a,b) => a-b)
146
-
147
- this.sortedByValue = (0, _sort.default)(_context4 = (0, _values.default)(this.codes)).call(_context4, function (a, b) {
148
- return a.value - b.value;
149
- });
150
- this.sortedValuesByBitCode = (0, _map.default)(_context5 = this.sortedCodes).call(_context5, function (c) {
151
- return c.value;
152
- });
153
- this.sortedBitCodes = (0, _map.default)(_context6 = this.sortedCodes).call(_context6, function (c) {
154
- return c.bitCode;
155
- });
156
- this.sortedBitLengthsByBitCode = (0, _map.default)(_context7 = this.sortedCodes).call(_context7, function (c) {
157
- return c.bitLength;
158
- });
159
- var maxBitCode = Math.max.apply(Math, (0, _toConsumableArray2.default)(this.sortedBitCodes));
160
- this.bitCodeToValue = (0, _fill.default)(_context8 = new Array(maxBitCode + 1)).call(_context8, -1);
161
-
162
- for (var i = 0; i < this.sortedBitCodes.length; i += 1) {
163
- this.bitCodeToValue[this.sortedCodes[i].bitCode] = i;
164
- }
165
- }
166
- }, {
167
- key: "decode",
168
- value: function decode(slice, coreDataBlock, blocksByContentId, cursors) {
169
- return this._decode(slice, coreDataBlock, cursors.coreBlock);
170
- } // _decodeNull() {
64
+ };
65
+ HuffmanIntCodec.prototype.buildCodes = function () {
66
+ var _this = this;
67
+ 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
78
+ code.bitCode = codeValue; // calculated: huffman code
79
+ codeLength += delta; // adjust current code length
80
+ if (numberOfSetBits(codeValue) > bitLength) {
81
+ throw new errors_1.CramMalformedError('Symbol out of range');
82
+ }
83
+ _this.codes[symbol] = code;
84
+ });
85
+ });
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; });
89
+ // 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);
95
+ this.bitCodeToValue = new Array(maxBitCode + 1).fill(-1);
96
+ for (var i = 0; i < this.sortedBitCodes.length; i += 1) {
97
+ this.bitCodeToValue[this.sortedCodes[i].bitCode] = i;
98
+ }
99
+ };
100
+ HuffmanIntCodec.prototype.decode = function (slice, coreDataBlock, blocksByContentId, cursors) {
101
+ return this._decode(slice, coreDataBlock, cursors.coreBlock);
102
+ };
103
+ // _decodeNull() {
171
104
  // return -1
172
105
  // }
173
106
  // the special case for zero-length codes
174
-
175
- }, {
176
- key: "_decodeZeroLengthCode",
177
- value: function _decodeZeroLengthCode() {
178
- return this.sortedCodes[0].value;
179
- }
180
- }, {
181
- key: "_decode",
182
- value: function _decode(slice, coreDataBlock, coreCursor) {
183
- var input = coreDataBlock.content;
184
- var prevLen = 0;
185
- var bits = 0;
186
-
187
- for (var i = 0; i < this.sortedCodes.length; i += 1) {
188
- var length = this.sortedCodes[i].bitLength;
189
- bits <<= length - prevLen;
190
- bits |= this._getBits(input, coreCursor, length - prevLen);
191
- prevLen = length;
192
- {
193
- var index = this.bitCodeToValue[bits];
194
- if (index > -1 && this.sortedBitLengthsByBitCode[index] === length) return this.sortedValuesByBitCode[index];
195
-
196
- for (var j = i; this.sortedCodes[j + 1].bitLength === length && j < this.sortedCodes.length; j += 1) {
197
- i += 1;
198
- }
107
+ HuffmanIntCodec.prototype._decodeZeroLengthCode = function () {
108
+ 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;
119
+ {
120
+ var index = this.bitCodeToValue[bits];
121
+ if (index > -1 && this.sortedBitLengthsByBitCode[index] === length_1) {
122
+ return this.sortedValuesByBitCode[index];
123
+ }
124
+ for (var j = i; this.sortedCodes[j + 1].bitLength === length_1 &&
125
+ j < this.sortedCodes.length; j += 1) {
126
+ i += 1;
127
+ }
128
+ }
199
129
  }
200
- }
201
-
202
- throw new CramMalformedError('Huffman symbol not found.');
203
- }
204
- }]);
205
- return HuffmanIntCodec;
206
- }(CramCodec);
207
-
208
- module.exports = HuffmanIntCodec;
130
+ throw new errors_1.CramMalformedError('Huffman symbol not found.');
131
+ };
132
+ return HuffmanIntCodec;
133
+ }(_base_1.default));
134
+ exports.default = HuffmanIntCodec;
135
+ //# sourceMappingURL=huffman.js.map