@gmod/cram 1.5.9 → 1.6.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 (258) hide show
  1. package/CHANGELOG.md +90 -0
  2. package/README.md +182 -172
  3. package/dist/craiIndex.d.ts +37 -0
  4. package/dist/craiIndex.js +196 -301
  5. package/dist/craiIndex.js.map +1 -0
  6. package/dist/cram-bundle.js +6 -15
  7. package/dist/cramFile/codecs/_base.d.ts +6 -0
  8. package/dist/cramFile/codecs/_base.js +44 -53
  9. package/dist/cramFile/codecs/_base.js.map +1 -0
  10. package/dist/cramFile/codecs/beta.d.ts +4 -0
  11. package/dist/cramFile/codecs/beta.js +38 -48
  12. package/dist/cramFile/codecs/beta.js.map +1 -0
  13. package/dist/cramFile/codecs/byteArrayLength.d.ts +8 -0
  14. package/dist/cramFile/codecs/byteArrayLength.js +58 -78
  15. package/dist/cramFile/codecs/byteArrayLength.js.map +1 -0
  16. package/dist/cramFile/codecs/byteArrayStop.d.ts +6 -0
  17. package/dist/cramFile/codecs/byteArrayStop.js +62 -76
  18. package/dist/cramFile/codecs/byteArrayStop.js.map +1 -0
  19. package/dist/cramFile/codecs/external.d.ts +7 -0
  20. package/dist/cramFile/codecs/external.js +63 -81
  21. package/dist/cramFile/codecs/external.js.map +1 -0
  22. package/dist/cramFile/codecs/gamma.d.ts +4 -0
  23. package/dist/cramFile/codecs/gamma.js +43 -56
  24. package/dist/cramFile/codecs/gamma.js.map +1 -0
  25. package/dist/cramFile/codecs/huffman.d.ts +17 -0
  26. package/dist/cramFile/codecs/huffman.js +126 -199
  27. package/dist/cramFile/codecs/huffman.js.map +1 -0
  28. package/dist/cramFile/codecs/index.d.ts +2 -0
  29. package/dist/cramFile/codecs/index.js +31 -38
  30. package/dist/cramFile/codecs/index.js.map +1 -0
  31. package/dist/cramFile/codecs/subexp.d.ts +4 -0
  32. package/dist/cramFile/codecs/subexp.js +51 -64
  33. package/dist/cramFile/codecs/subexp.js.map +1 -0
  34. package/dist/cramFile/constants.d.ts +36 -0
  35. package/dist/cramFile/constants.js +52 -50
  36. package/dist/cramFile/constants.js.map +1 -0
  37. package/dist/cramFile/container/compressionScheme.d.ts +23 -0
  38. package/dist/cramFile/container/compressionScheme.js +115 -153
  39. package/dist/cramFile/container/compressionScheme.js.map +1 -0
  40. package/dist/cramFile/container/index.d.ts +13 -0
  41. package/dist/cramFile/container/index.js +169 -283
  42. package/dist/cramFile/container/index.js.map +1 -0
  43. package/dist/cramFile/file.d.ts +63 -0
  44. package/dist/cramFile/file.js +440 -766
  45. package/dist/cramFile/file.js.map +1 -0
  46. package/dist/cramFile/index.d.ts +2 -0
  47. package/dist/cramFile/index.js +7 -4
  48. package/dist/cramFile/index.js.map +1 -0
  49. package/dist/cramFile/record.d.ts +79 -0
  50. package/dist/cramFile/record.js +253 -308
  51. package/dist/cramFile/record.js.map +1 -0
  52. package/dist/cramFile/sectionParsers.d.ts +18 -0
  53. package/dist/cramFile/sectionParsers.js +324 -362
  54. package/dist/cramFile/sectionParsers.js.map +1 -0
  55. package/dist/cramFile/slice/decodeRecord.d.ts +2 -0
  56. package/dist/cramFile/slice/decodeRecord.js +278 -298
  57. package/dist/cramFile/slice/decodeRecord.js.map +1 -0
  58. package/dist/cramFile/slice/index.d.ts +20 -0
  59. package/dist/cramFile/slice/index.js +488 -789
  60. package/dist/cramFile/slice/index.js.map +1 -0
  61. package/dist/cramFile/util.d.ts +5 -0
  62. package/dist/cramFile/util.js +158 -144
  63. package/dist/cramFile/util.js.map +1 -0
  64. package/dist/errors.d.ts +23 -0
  65. package/dist/errors.js +66 -103
  66. package/dist/errors.js.map +1 -0
  67. package/dist/index.d.ts +4 -0
  68. package/dist/index.js +12 -12
  69. package/dist/index.js.map +1 -0
  70. package/dist/indexedCramFile.d.ts +39 -0
  71. package/dist/indexedCramFile.js +213 -315
  72. package/dist/indexedCramFile.js.map +1 -0
  73. package/dist/io/bufferCache.d.ts +12 -0
  74. package/dist/io/bufferCache.js +108 -128
  75. package/dist/io/bufferCache.js.map +1 -0
  76. package/dist/io/index.d.ts +5 -0
  77. package/dist/io/index.js +29 -27
  78. package/dist/io/index.js.map +1 -0
  79. package/dist/io/localFile.d.ts +10 -0
  80. package/dist/io/localFile.js +105 -162
  81. package/dist/io/localFile.js.map +1 -0
  82. package/dist/io/remoteFile.d.ts +16 -0
  83. package/dist/io/remoteFile.js +137 -206
  84. package/dist/io/remoteFile.js.map +1 -0
  85. package/dist/rans/constants.d.ts +3 -0
  86. package/dist/rans/constants.js +6 -6
  87. package/dist/rans/constants.js.map +1 -0
  88. package/dist/rans/d04.d.ts +1 -0
  89. package/dist/rans/d04.js +70 -99
  90. package/dist/rans/d04.js.map +1 -0
  91. package/dist/rans/d14.d.ts +1 -0
  92. package/dist/rans/d14.js +55 -93
  93. package/dist/rans/d14.js.map +1 -0
  94. package/dist/rans/decoding.d.ts +30 -0
  95. package/dist/rans/decoding.js +112 -159
  96. package/dist/rans/decoding.js.map +1 -0
  97. package/dist/rans/frequencies.d.ts +2 -0
  98. package/dist/rans/frequencies.js +110 -119
  99. package/dist/rans/frequencies.js.map +1 -0
  100. package/dist/rans/index.d.ts +1 -0
  101. package/dist/rans/index.js +111 -174
  102. package/dist/rans/index.js.map +1 -0
  103. package/dist/sam.d.ts +1 -0
  104. package/dist/sam.js +16 -41
  105. package/dist/sam.js.map +1 -0
  106. package/dist/unzip-pako.d.ts +2 -0
  107. package/dist/unzip-pako.js +9 -0
  108. package/dist/unzip-pako.js.map +1 -0
  109. package/dist/unzip.d.ts +2 -0
  110. package/dist/unzip.js +6 -0
  111. package/dist/unzip.js.map +1 -0
  112. package/errors.js +66 -103
  113. package/esm/craiIndex.d.ts +37 -0
  114. package/esm/craiIndex.js +158 -0
  115. package/esm/craiIndex.js.map +1 -0
  116. package/esm/cramFile/codecs/_base.d.ts +6 -0
  117. package/esm/cramFile/codecs/_base.js +42 -0
  118. package/esm/cramFile/codecs/_base.js.map +1 -0
  119. package/esm/cramFile/codecs/beta.d.ts +4 -0
  120. package/esm/cramFile/codecs/beta.js +15 -0
  121. package/esm/cramFile/codecs/beta.js.map +1 -0
  122. package/esm/cramFile/codecs/byteArrayLength.d.ts +8 -0
  123. package/esm/cramFile/codecs/byteArrayLength.js +35 -0
  124. package/esm/cramFile/codecs/byteArrayLength.js.map +1 -0
  125. package/esm/cramFile/codecs/byteArrayStop.d.ts +6 -0
  126. package/esm/cramFile/codecs/byteArrayStop.js +40 -0
  127. package/esm/cramFile/codecs/byteArrayStop.js.map +1 -0
  128. package/esm/cramFile/codecs/external.d.ts +7 -0
  129. package/esm/cramFile/codecs/external.js +40 -0
  130. package/esm/cramFile/codecs/external.js.map +1 -0
  131. package/esm/cramFile/codecs/gamma.d.ts +4 -0
  132. package/esm/cramFile/codecs/gamma.js +20 -0
  133. package/esm/cramFile/codecs/gamma.js.map +1 -0
  134. package/esm/cramFile/codecs/huffman.d.ts +17 -0
  135. package/esm/cramFile/codecs/huffman.js +107 -0
  136. package/esm/cramFile/codecs/huffman.js.map +1 -0
  137. package/esm/cramFile/codecs/index.d.ts +2 -0
  138. package/esm/cramFile/codecs/index.js +30 -0
  139. package/esm/cramFile/codecs/index.js.map +1 -0
  140. package/esm/cramFile/codecs/subexp.d.ts +4 -0
  141. package/esm/cramFile/codecs/subexp.js +28 -0
  142. package/esm/cramFile/codecs/subexp.js.map +1 -0
  143. package/esm/cramFile/constants.d.ts +36 -0
  144. package/esm/cramFile/constants.js +51 -0
  145. package/esm/cramFile/constants.js.map +1 -0
  146. package/esm/cramFile/container/compressionScheme.d.ts +23 -0
  147. package/esm/cramFile/container/compressionScheme.js +123 -0
  148. package/esm/cramFile/container/compressionScheme.js.map +1 -0
  149. package/esm/cramFile/container/index.d.ts +13 -0
  150. package/esm/cramFile/container/index.js +84 -0
  151. package/esm/cramFile/container/index.js.map +1 -0
  152. package/esm/cramFile/file.d.ts +63 -0
  153. package/esm/cramFile/file.js +281 -0
  154. package/esm/cramFile/file.js.map +1 -0
  155. package/esm/cramFile/index.d.ts +2 -0
  156. package/esm/cramFile/index.js +3 -0
  157. package/esm/cramFile/index.js.map +1 -0
  158. package/esm/cramFile/record.d.ts +79 -0
  159. package/esm/cramFile/record.js +297 -0
  160. package/esm/cramFile/record.js.map +1 -0
  161. package/esm/cramFile/sectionParsers.d.ts +18 -0
  162. package/esm/cramFile/sectionParsers.js +347 -0
  163. package/esm/cramFile/sectionParsers.js.map +1 -0
  164. package/esm/cramFile/slice/decodeRecord.d.ts +2 -0
  165. package/esm/cramFile/slice/decodeRecord.js +299 -0
  166. package/esm/cramFile/slice/decodeRecord.js.map +1 -0
  167. package/esm/cramFile/slice/index.d.ts +20 -0
  168. package/esm/cramFile/slice/index.js +364 -0
  169. package/esm/cramFile/slice/index.js.map +1 -0
  170. package/esm/cramFile/util.d.ts +5 -0
  171. package/esm/cramFile/util.js +161 -0
  172. package/esm/cramFile/util.js.map +1 -0
  173. package/esm/errors.d.ts +23 -0
  174. package/esm/errors.js +24 -0
  175. package/esm/errors.js.map +1 -0
  176. package/esm/index.d.ts +4 -0
  177. package/esm/index.js +5 -0
  178. package/esm/index.js.map +1 -0
  179. package/esm/indexedCramFile.d.ts +39 -0
  180. package/esm/indexedCramFile.js +155 -0
  181. package/esm/indexedCramFile.js.map +1 -0
  182. package/esm/io/bufferCache.d.ts +12 -0
  183. package/esm/io/bufferCache.js +54 -0
  184. package/esm/io/bufferCache.js.map +1 -0
  185. package/esm/io/index.d.ts +5 -0
  186. package/esm/io/index.js +24 -0
  187. package/esm/io/index.js.map +1 -0
  188. package/esm/io/localFile.d.ts +10 -0
  189. package/esm/io/localFile.js +31 -0
  190. package/esm/io/localFile.js.map +1 -0
  191. package/esm/io/remoteFile.d.ts +16 -0
  192. package/esm/io/remoteFile.js +64 -0
  193. package/esm/io/remoteFile.js.map +1 -0
  194. package/esm/rans/constants.d.ts +3 -0
  195. package/esm/rans/constants.js +5 -0
  196. package/esm/rans/constants.js.map +1 -0
  197. package/esm/rans/d04.d.ts +1 -0
  198. package/esm/rans/d04.js +67 -0
  199. package/esm/rans/d04.js.map +1 -0
  200. package/esm/rans/d14.d.ts +1 -0
  201. package/esm/rans/d14.js +52 -0
  202. package/esm/rans/d14.js.map +1 -0
  203. package/esm/rans/decoding.d.ts +30 -0
  204. package/esm/rans/decoding.js +118 -0
  205. package/esm/rans/decoding.js.map +1 -0
  206. package/esm/rans/frequencies.d.ts +2 -0
  207. package/esm/rans/frequencies.js +110 -0
  208. package/esm/rans/frequencies.js.map +1 -0
  209. package/esm/rans/index.d.ts +1 -0
  210. package/esm/rans/index.js +195 -0
  211. package/esm/rans/index.js.map +1 -0
  212. package/esm/sam.d.ts +1 -0
  213. package/esm/sam.js +16 -0
  214. package/esm/sam.js.map +1 -0
  215. package/esm/unzip-pako.d.ts +2 -0
  216. package/esm/unzip-pako.js +5 -0
  217. package/esm/unzip-pako.js.map +1 -0
  218. package/esm/unzip.d.ts +2 -0
  219. package/esm/unzip.js +3 -0
  220. package/esm/unzip.js.map +1 -0
  221. package/package.json +38 -35
  222. package/src/craiIndex.js +180 -0
  223. package/src/cramFile/codecs/_base.js +49 -0
  224. package/src/cramFile/codecs/beta.js +23 -0
  225. package/src/cramFile/codecs/byteArrayLength.js +55 -0
  226. package/src/cramFile/codecs/byteArrayStop.js +50 -0
  227. package/src/cramFile/codecs/external.js +54 -0
  228. package/src/cramFile/codecs/gamma.js +30 -0
  229. package/src/cramFile/codecs/huffman.js +137 -0
  230. package/src/cramFile/codecs/index.js +38 -0
  231. package/src/cramFile/codecs/subexp.js +32 -0
  232. package/src/cramFile/constants.js +55 -0
  233. package/src/cramFile/container/compressionScheme.js +144 -0
  234. package/src/cramFile/container/index.js +119 -0
  235. package/src/cramFile/file.js +347 -0
  236. package/src/cramFile/index.js +3 -0
  237. package/src/cramFile/record.js +337 -0
  238. package/src/cramFile/sectionParsers.js +379 -0
  239. package/src/cramFile/slice/decodeRecord.js +362 -0
  240. package/src/cramFile/slice/index.js +497 -0
  241. package/src/cramFile/util.js +169 -0
  242. package/src/errors.js +22 -0
  243. package/src/index.js +5 -0
  244. package/src/indexedCramFile.js +191 -0
  245. package/src/io/bufferCache.js +66 -0
  246. package/src/io/index.js +26 -0
  247. package/src/io/localFile.js +35 -0
  248. package/src/io/remoteFile.js +71 -0
  249. package/src/rans/README.md +1 -0
  250. package/src/rans/constants.js +5 -0
  251. package/src/rans/d04.js +83 -0
  252. package/src/rans/d14.js +59 -0
  253. package/src/rans/decoding.js +141 -0
  254. package/src/rans/frequencies.js +121 -0
  255. package/src/rans/index.js +249 -0
  256. package/src/sam.js +15 -0
  257. package/src/unzip-pako.ts +5 -0
  258. package/src/unzip.ts +2 -0
@@ -0,0 +1,118 @@
1
+ import { CramMalformedError } from '../errors';
2
+ import { RANS_BYTE_L } from './constants';
3
+ class FC {
4
+ // int F, C;
5
+ constructor() {
6
+ this.F = undefined;
7
+ this.C = undefined;
8
+ }
9
+ }
10
+ class AriDecoder {
11
+ // final FC[] fc = new FC[256];
12
+ // byte[] R;
13
+ constructor() {
14
+ this.fc = new Array(256);
15
+ for (let i = 0; i < this.fc.length; i += 1) {
16
+ this.fc[i] = new FC();
17
+ }
18
+ this.R = null;
19
+ }
20
+ }
21
+ class Symbol {
22
+ // int start; // Start of range.
23
+ // int freq; // Symbol frequency.
24
+ constructor() {
25
+ this.start = undefined;
26
+ this.freq = undefined;
27
+ }
28
+ }
29
+ // Initialize a decoder symbol to start "start" and frequency "freq"
30
+ function symbolInit(sym, start, freq) {
31
+ if (!(start <= 1 << 16)) {
32
+ throw new CramMalformedError(`assertion failed: start <= 1<<16`);
33
+ }
34
+ if (!(freq <= (1 << 16) - start)) {
35
+ throw new CramMalformedError(`assertion failed: freq <= 1<<16`);
36
+ }
37
+ sym.start = start;
38
+ sym.freq = freq;
39
+ }
40
+ // Advances in the bit stream by "popping" a single symbol with range start
41
+ // "start" and frequency "freq". All frequencies are assumed to sum to
42
+ // "1 << scaleBits".
43
+ // No renormalization or output happens.
44
+ /* private static int */ function advanceStep(
45
+ /* final int */ r,
46
+ /* final int */ start,
47
+ /* final int */ freq,
48
+ /* final int */ scaleBits) {
49
+ /* final int */ const mask = (1 << scaleBits) - 1;
50
+ // s, x = D(x)
51
+ return freq * (r >> scaleBits) + (r & mask) - start;
52
+ }
53
+ // Equivalent to RansDecAdvanceStep that takes a symbol.
54
+ /* static int */ function advanceSymbolStep(
55
+ /* final int */ r,
56
+ /* final RansDecSymbol */ sym,
57
+ /* final int */ scaleBits) {
58
+ return advanceStep(r, sym.start, sym.freq, scaleBits);
59
+ }
60
+ // Returns the current cumulative frequency (map it to a symbol yourself!)
61
+ /* static int */ function get(/* final int */ r, /* final int */ scaleBits) {
62
+ return r & ((1 << scaleBits) - 1);
63
+ }
64
+ // Advances in the bit stream by "popping" a single symbol with range start
65
+ // "start" and frequency "freq". All frequencies are assumed to sum to
66
+ // "1 << scaleBits",
67
+ // and the resulting bytes get written to ptr (which is updated).
68
+ /* private static int */ function advance(
69
+ /* int */ r,
70
+ /* final ByteBuffer */ pptr,
71
+ /* final int */ start,
72
+ /* final int */ freq,
73
+ /* final int */ scaleBits) {
74
+ /* final int */ const mask = (1 << scaleBits) - 1;
75
+ // s, x = D(x)
76
+ r = freq * (r >> scaleBits) + (r & mask) - start;
77
+ // re-normalize
78
+ if (r < RANS_BYTE_L) {
79
+ do {
80
+ /* final int */ const b = 0xff & pptr.get();
81
+ r = (r << 8) | b;
82
+ } while (r < RANS_BYTE_L);
83
+ }
84
+ return r;
85
+ }
86
+ // Equivalent to RansDecAdvance that takes a symbol.
87
+ /* static int */ function advanceSymbol(
88
+ /* final int */ r,
89
+ /* final ByteBuffer */ pptr,
90
+ /* final RansDecSymbol */ sym,
91
+ /* final int */ scaleBits) {
92
+ return advance(r, pptr, sym.start, sym.freq, scaleBits);
93
+ }
94
+ // Re-normalize.
95
+ /* static int */ function renormalize(
96
+ /* int */ r,
97
+ /* final ByteBuffer */ pptr) {
98
+ // re-normalize
99
+ if (r < RANS_BYTE_L) {
100
+ do {
101
+ r = (r << 8) | (0xff & pptr.get());
102
+ } while (r < RANS_BYTE_L);
103
+ }
104
+ return r;
105
+ }
106
+ const Decode = {
107
+ FC,
108
+ AriDecoder,
109
+ Symbol,
110
+ symbolInit,
111
+ advanceStep,
112
+ advanceSymbolStep,
113
+ get,
114
+ advanceSymbol,
115
+ renormalize,
116
+ };
117
+ export default Decode;
118
+ //# sourceMappingURL=decoding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decoding.js","sourceRoot":"","sources":["../../src/rans/decoding.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,MAAM,EAAE;IACN,YAAY;IACZ;QACE,IAAI,CAAC,CAAC,GAAG,SAAS,CAAA;QAClB,IAAI,CAAC,CAAC,GAAG,SAAS,CAAA;IACpB,CAAC;CACF;AAED,MAAM,UAAU;IACd,+BAA+B;IAC/B,YAAY;IAEZ;QACE,IAAI,CAAC,EAAE,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAC1C,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAA;SACtB;QACD,IAAI,CAAC,CAAC,GAAG,IAAI,CAAA;IACf,CAAC;CACF;AAED,MAAM,MAAM;IACV,gCAAgC;IAChC,iCAAiC;IACjC;QACE,IAAI,CAAC,KAAK,GAAG,SAAS,CAAA;QACtB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAA;IACvB,CAAC;CACF;AAED,oEAAoE;AACpE,SAAS,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI;IAClC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE;QACvB,MAAM,IAAI,kBAAkB,CAAC,kCAAkC,CAAC,CAAA;KACjE;IACD,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE;QAChC,MAAM,IAAI,kBAAkB,CAAC,iCAAiC,CAAC,CAAA;KAChE;IACD,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;IACjB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAA;AACjB,CAAC;AAED,2EAA2E;AAC3E,sEAAsE;AACtE,oBAAoB;AACpB,wCAAwC;AACxC,wBAAwB,CAAC,SAAS,WAAW;AAC3C,eAAe,CAAC,CAAC;AACjB,eAAe,CAAC,KAAK;AACrB,eAAe,CAAC,IAAI;AACpB,eAAe,CAAC,SAAS;IAEzB,eAAe,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAA;IAEjD,cAAc;IACd,OAAO,IAAI,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAA;AACrD,CAAC;AAED,wDAAwD;AACxD,iBAAiB,CAAC,SAAS,iBAAiB;AAC1C,eAAe,CAAC,CAAC;AACjB,yBAAyB,CAAC,GAAG;AAC7B,eAAe,CAAC,SAAS;IAEzB,OAAO,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;AACvD,CAAC;AAED,0EAA0E;AAC1E,gBAAgB,CAAC,SAAS,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE,eAAe,CAAC,SAAS;IACxE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;AACnC,CAAC;AAED,2EAA2E;AAC3E,sEAAsE;AACtE,oBAAoB;AACpB,iEAAiE;AACjE,wBAAwB,CAAC,SAAS,OAAO;AACvC,SAAS,CAAC,CAAC;AACX,sBAAsB,CAAC,IAAI;AAC3B,eAAe,CAAC,KAAK;AACrB,eAAe,CAAC,IAAI;AACpB,eAAe,CAAC,SAAS;IAEzB,eAAe,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAA;IAEjD,cAAc;IACd,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAA;IAEhD,eAAe;IACf,IAAI,CAAC,GAAG,WAAW,EAAE;QACnB,GAAG;YACD,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAC3C,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;SACjB,QAAQ,CAAC,GAAG,WAAW,EAAC;KAC1B;IAED,OAAO,CAAC,CAAA;AACV,CAAC;AAED,oDAAoD;AACpD,iBAAiB,CAAC,SAAS,aAAa;AACtC,eAAe,CAAC,CAAC;AACjB,sBAAsB,CAAC,IAAI;AAC3B,yBAAyB,CAAC,GAAG;AAC7B,eAAe,CAAC,SAAS;IAEzB,OAAO,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;AACzD,CAAC;AAED,gBAAgB;AAChB,iBAAiB,CAAC,SAAS,WAAW;AACpC,SAAS,CAAC,CAAC;AACX,sBAAsB,CAAC,IAAI;IAE3B,eAAe;IACf,IAAI,CAAC,GAAG,WAAW,EAAE;QACnB,GAAG;YACD,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;SACnC,QAAQ,CAAC,GAAG,WAAW,EAAC;KAC1B;IAED,OAAO,CAAC,CAAA;AACV,CAAC;AAED,MAAM,MAAM,GAAG;IACb,EAAE;IACF,UAAU;IACV,MAAM;IACN,UAAU;IACV,WAAW;IACX,iBAAiB;IACjB,GAAG;IACH,aAAa;IACb,WAAW;CACZ,CAAA;AAED,eAAe,MAAM,CAAA"}
@@ -0,0 +1,2 @@
1
+ export function readStatsO0(cp: any, decoder: any, syms: any): void;
2
+ export function readStatsO1(cp: any, D: any, syms: any): void;
@@ -0,0 +1,110 @@
1
+ import { CramMalformedError } from '../errors';
2
+ import { TOTFREQ } from './constants';
3
+ import Decoding from './decoding';
4
+ function assert(result) {
5
+ if (!result) {
6
+ throw new CramMalformedError('assertion failed');
7
+ }
8
+ }
9
+ export function readStatsO0(
10
+ /* ByteBuffer */ cp,
11
+ /* Decoding.AriDecoder */ decoder,
12
+ /* Decoding.RansDecSymbol[] */ syms) {
13
+ // Pre-compute reverse lookup of frequency.
14
+ let rle = 0;
15
+ let x = 0;
16
+ let j = cp.get() & 0xff;
17
+ do {
18
+ if (decoder.fc[j] == null) {
19
+ decoder.fc[j] = new Decoding.FC();
20
+ }
21
+ decoder.fc[j].F = cp.get() & 0xff;
22
+ if (decoder.fc[j].F >= 128) {
23
+ decoder.fc[j].F &= ~128;
24
+ decoder.fc[j].F = ((decoder.fc[j].F & 127) << 8) | (cp.get() & 0xff);
25
+ }
26
+ decoder.fc[j].C = x;
27
+ Decoding.symbolInit(syms[j], decoder.fc[j].C, decoder.fc[j].F);
28
+ /* Build reverse lookup table */
29
+ if (!decoder.R) {
30
+ decoder.R = new Array(TOTFREQ);
31
+ }
32
+ decoder.R.fill(j, x, x + decoder.fc[j].F);
33
+ x += decoder.fc[j].F;
34
+ if (rle === 0 && j + 1 === (0xff & cp.getByteAt(cp.position()))) {
35
+ j = cp.get() & 0xff;
36
+ rle = cp.get() & 0xff;
37
+ }
38
+ else if (rle !== 0) {
39
+ rle -= 1;
40
+ j += 1;
41
+ }
42
+ else {
43
+ j = cp.get() & 0xff;
44
+ }
45
+ } while (j !== 0);
46
+ assert(x < TOTFREQ);
47
+ }
48
+ export function readStatsO1(
49
+ /* ByteBuffer */ cp,
50
+ /* Decoding.AriDecoder[] */ D,
51
+ /* Decoding.RansDecSymbol[][] */ syms) {
52
+ let rlei = 0;
53
+ let i = 0xff & cp.get();
54
+ do {
55
+ let rlej = 0;
56
+ let x = 0;
57
+ let j = 0xff & cp.get();
58
+ if (D[i] == null) {
59
+ D[i] = new Decoding.AriDecoder();
60
+ }
61
+ do {
62
+ if (D[i].fc[j] == null) {
63
+ D[i].fc[j] = new Decoding.FC();
64
+ }
65
+ D[i].fc[j].F = 0xff & cp.get();
66
+ if (D[i].fc[j].F >= 128) {
67
+ D[i].fc[j].F &= ~128;
68
+ D[i].fc[j].F = ((D[i].fc[j].F & 127) << 8) | (0xff & cp.get());
69
+ }
70
+ D[i].fc[j].C = x;
71
+ if (D[i].fc[j].F === 0) {
72
+ D[i].fc[j].F = TOTFREQ;
73
+ }
74
+ if (syms[i][j] == null) {
75
+ syms[i][j] = new Decoding.RansDecSymbol();
76
+ }
77
+ Decoding.symbolInit(syms[i][j], D[i].fc[j].C, D[i].fc[j].F);
78
+ /* Build reverse lookup table */
79
+ if (D[i].R == null) {
80
+ D[i].R = new Array(TOTFREQ);
81
+ }
82
+ D[i].R.fill(j, x, x + D[i].fc[j].F);
83
+ x += D[i].fc[j].F;
84
+ assert(x <= TOTFREQ);
85
+ if (rlej === 0 && j + 1 === (0xff & cp.getByteAt(cp.position()))) {
86
+ j = 0xff & cp.get();
87
+ rlej = 0xff & cp.get();
88
+ }
89
+ else if (rlej !== 0) {
90
+ rlej -= 1;
91
+ j += 1;
92
+ }
93
+ else {
94
+ j = 0xff & cp.get();
95
+ }
96
+ } while (j !== 0);
97
+ if (rlei === 0 && i + 1 === (0xff & cp.getByteAt(cp.position()))) {
98
+ i = 0xff & cp.get();
99
+ rlei = 0xff & cp.get();
100
+ }
101
+ else if (rlei !== 0) {
102
+ rlei -= 1;
103
+ i += 1;
104
+ }
105
+ else {
106
+ i = 0xff & cp.get();
107
+ }
108
+ } while (i !== 0);
109
+ }
110
+ //# sourceMappingURL=frequencies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frequencies.js","sourceRoot":"","sources":["../../src/rans/frequencies.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,QAAQ,MAAM,YAAY,CAAA;AAEjC,SAAS,MAAM,CAAC,MAAM;IACpB,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,kBAAkB,CAAC,kBAAkB,CAAC,CAAA;KACjD;AACH,CAAC;AAED,MAAM,UAAU,WAAW;AACzB,gBAAgB,CAAC,EAAE;AACnB,yBAAyB,CAAC,OAAO;AACjC,8BAA8B,CAAC,IAAI;IAEnC,2CAA2C;IAC3C,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA;IACvB,GAAG;QACD,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;YACzB,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAA;SAClC;QACD,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA;QACjC,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;YAC1B,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAA;YACvB,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;SACrE;QACD,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAEnB,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAE9D,gCAAgC;QAChC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE;YACd,OAAO,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;SAC/B;QACD,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAEzC,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAEpB,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE;YAC/D,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA;YACnB,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA;SACtB;aAAM,IAAI,GAAG,KAAK,CAAC,EAAE;YACpB,GAAG,IAAI,CAAC,CAAA;YACR,CAAC,IAAI,CAAC,CAAA;SACP;aAAM;YACL,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA;SACpB;KACF,QAAQ,CAAC,KAAK,CAAC,EAAC;IAEjB,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,WAAW;AACzB,gBAAgB,CAAC,EAAE;AACnB,4BAA4B,CAAC,CAAC;AAC9B,gCAAgC,CAAC,IAAI;IAErC,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,CAAA;IACvB,GAAG;QACD,IAAI,IAAI,GAAG,CAAC,CAAA;QACZ,IAAI,CAAC,GAAG,CAAC,CAAA;QACT,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,CAAA;QACvB,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;YAChB,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAA;SACjC;QACD,GAAG;YACD,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;gBACtB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAA;aAC/B;YACD,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,CAAA;YAC9B,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;gBACvB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAA;gBACpB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAA;aAC/D;YACD,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;YAEhB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;gBACtB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAA;aACvB;YAED,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;gBACtB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAA;aAC1C;YAED,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAE3D,gCAAgC;YAChC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;gBAClB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;aAC5B;YACD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAEnC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACjB,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC,CAAA;YAEpB,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE;gBAChE,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,CAAA;gBACnB,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,CAAA;aACvB;iBAAM,IAAI,IAAI,KAAK,CAAC,EAAE;gBACrB,IAAI,IAAI,CAAC,CAAA;gBACT,CAAC,IAAI,CAAC,CAAA;aACP;iBAAM;gBACL,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,CAAA;aACpB;SACF,QAAQ,CAAC,KAAK,CAAC,EAAC;QAEjB,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE;YAChE,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,CAAA;YACnB,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,CAAA;SACvB;aAAM,IAAI,IAAI,KAAK,CAAC,EAAE;YACrB,IAAI,IAAI,CAAC,CAAA;YACT,CAAC,IAAI,CAAC,CAAA;SACP;aAAM;YACL,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,CAAA;SACpB;KACF,QAAQ,CAAC,KAAK,CAAC,EAAC;AACnB,CAAC"}
@@ -0,0 +1 @@
1
+ export default function uncompress(inputBuffer: any, outputBuffer: any, initialInputPosition?: number): any;
@@ -0,0 +1,195 @@
1
+ import { CramMalformedError } from '../errors';
2
+ import Decoding from './decoding';
3
+ import { readStatsO0, readStatsO1 } from './frequencies';
4
+ import D04 from './d04';
5
+ import D14 from './d14';
6
+ // const /* int */ ORDER_BYTE_LENGTH = 1
7
+ // const /* int */ COMPRESSED_BYTE_LENGTH = 4
8
+ const /* int */ RAW_BYTE_LENGTH = 4;
9
+ // const /* int */ PREFIX_BYTE_LENGTH =
10
+ // ORDER_BYTE_LENGTH + COMPRESSED_BYTE_LENGTH + RAW_BYTE_LENGTH
11
+ // enum ORDER {
12
+ // ZERO, ONE;
13
+ // static ORDER fromInt(const /* int */ value) {
14
+ // try {
15
+ // return ORDER.values()[value];
16
+ // } catch (const ArrayIndexOutOfBoundsException e) {
17
+ // throw new RuntimeException("Unknown rANS order: " + value);
18
+ // }
19
+ // }
20
+ // }
21
+ // static ByteBuffer compress(const ByteBuffer input, const ORDER order, const ByteBuffer out) {
22
+ // if (input.remaining() == 0)
23
+ // return EMPTY_BUFFER;
24
+ // if (input.remaining() < 4)
25
+ // return encode_order0_way4(input, out);
26
+ // switch (order) {
27
+ // case ZERO:
28
+ // return encode_order0_way4(input, out);
29
+ // case ONE:
30
+ // return encode_order1_way4(input, out);
31
+ // default:
32
+ // throw new RuntimeException("Unknown rANS order: " + order);
33
+ // }
34
+ // }
35
+ // static /* ByteBuffer */ allocateIfNeeded(/* const int */ in_size,
36
+ // /* const ByteBuffer */ out_buf) {
37
+ // const /* int */ compressedSize = (/* int */) (1.05 * in_size + 257 * 257 * 3 + 4);
38
+ // if (out_buf == null)
39
+ // return ByteBuffer.allocate(compressedSize);
40
+ // if (out_buf.remaining() < compressedSize)
41
+ // throw new RuntimeException("Insufficient buffer size.");
42
+ // out_buf.order(ByteOrder.LITTLE_ENDIAN);
43
+ // return out_buf;
44
+ // }
45
+ // static ByteBuffer encode_order0_way4(const ByteBuffer input,
46
+ // ByteBuffer out_buf) {
47
+ // const /* int */ in_size = input.remaining();
48
+ // out_buf = allocateIfNeeded(in_size, out_buf);
49
+ // const /* int */ freqTableStart = PREFIX_BYTE_LENGTH;
50
+ // out_buf.position(freqTableStart);
51
+ // const /* int */[] F = Frequencies.calcFrequencies_o0(in);
52
+ // const RansEncSymbol[] syms = Frequencies.buildSyms_o0(F);
53
+ // const ByteBuffer cp = out_buf.slice();
54
+ // const /* int */ frequencyTable_size = Frequencies.writeFrequencies_o0(cp, F);
55
+ // input.rewind();
56
+ // const /* int */ compressedBlob_size = E04.compress(input, syms, cp);
57
+ // finalizeCompressed(0, out_buf, in_size, frequencyTable_size,
58
+ // compressedBlob_size);
59
+ // return out_buf;
60
+ // }
61
+ // static ByteBuffer encode_order1_way4(const ByteBuffer input,
62
+ // ByteBuffer out_buf) {
63
+ // const /* int */ in_size = input.remaining();
64
+ // out_buf = allocateIfNeeded(in_size, out_buf);
65
+ // const /* int */ freqTableStart = PREFIX_BYTE_LENGTH;
66
+ // out_buf.position(freqTableStart);
67
+ // const /* int */[][] F = Frequencies.calcFrequencies_o1(in);
68
+ // const RansEncSymbol[][] syms = Frequencies.buildSyms_o1(F);
69
+ // const ByteBuffer cp = out_buf.slice();
70
+ // const /* int */ frequencyTable_size = Frequencies.writeFrequencies_o1(cp, F);
71
+ // input.rewind();
72
+ // const /* int */ compressedBlob_size = E14.compress(input, syms, cp);
73
+ // finalizeCompressed(1, out_buf, in_size, frequencyTable_size,
74
+ // compressedBlob_size);
75
+ // return out_buf;
76
+ // }
77
+ // static void finalizeCompressed(const /* int */ order, const ByteBuffer out_buf,
78
+ // const /* int */ in_size, const /* int */ frequencyTable_size, const /* int */ compressedBlob_size) {
79
+ // out_buf.limit(PREFIX_BYTE_LENGTH + frequencyTable_size
80
+ // + compressedBlob_size);
81
+ // out_buf.put(0, (byte) order);
82
+ // out_buf.order(ByteOrder.LITTLE_ENDIAN);
83
+ // const /* int */ compressedSizeOffset = ORDER_BYTE_LENGTH;
84
+ // out_buf.putInt(compressedSizeOffset, frequencyTable_size
85
+ // + compressedBlob_size);
86
+ // const /* int */ rawSizeOffset = ORDER_BYTE_LENGTH + COMPRESSED_BYTE_LENGTH;
87
+ // out_buf.putInt(rawSizeOffset, in_size);
88
+ // out_buf.rewind();
89
+ // }
90
+ function uncompressOrder0Way4(
91
+ /* const ByteBuffer */ input,
92
+ /* const ByteBuffer */ out) {
93
+ // input.order(ByteOrder.LITTLE_ENDIAN);
94
+ const D = new Decoding.AriDecoder();
95
+ const syms = new Array(256);
96
+ for (let i = 0; i < syms.length; i += 1) {
97
+ syms[i] = new Decoding.Symbol();
98
+ }
99
+ readStatsO0(input, D, syms);
100
+ D04(input, D, syms, out);
101
+ return out;
102
+ }
103
+ function uncompressOrder1Way4(
104
+ /* const ByteBuffer */ input,
105
+ /* const ByteBuffer */ output) {
106
+ const D = new Array(256);
107
+ for (let i = 0; i < D.length; i += 1) {
108
+ D[i] = new Decoding.AriDecoder();
109
+ }
110
+ const /* Decoding.RansDecSymbol[][] */ syms = new Array(256);
111
+ for (let i = 0; i < syms.length; i += 1) {
112
+ syms[i] = new Array(256);
113
+ for (let j = 0; j < syms[i].length; j += 1) {
114
+ syms[i][j] = new Decoding.Symbol();
115
+ }
116
+ }
117
+ readStatsO1(input, D, syms);
118
+ D14(input, output, D, syms);
119
+ return output;
120
+ }
121
+ /* compat layer to make a node buffer act like a java ByteBuffer */
122
+ class ByteBuffer {
123
+ constructor(nodeBuffer, initialInputPosition = 0) {
124
+ this._buffer = nodeBuffer;
125
+ this._position = initialInputPosition;
126
+ this.length = nodeBuffer.length;
127
+ }
128
+ get() {
129
+ const b = this._buffer[this._position];
130
+ this._position += 1;
131
+ return b;
132
+ }
133
+ getByte() {
134
+ return this.get();
135
+ }
136
+ getByteAt(position) {
137
+ return this._buffer[position];
138
+ }
139
+ position() {
140
+ return this._position;
141
+ }
142
+ put(val) {
143
+ this._buffer[this._position] = val;
144
+ this._position += 1;
145
+ return val;
146
+ }
147
+ putAt(position, val) {
148
+ this._buffer[position] = val;
149
+ return val;
150
+ }
151
+ setPosition(pos) {
152
+ this._position = pos;
153
+ return pos;
154
+ }
155
+ getInt() {
156
+ const i = this._buffer.readInt32LE(this._position);
157
+ this._position += 4;
158
+ return i;
159
+ }
160
+ remaining() {
161
+ return this._buffer.length - this._position;
162
+ }
163
+ }
164
+ // static /* const */ ByteBuffer EMPTY_BUFFER = ByteBuffer.allocate(0);
165
+ export default function uncompress(inputBuffer, outputBuffer, initialInputPosition = 0) {
166
+ if (inputBuffer.length === 0) {
167
+ outputBuffer.fill(0);
168
+ return outputBuffer;
169
+ }
170
+ const input = new ByteBuffer(inputBuffer, initialInputPosition);
171
+ // input.order(ByteOrder.LITTLE_ENDIAN);
172
+ const order = input.get();
173
+ if (order !== 0 && order !== 1) {
174
+ throw new CramMalformedError(`Invalid rANS order ${order}`);
175
+ }
176
+ const /* int */ inputSize = input.getInt();
177
+ if (inputSize !== input.remaining() - RAW_BYTE_LENGTH) {
178
+ throw new CramMalformedError('Incorrect input length.');
179
+ }
180
+ const /* int */ outputSize = input.getInt();
181
+ const output = new ByteBuffer(outputBuffer || Buffer.allocUnsafe(outputSize));
182
+ // TODO output.limit(outputSize)
183
+ if (output.length < outputSize) {
184
+ throw new CramMalformedError(`Output buffer too small to fit ${outputSize} bytes.`);
185
+ }
186
+ switch (order) {
187
+ case 0:
188
+ return uncompressOrder0Way4(input, output);
189
+ case 1:
190
+ return uncompressOrder1Way4(input, output);
191
+ default:
192
+ throw new CramMalformedError(`Invalid rANS order: ${order}`);
193
+ }
194
+ }
195
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rans/index.js"],"names":[],"mappings":"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"}
package/esm/sam.d.ts ADDED
@@ -0,0 +1 @@
1
+ export function parseHeaderText(text: any): any[];
package/esm/sam.js ADDED
@@ -0,0 +1,16 @@
1
+ export function parseHeaderText(text) {
2
+ const lines = text.split(/\r?\n/);
3
+ const data = [];
4
+ lines.forEach(line => {
5
+ const [tag, ...fields] = line.split(/\t/);
6
+ const parsedFields = fields.map(f => {
7
+ const [fieldTag, value] = f.split(':', 2);
8
+ return { tag: fieldTag, value };
9
+ });
10
+ if (tag) {
11
+ data.push({ tag: tag.substr(1), data: parsedFields });
12
+ }
13
+ });
14
+ return data;
15
+ }
16
+ //# sourceMappingURL=sam.js.map
package/esm/sam.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sam.js","sourceRoot":"","sources":["../src/sam.js"],"names":[],"mappings":"AAAA,MAAM,UAAU,eAAe,CAAC,IAAI;IAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACjC,MAAM,IAAI,GAAG,EAAE,CAAA;IACf,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACnB,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACzC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAClC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;YACzC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;QACjC,CAAC,CAAC,CAAA;QACF,IAAI,GAAG,EAAE;YACP,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAA;SACtD;IACH,CAAC,CAAC,CAAA;IACF,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -0,0 +1,2 @@
1
+ /// <reference types="node" />
2
+ export declare function unzip(input: Buffer): Buffer;
@@ -0,0 +1,5 @@
1
+ import { inflate } from 'pako';
2
+ export function unzip(input) {
3
+ return Buffer.from(inflate(input));
4
+ }
5
+ //# sourceMappingURL=unzip-pako.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unzip-pako.js","sourceRoot":"","sources":["../src/unzip-pako.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAE9B,MAAM,UAAU,KAAK,CAAC,KAAa;IACjC,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;AACpC,CAAC"}
package/esm/unzip.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ import { gunzipSync } from 'zlib';
2
+ export { gunzipSync as unzip };
package/esm/unzip.js ADDED
@@ -0,0 +1,3 @@
1
+ import { gunzipSync } from 'zlib';
2
+ export { gunzipSync as unzip };
3
+ //# sourceMappingURL=unzip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unzip.js","sourceRoot":"","sources":["../src/unzip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AACjC,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,CAAA"}
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "@gmod/cram",
3
- "version": "1.5.9",
3
+ "version": "1.6.2",
4
4
  "description": "read CRAM files with pure Javascript",
5
5
  "license": "MIT",
6
6
  "repository": "GMOD/cram-js",
7
7
  "main": "dist/index.js",
8
+ "module": "esm/index.js",
8
9
  "author": {
9
10
  "name": "Robert Buels",
10
11
  "email": "rbuels@gmail.com",
@@ -15,26 +16,23 @@
15
16
  },
16
17
  "files": [
17
18
  "errors.js",
18
- "dist"
19
+ "src",
20
+ "dist",
21
+ "esm"
19
22
  ],
20
23
  "scripts": {
21
- "test": "node ./node_modules/.bin/mocha",
22
- "coverage": "rm -rf coverage; nyc ./node_modules/.bin/mocha; nyc report --reporter=lcov",
24
+ "test": "jest",
23
25
  "lint": "eslint src test",
24
26
  "docs": "documentation readme --shallow src/indexedCramFile.js --section=IndexedCramFile; documentation readme --shallow src/cramFile/file.js --section=CramFile; documentation readme --shallow src/craiIndex.js --section=CraiIndex; documentation readme --shallow errors.js '--section=Exception Classes'; documentation readme --shallow src/cramFile/file.js --section=CramFile; documentation readme --shallow src/cramFile/record.js --section=CramRecord",
25
- "clean": "rimraf dist",
26
27
  "prebuild": "npm run clean",
27
- "build": "babel src -d dist && webpack",
28
- "built-tests": "rm -rf built-tests; mkdir built-tests; ln -s ../test/data built-tests/data; babel test/*.js -d built-tests; babel test/lib/*.js -d built-tests/lib;babel test/lib/fasta/*.js -d built-tests/lib/fasta;node ./node_modules/.bin/mocha built-tests",
29
- "watch": "npm-watch",
28
+ "clean": "rimraf dist esm",
29
+ "build:esm": "tsc --target es2018 --outDir esm",
30
+ "build:es5": "tsc --target es5 --outDir dist",
31
+ "build": "npm run build:esm && npm run build:es5",
32
+ "postbuild": "webpack",
30
33
  "prepublishOnly": "npm test && npm run build && cp dist/errors.js errors.js",
31
34
  "postpublish": "rm errors.js",
32
- "postversion": "git push origin master --follow-tags"
33
- },
34
- "watch": {
35
- "test": "{src,test}/*.js",
36
- "lint": "{src,test}/*.js",
37
- "build": "src"
35
+ "postversion": "git push --follow-tags"
38
36
  },
39
37
  "keywords": [
40
38
  "cram",
@@ -43,41 +41,46 @@
43
41
  "biojs"
44
42
  ],
45
43
  "dependencies": {
46
- "@babel/runtime-corejs3": "^7.4.5",
47
44
  "@gmod/binary-parser": "^1.3.5",
45
+ "@jkbonfield/htscodecs": "^0.5.1",
48
46
  "abortable-promise-cache": "^1.2.0",
49
47
  "buffer-crc32": "^0.2.13",
48
+ "bzip2": "^0.1.1",
50
49
  "cross-fetch": "^3.0.0",
51
50
  "es6-promisify": "^6.0.1",
52
51
  "long": "^4.0.0",
53
52
  "md5": "^2.2.1",
53
+ "pako": "^1.0.4",
54
54
  "quick-lru": "^2.0.0"
55
55
  },
56
56
  "devDependencies": {
57
- "@babel/cli": "^7.4.4",
58
- "@babel/core": "^7.4.5",
59
- "@babel/plugin-transform-runtime": "^7.4.4",
60
- "@babel/preset-env": "^7.4.5",
61
- "chai": "^4.1.2",
62
- "documentation": "^9.1.1",
63
- "eslint": "^5.12.0",
64
- "eslint-config-airbnb-base": "^13.1.0",
65
- "eslint-config-prettier": "^4.1.0",
66
- "eslint-plugin-import": "^2.2.0",
67
- "eslint-plugin-prettier": "^3.0.1",
68
- "get-stream": "^4.1.0",
69
- "glob": "^7.1.2",
70
- "imports-loader": "^0.8.0",
71
- "mocha": "^6.0.0",
72
- "mock-fs": "^4.12.0",
73
- "npm-watch": "^0.5.0",
74
- "nyc": "^13.0.0",
75
- "prettier": "^1.10.2",
76
- "rimraf": "^2.6.1",
57
+ "@gmod/indexedfasta": "^2.0.2",
58
+ "@types/jest": "^27.4.0",
59
+ "@types/pako": "^1.0.3",
60
+ "@typescript-eslint/eslint-plugin": "^5.9.1",
61
+ "@typescript-eslint/parser": "^5.9.1",
62
+ "documentation": "^13.2.5",
63
+ "eslint": "^7.0.0",
64
+ "eslint-config-prettier": "^8.3.0",
65
+ "eslint-plugin-import": "^2.25.4",
66
+ "eslint-plugin-prettier": "^4.0.0",
67
+ "glob": "^7.2.0",
68
+ "jest": "^27.4.7",
69
+ "mock-fs": "^5.1.2",
70
+ "prettier": "^2.5.1",
71
+ "rimraf": "^3.0.2",
72
+ "ts-jest": "^27.1.2",
73
+ "typescript": "^4.5.4",
77
74
  "webpack": "4",
78
75
  "webpack-cli": "^3.2.1"
79
76
  },
80
77
  "publishConfig": {
81
78
  "access": "public"
79
+ },
80
+ "browser": {
81
+ "./dist/io/localFile.js": false,
82
+ "./esm/io/localFile.js": false,
83
+ "./esm/unzip.js": "./esm/unzip-pako.js",
84
+ "./dist/unzip.js": "./dist/unzip-pako.js"
82
85
  }
83
86
  }