tardis-machine 18.0.0 → 18.1.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.
- package/benchmark.js +35 -14
- package/bin/tardis-machine.js +0 -1
- package/dist/tardismachine.d.ts.map +1 -1
- package/dist/tardismachine.js +20 -55
- package/dist/tardismachine.js.map +1 -1
- package/dist/ws/replay.d.ts +2 -2
- package/dist/ws/replay.d.ts.map +1 -1
- package/dist/ws/replay.js +11 -5
- package/dist/ws/replay.js.map +1 -1
- package/dist/ws/replaynormalized.d.ts +2 -2
- package/dist/ws/replaynormalized.d.ts.map +1 -1
- package/dist/ws/replaynormalized.js +7 -5
- package/dist/ws/replaynormalized.js.map +1 -1
- package/dist/ws/server.d.ts +20 -0
- package/dist/ws/server.d.ts.map +1 -0
- package/dist/ws/server.js +154 -0
- package/dist/ws/server.js.map +1 -0
- package/dist/ws/streamnormalized.d.ts +2 -2
- package/dist/ws/streamnormalized.d.ts.map +1 -1
- package/dist/ws/streamnormalized.js +7 -5
- package/dist/ws/streamnormalized.js.map +1 -1
- package/dist/ws/subscriptionsmappers.d.ts +1 -1
- package/dist/ws/subscriptionsmappers.d.ts.map +1 -1
- package/node_modules/tardis-dev/README.md +1 -1
- package/node_modules/tardis-dev/dist/debug.d.ts +12 -2
- package/node_modules/tardis-dev/dist/debug.d.ts.map +1 -1
- package/node_modules/tardis-dev/dist/debug.js +2 -1
- package/node_modules/tardis-dev/dist/debug.js.map +1 -1
- package/node_modules/tardis-dev/dist/downloaddatasets.d.ts.map +1 -1
- package/node_modules/tardis-dev/dist/downloaddatasets.js +3 -1
- package/node_modules/tardis-dev/dist/downloaddatasets.js.map +1 -1
- package/node_modules/tardis-dev/dist/handy.d.ts +5 -2
- package/node_modules/tardis-dev/dist/handy.d.ts.map +1 -1
- package/node_modules/tardis-dev/dist/handy.js +77 -90
- package/node_modules/tardis-dev/dist/handy.js.map +1 -1
- package/node_modules/tardis-dev/dist/mappers/hyperliquid.d.ts +1 -1
- package/node_modules/tardis-dev/dist/mappers/hyperliquid.d.ts.map +1 -1
- package/node_modules/tardis-dev/dist/mappers/hyperliquid.js +15 -4
- package/node_modules/tardis-dev/dist/mappers/hyperliquid.js.map +1 -1
- package/node_modules/tardis-dev/dist/mappers/index.d.ts +1 -1
- package/node_modules/tardis-dev/dist/realtimefeeds/mexc.d.ts +0 -7
- package/node_modules/tardis-dev/dist/realtimefeeds/mexc.d.ts.map +1 -1
- package/node_modules/tardis-dev/dist/realtimefeeds/mexc.js +2 -70
- package/node_modules/tardis-dev/dist/realtimefeeds/mexc.js.map +1 -1
- package/node_modules/tardis-dev/dist/realtimefeeds/mexcprotobuf.d.ts +43 -0
- package/node_modules/tardis-dev/dist/realtimefeeds/mexcprotobuf.d.ts.map +1 -0
- package/node_modules/tardis-dev/dist/realtimefeeds/mexcprotobuf.js +294 -0
- package/node_modules/tardis-dev/dist/realtimefeeds/mexcprotobuf.js.map +1 -0
- package/node_modules/tardis-dev/dist/realtimefeeds/realtimefeed.d.ts +3 -3
- package/node_modules/tardis-dev/dist/realtimefeeds/realtimefeed.d.ts.map +1 -1
- package/node_modules/tardis-dev/dist/realtimefeeds/realtimefeed.js +3 -3
- package/node_modules/tardis-dev/dist/realtimefeeds/realtimefeed.js.map +1 -1
- package/node_modules/tardis-dev/dist/replay.d.ts.map +1 -1
- package/node_modules/tardis-dev/dist/replay.js +6 -4
- package/node_modules/tardis-dev/dist/replay.js.map +1 -1
- package/node_modules/tardis-dev/dist/worker.d.ts.map +1 -1
- package/node_modules/tardis-dev/dist/worker.js +7 -4
- package/node_modules/tardis-dev/dist/worker.js.map +1 -1
- package/node_modules/tardis-dev/dist/zstd.d.ts +3 -0
- package/node_modules/tardis-dev/dist/zstd.d.ts.map +1 -0
- package/node_modules/tardis-dev/dist/zstd.js +122 -0
- package/node_modules/tardis-dev/dist/zstd.js.map +1 -0
- package/node_modules/tardis-dev/package.json +3 -7
- package/node_modules/tardis-dev/src/debug.ts +16 -1
- package/node_modules/tardis-dev/src/downloaddatasets.ts +3 -1
- package/node_modules/tardis-dev/src/external-modules.d.ts +5 -0
- package/node_modules/tardis-dev/src/handy.ts +100 -93
- package/node_modules/tardis-dev/src/mappers/hyperliquid.ts +19 -5
- package/node_modules/tardis-dev/src/realtimefeeds/mexc.ts +2 -72
- package/node_modules/tardis-dev/src/realtimefeeds/mexcprotobuf.ts +364 -0
- package/node_modules/tardis-dev/src/realtimefeeds/realtimefeed.ts +5 -5
- package/node_modules/tardis-dev/src/replay.ts +6 -4
- package/node_modules/tardis-dev/src/worker.ts +7 -4
- package/node_modules/tardis-dev/src/zstd.ts +139 -0
- package/package.json +9 -35
- package/src/tardismachine.ts +25 -66
- package/src/ws/replay.ts +13 -8
- package/src/ws/replaynormalized.ts +8 -6
- package/src/ws/server.ts +173 -0
- package/src/ws/streamnormalized.ts +8 -6
- package/src/ws/subscriptionsmappers.ts +1 -1
- package/node_modules/follow-redirects/LICENSE +0 -18
- package/node_modules/follow-redirects/README.md +0 -157
- package/node_modules/follow-redirects/debug.js +0 -15
- package/node_modules/follow-redirects/http.js +0 -1
- package/node_modules/follow-redirects/https.js +0 -1
- package/node_modules/follow-redirects/index.js +0 -709
- package/node_modules/follow-redirects/package.json +0 -58
- package/node_modules/long/LICENSE +0 -202
- package/node_modules/long/README.md +0 -286
- package/node_modules/long/index.d.ts +0 -2
- package/node_modules/long/index.js +0 -1581
- package/node_modules/long/package.json +0 -58
- package/node_modules/long/types.d.ts +0 -474
- package/node_modules/long/umd/index.d.ts +0 -3
- package/node_modules/long/umd/index.js +0 -1622
- package/node_modules/long/umd/package.json +0 -3
- package/node_modules/long/umd/types.d.ts +0 -474
- package/node_modules/protobufjs/LICENSE +0 -39
- package/node_modules/protobufjs/README.md +0 -440
- package/node_modules/protobufjs/dist/light/protobuf.js +0 -9276
- package/node_modules/protobufjs/dist/light/protobuf.js.map +0 -1
- package/node_modules/protobufjs/dist/light/protobuf.min.js +0 -8
- package/node_modules/protobufjs/dist/light/protobuf.min.js.map +0 -1
- package/node_modules/protobufjs/dist/minimal/protobuf.js +0 -3556
- package/node_modules/protobufjs/dist/minimal/protobuf.js.map +0 -1
- package/node_modules/protobufjs/dist/minimal/protobuf.min.js +0 -8
- package/node_modules/protobufjs/dist/minimal/protobuf.min.js.map +0 -1
- package/node_modules/protobufjs/dist/protobuf.js +0 -11233
- package/node_modules/protobufjs/dist/protobuf.js.map +0 -1
- package/node_modules/protobufjs/dist/protobuf.min.js +0 -8
- package/node_modules/protobufjs/dist/protobuf.min.js.map +0 -1
- package/node_modules/protobufjs/ext/README.md +0 -70
- package/node_modules/protobufjs/ext/debug/README.md +0 -4
- package/node_modules/protobufjs/ext/debug/index.js +0 -71
- package/node_modules/protobufjs/ext/descriptor/README.md +0 -5
- package/node_modules/protobufjs/ext/descriptor/index.d.ts +0 -2
- package/node_modules/protobufjs/ext/descriptor/index.js +0 -2
- package/node_modules/protobufjs/ext/descriptor.d.ts +0 -87
- package/node_modules/protobufjs/ext/descriptor.generated.d.ts +0 -417
- package/node_modules/protobufjs/ext/descriptor.js +0 -1356
- package/node_modules/protobufjs/ext/protojson.LICENSE +0 -201
- package/node_modules/protobufjs/ext/protojson.d.ts +0 -20
- package/node_modules/protobufjs/ext/protojson.generated.d.ts +0 -49
- package/node_modules/protobufjs/ext/protojson.js +0 -951
- package/node_modules/protobufjs/ext/textformat.d.ts +0 -19
- package/node_modules/protobufjs/ext/textformat.generated.d.ts +0 -33
- package/node_modules/protobufjs/ext/textformat.js +0 -1276
- package/node_modules/protobufjs/google/LICENSE +0 -27
- package/node_modules/protobufjs/google/README.md +0 -1
- package/node_modules/protobufjs/google/api/annotations.json +0 -85
- package/node_modules/protobufjs/google/api/annotations.proto +0 -11
- package/node_modules/protobufjs/google/api/http.json +0 -87
- package/node_modules/protobufjs/google/api/http.proto +0 -31
- package/node_modules/protobufjs/google/protobuf/api.json +0 -124
- package/node_modules/protobufjs/google/protobuf/api.proto +0 -34
- package/node_modules/protobufjs/google/protobuf/compiler/plugin.json +0 -126
- package/node_modules/protobufjs/google/protobuf/compiler/plugin.proto +0 -47
- package/node_modules/protobufjs/google/protobuf/descriptor.json +0 -1465
- package/node_modules/protobufjs/google/protobuf/descriptor.proto +0 -527
- package/node_modules/protobufjs/google/protobuf/source_context.json +0 -21
- package/node_modules/protobufjs/google/protobuf/source_context.proto +0 -7
- package/node_modules/protobufjs/google/protobuf/type.json +0 -209
- package/node_modules/protobufjs/google/protobuf/type.proto +0 -89
- package/node_modules/protobufjs/index.d.ts +0 -3203
- package/node_modules/protobufjs/index.js +0 -4
- package/node_modules/protobufjs/light.d.ts +0 -2
- package/node_modules/protobufjs/light.js +0 -4
- package/node_modules/protobufjs/minimal.d.ts +0 -2
- package/node_modules/protobufjs/minimal.js +0 -4
- package/node_modules/protobufjs/package.json +0 -93
- package/node_modules/protobufjs/src/common.js +0 -405
- package/node_modules/protobufjs/src/converter.js +0 -352
- package/node_modules/protobufjs/src/decoder.js +0 -279
- package/node_modules/protobufjs/src/encoder.js +0 -123
- package/node_modules/protobufjs/src/enum.js +0 -239
- package/node_modules/protobufjs/src/field.js +0 -505
- package/node_modules/protobufjs/src/index-light.js +0 -104
- package/node_modules/protobufjs/src/index-minimal.js +0 -35
- package/node_modules/protobufjs/src/index.js +0 -12
- package/node_modules/protobufjs/src/mapfield.js +0 -144
- package/node_modules/protobufjs/src/message.js +0 -137
- package/node_modules/protobufjs/src/method.js +0 -183
- package/node_modules/protobufjs/src/namespace.js +0 -574
- package/node_modules/protobufjs/src/object.js +0 -392
- package/node_modules/protobufjs/src/oneof.js +0 -233
- package/node_modules/protobufjs/src/parse.js +0 -1111
- package/node_modules/protobufjs/src/reader.js +0 -788
- package/node_modules/protobufjs/src/reader_buffer.js +0 -77
- package/node_modules/protobufjs/src/root.js +0 -424
- package/node_modules/protobufjs/src/roots.js +0 -18
- package/node_modules/protobufjs/src/rpc/service.js +0 -155
- package/node_modules/protobufjs/src/rpc.js +0 -36
- package/node_modules/protobufjs/src/service.js +0 -206
- package/node_modules/protobufjs/src/tokenize.js +0 -421
- package/node_modules/protobufjs/src/type.js +0 -676
- package/node_modules/protobufjs/src/types.js +0 -196
- package/node_modules/protobufjs/src/typescript.js +0 -25
- package/node_modules/protobufjs/src/util/aspromise.d.ts +0 -13
- package/node_modules/protobufjs/src/util/aspromise.js +0 -52
- package/node_modules/protobufjs/src/util/base64.d.ts +0 -32
- package/node_modules/protobufjs/src/util/base64.js +0 -146
- package/node_modules/protobufjs/src/util/codegen.d.ts +0 -31
- package/node_modules/protobufjs/src/util/codegen.js +0 -118
- package/node_modules/protobufjs/src/util/eventemitter.d.ts +0 -45
- package/node_modules/protobufjs/src/util/eventemitter.js +0 -86
- package/node_modules/protobufjs/src/util/fetch.d.ts +0 -56
- package/node_modules/protobufjs/src/util/fetch.js +0 -112
- package/node_modules/protobufjs/src/util/float.d.ts +0 -83
- package/node_modules/protobufjs/src/util/float.js +0 -335
- package/node_modules/protobufjs/src/util/fs.js +0 -11
- package/node_modules/protobufjs/src/util/longbits.js +0 -204
- package/node_modules/protobufjs/src/util/minimal.js +0 -511
- package/node_modules/protobufjs/src/util/path.d.ts +0 -22
- package/node_modules/protobufjs/src/util/path.js +0 -100
- package/node_modules/protobufjs/src/util/patterns.js +0 -7
- package/node_modules/protobufjs/src/util/pool.d.ts +0 -32
- package/node_modules/protobufjs/src/util/pool.js +0 -48
- package/node_modules/protobufjs/src/util/utf8.d.ts +0 -24
- package/node_modules/protobufjs/src/util/utf8.js +0 -190
- package/node_modules/protobufjs/src/util.js +0 -264
- package/node_modules/protobufjs/src/verifier.js +0 -185
- package/node_modules/protobufjs/src/wrappers.js +0 -106
- package/node_modules/protobufjs/src/writer.js +0 -700
- package/node_modules/protobufjs/src/writer_buffer.js +0 -100
- package/node_modules/protobufjs/tsconfig.json +0 -6
- package/node_modules/uWebSockets.js/ESM_wrapper.mjs +0 -53
- package/node_modules/uWebSockets.js/LICENSE +0 -201
- package/node_modules/uWebSockets.js/README.md +0 -6
- package/node_modules/uWebSockets.js/index.d.ts +0 -468
- package/node_modules/uWebSockets.js/package.json +0 -12
- package/node_modules/uWebSockets.js/source_commit +0 -1
- package/node_modules/uWebSockets.js/uws.js +0 -76
- package/node_modules/uWebSockets.js/uws_darwin_arm64_127.node +0 -0
- package/node_modules/uWebSockets.js/uws_darwin_arm64_137.node +0 -0
- package/node_modules/uWebSockets.js/uws_darwin_arm64_147.node +0 -0
- package/node_modules/uWebSockets.js/uws_darwin_x64_127.node +0 -0
- package/node_modules/uWebSockets.js/uws_darwin_x64_137.node +0 -0
- package/node_modules/uWebSockets.js/uws_darwin_x64_147.node +0 -0
- package/node_modules/uWebSockets.js/uws_linux_arm64_127.node +0 -0
- package/node_modules/uWebSockets.js/uws_linux_arm64_137.node +0 -0
- package/node_modules/uWebSockets.js/uws_linux_arm64_147.node +0 -0
- package/node_modules/uWebSockets.js/uws_linux_x64_127.node +0 -0
- package/node_modules/uWebSockets.js/uws_linux_x64_137.node +0 -0
- package/node_modules/uWebSockets.js/uws_linux_x64_147.node +0 -0
- package/node_modules/uWebSockets.js/uws_win32_x64_127.node +0 -0
- package/node_modules/uWebSockets.js/uws_win32_x64_137.node +0 -0
- package/node_modules/uWebSockets.js/uws_win32_x64_147.node +0 -0
|
@@ -2,11 +2,11 @@ import { decode } from 'node:querystring';
|
|
|
2
2
|
import { combine, compute, streamNormalized } from 'tardis-dev';
|
|
3
3
|
import { debug } from "../debug.js";
|
|
4
4
|
import { constructDataTypeFilter, getComputables, getNormalizers, wait } from "../helpers.js";
|
|
5
|
-
export async function streamNormalizedWS(ws,
|
|
5
|
+
export async function streamNormalizedWS(ws, query) {
|
|
6
6
|
let messages;
|
|
7
7
|
try {
|
|
8
8
|
const startTimestamp = new Date().getTime();
|
|
9
|
-
const parsedQuery = decode(
|
|
9
|
+
const parsedQuery = decode(query);
|
|
10
10
|
const optionsString = parsedQuery['options'];
|
|
11
11
|
const streamNormalizedOptions = JSON.parse(optionsString);
|
|
12
12
|
debug('WebSocket /ws-stream-normalized started, options: %o', streamNormalizedOptions);
|
|
@@ -61,7 +61,7 @@ export async function streamNormalizedWS(ws, req) {
|
|
|
61
61
|
retries = 0;
|
|
62
62
|
bufferedAmount = 0;
|
|
63
63
|
// handle backpressure in case of slow clients
|
|
64
|
-
while ((bufferedAmount = ws.getBufferedAmount()) > 0) {
|
|
64
|
+
while (!ws.closed && (bufferedAmount = ws.getBufferedAmount()) > 0) {
|
|
65
65
|
retries += 1;
|
|
66
66
|
const isState = new Date().valueOf() - message.localTimestamp.valueOf() >= 6;
|
|
67
67
|
// log stale messages, stale meaning message was not sent in 6 ms or more (2 retries)
|
|
@@ -74,12 +74,14 @@ export async function streamNormalizedWS(ws, req) {
|
|
|
74
74
|
}
|
|
75
75
|
await wait(3 * retries);
|
|
76
76
|
}
|
|
77
|
+
if (ws.closed)
|
|
78
|
+
return;
|
|
77
79
|
ws.send(JSON.stringify(message));
|
|
78
80
|
if (message.type !== 'disconnect') {
|
|
79
81
|
subSequentErrorsCount[exchange] = 0;
|
|
80
82
|
}
|
|
81
83
|
}
|
|
82
|
-
while (ws.getBufferedAmount() > 0) {
|
|
84
|
+
while (!ws.closed && ws.getBufferedAmount() > 0) {
|
|
83
85
|
await wait(100);
|
|
84
86
|
}
|
|
85
87
|
ws.end(1000, 'WS stream-normalized finished');
|
|
@@ -96,7 +98,7 @@ export async function streamNormalizedWS(ws, req) {
|
|
|
96
98
|
finally {
|
|
97
99
|
// this will close underlying open WS connections
|
|
98
100
|
if (messages !== undefined) {
|
|
99
|
-
messages.return();
|
|
101
|
+
await messages.return?.();
|
|
100
102
|
}
|
|
101
103
|
}
|
|
102
104
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamnormalized.js","sourceRoot":"","sources":["../../src/ws/streamnormalized.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAY,gBAAgB,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"streamnormalized.js","sourceRoot":"","sources":["../../src/ws/streamnormalized.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Exchange, Filter } from 'tardis-dev';
|
|
1
|
+
import type { Exchange, Filter } from 'tardis-dev';
|
|
2
2
|
export declare const subscriptionsMappers: Record<Exchange, SubscriptionMapper>;
|
|
3
3
|
export type SubscriptionMapper = {
|
|
4
4
|
canHandle: (message: object, date: Date) => boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscriptionsmappers.d.ts","sourceRoot":"","sources":["../../src/ws/subscriptionsmappers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"subscriptionsmappers.d.ts","sourceRoot":"","sources":["../../src/ws/subscriptionsmappers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAyxBlD,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,QAAQ,EAAE,kBAAkB,CA+DrE,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,OAAO,CAAA;IACnD,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,CAAA;CACvD,CAAA"}
|
|
@@ -1,3 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
export interface DebugLogger {
|
|
2
|
+
(formatter: any, ...args: any[]): void;
|
|
3
|
+
color: string;
|
|
4
|
+
diff: number;
|
|
5
|
+
enabled: boolean;
|
|
6
|
+
log: (...args: any[]) => any;
|
|
7
|
+
namespace: string;
|
|
8
|
+
destroy: () => boolean;
|
|
9
|
+
extend: (namespace: string, delimiter?: string) => DebugLogger;
|
|
10
|
+
}
|
|
11
|
+
export declare const createDebug: (namespace: string) => DebugLogger;
|
|
12
|
+
export declare const debug: DebugLogger;
|
|
3
13
|
//# sourceMappingURL=debug.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;IACtC,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,OAAO,CAAA;IACtB,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,WAAW,CAAA;CAC/D;AAED,eAAO,MAAM,WAAW,EAAU,CAAC,SAAS,EAAE,MAAM,KAAK,WAAW,CAAA;AACpE,eAAO,MAAM,KAAK,aAA4B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,OAAO,CAAA;AAgBvB,MAAM,CAAC,MAAM,WAAW,GAAG,GAAyC,CAAA;AACpE,MAAM,CAAC,MAAM,KAAK,GAAG,WAAW,CAAC,YAAY,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"downloaddatasets.d.ts","sourceRoot":"","sources":["../src/downloaddatasets.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAIlD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"downloaddatasets.d.ts","sourceRoot":"","sources":["../src/downloaddatasets.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAIlD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AASrC,wBAAsB,gBAAgB,CAAC,uBAAuB,EAAE,uBAAuB,iBAyEtF;AAwDD,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,UAE5C;AA6BD,KAAK,kBAAkB,GAAG;IACxB,QAAQ,EAAE,QAAQ,CAAA;IAClB,QAAQ,EAAE,WAAW,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,IAAI,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,KAAK,uBAAuB,GAAG;IAC7B,QAAQ,EAAE,QAAQ,CAAA;IAClB,SAAS,EAAE,WAAW,EAAE,CAAA;IACxB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,CAAC,EAAE,KAAK,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,MAAM,CAAA;IACrD,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA"}
|
|
@@ -6,6 +6,7 @@ import { getOptions } from "./options.js";
|
|
|
6
6
|
const CONCURRENCY_LIMIT = 20;
|
|
7
7
|
const MILLISECONDS_IN_SINGLE_DAY = 24 * 60 * 60 * 1000;
|
|
8
8
|
const DEFAULT_DOWNLOAD_DIR = './datasets';
|
|
9
|
+
const DATASET_DOWNLOAD_ATTEMPT_TIMEOUT_MS = 120_000;
|
|
9
10
|
const options = getOptions();
|
|
10
11
|
export async function downloadDatasets(downloadDatasetsOptions) {
|
|
11
12
|
const { exchange, dataTypes, from, to, symbols } = downloadDatasetsOptions;
|
|
@@ -88,7 +89,8 @@ function getDownloadOptions({ apiKey, exchange, dataType, date, symbol, format,
|
|
|
88
89
|
url,
|
|
89
90
|
downloadPath,
|
|
90
91
|
userAgent: options._userAgent,
|
|
91
|
-
apiKey
|
|
92
|
+
apiKey,
|
|
93
|
+
attemptTimeoutMS: DATASET_DOWNLOAD_ATTEMPT_TIMEOUT_MS
|
|
92
94
|
};
|
|
93
95
|
}
|
|
94
96
|
export function sanitizeForFilename(s) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"downloaddatasets.js","sourceRoot":"","sources":["../src/downloaddatasets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGzC,MAAM,iBAAiB,GAAG,EAAE,CAAA;AAC5B,MAAM,0BAA0B,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AACtD,MAAM,oBAAoB,GAAG,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"downloaddatasets.js","sourceRoot":"","sources":["../src/downloaddatasets.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,16 +46,19 @@ type JSONResponse<T> = {
|
|
|
46
46
|
};
|
|
47
47
|
export declare function getJSON<T>(url: string, options?: HttpRequestOptions): Promise<JSONResponse<T>>;
|
|
48
48
|
export declare function postJSON<T>(url: string, options?: HttpRequestOptions): Promise<JSONResponse<T>>;
|
|
49
|
-
export declare function download({ apiKey, downloadPath, url, userAgent, appendContentEncodingExtension, acceptEncoding }: {
|
|
49
|
+
export declare function download({ apiKey, downloadPath, url, userAgent, appendContentEncodingExtension, acceptEncoding, attemptTimeoutMS }: {
|
|
50
50
|
url: string;
|
|
51
51
|
downloadPath: string;
|
|
52
52
|
userAgent: string;
|
|
53
53
|
apiKey: string;
|
|
54
54
|
appendContentEncodingExtension?: boolean;
|
|
55
55
|
acceptEncoding?: string;
|
|
56
|
+
attemptTimeoutMS?: number;
|
|
56
57
|
}): Promise<{
|
|
57
58
|
downloadPath: string;
|
|
58
|
-
headers:
|
|
59
|
+
headers: {
|
|
60
|
+
[k: string]: string;
|
|
61
|
+
};
|
|
59
62
|
}>;
|
|
60
63
|
export declare function cleanTempFiles(): void;
|
|
61
64
|
export declare class CircularBuffer<T> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handy.d.ts","sourceRoot":"","sources":["../src/handy.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,IAAI,SAAS,
|
|
1
|
+
{"version":3,"file":"handy.d.ts","sourceRoot":"","sources":["../src/handy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import crypto, { createHash } from 'crypto';
|
|
2
2
|
import { createWriteStream, mkdirSync, rmSync } from 'node:fs';
|
|
3
3
|
import { rename } from 'node:fs/promises';
|
|
4
|
-
import { Agent as HttpAgent } from 'node:http';
|
|
5
|
-
import { Agent as HttpsAgent } from 'node:https';
|
|
6
|
-
import
|
|
4
|
+
import { Agent as HttpAgent, request as httpRequest } from 'node:http';
|
|
5
|
+
import { Agent as HttpsAgent, request as httpsRequest } from 'node:https';
|
|
6
|
+
import { pipeline } from 'node:stream/promises';
|
|
7
7
|
import path from 'path';
|
|
8
8
|
import { debug } from "./debug.js";
|
|
9
|
-
const { http: followRedirectsHttp, https: followRedirectsHttps } = followRedirects;
|
|
10
9
|
export function parseAsUTCDate(val) {
|
|
11
10
|
// Treat date-only and minute-level strings as UTC instead of local time.
|
|
12
11
|
if (val.endsWith('Z') === false) {
|
|
@@ -347,36 +346,57 @@ async function requestViaFetch(method, url, options) {
|
|
|
347
346
|
}
|
|
348
347
|
}
|
|
349
348
|
}
|
|
350
|
-
|
|
351
|
-
const
|
|
352
|
-
const
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
}, (response) => {
|
|
361
|
-
response.setEncoding('utf8');
|
|
362
|
-
let body = '';
|
|
363
|
-
response.on('error', reject);
|
|
364
|
-
response.on('data', (chunk) => (body += chunk));
|
|
365
|
-
response.on('end', () => {
|
|
366
|
-
resolve(createHttpResponse(response.statusCode ?? 0, parseNodeResponseHeaders(response.headers), body));
|
|
367
|
-
});
|
|
368
|
-
})
|
|
369
|
-
.on('error', reject)
|
|
370
|
-
.on('timeout', () => {
|
|
371
|
-
reject(new Error('Request timed out'));
|
|
372
|
-
request.destroy();
|
|
373
|
-
});
|
|
374
|
-
if (preparedRequest.body !== undefined) {
|
|
375
|
-
request.write(preparedRequest.body);
|
|
349
|
+
function sendHttpRequest(url, options, body) {
|
|
350
|
+
const requestUrl = new URL(url);
|
|
351
|
+
const requestClient = requestUrl.protocol === 'http:' ? httpRequest : httpsRequest;
|
|
352
|
+
const agent = getProxyAgent(requestUrl) ?? (requestUrl.protocol === 'https:' ? httpsAgent : undefined);
|
|
353
|
+
return new Promise((resolve, reject) => {
|
|
354
|
+
const request = requestClient(requestUrl, { ...options, agent }, resolve);
|
|
355
|
+
request.once('error', reject);
|
|
356
|
+
request.once('timeout', () => request.destroy(new Error('Request timed out')));
|
|
357
|
+
if (body !== undefined) {
|
|
358
|
+
request.write(body);
|
|
376
359
|
}
|
|
377
360
|
request.end();
|
|
378
361
|
});
|
|
379
362
|
}
|
|
363
|
+
async function openDownloadResponse(url, options) {
|
|
364
|
+
const response = await sendHttpRequest(url, options);
|
|
365
|
+
const statusCode = response.statusCode ?? 0;
|
|
366
|
+
const location = response.headers.location;
|
|
367
|
+
if (location === undefined || statusCode < 300 || statusCode >= 400) {
|
|
368
|
+
return response;
|
|
369
|
+
}
|
|
370
|
+
response.destroy();
|
|
371
|
+
const sourceUrl = new URL(url);
|
|
372
|
+
const redirectUrl = new URL(location, sourceUrl);
|
|
373
|
+
const headers = { ...options.headers };
|
|
374
|
+
if (sourceUrl.origin !== redirectUrl.origin) {
|
|
375
|
+
delete headers.Authorization;
|
|
376
|
+
delete headers.authorization;
|
|
377
|
+
}
|
|
378
|
+
return sendHttpRequest(redirectUrl, {
|
|
379
|
+
...options,
|
|
380
|
+
headers
|
|
381
|
+
});
|
|
382
|
+
}
|
|
383
|
+
async function readResponseText(response) {
|
|
384
|
+
response.setEncoding('utf8');
|
|
385
|
+
let body = '';
|
|
386
|
+
for await (const chunk of response) {
|
|
387
|
+
body += chunk;
|
|
388
|
+
}
|
|
389
|
+
return body;
|
|
390
|
+
}
|
|
391
|
+
async function requestViaProxy(method, url, options) {
|
|
392
|
+
const preparedRequest = prepareRequest(method, options);
|
|
393
|
+
const response = await sendHttpRequest(url, {
|
|
394
|
+
method,
|
|
395
|
+
headers: preparedRequest.headers,
|
|
396
|
+
timeout: options.timeout
|
|
397
|
+
}, preparedRequest.body);
|
|
398
|
+
return createHttpResponse(response.statusCode ?? 0, parseNodeResponseHeaders(response.headers), await readResponseText(response));
|
|
399
|
+
}
|
|
380
400
|
async function request(method, url, options = {}) {
|
|
381
401
|
const retrySettings = getRetrySettings(method, options.retry);
|
|
382
402
|
for (let attempt = 1;; attempt += 1) {
|
|
@@ -417,9 +437,9 @@ export function getJSON(url, options) {
|
|
|
417
437
|
export function postJSON(url, options) {
|
|
418
438
|
return requestJSON('POST', url, options);
|
|
419
439
|
}
|
|
420
|
-
export async function download({ apiKey, downloadPath, url, userAgent, appendContentEncodingExtension = false, acceptEncoding = 'gzip' }) {
|
|
440
|
+
export async function download({ apiKey, downloadPath, url, userAgent, appendContentEncodingExtension = false, acceptEncoding = 'gzip', attemptTimeoutMS = 90 * ONE_SEC_IN_MS }) {
|
|
421
441
|
const httpRequestOptions = {
|
|
422
|
-
timeout:
|
|
442
|
+
timeout: attemptTimeoutMS,
|
|
423
443
|
headers: {
|
|
424
444
|
'Accept-Encoding': acceptEncoding,
|
|
425
445
|
'User-Agent': userAgent,
|
|
@@ -477,10 +497,10 @@ async function _downloadFile(requestOptions, url, downloadPath, appendContentEnc
|
|
|
477
497
|
mkdirSync(path.dirname(downloadPath), { recursive: true });
|
|
478
498
|
// create write file stream that we'll write data into - first as unconfirmed temp file
|
|
479
499
|
const tmpFilePath = `${downloadPath}${crypto.randomBytes(8).toString('hex')}.unconfirmed`;
|
|
480
|
-
|
|
500
|
+
let fileWriteStream;
|
|
481
501
|
const cleanup = () => {
|
|
482
502
|
try {
|
|
483
|
-
fileWriteStream
|
|
503
|
+
fileWriteStream?.destroy();
|
|
484
504
|
rmSync(tmpFilePath, { force: true });
|
|
485
505
|
}
|
|
486
506
|
catch { }
|
|
@@ -489,62 +509,29 @@ async function _downloadFile(requestOptions, url, downloadPath, appendContentEnc
|
|
|
489
509
|
let finalDownloadPath = downloadPath;
|
|
490
510
|
try {
|
|
491
511
|
// based on https://github.com/nodejs/node/issues/28172 - only reliable way to consume response stream and avoiding all the 'gotchas'
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
finalDownloadPath = `${downloadPath}.zst`;
|
|
516
|
-
}
|
|
517
|
-
else if (contentEncoding === undefined || contentEncoding === 'gzip') {
|
|
518
|
-
finalDownloadPath = `${downloadPath}.gz`;
|
|
519
|
-
}
|
|
520
|
-
else {
|
|
521
|
-
reject(new Error(`Unsupported data feed content encoding: ${contentEncoding}`));
|
|
522
|
-
return;
|
|
523
|
-
}
|
|
524
|
-
}
|
|
525
|
-
// consume the response stream by writing it to the file
|
|
526
|
-
res
|
|
527
|
-
.on('error', reject)
|
|
528
|
-
.on('aborted', () => reject(new Error('Request aborted')))
|
|
529
|
-
.pipe(fileWriteStream)
|
|
530
|
-
.on('error', reject)
|
|
531
|
-
.on('finish', () => {
|
|
532
|
-
if (res.complete) {
|
|
533
|
-
resolve();
|
|
534
|
-
}
|
|
535
|
-
else {
|
|
536
|
-
reject(new Error('The connection was terminated while the message was still being sent'));
|
|
537
|
-
}
|
|
538
|
-
});
|
|
539
|
-
}
|
|
540
|
-
})
|
|
541
|
-
.on('error', reject)
|
|
542
|
-
.on('timeout', () => {
|
|
543
|
-
debug('download file request timeout, %s', url);
|
|
544
|
-
reject(new Error('Request timed out'));
|
|
545
|
-
req.destroy();
|
|
546
|
-
});
|
|
547
|
-
});
|
|
512
|
+
const response = await openDownloadResponse(url, requestOptions);
|
|
513
|
+
const { statusCode } = response;
|
|
514
|
+
if (statusCode !== 200) {
|
|
515
|
+
throw new HttpError(statusCode ?? 0, await readResponseText(response), url);
|
|
516
|
+
}
|
|
517
|
+
const responseHeaders = parseNodeResponseHeaders(response.headers);
|
|
518
|
+
if (appendContentEncodingExtension) {
|
|
519
|
+
const contentEncoding = asSingleHeaderValue(response.headers['content-encoding']);
|
|
520
|
+
if (contentEncoding === 'zstd') {
|
|
521
|
+
finalDownloadPath = `${downloadPath}.zst`;
|
|
522
|
+
}
|
|
523
|
+
else if (contentEncoding === undefined || contentEncoding === 'gzip') {
|
|
524
|
+
finalDownloadPath = `${downloadPath}.gz`;
|
|
525
|
+
}
|
|
526
|
+
else {
|
|
527
|
+
throw new Error(`Unsupported data feed content encoding: ${contentEncoding}`);
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
fileWriteStream = createWriteStream(tmpFilePath);
|
|
531
|
+
await pipeline(response, fileWriteStream);
|
|
532
|
+
if (!response.complete) {
|
|
533
|
+
throw new Error('The connection was terminated while the message was still being sent');
|
|
534
|
+
}
|
|
548
535
|
// finally when saving from the network to file has succeded, rename tmp file to normal name
|
|
549
536
|
// then we're sure that responses is 100% saved and also even if different process was doing the same we're good
|
|
550
537
|
await rename(tmpFilePath, finalDownloadPath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handy.js","sourceRoot":"","sources":["../src/handy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"handy.js","sourceRoot":"","sources":["../src/handy.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { BookChange, BookTicker, DerivativeTicker, Trade } from '../types.ts';
|
|
|
2
2
|
export declare const hyperliquidMappers: {
|
|
3
3
|
hyperliquid: {
|
|
4
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<
|
|
5
|
+
bookChanges: import("./registry.ts").MapperCreator<any, BookChange>;
|
|
6
6
|
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>;
|
|
7
7
|
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>;
|
|
8
8
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hyperliquid.d.ts","sourceRoot":"","sources":["../../src/mappers/hyperliquid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"hyperliquid.d.ts","sourceRoot":"","sources":["../../src/mappers/hyperliquid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAM7E,eAAO,MAAM,kBAAkB;;;;;;;CAU7B,CAAA"}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { PendingTickerInfoHelper } from "./mapper.js";
|
|
2
|
-
import { exchangeMappers } from "./registry.js";
|
|
2
|
+
import { exchangeMappers, mapper } from "./registry.js";
|
|
3
|
+
const HYPERLIQUID_FAST_BOOK_SWITCH_DATE = new Date('2026-06-17T00:00:00.000Z');
|
|
3
4
|
export const hyperliquidMappers = exchangeMappers({
|
|
4
5
|
hyperliquid: {
|
|
5
6
|
trades: () => new HyperliquidTradesMapper(),
|
|
6
|
-
bookChanges: (
|
|
7
|
+
bookChanges: mapper([
|
|
8
|
+
{ until: HYPERLIQUID_FAST_BOOK_SWITCH_DATE, use: () => new HyperliquidBookChangeMapper('l2Book') },
|
|
9
|
+
{ use: () => new HyperliquidBookChangeMapper('fastBook') }
|
|
10
|
+
]),
|
|
7
11
|
derivativeTickers: () => new HyperliquidDerivativeTickerMapper(),
|
|
8
12
|
bookTickers: () => new HyperliquidBookTickerMapper()
|
|
9
13
|
}
|
|
@@ -67,14 +71,21 @@ function mapHyperliquidLevel(level) {
|
|
|
67
71
|
};
|
|
68
72
|
}
|
|
69
73
|
class HyperliquidBookChangeMapper {
|
|
74
|
+
filterChannel;
|
|
75
|
+
constructor(filterChannel) {
|
|
76
|
+
this.filterChannel = filterChannel;
|
|
77
|
+
}
|
|
70
78
|
canHandle(message) {
|
|
71
|
-
|
|
79
|
+
// Hyperliquid returns channel=l2Book for both live feeds and marks only the fast feed with data.fast=true.
|
|
80
|
+
// The recorder rewrites that channel to fastBook so historical data can distinguish the two feeds.
|
|
81
|
+
const isFastBook = message.channel === 'fastBook' || (message.channel === 'l2Book' && message.data.fast === true);
|
|
82
|
+
return this.filterChannel === 'fastBook' ? isFastBook : message.channel === 'l2Book' && isFastBook === false;
|
|
72
83
|
}
|
|
73
84
|
getFilters(symbols) {
|
|
74
85
|
symbols = getSymbols(symbols);
|
|
75
86
|
return [
|
|
76
87
|
{
|
|
77
|
-
channel:
|
|
88
|
+
channel: this.filterChannel,
|
|
78
89
|
symbols
|
|
79
90
|
}
|
|
80
91
|
];
|