@replit/river 0.13.10 → 0.14.1

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 (35) hide show
  1. package/README.md +8 -3
  2. package/dist/{builder-8c80cf47.d.ts → builder-dfe46874.d.ts} +2 -2
  3. package/dist/{chunk-KUQ4OT4D.js → chunk-KWXQLQAF.js} +59 -49
  4. package/dist/{chunk-5ETR5EVH.js → chunk-NJ25LQPI.js} +1 -3
  5. package/dist/{chunk-IPSTJ7NW.js → chunk-WYUFVZC3.js} +1 -1
  6. package/dist/{chunk-44GN4JUR.js → chunk-ZD5NJJXR.js} +1 -1
  7. package/dist/{connection-ebd00fd5.d.ts → connection-6c569569.d.ts} +1 -1
  8. package/dist/{connection-88c9269b.d.ts → connection-ec72fdb0.d.ts} +1 -1
  9. package/dist/{index-047087cb.d.ts → index-d1452d8f.d.ts} +1 -2
  10. package/dist/router/index.cjs +59 -49
  11. package/dist/router/index.d.cts +4 -4
  12. package/dist/router/index.d.ts +4 -4
  13. package/dist/router/index.js +1 -1
  14. package/dist/transport/impls/uds/client.cjs +3 -8
  15. package/dist/transport/impls/uds/client.d.cts +3 -4
  16. package/dist/transport/impls/uds/client.d.ts +3 -4
  17. package/dist/transport/impls/uds/client.js +4 -7
  18. package/dist/transport/impls/uds/server.d.cts +2 -2
  19. package/dist/transport/impls/uds/server.d.ts +2 -2
  20. package/dist/transport/impls/uds/server.js +2 -2
  21. package/dist/transport/impls/ws/client.cjs +3 -15
  22. package/dist/transport/impls/ws/client.d.cts +3 -5
  23. package/dist/transport/impls/ws/client.d.ts +3 -5
  24. package/dist/transport/impls/ws/client.js +4 -14
  25. package/dist/transport/impls/ws/server.d.cts +2 -2
  26. package/dist/transport/impls/ws/server.d.ts +2 -2
  27. package/dist/transport/impls/ws/server.js +2 -2
  28. package/dist/transport/index.cjs +1 -3
  29. package/dist/transport/index.d.cts +1 -1
  30. package/dist/transport/index.d.ts +1 -1
  31. package/dist/transport/index.js +1 -1
  32. package/dist/util/testHelpers.d.cts +2 -2
  33. package/dist/util/testHelpers.d.ts +2 -2
  34. package/dist/util/testHelpers.js +2 -2
  35. package/package.json +1 -1
package/README.md CHANGED
@@ -1,4 +1,6 @@
1
- # river - Long-lived Streaming Remote Procedure Calls
1
+ # River
2
+
3
+ ## Long-lived Streaming Remote Procedure Calls
2
4
 
3
5
  It's like tRPC/gRPC but with
4
6
 
@@ -103,10 +105,13 @@ const websocketUrl = `ws://localhost:3000`;
103
105
  const transport = new WebSocketClientTransport(
104
106
  async () => new WebSocket(websocketUrl),
105
107
  'my-client-id',
106
- 'SERVER',
107
108
  );
108
109
 
109
- const client = createClient<ServiceSurface>(transport, 'SERVER');
110
+ const client = createClient<ServiceSurface>(
111
+ transport,
112
+ 'SERVER', // transport id of the server in the previous step
113
+ true, // whether to eagerly connect to the server on creation (optional argument)
114
+ );
110
115
 
111
116
  // we get full type safety on `client`
112
117
  // client.<service name>.<procedure name>.<procedure type>()
@@ -1,6 +1,6 @@
1
1
  import { TObject, TUnion, TString, TSchema, TNever, TLiteral, Static } from '@sinclair/typebox';
2
2
  import { Pushable } from 'it-pushable';
3
- import { b as TransportClientId, d as Session, C as Connection } from './index-047087cb.js';
3
+ import { b as TransportClientId, d as Session, C as Connection } from './index-d1452d8f.js';
4
4
 
5
5
  /**
6
6
  * The context for services/procedures. This is used only on
@@ -173,7 +173,7 @@ type Procedure<State, Ty extends ValidProcType, I extends PayloadType, O extends
173
173
  input: I;
174
174
  output: O;
175
175
  errors: E;
176
- handler: (context: ServiceContextWithTransportInfo<State>, input: Static<I>, output: Pushable<Result<Static<O>, Static<E>>>) => Promise<void>;
176
+ handler: (context: ServiceContextWithTransportInfo<State>, input: Static<I>, output: Pushable<Result<Static<O>, Static<E>>>) => Promise<(() => void) | void>;
177
177
  type: Ty;
178
178
  } : never : Ty extends 'stream' ? Init extends PayloadType ? {
179
179
  init: Init;
@@ -428,56 +428,60 @@ function _createRecursiveProxy(callback, path) {
428
428
  });
429
429
  return proxy;
430
430
  }
431
- var createClient = (transport) => _createRecursiveProxy(async (opts) => {
432
- const serverId = transport.connectedTo;
433
- const [serviceName, procName, procType] = [...opts.path];
434
- if (!(serviceName && procName && procType)) {
435
- throw new Error(
436
- "invalid river call, ensure the service and procedure you are calling exists"
437
- );
431
+ var createClient = (transport, serverId, eagerlyConnect = true) => {
432
+ if (eagerlyConnect) {
433
+ void transport.connect(serverId);
438
434
  }
439
- const [input] = opts.args;
440
- log?.info(
441
- `${transport.clientId} -- invoked ${procType}: ${serviceName}.${procName} with args: ${JSON.stringify(
442
- input
443
- )}`
444
- );
445
- if (procType === "rpc") {
446
- return handleRpc(
447
- transport,
448
- serverId,
449
- input,
450
- serviceName,
451
- procName
452
- );
453
- } else if (procType === "stream") {
454
- return handleStream(
455
- transport,
456
- serverId,
457
- input,
458
- serviceName,
459
- procName
460
- );
461
- } else if (procType === "subscribe") {
462
- return handleSubscribe(
463
- transport,
464
- serverId,
465
- input,
466
- serviceName,
467
- procName
468
- );
469
- } else if (procType === "upload") {
470
- return handleUpload(
471
- transport,
472
- serverId,
473
- input,
474
- serviceName,
475
- procName
435
+ return _createRecursiveProxy(async (opts) => {
436
+ const [serviceName, procName, procType] = [...opts.path];
437
+ if (!(serviceName && procName && procType)) {
438
+ throw new Error(
439
+ "invalid river call, ensure the service and procedure you are calling exists"
440
+ );
441
+ }
442
+ const [input] = opts.args;
443
+ log?.info(
444
+ `${transport.clientId} -- invoked ${procType}: ${serviceName}.${procName} with args: ${JSON.stringify(
445
+ input
446
+ )}`
476
447
  );
477
- } else {
478
- throw new Error(`invalid river call, unknown procedure type ${procType}`);
479
- }
480
- }, []);
448
+ if (procType === "rpc") {
449
+ return handleRpc(
450
+ transport,
451
+ serverId,
452
+ input,
453
+ serviceName,
454
+ procName
455
+ );
456
+ } else if (procType === "stream") {
457
+ return handleStream(
458
+ transport,
459
+ serverId,
460
+ input,
461
+ serviceName,
462
+ procName
463
+ );
464
+ } else if (procType === "subscribe") {
465
+ return handleSubscribe(
466
+ transport,
467
+ serverId,
468
+ input,
469
+ serviceName,
470
+ procName
471
+ );
472
+ } else if (procType === "upload") {
473
+ return handleUpload(
474
+ transport,
475
+ serverId,
476
+ input,
477
+ serviceName,
478
+ procName
479
+ );
480
+ } else {
481
+ throw new Error(`invalid river call, unknown procedure type ${procType}`);
482
+ }
483
+ }, []);
484
+ };
481
485
  function createSessionDisconnectHandler(from, cb) {
482
486
  return (evt) => {
483
487
  if (evt.status === "disconnect" && evt.session.to === from) {
@@ -808,6 +812,7 @@ var RiverServer = class {
808
812
  const incoming = pushable({ objectMode: true });
809
813
  const outgoing = pushable({ objectMode: true });
810
814
  const needsClose = procedure.type === "subscription" || procedure.type === "stream";
815
+ const disposables = [];
811
816
  const outputHandler = (
812
817
  // sending outgoing messages back to client
813
818
  needsClose ? (
@@ -823,6 +828,7 @@ var RiverServer = class {
823
828
  if (!this.disconnectedSessions.has(message.from)) {
824
829
  this.transport.sendCloseStream(session.to, message.streamId);
825
830
  }
831
+ disposables.forEach((d) => d());
826
832
  })()
827
833
  ) : (
828
834
  // rpc and upload case, we just send the response back with close bit
@@ -834,6 +840,7 @@ var RiverServer = class {
834
840
  controlFlags: 4 /* StreamClosedBit */,
835
841
  payload: response
836
842
  });
843
+ disposables.forEach((d) => d());
837
844
  }
838
845
  })()
839
846
  )
@@ -902,11 +909,14 @@ var RiverServer = class {
902
909
  return;
903
910
  }
904
911
  try {
905
- await procedure.handler(
912
+ const dispose = await procedure.handler(
906
913
  serviceContextWithTransportInfo,
907
914
  inputMessage.value,
908
915
  outgoing
909
916
  );
917
+ if (dispose) {
918
+ disposables.push(dispose);
919
+ }
910
920
  } catch (err) {
911
921
  errorHandler(err);
912
922
  }
@@ -530,10 +530,8 @@ var ClientTransport = class extends Transport {
530
530
  */
531
531
  inflightConnectionPromises;
532
532
  tryReconnecting = true;
533
- connectedTo;
534
- constructor(clientId, connectedTo, providedOptions) {
533
+ constructor(clientId, providedOptions) {
535
534
  super(clientId, providedOptions);
536
- this.connectedTo = connectedTo;
537
535
  this.inflightConnectionPromises = /* @__PURE__ */ new Map();
538
536
  }
539
537
  handleConnection(conn, to) {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Connection
3
- } from "./chunk-5ETR5EVH.js";
3
+ } from "./chunk-NJ25LQPI.js";
4
4
 
5
5
  // transport/impls/ws/connection.ts
6
6
  var WebSocketConnection = class extends Connection {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Connection
3
- } from "./chunk-5ETR5EVH.js";
3
+ } from "./chunk-NJ25LQPI.js";
4
4
 
5
5
  // transport/transforms/messageFraming.ts
6
6
  import { Transform } from "node:stream";
@@ -1,4 +1,4 @@
1
- import { C as Connection } from './index-047087cb.js';
1
+ import { C as Connection } from './index-d1452d8f.js';
2
2
  import { Socket } from 'node:net';
3
3
  import stream, { Transform, TransformCallback, TransformOptions } from 'node:stream';
4
4
 
@@ -1,5 +1,5 @@
1
1
  import WebSocket from 'isomorphic-ws';
2
- import { C as Connection } from './index-047087cb.js';
2
+ import { C as Connection } from './index-d1452d8f.js';
3
3
 
4
4
  declare class WebSocketConnection extends Connection {
5
5
  ws: WebSocket;
@@ -386,8 +386,7 @@ declare abstract class ClientTransport<ConnType extends Connection> extends Tran
386
386
  */
387
387
  inflightConnectionPromises: Map<TransportClientId, Promise<ConnType>>;
388
388
  tryReconnecting: boolean;
389
- connectedTo: TransportClientId;
390
- constructor(clientId: TransportClientId, connectedTo: TransportClientId, providedOptions?: Partial<TransportOptions>);
389
+ constructor(clientId: TransportClientId, providedOptions?: Partial<TransportOptions>);
391
390
  protected handleConnection(conn: ConnType, to: TransportClientId): void;
392
391
  receiveHandshakeResponseMessage(data: Uint8Array): false | {
393
392
  instanceId: string;
@@ -514,56 +514,60 @@ function _createRecursiveProxy(callback, path) {
514
514
  });
515
515
  return proxy;
516
516
  }
517
- var createClient = (transport) => _createRecursiveProxy(async (opts) => {
518
- const serverId = transport.connectedTo;
519
- const [serviceName, procName, procType] = [...opts.path];
520
- if (!(serviceName && procName && procType)) {
521
- throw new Error(
522
- "invalid river call, ensure the service and procedure you are calling exists"
523
- );
517
+ var createClient = (transport, serverId, eagerlyConnect = true) => {
518
+ if (eagerlyConnect) {
519
+ void transport.connect(serverId);
524
520
  }
525
- const [input] = opts.args;
526
- log?.info(
527
- `${transport.clientId} -- invoked ${procType}: ${serviceName}.${procName} with args: ${JSON.stringify(
528
- input
529
- )}`
530
- );
531
- if (procType === "rpc") {
532
- return handleRpc(
533
- transport,
534
- serverId,
535
- input,
536
- serviceName,
537
- procName
538
- );
539
- } else if (procType === "stream") {
540
- return handleStream(
541
- transport,
542
- serverId,
543
- input,
544
- serviceName,
545
- procName
546
- );
547
- } else if (procType === "subscribe") {
548
- return handleSubscribe(
549
- transport,
550
- serverId,
551
- input,
552
- serviceName,
553
- procName
554
- );
555
- } else if (procType === "upload") {
556
- return handleUpload(
557
- transport,
558
- serverId,
559
- input,
560
- serviceName,
561
- procName
521
+ return _createRecursiveProxy(async (opts) => {
522
+ const [serviceName, procName, procType] = [...opts.path];
523
+ if (!(serviceName && procName && procType)) {
524
+ throw new Error(
525
+ "invalid river call, ensure the service and procedure you are calling exists"
526
+ );
527
+ }
528
+ const [input] = opts.args;
529
+ log?.info(
530
+ `${transport.clientId} -- invoked ${procType}: ${serviceName}.${procName} with args: ${JSON.stringify(
531
+ input
532
+ )}`
562
533
  );
563
- } else {
564
- throw new Error(`invalid river call, unknown procedure type ${procType}`);
565
- }
566
- }, []);
534
+ if (procType === "rpc") {
535
+ return handleRpc(
536
+ transport,
537
+ serverId,
538
+ input,
539
+ serviceName,
540
+ procName
541
+ );
542
+ } else if (procType === "stream") {
543
+ return handleStream(
544
+ transport,
545
+ serverId,
546
+ input,
547
+ serviceName,
548
+ procName
549
+ );
550
+ } else if (procType === "subscribe") {
551
+ return handleSubscribe(
552
+ transport,
553
+ serverId,
554
+ input,
555
+ serviceName,
556
+ procName
557
+ );
558
+ } else if (procType === "upload") {
559
+ return handleUpload(
560
+ transport,
561
+ serverId,
562
+ input,
563
+ serviceName,
564
+ procName
565
+ );
566
+ } else {
567
+ throw new Error(`invalid river call, unknown procedure type ${procType}`);
568
+ }
569
+ }, []);
570
+ };
567
571
  function createSessionDisconnectHandler(from, cb) {
568
572
  return (evt) => {
569
573
  if (evt.status === "disconnect" && evt.session.to === from) {
@@ -904,6 +908,7 @@ var RiverServer = class {
904
908
  const incoming = pushable({ objectMode: true });
905
909
  const outgoing = pushable({ objectMode: true });
906
910
  const needsClose = procedure.type === "subscription" || procedure.type === "stream";
911
+ const disposables = [];
907
912
  const outputHandler = (
908
913
  // sending outgoing messages back to client
909
914
  needsClose ? (
@@ -919,6 +924,7 @@ var RiverServer = class {
919
924
  if (!this.disconnectedSessions.has(message.from)) {
920
925
  this.transport.sendCloseStream(session.to, message.streamId);
921
926
  }
927
+ disposables.forEach((d) => d());
922
928
  })()
923
929
  ) : (
924
930
  // rpc and upload case, we just send the response back with close bit
@@ -930,6 +936,7 @@ var RiverServer = class {
930
936
  controlFlags: 4 /* StreamClosedBit */,
931
937
  payload: response
932
938
  });
939
+ disposables.forEach((d) => d());
933
940
  }
934
941
  })()
935
942
  )
@@ -998,11 +1005,14 @@ var RiverServer = class {
998
1005
  return;
999
1006
  }
1000
1007
  try {
1001
- await procedure.handler(
1008
+ const dispose = await procedure.handler(
1002
1009
  serviceContextWithTransportInfo,
1003
1010
  inputMessage.value,
1004
1011
  outgoing
1005
1012
  );
1013
+ if (dispose) {
1014
+ disposables.push(dispose);
1015
+ }
1006
1016
  } catch (err) {
1007
1017
  errorHandler(err);
1008
1018
  }
@@ -1,6 +1,6 @@
1
- import { A as AnyService, P as PayloadType, b as Result, R as RiverError, S as ServiceContext, d as ProcType, e as ProcInput, f as ProcOutput, g as ProcErrors, h as ProcHasInit, i as ProcInit } from '../builder-8c80cf47.js';
2
- export { E as Err, O as Ok, m as ProcHandler, k as ProcListing, a as Procedure, p as RiverErrorSchema, c as RiverUncaughtSchema, l as Service, j as ServiceBuilder, n as ServiceContextWithState, o as ServiceContextWithTransportInfo, U as UNCAUGHT_ERROR, V as ValidProcType, s as serializeService } from '../builder-8c80cf47.js';
3
- import { S as ServerTransport, C as Connection, a as ClientTransport } from '../index-047087cb.js';
1
+ import { A as AnyService, P as PayloadType, b as Result, R as RiverError, S as ServiceContext, d as ProcType, e as ProcInput, f as ProcOutput, g as ProcErrors, h as ProcHasInit, i as ProcInit } from '../builder-dfe46874.js';
2
+ export { E as Err, O as Ok, m as ProcHandler, k as ProcListing, a as Procedure, p as RiverErrorSchema, c as RiverUncaughtSchema, l as Service, j as ServiceBuilder, n as ServiceContextWithState, o as ServiceContextWithTransportInfo, U as UNCAUGHT_ERROR, V as ValidProcType, s as serializeService } from '../builder-dfe46874.js';
3
+ import { S as ServerTransport, C as Connection, a as ClientTransport, b as TransportClientId } from '../index-d1452d8f.js';
4
4
  import { Pushable } from 'it-pushable';
5
5
  import { Static } from '@sinclair/typebox';
6
6
  import '../types-3e5768ec.js';
@@ -110,6 +110,6 @@ type ServerClient<Srv extends Server<ServiceDefs>> = {
110
110
  * @param {Transport} transport - The transport to use for communication.
111
111
  * @returns The client for the server.
112
112
  */
113
- declare const createClient: <Srv extends Server<ServiceDefs>>(transport: ClientTransport<Connection>) => ServerClient<Srv>;
113
+ declare const createClient: <Srv extends Server<ServiceDefs>>(transport: ClientTransport<Connection>, serverId: TransportClientId, eagerlyConnect?: boolean) => ServerClient<Srv>;
114
114
 
115
115
  export { PayloadType, ProcInput, ProcOutput, ProcType, Result, RiverError, Server, ServerClient, ServiceContext, ServiceDefs, buildServiceDefs, createClient, createServer };
@@ -1,6 +1,6 @@
1
- import { A as AnyService, P as PayloadType, b as Result, R as RiverError, S as ServiceContext, d as ProcType, e as ProcInput, f as ProcOutput, g as ProcErrors, h as ProcHasInit, i as ProcInit } from '../builder-8c80cf47.js';
2
- export { E as Err, O as Ok, m as ProcHandler, k as ProcListing, a as Procedure, p as RiverErrorSchema, c as RiverUncaughtSchema, l as Service, j as ServiceBuilder, n as ServiceContextWithState, o as ServiceContextWithTransportInfo, U as UNCAUGHT_ERROR, V as ValidProcType, s as serializeService } from '../builder-8c80cf47.js';
3
- import { S as ServerTransport, C as Connection, a as ClientTransport } from '../index-047087cb.js';
1
+ import { A as AnyService, P as PayloadType, b as Result, R as RiverError, S as ServiceContext, d as ProcType, e as ProcInput, f as ProcOutput, g as ProcErrors, h as ProcHasInit, i as ProcInit } from '../builder-dfe46874.js';
2
+ export { E as Err, O as Ok, m as ProcHandler, k as ProcListing, a as Procedure, p as RiverErrorSchema, c as RiverUncaughtSchema, l as Service, j as ServiceBuilder, n as ServiceContextWithState, o as ServiceContextWithTransportInfo, U as UNCAUGHT_ERROR, V as ValidProcType, s as serializeService } from '../builder-dfe46874.js';
3
+ import { S as ServerTransport, C as Connection, a as ClientTransport, b as TransportClientId } from '../index-d1452d8f.js';
4
4
  import { Pushable } from 'it-pushable';
5
5
  import { Static } from '@sinclair/typebox';
6
6
  import '../types-3e5768ec.js';
@@ -110,6 +110,6 @@ type ServerClient<Srv extends Server<ServiceDefs>> = {
110
110
  * @param {Transport} transport - The transport to use for communication.
111
111
  * @returns The client for the server.
112
112
  */
113
- declare const createClient: <Srv extends Server<ServiceDefs>>(transport: ClientTransport<Connection>) => ServerClient<Srv>;
113
+ declare const createClient: <Srv extends Server<ServiceDefs>>(transport: ClientTransport<Connection>, serverId: TransportClientId, eagerlyConnect?: boolean) => ServerClient<Srv>;
114
114
 
115
115
  export { PayloadType, ProcInput, ProcOutput, ProcType, Result, RiverError, Server, ServerClient, ServiceContext, ServiceDefs, buildServiceDefs, createClient, createServer };
@@ -8,7 +8,7 @@ import {
8
8
  createClient,
9
9
  createServer,
10
10
  serializeService
11
- } from "../chunk-KUQ4OT4D.js";
11
+ } from "../chunk-KWXQLQAF.js";
12
12
  import "../chunk-GFRAOY75.js";
13
13
  import "../chunk-H4BYJELI.js";
14
14
  export {
@@ -771,10 +771,8 @@ var ClientTransport = class extends Transport {
771
771
  */
772
772
  inflightConnectionPromises;
773
773
  tryReconnecting = true;
774
- connectedTo;
775
- constructor(clientId, connectedTo, providedOptions) {
774
+ constructor(clientId, providedOptions) {
776
775
  super(clientId, providedOptions);
777
- this.connectedTo = connectedTo;
778
776
  this.inflightConnectionPromises = /* @__PURE__ */ new Map();
779
777
  }
780
778
  handleConnection(conn, to) {
@@ -899,12 +897,9 @@ var ClientTransport = class extends Transport {
899
897
  // transport/impls/uds/client.ts
900
898
  var UnixDomainSocketClientTransport = class extends ClientTransport {
901
899
  path;
902
- serverId;
903
- constructor(socketPath, clientId, serverId, providedOptions) {
904
- super(clientId, serverId, providedOptions);
900
+ constructor(socketPath, clientId, providedOptions) {
901
+ super(clientId, providedOptions);
905
902
  this.path = socketPath;
906
- this.serverId = serverId;
907
- void this.connect(serverId);
908
903
  }
909
904
  async createNewOutgoingConnection(to) {
910
905
  const oldConnection = this.connections.get(to);
@@ -1,5 +1,5 @@
1
- import { a as ClientTransport, b as TransportClientId, c as TransportOptions } from '../../../index-047087cb.js';
2
- import { U as UdsConnection } from '../../../connection-ebd00fd5.js';
1
+ import { a as ClientTransport, c as TransportOptions, b as TransportClientId } from '../../../index-d1452d8f.js';
2
+ import { U as UdsConnection } from '../../../connection-6c569569.js';
3
3
  import '../../../types-3e5768ec.js';
4
4
  import '@sinclair/typebox';
5
5
  import 'node:net';
@@ -7,8 +7,7 @@ import 'node:stream';
7
7
 
8
8
  declare class UnixDomainSocketClientTransport extends ClientTransport<UdsConnection> {
9
9
  path: string;
10
- serverId: TransportClientId;
11
- constructor(socketPath: string, clientId: string, serverId: TransportClientId, providedOptions?: Partial<TransportOptions>);
10
+ constructor(socketPath: string, clientId: string, providedOptions?: Partial<TransportOptions>);
12
11
  createNewOutgoingConnection(to: TransportClientId): Promise<UdsConnection>;
13
12
  }
14
13
 
@@ -1,5 +1,5 @@
1
- import { a as ClientTransport, b as TransportClientId, c as TransportOptions } from '../../../index-047087cb.js';
2
- import { U as UdsConnection } from '../../../connection-ebd00fd5.js';
1
+ import { a as ClientTransport, c as TransportOptions, b as TransportClientId } from '../../../index-d1452d8f.js';
2
+ import { U as UdsConnection } from '../../../connection-6c569569.js';
3
3
  import '../../../types-3e5768ec.js';
4
4
  import '@sinclair/typebox';
5
5
  import 'node:net';
@@ -7,8 +7,7 @@ import 'node:stream';
7
7
 
8
8
  declare class UnixDomainSocketClientTransport extends ClientTransport<UdsConnection> {
9
9
  path: string;
10
- serverId: TransportClientId;
11
- constructor(socketPath: string, clientId: string, serverId: TransportClientId, providedOptions?: Partial<TransportOptions>);
10
+ constructor(socketPath: string, clientId: string, providedOptions?: Partial<TransportOptions>);
12
11
  createNewOutgoingConnection(to: TransportClientId): Promise<UdsConnection>;
13
12
  }
14
13
 
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  UdsConnection
3
- } from "../../../chunk-44GN4JUR.js";
3
+ } from "../../../chunk-ZD5NJJXR.js";
4
4
  import {
5
5
  ClientTransport
6
- } from "../../../chunk-5ETR5EVH.js";
6
+ } from "../../../chunk-NJ25LQPI.js";
7
7
  import "../../../chunk-GFRAOY75.js";
8
8
  import {
9
9
  log
@@ -14,12 +14,9 @@ import "../../../chunk-GZ7HCLLM.js";
14
14
  import { Socket } from "node:net";
15
15
  var UnixDomainSocketClientTransport = class extends ClientTransport {
16
16
  path;
17
- serverId;
18
- constructor(socketPath, clientId, serverId, providedOptions) {
19
- super(clientId, serverId, providedOptions);
17
+ constructor(socketPath, clientId, providedOptions) {
18
+ super(clientId, providedOptions);
20
19
  this.path = socketPath;
21
- this.serverId = serverId;
22
- void this.connect(serverId);
23
20
  }
24
21
  async createNewOutgoingConnection(to) {
25
22
  const oldConnection = this.connections.get(to);
@@ -1,6 +1,6 @@
1
1
  import { Server, Socket } from 'node:net';
2
- import { S as ServerTransport, b as TransportClientId, c as TransportOptions } from '../../../index-047087cb.js';
3
- import { U as UdsConnection } from '../../../connection-ebd00fd5.js';
2
+ import { S as ServerTransport, b as TransportClientId, c as TransportOptions } from '../../../index-d1452d8f.js';
3
+ import { U as UdsConnection } from '../../../connection-6c569569.js';
4
4
  import '../../../types-3e5768ec.js';
5
5
  import '@sinclair/typebox';
6
6
  import 'node:stream';
@@ -1,6 +1,6 @@
1
1
  import { Server, Socket } from 'node:net';
2
- import { S as ServerTransport, b as TransportClientId, c as TransportOptions } from '../../../index-047087cb.js';
3
- import { U as UdsConnection } from '../../../connection-ebd00fd5.js';
2
+ import { S as ServerTransport, b as TransportClientId, c as TransportOptions } from '../../../index-d1452d8f.js';
3
+ import { U as UdsConnection } from '../../../connection-6c569569.js';
4
4
  import '../../../types-3e5768ec.js';
5
5
  import '@sinclair/typebox';
6
6
  import 'node:stream';
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  UdsConnection
3
- } from "../../../chunk-44GN4JUR.js";
3
+ } from "../../../chunk-ZD5NJJXR.js";
4
4
  import {
5
5
  ServerTransport
6
- } from "../../../chunk-5ETR5EVH.js";
6
+ } from "../../../chunk-NJ25LQPI.js";
7
7
  import "../../../chunk-GFRAOY75.js";
8
8
  import {
9
9
  log
@@ -677,10 +677,8 @@ var ClientTransport = class extends Transport {
677
677
  */
678
678
  inflightConnectionPromises;
679
679
  tryReconnecting = true;
680
- connectedTo;
681
- constructor(clientId, connectedTo, providedOptions) {
680
+ constructor(clientId, providedOptions) {
682
681
  super(clientId, providedOptions);
683
- this.connectedTo = connectedTo;
684
682
  this.inflightConnectionPromises = /* @__PURE__ */ new Map();
685
683
  }
686
684
  handleConnection(conn, to) {
@@ -841,7 +839,6 @@ var WebSocketClientTransport = class extends ClientTransport {
841
839
  * A function that returns a Promise that resolves to a WebSocket instance.
842
840
  */
843
841
  wsGetter;
844
- serverId;
845
842
  /**
846
843
  * Creates a new WebSocketClientTransport instance.
847
844
  * @param wsGetter A function that returns a Promise that resolves to a WebSocket instance.
@@ -849,18 +846,9 @@ var WebSocketClientTransport = class extends ClientTransport {
849
846
  * @param serverId The ID of the server this transport is connecting to.
850
847
  * @param providedOptions An optional object containing configuration options for the transport.
851
848
  */
852
- constructor(wsGetter, clientId, serverId, providedOptions) {
853
- super(clientId, serverId, providedOptions);
849
+ constructor(wsGetter, clientId, providedOptions) {
850
+ super(clientId, providedOptions);
854
851
  this.wsGetter = wsGetter;
855
- this.serverId = serverId;
856
- void this.connect(this.serverId);
857
- }
858
- reopen() {
859
- if (this.state === "destroyed") {
860
- throw new Error("cant reopen a destroyed connection");
861
- }
862
- this.state = "open";
863
- void this.connect(this.serverId);
864
852
  }
865
853
  async createNewOutgoingConnection(to) {
866
854
  const wsRes = await new Promise((resolve) => {
@@ -1,6 +1,6 @@
1
1
  import WebSocket from 'isomorphic-ws';
2
- import { a as ClientTransport, b as TransportClientId, c as TransportOptions } from '../../../index-047087cb.js';
3
- import { W as WebSocketConnection } from '../../../connection-88c9269b.js';
2
+ import { a as ClientTransport, b as TransportClientId, c as TransportOptions } from '../../../index-d1452d8f.js';
3
+ import { W as WebSocketConnection } from '../../../connection-ec72fdb0.js';
4
4
  import '../../../types-3e5768ec.js';
5
5
  import '@sinclair/typebox';
6
6
 
@@ -14,7 +14,6 @@ declare class WebSocketClientTransport extends ClientTransport<WebSocketConnecti
14
14
  * A function that returns a Promise that resolves to a WebSocket instance.
15
15
  */
16
16
  wsGetter: (to: TransportClientId) => Promise<WebSocket>;
17
- serverId: TransportClientId;
18
17
  /**
19
18
  * Creates a new WebSocketClientTransport instance.
20
19
  * @param wsGetter A function that returns a Promise that resolves to a WebSocket instance.
@@ -22,8 +21,7 @@ declare class WebSocketClientTransport extends ClientTransport<WebSocketConnecti
22
21
  * @param serverId The ID of the server this transport is connecting to.
23
22
  * @param providedOptions An optional object containing configuration options for the transport.
24
23
  */
25
- constructor(wsGetter: () => Promise<WebSocket>, clientId: TransportClientId, serverId: TransportClientId, providedOptions?: Partial<TransportOptions>);
26
- reopen(): void;
24
+ constructor(wsGetter: () => Promise<WebSocket>, clientId: TransportClientId, providedOptions?: Partial<TransportOptions>);
27
25
  createNewOutgoingConnection(to: string): Promise<WebSocketConnection>;
28
26
  }
29
27
 
@@ -1,6 +1,6 @@
1
1
  import WebSocket from 'isomorphic-ws';
2
- import { a as ClientTransport, b as TransportClientId, c as TransportOptions } from '../../../index-047087cb.js';
3
- import { W as WebSocketConnection } from '../../../connection-88c9269b.js';
2
+ import { a as ClientTransport, b as TransportClientId, c as TransportOptions } from '../../../index-d1452d8f.js';
3
+ import { W as WebSocketConnection } from '../../../connection-ec72fdb0.js';
4
4
  import '../../../types-3e5768ec.js';
5
5
  import '@sinclair/typebox';
6
6
 
@@ -14,7 +14,6 @@ declare class WebSocketClientTransport extends ClientTransport<WebSocketConnecti
14
14
  * A function that returns a Promise that resolves to a WebSocket instance.
15
15
  */
16
16
  wsGetter: (to: TransportClientId) => Promise<WebSocket>;
17
- serverId: TransportClientId;
18
17
  /**
19
18
  * Creates a new WebSocketClientTransport instance.
20
19
  * @param wsGetter A function that returns a Promise that resolves to a WebSocket instance.
@@ -22,8 +21,7 @@ declare class WebSocketClientTransport extends ClientTransport<WebSocketConnecti
22
21
  * @param serverId The ID of the server this transport is connecting to.
23
22
  * @param providedOptions An optional object containing configuration options for the transport.
24
23
  */
25
- constructor(wsGetter: () => Promise<WebSocket>, clientId: TransportClientId, serverId: TransportClientId, providedOptions?: Partial<TransportOptions>);
26
- reopen(): void;
24
+ constructor(wsGetter: () => Promise<WebSocket>, clientId: TransportClientId, providedOptions?: Partial<TransportOptions>);
27
25
  createNewOutgoingConnection(to: string): Promise<WebSocketConnection>;
28
26
  }
29
27
 
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  WebSocketConnection
3
- } from "../../../chunk-IPSTJ7NW.js";
3
+ } from "../../../chunk-WYUFVZC3.js";
4
4
  import {
5
5
  ClientTransport
6
- } from "../../../chunk-5ETR5EVH.js";
6
+ } from "../../../chunk-NJ25LQPI.js";
7
7
  import "../../../chunk-GFRAOY75.js";
8
8
  import {
9
9
  log
@@ -16,7 +16,6 @@ var WebSocketClientTransport = class extends ClientTransport {
16
16
  * A function that returns a Promise that resolves to a WebSocket instance.
17
17
  */
18
18
  wsGetter;
19
- serverId;
20
19
  /**
21
20
  * Creates a new WebSocketClientTransport instance.
22
21
  * @param wsGetter A function that returns a Promise that resolves to a WebSocket instance.
@@ -24,18 +23,9 @@ var WebSocketClientTransport = class extends ClientTransport {
24
23
  * @param serverId The ID of the server this transport is connecting to.
25
24
  * @param providedOptions An optional object containing configuration options for the transport.
26
25
  */
27
- constructor(wsGetter, clientId, serverId, providedOptions) {
28
- super(clientId, serverId, providedOptions);
26
+ constructor(wsGetter, clientId, providedOptions) {
27
+ super(clientId, providedOptions);
29
28
  this.wsGetter = wsGetter;
30
- this.serverId = serverId;
31
- void this.connect(this.serverId);
32
- }
33
- reopen() {
34
- if (this.state === "destroyed") {
35
- throw new Error("cant reopen a destroyed connection");
36
- }
37
- this.state = "open";
38
- void this.connect(this.serverId);
39
29
  }
40
30
  async createNewOutgoingConnection(to) {
41
31
  const wsRes = await new Promise((resolve) => {
@@ -1,7 +1,7 @@
1
- import { S as ServerTransport, b as TransportClientId, c as TransportOptions } from '../../../index-047087cb.js';
1
+ import { S as ServerTransport, b as TransportClientId, c as TransportOptions } from '../../../index-d1452d8f.js';
2
2
  import { WebSocketServer } from 'ws';
3
3
  import { WebSocket } from 'isomorphic-ws';
4
- import { W as WebSocketConnection } from '../../../connection-88c9269b.js';
4
+ import { W as WebSocketConnection } from '../../../connection-ec72fdb0.js';
5
5
  import '../../../types-3e5768ec.js';
6
6
  import '@sinclair/typebox';
7
7
 
@@ -1,7 +1,7 @@
1
- import { S as ServerTransport, b as TransportClientId, c as TransportOptions } from '../../../index-047087cb.js';
1
+ import { S as ServerTransport, b as TransportClientId, c as TransportOptions } from '../../../index-d1452d8f.js';
2
2
  import { WebSocketServer } from 'ws';
3
3
  import { WebSocket } from 'isomorphic-ws';
4
- import { W as WebSocketConnection } from '../../../connection-88c9269b.js';
4
+ import { W as WebSocketConnection } from '../../../connection-ec72fdb0.js';
5
5
  import '../../../types-3e5768ec.js';
6
6
  import '@sinclair/typebox';
7
7
 
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  WebSocketConnection
3
- } from "../../../chunk-IPSTJ7NW.js";
3
+ } from "../../../chunk-WYUFVZC3.js";
4
4
  import {
5
5
  ServerTransport
6
- } from "../../../chunk-5ETR5EVH.js";
6
+ } from "../../../chunk-NJ25LQPI.js";
7
7
  import "../../../chunk-GFRAOY75.js";
8
8
  import "../../../chunk-H4BYJELI.js";
9
9
  import "../../../chunk-GZ7HCLLM.js";
@@ -707,10 +707,8 @@ var ClientTransport = class extends Transport {
707
707
  */
708
708
  inflightConnectionPromises;
709
709
  tryReconnecting = true;
710
- connectedTo;
711
- constructor(clientId, connectedTo, providedOptions) {
710
+ constructor(clientId, providedOptions) {
712
711
  super(clientId, providedOptions);
713
- this.connectedTo = connectedTo;
714
712
  this.inflightConnectionPromises = /* @__PURE__ */ new Map();
715
713
  }
716
714
  handleConnection(conn, to) {
@@ -1,3 +1,3 @@
1
- export { a as ClientTransport, C as Connection, l as EventHandler, E as EventMap, k as EventTypes, O as OpaqueTransportMessage, g as OpaqueTransportMessageSchema, S as ServerTransport, d as Session, T as Transport, b as TransportClientId, h as TransportMessage, f as TransportMessageSchema, c as TransportOptions, e as TransportStatus, j as isStreamClose, i as isStreamOpen } from '../index-047087cb.js';
1
+ export { a as ClientTransport, C as Connection, l as EventHandler, E as EventMap, k as EventTypes, O as OpaqueTransportMessage, g as OpaqueTransportMessageSchema, S as ServerTransport, d as Session, T as Transport, b as TransportClientId, h as TransportMessage, f as TransportMessageSchema, c as TransportOptions, e as TransportStatus, j as isStreamClose, i as isStreamOpen } from '../index-d1452d8f.js';
2
2
  import '../types-3e5768ec.js';
3
3
  import '@sinclair/typebox';
@@ -1,3 +1,3 @@
1
- export { a as ClientTransport, C as Connection, l as EventHandler, E as EventMap, k as EventTypes, O as OpaqueTransportMessage, g as OpaqueTransportMessageSchema, S as ServerTransport, d as Session, T as Transport, b as TransportClientId, h as TransportMessage, f as TransportMessageSchema, c as TransportOptions, e as TransportStatus, j as isStreamClose, i as isStreamOpen } from '../index-047087cb.js';
1
+ export { a as ClientTransport, C as Connection, l as EventHandler, E as EventMap, k as EventTypes, O as OpaqueTransportMessage, g as OpaqueTransportMessageSchema, S as ServerTransport, d as Session, T as Transport, b as TransportClientId, h as TransportMessage, f as TransportMessageSchema, c as TransportOptions, e as TransportStatus, j as isStreamClose, i as isStreamOpen } from '../index-d1452d8f.js';
2
2
  import '../types-3e5768ec.js';
3
3
  import '@sinclair/typebox';
@@ -5,7 +5,7 @@ import {
5
5
  ServerTransport,
6
6
  Session,
7
7
  Transport
8
- } from "../chunk-5ETR5EVH.js";
8
+ } from "../chunk-NJ25LQPI.js";
9
9
  import {
10
10
  OpaqueTransportMessageSchema,
11
11
  TransportMessageSchema
@@ -1,8 +1,8 @@
1
1
  import * as it_pushable from 'it-pushable';
2
2
  import WebSocket from 'isomorphic-ws';
3
3
  import http from 'node:http';
4
- import { P as PartialTransportMessage, T as Transport, C as Connection, O as OpaqueTransportMessage } from '../index-047087cb.js';
5
- import { P as PayloadType, R as RiverError, a as Procedure, S as ServiceContext, b as Result, c as RiverUncaughtSchema } from '../builder-8c80cf47.js';
4
+ import { P as PartialTransportMessage, T as Transport, C as Connection, O as OpaqueTransportMessage } from '../index-d1452d8f.js';
5
+ import { P as PayloadType, R as RiverError, a as Procedure, S as ServiceContext, b as Result, c as RiverUncaughtSchema } from '../builder-dfe46874.js';
6
6
  import { Static } from '@sinclair/typebox';
7
7
  import net from 'node:net';
8
8
  import '../types-3e5768ec.js';
@@ -1,8 +1,8 @@
1
1
  import * as it_pushable from 'it-pushable';
2
2
  import WebSocket from 'isomorphic-ws';
3
3
  import http from 'node:http';
4
- import { P as PartialTransportMessage, T as Transport, C as Connection, O as OpaqueTransportMessage } from '../index-047087cb.js';
5
- import { P as PayloadType, R as RiverError, a as Procedure, S as ServiceContext, b as Result, c as RiverUncaughtSchema } from '../builder-8c80cf47.js';
4
+ import { P as PartialTransportMessage, T as Transport, C as Connection, O as OpaqueTransportMessage } from '../index-d1452d8f.js';
5
+ import { P as PayloadType, R as RiverError, a as Procedure, S as ServiceContext, b as Result, c as RiverUncaughtSchema } from '../builder-dfe46874.js';
6
6
  import { Static } from '@sinclair/typebox';
7
7
  import net from 'node:net';
8
8
  import '../types-3e5768ec.js';
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  UNCAUGHT_ERROR,
3
3
  pushable
4
- } from "../chunk-KUQ4OT4D.js";
4
+ } from "../chunk-KWXQLQAF.js";
5
5
  import "../chunk-5IZ2UHWV.js";
6
6
  import {
7
7
  Session,
8
8
  defaultSessionOptions
9
- } from "../chunk-5ETR5EVH.js";
9
+ } from "../chunk-NJ25LQPI.js";
10
10
  import {
11
11
  coerceErrorString
12
12
  } from "../chunk-GFRAOY75.js";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@replit/river",
3
3
  "description": "It's like tRPC but... with JSON Schema Support, duplex streaming and support for service multiplexing. Transport agnostic!",
4
- "version": "0.13.10",
4
+ "version": "0.14.1",
5
5
  "type": "module",
6
6
  "exports": {
7
7
  ".": {