@replit/river 0.10.7 → 0.10.8

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.
@@ -57,19 +57,27 @@ var WebSocketClientTransport = class extends Transport {
57
57
  log?.info(`${this.clientId} -- establishing a new websocket to ${to}`);
58
58
  const ws = await this.wsGetter(to);
59
59
  if (ws.readyState === ws.OPEN) {
60
+ if (this.state !== "open")
61
+ return resolve({ err: "transport is closed" });
60
62
  return resolve({ ws });
61
63
  }
62
64
  if (ws.readyState === ws.CLOSING || ws.readyState === ws.CLOSED) {
63
65
  return resolve({ err: "ws is closing or closed" });
64
66
  }
65
- ws.addEventListener("open", function onOpen() {
67
+ const onOpen = () => {
66
68
  ws.removeEventListener("open", onOpen);
69
+ if (this.state !== "open")
70
+ return resolve({ err: "transport is closed" });
67
71
  resolve({ ws });
68
- });
69
- ws.addEventListener("close", function onClose(evt) {
72
+ };
73
+ const onClose = (evt) => {
70
74
  ws.removeEventListener("close", onClose);
75
+ if (this.state !== "open")
76
+ return resolve({ err: "transport is closed" });
71
77
  resolve({ err: evt.reason });
72
- });
78
+ };
79
+ ws.addEventListener("open", onOpen);
80
+ ws.addEventListener("close", onClose);
73
81
  });
74
82
  this.reconnectPromises.set(to, reconnectPromise);
75
83
  }
@@ -103,6 +111,14 @@ var WebSocketClientTransport = class extends Transport {
103
111
  );
104
112
  }
105
113
  }
114
+ async close() {
115
+ super.close();
116
+ this.reconnectPromises.clear();
117
+ }
118
+ async destroy() {
119
+ super.destroy();
120
+ this.reconnectPromises.clear();
121
+ }
106
122
  };
107
123
 
108
124
  export {
@@ -447,19 +447,27 @@ var WebSocketClientTransport = class extends Transport {
447
447
  log?.info(`${this.clientId} -- establishing a new websocket to ${to}`);
448
448
  const ws = await this.wsGetter(to);
449
449
  if (ws.readyState === ws.OPEN) {
450
+ if (this.state !== "open")
451
+ return resolve({ err: "transport is closed" });
450
452
  return resolve({ ws });
451
453
  }
452
454
  if (ws.readyState === ws.CLOSING || ws.readyState === ws.CLOSED) {
453
455
  return resolve({ err: "ws is closing or closed" });
454
456
  }
455
- ws.addEventListener("open", function onOpen() {
457
+ const onOpen = () => {
456
458
  ws.removeEventListener("open", onOpen);
459
+ if (this.state !== "open")
460
+ return resolve({ err: "transport is closed" });
457
461
  resolve({ ws });
458
- });
459
- ws.addEventListener("close", function onClose(evt) {
462
+ };
463
+ const onClose = (evt) => {
460
464
  ws.removeEventListener("close", onClose);
465
+ if (this.state !== "open")
466
+ return resolve({ err: "transport is closed" });
461
467
  resolve({ err: evt.reason });
462
- });
468
+ };
469
+ ws.addEventListener("open", onOpen);
470
+ ws.addEventListener("close", onClose);
463
471
  });
464
472
  this.reconnectPromises.set(to, reconnectPromise);
465
473
  }
@@ -493,6 +501,14 @@ var WebSocketClientTransport = class extends Transport {
493
501
  );
494
502
  }
495
503
  }
504
+ async close() {
505
+ super.close();
506
+ this.reconnectPromises.clear();
507
+ }
508
+ async destroy() {
509
+ super.destroy();
510
+ this.reconnectPromises.clear();
511
+ }
496
512
  };
497
513
  // Annotate the CommonJS export names for ESM import in node:
498
514
  0 && (module.exports = {
@@ -36,6 +36,8 @@ declare class WebSocketClientTransport extends Transport<WebSocketConnection> {
36
36
  */
37
37
  constructor(wsGetter: () => Promise<WebSocket>, clientId: TransportClientId, serverId: TransportClientId, providedOptions?: Partial<Options>);
38
38
  createNewConnection(to: string, attempt?: number): Promise<void>;
39
+ close(): Promise<void>;
40
+ destroy(): Promise<void>;
39
41
  }
40
42
 
41
43
  export { WebSocketClientTransport };
@@ -36,6 +36,8 @@ declare class WebSocketClientTransport extends Transport<WebSocketConnection> {
36
36
  */
37
37
  constructor(wsGetter: () => Promise<WebSocket>, clientId: TransportClientId, serverId: TransportClientId, providedOptions?: Partial<Options>);
38
38
  createNewConnection(to: string, attempt?: number): Promise<void>;
39
+ close(): Promise<void>;
40
+ destroy(): Promise<void>;
39
41
  }
40
42
 
41
43
  export { WebSocketClientTransport };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  WebSocketClientTransport
3
- } from "../../../chunk-6QJETGOD.js";
3
+ } from "../../../chunk-WKVQ64U6.js";
4
4
  import "../../../chunk-L7D75G4K.js";
5
5
  import "../../../chunk-R6H2BIMC.js";
6
6
  import "../../../chunk-LQXPKF3A.js";
@@ -484,19 +484,27 @@ var WebSocketClientTransport = class extends Transport {
484
484
  log?.info(`${this.clientId} -- establishing a new websocket to ${to}`);
485
485
  const ws = await this.wsGetter(to);
486
486
  if (ws.readyState === ws.OPEN) {
487
+ if (this.state !== "open")
488
+ return resolve({ err: "transport is closed" });
487
489
  return resolve({ ws });
488
490
  }
489
491
  if (ws.readyState === ws.CLOSING || ws.readyState === ws.CLOSED) {
490
492
  return resolve({ err: "ws is closing or closed" });
491
493
  }
492
- ws.addEventListener("open", function onOpen() {
494
+ const onOpen = () => {
493
495
  ws.removeEventListener("open", onOpen);
496
+ if (this.state !== "open")
497
+ return resolve({ err: "transport is closed" });
494
498
  resolve({ ws });
495
- });
496
- ws.addEventListener("close", function onClose(evt) {
499
+ };
500
+ const onClose = (evt) => {
497
501
  ws.removeEventListener("close", onClose);
502
+ if (this.state !== "open")
503
+ return resolve({ err: "transport is closed" });
498
504
  resolve({ err: evt.reason });
499
- });
505
+ };
506
+ ws.addEventListener("open", onOpen);
507
+ ws.addEventListener("close", onClose);
500
508
  });
501
509
  this.reconnectPromises.set(to, reconnectPromise);
502
510
  }
@@ -530,6 +538,14 @@ var WebSocketClientTransport = class extends Transport {
530
538
  );
531
539
  }
532
540
  }
541
+ async close() {
542
+ super.close();
543
+ this.reconnectPromises.clear();
544
+ }
545
+ async destroy() {
546
+ super.destroy();
547
+ this.reconnectPromises.clear();
548
+ }
533
549
  };
534
550
 
535
551
  // node_modules/p-defer/index.js
@@ -4,7 +4,7 @@ import {
4
4
  } from "../chunk-3JGVFWKQ.js";
5
5
  import {
6
6
  WebSocketClientTransport
7
- } from "../chunk-6QJETGOD.js";
7
+ } from "../chunk-WKVQ64U6.js";
8
8
  import {
9
9
  WebSocketServerTransport
10
10
  } from "../chunk-PJ2EUO7O.js";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@replit/river",
3
3
  "description": "It's like tRPC but... with JSON Schema Support, duplex streaming and support for service multiplexing. Transport agnostic!",
4
- "version": "0.10.7",
4
+ "version": "0.10.8",
5
5
  "type": "module",
6
6
  "exports": {
7
7
  ".": {