@genome-spy/core 0.64.0 → 0.66.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 (285) hide show
  1. package/dist/bundle/{index-CCJIjehY.js → AbortablePromiseCache-CcuMrnn7.js} +22 -91
  2. package/dist/bundle/browser-BRemItdO.js +138 -0
  3. package/dist/bundle/index-BatuyGAI.js +271 -0
  4. package/dist/bundle/index-ByuE8dvu.js +332 -0
  5. package/dist/bundle/index-Cq3QFUxX.js +1781 -0
  6. package/dist/bundle/{index-C08YCM2T.js → index-D-w7Mmt9.js} +246 -126
  7. package/dist/bundle/index-D28m8tSW.js +1607 -0
  8. package/dist/bundle/index-D74H8TTz.js +508 -0
  9. package/dist/bundle/index-DbJ0oeYM.js +631 -0
  10. package/dist/bundle/index.es.js +15034 -13842
  11. package/dist/bundle/index.js +223 -237
  12. package/dist/bundle/inflate-GtwLkvSP.js +1048 -0
  13. package/dist/bundle/unzip-NywezaRR.js +1492 -0
  14. package/dist/schema.json +22 -4
  15. package/dist/src/config/scaleDefaults.d.ts +8 -0
  16. package/dist/src/config/scaleDefaults.d.ts.map +1 -0
  17. package/dist/src/config/scaleDefaults.js +45 -0
  18. package/dist/src/data/collector.d.ts +7 -2
  19. package/dist/src/data/collector.d.ts.map +1 -1
  20. package/dist/src/data/collector.js +13 -2
  21. package/dist/src/data/dataFlow.d.ts +20 -42
  22. package/dist/src/data/dataFlow.d.ts.map +1 -1
  23. package/dist/src/data/dataFlow.js +57 -80
  24. package/dist/src/data/flowHandle.d.ts +15 -0
  25. package/dist/src/data/flowHandle.d.ts.map +1 -0
  26. package/dist/src/data/flowHandle.js +13 -0
  27. package/dist/src/data/flowInit.d.ts +85 -0
  28. package/dist/src/data/flowInit.d.ts.map +1 -0
  29. package/dist/src/data/flowInit.js +238 -0
  30. package/dist/src/data/flowInit.test.d.ts +2 -0
  31. package/dist/src/data/flowInit.test.d.ts.map +1 -0
  32. package/dist/src/data/flowOptimizer.d.ts +6 -4
  33. package/dist/src/data/flowOptimizer.d.ts.map +1 -1
  34. package/dist/src/data/flowOptimizer.js +29 -14
  35. package/dist/src/data/sources/lazy/axisTickSource.js +1 -1
  36. package/dist/src/data/sources/lazy/bamSource.js +1 -1
  37. package/dist/src/data/sources/lazy/bigBedSource.js +1 -1
  38. package/dist/src/data/sources/lazy/bigWigSource.js +1 -1
  39. package/dist/src/data/sources/lazy/gff3Source.d.ts +2 -6
  40. package/dist/src/data/sources/lazy/gff3Source.d.ts.map +1 -1
  41. package/dist/src/data/sources/lazy/gff3Source.js +4 -8
  42. package/dist/src/data/sources/lazy/indexedFastaSource.d.ts.map +1 -1
  43. package/dist/src/data/sources/lazy/indexedFastaSource.js +17 -17
  44. package/dist/src/data/sources/lazy/singleAxisLazySource.d.ts +1 -1
  45. package/dist/src/data/sources/lazy/singleAxisLazySource.d.ts.map +1 -1
  46. package/dist/src/data/sources/lazy/singleAxisLazySource.js +10 -3
  47. package/dist/src/data/sources/lazy/singleAxisWindowedSource.d.ts.map +1 -1
  48. package/dist/src/data/sources/lazy/singleAxisWindowedSource.js +5 -1
  49. package/dist/src/data/sources/lazy/tabixSource.js +1 -1
  50. package/dist/src/data/transforms/filterScoredLabels.d.ts +1 -1
  51. package/dist/src/data/transforms/filterScoredLabels.d.ts.map +1 -1
  52. package/dist/src/data/transforms/filterScoredLabels.js +1 -1
  53. package/dist/src/data/transforms/linearizeGenomicCoordinate.d.ts.map +1 -1
  54. package/dist/src/data/transforms/linearizeGenomicCoordinate.js +2 -1
  55. package/dist/src/encoder/encoder.d.ts +1 -1
  56. package/dist/src/encoder/encoder.d.ts.map +1 -1
  57. package/dist/src/encoder/encoder.js +1 -1
  58. package/dist/src/genome/scaleLocus.d.ts +39 -0
  59. package/dist/src/genome/scaleLocus.d.ts.map +1 -1
  60. package/dist/src/genome/scaleLocus.js +76 -0
  61. package/dist/src/genomeSpy/canvasExport.d.ts +19 -0
  62. package/dist/src/genomeSpy/canvasExport.d.ts.map +1 -0
  63. package/dist/src/genomeSpy/canvasExport.js +66 -0
  64. package/dist/src/genomeSpy/containerUi.d.ts +17 -0
  65. package/dist/src/genomeSpy/containerUi.d.ts.map +1 -0
  66. package/dist/src/genomeSpy/containerUi.js +78 -0
  67. package/dist/src/genomeSpy/eventListenerRegistry.d.ts +19 -0
  68. package/dist/src/genomeSpy/eventListenerRegistry.d.ts.map +1 -0
  69. package/dist/src/genomeSpy/eventListenerRegistry.js +38 -0
  70. package/dist/src/genomeSpy/inputBindingManager.d.ts +14 -0
  71. package/dist/src/genomeSpy/inputBindingManager.d.ts.map +1 -0
  72. package/dist/src/genomeSpy/inputBindingManager.js +63 -0
  73. package/dist/src/genomeSpy/interactionController.d.ts +40 -0
  74. package/dist/src/genomeSpy/interactionController.d.ts.map +1 -0
  75. package/dist/src/genomeSpy/interactionController.js +371 -0
  76. package/dist/src/genomeSpy/keyboardListenerManager.d.ts +10 -0
  77. package/dist/src/genomeSpy/keyboardListenerManager.d.ts.map +1 -0
  78. package/dist/src/genomeSpy/keyboardListenerManager.js +31 -0
  79. package/dist/src/genomeSpy/loadingIndicatorManager.d.ts +15 -0
  80. package/dist/src/genomeSpy/loadingIndicatorManager.d.ts.map +1 -0
  81. package/dist/src/genomeSpy/loadingIndicatorManager.js +92 -0
  82. package/dist/src/genomeSpy/renderCoordinator.d.ts +22 -0
  83. package/dist/src/genomeSpy/renderCoordinator.d.ts.map +1 -0
  84. package/dist/src/genomeSpy/renderCoordinator.js +118 -0
  85. package/dist/src/genomeSpy/viewContextFactory.d.ts +18 -0
  86. package/dist/src/genomeSpy/viewContextFactory.d.ts.map +1 -0
  87. package/dist/src/genomeSpy/viewContextFactory.js +79 -0
  88. package/dist/src/genomeSpy/viewDataInit.d.ts +12 -0
  89. package/dist/src/genomeSpy/viewDataInit.d.ts.map +1 -0
  90. package/dist/src/genomeSpy/viewDataInit.js +41 -0
  91. package/dist/src/genomeSpy/viewHierarchyConfig.d.ts +14 -0
  92. package/dist/src/genomeSpy/viewHierarchyConfig.d.ts.map +1 -0
  93. package/dist/src/genomeSpy/viewHierarchyConfig.js +24 -0
  94. package/dist/src/genomeSpy/viewHighlight.d.ts +5 -0
  95. package/dist/src/genomeSpy/viewHighlight.d.ts.map +1 -0
  96. package/dist/src/genomeSpy/viewHighlight.js +30 -0
  97. package/dist/src/genomeSpy.d.ts +17 -72
  98. package/dist/src/genomeSpy.d.ts.map +1 -1
  99. package/dist/src/genomeSpy.js +180 -789
  100. package/dist/src/gl/glslScaleGenerator.d.ts +1 -1
  101. package/dist/src/gl/webGLHelper.d.ts +2 -2
  102. package/dist/src/gl/webGLHelper.d.ts.map +1 -1
  103. package/dist/src/gl/webGLHelper.js +4 -4
  104. package/dist/src/index.d.ts.map +1 -1
  105. package/dist/src/index.js +2 -12
  106. package/dist/src/marks/mark.d.ts +1 -0
  107. package/dist/src/marks/mark.d.ts.map +1 -1
  108. package/dist/src/marks/mark.js +26 -3
  109. package/dist/src/{view → scales}/axisResolution.d.ts +12 -14
  110. package/dist/src/scales/axisResolution.d.ts.map +1 -0
  111. package/dist/src/{view → scales}/axisResolution.js +38 -12
  112. package/dist/src/scales/axisResolution.test.d.ts.map +1 -0
  113. package/dist/src/scales/scaleDomainAggregator.d.ts +57 -0
  114. package/dist/src/scales/scaleDomainAggregator.d.ts.map +1 -0
  115. package/dist/src/scales/scaleDomainAggregator.js +162 -0
  116. package/dist/src/scales/scaleDomainAggregator.test.d.ts +2 -0
  117. package/dist/src/scales/scaleDomainAggregator.test.d.ts.map +1 -0
  118. package/dist/src/scales/scaleInstanceManager.d.ts +40 -0
  119. package/dist/src/scales/scaleInstanceManager.d.ts.map +1 -0
  120. package/dist/src/scales/scaleInstanceManager.js +313 -0
  121. package/dist/src/scales/scaleInstanceManager.test.d.ts +2 -0
  122. package/dist/src/scales/scaleInstanceManager.test.d.ts.map +1 -0
  123. package/dist/src/scales/scaleInteractionController.d.ts +73 -0
  124. package/dist/src/scales/scaleInteractionController.d.ts.map +1 -0
  125. package/dist/src/scales/scaleInteractionController.js +336 -0
  126. package/dist/src/scales/scaleInteractionController.test.d.ts +2 -0
  127. package/dist/src/scales/scaleInteractionController.test.d.ts.map +1 -0
  128. package/dist/src/scales/scalePropsResolver.d.ts +23 -0
  129. package/dist/src/scales/scalePropsResolver.d.ts.map +1 -0
  130. package/dist/src/scales/scalePropsResolver.js +74 -0
  131. package/dist/src/{view → scales}/scaleResolution.d.ts +53 -31
  132. package/dist/src/scales/scaleResolution.d.ts.map +1 -0
  133. package/dist/src/scales/scaleResolution.js +658 -0
  134. package/dist/src/scales/scaleResolution.test.d.ts.map +1 -0
  135. package/dist/src/scales/scaleResolutionConstants.d.ts +6 -0
  136. package/dist/src/scales/scaleResolutionConstants.d.ts.map +1 -0
  137. package/dist/src/scales/scaleResolutionConstants.js +5 -0
  138. package/dist/src/scales/scaleRules.d.ts +16 -0
  139. package/dist/src/scales/scaleRules.d.ts.map +1 -0
  140. package/dist/src/scales/scaleRules.js +103 -0
  141. package/dist/src/scales/scaleRules.test.d.ts +2 -0
  142. package/dist/src/scales/scaleRules.test.d.ts.map +1 -0
  143. package/dist/src/spec/channel.d.ts +13 -18
  144. package/dist/src/spec/sampleView.d.ts +3 -2
  145. package/dist/src/spec/scale.d.ts +6 -0
  146. package/dist/src/types/embedApi.d.ts +5 -0
  147. package/dist/src/types/scaleResolutionApi.d.ts +1 -1
  148. package/dist/src/types/viewContext.d.ts +1 -1
  149. package/dist/src/view/concatView.d.ts +18 -0
  150. package/dist/src/view/concatView.d.ts.map +1 -1
  151. package/dist/src/view/concatView.js +73 -0
  152. package/dist/src/view/concatView.test.d.ts +2 -0
  153. package/dist/src/view/concatView.test.d.ts.map +1 -0
  154. package/dist/src/view/containerMutationHelper.d.ts +74 -0
  155. package/dist/src/view/containerMutationHelper.d.ts.map +1 -0
  156. package/dist/src/view/containerMutationHelper.js +114 -0
  157. package/dist/src/view/containerView.d.ts +0 -7
  158. package/dist/src/view/containerView.d.ts.map +1 -1
  159. package/dist/src/view/containerView.js +0 -10
  160. package/dist/src/view/facetView.d.ts.map +1 -1
  161. package/dist/src/view/facetView.js +0 -14
  162. package/dist/src/view/flowBuilder.d.ts +2 -2
  163. package/dist/src/view/flowBuilder.d.ts.map +1 -1
  164. package/dist/src/view/flowBuilder.js +21 -4
  165. package/dist/src/view/gridView/gridChild.d.ts +11 -0
  166. package/dist/src/view/gridView/gridChild.d.ts.map +1 -1
  167. package/dist/src/view/gridView/gridChild.js +32 -6
  168. package/dist/src/view/gridView/gridView.d.ts +39 -1
  169. package/dist/src/view/gridView/gridView.d.ts.map +1 -1
  170. package/dist/src/view/gridView/gridView.js +113 -42
  171. package/dist/src/view/gridView/gridView.test.d.ts +2 -0
  172. package/dist/src/view/gridView/gridView.test.d.ts.map +1 -0
  173. package/dist/src/view/gridView/scrollbar.d.ts +39 -8
  174. package/dist/src/view/gridView/scrollbar.d.ts.map +1 -1
  175. package/dist/src/view/gridView/scrollbar.js +184 -69
  176. package/dist/src/view/gridView/selectionRect.d.ts +8 -4
  177. package/dist/src/view/gridView/selectionRect.d.ts.map +1 -1
  178. package/dist/src/view/gridView/selectionRect.js +28 -3
  179. package/dist/src/view/gridView/selectionRect.test.d.ts +2 -0
  180. package/dist/src/view/gridView/selectionRect.test.d.ts.map +1 -0
  181. package/dist/src/view/layerView.d.ts +14 -0
  182. package/dist/src/view/layerView.d.ts.map +1 -1
  183. package/dist/src/view/layerView.js +66 -0
  184. package/dist/src/view/layerView.test.d.ts +2 -0
  185. package/dist/src/view/layerView.test.d.ts.map +1 -0
  186. package/dist/src/view/paramMediator.d.ts +2 -1
  187. package/dist/src/view/paramMediator.d.ts.map +1 -1
  188. package/dist/src/view/paramMediator.js +13 -1
  189. package/dist/src/view/testUtils.d.ts.map +1 -1
  190. package/dist/src/view/testUtils.js +18 -5
  191. package/dist/src/view/unitView.d.ts.map +1 -1
  192. package/dist/src/view/unitView.js +52 -12
  193. package/dist/src/view/view.d.ts +23 -7
  194. package/dist/src/view/view.d.ts.map +1 -1
  195. package/dist/src/view/view.js +61 -5
  196. package/dist/src/view/viewDispose.test.d.ts +2 -0
  197. package/dist/src/view/viewDispose.test.d.ts.map +1 -0
  198. package/dist/src/view/viewUtils.d.ts +4 -4
  199. package/dist/src/view/viewUtils.d.ts.map +1 -1
  200. package/dist/src/view/viewUtils.js +19 -15
  201. package/dist/src/view/viewUtils.test.d.ts +2 -0
  202. package/dist/src/view/viewUtils.test.d.ts.map +1 -0
  203. package/package.json +10 -10
  204. package/dist/bundle/__vite-browser-external-C--ziKoh.js +0 -8
  205. package/dist/bundle/_commonjsHelpers-DjF3Plf2.js +0 -26
  206. package/dist/bundle/index-5ajWdKly.js +0 -1319
  207. package/dist/bundle/index-B03-Om4z.js +0 -274
  208. package/dist/bundle/index-BftNdA0O.js +0 -27
  209. package/dist/bundle/index-Bg7C4Xat.js +0 -2750
  210. package/dist/bundle/index-C3QR8Lv6.js +0 -2131
  211. package/dist/bundle/index-DTcHjAHp.js +0 -505
  212. package/dist/bundle/index-DnIkxb0L.js +0 -1025
  213. package/dist/bundle/index-Ww3TAo6_.js +0 -71
  214. package/dist/bundle/index-g8iXgW0W.js +0 -651
  215. package/dist/bundle/long-B-FASCSo.js +0 -2387
  216. package/dist/bundle/remoteFile-BuaqFGWk.js +0 -94
  217. package/dist/src/data/collector.test.js +0 -138
  218. package/dist/src/data/dataFlow.test.js +0 -5
  219. package/dist/src/data/flow.test.js +0 -81
  220. package/dist/src/data/flowNode.test.js +0 -50
  221. package/dist/src/data/flowOptimizer.test.js +0 -204
  222. package/dist/src/data/formats/fasta.test.js +0 -27
  223. package/dist/src/data/sources/inlineSource.test.js +0 -63
  224. package/dist/src/data/sources/sequenceSource.test.js +0 -81
  225. package/dist/src/data/transforms/aggregate.test.js +0 -134
  226. package/dist/src/data/transforms/clone.test.js +0 -11
  227. package/dist/src/data/transforms/coverage.test.js +0 -238
  228. package/dist/src/data/transforms/filter.test.js +0 -20
  229. package/dist/src/data/transforms/flatten.test.js +0 -96
  230. package/dist/src/data/transforms/flattenDelimited.test.js +0 -90
  231. package/dist/src/data/transforms/flattenSequence.test.js +0 -34
  232. package/dist/src/data/transforms/formula.test.js +0 -25
  233. package/dist/src/data/transforms/identifier.test.js +0 -92
  234. package/dist/src/data/transforms/pileup.test.js +0 -70
  235. package/dist/src/data/transforms/project.test.js +0 -32
  236. package/dist/src/data/transforms/regexExtract.test.js +0 -70
  237. package/dist/src/data/transforms/regexFold.test.js +0 -201
  238. package/dist/src/data/transforms/sample.test.js +0 -38
  239. package/dist/src/data/transforms/stack.test.js +0 -91
  240. package/dist/src/encoder/accessor.test.js +0 -162
  241. package/dist/src/encoder/encoder.test.js +0 -105
  242. package/dist/src/genome/genome.test.js +0 -268
  243. package/dist/src/genome/genomes.test.js +0 -8
  244. package/dist/src/genome/scaleIndex.test.js +0 -78
  245. package/dist/src/genome/scaleLocus.test.js +0 -4
  246. package/dist/src/scale/scale.test.js +0 -326
  247. package/dist/src/scale/ticks.test.js +0 -46
  248. package/dist/src/selection/selection.test.js +0 -14
  249. package/dist/src/utils/addBaseUrl.test.js +0 -30
  250. package/dist/src/utils/binnedIndex.test.js +0 -201
  251. package/dist/src/utils/cloner.test.js +0 -35
  252. package/dist/src/utils/coalesce.test.js +0 -16
  253. package/dist/src/utils/concatIterables.test.js +0 -8
  254. package/dist/src/utils/domainArray.test.js +0 -130
  255. package/dist/src/utils/indexer.test.js +0 -49
  256. package/dist/src/utils/interactionEvent.test.js +0 -35
  257. package/dist/src/utils/iterateNestedMaps.test.js +0 -33
  258. package/dist/src/utils/kWayMerge.test.js +0 -30
  259. package/dist/src/utils/mergeObjects.test.js +0 -42
  260. package/dist/src/utils/numberExtractor.test.js +0 -6
  261. package/dist/src/utils/propertyCacher.test.js +0 -89
  262. package/dist/src/utils/propertyCoalescer.test.js +0 -25
  263. package/dist/src/utils/radixSort.test.js +0 -51
  264. package/dist/src/utils/reservationMap.test.js +0 -20
  265. package/dist/src/utils/ringBuffer.test.js +0 -39
  266. package/dist/src/utils/topK.test.js +0 -54
  267. package/dist/src/utils/trees.test.js +0 -135
  268. package/dist/src/utils/url.test.js +0 -28
  269. package/dist/src/utils/variableTools.test.js +0 -13
  270. package/dist/src/view/axisResolution.d.ts.map +0 -1
  271. package/dist/src/view/axisResolution.test.d.ts.map +0 -1
  272. package/dist/src/view/axisResolution.test.js +0 -206
  273. package/dist/src/view/flowBuilder.test.js +0 -125
  274. package/dist/src/view/layout/flexLayout.test.js +0 -323
  275. package/dist/src/view/layout/grid.test.js +0 -71
  276. package/dist/src/view/layout/rectangle.test.js +0 -192
  277. package/dist/src/view/paramMediator.test.js +0 -260
  278. package/dist/src/view/scaleResolution.d.ts.map +0 -1
  279. package/dist/src/view/scaleResolution.js +0 -1049
  280. package/dist/src/view/scaleResolution.test.d.ts.map +0 -1
  281. package/dist/src/view/scaleResolution.test.js +0 -645
  282. package/dist/src/view/view.test.js +0 -245
  283. package/dist/src/view/viewFactory.test.js +0 -25
  284. /package/dist/src/{view → scales}/axisResolution.test.d.ts +0 -0
  285. /package/dist/src/{view → scales}/scaleResolution.test.d.ts +0 -0
@@ -1,274 +0,0 @@
1
- import { L as g } from "./__vite-browser-external-C--ziKoh.js";
2
- import { b as w } from "./index-BftNdA0O.js";
3
- import { L as _, u as b } from "./long-B-FASCSo.js";
4
- const m = 1;
5
- class I {
6
- constructor({ filehandle: e, path: t }) {
7
- if (e)
8
- this.filehandle = e;
9
- else if (t)
10
- this.filehandle = new g(t);
11
- else
12
- throw new TypeError("either filehandle or path must be defined");
13
- }
14
- _readLongWithOverflow(e, t = 0, s = !0) {
15
- const n = _.fromBytesLE(e.slice(t, t + 8), s);
16
- if (n.greaterThan(Number.MAX_SAFE_INTEGER) || n.lessThan(Number.MIN_SAFE_INTEGER))
17
- throw new TypeError("integer overflow");
18
- return n.toNumber();
19
- }
20
- _getIndex() {
21
- return this.index || (this.index = this._readIndex()), this.index;
22
- }
23
- async _readIndex() {
24
- let e = w.Buffer.allocUnsafe(8);
25
- await this.filehandle.read(e, 0, 8, 0);
26
- const t = this._readLongWithOverflow(e, 0, !0);
27
- if (!t)
28
- return [[0, 0]];
29
- const s = new Array(t + 1);
30
- s[0] = [0, 0];
31
- const n = 8 * 2 * t;
32
- if (n > Number.MAX_SAFE_INTEGER)
33
- throw new TypeError("integer overflow");
34
- e = w.Buffer.allocUnsafe(n), await this.filehandle.read(e, 0, n, 8);
35
- for (let r = 0; r < t; r += 1) {
36
- const i = this._readLongWithOverflow(e, r * 16), l = this._readLongWithOverflow(e, r * 16 + 8);
37
- s[r + 1] = [i, l];
38
- }
39
- return s;
40
- }
41
- async getLastBlock() {
42
- const e = await this._getIndex();
43
- if (e.length)
44
- return e[e.length - 1];
45
- }
46
- async getRelevantBlocksForRead(e, t) {
47
- const s = t + e;
48
- if (e === 0)
49
- return [];
50
- const n = await this._getIndex(), r = [], i = (h, u) => {
51
- const p = h[m], E = u ? u[m] : 1 / 0;
52
- return p <= t && E > t ? 0 : p < t ? -1 : 1;
53
- };
54
- let l = 0, f = n.length - 1, a = Math.floor(n.length / 2), d = i(n[a], n[a + 1]);
55
- for (; d !== 0; )
56
- d > 0 ? f = a - 1 : d < 0 && (l = a + 1), a = Math.ceil((f - l) / 2) + l, d = i(n[a], n[a + 1]);
57
- r.push(n[a]);
58
- let c = a + 1;
59
- for (; c < n.length && (r.push(n[c]), !(n[c][m] >= s)); c += 1)
60
- ;
61
- return r[r.length - 1][m] < s && r.push([]), r;
62
- }
63
- }
64
- class y {
65
- constructor({ filehandle: e, path: t, gziFilehandle: s, gziPath: n }) {
66
- if (e)
67
- this.filehandle = e;
68
- else if (t)
69
- this.filehandle = new g(t);
70
- else
71
- throw new TypeError("either filehandle or path must be defined");
72
- if (!s && !n && !t)
73
- throw new TypeError("either gziFilehandle or gziPath must be defined");
74
- this.gzi = new I({
75
- filehandle: s,
76
- path: !s && !n && t ? n : `${t}.gzi`
77
- });
78
- }
79
- async stat() {
80
- const e = await this.filehandle.stat();
81
- return Object.assign(e, {
82
- size: await this.getUncompressedFileSize(),
83
- blocks: void 0,
84
- blksize: void 0
85
- });
86
- }
87
- async getUncompressedFileSize() {
88
- const [, e] = await this.gzi.getLastBlock(), { size: t } = await this.filehandle.stat(), s = w.Buffer.allocUnsafe(4), { bytesRead: n } = await this.filehandle.read(s, 0, 4, t - 28 - 4);
89
- if (n !== 4)
90
- throw new Error("read error");
91
- const r = s.readUInt32LE(0);
92
- return e + r;
93
- }
94
- async _readAndUncompressBlock(e, [t], [s]) {
95
- let n = s;
96
- n || (n = (await this.filehandle.stat()).size);
97
- const r = n - t;
98
- return await this.filehandle.read(e, 0, r, t), await b(e.slice(0, r));
99
- }
100
- async read(e, t, s, n) {
101
- const r = await this.gzi.getRelevantBlocksForRead(s, n), i = w.Buffer.allocUnsafe(32768 * 2);
102
- let l = t, f = 0;
103
- for (let a = 0; a < r.length - 1; a += 1) {
104
- const d = await this._readAndUncompressBlock(i, r[a], r[a + 1]), [, c] = r[a], h = c >= n ? 0 : n - c, u = Math.min(n + s, c + d.length) - c;
105
- h >= 0 && h < d.length && (d.copy(e, l, h, u), l += u - h, f += u - h);
106
- }
107
- return { bytesRead: f, buffer: e };
108
- }
109
- }
110
- function x(o, e) {
111
- return o.offset + o.lineBytes * Math.floor(e / o.lineLength) + e % o.lineLength;
112
- }
113
- async function S(o, e) {
114
- const t = await o.readFile(e);
115
- if (!(t != null && t.length))
116
- throw new Error("No data read from FASTA index (FAI) file");
117
- let s = 0, n;
118
- const r = t.toString("utf8").split(/\r?\n/).filter((i) => /\S/.test(i)).map((i) => i.split(" ")).filter((i) => i[0] !== "").map((i) => ((!n || n.name !== i[0]) && (n = { name: i[0], id: s }, s += 1), {
119
- id: n.id,
120
- name: i[0],
121
- length: +i[1],
122
- start: 0,
123
- end: +i[1],
124
- offset: +i[2],
125
- lineLength: +i[3],
126
- lineBytes: +i[4]
127
- }));
128
- return {
129
- name: Object.fromEntries(r.map((i) => [i.name, i])),
130
- id: Object.fromEntries(r.map((i) => [i.id, i]))
131
- };
132
- }
133
- class B {
134
- constructor({ fasta: e, fai: t, path: s, faiPath: n }) {
135
- if (e)
136
- this.fasta = e;
137
- else if (s)
138
- this.fasta = new g(s);
139
- else
140
- throw new Error("Need to pass filehandle for fasta or path to localfile");
141
- if (t)
142
- this.fai = t;
143
- else if (n)
144
- this.fai = new g(n);
145
- else if (s)
146
- this.fai = new g(`${s}.fai`);
147
- else
148
- throw new Error("Need to pass filehandle for or path to localfile");
149
- }
150
- async _getIndexes(e) {
151
- return this.indexes || (this.indexes = S(this.fai, e)), this.indexes;
152
- }
153
- /**
154
- * @returns {array[string]} array of string sequence
155
- * names that are present in the index, in which the
156
- * array index indicates the sequence ID, and the value
157
- * is the sequence name
158
- */
159
- async getSequenceNames(e) {
160
- return Object.keys((await this._getIndexes(e)).name);
161
- }
162
- /**
163
- * @returns {array[string]} array of string sequence
164
- * names that are present in the index, in which the
165
- * array index indicates the sequence ID, and the value
166
- * is the sequence name
167
- */
168
- async getSequenceSizes(e) {
169
- const t = {}, s = await this._getIndexes(e);
170
- for (const n of Object.values(s.id))
171
- t[n.name] = n.length;
172
- return t;
173
- }
174
- /**
175
- * @returns {array[string]} array of string sequence
176
- * names that are present in the index, in which the
177
- * array index indicates the sequence ID, and the value
178
- * is the sequence name
179
- */
180
- async getSequenceSize(e, t) {
181
- var s;
182
- return (s = (await this._getIndexes(t)).name[e]) === null || s === void 0 ? void 0 : s.length;
183
- }
184
- /**
185
- *
186
- * @param {string} name
187
- * @returns {Promise[boolean]} true if the file contains the given reference sequence name
188
- */
189
- async hasReferenceSequence(e, t) {
190
- return !!(await this._getIndexes(t)).name[e];
191
- }
192
- /**
193
- *
194
- * @param {number} seqId
195
- * @param {number} min
196
- * @param {number} max
197
- */
198
- async getResiduesById(e, t, s, n) {
199
- const r = (await this._getIndexes(n)).id[e];
200
- if (r)
201
- return this._fetchFromIndexEntry(r, t, s, n);
202
- }
203
- /**
204
- * @param {string} seqName
205
- * @param {number} min
206
- * @param {number} max
207
- */
208
- async getResiduesByName(e, t, s, n) {
209
- const r = (await this._getIndexes(n)).name[e];
210
- if (r)
211
- return this._fetchFromIndexEntry(r, t, s, n);
212
- }
213
- //alias for getResiduesByName
214
- async getSequence(e, t, s, n) {
215
- return this.getResiduesByName(e, t, s, n);
216
- }
217
- async _fetchFromIndexEntry(e, t = 0, s, n) {
218
- let r = s;
219
- if (t < 0)
220
- throw new TypeError("regionStart cannot be less than 0");
221
- if ((r === void 0 || r > e.length) && (r = e.length), t >= r)
222
- return "";
223
- const i = x(e, t), l = x(e, r) - i, f = w.Buffer.allocUnsafe(l);
224
- return await this.fasta.read(f, 0, l, i, n), f.toString("utf8").replace(/\s+/g, "");
225
- }
226
- }
227
- class v extends B {
228
- constructor({ fasta: e, path: t, fai: s, faiPath: n, gzi: r, gziPath: i }) {
229
- super({ fasta: e, path: t, fai: s, faiPath: n }), e && r ? this.fasta = new y({
230
- filehandle: e,
231
- gziFilehandle: r
232
- }) : t && i && (this.fasta = new y({ path: t, gziPath: i }));
233
- }
234
- }
235
- function F(o) {
236
- return o.split(">").filter((e) => /\S/.test(e)).map((e) => {
237
- const [t, ...s] = e.split(`
238
- `), [n, ...r] = t.split(" "), i = s.join("").replace(/\s/g, "");
239
- return {
240
- id: n,
241
- description: r.join(" "),
242
- sequence: i
243
- };
244
- });
245
- }
246
- class O {
247
- constructor({ fasta: e, path: t }) {
248
- if (e)
249
- this.fasta = e;
250
- else if (t)
251
- this.fasta = new g(t);
252
- else
253
- throw new Error("Need to pass fasta or path");
254
- this.data = this.fasta.readFile().then((s) => {
255
- const n = s.toString("utf8");
256
- return F(n);
257
- });
258
- }
259
- async fetch(e, t, s) {
260
- const r = (await this.data).find((l) => l.id === e), i = s - t;
261
- if (!r)
262
- throw new Error(`no sequence with id ${e} exists`);
263
- return r.sequence.slice(t, i);
264
- }
265
- async getSequenceNames() {
266
- return (await this.data).map((t) => t.id);
267
- }
268
- }
269
- export {
270
- v as BgzipIndexedFasta,
271
- O as FetchableSmallFasta,
272
- B as IndexedFasta,
273
- F as parseSmallFasta
274
- };
@@ -1,27 +0,0 @@
1
- import { g as i } from "./_commonjsHelpers-DjF3Plf2.js";
2
- import { r as s } from "./index-DnIkxb0L.js";
3
- function u(t, n) {
4
- for (var o = 0; o < n.length; o++) {
5
- const e = n[o];
6
- if (typeof e != "string" && !Array.isArray(e)) {
7
- for (const r in e)
8
- if (r !== "default" && !(r in t)) {
9
- const f = Object.getOwnPropertyDescriptor(e, r);
10
- f && Object.defineProperty(t, r, f.get ? f : {
11
- enumerable: !0,
12
- get: () => e[r]
13
- });
14
- }
15
- }
16
- }
17
- return Object.freeze(Object.defineProperty(t, Symbol.toStringTag, { value: "Module" }));
18
- }
19
- var a = s();
20
- const c = /* @__PURE__ */ i(a), l = /* @__PURE__ */ u({
21
- __proto__: null,
22
- default: c
23
- }, [a]);
24
- export {
25
- a as b,
26
- l as i
27
- };