• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

nktkas / hyperliquid / 21729335997

05 Feb 2026 09:33PM UTC coverage: 92.652% (-2.8%) from 95.464%
21729335997

push

github

nktkas
test: weaken coverage testing of schemas

613 of 806 branches covered (76.05%)

Branch coverage included in aggregate %.

9210 of 9796 relevant lines covered (94.02%)

883.4 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

98.27
/src/api/subscription/client.ts
1
import type { SubscriptionConfig } from "./_methods/_types.ts";
2
import type { ISubscription } from "../../transport/mod.ts";
3

4
// =============================================================
5
// Methods Imports
6
// =============================================================
7

8
import { activeAssetCtx, type ActiveAssetCtxEvent, type ActiveAssetCtxParameters } from "./_methods/activeAssetCtx.ts";
388✔
9
import {
388✔
10
  activeAssetData,
388✔
11
  type ActiveAssetDataEvent,
12
  type ActiveAssetDataParameters,
13
} from "./_methods/activeAssetData.ts";
388✔
14
import {
388✔
15
  activeSpotAssetCtx,
388✔
16
  type ActiveSpotAssetCtxEvent,
17
  type ActiveSpotAssetCtxParameters,
18
} from "./_methods/activeSpotAssetCtx.ts";
388✔
19
import { allDexsAssetCtxs, type AllDexsAssetCtxsEvent } from "./_methods/allDexsAssetCtxs.ts";
388✔
20
import {
388✔
21
  allDexsClearinghouseState,
388✔
22
  type AllDexsClearinghouseStateEvent,
23
  type AllDexsClearinghouseStateParameters,
24
} from "./_methods/allDexsClearinghouseState.ts";
388✔
25
import { allMids, type AllMidsEvent, type AllMidsParameters } from "./_methods/allMids.ts";
388✔
26
import { assetCtxs, type AssetCtxsEvent, type AssetCtxsParameters } from "./_methods/assetCtxs.ts";
388✔
27
import { bbo, type BboEvent, type BboParameters } from "./_methods/bbo.ts";
388✔
28
import { candle, type CandleEvent, type CandleParameters } from "./_methods/candle.ts";
388✔
29
import {
388✔
30
  clearinghouseState,
388✔
31
  type ClearinghouseStateEvent,
32
  type ClearinghouseStateParameters,
33
} from "./_methods/clearinghouseState.ts";
388✔
34
import { explorerBlock, type ExplorerBlockEvent } from "./_methods/explorerBlock.ts";
388✔
35
import { explorerTxs, type ExplorerTxsEvent } from "./_methods/explorerTxs.ts";
388✔
36
import { l2Book, type L2BookEvent, type L2BookParameters } from "./_methods/l2Book.ts";
388✔
37
import { notification, type NotificationEvent, type NotificationParameters } from "./_methods/notification.ts";
388✔
38
import { openOrders, type OpenOrdersEvent, type OpenOrdersParameters } from "./_methods/openOrders.ts";
388✔
39
import { orderUpdates, type OrderUpdatesEvent, type OrderUpdatesParameters } from "./_methods/orderUpdates.ts";
388✔
40
import { spotAssetCtxs, type SpotAssetCtxsEvent } from "./_methods/spotAssetCtxs.ts";
388✔
41
import { spotState, type SpotStateEvent, type SpotStateParameters } from "./_methods/spotState.ts";
388✔
42
import { trades, type TradesEvent, type TradesParameters } from "./_methods/trades.ts";
388✔
43
import { twapStates, type TwapStatesEvent, type TwapStatesParameters } from "./_methods/twapStates.ts";
388✔
44
import { userEvents, type UserEventsEvent, type UserEventsParameters } from "./_methods/userEvents.ts";
388✔
45
import { userFills, type UserFillsEvent, type UserFillsParameters } from "./_methods/userFills.ts";
388✔
46
import { userFundings, type UserFundingsEvent, type UserFundingsParameters } from "./_methods/userFundings.ts";
388✔
47
import {
388✔
48
  userHistoricalOrders,
388✔
49
  type UserHistoricalOrdersEvent,
50
  type UserHistoricalOrdersParameters,
51
} from "./_methods/userHistoricalOrders.ts";
388✔
52
import {
388✔
53
  userNonFundingLedgerUpdates,
388✔
54
  type UserNonFundingLedgerUpdatesEvent,
55
  type UserNonFundingLedgerUpdatesParameters,
56
} from "./_methods/userNonFundingLedgerUpdates.ts";
388✔
57
import {
388✔
58
  userTwapHistory,
388✔
59
  type UserTwapHistoryEvent,
60
  type UserTwapHistoryParameters,
61
} from "./_methods/userTwapHistory.ts";
388✔
62
import {
388✔
63
  userTwapSliceFills,
388✔
64
  type UserTwapSliceFillsEvent,
65
  type UserTwapSliceFillsParameters,
66
} from "./_methods/userTwapSliceFills.ts";
388✔
67
import { webData2, type WebData2Event, type WebData2Parameters } from "./_methods/webData2.ts";
388✔
68
import { webData3, type WebData3Event, type WebData3Parameters } from "./_methods/webData3.ts";
388✔
69

70
// =============================================================
71
// Client
72
// =============================================================
73

74
/**
75
 * Real-time data via WebSocket subscriptions.
76
 *
77
 * Corresponds to {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions | WebSocket subscriptions}.
78
 */
79
export class SubscriptionClient<C extends SubscriptionConfig = SubscriptionConfig> {
388✔
80
  config_: C;
388✔
81

82
  /**
83
   * Creates an instance of the SubscriptionClient.
84
   *
85
   * @param config - Configuration for Subscription API requests. See {@link SubscriptionConfig}.
86
   *
87
   * @example
88
   * ```ts
89
   * import * as hl from "@nktkas/hyperliquid";
90
   *
91
   * const transport = new hl.WebSocketTransport(); // only `WebSocketTransport`
92
   *
93
   * const subsClient = new hl.SubscriptionClient({ transport });
94
   * ```
95
   */
96
  constructor(config: C) {
388✔
97
    this.config_ = config;
417✔
98
  }
417✔
99

100
  /**
101
   * Subscribe to context updates for a specific perpetual asset.
102
   *
103
   * @param params - Parameters specific to the API subscription.
104
   * @param listener - A callback function to be called when the event is received.
105
   *
106
   * @returns A request-promise that resolves with a {@link ISubscription} object to manage the subscription lifecycle.
107
   *
108
   * @throws {ValiError} When the request parameters fail validation (before sending).
109
   * @throws {TransportError} When the transport layer throws an error.
110
   *
111
   * @example
112
   * ```ts
113
   * import * as hl from "@nktkas/hyperliquid";
114
   *
115
   * const transport = new hl.WebSocketTransport(); // only `WebSocketTransport`
116
   * const client = new hl.SubscriptionClient({ transport });
117
   *
118
   * const sub = await client.activeAssetCtx({ coin: "ETH" }, (data) => console.log(data));
119
   * ```
120
   *
121
   * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
122
   */
123
  activeAssetCtx(
388✔
124
    params: ActiveAssetCtxParameters,
388✔
125
    listener: (data: ActiveAssetCtxEvent) => void,
388✔
126
  ): Promise<ISubscription> {
388✔
127
    return activeAssetCtx(this.config_, params, listener);
390✔
128
  }
390✔
129

130
  /**
131
   * Subscribe to trading data updates for a specific asset and user.
132
   *
133
   * @param params - Parameters specific to the API subscription.
134
   * @param listener - A callback function to be called when the event is received.
135
   *
136
   * @returns A request-promise that resolves with a {@link ISubscription} object to manage the subscription lifecycle.
137
   *
138
   * @throws {ValiError} When the request parameters fail validation (before sending).
139
   * @throws {TransportError} When the transport layer throws an error.
140
   *
141
   * @example
142
   * ```ts
143
   * import * as hl from "@nktkas/hyperliquid";
144
   *
145
   * const transport = new hl.WebSocketTransport(); // only `WebSocketTransport`
146
   * const client = new hl.SubscriptionClient({ transport });
147
   *
148
   * const sub = await client.activeAssetData({ coin: "ETH", user: "0x..." }, (data) => console.log(data));
149
   * ```
150
   *
151
   * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
152
   */
153
  activeAssetData(
388✔
154
    params: ActiveAssetDataParameters,
388✔
155
    listener: (data: ActiveAssetDataEvent) => void,
388✔
156
  ): Promise<ISubscription> {
388✔
157
    return activeAssetData(this.config_, params, listener);
390✔
158
  }
390✔
159

160
  /**
161
   * Subscribe to context updates for a specific spot asset.
162
   *
163
   * @param params - Parameters specific to the API subscription.
164
   * @param listener - A callback function to be called when the event is received.
165
   *
166
   * @returns A request-promise that resolves with a {@link ISubscription} object to manage the subscription lifecycle.
167
   *
168
   * @throws {ValiError} When the request parameters fail validation (before sending).
169
   * @throws {TransportError} When the transport layer throws an error.
170
   *
171
   * @example
172
   * ```ts
173
   * import * as hl from "@nktkas/hyperliquid";
174
   *
175
   * const transport = new hl.WebSocketTransport(); // only `WebSocketTransport`
176
   * const client = new hl.SubscriptionClient({ transport });
177
   *
178
   * const sub = await client.activeSpotAssetCtx({ coin: "@1" }, (data) => console.log(data));
179
   * ```
180
   *
181
   * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
182
   */
183
  activeSpotAssetCtx(
388✔
184
    params: ActiveSpotAssetCtxParameters,
388✔
185
    listener: (data: ActiveSpotAssetCtxEvent) => void,
388✔
186
  ): Promise<ISubscription> {
388✔
187
    return activeSpotAssetCtx(this.config_, params, listener);
390✔
188
  }
390✔
189

190
  /**
191
   * Subscribe to asset contexts for all DEXs.
192
   *
193
   * @param listener - A callback function to be called when the event is received.
194
   *
195
   * @returns A request-promise that resolves with a {@link ISubscription} object to manage the subscription lifecycle.
196
   *
197
   * @throws {ValiError} When the request parameters fail validation (before sending).
198
   * @throws {TransportError} When the transport layer throws an error.
199
   *
200
   * @example
201
   * ```ts
202
   * import * as hl from "@nktkas/hyperliquid";
203
   *
204
   * const transport = new hl.WebSocketTransport(); // only `WebSocketTransport`
205
   * const client = new hl.SubscriptionClient({ transport });
206
   *
207
   * const sub = await client.allDexsAssetCtxs((data) => console.log(data));
208
   * ```
209
   *
210
   * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
211
   */
212
  allDexsAssetCtxs(
388✔
213
    listener: (data: AllDexsAssetCtxsEvent) => void,
388✔
214
  ): Promise<ISubscription> {
388✔
215
    return allDexsAssetCtxs(this.config_, listener);
389✔
216
  }
389✔
217

218
  /**
219
   * Subscribe to clearinghouse states for all DEXs for a specific user.
220
   *
221
   * @param params - Parameters specific to the API subscription.
222
   * @param listener - A callback function to be called when the event is received.
223
   *
224
   * @returns A request-promise that resolves with a {@link ISubscription} object to manage the subscription lifecycle.
225
   *
226
   * @throws {ValiError} When the request parameters fail validation (before sending).
227
   * @throws {TransportError} When the transport layer throws an error.
228
   *
229
   * @example
230
   * ```ts
231
   * import * as hl from "@nktkas/hyperliquid";
232
   *
233
   * const transport = new hl.WebSocketTransport(); // only `WebSocketTransport`
234
   * const client = new hl.SubscriptionClient({ transport });
235
   *
236
   * const sub = await client.allDexsClearinghouseState({ user: "0x..." }, (data) => console.log(data));
237
   * ```
238
   *
239
   * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
240
   */
241
  allDexsClearinghouseState(
388✔
242
    params: AllDexsClearinghouseStateParameters,
388✔
243
    listener: (data: AllDexsClearinghouseStateEvent) => void,
388✔
244
  ): Promise<ISubscription> {
388✔
245
    return allDexsClearinghouseState(this.config_, params, listener);
389✔
246
  }
389✔
247

248
  /**
249
   * Subscribe to mid prices for all actively traded assets.
250
   *
251
   * @param params - Parameters specific to the API subscription.
252
   * @param listener - A callback function to be called when the event is received.
253
   *
254
   * @returns A request-promise that resolves with a {@link ISubscription} object to manage the subscription lifecycle.
255
   *
256
   * @throws {ValiError} When the request parameters fail validation (before sending).
257
   * @throws {TransportError} When the transport layer throws an error.
258
   *
259
   * @example
260
   * ```ts
261
   * import * as hl from "@nktkas/hyperliquid";
262
   *
263
   * const transport = new hl.WebSocketTransport(); // only `WebSocketTransport`
264
   * const client = new hl.SubscriptionClient({ transport });
265
   *
266
   * const sub = await client.allMids((data) => console.log(data));
267
   * ```
268
   *
269
   * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
270
   */
271
  allMids(
272
    listener: (data: AllMidsEvent) => void,
273
  ): Promise<ISubscription>;
274
  allMids(
275
    params: AllMidsParameters,
276
    listener: (data: AllMidsEvent) => void,
277
  ): Promise<ISubscription>;
278
  allMids(
388✔
279
    paramsOrListener: AllMidsParameters | ((data: AllMidsEvent) => void),
388✔
280
    maybeListener?: (data: AllMidsEvent) => void,
388✔
281
  ): Promise<ISubscription> {
388✔
282
    const params = typeof paramsOrListener === "function" ? {} : paramsOrListener;
390✔
283
    const listener = typeof paramsOrListener === "function" ? paramsOrListener : maybeListener!;
390✔
284
    return allMids(this.config_, params, listener);
390✔
285
  }
390✔
286

287
  /**
288
   * Subscribe to asset contexts for all perpetual assets.
289
   *
290
   * @param params - Parameters specific to the API subscription.
291
   * @param listener - A callback function to be called when the event is received.
292
   *
293
   * @returns A request-promise that resolves with a {@link ISubscription} object to manage the subscription lifecycle.
294
   *
295
   * @throws {ValiError} When the request parameters fail validation (before sending).
296
   * @throws {TransportError} When the transport layer throws an error.
297
   *
298
   * @example
299
   * ```ts
300
   * import * as hl from "@nktkas/hyperliquid";
301
   *
302
   * const transport = new hl.WebSocketTransport(); // only `WebSocketTransport`
303
   * const client = new hl.SubscriptionClient({ transport });
304
   *
305
   * const sub = await client.assetCtxs((data) => console.log(data));
306
   * ```
307
   *
308
   * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
309
   */
310
  assetCtxs(
311
    listener: (data: AssetCtxsEvent) => void,
312
  ): Promise<ISubscription>;
313
  assetCtxs(
314
    params: AssetCtxsParameters,
315
    listener: (data: AssetCtxsEvent) => void,
316
  ): Promise<ISubscription>;
317
  assetCtxs(
388✔
318
    paramsOrListener: AssetCtxsParameters | ((data: AssetCtxsEvent) => void),
388✔
319
    maybeListener?: (data: AssetCtxsEvent) => void,
388✔
320
  ): Promise<ISubscription> {
388✔
321
    const params = typeof paramsOrListener === "function" ? {} : paramsOrListener;
×
322
    const listener = typeof paramsOrListener === "function" ? paramsOrListener : maybeListener!;
×
323
    return assetCtxs(this.config_, params, listener);
389✔
324
  }
389✔
325

326
  /**
327
   * Subscribe to best bid and offer updates for a specific asset.
328
   *
329
   * @param params - Parameters specific to the API subscription.
330
   * @param listener - A callback function to be called when the event is received.
331
   *
332
   * @returns A request-promise that resolves with a {@link ISubscription} object to manage the subscription lifecycle.
333
   *
334
   * @throws {ValiError} When the request parameters fail validation (before sending).
335
   * @throws {TransportError} When the transport layer throws an error.
336
   *
337
   * @example
338
   * ```ts
339
   * import * as hl from "@nktkas/hyperliquid";
340
   *
341
   * const transport = new hl.WebSocketTransport(); // only `WebSocketTransport`
342
   * const client = new hl.SubscriptionClient({ transport });
343
   *
344
   * const sub = await client.bbo({ coin: "ETH" }, (data) => console.log(data));
345
   * ```
346
   *
347
   * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
348
   */
349
  bbo(
388✔
350
    params: BboParameters,
388✔
351
    listener: (data: BboEvent) => void,
388✔
352
  ): Promise<ISubscription> {
388✔
353
    return bbo(this.config_, params, listener);
391✔
354
  }
391✔
355

356
  /**
357
   * Subscribe to candlestick data updates for a specific asset.
358
   *
359
   * @param params - Parameters specific to the API subscription.
360
   * @param listener - A callback function to be called when the event is received.
361
   *
362
   * @returns A request-promise that resolves with a {@link ISubscription} object to manage the subscription lifecycle.
363
   *
364
   * @throws {ValiError} When the request parameters fail validation (before sending).
365
   * @throws {TransportError} When the transport layer throws an error.
366
   *
367
   * @example
368
   * ```ts
369
   * import * as hl from "@nktkas/hyperliquid";
370
   *
371
   * const transport = new hl.WebSocketTransport(); // only `WebSocketTransport`
372
   * const client = new hl.SubscriptionClient({ transport });
373
   *
374
   * const sub = await client.candle({ coin: "ETH", interval: "1h" }, (data) => console.log(data));
375
   * ```
376
   *
377
   * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
378
   */
379
  candle(
388✔
380
    params: CandleParameters,
388✔
381
    listener: (data: CandleEvent) => void,
388✔
382
  ): Promise<ISubscription> {
388✔
383
    return candle(this.config_, params, listener);
391✔
384
  }
391✔
385

386
  /**
387
   * Subscribe to clearinghouse state updates for a specific user.
388
   *
389
   * @param params - Parameters specific to the API subscription.
390
   * @param listener - A callback function to be called when the event is received.
391
   *
392
   * @returns A request-promise that resolves with a {@link ISubscription} object to manage the subscription lifecycle.
393
   *
394
   * @throws {ValiError} When the request parameters fail validation (before sending).
395
   * @throws {TransportError} When the transport layer throws an error.
396
   *
397
   * @example
398
   * ```ts
399
   * import * as hl from "@nktkas/hyperliquid";
400
   *
401
   * const transport = new hl.WebSocketTransport(); // only `WebSocketTransport`
402
   * const client = new hl.SubscriptionClient({ transport });
403
   *
404
   * const sub = await client.clearinghouseState({ user: "0x..." }, (data) => console.log(data));
405
   * ```
406
   *
407
   * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
408
   */
409
  clearinghouseState(
388✔
410
    params: ClearinghouseStateParameters,
388✔
411
    listener: (data: ClearinghouseStateEvent) => void,
388✔
412
  ): Promise<ISubscription> {
388✔
413
    return clearinghouseState(this.config_, params, listener);
389✔
414
  }
389✔
415

416
  /**
417
   * Subscribe to explorer block updates.
418
   *
419
   * @param listener - A callback function to be called when the event is received.
420
   *
421
   * @returns A request-promise that resolves with a {@link ISubscription} object to manage the subscription lifecycle.
422
   *
423
   * @throws {ValiError} When the request parameters fail validation (before sending).
424
   * @throws {TransportError} When the transport layer throws an error.
425
   *
426
   * @example
427
   * ```ts
428
   * import * as hl from "@nktkas/hyperliquid";
429
   *
430
   * const transport = new hl.WebSocketTransport({ url: "wss://rpc.hyperliquid.xyz/ws" }); // only `WebSocketTransport`
431
   * const client = new hl.SubscriptionClient({ transport });
432
   *
433
   * const sub = await client.explorerBlock((data) => console.log(data));
434
   * ```
435
   *
436
   * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
437
   */
438
  explorerBlock(
388✔
439
    listener: (data: ExplorerBlockEvent) => void,
388✔
440
  ): Promise<ISubscription> {
388✔
441
    return explorerBlock(this.config_, listener);
389✔
442
  }
389✔
443

444
  /**
445
   * Subscribe to explorer transaction updates.
446
   *
447
   * @param listener - A callback function to be called when the event is received.
448
   *
449
   * @returns A request-promise that resolves with a {@link ISubscription} object to manage the subscription lifecycle.
450
   *
451
   * @throws {ValiError} When the request parameters fail validation (before sending).
452
   * @throws {TransportError} When the transport layer throws an error.
453
   *
454
   * @example
455
   * ```ts
456
   * import * as hl from "@nktkas/hyperliquid";
457
   *
458
   * const transport = new hl.WebSocketTransport({ url: "wss://rpc.hyperliquid.xyz/ws" }); // only `WebSocketTransport`
459
   * const client = new hl.SubscriptionClient({ transport });
460
   *
461
   * const sub = await client.explorerTxs((data) => console.log(data));
462
   * ```
463
   *
464
   * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
465
   */
466
  explorerTxs(
388✔
467
    listener: (data: ExplorerTxsEvent) => void,
388✔
468
  ): Promise<ISubscription> {
388✔
469
    return explorerTxs(this.config_, listener);
389✔
470
  }
389✔
471

472
  /**
473
   * Subscribe to L2 order book updates for a specific asset.
474
   *
475
   * @param params - Parameters specific to the API subscription.
476
   * @param listener - A callback function to be called when the event is received.
477
   *
478
   * @returns A request-promise that resolves with a {@link ISubscription} object to manage the subscription lifecycle.
479
   *
480
   * @throws {ValiError} When the request parameters fail validation (before sending).
481
   * @throws {TransportError} When the transport layer throws an error.
482
   *
483
   * @example
484
   * ```ts
485
   * import * as hl from "@nktkas/hyperliquid";
486
   *
487
   * const transport = new hl.WebSocketTransport(); // only `WebSocketTransport`
488
   * const client = new hl.SubscriptionClient({ transport });
489
   *
490
   * const sub = await client.l2Book({ coin: "ETH" }, (data) => console.log(data));
491
   * ```
492
   *
493
   * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
494
   */
495
  l2Book(
388✔
496
    params: L2BookParameters,
388✔
497
    listener: (data: L2BookEvent) => void,
388✔
498
  ): Promise<ISubscription> {
388✔
499
    return l2Book(this.config_, params, listener);
390✔
500
  }
390✔
501

502
  /**
503
   * Subscribe to notification updates for a specific user.
504
   *
505
   * @param params - Parameters specific to the API subscription.
506
   * @param listener - A callback function to be called when the event is received.
507
   *
508
   * @returns A request-promise that resolves with a {@link ISubscription} object to manage the subscription lifecycle.
509
   *
510
   * @throws {ValiError} When the request parameters fail validation (before sending).
511
   * @throws {TransportError} When the transport layer throws an error.
512
   *
513
   * @example
514
   * ```ts
515
   * import * as hl from "@nktkas/hyperliquid";
516
   *
517
   * const transport = new hl.WebSocketTransport(); // only `WebSocketTransport`
518
   * const client = new hl.SubscriptionClient({ transport });
519
   *
520
   * const sub = await client.notification({ user: "0x..." }, (data) => console.log(data));
521
   * ```
522
   *
523
   * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
524
   */
525
  notification(
388✔
526
    params: NotificationParameters,
388✔
527
    listener: (data: NotificationEvent) => void,
388✔
528
  ): Promise<ISubscription> {
388✔
529
    return notification(this.config_, params, listener);
389✔
530
  }
389✔
531

532
  /**
533
   * Subscribe to open orders updates for a specific user.
534
   *
535
   * @param params - Parameters specific to the API subscription.
536
   * @param listener - A callback function to be called when the event is received.
537
   *
538
   * @returns A request-promise that resolves with a {@link ISubscription} object to manage the subscription lifecycle.
539
   *
540
   * @throws {ValiError} When the request parameters fail validation (before sending).
541
   * @throws {TransportError} When the transport layer throws an error.
542
   *
543
   * @example
544
   * ```ts
545
   * import * as hl from "@nktkas/hyperliquid";
546
   *
547
   * const transport = new hl.WebSocketTransport(); // only `WebSocketTransport`
548
   * const client = new hl.SubscriptionClient({ transport });
549
   *
550
   * const sub = await client.openOrders({ user: "0x..." }, (data) => console.log(data));
551
   * ```
552
   *
553
   * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
554
   */
555
  openOrders(
388✔
556
    params: OpenOrdersParameters,
388✔
557
    listener: (data: OpenOrdersEvent) => void,
388✔
558
  ): Promise<ISubscription> {
388✔
559
    return openOrders(this.config_, params, listener);
389✔
560
  }
389✔
561

562
  /**
563
   * Subscribe to order status updates for a specific user.
564
   *
565
   * @param params - Parameters specific to the API subscription.
566
   * @param listener - A callback function to be called when the event is received.
567
   *
568
   * @returns A request-promise that resolves with a {@link ISubscription} object to manage the subscription lifecycle.
569
   *
570
   * @throws {ValiError} When the request parameters fail validation (before sending).
571
   * @throws {TransportError} When the transport layer throws an error.
572
   *
573
   * @example
574
   * ```ts
575
   * import * as hl from "@nktkas/hyperliquid";
576
   *
577
   * const transport = new hl.WebSocketTransport(); // only `WebSocketTransport`
578
   * const client = new hl.SubscriptionClient({ transport });
579
   *
580
   * const sub = await client.orderUpdates({ user: "0x..." }, (data) => console.log(data));
581
   * ```
582
   *
583
   * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
584
   */
585
  orderUpdates(
388✔
586
    params: OrderUpdatesParameters,
388✔
587
    listener: (data: OrderUpdatesEvent) => void,
388✔
588
  ): Promise<ISubscription> {
388✔
589
    return orderUpdates(this.config_, params, listener);
389✔
590
  }
389✔
591

592
  /**
593
   * Subscribe to context updates for all spot assets.
594
   *
595
   * @param params - Parameters specific to the API subscription.
596
   * @param listener - A callback function to be called when the event is received.
597
   *
598
   * @returns A request-promise that resolves with a {@link ISubscription} object to manage the subscription lifecycle.
599
   *
600
   * @throws {ValiError} When the request parameters fail validation (before sending).
601
   * @throws {TransportError} When the transport layer throws an error.
602
   *
603
   * @example
604
   * ```ts
605
   * import * as hl from "@nktkas/hyperliquid";
606
   *
607
   * const transport = new hl.WebSocketTransport(); // only `WebSocketTransport`
608
   * const client = new hl.SubscriptionClient({ transport });
609
   *
610
   * const sub = await client.spotAssetCtxs((data) => console.log(data));
611
   * ```
612
   *
613
   * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
614
   */
615
  spotAssetCtxs(
388✔
616
    listener: (data: SpotAssetCtxsEvent) => void,
388✔
617
  ): Promise<ISubscription> {
388✔
618
    return spotAssetCtxs(this.config_, listener);
389✔
619
  }
389✔
620

621
  /**
622
   * Subscribe to spot state updates for a specific user.
623
   *
624
   * @param params - Parameters specific to the API subscription.
625
   * @param listener - A callback function to be called when the event is received.
626
   *
627
   * @returns A request-promise that resolves with a {@link ISubscription} object to manage the subscription lifecycle.
628
   *
629
   * @throws {ValiError} When the request parameters fail validation (before sending).
630
   * @throws {TransportError} When the transport layer throws an error.
631
   *
632
   * @example
633
   * ```ts
634
   * import * as hl from "@nktkas/hyperliquid";
635
   *
636
   * const transport = new hl.WebSocketTransport(); // only `WebSocketTransport`
637
   * const client = new hl.SubscriptionClient({ transport });
638
   *
639
   * const sub = await client.spotState({ user: "0x..." }, (data) => console.log(data));
640
   * ```
641
   *
642
   * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
643
   */
644
  spotState(
388✔
645
    params: SpotStateParameters,
388✔
646
    listener: (data: SpotStateEvent) => void,
388✔
647
  ): Promise<ISubscription> {
388✔
648
    return spotState(this.config_, params, listener);
392✔
649
  }
392✔
650

651
  /**
652
   * Subscribe to real-time trade updates for a specific asset.
653
   *
654
   * @param params - Parameters specific to the API subscription.
655
   * @param listener - A callback function to be called when the event is received.
656
   *
657
   * @returns A request-promise that resolves with a {@link ISubscription} object to manage the subscription lifecycle.
658
   *
659
   * @throws {ValiError} When the request parameters fail validation (before sending).
660
   * @throws {TransportError} When the transport layer throws an error.
661
   *
662
   * @example
663
   * ```ts
664
   * import * as hl from "@nktkas/hyperliquid";
665
   *
666
   * const transport = new hl.WebSocketTransport(); // only `WebSocketTransport`
667
   * const client = new hl.SubscriptionClient({ transport });
668
   *
669
   * const sub = await client.trades({ coin: "ETH" }, (data) => console.log(data));
670
   * ```
671
   *
672
   * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
673
   */
674
  trades(
388✔
675
    params: TradesParameters,
388✔
676
    listener: (data: TradesEvent) => void,
388✔
677
  ): Promise<ISubscription> {
388✔
678
    return trades(this.config_, params, listener);
389✔
679
  }
389✔
680

681
  /**
682
   * Subscribe to TWAP states updates for a specific user.
683
   *
684
   * @param params - Parameters specific to the API subscription.
685
   * @param listener - A callback function to be called when the event is received.
686
   *
687
   * @returns A request-promise that resolves with a {@link ISubscription} object to manage the subscription lifecycle.
688
   *
689
   * @throws {ValiError} When the request parameters fail validation (before sending).
690
   * @throws {TransportError} When the transport layer throws an error.
691
   *
692
   * @example
693
   * ```ts
694
   * import * as hl from "@nktkas/hyperliquid";
695
   *
696
   * const transport = new hl.WebSocketTransport(); // only `WebSocketTransport`
697
   * const client = new hl.SubscriptionClient({ transport });
698
   *
699
   * const sub = await client.twapStates({ user: "0x..." }, (data) => console.log(data));
700
   * ```
701
   *
702
   * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
703
   */
704
  twapStates(
388✔
705
    params: TwapStatesParameters,
388✔
706
    listener: (data: TwapStatesEvent) => void,
388✔
707
  ): Promise<ISubscription> {
388✔
708
    return twapStates(this.config_, params, listener);
389✔
709
  }
389✔
710

711
  /**
712
   * Subscribe to non-order events for a specific user.
713
   *
714
   * @param params - Parameters specific to the API subscription.
715
   * @param listener - A callback function to be called when the event is received.
716
   *
717
   * @returns A request-promise that resolves with a {@link ISubscription} object to manage the subscription lifecycle.
718
   *
719
   * @throws {ValiError} When the request parameters fail validation (before sending).
720
   * @throws {TransportError} When the transport layer throws an error.
721
   *
722
   * @example
723
   * ```ts
724
   * import * as hl from "@nktkas/hyperliquid";
725
   *
726
   * const transport = new hl.WebSocketTransport(); // only `WebSocketTransport`
727
   * const client = new hl.SubscriptionClient({ transport });
728
   *
729
   * const sub = await client.userEvents({ user: "0x..." }, (data) => console.log(data));
730
   * ```
731
   *
732
   * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
733
   */
734
  userEvents(
388✔
735
    params: UserEventsParameters,
388✔
736
    listener: (data: UserEventsEvent) => void,
388✔
737
  ): Promise<ISubscription> {
388✔
738
    return userEvents(this.config_, params, listener);
389✔
739
  }
389✔
740

741
  /**
742
   * Subscribe to trade fill updates for a specific user.
743
   *
744
   * @param params - Parameters specific to the API subscription.
745
   * @param listener - A callback function to be called when the event is received.
746
   *
747
   * @returns A request-promise that resolves with a {@link ISubscription} object to manage the subscription lifecycle.
748
   *
749
   * @throws {ValiError} When the request parameters fail validation (before sending).
750
   * @throws {TransportError} When the transport layer throws an error.
751
   *
752
   * @example
753
   * ```ts
754
   * import * as hl from "@nktkas/hyperliquid";
755
   *
756
   * const transport = new hl.WebSocketTransport(); // only `WebSocketTransport`
757
   * const client = new hl.SubscriptionClient({ transport });
758
   *
759
   * const sub = await client.userFills({ user: "0x..." }, (data) => console.log(data));
760
   * ```
761
   *
762
   * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
763
   */
764
  userFills(
388✔
765
    params: UserFillsParameters,
388✔
766
    listener: (data: UserFillsEvent) => void,
388✔
767
  ): Promise<ISubscription> {
388✔
768
    return userFills(this.config_, params, listener);
390✔
769
  }
390✔
770

771
  /**
772
   * Subscribe to funding payment updates for a specific user.
773
   *
774
   * @param params - Parameters specific to the API subscription.
775
   * @param listener - A callback function to be called when the event is received.
776
   *
777
   * @returns A request-promise that resolves with a {@link ISubscription} object to manage the subscription lifecycle.
778
   *
779
   * @throws {ValiError} When the request parameters fail validation (before sending).
780
   * @throws {TransportError} When the transport layer throws an error.
781
   *
782
   * @example
783
   * ```ts
784
   * import * as hl from "@nktkas/hyperliquid";
785
   *
786
   * const transport = new hl.WebSocketTransport(); // only `WebSocketTransport`
787
   * const client = new hl.SubscriptionClient({ transport });
788
   *
789
   * const sub = await client.userFundings({ user: "0x..." }, (data) => console.log(data));
790
   * ```
791
   *
792
   * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
793
   */
794
  userFundings(
388✔
795
    params: UserFundingsParameters,
388✔
796
    listener: (data: UserFundingsEvent) => void,
388✔
797
  ): Promise<ISubscription> {
388✔
798
    return userFundings(this.config_, params, listener);
389✔
799
  }
389✔
800

801
  /**
802
   * Subscribe to historical order updates for a specific user.
803
   *
804
   * @param params - Parameters specific to the API subscription.
805
   * @param listener - A callback function to be called when the event is received.
806
   *
807
   * @returns A request-promise that resolves with a {@link ISubscription} object to manage the subscription lifecycle.
808
   *
809
   * @throws {ValiError} When the request parameters fail validation (before sending).
810
   * @throws {TransportError} When the transport layer throws an error.
811
   *
812
   * @example
813
   * ```ts
814
   * import * as hl from "@nktkas/hyperliquid";
815
   *
816
   * const transport = new hl.WebSocketTransport(); // only `WebSocketTransport`
817
   * const client = new hl.SubscriptionClient({ transport });
818
   *
819
   * const sub = await client.userHistoricalOrders({ user: "0x..." }, (data) => console.log(data));
820
   * ```
821
   *
822
   * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
823
   */
824
  userHistoricalOrders(
388✔
825
    params: UserHistoricalOrdersParameters,
388✔
826
    listener: (data: UserHistoricalOrdersEvent) => void,
388✔
827
  ): Promise<ISubscription> {
388✔
828
    return userHistoricalOrders(this.config_, params, listener);
390✔
829
  }
390✔
830

831
  /**
832
   * Subscribe to non-funding ledger updates for a specific user.
833
   *
834
   * @param params - Parameters specific to the API subscription.
835
   * @param listener - A callback function to be called when the event is received.
836
   *
837
   * @returns A request-promise that resolves with a {@link ISubscription} object to manage the subscription lifecycle.
838
   *
839
   * @throws {ValiError} When the request parameters fail validation (before sending).
840
   * @throws {TransportError} When the transport layer throws an error.
841
   *
842
   * @example
843
   * ```ts
844
   * import * as hl from "@nktkas/hyperliquid";
845
   *
846
   * const transport = new hl.WebSocketTransport(); // only `WebSocketTransport`
847
   * const client = new hl.SubscriptionClient({ transport });
848
   *
849
   * const sub = await client.userNonFundingLedgerUpdates({ user: "0x..." }, (data) => console.log(data));
850
   * ```
851
   *
852
   * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
853
   */
854
  userNonFundingLedgerUpdates(
388✔
855
    params: UserNonFundingLedgerUpdatesParameters,
388✔
856
    listener: (data: UserNonFundingLedgerUpdatesEvent) => void,
388✔
857
  ): Promise<ISubscription> {
388✔
858
    return userNonFundingLedgerUpdates(this.config_, params, listener);
392✔
859
  }
392✔
860

861
  /**
862
   * Subscribe to TWAP order history updates for a specific user.
863
   *
864
   * @param params - Parameters specific to the API subscription.
865
   * @param listener - A callback function to be called when the event is received.
866
   *
867
   * @returns A request-promise that resolves with a {@link ISubscription} object to manage the subscription lifecycle.
868
   *
869
   * @throws {ValiError} When the request parameters fail validation (before sending).
870
   * @throws {TransportError} When the transport layer throws an error.
871
   *
872
   * @example
873
   * ```ts
874
   * import * as hl from "@nktkas/hyperliquid";
875
   *
876
   * const transport = new hl.WebSocketTransport(); // only `WebSocketTransport`
877
   * const client = new hl.SubscriptionClient({ transport });
878
   *
879
   * const sub = await client.userTwapHistory({ user: "0x..." }, (data) => console.log(data));
880
   * ```
881
   *
882
   * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
883
   */
884
  userTwapHistory(
388✔
885
    params: UserTwapHistoryParameters,
388✔
886
    listener: (data: UserTwapHistoryEvent) => void,
388✔
887
  ): Promise<ISubscription> {
388✔
888
    return userTwapHistory(this.config_, params, listener);
390✔
889
  }
390✔
890

891
  /**
892
   * Subscribe to TWAP execution updates for a specific user.
893
   *
894
   * @param params - Parameters specific to the API subscription.
895
   * @param listener - A callback function to be called when the event is received.
896
   *
897
   * @returns A request-promise that resolves with a {@link ISubscription} object to manage the subscription lifecycle.
898
   *
899
   * @throws {ValiError} When the request parameters fail validation (before sending).
900
   * @throws {TransportError} When the transport layer throws an error.
901
   *
902
   * @example
903
   * ```ts
904
   * import * as hl from "@nktkas/hyperliquid";
905
   *
906
   * const transport = new hl.WebSocketTransport(); // only `WebSocketTransport`
907
   * const client = new hl.SubscriptionClient({ transport });
908
   *
909
   * const sub = await client.userTwapSliceFills({ user: "0x..." }, (data) => console.log(data));
910
   * ```
911
   *
912
   * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
913
   */
914
  userTwapSliceFills(
388✔
915
    params: UserTwapSliceFillsParameters,
388✔
916
    listener: (data: UserTwapSliceFillsEvent) => void,
388✔
917
  ): Promise<ISubscription> {
388✔
918
    return userTwapSliceFills(this.config_, params, listener);
390✔
919
  }
390✔
920

921
  /**
922
   * Subscribe to comprehensive user and market data updates.
923
   *
924
   * @param params - Parameters specific to the API subscription.
925
   * @param listener - A callback function to be called when the event is received.
926
   *
927
   * @returns A request-promise that resolves with a {@link ISubscription} object to manage the subscription lifecycle.
928
   *
929
   * @throws {ValiError} When the request parameters fail validation (before sending).
930
   * @throws {TransportError} When the transport layer throws an error.
931
   *
932
   * @example
933
   * ```ts
934
   * import * as hl from "@nktkas/hyperliquid";
935
   *
936
   * const transport = new hl.WebSocketTransport(); // only `WebSocketTransport`
937
   * const client = new hl.SubscriptionClient({ transport });
938
   *
939
   * const sub = await client.webData2({ user: "0x..." }, (data) => console.log(data));
940
   * ```
941
   *
942
   * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
943
   */
944
  webData2(
388✔
945
    params: WebData2Parameters,
388✔
946
    listener: (data: WebData2Event) => void,
388✔
947
  ): Promise<ISubscription> {
388✔
948
    return webData2(this.config_, params, listener);
392✔
949
  }
392✔
950

951
  /**
952
   * Subscribe to comprehensive user and market data updates.
953
   *
954
   * @param params - Parameters specific to the API subscription.
955
   * @param listener - A callback function to be called when the event is received.
956
   *
957
   * @returns A request-promise that resolves with a {@link ISubscription} object to manage the subscription lifecycle.
958
   *
959
   * @throws {ValiError} When the request parameters fail validation (before sending).
960
   * @throws {TransportError} When the transport layer throws an error.
961
   *
962
   * @example
963
   * ```ts
964
   * import * as hl from "@nktkas/hyperliquid";
965
   *
966
   * const transport = new hl.WebSocketTransport(); // only `WebSocketTransport`
967
   * const client = new hl.SubscriptionClient({ transport });
968
   *
969
   * const sub = await client.webData3({ user: "0x..." }, (data) => console.log(data));
970
   * ```
971
   *
972
   * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
973
   */
974
  webData3(
388✔
975
    params: WebData3Parameters,
388✔
976
    listener: (data: WebData3Event) => void,
388✔
977
  ): Promise<ISubscription> {
388✔
978
    return webData3(this.config_, params, listener);
393✔
979
  }
393✔
980
}
388✔
981

982
// =============================================================
983
// Type Re-exports
984
// =============================================================
985

986
export type { SubscriptionConfig } from "./_methods/_types.ts";
987

988
export type {
989
  ActiveAssetCtxEvent as ActiveAssetCtxWsEvent,
990
  ActiveAssetCtxParameters as ActiveAssetCtxWsParameters,
991
} from "./_methods/activeAssetCtx.ts";
992
export type {
993
  ActiveAssetDataEvent as ActiveAssetDataWsEvent,
994
  ActiveAssetDataParameters as ActiveAssetDataWsParameters,
995
} from "./_methods/activeAssetData.ts";
996
export type {
997
  ActiveSpotAssetCtxEvent as ActiveSpotAssetCtxWsEvent,
998
  ActiveSpotAssetCtxParameters as ActiveSpotAssetCtxWsParameters,
999
} from "./_methods/activeSpotAssetCtx.ts";
1000
export type { AllDexsAssetCtxsEvent as AllDexsAssetCtxsWsEvent } from "./_methods/allDexsAssetCtxs.ts";
1001
export type {
1002
  AllDexsClearinghouseStateEvent as AllDexsClearinghouseStateWsEvent,
1003
  AllDexsClearinghouseStateParameters as AllDexsClearinghouseStateWsParameters,
1004
} from "./_methods/allDexsClearinghouseState.ts";
1005
export type { AllMidsEvent as AllMidsWsEvent, AllMidsParameters as AllMidsWsParameters } from "./_methods/allMids.ts";
1006
export type {
1007
  AssetCtxsEvent as AssetCtxsWsEvent,
1008
  AssetCtxsParameters as AssetCtxsWsParameters,
1009
} from "./_methods/assetCtxs.ts";
1010
export type { BboEvent as BboWsEvent, BboParameters as BboWsParameters } from "./_methods/bbo.ts";
1011
export type { CandleEvent as CandleWsEvent, CandleParameters as CandleWsParameters } from "./_methods/candle.ts";
1012
export type {
1013
  ClearinghouseStateEvent as ClearinghouseStateWsEvent,
1014
  ClearinghouseStateParameters as ClearinghouseStateWsParameters,
1015
} from "./_methods/clearinghouseState.ts";
1016
export type { ExplorerBlockEvent as ExplorerBlockWsEvent } from "./_methods/explorerBlock.ts";
1017
export type { ExplorerTxsEvent as ExplorerTxsWsEvent } from "./_methods/explorerTxs.ts";
1018
export type { L2BookEvent as L2BookWsEvent, L2BookParameters as L2BookWsParameters } from "./_methods/l2Book.ts";
1019
export type {
1020
  NotificationEvent as NotificationWsEvent,
1021
  NotificationParameters as NotificationWsParameters,
1022
} from "./_methods/notification.ts";
1023
export type {
1024
  OpenOrdersEvent as OpenOrdersWsEvent,
1025
  OpenOrdersParameters as OpenOrdersWsParameters,
1026
} from "./_methods/openOrders.ts";
1027
export type {
1028
  OrderUpdatesEvent as OrderUpdatesWsEvent,
1029
  OrderUpdatesParameters as OrderUpdatesWsParameters,
1030
} from "./_methods/orderUpdates.ts";
1031
export type { SpotAssetCtxsEvent as SpotAssetCtxsWsEvent } from "./_methods/spotAssetCtxs.ts";
1032
export type {
1033
  SpotStateEvent as SpotStateWsEvent,
1034
  SpotStateParameters as SpotStateWsParameters,
1035
} from "./_methods/spotState.ts";
1036
export type { TradesEvent as TradesWsEvent, TradesParameters as TradesWsParameters } from "./_methods/trades.ts";
1037
export type {
1038
  TwapStatesEvent as TwapStatesWsEvent,
1039
  TwapStatesParameters as TwapStatesWsParameters,
1040
} from "./_methods/twapStates.ts";
1041
export type {
1042
  UserEventsEvent as UserEventsWsEvent,
1043
  UserEventsParameters as UserEventsWsParameters,
1044
} from "./_methods/userEvents.ts";
1045
export type {
1046
  UserFillsEvent as UserFillsWsEvent,
1047
  UserFillsParameters as UserFillsWsParameters,
1048
} from "./_methods/userFills.ts";
1049
export type {
1050
  UserFundingsEvent as UserFundingsWsEvent,
1051
  UserFundingsParameters as UserFundingsWsParameters,
1052
} from "./_methods/userFundings.ts";
1053
export type {
1054
  UserHistoricalOrdersEvent as UserHistoricalOrdersWsEvent,
1055
  UserHistoricalOrdersParameters as UserHistoricalOrdersWsParameters,
1056
} from "./_methods/userHistoricalOrders.ts";
1057
export type {
1058
  UserNonFundingLedgerUpdatesEvent as UserNonFundingLedgerUpdatesWsEvent,
1059
  UserNonFundingLedgerUpdatesParameters as UserNonFundingLedgerUpdatesWsParameters,
1060
} from "./_methods/userNonFundingLedgerUpdates.ts";
1061
export type {
1062
  UserTwapHistoryEvent as UserTwapHistoryWsEvent,
1063
  UserTwapHistoryParameters as UserTwapHistoryWsParameters,
1064
} from "./_methods/userTwapHistory.ts";
1065
export type {
1066
  UserTwapSliceFillsEvent as UserTwapSliceFillsWsEvent,
1067
  UserTwapSliceFillsParameters as UserTwapSliceFillsWsParameters,
1068
} from "./_methods/userTwapSliceFills.ts";
1069
export type {
1070
  WebData2Event as WebData2WsEvent,
1071
  WebData2Parameters as WebData2WsParameters,
1072
} from "./_methods/webData2.ts";
1073
export type {
1074
  WebData3Event as WebData3WsEvent,
1075
  WebData3Parameters as WebData3WsParameters,
1076
} from "./_methods/webData3.ts";
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc