@replit/river 0.23.14 → 0.23.16

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 (59) hide show
  1. package/dist/{chunk-D2DHRRBN.js → chunk-JA7XGTAL.js} +4 -4
  2. package/dist/{chunk-GN4YEXT7.js → chunk-LTSLICON.js} +2 -2
  3. package/dist/{chunk-WUL63FR6.js → chunk-MQCGG6KL.js} +4 -4
  4. package/dist/{chunk-BEALFLCB.js → chunk-R47IZD67.js} +2 -2
  5. package/dist/{chunk-GCCRVSMR.js → chunk-TXSQRTZB.js} +2 -2
  6. package/dist/{chunk-GCCRVSMR.js.map → chunk-TXSQRTZB.js.map} +1 -1
  7. package/dist/{chunk-YCLZWES2.js → chunk-UDXM64QK.js} +2 -2
  8. package/dist/{chunk-OTVTKAN6.js → chunk-WN77AT67.js} +29 -4
  9. package/dist/chunk-WN77AT67.js.map +1 -0
  10. package/dist/{chunk-O2AVDJCQ.js → chunk-YXDAOVP7.js} +14 -2
  11. package/dist/{chunk-O2AVDJCQ.js.map → chunk-YXDAOVP7.js.map} +1 -1
  12. package/dist/{client-e13979ac.d.ts → client-0926d3d6.d.ts} +1 -1
  13. package/dist/{connection-e57e98ea.d.ts → connection-99a67d3e.d.ts} +1 -1
  14. package/dist/{connection-5d0978ce.d.ts → connection-d738cc08.d.ts} +1 -1
  15. package/dist/{handshake-5665ffd3.d.ts → handshake-75d0124f.d.ts} +5 -0
  16. package/dist/router/index.cjs +1 -1
  17. package/dist/router/index.cjs.map +1 -1
  18. package/dist/router/index.d.cts +7 -7
  19. package/dist/router/index.d.ts +7 -7
  20. package/dist/router/index.js +2 -2
  21. package/dist/{server-1cfc88d1.d.ts → server-3740c5d9.d.ts} +1 -1
  22. package/dist/{services-86c4d10d.d.ts → services-75e84a9f.d.ts} +2 -2
  23. package/dist/transport/impls/uds/client.cjs +39 -2
  24. package/dist/transport/impls/uds/client.cjs.map +1 -1
  25. package/dist/transport/impls/uds/client.d.cts +3 -3
  26. package/dist/transport/impls/uds/client.d.ts +3 -3
  27. package/dist/transport/impls/uds/client.js +5 -5
  28. package/dist/transport/impls/uds/server.cjs +39 -2
  29. package/dist/transport/impls/uds/server.cjs.map +1 -1
  30. package/dist/transport/impls/uds/server.d.cts +3 -3
  31. package/dist/transport/impls/uds/server.d.ts +3 -3
  32. package/dist/transport/impls/uds/server.js +5 -5
  33. package/dist/transport/impls/ws/client.cjs +39 -2
  34. package/dist/transport/impls/ws/client.cjs.map +1 -1
  35. package/dist/transport/impls/ws/client.d.cts +3 -3
  36. package/dist/transport/impls/ws/client.d.ts +3 -3
  37. package/dist/transport/impls/ws/client.js +5 -5
  38. package/dist/transport/impls/ws/server.cjs +39 -2
  39. package/dist/transport/impls/ws/server.cjs.map +1 -1
  40. package/dist/transport/impls/ws/server.d.cts +3 -3
  41. package/dist/transport/impls/ws/server.d.ts +3 -3
  42. package/dist/transport/impls/ws/server.js +5 -5
  43. package/dist/transport/index.cjs +39 -2
  44. package/dist/transport/index.cjs.map +1 -1
  45. package/dist/transport/index.d.cts +3 -3
  46. package/dist/transport/index.d.ts +3 -3
  47. package/dist/transport/index.js +5 -5
  48. package/dist/util/testHelpers.cjs +13 -1
  49. package/dist/util/testHelpers.cjs.map +1 -1
  50. package/dist/util/testHelpers.d.cts +3 -3
  51. package/dist/util/testHelpers.d.ts +3 -3
  52. package/dist/util/testHelpers.js +3 -3
  53. package/package.json +14 -13
  54. package/dist/chunk-OTVTKAN6.js.map +0 -1
  55. /package/dist/{chunk-D2DHRRBN.js.map → chunk-JA7XGTAL.js.map} +0 -0
  56. /package/dist/{chunk-GN4YEXT7.js.map → chunk-LTSLICON.js.map} +0 -0
  57. /package/dist/{chunk-WUL63FR6.js.map → chunk-MQCGG6KL.js.map} +0 -0
  58. /package/dist/{chunk-BEALFLCB.js.map → chunk-R47IZD67.js.map} +0 -0
  59. /package/dist/{chunk-YCLZWES2.js.map → chunk-UDXM64QK.js.map} +0 -0
@@ -1,14 +1,14 @@
1
- import { S as SerializedServerSchema, A as AnyServiceSchemaMap, I as InstantiatedServiceSchemaMap, P as PayloadType, b as Result, R as RiverError } from '../services-86c4d10d.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-86c4d10d.js';
1
+ import { S as SerializedServerSchema, A as AnyServiceSchemaMap, I as InstantiatedServiceSchemaMap, P as PayloadType, b as Result, R as RiverError } from '../services-75e84a9f.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-75e84a9f.js';
3
3
  import { Static } from '@sinclair/typebox';
4
4
  import { Pushable } from 'it-pushable';
5
- import { C as Connection, m as ServerHandshakeOptions, i as ServiceContext } from '../handshake-5665ffd3.js';
6
- export { n as ParsedMetadata, o as ServiceContextWithState, p as ServiceContextWithTransportInfo, q as createClientHandshakeOptions, r as createServerHandshakeOptions } from '../handshake-5665ffd3.js';
7
- import { S as ServerTransport } from '../server-1cfc88d1.js';
5
+ import { C as Connection, m as ServerHandshakeOptions, i as ServiceContext } from '../handshake-75d0124f.js';
6
+ export { n as ParsedMetadata, o as ServiceContextWithState, p as ServiceContextWithTransportInfo, q as createClientHandshakeOptions, r as createServerHandshakeOptions } from '../handshake-75d0124f.js';
7
+ import { S as ServerTransport } from '../server-3740c5d9.js';
8
8
  import '../index-ea74cdbb.js';
9
9
  import '@sinclair/typebox/value';
10
10
  import '@opentelemetry/api';
11
- import '../client-e13979ac.js';
11
+ import '../client-0926d3d6.js';
12
12
  import '../types-3e5768ec.js';
13
13
 
14
14
  interface ServerBreakage {
@@ -83,6 +83,6 @@ declare function createServer<Services extends AnyServiceSchemaMap>(transport: S
83
83
  extendedContext?: Omit<ServiceContext, 'state'>;
84
84
  }>): Server<Services>;
85
85
 
86
- var version = "0.23.14";
86
+ var version = "0.23.16";
87
87
 
88
88
  export { DiffOptions, PayloadBreakage, PayloadType, ProcedureBreakage, version as RIVER_VERSION, Result, RiverError, SerializedServerSchema, Server, ServerBreakage, ServiceBreakage, ServiceContext, createServer, diffServerSchema };
@@ -1,14 +1,14 @@
1
- import { S as SerializedServerSchema, A as AnyServiceSchemaMap, I as InstantiatedServiceSchemaMap, P as PayloadType, b as Result, R as RiverError } from '../services-86c4d10d.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-86c4d10d.js';
1
+ import { S as SerializedServerSchema, A as AnyServiceSchemaMap, I as InstantiatedServiceSchemaMap, P as PayloadType, b as Result, R as RiverError } from '../services-75e84a9f.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-75e84a9f.js';
3
3
  import { Static } from '@sinclair/typebox';
4
4
  import { Pushable } from 'it-pushable';
5
- import { C as Connection, m as ServerHandshakeOptions, i as ServiceContext } from '../handshake-5665ffd3.js';
6
- export { n as ParsedMetadata, o as ServiceContextWithState, p as ServiceContextWithTransportInfo, q as createClientHandshakeOptions, r as createServerHandshakeOptions } from '../handshake-5665ffd3.js';
7
- import { S as ServerTransport } from '../server-1cfc88d1.js';
5
+ import { C as Connection, m as ServerHandshakeOptions, i as ServiceContext } from '../handshake-75d0124f.js';
6
+ export { n as ParsedMetadata, o as ServiceContextWithState, p as ServiceContextWithTransportInfo, q as createClientHandshakeOptions, r as createServerHandshakeOptions } from '../handshake-75d0124f.js';
7
+ import { S as ServerTransport } from '../server-3740c5d9.js';
8
8
  import '../index-ea74cdbb.js';
9
9
  import '@sinclair/typebox/value';
10
10
  import '@opentelemetry/api';
11
- import '../client-e13979ac.js';
11
+ import '../client-0926d3d6.js';
12
12
  import '../types-3e5768ec.js';
13
13
 
14
14
  interface ServerBreakage {
@@ -83,6 +83,6 @@ declare function createServer<Services extends AnyServiceSchemaMap>(transport: S
83
83
  extendedContext?: Omit<ServiceContext, 'state'>;
84
84
  }>): Server<Services>;
85
85
 
86
- var version = "0.23.14";
86
+ var version = "0.23.16";
87
87
 
88
88
  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-GN4YEXT7.js";
14
+ } from "../chunk-LTSLICON.js";
15
15
  import {
16
16
  version
17
- } from "../chunk-GCCRVSMR.js";
17
+ } from "../chunk-TXSQRTZB.js";
18
18
  export {
19
19
  Err,
20
20
  Ok,
@@ -1,4 +1,4 @@
1
- import { C as Connection, T as Transport, l as ServerTransportOptions, m as ServerHandshakeOptions, S as Session, n as ParsedMetadata, c as ProvidedServerTransportOptions } from './handshake-5665ffd3.js';
1
+ import { C as Connection, T as Transport, l as ServerTransportOptions, m as ServerHandshakeOptions, S as Session, n as ParsedMetadata, c as ProvidedServerTransportOptions } from './handshake-75d0124f.js';
2
2
  import { c as TransportClientId } from './index-ea74cdbb.js';
3
3
 
4
4
  declare abstract class ServerTransport<ConnType extends Connection> extends Transport<ConnType> {
@@ -1,8 +1,8 @@
1
1
  import { Static, TObject, TUnion, TString, TSchema, TNever, TLiteral } from '@sinclair/typebox';
2
2
  import { Pushable } from 'it-pushable';
3
- import { C as Connection, k as ClientHandshakeOptions, p as ServiceContextWithTransportInfo } from './handshake-5665ffd3.js';
3
+ import { C as Connection, k as ClientHandshakeOptions, p as ServiceContextWithTransportInfo } from './handshake-75d0124f.js';
4
4
  import { c as TransportClientId } from './index-ea74cdbb.js';
5
- import { C as ClientTransport } from './client-e13979ac.js';
5
+ import { C as ClientTransport } from './client-0926d3d6.js';
6
6
 
7
7
  type AsyncIter<T> = AsyncGenerator<T, T>;
8
8
  /**
@@ -134,7 +134,7 @@ function isAck(controlFlag) {
134
134
  var import_api = require("@opentelemetry/api");
135
135
 
136
136
  // package.json
137
- var version = "0.23.14";
137
+ var version = "0.23.16";
138
138
 
139
139
  // tracing/index.ts
140
140
  function getPropagationContext(ctx) {
@@ -454,6 +454,18 @@ var Session = class {
454
454
  get nextExpectedSeq() {
455
455
  return this.ack;
456
456
  }
457
+ /**
458
+ * Check that the peer's next expected seq number matches something that is in our send buffer
459
+ * _or_ matches our actual next seq.
460
+ */
461
+ nextExpectedSeqInRange(nextExpectedSeq) {
462
+ for (const msg of this.sendBuffer) {
463
+ if (nextExpectedSeq === msg.seq) {
464
+ return true;
465
+ }
466
+ }
467
+ return nextExpectedSeq === this.seq;
468
+ }
457
469
  // This is only used in tests to make the session misbehave.
458
470
  /* @internal */
459
471
  advanceAckForTesting(by) {
@@ -901,6 +913,20 @@ var Transport = class {
901
913
  if (this.log) {
902
914
  session.bindLogger(this.log);
903
915
  }
916
+ const currentSession = this.sessions.get(session.to);
917
+ if (currentSession) {
918
+ this.log?.warn(
919
+ `session ${session.id} from ${session.to} surreptitiously replacing ${currentSession.id}`,
920
+ {
921
+ ...currentSession.loggingMetadata,
922
+ tags: ["invariant-violation"]
923
+ }
924
+ );
925
+ this.deleteSession({
926
+ session: currentSession,
927
+ closeHandshakingConnection: false
928
+ });
929
+ }
904
930
  this.sessions.set(session.to, session);
905
931
  this.eventDispatcher.dispatchEvent("sessionStatus", {
906
932
  status: "connect",
@@ -940,7 +966,7 @@ var Transport = class {
940
966
  if (
941
967
  // reject this request if there was no previous session to replace
942
968
  session === void 0 || // or if both parties do not agree about the next expected sequence number
943
- session.nextExpectedAck < nextExpectedSeq || // or if both parties do not agree on the advertised session id
969
+ !session.nextExpectedSeqInRange(nextExpectedSeq) || // or if both parties do not agree on the advertised session id
944
970
  session.advertisedSessionId !== sessionId
945
971
  ) {
946
972
  return false;
@@ -999,6 +1025,17 @@ var Transport = class {
999
1025
  }
1000
1026
  session.close();
1001
1027
  session.telemetry.span.end();
1028
+ const currentSession = this.sessions.get(session.to);
1029
+ if (currentSession && currentSession.id !== session.id) {
1030
+ this.log?.warn(
1031
+ `session ${session.id} disconnect from ${session.to}, mismatch with ${currentSession.id}`,
1032
+ {
1033
+ ...session.loggingMetadata,
1034
+ tags: ["invariant-violation"]
1035
+ }
1036
+ );
1037
+ return;
1038
+ }
1002
1039
  this.sessions.delete(session.to);
1003
1040
  this.log?.info(
1004
1041
  `session ${session.id} disconnect from ${session.to}`,