@replit/river 0.17.4 → 0.18.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 (45) hide show
  1. package/README.md +4 -3
  2. package/dist/{chunk-F3LFO3GU.js → chunk-5YDJDYVB.js} +1 -1
  3. package/dist/{chunk-Q7OSVPZ5.js → chunk-O36533OC.js} +1 -1
  4. package/dist/{chunk-4C2OXQJB.js → chunk-QBGGJSQM.js} +62 -65
  5. package/dist/{chunk-7WY3Z5ZN.js → chunk-UNTGVPI6.js} +193 -95
  6. package/dist/chunk-XCQF55SQ.js +72 -0
  7. package/dist/{connection-c4a17403.d.ts → connection-893bd769.d.ts} +1 -1
  8. package/dist/{connection-bdbd20da.d.ts → connection-89918b74.d.ts} +1 -1
  9. package/dist/index-46ed19d8.d.ts +111 -0
  10. package/dist/{index-9e300e8a.d.ts → index-d412ca83.d.ts} +4 -86
  11. package/dist/logging/index.cjs +63 -27
  12. package/dist/logging/index.d.cts +2 -34
  13. package/dist/logging/index.d.ts +2 -34
  14. package/dist/logging/index.js +7 -7
  15. package/dist/{procedures-1c0d2eee.d.ts → procedures-85e52b9c.d.ts} +4 -3
  16. package/dist/router/index.cjs +63 -66
  17. package/dist/router/index.d.cts +43 -42
  18. package/dist/router/index.d.ts +43 -42
  19. package/dist/router/index.js +2 -2
  20. package/dist/transport/impls/uds/client.cjs +162 -84
  21. package/dist/transport/impls/uds/client.d.cts +3 -2
  22. package/dist/transport/impls/uds/client.d.ts +3 -2
  23. package/dist/transport/impls/uds/client.js +7 -4
  24. package/dist/transport/impls/uds/server.cjs +130 -65
  25. package/dist/transport/impls/uds/server.d.cts +3 -2
  26. package/dist/transport/impls/uds/server.d.ts +3 -2
  27. package/dist/transport/impls/uds/server.js +3 -3
  28. package/dist/transport/impls/ws/client.cjs +166 -87
  29. package/dist/transport/impls/ws/client.d.cts +3 -2
  30. package/dist/transport/impls/ws/client.d.ts +3 -2
  31. package/dist/transport/impls/ws/client.js +11 -7
  32. package/dist/transport/impls/ws/server.cjs +130 -65
  33. package/dist/transport/impls/ws/server.d.cts +4 -3
  34. package/dist/transport/impls/ws/server.d.ts +4 -3
  35. package/dist/transport/impls/ws/server.js +3 -3
  36. package/dist/transport/index.cjs +194 -96
  37. package/dist/transport/index.d.cts +2 -1
  38. package/dist/transport/index.d.ts +2 -1
  39. package/dist/transport/index.js +2 -2
  40. package/dist/util/testHelpers.cjs +48 -17
  41. package/dist/util/testHelpers.d.cts +4 -3
  42. package/dist/util/testHelpers.d.ts +4 -3
  43. package/dist/util/testHelpers.js +3 -3
  44. package/package.json +1 -1
  45. package/dist/chunk-H4BYJELI.js +0 -37
@@ -1,8 +1,9 @@
1
1
  import { TUnion, Static } from '@sinclair/typebox';
2
- import { e as ProcedureMap, P as PayloadType, c as RiverUncaughtSchema, U as Unbranded, B as Branded, A as AnyProcedure, R as RiverError, b as Result, S as ServiceContext } from '../procedures-1c0d2eee.js';
3
- export { E as Err, O as Ok, a as Procedure, d as ProcedureResult, f as RPCProcedure, m as RiverErrorSchema, j as ServiceContextWithState, k as ServiceContextWithTransportInfo, i as StreamProcedure, h as SubscriptionProcedure, l as UNCAUGHT_ERROR, g as UploadProcedure, V as ValidProcType } from '../procedures-1c0d2eee.js';
4
- import { e as ServerTransport, C as Connection, b as ClientTransport, c as TransportClientId } from '../index-9e300e8a.js';
2
+ import { e as ProcedureMap, P as PayloadType, c as RiverUncaughtSchema, U as Unbranded, B as Branded, A as AnyProcedure, R as RiverError, b as Result, S as ServiceContext } from '../procedures-85e52b9c.js';
3
+ export { E as Err, O as Ok, a as Procedure, d as ProcedureResult, f as RPCProcedure, m as RiverErrorSchema, j as ServiceContextWithState, k as ServiceContextWithTransportInfo, i as StreamProcedure, h as SubscriptionProcedure, l as UNCAUGHT_ERROR, g as UploadProcedure, V as ValidProcType } from '../procedures-85e52b9c.js';
4
+ import { b as ClientTransport, C as Connection, c as ServerTransport } from '../index-d412ca83.js';
5
5
  import { Pushable } from 'it-pushable';
6
+ import { T as TransportClientId } from '../index-46ed19d8.js';
6
7
  import '../types-3e5768ec.js';
7
8
 
8
9
  /**
@@ -25,12 +26,12 @@ type AnyServiceSchema = ServiceSchema<object, ProcedureMap>;
25
26
  /**
26
27
  * A dictionary of {@link ServiceSchema}s, where the key is the service name.
27
28
  */
28
- type ServiceSchemaMap = Record<string, AnyServiceSchema>;
29
+ type AnyServiceSchemaMap = Record<string, AnyServiceSchema>;
29
30
  /**
30
- * Takes a {@link ServiceSchemaMap} and returns a dictionary of instantiated
31
+ * Takes a {@link AnyServiceSchemaMap} and returns a dictionary of instantiated
31
32
  * services.
32
33
  */
33
- type InstantiatedServiceSchemaMap<T extends ServiceSchemaMap> = {
34
+ type InstantiatedServiceSchemaMap<T extends AnyServiceSchemaMap> = {
34
35
  [K in keyof T]: T[K] extends ServiceSchema<infer S, infer P> ? Service<S, P> : never;
35
36
  };
36
37
  /**
@@ -315,38 +316,6 @@ declare class ServiceScaffold<State extends object> {
315
316
  }>;
316
317
  }
317
318
 
318
- /**
319
- * Represents a server with a set of services. Use {@link createServer} to create it.
320
- * @template Services - The type of services provided by the server.
321
- */
322
- interface Server<Services extends ServiceSchemaMap> {
323
- services: InstantiatedServiceSchemaMap<Services>;
324
- streams: Map<string, ProcStream>;
325
- serialize(): SerializedServerSchema;
326
- close(): Promise<void>;
327
- }
328
- interface ProcStream {
329
- id: string;
330
- serviceName: string;
331
- procedureName: string;
332
- incoming: Pushable<PayloadType>;
333
- outgoing: Pushable<Result<Static<PayloadType>, Static<RiverError>>>;
334
- promises: {
335
- outputHandler: Promise<unknown>;
336
- inputHandler: Promise<unknown>;
337
- };
338
- }
339
- type SerializedServerSchema = Record<string, SerializedServiceSchema>;
340
- /**
341
- * Creates a server instance that listens for incoming messages from a transport and routes them to the appropriate service and procedure.
342
- * The server tracks the state of each service along with open streams and the extended context object.
343
- * @param transport - The transport to listen to.
344
- * @param services - An object containing all the services to be registered on the server.
345
- * @param extendedContext - An optional object containing additional context to be passed to all services.
346
- * @returns A promise that resolves to a server instance with the registered services.
347
- */
348
- declare function createServer<Services extends ServiceSchemaMap>(transport: ServerTransport<Connection>, services: Services, extendedContext?: Omit<ServiceContext, 'state'>): Server<Services>;
349
-
350
319
  type AsyncIter<T> = AsyncGenerator<T, T>;
351
320
  /**
352
321
  * A helper type to transform an actual service type into a type
@@ -389,8 +358,8 @@ type ServiceClient<Router extends AnyService> = {
389
358
  * Defines a type that represents a client for a server with a set of services.
390
359
  * @template Srv - The type of the server.
391
360
  */
392
- type ServerClient<Srv extends Server<ServiceSchemaMap>> = {
393
- [SvcName in keyof Srv['services']]: ServiceClient<Srv['services'][SvcName]>;
361
+ type Client<Services extends AnyServiceSchemaMap, IS extends InstantiatedServiceSchemaMap<Services> = InstantiatedServiceSchemaMap<Services>> = {
362
+ [SvcName in keyof IS]: ServiceClient<IS[SvcName]>;
394
363
  };
395
364
  interface ClientOptions {
396
365
  connectOnInvoke: boolean;
@@ -409,6 +378,38 @@ interface ClientOptions {
409
378
  * @param {Transport} transport - The transport to use for communication.
410
379
  * @returns The client for the server.
411
380
  */
412
- declare const createClient: <Srv extends Server<ServiceSchemaMap>>(transport: ClientTransport<Connection>, serverId: TransportClientId, providedClientOptions?: Partial<ClientOptions>) => ServerClient<Srv>;
381
+ declare const createClient: <ServiceSchemaMap extends AnyServiceSchemaMap>(transport: ClientTransport<Connection>, serverId: TransportClientId, providedClientOptions?: Partial<ClientOptions>) => Client<ServiceSchemaMap, InstantiatedServiceSchemaMap<ServiceSchemaMap>>;
382
+
383
+ /**
384
+ * Represents a server with a set of services. Use {@link createServer} to create it.
385
+ * @template Services - The type of services provided by the server.
386
+ */
387
+ interface Server<Services extends AnyServiceSchemaMap> {
388
+ services: InstantiatedServiceSchemaMap<Services>;
389
+ streams: Map<string, ProcStream>;
390
+ serialize(): SerializedServerSchema;
391
+ close(): Promise<void>;
392
+ }
393
+ interface ProcStream {
394
+ id: string;
395
+ serviceName: string;
396
+ procedureName: string;
397
+ incoming: Pushable<PayloadType>;
398
+ outgoing: Pushable<Result<Static<PayloadType>, Static<RiverError>>>;
399
+ promises: {
400
+ outputHandler: Promise<unknown>;
401
+ inputHandler: Promise<unknown>;
402
+ };
403
+ }
404
+ type SerializedServerSchema = Record<string, SerializedServiceSchema>;
405
+ /**
406
+ * Creates a server instance that listens for incoming messages from a transport and routes them to the appropriate service and procedure.
407
+ * The server tracks the state of each service along with open streams and the extended context object.
408
+ * @param transport - The transport to listen to.
409
+ * @param services - An object containing all the services to be registered on the server.
410
+ * @param extendedContext - An optional object containing additional context to be passed to all services.
411
+ * @returns A promise that resolves to a server instance with the registered services.
412
+ */
413
+ declare function createServer<Services extends AnyServiceSchemaMap>(transport: ServerTransport<Connection>, services: Services, extendedContext?: Omit<ServiceContext, 'state'>): Server<Services>;
413
414
 
414
- export { PayloadType, ProcErrors, ProcHandler, ProcInit, ProcInput, ProcOutput, ProcType, ProcedureMap, Result, RiverError, RiverUncaughtSchema, Server, ServerClient, Service, ServiceConfiguration, ServiceContext, ServiceSchema, createClient, createServer };
415
+ export { Client, PayloadType, ProcErrors, ProcHandler, ProcInit, ProcInput, ProcOutput, ProcType, ProcedureMap, Result, RiverError, RiverUncaughtSchema, Server, Service, ServiceConfiguration, ServiceContext, ServiceSchema, createClient, createServer };
@@ -1,8 +1,9 @@
1
1
  import { TUnion, Static } from '@sinclair/typebox';
2
- import { e as ProcedureMap, P as PayloadType, c as RiverUncaughtSchema, U as Unbranded, B as Branded, A as AnyProcedure, R as RiverError, b as Result, S as ServiceContext } from '../procedures-1c0d2eee.js';
3
- export { E as Err, O as Ok, a as Procedure, d as ProcedureResult, f as RPCProcedure, m as RiverErrorSchema, j as ServiceContextWithState, k as ServiceContextWithTransportInfo, i as StreamProcedure, h as SubscriptionProcedure, l as UNCAUGHT_ERROR, g as UploadProcedure, V as ValidProcType } from '../procedures-1c0d2eee.js';
4
- import { e as ServerTransport, C as Connection, b as ClientTransport, c as TransportClientId } from '../index-9e300e8a.js';
2
+ import { e as ProcedureMap, P as PayloadType, c as RiverUncaughtSchema, U as Unbranded, B as Branded, A as AnyProcedure, R as RiverError, b as Result, S as ServiceContext } from '../procedures-85e52b9c.js';
3
+ export { E as Err, O as Ok, a as Procedure, d as ProcedureResult, f as RPCProcedure, m as RiverErrorSchema, j as ServiceContextWithState, k as ServiceContextWithTransportInfo, i as StreamProcedure, h as SubscriptionProcedure, l as UNCAUGHT_ERROR, g as UploadProcedure, V as ValidProcType } from '../procedures-85e52b9c.js';
4
+ import { b as ClientTransport, C as Connection, c as ServerTransport } from '../index-d412ca83.js';
5
5
  import { Pushable } from 'it-pushable';
6
+ import { T as TransportClientId } from '../index-46ed19d8.js';
6
7
  import '../types-3e5768ec.js';
7
8
 
8
9
  /**
@@ -25,12 +26,12 @@ type AnyServiceSchema = ServiceSchema<object, ProcedureMap>;
25
26
  /**
26
27
  * A dictionary of {@link ServiceSchema}s, where the key is the service name.
27
28
  */
28
- type ServiceSchemaMap = Record<string, AnyServiceSchema>;
29
+ type AnyServiceSchemaMap = Record<string, AnyServiceSchema>;
29
30
  /**
30
- * Takes a {@link ServiceSchemaMap} and returns a dictionary of instantiated
31
+ * Takes a {@link AnyServiceSchemaMap} and returns a dictionary of instantiated
31
32
  * services.
32
33
  */
33
- type InstantiatedServiceSchemaMap<T extends ServiceSchemaMap> = {
34
+ type InstantiatedServiceSchemaMap<T extends AnyServiceSchemaMap> = {
34
35
  [K in keyof T]: T[K] extends ServiceSchema<infer S, infer P> ? Service<S, P> : never;
35
36
  };
36
37
  /**
@@ -315,38 +316,6 @@ declare class ServiceScaffold<State extends object> {
315
316
  }>;
316
317
  }
317
318
 
318
- /**
319
- * Represents a server with a set of services. Use {@link createServer} to create it.
320
- * @template Services - The type of services provided by the server.
321
- */
322
- interface Server<Services extends ServiceSchemaMap> {
323
- services: InstantiatedServiceSchemaMap<Services>;
324
- streams: Map<string, ProcStream>;
325
- serialize(): SerializedServerSchema;
326
- close(): Promise<void>;
327
- }
328
- interface ProcStream {
329
- id: string;
330
- serviceName: string;
331
- procedureName: string;
332
- incoming: Pushable<PayloadType>;
333
- outgoing: Pushable<Result<Static<PayloadType>, Static<RiverError>>>;
334
- promises: {
335
- outputHandler: Promise<unknown>;
336
- inputHandler: Promise<unknown>;
337
- };
338
- }
339
- type SerializedServerSchema = Record<string, SerializedServiceSchema>;
340
- /**
341
- * Creates a server instance that listens for incoming messages from a transport and routes them to the appropriate service and procedure.
342
- * The server tracks the state of each service along with open streams and the extended context object.
343
- * @param transport - The transport to listen to.
344
- * @param services - An object containing all the services to be registered on the server.
345
- * @param extendedContext - An optional object containing additional context to be passed to all services.
346
- * @returns A promise that resolves to a server instance with the registered services.
347
- */
348
- declare function createServer<Services extends ServiceSchemaMap>(transport: ServerTransport<Connection>, services: Services, extendedContext?: Omit<ServiceContext, 'state'>): Server<Services>;
349
-
350
319
  type AsyncIter<T> = AsyncGenerator<T, T>;
351
320
  /**
352
321
  * A helper type to transform an actual service type into a type
@@ -389,8 +358,8 @@ type ServiceClient<Router extends AnyService> = {
389
358
  * Defines a type that represents a client for a server with a set of services.
390
359
  * @template Srv - The type of the server.
391
360
  */
392
- type ServerClient<Srv extends Server<ServiceSchemaMap>> = {
393
- [SvcName in keyof Srv['services']]: ServiceClient<Srv['services'][SvcName]>;
361
+ type Client<Services extends AnyServiceSchemaMap, IS extends InstantiatedServiceSchemaMap<Services> = InstantiatedServiceSchemaMap<Services>> = {
362
+ [SvcName in keyof IS]: ServiceClient<IS[SvcName]>;
394
363
  };
395
364
  interface ClientOptions {
396
365
  connectOnInvoke: boolean;
@@ -409,6 +378,38 @@ interface ClientOptions {
409
378
  * @param {Transport} transport - The transport to use for communication.
410
379
  * @returns The client for the server.
411
380
  */
412
- declare const createClient: <Srv extends Server<ServiceSchemaMap>>(transport: ClientTransport<Connection>, serverId: TransportClientId, providedClientOptions?: Partial<ClientOptions>) => ServerClient<Srv>;
381
+ declare const createClient: <ServiceSchemaMap extends AnyServiceSchemaMap>(transport: ClientTransport<Connection>, serverId: TransportClientId, providedClientOptions?: Partial<ClientOptions>) => Client<ServiceSchemaMap, InstantiatedServiceSchemaMap<ServiceSchemaMap>>;
382
+
383
+ /**
384
+ * Represents a server with a set of services. Use {@link createServer} to create it.
385
+ * @template Services - The type of services provided by the server.
386
+ */
387
+ interface Server<Services extends AnyServiceSchemaMap> {
388
+ services: InstantiatedServiceSchemaMap<Services>;
389
+ streams: Map<string, ProcStream>;
390
+ serialize(): SerializedServerSchema;
391
+ close(): Promise<void>;
392
+ }
393
+ interface ProcStream {
394
+ id: string;
395
+ serviceName: string;
396
+ procedureName: string;
397
+ incoming: Pushable<PayloadType>;
398
+ outgoing: Pushable<Result<Static<PayloadType>, Static<RiverError>>>;
399
+ promises: {
400
+ outputHandler: Promise<unknown>;
401
+ inputHandler: Promise<unknown>;
402
+ };
403
+ }
404
+ type SerializedServerSchema = Record<string, SerializedServiceSchema>;
405
+ /**
406
+ * Creates a server instance that listens for incoming messages from a transport and routes them to the appropriate service and procedure.
407
+ * The server tracks the state of each service along with open streams and the extended context object.
408
+ * @param transport - The transport to listen to.
409
+ * @param services - An object containing all the services to be registered on the server.
410
+ * @param extendedContext - An optional object containing additional context to be passed to all services.
411
+ * @returns A promise that resolves to a server instance with the registered services.
412
+ */
413
+ declare function createServer<Services extends AnyServiceSchemaMap>(transport: ServerTransport<Connection>, services: Services, extendedContext?: Omit<ServiceContext, 'state'>): Server<Services>;
413
414
 
414
- export { PayloadType, ProcErrors, ProcHandler, ProcInit, ProcInput, ProcOutput, ProcType, ProcedureMap, Result, RiverError, RiverUncaughtSchema, Server, ServerClient, Service, ServiceConfiguration, ServiceContext, ServiceSchema, createClient, createServer };
415
+ export { Client, PayloadType, ProcErrors, ProcHandler, ProcInit, ProcInput, ProcOutput, ProcType, ProcedureMap, Result, RiverError, RiverUncaughtSchema, Server, Service, ServiceConfiguration, ServiceContext, ServiceSchema, createClient, createServer };
@@ -7,9 +7,9 @@ import {
7
7
  UNCAUGHT_ERROR,
8
8
  createClient,
9
9
  createServer
10
- } from "../chunk-4C2OXQJB.js";
10
+ } from "../chunk-QBGGJSQM.js";
11
11
  import "../chunk-VH3NGOXQ.js";
12
- import "../chunk-H4BYJELI.js";
12
+ import "../chunk-XCQF55SQ.js";
13
13
  export {
14
14
  Err,
15
15
  Ok,