@replit/river 0.203.1 → 0.204.0

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 (49) hide show
  1. package/dist/{chunk-T4WWG42M.js → chunk-3V7VMJNA.js} +19 -16
  2. package/dist/chunk-3V7VMJNA.js.map +1 -0
  3. package/dist/{chunk-TMOCPK63.js → chunk-6YUDEFCS.js} +42 -8
  4. package/dist/chunk-6YUDEFCS.js.map +1 -0
  5. package/dist/chunk-LJCR3ADI.js +1955 -0
  6. package/dist/chunk-LJCR3ADI.js.map +1 -0
  7. package/dist/{chunk-2FHJVQBE.js → chunk-QSW7AWEP.js} +5 -11
  8. package/dist/chunk-QSW7AWEP.js.map +1 -0
  9. package/dist/{chunk-7MKTFUJO.js → chunk-YODW2ZMU.js} +4 -3
  10. package/dist/chunk-YODW2ZMU.js.map +1 -0
  11. package/dist/{client-5d2e41a3.d.ts → client-0c0a4a5e.d.ts} +1 -1
  12. package/dist/{connection-11a4af0f.d.ts → connection-7b62dfec.d.ts} +1 -1
  13. package/dist/{context-d6dd8a1a.d.ts → context-3cf1ed4e.d.ts} +8 -2
  14. package/dist/router/index.cjs +23 -12
  15. package/dist/router/index.cjs.map +1 -1
  16. package/dist/router/index.d.cts +7 -7
  17. package/dist/router/index.d.ts +7 -7
  18. package/dist/router/index.js +18 -1611
  19. package/dist/router/index.js.map +1 -1
  20. package/dist/{server-e46399f9.d.ts → server-a287de55.d.ts} +1 -1
  21. package/dist/{services-56cbea0d.d.ts → services-51980ecd.d.ts} +2 -2
  22. package/dist/testUtil/index.cjs +72 -32
  23. package/dist/testUtil/index.cjs.map +1 -1
  24. package/dist/testUtil/index.d.cts +4 -4
  25. package/dist/testUtil/index.d.ts +4 -4
  26. package/dist/testUtil/index.js +8 -6
  27. package/dist/testUtil/index.js.map +1 -1
  28. package/dist/transport/impls/ws/client.cjs +72 -40
  29. package/dist/transport/impls/ws/client.cjs.map +1 -1
  30. package/dist/transport/impls/ws/client.d.cts +3 -3
  31. package/dist/transport/impls/ws/client.d.ts +3 -3
  32. package/dist/transport/impls/ws/client.js +4 -4
  33. package/dist/transport/impls/ws/server.cjs +58 -28
  34. package/dist/transport/impls/ws/server.cjs.map +1 -1
  35. package/dist/transport/impls/ws/server.d.cts +3 -3
  36. package/dist/transport/impls/ws/server.d.ts +3 -3
  37. package/dist/transport/impls/ws/server.js +4 -4
  38. package/dist/transport/index.cjs +70 -31
  39. package/dist/transport/index.cjs.map +1 -1
  40. package/dist/transport/index.d.cts +3 -3
  41. package/dist/transport/index.d.ts +3 -3
  42. package/dist/transport/index.js +4 -4
  43. package/package.json +2 -2
  44. package/dist/chunk-2FHJVQBE.js.map +0 -1
  45. package/dist/chunk-7MKTFUJO.js.map +0 -1
  46. package/dist/chunk-AK7NTFAM.js +0 -331
  47. package/dist/chunk-AK7NTFAM.js.map +0 -1
  48. package/dist/chunk-T4WWG42M.js.map +0 -1
  49. package/dist/chunk-TMOCPK63.js.map +0 -1
@@ -1,7 +1,7 @@
1
- import { C as ClientTransport } from '../../../client-5d2e41a3.js';
1
+ import { C as ClientTransport } from '../../../client-0c0a4a5e.js';
2
2
  import { c as TransportClientId } from '../../../message-3def9ded.js';
3
- import { b as ProvidedClientTransportOptions } from '../../../context-d6dd8a1a.js';
4
- import { W as WebSocketConnection } from '../../../connection-11a4af0f.js';
3
+ import { b as ProvidedClientTransportOptions } from '../../../context-3cf1ed4e.js';
4
+ import { W as WebSocketConnection } from '../../../connection-7b62dfec.js';
5
5
  import { W as WsLike } from '../../../wslike-e0b32dd5.js';
6
6
  import '@sinclair/typebox/value';
7
7
  import '@sinclair/typebox';
@@ -1,7 +1,7 @@
1
- import { C as ClientTransport } from '../../../client-5d2e41a3.js';
1
+ import { C as ClientTransport } from '../../../client-0c0a4a5e.js';
2
2
  import { c as TransportClientId } from '../../../message-3def9ded.js';
3
- import { b as ProvidedClientTransportOptions } from '../../../context-d6dd8a1a.js';
4
- import { W as WebSocketConnection } from '../../../connection-11a4af0f.js';
3
+ import { b as ProvidedClientTransportOptions } from '../../../context-3cf1ed4e.js';
4
+ import { W as WebSocketConnection } from '../../../connection-7b62dfec.js';
5
5
  import { W as WsLike } from '../../../wslike-e0b32dd5.js';
6
6
  import '@sinclair/typebox/value';
7
7
  import '@sinclair/typebox';
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  ClientTransport
3
- } from "../../../chunk-T4WWG42M.js";
3
+ } from "../../../chunk-3V7VMJNA.js";
4
4
  import {
5
5
  WebSocketConnection
6
- } from "../../../chunk-2FHJVQBE.js";
7
- import "../../../chunk-TMOCPK63.js";
8
- import "../../../chunk-AK7NTFAM.js";
6
+ } from "../../../chunk-QSW7AWEP.js";
7
+ import "../../../chunk-6YUDEFCS.js";
8
+ import "../../../chunk-LJCR3ADI.js";
9
9
  import "../../../chunk-WBGKPIFS.js";
10
10
  import "../../../chunk-AJGIY2UB.js";
11
11
 
@@ -62,6 +62,22 @@ var Connection = class {
62
62
  get errorListeners() {
63
63
  return [...this._errorListeners];
64
64
  }
65
+ onData(msg) {
66
+ for (const cb of this.dataListeners) {
67
+ cb(msg);
68
+ }
69
+ }
70
+ onError(err) {
71
+ for (const cb of this.errorListeners) {
72
+ cb(err);
73
+ }
74
+ }
75
+ onClose() {
76
+ for (const cb of this.closeListeners) {
77
+ cb();
78
+ }
79
+ this.telemetry?.span.end();
80
+ }
65
81
  /**
66
82
  * Handle adding a callback for when a message is received.
67
83
  * @param msg The message that was received.
@@ -128,18 +144,12 @@ var WebSocketConnection = class extends Connection {
128
144
  const err = new Error(
129
145
  `websocket closed with code and reason: ${code} - ${reason}`
130
146
  );
131
- for (const cb of this.errorListeners) {
132
- cb(err);
133
- }
134
- }
135
- for (const cb of this.closeListeners) {
136
- cb();
147
+ this.onError(err);
137
148
  }
149
+ this.onClose();
138
150
  };
139
151
  this.ws.onmessage = (msg) => {
140
- for (const cb of this.dataListeners) {
141
- cb(msg.data);
142
- }
152
+ this.onData(msg.data);
143
153
  };
144
154
  }
145
155
  send(payload) {
@@ -511,12 +521,14 @@ var StateMachineState = class {
511
521
  var CommonSession = class extends StateMachineState {
512
522
  from;
513
523
  options;
524
+ tracer;
514
525
  log;
515
- constructor({ from, options, log }) {
526
+ constructor({ from, options, log, tracer }) {
516
527
  super();
517
528
  this.from = from;
518
529
  this.options = options;
519
530
  this.log = log;
531
+ this.tracer = tracer;
520
532
  }
521
533
  parseMsg(msg) {
522
534
  const parsedMsg = this.options.codec.fromBuffer(msg);
@@ -701,14 +713,22 @@ var SessionNoConnection = class extends IdentifiedSessionWithGracePeriod {
701
713
  // tracing/index.ts
702
714
  var import_api2 = require("@opentelemetry/api");
703
715
 
716
+ // transport/stringifyError.ts
717
+ function coerceErrorString(err) {
718
+ if (err instanceof Error) {
719
+ return err.message || "unknown reason";
720
+ }
721
+ return `[coerced to error] ${String(err)}`;
722
+ }
723
+
704
724
  // package.json
705
- var version = "0.203.1";
725
+ var version = "0.204.0";
706
726
 
707
727
  // tracing/index.ts
708
- function createSessionTelemetryInfo(sessionId, to, from, propagationCtx) {
728
+ function createSessionTelemetryInfo(tracer, sessionId, to, from, propagationCtx) {
709
729
  const parentCtx = propagationCtx ? import_api2.propagation.extract(import_api2.context.active(), propagationCtx) : import_api2.context.active();
710
730
  const span = tracer.startSpan(
711
- `session ${sessionId}`,
731
+ `river.session.${sessionId}`,
712
732
  {
713
733
  attributes: {
714
734
  component: "river",
@@ -722,7 +742,7 @@ function createSessionTelemetryInfo(sessionId, to, from, propagationCtx) {
722
742
  const ctx = import_api2.trace.setSpan(parentCtx, span);
723
743
  return { span, ctx };
724
744
  }
725
- function createConnectionTelemetryInfo(connection, info) {
745
+ function createConnectionTelemetryInfo(tracer, connection, info) {
726
746
  const span = tracer.startSpan(
727
747
  `connection ${connection.id}`,
728
748
  {
@@ -737,7 +757,9 @@ function createConnectionTelemetryInfo(connection, info) {
737
757
  const ctx = import_api2.trace.setSpan(info.ctx, span);
738
758
  return { span, ctx };
739
759
  }
740
- var tracer = import_api2.trace.getTracer("river", version);
760
+ function getTracer() {
761
+ return import_api2.trace.getTracer("river", version);
762
+ }
741
763
 
742
764
  // transport/sessionStateMachine/SessionWaitingForHandshake.ts
743
765
  var SessionWaitingForHandshake = class extends CommonSession {
@@ -1023,6 +1045,7 @@ function inheritSharedSession(session) {
1023
1045
  telemetry: session.telemetry,
1024
1046
  options: session.options,
1025
1047
  log: session.log,
1048
+ tracer: session.tracer,
1026
1049
  protocolVersion: session.protocolVersion
1027
1050
  };
1028
1051
  }
@@ -1034,9 +1057,9 @@ function inheritSharedSessionWithGrace(session) {
1034
1057
  }
1035
1058
  var SessionStateGraph = {
1036
1059
  entrypoints: {
1037
- NoConnection: (to, from, listeners, options, protocolVersion, log) => {
1060
+ NoConnection: (to, from, listeners, options, protocolVersion, tracer, log) => {
1038
1061
  const id = `session-${generateId()}`;
1039
- const telemetry = createSessionTelemetryInfo(id, to, from);
1062
+ const telemetry = createSessionTelemetryInfo(tracer, id, to, from);
1040
1063
  const sendBuffer = [];
1041
1064
  const session = new SessionNoConnection({
1042
1065
  listeners,
@@ -1050,6 +1073,7 @@ var SessionStateGraph = {
1050
1073
  telemetry,
1051
1074
  options,
1052
1075
  protocolVersion,
1076
+ tracer,
1053
1077
  log
1054
1078
  });
1055
1079
  session.log?.info(`session ${session.id} created in NoConnection state`, {
@@ -1058,12 +1082,13 @@ var SessionStateGraph = {
1058
1082
  });
1059
1083
  return session;
1060
1084
  },
1061
- WaitingForHandshake: (from, conn, listeners, options, log) => {
1085
+ WaitingForHandshake: (from, conn, listeners, options, tracer, log) => {
1062
1086
  const session = new SessionWaitingForHandshake({
1063
1087
  conn,
1064
1088
  listeners,
1065
1089
  from,
1066
1090
  options,
1091
+ tracer,
1067
1092
  log
1068
1093
  });
1069
1094
  session.log?.info(`session created in WaitingForHandshake state`, {
@@ -1119,7 +1144,11 @@ var SessionStateGraph = {
1119
1144
  listeners,
1120
1145
  ...carriedState
1121
1146
  });
1122
- conn.telemetry = createConnectionTelemetryInfo(conn, session.telemetry);
1147
+ conn.telemetry = createConnectionTelemetryInfo(
1148
+ session.tracer,
1149
+ conn,
1150
+ session.telemetry
1151
+ );
1123
1152
  session.log?.info(
1124
1153
  `session ${session.id} transition from Connecting to Handshaking`,
1125
1154
  {
@@ -1163,12 +1192,14 @@ var SessionStateGraph = {
1163
1192
  ack: 0,
1164
1193
  sendBuffer: [],
1165
1194
  telemetry: createSessionTelemetryInfo(
1195
+ pendingSession.tracer,
1166
1196
  sessionId,
1167
1197
  to,
1168
1198
  from,
1169
1199
  propagationCtx
1170
1200
  ),
1171
1201
  options,
1202
+ tracer: pendingSession.tracer,
1172
1203
  log: pendingSession.log,
1173
1204
  protocolVersion
1174
1205
  }
@@ -1180,7 +1211,11 @@ var SessionStateGraph = {
1180
1211
  listeners,
1181
1212
  ...carriedState
1182
1213
  });
1183
- conn.telemetry = createConnectionTelemetryInfo(conn, session.telemetry);
1214
+ conn.telemetry = createConnectionTelemetryInfo(
1215
+ session.tracer,
1216
+ conn,
1217
+ session.telemetry
1218
+ );
1184
1219
  session.log?.info(
1185
1220
  `session ${session.id} transition from WaitingForHandshake to Connected`,
1186
1221
  {
@@ -1325,6 +1360,7 @@ var Transport = class {
1325
1360
  */
1326
1361
  options;
1327
1362
  log;
1363
+ tracer;
1328
1364
  sessions;
1329
1365
  /**
1330
1366
  * Creates a new Transport instance.
@@ -1337,6 +1373,7 @@ var Transport = class {
1337
1373
  this.clientId = clientId;
1338
1374
  this.status = "open";
1339
1375
  this.sessions = /* @__PURE__ */ new Map();
1376
+ this.tracer = getTracer();
1340
1377
  }
1341
1378
  bindLogger(fn, level) {
1342
1379
  if (typeof fn === "function") {
@@ -1519,14 +1556,6 @@ var Transport = class {
1519
1556
  }
1520
1557
  };
1521
1558
 
1522
- // transport/stringifyError.ts
1523
- function coerceErrorString(err) {
1524
- if (err instanceof Error) {
1525
- return err.message || "unknown reason";
1526
- }
1527
- return `[coerced to error] ${String(err)}`;
1528
- }
1529
-
1530
1559
  // transport/server.ts
1531
1560
  var import_value2 = require("@sinclair/typebox/value");
1532
1561
  var ServerTransport = class extends Transport {
@@ -1631,6 +1660,7 @@ var ServerTransport = class extends Transport {
1631
1660
  }
1632
1661
  },
1633
1662
  this.options,
1663
+ this.tracer,
1634
1664
  this.log
1635
1665
  );
1636
1666
  this.pendingSessions.add(pendingSession);