tardis-machine 3.6.6 → 3.6.9

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.
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAGjB,UAAU,EACV,aAAa,EAEb,cAAc,EAKd,uBAAuB,EACvB,uBAAuB,EAExB,MAAM,YAAY,CAAA;AAEnB,oBAAY,YAAY,GAAG;IACzB,SAAS,EAAE,MAAM,EAAE,CAAA;CACpB,CAAA;AAED,oBAAY,mCAAmC,GAAG,uBAAuB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,YAAY,CAAA;AAElG,oBAAY,8BAA8B,GAAG,mCAAmC,GAAG,mCAAmC,EAAE,CAAA;AAExH,oBAAY,mCAAmC,GAAG,uBAAuB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,YAAY,CAAA;AAElG,oBAAY,8BAA8B,GAAG,mCAAmC,GAAG,mCAAmC,EAAE,CAAA;AAExH,wBAAiB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CA0B9F;AAmBD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,CAAC,mCAAmC,GAAG,mCAAmC,CAAC,EAAE,aAa3G,cAAc,GAAG,UAAU,SAO7C;AAwCD,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAkB5E;AAgGD,eAAO,MAAM,IAAI,YAAa,MAAM,qBAA2D,CAAA"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAGjB,UAAU,EACV,aAAa,EAEb,cAAc,EAKd,uBAAuB,EACvB,uBAAuB,EAExB,MAAM,YAAY,CAAA;AAEnB,oBAAY,YAAY,GAAG;IACzB,SAAS,EAAE,MAAM,EAAE,CAAA;CACpB,CAAA;AAED,oBAAY,mCAAmC,GAAG,uBAAuB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,YAAY,CAAA;AAElG,oBAAY,8BAA8B,GAAG,mCAAmC,GAAG,mCAAmC,EAAE,CAAA;AAExH,oBAAY,mCAAmC,GAAG,uBAAuB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,YAAY,CAAA;AAElG,oBAAY,8BAA8B,GAAG,mCAAmC,GAAG,mCAAmC,EAAE,CAAA;AAExH,wBAAiB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CA0B9F;AAmBD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,CAAC,mCAAmC,GAAG,mCAAmC,CAAC,EAAE,aAa3G,cAAc,GAAG,UAAU,SAO7C;AAwCD,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAkB5E;AAmGD,eAAO,MAAM,IAAI,YAAa,MAAM,qBAA2D,CAAA"}
package/dist/helpers.js CHANGED
@@ -155,7 +155,8 @@ function parseAsBookSnapshotComputable(dataType) {
155
155
  interval: bookSnapshotsToIntervalMultiplierMap[suffix].multiplier * interval,
156
156
  grouping,
157
157
  depth,
158
- name: dataType
158
+ name: dataType,
159
+ removeCrossedLevels: true
159
160
  });
160
161
  }
161
162
  throw new Error(`invalid data type: ${dataType}`);
@@ -165,7 +166,8 @@ function parseAsQuoteComputable(dataType) {
165
166
  return (0, tardis_dev_1.computeBookSnapshots)({
166
167
  interval: 0,
167
168
  depth: 1,
168
- name: dataType
169
+ name: dataType,
170
+ removeCrossedLevels: true
169
171
  });
170
172
  }
171
173
  for (const suffix of getKeys(bookSnapshotsToIntervalMultiplierMap)) {
@@ -180,7 +182,8 @@ function parseAsQuoteComputable(dataType) {
180
182
  return (0, tardis_dev_1.computeBookSnapshots)({
181
183
  interval: bookSnapshotsToIntervalMultiplierMap[suffix].multiplier * interval,
182
184
  depth: 1,
183
- name: dataType
185
+ name: dataType,
186
+ removeCrossedLevels: true
184
187
  });
185
188
  }
186
189
  throw new Error(`invalid data type: ${dataType}`);
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAwB;AACxB,qDAAkC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,qDAAkC"}
package/dist/ws/index.js CHANGED
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ws/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAwB;AACxB,qDAAkC;AAClC,qDAAkC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ws/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,qDAAkC;AAClC,qDAAkC"}
@@ -1 +1 @@
1
- {"version":3,"file":"streamnormalized.d.ts","sourceRoot":"","sources":["../../src/ws/streamnormalized.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAIvD,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,iBAoFvE"}
1
+ {"version":3,"file":"streamnormalized.d.ts","sourceRoot":"","sources":["../../src/ws/streamnormalized.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAIvD,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,iBA4GvE"}
@@ -17,13 +17,19 @@ async function streamNormalizedWS(ws, req) {
17
17
  const streamNormalizedOptions = JSON.parse(optionsString);
18
18
  (0, debug_1.debug)('WebSocket /ws-stream-normalized started, options: %o', streamNormalizedOptions);
19
19
  const options = Array.isArray(streamNormalizedOptions) ? streamNormalizedOptions : [streamNormalizedOptions];
20
+ let subSequentErrorsCount = {};
20
21
  const messagesIterables = options.map((option) => {
21
22
  // let's map from provided options to options and normalizers that needs to be added for dataTypes provided in options
22
23
  const messages = (0, tardis_dev_1.streamNormalized)({
23
24
  ...option,
24
25
  withDisconnectMessages: true,
25
26
  onError: (error) => {
26
- (0, debug_1.debug)('WebSocket /ws-stream-normalized %s WS connection error: %o', option.exchange, error);
27
+ const exchange = option.exchange;
28
+ if (subSequentErrorsCount[exchange] === undefined) {
29
+ subSequentErrorsCount[exchange] = 0;
30
+ }
31
+ subSequentErrorsCount[exchange]++;
32
+ (0, debug_1.debug)('WebSocket /ws-stream-normalized %s WS connection error: %o', exchange, error);
27
33
  }
28
34
  }, ...(0, helpers_1.getNormalizers)(option.dataTypes));
29
35
  // separately check if any computables are needed for given dataTypes
@@ -36,6 +42,14 @@ async function streamNormalizedWS(ws, req) {
36
42
  const filterByDataType = (0, helpers_1.constructDataTypeFilter)(options);
37
43
  messages = messagesIterables.length === 1 ? messagesIterables[0] : (0, tardis_dev_1.combine)(...messagesIterables);
38
44
  for await (const message of messages) {
45
+ if (ws.closed) {
46
+ return;
47
+ }
48
+ const exchange = message.exchange;
49
+ if (subSequentErrorsCount[exchange] !== undefined && subSequentErrorsCount[exchange] >= 50) {
50
+ ws.end(1011, `Too many subsequent errors when connecting to ${exchange} WS API`);
51
+ return;
52
+ }
39
53
  if (!filterByDataType(message)) {
40
54
  continue;
41
55
  }
@@ -48,9 +62,13 @@ async function streamNormalizedWS(ws, req) {
48
62
  retries += 1;
49
63
  if (retries > 2000) {
50
64
  ws.end(1008, 'Too much backpressure');
65
+ return;
51
66
  }
52
67
  }
53
68
  }
69
+ if (message.type !== 'disconnect') {
70
+ subSequentErrorsCount[exchange] = 0;
71
+ }
54
72
  }
55
73
  while (ws.getBufferedAmount() > 0) {
56
74
  await (0, helpers_1.wait)(100);
@@ -60,16 +78,18 @@ async function streamNormalizedWS(ws, req) {
60
78
  (0, debug_1.debug)('WebSocket /ws-stream-normalized finished, options: %o, time: %d seconds', streamNormalizedOptions, (endTimestamp - startTimestamp) / 1000);
61
79
  }
62
80
  catch (e) {
63
- // this will underlying open WS connections
64
- if (messages !== undefined) {
65
- messages.return();
66
- }
67
81
  if (!ws.closed) {
68
82
  ws.end(1011, e.toString());
69
83
  }
70
84
  (0, debug_1.debug)('WebSocket /ws-stream-normalized error: %o', e);
71
85
  console.error('WebSocket /ws-stream-normalized error:', e);
72
86
  }
87
+ finally {
88
+ // this will close underlying open WS connections
89
+ if (messages !== undefined) {
90
+ messages.return();
91
+ }
92
+ }
73
93
  }
74
94
  exports.streamNormalizedWS = streamNormalizedWS;
75
95
  //# sourceMappingURL=streamnormalized.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"streamnormalized.js","sourceRoot":"","sources":["../../src/ws/streamnormalized.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"streamnormalized.js","sourceRoot":"","sources":["../../src/ws/streamnormalized.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tardis-machine",
3
- "version": "3.6.6",
3
+ "version": "3.6.9",
4
4
  "engines": {
5
5
  "node": ">=12"
6
6
  },
@@ -59,7 +59,7 @@
59
59
  "debug": "^4.3.3",
60
60
  "find-my-way": "^5.1.0",
61
61
  "is-docker": "^2.2.1",
62
- "tardis-dev": "^13.1.7",
62
+ "tardis-dev": "^13.1.12",
63
63
  "uWebSockets.js": "github:uNetworking/uWebSockets.js#v20.6.0",
64
64
  "yargs": "^17.3.0"
65
65
  },
package/src/helpers.ts CHANGED
@@ -210,7 +210,8 @@ function parseAsBookSnapshotComputable(dataType: string) {
210
210
  interval: bookSnapshotsToIntervalMultiplierMap[suffix].multiplier * interval,
211
211
  grouping,
212
212
  depth,
213
- name: dataType
213
+ name: dataType,
214
+ removeCrossedLevels: true
214
215
  })
215
216
  }
216
217
 
@@ -222,7 +223,8 @@ function parseAsQuoteComputable(dataType: string) {
222
223
  return computeBookSnapshots({
223
224
  interval: 0,
224
225
  depth: 1,
225
- name: dataType
226
+ name: dataType,
227
+ removeCrossedLevels: true
226
228
  })
227
229
  }
228
230
 
@@ -239,7 +241,8 @@ function parseAsQuoteComputable(dataType: string) {
239
241
  return computeBookSnapshots({
240
242
  interval: bookSnapshotsToIntervalMultiplierMap[suffix].multiplier * interval,
241
243
  depth: 1,
242
- name: dataType
244
+ name: dataType,
245
+ removeCrossedLevels: true
243
246
  })
244
247
  }
245
248
 
@@ -1,5 +1,5 @@
1
1
  import qs from 'querystring'
2
- import { combine, compute, streamNormalized } from 'tardis-dev'
2
+ import { combine, compute, Exchange, streamNormalized } from 'tardis-dev'
3
3
  import { HttpRequest, WebSocket } from 'uWebSockets.js'
4
4
  import { debug } from '../debug'
5
5
  import { constructDataTypeFilter, getComputables, getNormalizers, StreamNormalizedRequestOptions, wait } from '../helpers'
@@ -16,6 +16,7 @@ export async function streamNormalizedWS(ws: WebSocket, req: HttpRequest) {
16
16
  debug('WebSocket /ws-stream-normalized started, options: %o', streamNormalizedOptions)
17
17
 
18
18
  const options = Array.isArray(streamNormalizedOptions) ? streamNormalizedOptions : [streamNormalizedOptions]
19
+ let subSequentErrorsCount: { [key in Exchange]?: number } = {}
19
20
 
20
21
  const messagesIterables = options.map((option) => {
21
22
  // let's map from provided options to options and normalizers that needs to be added for dataTypes provided in options
@@ -24,7 +25,14 @@ export async function streamNormalizedWS(ws: WebSocket, req: HttpRequest) {
24
25
  ...option,
25
26
  withDisconnectMessages: true,
26
27
  onError: (error) => {
27
- debug('WebSocket /ws-stream-normalized %s WS connection error: %o', option.exchange, error)
28
+ const exchange = option.exchange as Exchange
29
+ if (subSequentErrorsCount[exchange] === undefined) {
30
+ subSequentErrorsCount[exchange] = 0
31
+ }
32
+
33
+ subSequentErrorsCount[exchange]!++
34
+
35
+ debug('WebSocket /ws-stream-normalized %s WS connection error: %o', exchange, error)
28
36
  }
29
37
  },
30
38
  ...getNormalizers(option.dataTypes)
@@ -43,6 +51,17 @@ export async function streamNormalizedWS(ws: WebSocket, req: HttpRequest) {
43
51
  messages = messagesIterables.length === 1 ? messagesIterables[0] : combine(...messagesIterables)
44
52
 
45
53
  for await (const message of messages) {
54
+ if (ws.closed) {
55
+ return
56
+ }
57
+
58
+ const exchange = message.exchange as Exchange
59
+
60
+ if (subSequentErrorsCount[exchange] !== undefined && subSequentErrorsCount[exchange]! >= 50) {
61
+ ws.end(1011, `Too many subsequent errors when connecting to ${exchange} WS API`)
62
+ return
63
+ }
64
+
46
65
  if (!filterByDataType(message)) {
47
66
  continue
48
67
  }
@@ -57,9 +76,14 @@ export async function streamNormalizedWS(ws: WebSocket, req: HttpRequest) {
57
76
 
58
77
  if (retries > 2000) {
59
78
  ws.end(1008, 'Too much backpressure')
79
+ return
60
80
  }
61
81
  }
62
82
  }
83
+
84
+ if (message.type !== 'disconnect') {
85
+ subSequentErrorsCount[exchange] = 0
86
+ }
63
87
  }
64
88
 
65
89
  while (ws.getBufferedAmount() > 0) {
@@ -76,16 +100,16 @@ export async function streamNormalizedWS(ws: WebSocket, req: HttpRequest) {
76
100
  (endTimestamp - startTimestamp) / 1000
77
101
  )
78
102
  } catch (e: any) {
79
- // this will underlying open WS connections
80
- if (messages !== undefined) {
81
- messages!.return!()
82
- }
83
-
84
103
  if (!ws.closed) {
85
104
  ws.end(1011, e.toString())
86
105
  }
87
106
 
88
107
  debug('WebSocket /ws-stream-normalized error: %o', e)
89
108
  console.error('WebSocket /ws-stream-normalized error:', e)
109
+ } finally {
110
+ // this will close underlying open WS connections
111
+ if (messages !== undefined) {
112
+ messages!.return!()
113
+ }
90
114
  }
91
115
  }