@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.
- package/dist/{chunk-XBPEUVWN.js → chunk-2FHJVQBE.js} +2 -2
- package/dist/{chunk-D5EIDBUT.js → chunk-7MKTFUJO.js} +3 -3
- package/dist/{chunk-SZHNMLKC.js → chunk-AK7NTFAM.js} +31 -10
- package/dist/{chunk-SZHNMLKC.js.map → chunk-AK7NTFAM.js.map} +1 -1
- package/dist/{chunk-DGT3MPD4.js → chunk-T4WWG42M.js} +3 -3
- package/dist/{chunk-FG22HHCY.js → chunk-TMOCPK63.js} +9 -6
- package/dist/chunk-TMOCPK63.js.map +1 -0
- package/dist/{chunk-LHH5LQ7C.js → chunk-WBGKPIFS.js} +11 -1
- package/dist/chunk-WBGKPIFS.js.map +1 -0
- package/dist/logging/index.cjs +1 -0
- package/dist/logging/index.cjs.map +1 -1
- package/dist/logging/index.js +1 -1
- package/dist/router/index.cjs +90 -103
- package/dist/router/index.cjs.map +1 -1
- package/dist/router/index.d.cts +1 -1
- package/dist/router/index.d.ts +1 -1
- package/dist/router/index.js +77 -95
- package/dist/router/index.js.map +1 -1
- package/dist/testUtil/index.cjs +36 -9
- package/dist/testUtil/index.cjs.map +1 -1
- package/dist/testUtil/index.js +5 -5
- package/dist/transport/impls/ws/client.cjs +41 -14
- package/dist/transport/impls/ws/client.cjs.map +1 -1
- package/dist/transport/impls/ws/client.js +5 -5
- package/dist/transport/impls/ws/server.cjs +39 -12
- package/dist/transport/impls/ws/server.cjs.map +1 -1
- package/dist/transport/impls/ws/server.js +5 -5
- package/dist/transport/index.cjs +43 -16
- package/dist/transport/index.cjs.map +1 -1
- package/dist/transport/index.js +5 -5
- package/package.json +2 -2
- package/dist/chunk-FG22HHCY.js.map +0 -1
- package/dist/chunk-LHH5LQ7C.js.map +0 -1
- /package/dist/{chunk-XBPEUVWN.js.map → chunk-2FHJVQBE.js.map} +0 -0
- /package/dist/{chunk-D5EIDBUT.js.map → chunk-7MKTFUJO.js.map} +0 -0
- /package/dist/{chunk-DGT3MPD4.js.map → chunk-T4WWG42M.js.map} +0 -0
package/dist/router/index.cjs
CHANGED
|
@@ -611,7 +611,7 @@ function unwrapOrThrow(result) {
|
|
|
611
611
|
var import_api = require("@opentelemetry/api");
|
|
612
612
|
|
|
613
613
|
// package.json
|
|
614
|
-
var version = "0.203.
|
|
614
|
+
var version = "0.203.1";
|
|
615
615
|
|
|
616
616
|
// tracing/index.ts
|
|
617
617
|
function getPropagationContext(ctx) {
|
|
@@ -622,7 +622,7 @@ function getPropagationContext(ctx) {
|
|
|
622
622
|
import_api.propagation.inject(ctx, tracing);
|
|
623
623
|
return tracing;
|
|
624
624
|
}
|
|
625
|
-
function createProcTelemetryInfo(
|
|
625
|
+
function createProcTelemetryInfo(session, kind, serviceName, procedureName, streamId) {
|
|
626
626
|
const baseCtx = import_api.context.active();
|
|
627
627
|
const span = tracer.startSpan(
|
|
628
628
|
`procedure call ${serviceName}.${procedureName}`,
|
|
@@ -635,25 +635,29 @@ function createProcTelemetryInfo(transport, kind, serviceName, procedureName, st
|
|
|
635
635
|
"river.streamId": streamId,
|
|
636
636
|
"span.kind": "client"
|
|
637
637
|
},
|
|
638
|
+
links: [{ context: session.telemetry.span.spanContext() }],
|
|
638
639
|
kind: import_api.SpanKind.CLIENT
|
|
639
640
|
},
|
|
640
641
|
baseCtx
|
|
641
642
|
);
|
|
642
643
|
const ctx = import_api.trace.setSpan(baseCtx, span);
|
|
643
|
-
|
|
644
|
-
|
|
644
|
+
const metadata = {
|
|
645
|
+
...session.loggingMetadata,
|
|
645
646
|
transportMessage: {
|
|
646
647
|
procedureName,
|
|
647
648
|
serviceName
|
|
648
|
-
}
|
|
649
|
-
|
|
649
|
+
}
|
|
650
|
+
};
|
|
651
|
+
if (span.isRecording()) {
|
|
652
|
+
metadata.telemetry = {
|
|
650
653
|
traceId: span.spanContext().traceId,
|
|
651
654
|
spanId: span.spanContext().spanId
|
|
652
|
-
}
|
|
653
|
-
}
|
|
655
|
+
};
|
|
656
|
+
}
|
|
657
|
+
session.log?.info(`invoked ${serviceName}.${procedureName}`, metadata);
|
|
654
658
|
return { span, ctx };
|
|
655
659
|
}
|
|
656
|
-
function createHandlerSpan(kind, serviceName, procedureName, streamId, tracing, fn) {
|
|
660
|
+
function createHandlerSpan(session, kind, serviceName, procedureName, streamId, tracing, fn) {
|
|
657
661
|
const ctx = tracing ? import_api.propagation.extract(import_api.context.active(), tracing) : import_api.context.active();
|
|
658
662
|
return tracer.startActiveSpan(
|
|
659
663
|
`procedure handler ${serviceName}.${procedureName}`,
|
|
@@ -666,6 +670,7 @@ function createHandlerSpan(kind, serviceName, procedureName, streamId, tracing,
|
|
|
666
670
|
"river.streamId": streamId,
|
|
667
671
|
"span.kind": "server"
|
|
668
672
|
},
|
|
673
|
+
links: [{ context: session.telemetry.span.spanContext() }],
|
|
669
674
|
kind: import_api.SpanKind.SERVER
|
|
670
675
|
},
|
|
671
676
|
ctx,
|
|
@@ -947,7 +952,7 @@ function handleProc(procType, transport, serverId, init, serviceName, procedureN
|
|
|
947
952
|
const procClosesWithInit = procType === "rpc" || procType === "subscription";
|
|
948
953
|
const streamId = generateId();
|
|
949
954
|
const { span, ctx } = createProcTelemetryInfo(
|
|
950
|
-
|
|
955
|
+
session,
|
|
951
956
|
procType,
|
|
952
957
|
serviceName,
|
|
953
958
|
procedureName,
|
|
@@ -1232,10 +1237,17 @@ var RiverServer = class {
|
|
|
1232
1237
|
if (!newStreamProps) {
|
|
1233
1238
|
return;
|
|
1234
1239
|
}
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1240
|
+
createHandlerSpan(
|
|
1241
|
+
newStreamProps.initialSession,
|
|
1242
|
+
newStreamProps.procedure.type,
|
|
1243
|
+
newStreamProps.serviceName,
|
|
1244
|
+
newStreamProps.procedureName,
|
|
1245
|
+
newStreamProps.streamId,
|
|
1246
|
+
newStreamProps.tracingCtx,
|
|
1247
|
+
(span) => {
|
|
1248
|
+
this.createNewProcStream(span, newStreamProps);
|
|
1249
|
+
}
|
|
1250
|
+
);
|
|
1239
1251
|
};
|
|
1240
1252
|
const handleSessionStatus = (evt) => {
|
|
1241
1253
|
if (evt.status !== "disconnect")
|
|
@@ -1269,7 +1281,7 @@ var RiverServer = class {
|
|
|
1269
1281
|
this.transport.addEventListener("sessionStatus", handleSessionStatus);
|
|
1270
1282
|
this.transport.addEventListener("transportStatus", handleTransportStatus);
|
|
1271
1283
|
}
|
|
1272
|
-
createNewProcStream(props) {
|
|
1284
|
+
createNewProcStream(span, props) {
|
|
1273
1285
|
const {
|
|
1274
1286
|
streamId,
|
|
1275
1287
|
initialSession,
|
|
@@ -1279,7 +1291,6 @@ var RiverServer = class {
|
|
|
1279
1291
|
sessionMetadata,
|
|
1280
1292
|
serviceContext,
|
|
1281
1293
|
initPayload,
|
|
1282
|
-
tracingCtx,
|
|
1283
1294
|
procClosesWithInit,
|
|
1284
1295
|
passInitAsDataForBackwardsCompat
|
|
1285
1296
|
} = props;
|
|
@@ -1289,6 +1300,10 @@ var RiverServer = class {
|
|
|
1289
1300
|
protocolVersion,
|
|
1290
1301
|
id: sessionId
|
|
1291
1302
|
} = initialSession;
|
|
1303
|
+
loggingMetadata.telemetry = {
|
|
1304
|
+
traceId: span.spanContext().traceId,
|
|
1305
|
+
spanId: span.spanContext().spanId
|
|
1306
|
+
};
|
|
1292
1307
|
let cleanClose = true;
|
|
1293
1308
|
const onMessage = (msg) => {
|
|
1294
1309
|
if (msg.from !== from) {
|
|
@@ -1461,10 +1476,10 @@ var RiverServer = class {
|
|
|
1461
1476
|
}
|
|
1462
1477
|
}
|
|
1463
1478
|
});
|
|
1464
|
-
const onHandlerError = (err,
|
|
1479
|
+
const onHandlerError = (err, span2) => {
|
|
1465
1480
|
const errorMsg = coerceErrorString(err);
|
|
1466
|
-
|
|
1467
|
-
|
|
1481
|
+
span2.recordException(err instanceof Error ? err : new Error(errorMsg));
|
|
1482
|
+
span2.setStatus({ code: import_api2.SpanStatusCode.ERROR });
|
|
1468
1483
|
this.log?.error(
|
|
1469
1484
|
`${serviceName}.${procedureName} handler threw an uncaught error`,
|
|
1470
1485
|
{
|
|
@@ -1488,12 +1503,12 @@ var RiverServer = class {
|
|
|
1488
1503
|
if (procClosesWithInit) {
|
|
1489
1504
|
closeReadable();
|
|
1490
1505
|
}
|
|
1491
|
-
const handlerContextWithSpan = (
|
|
1506
|
+
const handlerContextWithSpan = (span2) => ({
|
|
1492
1507
|
...serviceContext,
|
|
1493
1508
|
from,
|
|
1494
1509
|
sessionId,
|
|
1495
1510
|
metadata: sessionMetadata,
|
|
1496
|
-
span,
|
|
1511
|
+
span: span2,
|
|
1497
1512
|
cancel: () => {
|
|
1498
1513
|
onServerCancel({
|
|
1499
1514
|
code: CANCEL_CODE,
|
|
@@ -1504,100 +1519,72 @@ var RiverServer = class {
|
|
|
1504
1519
|
});
|
|
1505
1520
|
switch (procedure.type) {
|
|
1506
1521
|
case "rpc":
|
|
1507
|
-
void
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
const responsePayload = await procedure.handler({
|
|
1516
|
-
ctx: handlerContextWithSpan(span),
|
|
1517
|
-
reqInit: initPayload
|
|
1518
|
-
});
|
|
1519
|
-
if (resWritable.isClosed()) {
|
|
1520
|
-
return;
|
|
1521
|
-
}
|
|
1522
|
-
resWritable.write(responsePayload);
|
|
1523
|
-
} catch (err) {
|
|
1524
|
-
onHandlerError(err, span);
|
|
1525
|
-
} finally {
|
|
1526
|
-
span.end();
|
|
1522
|
+
void (async () => {
|
|
1523
|
+
try {
|
|
1524
|
+
const responsePayload = await procedure.handler({
|
|
1525
|
+
ctx: handlerContextWithSpan(span),
|
|
1526
|
+
reqInit: initPayload
|
|
1527
|
+
});
|
|
1528
|
+
if (resWritable.isClosed()) {
|
|
1529
|
+
return;
|
|
1527
1530
|
}
|
|
1531
|
+
resWritable.write(responsePayload);
|
|
1532
|
+
} catch (err) {
|
|
1533
|
+
onHandlerError(err, span);
|
|
1534
|
+
} finally {
|
|
1535
|
+
span.end();
|
|
1528
1536
|
}
|
|
1529
|
-
);
|
|
1537
|
+
})();
|
|
1530
1538
|
break;
|
|
1531
1539
|
case "stream":
|
|
1532
|
-
void
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
resWritable
|
|
1545
|
-
});
|
|
1546
|
-
} catch (err) {
|
|
1547
|
-
onHandlerError(err, span);
|
|
1548
|
-
} finally {
|
|
1549
|
-
span.end();
|
|
1550
|
-
}
|
|
1540
|
+
void (async () => {
|
|
1541
|
+
try {
|
|
1542
|
+
await procedure.handler({
|
|
1543
|
+
ctx: handlerContextWithSpan(span),
|
|
1544
|
+
reqInit: initPayload,
|
|
1545
|
+
reqReadable,
|
|
1546
|
+
resWritable
|
|
1547
|
+
});
|
|
1548
|
+
} catch (err) {
|
|
1549
|
+
onHandlerError(err, span);
|
|
1550
|
+
} finally {
|
|
1551
|
+
span.end();
|
|
1551
1552
|
}
|
|
1552
|
-
);
|
|
1553
|
+
})();
|
|
1553
1554
|
break;
|
|
1554
1555
|
case "subscription":
|
|
1555
|
-
void
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
resWritable
|
|
1567
|
-
});
|
|
1568
|
-
} catch (err) {
|
|
1569
|
-
onHandlerError(err, span);
|
|
1570
|
-
} finally {
|
|
1571
|
-
span.end();
|
|
1572
|
-
}
|
|
1556
|
+
void (async () => {
|
|
1557
|
+
try {
|
|
1558
|
+
await procedure.handler({
|
|
1559
|
+
ctx: handlerContextWithSpan(span),
|
|
1560
|
+
reqInit: initPayload,
|
|
1561
|
+
resWritable
|
|
1562
|
+
});
|
|
1563
|
+
} catch (err) {
|
|
1564
|
+
onHandlerError(err, span);
|
|
1565
|
+
} finally {
|
|
1566
|
+
span.end();
|
|
1573
1567
|
}
|
|
1574
|
-
);
|
|
1568
|
+
})();
|
|
1575
1569
|
break;
|
|
1576
1570
|
case "upload":
|
|
1577
|
-
void
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
ctx: handlerContextWithSpan(span),
|
|
1587
|
-
reqInit: initPayload,
|
|
1588
|
-
reqReadable
|
|
1589
|
-
});
|
|
1590
|
-
if (resWritable.isClosed()) {
|
|
1591
|
-
return;
|
|
1592
|
-
}
|
|
1593
|
-
resWritable.write(responsePayload);
|
|
1594
|
-
} catch (err) {
|
|
1595
|
-
onHandlerError(err, span);
|
|
1596
|
-
} finally {
|
|
1597
|
-
span.end();
|
|
1571
|
+
void (async () => {
|
|
1572
|
+
try {
|
|
1573
|
+
const responsePayload = await procedure.handler({
|
|
1574
|
+
ctx: handlerContextWithSpan(span),
|
|
1575
|
+
reqInit: initPayload,
|
|
1576
|
+
reqReadable
|
|
1577
|
+
});
|
|
1578
|
+
if (resWritable.isClosed()) {
|
|
1579
|
+
return;
|
|
1598
1580
|
}
|
|
1581
|
+
resWritable.write(responsePayload);
|
|
1582
|
+
} catch (err) {
|
|
1583
|
+
onHandlerError(err, span);
|
|
1584
|
+
} finally {
|
|
1585
|
+
span.end();
|
|
1599
1586
|
}
|
|
1600
|
-
);
|
|
1587
|
+
})();
|
|
1601
1588
|
break;
|
|
1602
1589
|
}
|
|
1603
1590
|
if (!finishedController.signal.aborted) {
|