@replit/river 0.23.12 → 0.23.13
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-2FNLANTJ.js +327 -0
- package/dist/chunk-2FNLANTJ.js.map +1 -0
- package/dist/{chunk-3AW3IXVD.js → chunk-4PVU7J25.js} +1 -21
- package/dist/chunk-4PVU7J25.js.map +1 -0
- package/dist/{chunk-H6KTH6W6.js → chunk-4QZOW4DH.js} +2 -2
- package/dist/{chunk-7RUKEUKE.js → chunk-ES4XO2XD.js} +2 -2
- package/dist/{chunk-7RUKEUKE.js.map → chunk-ES4XO2XD.js.map} +1 -1
- package/dist/{chunk-XZ6IOBM5.js → chunk-KFTGQ3QC.js} +2 -2
- package/dist/chunk-KFTGQ3QC.js.map +1 -0
- package/dist/chunk-S4DUN7KK.js +455 -0
- package/dist/chunk-S4DUN7KK.js.map +1 -0
- package/dist/{chunk-HDBVL7EF.js → chunk-SX6HI63Q.js} +2 -2
- package/dist/chunk-XM656KMN.js +408 -0
- package/dist/chunk-XM656KMN.js.map +1 -0
- package/dist/chunk-ZUKDZY54.js +271 -0
- package/dist/chunk-ZUKDZY54.js.map +1 -0
- package/dist/client-dd5c9dd0.d.ts +52 -0
- package/dist/codec/index.js +20 -2
- package/dist/codec/index.js.map +1 -1
- package/dist/{connection-8debd45f.d.ts → connection-39816c00.d.ts} +1 -1
- package/dist/{connection-581558f8.d.ts → connection-40318f22.d.ts} +1 -1
- package/dist/{transport-47af1c81.d.ts → handshake-e428d1c8.d.ts} +88 -153
- package/dist/{index-60f03cb7.d.ts → index-ea74cdbb.d.ts} +1 -1
- package/dist/logging/index.d.cts +1 -1
- package/dist/logging/index.d.ts +1 -1
- package/dist/router/index.cjs +1 -1
- package/dist/router/index.cjs.map +1 -1
- package/dist/router/index.d.cts +8 -6
- package/dist/router/index.d.ts +8 -6
- package/dist/router/index.js +2 -2
- package/dist/server-ebf80863.d.ts +24 -0
- package/dist/{services-ca72c9f8.d.ts → services-f406b3aa.d.ts} +3 -2
- package/dist/transport/impls/uds/client.cjs +192 -164
- package/dist/transport/impls/uds/client.cjs.map +1 -1
- package/dist/transport/impls/uds/client.d.cts +6 -5
- package/dist/transport/impls/uds/client.d.ts +6 -5
- package/dist/transport/impls/uds/client.js +6 -4
- package/dist/transport/impls/uds/client.js.map +1 -1
- package/dist/transport/impls/uds/server.cjs +240 -212
- package/dist/transport/impls/uds/server.cjs.map +1 -1
- package/dist/transport/impls/uds/server.d.cts +6 -5
- package/dist/transport/impls/uds/server.d.ts +6 -5
- package/dist/transport/impls/uds/server.js +8 -6
- package/dist/transport/impls/uds/server.js.map +1 -1
- package/dist/transport/impls/ws/client.cjs +194 -166
- 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 +6 -4
- package/dist/transport/impls/ws/client.js.map +1 -1
- package/dist/transport/impls/ws/server.cjs +194 -166
- package/dist/transport/impls/ws/server.cjs.map +1 -1
- package/dist/transport/impls/ws/server.d.cts +4 -3
- package/dist/transport/impls/ws/server.d.ts +4 -3
- package/dist/transport/impls/ws/server.js +8 -6
- package/dist/transport/impls/ws/server.js.map +1 -1
- package/dist/transport/index.cjs +138 -104
- package/dist/transport/index.cjs.map +1 -1
- package/dist/transport/index.d.cts +4 -2
- package/dist/transport/index.d.ts +4 -2
- package/dist/transport/index.js +14 -8
- package/dist/util/testHelpers.cjs +2 -6
- package/dist/util/testHelpers.cjs.map +1 -1
- package/dist/util/testHelpers.d.cts +5 -4
- package/dist/util/testHelpers.d.ts +5 -4
- package/dist/util/testHelpers.js +4 -5
- package/dist/util/testHelpers.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-3AW3IXVD.js.map +0 -1
- package/dist/chunk-VRU4IKRT.js +0 -1392
- package/dist/chunk-VRU4IKRT.js.map +0 -1
- package/dist/chunk-XZ6IOBM5.js.map +0 -1
- /package/dist/{chunk-H6KTH6W6.js.map → chunk-4QZOW4DH.js.map} +0 -0
- /package/dist/{chunk-HDBVL7EF.js.map → chunk-SX6HI63Q.js.map} +0 -0
package/dist/transport/index.cjs
CHANGED
|
@@ -224,7 +224,7 @@ var import_nanoid2 = require("nanoid");
|
|
|
224
224
|
var import_api = require("@opentelemetry/api");
|
|
225
225
|
|
|
226
226
|
// package.json
|
|
227
|
-
var version = "0.23.
|
|
227
|
+
var version = "0.23.13";
|
|
228
228
|
|
|
229
229
|
// tracing/index.ts
|
|
230
230
|
function getPropagationContext(ctx) {
|
|
@@ -559,84 +559,8 @@ var Session = class {
|
|
|
559
559
|
}
|
|
560
560
|
};
|
|
561
561
|
|
|
562
|
-
//
|
|
563
|
-
|
|
564
|
-
if (err instanceof Error) {
|
|
565
|
-
return err.message || "unknown reason";
|
|
566
|
-
}
|
|
567
|
-
return `[coerced to error] ${String(err)}`;
|
|
568
|
-
}
|
|
569
|
-
|
|
570
|
-
// transport/rateLimit.ts
|
|
571
|
-
var LeakyBucketRateLimit = class {
|
|
572
|
-
budgetConsumed;
|
|
573
|
-
intervalHandles;
|
|
574
|
-
options;
|
|
575
|
-
constructor(options) {
|
|
576
|
-
this.options = options;
|
|
577
|
-
this.budgetConsumed = /* @__PURE__ */ new Map();
|
|
578
|
-
this.intervalHandles = /* @__PURE__ */ new Map();
|
|
579
|
-
}
|
|
580
|
-
getBackoffMs(user) {
|
|
581
|
-
if (!this.budgetConsumed.has(user))
|
|
582
|
-
return 0;
|
|
583
|
-
const exponent = Math.max(0, this.getBudgetConsumed(user) - 1);
|
|
584
|
-
const jitter = Math.floor(Math.random() * this.options.maxJitterMs);
|
|
585
|
-
const backoffMs = Math.min(
|
|
586
|
-
this.options.baseIntervalMs * 2 ** exponent,
|
|
587
|
-
this.options.maxBackoffMs
|
|
588
|
-
);
|
|
589
|
-
return backoffMs + jitter;
|
|
590
|
-
}
|
|
591
|
-
get totalBudgetRestoreTime() {
|
|
592
|
-
return this.options.budgetRestoreIntervalMs * this.options.attemptBudgetCapacity;
|
|
593
|
-
}
|
|
594
|
-
consumeBudget(user) {
|
|
595
|
-
this.stopLeak(user);
|
|
596
|
-
this.budgetConsumed.set(user, this.getBudgetConsumed(user) + 1);
|
|
597
|
-
}
|
|
598
|
-
getBudgetConsumed(user) {
|
|
599
|
-
return this.budgetConsumed.get(user) ?? 0;
|
|
600
|
-
}
|
|
601
|
-
hasBudget(user) {
|
|
602
|
-
return this.getBudgetConsumed(user) < this.options.attemptBudgetCapacity;
|
|
603
|
-
}
|
|
604
|
-
startRestoringBudget(user) {
|
|
605
|
-
if (this.intervalHandles.has(user)) {
|
|
606
|
-
return;
|
|
607
|
-
}
|
|
608
|
-
const restoreBudgetForUser = () => {
|
|
609
|
-
const currentBudget = this.budgetConsumed.get(user);
|
|
610
|
-
if (!currentBudget) {
|
|
611
|
-
this.stopLeak(user);
|
|
612
|
-
return;
|
|
613
|
-
}
|
|
614
|
-
const newBudget = currentBudget - 1;
|
|
615
|
-
if (newBudget === 0) {
|
|
616
|
-
this.budgetConsumed.delete(user);
|
|
617
|
-
return;
|
|
618
|
-
}
|
|
619
|
-
this.budgetConsumed.set(user, newBudget);
|
|
620
|
-
};
|
|
621
|
-
const intervalHandle = setInterval(
|
|
622
|
-
restoreBudgetForUser,
|
|
623
|
-
this.options.budgetRestoreIntervalMs
|
|
624
|
-
);
|
|
625
|
-
this.intervalHandles.set(user, intervalHandle);
|
|
626
|
-
}
|
|
627
|
-
stopLeak(user) {
|
|
628
|
-
if (!this.intervalHandles.has(user)) {
|
|
629
|
-
return;
|
|
630
|
-
}
|
|
631
|
-
clearInterval(this.intervalHandles.get(user));
|
|
632
|
-
this.intervalHandles.delete(user);
|
|
633
|
-
}
|
|
634
|
-
close() {
|
|
635
|
-
for (const user of this.intervalHandles.keys()) {
|
|
636
|
-
this.stopLeak(user);
|
|
637
|
-
}
|
|
638
|
-
}
|
|
639
|
-
};
|
|
562
|
+
// transport/transport.ts
|
|
563
|
+
var import_api3 = require("@opentelemetry/api");
|
|
640
564
|
|
|
641
565
|
// codec/json.ts
|
|
642
566
|
var encoder = new TextEncoder();
|
|
@@ -690,8 +614,7 @@ var NaiveJsonCodec = {
|
|
|
690
614
|
}
|
|
691
615
|
};
|
|
692
616
|
|
|
693
|
-
// transport/
|
|
694
|
-
var import_api3 = require("@opentelemetry/api");
|
|
617
|
+
// transport/options.ts
|
|
695
618
|
var defaultTransportOptions = {
|
|
696
619
|
heartbeatIntervalMs: 1e3,
|
|
697
620
|
heartbeatsUntilDead: 2,
|
|
@@ -712,6 +635,8 @@ var defaultClientTransportOptions = {
|
|
|
712
635
|
var defaultServerTransportOptions = {
|
|
713
636
|
...defaultTransportOptions
|
|
714
637
|
};
|
|
638
|
+
|
|
639
|
+
// transport/transport.ts
|
|
715
640
|
var Transport = class {
|
|
716
641
|
/**
|
|
717
642
|
* The status of the transport.
|
|
@@ -866,6 +791,16 @@ var Transport = class {
|
|
|
866
791
|
* @param connectedTo The peer we are connected to.
|
|
867
792
|
*/
|
|
868
793
|
onDisconnect(conn, session) {
|
|
794
|
+
if (session.connection !== void 0 && session.connection.id !== conn.id) {
|
|
795
|
+
session.telemetry.span.addEvent("onDisconnect race");
|
|
796
|
+
this.log?.warn("onDisconnect race", {
|
|
797
|
+
clientId: this.clientId,
|
|
798
|
+
...session.loggingMetadata,
|
|
799
|
+
...conn.loggingMetadata,
|
|
800
|
+
tags: ["invariant-violation"]
|
|
801
|
+
});
|
|
802
|
+
return;
|
|
803
|
+
}
|
|
869
804
|
conn.telemetry?.span.end();
|
|
870
805
|
this.eventDispatcher.dispatchEvent("connectionStatus", {
|
|
871
806
|
status: "disconnect",
|
|
@@ -873,6 +808,16 @@ var Transport = class {
|
|
|
873
808
|
});
|
|
874
809
|
session.connection = void 0;
|
|
875
810
|
session.beginGrace(() => {
|
|
811
|
+
if (session.connection !== void 0) {
|
|
812
|
+
session.telemetry.span.addEvent("session grace period race");
|
|
813
|
+
this.log?.warn("session grace period race", {
|
|
814
|
+
clientId: this.clientId,
|
|
815
|
+
...session.loggingMetadata,
|
|
816
|
+
...conn.loggingMetadata,
|
|
817
|
+
tags: ["invariant-violation"]
|
|
818
|
+
});
|
|
819
|
+
return;
|
|
820
|
+
}
|
|
876
821
|
session.telemetry.span.addEvent("session grace period expired");
|
|
877
822
|
this.deleteSession({
|
|
878
823
|
session,
|
|
@@ -1040,6 +985,91 @@ var Transport = class {
|
|
|
1040
985
|
return this.status;
|
|
1041
986
|
}
|
|
1042
987
|
};
|
|
988
|
+
|
|
989
|
+
// transport/client.ts
|
|
990
|
+
var import_api4 = require("@opentelemetry/api");
|
|
991
|
+
|
|
992
|
+
// transport/rateLimit.ts
|
|
993
|
+
var LeakyBucketRateLimit = class {
|
|
994
|
+
budgetConsumed;
|
|
995
|
+
intervalHandles;
|
|
996
|
+
options;
|
|
997
|
+
constructor(options) {
|
|
998
|
+
this.options = options;
|
|
999
|
+
this.budgetConsumed = /* @__PURE__ */ new Map();
|
|
1000
|
+
this.intervalHandles = /* @__PURE__ */ new Map();
|
|
1001
|
+
}
|
|
1002
|
+
getBackoffMs(user) {
|
|
1003
|
+
if (!this.budgetConsumed.has(user))
|
|
1004
|
+
return 0;
|
|
1005
|
+
const exponent = Math.max(0, this.getBudgetConsumed(user) - 1);
|
|
1006
|
+
const jitter = Math.floor(Math.random() * this.options.maxJitterMs);
|
|
1007
|
+
const backoffMs = Math.min(
|
|
1008
|
+
this.options.baseIntervalMs * 2 ** exponent,
|
|
1009
|
+
this.options.maxBackoffMs
|
|
1010
|
+
);
|
|
1011
|
+
return backoffMs + jitter;
|
|
1012
|
+
}
|
|
1013
|
+
get totalBudgetRestoreTime() {
|
|
1014
|
+
return this.options.budgetRestoreIntervalMs * this.options.attemptBudgetCapacity;
|
|
1015
|
+
}
|
|
1016
|
+
consumeBudget(user) {
|
|
1017
|
+
this.stopLeak(user);
|
|
1018
|
+
this.budgetConsumed.set(user, this.getBudgetConsumed(user) + 1);
|
|
1019
|
+
}
|
|
1020
|
+
getBudgetConsumed(user) {
|
|
1021
|
+
return this.budgetConsumed.get(user) ?? 0;
|
|
1022
|
+
}
|
|
1023
|
+
hasBudget(user) {
|
|
1024
|
+
return this.getBudgetConsumed(user) < this.options.attemptBudgetCapacity;
|
|
1025
|
+
}
|
|
1026
|
+
startRestoringBudget(user) {
|
|
1027
|
+
if (this.intervalHandles.has(user)) {
|
|
1028
|
+
return;
|
|
1029
|
+
}
|
|
1030
|
+
const restoreBudgetForUser = () => {
|
|
1031
|
+
const currentBudget = this.budgetConsumed.get(user);
|
|
1032
|
+
if (!currentBudget) {
|
|
1033
|
+
this.stopLeak(user);
|
|
1034
|
+
return;
|
|
1035
|
+
}
|
|
1036
|
+
const newBudget = currentBudget - 1;
|
|
1037
|
+
if (newBudget === 0) {
|
|
1038
|
+
this.budgetConsumed.delete(user);
|
|
1039
|
+
return;
|
|
1040
|
+
}
|
|
1041
|
+
this.budgetConsumed.set(user, newBudget);
|
|
1042
|
+
};
|
|
1043
|
+
const intervalHandle = setInterval(
|
|
1044
|
+
restoreBudgetForUser,
|
|
1045
|
+
this.options.budgetRestoreIntervalMs
|
|
1046
|
+
);
|
|
1047
|
+
this.intervalHandles.set(user, intervalHandle);
|
|
1048
|
+
}
|
|
1049
|
+
stopLeak(user) {
|
|
1050
|
+
if (!this.intervalHandles.has(user)) {
|
|
1051
|
+
return;
|
|
1052
|
+
}
|
|
1053
|
+
clearInterval(this.intervalHandles.get(user));
|
|
1054
|
+
this.intervalHandles.delete(user);
|
|
1055
|
+
}
|
|
1056
|
+
close() {
|
|
1057
|
+
for (const user of this.intervalHandles.keys()) {
|
|
1058
|
+
this.stopLeak(user);
|
|
1059
|
+
}
|
|
1060
|
+
}
|
|
1061
|
+
};
|
|
1062
|
+
|
|
1063
|
+
// util/stringify.ts
|
|
1064
|
+
function coerceErrorString(err) {
|
|
1065
|
+
if (err instanceof Error) {
|
|
1066
|
+
return err.message || "unknown reason";
|
|
1067
|
+
}
|
|
1068
|
+
return `[coerced to error] ${String(err)}`;
|
|
1069
|
+
}
|
|
1070
|
+
|
|
1071
|
+
// transport/client.ts
|
|
1072
|
+
var import_value2 = require("@sinclair/typebox/value");
|
|
1043
1073
|
var ClientTransport = class extends Transport {
|
|
1044
1074
|
/**
|
|
1045
1075
|
* The options for this transport.
|
|
@@ -1100,7 +1130,7 @@ var ClientTransport = class extends Transport {
|
|
|
1100
1130
|
const parsed = this.parseMsg(data2, conn);
|
|
1101
1131
|
if (!parsed) {
|
|
1102
1132
|
conn.telemetry?.span.setStatus({
|
|
1103
|
-
code:
|
|
1133
|
+
code: import_api4.SpanStatusCode.ERROR,
|
|
1104
1134
|
message: "message parse failure"
|
|
1105
1135
|
});
|
|
1106
1136
|
conn.close();
|
|
@@ -1131,7 +1161,7 @@ var ClientTransport = class extends Transport {
|
|
|
1131
1161
|
});
|
|
1132
1162
|
conn.addErrorListener((err) => {
|
|
1133
1163
|
conn.telemetry?.span.setStatus({
|
|
1134
|
-
code:
|
|
1164
|
+
code: import_api4.SpanStatusCode.ERROR,
|
|
1135
1165
|
message: "connection error"
|
|
1136
1166
|
});
|
|
1137
1167
|
this.log?.warn(
|
|
@@ -1149,7 +1179,7 @@ var ClientTransport = class extends Transport {
|
|
|
1149
1179
|
const parsed = this.parseMsg(data, conn);
|
|
1150
1180
|
if (!parsed) {
|
|
1151
1181
|
conn.telemetry?.span.setStatus({
|
|
1152
|
-
code:
|
|
1182
|
+
code: import_api4.SpanStatusCode.ERROR,
|
|
1153
1183
|
message: "non-transport message"
|
|
1154
1184
|
});
|
|
1155
1185
|
this.protocolError(
|
|
@@ -1158,9 +1188,9 @@ var ClientTransport = class extends Transport {
|
|
|
1158
1188
|
);
|
|
1159
1189
|
return false;
|
|
1160
1190
|
}
|
|
1161
|
-
if (!
|
|
1191
|
+
if (!import_value2.Value.Check(ControlMessageHandshakeResponseSchema, parsed.payload)) {
|
|
1162
1192
|
conn.telemetry?.span.setStatus({
|
|
1163
|
-
code:
|
|
1193
|
+
code: import_api4.SpanStatusCode.ERROR,
|
|
1164
1194
|
message: "invalid handshake response"
|
|
1165
1195
|
});
|
|
1166
1196
|
this.log?.warn(`received invalid handshake resp`, {
|
|
@@ -1169,7 +1199,7 @@ var ClientTransport = class extends Transport {
|
|
|
1169
1199
|
connectedTo: parsed.from,
|
|
1170
1200
|
transportMessage: parsed,
|
|
1171
1201
|
validationErrors: [
|
|
1172
|
-
...
|
|
1202
|
+
...import_value2.Value.Errors(
|
|
1173
1203
|
ControlMessageHandshakeResponseSchema,
|
|
1174
1204
|
parsed.payload
|
|
1175
1205
|
)
|
|
@@ -1183,7 +1213,7 @@ var ClientTransport = class extends Transport {
|
|
|
1183
1213
|
}
|
|
1184
1214
|
if (!parsed.payload.status.ok) {
|
|
1185
1215
|
conn.telemetry?.span.setStatus({
|
|
1186
|
-
code:
|
|
1216
|
+
code: import_api4.SpanStatusCode.ERROR,
|
|
1187
1217
|
message: "handshake rejected"
|
|
1188
1218
|
});
|
|
1189
1219
|
this.log?.warn(`received handshake rejection`, {
|
|
@@ -1205,7 +1235,7 @@ var ClientTransport = class extends Transport {
|
|
|
1205
1235
|
closeHandshakingConnection: true
|
|
1206
1236
|
});
|
|
1207
1237
|
conn.telemetry?.span.setStatus({
|
|
1208
|
-
code:
|
|
1238
|
+
code: import_api4.SpanStatusCode.ERROR,
|
|
1209
1239
|
message: "session id mismatch"
|
|
1210
1240
|
});
|
|
1211
1241
|
this.log?.warn(`handshake from ${parsed.from} session id mismatch`, {
|
|
@@ -1305,7 +1335,7 @@ var ClientTransport = class extends Transport {
|
|
|
1305
1335
|
} catch (err) {
|
|
1306
1336
|
const errStr = coerceErrorString(err);
|
|
1307
1337
|
span.recordException(errStr);
|
|
1308
|
-
span.setStatus({ code:
|
|
1338
|
+
span.setStatus({ code: import_api4.SpanStatusCode.ERROR });
|
|
1309
1339
|
throw err;
|
|
1310
1340
|
} finally {
|
|
1311
1341
|
span.end();
|
|
@@ -1356,13 +1386,13 @@ var ClientTransport = class extends Transport {
|
|
|
1356
1386
|
let metadata = void 0;
|
|
1357
1387
|
if (this.handshakeExtensions) {
|
|
1358
1388
|
metadata = await this.handshakeExtensions.construct();
|
|
1359
|
-
if (!
|
|
1389
|
+
if (!import_value2.Value.Check(this.handshakeExtensions.schema, metadata)) {
|
|
1360
1390
|
this.log?.error(`constructed handshake metadata did not match schema`, {
|
|
1361
1391
|
...conn.loggingMetadata,
|
|
1362
1392
|
clientId: this.clientId,
|
|
1363
1393
|
connectedTo: to,
|
|
1364
1394
|
validationErrors: [
|
|
1365
|
-
...
|
|
1395
|
+
...import_value2.Value.Errors(this.handshakeExtensions.schema, metadata)
|
|
1366
1396
|
],
|
|
1367
1397
|
tags: ["invariant-violation"]
|
|
1368
1398
|
});
|
|
@@ -1371,7 +1401,7 @@ var ClientTransport = class extends Transport {
|
|
|
1371
1401
|
"handshake metadata did not match schema"
|
|
1372
1402
|
);
|
|
1373
1403
|
conn.telemetry?.span.setStatus({
|
|
1374
|
-
code:
|
|
1404
|
+
code: import_api4.SpanStatusCode.ERROR,
|
|
1375
1405
|
message: "handshake meta mismatch"
|
|
1376
1406
|
});
|
|
1377
1407
|
return false;
|
|
@@ -1399,6 +1429,10 @@ var ClientTransport = class extends Transport {
|
|
|
1399
1429
|
super.close();
|
|
1400
1430
|
}
|
|
1401
1431
|
};
|
|
1432
|
+
|
|
1433
|
+
// transport/server.ts
|
|
1434
|
+
var import_api5 = require("@opentelemetry/api");
|
|
1435
|
+
var import_value3 = require("@sinclair/typebox/value");
|
|
1402
1436
|
var ServerTransport = class extends Transport {
|
|
1403
1437
|
/**
|
|
1404
1438
|
* The options for this transport.
|
|
@@ -1447,7 +1481,7 @@ var ServerTransport = class extends Transport {
|
|
|
1447
1481
|
}
|
|
1448
1482
|
);
|
|
1449
1483
|
conn.telemetry?.span.setStatus({
|
|
1450
|
-
code:
|
|
1484
|
+
code: import_api5.SpanStatusCode.ERROR,
|
|
1451
1485
|
message: "handshake timeout"
|
|
1452
1486
|
});
|
|
1453
1487
|
conn.close();
|
|
@@ -1498,7 +1532,7 @@ var ServerTransport = class extends Transport {
|
|
|
1498
1532
|
});
|
|
1499
1533
|
conn.addErrorListener((err) => {
|
|
1500
1534
|
conn.telemetry?.span.setStatus({
|
|
1501
|
-
code:
|
|
1535
|
+
code: import_api5.SpanStatusCode.ERROR,
|
|
1502
1536
|
message: "connection error"
|
|
1503
1537
|
});
|
|
1504
1538
|
if (!session)
|
|
@@ -1512,9 +1546,9 @@ var ServerTransport = class extends Transport {
|
|
|
1512
1546
|
async validateHandshakeMetadata(conn, session, rawMetadata, from) {
|
|
1513
1547
|
let parsedMetadata = {};
|
|
1514
1548
|
if (this.handshakeExtensions) {
|
|
1515
|
-
if (!
|
|
1549
|
+
if (!import_value3.Value.Check(this.handshakeExtensions.schema, rawMetadata)) {
|
|
1516
1550
|
conn.telemetry?.span.setStatus({
|
|
1517
|
-
code:
|
|
1551
|
+
code: import_api5.SpanStatusCode.ERROR,
|
|
1518
1552
|
message: "malformed handshake meta"
|
|
1519
1553
|
});
|
|
1520
1554
|
const reason = "received malformed handshake metadata";
|
|
@@ -1527,7 +1561,7 @@ var ServerTransport = class extends Transport {
|
|
|
1527
1561
|
...conn.loggingMetadata,
|
|
1528
1562
|
clientId: this.clientId,
|
|
1529
1563
|
validationErrors: [
|
|
1530
|
-
...
|
|
1564
|
+
...import_value3.Value.Errors(this.handshakeExtensions.schema, rawMetadata)
|
|
1531
1565
|
]
|
|
1532
1566
|
});
|
|
1533
1567
|
this.protocolError(ProtocolError.HandshakeFailed, reason);
|
|
@@ -1541,7 +1575,7 @@ var ServerTransport = class extends Transport {
|
|
|
1541
1575
|
if (parsedMetadata === false) {
|
|
1542
1576
|
const reason = "rejected by handshake handler";
|
|
1543
1577
|
conn.telemetry?.span.setStatus({
|
|
1544
|
-
code:
|
|
1578
|
+
code: import_api5.SpanStatusCode.ERROR,
|
|
1545
1579
|
message: reason
|
|
1546
1580
|
});
|
|
1547
1581
|
const responseMsg = handshakeResponseMessage(this.clientId, from, {
|
|
@@ -1563,7 +1597,7 @@ var ServerTransport = class extends Transport {
|
|
|
1563
1597
|
const parsed = this.parseMsg(data, conn);
|
|
1564
1598
|
if (!parsed) {
|
|
1565
1599
|
conn.telemetry?.span.setStatus({
|
|
1566
|
-
code:
|
|
1600
|
+
code: import_api5.SpanStatusCode.ERROR,
|
|
1567
1601
|
message: "non-transport message"
|
|
1568
1602
|
});
|
|
1569
1603
|
this.protocolError(
|
|
@@ -1572,9 +1606,9 @@ var ServerTransport = class extends Transport {
|
|
|
1572
1606
|
);
|
|
1573
1607
|
return false;
|
|
1574
1608
|
}
|
|
1575
|
-
if (!
|
|
1609
|
+
if (!import_value3.Value.Check(ControlMessageHandshakeRequestSchema, parsed.payload)) {
|
|
1576
1610
|
conn.telemetry?.span.setStatus({
|
|
1577
|
-
code:
|
|
1611
|
+
code: import_api5.SpanStatusCode.ERROR,
|
|
1578
1612
|
message: "invalid handshake request"
|
|
1579
1613
|
});
|
|
1580
1614
|
const reason = "received invalid handshake msg";
|
|
@@ -1590,7 +1624,7 @@ var ServerTransport = class extends Transport {
|
|
|
1590
1624
|
// before passing it to user-land
|
|
1591
1625
|
transportMessage: parsed,
|
|
1592
1626
|
validationErrors: [
|
|
1593
|
-
...
|
|
1627
|
+
...import_value3.Value.Errors(ControlMessageHandshakeRequestSchema, parsed.payload)
|
|
1594
1628
|
]
|
|
1595
1629
|
});
|
|
1596
1630
|
this.protocolError(
|
|
@@ -1602,7 +1636,7 @@ var ServerTransport = class extends Transport {
|
|
|
1602
1636
|
const gotVersion = parsed.payload.protocolVersion;
|
|
1603
1637
|
if (gotVersion !== PROTOCOL_VERSION) {
|
|
1604
1638
|
conn.telemetry?.span.setStatus({
|
|
1605
|
-
code:
|
|
1639
|
+
code: import_api5.SpanStatusCode.ERROR,
|
|
1606
1640
|
message: "incorrect protocol version"
|
|
1607
1641
|
});
|
|
1608
1642
|
const reason = `incorrect version (got: ${gotVersion} wanted ${PROTOCOL_VERSION})`;
|