@genome-spy/app 0.75.0 → 0.77.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 (71) hide show
  1. package/dist/AbortablePromiseCache-beUIcZcW.js +96 -0
  2. package/dist/agentApi-ClsLtELB.js +26994 -0
  3. package/dist/agentApi.es.js +11145 -0
  4. package/dist/agentShared.es.js +4742 -0
  5. package/dist/{blosc-oa0DlI6G.js → blosc-BX4BJ8sR.js} +1 -1
  6. package/dist/blosc-DL1kZHdE.js +692 -0
  7. package/dist/chunk-INHXZS53-Dx2aFznx.js +13 -0
  8. package/dist/componentStyles-CIXoKEp0.js +2182 -0
  9. package/dist/dialog.es.js +377 -0
  10. package/dist/esm-CHVYSGF2.js +1084 -0
  11. package/dist/esm-CZvS2Ldm.js +155 -0
  12. package/dist/esm-C_XrKaCY.js +137 -0
  13. package/dist/{esm-DCCYNvaz.js → esm-CqrZuhTF.js} +50 -50
  14. package/dist/{esm-D-WfYOx7.js → esm-Cz4iCfzF.js} +25 -25
  15. package/dist/esm-D-y0Ce1M.js +573 -0
  16. package/dist/esm-D2-C5ZzN.js +1084 -0
  17. package/dist/esm-DPS6pYKF.js +1248 -0
  18. package/dist/esm-Dfo2M18m.js +461 -0
  19. package/dist/esm-DjF6pKy5.js +369 -0
  20. package/dist/{esm-n0auOe11.js → esm-Q6nrd9vJ.js} +1 -1
  21. package/dist/esm-aOLxLL7A.js +121 -0
  22. package/dist/esm-id9DWBZW.js +137 -0
  23. package/dist/esm-kXhrPIYy.js +1426 -0
  24. package/dist/esm-s_SlArJ8.js +298 -0
  25. package/dist/index.es.js +15272 -37563
  26. package/dist/index.js +1202 -741
  27. package/dist/lit-ymUSmGBw.js +510 -0
  28. package/dist/{lz4-jZ0zyLBa.js → lz4-BSYl80V8.js} +1 -1
  29. package/dist/lz4-Csz5aoFA.js +626 -0
  30. package/dist/parquetRead-m8-8_SpH.js +1609 -0
  31. package/dist/schema.json +489 -85
  32. package/dist/style.css +1 -1
  33. package/dist/viewUtils-3_xHIxmy.js +14292 -0
  34. package/dist/{zstd-C6ksIG9r.js → zstd-BAfRM3IH.js} +1 -1
  35. package/dist/zstd-dJuUp1fl.js +583 -0
  36. package/package.json +30 -5
  37. package/src/agentApi/index.d.ts +147 -0
  38. package/src/agentShared/index.d.ts +97 -0
  39. package/src/agentShared/types.d.ts +8 -0
  40. package/src/appTypes.d.ts +75 -0
  41. package/src/bookmark/databaseSchema.d.ts +33 -0
  42. package/src/charts/boxplotTypes.d.ts +15 -0
  43. package/src/charts/sampleAttributePlotTypes.d.ts +149 -0
  44. package/src/coreSpecAugmentation.d.ts +29 -0
  45. package/src/dialog/index.d.ts +5 -0
  46. package/src/embedTypes.d.ts +9 -0
  47. package/src/index.d.ts +16 -0
  48. package/src/sampleView/sampleViewTypes.d.ts +176 -0
  49. package/src/sampleView/state/payloadTypes.d.ts +484 -0
  50. package/src/sampleView/state/sampleState.d.ts +76 -0
  51. package/src/sampleView/types.d.ts +128 -0
  52. package/src/spec/appSpec.d.ts +54 -0
  53. package/src/spec/sampleView.d.ts +545 -0
  54. package/src/spec/view.d.ts +124 -0
  55. package/src/state/paramProvenanceTypes.d.ts +215 -0
  56. package/src/state/selectionExpansionTypes.d.ts +77 -0
  57. package/src/state.d.ts +97 -0
  58. package/src/types/lz-string.d.ts +24 -0
  59. package/src/types/vega-loader.d.ts +1 -0
  60. package/src/utils/colorScaleSummary.d.ts +15 -0
  61. package/src/utils/statistics/fieldSummary.d.ts +49 -0
  62. package/src/vite-env.d.ts +6 -0
  63. package/dist/browser-Dvlo92rx.js +0 -126
  64. package/dist/esm-Cmo4qEPr.js +0 -1015
  65. /package/dist/{AbortablePromiseCache-3gHJdF3E.js → AbortablePromiseCache-BDH1cqFl.js} +0 -0
  66. /package/dist/{chunk-INHXZS53-fPMmEwMt.js → chunk-INHXZS53-DwEV9sMh.js} +0 -0
  67. /package/dist/{esm-BygJiwh0.js → esm-BL9SNSnj.js} +0 -0
  68. /package/dist/{esm-B8-vSu-c.js → esm-BwW--bVV.js} +0 -0
  69. /package/dist/{esm-CGX-qz1d.js → esm-Bz_92nH0.js} +0 -0
  70. /package/dist/{esm-CuMSzCHy.js → esm-D2_c7lXY.js} +0 -0
  71. /package/dist/{parquetRead-CJe1UPsz.js → parquetRead-C33mgLEo.js} +0 -0
@@ -0,0 +1,1084 @@
1
+ import { t as e } from "./esm-Bz_92nH0.js";
2
+ import { n as t, r as n } from "./esm-C_XrKaCY.js";
3
+ import { t as r } from "./AbortablePromiseCache-BDH1cqFl.js";
4
+ //#region ../../node_modules/@gmod/bbi/esm/bigint-polyfill/pure.js
5
+ var i = BigInt(32);
6
+ function a(e, t, n) {
7
+ let r = Number(!!n), a = Number(!n);
8
+ return BigInt(e.getInt32(t, n) * a + e.getInt32(t + 4, n) * r) << i | BigInt(e.getUint32(t, n) * r + e.getUint32(t + 4, n) * a);
9
+ }
10
+ function o(e, t, n) {
11
+ let r = e.getUint32(t, n), a = e.getUint32(t + 4, n), o = Number(!!n), s = Number(!n);
12
+ return BigInt(r * s + a * o) << i | BigInt(r * o + a * s);
13
+ }
14
+ //#endregion
15
+ //#region ../../node_modules/@gmod/bbi/esm/bigint-polyfill/polyfill.js
16
+ var s = (e, t) => t in e;
17
+ s(DataView.prototype, "getBigInt64") || (DataView.prototype.getBigInt64 = function(e, t) {
18
+ return a(this, e, t);
19
+ }), s(DataView.prototype, "getBigUint64") || (DataView.prototype.getBigUint64 = function(e, t) {
20
+ return o(this, e, t);
21
+ });
22
+ //#endregion
23
+ //#region ../../node_modules/@gmod/bbi/esm/range.js
24
+ function c(e) {
25
+ if (e.length === 0) return [];
26
+ let t = e.toSorted((e, t) => e.min - t.min), n = [], r = t[0];
27
+ for (let e = 1; e < t.length; e++) {
28
+ let i = t[e];
29
+ i.min > r.max + 1 ? (n.push(r), r = i) : i.max > r.max && (r = {
30
+ min: r.min,
31
+ max: i.max
32
+ });
33
+ }
34
+ return n.push(r), n;
35
+ }
36
+ //#endregion
37
+ //#region ../../node_modules/@gmod/bbi/esm/wasm/inflate-wasm-inlined.js
38
+ var l = {}, u = {};
39
+ function d(e) {
40
+ var t = u[e];
41
+ if (t !== void 0) return t.exports;
42
+ var n = u[e] = { exports: {} };
43
+ return l[e](n, n.exports, d), n.exports;
44
+ }
45
+ (() => {
46
+ var e = Object.getPrototypeOf ? (e) => Object.getPrototypeOf(e) : (e) => e.__proto__, t;
47
+ d.t = function(n, r) {
48
+ if (r & 1 && (n = this(n)), r & 8 || typeof n == "object" && n && (r & 4 && n.__esModule || r & 16 && typeof n.then == "function")) return n;
49
+ var i = Object.create(null);
50
+ d.r(i);
51
+ var a = {};
52
+ t ||= [
53
+ null,
54
+ e({}),
55
+ e([]),
56
+ e(e)
57
+ ];
58
+ for (var o = r & 2 && n; (typeof o == "object" || typeof o == "function") && !~t.indexOf(o); o = e(o)) Object.getOwnPropertyNames(o).forEach((e) => a[e] = () => n[e]);
59
+ return a.default = () => n, d.d(i, a), i;
60
+ };
61
+ })(), d.d = (e, t) => {
62
+ for (var n in t) d.o(t, n) && !d.o(e, n) && Object.defineProperty(e, n, {
63
+ enumerable: !0,
64
+ get: t[n]
65
+ });
66
+ }, d.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t), d.r = (e) => {
67
+ typeof Symbol < "u" && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 });
68
+ };
69
+ var f = {};
70
+ d.r(f), d.d(f, {
71
+ __wbg_Error_ef53bc310eb298a0: () => b,
72
+ __wbg_set_wasm: () => R,
73
+ decompress_and_parse_bigwig: () => h,
74
+ decompress_and_parse_summary: () => g,
75
+ inflate_raw: () => _,
76
+ inflate_raw_batch: () => v,
77
+ inflate_raw_unknown_size: () => y
78
+ });
79
+ var p = "data:application/wasm;base64,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AkH4AXEiAkHQnMAAaiEGIAJB2JzAAGooAgAhAgsgBiAANgIIIAIgADYCDCAAIAY2AgwgACACNgIIDAELIAggAiADaiIAQQNyNgIEIAggAGoiACAAKAIEQQFyNgIECyAIQQhqIgANAQsCQAJAAkACQAJAAkBBACgC4J5AIgAgA08NAAJAQQAoAuSeQCIAIANLDQAgAUEEakGEn8AAIANBr4AEakGAgHxxECsCQCABKAIEIgYNAEEAIQAMCAsgASgCDCEFQQBBACgC8J5AIAEoAggiCWoiADYC8J5AQQAgAEEAKAL0nkAiAiAAIAJLGzYC9J5AAkACQAJAQQAoAuyeQCICRQ0AQcCcwAAhAANAIAYgACgCACIIIAAoAgQiB2pGDQIgACgCCCIADQAMAwsLAkACQEEAKAL8nkAiAEUNACAGIABPDQELQQAgBjYC/J5AC0EAQf8fNgKAn0BBACAFNgLMnEBBACAJNgLEnEBBACAGNgLAnEBBAEHQnMAANgLcnEBBAEHYnMAANgLknEBBAEHQnMAANgLYnEBBAEHgnMAANgLsnEBBAEHYnMAANgLgnEBBAEHonMAANgL0nEBBAEHgnMAANgLonEBBAEHwnMAANgL8nEBBAEHonMAANgLwnEBBAEH4nMAANgKEnUBBAEHwnMAANgL4nEBBAEGAncAANgKMnUBBAEH4nMAANgKAnUBBAEGIncAANgKUnUBBAEGAncAANgKInUBBAEGQncAANgKcnUBBAEGIncAANgKQnUBBAEGQncAANgKYnUBBAEGYncAANgKknUBBAEGYncAANgKgnUBBAEGgncAANgKsnUBBAEGgncAANgKonUBBAEGoncAANgK0nUBBAEGoncAANgKwnUBBAEGwncAANgK8nUBBAEGwncAANgK4nUBBAEG4ncAANgLEnUBBAEG4ncAANgLAnUBBAEHAncAANgLMnUBBAEHAncAANgLInUBBAEHIncAANgLUnUBBAEHIncAANgLQnUBBAEHQncAANgLcnUBBAEHYncAANgLknUBBAEHQncAANgLYnUBBAEHgncAANgLsnUBBAEHYncAANgLgnUBBAEHoncAANgL0nUBBAEHgncAANgLonUBBAEHwncAANgL8nUBBAEHoncAANgLwnUBBAEH4ncAANgKEnkBBAEHwncAANgL4nUBBAEGAnsAANgKM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EGsiASQAIAEgACkCADcCCCABQQhqQdCUwAAgACgCCEEBQQAQGAALLAIBfwF+IwBBEGsiASQAIAApAgAhAiABIAA2AgwgASACNwIEIAFBBGoQawALIwEBfyMAQRBrIgIkACACIAE2AgwgAiAANgIIIAJBCGoQagALIAACQCABKAIARQ0AIABBiJfAADYCBCAAIAE2AgAPCwALHgEBfwJAIAAoAgAiAkUNACABIAIgACgCBBBTDwsACx8AIAFB04fAAEHMh8AAIAAtAAAiABtBEUEHIAAbEFMLGwEBfxBvIABBBGpBBBBgIgEgADYCACABQQRqCx4BAX8CQCAAKAIAIgFBAUgNACAAKAIEIAFBARBaCwseACAAKAIAIAAoAgRBACgCrJtAIgBBBCAAGxEEAAALIwEBfwJAQcyJwAAQMSIADQBBgInAAEE6QbyJwAAQPAALIAALHwACQCAAQYCAgIB4ckGAgICAeEYNACABIABBARBaCwscAQF/AkAgACgCACIBRQ0AIAAoAgQgAUEBEFoLCxcAAkAgAUEJSQ0AIAEgABAODwsgABABCxwBAX8CQCAAKAIAIgFFDQAgACgCBCABQQEQWgsLFQAgAEF8aiIAIAAoAgBBBGpBBBBaCxQAAkAgAEUNACAAIAEQZAALEF0ACxEAIAAgAUEBdEEBciACEDYACxIAAkAgAUUNACAAIAEgAhBaCwsSACAAIAEgAiADIARBACAFEAILFQACQCAARQ0AIAAgACgCqFoRAgALCxoAIABBACkC1JVANwIIIABBACkCzJVANwIACxoAIABBACkCxJVANwIIIABBACkCvJVANwIACxYAIAAoAgAgASACIAAoAgQoAgwRBwALFAAgACgCACABIAAoAgQoAgwRBQALDQAgACABIAIgAxAIDwsUAEEAIAA2AoSbQEEAQQE2AoCbQAsTACAAQYiXwAA2AgQgACABNgIACxAAIAEgACgCACAAKAIEEFMLEAAgASAAKAIAIAAoAgQQCwsLACAAIAEgAhAsDwsKACAAIAEQbhoACw8AIABB7JTAACABIAIQDAsRAEHgl8AAQSNB9JfAABA2AAsPACAAQYSYwAAgASACEAwLCwAgACMAaiQAIwALCQAgACABEEkPCwkAIAAgARAzDwsJACABIAAQPwALDAAgACABKQIANwMACwkAIAEgABBiAAsNACABQZSZwABBBRBTCw0AIAFB4ZrAAEEYEAsLCAAgACABEAALCQAgACgCABBQCwcAIAAQPQALBwAgABBFAAsHACAAECgACwsAQQBBAToAhJ9ACwkAIABBADYCAAsFABBwAAsDAA8LAwAACwuPGwIAQYCAwAAL+RoWc2xpY2UgaW5kZXggc3RhcnRzIGF0IMANIGJ1dCBlbmRzIGF0IMAAIGluZGV4IG91dCBvZiBib3VuZHM6IHRoZSBsZW4gaXMgwBIgYnV0IHRoZSBpbmRleCBpcyDAABJyYW5nZSBzdGFydCBpbmRleCDAIiBvdXQgb2YgcmFuZ2UgZm9yIHNsaWNlIG9mIGxlbmd0aCDAABByYW5nZSBlbmQgaW5kZXggwCIgb3V0IG9mIHJhbmdlIGZvciBzbGljZSBvZiBsZW5ndGggwAAWZGVjb21wcmVzc2lvbiBmYWlsZWQ6IMAAwAI6IMAAL3J1c3RjL2FjNjhmYWEyMGM1OGNiY2NkMDFlZTcyMDhiZjNiNmU5M2E3ZDdmOTYvbGlicmFyeS9hbGxvYy9zcmMvZm10LnJzAC9ydXN0Yy9hYzY4ZmFhMjBjNThjYmNjZDAxZWU3MjA4YmYzYjZlOTNhN2Q3Zjk2L2xpYnJhcnkvc3RkL3NyYy9zeXMvc3luYy9yd2xvY2svbm9fdGhyZWFkcy5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi93YXNtLWJpbmRnZW4tMC4yLjEyMi9zcmMvZXh0ZXJucmVmLnJzAC9ydXN0Yy9hYzY4ZmFhMjBjNThjYmNjZDAxZWU3MjA4YmYzYjZlOTNhN2Q3Zjk2L2xpYnJhcnkvYWxsb2Mvc3JjL3Jhd192ZWMvbW9kLnJzAC9ydXN0L2RlcHMvZGxtYWxsb2MtMC4yLjExL3NyYy9kbG1hbGxvYy5ycwAvaG9tZS9ydW5uZXIvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9pbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zi9saWJkZWZsYXRlci0xLjI1LjIvc3JjL2xpYi5ycwAAAADOAhAACgAAAEAAAAALAAAAzgIQAAoAAABYAAAACwAAAM4CEAAKAAAASQAAABMA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", m = /* @__PURE__ */ d.t(p);
80
+ function h(e, t, n, r, i, a) {
81
+ try {
82
+ let u = L.__wbindgen_add_to_stack_pointer(-16), d = M(e, L.__wbindgen_export), f = I, p = j(t, L.__wbindgen_export), m = I, h = j(n, L.__wbindgen_export), g = I;
83
+ L.decompress_and_parse_bigwig(u, d, f, p, m, h, g, r, i, a);
84
+ var o = T().getInt32(u + 0, !0), s = T().getInt32(u + 4, !0), c = T().getInt32(u + 8, !0);
85
+ if (T().getInt32(u + 12, !0)) throw N(c);
86
+ var l = C(o, s).slice();
87
+ return L.__wbindgen_export2(o, s * 1, 1), l;
88
+ } finally {
89
+ L.__wbindgen_add_to_stack_pointer(16);
90
+ }
91
+ }
92
+ function g(e, t, n, r, i, a, o) {
93
+ try {
94
+ let d = L.__wbindgen_add_to_stack_pointer(-16), f = M(e, L.__wbindgen_export), p = I, m = j(t, L.__wbindgen_export), h = I, g = j(n, L.__wbindgen_export), _ = I;
95
+ L.decompress_and_parse_summary(d, f, p, m, h, g, _, r, i, a, o);
96
+ var s = T().getInt32(d + 0, !0), c = T().getInt32(d + 4, !0), l = T().getInt32(d + 8, !0);
97
+ if (T().getInt32(d + 12, !0)) throw N(l);
98
+ var u = C(s, c).slice();
99
+ return L.__wbindgen_export2(s, c * 1, 1), u;
100
+ } finally {
101
+ L.__wbindgen_add_to_stack_pointer(16);
102
+ }
103
+ }
104
+ function _(e, t) {
105
+ try {
106
+ let o = L.__wbindgen_add_to_stack_pointer(-16), s = M(e, L.__wbindgen_export), c = I;
107
+ L.inflate_raw(o, s, c, t);
108
+ var n = T().getInt32(o + 0, !0), r = T().getInt32(o + 4, !0), i = T().getInt32(o + 8, !0);
109
+ if (T().getInt32(o + 12, !0)) throw N(i);
110
+ var a = C(n, r).slice();
111
+ return L.__wbindgen_export2(n, r * 1, 1), a;
112
+ } finally {
113
+ L.__wbindgen_add_to_stack_pointer(16);
114
+ }
115
+ }
116
+ function v(e, t, n, r) {
117
+ try {
118
+ let c = L.__wbindgen_add_to_stack_pointer(-16), l = M(e, L.__wbindgen_export), u = I, d = j(t, L.__wbindgen_export), f = I, p = j(n, L.__wbindgen_export), m = I;
119
+ L.inflate_raw_batch(c, l, u, d, f, p, m, r);
120
+ var i = T().getInt32(c + 0, !0), a = T().getInt32(c + 4, !0), o = T().getInt32(c + 8, !0);
121
+ if (T().getInt32(c + 12, !0)) throw N(o);
122
+ var s = C(i, a).slice();
123
+ return L.__wbindgen_export2(i, a * 1, 1), s;
124
+ } finally {
125
+ L.__wbindgen_add_to_stack_pointer(16);
126
+ }
127
+ }
128
+ function y(e) {
129
+ try {
130
+ let a = L.__wbindgen_add_to_stack_pointer(-16), o = M(e, L.__wbindgen_export), s = I;
131
+ L.inflate_raw_unknown_size(a, o, s);
132
+ var t = T().getInt32(a + 0, !0), n = T().getInt32(a + 4, !0), r = T().getInt32(a + 8, !0);
133
+ if (T().getInt32(a + 12, !0)) throw N(r);
134
+ var i = C(t, n).slice();
135
+ return L.__wbindgen_export2(t, n * 1, 1), i;
136
+ } finally {
137
+ L.__wbindgen_add_to_stack_pointer(16);
138
+ }
139
+ }
140
+ function b(e, t) {
141
+ return x(Error(ee(e, t)));
142
+ }
143
+ function x(e) {
144
+ A === k.length && k.push(k.length + 1);
145
+ let t = A;
146
+ return A = k[t], k[t] = e, t;
147
+ }
148
+ function S(e) {
149
+ e < 1028 || (k[e] = A, A = e);
150
+ }
151
+ function C(e, t) {
152
+ return e >>>= 0, O().subarray(e / 1, e / 1 + t);
153
+ }
154
+ var w = null;
155
+ function T() {
156
+ return (w === null || w.buffer.detached === !0 || w.buffer.detached === void 0 && w.buffer !== L.memory.buffer) && (w = new DataView(L.memory.buffer)), w;
157
+ }
158
+ function ee(e, t) {
159
+ return ie(e >>> 0, t);
160
+ }
161
+ var E = null;
162
+ function te() {
163
+ return (E === null || E.byteLength === 0) && (E = new Uint32Array(L.memory.buffer)), E;
164
+ }
165
+ var D = null;
166
+ function O() {
167
+ return (D === null || D.byteLength === 0) && (D = new Uint8Array(L.memory.buffer)), D;
168
+ }
169
+ function ne(e) {
170
+ return k[e];
171
+ }
172
+ var k = Array(1024).fill(void 0);
173
+ k.push(void 0, null, !0, !1);
174
+ var A = k.length;
175
+ function j(e, t) {
176
+ let n = t(e.length * 4, 4) >>> 0;
177
+ return te().set(e, n / 4), I = e.length, n;
178
+ }
179
+ function M(e, t) {
180
+ let n = t(e.length * 1, 1) >>> 0;
181
+ return O().set(e, n / 1), I = e.length, n;
182
+ }
183
+ function N(e) {
184
+ let t = ne(e);
185
+ return S(e), t;
186
+ }
187
+ var P = new TextDecoder("utf-8", {
188
+ ignoreBOM: !0,
189
+ fatal: !0
190
+ });
191
+ P.decode();
192
+ var re = 2146435072, F = 0;
193
+ function ie(e, t) {
194
+ return F += t, F >= re && (P = new TextDecoder("utf-8", {
195
+ ignoreBOM: !0,
196
+ fatal: !0
197
+ }), P.decode(), F = t), P.decode(O().subarray(e, e + t));
198
+ }
199
+ var I = 0, L;
200
+ function R(e) {
201
+ L = e;
202
+ }
203
+ R(m);
204
+ var z = null, B = null;
205
+ async function V() {
206
+ return z || (B ||= (async () => {
207
+ let e = await (await fetch(p)).arrayBuffer(), { instance: t } = await WebAssembly.instantiate(e, { "./inflate_wasm_bg.js": f });
208
+ return R(t.exports), z = t.exports, z;
209
+ })(), B);
210
+ }
211
+ async function ae(e, t, n, r) {
212
+ await V();
213
+ let i = v(e, t, n, r), a = new DataView(i.buffer, i.byteOffset, i.byteLength), o = a.getUint32(0, !0), s = 4 + (o + 1) * 4, c = Array(o + 1);
214
+ for (let e = 0; e <= o; e++) c[e] = a.getUint32(4 + e * 4, !0);
215
+ return {
216
+ data: i.subarray(s),
217
+ offsets: c
218
+ };
219
+ }
220
+ function oe(e) {
221
+ let t = new DataView(e.buffer, e.byteOffset, e.byteLength).getUint32(0, !0);
222
+ if (t === 0) return {
223
+ starts: new Int32Array(),
224
+ ends: new Int32Array(),
225
+ scores: new Float32Array()
226
+ };
227
+ let n = 4 + t * 4, r = n + t * 4;
228
+ return {
229
+ starts: new Int32Array(e.buffer, e.byteOffset + 4, t),
230
+ ends: new Int32Array(e.buffer, e.byteOffset + n, t),
231
+ scores: new Float32Array(e.buffer, e.byteOffset + r, t)
232
+ };
233
+ }
234
+ function se(e) {
235
+ let t = new DataView(e.buffer, e.byteOffset, e.byteLength).getUint32(0, !0);
236
+ if (t === 0) return {
237
+ starts: new Int32Array(),
238
+ ends: new Int32Array(),
239
+ scores: new Float32Array(),
240
+ minScores: new Float32Array(),
241
+ maxScores: new Float32Array()
242
+ };
243
+ let n = 4 + t * 4, r = n + t * 4, i = r + t * 4, a = i + t * 4;
244
+ return {
245
+ starts: new Int32Array(e.buffer, e.byteOffset + 4, t),
246
+ ends: new Int32Array(e.buffer, e.byteOffset + n, t),
247
+ scores: new Float32Array(e.buffer, e.byteOffset + r, t),
248
+ minScores: new Float32Array(e.buffer, e.byteOffset + i, t),
249
+ maxScores: new Float32Array(e.buffer, e.byteOffset + a, t)
250
+ };
251
+ }
252
+ async function ce(e, t, n, r, i, a) {
253
+ return await V(), oe(h(e, t, n, r, i, a));
254
+ }
255
+ async function le(e, t, n, r, i, a, o) {
256
+ return await V(), se(g(e, t, n, r, i, a, o));
257
+ }
258
+ //#endregion
259
+ //#region ../../node_modules/@gmod/bbi/esm/unzip.js
260
+ function H(e) {
261
+ let t = new Uint32Array(e.length), n = new Uint32Array(e.length);
262
+ for (let r = 0; r < e.length; r++) {
263
+ let i = e[r];
264
+ t[r] = i.offset, n[r] = i.length;
265
+ }
266
+ return {
267
+ inputOffsets: t,
268
+ inputLengths: n
269
+ };
270
+ }
271
+ async function U(e, t, n) {
272
+ let { inputOffsets: r, inputLengths: i } = H(t);
273
+ return ae(e, r, i, n);
274
+ }
275
+ async function ue(e, t, n, r, i) {
276
+ let { inputOffsets: a, inputLengths: o } = H(t);
277
+ return ce(e, a, o, n, r, i);
278
+ }
279
+ async function de(e, t, n, r, i, a) {
280
+ let { inputOffsets: o, inputLengths: s } = H(t);
281
+ return le(e, o, s, n, r, i, a);
282
+ }
283
+ //#endregion
284
+ //#region ../../node_modules/@gmod/bbi/esm/util.js
285
+ var W = new TextDecoder("utf8");
286
+ function G(e, t = 0) {
287
+ return new DataView(e.buffer, e.byteOffset + t, e.length - t);
288
+ }
289
+ function K(e, t, n) {
290
+ let r = e.indexOf(0, t), i = r !== -1 && r < t + n ? r : t + n;
291
+ return W.decode(e.subarray(t, i));
292
+ }
293
+ function q(e) {
294
+ e.sort((e, t) => e.offset - t.offset);
295
+ let t = [], n, r;
296
+ for (let i of e) n && i.offset - r <= 2e3 ? (n.length = i.offset + i.length - n.offset, n.blocks.push(i), r = i.offset + i.length) : (n = {
297
+ blocks: [i],
298
+ length: i.length,
299
+ offset: i.offset
300
+ }, t.push(n), r = i.offset + i.length);
301
+ return t;
302
+ }
303
+ //#endregion
304
+ //#region ../../node_modules/@gmod/bbi/esm/block-view.js
305
+ var J = 610839776;
306
+ function Y(e, t, n, r) {
307
+ return e < r && t > n;
308
+ }
309
+ function fe(e, t) {
310
+ let n = [], r = 0, i = G(e);
311
+ for (; r < e.byteLength;) {
312
+ let e = i.getUint32(r, !0);
313
+ r += 4;
314
+ let a = i.getUint32(r, !0);
315
+ r += 4;
316
+ let o = i.getUint32(r, !0);
317
+ r += 4;
318
+ let s = i.getUint32(r, !0);
319
+ r += 4;
320
+ let c = i.getFloat32(r, !0);
321
+ r += 4;
322
+ let l = i.getFloat32(r, !0);
323
+ r += 4;
324
+ let u = i.getFloat32(r, !0);
325
+ r += 8, (!t || e === t.chrId && Y(a, o, t.start, t.end)) && n.push({
326
+ start: a,
327
+ end: o,
328
+ maxScore: l,
329
+ minScore: c,
330
+ summary: !0,
331
+ score: s ? u / s : 0
332
+ });
333
+ }
334
+ return n;
335
+ }
336
+ function pe(e, t, n) {
337
+ let r = [], i = 0, a = G(e);
338
+ for (; i < e.byteLength;) {
339
+ let o = i, s = a.getUint32(i, !0);
340
+ i += 4;
341
+ let c = a.getInt32(i, !0);
342
+ i += 4;
343
+ let l = a.getInt32(i, !0);
344
+ i += 4;
345
+ let u = e.indexOf(0, i), d = u === -1 ? e.length : u, f = W.decode(e.subarray(i, d));
346
+ i = d + 1, (!n || s === n.chrId && Y(c, l, n.start, n.end)) && r.push({
347
+ start: c,
348
+ end: l,
349
+ rest: f,
350
+ uniqueId: `bb-${t}-${o}`
351
+ });
352
+ }
353
+ return r;
354
+ }
355
+ function me(e, t) {
356
+ let n = G(e), r = n.getInt32(4, !0), i = n.getUint32(12, !0), a = n.getUint32(16, !0), o = n.getUint8(20), s = n.getUint16(22, !0), c = 24, l = [];
357
+ switch (o) {
358
+ case 1:
359
+ for (let e = 0; e < s; e++) {
360
+ let e = n.getInt32(c, !0);
361
+ c += 4;
362
+ let r = n.getInt32(c, !0);
363
+ c += 4;
364
+ let i = n.getFloat32(c, !0);
365
+ c += 4, (!t || Y(e, r, t.start, t.end)) && l.push({
366
+ start: e,
367
+ end: r,
368
+ score: i
369
+ });
370
+ }
371
+ break;
372
+ case 2:
373
+ for (let e = 0; e < s; e++) {
374
+ let e = n.getInt32(c, !0);
375
+ c += 4;
376
+ let r = n.getFloat32(c, !0);
377
+ c += 4;
378
+ let i = e + a;
379
+ (!t || Y(e, i, t.start, t.end)) && l.push({
380
+ score: r,
381
+ start: e,
382
+ end: i
383
+ });
384
+ }
385
+ break;
386
+ case 3:
387
+ for (let e = 0; e < s; e++) {
388
+ let o = n.getFloat32(c, !0);
389
+ c += 4;
390
+ let s = r + e * i, u = s + a;
391
+ (!t || Y(s, u, t.start, t.end)) && l.push({
392
+ score: o,
393
+ start: s,
394
+ end: u
395
+ });
396
+ }
397
+ break;
398
+ }
399
+ return l;
400
+ }
401
+ function he(e, t) {
402
+ let n = G(e), r = n.getInt32(4, !0), i = n.getUint32(12, !0), a = n.getUint32(16, !0), o = n.getUint8(20), s = n.getUint16(22, !0), c = new Int32Array(s), l = new Int32Array(s), u = new Float32Array(s);
403
+ if (!t) {
404
+ switch (o) {
405
+ case 1: {
406
+ let e = 24;
407
+ for (let t = 0; t < s; t++) c[t] = n.getInt32(e, !0), l[t] = n.getInt32(e + 4, !0), u[t] = n.getFloat32(e + 8, !0), e += 12;
408
+ return {
409
+ starts: c,
410
+ ends: l,
411
+ scores: u
412
+ };
413
+ }
414
+ case 2: {
415
+ let e = 24;
416
+ for (let t = 0; t < s; t++) {
417
+ let r = n.getInt32(e, !0);
418
+ c[t] = r, l[t] = r + a, u[t] = n.getFloat32(e + 4, !0), e += 8;
419
+ }
420
+ return {
421
+ starts: c,
422
+ ends: l,
423
+ scores: u
424
+ };
425
+ }
426
+ case 3: {
427
+ let e = 24;
428
+ for (let t = 0; t < s; t++) {
429
+ let o = r + t * i;
430
+ c[t] = o, l[t] = o + a, u[t] = n.getFloat32(e, !0), e += 4;
431
+ }
432
+ return {
433
+ starts: c,
434
+ ends: l,
435
+ scores: u
436
+ };
437
+ }
438
+ }
439
+ return {
440
+ starts: c,
441
+ ends: l,
442
+ scores: u
443
+ };
444
+ }
445
+ let d = t.start, f = t.end, p = 0;
446
+ switch (o) {
447
+ case 1: {
448
+ let e = 24;
449
+ for (let t = 0; t < s; t++) {
450
+ let t = n.getInt32(e, !0), r = n.getInt32(e + 4, !0);
451
+ t < f && r > d && (c[p] = t, l[p] = r, u[p] = n.getFloat32(e + 8, !0), p++), e += 12;
452
+ }
453
+ break;
454
+ }
455
+ case 2: {
456
+ let e = 24;
457
+ for (let t = 0; t < s; t++) {
458
+ let t = n.getInt32(e, !0), r = t + a;
459
+ t < f && r > d && (c[p] = t, l[p] = r, u[p] = n.getFloat32(e + 4, !0), p++), e += 8;
460
+ }
461
+ break;
462
+ }
463
+ case 3: {
464
+ let e = 24;
465
+ for (let t = 0; t < s; t++) {
466
+ let o = r + t * i, s = o + a;
467
+ o < f && s > d && (c[p] = o, l[p] = s, u[p] = n.getFloat32(e, !0), p++), e += 4;
468
+ }
469
+ break;
470
+ }
471
+ }
472
+ return p < s ? {
473
+ starts: c.subarray(0, p),
474
+ ends: l.subarray(0, p),
475
+ scores: u.subarray(0, p)
476
+ } : {
477
+ starts: c,
478
+ ends: l,
479
+ scores: u
480
+ };
481
+ }
482
+ function ge(e, t) {
483
+ let n = G(e), r = Math.floor(e.byteLength / 32), i = new Int32Array(r), a = new Int32Array(r), o = new Float32Array(r), s = new Float32Array(r), c = new Float32Array(r), l = 0, u = 0;
484
+ for (; u < e.byteLength;) {
485
+ let e = n.getUint32(u, !0);
486
+ u += 4;
487
+ let r = n.getUint32(u, !0);
488
+ u += 4;
489
+ let d = n.getUint32(u, !0);
490
+ u += 4;
491
+ let f = n.getUint32(u, !0);
492
+ u += 4;
493
+ let p = n.getFloat32(u, !0);
494
+ u += 4;
495
+ let m = n.getFloat32(u, !0);
496
+ u += 4;
497
+ let h = n.getFloat32(u, !0);
498
+ u += 8, (!t || e === t.chrId && Y(r, d, t.start, t.end)) && (i[l] = r, a[l] = d, o[l] = f ? h / f : 0, s[l] = p, c[l] = m, l++);
499
+ }
500
+ return l < r ? {
501
+ starts: i.subarray(0, l),
502
+ ends: a.subarray(0, l),
503
+ scores: o.subarray(0, l),
504
+ minScores: s.subarray(0, l),
505
+ maxScores: c.subarray(0, l)
506
+ } : {
507
+ starts: i,
508
+ ends: a,
509
+ scores: o,
510
+ minScores: s,
511
+ maxScores: c
512
+ };
513
+ }
514
+ function X(e, t, n) {
515
+ if (e.length === 1) return e[0];
516
+ let r = new n(t), i = 0;
517
+ for (let t of e) r.set(t, i), i += t.length;
518
+ return r;
519
+ }
520
+ function Z(e, t, n, r) {
521
+ switch (e) {
522
+ case "summary": return fe(t, r);
523
+ case "bigwig": return me(t, r);
524
+ case "bigbed": return pe(t, n, r);
525
+ default: return console.warn(`Don't know what to do with ${e}`), [];
526
+ }
527
+ }
528
+ var _e = class {
529
+ bbi;
530
+ refsByName;
531
+ rTreeOffset;
532
+ uncompressBufSize;
533
+ blockType;
534
+ rTreePromise;
535
+ rTreeNodeCache = new r({
536
+ cache: new e({ maxSize: 1e3 }),
537
+ fill: async ({ length: e, offset: t }, n) => this.bbi.read(e, t, { signal: n })
538
+ });
539
+ constructor(e, t, n, r, i) {
540
+ if (this.bbi = e, this.refsByName = t, this.rTreeOffset = n, this.uncompressBufSize = r, this.blockType = i, !(n >= 0)) throw Error("invalid rTreeOffset!");
541
+ }
542
+ async _collectBlocks(e, t, n, r) {
543
+ let i = this.refsByName[e];
544
+ if (i === void 0) return;
545
+ this.rTreePromise ||= this.bbi.read(48, this.rTreeOffset, r).catch((e) => {
546
+ throw this.rTreePromise = void 0, e;
547
+ });
548
+ let a = G(await this.rTreePromise), o = a.getUint32(0, !0);
549
+ if (o !== J) throw Error(`invalid cirTree magic: 0x${o.toString(16)} (expected 0x${J.toString(16)}) at offset ${this.rTreeOffset}, file may be corrupt or unsupported`);
550
+ let s = 4 + a.getUint32(4, !0) * 32, l = (e, r, a, o) => (e < i || e === i && r <= n) && (a > i || a === i && o >= t), u = [], d = [this.rTreeOffset + 48];
551
+ for (; d.length > 0;) {
552
+ let e = c(d.map((e) => ({
553
+ min: e,
554
+ max: e + s
555
+ }))), t = [];
556
+ for (let { min: n, max: i } of e) {
557
+ let e = i - n, a = n, o = await this.rTreeNodeCache.get(`${e}_${a}`, {
558
+ length: e,
559
+ offset: a
560
+ }, r?.signal);
561
+ for (let e of d) if (n <= e && e <= i) {
562
+ let n = G(o.subarray(e - a)), r = n.getUint8(0), i = n.getUint16(2, !0);
563
+ if (r === 1 || r === 0) {
564
+ let e = r === 1 ? 32 : 24, a = 4;
565
+ for (let o = 0; o < i; o++) {
566
+ if (l(n.getUint32(a, !0), n.getUint32(a + 4, !0), n.getUint32(a + 8, !0), n.getUint32(a + 12, !0))) {
567
+ let e = Number(n.getBigUint64(a + 16, !0));
568
+ if (r === 1) {
569
+ let t = Number(n.getBigUint64(a + 24, !0));
570
+ u.push({
571
+ offset: e,
572
+ length: t
573
+ });
574
+ } else t.push(e);
575
+ }
576
+ a += e;
577
+ }
578
+ }
579
+ }
580
+ }
581
+ d = t;
582
+ }
583
+ return {
584
+ blocks: u,
585
+ chrId: i
586
+ };
587
+ }
588
+ async readWigData(e, t, n, r) {
589
+ let i = await this._collectBlocks(e, t, n, r);
590
+ if (!i) return [];
591
+ let { blocks: a, chrId: o } = i;
592
+ return this.readFeatures(a, {
593
+ ...r,
594
+ request: {
595
+ chrId: o,
596
+ start: t,
597
+ end: n
598
+ }
599
+ });
600
+ }
601
+ async readWigDataMulti(e, t = {}) {
602
+ let n = e.map(() => []), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map();
603
+ for (let n = 0; n < e.length; n++) {
604
+ let { refName: a, start: o, end: s } = e[n], c = await this._collectBlocks(a, o, s, t);
605
+ if (c) {
606
+ let e = {
607
+ chrId: c.chrId,
608
+ start: o,
609
+ end: s
610
+ };
611
+ for (let t of c.blocks) {
612
+ let a = i.get(t.offset);
613
+ a ? a.push({
614
+ regionIndex: n,
615
+ request: e
616
+ }) : (r.set(t.offset, t), i.set(t.offset, [{
617
+ regionIndex: n,
618
+ request: e
619
+ }]));
620
+ }
621
+ }
622
+ }
623
+ let { blockType: a, uncompressBufSize: o } = this, { signal: s } = t, c = (e, t) => {
624
+ let r = i.get(t);
625
+ if (r) for (let { regionIndex: i, request: o } of r) {
626
+ let r = Z(a, e, t, o);
627
+ for (let e of r) n[i].push(e);
628
+ }
629
+ };
630
+ for (let e of q([...r.values()])) {
631
+ let t = await this.bbi.read(e.length, e.offset, { signal: s }), n = e.offset, r = e.blocks;
632
+ if (o > 0) {
633
+ let { data: e, offsets: i } = await U(t, r.map((e) => ({
634
+ offset: e.offset - n,
635
+ length: e.length
636
+ })), o);
637
+ for (let t = 0; t < r.length; t++) c(e.subarray(i[t], i[t + 1]), r[t].offset);
638
+ } else for (let e of r) {
639
+ let r = e.offset - n;
640
+ c(t.subarray(r, r + e.length), e.offset);
641
+ }
642
+ }
643
+ return n;
644
+ }
645
+ async readWigDataAsArrays(e, t, n, r) {
646
+ let i = await this._collectBlocks(e, t, n, r);
647
+ return this.blockType === "summary" ? i ? this._readSummaryFeaturesAsArrays(i.blocks, {
648
+ chrId: i.chrId,
649
+ start: t,
650
+ end: n
651
+ }, r) : {
652
+ starts: new Int32Array(),
653
+ ends: new Int32Array(),
654
+ scores: new Float32Array(),
655
+ minScores: new Float32Array(),
656
+ maxScores: new Float32Array(),
657
+ isSummary: !0
658
+ } : i ? this._readBigWigFeaturesAsArrays(i.blocks, {
659
+ chrId: i.chrId,
660
+ start: t,
661
+ end: n
662
+ }, r) : {
663
+ starts: new Int32Array(),
664
+ ends: new Int32Array(),
665
+ scores: new Float32Array(),
666
+ isSummary: !1
667
+ };
668
+ }
669
+ async readFeatures(e, t = {}) {
670
+ let { blockType: n, uncompressBufSize: r } = this, { signal: i, request: a } = t, o = q(e), s = [];
671
+ for (let e of o) {
672
+ let t = await this.bbi.read(e.length, e.offset, { signal: i }), o = e.offset, c = e.blocks;
673
+ if (r > 0) {
674
+ let { data: e, offsets: i } = await U(t, c.map((e) => ({
675
+ offset: e.offset - o,
676
+ length: e.length
677
+ })), r);
678
+ for (let t = 0; t < c.length; t++) {
679
+ let r = Z(n, e.subarray(i[t], i[t + 1]), c[t].offset, a);
680
+ for (let e of r) s.push(e);
681
+ }
682
+ } else for (let e of c) {
683
+ let r = e.offset - o, i = Z(n, t.subarray(r, r + e.length), e.offset, a);
684
+ for (let e of i) s.push(e);
685
+ }
686
+ }
687
+ return s;
688
+ }
689
+ async _readBlocksAsArrays(e, t, n, r, i) {
690
+ let a = [];
691
+ for (let o of q(e)) {
692
+ let e = await this.bbi.read(o.length, o.offset, { signal: t }), s = o.blocks.map((e) => ({
693
+ offset: e.offset - o.offset,
694
+ length: e.length
695
+ }));
696
+ if (this.uncompressBufSize > 0) {
697
+ let t = await n(e, s);
698
+ i(t) > 0 && a.push(t);
699
+ } else for (let t of s) {
700
+ let n = r(e.subarray(t.offset, t.offset + t.length));
701
+ i(n) > 0 && a.push(n);
702
+ }
703
+ }
704
+ return a;
705
+ }
706
+ async _readBigWigFeaturesAsArrays(e, t, n = {}) {
707
+ let r = await this._readBlocksAsArrays(e, n.signal, (e, n) => ue(e, n, this.uncompressBufSize, t.start, t.end), (e) => he(e, t), (e) => e.starts.length), i = r.reduce((e, t) => e + t.starts.length, 0);
708
+ return {
709
+ starts: X(r.map((e) => e.starts), i, Int32Array),
710
+ ends: X(r.map((e) => e.ends), i, Int32Array),
711
+ scores: X(r.map((e) => e.scores), i, Float32Array),
712
+ isSummary: !1
713
+ };
714
+ }
715
+ async _readSummaryFeaturesAsArrays(e, t, n = {}) {
716
+ let r = await this._readBlocksAsArrays(e, n.signal, (e, n) => de(e, n, this.uncompressBufSize, t.chrId, t.start, t.end), (e) => ge(e, t), (e) => e.starts.length), i = r.reduce((e, t) => e + t.starts.length, 0);
717
+ return {
718
+ starts: X(r.map((e) => e.starts), i, Int32Array),
719
+ ends: X(r.map((e) => e.ends), i, Int32Array),
720
+ scores: X(r.map((e) => e.scores), i, Float32Array),
721
+ minScores: X(r.map((e) => e.minScores), i, Float32Array),
722
+ maxScores: X(r.map((e) => e.maxScores), i, Float32Array),
723
+ isSummary: !0
724
+ };
725
+ }
726
+ }, ve = -2003829722, Q = -2021002517, $ = class {
727
+ bbi;
728
+ headerP;
729
+ renameRefSeqs;
730
+ getHeader(e) {
731
+ return this.headerP ||= this._getHeader(e).catch((e) => {
732
+ throw this.headerP = void 0, e;
733
+ }), this.headerP;
734
+ }
735
+ constructor(e) {
736
+ let { filehandle: r, renameRefSeqs: i = (e) => e, path: a, url: o } = e;
737
+ if (this.renameRefSeqs = i, r) this.bbi = r;
738
+ else if (o) this.bbi = new n(o);
739
+ else if (a) this.bbi = new t(a);
740
+ else throw Error("no file given");
741
+ }
742
+ async _getHeader(e) {
743
+ let t = await this._getMainHeader(e), n = await this._readChromosomeTree(t, e);
744
+ return {
745
+ ...t,
746
+ ...n
747
+ };
748
+ }
749
+ async _getMainHeader(e, t = 2e3) {
750
+ let n = await this.bbi.read(t, 0, e), r = G(n), i = 0, a = r.getInt32(i, !0);
751
+ if (i += 4, a !== ve && a !== Q) throw Error("not a BigWig/BigBed file");
752
+ let o = r.getUint16(i, !0);
753
+ i += 2;
754
+ let s = r.getUint16(i, !0);
755
+ i += 2;
756
+ let c = Number(r.getBigUint64(i, !0));
757
+ i += 8;
758
+ let l = Number(r.getBigUint64(i, !0));
759
+ i += 8;
760
+ let u = Number(r.getBigUint64(i, !0));
761
+ i += 8;
762
+ let d = r.getUint16(i, !0);
763
+ i += 2;
764
+ let f = r.getUint16(i, !0);
765
+ i += 2;
766
+ let p = Number(r.getBigUint64(i, !0));
767
+ i += 8;
768
+ let m = Number(r.getBigUint64(i, !0));
769
+ i += 8;
770
+ let h = r.getUint32(i, !0);
771
+ i += 4;
772
+ let g = Number(r.getBigUint64(i, !0));
773
+ i += 8;
774
+ let _ = [];
775
+ for (let e = 0; e < s; e++) {
776
+ let e = r.getUint32(i, !0);
777
+ i += 4, i += 4;
778
+ let t = Number(r.getBigUint64(i, !0));
779
+ i += 8;
780
+ let n = Number(r.getBigUint64(i, !0));
781
+ i += 8, _.push({
782
+ reductionLevel: e,
783
+ dataOffset: t,
784
+ indexOffset: n
785
+ });
786
+ }
787
+ let v = a === Q ? "bigbed" : "bigwig", y = n.length < t, b = p !== 0 && !n.includes(0, p);
788
+ if (!y && (p > t || m > t - 40 || b)) return this._getMainHeader(e, t * 2);
789
+ let x;
790
+ if (m) {
791
+ let e = G(n, m);
792
+ x = {
793
+ basesCovered: Number(e.getBigUint64(0, !0)),
794
+ scoreMin: e.getFloat64(8, !0),
795
+ scoreMax: e.getFloat64(16, !0),
796
+ scoreSum: e.getFloat64(24, !0),
797
+ scoreSumSquares: e.getFloat64(32, !0)
798
+ };
799
+ } else throw Error("no stats");
800
+ let S = "";
801
+ if (p) {
802
+ let e = n.indexOf(0, p), t = e === -1 ? n.length : e;
803
+ S = W.decode(n.subarray(p, t));
804
+ }
805
+ return {
806
+ zoomLevels: _,
807
+ magic: a,
808
+ extHeaderOffset: g,
809
+ numZoomLevels: s,
810
+ fieldCount: d,
811
+ totalSummary: x,
812
+ definedFieldCount: f,
813
+ uncompressBufSize: h,
814
+ asOffset: p,
815
+ chromosomeTreeOffset: c,
816
+ totalSummaryOffset: m,
817
+ unzoomedDataOffset: l,
818
+ unzoomedIndexOffset: u,
819
+ fileType: v,
820
+ version: o,
821
+ autoSql: S
822
+ };
823
+ }
824
+ async _readChromosomeTree(e, t) {
825
+ let n = [], r = {}, i = e.chromosomeTreeOffset, a = G(await this.bbi.read(32, i, t)), o = a.getUint32(8, !0), s = a.getUint32(12, !0), c = async (e) => {
826
+ let i = G(await this.bbi.read(4, e, t)), a = i.getUint8(0), l = i.getUint16(2, !0);
827
+ if (a) {
828
+ let i = await this.bbi.read(l * (o + s), e + 4, t), a = G(i), c = 0;
829
+ for (let e = 0; e < l; e++) {
830
+ let e = K(i, c, o);
831
+ c += o;
832
+ let t = a.getUint32(c, !0);
833
+ c += 4;
834
+ let s = a.getUint32(c, !0);
835
+ c += 4, r[this.renameRefSeqs(e)] = t, n[t] = {
836
+ name: e,
837
+ id: t,
838
+ length: s
839
+ };
840
+ }
841
+ } else {
842
+ let n = G(await this.bbi.read(l * (o + 8), e + 4, t)), r = [], i = 0;
843
+ for (let e = 0; e < l; e++) {
844
+ i += o;
845
+ let e = Number(n.getBigUint64(i, !0));
846
+ i += 8, r.push(c(e));
847
+ }
848
+ await Promise.all(r);
849
+ }
850
+ };
851
+ return await c(i + 32), {
852
+ refsByName: r,
853
+ refsByNumber: n
854
+ };
855
+ }
856
+ viewCache = /* @__PURE__ */ new Map();
857
+ getOrCreateBlockView(e, t, n, r) {
858
+ let i = `${t}_${r}`, a = this.viewCache.get(i);
859
+ return a || (a = new _e(this.bbi, e, t, n, r), this.viewCache.set(i, a)), a;
860
+ }
861
+ async getUnzoomedView(e) {
862
+ let { unzoomedIndexOffset: t, refsByName: n, uncompressBufSize: r, fileType: i } = await this.getHeader(e);
863
+ return this.getOrCreateBlockView(n, t, r, i);
864
+ }
865
+ async _getView(e) {
866
+ let { basesPerSpan: t, scale: n } = e || {}, r = t ? 1 / t : n ?? 1;
867
+ return this.getView(r, e);
868
+ }
869
+ async getFeatures(e, t, n, r) {
870
+ return (await this._getView(r)).readWigData(this.renameRefSeqs(e), t, n, r);
871
+ }
872
+ async getFeaturesMulti(e, t) {
873
+ return (await this._getView(t)).readWigDataMulti(e.map((e) => ({
874
+ refName: this.renameRefSeqs(e.refName),
875
+ start: e.start,
876
+ end: e.end
877
+ })), t);
878
+ }
879
+ async getFeaturesAsArrays(e, t, n, r) {
880
+ return (await this._getView(r)).readWigDataAsArrays(this.renameRefSeqs(e), t, n, r);
881
+ }
882
+ }, ye = class extends $ {
883
+ async getView(e, t) {
884
+ let { zoomLevels: n, refsByName: r, uncompressBufSize: i } = await this.getHeader(t), a = 1 / e, o = n.length - 1;
885
+ for (let e = o; e >= 0; --e) {
886
+ let t = n[e];
887
+ if (t.reductionLevel <= 2 * a) return this.getOrCreateBlockView(r, t.indexOffset, i, "summary");
888
+ }
889
+ return this.getUnzoomedView(t);
890
+ }
891
+ };
892
+ //#endregion
893
+ //#region ../../node_modules/@gmod/bbi/esm/bigbed.js
894
+ function be(e, t) {
895
+ if (t < 0) return;
896
+ let n = 0;
897
+ for (let r = 0; r < t; r++) {
898
+ if (n = e.indexOf(" ", n), n === -1) return;
899
+ n++;
900
+ }
901
+ let r = e.indexOf(" ", n);
902
+ return r === -1 ? e.slice(n) : e.slice(n, r);
903
+ }
904
+ async function xe(e, t, n, r, i, a, o, s) {
905
+ let c = 4 + n * (r + i), l = await e.read(c, t, s), u = G(l), d = u.getInt8(0), f = u.getInt16(2, !0), p = 4;
906
+ if (d === 0) {
907
+ let t = [];
908
+ for (let e = 0; e < f; e++) {
909
+ let e = K(l, p, r);
910
+ p += r;
911
+ let n = Number(u.getBigUint64(p, !0));
912
+ p += 8, t.push({
913
+ key: e,
914
+ offset: n
915
+ });
916
+ }
917
+ let c = 0, d = t.length - 1, m = -1;
918
+ for (; c <= d;) {
919
+ let e = Math.floor((c + d) / 2);
920
+ a.localeCompare(t[e].key) >= 0 ? (m = e, c = e + 1) : d = e - 1;
921
+ }
922
+ let h = t[Math.max(m, 0)].offset;
923
+ return xe(e, h, n, r, i, a, o, s);
924
+ } else if (d === 1) {
925
+ let e = [];
926
+ for (let t = 0; t < f; t++) {
927
+ let t = K(l, p, r);
928
+ p += r;
929
+ let n = Number(u.getBigUint64(p, !0));
930
+ p += 8;
931
+ let i = u.getUint32(p, !0);
932
+ p += 4, p += 4, e.push({
933
+ key: t,
934
+ offset: n,
935
+ length: i
936
+ });
937
+ }
938
+ let t = 0, n = e.length - 1;
939
+ for (; t <= n;) {
940
+ let r = Math.floor((t + n) / 2), i = a.localeCompare(e[r].key);
941
+ if (i === 0) return {
942
+ ...e[r],
943
+ field: o
944
+ };
945
+ i < 0 ? n = r - 1 : t = r + 1;
946
+ }
947
+ return;
948
+ }
949
+ }
950
+ var Se = class extends $ {
951
+ indicesP;
952
+ readIndices(e = {}) {
953
+ return this.indicesP ||= this._readIndices(e).catch((e) => {
954
+ throw this.indicesP = void 0, e;
955
+ }), this.indicesP;
956
+ }
957
+ async getView(e, t) {
958
+ return this.getUnzoomedView(t);
959
+ }
960
+ async _readIndices(e) {
961
+ let { extHeaderOffset: t } = await this.getHeader(e), n = G(await this.bbi.read(64, t, e)), r = n.getUint16(2, !0), i = Number(n.getBigUint64(4, !0));
962
+ if (r === 0) return [];
963
+ let a = 20 * r, o = await this.bbi.read(a, i, e), s = [];
964
+ for (let e = 0; e < r; e += 1) {
965
+ let t = G(o, e * 20), n = t.getInt16(0, !0), r = t.getInt16(2, !0), i = Number(t.getBigUint64(4, !0)), a = t.getInt16(16, !0);
966
+ s.push({
967
+ type: n,
968
+ fieldcount: r,
969
+ offset: i,
970
+ field: a
971
+ });
972
+ }
973
+ return s;
974
+ }
975
+ async searchExtraIndexBlocks(e, t = {}) {
976
+ let n = await this.readIndices(t);
977
+ if (n.length === 0) return [];
978
+ let r = n.map(async (n) => {
979
+ let { offset: r, field: i } = n, a = G(await this.bbi.read(32, r, t)), o = a.getInt32(4, !0), s = a.getInt32(8, !0), c = a.getInt32(12, !0);
980
+ return xe(this.bbi, r + 32, o, s, c, e, i, t);
981
+ });
982
+ return (await Promise.all(r)).filter((e) => e !== void 0);
983
+ }
984
+ async searchExtraIndex(e, t = {}) {
985
+ let n = await this.searchExtraIndexBlocks(e, t);
986
+ if (n.length === 0) return [];
987
+ let r = await this.getUnzoomedView(t);
988
+ return (await Promise.all(n.map(async (e) => (await r.readFeatures([e], t)).map((t) => ({
989
+ ...t,
990
+ field: e.field
991
+ }))))).flat().filter((t) => {
992
+ if (!t.rest) return !1;
993
+ let n = (t.field ?? 0) - 3;
994
+ return be(t.rest, n) === e;
995
+ });
996
+ }
997
+ };
998
+ //#endregion
999
+ //#region ../../node_modules/@gmod/bbi/esm/parse-bigwig.js
1000
+ async function Ce(e, t) {
1001
+ let n = await e.getHeader(t), r = [];
1002
+ for (let i of Object.values(n.refsByNumber)) {
1003
+ let n = await e.getFeaturesAsArrays(i.name, 0, i.length, t);
1004
+ !n.isSummary && n.starts.length > 0 && r.push(n);
1005
+ }
1006
+ return r;
1007
+ }
1008
+ //#endregion
1009
+ //#region ../../node_modules/@gmod/bbi/esm/array-feature-view.js
1010
+ var we = class {
1011
+ view;
1012
+ i;
1013
+ constructor(e, t) {
1014
+ this.view = e, this.i = t;
1015
+ }
1016
+ get(e) {
1017
+ return this.view.get(this.i, e);
1018
+ }
1019
+ id() {
1020
+ return this.view.id(this.i);
1021
+ }
1022
+ toJSON() {
1023
+ let { view: e, i: t } = this;
1024
+ return {
1025
+ start: e.start(t),
1026
+ end: e.end(t),
1027
+ score: e.score(t),
1028
+ refName: e.refName,
1029
+ source: e.source,
1030
+ uniqueId: e.id(t),
1031
+ summary: e.isSummary,
1032
+ minScore: e.minScore(t),
1033
+ maxScore: e.maxScore(t)
1034
+ };
1035
+ }
1036
+ }, Te = class {
1037
+ starts;
1038
+ ends;
1039
+ scores;
1040
+ minScores;
1041
+ maxScores;
1042
+ isSummary;
1043
+ source;
1044
+ refName;
1045
+ constructor(e, t, n) {
1046
+ this.starts = e.starts, this.ends = e.ends, this.scores = e.scores, this.isSummary = e.isSummary, this.minScores = e.isSummary ? e.minScores : void 0, this.maxScores = e.isSummary ? e.maxScores : void 0, this.source = t, this.refName = n;
1047
+ }
1048
+ get length() {
1049
+ return this.starts.length;
1050
+ }
1051
+ start(e) {
1052
+ return this.starts[e];
1053
+ }
1054
+ end(e) {
1055
+ return this.ends[e];
1056
+ }
1057
+ score(e) {
1058
+ return this.scores[e];
1059
+ }
1060
+ minScore(e) {
1061
+ return this.minScores?.[e];
1062
+ }
1063
+ maxScore(e) {
1064
+ return this.maxScores?.[e];
1065
+ }
1066
+ id(e) {
1067
+ return `${this.source}:${this.refName}:${this.starts[e]}-${this.ends[e]}`;
1068
+ }
1069
+ get(e, t) {
1070
+ switch (t) {
1071
+ case "start": return this.starts[e];
1072
+ case "end": return this.ends[e];
1073
+ case "score": return this.scores[e];
1074
+ case "refName": return this.refName;
1075
+ case "source": return this.source;
1076
+ case "minScore": return this.minScores?.[e];
1077
+ case "maxScore": return this.maxScores?.[e];
1078
+ case "summary": return this.isSummary;
1079
+ default: return;
1080
+ }
1081
+ }
1082
+ };
1083
+ //#endregion
1084
+ export { Te as ArrayFeatureView, Se as BigBed, ye as BigWig, we as BigWigFeature, Ce as parseBigWig };