@replit/river 0.207.2 → 0.208.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/adapter-ChksXKVN.d.ts +46 -0
- package/dist/adapter-Cuc4JtfV.d.cts +46 -0
- package/dist/chunk-2JNVDUMN.js +2238 -0
- package/dist/chunk-2JNVDUMN.js.map +1 -0
- package/dist/{chunk-4HE7UYRL.js → chunk-DKW3GC3M.js} +6 -5
- package/dist/{chunk-4HE7UYRL.js.map → chunk-DKW3GC3M.js.map} +1 -1
- package/dist/{chunk-46IVOKJU.js → chunk-ETZAHFGQ.js} +80 -61
- package/dist/chunk-ETZAHFGQ.js.map +1 -0
- package/dist/codec/index.cjs +157 -23
- package/dist/codec/index.cjs.map +1 -1
- package/dist/codec/index.d.cts +5 -1
- package/dist/codec/index.d.ts +5 -1
- package/dist/codec/index.js +6 -20
- package/dist/codec/index.js.map +1 -1
- package/dist/connection-BF4zg6Qv.d.cts +35 -0
- package/dist/{connection-a18e31d5.d.ts → connection-Donr3JRB.d.ts} +4 -3
- package/dist/index-C9tpZjBN.d.cts +37 -0
- package/dist/index-D8IOd3LG.d.ts +37 -0
- package/dist/logging/index.d.cts +2 -1
- package/dist/logging/index.d.ts +2 -1
- package/dist/{message-ffacb98a.d.ts → message-Di94OL80.d.cts} +1 -35
- package/dist/message-Di94OL80.d.ts +108 -0
- package/dist/router/index.cjs +62 -43
- package/dist/router/index.cjs.map +1 -1
- package/dist/router/index.d.cts +27 -7
- package/dist/router/index.d.ts +27 -7
- package/dist/router/index.js +1 -1
- package/dist/testUtil/index.cjs +828 -725
- package/dist/testUtil/index.cjs.map +1 -1
- package/dist/testUtil/index.d.cts +5 -4
- package/dist/testUtil/index.d.ts +5 -4
- package/dist/testUtil/index.js +23 -25
- package/dist/testUtil/index.js.map +1 -1
- package/dist/transport/impls/ws/client.cjs +293 -233
- package/dist/transport/impls/ws/client.cjs.map +1 -1
- package/dist/transport/impls/ws/client.d.cts +6 -5
- package/dist/transport/impls/ws/client.d.ts +6 -5
- package/dist/transport/impls/ws/client.js +5 -7
- package/dist/transport/impls/ws/client.js.map +1 -1
- package/dist/transport/impls/ws/server.cjs +269 -200
- package/dist/transport/impls/ws/server.cjs.map +1 -1
- package/dist/transport/impls/ws/server.d.cts +6 -5
- package/dist/transport/impls/ws/server.d.ts +6 -5
- package/dist/transport/impls/ws/server.js +5 -7
- package/dist/transport/impls/ws/server.js.map +1 -1
- package/dist/transport/index.cjs +438 -342
- package/dist/transport/index.cjs.map +1 -1
- package/dist/transport/index.d.cts +7 -6
- package/dist/transport/index.d.ts +7 -6
- package/dist/transport/index.js +5 -10
- package/dist/transport-CCaWx1Rb.d.cts +1566 -0
- package/dist/{services-43528f4b.d.ts → transport-CZb3vdB4.d.ts} +294 -293
- package/dist/{wslike-e0b32dd5.d.ts → wslike-Dng9H1C7.d.cts} +1 -1
- package/dist/wslike-Dng9H1C7.d.ts +40 -0
- package/package.json +3 -3
- package/dist/chunk-24EWYOGK.js +0 -1287
- package/dist/chunk-24EWYOGK.js.map +0 -1
- package/dist/chunk-46IVOKJU.js.map +0 -1
- package/dist/chunk-A7RGOVRV.js +0 -438
- package/dist/chunk-A7RGOVRV.js.map +0 -1
- package/dist/chunk-AJGIY2UB.js +0 -56
- package/dist/chunk-AJGIY2UB.js.map +0 -1
- package/dist/chunk-XV4RQ62N.js +0 -377
- package/dist/chunk-XV4RQ62N.js.map +0 -1
- package/dist/types-3e5768ec.d.ts +0 -20
|
@@ -29,10 +29,11 @@ function castTypeboxValueErrors(errors) {
|
|
|
29
29
|
}
|
|
30
30
|
return result;
|
|
31
31
|
}
|
|
32
|
-
var
|
|
32
|
+
var CancelErrorSchema = Type.Object({
|
|
33
33
|
code: Type.Literal(CANCEL_CODE),
|
|
34
34
|
message: Type.String()
|
|
35
35
|
});
|
|
36
|
+
var CancelResultSchema = ErrResultSchema(CancelErrorSchema);
|
|
36
37
|
var ReaderErrorSchema = Type.Union([
|
|
37
38
|
Type.Object({
|
|
38
39
|
code: Type.Literal(UNCAUGHT_ERROR_CODE),
|
|
@@ -52,8 +53,9 @@ var ReaderErrorSchema = Type.Union([
|
|
|
52
53
|
})
|
|
53
54
|
)
|
|
54
55
|
}),
|
|
55
|
-
|
|
56
|
+
CancelErrorSchema
|
|
56
57
|
]);
|
|
58
|
+
var ReaderErrorResultSchema = ErrResultSchema(ReaderErrorSchema);
|
|
57
59
|
function isUnion(schema) {
|
|
58
60
|
return schema[Kind] === "Union";
|
|
59
61
|
}
|
|
@@ -653,7 +655,7 @@ function getPropagationContext(ctx) {
|
|
|
653
655
|
function createSessionTelemetryInfo(tracer, sessionId, to, from, propagationCtx) {
|
|
654
656
|
const parentCtx = propagationCtx ? propagation.extract(context.active(), propagationCtx) : context.active();
|
|
655
657
|
const span = tracer.startSpan(
|
|
656
|
-
`river.session
|
|
658
|
+
`river.session`,
|
|
657
659
|
{
|
|
658
660
|
attributes: {
|
|
659
661
|
component: "river",
|
|
@@ -669,7 +671,7 @@ function createSessionTelemetryInfo(tracer, sessionId, to, from, propagationCtx)
|
|
|
669
671
|
}
|
|
670
672
|
function createConnectionTelemetryInfo(tracer, connection, info) {
|
|
671
673
|
const span = tracer.startSpan(
|
|
672
|
-
`connection
|
|
674
|
+
`river.connection`,
|
|
673
675
|
{
|
|
674
676
|
attributes: {
|
|
675
677
|
component: "river",
|
|
@@ -955,15 +957,13 @@ var WritableImpl = class {
|
|
|
955
957
|
|
|
956
958
|
// router/client.ts
|
|
957
959
|
import { Value } from "@sinclair/typebox/value";
|
|
958
|
-
var ReaderErrResultSchema = ErrResultSchema(ReaderErrorSchema);
|
|
959
960
|
var noop = () => {
|
|
960
961
|
};
|
|
961
962
|
function _createRecursiveProxy(callback, path) {
|
|
962
963
|
const proxy = new Proxy(noop, {
|
|
963
964
|
// property access, recurse and add field to path
|
|
964
965
|
get(_obj, key) {
|
|
965
|
-
if (typeof key !== "string")
|
|
966
|
-
return void 0;
|
|
966
|
+
if (typeof key !== "string") return void 0;
|
|
967
967
|
return _createRecursiveProxy(callback, [...path, key]);
|
|
968
968
|
},
|
|
969
969
|
// hit the end, let's invoke the handler
|
|
@@ -1092,8 +1092,7 @@ function handleProc(procType, transport, serverId, init, serviceName, procedureN
|
|
|
1092
1092
|
);
|
|
1093
1093
|
}
|
|
1094
1094
|
function onMessage(msg) {
|
|
1095
|
-
if (msg.streamId !== streamId)
|
|
1096
|
-
return;
|
|
1095
|
+
if (msg.streamId !== streamId) return;
|
|
1097
1096
|
if (msg.to !== transport.clientId) {
|
|
1098
1097
|
transport.log?.error("got stream message from unexpected client", {
|
|
1099
1098
|
clientId: transport.clientId,
|
|
@@ -1105,20 +1104,20 @@ function handleProc(procType, transport, serverId, init, serviceName, procedureN
|
|
|
1105
1104
|
cleanClose = false;
|
|
1106
1105
|
span.addEvent("received cancel");
|
|
1107
1106
|
let cancelResult;
|
|
1108
|
-
if (Value.Check(
|
|
1107
|
+
if (Value.Check(ReaderErrorResultSchema, msg.payload)) {
|
|
1109
1108
|
cancelResult = msg.payload;
|
|
1110
1109
|
} else {
|
|
1111
1110
|
cancelResult = Err({
|
|
1112
1111
|
code: CANCEL_CODE,
|
|
1113
1112
|
message: "stream cancelled with invalid payload"
|
|
1114
1113
|
});
|
|
1115
|
-
transport.log?.
|
|
1114
|
+
transport.log?.warn(
|
|
1116
1115
|
"got stream cancel without a valid protocol error",
|
|
1117
1116
|
{
|
|
1118
1117
|
clientId: transport.clientId,
|
|
1119
1118
|
transportMessage: msg,
|
|
1120
1119
|
validationErrors: [
|
|
1121
|
-
...Value.Errors(
|
|
1120
|
+
...Value.Errors(ReaderErrorResultSchema, msg.payload)
|
|
1122
1121
|
]
|
|
1123
1122
|
}
|
|
1124
1123
|
);
|
|
@@ -1246,6 +1245,7 @@ var RiverServer = class {
|
|
|
1246
1245
|
transport;
|
|
1247
1246
|
contextMap;
|
|
1248
1247
|
log;
|
|
1248
|
+
middlewares;
|
|
1249
1249
|
/**
|
|
1250
1250
|
* We create a tombstones for streams cancelled by the server
|
|
1251
1251
|
* so that we don't hit errors when the client has inflight
|
|
@@ -1258,8 +1258,9 @@ var RiverServer = class {
|
|
|
1258
1258
|
streams;
|
|
1259
1259
|
services;
|
|
1260
1260
|
unregisterTransportListeners;
|
|
1261
|
-
constructor(transport, services, handshakeOptions, extendedContext, maxCancelledStreamTombstonesPerSession = 200) {
|
|
1261
|
+
constructor(transport, services, handshakeOptions, extendedContext, maxCancelledStreamTombstonesPerSession = 200, middlewares = []) {
|
|
1262
1262
|
const instances = {};
|
|
1263
|
+
this.middlewares = middlewares;
|
|
1263
1264
|
this.services = instances;
|
|
1264
1265
|
this.contextMap = /* @__PURE__ */ new Map();
|
|
1265
1266
|
for (const [name, service] of Object.entries(services)) {
|
|
@@ -1316,8 +1317,7 @@ var RiverServer = class {
|
|
|
1316
1317
|
);
|
|
1317
1318
|
};
|
|
1318
1319
|
const handleSessionStatus = (evt) => {
|
|
1319
|
-
if (evt.status !== "closing")
|
|
1320
|
-
return;
|
|
1320
|
+
if (evt.status !== "closing") return;
|
|
1321
1321
|
const disconnectedClientId = evt.session.to;
|
|
1322
1322
|
this.log?.info(
|
|
1323
1323
|
`got session disconnect from ${disconnectedClientId}, cleaning up streams`,
|
|
@@ -1331,8 +1331,7 @@ var RiverServer = class {
|
|
|
1331
1331
|
this.serverCancelledStreams.delete(disconnectedClientId);
|
|
1332
1332
|
};
|
|
1333
1333
|
const handleTransportStatus = (evt) => {
|
|
1334
|
-
if (evt.status !== "closed")
|
|
1335
|
-
return;
|
|
1334
|
+
if (evt.status !== "closed") return;
|
|
1336
1335
|
this.unregisterTransportListeners();
|
|
1337
1336
|
};
|
|
1338
1337
|
this.unregisterTransportListeners = () => {
|
|
@@ -1383,7 +1382,7 @@ var RiverServer = class {
|
|
|
1383
1382
|
if (isStreamCancelBackwardsCompat(msg.controlFlags, protocolVersion)) {
|
|
1384
1383
|
let cancelResult;
|
|
1385
1384
|
if (Value2.Check(CancelResultSchema, msg.payload)) {
|
|
1386
|
-
cancelResult =
|
|
1385
|
+
cancelResult = msg.payload;
|
|
1387
1386
|
} else {
|
|
1388
1387
|
cancelResult = Err({
|
|
1389
1388
|
code: CANCEL_CODE,
|
|
@@ -1579,12 +1578,12 @@ var RiverServer = class {
|
|
|
1579
1578
|
if (procClosesWithInit) {
|
|
1580
1579
|
closeReadable();
|
|
1581
1580
|
}
|
|
1582
|
-
const handlerContextWithSpan =
|
|
1581
|
+
const handlerContextWithSpan = {
|
|
1583
1582
|
...serviceContext,
|
|
1584
1583
|
from,
|
|
1585
1584
|
sessionId,
|
|
1586
1585
|
metadata: sessionMetadata,
|
|
1587
|
-
span
|
|
1586
|
+
span,
|
|
1588
1587
|
cancel: (message) => {
|
|
1589
1588
|
const errRes = {
|
|
1590
1589
|
code: CANCEL_CODE,
|
|
@@ -1594,13 +1593,24 @@ var RiverServer = class {
|
|
|
1594
1593
|
return Err(errRes);
|
|
1595
1594
|
},
|
|
1596
1595
|
signal: finishedController.signal
|
|
1597
|
-
}
|
|
1598
|
-
|
|
1599
|
-
|
|
1600
|
-
|
|
1596
|
+
};
|
|
1597
|
+
const middlewareContext = {
|
|
1598
|
+
...serviceContext,
|
|
1599
|
+
sessionId,
|
|
1600
|
+
from,
|
|
1601
|
+
metadata: sessionMetadata,
|
|
1602
|
+
span,
|
|
1603
|
+
signal: finishedController.signal,
|
|
1604
|
+
streamId,
|
|
1605
|
+
procedureName,
|
|
1606
|
+
serviceName
|
|
1607
|
+
};
|
|
1608
|
+
const runProcedureHandler = async () => {
|
|
1609
|
+
switch (procedure.type) {
|
|
1610
|
+
case "rpc":
|
|
1601
1611
|
try {
|
|
1602
1612
|
const responsePayload = await procedure.handler({
|
|
1603
|
-
ctx: handlerContextWithSpan
|
|
1613
|
+
ctx: handlerContextWithSpan,
|
|
1604
1614
|
reqInit: initPayload
|
|
1605
1615
|
});
|
|
1606
1616
|
if (resWritable.isClosed()) {
|
|
@@ -1612,13 +1622,11 @@ var RiverServer = class {
|
|
|
1612
1622
|
} finally {
|
|
1613
1623
|
span.end();
|
|
1614
1624
|
}
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
case "stream":
|
|
1618
|
-
void (async () => {
|
|
1625
|
+
break;
|
|
1626
|
+
case "stream":
|
|
1619
1627
|
try {
|
|
1620
1628
|
await procedure.handler({
|
|
1621
|
-
ctx: handlerContextWithSpan
|
|
1629
|
+
ctx: handlerContextWithSpan,
|
|
1622
1630
|
reqInit: initPayload,
|
|
1623
1631
|
reqReadable,
|
|
1624
1632
|
resWritable
|
|
@@ -1628,13 +1636,11 @@ var RiverServer = class {
|
|
|
1628
1636
|
} finally {
|
|
1629
1637
|
span.end();
|
|
1630
1638
|
}
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
case "subscription":
|
|
1634
|
-
void (async () => {
|
|
1639
|
+
break;
|
|
1640
|
+
case "subscription":
|
|
1635
1641
|
try {
|
|
1636
1642
|
await procedure.handler({
|
|
1637
|
-
ctx: handlerContextWithSpan
|
|
1643
|
+
ctx: handlerContextWithSpan,
|
|
1638
1644
|
reqInit: initPayload,
|
|
1639
1645
|
resWritable
|
|
1640
1646
|
});
|
|
@@ -1643,13 +1649,11 @@ var RiverServer = class {
|
|
|
1643
1649
|
} finally {
|
|
1644
1650
|
span.end();
|
|
1645
1651
|
}
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
case "upload":
|
|
1649
|
-
void (async () => {
|
|
1652
|
+
break;
|
|
1653
|
+
case "upload":
|
|
1650
1654
|
try {
|
|
1651
1655
|
const responsePayload = await procedure.handler({
|
|
1652
|
-
ctx: handlerContextWithSpan
|
|
1656
|
+
ctx: handlerContextWithSpan,
|
|
1653
1657
|
reqInit: initPayload,
|
|
1654
1658
|
reqReadable
|
|
1655
1659
|
});
|
|
@@ -1662,9 +1666,23 @@ var RiverServer = class {
|
|
|
1662
1666
|
} finally {
|
|
1663
1667
|
span.end();
|
|
1664
1668
|
}
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
}
|
|
1669
|
+
break;
|
|
1670
|
+
}
|
|
1671
|
+
};
|
|
1672
|
+
this.middlewares.reduceRight(
|
|
1673
|
+
(next, middleware) => {
|
|
1674
|
+
return () => {
|
|
1675
|
+
middleware({
|
|
1676
|
+
ctx: middlewareContext,
|
|
1677
|
+
reqInit: initPayload,
|
|
1678
|
+
next
|
|
1679
|
+
});
|
|
1680
|
+
};
|
|
1681
|
+
},
|
|
1682
|
+
() => {
|
|
1683
|
+
void runProcedureHandler();
|
|
1684
|
+
}
|
|
1685
|
+
)();
|
|
1668
1686
|
if (!finishedController.signal.aborted) {
|
|
1669
1687
|
this.streams.set(streamId, procStream);
|
|
1670
1688
|
}
|
|
@@ -1915,7 +1933,8 @@ function createServer(transport, services, providedServerOptions) {
|
|
|
1915
1933
|
services,
|
|
1916
1934
|
providedServerOptions?.handshakeOptions,
|
|
1917
1935
|
providedServerOptions?.extendedContext,
|
|
1918
|
-
providedServerOptions?.maxCancelledStreamTombstonesPerSession
|
|
1936
|
+
providedServerOptions?.maxCancelledStreamTombstonesPerSession,
|
|
1937
|
+
providedServerOptions?.middlewares
|
|
1919
1938
|
);
|
|
1920
1939
|
}
|
|
1921
1940
|
|
|
@@ -1928,19 +1947,9 @@ function createServerHandshakeOptions(schema, validate) {
|
|
|
1928
1947
|
}
|
|
1929
1948
|
|
|
1930
1949
|
// package.json
|
|
1931
|
-
var version = "0.
|
|
1950
|
+
var version = "0.208.0";
|
|
1932
1951
|
|
|
1933
1952
|
export {
|
|
1934
|
-
UNCAUGHT_ERROR_CODE,
|
|
1935
|
-
UNEXPECTED_DISCONNECT_CODE,
|
|
1936
|
-
INVALID_REQUEST_CODE,
|
|
1937
|
-
CANCEL_CODE,
|
|
1938
|
-
ReaderErrorSchema,
|
|
1939
|
-
flattenErrorType,
|
|
1940
|
-
serializeSchemaV1Compat,
|
|
1941
|
-
serializeSchema,
|
|
1942
|
-
ServiceSchema,
|
|
1943
|
-
Procedure,
|
|
1944
1953
|
generateId,
|
|
1945
1954
|
TransportMessageSchema,
|
|
1946
1955
|
currentProtocolVersion,
|
|
@@ -1954,17 +1963,27 @@ export {
|
|
|
1954
1963
|
handshakeRequestMessage,
|
|
1955
1964
|
handshakeResponseMessage,
|
|
1956
1965
|
isAck,
|
|
1966
|
+
UNCAUGHT_ERROR_CODE,
|
|
1967
|
+
UNEXPECTED_DISCONNECT_CODE,
|
|
1968
|
+
INVALID_REQUEST_CODE,
|
|
1969
|
+
CANCEL_CODE,
|
|
1970
|
+
ReaderErrorSchema,
|
|
1971
|
+
flattenErrorType,
|
|
1972
|
+
serializeSchemaV1Compat,
|
|
1973
|
+
serializeSchema,
|
|
1974
|
+
ServiceSchema,
|
|
1975
|
+
Procedure,
|
|
1957
1976
|
Ok,
|
|
1958
1977
|
Err,
|
|
1959
|
-
getPropagationContext,
|
|
1960
|
-
createSessionTelemetryInfo,
|
|
1961
|
-
createConnectionTelemetryInfo,
|
|
1962
|
-
getTracer,
|
|
1963
1978
|
createClient,
|
|
1964
1979
|
coerceErrorString,
|
|
1965
1980
|
createServer,
|
|
1966
1981
|
createClientHandshakeOptions,
|
|
1967
1982
|
createServerHandshakeOptions,
|
|
1968
|
-
version
|
|
1983
|
+
version,
|
|
1984
|
+
getPropagationContext,
|
|
1985
|
+
createSessionTelemetryInfo,
|
|
1986
|
+
createConnectionTelemetryInfo,
|
|
1987
|
+
getTracer
|
|
1969
1988
|
};
|
|
1970
|
-
//# sourceMappingURL=chunk-
|
|
1989
|
+
//# sourceMappingURL=chunk-ETZAHFGQ.js.map
|