@replit/river 0.23.9 → 0.23.10

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 (54) hide show
  1. package/dist/{chunk-U4CSF3SQ.js → chunk-B323CECK.js} +473 -15
  2. package/dist/chunk-B323CECK.js.map +1 -0
  3. package/dist/{chunk-XUVTMFTJ.js → chunk-FRICSBDW.js} +2 -2
  4. package/dist/chunk-FRICSBDW.js.map +1 -0
  5. package/dist/{chunk-YGW5PYGV.js → chunk-KBAZ5TWE.js} +25 -35
  6. package/dist/chunk-KBAZ5TWE.js.map +1 -0
  7. package/dist/{chunk-KIWWKSRI.js → chunk-UXQMGZKP.js} +2 -2
  8. package/dist/{chunk-XKVIPKMR.js → chunk-Z4G27Y2I.js} +2 -2
  9. package/dist/{connection-afa08cf1.d.ts → connection-700340c4.d.ts} +1 -1
  10. package/dist/{connection-f5fb7805.d.ts → connection-efcd4e1a.d.ts} +1 -1
  11. package/dist/router/index.cjs +473 -14
  12. package/dist/router/index.cjs.map +1 -1
  13. package/dist/router/index.d.cts +41 -7
  14. package/dist/router/index.d.ts +41 -7
  15. package/dist/router/index.js +4 -2
  16. package/dist/{services-49b1b43d.d.ts → services-409c5545.d.ts} +2 -2
  17. package/dist/transport/impls/uds/client.cjs +23 -33
  18. package/dist/transport/impls/uds/client.cjs.map +1 -1
  19. package/dist/transport/impls/uds/client.d.cts +2 -2
  20. package/dist/transport/impls/uds/client.d.ts +2 -2
  21. package/dist/transport/impls/uds/client.js +3 -3
  22. package/dist/transport/impls/uds/server.cjs +22 -32
  23. package/dist/transport/impls/uds/server.cjs.map +1 -1
  24. package/dist/transport/impls/uds/server.d.cts +2 -2
  25. package/dist/transport/impls/uds/server.d.ts +2 -2
  26. package/dist/transport/impls/uds/server.js +3 -3
  27. package/dist/transport/impls/ws/client.cjs +26 -33
  28. package/dist/transport/impls/ws/client.cjs.map +1 -1
  29. package/dist/transport/impls/ws/client.d.cts +2 -2
  30. package/dist/transport/impls/ws/client.d.ts +2 -2
  31. package/dist/transport/impls/ws/client.js +6 -3
  32. package/dist/transport/impls/ws/client.js.map +1 -1
  33. package/dist/transport/impls/ws/server.cjs +22 -32
  34. package/dist/transport/impls/ws/server.cjs.map +1 -1
  35. package/dist/transport/impls/ws/server.d.cts +2 -2
  36. package/dist/transport/impls/ws/server.d.ts +2 -2
  37. package/dist/transport/impls/ws/server.js +3 -3
  38. package/dist/transport/index.cjs +24 -34
  39. package/dist/transport/index.cjs.map +1 -1
  40. package/dist/transport/index.d.cts +1 -1
  41. package/dist/transport/index.d.ts +1 -1
  42. package/dist/transport/index.js +2 -2
  43. package/dist/{transport-3d0ba1da.d.ts → transport-cf856c41.d.ts} +13 -17
  44. package/dist/util/testHelpers.cjs +1 -1
  45. package/dist/util/testHelpers.cjs.map +1 -1
  46. package/dist/util/testHelpers.d.cts +2 -2
  47. package/dist/util/testHelpers.d.ts +2 -2
  48. package/dist/util/testHelpers.js +3 -3
  49. package/package.json +3 -3
  50. package/dist/chunk-U4CSF3SQ.js.map +0 -1
  51. package/dist/chunk-XUVTMFTJ.js.map +0 -1
  52. package/dist/chunk-YGW5PYGV.js.map +0 -1
  53. /package/dist/{chunk-KIWWKSRI.js.map → chunk-UXQMGZKP.js.map} +0 -0
  54. /package/dist/{chunk-XKVIPKMR.js.map → chunk-Z4G27Y2I.js.map} +0 -0
@@ -162,11 +162,13 @@ var createLogProxy = (log) => ({
162
162
  var ProtocolError = {
163
163
  RetriesExceeded: "conn_retry_exceeded",
164
164
  HandshakeFailed: "handshake_failed",
165
- UseAfterDestroy: "use_after_destroy",
166
165
  MessageOrderingViolated: "message_ordering_violated"
167
166
  };
168
167
  var EventDispatcher = class {
169
168
  eventListeners = {};
169
+ removeAllListeners() {
170
+ this.eventListeners = {};
171
+ }
170
172
  numberOfListeners(eventType) {
171
173
  return this.eventListeners[eventType]?.size ?? 0;
172
174
  }
@@ -185,7 +187,8 @@ var EventDispatcher = class {
185
187
  dispatchEvent(eventType, event) {
186
188
  const handlers = this.eventListeners[eventType];
187
189
  if (handlers) {
188
- for (const handler of handlers) {
190
+ const copy = [...handlers];
191
+ for (const handler of copy) {
189
192
  handler(event);
190
193
  }
191
194
  }
@@ -199,7 +202,7 @@ var import_nanoid2 = require("nanoid");
199
202
  var import_api = require("@opentelemetry/api");
200
203
 
201
204
  // package.json
202
- var version = "0.23.9";
205
+ var version = "0.23.10";
203
206
 
204
207
  // tracing/index.ts
205
208
  function getPropagationContext(ctx) {
@@ -258,7 +261,7 @@ var Connection = class {
258
261
  get loggingMetadata() {
259
262
  const metadata = { connId: this.id };
260
263
  const spanContext = this.telemetry?.span.spanContext();
261
- if (spanContext) {
264
+ if (this.telemetry?.span.isRecording() && spanContext) {
262
265
  metadata.telemetry = {
263
266
  traceId: spanContext.traceId,
264
267
  spanId: spanContext.spanId
@@ -704,10 +707,9 @@ var defaultServerTransportOptions = {
704
707
  };
705
708
  var Transport = class {
706
709
  /**
707
- * A flag indicating whether the transport has been destroyed.
708
- * A destroyed transport will not attempt to reconnect and cannot be used again.
710
+ * The status of the transport.
709
711
  */
710
- state;
712
+ status;
711
713
  /**
712
714
  * The {@link Codec} used to encode and decode messages.
713
715
  */
@@ -749,7 +751,7 @@ var Transport = class {
749
751
  this.sessions = /* @__PURE__ */ new Map();
750
752
  this.codec = this.options.codec;
751
753
  this.clientId = clientId;
752
- this.state = "open";
754
+ this.status = "open";
753
755
  }
754
756
  bindLogger(fn, level) {
755
757
  if (typeof fn === "function") {
@@ -911,7 +913,7 @@ var Transport = class {
911
913
  * @param msg The received message.
912
914
  */
913
915
  handleMsg(msg, conn) {
914
- if (this.state !== "open")
916
+ if (this.getStatus() !== "open")
915
917
  return;
916
918
  const session = this.sessions.get(msg.from);
917
919
  if (!session) {
@@ -990,21 +992,14 @@ var Transport = class {
990
992
  * @returns The ID of the sent message or undefined if it wasn't sent
991
993
  */
992
994
  send(to, msg) {
993
- if (this.state === "destroyed") {
994
- const err = "transport is destroyed, cant send";
995
+ if (this.getStatus() === "closed") {
996
+ const err = "transport is closed, cant send";
995
997
  this.log?.error(err, {
996
998
  clientId: this.clientId,
997
999
  transportMessage: msg,
998
1000
  tags: ["invariant-violation"]
999
1001
  });
1000
- this.protocolError(ProtocolError.UseAfterDestroy, err);
1001
- return void 0;
1002
- } else if (this.state === "closed") {
1003
- this.log?.info(`transport closed when sending, discarding`, {
1004
- clientId: this.clientId,
1005
- transportMessage: msg
1006
- });
1007
- return void 0;
1002
+ throw new Error(err);
1008
1003
  }
1009
1004
  return this.getOrCreateSession({ to }).session.send(msg);
1010
1005
  }
@@ -1027,23 +1022,18 @@ var Transport = class {
1027
1022
  * Closes the transport. Any messages sent while the transport is closed will be silently discarded.
1028
1023
  */
1029
1024
  close() {
1030
- this.state = "closed";
1025
+ this.status = "closed";
1031
1026
  for (const session of this.sessions.values()) {
1032
1027
  this.deleteSession({ session, closeHandshakingConnection: true });
1033
1028
  }
1029
+ this.eventDispatcher.dispatchEvent("transportStatus", {
1030
+ status: this.status
1031
+ });
1032
+ this.eventDispatcher.removeAllListeners();
1034
1033
  this.log?.info(`manually closed transport`, { clientId: this.clientId });
1035
1034
  }
1036
- /**
1037
- * Default destroy implementation for transports. You should override this in the downstream
1038
- * implementation if you need to do any additional cleanup and call super.destroy() at the end.
1039
- * Destroys the transport. Any messages sent while the transport is destroyed will throw an error.
1040
- */
1041
- destroy() {
1042
- this.state = "destroyed";
1043
- for (const session of this.sessions.values()) {
1044
- this.deleteSession({ session, closeHandshakingConnection: true });
1045
- }
1046
- this.log?.info(`manually destroyed transport`, { clientId: this.clientId });
1035
+ getStatus() {
1036
+ return this.status;
1047
1037
  }
1048
1038
  };
1049
1039
  var ClientTransport = class extends Transport {
@@ -1080,7 +1070,7 @@ var ClientTransport = class extends Transport {
1080
1070
  this.handshakeExtensions = options;
1081
1071
  }
1082
1072
  handleConnection(conn, to) {
1083
- if (this.state !== "open")
1073
+ if (this.getStatus() !== "open")
1084
1074
  return;
1085
1075
  let session = void 0;
1086
1076
  const handshakeTimeout = setTimeout(() => {
@@ -1220,7 +1210,7 @@ var ClientTransport = class extends Transport {
1220
1210
  * @param to The client ID of the node to connect to.
1221
1211
  */
1222
1212
  async connect(to) {
1223
- const canProceedWithConnection = () => this.state === "open";
1213
+ const canProceedWithConnection = () => this.getStatus() === "open";
1224
1214
  if (!canProceedWithConnection()) {
1225
1215
  this.log?.info(
1226
1216
  `transport state is no longer open, cancelling attempt to connect to ${to}`,
@@ -1465,6 +1455,9 @@ var WebSocketClientTransport = class extends ClientTransport {
1465
1455
  ws.onclose = (evt) => {
1466
1456
  reject(new Error(evt.reason));
1467
1457
  };
1458
+ ws.onerror = (err) => {
1459
+ reject(new Error(err.message));
1460
+ };
1468
1461
  });
1469
1462
  const conn = new WebSocketConnection(ws);
1470
1463
  this.log?.info(`raw websocket to ${to} ok, starting handshake`, {