@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
@@ -184,11 +184,13 @@ var createLogProxy = (log) => ({
184
184
  var ProtocolError = {
185
185
  RetriesExceeded: "conn_retry_exceeded",
186
186
  HandshakeFailed: "handshake_failed",
187
- UseAfterDestroy: "use_after_destroy",
188
187
  MessageOrderingViolated: "message_ordering_violated"
189
188
  };
190
189
  var EventDispatcher = class {
191
190
  eventListeners = {};
191
+ removeAllListeners() {
192
+ this.eventListeners = {};
193
+ }
192
194
  numberOfListeners(eventType) {
193
195
  return this.eventListeners[eventType]?.size ?? 0;
194
196
  }
@@ -207,7 +209,8 @@ var EventDispatcher = class {
207
209
  dispatchEvent(eventType, event) {
208
210
  const handlers = this.eventListeners[eventType];
209
211
  if (handlers) {
210
- for (const handler of handlers) {
212
+ const copy = [...handlers];
213
+ for (const handler of copy) {
211
214
  handler(event);
212
215
  }
213
216
  }
@@ -221,7 +224,7 @@ var import_nanoid2 = require("nanoid");
221
224
  var import_api = require("@opentelemetry/api");
222
225
 
223
226
  // package.json
224
- var version = "0.23.9";
227
+ var version = "0.23.10";
225
228
 
226
229
  // tracing/index.ts
227
230
  function getPropagationContext(ctx) {
@@ -280,7 +283,7 @@ var Connection = class {
280
283
  get loggingMetadata() {
281
284
  const metadata = { connId: this.id };
282
285
  const spanContext = this.telemetry?.span.spanContext();
283
- if (spanContext) {
286
+ if (this.telemetry?.span.isRecording() && spanContext) {
284
287
  metadata.telemetry = {
285
288
  traceId: spanContext.traceId,
286
289
  spanId: spanContext.spanId
@@ -726,10 +729,9 @@ var defaultServerTransportOptions = {
726
729
  };
727
730
  var Transport = class {
728
731
  /**
729
- * A flag indicating whether the transport has been destroyed.
730
- * A destroyed transport will not attempt to reconnect and cannot be used again.
732
+ * The status of the transport.
731
733
  */
732
- state;
734
+ status;
733
735
  /**
734
736
  * The {@link Codec} used to encode and decode messages.
735
737
  */
@@ -771,7 +773,7 @@ var Transport = class {
771
773
  this.sessions = /* @__PURE__ */ new Map();
772
774
  this.codec = this.options.codec;
773
775
  this.clientId = clientId;
774
- this.state = "open";
776
+ this.status = "open";
775
777
  }
776
778
  bindLogger(fn, level) {
777
779
  if (typeof fn === "function") {
@@ -933,7 +935,7 @@ var Transport = class {
933
935
  * @param msg The received message.
934
936
  */
935
937
  handleMsg(msg, conn) {
936
- if (this.state !== "open")
938
+ if (this.getStatus() !== "open")
937
939
  return;
938
940
  const session = this.sessions.get(msg.from);
939
941
  if (!session) {
@@ -1012,21 +1014,14 @@ var Transport = class {
1012
1014
  * @returns The ID of the sent message or undefined if it wasn't sent
1013
1015
  */
1014
1016
  send(to, msg) {
1015
- if (this.state === "destroyed") {
1016
- const err = "transport is destroyed, cant send";
1017
+ if (this.getStatus() === "closed") {
1018
+ const err = "transport is closed, cant send";
1017
1019
  this.log?.error(err, {
1018
1020
  clientId: this.clientId,
1019
1021
  transportMessage: msg,
1020
1022
  tags: ["invariant-violation"]
1021
1023
  });
1022
- this.protocolError(ProtocolError.UseAfterDestroy, err);
1023
- return void 0;
1024
- } else if (this.state === "closed") {
1025
- this.log?.info(`transport closed when sending, discarding`, {
1026
- clientId: this.clientId,
1027
- transportMessage: msg
1028
- });
1029
- return void 0;
1024
+ throw new Error(err);
1030
1025
  }
1031
1026
  return this.getOrCreateSession({ to }).session.send(msg);
1032
1027
  }
@@ -1049,23 +1044,18 @@ var Transport = class {
1049
1044
  * Closes the transport. Any messages sent while the transport is closed will be silently discarded.
1050
1045
  */
1051
1046
  close() {
1052
- this.state = "closed";
1047
+ this.status = "closed";
1053
1048
  for (const session of this.sessions.values()) {
1054
1049
  this.deleteSession({ session, closeHandshakingConnection: true });
1055
1050
  }
1051
+ this.eventDispatcher.dispatchEvent("transportStatus", {
1052
+ status: this.status
1053
+ });
1054
+ this.eventDispatcher.removeAllListeners();
1056
1055
  this.log?.info(`manually closed transport`, { clientId: this.clientId });
1057
1056
  }
1058
- /**
1059
- * Default destroy implementation for transports. You should override this in the downstream
1060
- * implementation if you need to do any additional cleanup and call super.destroy() at the end.
1061
- * Destroys the transport. Any messages sent while the transport is destroyed will throw an error.
1062
- */
1063
- destroy() {
1064
- this.state = "destroyed";
1065
- for (const session of this.sessions.values()) {
1066
- this.deleteSession({ session, closeHandshakingConnection: true });
1067
- }
1068
- this.log?.info(`manually destroyed transport`, { clientId: this.clientId });
1057
+ getStatus() {
1058
+ return this.status;
1069
1059
  }
1070
1060
  };
1071
1061
  var ClientTransport = class extends Transport {
@@ -1102,7 +1092,7 @@ var ClientTransport = class extends Transport {
1102
1092
  this.handshakeExtensions = options;
1103
1093
  }
1104
1094
  handleConnection(conn, to) {
1105
- if (this.state !== "open")
1095
+ if (this.getStatus() !== "open")
1106
1096
  return;
1107
1097
  let session = void 0;
1108
1098
  const handshakeTimeout = setTimeout(() => {
@@ -1242,7 +1232,7 @@ var ClientTransport = class extends Transport {
1242
1232
  * @param to The client ID of the node to connect to.
1243
1233
  */
1244
1234
  async connect(to) {
1245
- const canProceedWithConnection = () => this.state === "open";
1235
+ const canProceedWithConnection = () => this.getStatus() === "open";
1246
1236
  if (!canProceedWithConnection()) {
1247
1237
  this.log?.info(
1248
1238
  `transport state is no longer open, cancelling attempt to connect to ${to}`,
@@ -1426,7 +1416,7 @@ var ServerTransport = class extends Transport {
1426
1416
  this.handshakeExtensions = options;
1427
1417
  }
1428
1418
  handleConnection(conn) {
1429
- if (this.state !== "open")
1419
+ if (this.getStatus() !== "open")
1430
1420
  return;
1431
1421
  this.log?.info(`new incoming connection`, {
1432
1422
  ...conn.loggingMetadata,