@gmod/cram 4.0.1 → 4.0.4

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 (105) hide show
  1. package/dist/cram-bundle.js +1 -1
  2. package/dist/cramFile/file.js +43 -9
  3. package/dist/cramFile/file.js.map +1 -1
  4. package/dist/cramFile/slice/decodeRecord.js +3 -3
  5. package/dist/cramFile/slice/decodeRecord.js.map +1 -1
  6. package/dist/cramFile/slice/index.d.ts +1 -1
  7. package/dist/cramFile/slice/index.js +3 -1
  8. package/dist/cramFile/slice/index.js.map +1 -1
  9. package/dist/cramFile/util.d.ts +0 -2
  10. package/dist/cramFile/util.js +3 -31
  11. package/dist/cramFile/util.js.map +1 -1
  12. package/dist/htscodecs/arith_gen.d.ts +5 -7
  13. package/dist/htscodecs/arith_gen.js +122 -105
  14. package/dist/htscodecs/arith_gen.js.map +1 -1
  15. package/dist/htscodecs/arith_sh.d.ts +1 -8
  16. package/dist/htscodecs/arith_sh.js +16 -10
  17. package/dist/htscodecs/arith_sh.js.map +1 -1
  18. package/dist/htscodecs/byte_model.d.ts +1 -6
  19. package/dist/htscodecs/byte_model.js +25 -17
  20. package/dist/htscodecs/byte_model.js.map +1 -1
  21. package/dist/htscodecs/fqzcomp.d.ts +1 -1
  22. package/dist/htscodecs/fqzcomp.js +98 -77
  23. package/dist/htscodecs/fqzcomp.js.map +1 -1
  24. package/dist/htscodecs/index.d.ts +5 -5
  25. package/dist/htscodecs/index.js +53 -16
  26. package/dist/htscodecs/index.js.map +1 -1
  27. package/dist/htscodecs/iostream.d.ts +9 -20
  28. package/dist/htscodecs/iostream.js +21 -116
  29. package/dist/htscodecs/iostream.js.map +1 -1
  30. package/dist/htscodecs/rans.d.ts +1 -1
  31. package/dist/htscodecs/rans.js +65 -54
  32. package/dist/htscodecs/rans.js.map +1 -1
  33. package/dist/htscodecs/rans4x16.d.ts +1 -1
  34. package/dist/htscodecs/rans4x16.js +151 -111
  35. package/dist/htscodecs/rans4x16.js.map +1 -1
  36. package/dist/htscodecs/tok3.d.ts +1 -2
  37. package/dist/htscodecs/tok3.js +82 -239
  38. package/dist/htscodecs/tok3.js.map +1 -1
  39. package/dist/indexedCramFile.d.ts +14 -8
  40. package/dist/indexedCramFile.js +16 -13
  41. package/dist/indexedCramFile.js.map +1 -1
  42. package/dist/util.d.ts +1 -0
  43. package/dist/util.js +20 -0
  44. package/dist/util.js.map +1 -0
  45. package/esm/cramFile/file.js +3 -2
  46. package/esm/cramFile/file.js.map +1 -1
  47. package/esm/cramFile/slice/decodeRecord.js +3 -3
  48. package/esm/cramFile/slice/decodeRecord.js.map +1 -1
  49. package/esm/cramFile/slice/index.d.ts +1 -1
  50. package/esm/cramFile/slice/index.js +3 -1
  51. package/esm/cramFile/slice/index.js.map +1 -1
  52. package/esm/cramFile/util.d.ts +0 -2
  53. package/esm/cramFile/util.js +3 -29
  54. package/esm/cramFile/util.js.map +1 -1
  55. package/esm/htscodecs/arith_gen.d.ts +5 -7
  56. package/esm/htscodecs/arith_gen.js +108 -97
  57. package/esm/htscodecs/arith_gen.js.map +1 -1
  58. package/esm/htscodecs/arith_sh.d.ts +1 -8
  59. package/esm/htscodecs/arith_sh.js +14 -11
  60. package/esm/htscodecs/arith_sh.js.map +1 -1
  61. package/esm/htscodecs/byte_model.d.ts +1 -6
  62. package/esm/htscodecs/byte_model.js +23 -18
  63. package/esm/htscodecs/byte_model.js.map +1 -1
  64. package/esm/htscodecs/fqzcomp.d.ts +1 -1
  65. package/esm/htscodecs/fqzcomp.js +91 -76
  66. package/esm/htscodecs/fqzcomp.js.map +1 -1
  67. package/esm/htscodecs/index.d.ts +5 -5
  68. package/esm/htscodecs/index.js +14 -20
  69. package/esm/htscodecs/index.js.map +1 -1
  70. package/esm/htscodecs/iostream.d.ts +9 -20
  71. package/esm/htscodecs/iostream.js +19 -117
  72. package/esm/htscodecs/iostream.js.map +1 -1
  73. package/esm/htscodecs/rans.d.ts +1 -1
  74. package/esm/htscodecs/rans.js +61 -56
  75. package/esm/htscodecs/rans.js.map +1 -1
  76. package/esm/htscodecs/rans4x16.d.ts +1 -1
  77. package/esm/htscodecs/rans4x16.js +143 -109
  78. package/esm/htscodecs/rans4x16.js.map +1 -1
  79. package/esm/htscodecs/tok3.d.ts +1 -2
  80. package/esm/htscodecs/tok3.js +41 -237
  81. package/esm/htscodecs/tok3.js.map +1 -1
  82. package/esm/indexedCramFile.d.ts +14 -8
  83. package/esm/indexedCramFile.js +16 -13
  84. package/esm/indexedCramFile.js.map +1 -1
  85. package/esm/util.d.ts +1 -0
  86. package/esm/util.js +17 -0
  87. package/esm/util.js.map +1 -0
  88. package/package.json +8 -9
  89. package/src/cramFile/file.ts +3 -2
  90. package/src/cramFile/slice/decodeRecord.ts +3 -5
  91. package/src/cramFile/slice/index.ts +3 -1
  92. package/src/cramFile/util.ts +6 -39
  93. package/src/htscodecs/{arith_gen.js → arith_gen.ts} +133 -95
  94. package/src/htscodecs/{arith_sh.js → arith_sh.ts} +17 -9
  95. package/src/htscodecs/{byte_model.js → byte_model.ts} +26 -16
  96. package/src/htscodecs/{fqzcomp.js → fqzcomp.ts} +108 -74
  97. package/src/htscodecs/{index.js → index.ts} +14 -20
  98. package/src/htscodecs/iostream.ts +159 -0
  99. package/src/htscodecs/{rans.js → rans.ts} +73 -56
  100. package/src/htscodecs/{rans4x16.js → rans4x16.ts} +180 -111
  101. package/src/htscodecs/tok3.ts +197 -0
  102. package/src/indexedCramFile.ts +24 -17
  103. package/src/util.ts +16 -0
  104. package/src/htscodecs/iostream.js +0 -257
  105. package/src/htscodecs/tok3.js +0 -413
@@ -1,3 +1,6 @@
1
+ /* eslint-disable no-var */
2
+ // @ts-nocheck
3
+
1
4
  /*
2
5
  * Copyright (c) 2019-2020 Genome Research Ltd.
3
6
  * Author(s): James Bonfield
@@ -31,9 +34,9 @@
31
34
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32
35
  */
33
36
 
34
- const IOStream = require('./iostream')
37
+ import IOStream from './iostream'
35
38
 
36
- //----------------------------------------------------------------------
39
+ // ----------------------------------------------------------------------
37
40
  // rANS primitives itself
38
41
  //
39
42
  // RansGet* is decoder side
@@ -46,17 +49,21 @@ function RansGetSymbolFromFreq(C, f) {
46
49
  // NOTE: Inefficient.
47
50
  // In practice we would implement this via a precomputed
48
51
  // lookup table C2S[f]; see RansBuildC2S below.
49
- var s = 0
50
- while (f >= C[s + 1]) s++
52
+ let s = 0
53
+ while (f >= C[s + 1]) {
54
+ s++
55
+ }
51
56
 
52
57
  return s
53
58
  }
54
59
 
55
60
  function RansBuildC2S(C) {
56
- var C2S = new Array(0x1000)
57
- var s = 0
58
- for (var f = 0; f < 0x1000; f++) {
59
- while (f >= C[s + 1]) s++
61
+ const C2S = new Array(0x1000)
62
+ let s = 0
63
+ for (let f = 0; f < 0x1000; f++) {
64
+ while (f >= C[s + 1]) {
65
+ s++
66
+ }
60
67
  C2S[f] = s
61
68
  }
62
69
  return C2S
@@ -67,77 +74,83 @@ function RansAdvanceStep(R, c, f) {
67
74
  }
68
75
 
69
76
  function RansRenorm(src, R) {
70
- while (R < 1 << 23) R = (R << 8) + src.ReadByte()
77
+ while (R < 1 << 23) {
78
+ R = (R << 8) + src.ReadByte()
79
+ }
71
80
 
72
81
  return R
73
82
  }
74
- //----------------------------------------------------------------------
83
+ // ----------------------------------------------------------------------
75
84
  // Main rANS entry function: decodes a compressed src and
76
85
  // returns the uncompressed buffer.
77
- function decode(src) {
78
- var stream = new IOStream(src)
79
- var order = stream.ReadByte()
80
- var n_in = stream.ReadUint32()
81
- var n_out = stream.ReadUint32()
82
-
83
- if (order == 0) {
84
- return RansDecode0(stream, n_out)
85
- } else {
86
- return RansDecode1(stream, n_out)
87
- }
86
+ export function decode(src) {
87
+ const stream = new IOStream(src)
88
+ const order = stream.ReadByte()
89
+ const n_in = stream.ReadUint32()
90
+ const n_out = stream.ReadUint32()
91
+
92
+ return order == 0 ? RansDecode0(stream, n_out) : RansDecode1(stream, n_out)
88
93
  }
89
94
 
90
- //----------------------------------------------------------------------
95
+ // ----------------------------------------------------------------------
91
96
  // Order-0 decoder
92
97
 
93
98
  // Decode a single table of order-0 frequences,
94
99
  // filling out the F and C arrays.
95
100
  function ReadFrequencies0(src, F, C) {
96
101
  // Initialise; not in the specification - implicit?
97
- for (var i = 0; i < 256; i++) F[i] = 0
102
+ for (var i = 0; i < 256; i++) {
103
+ F[i] = 0
104
+ }
98
105
 
99
- var sym = src.ReadByte()
100
- var last_sym = sym
101
- var rle = 0
106
+ let sym = src.ReadByte()
107
+ let last_sym = sym
108
+ let rle = 0
102
109
 
103
110
  // Read F[]
104
111
  do {
105
- var f = src.ReadITF8()
112
+ const f = src.ReadITF8()
106
113
  F[sym] = f
107
114
  if (rle > 0) {
108
115
  rle--
109
116
  sym++
110
117
  } else {
111
118
  sym = src.ReadByte()
112
- if (sym == last_sym + 1) rle = src.ReadByte()
119
+ if (sym == last_sym + 1) {
120
+ rle = src.ReadByte()
121
+ }
113
122
  }
114
123
  last_sym = sym
115
124
  } while (sym != 0)
116
125
 
117
126
  // Compute C[] from F[]
118
127
  C[0] = 0
119
- for (var i = 0; i <= 255; i++) C[i + 1] = C[i] + F[i]
128
+ for (var i = 0; i <= 255; i++) {
129
+ C[i + 1] = C[i] + F[i]
130
+ }
120
131
  }
121
132
 
122
133
  function RansDecode0(src, nbytes) {
123
134
  // Decode frequencies
124
- var F = new Array(256)
125
- var C = new Array(256)
135
+ const F = new Array(256)
136
+ const C = new Array(256)
126
137
  ReadFrequencies0(src, F, C)
127
138
 
128
139
  // Fast lookup to avoid slow RansGetSymbolFromFreq
129
- var C2S = RansBuildC2S(C)
140
+ const C2S = RansBuildC2S(C)
130
141
 
131
142
  // Initialise rANS state
132
- var R = new Array(4)
133
- for (var i = 0; i < 4; i++) R[i] = src.ReadUint32()
143
+ const R = new Array(4)
144
+ for (var i = 0; i < 4; i++) {
145
+ R[i] = src.ReadUint32()
146
+ }
134
147
 
135
148
  // Main decode loop
136
- var output = new Uint8Array(nbytes)
149
+ const output = new Uint8Array(nbytes)
137
150
  for (var i = 0; i < nbytes; i++) {
138
- var i4 = i % 4
139
- var f = RansGetCumulativeFreq(R[i4])
140
- var s = C2S[f] // Equiv to RansGetSymbolFromFreq(C, f);
151
+ const i4 = i % 4
152
+ const f = RansGetCumulativeFreq(R[i4])
153
+ const s = C2S[f] // Equiv to RansGetSymbolFromFreq(C, f);
141
154
 
142
155
  output[i] = s
143
156
  R[i4] = RansAdvanceStep(R[i4], C[s], F[s])
@@ -147,22 +160,24 @@ function RansDecode0(src, nbytes) {
147
160
  return output
148
161
  }
149
162
 
150
- //----------------------------------------------------------------------
163
+ // ----------------------------------------------------------------------
151
164
  // Order-1 decoder
152
165
 
153
166
  // Decode a table of order-1 frequences,
154
167
  // filling out the F and C arrays.
155
168
  function ReadFrequencies1(src, F, C) {
156
169
  // Initialise; not in the specification - implicit?
157
- for (var i = 0; i < 256; i++) {
170
+ for (let i = 0; i < 256; i++) {
158
171
  F[i] = new Array(256)
159
172
  C[i] = new Array(256)
160
- for (var j = 0; j < 256; j++) F[i][j] = 0
173
+ for (let j = 0; j < 256; j++) {
174
+ F[i][j] = 0
175
+ }
161
176
  }
162
177
 
163
- var sym = src.ReadByte()
164
- var last_sym = sym
165
- var rle = 0
178
+ let sym = src.ReadByte()
179
+ let last_sym = sym
180
+ let rle = 0
166
181
 
167
182
  // Read F[]
168
183
  do {
@@ -173,7 +188,9 @@ function ReadFrequencies1(src, F, C) {
173
188
  sym++
174
189
  } else {
175
190
  sym = src.ReadByte()
176
- if (sym == last_sym + 1) rle = src.ReadByte()
191
+ if (sym == last_sym + 1) {
192
+ rle = src.ReadByte()
193
+ }
177
194
  }
178
195
  last_sym = sym
179
196
  } while (sym != 0)
@@ -181,30 +198,32 @@ function ReadFrequencies1(src, F, C) {
181
198
 
182
199
  function RansDecode1(src, nbytes) {
183
200
  // Decode frequencies
184
- var F = new Array(256)
185
- var C = new Array(256)
201
+ const F = new Array(256)
202
+ const C = new Array(256)
186
203
  ReadFrequencies1(src, F, C)
187
204
 
188
205
  // Fast lookup to avoid slow RansGetSymbolFromFreq
189
- var C2S = new Array(256)
190
- for (var i = 0; i < 256; i++) C2S[i] = RansBuildC2S(C[i])
206
+ const C2S = new Array(256)
207
+ for (var i = 0; i < 256; i++) {
208
+ C2S[i] = RansBuildC2S(C[i])
209
+ }
191
210
 
192
211
  // Initialise rANS state
193
- var R = new Array(4)
194
- var L = new Array(4)
212
+ const R = new Array(4)
213
+ const L = new Array(4)
195
214
  for (var j = 0; j < 4; j++) {
196
215
  R[j] = src.ReadUint32()
197
216
  L[j] = 0
198
217
  }
199
218
 
200
219
  // Main decode loop
201
- var output = new Uint8Array(nbytes)
202
- var nbytes4 = Math.floor(nbytes / 4)
220
+ const output = new Uint8Array(nbytes)
221
+ const nbytes4 = Math.floor(nbytes / 4)
203
222
  for (var i = 0; i < nbytes4; i++) {
204
223
  for (var j = 0; j < 4; j++) {
205
224
  var f = RansGetCumulativeFreq(R[j])
206
225
 
207
- //var s = RansGetSymbolFromFreq(C[L[j]], f);
226
+ // var s = RansGetSymbolFromFreq(C[L[j]], f);
208
227
  var s = C2S[L[j]][f] // Precomputed version of above
209
228
 
210
229
  output[i + j * nbytes4] = s
@@ -229,5 +248,3 @@ function RansDecode1(src, nbytes) {
229
248
 
230
249
  return output
231
250
  }
232
-
233
- module.exports = { decode }