@gmod/cram 2.0.0 → 2.0.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 (143) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/craiIndex.d.ts +2 -2
  3. package/dist/craiIndex.js +5 -9
  4. package/dist/craiIndex.js.map +1 -1
  5. package/dist/cram-bundle.js +1 -1
  6. package/dist/cramFile/codecs/_base.d.ts +6 -6
  7. package/dist/cramFile/codecs/beta.js.map +1 -1
  8. package/dist/cramFile/codecs/byteArrayLength.js.map +1 -1
  9. package/dist/cramFile/codecs/byteArrayStop.js.map +1 -1
  10. package/dist/cramFile/codecs/external.js +1 -0
  11. package/dist/cramFile/codecs/external.js.map +1 -1
  12. package/dist/cramFile/codecs/gamma.js.map +1 -1
  13. package/dist/cramFile/codecs/getBits.js.map +1 -1
  14. package/dist/cramFile/codecs/huffman.d.ts +0 -1
  15. package/dist/cramFile/codecs/huffman.js +1 -3
  16. package/dist/cramFile/codecs/huffman.js.map +1 -1
  17. package/dist/cramFile/codecs/index.js.map +1 -1
  18. package/dist/cramFile/codecs/subexp.js.map +1 -1
  19. package/dist/cramFile/container/compressionScheme.js +1 -1
  20. package/dist/cramFile/container/compressionScheme.js.map +1 -1
  21. package/dist/cramFile/container/index.js.map +1 -1
  22. package/dist/cramFile/encoding.d.ts +20 -20
  23. package/dist/cramFile/file.d.ts +14 -7
  24. package/dist/cramFile/file.js.map +1 -1
  25. package/dist/cramFile/filehandle.d.ts +1 -2
  26. package/dist/cramFile/index.d.ts +1 -2
  27. package/dist/cramFile/index.js +3 -3
  28. package/dist/cramFile/index.js.map +1 -1
  29. package/dist/cramFile/record.d.ts +6 -6
  30. package/dist/cramFile/record.js +7 -4
  31. package/dist/cramFile/record.js.map +1 -1
  32. package/dist/cramFile/sectionParsers.d.ts +9 -8
  33. package/dist/cramFile/sectionParsers.js +10 -11
  34. package/dist/cramFile/sectionParsers.js.map +1 -1
  35. package/dist/cramFile/slice/decodeRecord.js +7 -11
  36. package/dist/cramFile/slice/decodeRecord.js.map +1 -1
  37. package/dist/cramFile/slice/index.js +24 -22
  38. package/dist/cramFile/slice/index.js.map +1 -1
  39. package/dist/cramFile/util.d.ts +1 -0
  40. package/dist/cramFile/util.js +1 -1
  41. package/dist/cramFile/util.js.map +1 -1
  42. package/dist/index.d.ts +3 -4
  43. package/dist/index.js +7 -30
  44. package/dist/index.js.map +1 -1
  45. package/dist/indexedCramFile.d.ts +6 -6
  46. package/dist/indexedCramFile.js +13 -18
  47. package/dist/indexedCramFile.js.map +1 -1
  48. package/dist/io/index.d.ts +2 -1
  49. package/dist/io/index.js +4 -3
  50. package/dist/io/index.js.map +1 -1
  51. package/dist/rans/d04.js.map +1 -1
  52. package/dist/rans/d14.js.map +1 -1
  53. package/dist/rans/decoding.js.map +1 -1
  54. package/dist/rans/frequencies.js.map +1 -1
  55. package/dist/rans/index.js.map +1 -1
  56. package/dist/sam.d.ts +5 -6
  57. package/dist/sam.js +20 -7
  58. package/dist/sam.js.map +1 -1
  59. package/dist/typescript.js.map +1 -1
  60. package/dist/unzip.d.ts +2 -2
  61. package/dist/unzip.js +1 -1
  62. package/dist/unzip.js.map +1 -1
  63. package/esm/craiIndex.d.ts +2 -2
  64. package/esm/craiIndex.js +5 -9
  65. package/esm/craiIndex.js.map +1 -1
  66. package/esm/cramFile/codecs/_base.d.ts +6 -6
  67. package/esm/cramFile/codecs/beta.js.map +1 -1
  68. package/esm/cramFile/codecs/byteArrayLength.js.map +1 -1
  69. package/esm/cramFile/codecs/byteArrayStop.js.map +1 -1
  70. package/esm/cramFile/codecs/external.js +1 -0
  71. package/esm/cramFile/codecs/external.js.map +1 -1
  72. package/esm/cramFile/codecs/gamma.js.map +1 -1
  73. package/esm/cramFile/codecs/getBits.js.map +1 -1
  74. package/esm/cramFile/codecs/huffman.d.ts +0 -1
  75. package/esm/cramFile/codecs/huffman.js +1 -3
  76. package/esm/cramFile/codecs/huffman.js.map +1 -1
  77. package/esm/cramFile/codecs/index.js.map +1 -1
  78. package/esm/cramFile/codecs/subexp.js.map +1 -1
  79. package/esm/cramFile/container/compressionScheme.js +1 -1
  80. package/esm/cramFile/container/compressionScheme.js.map +1 -1
  81. package/esm/cramFile/container/index.js.map +1 -1
  82. package/esm/cramFile/encoding.d.ts +20 -20
  83. package/esm/cramFile/file.d.ts +14 -7
  84. package/esm/cramFile/file.js.map +1 -1
  85. package/esm/cramFile/filehandle.d.ts +1 -2
  86. package/esm/cramFile/index.d.ts +1 -2
  87. package/esm/cramFile/index.js +1 -2
  88. package/esm/cramFile/index.js.map +1 -1
  89. package/esm/cramFile/record.d.ts +6 -6
  90. package/esm/cramFile/record.js +7 -4
  91. package/esm/cramFile/record.js.map +1 -1
  92. package/esm/cramFile/sectionParsers.d.ts +9 -8
  93. package/esm/cramFile/sectionParsers.js +10 -11
  94. package/esm/cramFile/sectionParsers.js.map +1 -1
  95. package/esm/cramFile/slice/decodeRecord.js +7 -11
  96. package/esm/cramFile/slice/decodeRecord.js.map +1 -1
  97. package/esm/cramFile/slice/index.js +24 -22
  98. package/esm/cramFile/slice/index.js.map +1 -1
  99. package/esm/cramFile/util.d.ts +1 -0
  100. package/esm/cramFile/util.js +1 -1
  101. package/esm/cramFile/util.js.map +1 -1
  102. package/esm/index.d.ts +3 -4
  103. package/esm/index.js +3 -4
  104. package/esm/index.js.map +1 -1
  105. package/esm/indexedCramFile.d.ts +6 -6
  106. package/esm/indexedCramFile.js +13 -18
  107. package/esm/indexedCramFile.js.map +1 -1
  108. package/esm/io/index.d.ts +2 -1
  109. package/esm/io/index.js +2 -1
  110. package/esm/io/index.js.map +1 -1
  111. package/esm/rans/d04.js.map +1 -1
  112. package/esm/rans/d14.js.map +1 -1
  113. package/esm/rans/decoding.js.map +1 -1
  114. package/esm/rans/frequencies.js.map +1 -1
  115. package/esm/rans/index.js.map +1 -1
  116. package/esm/sam.d.ts +5 -6
  117. package/esm/sam.js +20 -7
  118. package/esm/sam.js.map +1 -1
  119. package/esm/typescript.js.map +1 -1
  120. package/esm/unzip.d.ts +2 -2
  121. package/esm/unzip.js +1 -2
  122. package/esm/unzip.js.map +1 -1
  123. package/package.json +11 -11
  124. package/src/craiIndex.ts +8 -13
  125. package/src/cramFile/codecs/_base.ts +3 -3
  126. package/src/cramFile/codecs/external.ts +1 -0
  127. package/src/cramFile/codecs/huffman.ts +7 -8
  128. package/src/cramFile/container/compressionScheme.ts +1 -1
  129. package/src/cramFile/encoding.ts +10 -10
  130. package/src/cramFile/file.ts +5 -5
  131. package/src/cramFile/filehandle.ts +1 -3
  132. package/src/cramFile/index.ts +1 -2
  133. package/src/cramFile/record.ts +13 -10
  134. package/src/cramFile/sectionParsers.ts +8 -9
  135. package/src/cramFile/slice/decodeRecord.ts +15 -17
  136. package/src/cramFile/slice/index.ts +26 -23
  137. package/src/cramFile/util.ts +1 -1
  138. package/src/index.ts +3 -5
  139. package/src/indexedCramFile.ts +19 -23
  140. package/src/io/index.ts +3 -1
  141. package/src/sam.ts +28 -14
  142. package/src/typings/binary-parser.d.ts +1 -1
  143. package/src/unzip.ts +1 -2
package/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ # v2.0.1
2
+
3
+ - Fix issue parsing header tags with : character
4
+
1
5
  # v2.0.0
2
6
 
3
7
  - Add lzma support via xz-decompress. This uses webassembly, so it is a major
@@ -1,11 +1,11 @@
1
1
  import { CramFileSource } from './cramFile/file';
2
- export type Slice = {
2
+ export interface Slice {
3
3
  start: number;
4
4
  span: number;
5
5
  containerStart: number;
6
6
  sliceStart: number;
7
7
  sliceBytes: number;
8
- };
8
+ }
9
9
  type ParsedIndex = Record<string, Slice[]>;
10
10
  export default class CraiIndex {
11
11
  private _parseCache;
package/dist/craiIndex.js CHANGED
@@ -19,9 +19,6 @@ const io_1 = require("./io");
19
19
  const errors_1 = require("./errors");
20
20
  const BAI_MAGIC = 21578050; // BAI\1
21
21
  function addRecordToIndex(index, record) {
22
- if (record.some(el => el === undefined)) {
23
- throw new errors_1.CramMalformedError('invalid .crai index file');
24
- }
25
22
  const [seqId, start, span, containerStart, sliceStart, sliceBytes] = record;
26
23
  if (!index[seqId]) {
27
24
  index[seqId] = [];
@@ -46,7 +43,7 @@ class CraiIndex {
46
43
  this.filehandle = (0, io_1.open)(args.url, args.path, args.filehandle);
47
44
  this._parseCache = new abortable_promise_cache_1.default({
48
45
  cache: new quick_lru_1.default({ maxSize: 1 }),
49
- fill: (data, signal) => this.parseIndex(),
46
+ fill: (_data, _signal) => this.parseIndex(),
50
47
  });
51
48
  }
52
49
  parseIndex() {
@@ -70,8 +67,7 @@ class CraiIndex {
70
67
  // because some .crai files can be pretty large.
71
68
  let currentRecord = [];
72
69
  let currentString = '';
73
- for (let i = 0; i < uncompressedBuffer.length; i += 1) {
74
- const charCode = uncompressedBuffer[i];
70
+ for (const charCode of uncompressedBuffer) {
75
71
  if ((charCode >= 48 && charCode <= 57) /* 0-9 */ ||
76
72
  (!currentString && charCode === 45) /* leading - */) {
77
73
  currentString += String.fromCharCode(charCode);
@@ -148,9 +144,9 @@ class CraiIndex {
148
144
  return 0; // entry overlaps query
149
145
  };
150
146
  const bins = [];
151
- for (let i = 0; i < seqEntries.length; i += 1) {
152
- if (compare(seqEntries[i]) === 0) {
153
- bins.push(seqEntries[i]);
147
+ for (const entry of seqEntries) {
148
+ if (compare(entry) === 0) {
149
+ bins.push(entry);
154
150
  }
155
151
  }
156
152
  return bins;
@@ -1 +1 @@
1
- {"version":3,"file":"craiIndex.js","sourceRoot":"","sources":["../src/craiIndex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"craiIndex.js","sourceRoot":"","sources":["../src/craiIndex.ts"],"names":[],"mappings":"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"}