@gmod/cram 3.0.6 → 4.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 (248) hide show
  1. package/dist/craiIndex.js +70 -87
  2. package/dist/craiIndex.js.map +1 -1
  3. package/dist/cram-bundle.js +1 -1
  4. package/dist/cramFile/codecs/_base.d.ts +1 -1
  5. package/dist/cramFile/codecs/beta.d.ts +2 -2
  6. package/dist/cramFile/codecs/beta.js +1 -1
  7. package/dist/cramFile/codecs/beta.js.map +1 -1
  8. package/dist/cramFile/codecs/byteArrayLength.d.ts +2 -2
  9. package/dist/cramFile/codecs/byteArrayStop.d.ts +4 -4
  10. package/dist/cramFile/codecs/byteArrayStop.js +1 -1
  11. package/dist/cramFile/codecs/byteArrayStop.js.map +1 -1
  12. package/dist/cramFile/codecs/external.d.ts +1 -1
  13. package/dist/cramFile/codecs/external.js +1 -1
  14. package/dist/cramFile/codecs/external.js.map +1 -1
  15. package/dist/cramFile/codecs/gamma.d.ts +1 -1
  16. package/dist/cramFile/codecs/gamma.js +1 -1
  17. package/dist/cramFile/codecs/gamma.js.map +1 -1
  18. package/dist/cramFile/codecs/getBits.d.ts +1 -1
  19. package/dist/cramFile/codecs/getBits.js.map +1 -1
  20. package/dist/cramFile/codecs/huffman.d.ts +1 -1
  21. package/dist/cramFile/codecs/huffman.js +1 -1
  22. package/dist/cramFile/codecs/huffman.js.map +1 -1
  23. package/dist/cramFile/codecs/index.d.ts +1 -1
  24. package/dist/cramFile/codecs/index.js +5 -5
  25. package/dist/cramFile/codecs/index.js.map +1 -1
  26. package/dist/cramFile/codecs/subexp.d.ts +2 -2
  27. package/dist/cramFile/codecs/subexp.js +1 -1
  28. package/dist/cramFile/codecs/subexp.js.map +1 -1
  29. package/dist/cramFile/container/compressionScheme.d.ts +2 -2
  30. package/dist/cramFile/container/compressionScheme.js +1 -1
  31. package/dist/cramFile/container/compressionScheme.js.map +1 -1
  32. package/dist/cramFile/container/index.d.ts +1 -2
  33. package/dist/cramFile/container/index.js +62 -79
  34. package/dist/cramFile/container/index.js.map +1 -1
  35. package/dist/cramFile/file.d.ts +9 -13
  36. package/dist/cramFile/file.js +218 -249
  37. package/dist/cramFile/file.js.map +1 -1
  38. package/dist/cramFile/record.js +2 -2
  39. package/dist/cramFile/record.js.map +1 -1
  40. package/dist/cramFile/sectionParsers.d.ts +16 -16
  41. package/dist/cramFile/sectionParsers.js +12 -9
  42. package/dist/cramFile/sectionParsers.js.map +1 -1
  43. package/dist/cramFile/slice/decodeRecord.d.ts +3 -3
  44. package/dist/cramFile/slice/decodeRecord.js +11 -11
  45. package/dist/cramFile/slice/decodeRecord.js.map +1 -1
  46. package/dist/cramFile/slice/index.d.ts +2 -2
  47. package/dist/cramFile/slice/index.js +241 -262
  48. package/dist/cramFile/slice/index.js.map +1 -1
  49. package/dist/cramFile/util.d.ts +4 -2
  50. package/dist/cramFile/util.js +29 -6
  51. package/dist/cramFile/util.js.map +1 -1
  52. package/dist/htscodecs/arith_gen.d.ts +18 -0
  53. package/dist/htscodecs/arith_gen.js +318 -0
  54. package/dist/htscodecs/arith_gen.js.map +1 -0
  55. package/dist/htscodecs/arith_sh.d.ts +16 -0
  56. package/dist/htscodecs/arith_sh.js +128 -0
  57. package/dist/htscodecs/arith_sh.js.map +1 -0
  58. package/dist/htscodecs/byte_model.d.ts +11 -0
  59. package/dist/htscodecs/byte_model.js +113 -0
  60. package/dist/htscodecs/byte_model.js.map +1 -0
  61. package/dist/htscodecs/fqzcomp.d.ts +1 -0
  62. package/dist/htscodecs/fqzcomp.js +325 -0
  63. package/dist/htscodecs/fqzcomp.js.map +1 -0
  64. package/dist/htscodecs/index.d.ts +5 -0
  65. package/dist/htscodecs/index.js +70 -0
  66. package/dist/htscodecs/index.js.map +1 -0
  67. package/dist/htscodecs/iostream.d.ts +27 -0
  68. package/dist/htscodecs/iostream.js +243 -0
  69. package/dist/htscodecs/iostream.js.map +1 -0
  70. package/dist/htscodecs/rans.d.ts +1 -0
  71. package/dist/htscodecs/rans.js +213 -0
  72. package/dist/htscodecs/rans.js.map +1 -0
  73. package/dist/htscodecs/rans4x16.d.ts +1 -0
  74. package/dist/htscodecs/rans4x16.js +405 -0
  75. package/dist/htscodecs/rans4x16.js.map +1 -0
  76. package/dist/htscodecs/tok3.d.ts +2 -0
  77. package/dist/htscodecs/tok3.js +363 -0
  78. package/dist/htscodecs/tok3.js.map +1 -0
  79. package/dist/index.d.ts +1 -1
  80. package/dist/index.js +2 -2
  81. package/dist/index.js.map +1 -1
  82. package/dist/indexedCramFile.d.ts +4 -4
  83. package/dist/indexedCramFile.js +97 -108
  84. package/dist/indexedCramFile.js.map +1 -1
  85. package/dist/io/index.d.ts +2 -2
  86. package/dist/io/index.js +6 -6
  87. package/dist/io/index.js.map +1 -1
  88. package/dist/rans/constants.d.ts +1 -1
  89. package/dist/rans/constants.js +1 -1
  90. package/dist/rans/constants.js.map +1 -1
  91. package/dist/rans/d04.js.map +1 -1
  92. package/dist/rans/decoding.js.map +1 -1
  93. package/dist/rans/frequencies.js.map +1 -1
  94. package/dist/rans/index.js +5 -5
  95. package/dist/rans/index.js.map +1 -1
  96. package/dist/unzip.d.ts +1 -1
  97. package/dist/unzip.js +5 -3
  98. package/dist/unzip.js.map +1 -1
  99. package/esm/craiIndex.js +10 -12
  100. package/esm/craiIndex.js.map +1 -1
  101. package/esm/cramFile/codecs/_base.d.ts +1 -1
  102. package/esm/cramFile/codecs/beta.d.ts +2 -2
  103. package/esm/cramFile/codecs/beta.js +1 -1
  104. package/esm/cramFile/codecs/beta.js.map +1 -1
  105. package/esm/cramFile/codecs/byteArrayLength.d.ts +2 -2
  106. package/esm/cramFile/codecs/byteArrayStop.d.ts +4 -4
  107. package/esm/cramFile/codecs/byteArrayStop.js +1 -1
  108. package/esm/cramFile/codecs/byteArrayStop.js.map +1 -1
  109. package/esm/cramFile/codecs/external.d.ts +1 -1
  110. package/esm/cramFile/codecs/external.js +1 -1
  111. package/esm/cramFile/codecs/external.js.map +1 -1
  112. package/esm/cramFile/codecs/gamma.d.ts +1 -1
  113. package/esm/cramFile/codecs/gamma.js +1 -1
  114. package/esm/cramFile/codecs/gamma.js.map +1 -1
  115. package/esm/cramFile/codecs/getBits.d.ts +1 -1
  116. package/esm/cramFile/codecs/getBits.js.map +1 -1
  117. package/esm/cramFile/codecs/huffman.d.ts +1 -1
  118. package/esm/cramFile/codecs/huffman.js +1 -1
  119. package/esm/cramFile/codecs/huffman.js.map +1 -1
  120. package/esm/cramFile/codecs/index.d.ts +1 -1
  121. package/esm/cramFile/codecs/index.js +5 -5
  122. package/esm/cramFile/codecs/index.js.map +1 -1
  123. package/esm/cramFile/codecs/subexp.d.ts +2 -2
  124. package/esm/cramFile/codecs/subexp.js +1 -1
  125. package/esm/cramFile/codecs/subexp.js.map +1 -1
  126. package/esm/cramFile/container/compressionScheme.d.ts +2 -2
  127. package/esm/cramFile/container/compressionScheme.js +1 -1
  128. package/esm/cramFile/container/compressionScheme.js.map +1 -1
  129. package/esm/cramFile/container/index.d.ts +1 -2
  130. package/esm/cramFile/container/index.js +4 -7
  131. package/esm/cramFile/container/index.js.map +1 -1
  132. package/esm/cramFile/file.d.ts +9 -13
  133. package/esm/cramFile/file.js +54 -61
  134. package/esm/cramFile/file.js.map +1 -1
  135. package/esm/cramFile/record.js +2 -2
  136. package/esm/cramFile/record.js.map +1 -1
  137. package/esm/cramFile/sectionParsers.d.ts +16 -16
  138. package/esm/cramFile/sectionParsers.js +7 -7
  139. package/esm/cramFile/sectionParsers.js.map +1 -1
  140. package/esm/cramFile/slice/decodeRecord.d.ts +3 -3
  141. package/esm/cramFile/slice/decodeRecord.js +11 -11
  142. package/esm/cramFile/slice/decodeRecord.js.map +1 -1
  143. package/esm/cramFile/slice/index.d.ts +2 -2
  144. package/esm/cramFile/slice/index.js +7 -6
  145. package/esm/cramFile/slice/index.js.map +1 -1
  146. package/esm/cramFile/util.d.ts +4 -2
  147. package/esm/cramFile/util.js +19 -2
  148. package/esm/cramFile/util.js.map +1 -1
  149. package/esm/htscodecs/arith_gen.d.ts +18 -0
  150. package/esm/htscodecs/arith_gen.js +318 -0
  151. package/esm/htscodecs/arith_gen.js.map +1 -0
  152. package/esm/htscodecs/arith_sh.d.ts +16 -0
  153. package/esm/htscodecs/arith_sh.js +128 -0
  154. package/esm/htscodecs/arith_sh.js.map +1 -0
  155. package/esm/htscodecs/byte_model.d.ts +11 -0
  156. package/esm/htscodecs/byte_model.js +113 -0
  157. package/esm/htscodecs/byte_model.js.map +1 -0
  158. package/esm/htscodecs/fqzcomp.d.ts +1 -0
  159. package/esm/htscodecs/fqzcomp.js +325 -0
  160. package/esm/htscodecs/fqzcomp.js.map +1 -0
  161. package/esm/htscodecs/index.d.ts +5 -0
  162. package/esm/htscodecs/index.js +70 -0
  163. package/esm/htscodecs/index.js.map +1 -0
  164. package/esm/htscodecs/iostream.d.ts +27 -0
  165. package/esm/htscodecs/iostream.js +243 -0
  166. package/esm/htscodecs/iostream.js.map +1 -0
  167. package/esm/htscodecs/rans.d.ts +1 -0
  168. package/esm/htscodecs/rans.js +213 -0
  169. package/esm/htscodecs/rans.js.map +1 -0
  170. package/esm/htscodecs/rans4x16.d.ts +1 -0
  171. package/esm/htscodecs/rans4x16.js +405 -0
  172. package/esm/htscodecs/rans4x16.js.map +1 -0
  173. package/esm/htscodecs/tok3.d.ts +2 -0
  174. package/esm/htscodecs/tok3.js +363 -0
  175. package/esm/htscodecs/tok3.js.map +1 -0
  176. package/esm/index.d.ts +1 -1
  177. package/esm/index.js +1 -1
  178. package/esm/index.js.map +1 -1
  179. package/esm/indexedCramFile.d.ts +4 -4
  180. package/esm/indexedCramFile.js +10 -10
  181. package/esm/indexedCramFile.js.map +1 -1
  182. package/esm/io/index.d.ts +2 -2
  183. package/esm/io/index.js +1 -1
  184. package/esm/io/index.js.map +1 -1
  185. package/esm/rans/constants.d.ts +1 -1
  186. package/esm/rans/constants.js +1 -1
  187. package/esm/rans/constants.js.map +1 -1
  188. package/esm/rans/d04.js.map +1 -1
  189. package/esm/rans/decoding.js.map +1 -1
  190. package/esm/rans/frequencies.js.map +1 -1
  191. package/esm/rans/index.js +5 -5
  192. package/esm/rans/index.js.map +1 -1
  193. package/esm/unzip.d.ts +1 -1
  194. package/esm/unzip.js +4 -1
  195. package/esm/unzip.js.map +1 -1
  196. package/package.json +7 -10
  197. package/src/craiIndex.ts +17 -16
  198. package/src/cramFile/codecs/_base.ts +1 -1
  199. package/src/cramFile/codecs/beta.ts +3 -3
  200. package/src/cramFile/codecs/byteArrayLength.ts +1 -1
  201. package/src/cramFile/codecs/byteArrayStop.ts +3 -4
  202. package/src/cramFile/codecs/external.ts +3 -3
  203. package/src/cramFile/codecs/gamma.ts +2 -2
  204. package/src/cramFile/codecs/getBits.ts +1 -1
  205. package/src/cramFile/codecs/huffman.ts +2 -3
  206. package/src/cramFile/codecs/index.ts +7 -8
  207. package/src/cramFile/codecs/subexp.ts +3 -3
  208. package/src/cramFile/container/compressionScheme.ts +3 -3
  209. package/src/cramFile/container/index.ts +7 -10
  210. package/src/cramFile/file.ts +78 -86
  211. package/src/cramFile/record.ts +3 -3
  212. package/src/cramFile/sectionParsers.ts +27 -22
  213. package/src/cramFile/slice/decodeRecord.ts +17 -17
  214. package/src/cramFile/slice/index.ts +8 -9
  215. package/src/cramFile/util.ts +24 -6
  216. package/src/htscodecs/arith_gen.js +344 -0
  217. package/src/htscodecs/arith_sh.js +138 -0
  218. package/src/htscodecs/byte_model.js +126 -0
  219. package/src/htscodecs/fqzcomp.js +360 -0
  220. package/src/htscodecs/index.js +77 -0
  221. package/src/htscodecs/iostream.js +257 -0
  222. package/src/htscodecs/rans.js +233 -0
  223. package/src/htscodecs/rans4x16.js +452 -0
  224. package/src/htscodecs/tok3.js +413 -0
  225. package/src/index.ts +1 -1
  226. package/src/indexedCramFile.ts +6 -5
  227. package/src/io/index.ts +5 -4
  228. package/src/rans/constants.ts +1 -1
  229. package/src/rans/d04.ts +0 -1
  230. package/src/rans/decoding.ts +0 -1
  231. package/src/rans/frequencies.ts +0 -1
  232. package/src/rans/index.ts +5 -7
  233. package/src/unzip.ts +5 -1
  234. package/dist/cramFile/filehandle.d.ts +0 -1
  235. package/dist/cramFile/filehandle.js +0 -3
  236. package/dist/cramFile/filehandle.js.map +0 -1
  237. package/dist/unzip-pako.d.ts +0 -2
  238. package/dist/unzip-pako.js +0 -9
  239. package/dist/unzip-pako.js.map +0 -1
  240. package/esm/cramFile/filehandle.d.ts +0 -1
  241. package/esm/cramFile/filehandle.js +0 -2
  242. package/esm/cramFile/filehandle.js.map +0 -1
  243. package/esm/unzip-pako.d.ts +0 -2
  244. package/esm/unzip-pako.js +0 -6
  245. package/esm/unzip-pako.js.map +0 -1
  246. package/src/cramFile/filehandle.ts +0 -1
  247. package/src/typings/htscodecs.d.ts +0 -6
  248. package/src/unzip-pako.ts +0 -6
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rans/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rans/index.ts"],"names":[],"mappings":"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"}
package/esm/unzip.d.ts CHANGED
@@ -1 +1 @@
1
- export { gunzipSync as unzip } from 'zlib';
1
+ export declare function unzip(input: Uint8Array): Uint8Array<ArrayBufferLike>;
package/esm/unzip.js CHANGED
@@ -1,2 +1,5 @@
1
- export { gunzipSync as unzip } from 'zlib';
1
+ import { inflate } from 'pako';
2
+ export function unzip(input) {
3
+ return inflate(input);
4
+ }
2
5
  //# sourceMappingURL=unzip.js.map
package/esm/unzip.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"unzip.js","sourceRoot":"","sources":["../src/unzip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,MAAM,CAAA"}
1
+ {"version":3,"file":"unzip.js","sourceRoot":"","sources":["../src/unzip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAE9B,MAAM,UAAU,KAAK,CAAC,KAAiB;IACrC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAA;AACvB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gmod/cram",
3
- "version": "3.0.6",
3
+ "version": "4.0.0",
4
4
  "description": "read CRAM files with pure Javascript",
5
5
  "license": "MIT",
6
6
  "repository": "GMOD/cram-js",
@@ -27,8 +27,8 @@
27
27
  "docs": "documentation readme --shallow src/indexedCramFile.ts --section=IndexedCramFile; documentation readme --shallow src/cramFile/file.ts --section=CramFile; documentation readme --shallow src/craiIndex.ts --section=CraiIndex; documentation readme --shallow errors.ts '--section=Exception Classes'; documentation readme --shallow src/cramFile/file.ts --section=CramFile; documentation readme --shallow src/cramFile/record.ts --section=CramRecord",
28
28
  "prebuild": "npm run clean",
29
29
  "clean": "rimraf dist esm",
30
- "build:esm": "tsc --target es2018 --outDir esm",
31
- "build:es5": "tsc --target es2015 --module commonjs --outDir dist",
30
+ "build:esm": "tsc --outDir esm",
31
+ "build:es5": "tsc --module commonjs --outDir dist",
32
32
  "build": "npm run build:esm && npm run build:es5",
33
33
  "postbuild": "webpack",
34
34
  "prepack": "npm test run && npm run build && cp dist/errors.js errors.js",
@@ -42,9 +42,9 @@
42
42
  "biojs"
43
43
  ],
44
44
  "dependencies": {
45
- "@jkbonfield/htscodecs": "^0.5.1",
46
45
  "bzip2": "^0.1.1",
47
46
  "crc": "^4.3.2",
47
+ "generic-filehandle2": "^0.0.2",
48
48
  "long": "^4.0.0",
49
49
  "md5": "^2.2.1",
50
50
  "pako": "^1.0.4",
@@ -62,13 +62,12 @@
62
62
  "buffer": "^6.0.3",
63
63
  "documentation": "^14.0.3",
64
64
  "eslint": "^9.9.0",
65
- "eslint-config-prettier": "^9.0.0",
66
- "eslint-plugin-prettier": "^5.1.3",
65
+ "eslint-plugin-import": "^2.31.0",
67
66
  "eslint-plugin-unicorn": "^55.0.0",
68
67
  "mock-fs": "^5.2.0",
69
68
  "prettier": "^3.2.5",
70
69
  "rimraf": "^6.0.1",
71
- "typescript": "^5.0.3",
70
+ "typescript": "^5.7.0",
72
71
  "typescript-eslint": "^8.0.1",
73
72
  "vitest": "^2.0.5",
74
73
  "webpack": "^5.90.3",
@@ -79,8 +78,6 @@
79
78
  },
80
79
  "browser": {
81
80
  "./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"
81
+ "./esm/io/localFile.js": false
85
82
  }
86
83
  }
package/src/craiIndex.ts CHANGED
@@ -1,8 +1,9 @@
1
- import { unzip } from './unzip'
2
- import { open } from './io'
3
- import { CramMalformedError } from './errors'
4
1
  import { CramFileSource } from './cramFile/file'
5
- import { Filehandle } from './cramFile/filehandle'
2
+ import { CramMalformedError } from './errors'
3
+ import { open } from './io'
4
+ import { unzip } from './unzip'
5
+
6
+ import type { GenericFilehandle } from 'generic-filehandle2'
6
7
 
7
8
  const BAI_MAGIC = 21_578_050 // BAI\1
8
9
 
@@ -33,11 +34,8 @@ function addRecordToIndex(index: ParsedIndex, record: number[]) {
33
34
  })
34
35
  }
35
36
 
36
- function maybeUnzip(data: Buffer) {
37
- if (data[0] === 31 && data[1] === 139) {
38
- return unzip(data)
39
- }
40
- return data
37
+ function maybeUnzip(data: Uint8Array) {
38
+ return data[0] === 31 && data[1] === 139 ? unzip(data) : data
41
39
  }
42
40
 
43
41
  export default class CraiIndex {
@@ -50,10 +48,12 @@ export default class CraiIndex {
50
48
  // 4. Container start byte position in the file
51
49
  // 5. Slice start byte position in the container data (‘blocks’)
52
50
  // 6. Slice size in bytes
53
- // Each line represents a slice in the CRAM file. Please note that all slices must be listed in index file.
51
+ //
52
+ // Each line represents a slice in the CRAM file. Please note that all slices
53
+ // must be listed in index file.
54
54
  private parseIndexP?: Promise<ParsedIndex>
55
55
 
56
- private filehandle: Filehandle
56
+ private filehandle: GenericFilehandle
57
57
 
58
58
  /**
59
59
  *
@@ -69,18 +69,19 @@ export default class CraiIndex {
69
69
  async parseIndex() {
70
70
  const index: ParsedIndex = {}
71
71
  const uncompressedBuffer = maybeUnzip(await this.filehandle.readFile())
72
+ const dataView = new DataView(uncompressedBuffer.buffer)
72
73
  if (
73
74
  uncompressedBuffer.length > 4 &&
74
- uncompressedBuffer.readUInt32LE(0) === BAI_MAGIC
75
+ dataView.getUint32(0, true) === BAI_MAGIC
75
76
  ) {
76
77
  throw new CramMalformedError(
77
78
  'invalid .crai index file. note: file appears to be a .bai index. this is technically legal but please open a github issue if you need support',
78
79
  )
79
80
  }
80
- // interpret the text as regular ascii, since it is
81
- // supposed to be only digits and whitespace characters
82
- // this is written in a deliberately low-level fashion for performance,
83
- // because some .crai files can be pretty large.
81
+ // interpret the text as regular ascii, since it is supposed to be only
82
+ // digits and whitespace characters this is written in a deliberately
83
+ // low-level fashion for performance, because some .crai files can be
84
+ // pretty large.
84
85
  let currentRecord: number[] = []
85
86
  let currentString = ''
86
87
  for (const charCode of uncompressedBuffer) {
@@ -1,5 +1,5 @@
1
- import CramSlice from '../slice'
2
1
  import { CramFileBlock } from '../file'
2
+ import CramSlice from '../slice'
3
3
  import { DataType } from './dataSeriesTypes'
4
4
 
5
5
  export interface DataTypeMapping {
@@ -1,9 +1,9 @@
1
- import { CramUnimplementedError } from '../../errors'
2
1
  import CramCodec, { Cursors } from './_base'
3
2
  import { getBits } from './getBits'
4
- import CramSlice from '../slice'
5
- import { CramFileBlock } from '../file'
3
+ import { CramUnimplementedError } from '../../errors'
6
4
  import { BetaEncoding } from '../encoding'
5
+ import { CramFileBlock } from '../file'
6
+ import CramSlice from '../slice'
7
7
 
8
8
  export default class BetaCodec extends CramCodec<
9
9
  'int',
@@ -1,7 +1,7 @@
1
1
  import CramCodec, { Cursors } from './_base'
2
2
  import { ByteArrayLengthEncoding, CramEncoding } from '../encoding'
3
- import CramSlice from '../slice'
4
3
  import { CramFileBlock } from '../file'
4
+ import CramSlice from '../slice'
5
5
  import { DataType } from './dataSeriesTypes'
6
6
  import { tinyMemoize } from '../util'
7
7
 
@@ -1,9 +1,8 @@
1
- import { CramMalformedError } from '../../errors'
2
-
3
1
  import CramCodec, { Cursor, Cursors } from './_base'
4
- import CramSlice from '../slice'
5
- import { CramFileBlock } from '../file'
2
+ import { CramMalformedError } from '../../errors'
6
3
  import { ByteArrayStopCramEncoding } from '../encoding'
4
+ import { CramFileBlock } from '../file'
5
+ import CramSlice from '../slice'
7
6
  import { CramBufferOverrunError } from './getBits'
8
7
 
9
8
  export default class ByteArrayStopCodec extends CramCodec<
@@ -1,8 +1,8 @@
1
- import { CramMalformedError, CramUnimplementedError } from '../../errors'
2
1
  import CramCodec, { Cursor, Cursors } from './_base'
3
- import { parseItf8 } from '../util'
4
- import CramSlice from '../slice'
2
+ import { CramMalformedError, CramUnimplementedError } from '../../errors'
5
3
  import { CramFileBlock } from '../file'
4
+ import CramSlice from '../slice'
5
+ import { parseItf8 } from '../util'
6
6
  import { CramBufferOverrunError } from './getBits'
7
7
  import { ExternalCramEncoding } from '../encoding'
8
8
 
@@ -1,9 +1,9 @@
1
- import { CramUnimplementedError } from '../../errors'
2
1
  import CramCodec, { Cursors } from './_base'
3
2
  import { getBits } from './getBits'
3
+ import { CramUnimplementedError } from '../../errors'
4
4
  import { GammaEncoding } from '../encoding'
5
- import CramSlice from '../slice'
6
5
  import { CramFileBlock } from '../file'
6
+ import CramSlice from '../slice'
7
7
 
8
8
  export default class GammaCodec extends CramCodec<
9
9
  'int',
@@ -1,7 +1,7 @@
1
1
  export class CramBufferOverrunError extends Error {}
2
2
 
3
3
  export function getBits(
4
- data: Buffer,
4
+ data: Uint8Array,
5
5
  cursor: { bytePosition: number; bitPosition: number },
6
6
  numBits: number,
7
7
  ) {
@@ -1,10 +1,9 @@
1
- import { CramMalformedError } from '../../errors'
2
1
  import CramCodec, { Cursor, Cursors } from './_base'
3
2
  import { getBits } from './getBits'
3
+ import { CramMalformedError } from '../../errors'
4
4
  import { HuffmanEncoding } from '../encoding'
5
-
6
- import CramSlice from '../slice'
7
5
  import { CramFileBlock } from '../file'
6
+ import CramSlice from '../slice'
8
7
 
9
8
  function numberOfSetBits(ii: number) {
10
9
  let i = (ii - (ii >> 1)) & 0x55555555
@@ -1,15 +1,14 @@
1
- import { CramUnimplementedError } from '../../errors'
2
-
3
- import HuffmanIntCodec from './huffman'
4
- import ExternalCodec from './external'
5
- import ByteArrayStopCodec from './byteArrayStop'
6
- import ByteArrayLengthCodec from './byteArrayLength'
1
+ import CramCodec from './_base'
7
2
  import BetaCodec from './beta'
3
+ import ByteArrayLengthCodec from './byteArrayLength'
4
+ import ByteArrayStopCodec from './byteArrayStop'
5
+ import { DataType } from './dataSeriesTypes'
6
+ import ExternalCodec from './external'
8
7
  import GammaCodec from './gamma'
8
+ import HuffmanIntCodec from './huffman'
9
9
  import SubexpCodec from './subexp'
10
- import CramCodec from './_base'
10
+ import { CramUnimplementedError } from '../../errors'
11
11
  import { CramEncoding } from '../encoding'
12
- import { DataType } from './dataSeriesTypes'
13
12
 
14
13
  const codecClasses = {
15
14
  1: ExternalCodec,
@@ -1,9 +1,9 @@
1
- import { CramUnimplementedError } from '../../errors'
2
1
  import CramCodec, { Cursors } from './_base'
3
2
  import { getBits } from './getBits'
4
- import CramSlice from '../slice'
5
- import { CramFileBlock } from '../file'
3
+ import { CramUnimplementedError } from '../../errors'
6
4
  import { SubexpEncoding } from '../encoding'
5
+ import { CramFileBlock } from '../file'
6
+ import CramSlice from '../slice'
7
7
 
8
8
  export default class SubexpCodec extends CramCodec<
9
9
  'int',
@@ -1,12 +1,12 @@
1
+ import { CramMalformedError } from '../../errors'
1
2
  import { instantiateCodec } from '../codecs'
2
3
  import CramCodec from '../codecs/_base'
3
- import { CramCompressionHeader } from '../sectionParsers'
4
- import { CramEncoding } from '../encoding'
5
- import { CramMalformedError } from '../../errors'
6
4
  import {
7
5
  DataSeriesEncodingKey,
8
6
  DataSeriesEncodingMap,
9
7
  } from '../codecs/dataSeriesTypes'
8
+ import { CramEncoding } from '../encoding'
9
+ import { CramCompressionHeader } from '../sectionParsers'
10
10
 
11
11
  // the hardcoded data type to be decoded for each core
12
12
  // data field
@@ -1,8 +1,7 @@
1
- import { Buffer } from 'buffer'
2
1
  import { CramMalformedError } from '../../errors'
3
2
  // locals
4
- import { itf8Size, parseItem, tinyMemoize } from '../util'
5
3
  import CramSlice from '../slice'
4
+ import { itf8Size, parseItem, tinyMemoize } from '../util'
6
5
  import CramContainerCompressionScheme from './compressionScheme'
7
6
  import CramFile from '../file'
8
7
  import { getSectionParsers } from '../sectionParsers'
@@ -88,8 +87,10 @@ export default class CramContainer {
88
87
 
89
88
  // parse the container header. do it in 2 pieces because you cannot tell
90
89
  // how much to buffer until you read numLandmarks
91
- const bytes1 = Buffer.allocUnsafe(cramContainerHeader1.maxLength)
92
- await this.file.read(bytes1, 0, cramContainerHeader1.maxLength, position)
90
+ const bytes1 = await this.file.read(
91
+ cramContainerHeader1.maxLength,
92
+ position,
93
+ )
93
94
  const header1 = parseItem(bytes1, cramContainerHeader1.parser)
94
95
  const numLandmarksSize = itf8Size(header1.numLandmarks)
95
96
  if (position + header1.length >= fileSize) {
@@ -99,12 +100,8 @@ export default class CramContainer {
99
100
  )
100
101
  return undefined
101
102
  }
102
- const bytes2 = Buffer.allocUnsafe(
103
- cramContainerHeader2.maxLength(header1.numLandmarks),
104
- )
105
- await this.file.read(
106
- bytes2,
107
- 0,
103
+
104
+ const bytes2 = await this.file.read(
108
105
  cramContainerHeader2.maxLength(header1.numLandmarks),
109
106
  position + header1._size - numLandmarksSize,
110
107
  )