@nktkas/hyperliquid 0.15.0 → 0.15.2

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 (36) hide show
  1. package/README.md +5 -5
  2. package/esm/src/clients/wallet.d.ts +5 -8
  3. package/esm/src/clients/wallet.d.ts.map +1 -1
  4. package/esm/src/clients/wallet.js +1 -4
  5. package/esm/src/signing.d.ts +3 -3
  6. package/esm/src/signing.d.ts.map +1 -1
  7. package/esm/src/transports/http/http_transport.d.ts +2 -6
  8. package/esm/src/transports/http/http_transport.d.ts.map +1 -1
  9. package/esm/src/transports/http/http_transport.js +2 -4
  10. package/esm/src/transports/websocket/_reconnecting_websocket.d.ts +22 -42
  11. package/esm/src/transports/websocket/_reconnecting_websocket.d.ts.map +1 -1
  12. package/esm/src/transports/websocket/_reconnecting_websocket.js +133 -82
  13. package/esm/src/transports/websocket/_websocket_request_dispatcher.d.ts +6 -11
  14. package/esm/src/transports/websocket/_websocket_request_dispatcher.d.ts.map +1 -1
  15. package/esm/src/transports/websocket/_websocket_request_dispatcher.js +8 -12
  16. package/esm/src/transports/websocket/websocket_transport.d.ts +2 -4
  17. package/esm/src/transports/websocket/websocket_transport.d.ts.map +1 -1
  18. package/esm/src/transports/websocket/websocket_transport.js +14 -12
  19. package/package.json +1 -1
  20. package/script/src/clients/wallet.d.ts +5 -8
  21. package/script/src/clients/wallet.d.ts.map +1 -1
  22. package/script/src/clients/wallet.js +1 -4
  23. package/script/src/signing.d.ts +3 -3
  24. package/script/src/signing.d.ts.map +1 -1
  25. package/script/src/transports/http/http_transport.d.ts +2 -6
  26. package/script/src/transports/http/http_transport.d.ts.map +1 -1
  27. package/script/src/transports/http/http_transport.js +2 -4
  28. package/script/src/transports/websocket/_reconnecting_websocket.d.ts +22 -42
  29. package/script/src/transports/websocket/_reconnecting_websocket.d.ts.map +1 -1
  30. package/script/src/transports/websocket/_reconnecting_websocket.js +133 -82
  31. package/script/src/transports/websocket/_websocket_request_dispatcher.d.ts +6 -11
  32. package/script/src/transports/websocket/_websocket_request_dispatcher.d.ts.map +1 -1
  33. package/script/src/transports/websocket/_websocket_request_dispatcher.js +8 -12
  34. package/script/src/transports/websocket/websocket_transport.d.ts +2 -4
  35. package/script/src/transports/websocket/websocket_transport.d.ts.map +1 -1
  36. package/script/src/transports/websocket/websocket_transport.js +14 -12
@@ -13,22 +13,17 @@ export declare class WebSocketRequestError extends TransportError {
13
13
  * Handles request creation, sending, and mapping responses to their corresponding requests.
14
14
  */
15
15
  export declare class WebSocketRequestDispatcher {
16
- protected socket: WebSocket;
17
- /** Last used request ID */
18
- protected lastId: number;
16
+ private socket;
17
+ /** Last used post request ID */
18
+ private lastId;
19
19
  /** Map of pending requests waiting for responses */
20
- protected pending: Map<number | string, {
21
- resolve: (value: unknown) => void;
22
- reject: (reason: unknown) => void;
23
- }>;
20
+ private pending;
24
21
  /**
25
22
  * Creates a new WebSocket request dispatcher.
26
23
  * @param socket - WebSocket connection instance for sending requests to the Hyperliquid WebSocket API
27
24
  * @param hlEvents - Used to recognize Hyperliquid responses and match them with sent requests
28
25
  */
29
26
  constructor(socket: WebSocket, hlEvents: HyperliquidEventTarget);
30
- /** Gets the next request ID */
31
- protected get nextId(): number;
32
27
  /**
33
28
  * Sends a request to the Hyperliquid API.
34
29
  * @param method - The method of websocket request.
@@ -42,13 +37,13 @@ export declare class WebSocketRequestDispatcher {
42
37
  * @param id - A request ID or a stringified request.
43
38
  * @param value - A resolution value.
44
39
  */
45
- protected resolve(id: number | string, value: unknown): void;
40
+ private resolve;
46
41
  /**
47
42
  * Rejects a pending request.
48
43
  * @param id - A request ID or a stringified request.
49
44
  * @param reason - A rejection reason.
50
45
  */
51
- protected reject(id: number | string, reason: unknown): void;
46
+ private reject;
52
47
  /**
53
48
  * Normalizes a request object to an ID.
54
49
  * @param value - A request object.
@@ -1 +1 @@
1
- {"version":3,"file":"_websocket_request_dispatcher.d.ts","sourceRoot":"","sources":["../../../../src/src/transports/websocket/_websocket_request_dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAE7E;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,cAAc;gBACzC,OAAO,EAAE,MAAM;CAI9B;AAED;;;GAGG;AACH,qBAAa,0BAA0B;IAevB,SAAS,CAAC,MAAM,EAAE,SAAS;IAdvC,2BAA2B;IAC3B,SAAS,CAAC,MAAM,EAAE,MAAM,CAAK;IAE7B,oDAAoD;IACpD,SAAS,CAAC,OAAO,EAAE,GAAG,CAClB,MAAM,GAAG,MAAM,EACf;QAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;QAAC,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;KAAE,CAC3E,CAAa;IAEd;;;;OAIG;gBACmB,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,sBAAsB;IA2DzE,+BAA+B;IAC/B,SAAS,KAAK,MAAM,IAAI,MAAM,CAE7B;IAED;;;;;;OAMG;IACG,OAAO,CACT,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,aAAa,EAC5C,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,OAAO,CAAC;IAkCnB;;;;OAIG;IACH,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAK5D;;;;OAIG;IACH,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAK5D;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;CAK7C"}
1
+ {"version":3,"file":"_websocket_request_dispatcher.d.ts","sourceRoot":"","sources":["../../../../src/src/transports/websocket/_websocket_request_dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAY7E;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,cAAc;gBACzC,OAAO,EAAE,MAAM;CAI9B;AAED;;;GAGG;AACH,qBAAa,0BAA0B;IAkBvB,OAAO,CAAC,MAAM;IAjB1B,gCAAgC;IAChC,OAAO,CAAC,MAAM,CAAa;IAE3B,oDAAoD;IACpD,OAAO,CAAC,OAAO,CAMD;IAEd;;;;OAIG;gBACiB,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,sBAAsB;IA2DvE;;;;;;OAMG;IACG,OAAO,CACT,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,aAAa,EAC5C,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,OAAO,CAAC;IAiCnB;;;;OAIG;IACH,OAAO,CAAC,OAAO;IAKf;;;;OAIG;IACH,OAAO,CAAC,MAAM;IAKd;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;CAK7C"}
@@ -40,7 +40,7 @@
40
40
  writable: true,
41
41
  value: socket
42
42
  });
43
- /** Last used request ID */
43
+ /** Last used post request ID */
44
44
  Object.defineProperty(this, "lastId", {
45
45
  enumerable: true,
46
46
  configurable: true,
@@ -102,10 +102,6 @@
102
102
  this.pending.clear();
103
103
  });
104
104
  }
105
- /** Gets the next request ID */
106
- get nextId() {
107
- return ++this.lastId;
108
- }
109
105
  /**
110
106
  * Sends a request to the Hyperliquid API.
111
107
  * @param method - The method of websocket request.
@@ -114,12 +110,14 @@
114
110
  * @returns A promise that resolves with the parsed JSON response body.
115
111
  */
116
112
  async request(method, payload, signal) {
117
- signal?.throwIfAborted();
113
+ // Reject the request if the signal is aborted
114
+ if (signal?.aborted)
115
+ return Promise.reject(signal.reason);
118
116
  // Create a request object
119
117
  let id;
120
118
  let request;
121
119
  if (method === "post") {
122
- id = this.nextId;
120
+ id = ++this.lastId;
123
121
  request = { method, id, request: payload };
124
122
  }
125
123
  else {
@@ -180,18 +178,16 @@
180
178
  if (Array.isArray(obj)) {
181
179
  return obj.map(deepLowerHex);
182
180
  }
183
- else if (obj && typeof obj === "object") {
181
+ if (typeof obj === "object" && obj !== null) {
184
182
  return Object.entries(obj).reduce((acc, [key, val]) => ({
185
183
  ...acc,
186
184
  [key]: deepLowerHex(val),
187
185
  }), {});
188
186
  }
189
- else if (typeof obj === "string" && /^0x[0-9A-Fa-f]+$/.test(obj)) {
187
+ if (typeof obj === "string" && /^0x[0-9A-Fa-f]+$/.test(obj)) {
190
188
  return obj.toLowerCase();
191
189
  }
192
- else {
193
- return obj;
194
- }
190
+ return obj;
195
191
  }
196
192
  /**
197
193
  * Deeply sort the keys of an object.
@@ -1,9 +1,9 @@
1
- import { ReconnectingWebSocket, type ReconnectingWebSocketOptions } from "./_reconnecting_websocket.js";
1
+ import { type MessageBufferStrategy, ReconnectingWebSocket, ReconnectingWebSocketError, type ReconnectingWebSocketOptions } from "./_reconnecting_websocket.js";
2
2
  import { HyperliquidEventTarget } from "./_hyperliquid_event_target.js";
3
3
  import { WebSocketRequestDispatcher, WebSocketRequestError } from "./_websocket_request_dispatcher.js";
4
4
  import type { IRequestTransport, ISubscriptionTransport, Subscription } from "../../base.js";
5
5
  export { WebSocketRequestError };
6
- export type { MessageBufferStrategy, ReconnectingWebSocketOptions } from "./_reconnecting_websocket.js";
6
+ export { type MessageBufferStrategy, ReconnectingWebSocketError, type ReconnectingWebSocketOptions };
7
7
  /** Configuration options for the WebSocket transport layer. */
8
8
  export interface WebSocketTransportOptions {
9
9
  /**
@@ -105,7 +105,5 @@ export declare class WebSocketTransport implements IRequestTransport, ISubscript
105
105
  * @returns A promise that resolves when the connection is fully closed.
106
106
  */
107
107
  close(signal?: AbortSignal): Promise<void>;
108
- /** Combines a timeout with an optional abort signal. */
109
- protected _combineTimeoutWithSignal(timeout?: number | null, signal?: AbortSignal): AbortSignal | undefined;
110
108
  }
111
109
  //# sourceMappingURL=websocket_transport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"websocket_transport.d.ts","sourceRoot":"","sources":["../../../../src/src/transports/websocket/websocket_transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,KAAK,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AACxG,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AACvG,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7F,OAAO,EAAE,qBAAqB,EAAE,CAAC;AACjC,YAAY,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAExG,+DAA+D;AAC/D,MAAM,WAAW,yBAAyB;IACtC;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IAEnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB;;;OAGG;IACH,SAAS,CAAC,EAAE;QACR;;;;WAIG;QACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5B,CAAC;IAEF;;OAEG;IACH,SAAS,CAAC,EAAE,4BAA4B,CAAC;CAC5C;AAED,kFAAkF;AAClF,qBAAa,kBAAmB,YAAW,iBAAiB,EAAE,sBAAsB;IAChF,qDAAqD;IACrD,SAAS,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEhD,iDAAiD;IACjD,SAAS,CAAC,YAAY,EAAE,0BAA0B,CAAC;IAEnD,6CAA6C;IAC7C,SAAS,CAAC,SAAS,EAAE,sBAAsB,CAAC;IAE5C;;;;;OAKG;IACH,SAAS,CAAC,cAAc,EAAE,GAAG,CACzB,MAAM,EACN;QACI,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACrF,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;KACpC,CACJ,CAAa;IAEd;;;OAGG;IACH,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvB,yCAAyC;IACzC,QAAQ,CAAC,SAAS,EAAE;QAChB;;;WAGG;QACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;KACpC,CAAC;IAEF,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IAEvC;;;OAGG;gBACS,OAAO,CAAC,EAAE,yBAAyB;IAuC/C;;;;;;;;OAQG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBzG;;;;;;;OAOG;IACG,SAAS,CACX,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,EACrC,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,YAAY,CAAC;IAgExB;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB1C;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB1C,wDAAwD;IACxD,SAAS,CAAC,yBAAyB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS;CAK9G"}
1
+ {"version":3,"file":"websocket_transport.d.ts","sourceRoot":"","sources":["../../../../src/src/transports/websocket/websocket_transport.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,qBAAqB,EAC1B,qBAAqB,EACrB,0BAA0B,EAC1B,KAAK,4BAA4B,EACpC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AACvG,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7F,OAAO,EAAE,qBAAqB,EAAE,CAAC;AACjC,OAAO,EAAE,KAAK,qBAAqB,EAAE,0BAA0B,EAAE,KAAK,4BAA4B,EAAE,CAAC;AAErG,+DAA+D;AAC/D,MAAM,WAAW,yBAAyB;IACtC;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IAEnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB;;;OAGG;IACH,SAAS,CAAC,EAAE;QACR;;;;WAIG;QACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5B,CAAC;IAEF;;OAEG;IACH,SAAS,CAAC,EAAE,4BAA4B,CAAC;CAC5C;AAED,kFAAkF;AAClF,qBAAa,kBAAmB,YAAW,iBAAiB,EAAE,sBAAsB;IAChF,qDAAqD;IACrD,SAAS,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEhD,iDAAiD;IACjD,SAAS,CAAC,YAAY,EAAE,0BAA0B,CAAC;IAEnD,6CAA6C;IAC7C,SAAS,CAAC,SAAS,EAAE,sBAAsB,CAAC;IAE5C;;;;;OAKG;IACH,SAAS,CAAC,cAAc,EAAE,GAAG,CACzB,MAAM,EACN;QACI,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACrF,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;KACpC,CACJ,CAAa;IAEd;;;OAGG;IACH,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvB,yCAAyC;IACzC,QAAQ,CAAC,SAAS,EAAE;QAChB;;;WAGG;QACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;KACpC,CAAC;IAEF,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IAEvC;;;OAGG;gBACS,OAAO,CAAC,EAAE,yBAAyB;IAuC/C;;;;;;;;OAQG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAwBzG;;;;;;;OAOG;IACG,SAAS,CACX,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,EACrC,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,YAAY,CAAC;IAwExB;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB1C;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAoB7C"}
@@ -9,8 +9,9 @@
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.WebSocketTransport = exports.WebSocketRequestError = void 0;
12
+ exports.WebSocketTransport = exports.ReconnectingWebSocketError = exports.WebSocketRequestError = void 0;
13
13
  const _reconnecting_websocket_js_1 = require("./_reconnecting_websocket.js");
14
+ Object.defineProperty(exports, "ReconnectingWebSocketError", { enumerable: true, get: function () { return _reconnecting_websocket_js_1.ReconnectingWebSocketError; } });
14
15
  const _hyperliquid_event_target_js_1 = require("./_hyperliquid_event_target.js");
15
16
  const _websocket_request_dispatcher_js_1 = require("./_websocket_request_dispatcher.js");
16
17
  Object.defineProperty(exports, "WebSocketRequestError", { enumerable: true, get: function () { return _websocket_request_dispatcher_js_1.WebSocketRequestError; } });
@@ -123,7 +124,10 @@
123
124
  return Promise.reject(new _websocket_request_dispatcher_js_1.WebSocketRequestError("Explorer requests are not supported in the Hyperliquid WebSocket API."));
124
125
  }
125
126
  // Send the request and wait for a response
126
- const combinedSignal = this._combineTimeoutWithSignal(this.timeout, signal);
127
+ const timeoutSignal = this.timeout ? AbortSignal.timeout(this.timeout) : undefined;
128
+ const combinedSignal = signal && timeoutSignal
129
+ ? AbortSignal.any([signal, timeoutSignal])
130
+ : signal ?? timeoutSignal;
127
131
  return this._wsRequester.request("post", {
128
132
  type: type === "exchange" ? "action" : type,
129
133
  payload,
@@ -144,7 +148,10 @@
144
148
  let subscription = this._subscriptions.get(id);
145
149
  if (!subscription) {
146
150
  // Send subscription request
147
- const combinedSignal = this._combineTimeoutWithSignal(this.timeout, signal);
151
+ const timeoutSignal = this.timeout ? AbortSignal.timeout(this.timeout) : undefined;
152
+ const combinedSignal = signal && timeoutSignal
153
+ ? AbortSignal.any([signal, timeoutSignal])
154
+ : signal ?? timeoutSignal;
148
155
  const requestPromise = this._wsRequester.request("subscribe", payload, combinedSignal);
149
156
  // Cache subscription info
150
157
  subscription = { listeners: new Map(), requestPromise };
@@ -165,7 +172,10 @@
165
172
  this._subscriptions.delete(id);
166
173
  // If the socket is open, send unsubscription request
167
174
  if (this.socket.readyState === WebSocket.OPEN) {
168
- const combinedSignal = this._combineTimeoutWithSignal(this.timeout, signal);
175
+ const timeoutSignal = this.timeout ? AbortSignal.timeout(this.timeout) : undefined;
176
+ const combinedSignal = signal && timeoutSignal
177
+ ? AbortSignal.any([signal, timeoutSignal])
178
+ : signal ?? timeoutSignal;
169
179
  await this._wsRequester.request("unsubscribe", payload, combinedSignal);
170
180
  }
171
181
  }
@@ -240,14 +250,6 @@
240
250
  this.socket.close();
241
251
  });
242
252
  }
243
- /** Combines a timeout with an optional abort signal. */
244
- _combineTimeoutWithSignal(timeout, signal) {
245
- if (typeof timeout !== "number")
246
- return signal;
247
- if (!(signal instanceof AbortSignal))
248
- return AbortSignal.timeout(timeout);
249
- return AbortSignal.any([AbortSignal.timeout(timeout), signal]);
250
- }
251
253
  }
252
254
  exports.WebSocketTransport = WebSocketTransport;
253
255
  });