@replit/river 0.23.11 → 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.
Files changed (74) hide show
  1. package/dist/chunk-2FNLANTJ.js +327 -0
  2. package/dist/chunk-2FNLANTJ.js.map +1 -0
  3. package/dist/{chunk-3AW3IXVD.js → chunk-4PVU7J25.js} +1 -21
  4. package/dist/chunk-4PVU7J25.js.map +1 -0
  5. package/dist/{chunk-T6YEMFUF.js → chunk-4QZOW4DH.js} +2 -2
  6. package/dist/{chunk-MEHCOYKJ.js → chunk-ES4XO2XD.js} +2 -2
  7. package/dist/{chunk-MEHCOYKJ.js.map → chunk-ES4XO2XD.js.map} +1 -1
  8. package/dist/{chunk-ZSKCZYVU.js → chunk-KFTGQ3QC.js} +2 -2
  9. package/dist/chunk-KFTGQ3QC.js.map +1 -0
  10. package/dist/chunk-S4DUN7KK.js +455 -0
  11. package/dist/chunk-S4DUN7KK.js.map +1 -0
  12. package/dist/{chunk-HM7VDTDJ.js → chunk-SX6HI63Q.js} +2 -2
  13. package/dist/chunk-XM656KMN.js +408 -0
  14. package/dist/chunk-XM656KMN.js.map +1 -0
  15. package/dist/chunk-ZUKDZY54.js +271 -0
  16. package/dist/chunk-ZUKDZY54.js.map +1 -0
  17. package/dist/client-dd5c9dd0.d.ts +52 -0
  18. package/dist/codec/index.js +20 -2
  19. package/dist/codec/index.js.map +1 -1
  20. package/dist/{connection-261eee8f.d.ts → connection-39816c00.d.ts} +1 -1
  21. package/dist/{connection-c1eeb95d.d.ts → connection-40318f22.d.ts} +1 -1
  22. package/dist/{transport-c8f36f6d.d.ts → handshake-e428d1c8.d.ts} +91 -155
  23. package/dist/{index-60f03cb7.d.ts → index-ea74cdbb.d.ts} +1 -1
  24. package/dist/logging/index.d.cts +1 -1
  25. package/dist/logging/index.d.ts +1 -1
  26. package/dist/router/index.cjs +1 -1
  27. package/dist/router/index.cjs.map +1 -1
  28. package/dist/router/index.d.cts +8 -6
  29. package/dist/router/index.d.ts +8 -6
  30. package/dist/router/index.js +2 -2
  31. package/dist/server-ebf80863.d.ts +24 -0
  32. package/dist/{services-524bab79.d.ts → services-f406b3aa.d.ts} +3 -2
  33. package/dist/transport/impls/uds/client.cjs +222 -174
  34. package/dist/transport/impls/uds/client.cjs.map +1 -1
  35. package/dist/transport/impls/uds/client.d.cts +6 -5
  36. package/dist/transport/impls/uds/client.d.ts +6 -5
  37. package/dist/transport/impls/uds/client.js +6 -4
  38. package/dist/transport/impls/uds/client.js.map +1 -1
  39. package/dist/transport/impls/uds/server.cjs +252 -223
  40. package/dist/transport/impls/uds/server.cjs.map +1 -1
  41. package/dist/transport/impls/uds/server.d.cts +6 -5
  42. package/dist/transport/impls/uds/server.d.ts +6 -5
  43. package/dist/transport/impls/uds/server.js +8 -6
  44. package/dist/transport/impls/uds/server.js.map +1 -1
  45. package/dist/transport/impls/ws/client.cjs +224 -176
  46. package/dist/transport/impls/ws/client.cjs.map +1 -1
  47. package/dist/transport/impls/ws/client.d.cts +6 -5
  48. package/dist/transport/impls/ws/client.d.ts +6 -5
  49. package/dist/transport/impls/ws/client.js +6 -4
  50. package/dist/transport/impls/ws/client.js.map +1 -1
  51. package/dist/transport/impls/ws/server.cjs +206 -177
  52. package/dist/transport/impls/ws/server.cjs.map +1 -1
  53. package/dist/transport/impls/ws/server.d.cts +4 -3
  54. package/dist/transport/impls/ws/server.d.ts +4 -3
  55. package/dist/transport/impls/ws/server.js +8 -6
  56. package/dist/transport/impls/ws/server.js.map +1 -1
  57. package/dist/transport/index.cjs +170 -116
  58. package/dist/transport/index.cjs.map +1 -1
  59. package/dist/transport/index.d.cts +4 -2
  60. package/dist/transport/index.d.ts +4 -2
  61. package/dist/transport/index.js +14 -8
  62. package/dist/util/testHelpers.cjs +6 -8
  63. package/dist/util/testHelpers.cjs.map +1 -1
  64. package/dist/util/testHelpers.d.cts +5 -4
  65. package/dist/util/testHelpers.d.ts +5 -4
  66. package/dist/util/testHelpers.js +4 -5
  67. package/dist/util/testHelpers.js.map +1 -1
  68. package/package.json +1 -1
  69. package/dist/chunk-3AW3IXVD.js.map +0 -1
  70. package/dist/chunk-EOJMKMDO.js +0 -1372
  71. package/dist/chunk-EOJMKMDO.js.map +0 -1
  72. package/dist/chunk-ZSKCZYVU.js.map +0 -1
  73. /package/dist/{chunk-T6YEMFUF.js.map → chunk-4QZOW4DH.js.map} +0 -0
  74. /package/dist/{chunk-HM7VDTDJ.js.map → chunk-SX6HI63Q.js.map} +0 -0
@@ -24,8 +24,8 @@ __export(server_exports, {
24
24
  });
25
25
  module.exports = __toCommonJS(server_exports);
26
26
 
27
- // transport/transport.ts
28
- var import_value = require("@sinclair/typebox/value");
27
+ // transport/session.ts
28
+ var import_nanoid2 = require("nanoid");
29
29
 
30
30
  // transport/message.ts
31
31
  var import_typebox = require("@sinclair/typebox");
@@ -102,104 +102,11 @@ function isAck(controlFlag) {
102
102
  return (controlFlag & 1 /* AckBit */) === 1 /* AckBit */;
103
103
  }
104
104
 
105
- // logging/log.ts
106
- var LoggingLevels = {
107
- debug: -1,
108
- info: 0,
109
- warn: 1,
110
- error: 2
111
- };
112
- var cleanedLogFn = (log) => {
113
- return (msg, metadata) => {
114
- if (!metadata?.transportMessage) {
115
- log(msg, metadata);
116
- return;
117
- }
118
- const { payload, ...rest } = metadata.transportMessage;
119
- metadata.transportMessage = rest;
120
- log(msg, metadata);
121
- };
122
- };
123
- var BaseLogger = class {
124
- minLevel;
125
- output;
126
- constructor(output, minLevel = "info") {
127
- this.minLevel = minLevel;
128
- this.output = output;
129
- }
130
- debug(msg, metadata) {
131
- if (LoggingLevels[this.minLevel] <= LoggingLevels.debug) {
132
- this.output(msg, metadata ?? {}, "debug");
133
- }
134
- }
135
- info(msg, metadata) {
136
- if (LoggingLevels[this.minLevel] <= LoggingLevels.info) {
137
- this.output(msg, metadata ?? {}, "info");
138
- }
139
- }
140
- warn(msg, metadata) {
141
- if (LoggingLevels[this.minLevel] <= LoggingLevels.warn) {
142
- this.output(msg, metadata ?? {}, "warn");
143
- }
144
- }
145
- error(msg, metadata) {
146
- if (LoggingLevels[this.minLevel] <= LoggingLevels.error) {
147
- this.output(msg, metadata ?? {}, "error");
148
- }
149
- }
150
- };
151
- var createLogProxy = (log) => ({
152
- debug: cleanedLogFn(log.debug.bind(log)),
153
- info: cleanedLogFn(log.info.bind(log)),
154
- warn: cleanedLogFn(log.warn.bind(log)),
155
- error: cleanedLogFn(log.error.bind(log))
156
- });
157
-
158
- // transport/events.ts
159
- var ProtocolError = {
160
- RetriesExceeded: "conn_retry_exceeded",
161
- HandshakeFailed: "handshake_failed",
162
- MessageOrderingViolated: "message_ordering_violated"
163
- };
164
- var EventDispatcher = class {
165
- eventListeners = {};
166
- removeAllListeners() {
167
- this.eventListeners = {};
168
- }
169
- numberOfListeners(eventType) {
170
- return this.eventListeners[eventType]?.size ?? 0;
171
- }
172
- addEventListener(eventType, handler) {
173
- if (!this.eventListeners[eventType]) {
174
- this.eventListeners[eventType] = /* @__PURE__ */ new Set();
175
- }
176
- this.eventListeners[eventType]?.add(handler);
177
- }
178
- removeEventListener(eventType, handler) {
179
- const handlers = this.eventListeners[eventType];
180
- if (handlers) {
181
- this.eventListeners[eventType]?.delete(handler);
182
- }
183
- }
184
- dispatchEvent(eventType, event) {
185
- const handlers = this.eventListeners[eventType];
186
- if (handlers) {
187
- const copy = [...handlers];
188
- for (const handler of copy) {
189
- handler(event);
190
- }
191
- }
192
- }
193
- };
194
-
195
- // transport/session.ts
196
- var import_nanoid2 = require("nanoid");
197
-
198
105
  // tracing/index.ts
199
106
  var import_api = require("@opentelemetry/api");
200
107
 
201
108
  // package.json
202
- var version = "0.23.11";
109
+ var version = "0.23.13";
203
110
 
204
111
  // tracing/index.ts
205
112
  function createSessionTelemetryInfo(session, propagationCtx) {
@@ -449,10 +356,12 @@ var Session = class {
449
356
  this.connection.close();
450
357
  this.connection = void 0;
451
358
  }
452
- replaceWithNewConnection(newConn) {
359
+ replaceWithNewConnection(newConn, isTransparentReconnect) {
453
360
  this.closeStaleConnection(newConn);
454
361
  this.cancelGrace();
455
- this.sendBufferedMessages(newConn);
362
+ if (isTransparentReconnect) {
363
+ this.sendBufferedMessages(newConn);
364
+ }
456
365
  this.connection = newConn;
457
366
  this.handshakingConnection = void 0;
458
367
  }
@@ -523,13 +432,59 @@ var Session = class {
523
432
  }
524
433
  };
525
434
 
526
- // util/stringify.ts
527
- function coerceErrorString(err) {
528
- if (err instanceof Error) {
529
- return err.message || "unknown reason";
435
+ // transport/impls/ws/connection.ts
436
+ var WebSocketConnection = class extends Connection {
437
+ errorCb = null;
438
+ closeCb = null;
439
+ ws;
440
+ constructor(ws) {
441
+ super();
442
+ this.ws = ws;
443
+ this.ws.binaryType = "arraybuffer";
444
+ let didError = false;
445
+ this.ws.onerror = () => {
446
+ didError = true;
447
+ };
448
+ this.ws.onclose = ({ code, reason }) => {
449
+ if (didError && this.errorCb) {
450
+ this.errorCb(
451
+ new Error(
452
+ `websocket closed with code and reason: ${code} - ${reason}`
453
+ )
454
+ );
455
+ }
456
+ if (this.closeCb) {
457
+ this.closeCb();
458
+ }
459
+ };
530
460
  }
531
- return `[coerced to error] ${String(err)}`;
532
- }
461
+ addDataListener(cb) {
462
+ this.ws.onmessage = (msg) => cb(msg.data);
463
+ }
464
+ removeDataListener() {
465
+ this.ws.onmessage = null;
466
+ }
467
+ addCloseListener(cb) {
468
+ this.closeCb = cb;
469
+ }
470
+ addErrorListener(cb) {
471
+ this.errorCb = cb;
472
+ }
473
+ send(payload) {
474
+ if (this.ws.readyState === this.ws.OPEN) {
475
+ this.ws.send(payload);
476
+ return true;
477
+ } else {
478
+ return false;
479
+ }
480
+ }
481
+ close() {
482
+ this.ws.close();
483
+ }
484
+ };
485
+
486
+ // transport/server.ts
487
+ var import_api4 = require("@opentelemetry/api");
533
488
 
534
489
  // codec/json.ts
535
490
  var encoder = new TextEncoder();
@@ -583,8 +538,7 @@ var NaiveJsonCodec = {
583
538
  }
584
539
  };
585
540
 
586
- // transport/transport.ts
587
- var import_api3 = require("@opentelemetry/api");
541
+ // transport/options.ts
588
542
  var defaultTransportOptions = {
589
543
  heartbeatIntervalMs: 1e3,
590
544
  heartbeatsUntilDead: 2,
@@ -605,6 +559,102 @@ var defaultClientTransportOptions = {
605
559
  var defaultServerTransportOptions = {
606
560
  ...defaultTransportOptions
607
561
  };
562
+
563
+ // transport/transport.ts
564
+ var import_value = require("@sinclair/typebox/value");
565
+
566
+ // logging/log.ts
567
+ var LoggingLevels = {
568
+ debug: -1,
569
+ info: 0,
570
+ warn: 1,
571
+ error: 2
572
+ };
573
+ var cleanedLogFn = (log) => {
574
+ return (msg, metadata) => {
575
+ if (!metadata?.transportMessage) {
576
+ log(msg, metadata);
577
+ return;
578
+ }
579
+ const { payload, ...rest } = metadata.transportMessage;
580
+ metadata.transportMessage = rest;
581
+ log(msg, metadata);
582
+ };
583
+ };
584
+ var BaseLogger = class {
585
+ minLevel;
586
+ output;
587
+ constructor(output, minLevel = "info") {
588
+ this.minLevel = minLevel;
589
+ this.output = output;
590
+ }
591
+ debug(msg, metadata) {
592
+ if (LoggingLevels[this.minLevel] <= LoggingLevels.debug) {
593
+ this.output(msg, metadata ?? {}, "debug");
594
+ }
595
+ }
596
+ info(msg, metadata) {
597
+ if (LoggingLevels[this.minLevel] <= LoggingLevels.info) {
598
+ this.output(msg, metadata ?? {}, "info");
599
+ }
600
+ }
601
+ warn(msg, metadata) {
602
+ if (LoggingLevels[this.minLevel] <= LoggingLevels.warn) {
603
+ this.output(msg, metadata ?? {}, "warn");
604
+ }
605
+ }
606
+ error(msg, metadata) {
607
+ if (LoggingLevels[this.minLevel] <= LoggingLevels.error) {
608
+ this.output(msg, metadata ?? {}, "error");
609
+ }
610
+ }
611
+ };
612
+ var createLogProxy = (log) => ({
613
+ debug: cleanedLogFn(log.debug.bind(log)),
614
+ info: cleanedLogFn(log.info.bind(log)),
615
+ warn: cleanedLogFn(log.warn.bind(log)),
616
+ error: cleanedLogFn(log.error.bind(log))
617
+ });
618
+
619
+ // transport/events.ts
620
+ var ProtocolError = {
621
+ RetriesExceeded: "conn_retry_exceeded",
622
+ HandshakeFailed: "handshake_failed",
623
+ MessageOrderingViolated: "message_ordering_violated"
624
+ };
625
+ var EventDispatcher = class {
626
+ eventListeners = {};
627
+ removeAllListeners() {
628
+ this.eventListeners = {};
629
+ }
630
+ numberOfListeners(eventType) {
631
+ return this.eventListeners[eventType]?.size ?? 0;
632
+ }
633
+ addEventListener(eventType, handler) {
634
+ if (!this.eventListeners[eventType]) {
635
+ this.eventListeners[eventType] = /* @__PURE__ */ new Set();
636
+ }
637
+ this.eventListeners[eventType]?.add(handler);
638
+ }
639
+ removeEventListener(eventType, handler) {
640
+ const handlers = this.eventListeners[eventType];
641
+ if (handlers) {
642
+ this.eventListeners[eventType]?.delete(handler);
643
+ }
644
+ }
645
+ dispatchEvent(eventType, event) {
646
+ const handlers = this.eventListeners[eventType];
647
+ if (handlers) {
648
+ const copy = [...handlers];
649
+ for (const handler of copy) {
650
+ handler(event);
651
+ }
652
+ }
653
+ }
654
+ };
655
+
656
+ // transport/transport.ts
657
+ var import_api3 = require("@opentelemetry/api");
608
658
  var Transport = class {
609
659
  /**
610
660
  * The status of the transport.
@@ -665,15 +715,13 @@ var Transport = class {
665
715
  * and we know the identity of the connected client.
666
716
  * @param conn The connection object.
667
717
  */
668
- onConnect(conn, session, isReconnect) {
718
+ onConnect(conn, session, isTransparentReconnect) {
669
719
  this.eventDispatcher.dispatchEvent("connectionStatus", {
670
720
  status: "connect",
671
721
  conn
672
722
  });
673
723
  conn.telemetry = createConnectionTelemetryInfo(conn, session.telemetry);
674
- if (isReconnect) {
675
- session.replaceWithNewConnection(conn);
676
- }
724
+ session.replaceWithNewConnection(conn, isTransparentReconnect);
677
725
  this.log?.info(`connected to ${session.to}`, {
678
726
  ...conn.loggingMetadata,
679
727
  ...session.loggingMetadata
@@ -705,7 +753,8 @@ var Transport = class {
705
753
  propagationCtx
706
754
  }) {
707
755
  let session = this.sessions.get(to);
708
- let isReconnect = session !== void 0;
756
+ const isReconnect = session !== void 0;
757
+ let isTransparentReconnect = isReconnect;
709
758
  if (session?.advertisedSessionId !== void 0 && sessionId !== void 0 && session.advertisedSessionId !== sessionId) {
710
759
  this.log?.info(
711
760
  `session for ${to} already exists but has a different session id (expected: ${session.advertisedSessionId}, got: ${sessionId}), creating a new one`,
@@ -716,7 +765,7 @@ var Transport = class {
716
765
  closeHandshakingConnection: handshakingConn !== void 0,
717
766
  handshakingConn
718
767
  });
719
- isReconnect = false;
768
+ isTransparentReconnect = false;
720
769
  session = void 0;
721
770
  }
722
771
  if (!session) {
@@ -732,7 +781,7 @@ var Transport = class {
732
781
  if (handshakingConn !== void 0) {
733
782
  session.replaceWithNewHandshakingConnection(handshakingConn);
734
783
  }
735
- return { session, isReconnect };
784
+ return { session, isReconnect, isTransparentReconnect };
736
785
  }
737
786
  deleteSession({
738
787
  session,
@@ -760,6 +809,16 @@ var Transport = class {
760
809
  * @param connectedTo The peer we are connected to.
761
810
  */
762
811
  onDisconnect(conn, session) {
812
+ if (session.connection !== void 0 && session.connection.id !== conn.id) {
813
+ session.telemetry.span.addEvent("onDisconnect race");
814
+ this.log?.warn("onDisconnect race", {
815
+ clientId: this.clientId,
816
+ ...session.loggingMetadata,
817
+ ...conn.loggingMetadata,
818
+ tags: ["invariant-violation"]
819
+ });
820
+ return;
821
+ }
763
822
  conn.telemetry?.span.end();
764
823
  this.eventDispatcher.dispatchEvent("connectionStatus", {
765
824
  status: "disconnect",
@@ -767,6 +826,16 @@ var Transport = class {
767
826
  });
768
827
  session.connection = void 0;
769
828
  session.beginGrace(() => {
829
+ if (session.connection !== void 0) {
830
+ session.telemetry.span.addEvent("session grace period race");
831
+ this.log?.warn("session grace period race", {
832
+ clientId: this.clientId,
833
+ ...session.loggingMetadata,
834
+ ...conn.loggingMetadata,
835
+ tags: ["invariant-violation"]
836
+ });
837
+ return;
838
+ }
770
839
  session.telemetry.span.addEvent("session grace period expired");
771
840
  this.deleteSession({
772
841
  session,
@@ -934,6 +1003,17 @@ var Transport = class {
934
1003
  return this.status;
935
1004
  }
936
1005
  };
1006
+
1007
+ // util/stringify.ts
1008
+ function coerceErrorString(err) {
1009
+ if (err instanceof Error) {
1010
+ return err.message || "unknown reason";
1011
+ }
1012
+ return `[coerced to error] ${String(err)}`;
1013
+ }
1014
+
1015
+ // transport/server.ts
1016
+ var import_value2 = require("@sinclair/typebox/value");
937
1017
  var ServerTransport = class extends Transport {
938
1018
  /**
939
1019
  * The options for this transport.
@@ -982,7 +1062,7 @@ var ServerTransport = class extends Transport {
982
1062
  }
983
1063
  );
984
1064
  conn.telemetry?.span.setStatus({
985
- code: import_api3.SpanStatusCode.ERROR,
1065
+ code: import_api4.SpanStatusCode.ERROR,
986
1066
  message: "handshake timeout"
987
1067
  });
988
1068
  conn.close();
@@ -1033,7 +1113,7 @@ var ServerTransport = class extends Transport {
1033
1113
  });
1034
1114
  conn.addErrorListener((err) => {
1035
1115
  conn.telemetry?.span.setStatus({
1036
- code: import_api3.SpanStatusCode.ERROR,
1116
+ code: import_api4.SpanStatusCode.ERROR,
1037
1117
  message: "connection error"
1038
1118
  });
1039
1119
  if (!session)
@@ -1047,9 +1127,9 @@ var ServerTransport = class extends Transport {
1047
1127
  async validateHandshakeMetadata(conn, session, rawMetadata, from) {
1048
1128
  let parsedMetadata = {};
1049
1129
  if (this.handshakeExtensions) {
1050
- if (!import_value.Value.Check(this.handshakeExtensions.schema, rawMetadata)) {
1130
+ if (!import_value2.Value.Check(this.handshakeExtensions.schema, rawMetadata)) {
1051
1131
  conn.telemetry?.span.setStatus({
1052
- code: import_api3.SpanStatusCode.ERROR,
1132
+ code: import_api4.SpanStatusCode.ERROR,
1053
1133
  message: "malformed handshake meta"
1054
1134
  });
1055
1135
  const reason = "received malformed handshake metadata";
@@ -1062,7 +1142,7 @@ var ServerTransport = class extends Transport {
1062
1142
  ...conn.loggingMetadata,
1063
1143
  clientId: this.clientId,
1064
1144
  validationErrors: [
1065
- ...import_value.Value.Errors(this.handshakeExtensions.schema, rawMetadata)
1145
+ ...import_value2.Value.Errors(this.handshakeExtensions.schema, rawMetadata)
1066
1146
  ]
1067
1147
  });
1068
1148
  this.protocolError(ProtocolError.HandshakeFailed, reason);
@@ -1076,7 +1156,7 @@ var ServerTransport = class extends Transport {
1076
1156
  if (parsedMetadata === false) {
1077
1157
  const reason = "rejected by handshake handler";
1078
1158
  conn.telemetry?.span.setStatus({
1079
- code: import_api3.SpanStatusCode.ERROR,
1159
+ code: import_api4.SpanStatusCode.ERROR,
1080
1160
  message: reason
1081
1161
  });
1082
1162
  const responseMsg = handshakeResponseMessage(this.clientId, from, {
@@ -1098,7 +1178,7 @@ var ServerTransport = class extends Transport {
1098
1178
  const parsed = this.parseMsg(data, conn);
1099
1179
  if (!parsed) {
1100
1180
  conn.telemetry?.span.setStatus({
1101
- code: import_api3.SpanStatusCode.ERROR,
1181
+ code: import_api4.SpanStatusCode.ERROR,
1102
1182
  message: "non-transport message"
1103
1183
  });
1104
1184
  this.protocolError(
@@ -1107,9 +1187,9 @@ var ServerTransport = class extends Transport {
1107
1187
  );
1108
1188
  return false;
1109
1189
  }
1110
- if (!import_value.Value.Check(ControlMessageHandshakeRequestSchema, parsed.payload)) {
1190
+ if (!import_value2.Value.Check(ControlMessageHandshakeRequestSchema, parsed.payload)) {
1111
1191
  conn.telemetry?.span.setStatus({
1112
- code: import_api3.SpanStatusCode.ERROR,
1192
+ code: import_api4.SpanStatusCode.ERROR,
1113
1193
  message: "invalid handshake request"
1114
1194
  });
1115
1195
  const reason = "received invalid handshake msg";
@@ -1125,7 +1205,7 @@ var ServerTransport = class extends Transport {
1125
1205
  // before passing it to user-land
1126
1206
  transportMessage: parsed,
1127
1207
  validationErrors: [
1128
- ...import_value.Value.Errors(ControlMessageHandshakeRequestSchema, parsed.payload)
1208
+ ...import_value2.Value.Errors(ControlMessageHandshakeRequestSchema, parsed.payload)
1129
1209
  ]
1130
1210
  });
1131
1211
  this.protocolError(
@@ -1137,7 +1217,7 @@ var ServerTransport = class extends Transport {
1137
1217
  const gotVersion = parsed.payload.protocolVersion;
1138
1218
  if (gotVersion !== PROTOCOL_VERSION) {
1139
1219
  conn.telemetry?.span.setStatus({
1140
- code: import_api3.SpanStatusCode.ERROR,
1220
+ code: import_api4.SpanStatusCode.ERROR,
1141
1221
  message: "incorrect protocol version"
1142
1222
  });
1143
1223
  const reason = `incorrect version (got: ${gotVersion} wanted ${PROTOCOL_VERSION})`;
@@ -1163,7 +1243,7 @@ var ServerTransport = class extends Transport {
1163
1243
  if (parsedMetadata === false) {
1164
1244
  return false;
1165
1245
  }
1166
- const { session, isReconnect } = this.getOrCreateSession({
1246
+ const { session, isTransparentReconnect } = this.getOrCreateSession({
1167
1247
  to: parsed.from,
1168
1248
  conn,
1169
1249
  sessionId: parsed.payload.sessionId,
@@ -1179,62 +1259,11 @@ var ServerTransport = class extends Transport {
1179
1259
  sessionId: session.id
1180
1260
  });
1181
1261
  conn.send(this.codec.toBuffer(responseMsg));
1182
- this.onConnect(conn, session, isReconnect);
1262
+ this.onConnect(conn, session, isTransparentReconnect);
1183
1263
  return session;
1184
1264
  }
1185
1265
  };
1186
1266
 
1187
- // transport/impls/ws/connection.ts
1188
- var WebSocketConnection = class extends Connection {
1189
- errorCb = null;
1190
- closeCb = null;
1191
- ws;
1192
- constructor(ws) {
1193
- super();
1194
- this.ws = ws;
1195
- this.ws.binaryType = "arraybuffer";
1196
- let didError = false;
1197
- this.ws.onerror = () => {
1198
- didError = true;
1199
- };
1200
- this.ws.onclose = ({ code, reason }) => {
1201
- if (didError && this.errorCb) {
1202
- this.errorCb(
1203
- new Error(
1204
- `websocket closed with code and reason: ${code} - ${reason}`
1205
- )
1206
- );
1207
- }
1208
- if (this.closeCb) {
1209
- this.closeCb();
1210
- }
1211
- };
1212
- }
1213
- addDataListener(cb) {
1214
- this.ws.onmessage = (msg) => cb(msg.data);
1215
- }
1216
- removeDataListener() {
1217
- this.ws.onmessage = null;
1218
- }
1219
- addCloseListener(cb) {
1220
- this.closeCb = cb;
1221
- }
1222
- addErrorListener(cb) {
1223
- this.errorCb = cb;
1224
- }
1225
- send(payload) {
1226
- if (this.ws.readyState === this.ws.OPEN) {
1227
- this.ws.send(payload);
1228
- return true;
1229
- } else {
1230
- return false;
1231
- }
1232
- }
1233
- close() {
1234
- this.ws.close();
1235
- }
1236
- };
1237
-
1238
1267
  // transport/impls/ws/server.ts
1239
1268
  var WebSocketServerTransport = class extends ServerTransport {
1240
1269
  wss;