@replit/river 0.23.11 → 0.23.12

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 (51) hide show
  1. package/dist/{chunk-MEHCOYKJ.js → chunk-7RUKEUKE.js} +2 -2
  2. package/dist/{chunk-MEHCOYKJ.js.map → chunk-7RUKEUKE.js.map} +1 -1
  3. package/dist/{chunk-T6YEMFUF.js → chunk-H6KTH6W6.js} +2 -2
  4. package/dist/{chunk-HM7VDTDJ.js → chunk-HDBVL7EF.js} +2 -2
  5. package/dist/{chunk-EOJMKMDO.js → chunk-VRU4IKRT.js} +35 -15
  6. package/dist/chunk-VRU4IKRT.js.map +1 -0
  7. package/dist/{chunk-ZSKCZYVU.js → chunk-XZ6IOBM5.js} +2 -2
  8. package/dist/{connection-c1eeb95d.d.ts → connection-581558f8.d.ts} +1 -1
  9. package/dist/{connection-261eee8f.d.ts → connection-8debd45f.d.ts} +1 -1
  10. package/dist/router/index.cjs +1 -1
  11. package/dist/router/index.cjs.map +1 -1
  12. package/dist/router/index.d.cts +5 -5
  13. package/dist/router/index.d.ts +5 -5
  14. package/dist/router/index.js +2 -2
  15. package/dist/{services-524bab79.d.ts → services-ca72c9f8.d.ts} +1 -1
  16. package/dist/transport/impls/uds/client.cjs +32 -12
  17. package/dist/transport/impls/uds/client.cjs.map +1 -1
  18. package/dist/transport/impls/uds/client.d.cts +2 -2
  19. package/dist/transport/impls/uds/client.d.ts +2 -2
  20. package/dist/transport/impls/uds/client.js +3 -3
  21. package/dist/transport/impls/uds/server.cjs +13 -12
  22. package/dist/transport/impls/uds/server.cjs.map +1 -1
  23. package/dist/transport/impls/uds/server.d.cts +2 -2
  24. package/dist/transport/impls/uds/server.d.ts +2 -2
  25. package/dist/transport/impls/uds/server.js +3 -3
  26. package/dist/transport/impls/ws/client.cjs +32 -12
  27. package/dist/transport/impls/ws/client.cjs.map +1 -1
  28. package/dist/transport/impls/ws/client.d.cts +2 -2
  29. package/dist/transport/impls/ws/client.d.ts +2 -2
  30. package/dist/transport/impls/ws/client.js +3 -3
  31. package/dist/transport/impls/ws/server.cjs +13 -12
  32. package/dist/transport/impls/ws/server.cjs.map +1 -1
  33. package/dist/transport/impls/ws/server.d.cts +2 -2
  34. package/dist/transport/impls/ws/server.d.ts +2 -2
  35. package/dist/transport/impls/ws/server.js +3 -3
  36. package/dist/transport/index.cjs +34 -14
  37. package/dist/transport/index.cjs.map +1 -1
  38. package/dist/transport/index.d.cts +1 -1
  39. package/dist/transport/index.d.ts +1 -1
  40. package/dist/transport/index.js +2 -2
  41. package/dist/{transport-c8f36f6d.d.ts → transport-47af1c81.d.ts} +3 -2
  42. package/dist/util/testHelpers.cjs +5 -3
  43. package/dist/util/testHelpers.cjs.map +1 -1
  44. package/dist/util/testHelpers.d.cts +2 -2
  45. package/dist/util/testHelpers.d.ts +2 -2
  46. package/dist/util/testHelpers.js +3 -3
  47. package/package.json +1 -1
  48. package/dist/chunk-EOJMKMDO.js.map +0 -1
  49. /package/dist/{chunk-T6YEMFUF.js.map → chunk-H6KTH6W6.js.map} +0 -0
  50. /package/dist/{chunk-HM7VDTDJ.js.map → chunk-HDBVL7EF.js.map} +0 -0
  51. /package/dist/{chunk-ZSKCZYVU.js.map → chunk-XZ6IOBM5.js.map} +0 -0
@@ -1,8 +1,8 @@
1
- import { S as SerializedServerSchema, A as AnyServiceSchemaMap, I as InstantiatedServiceSchemaMap, P as PayloadType, b as Result, R as RiverError } from '../services-524bab79.js';
2
- export { C as Client, E as Err, O as Ok, z as Output, k as ProcErrors, g as ProcHandler, h as ProcInit, i as ProcInput, j as ProcOutput, l as ProcType, a as Procedure, p as ProcedureMap, d as ProcedureResult, q as RPCProcedure, y as ResultUnwrapErr, x as ResultUnwrapOk, w as RiverErrorSchema, c as RiverUncaughtSchema, o as SerializedProcedureSchema, n as SerializedServiceSchema, e as Service, f as ServiceConfiguration, m as ServiceSchema, t as StreamProcedure, r as SubscriptionProcedure, v as UNCAUGHT_ERROR, U as UploadProcedure, V as ValidProcType, u as createClient, s as serializeSchema } from '../services-524bab79.js';
1
+ import { S as SerializedServerSchema, A as AnyServiceSchemaMap, I as InstantiatedServiceSchemaMap, P as PayloadType, b as Result, R as RiverError } from '../services-ca72c9f8.js';
2
+ export { C as Client, E as Err, O as Ok, z as Output, k as ProcErrors, g as ProcHandler, h as ProcInit, i as ProcInput, j as ProcOutput, l as ProcType, a as Procedure, p as ProcedureMap, d as ProcedureResult, q as RPCProcedure, y as ResultUnwrapErr, x as ResultUnwrapOk, w as RiverErrorSchema, c as RiverUncaughtSchema, o as SerializedProcedureSchema, n as SerializedServiceSchema, e as Service, f as ServiceConfiguration, m as ServiceSchema, t as StreamProcedure, r as SubscriptionProcedure, v as UNCAUGHT_ERROR, U as UploadProcedure, V as ValidProcType, u as createClient, s as serializeSchema } from '../services-ca72c9f8.js';
3
3
  import { Static } from '@sinclair/typebox';
4
- import { d as ServerTransport, C as Connection, f as ServerHandshakeOptions, b as ServiceContext } from '../transport-c8f36f6d.js';
5
- export { g as ParsedMetadata, h as ServiceContextWithState, i as ServiceContextWithTransportInfo, j as createClientHandshakeOptions, k as createServerHandshakeOptions } from '../transport-c8f36f6d.js';
4
+ import { d as ServerTransport, C as Connection, f as ServerHandshakeOptions, b as ServiceContext } from '../transport-47af1c81.js';
5
+ export { g as ParsedMetadata, h as ServiceContextWithState, i as ServiceContextWithTransportInfo, j as createClientHandshakeOptions, k as createServerHandshakeOptions } from '../transport-47af1c81.js';
6
6
  import { Pushable } from 'it-pushable';
7
7
  import '../index-60f03cb7.js';
8
8
  import '@sinclair/typebox/value';
@@ -81,6 +81,6 @@ declare function createServer<Services extends AnyServiceSchemaMap>(transport: S
81
81
  extendedContext?: Omit<ServiceContext, 'state'>;
82
82
  }>): Server<Services>;
83
83
 
84
- var version = "0.23.11";
84
+ var version = "0.23.12";
85
85
 
86
86
  export { DiffOptions, PayloadBreakage, PayloadType, ProcedureBreakage, version as RIVER_VERSION, Result, RiverError, SerializedServerSchema, Server, ServerBreakage, ServiceBreakage, ServiceContext, createServer, diffServerSchema };
@@ -1,8 +1,8 @@
1
- import { S as SerializedServerSchema, A as AnyServiceSchemaMap, I as InstantiatedServiceSchemaMap, P as PayloadType, b as Result, R as RiverError } from '../services-524bab79.js';
2
- export { C as Client, E as Err, O as Ok, z as Output, k as ProcErrors, g as ProcHandler, h as ProcInit, i as ProcInput, j as ProcOutput, l as ProcType, a as Procedure, p as ProcedureMap, d as ProcedureResult, q as RPCProcedure, y as ResultUnwrapErr, x as ResultUnwrapOk, w as RiverErrorSchema, c as RiverUncaughtSchema, o as SerializedProcedureSchema, n as SerializedServiceSchema, e as Service, f as ServiceConfiguration, m as ServiceSchema, t as StreamProcedure, r as SubscriptionProcedure, v as UNCAUGHT_ERROR, U as UploadProcedure, V as ValidProcType, u as createClient, s as serializeSchema } from '../services-524bab79.js';
1
+ import { S as SerializedServerSchema, A as AnyServiceSchemaMap, I as InstantiatedServiceSchemaMap, P as PayloadType, b as Result, R as RiverError } from '../services-ca72c9f8.js';
2
+ export { C as Client, E as Err, O as Ok, z as Output, k as ProcErrors, g as ProcHandler, h as ProcInit, i as ProcInput, j as ProcOutput, l as ProcType, a as Procedure, p as ProcedureMap, d as ProcedureResult, q as RPCProcedure, y as ResultUnwrapErr, x as ResultUnwrapOk, w as RiverErrorSchema, c as RiverUncaughtSchema, o as SerializedProcedureSchema, n as SerializedServiceSchema, e as Service, f as ServiceConfiguration, m as ServiceSchema, t as StreamProcedure, r as SubscriptionProcedure, v as UNCAUGHT_ERROR, U as UploadProcedure, V as ValidProcType, u as createClient, s as serializeSchema } from '../services-ca72c9f8.js';
3
3
  import { Static } from '@sinclair/typebox';
4
- import { d as ServerTransport, C as Connection, f as ServerHandshakeOptions, b as ServiceContext } from '../transport-c8f36f6d.js';
5
- export { g as ParsedMetadata, h as ServiceContextWithState, i as ServiceContextWithTransportInfo, j as createClientHandshakeOptions, k as createServerHandshakeOptions } from '../transport-c8f36f6d.js';
4
+ import { d as ServerTransport, C as Connection, f as ServerHandshakeOptions, b as ServiceContext } from '../transport-47af1c81.js';
5
+ export { g as ParsedMetadata, h as ServiceContextWithState, i as ServiceContextWithTransportInfo, j as createClientHandshakeOptions, k as createServerHandshakeOptions } from '../transport-47af1c81.js';
6
6
  import { Pushable } from 'it-pushable';
7
7
  import '../index-60f03cb7.js';
8
8
  import '@sinclair/typebox/value';
@@ -81,6 +81,6 @@ declare function createServer<Services extends AnyServiceSchemaMap>(transport: S
81
81
  extendedContext?: Omit<ServiceContext, 'state'>;
82
82
  }>): Server<Services>;
83
83
 
84
- var version = "0.23.11";
84
+ var version = "0.23.12";
85
85
 
86
86
  export { DiffOptions, PayloadBreakage, PayloadType, ProcedureBreakage, version as RIVER_VERSION, Result, RiverError, SerializedServerSchema, Server, ServerBreakage, ServiceBreakage, ServiceContext, createServer, diffServerSchema };
@@ -11,10 +11,10 @@ import {
11
11
  createServerHandshakeOptions,
12
12
  diffServerSchema,
13
13
  serializeSchema
14
- } from "../chunk-ZSKCZYVU.js";
14
+ } from "../chunk-XZ6IOBM5.js";
15
15
  import {
16
16
  version
17
- } from "../chunk-MEHCOYKJ.js";
17
+ } from "../chunk-7RUKEUKE.js";
18
18
  export {
19
19
  Err,
20
20
  Ok,
@@ -1,5 +1,5 @@
1
1
  import { Static, TObject, TUnion, TString, TSchema, TNever, TLiteral } from '@sinclair/typebox';
2
- import { c as ClientTransport, C as Connection, l as ClientHandshakeOptions, i as ServiceContextWithTransportInfo } from './transport-c8f36f6d.js';
2
+ import { c as ClientTransport, C as Connection, l as ClientHandshakeOptions, i as ServiceContextWithTransportInfo } from './transport-47af1c81.js';
3
3
  import { Pushable } from 'it-pushable';
4
4
  import { T as TransportClientId } from './index-60f03cb7.js';
5
5
 
@@ -110,7 +110,7 @@ function isAck(controlFlag) {
110
110
  var import_api = require("@opentelemetry/api");
111
111
 
112
112
  // package.json
113
- var version = "0.23.11";
113
+ var version = "0.23.12";
114
114
 
115
115
  // tracing/index.ts
116
116
  function getPropagationContext(ctx) {
@@ -369,10 +369,12 @@ var Session = class {
369
369
  this.connection.close();
370
370
  this.connection = void 0;
371
371
  }
372
- replaceWithNewConnection(newConn) {
372
+ replaceWithNewConnection(newConn, isTransparentReconnect) {
373
373
  this.closeStaleConnection(newConn);
374
374
  this.cancelGrace();
375
- this.sendBufferedMessages(newConn);
375
+ if (isTransparentReconnect) {
376
+ this.sendBufferedMessages(newConn);
377
+ }
376
378
  this.connection = newConn;
377
379
  this.handshakingConnection = void 0;
378
380
  }
@@ -847,15 +849,13 @@ var Transport = class {
847
849
  * and we know the identity of the connected client.
848
850
  * @param conn The connection object.
849
851
  */
850
- onConnect(conn, session, isReconnect) {
852
+ onConnect(conn, session, isTransparentReconnect) {
851
853
  this.eventDispatcher.dispatchEvent("connectionStatus", {
852
854
  status: "connect",
853
855
  conn
854
856
  });
855
857
  conn.telemetry = createConnectionTelemetryInfo(conn, session.telemetry);
856
- if (isReconnect) {
857
- session.replaceWithNewConnection(conn);
858
- }
858
+ session.replaceWithNewConnection(conn, isTransparentReconnect);
859
859
  this.log?.info(`connected to ${session.to}`, {
860
860
  ...conn.loggingMetadata,
861
861
  ...session.loggingMetadata
@@ -887,7 +887,8 @@ var Transport = class {
887
887
  propagationCtx
888
888
  }) {
889
889
  let session = this.sessions.get(to);
890
- let isReconnect = session !== void 0;
890
+ const isReconnect = session !== void 0;
891
+ let isTransparentReconnect = isReconnect;
891
892
  if (session?.advertisedSessionId !== void 0 && sessionId !== void 0 && session.advertisedSessionId !== sessionId) {
892
893
  this.log?.info(
893
894
  `session for ${to} already exists but has a different session id (expected: ${session.advertisedSessionId}, got: ${sessionId}), creating a new one`,
@@ -898,7 +899,7 @@ var Transport = class {
898
899
  closeHandshakingConnection: handshakingConn !== void 0,
899
900
  handshakingConn
900
901
  });
901
- isReconnect = false;
902
+ isTransparentReconnect = false;
902
903
  session = void 0;
903
904
  }
904
905
  if (!session) {
@@ -914,7 +915,7 @@ var Transport = class {
914
915
  if (handshakingConn !== void 0) {
915
916
  session.replaceWithNewHandshakingConnection(handshakingConn);
916
917
  }
917
- return { session, isReconnect };
918
+ return { session, isReconnect, isTransparentReconnect };
918
919
  }
919
920
  deleteSession({
920
921
  session,
@@ -1274,18 +1275,37 @@ var ClientTransport = class extends Transport {
1274
1275
  );
1275
1276
  return false;
1276
1277
  }
1278
+ const previousSession = this.sessions.get(parsed.from);
1279
+ if (previousSession?.advertisedSessionId && previousSession.advertisedSessionId !== parsed.payload.status.sessionId) {
1280
+ this.deleteSession({
1281
+ session: previousSession,
1282
+ closeHandshakingConnection: true
1283
+ });
1284
+ conn.telemetry?.span.setStatus({
1285
+ code: import_api3.SpanStatusCode.ERROR,
1286
+ message: "session id mismatch"
1287
+ });
1288
+ this.log?.warn(`handshake from ${parsed.from} session id mismatch`, {
1289
+ ...conn.loggingMetadata,
1290
+ clientId: this.clientId,
1291
+ connectedTo: parsed.from,
1292
+ transportMessage: parsed
1293
+ });
1294
+ this.protocolError(ProtocolError.HandshakeFailed, "session id mismatch");
1295
+ return false;
1296
+ }
1277
1297
  this.log?.debug(`handshake from ${parsed.from} ok`, {
1278
1298
  ...conn.loggingMetadata,
1279
1299
  clientId: this.clientId,
1280
1300
  connectedTo: parsed.from,
1281
1301
  transportMessage: parsed
1282
1302
  });
1283
- const { session, isReconnect } = this.getOrCreateSession({
1303
+ const { session, isTransparentReconnect } = this.getOrCreateSession({
1284
1304
  to: parsed.from,
1285
1305
  conn,
1286
1306
  sessionId: parsed.payload.status.sessionId
1287
1307
  });
1288
- this.onConnect(conn, session, isReconnect);
1308
+ this.onConnect(conn, session, isTransparentReconnect);
1289
1309
  this.retryBudget.startRestoringBudget(session.to);
1290
1310
  return session;
1291
1311
  }