@replit/river 0.203.0 → 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.
- package/dist/{chunk-DGT3MPD4.js → chunk-3V7VMJNA.js} +19 -16
- package/dist/chunk-3V7VMJNA.js.map +1 -0
- package/dist/{chunk-FG22HHCY.js → chunk-6YUDEFCS.js} +47 -10
- package/dist/chunk-6YUDEFCS.js.map +1 -0
- package/dist/chunk-LJCR3ADI.js +1955 -0
- package/dist/chunk-LJCR3ADI.js.map +1 -0
- package/dist/{chunk-XBPEUVWN.js → chunk-QSW7AWEP.js} +5 -11
- package/dist/chunk-QSW7AWEP.js.map +1 -0
- package/dist/{chunk-LHH5LQ7C.js → chunk-WBGKPIFS.js} +11 -1
- package/dist/chunk-WBGKPIFS.js.map +1 -0
- package/dist/{chunk-D5EIDBUT.js → chunk-YODW2ZMU.js} +4 -3
- package/dist/chunk-YODW2ZMU.js.map +1 -0
- package/dist/{client-5d2e41a3.d.ts → client-0c0a4a5e.d.ts} +1 -1
- package/dist/{connection-11a4af0f.d.ts → connection-7b62dfec.d.ts} +1 -1
- package/dist/{context-d6dd8a1a.d.ts → context-3cf1ed4e.d.ts} +8 -2
- 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 +109 -111
- package/dist/router/index.cjs.map +1 -1
- package/dist/router/index.d.cts +7 -7
- package/dist/router/index.d.ts +7 -7
- package/dist/router/index.js +18 -1629
- package/dist/router/index.js.map +1 -1
- package/dist/{server-e46399f9.d.ts → server-a287de55.d.ts} +1 -1
- package/dist/{services-56cbea0d.d.ts → services-51980ecd.d.ts} +2 -2
- package/dist/testUtil/index.cjs +103 -36
- package/dist/testUtil/index.cjs.map +1 -1
- package/dist/testUtil/index.d.cts +4 -4
- package/dist/testUtil/index.d.ts +4 -4
- package/dist/testUtil/index.js +9 -7
- package/dist/testUtil/index.js.map +1 -1
- package/dist/transport/impls/ws/client.cjs +107 -48
- package/dist/transport/impls/ws/client.cjs.map +1 -1
- package/dist/transport/impls/ws/client.d.cts +3 -3
- package/dist/transport/impls/ws/client.d.ts +3 -3
- package/dist/transport/impls/ws/client.js +5 -5
- package/dist/transport/impls/ws/server.cjs +92 -35
- package/dist/transport/impls/ws/server.cjs.map +1 -1
- package/dist/transport/impls/ws/server.d.cts +3 -3
- package/dist/transport/impls/ws/server.d.ts +3 -3
- package/dist/transport/impls/ws/server.js +5 -5
- package/dist/transport/index.cjs +107 -41
- package/dist/transport/index.cjs.map +1 -1
- package/dist/transport/index.d.cts +3 -3
- package/dist/transport/index.d.ts +3 -3
- package/dist/transport/index.js +5 -5
- package/package.json +3 -3
- package/dist/chunk-D5EIDBUT.js.map +0 -1
- package/dist/chunk-DGT3MPD4.js.map +0 -1
- package/dist/chunk-FG22HHCY.js.map +0 -1
- package/dist/chunk-LHH5LQ7C.js.map +0 -1
- package/dist/chunk-SZHNMLKC.js +0 -310
- package/dist/chunk-SZHNMLKC.js.map +0 -1
- package/dist/chunk-XBPEUVWN.js.map +0 -1
package/dist/testUtil/index.cjs
CHANGED
|
@@ -341,12 +341,14 @@ var StateMachineState = class {
|
|
|
341
341
|
var CommonSession = class extends StateMachineState {
|
|
342
342
|
from;
|
|
343
343
|
options;
|
|
344
|
+
tracer;
|
|
344
345
|
log;
|
|
345
|
-
constructor({ from, options, log }) {
|
|
346
|
+
constructor({ from, options, log, tracer }) {
|
|
346
347
|
super();
|
|
347
348
|
this.from = from;
|
|
348
349
|
this.options = options;
|
|
349
350
|
this.log = log;
|
|
351
|
+
this.tracer = tracer;
|
|
350
352
|
}
|
|
351
353
|
parseMsg(msg) {
|
|
352
354
|
const parsedMsg = this.options.codec.fromBuffer(msg);
|
|
@@ -396,13 +398,13 @@ var IdentifiedSession = class extends CommonSession {
|
|
|
396
398
|
this.protocolVersion = protocolVersion;
|
|
397
399
|
}
|
|
398
400
|
get loggingMetadata() {
|
|
399
|
-
const spanContext = this.telemetry.span.spanContext();
|
|
400
401
|
const metadata = {
|
|
401
402
|
clientId: this.from,
|
|
402
403
|
connectedTo: this.to,
|
|
403
404
|
sessionId: this.id
|
|
404
405
|
};
|
|
405
406
|
if (this.telemetry.span.isRecording()) {
|
|
407
|
+
const spanContext = this.telemetry.span.spanContext();
|
|
406
408
|
metadata.telemetry = {
|
|
407
409
|
traceId: spanContext.traceId,
|
|
408
410
|
spanId: spanContext.spanId
|
|
@@ -531,8 +533,16 @@ var SessionNoConnection = class extends IdentifiedSessionWithGracePeriod {
|
|
|
531
533
|
// tracing/index.ts
|
|
532
534
|
var import_api = require("@opentelemetry/api");
|
|
533
535
|
|
|
536
|
+
// transport/stringifyError.ts
|
|
537
|
+
function coerceErrorString(err) {
|
|
538
|
+
if (err instanceof Error) {
|
|
539
|
+
return err.message || "unknown reason";
|
|
540
|
+
}
|
|
541
|
+
return `[coerced to error] ${String(err)}`;
|
|
542
|
+
}
|
|
543
|
+
|
|
534
544
|
// package.json
|
|
535
|
-
var version = "0.
|
|
545
|
+
var version = "0.204.0";
|
|
536
546
|
|
|
537
547
|
// tracing/index.ts
|
|
538
548
|
function getPropagationContext(ctx) {
|
|
@@ -543,10 +553,10 @@ function getPropagationContext(ctx) {
|
|
|
543
553
|
import_api.propagation.inject(ctx, tracing);
|
|
544
554
|
return tracing;
|
|
545
555
|
}
|
|
546
|
-
function createSessionTelemetryInfo(sessionId, to, from, propagationCtx) {
|
|
556
|
+
function createSessionTelemetryInfo(tracer, sessionId, to, from, propagationCtx) {
|
|
547
557
|
const parentCtx = propagationCtx ? import_api.propagation.extract(import_api.context.active(), propagationCtx) : import_api.context.active();
|
|
548
558
|
const span = tracer.startSpan(
|
|
549
|
-
`session
|
|
559
|
+
`river.session.${sessionId}`,
|
|
550
560
|
{
|
|
551
561
|
attributes: {
|
|
552
562
|
component: "river",
|
|
@@ -560,8 +570,24 @@ function createSessionTelemetryInfo(sessionId, to, from, propagationCtx) {
|
|
|
560
570
|
const ctx = import_api.trace.setSpan(parentCtx, span);
|
|
561
571
|
return { span, ctx };
|
|
562
572
|
}
|
|
563
|
-
|
|
564
|
-
|
|
573
|
+
function createConnectionTelemetryInfo(tracer, connection, info) {
|
|
574
|
+
const span = tracer.startSpan(
|
|
575
|
+
`connection ${connection.id}`,
|
|
576
|
+
{
|
|
577
|
+
attributes: {
|
|
578
|
+
component: "river",
|
|
579
|
+
"river.connection.id": connection.id
|
|
580
|
+
},
|
|
581
|
+
links: [{ context: info.span.spanContext() }]
|
|
582
|
+
},
|
|
583
|
+
info.ctx
|
|
584
|
+
);
|
|
585
|
+
const ctx = import_api.trace.setSpan(info.ctx, span);
|
|
586
|
+
return { span, ctx };
|
|
587
|
+
}
|
|
588
|
+
function getTracer() {
|
|
589
|
+
return import_api.trace.getTracer("river", version);
|
|
590
|
+
}
|
|
565
591
|
|
|
566
592
|
// transport/sessionStateMachine/SessionWaitingForHandshake.ts
|
|
567
593
|
var SessionWaitingForHandshake = class extends CommonSession {
|
|
@@ -847,6 +873,7 @@ function inheritSharedSession(session) {
|
|
|
847
873
|
telemetry: session.telemetry,
|
|
848
874
|
options: session.options,
|
|
849
875
|
log: session.log,
|
|
876
|
+
tracer: session.tracer,
|
|
850
877
|
protocolVersion: session.protocolVersion
|
|
851
878
|
};
|
|
852
879
|
}
|
|
@@ -858,9 +885,9 @@ function inheritSharedSessionWithGrace(session) {
|
|
|
858
885
|
}
|
|
859
886
|
var SessionStateGraph = {
|
|
860
887
|
entrypoints: {
|
|
861
|
-
NoConnection: (to, from, listeners, options, protocolVersion, log) => {
|
|
888
|
+
NoConnection: (to, from, listeners, options, protocolVersion, tracer, log) => {
|
|
862
889
|
const id = `session-${generateId()}`;
|
|
863
|
-
const telemetry = createSessionTelemetryInfo(id, to, from);
|
|
890
|
+
const telemetry = createSessionTelemetryInfo(tracer, id, to, from);
|
|
864
891
|
const sendBuffer = [];
|
|
865
892
|
const session = new SessionNoConnection({
|
|
866
893
|
listeners,
|
|
@@ -874,6 +901,7 @@ var SessionStateGraph = {
|
|
|
874
901
|
telemetry,
|
|
875
902
|
options,
|
|
876
903
|
protocolVersion,
|
|
904
|
+
tracer,
|
|
877
905
|
log
|
|
878
906
|
});
|
|
879
907
|
session.log?.info(`session ${session.id} created in NoConnection state`, {
|
|
@@ -882,12 +910,13 @@ var SessionStateGraph = {
|
|
|
882
910
|
});
|
|
883
911
|
return session;
|
|
884
912
|
},
|
|
885
|
-
WaitingForHandshake: (from, conn, listeners, options, log) => {
|
|
913
|
+
WaitingForHandshake: (from, conn, listeners, options, tracer, log) => {
|
|
886
914
|
const session = new SessionWaitingForHandshake({
|
|
887
915
|
conn,
|
|
888
916
|
listeners,
|
|
889
917
|
from,
|
|
890
918
|
options,
|
|
919
|
+
tracer,
|
|
891
920
|
log
|
|
892
921
|
});
|
|
893
922
|
session.log?.info(`session created in WaitingForHandshake state`, {
|
|
@@ -943,6 +972,11 @@ var SessionStateGraph = {
|
|
|
943
972
|
listeners,
|
|
944
973
|
...carriedState
|
|
945
974
|
});
|
|
975
|
+
conn.telemetry = createConnectionTelemetryInfo(
|
|
976
|
+
session.tracer,
|
|
977
|
+
conn,
|
|
978
|
+
session.telemetry
|
|
979
|
+
);
|
|
946
980
|
session.log?.info(
|
|
947
981
|
`session ${session.id} transition from Connecting to Handshaking`,
|
|
948
982
|
{
|
|
@@ -986,12 +1020,14 @@ var SessionStateGraph = {
|
|
|
986
1020
|
ack: 0,
|
|
987
1021
|
sendBuffer: [],
|
|
988
1022
|
telemetry: createSessionTelemetryInfo(
|
|
1023
|
+
pendingSession.tracer,
|
|
989
1024
|
sessionId,
|
|
990
1025
|
to,
|
|
991
1026
|
from,
|
|
992
1027
|
propagationCtx
|
|
993
1028
|
),
|
|
994
1029
|
options,
|
|
1030
|
+
tracer: pendingSession.tracer,
|
|
995
1031
|
log: pendingSession.log,
|
|
996
1032
|
protocolVersion
|
|
997
1033
|
}
|
|
@@ -1003,6 +1039,11 @@ var SessionStateGraph = {
|
|
|
1003
1039
|
listeners,
|
|
1004
1040
|
...carriedState
|
|
1005
1041
|
});
|
|
1042
|
+
conn.telemetry = createConnectionTelemetryInfo(
|
|
1043
|
+
session.tracer,
|
|
1044
|
+
conn,
|
|
1045
|
+
session.telemetry
|
|
1046
|
+
);
|
|
1006
1047
|
session.log?.info(
|
|
1007
1048
|
`session ${session.id} transition from WaitingForHandshake to Connected`,
|
|
1008
1049
|
{
|
|
@@ -1129,7 +1170,7 @@ var ServerSessionStateGraph = {
|
|
|
1129
1170
|
};
|
|
1130
1171
|
|
|
1131
1172
|
// transport/client.ts
|
|
1132
|
-
var
|
|
1173
|
+
var import_api4 = require("@opentelemetry/api");
|
|
1133
1174
|
|
|
1134
1175
|
// transport/rateLimit.ts
|
|
1135
1176
|
var LeakyBucketRateLimit = class {
|
|
@@ -1199,6 +1240,7 @@ var LeakyBucketRateLimit = class {
|
|
|
1199
1240
|
};
|
|
1200
1241
|
|
|
1201
1242
|
// logging/log.ts
|
|
1243
|
+
var import_api3 = require("@opentelemetry/api");
|
|
1202
1244
|
var LoggingLevels = {
|
|
1203
1245
|
debug: -1,
|
|
1204
1246
|
info: 0,
|
|
@@ -1207,6 +1249,15 @@ var LoggingLevels = {
|
|
|
1207
1249
|
};
|
|
1208
1250
|
var cleanedLogFn = (log) => {
|
|
1209
1251
|
return (msg, metadata) => {
|
|
1252
|
+
if (metadata && !metadata.telemetry) {
|
|
1253
|
+
const span = import_api3.trace.getSpan(import_api3.context.active());
|
|
1254
|
+
if (span) {
|
|
1255
|
+
metadata.telemetry = {
|
|
1256
|
+
traceId: span.spanContext().traceId,
|
|
1257
|
+
spanId: span.spanContext().spanId
|
|
1258
|
+
};
|
|
1259
|
+
}
|
|
1260
|
+
}
|
|
1210
1261
|
if (!metadata?.transportMessage) {
|
|
1211
1262
|
log(msg, metadata);
|
|
1212
1263
|
return;
|
|
@@ -1308,6 +1359,7 @@ var Transport = class {
|
|
|
1308
1359
|
*/
|
|
1309
1360
|
options;
|
|
1310
1361
|
log;
|
|
1362
|
+
tracer;
|
|
1311
1363
|
sessions;
|
|
1312
1364
|
/**
|
|
1313
1365
|
* Creates a new Transport instance.
|
|
@@ -1320,6 +1372,7 @@ var Transport = class {
|
|
|
1320
1372
|
this.clientId = clientId;
|
|
1321
1373
|
this.status = "open";
|
|
1322
1374
|
this.sessions = /* @__PURE__ */ new Map();
|
|
1375
|
+
this.tracer = getTracer();
|
|
1323
1376
|
}
|
|
1324
1377
|
bindLogger(fn, level) {
|
|
1325
1378
|
if (typeof fn === "function") {
|
|
@@ -1502,14 +1555,6 @@ var Transport = class {
|
|
|
1502
1555
|
}
|
|
1503
1556
|
};
|
|
1504
1557
|
|
|
1505
|
-
// transport/stringifyError.ts
|
|
1506
|
-
function coerceErrorString(err) {
|
|
1507
|
-
if (err instanceof Error) {
|
|
1508
|
-
return err.message || "unknown reason";
|
|
1509
|
-
}
|
|
1510
|
-
return `[coerced to error] ${String(err)}`;
|
|
1511
|
-
}
|
|
1512
|
-
|
|
1513
1558
|
// transport/client.ts
|
|
1514
1559
|
var import_value2 = require("@sinclair/typebox/value");
|
|
1515
1560
|
var ClientTransport = class extends Transport {
|
|
@@ -1566,6 +1611,7 @@ var ClientTransport = class extends Transport {
|
|
|
1566
1611
|
},
|
|
1567
1612
|
this.options,
|
|
1568
1613
|
currentProtocolVersion,
|
|
1614
|
+
this.tracer,
|
|
1569
1615
|
this.log
|
|
1570
1616
|
);
|
|
1571
1617
|
this.createSession(session);
|
|
@@ -1634,7 +1680,7 @@ var ClientTransport = class extends Transport {
|
|
|
1634
1680
|
}
|
|
1635
1681
|
rejectHandshakeResponse(session, reason, metadata) {
|
|
1636
1682
|
session.conn.telemetry?.span.setStatus({
|
|
1637
|
-
code:
|
|
1683
|
+
code: import_api4.SpanStatusCode.ERROR,
|
|
1638
1684
|
message: reason
|
|
1639
1685
|
});
|
|
1640
1686
|
this.log?.warn(reason, metadata);
|
|
@@ -1775,18 +1821,21 @@ var ClientTransport = class extends Transport {
|
|
|
1775
1821
|
}
|
|
1776
1822
|
}
|
|
1777
1823
|
onBackoffFinished(session) {
|
|
1778
|
-
const connPromise =
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1824
|
+
const connPromise = session.tracer.startActiveSpan(
|
|
1825
|
+
"connect",
|
|
1826
|
+
async (span) => {
|
|
1827
|
+
try {
|
|
1828
|
+
return await this.createNewOutgoingConnection(session.to);
|
|
1829
|
+
} catch (err) {
|
|
1830
|
+
const errStr = coerceErrorString(err);
|
|
1831
|
+
span.recordException(errStr);
|
|
1832
|
+
span.setStatus({ code: import_api4.SpanStatusCode.ERROR });
|
|
1833
|
+
throw err;
|
|
1834
|
+
} finally {
|
|
1835
|
+
span.end();
|
|
1836
|
+
}
|
|
1788
1837
|
}
|
|
1789
|
-
|
|
1838
|
+
);
|
|
1790
1839
|
const connectingSession = ClientSessionStateGraph.transition.BackingOffToConnecting(
|
|
1791
1840
|
session,
|
|
1792
1841
|
connPromise,
|
|
@@ -1863,8 +1912,8 @@ var Connection = class {
|
|
|
1863
1912
|
}
|
|
1864
1913
|
get loggingMetadata() {
|
|
1865
1914
|
const metadata = { connId: this.id };
|
|
1866
|
-
|
|
1867
|
-
|
|
1915
|
+
if (this.telemetry?.span.isRecording()) {
|
|
1916
|
+
const spanContext = this.telemetry.span.spanContext();
|
|
1868
1917
|
metadata.telemetry = {
|
|
1869
1918
|
traceId: spanContext.traceId,
|
|
1870
1919
|
spanId: spanContext.spanId
|
|
@@ -1885,6 +1934,22 @@ var Connection = class {
|
|
|
1885
1934
|
get errorListeners() {
|
|
1886
1935
|
return [...this._errorListeners];
|
|
1887
1936
|
}
|
|
1937
|
+
onData(msg) {
|
|
1938
|
+
for (const cb of this.dataListeners) {
|
|
1939
|
+
cb(msg);
|
|
1940
|
+
}
|
|
1941
|
+
}
|
|
1942
|
+
onError(err) {
|
|
1943
|
+
for (const cb of this.errorListeners) {
|
|
1944
|
+
cb(err);
|
|
1945
|
+
}
|
|
1946
|
+
}
|
|
1947
|
+
onClose() {
|
|
1948
|
+
for (const cb of this.closeListeners) {
|
|
1949
|
+
cb();
|
|
1950
|
+
}
|
|
1951
|
+
this.telemetry?.span.end();
|
|
1952
|
+
}
|
|
1888
1953
|
/**
|
|
1889
1954
|
* Handle adding a callback for when a message is received.
|
|
1890
1955
|
* @param msg The message that was received.
|
|
@@ -1926,7 +1991,7 @@ var Connection = class {
|
|
|
1926
1991
|
};
|
|
1927
1992
|
|
|
1928
1993
|
// transport/server.ts
|
|
1929
|
-
var
|
|
1994
|
+
var import_api5 = require("@opentelemetry/api");
|
|
1930
1995
|
var import_value3 = require("@sinclair/typebox/value");
|
|
1931
1996
|
var ServerTransport = class extends Transport {
|
|
1932
1997
|
/**
|
|
@@ -2030,13 +2095,14 @@ var ServerTransport = class extends Transport {
|
|
|
2030
2095
|
}
|
|
2031
2096
|
},
|
|
2032
2097
|
this.options,
|
|
2098
|
+
this.tracer,
|
|
2033
2099
|
this.log
|
|
2034
2100
|
);
|
|
2035
2101
|
this.pendingSessions.add(pendingSession);
|
|
2036
2102
|
}
|
|
2037
2103
|
rejectHandshakeRequest(session, to, reason, code, metadata) {
|
|
2038
2104
|
session.conn.telemetry?.span.setStatus({
|
|
2039
|
-
code:
|
|
2105
|
+
code: import_api5.SpanStatusCode.ERROR,
|
|
2040
2106
|
message: reason
|
|
2041
2107
|
});
|
|
2042
2108
|
this.log?.warn(reason, metadata);
|
|
@@ -2571,7 +2637,8 @@ function dummySession() {
|
|
|
2571
2637
|
}
|
|
2572
2638
|
},
|
|
2573
2639
|
testingSessionOptions,
|
|
2574
|
-
currentProtocolVersion
|
|
2640
|
+
currentProtocolVersion,
|
|
2641
|
+
getTracer()
|
|
2575
2642
|
);
|
|
2576
2643
|
}
|
|
2577
2644
|
function getClientSendFn(clientTransport, serverTransport) {
|