@replit/river 0.203.0 → 0.203.1

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 (36) hide show
  1. package/dist/{chunk-XBPEUVWN.js → chunk-2FHJVQBE.js} +2 -2
  2. package/dist/{chunk-D5EIDBUT.js → chunk-7MKTFUJO.js} +3 -3
  3. package/dist/{chunk-SZHNMLKC.js → chunk-AK7NTFAM.js} +31 -10
  4. package/dist/{chunk-SZHNMLKC.js.map → chunk-AK7NTFAM.js.map} +1 -1
  5. package/dist/{chunk-DGT3MPD4.js → chunk-T4WWG42M.js} +3 -3
  6. package/dist/{chunk-FG22HHCY.js → chunk-TMOCPK63.js} +9 -6
  7. package/dist/chunk-TMOCPK63.js.map +1 -0
  8. package/dist/{chunk-LHH5LQ7C.js → chunk-WBGKPIFS.js} +11 -1
  9. package/dist/chunk-WBGKPIFS.js.map +1 -0
  10. package/dist/logging/index.cjs +1 -0
  11. package/dist/logging/index.cjs.map +1 -1
  12. package/dist/logging/index.js +1 -1
  13. package/dist/router/index.cjs +90 -103
  14. package/dist/router/index.cjs.map +1 -1
  15. package/dist/router/index.d.cts +1 -1
  16. package/dist/router/index.d.ts +1 -1
  17. package/dist/router/index.js +77 -95
  18. package/dist/router/index.js.map +1 -1
  19. package/dist/testUtil/index.cjs +36 -9
  20. package/dist/testUtil/index.cjs.map +1 -1
  21. package/dist/testUtil/index.js +5 -5
  22. package/dist/transport/impls/ws/client.cjs +41 -14
  23. package/dist/transport/impls/ws/client.cjs.map +1 -1
  24. package/dist/transport/impls/ws/client.js +5 -5
  25. package/dist/transport/impls/ws/server.cjs +39 -12
  26. package/dist/transport/impls/ws/server.cjs.map +1 -1
  27. package/dist/transport/impls/ws/server.js +5 -5
  28. package/dist/transport/index.cjs +43 -16
  29. package/dist/transport/index.cjs.map +1 -1
  30. package/dist/transport/index.js +5 -5
  31. package/package.json +2 -2
  32. package/dist/chunk-FG22HHCY.js.map +0 -1
  33. package/dist/chunk-LHH5LQ7C.js.map +0 -1
  34. /package/dist/{chunk-XBPEUVWN.js.map → chunk-2FHJVQBE.js.map} +0 -0
  35. /package/dist/{chunk-D5EIDBUT.js.map → chunk-7MKTFUJO.js.map} +0 -0
  36. /package/dist/{chunk-DGT3MPD4.js.map → chunk-T4WWG42M.js.map} +0 -0
@@ -56,6 +56,6 @@ declare function createServer<Services extends AnyServiceSchemaMap>(transport: S
56
56
  maxCancelledStreamTombstonesPerSession?: number;
57
57
  }>): Server<Services>;
58
58
 
59
- var version = "0.203.0";
59
+ var version = "0.203.1";
60
60
 
61
61
  export { ParsedMetadata, version as RIVER_VERSION, Server, ServiceContext, createServer };
@@ -56,6 +56,6 @@ declare function createServer<Services extends AnyServiceSchemaMap>(transport: S
56
56
  maxCancelledStreamTombstonesPerSession?: number;
57
57
  }>): Server<Services>;
58
58
 
59
- var version = "0.203.0";
59
+ var version = "0.203.1";
60
60
 
61
61
  export { ParsedMetadata, version as RIVER_VERSION, Server, ServiceContext, createServer };
@@ -12,7 +12,7 @@ import {
12
12
  isStreamClose,
13
13
  isStreamOpen,
14
14
  version
15
- } from "../chunk-SZHNMLKC.js";
15
+ } from "../chunk-AK7NTFAM.js";
16
16
 
17
17
  // router/services.ts
18
18
  import { Type as Type2, Kind as Kind2 } from "@sinclair/typebox";
@@ -725,7 +725,7 @@ function handleProc(procType, transport, serverId, init, serviceName, procedureN
725
725
  const procClosesWithInit = procType === "rpc" || procType === "subscription";
726
726
  const streamId = generateId();
727
727
  const { span, ctx } = createProcTelemetryInfo(
728
- transport,
728
+ session,
729
729
  procType,
730
730
  serviceName,
731
731
  procedureName,
@@ -1000,10 +1000,17 @@ var RiverServer = class {
1000
1000
  if (!newStreamProps) {
1001
1001
  return;
1002
1002
  }
1003
- this.createNewProcStream({
1004
- ...newStreamProps,
1005
- ...message
1006
- });
1003
+ createHandlerSpan(
1004
+ newStreamProps.initialSession,
1005
+ newStreamProps.procedure.type,
1006
+ newStreamProps.serviceName,
1007
+ newStreamProps.procedureName,
1008
+ newStreamProps.streamId,
1009
+ newStreamProps.tracingCtx,
1010
+ (span) => {
1011
+ this.createNewProcStream(span, newStreamProps);
1012
+ }
1013
+ );
1007
1014
  };
1008
1015
  const handleSessionStatus = (evt) => {
1009
1016
  if (evt.status !== "disconnect")
@@ -1037,7 +1044,7 @@ var RiverServer = class {
1037
1044
  this.transport.addEventListener("sessionStatus", handleSessionStatus);
1038
1045
  this.transport.addEventListener("transportStatus", handleTransportStatus);
1039
1046
  }
1040
- createNewProcStream(props) {
1047
+ createNewProcStream(span, props) {
1041
1048
  const {
1042
1049
  streamId,
1043
1050
  initialSession,
@@ -1047,7 +1054,6 @@ var RiverServer = class {
1047
1054
  sessionMetadata,
1048
1055
  serviceContext,
1049
1056
  initPayload,
1050
- tracingCtx,
1051
1057
  procClosesWithInit,
1052
1058
  passInitAsDataForBackwardsCompat
1053
1059
  } = props;
@@ -1057,6 +1063,10 @@ var RiverServer = class {
1057
1063
  protocolVersion,
1058
1064
  id: sessionId
1059
1065
  } = initialSession;
1066
+ loggingMetadata.telemetry = {
1067
+ traceId: span.spanContext().traceId,
1068
+ spanId: span.spanContext().spanId
1069
+ };
1060
1070
  let cleanClose = true;
1061
1071
  const onMessage = (msg) => {
1062
1072
  if (msg.from !== from) {
@@ -1229,10 +1239,10 @@ var RiverServer = class {
1229
1239
  }
1230
1240
  }
1231
1241
  });
1232
- const onHandlerError = (err, span) => {
1242
+ const onHandlerError = (err, span2) => {
1233
1243
  const errorMsg = coerceErrorString(err);
1234
- span.recordException(err instanceof Error ? err : new Error(errorMsg));
1235
- span.setStatus({ code: SpanStatusCode.ERROR });
1244
+ span2.recordException(err instanceof Error ? err : new Error(errorMsg));
1245
+ span2.setStatus({ code: SpanStatusCode.ERROR });
1236
1246
  this.log?.error(
1237
1247
  `${serviceName}.${procedureName} handler threw an uncaught error`,
1238
1248
  {
@@ -1256,12 +1266,12 @@ var RiverServer = class {
1256
1266
  if (procClosesWithInit) {
1257
1267
  closeReadable();
1258
1268
  }
1259
- const handlerContextWithSpan = (span) => ({
1269
+ const handlerContextWithSpan = (span2) => ({
1260
1270
  ...serviceContext,
1261
1271
  from,
1262
1272
  sessionId,
1263
1273
  metadata: sessionMetadata,
1264
- span,
1274
+ span: span2,
1265
1275
  cancel: () => {
1266
1276
  onServerCancel({
1267
1277
  code: CANCEL_CODE,
@@ -1272,100 +1282,72 @@ var RiverServer = class {
1272
1282
  });
1273
1283
  switch (procedure.type) {
1274
1284
  case "rpc":
1275
- void createHandlerSpan(
1276
- procedure.type,
1277
- serviceName,
1278
- procedureName,
1279
- streamId,
1280
- tracingCtx,
1281
- async (span) => {
1282
- try {
1283
- const responsePayload = await procedure.handler({
1284
- ctx: handlerContextWithSpan(span),
1285
- reqInit: initPayload
1286
- });
1287
- if (resWritable.isClosed()) {
1288
- return;
1289
- }
1290
- resWritable.write(responsePayload);
1291
- } catch (err) {
1292
- onHandlerError(err, span);
1293
- } finally {
1294
- span.end();
1285
+ void (async () => {
1286
+ try {
1287
+ const responsePayload = await procedure.handler({
1288
+ ctx: handlerContextWithSpan(span),
1289
+ reqInit: initPayload
1290
+ });
1291
+ if (resWritable.isClosed()) {
1292
+ return;
1295
1293
  }
1294
+ resWritable.write(responsePayload);
1295
+ } catch (err) {
1296
+ onHandlerError(err, span);
1297
+ } finally {
1298
+ span.end();
1296
1299
  }
1297
- );
1300
+ })();
1298
1301
  break;
1299
1302
  case "stream":
1300
- void createHandlerSpan(
1301
- procedure.type,
1302
- serviceName,
1303
- procedureName,
1304
- streamId,
1305
- tracingCtx,
1306
- async (span) => {
1307
- try {
1308
- await procedure.handler({
1309
- ctx: handlerContextWithSpan(span),
1310
- reqInit: initPayload,
1311
- reqReadable,
1312
- resWritable
1313
- });
1314
- } catch (err) {
1315
- onHandlerError(err, span);
1316
- } finally {
1317
- span.end();
1318
- }
1303
+ void (async () => {
1304
+ try {
1305
+ await procedure.handler({
1306
+ ctx: handlerContextWithSpan(span),
1307
+ reqInit: initPayload,
1308
+ reqReadable,
1309
+ resWritable
1310
+ });
1311
+ } catch (err) {
1312
+ onHandlerError(err, span);
1313
+ } finally {
1314
+ span.end();
1319
1315
  }
1320
- );
1316
+ })();
1321
1317
  break;
1322
1318
  case "subscription":
1323
- void createHandlerSpan(
1324
- procedure.type,
1325
- serviceName,
1326
- procedureName,
1327
- streamId,
1328
- tracingCtx,
1329
- async (span) => {
1330
- try {
1331
- await procedure.handler({
1332
- ctx: handlerContextWithSpan(span),
1333
- reqInit: initPayload,
1334
- resWritable
1335
- });
1336
- } catch (err) {
1337
- onHandlerError(err, span);
1338
- } finally {
1339
- span.end();
1340
- }
1319
+ void (async () => {
1320
+ try {
1321
+ await procedure.handler({
1322
+ ctx: handlerContextWithSpan(span),
1323
+ reqInit: initPayload,
1324
+ resWritable
1325
+ });
1326
+ } catch (err) {
1327
+ onHandlerError(err, span);
1328
+ } finally {
1329
+ span.end();
1341
1330
  }
1342
- );
1331
+ })();
1343
1332
  break;
1344
1333
  case "upload":
1345
- void createHandlerSpan(
1346
- procedure.type,
1347
- serviceName,
1348
- procedureName,
1349
- streamId,
1350
- tracingCtx,
1351
- async (span) => {
1352
- try {
1353
- const responsePayload = await procedure.handler({
1354
- ctx: handlerContextWithSpan(span),
1355
- reqInit: initPayload,
1356
- reqReadable
1357
- });
1358
- if (resWritable.isClosed()) {
1359
- return;
1360
- }
1361
- resWritable.write(responsePayload);
1362
- } catch (err) {
1363
- onHandlerError(err, span);
1364
- } finally {
1365
- span.end();
1334
+ void (async () => {
1335
+ try {
1336
+ const responsePayload = await procedure.handler({
1337
+ ctx: handlerContextWithSpan(span),
1338
+ reqInit: initPayload,
1339
+ reqReadable
1340
+ });
1341
+ if (resWritable.isClosed()) {
1342
+ return;
1366
1343
  }
1344
+ resWritable.write(responsePayload);
1345
+ } catch (err) {
1346
+ onHandlerError(err, span);
1347
+ } finally {
1348
+ span.end();
1367
1349
  }
1368
- );
1350
+ })();
1369
1351
  break;
1370
1352
  }
1371
1353
  if (!finishedController.signal.aborted) {