@replit/river 0.23.6 → 0.23.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.
Files changed (66) hide show
  1. package/README.md +10 -3
  2. package/dist/{chunk-GX2YS7BY.js → chunk-6LCL2ZZF.js} +17 -31
  3. package/dist/chunk-6LCL2ZZF.js.map +1 -0
  4. package/dist/{chunk-ZFN6I2GJ.js → chunk-CBNCT4B3.js} +2 -3
  5. package/dist/chunk-CBNCT4B3.js.map +1 -0
  6. package/dist/{chunk-NJJYBNYM.js → chunk-DXTG3E3B.js} +2 -2
  7. package/dist/{chunk-2PSMEETT.js → chunk-ELZRZNA5.js} +24 -11
  8. package/dist/{chunk-2PSMEETT.js.map → chunk-ELZRZNA5.js.map} +1 -1
  9. package/dist/{chunk-NB3OHLXB.js → chunk-RJ6CXPBM.js} +165 -101
  10. package/dist/chunk-RJ6CXPBM.js.map +1 -0
  11. package/dist/{chunk-7E53HHNS.js → chunk-WQRQFAP6.js} +33 -31
  12. package/dist/chunk-WQRQFAP6.js.map +1 -0
  13. package/dist/{connection-e257f6b7.d.ts → connection-6ce35bd5.d.ts} +1 -1
  14. package/dist/{connection-5331d77f.d.ts → connection-a3fdfa3a.d.ts} +1 -1
  15. package/dist/{index-926aea33.d.ts → index-60f03cb7.d.ts} +5 -2
  16. package/dist/logging/index.cjs +6 -73
  17. package/dist/logging/index.cjs.map +1 -1
  18. package/dist/logging/index.d.cts +1 -1
  19. package/dist/logging/index.d.ts +1 -1
  20. package/dist/logging/index.js +1 -3
  21. package/dist/router/index.cjs +47 -33
  22. package/dist/router/index.cjs.map +1 -1
  23. package/dist/router/index.d.cts +6 -6
  24. package/dist/router/index.d.ts +6 -6
  25. package/dist/router/index.js +2 -3
  26. package/dist/{services-3f99f5d2.d.ts → services-fd8a9894.d.ts} +2 -2
  27. package/dist/transport/impls/uds/client.cjs +195 -81
  28. package/dist/transport/impls/uds/client.cjs.map +1 -1
  29. package/dist/transport/impls/uds/client.d.cts +3 -3
  30. package/dist/transport/impls/uds/client.d.ts +3 -3
  31. package/dist/transport/impls/uds/client.js +5 -7
  32. package/dist/transport/impls/uds/client.js.map +1 -1
  33. package/dist/transport/impls/uds/server.cjs +170 -73
  34. package/dist/transport/impls/uds/server.cjs.map +1 -1
  35. package/dist/transport/impls/uds/server.d.cts +3 -3
  36. package/dist/transport/impls/uds/server.d.ts +3 -3
  37. package/dist/transport/impls/uds/server.js +4 -4
  38. package/dist/transport/impls/ws/client.cjs +194 -81
  39. package/dist/transport/impls/ws/client.cjs.map +1 -1
  40. package/dist/transport/impls/ws/client.d.cts +3 -3
  41. package/dist/transport/impls/ws/client.d.ts +3 -3
  42. package/dist/transport/impls/ws/client.js +6 -8
  43. package/dist/transport/impls/ws/client.js.map +1 -1
  44. package/dist/transport/impls/ws/server.cjs +170 -74
  45. package/dist/transport/impls/ws/server.cjs.map +1 -1
  46. package/dist/transport/impls/ws/server.d.cts +3 -3
  47. package/dist/transport/impls/ws/server.d.ts +3 -3
  48. package/dist/transport/impls/ws/server.js +4 -4
  49. package/dist/transport/index.cjs +219 -105
  50. package/dist/transport/index.cjs.map +1 -1
  51. package/dist/transport/index.d.cts +2 -2
  52. package/dist/transport/index.d.ts +2 -2
  53. package/dist/transport/index.js +3 -3
  54. package/dist/{transport-cbe70659.d.ts → transport-3d34f714.d.ts} +11 -6
  55. package/dist/util/testHelpers.cjs +27 -18
  56. package/dist/util/testHelpers.cjs.map +1 -1
  57. package/dist/util/testHelpers.d.cts +5 -4
  58. package/dist/util/testHelpers.d.ts +5 -4
  59. package/dist/util/testHelpers.js +5 -4
  60. package/dist/util/testHelpers.js.map +1 -1
  61. package/package.json +5 -3
  62. package/dist/chunk-7E53HHNS.js.map +0 -1
  63. package/dist/chunk-GX2YS7BY.js.map +0 -1
  64. package/dist/chunk-NB3OHLXB.js.map +0 -1
  65. package/dist/chunk-ZFN6I2GJ.js.map +0 -1
  66. /package/dist/{chunk-NJJYBNYM.js.map → chunk-DXTG3E3B.js.map} +0 -0
@@ -705,14 +705,11 @@ function Err(error) {
705
705
  };
706
706
  }
707
707
 
708
- // logging/log.ts
709
- var log = void 0;
710
-
711
708
  // tracing/index.ts
712
709
  var import_api = require("@opentelemetry/api");
713
710
 
714
711
  // package.json
715
- var version = "0.23.6";
712
+ var version = "0.23.8";
716
713
 
717
714
  // tracing/index.ts
718
715
  function getPropagationContext(ctx) {
@@ -723,8 +720,8 @@ function getPropagationContext(ctx) {
723
720
  import_api.propagation.inject(ctx, tracing);
724
721
  return tracing;
725
722
  }
726
- function createProcTelemetryInfo(kind, serviceName, procedureName, streamId) {
727
- const ctx = import_api.context.active();
723
+ function createProcTelemetryInfo(transport, kind, serviceName, procedureName, streamId) {
724
+ const baseCtx = import_api.context.active();
728
725
  const span = tracer.startSpan(
729
726
  `procedure call ${serviceName}.${procedureName}`,
730
727
  {
@@ -738,8 +735,20 @@ function createProcTelemetryInfo(kind, serviceName, procedureName, streamId) {
738
735
  },
739
736
  kind: import_api.SpanKind.CLIENT
740
737
  },
741
- ctx
738
+ baseCtx
742
739
  );
740
+ const ctx = import_api.trace.setSpan(baseCtx, span);
741
+ transport.log?.info(`invoked ${serviceName}.${procedureName}`, {
742
+ clientId: transport.clientId,
743
+ transportMessage: {
744
+ procedureName,
745
+ serviceName
746
+ },
747
+ telemetry: {
748
+ traceId: span.spanContext().traceId,
749
+ spanId: span.spanContext().spanId
750
+ }
751
+ });
743
752
  return { span, ctx };
744
753
  }
745
754
  function createHandlerSpan(kind, message, fn) {
@@ -804,13 +813,6 @@ function createClient(transport, serverId, providedClientOptions = {}) {
804
813
  );
805
814
  }
806
815
  const [input] = opts.args;
807
- log?.info(`invoked ${procType} ${serviceName}.${procName}`, {
808
- clientId: transport.clientId,
809
- transportMessage: {
810
- procedureName: procName,
811
- serviceName
812
- }
813
- });
814
816
  if (options.connectOnInvoke && !transport.connections.has(serverId)) {
815
817
  void transport.connect(serverId);
816
818
  }
@@ -837,6 +839,7 @@ function createSessionDisconnectHandler(from, cb) {
837
839
  function handleRpc(transport, serverId, input, serviceName, procedureName) {
838
840
  const streamId = (0, import_nanoid2.nanoid)();
839
841
  const { span, ctx } = createProcTelemetryInfo(
842
+ transport,
840
843
  "rpc",
841
844
  serviceName,
842
845
  procedureName,
@@ -881,6 +884,7 @@ function handleRpc(transport, serverId, input, serviceName, procedureName) {
881
884
  function handleStream(transport, serverId, init, serviceName, procedureName) {
882
885
  const streamId = (0, import_nanoid2.nanoid)();
883
886
  const { span, ctx } = createProcTelemetryInfo(
887
+ transport,
884
888
  "stream",
885
889
  serviceName,
886
890
  procedureName,
@@ -957,6 +961,7 @@ function handleStream(transport, serverId, init, serviceName, procedureName) {
957
961
  function handleSubscribe(transport, serverId, input, serviceName, procedureName) {
958
962
  const streamId = (0, import_nanoid2.nanoid)();
959
963
  const { span, ctx } = createProcTelemetryInfo(
964
+ transport,
960
965
  "subscription",
961
966
  serviceName,
962
967
  procedureName,
@@ -1012,6 +1017,7 @@ function handleSubscribe(transport, serverId, input, serviceName, procedureName)
1012
1017
  function handleUpload(transport, serverId, init, serviceName, procedureName) {
1013
1018
  const streamId = (0, import_nanoid2.nanoid)();
1014
1019
  const { span, ctx } = createProcTelemetryInfo(
1020
+ transport,
1015
1021
  "upload",
1016
1022
  serviceName,
1017
1023
  procedureName,
@@ -1105,6 +1111,7 @@ var RiverServer = class {
1105
1111
  // map of client to their open streams by streamId
1106
1112
  clientStreams;
1107
1113
  disconnectedSessions;
1114
+ log;
1108
1115
  constructor(transport, services, handshakeOptions, extendedContext) {
1109
1116
  const instances = {};
1110
1117
  this.services = instances;
@@ -1126,16 +1133,20 @@ var RiverServer = class {
1126
1133
  this.clientStreams = /* @__PURE__ */ new Map();
1127
1134
  this.transport.addEventListener("message", this.onMessage);
1128
1135
  this.transport.addEventListener("sessionStatus", this.onSessionStatus);
1136
+ this.log = transport.log;
1129
1137
  }
1130
1138
  get streams() {
1131
1139
  return this.streamMap;
1132
1140
  }
1133
1141
  onMessage = async (message) => {
1134
1142
  if (message.to !== this.transport.clientId) {
1135
- log?.info(`got msg with destination that isn't this server, ignoring`, {
1136
- clientId: this.transport.clientId,
1137
- transportMessage: message
1138
- });
1143
+ this.log?.info(
1144
+ `got msg with destination that isn't this server, ignoring`,
1145
+ {
1146
+ clientId: this.transport.clientId,
1147
+ transportMessage: message
1148
+ }
1149
+ );
1139
1150
  return;
1140
1151
  }
1141
1152
  let procStream = this.streamMap.get(message.streamId);
@@ -1151,7 +1162,7 @@ var RiverServer = class {
1151
1162
  if (evt.status !== "disconnect")
1152
1163
  return;
1153
1164
  const disconnectedClientId = evt.session.to;
1154
- log?.info(
1165
+ this.log?.info(
1155
1166
  `got session disconnect from ${disconnectedClientId}, cleaning up streams`,
1156
1167
  evt.session.loggingMetadata
1157
1168
  );
@@ -1180,7 +1191,7 @@ var RiverServer = class {
1180
1191
  }
1181
1192
  createNewProcStream(message) {
1182
1193
  if (!isStreamOpen(message.controlFlags)) {
1183
- log?.error(
1194
+ this.log?.error(
1184
1195
  `can't create a new procedure stream from a message that doesn't have the stream open bit set`,
1185
1196
  {
1186
1197
  clientId: this.transport.clientId,
@@ -1191,14 +1202,17 @@ var RiverServer = class {
1191
1202
  return;
1192
1203
  }
1193
1204
  if (!message.procedureName || !message.serviceName) {
1194
- log?.warn(`missing procedure or service name in stream open message`, {
1195
- clientId: this.transport.clientId,
1196
- transportMessage: message
1197
- });
1205
+ this.log?.warn(
1206
+ `missing procedure or service name in stream open message`,
1207
+ {
1208
+ clientId: this.transport.clientId,
1209
+ transportMessage: message
1210
+ }
1211
+ );
1198
1212
  return;
1199
1213
  }
1200
1214
  if (!(message.serviceName in this.services)) {
1201
- log?.warn(`couldn't find service ${message.serviceName}`, {
1215
+ this.log?.warn(`couldn't find service ${message.serviceName}`, {
1202
1216
  clientId: this.transport.clientId,
1203
1217
  transportMessage: message
1204
1218
  });
@@ -1207,7 +1221,7 @@ var RiverServer = class {
1207
1221
  const service = this.services[message.serviceName];
1208
1222
  const serviceContext = this.getContext(service, message.serviceName);
1209
1223
  if (!(message.procedureName in service.procedures)) {
1210
- log?.warn(
1224
+ this.log?.warn(
1211
1225
  `couldn't find a matching procedure for ${message.serviceName}.${message.procedureName}`,
1212
1226
  {
1213
1227
  clientId: this.transport.clientId,
@@ -1218,7 +1232,7 @@ var RiverServer = class {
1218
1232
  }
1219
1233
  const session = this.transport.sessions.get(message.from);
1220
1234
  if (!session) {
1221
- log?.warn(`couldn't find session for ${message.from}`, {
1235
+ this.log?.warn(`couldn't find session for ${message.from}`, {
1222
1236
  clientId: this.transport.clientId,
1223
1237
  transportMessage: message
1224
1238
  });
@@ -1263,7 +1277,7 @@ var RiverServer = class {
1263
1277
  );
1264
1278
  const errorHandler = (err, span) => {
1265
1279
  const errorMsg = coerceErrorString(err);
1266
- log?.error(
1280
+ this.log?.error(
1267
1281
  `procedure ${message.serviceName}.${message.procedureName} threw an uncaught error: ${errorMsg}`,
1268
1282
  session.loggingMetadata
1269
1283
  );
@@ -1278,7 +1292,7 @@ var RiverServer = class {
1278
1292
  };
1279
1293
  const sessionMeta = this.transport.sessionHandshakeMetadata.get(session);
1280
1294
  if (!sessionMeta) {
1281
- log?.error(`session doesn't have handshake metadata`, {
1295
+ this.log?.error(`session doesn't have handshake metadata`, {
1282
1296
  ...session.loggingMetadata,
1283
1297
  tags: ["invariant-violation"]
1284
1298
  });
@@ -1443,7 +1457,7 @@ var RiverServer = class {
1443
1457
  }
1444
1458
  break;
1445
1459
  default:
1446
- log?.warn(
1460
+ this.log?.warn(
1447
1461
  `got request for invalid procedure type ${procedure.type} at ${message.serviceName}.${message.procedureName}`,
1448
1462
  { ...session.loggingMetadata, transportMessage: message }
1449
1463
  );
@@ -1471,7 +1485,7 @@ var RiverServer = class {
1471
1485
  if (import_value.Value.Check(procedure.init, message.payload)) {
1472
1486
  procStream.incoming.push(message.payload);
1473
1487
  } else {
1474
- log?.error(
1488
+ this.log?.error(
1475
1489
  `procedure ${serviceName}.${procedureName} received invalid init payload`,
1476
1490
  {
1477
1491
  clientId: this.transport.clientId,
@@ -1485,7 +1499,7 @@ var RiverServer = class {
1485
1499
  } else if (import_value.Value.Check(procedure.input, message.payload)) {
1486
1500
  procStream.incoming.push(message.payload);
1487
1501
  } else if (!import_value.Value.Check(ControlMessagePayloadSchema, message.payload)) {
1488
- log?.error(
1502
+ this.log?.error(
1489
1503
  `procedure ${serviceName}.${procedureName} received invalid payload`,
1490
1504
  {
1491
1505
  clientId: this.transport.clientId,
@@ -1509,7 +1523,7 @@ var RiverServer = class {
1509
1523
  const context2 = this.contextMap.get(service);
1510
1524
  if (!context2) {
1511
1525
  const err = `no context found for ${serviceName}`;
1512
- log?.error(err, {
1526
+ this.log?.error(err, {
1513
1527
  clientId: this.transport.clientId,
1514
1528
  tags: ["invariant-violation"]
1515
1529
  });