@gmod/cram 2.0.3 → 3.0.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 (118) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +0 -4
  3. package/dist/craiIndex.js +1 -1
  4. package/dist/craiIndex.js.map +1 -1
  5. package/dist/cram-bundle.js +1 -1
  6. package/dist/cram-bundle.js.LICENSE.txt +0 -2
  7. package/dist/cramFile/codecs/byteArrayLength.js +1 -1
  8. package/dist/cramFile/codecs/byteArrayLength.js.map +1 -1
  9. package/dist/cramFile/codecs/byteArrayStop.d.ts +0 -1
  10. package/dist/cramFile/codecs/external.js +1 -1
  11. package/dist/cramFile/codecs/external.js.map +1 -1
  12. package/dist/cramFile/codecs/getBits.d.ts +0 -1
  13. package/dist/cramFile/codecs/getBits.js +2 -2
  14. package/dist/cramFile/codecs/getBits.js.map +1 -1
  15. package/dist/cramFile/codecs/huffman.js +2 -1
  16. package/dist/cramFile/codecs/huffman.js.map +1 -1
  17. package/dist/cramFile/codecs/index.js +1 -2
  18. package/dist/cramFile/codecs/index.js.map +1 -1
  19. package/dist/cramFile/container/compressionScheme.d.ts +0 -3
  20. package/dist/cramFile/container/compressionScheme.js +0 -4
  21. package/dist/cramFile/container/compressionScheme.js.map +1 -1
  22. package/dist/cramFile/container/index.d.ts +57 -5
  23. package/dist/cramFile/container/index.js +15 -9
  24. package/dist/cramFile/container/index.js.map +1 -1
  25. package/dist/cramFile/file.d.ts +24 -61
  26. package/dist/cramFile/file.js +23 -28
  27. package/dist/cramFile/file.js.map +1 -1
  28. package/dist/cramFile/record.d.ts +1 -1
  29. package/dist/cramFile/sectionParsers.d.ts +195 -49
  30. package/dist/cramFile/sectionParsers.js +622 -304
  31. package/dist/cramFile/sectionParsers.js.map +1 -1
  32. package/dist/cramFile/slice/decodeRecord.js +1 -1
  33. package/dist/cramFile/slice/decodeRecord.js.map +1 -1
  34. package/dist/cramFile/slice/index.d.ts +23 -1
  35. package/dist/cramFile/slice/index.js +9 -6
  36. package/dist/cramFile/slice/index.js.map +1 -1
  37. package/dist/cramFile/util.d.ts +6 -6
  38. package/dist/cramFile/util.js +93 -12
  39. package/dist/cramFile/util.js.map +1 -1
  40. package/dist/indexedCramFile.d.ts +0 -3
  41. package/dist/indexedCramFile.js +4 -16
  42. package/dist/indexedCramFile.js.map +1 -1
  43. package/dist/io/index.d.ts +1 -3
  44. package/dist/io/index.js +3 -16
  45. package/dist/io/index.js.map +1 -1
  46. package/dist/rans/d04.js +1 -1
  47. package/dist/rans/d04.js.map +1 -1
  48. package/dist/rans/d14.js +1 -1
  49. package/dist/rans/d14.js.map +1 -1
  50. package/dist/rans/frequencies.js +2 -3
  51. package/dist/rans/frequencies.js.map +1 -1
  52. package/dist/rans/index.js +1 -1
  53. package/dist/rans/index.js.map +1 -1
  54. package/dist/sam.js +1 -2
  55. package/dist/sam.js.map +1 -1
  56. package/dist/typescript.d.ts +0 -1
  57. package/dist/typescript.js +0 -8
  58. package/dist/typescript.js.map +1 -1
  59. package/dist/unzip-pako.d.ts +0 -1
  60. package/dist/unzip-pako.js +1 -2
  61. package/dist/unzip-pako.js.map +1 -1
  62. package/dist/unzip.d.ts +0 -1
  63. package/esm/craiIndex.js +1 -1
  64. package/esm/craiIndex.js.map +1 -1
  65. package/esm/cramFile/codecs/byteArrayLength.js +1 -1
  66. package/esm/cramFile/codecs/byteArrayLength.js.map +1 -1
  67. package/esm/cramFile/codecs/byteArrayStop.d.ts +0 -1
  68. package/esm/cramFile/codecs/external.js +1 -1
  69. package/esm/cramFile/codecs/external.js.map +1 -1
  70. package/esm/cramFile/codecs/getBits.d.ts +0 -1
  71. package/esm/cramFile/codecs/huffman.js +2 -1
  72. package/esm/cramFile/codecs/huffman.js.map +1 -1
  73. package/esm/cramFile/container/compressionScheme.d.ts +0 -3
  74. package/esm/cramFile/container/compressionScheme.js +0 -4
  75. package/esm/cramFile/container/compressionScheme.js.map +1 -1
  76. package/esm/cramFile/container/index.d.ts +57 -5
  77. package/esm/cramFile/container/index.js +15 -9
  78. package/esm/cramFile/container/index.js.map +1 -1
  79. package/esm/cramFile/file.d.ts +24 -61
  80. package/esm/cramFile/file.js +22 -25
  81. package/esm/cramFile/file.js.map +1 -1
  82. package/esm/cramFile/record.d.ts +1 -1
  83. package/esm/cramFile/sectionParsers.d.ts +195 -49
  84. package/esm/cramFile/sectionParsers.js +620 -303
  85. package/esm/cramFile/sectionParsers.js.map +1 -1
  86. package/esm/cramFile/slice/index.d.ts +23 -1
  87. package/esm/cramFile/slice/index.js +10 -7
  88. package/esm/cramFile/slice/index.js.map +1 -1
  89. package/esm/cramFile/util.d.ts +6 -6
  90. package/esm/cramFile/util.js +87 -6
  91. package/esm/cramFile/util.js.map +1 -1
  92. package/esm/indexedCramFile.d.ts +0 -3
  93. package/esm/indexedCramFile.js +3 -15
  94. package/esm/indexedCramFile.js.map +1 -1
  95. package/esm/io/index.d.ts +1 -3
  96. package/esm/io/index.js +2 -11
  97. package/esm/io/index.js.map +1 -1
  98. package/esm/typescript.d.ts +0 -1
  99. package/esm/typescript.js +1 -6
  100. package/esm/typescript.js.map +1 -1
  101. package/esm/unzip-pako.d.ts +0 -1
  102. package/esm/unzip.d.ts +0 -1
  103. package/package.json +9 -15
  104. package/src/craiIndex.ts +1 -1
  105. package/src/cramFile/codecs/byteArrayLength.ts +1 -2
  106. package/src/cramFile/codecs/external.ts +1 -1
  107. package/src/cramFile/codecs/huffman.ts +2 -1
  108. package/src/cramFile/container/compressionScheme.ts +1 -8
  109. package/src/cramFile/container/index.ts +21 -10
  110. package/src/cramFile/file.ts +28 -43
  111. package/src/cramFile/record.ts +1 -1
  112. package/src/cramFile/sectionParsers.ts +668 -390
  113. package/src/cramFile/slice/index.ts +11 -5
  114. package/src/cramFile/util.ts +90 -91
  115. package/src/indexedCramFile.ts +3 -25
  116. package/src/io/index.ts +2 -12
  117. package/src/typescript.ts +0 -7
  118. package/src/typings/binary-parser.d.ts +0 -44
@@ -18,6 +18,4 @@
18
18
  * @license MIT
19
19
  */
20
20
 
21
- /*! https://mths.be/punycode v1.4.1 by @mathias */
22
-
23
21
  /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
@@ -3,8 +3,8 @@ 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
- const util_1 = require("../util");
7
6
  const _base_1 = __importDefault(require("./_base"));
7
+ const util_1 = require("../util");
8
8
  class ByteArrayStopCodec extends _base_1.default {
9
9
  constructor(parameters, dataType, instantiateCodec) {
10
10
  super(parameters, dataType);
@@ -1 +1 @@
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,CAAC;YAC7B,MAAM,IAAI,SAAS,CACjB,8CAA8C,QAAQ,EAAE,CACzD,CAAA;QACH,CAAC;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,CAAC;YACxC,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CACxB,KAAK,EACL,aAAa,EACb,iBAAiB,EACjB,OAAO,CACR,CAAA;QACH,CAAC;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
+ {"version":3,"file":"byteArrayLength.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/byteArrayLength.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4C;AAK5C,kCAAqC;AAOrC,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,CAAC;YAC7B,MAAM,IAAI,SAAS,CACjB,8CAA8C,QAAQ,EAAE,CACzD,CAAA;QACH,CAAC;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,CAAC;YACxC,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CACxB,KAAK,EACL,aAAa,EACb,iBAAiB,EACjB,OAAO,CACR,CAAA;QACH,CAAC;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,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import CramCodec, { Cursor, Cursors } from './_base';
3
2
  import CramSlice from '../slice';
4
3
  import { CramFileBlock } from '../file';
@@ -25,7 +25,7 @@ class ExternalCodec extends _base_1.default {
25
25
  const { blockContentId } = this.parameters;
26
26
  const contentBlock = blocksByContentId[blockContentId];
27
27
  if (!contentBlock) {
28
- throw new errors_1.CramMalformedError(`no block found with content ID ${blockContentId}`);
28
+ throw new errors_1.CramMalformedError(`no block found with content ID ${blockContentId}}`);
29
29
  }
30
30
  const cursor = cursors.externalBlocks.getCursor(blockContentId);
31
31
  return this._decodeData(contentBlock, cursor);
@@ -1 +1 @@
1
- {"version":3,"file":"external.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/external.ts"],"names":[],"mappings":";;;;;AAAA,sDAAsD;AACtD,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,CAAC;YAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAA;QACpC,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YACpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;QACrC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,+BAAsB,CAC9B,GAAG,IAAI,CAAC,QAAQ,iDAAiD,CAClE,CAAA;QACH,CAAC;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,CAAC;YAClB,MAAM,IAAI,2BAAkB,CAC1B,kCAAkC,cAAc,EAAE,CACnD,CAAA;QACH,CAAC;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,CAAC;YACvD,MAAM,IAAI,gCAAsB,CAC9B,mEAAmE,CACpE,CAAA;QACH,CAAC;QACD,OAAO,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAA;IACpD,CAAC;CACF;AA3DD,gCA2DC"}
1
+ {"version":3,"file":"external.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/external.ts"],"names":[],"mappings":";;;;;AAAA,sDAAsD;AACtD,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,CAAC;YAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAA;QACpC,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YACpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;QACrC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,+BAAsB,CAC9B,GAAG,IAAI,CAAC,QAAQ,iDAAiD,CAClE,CAAA;QACH,CAAC;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,CAAC;YAClB,MAAM,IAAI,2BAAkB,CAC1B,kCAAkC,cAAc,GAAG,CACpD,CAAA;QACH,CAAC;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,CAAC;YACvD,MAAM,IAAI,gCAAsB,CAC9B,mEAAmE,CACpE,CAAA;QACH,CAAC;QACD,OAAO,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAA;IACpD,CAAC;CACF;AA3DD,gCA2DC"}
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  export declare class CramBufferOverrunError extends Error {
3
2
  }
4
3
  export declare function getBits(data: Buffer, cursor: {
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getBits = exports.CramBufferOverrunError = void 0;
3
+ exports.CramBufferOverrunError = void 0;
4
+ exports.getBits = getBits;
4
5
  class CramBufferOverrunError extends Error {
5
6
  }
6
7
  exports.CramBufferOverrunError = CramBufferOverrunError;
@@ -22,5 +23,4 @@ function getBits(data, cursor, numBits) {
22
23
  }
23
24
  return val;
24
25
  }
25
- exports.getBits = getBits;
26
26
  //# sourceMappingURL=getBits.js.map
@@ -1 +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,CAAC;QACD,MAAM,IAAI,sBAAsB,CAC9B,6DAA6D,CAC9D,CAAA;IACH,CAAC;IACD,KAAK,IAAI,IAAI,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;QACtC,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,CAAC;YAC3B,MAAM,CAAC,YAAY,IAAI,CAAC,CAAA;QAC1B,CAAC;QACD,MAAM,CAAC,WAAW,IAAI,CAAC,CAAA;IACzB,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAzBD,0BAyBC"}
1
+ {"version":3,"file":"getBits.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/getBits.ts"],"names":[],"mappings":";;;AAEA,0BAyBC;AA3BD,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,CAAC;QACD,MAAM,IAAI,sBAAsB,CAC9B,6DAA6D,CAC9D,CAAA;IACH,CAAC;IACD,KAAK,IAAI,IAAI,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;QACtC,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,CAAC;YAC3B,MAAM,CAAC,YAAY,IAAI,CAAC,CAAA;QAC1B,CAAC;QACD,MAAM,CAAC,WAAW,IAAI,CAAC,CAAA;IACzB,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC"}
@@ -28,7 +28,8 @@ class HuffmanIntCodec extends _base_1.default {
28
28
  this.buildCodeBook();
29
29
  this.buildCodes();
30
30
  this.buildCaches();
31
- // if this is a degenerate zero-length huffman code, special-case the decoding
31
+ // if this is a degenerate zero-length huffman code, special-case the
32
+ // decoding
32
33
  if (this.sortedCodes[0].bitLength === 0) {
33
34
  this._decode = this._decodeZeroLengthCode;
34
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"huffman.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/huffman.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"huffman.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/huffman.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ 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 = void 0;
6
+ exports.instantiateCodec = instantiateCodec;
7
7
  const errors_1 = require("../../errors");
8
8
  const huffman_1 = __importDefault(require("./huffman"));
9
9
  const external_1 = __importDefault(require("./external"));
@@ -33,5 +33,4 @@ function instantiateCodec(encodingData, dataType) {
33
33
  }
34
34
  return new CodecClass(encodingData.parameters, dataType, instantiateCodec);
35
35
  }
36
- exports.instantiateCodec = instantiateCodec;
37
36
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
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,CAAC;QAChB,MAAM,IAAI,+BAAsB,CAC9B,qCAAqC,YAAY,CAAC,OAAO,EAAE,CAC5D,CAAA;IACH,CAAC;IAED,OAAO,IAAI,UAAU,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAA;AAC5E,CAAC;AAdD,4CAcC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/index.ts"],"names":[],"mappings":";;;;;AA6BA,4CAcC;AA3CD,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,CAAC;QAChB,MAAM,IAAI,+BAAsB,CAC9B,qCAAqC,YAAY,CAAC,OAAO,EAAE,CAC5D,CAAA;IACH,CAAC;IAED,OAAO,IAAI,UAAU,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAA;AAC5E,CAAC"}
@@ -48,9 +48,6 @@ export default class CramContainerCompressionScheme {
48
48
  tagCodecCache: Record<string, CramCodec>;
49
49
  tagEncoding: Record<string, CramEncoding>;
50
50
  dataSeriesEncoding: DataSeriesEncodingMap;
51
- private preservation;
52
- private _endPosition;
53
- private _size;
54
51
  constructor(content: CramCompressionHeader);
55
52
  /**
56
53
  * @param {string} tagName three-character tag name
@@ -70,7 +70,6 @@ class CramContainerCompressionScheme {
70
70
  this.dataSeriesCodecCache = {};
71
71
  this.tagCodecCache = {};
72
72
  this.tagEncoding = {};
73
- // Object.assign(this, content)
74
73
  // interpret some of the preservation map tags for convenient use
75
74
  this.readNamesIncluded = content.preservation.RN;
76
75
  this.APdelta = content.preservation.AP;
@@ -79,9 +78,6 @@ class CramContainerCompressionScheme {
79
78
  this.substitutionMatrix = parseSubstitutionMatrix(content.preservation.SM);
80
79
  this.dataSeriesEncoding = content.dataSeriesEncoding;
81
80
  this.tagEncoding = content.tagEncoding;
82
- this.preservation = content.preservation;
83
- this._size = content._size;
84
- this._endPosition = content._endPosition;
85
81
  }
86
82
  /**
87
83
  * @param {string} tagName three-character tag name
@@ -1 +1 @@
1
- {"version":3,"file":"compressionScheme.js","sourceRoot":"","sources":["../../../src/cramFile/container/compressionScheme.ts"],"names":[],"mappings":";;AAAA,sCAA4C;AAI5C,yCAAiD;AAMjD,sDAAsD;AACtD,aAAa;AACb,MAAM,eAAe,GAAG;IACtB,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,KAAK;IACT,gBAAgB;IAChB,gBAAgB;CACR,CAAA;AAIV,SAAS,uBAAuB,CAAC,SAAmB;IAClD,MAAM,MAAM,GAAe,IAAI,KAAK,CAAC,CAAC,CAAC,CAAA;IACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAA;IAC1B,CAAC;IAED,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IAExC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IAExC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IAExC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IAExC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IAExC,OAAO,MAAM,CAAA;AACf,CAAC;AAMD,MAAqB,8BAA8B;IAcjD,YAAY,OAA8B;QARnC,yBAAoB,GAAoB,EAAE,CAAA;QAC1C,kBAAa,GAA8B,EAAE,CAAA;QAC7C,gBAAW,GAAiC,EAAE,CAAA;QAOnD,+BAA+B;QAC/B,iEAAiE;QACjE,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,EAAE,CAAA;QAChD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,EAAE,CAAA;QACtC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAA;QAClD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,EAAE,CAAA;QAC/C,IAAI,CAAC,kBAAkB,GAAG,uBAAuB,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QAC1E,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAA;QACpD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;QACtC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAA;QACxC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;QAC1B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAA;IAC1C,CAAC;IAED;;;OAGG;IACH,cAAc,CAAC,OAAe;QAC5B,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YACjC,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;YAC9C,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,IAAA,yBAAgB,EAC5C,YAAY,EACZ,WAAW,CACZ,CAAA;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IACpC,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,SAAiB;QAC3B,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAA;IACzC,CAAC;IAED,qBAAqB,CACnB,cAA2B;QAE3B,IAAI,CAAC,GACH,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAA;QAC3C,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACpB,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAA;YAC5D,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,QAAQ,GAAG,eAAe,CAAC,cAAc,CAAC,CAAA;gBAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,IAAI,2BAAkB,CAC1B,oBAAoB,cAAc,yCAAyC,CAC5E,CAAA;gBACH,CAAC;gBACD,CAAC,GAAG,IAAA,yBAAgB,EAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;gBAC5C,+CAA+C;gBAC/C,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,GAAG,CAAmB,CAAA;YACjE,CAAC;QACH,CAAC;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAED,MAAM;QACJ,MAAM,IAAI,GAAQ,EAAE,CAAA;QACpB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC5B,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxB,OAAM;YACR,CAAC;YACD,IAAI,CAAC,CAAC,CAAC,GAAI,IAAY,CAAC,CAAC,CAAC,CAAA;QAC5B,CAAC,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAvFD,iDAuFC"}
1
+ {"version":3,"file":"compressionScheme.js","sourceRoot":"","sources":["../../../src/cramFile/container/compressionScheme.ts"],"names":[],"mappings":";;AAAA,sCAA4C;AAI5C,yCAAiD;AAMjD,sDAAsD;AACtD,aAAa;AACb,MAAM,eAAe,GAAG;IACtB,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,KAAK;IACT,gBAAgB;IAChB,gBAAgB;CACR,CAAA;AAIV,SAAS,uBAAuB,CAAC,SAAmB;IAClD,MAAM,MAAM,GAAe,IAAI,KAAK,CAAC,CAAC,CAAC,CAAA;IACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAA;IAC1B,CAAC;IAED,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IAExC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IAExC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IAExC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CA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"}
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import CramSlice from '../slice';
3
2
  import CramContainerCompressionScheme from './compressionScheme';
4
3
  import CramFile from '../file';
@@ -6,9 +5,39 @@ export default class CramContainer {
6
5
  file: CramFile;
7
6
  filePosition: number;
8
7
  constructor(file: CramFile, filePosition: number);
9
- getHeader(): Promise<any>;
8
+ getHeader(): Promise<({
9
+ length: number;
10
+ refSeqId: number;
11
+ refSeqStart: number;
12
+ alignmentSpan: number;
13
+ numBlocks: number;
14
+ numLandmarks: number;
15
+ numBases: number | undefined;
16
+ recordCounter: number;
17
+ numRecords: number;
18
+ } & {
19
+ _endPosition: number;
20
+ _size: number;
21
+ } & {
22
+ numLandmarks: number;
23
+ landmarks: number[];
24
+ crc32?: number | undefined;
25
+ } & {
26
+ _endPosition: number;
27
+ _size: number;
28
+ } & {
29
+ _size: number;
30
+ _endPosition: number;
31
+ }) | undefined>;
10
32
  getCompressionHeaderBlock(): Promise<{
11
- parsedContent: import("../util").ParsedItem<import("../sectionParsers").CramCompressionHeader>;
33
+ parsedContent: {
34
+ dataSeriesEncoding: import("../codecs/dataSeriesTypes").DataSeriesEncodingMap;
35
+ preservation: import("../sectionParsers").CramPreservationMap;
36
+ tagEncoding: Record<string, import("../encoding").CramEncoding>;
37
+ } & {
38
+ _endPosition: number;
39
+ _size: number;
40
+ };
12
41
  compressionMethod: import("../sectionParsers").CompressionMethod;
13
42
  contentType: "FILE_HEADER" | "COMPRESSION_HEADER" | "MAPPED_SLICE_HEADER" | "UNMAPPED_SLICE_HEADER" | "EXTERNAL_DATA" | "CORE_DATA";
14
43
  contentId: number;
@@ -18,10 +47,33 @@ export default class CramContainer {
18
47
  contentPosition: number;
19
48
  _size: number;
20
49
  content: Buffer;
21
- crc32?: number | undefined;
50
+ crc32?: number;
22
51
  } | null | undefined>;
23
52
  getFirstBlock(): Promise<import("../file").CramFileBlock | undefined>;
24
53
  getCompressionScheme(): Promise<CramContainerCompressionScheme | undefined>;
25
54
  getSlice(slicePosition: number, sliceSize: number): CramSlice;
26
- _readContainerHeader(position: number): Promise<any>;
55
+ _readContainerHeader(position: number): Promise<({
56
+ length: number;
57
+ refSeqId: number;
58
+ refSeqStart: number;
59
+ alignmentSpan: number;
60
+ numBlocks: number;
61
+ numLandmarks: number;
62
+ numBases: number | undefined;
63
+ recordCounter: number;
64
+ numRecords: number;
65
+ } & {
66
+ _endPosition: number;
67
+ _size: number;
68
+ } & {
69
+ numLandmarks: number;
70
+ landmarks: number[];
71
+ crc32?: number | undefined;
72
+ } & {
73
+ _endPosition: number;
74
+ _size: number;
75
+ } & {
76
+ _size: number;
77
+ _endPosition: number;
78
+ }) | undefined>;
27
79
  }
@@ -16,24 +16,25 @@ const errors_1 = require("../../errors");
16
16
  const util_1 = require("../util");
17
17
  const slice_1 = __importDefault(require("../slice"));
18
18
  const compressionScheme_1 = __importDefault(require("./compressionScheme"));
19
+ const sectionParsers_1 = require("../sectionParsers");
19
20
  class CramContainer {
20
21
  constructor(file, filePosition) {
21
22
  this.file = file;
22
23
  this.filePosition = filePosition;
23
24
  }
24
- // memoize
25
25
  getHeader() {
26
26
  return this._readContainerHeader(this.filePosition);
27
27
  }
28
- // memoize
29
28
  getCompressionHeaderBlock() {
30
29
  return __awaiter(this, void 0, void 0, function* () {
31
30
  const containerHeader = yield this.getHeader();
32
- // if there are no records in the container, there will be no compression header
33
- if (!containerHeader.numRecords) {
31
+ // if there are no records in the container, there will be no compression
32
+ // header
33
+ if (!(containerHeader === null || containerHeader === void 0 ? void 0 : containerHeader.numRecords)) {
34
34
  return null;
35
35
  }
36
- const sectionParsers = yield this.file.getSectionParsers();
36
+ const { majorVersion } = yield this.file.getDefinition();
37
+ const sectionParsers = (0, sectionParsers_1.getSectionParsers)(majorVersion);
37
38
  const block = yield this.getFirstBlock();
38
39
  if (block === undefined) {
39
40
  return undefined;
@@ -48,11 +49,14 @@ class CramContainer {
48
49
  getFirstBlock() {
49
50
  return __awaiter(this, void 0, void 0, function* () {
50
51
  const containerHeader = yield this.getHeader();
52
+ if (!containerHeader) {
53
+ return undefined;
54
+ }
51
55
  return this.file.readBlock(containerHeader._endPosition);
52
56
  });
53
57
  }
54
- // parses the compression header data into a CramContainerCompressionScheme object
55
- // memoize
58
+ // parses the compression header data into a CramContainerCompressionScheme
59
+ // object
56
60
  getCompressionScheme() {
57
61
  return __awaiter(this, void 0, void 0, function* () {
58
62
  const header = yield this.getCompressionHeaderBlock();
@@ -69,10 +73,12 @@ class CramContainer {
69
73
  }
70
74
  _readContainerHeader(position) {
71
75
  return __awaiter(this, void 0, void 0, function* () {
72
- const sectionParsers = yield this.file.getSectionParsers();
76
+ const { majorVersion } = yield this.file.getDefinition();
77
+ const sectionParsers = (0, sectionParsers_1.getSectionParsers)(majorVersion);
73
78
  const { cramContainerHeader1, cramContainerHeader2 } = sectionParsers;
74
79
  const { size: fileSize } = yield this.file.stat();
75
80
  if (position >= fileSize) {
81
+ console.warn(`position:${position}>=fileSize:${fileSize} in cram container`);
76
82
  return undefined;
77
83
  }
78
84
  // parse the container header. do it in 2 pieces because you cannot tell
@@ -82,7 +88,7 @@ class CramContainer {
82
88
  const header1 = (0, util_1.parseItem)(bytes1, cramContainerHeader1.parser);
83
89
  const numLandmarksSize = (0, util_1.itf8Size)(header1.numLandmarks);
84
90
  if (position + header1.length >= fileSize) {
85
- console.warn(`${this.file}: container header at ${position} indicates that the container has length ${header1.length}, which extends beyond the length of the file. Skipping this container.`);
91
+ console.warn(`container header at ${position} indicates that the container has length ${header1.length}, which extends beyond the length of the file. Skipping this container.`);
86
92
  return undefined;
87
93
  }
88
94
  const bytes2 = Buffer.allocUnsafe(cramContainerHeader2.maxLength(header1.numLandmarks));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cramFile/container/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cramFile/container/index.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,4 @@
1
- /// <reference path="../../src/typings/binary-parser.d.ts" />
2
- /// <reference types="node" />
3
1
  import QuickLRU from 'quick-lru';
4
- import { Parser } from '@gmod/binary-parser';
5
2
  import { BlockHeader, CompressionMethod } from './sectionParsers';
6
3
  import CramContainer from './container';
7
4
  import CramRecord from './record';
@@ -40,7 +37,12 @@ export default class CramFile {
40
37
  buffer: Buffer;
41
38
  }>;
42
39
  stat(): Promise<import("generic-filehandle").Stats>;
43
- getDefinition(): Promise<any>;
40
+ getDefinition(): Promise<{
41
+ magic: string;
42
+ majorVersion: number;
43
+ minorVersion: number;
44
+ fileId: string;
45
+ }>;
44
46
  getSamHeader(): Promise<{
45
47
  tag: string;
46
48
  data: {
@@ -49,60 +51,6 @@ export default class CramFile {
49
51
  }[];
50
52
  }[]>;
51
53
  getHeaderText(): Promise<string | undefined>;
52
- getSectionParsers(): Promise<{
53
- cramFileDefinition: {
54
- parser: Parser<{
55
- magic: string;
56
- majorVersion: number;
57
- minorVersion: number;
58
- fileId: string;
59
- }>;
60
- maxLength: number;
61
- };
62
- cramContainerHeader1: {
63
- parser: Parser<{
64
- length: number;
65
- refSeqId: number;
66
- refSeqStart: number;
67
- alignmentSpan: number;
68
- numRecords: number;
69
- recordCounter: number;
70
- numBases: number;
71
- numBlocks: number;
72
- numLandmarks: number;
73
- }>;
74
- maxLength: number;
75
- };
76
- cramContainerHeader2: {
77
- parser: Parser<{
78
- numLandmarks: number;
79
- landmarks: number[];
80
- crc32: number;
81
- }>;
82
- maxLength: (x: number) => number;
83
- };
84
- cramBlockHeader: {
85
- parser: Parser<BlockHeader>;
86
- maxLength: number;
87
- };
88
- cramBlockCrc32: {
89
- parser: Parser<{
90
- crc32: number;
91
- }>;
92
- maxLength: number;
93
- };
94
- cramCompressionHeader: {
95
- parser: Parser<import("./sectionParsers").CramCompressionHeader>;
96
- };
97
- cramMappedSliceHeader: {
98
- parser: Parser<import("./sectionParsers").MappedSliceHeader>;
99
- maxLength: (numContentIds: number) => number;
100
- };
101
- cramUnmappedSliceHeader: {
102
- parser: Parser<import("./sectionParsers").UnmappedSliceHeader>;
103
- maxLength: (numContentIds: number) => number;
104
- };
105
- }>;
106
54
  getContainerById(containerNumber: number): Promise<CramContainer | undefined>;
107
55
  checkCrc32(position: number, length: number, recordedCrc32: number, description: string): Promise<void>;
108
56
  /**
@@ -110,11 +58,26 @@ export default class CramFile {
110
58
  */
111
59
  containerCount(): Promise<number | undefined>;
112
60
  getContainerAtPosition(position: number): CramContainer;
113
- readBlockHeader(position: number): Promise<import("./util").ParsedItem<BlockHeader> | undefined>;
61
+ readBlockHeader(position: number): Promise<({
62
+ uncompressedSize: number;
63
+ compressedSize: number;
64
+ contentId: number;
65
+ contentType: "FILE_HEADER" | "COMPRESSION_HEADER" | "MAPPED_SLICE_HEADER" | "UNMAPPED_SLICE_HEADER" | "EXTERNAL_DATA" | "CORE_DATA";
66
+ compressionMethod: CompressionMethod;
67
+ } & {
68
+ _endPosition: number;
69
+ _size: number;
70
+ }) | undefined>;
114
71
  _parseSection<T>(section: {
115
- parser: Parser<T>;
116
72
  maxLength: number;
117
- }, position: number, size?: number, preReadBuffer?: undefined): Promise<import("./util").ParsedItem<T> | undefined>;
73
+ parser: (buffer: Buffer, offset: number) => {
74
+ offset: number;
75
+ value: T;
76
+ };
77
+ }, position: number, size?: number, preReadBuffer?: undefined): Promise<(T & {
78
+ _endPosition: number;
79
+ _size: number;
80
+ }) | undefined>;
118
81
  _uncompress(compressionMethod: CompressionMethod, inputBuffer: Buffer, outputBuffer: Buffer): Promise<void>;
119
82
  readBlock(position: number): Promise<CramFileBlock | undefined>;
120
83
  }
@@ -34,18 +34,18 @@ function bufferToStream(buf) {
34
34
  },
35
35
  });
36
36
  }
37
- //source:https://abdulapopoola.com/2019/01/20/check-endianness-with-javascript/
37
+ // source:https://abdulapopoola.com/2019/01/20/check-endianness-with-javascript/
38
38
  function getEndianness() {
39
39
  const uInt32 = new Uint32Array([0x11223344]);
40
40
  const uInt8 = new Uint8Array(uInt32.buffer);
41
41
  if (uInt8[0] === 0x44) {
42
- return 0; //little-endian
42
+ return 0; // little-endian
43
43
  }
44
44
  else if (uInt8[0] === 0x11) {
45
- return 1; //big-endian
45
+ return 1; // big-endian
46
46
  }
47
47
  else {
48
- return 2; //mixed-endian?
48
+ return 2; // mixed-endian?
49
49
  }
50
50
  }
51
51
  class CramFile {
@@ -80,10 +80,10 @@ class CramFile {
80
80
  // memoized
81
81
  getDefinition() {
82
82
  return __awaiter(this, void 0, void 0, function* () {
83
- const headbytes = Buffer.allocUnsafe(sectionParsers_1.cramFileDefinition.maxLength);
84
- yield this.file.read(headbytes, 0, sectionParsers_1.cramFileDefinition.maxLength, 0);
85
- const definition = sectionParsers_1.cramFileDefinition.parser.parse(headbytes)
86
- .result;
83
+ const { maxLength, parser } = (0, sectionParsers_1.cramFileDefinition)();
84
+ const headbytes = Buffer.allocUnsafe(maxLength);
85
+ yield this.file.read(headbytes, 0, maxLength, 0);
86
+ const definition = parser(headbytes).value;
87
87
  if (definition.majorVersion !== 2 && definition.majorVersion !== 3) {
88
88
  throw new errors_1.CramUnimplementedError(`CRAM version ${definition.majorVersion} not supported`);
89
89
  }
@@ -119,22 +119,16 @@ class CramFile {
119
119
  return this.header;
120
120
  });
121
121
  }
122
- // memoize
123
- getSectionParsers() {
124
- return __awaiter(this, void 0, void 0, function* () {
125
- const { majorVersion } = yield this.getDefinition();
126
- return (0, sectionParsers_1.getSectionParsers)(majorVersion);
127
- });
128
- }
129
122
  getContainerById(containerNumber) {
130
123
  return __awaiter(this, void 0, void 0, function* () {
131
- const sectionParsers = yield this.getSectionParsers();
124
+ const { majorVersion } = yield this.getDefinition();
125
+ const sectionParsers = (0, sectionParsers_1.getSectionParsers)(majorVersion);
132
126
  let position = sectionParsers.cramFileDefinition.maxLength;
133
127
  const { size: fileSize } = yield this.file.stat();
134
128
  const { cramContainerHeader1 } = sectionParsers;
135
129
  // skip with a series of reads to the proper container
136
130
  let currentContainer;
137
- for (let i = 0; i <= containerNumber; i += 1) {
131
+ for (let i = 0; i <= containerNumber; i++) {
138
132
  // if we are about to go off the end of the file
139
133
  // and have not found that container, it does not exist
140
134
  if (position + cramContainerHeader1.maxLength + 8 >= fileSize) {
@@ -145,13 +139,12 @@ class CramFile {
145
139
  if (!currentHeader) {
146
140
  throw new errors_1.CramMalformedError(`container ${containerNumber} not found in file`);
147
141
  }
148
- // if this is the first container, read all the blocks in the
149
- // container to determine its length, because we cannot trust
150
- // the container header's given length due to a bug somewhere
151
- // in htslib
142
+ // if this is the first container, read all the blocks in the container
143
+ // to determine its length, because we cannot trust the container
144
+ // header's given length due to a bug somewhere in htslib
152
145
  if (i === 0) {
153
146
  position = currentHeader._endPosition;
154
- for (let j = 0; j < currentHeader.numBlocks; j += 1) {
147
+ for (let j = 0; j < currentHeader.numBlocks; j++) {
155
148
  const block = yield this.readBlock(position);
156
149
  if (block === undefined) {
157
150
  return undefined;
@@ -182,7 +175,8 @@ class CramFile {
182
175
  */
183
176
  containerCount() {
184
177
  return __awaiter(this, void 0, void 0, function* () {
185
- const sectionParsers = yield this.getSectionParsers();
178
+ const { majorVersion } = yield this.getDefinition();
179
+ const sectionParsers = (0, sectionParsers_1.getSectionParsers)(majorVersion);
186
180
  const { size: fileSize } = yield this.file.stat();
187
181
  const { cramContainerHeader1 } = sectionParsers;
188
182
  let containerCount = 0;
@@ -197,7 +191,7 @@ class CramFile {
197
191
  // header's given length due to a bug somewhere in htslib
198
192
  if (containerCount === 0) {
199
193
  position = currentHeader._endPosition;
200
- for (let j = 0; j < currentHeader.numBlocks; j += 1) {
194
+ for (let j = 0; j < currentHeader.numBlocks; j++) {
201
195
  const block = yield this.readBlock(position);
202
196
  if (block === undefined) {
203
197
  return undefined;
@@ -219,7 +213,8 @@ class CramFile {
219
213
  }
220
214
  readBlockHeader(position) {
221
215
  return __awaiter(this, void 0, void 0, function* () {
222
- const sectionParsers = yield this.getSectionParsers();
216
+ const { majorVersion } = yield this.getDefinition();
217
+ const sectionParsers = (0, sectionParsers_1.getSectionParsers)(majorVersion);
223
218
  const { cramBlockHeader } = sectionParsers;
224
219
  const { size: fileSize } = yield this.file.stat();
225
220
  if (position + cramBlockHeader.maxLength >= fileSize) {
@@ -230,8 +225,8 @@ class CramFile {
230
225
  return (0, util_1.parseItem)(buffer, cramBlockHeader.parser, 0, position);
231
226
  });
232
227
  }
233
- _parseSection(section, position, size = section.maxLength, preReadBuffer = undefined) {
234
- return __awaiter(this, void 0, void 0, function* () {
228
+ _parseSection(section_1, position_1) {
229
+ return __awaiter(this, arguments, void 0, function* (section, position, size = section.maxLength, preReadBuffer = undefined) {
235
230
  let buffer;
236
231
  if (preReadBuffer) {
237
232
  buffer = preReadBuffer;
@@ -301,7 +296,7 @@ class CramFile {
301
296
  readBlock(position) {
302
297
  return __awaiter(this, void 0, void 0, function* () {
303
298
  const { majorVersion } = yield this.getDefinition();
304
- const sectionParsers = yield this.getSectionParsers();
299
+ const sectionParsers = (0, sectionParsers_1.getSectionParsers)(majorVersion);
305
300
  const blockHeader = yield this.readBlockHeader(position);
306
301
  if (blockHeader === undefined) {
307
302
  return undefined;