@gmod/cram 1.6.4 → 1.7.1

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 +9 -0
  2. package/dist/craiIndex.d.ts +19 -12
  3. package/dist/craiIndex.js +63 -123
  4. package/dist/craiIndex.js.map +1 -1
  5. package/dist/cram-bundle.js +2 -17
  6. package/dist/cram-bundle.js.LICENSE.txt +17 -0
  7. package/dist/cramFile/codecs/_base.d.ts +26 -5
  8. package/dist/cramFile/codecs/_base.js +3 -39
  9. package/dist/cramFile/codecs/_base.js.map +1 -1
  10. package/dist/cramFile/codecs/beta.d.ts +7 -3
  11. package/dist/cramFile/codecs/beta.js +13 -31
  12. package/dist/cramFile/codecs/beta.js.map +1 -1
  13. package/dist/cramFile/codecs/byteArrayLength.d.ts +13 -7
  14. package/dist/cramFile/codecs/byteArrayLength.js +22 -41
  15. package/dist/cramFile/codecs/byteArrayLength.js.map +1 -1
  16. package/dist/cramFile/codecs/byteArrayStop.d.ts +9 -5
  17. package/dist/cramFile/codecs/byteArrayStop.js +25 -46
  18. package/dist/cramFile/codecs/byteArrayStop.js.map +1 -1
  19. package/dist/cramFile/codecs/dataSeriesTypes.d.ts +4 -0
  20. package/dist/cramFile/codecs/dataSeriesTypes.js +3 -0
  21. package/dist/cramFile/codecs/dataSeriesTypes.js.map +1 -0
  22. package/dist/cramFile/codecs/external.d.ts +10 -6
  23. package/dist/cramFile/codecs/external.js +26 -44
  24. package/dist/cramFile/codecs/external.js.map +1 -1
  25. package/dist/cramFile/codecs/gamma.d.ts +7 -3
  26. package/dist/cramFile/codecs/gamma.js +16 -34
  27. package/dist/cramFile/codecs/gamma.js.map +1 -1
  28. package/dist/cramFile/codecs/getBits.d.ts +7 -0
  29. package/dist/cramFile/codecs/getBits.js +26 -0
  30. package/dist/cramFile/codecs/getBits.js.map +1 -0
  31. package/dist/cramFile/codecs/huffman.d.ts +17 -13
  32. package/dist/cramFile/codecs/huffman.js +76 -85
  33. package/dist/cramFile/codecs/huffman.js.map +1 -1
  34. package/dist/cramFile/codecs/index.d.ts +4 -2
  35. package/dist/cramFile/codecs/index.js +12 -13
  36. package/dist/cramFile/codecs/index.js.map +1 -1
  37. package/dist/cramFile/codecs/subexp.d.ts +7 -3
  38. package/dist/cramFile/codecs/subexp.js +19 -36
  39. package/dist/cramFile/codecs/subexp.js.map +1 -1
  40. package/dist/cramFile/constants.d.ts +35 -35
  41. package/dist/cramFile/constants.js +1 -1
  42. package/dist/cramFile/constants.js.map +1 -1
  43. package/dist/cramFile/container/compressionScheme.d.ts +57 -11
  44. package/dist/cramFile/container/compressionScheme.js +37 -32
  45. package/dist/cramFile/container/compressionScheme.js.map +1 -1
  46. package/dist/cramFile/container/index.d.ts +23 -9
  47. package/dist/cramFile/container/index.js +74 -144
  48. package/dist/cramFile/container/index.js.map +1 -1
  49. package/dist/cramFile/encoding.d.ts +78 -0
  50. package/dist/cramFile/encoding.js +3 -0
  51. package/dist/cramFile/encoding.js.map +1 -0
  52. package/dist/cramFile/file.d.ts +91 -41
  53. package/dist/cramFile/file.js +234 -368
  54. package/dist/cramFile/file.js.map +1 -1
  55. package/dist/cramFile/filehandle.d.ts +2 -0
  56. package/dist/cramFile/filehandle.js +3 -0
  57. package/dist/cramFile/filehandle.js.map +1 -0
  58. package/dist/cramFile/index.d.ts +2 -1
  59. package/dist/cramFile/index.js +4 -1
  60. package/dist/cramFile/index.js.map +1 -1
  61. package/dist/cramFile/record.d.ts +61 -17
  62. package/dist/cramFile/record.js +153 -77
  63. package/dist/cramFile/record.js.map +1 -1
  64. package/dist/cramFile/sectionParsers.d.ts +99 -8
  65. package/dist/cramFile/sectionParsers.js +70 -80
  66. package/dist/cramFile/sectionParsers.js.map +1 -1
  67. package/dist/cramFile/slice/decodeRecord.d.ts +30 -2
  68. package/dist/cramFile/slice/decodeRecord.js +148 -118
  69. package/dist/cramFile/slice/decodeRecord.js.map +1 -1
  70. package/dist/cramFile/slice/index.d.ts +21 -14
  71. package/dist/cramFile/slice/index.js +286 -381
  72. package/dist/cramFile/slice/index.js.map +1 -1
  73. package/dist/cramFile/util.d.ts +11 -5
  74. package/dist/cramFile/util.js +19 -97
  75. package/dist/cramFile/util.js.map +1 -1
  76. package/dist/errors.d.ts +5 -10
  77. package/dist/errors.js +11 -62
  78. package/dist/errors.js.map +1 -1
  79. package/dist/index.d.ts +4 -4
  80. package/dist/index.js +28 -4
  81. package/dist/index.js.map +1 -1
  82. package/dist/indexedCramFile.d.ts +37 -12
  83. package/dist/indexedCramFile.js +114 -154
  84. package/dist/indexedCramFile.js.map +1 -1
  85. package/dist/io/index.d.ts +5 -5
  86. package/dist/io/index.js +9 -9
  87. package/dist/io/index.js.map +1 -1
  88. package/dist/rans/constants.js +3 -3
  89. package/dist/rans/constants.js.map +1 -1
  90. package/dist/rans/d04.js +15 -15
  91. package/dist/rans/d04.js.map +1 -1
  92. package/dist/rans/d14.js +21 -21
  93. package/dist/rans/d14.js.map +1 -1
  94. package/dist/rans/decoding.js +27 -30
  95. package/dist/rans/decoding.js.map +1 -1
  96. package/dist/rans/frequencies.js +11 -11
  97. package/dist/rans/frequencies.js.map +1 -1
  98. package/dist/rans/index.js +46 -49
  99. package/dist/rans/index.js.map +1 -1
  100. package/dist/sam.d.ts +8 -1
  101. package/dist/sam.js +7 -7
  102. package/dist/sam.js.map +1 -1
  103. package/dist/typescript.d.ts +3 -0
  104. package/dist/typescript.js +11 -0
  105. package/dist/typescript.js.map +1 -0
  106. package/dist/unzip-pako.js +1 -1
  107. package/dist/unzip-pako.js.map +1 -1
  108. package/dist/unzip.js +1 -1
  109. package/dist/unzip.js.map +1 -1
  110. package/errors.js +11 -62
  111. package/esm/craiIndex.d.ts +19 -12
  112. package/esm/craiIndex.js +7 -23
  113. package/esm/craiIndex.js.map +1 -1
  114. package/esm/cramFile/codecs/_base.d.ts +26 -5
  115. package/esm/cramFile/codecs/_base.js +1 -35
  116. package/esm/cramFile/codecs/_base.js.map +1 -1
  117. package/esm/cramFile/codecs/beta.d.ts +7 -3
  118. package/esm/cramFile/codecs/beta.js +4 -3
  119. package/esm/cramFile/codecs/beta.js.map +1 -1
  120. package/esm/cramFile/codecs/byteArrayLength.d.ts +13 -7
  121. package/esm/cramFile/codecs/byteArrayLength.js +1 -1
  122. package/esm/cramFile/codecs/byteArrayLength.js.map +1 -1
  123. package/esm/cramFile/codecs/byteArrayStop.d.ts +9 -5
  124. package/esm/cramFile/codecs/byteArrayStop.js +7 -9
  125. package/esm/cramFile/codecs/byteArrayStop.js.map +1 -1
  126. package/esm/cramFile/codecs/dataSeriesTypes.d.ts +4 -0
  127. package/esm/cramFile/codecs/dataSeriesTypes.js +2 -0
  128. package/esm/cramFile/codecs/dataSeriesTypes.js.map +1 -0
  129. package/esm/cramFile/codecs/external.d.ts +10 -6
  130. package/esm/cramFile/codecs/external.js +4 -3
  131. package/esm/cramFile/codecs/external.js.map +1 -1
  132. package/esm/cramFile/codecs/gamma.d.ts +7 -3
  133. package/esm/cramFile/codecs/gamma.js +5 -4
  134. package/esm/cramFile/codecs/gamma.js.map +1 -1
  135. package/esm/cramFile/codecs/getBits.d.ts +7 -0
  136. package/esm/cramFile/codecs/getBits.js +21 -0
  137. package/esm/cramFile/codecs/getBits.js.map +1 -0
  138. package/esm/cramFile/codecs/huffman.d.ts +17 -13
  139. package/esm/cramFile/codecs/huffman.js +22 -9
  140. package/esm/cramFile/codecs/huffman.js.map +1 -1
  141. package/esm/cramFile/codecs/index.d.ts +4 -2
  142. package/esm/cramFile/codecs/index.js +1 -1
  143. package/esm/cramFile/codecs/index.js.map +1 -1
  144. package/esm/cramFile/codecs/subexp.d.ts +7 -3
  145. package/esm/cramFile/codecs/subexp.js +7 -5
  146. package/esm/cramFile/codecs/subexp.js.map +1 -1
  147. package/esm/cramFile/constants.d.ts +35 -35
  148. package/esm/cramFile/constants.js.map +1 -1
  149. package/esm/cramFile/container/compressionScheme.d.ts +57 -11
  150. package/esm/cramFile/container/compressionScheme.js +15 -8
  151. package/esm/cramFile/container/compressionScheme.js.map +1 -1
  152. package/esm/cramFile/container/index.d.ts +23 -9
  153. package/esm/cramFile/container/index.js +11 -9
  154. package/esm/cramFile/container/index.js.map +1 -1
  155. package/esm/cramFile/encoding.d.ts +78 -0
  156. package/esm/cramFile/encoding.js +2 -0
  157. package/esm/cramFile/encoding.js.map +1 -0
  158. package/esm/cramFile/file.d.ts +91 -41
  159. package/esm/cramFile/file.js +59 -47
  160. package/esm/cramFile/file.js.map +1 -1
  161. package/esm/cramFile/filehandle.d.ts +2 -0
  162. package/esm/cramFile/filehandle.js +2 -0
  163. package/esm/cramFile/filehandle.js.map +1 -0
  164. package/esm/cramFile/index.d.ts +2 -1
  165. package/esm/cramFile/index.js +1 -0
  166. package/esm/cramFile/index.js.map +1 -1
  167. package/esm/cramFile/record.d.ts +61 -17
  168. package/esm/cramFile/record.js +83 -5
  169. package/esm/cramFile/record.js.map +1 -1
  170. package/esm/cramFile/sectionParsers.d.ts +99 -8
  171. package/esm/cramFile/sectionParsers.js +7 -17
  172. package/esm/cramFile/sectionParsers.js.map +1 -1
  173. package/esm/cramFile/slice/decodeRecord.d.ts +30 -2
  174. package/esm/cramFile/slice/decodeRecord.js +102 -70
  175. package/esm/cramFile/slice/decodeRecord.js.map +1 -1
  176. package/esm/cramFile/slice/index.d.ts +21 -14
  177. package/esm/cramFile/slice/index.js +77 -38
  178. package/esm/cramFile/slice/index.js.map +1 -1
  179. package/esm/cramFile/util.d.ts +11 -5
  180. package/esm/cramFile/util.js +11 -82
  181. package/esm/cramFile/util.js.map +1 -1
  182. package/esm/errors.d.ts +5 -10
  183. package/esm/errors.js +0 -5
  184. package/esm/errors.js.map +1 -1
  185. package/esm/index.d.ts +4 -4
  186. package/esm/index.js +2 -2
  187. package/esm/index.js.map +1 -1
  188. package/esm/indexedCramFile.d.ts +37 -12
  189. package/esm/indexedCramFile.js +19 -8
  190. package/esm/indexedCramFile.js.map +1 -1
  191. package/esm/io/index.d.ts +5 -5
  192. package/esm/io/index.js +3 -3
  193. package/esm/io/index.js.map +1 -1
  194. package/esm/sam.d.ts +8 -1
  195. package/esm/sam.js.map +1 -1
  196. package/esm/typescript.d.ts +3 -0
  197. package/esm/typescript.js +7 -0
  198. package/esm/typescript.js.map +1 -0
  199. package/package.json +18 -11
  200. package/src/{craiIndex.js → craiIndex.ts} +36 -30
  201. package/src/cramFile/codecs/_base.ts +45 -0
  202. package/src/cramFile/codecs/beta.ts +34 -0
  203. package/src/cramFile/codecs/{byteArrayLength.js → byteArrayLength.ts} +27 -5
  204. package/src/cramFile/codecs/{byteArrayStop.js → byteArrayStop.ts} +25 -12
  205. package/src/cramFile/codecs/dataSeriesTypes.ts +39 -0
  206. package/src/cramFile/codecs/{external.js → external.ts} +28 -12
  207. package/src/cramFile/codecs/gamma.ts +42 -0
  208. package/src/cramFile/codecs/getBits.ts +28 -0
  209. package/src/cramFile/codecs/{huffman.js → huffman.ts} +48 -15
  210. package/src/cramFile/codecs/{index.js → index.ts} +9 -3
  211. package/src/cramFile/codecs/subexp.ts +45 -0
  212. package/src/cramFile/{constants.js → constants.ts} +0 -0
  213. package/src/cramFile/container/{compressionScheme.js → compressionScheme.ts} +50 -18
  214. package/src/cramFile/container/{index.js → index.ts} +13 -13
  215. package/src/cramFile/encoding.ts +98 -0
  216. package/src/cramFile/{file.js → file.ts} +136 -62
  217. package/src/cramFile/filehandle.ts +3 -0
  218. package/src/cramFile/{index.js → index.ts} +1 -0
  219. package/src/cramFile/{record.js → record.ts} +185 -14
  220. package/src/cramFile/{sectionParsers.js → sectionParsers.ts} +148 -20
  221. package/src/cramFile/slice/{decodeRecord.js → decodeRecord.ts} +158 -105
  222. package/src/cramFile/slice/{index.js → index.ts} +138 -63
  223. package/src/cramFile/{util.js → util.ts} +28 -17
  224. package/src/{errors.js → errors.ts} +0 -5
  225. package/src/index.ts +5 -0
  226. package/src/{indexedCramFile.js → indexedCramFile.ts} +79 -19
  227. package/src/io/{index.js → index.ts} +10 -5
  228. package/src/{sam.js → sam.ts} +7 -2
  229. package/src/typescript.ts +17 -0
  230. package/src/typings/binary-parser.d.ts +44 -0
  231. package/src/typings/bzip2.d.ts +7 -0
  232. package/src/typings/htscodecs.d.ts +6 -0
  233. package/dist/io/bufferCache.d.ts +0 -12
  234. package/dist/io/bufferCache.js +0 -112
  235. package/dist/io/bufferCache.js.map +0 -1
  236. package/dist/io/localFile.d.ts +0 -10
  237. package/dist/io/localFile.js +0 -108
  238. package/dist/io/localFile.js.map +0 -1
  239. package/dist/io/remoteFile.d.ts +0 -16
  240. package/dist/io/remoteFile.js +0 -143
  241. package/dist/io/remoteFile.js.map +0 -1
  242. package/esm/io/bufferCache.d.ts +0 -12
  243. package/esm/io/bufferCache.js +0 -54
  244. package/esm/io/bufferCache.js.map +0 -1
  245. package/esm/io/localFile.d.ts +0 -10
  246. package/esm/io/localFile.js +0 -31
  247. package/esm/io/localFile.js.map +0 -1
  248. package/esm/io/remoteFile.d.ts +0 -16
  249. package/esm/io/remoteFile.js +0 -64
  250. package/esm/io/remoteFile.js.map +0 -1
  251. package/src/cramFile/codecs/_base.js +0 -49
  252. package/src/cramFile/codecs/beta.js +0 -23
  253. package/src/cramFile/codecs/gamma.js +0 -30
  254. package/src/cramFile/codecs/subexp.js +0 -32
  255. package/src/index.js +0 -5
  256. package/src/io/bufferCache.js +0 -66
  257. package/src/io/localFile.js +0 -35
  258. package/src/io/remoteFile.js +0 -71
@@ -1,71 +0,0 @@
1
- import fetch from 'cross-fetch'
2
- import BufferCache from './bufferCache'
3
-
4
- export default class RemoteFile {
5
- constructor(source) {
6
- this.position = 0
7
- this.url = source
8
- this.cache = new BufferCache({
9
- fetch: (start, length) => this._fetch(start, length),
10
- })
11
- }
12
-
13
- async _fetch(position, length) {
14
- const headers = {}
15
- if (length < Infinity) {
16
- headers.range = `bytes=${position}-${position + length}`
17
- } else if (length === Infinity && position !== 0) {
18
- headers.range = `bytes=${position}-`
19
- }
20
- const response = await fetch(this.url, {
21
- method: 'GET',
22
- headers,
23
- redirect: 'follow',
24
- mode: 'cors',
25
- })
26
- if (
27
- (response.status === 200 && position === 0) ||
28
- response.status === 206
29
- ) {
30
- const nodeBuffer = Buffer.from(await response.arrayBuffer())
31
-
32
- // try to parse out the size of the remote file
33
- const sizeMatch = /\/(\d+)$/.exec(response.headers.get('content-range'))
34
- if (sizeMatch[1]) {
35
- this._stat = { size: parseInt(sizeMatch[1], 10) }
36
- }
37
-
38
- return nodeBuffer
39
- }
40
- throw new Error(`HTTP ${response.status} fetching ${this.url}`)
41
- }
42
-
43
- read(buffer, offset = 0, length = Infinity, position = 0) {
44
- let readPosition = position
45
- if (readPosition === null) {
46
- readPosition = this.position
47
- this.position += length
48
- }
49
- return this.cache.get(buffer, offset, length, position)
50
- }
51
-
52
- async readFile() {
53
- const response = await fetch(this.url, {
54
- method: 'GET',
55
- redirect: 'follow',
56
- mode: 'cors',
57
- })
58
- return Buffer.from(await response.arrayBuffer())
59
- }
60
-
61
- async stat() {
62
- if (!this._stat) {
63
- const buf = Buffer.allocUnsafe(10)
64
- await this.read(buf, 0, 10, 0)
65
- if (!this._stat) {
66
- throw new Error(`unable to determine size of file at ${this.url}`)
67
- }
68
- }
69
- return this._stat
70
- }
71
- }