@gmod/cram 2.0.1 → 2.0.3

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 (111) hide show
  1. package/CHANGELOG.md +13 -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/external.js +1 -0
  8. package/dist/cramFile/codecs/external.js.map +1 -1
  9. package/dist/cramFile/codecs/huffman.d.ts +0 -1
  10. package/dist/cramFile/codecs/huffman.js +1 -3
  11. package/dist/cramFile/codecs/huffman.js.map +1 -1
  12. package/dist/cramFile/container/compressionScheme.js +1 -1
  13. package/dist/cramFile/container/compressionScheme.js.map +1 -1
  14. package/dist/cramFile/encoding.d.ts +20 -20
  15. package/dist/cramFile/file.d.ts +7 -7
  16. package/dist/cramFile/filehandle.d.ts +1 -2
  17. package/dist/cramFile/index.d.ts +1 -2
  18. package/dist/cramFile/index.js +3 -3
  19. package/dist/cramFile/index.js.map +1 -1
  20. package/dist/cramFile/record.d.ts +6 -6
  21. package/dist/cramFile/record.js +7 -4
  22. package/dist/cramFile/record.js.map +1 -1
  23. package/dist/cramFile/sectionParsers.d.ts +8 -8
  24. package/dist/cramFile/sectionParsers.js +3 -4
  25. package/dist/cramFile/sectionParsers.js.map +1 -1
  26. package/dist/cramFile/slice/decodeRecord.js +6 -10
  27. package/dist/cramFile/slice/decodeRecord.js.map +1 -1
  28. package/dist/cramFile/slice/index.js +24 -22
  29. package/dist/cramFile/slice/index.js.map +1 -1
  30. package/dist/cramFile/util.js +1 -1
  31. package/dist/cramFile/util.js.map +1 -1
  32. package/dist/index.d.ts +3 -4
  33. package/dist/index.js +7 -30
  34. package/dist/index.js.map +1 -1
  35. package/dist/indexedCramFile.d.ts +6 -6
  36. package/dist/indexedCramFile.js +13 -18
  37. package/dist/indexedCramFile.js.map +1 -1
  38. package/dist/io/index.d.ts +2 -1
  39. package/dist/io/index.js +4 -3
  40. package/dist/io/index.js.map +1 -1
  41. package/dist/sam.d.ts +1 -1
  42. package/dist/sam.js +10 -13
  43. package/dist/sam.js.map +1 -1
  44. package/dist/unzip.d.ts +1 -2
  45. package/dist/unzip.js +1 -1
  46. package/dist/unzip.js.map +1 -1
  47. package/esm/craiIndex.d.ts +2 -2
  48. package/esm/craiIndex.js +5 -9
  49. package/esm/craiIndex.js.map +1 -1
  50. package/esm/cramFile/codecs/_base.d.ts +6 -6
  51. package/esm/cramFile/codecs/external.js +1 -0
  52. package/esm/cramFile/codecs/external.js.map +1 -1
  53. package/esm/cramFile/codecs/huffman.d.ts +0 -1
  54. package/esm/cramFile/codecs/huffman.js +1 -3
  55. package/esm/cramFile/codecs/huffman.js.map +1 -1
  56. package/esm/cramFile/container/compressionScheme.js +1 -1
  57. package/esm/cramFile/container/compressionScheme.js.map +1 -1
  58. package/esm/cramFile/encoding.d.ts +20 -20
  59. package/esm/cramFile/file.d.ts +7 -7
  60. package/esm/cramFile/filehandle.d.ts +1 -2
  61. package/esm/cramFile/index.d.ts +1 -2
  62. package/esm/cramFile/index.js +1 -2
  63. package/esm/cramFile/index.js.map +1 -1
  64. package/esm/cramFile/record.d.ts +6 -6
  65. package/esm/cramFile/record.js +7 -4
  66. package/esm/cramFile/record.js.map +1 -1
  67. package/esm/cramFile/sectionParsers.d.ts +8 -8
  68. package/esm/cramFile/sectionParsers.js +3 -4
  69. package/esm/cramFile/sectionParsers.js.map +1 -1
  70. package/esm/cramFile/slice/decodeRecord.js +6 -10
  71. package/esm/cramFile/slice/decodeRecord.js.map +1 -1
  72. package/esm/cramFile/slice/index.js +24 -22
  73. package/esm/cramFile/slice/index.js.map +1 -1
  74. package/esm/cramFile/util.js +1 -1
  75. package/esm/cramFile/util.js.map +1 -1
  76. package/esm/index.d.ts +3 -4
  77. package/esm/index.js +3 -4
  78. package/esm/index.js.map +1 -1
  79. package/esm/indexedCramFile.d.ts +6 -6
  80. package/esm/indexedCramFile.js +13 -18
  81. package/esm/indexedCramFile.js.map +1 -1
  82. package/esm/io/index.d.ts +2 -1
  83. package/esm/io/index.js +2 -1
  84. package/esm/io/index.js.map +1 -1
  85. package/esm/sam.d.ts +1 -1
  86. package/esm/sam.js +10 -13
  87. package/esm/sam.js.map +1 -1
  88. package/esm/unzip.d.ts +1 -2
  89. package/esm/unzip.js +1 -2
  90. package/esm/unzip.js.map +1 -1
  91. package/package.json +11 -11
  92. package/src/craiIndex.ts +8 -13
  93. package/src/cramFile/codecs/_base.ts +3 -3
  94. package/src/cramFile/codecs/external.ts +1 -0
  95. package/src/cramFile/codecs/huffman.ts +7 -8
  96. package/src/cramFile/container/compressionScheme.ts +1 -1
  97. package/src/cramFile/encoding.ts +10 -10
  98. package/src/cramFile/file.ts +5 -5
  99. package/src/cramFile/filehandle.ts +1 -3
  100. package/src/cramFile/index.ts +1 -2
  101. package/src/cramFile/record.ts +13 -10
  102. package/src/cramFile/sectionParsers.ts +8 -9
  103. package/src/cramFile/slice/decodeRecord.ts +15 -17
  104. package/src/cramFile/slice/index.ts +26 -23
  105. package/src/cramFile/util.ts +1 -1
  106. package/src/index.ts +3 -5
  107. package/src/indexedCramFile.ts +19 -23
  108. package/src/io/index.ts +3 -1
  109. package/src/sam.ts +13 -15
  110. package/src/typings/binary-parser.d.ts +1 -1
  111. package/src/unzip.ts +1 -2
package/CHANGELOG.md CHANGED
@@ -1,3 +1,16 @@
1
+ # v2.0.3
2
+
3
+ - Update sam header parsing to avoid breaking 'type contract'
4
+
5
+ # v2.0.2
6
+
7
+ - Update buffer-crc32
8
+ - Update typescript-eslint config and related fixes
9
+
10
+ # v2.0.1
11
+
12
+ - Fix issue parsing header tags with : character
13
+
1
14
  # v2.0.0
2
15
 
3
16
  - 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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"}