tardis-machine 18.1.0 → 18.2.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 (93) hide show
  1. package/dist/ws/subscriptionsmappers.d.ts.map +1 -1
  2. package/dist/ws/subscriptionsmappers.js +3 -1
  3. package/dist/ws/subscriptionsmappers.js.map +1 -1
  4. package/node_modules/tardis-dev/dist/consts.d.ts +3 -1
  5. package/node_modules/tardis-dev/dist/consts.d.ts.map +1 -1
  6. package/node_modules/tardis-dev/dist/consts.js +17 -0
  7. package/node_modules/tardis-dev/dist/consts.js.map +1 -1
  8. package/node_modules/tardis-dev/dist/handy.d.ts +13 -0
  9. package/node_modules/tardis-dev/dist/handy.d.ts.map +1 -1
  10. package/node_modules/tardis-dev/dist/handy.js +5 -1
  11. package/node_modules/tardis-dev/dist/handy.js.map +1 -1
  12. package/node_modules/tardis-dev/dist/mappers/ascendex.d.ts +4 -4
  13. package/node_modules/tardis-dev/dist/mappers/aster.d.ts +16 -0
  14. package/node_modules/tardis-dev/dist/mappers/aster.d.ts.map +1 -0
  15. package/node_modules/tardis-dev/dist/mappers/aster.js +294 -0
  16. package/node_modules/tardis-dev/dist/mappers/aster.js.map +1 -0
  17. package/node_modules/tardis-dev/dist/mappers/binance.d.ts +18 -18
  18. package/node_modules/tardis-dev/dist/mappers/binance.js +22 -22
  19. package/node_modules/tardis-dev/dist/mappers/binance.js.map +1 -1
  20. package/node_modules/tardis-dev/dist/mappers/binanceeuropeanoptions.d.ts +1 -1
  21. package/node_modules/tardis-dev/dist/mappers/bitfinex.d.ts +8 -8
  22. package/node_modules/tardis-dev/dist/mappers/bitflyer.d.ts +1 -1
  23. package/node_modules/tardis-dev/dist/mappers/bitget.d.ts +1 -1
  24. package/node_modules/tardis-dev/dist/mappers/bitmex.d.ts +2 -2
  25. package/node_modules/tardis-dev/dist/mappers/bitnomial.d.ts +1 -1
  26. package/node_modules/tardis-dev/dist/mappers/bitstamp.d.ts +1 -1
  27. package/node_modules/tardis-dev/dist/mappers/blockchaincom.d.ts +2 -2
  28. package/node_modules/tardis-dev/dist/mappers/bullish.d.ts +5 -5
  29. package/node_modules/tardis-dev/dist/mappers/bybit.d.ts +7 -7
  30. package/node_modules/tardis-dev/dist/mappers/bybitspot.d.ts +1 -1
  31. package/node_modules/tardis-dev/dist/mappers/coinbase.d.ts +1 -1
  32. package/node_modules/tardis-dev/dist/mappers/coinbaseinternational.d.ts +2 -2
  33. package/node_modules/tardis-dev/dist/mappers/coinflex.d.ts +1 -1
  34. package/node_modules/tardis-dev/dist/mappers/cryptocom.d.ts +5 -5
  35. package/node_modules/tardis-dev/dist/mappers/delta.d.ts +1 -1
  36. package/node_modules/tardis-dev/dist/mappers/deribit.d.ts +2 -2
  37. package/node_modules/tardis-dev/dist/mappers/dydx.d.ts +3 -3
  38. package/node_modules/tardis-dev/dist/mappers/dydxv4.d.ts +4 -4
  39. package/node_modules/tardis-dev/dist/mappers/ftx.d.ts +8 -8
  40. package/node_modules/tardis-dev/dist/mappers/gateio.d.ts +1 -1
  41. package/node_modules/tardis-dev/dist/mappers/gateiofutures.d.ts +4 -4
  42. package/node_modules/tardis-dev/dist/mappers/gemini.d.ts +1 -1
  43. package/node_modules/tardis-dev/dist/mappers/huobi.d.ts +26 -26
  44. package/node_modules/tardis-dev/dist/mappers/hyperliquid.d.ts +3 -3
  45. package/node_modules/tardis-dev/dist/mappers/index.d.ts +179 -161
  46. package/node_modules/tardis-dev/dist/mappers/index.d.ts.map +1 -1
  47. package/node_modules/tardis-dev/dist/mappers/index.js +2 -1
  48. package/node_modules/tardis-dev/dist/mappers/index.js.map +1 -1
  49. package/node_modules/tardis-dev/dist/mappers/kucoin.d.ts +3 -3
  50. package/node_modules/tardis-dev/dist/mappers/kucoinfutures.d.ts +4 -4
  51. package/node_modules/tardis-dev/dist/mappers/lighter.d.ts +5 -5
  52. package/node_modules/tardis-dev/dist/mappers/mexc.d.ts +3 -3
  53. package/node_modules/tardis-dev/dist/mappers/mexcfutures.d.ts +3 -3
  54. package/node_modules/tardis-dev/dist/mappers/okex.d.ts +15 -15
  55. package/node_modules/tardis-dev/dist/mappers/phemex.d.ts +1 -1
  56. package/node_modules/tardis-dev/dist/mappers/polymarket.d.ts +3 -3
  57. package/node_modules/tardis-dev/dist/mappers/registry.d.ts.map +1 -1
  58. package/node_modules/tardis-dev/dist/mappers/registry.js.map +1 -1
  59. package/node_modules/tardis-dev/dist/mappers/serum.d.ts +9 -9
  60. package/node_modules/tardis-dev/dist/mappers/upbit.d.ts +2 -2
  61. package/node_modules/tardis-dev/dist/realtimefeeds/aster.d.ts +53 -0
  62. package/node_modules/tardis-dev/dist/realtimefeeds/aster.d.ts.map +1 -0
  63. package/node_modules/tardis-dev/dist/realtimefeeds/aster.js +271 -0
  64. package/node_modules/tardis-dev/dist/realtimefeeds/aster.js.map +1 -0
  65. package/node_modules/tardis-dev/dist/realtimefeeds/binance.d.ts +1 -4
  66. package/node_modules/tardis-dev/dist/realtimefeeds/binance.d.ts.map +1 -1
  67. package/node_modules/tardis-dev/dist/realtimefeeds/binance.js +36 -95
  68. package/node_modules/tardis-dev/dist/realtimefeeds/binance.js.map +1 -1
  69. package/node_modules/tardis-dev/dist/realtimefeeds/index.d.ts.map +1 -1
  70. package/node_modules/tardis-dev/dist/realtimefeeds/index.js +3 -0
  71. package/node_modules/tardis-dev/dist/realtimefeeds/index.js.map +1 -1
  72. package/node_modules/tardis-dev/dist/realtimefeeds/realtimefeed.d.ts.map +1 -1
  73. package/node_modules/tardis-dev/dist/realtimefeeds/realtimefeed.js +12 -3
  74. package/node_modules/tardis-dev/dist/realtimefeeds/realtimefeed.js.map +1 -1
  75. package/node_modules/tardis-dev/dist/realtimefeeds/requestweight.d.ts +14 -0
  76. package/node_modules/tardis-dev/dist/realtimefeeds/requestweight.d.ts.map +1 -0
  77. package/node_modules/tardis-dev/dist/realtimefeeds/requestweight.js +72 -0
  78. package/node_modules/tardis-dev/dist/realtimefeeds/requestweight.js.map +1 -0
  79. package/node_modules/tardis-dev/package.json +2 -2
  80. package/node_modules/tardis-dev/src/consts.ts +18 -0
  81. package/node_modules/tardis-dev/src/handy.ts +6 -1
  82. package/node_modules/tardis-dev/src/mappers/aster.ts +438 -0
  83. package/node_modules/tardis-dev/src/mappers/binance.ts +23 -21
  84. package/node_modules/tardis-dev/src/mappers/bitfinex.ts +1 -2
  85. package/node_modules/tardis-dev/src/mappers/index.ts +2 -0
  86. package/node_modules/tardis-dev/src/mappers/registry.ts +1 -2
  87. package/node_modules/tardis-dev/src/realtimefeeds/aster.ts +388 -0
  88. package/node_modules/tardis-dev/src/realtimefeeds/binance.ts +59 -145
  89. package/node_modules/tardis-dev/src/realtimefeeds/index.ts +3 -0
  90. package/node_modules/tardis-dev/src/realtimefeeds/realtimefeed.ts +12 -3
  91. package/node_modules/tardis-dev/src/realtimefeeds/requestweight.ts +91 -0
  92. package/package.json +3 -3
  93. package/src/ws/subscriptionsmappers.ts +3 -1
@@ -0,0 +1,294 @@
1
+ import { debug } from "../debug.js";
2
+ import { asNumberOrUndefined, CircularBuffer, lowerCaseSymbols } from "../handy.js";
3
+ import { PendingTickerInfoHelper } from "./mapper.js";
4
+ import { exchangeMappers, isRealTime } from "./registry.js";
5
+ export const asterMappers = exchangeMappers({
6
+ aster: {
7
+ trades: () => new AsterTradesMapper('aster'),
8
+ bookChanges: (localTimestamp) => new AsterBookChangeMapper('aster', {
9
+ ignoreBookSnapshotOverlapError: shouldIgnoreBookSnapshotOverlap(localTimestamp)
10
+ }),
11
+ bookTickers: () => new AsterBookTickerMapper('aster')
12
+ },
13
+ 'aster-futures': {
14
+ trades: () => new AsterTradesMapper('aster-futures'),
15
+ bookChanges: (localTimestamp) => new AsterFuturesBookChangeMapper({
16
+ ignoreBookSnapshotOverlapError: shouldIgnoreBookSnapshotOverlap(localTimestamp)
17
+ }),
18
+ derivativeTickers: () => new AsterFuturesDerivativeTickerMapper(),
19
+ liquidations: () => new AsterFuturesLiquidationsMapper(),
20
+ bookTickers: () => new AsterBookTickerMapper('aster-futures')
21
+ }
22
+ });
23
+ function shouldIgnoreBookSnapshotOverlap(date) {
24
+ if (process.env.IGNORE_BOOK_SNAPSHOT_OVERLAP_ERROR) {
25
+ return true;
26
+ }
27
+ return isRealTime(date) === false;
28
+ }
29
+ class AsterTradesMapper {
30
+ exchange;
31
+ constructor(exchange) {
32
+ this.exchange = exchange;
33
+ }
34
+ canHandle(message) {
35
+ return message.stream?.endsWith('@trade') === true;
36
+ }
37
+ getFilters(symbols) {
38
+ return [{ channel: 'trade', symbols: lowerCaseSymbols(symbols) }];
39
+ }
40
+ *map({ data }, localTimestamp) {
41
+ // Aster's Binance-compatible trade stream uses these X values for off-book
42
+ // activity, so exclude them from normalized public trades too.
43
+ const isOffBookTrade = data.X === 'INSURANCE_FUND' || data.X === 'ADL' || data.X === 'NA';
44
+ if (isOffBookTrade) {
45
+ return;
46
+ }
47
+ const trade = {
48
+ type: 'trade',
49
+ symbol: data.s,
50
+ exchange: this.exchange,
51
+ id: String(data.t),
52
+ price: Number(data.p),
53
+ amount: Number(data.q),
54
+ side: data.m ? 'sell' : 'buy',
55
+ timestamp: new Date(data.T),
56
+ localTimestamp
57
+ };
58
+ yield trade;
59
+ }
60
+ }
61
+ class AsterBookChangeMapper {
62
+ exchange;
63
+ symbolToDepthInfoMapping = {};
64
+ ignoreBookSnapshotOverlapError;
65
+ constructor(exchange, { ignoreBookSnapshotOverlapError }) {
66
+ this.exchange = exchange;
67
+ this.ignoreBookSnapshotOverlapError = ignoreBookSnapshotOverlapError;
68
+ }
69
+ canHandle(message) {
70
+ return message.stream?.includes('@depth') === true;
71
+ }
72
+ getFilters(symbols) {
73
+ return [
74
+ { channel: 'depth', symbols: lowerCaseSymbols(symbols) },
75
+ { channel: 'depthSnapshot', symbols: lowerCaseSymbols(symbols) }
76
+ ];
77
+ }
78
+ *map({ stream, data }, localTimestamp) {
79
+ const symbol = stream.split('@')[0].toUpperCase();
80
+ if (this.symbolToDepthInfoMapping[symbol] === undefined) {
81
+ this.symbolToDepthInfoMapping[symbol] = {
82
+ bufferedUpdates: new CircularBuffer(2000)
83
+ };
84
+ }
85
+ const symbolDepthInfo = this.symbolToDepthInfoMapping[symbol];
86
+ if (data.lastUpdateId !== undefined) {
87
+ if (symbolDepthInfo.snapshotProcessed) {
88
+ return;
89
+ }
90
+ symbolDepthInfo.lastUpdateId = data.lastUpdateId;
91
+ symbolDepthInfo.snapshotProcessed = true;
92
+ const bidsByPrice = new Map(data.bids.map((level) => [level[0], level]));
93
+ const asksByPrice = new Map(data.asks.map((level) => [level[0], level]));
94
+ for (const update of symbolDepthInfo.bufferedUpdates.items()) {
95
+ const bookChange = this.mapBookDepthUpdate(update, localTimestamp);
96
+ if (bookChange !== undefined) {
97
+ this.applyLevelUpdates(bidsByPrice, update.b);
98
+ this.applyLevelUpdates(asksByPrice, update.a);
99
+ }
100
+ }
101
+ symbolDepthInfo.bufferedUpdates.clear();
102
+ const bookChange = {
103
+ type: 'book_change',
104
+ symbol,
105
+ exchange: this.exchange,
106
+ isSnapshot: true,
107
+ bids: [...bidsByPrice.values()].map(this.mapBookLevel),
108
+ asks: [...asksByPrice.values()].map(this.mapBookLevel),
109
+ timestamp: data.T !== undefined ? new Date(data.T) : localTimestamp,
110
+ localTimestamp
111
+ };
112
+ yield bookChange;
113
+ }
114
+ else if (symbolDepthInfo.snapshotProcessed) {
115
+ const bookChange = this.mapBookDepthUpdate(data, localTimestamp);
116
+ if (bookChange !== undefined) {
117
+ yield bookChange;
118
+ }
119
+ }
120
+ else {
121
+ symbolDepthInfo.bufferedUpdates.append(data);
122
+ }
123
+ }
124
+ mapBookDepthUpdate(depthUpdateData, localTimestamp) {
125
+ const depthContext = this.symbolToDepthInfoMapping[depthUpdateData.s];
126
+ const lastUpdateId = depthContext.lastUpdateId;
127
+ if (this.isOutdatedDepthUpdate(depthUpdateData, lastUpdateId)) {
128
+ return;
129
+ }
130
+ if (!depthContext.validatedFirstUpdate) {
131
+ if (this.hasInitialSnapshotOverlap(depthUpdateData, lastUpdateId) || lastUpdateId === -1) {
132
+ depthContext.validatedFirstUpdate = true;
133
+ }
134
+ else if (this.ignoreBookSnapshotOverlapError) {
135
+ depthContext.validatedFirstUpdate = true;
136
+ debug(this.getSnapshotOverlapError(depthUpdateData, lastUpdateId));
137
+ }
138
+ else {
139
+ throw new Error(this.getSnapshotOverlapError(depthUpdateData, lastUpdateId));
140
+ }
141
+ }
142
+ else if (depthUpdateData.pu !== lastUpdateId) {
143
+ throw new Error(`Book depth update has a sequence gap, update ${JSON.stringify(depthUpdateData)}, lastUpdateId: ${lastUpdateId}, exchange ${this.exchange}`);
144
+ }
145
+ depthContext.lastUpdateId = depthUpdateData.u;
146
+ return {
147
+ type: 'book_change',
148
+ symbol: depthUpdateData.s,
149
+ exchange: this.exchange,
150
+ isSnapshot: false,
151
+ bids: depthUpdateData.b.map(this.mapBookLevel),
152
+ asks: depthUpdateData.a.map(this.mapBookLevel),
153
+ timestamp: new Date(depthUpdateData.E),
154
+ localTimestamp
155
+ };
156
+ }
157
+ isOutdatedDepthUpdate(depthUpdateData, lastUpdateId) {
158
+ return depthUpdateData.u <= lastUpdateId;
159
+ }
160
+ hasInitialSnapshotOverlap(depthUpdateData, lastUpdateId) {
161
+ // Live and recorded Spot data use pu as the continuous sequence link. The
162
+ // first non-stale update is safe when its pu..u range contains the snapshot.
163
+ return depthUpdateData.pu <= lastUpdateId && depthUpdateData.u >= lastUpdateId;
164
+ }
165
+ applyLevelUpdates(levelsByPrice, updates) {
166
+ for (const level of updates) {
167
+ if (Number(level[1]) === 0) {
168
+ levelsByPrice.delete(level[0]);
169
+ }
170
+ else {
171
+ levelsByPrice.set(level[0], level);
172
+ }
173
+ }
174
+ }
175
+ getSnapshotOverlapError(depthUpdateData, lastUpdateId) {
176
+ return `Book depth snapshot has no overlap with first update, update ${JSON.stringify(depthUpdateData)}, lastUpdateId: ${lastUpdateId}, exchange ${this.exchange}`;
177
+ }
178
+ mapBookLevel(level) {
179
+ return {
180
+ price: Number(level[0]),
181
+ amount: Number(level[1])
182
+ };
183
+ }
184
+ }
185
+ class AsterBookTickerMapper {
186
+ exchange;
187
+ constructor(exchange) {
188
+ this.exchange = exchange;
189
+ }
190
+ canHandle(message) {
191
+ return message.stream?.endsWith('@bookTicker') === true;
192
+ }
193
+ getFilters(symbols) {
194
+ return [{ channel: 'bookTicker', symbols: lowerCaseSymbols(symbols) }];
195
+ }
196
+ *map({ data }, localTimestamp) {
197
+ const ticker = {
198
+ type: 'book_ticker',
199
+ symbol: data.s,
200
+ exchange: this.exchange,
201
+ askAmount: asNumberOrUndefined(data.A),
202
+ askPrice: asNumberOrUndefined(data.a),
203
+ bidPrice: asNumberOrUndefined(data.b),
204
+ bidAmount: asNumberOrUndefined(data.B),
205
+ timestamp: data.E !== undefined ? new Date(data.E) : localTimestamp,
206
+ localTimestamp
207
+ };
208
+ yield ticker;
209
+ }
210
+ }
211
+ class AsterFuturesBookChangeMapper extends AsterBookChangeMapper {
212
+ constructor({ ignoreBookSnapshotOverlapError }) {
213
+ super('aster-futures', { ignoreBookSnapshotOverlapError });
214
+ }
215
+ isOutdatedDepthUpdate(depthUpdateData, lastUpdateId) {
216
+ return depthUpdateData.u < lastUpdateId;
217
+ }
218
+ hasInitialSnapshotOverlap(depthUpdateData, lastUpdateId) {
219
+ // Futures normally contains the snapshot id in U..u, but live and recorded
220
+ // data also continues it directly with pu == lastUpdateId. Exact-id partial
221
+ // depth and bookTicker comparisons confirmed that neither form skips a state.
222
+ return (depthUpdateData.U <= lastUpdateId && depthUpdateData.u >= lastUpdateId) || depthUpdateData.pu === lastUpdateId;
223
+ }
224
+ }
225
+ class AsterFuturesDerivativeTickerMapper {
226
+ pendingTickerInfoHelper = new PendingTickerInfoHelper();
227
+ canHandle(message) {
228
+ return (message.stream?.includes('@markPrice') === true ||
229
+ message.stream?.endsWith('@ticker') === true ||
230
+ message.stream?.endsWith('@openInterest') === true);
231
+ }
232
+ getFilters(symbols) {
233
+ const normalizedSymbols = lowerCaseSymbols(symbols);
234
+ return [
235
+ { channel: 'markPrice', symbols: normalizedSymbols },
236
+ { channel: 'ticker', symbols: normalizedSymbols },
237
+ { channel: 'openInterest', symbols: normalizedSymbols }
238
+ ];
239
+ }
240
+ *map({ data }, localTimestamp) {
241
+ const pendingTickerInfo = this.pendingTickerInfoHelper.getPendingTickerInfo('s' in data ? data.s : data.symbol, 'aster-futures');
242
+ if ('e' in data) {
243
+ if (data.e === 'markPriceUpdate') {
244
+ pendingTickerInfo.updateMarkPrice(Number(data.p));
245
+ if (data.i !== undefined) {
246
+ pendingTickerInfo.updateIndexPrice(Number(data.i));
247
+ }
248
+ if (data.r !== '' && data.T !== 0) {
249
+ pendingTickerInfo.updateFundingRate(Number(data.r));
250
+ pendingTickerInfo.updateFundingTimestamp(new Date(data.T));
251
+ }
252
+ pendingTickerInfo.updateTimestamp(new Date(data.E));
253
+ }
254
+ if (data.e === '24hrTicker') {
255
+ pendingTickerInfo.updateLastPrice(Number(data.c));
256
+ pendingTickerInfo.updateTimestamp(new Date(data.E));
257
+ }
258
+ }
259
+ else if ('openInterest' in data) {
260
+ pendingTickerInfo.updateOpenInterest(Number(data.openInterest));
261
+ pendingTickerInfo.updateTimestamp(new Date(data.time));
262
+ }
263
+ if (pendingTickerInfo.hasChanged()) {
264
+ yield pendingTickerInfo.getSnapshot(localTimestamp);
265
+ }
266
+ }
267
+ }
268
+ class AsterFuturesLiquidationsMapper {
269
+ canHandle(message) {
270
+ return message.stream?.endsWith('@forceOrder') === true;
271
+ }
272
+ getFilters(symbols) {
273
+ return [{ channel: 'forceOrder', symbols: lowerCaseSymbols(symbols) }];
274
+ }
275
+ *map({ data }, localTimestamp) {
276
+ const order = data.o;
277
+ if (order.X !== 'FILLED') {
278
+ return;
279
+ }
280
+ const liquidation = {
281
+ type: 'liquidation',
282
+ symbol: order.s,
283
+ exchange: 'aster-futures',
284
+ id: undefined,
285
+ price: Number(order.p),
286
+ amount: Number(order.z),
287
+ side: order.S === 'SELL' ? 'sell' : 'buy',
288
+ timestamp: new Date(order.T),
289
+ localTimestamp
290
+ };
291
+ yield liquidation;
292
+ }
293
+ }
294
+ //# sourceMappingURL=aster.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aster.js","sourceRoot":"","sources":["../../src/mappers/aster.ts"],"names":[],"mappings":"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"}
@@ -1,32 +1,32 @@
1
1
  import { BookChange, BookTicker, DerivativeTicker, Liquidation, Trade } from '../types.ts';
2
2
  export declare const binanceMappers: {
3
3
  binance: {
4
- trades: import("./registry.ts").MapperCreator<"bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", Trade>;
5
- bookChanges: import("./registry.ts").MapperCreator<"bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", BookChange>;
6
- bookTickers: import("./registry.ts").MapperCreator<"bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", BookTicker>;
4
+ trades: import("./registry.ts").MapperCreator<"aster" | "aster-futures" | "bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", Trade>;
5
+ bookChanges: import("./registry.ts").MapperCreator<"aster" | "aster-futures" | "bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", BookChange>;
6
+ bookTickers: import("./registry.ts").MapperCreator<"aster" | "aster-futures" | "bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", BookTicker>;
7
7
  };
8
8
  'binance-us': {
9
- trades: import("./registry.ts").MapperCreator<"bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", Trade>;
10
- bookChanges: import("./registry.ts").MapperCreator<"bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", BookChange>;
11
- bookTickers: import("./registry.ts").MapperCreator<"bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", BookTicker>;
9
+ trades: import("./registry.ts").MapperCreator<"aster" | "aster-futures" | "bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", Trade>;
10
+ bookChanges: import("./registry.ts").MapperCreator<"aster" | "aster-futures" | "bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", BookChange>;
11
+ bookTickers: import("./registry.ts").MapperCreator<"aster" | "aster-futures" | "bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", BookTicker>;
12
12
  };
13
13
  'binance-jersey': {
14
- trades: import("./registry.ts").MapperCreator<"bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", Trade>;
15
- bookChanges: import("./registry.ts").MapperCreator<"bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", BookChange>;
14
+ trades: import("./registry.ts").MapperCreator<"aster" | "aster-futures" | "bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", Trade>;
15
+ bookChanges: import("./registry.ts").MapperCreator<"aster" | "aster-futures" | "bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", BookChange>;
16
16
  };
17
17
  'binance-futures': {
18
- trades: import("./registry.ts").MapperCreator<"bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", Trade>;
19
- bookChanges: import("./registry.ts").MapperCreator<"bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", BookChange>;
20
- derivativeTickers: import("./registry.ts").MapperCreator<"bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", DerivativeTicker>;
21
- liquidations: import("./registry.ts").MapperCreator<"bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", Liquidation>;
22
- bookTickers: import("./registry.ts").MapperCreator<"bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", BookTicker>;
18
+ trades: import("./registry.ts").MapperCreator<"aster" | "aster-futures" | "bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", Trade>;
19
+ bookChanges: import("./registry.ts").MapperCreator<"aster" | "aster-futures" | "bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", BookChange>;
20
+ derivativeTickers: import("./registry.ts").MapperCreator<"aster" | "aster-futures" | "bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", DerivativeTicker>;
21
+ liquidations: import("./registry.ts").MapperCreator<"aster" | "aster-futures" | "bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", Liquidation>;
22
+ bookTickers: import("./registry.ts").MapperCreator<"aster" | "aster-futures" | "bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", BookTicker>;
23
23
  };
24
24
  'binance-delivery': {
25
- trades: import("./registry.ts").MapperCreator<"bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", Trade>;
26
- bookChanges: import("./registry.ts").MapperCreator<"bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", BookChange>;
27
- derivativeTickers: import("./registry.ts").MapperCreator<"bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", DerivativeTicker>;
28
- liquidations: import("./registry.ts").MapperCreator<"bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", Liquidation>;
29
- bookTickers: import("./registry.ts").MapperCreator<"bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", BookTicker>;
25
+ trades: import("./registry.ts").MapperCreator<"aster" | "aster-futures" | "bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", Trade>;
26
+ bookChanges: import("./registry.ts").MapperCreator<"aster" | "aster-futures" | "bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", BookChange>;
27
+ derivativeTickers: import("./registry.ts").MapperCreator<"aster" | "aster-futures" | "bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", DerivativeTicker>;
28
+ liquidations: import("./registry.ts").MapperCreator<"aster" | "aster-futures" | "bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", Liquidation>;
29
+ bookTickers: import("./registry.ts").MapperCreator<"aster" | "aster-futures" | "bitmex" | "deribit" | "binance-futures" | "binance-delivery" | "binance-european-options" | "binance" | "ftx" | "okex-futures" | "okex-options" | "okex-swap" | "okex" | "okex-spreads" | "huobi-dm" | "huobi-dm-swap" | "huobi-dm-linear-swap" | "huobi" | "bitfinex-derivatives" | "bitfinex" | "coinbase" | "coinbase-international" | "cryptofacilities" | "kraken" | "bitstamp" | "gemini" | "poloniex" | "bybit" | "bybit-spot" | "bybit-options" | "phemex" | "delta" | "ftx-us" | "binance-us" | "gate-io-futures" | "mexc-futures" | "gate-io" | "okcoin" | "bitflyer" | "hitbtc" | "coinflex" | "binance-jersey" | "binance-dex" | "upbit" | "ascendex" | "dydx" | "dydx-v4" | "serum" | "mango" | "huobi-dm-options" | "star-atlas" | "crypto-com" | "kucoin" | "kucoin-futures" | "bitnomial" | "woo-x" | "blockchain-com" | "bitget" | "bitget-futures" | "hyperliquid" | "lighter" | "bullish" | "mexc" | "polymarket", BookTicker>;
30
30
  };
31
31
  };
32
32
  //# sourceMappingURL=binance.d.ts.map
@@ -130,28 +130,14 @@ class BinanceBookChangeMapper {
130
130
  // mark given symbol depth info that has snapshot processed
131
131
  symbolDepthInfo.lastUpdateId = binanceDepthSnapshotData.lastUpdateId;
132
132
  symbolDepthInfo.snapshotProcessed = true;
133
+ const bidsByPrice = new Map(binanceDepthSnapshotData.bids.map((level) => [level[0], level]));
134
+ const asksByPrice = new Map(binanceDepthSnapshotData.asks.map((level) => [level[0], level]));
133
135
  // if there were any depth updates buffered, let's proccess those by adding to or updating the initial snapshot
134
136
  for (const update of symbolDepthInfo.bufferedUpdates.items()) {
135
137
  const bookChange = this.mapBookDepthUpdate(update, localTimestamp);
136
138
  if (bookChange !== undefined) {
137
- for (const bid of update.b) {
138
- const matchingBid = binanceDepthSnapshotData.bids.find((b) => b[0] === bid[0]);
139
- if (matchingBid !== undefined) {
140
- matchingBid[1] = bid[1];
141
- }
142
- else {
143
- binanceDepthSnapshotData.bids.push(bid);
144
- }
145
- }
146
- for (const ask of update.a) {
147
- const matchingAsk = binanceDepthSnapshotData.asks.find((a) => a[0] === ask[0]);
148
- if (matchingAsk !== undefined) {
149
- matchingAsk[1] = ask[1];
150
- }
151
- else {
152
- binanceDepthSnapshotData.asks.push(ask);
153
- }
154
- }
139
+ this.applyLevelUpdates(bidsByPrice, update.b);
140
+ this.applyLevelUpdates(asksByPrice, update.a);
155
141
  }
156
142
  }
157
143
  // remove all buffered updates
@@ -161,8 +147,8 @@ class BinanceBookChangeMapper {
161
147
  symbol,
162
148
  exchange: this.exchange,
163
149
  isSnapshot: true,
164
- bids: binanceDepthSnapshotData.bids.map(this.mapBookLevel),
165
- asks: binanceDepthSnapshotData.asks.map(this.mapBookLevel),
150
+ bids: [...bidsByPrice.values()].map(this.mapBookLevel),
151
+ asks: [...asksByPrice.values()].map(this.mapBookLevel),
166
152
  timestamp: binanceDepthSnapshotData.T !== undefined ? fromMicroSecondsToDate(binanceDepthSnapshotData.T) : localTimestamp,
167
153
  localTimestamp
168
154
  };
@@ -223,6 +209,16 @@ class BinanceBookChangeMapper {
223
209
  const amount = Number(level[1]);
224
210
  return { price, amount };
225
211
  }
212
+ applyLevelUpdates(levelsByPrice, updates) {
213
+ for (const level of updates) {
214
+ if (Number(level[1]) === 0) {
215
+ levelsByPrice.delete(level[0]);
216
+ }
217
+ else {
218
+ levelsByPrice.set(level[0], level);
219
+ }
220
+ }
221
+ }
226
222
  }
227
223
  class BinanceFuturesBookChangeMapper extends BinanceBookChangeMapper {
228
224
  mapBookDepthUpdate(binanceDepthUpdateData, localTimestamp) {
@@ -235,9 +231,13 @@ class BinanceFuturesBookChangeMapper extends BinanceBookChangeMapper {
235
231
  if (binanceDepthUpdateData.u < lastUpdateId) {
236
232
  return;
237
233
  }
238
- // The first processed should have U <= lastUpdateId AND u >= lastUpdateId
234
+ // Binance documents a first update that contains the snapshot boundary. Live
235
+ // USD-M and COIN-M streams can instead continue it directly with pu == lastUpdateId.
236
+ // Both relations join the buffered stream to the snapshot without an update gap.
239
237
  if (!depthContext.validatedFirstUpdate) {
240
- if (binanceDepthUpdateData.U <= lastUpdateId && binanceDepthUpdateData.u >= lastUpdateId) {
238
+ const containsSnapshotBoundary = binanceDepthUpdateData.U <= lastUpdateId && binanceDepthUpdateData.u >= lastUpdateId;
239
+ const continuesSnapshotDirectly = binanceDepthUpdateData.pu === lastUpdateId;
240
+ if (containsSnapshotBoundary || continuesSnapshotDirectly) {
241
241
  depthContext.validatedFirstUpdate = true;
242
242
  }
243
243
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"binance.js","sourceRoot":"","sources":["../../src/mappers/binance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAEtF,OAAO,EAAU,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE3D,kGAAkG;AAElG,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC;IAC5C,OAAO,EAAE;QACP,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,mBAAmB,CAAC,SAAS,CAAC;QAChD,WAAW,EAAE,CAAC,cAAc,EAAE,EAAE,CAC9B,IAAI,uBAAuB,CAAC,SAAS,EAAE,EAAE,8BAA8B,EAAE,+BAA+B,CAAC,cAAc,CAAC,EAAE,CAAC;QAC7H,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,uBAAuB,CAAC,SAAS,CAAC;KAC1D;IACD,YAAY,EAAE;QACZ,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,mBAAmB,CAAC,YAAY,CAAC;QACnD,WAAW,EAAE,CAAC,cAAc,EAAE,EAAE,CAC9B,IAAI,uBAAuB,CAAC,YAAY,EAAE,EAAE,8BAA8B,EAAE,+BAA+B,CAAC,cAAc,CAAC,EAAE,CAAC;QAChI,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,uBAAuB,CAAC,YAAY,CAAC;KAC7D;IACD,gBAAgB,EAAE;QAChB,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,mBAAmB,CAAC,gBAAgB,CAAC;QACvD,WAAW,EAAE,CAAC,cAAc,EAAE,EAAE,CAC9B,IAAI,uBAAuB,CAAC,gBAAgB,EAAE,EAAE,8BAA8B,EAAE,+BAA+B,CAAC,cAAc,CAAC,EAAE,CAAC;KACrI;IACD,iBAAiB,EAAE;QACjB,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,mBAAmB,CAAC,iBAAiB,CAAC;QACxD,WAAW,EAAE,CAAC,cAAc,EAAE,EAAE,CAC9B,IAAI,8BAA8B,CAAC,iBAAiB,EAAE;YACpD,8BAA8B,EAAE,+BAA+B,CAAC,cAAc,CAAC;SAChF,CAAC;QACJ,iBAAiB,EAAE,GAAG,EAAE,CAAC,IAAI,oCAAoC,CAAC,iBAAiB,CAAC;QACpF,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,yBAAyB,CAAC,iBAAiB,CAAC;QACpE,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,uBAAuB,CAAC,iBAAiB,CAAC;KAClE;IACD,kBAAkB,EAAE;QAClB,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,mBAAmB,CAAC,kBAAkB,CAAC;QACzD,WAAW,EAAE,CAAC,cAAc,EAAE,EAAE,CAC9B,IAAI,8BAA8B,CAAC,kBAAkB,EAAE;YACrD,8BAA8B,EAAE,+BAA+B,CAAC,cAAc,CAAC;SAChF,CAAC;QACJ,iBAAiB,EAAE,GAAG,EAAE,CAAC,IAAI,oCAAoC,CAAC,kBAAkB,CAAC;QACrF,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,yBAAyB,CAAC,kBAAkB,CAAC;QACrE,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,uBAAuB,CAAC,kBAAkB,CAAC;KACnE;CACF,CAAC,CAAA;AAEF,SAAS,+BAA+B,CAAC,IAAW;IAClD,IAAI,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,CAAC;QACnD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,KAAK,CAAA;AACnC,CAAC;AAED,MAAM,mBAAmB;IACM;IAA7B,YAA6B,SAAmB;QAAnB,cAAS,GAAT,SAAS,CAAU;IAAG,CAAC;IAEpD,SAAS,CAAC,OAA6B;QACrC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,KAAK,CAAA;QACd,CAAC;QAED,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC1C,CAAC;IAED,UAAU,CAAC,OAAkB;QAC3B,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;QAEnC,OAAO;YACL;gBACE,OAAO,EAAE,OAAO;gBAChB,OAAO;aACC;SACX,CAAA;IACH,CAAC;IAED,CAAC,GAAG,CAAC,oBAAuD,EAAE,cAAoB;QAChF,MAAM,YAAY,GAAG,oBAAoB,CAAC,IAAI,CAAA;QAE9C,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,KAAK,gBAAgB,IAAI,YAAY,CAAC,CAAC,KAAK,KAAK,IAAI,YAAY,CAAC,CAAC,KAAK,IAAI,CAAA;QACjH,IAAI,cAAc,EAAE,CAAC;YACnB,OAAM;QACR,CAAC;QAED,MAAM,KAAK,GAAU;YACnB,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,YAAY,CAAC,CAAC;YACtB,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,EAAE,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;YAC1B,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;YAC7B,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;YAC9B,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;YACrC,SAAS,EAAE,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAC;YACjD,cAAc,EAAE,cAAc;SAC/B,CAAA;QAED,MAAM,KAAK,CAAA;IACb,CAAC;CACF;AAED,MAAM,uBAAuB;IASN;IALF,wBAAwB,GAEvC,EAAE,CAAA;IAEN,YACqB,QAAkB,EACrC,EAAE,8BAA8B,EAA+C;QAD5D,aAAQ,GAAR,QAAQ,CAAU;QAGrC,IAAI,CAAC,8BAA8B,GAAG,8BAA8B,CAAA;IACtE,CAAC;IAEkB,8BAA8B,CAAS;IAE1D,SAAS,CAAC,OAA6B;QACrC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,KAAK,CAAA;QACd,CAAC;QAED,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC1C,CAAC;IAED,UAAU,CAAC,OAAkB;QAC3B,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;QAEnC,OAAO;YACL;gBACE,OAAO,EAAE,OAAO;gBAChB,OAAO;aACC;YACV;gBACE,OAAO,EAAE,eAAe;gBACxB,OAAO;aACC;SACX,CAAA;IACH,CAAC;IAED,CAAC,GAAG,CAAC,OAAqE,EAAE,cAAoB;QAC9F,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;QAEzD,IAAI,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;YACxD,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,GAAG;gBACtC,eAAe,EAAE,IAAI,cAAc,CAAmB,IAAI,CAAC;aAC5D,CAAA;QACH,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAA;QAC7D,MAAM,wBAAwB,GAAG,eAAe,CAAC,iBAAiB,CAAA;QAElE,8EAA8E;QAC9E,IAAI,OAAO,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YAC5C,8EAA8E;YAC9E,IAAI,wBAAwB,EAAE,CAAC;gBAC7B,OAAM;YACR,CAAC;YACD,+BAA+B;YAC/B,MAAM,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAA;YAE7C,4DAA4D;YAC5D,eAAe,CAAC,YAAY,GAAG,wBAAwB,CAAC,YAAY,CAAA;YACpE,eAAe,CAAC,iBAAiB,GAAG,IAAI,CAAA;YAExC,+GAA+G;YAC/G,KAAK,MAAM,MAAM,IAAI,eAAe,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,CAAC;gBAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;gBAClE,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;oBAC7B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC;wBAC3B,MAAM,WAAW,GAAG,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;wBAC9E,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;4BAC9B,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;wBACzB,CAAC;6BAAM,CAAC;4BACN,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;wBACzC,CAAC;oBACH,CAAC;oBAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC;wBAC3B,MAAM,WAAW,GAAG,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;wBAC9E,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;4BAC9B,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;wBACzB,CAAC;6BAAM,CAAC;4BACN,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;wBACzC,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,8BAA8B;YAC9B,eAAe,CAAC,eAAe,CAAC,KAAK,EAAE,CAAA;YAEvC,MAAM,UAAU,GAAe;gBAC7B,IAAI,EAAE,aAAa;gBACnB,MAAM;gBACN,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,UAAU,EAAE,IAAI;gBAChB,IAAI,EAAE,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;gBAC1D,IAAI,EAAE,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;gBAC1D,SAAS,EAAE,wBAAwB,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc;gBACzH,cAAc;aACf,CAAA;YAED,MAAM,UAAU,CAAA;QAClB,CAAC;aAAM,IAAI,wBAAwB,EAAE,CAAC;YACpC,6EAA6E;YAC7E,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAwB,EAAE,cAAc,CAAC,CAAA;YAC5F,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,UAAU,CAAA;YAClB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,sBAAsB,GAAG,OAAO,CAAC,IAAwB,CAAA;YAE/D,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAA;QAChE,CAAC;IACH,CAAC;IAES,kBAAkB,CAAC,sBAAwC,EAAE,cAAoB;QACzF,6GAA6G;QAC7G,4CAA4C;QAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,wBAAwB,CAAC,sBAAsB,CAAC,CAAC,CAAE,CAAA;QAC7E,MAAM,YAAY,GAAG,YAAY,CAAC,YAAa,CAAA;QAE/C,4DAA4D;QAC5D,IAAI,sBAAsB,CAAC,CAAC,IAAI,YAAY,EAAE,CAAC;YAC7C,OAAM;QACR,CAAC;QAED,qFAAqF;QACrF,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,CAAC;YACvC,qFAAqF;YACrF,MAAM,mBAAmB,GAAG,YAAY,IAAI,CAAC,CAAC,CAAA;YAE9C,IAAI,CAAC,sBAAsB,CAAC,CAAC,IAAI,YAAY,GAAG,CAAC,IAAI,sBAAsB,CAAC,CAAC,IAAI,YAAY,GAAG,CAAC,CAAC,IAAI,mBAAmB,EAAE,CAAC;gBAC1H,YAAY,CAAC,oBAAoB,GAAG,IAAI,CAAA;YAC1C,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,GAAG,+DAA+D,IAAI,CAAC,SAAS,CAC3F,sBAAsB,CACvB,mBAAmB,YAAY,cAAc,IAAI,CAAC,QAAQ,EAAE,CAAA;gBAC7D,IAAI,IAAI,CAAC,8BAA8B,EAAE,CAAC;oBACxC,YAAY,CAAC,oBAAoB,GAAG,IAAI,CAAA;oBACxC,KAAK,CAAC,OAAO,CAAC,CAAA;gBAChB,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,IAAI,EAAE,aAAa;YACnB,MAAM,EAAE,sBAAsB,CAAC,CAAC;YAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,KAAK;YAEjB,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;YACrD,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;YACrD,SAAS,EAAE,sBAAsB,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAC3D,cAAc,EAAE,cAAc;SAC/B,CAAA;IACH,CAAC;IAES,YAAY,CAAC,KAAuB;QAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;IAC1B,CAAC;CACF;AAED,MAAM,8BAA+B,SAAQ,uBAAuB;IACxD,kBAAkB,CAAC,sBAA+C,EAAE,cAAoB;QAChG,6GAA6G;QAC7G,4CAA4C;QAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,wBAAwB,CAAC,sBAAsB,CAAC,CAAC,CAAE,CAAA;QAC7E,MAAM,YAAY,GAAG,YAAY,CAAC,YAAa,CAAA;QAE/C,oHAAoH;QACpH,2DAA2D;QAC3D,IAAI,sBAAsB,CAAC,CAAC,GAAG,YAAY,EAAE,CAAC;YAC5C,OAAM;QACR,CAAC;QAED,0EAA0E;QAC1E,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,CAAC;YACvC,IAAI,sBAAsB,CAAC,CAAC,IAAI,YAAY,IAAI,sBAAsB,CAAC,CAAC,IAAI,YAAY,EAAE,CAAC;gBACzF,YAAY,CAAC,oBAAoB,GAAG,IAAI,CAAA;YAC1C,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,GAAG,+DAA+D,IAAI,CAAC,SAAS,CAC3F,sBAAsB,CACvB,mBAAmB,YAAY,cAAc,IAAI,CAAC,QAAQ,EAAE,CAAA;gBAE7D,IAAI,IAAI,CAAC,8BAA8B,EAAE,CAAC;oBACxC,YAAY,CAAC,oBAAoB,GAAG,IAAI,CAAA;oBACxC,KAAK,CAAC,OAAO,CAAC,CAAA;gBAChB,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,IAAI,EAAE,aAAa;YACnB,MAAM,EAAE,sBAAsB,CAAC,CAAC;YAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,KAAK;YAEjB,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;YACrD,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;YACrD,SAAS,EAAE,sBAAsB,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAC3D,cAAc,EAAE,cAAc;SAC/B,CAAA;IACH,CAAC;CACF;AAED,MAAM,oCAAoC;IAIT;IAHd,uBAAuB,GAAG,IAAI,uBAAuB,EAAE,CAAA;IACvD,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAA;IAEzD,YAA+B,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;IAAG,CAAC;IAErD,SAAS,CAAC,OAA6B;QACrC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,KAAK,CAAA;QACd,CAAC;QAED,OAAO,CACL,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;YACrC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;YAClC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC;YACxC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CACvC,CAAA;IACH,CAAC;IAED,UAAU,CAAC,OAAkB;QAC3B,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;QAEnC,MAAM,OAAO,GAAG;YACd;gBACE,OAAO,EAAE,WAAW;gBACpB,OAAO;aACC;YACV;gBACE,OAAO,EAAE,QAAQ;gBACjB,OAAO;aACC;YACV;gBACE,OAAO,EAAE,cAAc;gBACvB,OAAO;aACC;SACX,CAAA;QAED,IAAI,IAAI,CAAC,QAAQ,KAAK,kBAAkB,EAAE,CAAC;YACzC,sCAAsC;YACtC,OAAO,CAAC,IAAI,CAAC;gBACX,OAAO,EAAE,YAAmB;gBAC5B,OAAO,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;aACjF,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,CAAC,GAAG,CACF,OAEC,EACD,cAAoB;QAEpB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,kBAAkB,EAAE,CAAC;YAC1C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/D,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAA;YACzE,MAAM,iBAAiB,GAAG,IAAI,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;YAElG,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAClE,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBACjC,iBAAiB,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAA;YACpD,CAAC;YAED,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,iBAAiB,EAAE,CAAC;gBACzC,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzE,8DAA8D;oBAC9D,qDAAqD;oBACrD,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC3D,iBAAiB,CAAC,sBAAsB,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAE,CAAC,CAAC,CAAA;gBACrE,CAAC;gBACD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;oBACjC,iBAAiB,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC5D,CAAC;gBAED,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;gBACzD,iBAAiB,CAAC,eAAe,CAAC,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;YAC3E,CAAC;YAED,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,YAAY,EAAE,CAAC;gBACpC,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;gBACzD,iBAAiB,CAAC,eAAe,CAAC,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;YAC3E,CAAC;YAED,IAAI,cAAc,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACnC,iBAAiB,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAA;YACzE,CAAC;YAED,IAAI,iBAAiB,CAAC,UAAU,EAAE,EAAE,CAAC;gBACnC,MAAM,iBAAiB,CAAC,WAAW,CAAC,cAAc,CAAC,CAAA;YACrD,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED,MAAM,yBAAyB;IACA;IAA7B,YAA6B,SAAmB;QAAnB,cAAS,GAAT,SAAS,CAAU;IAAG,CAAC;IAEpD,SAAS,CAAC,OAA6B;QACrC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,KAAK,CAAA;QACd,CAAC;QAED,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;IAC/C,CAAC;IAED,UAAU,CAAC,OAAkB;QAC3B,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;QAEnC,OAAO;YACL;gBACE,OAAO,EAAE,YAAY;gBACrB,OAAO;aACC;SACX,CAAA;IACH,CAAC;IAED,CAAC,GAAG,CAAC,oBAAmE,EAAE,cAAoB;QAC5F,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAA;QACtD,6FAA6F;QAC7F,IAAI,kBAAkB,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YACtC,OAAM;QACR,CAAC;QAED,MAAM,WAAW,GAAgB;YAC/B,IAAI,EAAE,aAAa;YACnB,MAAM,EAAE,kBAAkB,CAAC,CAAC;YAC5B,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,EAAE,EAAE,SAAS;YACb,KAAK,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACnC,MAAM,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,sCAAsC;YAC5E,IAAI,EAAE,kBAAkB,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;YACtD,SAAS,EAAE,sBAAsB,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACvD,cAAc,EAAE,cAAc;SAC/B,CAAA;QAED,MAAM,WAAW,CAAA;IACnB,CAAC;CACF;AAED,MAAM,uBAAuB;IACE;IAA7B,YAA6B,SAAmB;QAAnB,cAAS,GAAT,SAAS,CAAU;IAAG,CAAC;IAEpD,SAAS,CAAC,OAA6B;QACrC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,KAAK,CAAA;QACd,CAAC;QAED,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;IAC/C,CAAC;IAED,UAAU,CAAC,OAAkB;QAC3B,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;QAEnC,OAAO;YACL;gBACE,OAAO,EAAE,YAAY;gBACrB,OAAO;aACC;SACX,CAAA;IACH,CAAC;IAED,CAAC,GAAG,CAAC,yBAAiE,EAAE,cAAoB;QAC1F,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,IAAI,CAAA;QAExD,MAAM,MAAM,GAAe;YACzB,IAAI,EAAE,aAAa;YACnB,MAAM,EAAE,iBAAiB,CAAC,CAAC;YAC3B,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,SAAS,EAAE,iBAAiB,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;YACtF,QAAQ,EAAE,iBAAiB,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;YACrF,QAAQ,EAAE,iBAAiB,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;YACrF,SAAS,EAAE,iBAAiB,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;YACtF,SAAS,EAAE,iBAAiB,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc;YAC3G,cAAc,EAAE,cAAc;SAC/B,CAAA;QAED,MAAM,MAAM,CAAA;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"binance.js","sourceRoot":"","sources":["../../src/mappers/binance.ts"],"names":[],"mappings":"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"}