@replit/river 0.9.3 → 0.10.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 (129) hide show
  1. package/dist/{router/builder.d.ts → builder-3c4485f0.d.ts} +82 -28
  2. package/dist/chunk-7WJ6YLE5.js +683 -0
  3. package/dist/chunk-AJQU4AZG.js +284 -0
  4. package/dist/chunk-ORAG7IAU.js +0 -0
  5. package/dist/chunk-PC65ZFWJ.js +29 -0
  6. package/dist/chunk-R6H2BIMC.js +49 -0
  7. package/dist/chunk-RGMHF6PF.js +65 -0
  8. package/dist/chunk-SLUSVGQH.js +30 -0
  9. package/dist/chunk-UU2Z7LDR.js +113 -0
  10. package/dist/chunk-WVT5QXMZ.js +20 -0
  11. package/dist/chunk-ZE4MX7DF.js +75 -0
  12. package/dist/codec/index.cjs +94 -0
  13. package/dist/codec/index.d.cts +15 -0
  14. package/dist/codec/index.d.ts +15 -4
  15. package/dist/codec/index.js +10 -2
  16. package/dist/connection-8e19874c.d.ts +11 -0
  17. package/dist/connection-f7688cc1.d.ts +11 -0
  18. package/dist/logging/index.cjs +56 -0
  19. package/dist/logging/index.d.cts +28 -0
  20. package/dist/logging/index.d.ts +6 -6
  21. package/dist/logging/index.js +9 -40
  22. package/dist/router/index.cjs +770 -0
  23. package/dist/router/index.d.cts +114 -0
  24. package/dist/router/index.d.ts +114 -10
  25. package/dist/router/index.js +24 -4
  26. package/dist/transport/impls/ws/client.cjs +505 -0
  27. package/dist/transport/impls/ws/client.d.cts +42 -0
  28. package/dist/transport/impls/ws/client.d.ts +9 -12
  29. package/dist/transport/impls/ws/client.js +10 -101
  30. package/dist/transport/impls/ws/server.cjs +457 -0
  31. package/dist/transport/impls/ws/server.d.cts +21 -0
  32. package/dist/transport/impls/ws/server.d.ts +14 -10
  33. package/dist/transport/impls/ws/server.js +11 -47
  34. package/dist/transport/index.cjs +362 -0
  35. package/dist/transport/{transport.d.ts → index.d.cts} +119 -7
  36. package/dist/transport/index.d.ts +273 -13
  37. package/dist/transport/index.js +20 -23
  38. package/dist/{codec/types.d.ts → types-3e5768ec.d.ts} +3 -2
  39. package/dist/util/testHelpers.cjs +731 -0
  40. package/dist/util/testHelpers.d.cts +79 -0
  41. package/dist/util/testHelpers.d.ts +34 -108
  42. package/dist/util/testHelpers.js +137 -320
  43. package/package.json +52 -23
  44. package/dist/__tests__/bandwidth.bench.d.ts +0 -2
  45. package/dist/__tests__/bandwidth.bench.d.ts.map +0 -1
  46. package/dist/__tests__/bandwidth.bench.js +0 -90
  47. package/dist/__tests__/e2e.test.d.ts +0 -2
  48. package/dist/__tests__/e2e.test.d.ts.map +0 -1
  49. package/dist/__tests__/e2e.test.js +0 -316
  50. package/dist/__tests__/fixtures/cleanup.d.ts +0 -12
  51. package/dist/__tests__/fixtures/cleanup.d.ts.map +0 -1
  52. package/dist/__tests__/fixtures/cleanup.js +0 -39
  53. package/dist/__tests__/fixtures/largePayload.json +0 -33
  54. package/dist/__tests__/fixtures/observable.d.ts +0 -26
  55. package/dist/__tests__/fixtures/observable.d.ts.map +0 -1
  56. package/dist/__tests__/fixtures/observable.js +0 -38
  57. package/dist/__tests__/fixtures/observable.test.d.ts +0 -2
  58. package/dist/__tests__/fixtures/observable.test.d.ts.map +0 -1
  59. package/dist/__tests__/fixtures/observable.test.js +0 -39
  60. package/dist/__tests__/fixtures/services.d.ts +0 -288
  61. package/dist/__tests__/fixtures/services.d.ts.map +0 -1
  62. package/dist/__tests__/fixtures/services.js +0 -224
  63. package/dist/__tests__/handler.test.d.ts +0 -2
  64. package/dist/__tests__/handler.test.d.ts.map +0 -1
  65. package/dist/__tests__/handler.test.js +0 -121
  66. package/dist/__tests__/invariants.test.d.ts +0 -2
  67. package/dist/__tests__/invariants.test.d.ts.map +0 -1
  68. package/dist/__tests__/invariants.test.js +0 -138
  69. package/dist/__tests__/serialize.test.d.ts +0 -2
  70. package/dist/__tests__/serialize.test.d.ts.map +0 -1
  71. package/dist/__tests__/serialize.test.js +0 -208
  72. package/dist/__tests__/typescript-stress.test.d.ts +0 -1583
  73. package/dist/__tests__/typescript-stress.test.d.ts.map +0 -1
  74. package/dist/__tests__/typescript-stress.test.js +0 -123
  75. package/dist/codec/binary.d.ts +0 -7
  76. package/dist/codec/binary.d.ts.map +0 -1
  77. package/dist/codec/binary.js +0 -20
  78. package/dist/codec/codec.test.d.ts +0 -5
  79. package/dist/codec/codec.test.d.ts.map +0 -1
  80. package/dist/codec/codec.test.js +0 -41
  81. package/dist/codec/index.d.ts.map +0 -1
  82. package/dist/codec/json.d.ts +0 -7
  83. package/dist/codec/json.d.ts.map +0 -1
  84. package/dist/codec/json.js +0 -51
  85. package/dist/codec/types.d.ts.map +0 -1
  86. package/dist/codec/types.js +0 -1
  87. package/dist/logging/index.d.ts.map +0 -1
  88. package/dist/router/builder.d.ts.map +0 -1
  89. package/dist/router/builder.js +0 -91
  90. package/dist/router/client.d.ts +0 -68
  91. package/dist/router/client.d.ts.map +0 -1
  92. package/dist/router/client.js +0 -159
  93. package/dist/router/context.d.ts +0 -30
  94. package/dist/router/context.d.ts.map +0 -1
  95. package/dist/router/context.js +0 -1
  96. package/dist/router/index.d.ts.map +0 -1
  97. package/dist/router/result.d.ts +0 -25
  98. package/dist/router/result.d.ts.map +0 -1
  99. package/dist/router/result.js +0 -18
  100. package/dist/router/server.d.ts +0 -39
  101. package/dist/router/server.d.ts.map +0 -1
  102. package/dist/router/server.js +0 -217
  103. package/dist/transport/events.d.ts +0 -19
  104. package/dist/transport/events.d.ts.map +0 -1
  105. package/dist/transport/events.js +0 -26
  106. package/dist/transport/impls/stdio/stdio.d.ts +0 -33
  107. package/dist/transport/impls/stdio/stdio.d.ts.map +0 -1
  108. package/dist/transport/impls/stdio/stdio.js +0 -75
  109. package/dist/transport/impls/stdio/stdio.test.d.ts +0 -2
  110. package/dist/transport/impls/stdio/stdio.test.d.ts.map +0 -1
  111. package/dist/transport/impls/stdio/stdio.test.js +0 -25
  112. package/dist/transport/impls/ws/client.d.ts.map +0 -1
  113. package/dist/transport/impls/ws/connection.d.ts +0 -11
  114. package/dist/transport/impls/ws/connection.d.ts.map +0 -1
  115. package/dist/transport/impls/ws/connection.js +0 -23
  116. package/dist/transport/impls/ws/server.d.ts.map +0 -1
  117. package/dist/transport/impls/ws/ws.test.d.ts +0 -2
  118. package/dist/transport/impls/ws/ws.test.d.ts.map +0 -1
  119. package/dist/transport/impls/ws/ws.test.js +0 -117
  120. package/dist/transport/index.d.ts.map +0 -1
  121. package/dist/transport/message.d.ts +0 -143
  122. package/dist/transport/message.d.ts.map +0 -1
  123. package/dist/transport/message.js +0 -113
  124. package/dist/transport/message.test.d.ts +0 -2
  125. package/dist/transport/message.test.d.ts.map +0 -1
  126. package/dist/transport/message.test.js +0 -52
  127. package/dist/transport/transport.d.ts.map +0 -1
  128. package/dist/transport/transport.js +0 -281
  129. package/dist/util/testHelpers.d.ts.map +0 -1
@@ -0,0 +1,79 @@
1
+ import * as it_pushable from 'it-pushable';
2
+ import WebSocket from 'isomorphic-ws';
3
+ import { WebSocketServer } from 'ws';
4
+ import http from 'http';
5
+ import { WebSocketClientTransport } from '../transport/impls/ws/client.cjs';
6
+ import { TransportClientId, TransportMessage, OpaqueTransportMessage, Transport, Connection } from '../transport/index.cjs';
7
+ import { C as Codec } from '../types-3e5768ec.js';
8
+ import { WebSocketServerTransport } from '../transport/impls/ws/server.cjs';
9
+ import { P as PayloadType, R as RiverError, a as Procedure, S as ServiceContext, b as Result, c as RiverUncaughtSchema } from '../builder-3c4485f0.js';
10
+ import { Static } from '@sinclair/typebox';
11
+ import '../connection-f7688cc1.js';
12
+
13
+ /**
14
+ * Creates a WebSocket server instance using the provided HTTP server.
15
+ * Only used as helper for testing.
16
+ * @param server - The HTTP server instance to use for the WebSocket server.
17
+ * @returns A Promise that resolves to the created WebSocket server instance.
18
+ */
19
+ declare function createWebSocketServer(server: http.Server): Promise<WebSocket.Server<typeof WebSocket, typeof http.IncomingMessage>>;
20
+ /**
21
+ * Starts listening on the given server and returns the automatically allocated port number.
22
+ * This should only be used for testing.
23
+ * @param server - The http server to listen on.
24
+ * @returns A promise that resolves with the allocated port number.
25
+ * @throws An error if a port cannot be allocated.
26
+ */
27
+ declare function onServerReady(server: http.Server): Promise<number>;
28
+ /**
29
+ * Creates a WebSocket client that connects to a local server at the specified port.
30
+ * This should only be used for testing.
31
+ * @param port - The port number to connect to.
32
+ * @returns A Promise that resolves to a WebSocket instance.
33
+ */
34
+ declare function createLocalWebSocketClient(port: number): Promise<WebSocket>;
35
+ /**
36
+ * Creates a pair of WebSocket transports for testing purposes.
37
+ * @param port - The port number to use for the client transport. This should be acquired after starting a server via {@link createWebSocketServer}.
38
+ * @param wss - The WebSocketServer instance to use for the server transport.
39
+ * @returns An array containing the client and server {@link WebSocketClientTransport} instances.
40
+ */
41
+ declare function createWsTransports(port: number, wss: WebSocketServer, codec?: Codec): [WebSocketClientTransport, WebSocketServerTransport];
42
+ /**
43
+ * Converts a payload object to a transport message with reasonable defaults.
44
+ * This should only be used for testing.
45
+ * @param payload - The payload object to be converted.
46
+ * @param streamId - The optional stream ID.
47
+ * @returns The transport message.
48
+ */
49
+ declare function payloadToTransportMessage<Payload extends object>(payload: Payload, streamId?: string, from?: TransportClientId, to?: TransportClientId): TransportMessage<Payload>;
50
+ /**
51
+ * Creates a dummy opaque transport message for testing purposes.
52
+ * @returns The created opaque transport message.
53
+ */
54
+ declare function createDummyTransportMessage(): OpaqueTransportMessage;
55
+ /**
56
+ * Retrieves the next value from an async iterable iterator.
57
+ * @param iter The async iterable iterator.
58
+ * @returns A promise that resolves to the next value from the iterator.
59
+ */
60
+ declare function iterNext<T>(iter: AsyncIterableIterator<T>): Promise<any>;
61
+ /**
62
+ * Waits for a message on the transport.
63
+ * @param {Transport} t - The transport to listen to.
64
+ * @param filter - An optional filter function to apply to the received messages.
65
+ * @returns A promise that resolves with the payload of the first message that passes the filter.
66
+ */
67
+ declare function waitForMessage(t: Transport<Connection>, filter?: (msg: OpaqueTransportMessage) => boolean, rejectMismatch?: boolean): Promise<unknown>;
68
+ declare function asClientRpc<State extends object | unknown, I extends PayloadType, O extends PayloadType, E extends RiverError, Init extends PayloadType | null = null>(state: State, proc: Procedure<State, 'rpc', I, O, E, Init>, extendedContext?: Omit<ServiceContext, 'state'>): (msg: Static<I>) => Promise<Result<Static<O>, Static<E> | Static<typeof RiverUncaughtSchema>>>;
69
+ declare function asClientStream<State extends object | unknown, I extends PayloadType, O extends PayloadType, E extends RiverError, Init extends PayloadType | null = null>(state: State, proc: Procedure<State, 'stream', I, O, E, Init>, init?: Init extends PayloadType ? Static<Init> : null, extendedContext?: Omit<ServiceContext, 'state'>): readonly [it_pushable.Pushable<Static<I>, void, unknown>, it_pushable.Pushable<Result<Static<O>, Static<E>>, void, unknown>];
70
+ declare function asClientSubscription<State extends object | unknown, I extends PayloadType, O extends PayloadType, E extends RiverError>(state: State, proc: Procedure<State, 'subscription', I, O, E>, extendedContext?: Omit<ServiceContext, 'state'>): (msg: Static<I>) => Promise<it_pushable.Pushable<Result<Static<O>, Static<E>>, void, unknown>>;
71
+ declare function asClientUpload<State extends object | unknown, I extends PayloadType, O extends PayloadType, E extends RiverError, Init extends PayloadType | null = null>(state: State, proc: Procedure<State, 'upload', I, O, E, Init>, init?: Init extends PayloadType ? Static<Init> : null, extendedContext?: Omit<ServiceContext, 'state'>): Promise<readonly [it_pushable.Pushable<Static<I>, void, unknown>, Promise<{
72
+ ok: boolean;
73
+ payload: {
74
+ code: string;
75
+ message: string;
76
+ };
77
+ } | Result<Static<O>, Static<E>>>]>;
78
+
79
+ export { asClientRpc, asClientStream, asClientSubscription, asClientUpload, createDummyTransportMessage, createLocalWebSocketClient, createWebSocketServer, createWsTransports, iterNext, onServerReady, payloadToTransportMessage, waitForMessage };
@@ -1,23 +1,22 @@
1
- /// <reference types="node" />
1
+ import * as it_pushable from 'it-pushable';
2
2
  import WebSocket from 'isomorphic-ws';
3
3
  import { WebSocketServer } from 'ws';
4
4
  import http from 'http';
5
- import { WebSocketClientTransport } from '../transport/impls/ws/client';
5
+ import { WebSocketClientTransport } from '../transport/impls/ws/client.js';
6
+ import { TransportClientId, TransportMessage, OpaqueTransportMessage, Transport, Connection } from '../transport/index.js';
7
+ import { C as Codec } from '../types-3e5768ec.js';
8
+ import { WebSocketServerTransport } from '../transport/impls/ws/server.js';
9
+ import { P as PayloadType, R as RiverError, a as Procedure, S as ServiceContext, b as Result, c as RiverUncaughtSchema } from '../builder-3c4485f0.js';
6
10
  import { Static } from '@sinclair/typebox';
7
- import { Procedure, ServiceContext } from '../router';
8
- import { OpaqueTransportMessage, TransportClientId, TransportMessage } from '../transport';
9
- import { Pushable } from 'it-pushable';
10
- import { Result, RiverError, RiverUncaughtSchema } from '../router/result';
11
- import { Codec } from '../codec';
12
- import { WebSocketServerTransport } from '../transport/impls/ws/server';
13
- import { PayloadType } from '../router/builder';
11
+ import '../connection-8e19874c.js';
12
+
14
13
  /**
15
14
  * Creates a WebSocket server instance using the provided HTTP server.
16
15
  * Only used as helper for testing.
17
16
  * @param server - The HTTP server instance to use for the WebSocket server.
18
17
  * @returns A Promise that resolves to the created WebSocket server instance.
19
18
  */
20
- export declare function createWebSocketServer(server: http.Server): Promise<WebSocket.Server<typeof WebSocket, typeof http.IncomingMessage>>;
19
+ declare function createWebSocketServer(server: http.Server): Promise<WebSocket.Server<typeof WebSocket, typeof http.IncomingMessage>>;
21
20
  /**
22
21
  * Starts listening on the given server and returns the automatically allocated port number.
23
22
  * This should only be used for testing.
@@ -25,112 +24,21 @@ export declare function createWebSocketServer(server: http.Server): Promise<WebS
25
24
  * @returns A promise that resolves with the allocated port number.
26
25
  * @throws An error if a port cannot be allocated.
27
26
  */
28
- export declare function onServerReady(server: http.Server): Promise<number>;
27
+ declare function onServerReady(server: http.Server): Promise<number>;
29
28
  /**
30
29
  * Creates a WebSocket client that connects to a local server at the specified port.
31
30
  * This should only be used for testing.
32
31
  * @param port - The port number to connect to.
33
32
  * @returns A Promise that resolves to a WebSocket instance.
34
33
  */
35
- export declare function createLocalWebSocketClient(port: number): Promise<WebSocket>;
34
+ declare function createLocalWebSocketClient(port: number): Promise<WebSocket>;
36
35
  /**
37
36
  * Creates a pair of WebSocket transports for testing purposes.
38
37
  * @param port - The port number to use for the client transport. This should be acquired after starting a server via {@link createWebSocketServer}.
39
38
  * @param wss - The WebSocketServer instance to use for the server transport.
40
39
  * @returns An array containing the client and server {@link WebSocketClientTransport} instances.
41
40
  */
42
- export declare function createWsTransports(port: number, wss: WebSocketServer, codec?: Codec): [WebSocketClientTransport, WebSocketServerTransport];
43
- /**
44
- * Transforms an RPC procedure definition into a normal function call.
45
- * This should only be used for testing.
46
- * @template State - The type of the state object.
47
- * @template I - The type of the input message payload.
48
- * @template O - The type of the output message payload.
49
- * @param {State} state - The state object.
50
- * @param {Procedure<State, 'rpc', I, O, E, null>} proc - The RPC procedure to invoke.
51
- * @param {Omit<ServiceContext, 'state'>} [extendedContext] - Optional extended context.
52
- * @returns A function that can be used to invoke the RPC procedure.
53
- */
54
- export declare function asClientRpc<State extends object | unknown, I extends PayloadType, O extends PayloadType, E extends RiverError>(state: State, proc: Procedure<State, 'rpc', I, O, E, null>, extendedContext?: Omit<ServiceContext, 'state'>): (msg: Static<I>) => Promise<Result<Static<O>, Static<E> | Static<typeof RiverUncaughtSchema>>>;
55
- /**
56
- * Transforms a stream procedure definition into a pair of input and output streams.
57
- * Input messages can be pushed into the input stream.
58
- * This should only be used for testing.
59
- * @template State - The type of the state object.
60
- * @template I - The type of the input object.
61
- * @template O - The type of the output object.
62
- * @param {State} state - The state object.
63
- * @param {Procedure<State, 'stream', I, O, E, null>} proc - The procedure to handle the stream.
64
- * @param {Omit<ServiceContext, 'state'>} [extendedContext] - The extended context object.
65
- * @returns Pair of input and output streams.
66
- */
67
- export declare function asClientStream<State extends object | unknown, I extends PayloadType, O extends PayloadType, E extends RiverError>(state: State, proc: Procedure<State, 'stream', I, O, E, null>, extendedContext?: Omit<ServiceContext, 'state'>): [
68
- Pushable<Static<I>>,
69
- Pushable<Result<Static<O>, Static<E> | Static<typeof RiverUncaughtSchema>>>
70
- ];
71
- /**
72
- * Transforms a stream procedure definition into a pair of input and output streams.
73
- * Input messages can be pushed into the input stream.
74
- * This should only be used for testing.
75
- * @template State - The type of the state object.
76
- * @template I - The type of the input object.
77
- * @template O - The type of the output object.
78
- * @param {State} state - The state object.
79
- * @param {Procedure<State, 'stream', I, O, E, null>} proc - The procedure to handle the stream.
80
- * @param {Omit<ServiceContext, 'state'>} [extendedContext] - The extended context object.
81
- * @returns Pair of input and output streams.
82
- */
83
- export declare function asClientStreamWithInitialization<State extends object | unknown, I extends PayloadType, O extends PayloadType, E extends RiverError, Init extends PayloadType>(state: State, proc: Procedure<State, 'stream', I, O, E, Init>, init: Static<PayloadType>, extendedContext?: Omit<ServiceContext, 'state'>): [
84
- Pushable<Static<I>>,
85
- Pushable<Result<Static<O>, Static<E> | Static<typeof RiverUncaughtSchema>>>
86
- ];
87
- /**
88
- * Transforms a subscription procedure definition into a procedure that returns an output stream.
89
- * Input messages can be pushed into the input stream.
90
- * This should only be used for testing.
91
- * @template State - The type of the state object.
92
- * @template I - The type of the input object.
93
- * @template O - The type of the output object.
94
- * @param {State} state - The state object.
95
- * @param {Procedure<State, 'stream', I, O, E, null>} proc - The procedure to handle the stream.
96
- * @param {Omit<ServiceContext, 'state'>} [extendedContext] - The extended context object.
97
- * @returns A function that when passed a message, returns the output stream.
98
- */
99
- export declare function asClientSubscription<State extends object | unknown, I extends PayloadType, O extends PayloadType, E extends RiverError>(state: State, proc: Procedure<State, 'subscription', I, O, E, null>, extendedContext?: Omit<ServiceContext, 'state'>): (msg: Static<I>) => Promise<Pushable<Result<Static<O>, Static<E> | Static<typeof RiverUncaughtSchema>>>>;
100
- /**
101
- * Transforms an upload procedure definition into a procedure that returns an input stream.
102
- * Input messages can be pushed into the input stream.
103
- * This should only be used for testing.
104
- * @template State - The type of the state object.
105
- * @template I - The type of the input object.
106
- * @template O - The type of the output object.
107
- * @param {State} state - The state object.
108
- * @param {Procedure<State, 'upload', I, O, E, null>} proc - The procedure to handle the stream.
109
- * @param {Omit<ServiceContext, 'state'>} [extendedContext] - The extended context object.
110
- * @returns A function that when passed a message, returns the output stream.
111
- */
112
- export declare function asClientUpload<State extends object | unknown, I extends PayloadType, O extends PayloadType, E extends RiverError>(state: State, proc: Procedure<State, 'upload', I, O, E, null>, extendedContext?: Omit<ServiceContext, 'state'>): [
113
- Pushable<Static<I>>,
114
- Promise<Result<Static<O>, Static<E> | Static<typeof RiverUncaughtSchema>>>
115
- ];
116
- /**
117
- * Transforms an upload with initialization procedure definition into a procedure that returns an
118
- * input stream.
119
- * Input messages can be pushed into the input stream.
120
- * This should only be used for testing.
121
- * @template State - The type of the state object.
122
- * @template Init - The type of the init object.
123
- * @template I - The type of the input object.
124
- * @template O - The type of the output object.
125
- * @param {State} state - The state object.
126
- * @param {Procedure<State, 'upload', I, O, E, Init>} proc - The procedure to handle the stream.
127
- * @param {Omit<ServiceContext, 'state'>} [extendedContext] - The extended context object.
128
- * @returns A function that when passed a message, returns the output stream.
129
- */
130
- export declare function asClientUploadWithInitialization<State extends object | unknown, I extends PayloadType, O extends PayloadType, E extends RiverError, Init extends PayloadType>(state: State, proc: Procedure<State, 'upload', I, O, E, Init>, init: Static<Init>, extendedContext?: Omit<ServiceContext, 'state'>): [
131
- Pushable<Static<I>>,
132
- Promise<Result<Static<O>, Static<E> | Static<typeof RiverUncaughtSchema>>>
133
- ];
41
+ declare function createWsTransports(port: number, wss: WebSocketServer, codec?: Codec): [WebSocketClientTransport, WebSocketServerTransport];
134
42
  /**
135
43
  * Converts a payload object to a transport message with reasonable defaults.
136
44
  * This should only be used for testing.
@@ -138,16 +46,34 @@ export declare function asClientUploadWithInitialization<State extends object |
138
46
  * @param streamId - The optional stream ID.
139
47
  * @returns The transport message.
140
48
  */
141
- export declare function payloadToTransportMessage<Payload extends object>(payload: Payload, streamId?: string, from?: TransportClientId, to?: TransportClientId): TransportMessage<Payload>;
49
+ declare function payloadToTransportMessage<Payload extends object>(payload: Payload, streamId?: string, from?: TransportClientId, to?: TransportClientId): TransportMessage<Payload>;
142
50
  /**
143
51
  * Creates a dummy opaque transport message for testing purposes.
144
52
  * @returns The created opaque transport message.
145
53
  */
146
- export declare function createDummyTransportMessage(): OpaqueTransportMessage;
54
+ declare function createDummyTransportMessage(): OpaqueTransportMessage;
147
55
  /**
148
56
  * Retrieves the next value from an async iterable iterator.
149
57
  * @param iter The async iterable iterator.
150
58
  * @returns A promise that resolves to the next value from the iterator.
151
59
  */
152
- export declare function iterNext<T>(iter: AsyncIterableIterator<T>): Promise<any>;
153
- //# sourceMappingURL=testHelpers.d.ts.map
60
+ declare function iterNext<T>(iter: AsyncIterableIterator<T>): Promise<any>;
61
+ /**
62
+ * Waits for a message on the transport.
63
+ * @param {Transport} t - The transport to listen to.
64
+ * @param filter - An optional filter function to apply to the received messages.
65
+ * @returns A promise that resolves with the payload of the first message that passes the filter.
66
+ */
67
+ declare function waitForMessage(t: Transport<Connection>, filter?: (msg: OpaqueTransportMessage) => boolean, rejectMismatch?: boolean): Promise<unknown>;
68
+ declare function asClientRpc<State extends object | unknown, I extends PayloadType, O extends PayloadType, E extends RiverError, Init extends PayloadType | null = null>(state: State, proc: Procedure<State, 'rpc', I, O, E, Init>, extendedContext?: Omit<ServiceContext, 'state'>): (msg: Static<I>) => Promise<Result<Static<O>, Static<E> | Static<typeof RiverUncaughtSchema>>>;
69
+ declare function asClientStream<State extends object | unknown, I extends PayloadType, O extends PayloadType, E extends RiverError, Init extends PayloadType | null = null>(state: State, proc: Procedure<State, 'stream', I, O, E, Init>, init?: Init extends PayloadType ? Static<Init> : null, extendedContext?: Omit<ServiceContext, 'state'>): readonly [it_pushable.Pushable<Static<I>, void, unknown>, it_pushable.Pushable<Result<Static<O>, Static<E>>, void, unknown>];
70
+ declare function asClientSubscription<State extends object | unknown, I extends PayloadType, O extends PayloadType, E extends RiverError>(state: State, proc: Procedure<State, 'subscription', I, O, E>, extendedContext?: Omit<ServiceContext, 'state'>): (msg: Static<I>) => Promise<it_pushable.Pushable<Result<Static<O>, Static<E>>, void, unknown>>;
71
+ declare function asClientUpload<State extends object | unknown, I extends PayloadType, O extends PayloadType, E extends RiverError, Init extends PayloadType | null = null>(state: State, proc: Procedure<State, 'upload', I, O, E, Init>, init?: Init extends PayloadType ? Static<Init> : null, extendedContext?: Omit<ServiceContext, 'state'>): Promise<readonly [it_pushable.Pushable<Static<I>, void, unknown>, Promise<{
72
+ ok: boolean;
73
+ payload: {
74
+ code: string;
75
+ message: string;
76
+ };
77
+ } | Result<Static<O>, Static<E>>>]>;
78
+
79
+ export { asClientRpc, asClientStream, asClientSubscription, asClientUpload, createDummyTransportMessage, createLocalWebSocketClient, createWebSocketServer, createWsTransports, iterNext, onServerReady, payloadToTransportMessage, waitForMessage };