@gmod/cram 6.0.0 → 7.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 (178) hide show
  1. package/dist/craiIndex.js +2 -2
  2. package/dist/craiIndex.js.map +1 -1
  3. package/dist/cram-bundle.js +1 -1
  4. package/dist/cramFile/file.d.ts +2 -2
  5. package/dist/cramFile/file.js +9 -13
  6. package/dist/cramFile/file.js.map +1 -1
  7. package/dist/htscodecs/index.d.ts +1 -5
  8. package/dist/htscodecs/index.js +11 -72
  9. package/dist/htscodecs/index.js.map +1 -1
  10. package/dist/htscodecs-wasm.d.ts +7 -0
  11. package/dist/htscodecs-wasm.js +183 -0
  12. package/dist/htscodecs-wasm.js.map +1 -0
  13. package/dist/unzip.d.ts +1 -1
  14. package/dist/unzip.js +3 -3
  15. package/dist/unzip.js.map +1 -1
  16. package/dist/wasm/htscodecs.d.ts +5 -0
  17. package/dist/wasm/htscodecs.js +0 -0
  18. package/dist/wasm/htscodecs.js.map +1 -0
  19. package/esm/craiIndex.js +2 -2
  20. package/esm/craiIndex.js.map +1 -1
  21. package/esm/cramFile/file.d.ts +2 -2
  22. package/esm/cramFile/file.js +7 -11
  23. package/esm/cramFile/file.js.map +1 -1
  24. package/esm/htscodecs/index.d.ts +1 -5
  25. package/esm/htscodecs/index.js +3 -31
  26. package/esm/htscodecs/index.js.map +1 -1
  27. package/esm/htscodecs-wasm.d.ts +7 -0
  28. package/esm/htscodecs-wasm.js +171 -0
  29. package/esm/htscodecs-wasm.js.map +1 -0
  30. package/esm/unzip.d.ts +1 -1
  31. package/esm/unzip.js +3 -3
  32. package/esm/unzip.js.map +1 -1
  33. package/esm/wasm/htscodecs.d.ts +5 -0
  34. package/esm/wasm/htscodecs.js +0 -0
  35. package/esm/wasm/htscodecs.js.map +1 -0
  36. package/package.json +9 -9
  37. package/src/craiIndex.ts +4 -2
  38. package/src/cramFile/file.ts +7 -11
  39. package/src/htscodecs/index.ts +12 -38
  40. package/src/htscodecs-wasm.ts +210 -0
  41. package/src/unzip.ts +3 -3
  42. package/src/wasm/htscodecs.d.ts +58 -0
  43. package/src/wasm/htscodecs.js +0 -0
  44. package/dist/htscodecs/arith_gen.d.ts +0 -16
  45. package/dist/htscodecs/arith_gen.js +0 -323
  46. package/dist/htscodecs/arith_gen.js.map +0 -1
  47. package/dist/htscodecs/arith_sh.d.ts +0 -9
  48. package/dist/htscodecs/arith_sh.js +0 -134
  49. package/dist/htscodecs/arith_sh.js.map +0 -1
  50. package/dist/htscodecs/byte_model.d.ts +0 -6
  51. package/dist/htscodecs/byte_model.js +0 -121
  52. package/dist/htscodecs/byte_model.js.map +0 -1
  53. package/dist/htscodecs/fqzcomp.d.ts +0 -1
  54. package/dist/htscodecs/fqzcomp.js +0 -346
  55. package/dist/htscodecs/fqzcomp.js.map +0 -1
  56. package/dist/htscodecs/iostream.d.ts +0 -16
  57. package/dist/htscodecs/iostream.js +0 -148
  58. package/dist/htscodecs/iostream.js.map +0 -1
  59. package/dist/htscodecs/rans.d.ts +0 -1
  60. package/dist/htscodecs/rans.js +0 -224
  61. package/dist/htscodecs/rans.js.map +0 -1
  62. package/dist/htscodecs/rans4x16.d.ts +0 -1
  63. package/dist/htscodecs/rans4x16.js +0 -445
  64. package/dist/htscodecs/rans4x16.js.map +0 -1
  65. package/dist/htscodecs/tok3.d.ts +0 -1
  66. package/dist/htscodecs/tok3.js +0 -206
  67. package/dist/htscodecs/tok3.js.map +0 -1
  68. package/dist/rans/constants.d.ts +0 -4
  69. package/dist/rans/constants.js +0 -10
  70. package/dist/rans/constants.js.map +0 -1
  71. package/dist/rans/d04.d.ts +0 -1
  72. package/dist/rans/d04.js +0 -100
  73. package/dist/rans/d04.js.map +0 -1
  74. package/dist/rans/d14.d.ts +0 -1
  75. package/dist/rans/d14.js +0 -96
  76. package/dist/rans/d14.js.map +0 -1
  77. package/dist/rans/decoding.d.ts +0 -27
  78. package/dist/rans/decoding.js +0 -119
  79. package/dist/rans/decoding.js.map +0 -1
  80. package/dist/rans/frequencies.d.ts +0 -2
  81. package/dist/rans/frequencies.js +0 -112
  82. package/dist/rans/frequencies.js.map +0 -1
  83. package/dist/rans/index.d.ts +0 -1
  84. package/dist/rans/index.js +0 -198
  85. package/dist/rans/index.js.map +0 -1
  86. package/dist/seek-bzip/bitreader.d.ts +0 -27
  87. package/dist/seek-bzip/bitreader.js +0 -101
  88. package/dist/seek-bzip/bitreader.js.map +0 -1
  89. package/dist/seek-bzip/crc32.d.ts +0 -26
  90. package/dist/seek-bzip/crc32.js +0 -115
  91. package/dist/seek-bzip/crc32.js.map +0 -1
  92. package/dist/seek-bzip/index.d.ts +0 -9
  93. package/dist/seek-bzip/index.js +0 -585
  94. package/dist/seek-bzip/index.js.map +0 -1
  95. package/dist/seek-bzip/stream.d.ts +0 -8
  96. package/dist/seek-bzip/stream.js +0 -37
  97. package/dist/seek-bzip/stream.js.map +0 -1
  98. package/dist/seek-bzip/toHex.d.ts +0 -1
  99. package/dist/seek-bzip/toHex.js +0 -36
  100. package/dist/seek-bzip/toHex.js.map +0 -1
  101. package/esm/htscodecs/arith_gen.d.ts +0 -16
  102. package/esm/htscodecs/arith_gen.js +0 -317
  103. package/esm/htscodecs/arith_gen.js.map +0 -1
  104. package/esm/htscodecs/arith_sh.d.ts +0 -9
  105. package/esm/htscodecs/arith_sh.js +0 -131
  106. package/esm/htscodecs/arith_sh.js.map +0 -1
  107. package/esm/htscodecs/byte_model.d.ts +0 -6
  108. package/esm/htscodecs/byte_model.js +0 -118
  109. package/esm/htscodecs/byte_model.js.map +0 -1
  110. package/esm/htscodecs/fqzcomp.d.ts +0 -1
  111. package/esm/htscodecs/fqzcomp.js +0 -340
  112. package/esm/htscodecs/fqzcomp.js.map +0 -1
  113. package/esm/htscodecs/iostream.d.ts +0 -16
  114. package/esm/htscodecs/iostream.js +0 -145
  115. package/esm/htscodecs/iostream.js.map +0 -1
  116. package/esm/htscodecs/rans.d.ts +0 -1
  117. package/esm/htscodecs/rans.js +0 -218
  118. package/esm/htscodecs/rans.js.map +0 -1
  119. package/esm/htscodecs/rans4x16.d.ts +0 -1
  120. package/esm/htscodecs/rans4x16.js +0 -439
  121. package/esm/htscodecs/rans4x16.js.map +0 -1
  122. package/esm/htscodecs/tok3.d.ts +0 -1
  123. package/esm/htscodecs/tok3.js +0 -167
  124. package/esm/htscodecs/tok3.js.map +0 -1
  125. package/esm/rans/constants.d.ts +0 -4
  126. package/esm/rans/constants.js +0 -5
  127. package/esm/rans/constants.js.map +0 -1
  128. package/esm/rans/d04.d.ts +0 -1
  129. package/esm/rans/d04.js +0 -94
  130. package/esm/rans/d04.js.map +0 -1
  131. package/esm/rans/d14.d.ts +0 -1
  132. package/esm/rans/d14.js +0 -93
  133. package/esm/rans/d14.js.map +0 -1
  134. package/esm/rans/decoding.d.ts +0 -27
  135. package/esm/rans/decoding.js +0 -117
  136. package/esm/rans/decoding.js.map +0 -1
  137. package/esm/rans/frequencies.d.ts +0 -2
  138. package/esm/rans/frequencies.js +0 -105
  139. package/esm/rans/frequencies.js.map +0 -1
  140. package/esm/rans/index.d.ts +0 -1
  141. package/esm/rans/index.js +0 -192
  142. package/esm/rans/index.js.map +0 -1
  143. package/esm/seek-bzip/bitreader.d.ts +0 -27
  144. package/esm/seek-bzip/bitreader.js +0 -98
  145. package/esm/seek-bzip/bitreader.js.map +0 -1
  146. package/esm/seek-bzip/crc32.d.ts +0 -26
  147. package/esm/seek-bzip/crc32.js +0 -112
  148. package/esm/seek-bzip/crc32.js.map +0 -1
  149. package/esm/seek-bzip/index.d.ts +0 -9
  150. package/esm/seek-bzip/index.js +0 -579
  151. package/esm/seek-bzip/index.js.map +0 -1
  152. package/esm/seek-bzip/stream.d.ts +0 -8
  153. package/esm/seek-bzip/stream.js +0 -34
  154. package/esm/seek-bzip/stream.js.map +0 -1
  155. package/esm/seek-bzip/toHex.d.ts +0 -1
  156. package/esm/seek-bzip/toHex.js +0 -33
  157. package/esm/seek-bzip/toHex.js.map +0 -1
  158. package/src/htscodecs/arith_gen.ts +0 -371
  159. package/src/htscodecs/arith_sh.ts +0 -146
  160. package/src/htscodecs/byte_model.ts +0 -136
  161. package/src/htscodecs/fqzcomp.ts +0 -394
  162. package/src/htscodecs/iostream.ts +0 -159
  163. package/src/htscodecs/rans.ts +0 -250
  164. package/src/htscodecs/rans4x16.ts +0 -521
  165. package/src/htscodecs/tok3.ts +0 -197
  166. package/src/rans/README.md +0 -1
  167. package/src/rans/constants.ts +0 -5
  168. package/src/rans/d04.ts +0 -112
  169. package/src/rans/d14.ts +0 -106
  170. package/src/rans/decoding.ts +0 -138
  171. package/src/rans/frequencies.ts +0 -115
  172. package/src/rans/index.ts +0 -245
  173. package/src/seek-bzip/README.md +0 -6
  174. package/src/seek-bzip/bitreader.ts +0 -113
  175. package/src/seek-bzip/crc32.ts +0 -121
  176. package/src/seek-bzip/index.ts +0 -615
  177. package/src/seek-bzip/stream.ts +0 -33
  178. package/src/seek-bzip/toHex.ts +0 -33
@@ -1,250 +0,0 @@
1
- /* eslint-disable no-var */
2
- // @ts-nocheck
3
-
4
- /*
5
- * Copyright (c) 2019-2020 Genome Research Ltd.
6
- * Author(s): James Bonfield
7
- *
8
- * Redistribution and use in source and binary forms, with or without
9
- * modification, are permitted provided that the following conditions are met:
10
- *
11
- * 1. Redistributions of source code must retain the above copyright notice,
12
- * this list of conditions and the following disclaimer.
13
- *
14
- * 2. Redistributions in binary form must reproduce the above
15
- * copyright notice, this list of conditions and the following
16
- * disclaimer in the documentation and/or other materials provided
17
- * with the distribution.
18
- *
19
- * 3. Neither the names Genome Research Ltd and Wellcome Trust Sanger
20
- * Institute nor the names of its contributors may be used to endorse
21
- * or promote products derived from this software without specific
22
- * prior written permission.
23
- *
24
- * THIS SOFTWARE IS PROVIDED BY GENOME RESEARCH LTD AND CONTRIBUTORS "AS
25
- * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
26
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
27
- * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GENOME RESEARCH
28
- * LTD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
29
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
30
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
31
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
32
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
33
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
34
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35
- */
36
-
37
- import IOStream from './iostream.ts'
38
-
39
- // ----------------------------------------------------------------------
40
- // rANS primitives itself
41
- //
42
- // RansGet* is decoder side
43
-
44
- function RansGetCumulativeFreq(R) {
45
- return R & 0xfff
46
- }
47
-
48
- function RansGetSymbolFromFreq(C, f) {
49
- // NOTE: Inefficient.
50
- // In practice we would implement this via a precomputed
51
- // lookup table C2S[f]; see RansBuildC2S below.
52
- let s = 0
53
- while (f >= C[s + 1]) {
54
- s++
55
- }
56
-
57
- return s
58
- }
59
-
60
- function RansBuildC2S(C) {
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
- }
67
- C2S[f] = s
68
- }
69
- return C2S
70
- }
71
-
72
- function RansAdvanceStep(R, c, f) {
73
- return f * (R >> 12) + (R & 0xfff) - c
74
- }
75
-
76
- function RansRenorm(src, R) {
77
- while (R < 1 << 23) {
78
- R = (R << 8) + src.ReadByte()
79
- }
80
-
81
- return R
82
- }
83
- // ----------------------------------------------------------------------
84
- // Main rANS entry function: decodes a compressed src and
85
- // returns the uncompressed buffer.
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)
93
- }
94
-
95
- // ----------------------------------------------------------------------
96
- // Order-0 decoder
97
-
98
- // Decode a single table of order-0 frequencies,
99
- // filling out the F and C arrays.
100
- function ReadFrequencies0(src, F, C) {
101
- // Initialise; not in the specification - implicit?
102
- for (var i = 0; i < 256; i++) {
103
- F[i] = 0
104
- }
105
-
106
- let sym = src.ReadByte()
107
- let last_sym = sym
108
- let rle = 0
109
-
110
- // Read F[]
111
- do {
112
- const f = src.ReadITF8()
113
- F[sym] = f
114
- if (rle > 0) {
115
- rle--
116
- sym++
117
- } else {
118
- sym = src.ReadByte()
119
- if (sym == last_sym + 1) {
120
- rle = src.ReadByte()
121
- }
122
- }
123
- last_sym = sym
124
- } while (sym != 0)
125
-
126
- // Compute C[] from F[]
127
- C[0] = 0
128
- for (var i = 0; i <= 255; i++) {
129
- C[i + 1] = C[i] + F[i]
130
- }
131
- }
132
-
133
- function RansDecode0(src, nbytes) {
134
- // Decode frequencies
135
- const F = new Array(256)
136
- const C = new Array(256)
137
- ReadFrequencies0(src, F, C)
138
-
139
- // Fast lookup to avoid slow RansGetSymbolFromFreq
140
- const C2S = RansBuildC2S(C)
141
-
142
- // Initialise rANS state
143
- const R = new Array(4)
144
- for (var i = 0; i < 4; i++) {
145
- R[i] = src.ReadUint32()
146
- }
147
-
148
- // Main decode loop
149
- const output = new Uint8Array(nbytes)
150
- for (var i = 0; i < nbytes; i++) {
151
- const i4 = i % 4
152
- const f = RansGetCumulativeFreq(R[i4])
153
- const s = C2S[f] // Equiv to RansGetSymbolFromFreq(C, f);
154
-
155
- output[i] = s
156
- R[i4] = RansAdvanceStep(R[i4], C[s], F[s])
157
- R[i4] = RansRenorm(src, R[i4])
158
- }
159
-
160
- return output
161
- }
162
-
163
- // ----------------------------------------------------------------------
164
- // Order-1 decoder
165
-
166
- // Decode a table of order-1 frequencies,
167
- // filling out the F and C arrays.
168
- function ReadFrequencies1(src, F, C) {
169
- // Initialise; not in the specification - implicit?
170
- for (let i = 0; i < 256; i++) {
171
- F[i] = new Array(256)
172
- C[i] = new Array(256)
173
- for (let j = 0; j < 256; j++) {
174
- F[i][j] = 0
175
- }
176
- }
177
-
178
- let sym = src.ReadByte()
179
- let last_sym = sym
180
- let rle = 0
181
-
182
- // Read F[]
183
- do {
184
- ReadFrequencies0(src, F[sym], C[sym])
185
-
186
- if (rle > 0) {
187
- rle--
188
- sym++
189
- } else {
190
- sym = src.ReadByte()
191
- if (sym == last_sym + 1) {
192
- rle = src.ReadByte()
193
- }
194
- }
195
- last_sym = sym
196
- } while (sym != 0)
197
- }
198
-
199
- function RansDecode1(src, nbytes) {
200
- // Decode frequencies
201
- const F = new Array(256)
202
- const C = new Array(256)
203
- ReadFrequencies1(src, F, C)
204
-
205
- // Fast lookup to avoid slow RansGetSymbolFromFreq
206
- const C2S = new Array(256)
207
- for (var i = 0; i < 256; i++) {
208
- C2S[i] = RansBuildC2S(C[i])
209
- }
210
-
211
- // Initialise rANS state
212
- const R = new Array(4)
213
- const L = new Array(4)
214
- for (var j = 0; j < 4; j++) {
215
- R[j] = src.ReadUint32()
216
- L[j] = 0
217
- }
218
-
219
- // Main decode loop
220
- const output = new Uint8Array(nbytes)
221
- const nbytes4 = Math.floor(nbytes / 4)
222
- for (var i = 0; i < nbytes4; i++) {
223
- for (var j = 0; j < 4; j++) {
224
- var f = RansGetCumulativeFreq(R[j])
225
-
226
- // var s = RansGetSymbolFromFreq(C[L[j]], f);
227
- var s = C2S[L[j]][f] // Precomputed version of above
228
-
229
- output[i + j * nbytes4] = s
230
- R[j] = RansAdvanceStep(R[j], C[L[j]][s], F[L[j]][s])
231
- R[j] = RansRenorm(src, R[j])
232
- L[j] = s
233
- }
234
- }
235
-
236
- // Now deal with the remainder if buffer size is not a multiple of 4,
237
- // using rANS state 3 exclusively. (It'd have been nice to have
238
- // designed this to just act as if we kept going with a bail out.)
239
- i = 4 * i
240
- while (i < nbytes) {
241
- var f = RansGetCumulativeFreq(R[3])
242
- var s = RansGetSymbolFromFreq(C[L[3]], f)
243
- output[i++] = s
244
- R[3] = RansAdvanceStep(R[3], C[L[3]][s], F[L[3]][s])
245
- R[3] = RansRenorm(src, R[3])
246
- L[3] = s
247
- }
248
-
249
- return output
250
- }