@livestore/common-cf 0.4.0-dev.9 โ 0.5.0-dev.0
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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/cf-types.js +2 -0
- package/dist/cf-types.js.map +1 -1
- package/dist/declare/cf-declare.d.ts +32 -5
- package/dist/declare/cf-declare.d.ts.map +1 -1
- package/dist/declare/cf-declare.js +9 -10
- package/dist/declare/cf-declare.js.map +1 -1
- package/dist/do-rpc/client.d.ts +1 -1
- package/dist/do-rpc/client.d.ts.map +1 -1
- package/dist/do-rpc/client.js +23 -46
- package/dist/do-rpc/client.js.map +1 -1
- package/dist/do-rpc/client.test.d.ts +2 -0
- package/dist/do-rpc/client.test.d.ts.map +1 -0
- package/dist/do-rpc/client.test.js +99 -0
- package/dist/do-rpc/client.test.js.map +1 -0
- package/dist/do-rpc/rpc.test.js +27 -59
- package/dist/do-rpc/rpc.test.js.map +1 -1
- package/dist/do-rpc/server.d.ts +10 -5
- package/dist/do-rpc/server.d.ts.map +1 -1
- package/dist/do-rpc/server.js +104 -54
- package/dist/do-rpc/server.js.map +1 -1
- package/dist/do-rpc/test-fixtures/rpc-schema.d.ts +27 -27
- package/dist/do-rpc/test-fixtures/rpc-schema.js +11 -11
- package/dist/do-rpc/test-fixtures/worker.d.ts.map +1 -1
- package/dist/do-rpc/test-fixtures/worker.js +10 -10
- package/dist/do-rpc/test-fixtures/worker.js.map +1 -1
- package/dist/ws-rpc/test-fixtures/rpc-schema.d.ts +27 -27
- package/dist/ws-rpc/test-fixtures/rpc-schema.js +9 -9
- package/dist/ws-rpc/test-fixtures/worker.d.ts.map +1 -1
- package/dist/ws-rpc/test-fixtures/worker.js +2 -2
- package/dist/ws-rpc/test-fixtures/worker.js.map +1 -1
- package/dist/ws-rpc/ws-rpc-server.d.ts +47 -6
- package/dist/ws-rpc/ws-rpc-server.d.ts.map +1 -1
- package/dist/ws-rpc/ws-rpc-server.js +30 -20
- package/dist/ws-rpc/ws-rpc-server.js.map +1 -1
- package/dist/ws-rpc/ws-rpc.test.js +29 -61
- package/dist/ws-rpc/ws-rpc.test.js.map +1 -1
- package/package.json +40 -16
- package/src/cf-types.ts +2 -0
- package/src/declare/cf-declare.ts +18 -10
- package/src/do-rpc/README.md +1 -2
- package/src/do-rpc/client.test.ts +122 -0
- package/src/do-rpc/client.ts +30 -50
- package/src/do-rpc/rpc.test.ts +33 -61
- package/src/do-rpc/server.ts +157 -80
- package/src/do-rpc/test-fixtures/rpc-schema.ts +11 -11
- package/src/do-rpc/test-fixtures/worker.ts +13 -14
- package/src/ws-rpc/README.md +1 -1
- package/src/ws-rpc/test-fixtures/rpc-schema.ts +9 -9
- package/src/ws-rpc/test-fixtures/worker.ts +6 -4
- package/src/ws-rpc/ws-rpc-server.ts +69 -34
- package/src/ws-rpc/ws-rpc.test.ts +35 -63
- package/src/do-rpc/test-fixtures/.wrangler/state/v3/do/test-durable-object-rpc-TestRpcDurableObject/9ad3dfcb5436dfc3f2e14f5b554a0fd6d8b68206ad64fdde7320232d04e16dfe.sqlite +0 -0
- package/src/do-rpc/test-fixtures/.wrangler/state/v3/do/test-durable-object-rpc-TestRpcDurableObject/9ad3dfcb5436dfc3f2e14f5b554a0fd6d8b68206ad64fdde7320232d04e16dfe.sqlite-shm +0 -0
- package/src/do-rpc/test-fixtures/.wrangler/state/v3/do/test-durable-object-rpc-TestRpcDurableObject/9ad3dfcb5436dfc3f2e14f5b554a0fd6d8b68206ad64fdde7320232d04e16dfe.sqlite-wal +0 -0
- package/src/ws-rpc/test-fixtures/.wrangler/state/v3/do/test-durable-object-rpc-TestRpcDurableObject/9ad3dfcb5436dfc3f2e14f5b554a0fd6d8b68206ad64fdde7320232d04e16dfe.sqlite +0 -0
- package/src/ws-rpc/test-fixtures/.wrangler/state/v3/do/test-durable-object-rpc-TestRpcDurableObject/9ad3dfcb5436dfc3f2e14f5b554a0fd6d8b68206ad64fdde7320232d04e16dfe.sqlite-shm +0 -0
- package/src/ws-rpc/test-fixtures/.wrangler/state/v3/do/test-durable-object-rpc-TestRpcDurableObject/9ad3dfcb5436dfc3f2e14f5b554a0fd6d8b68206ad64fdde7320232d04e16dfe.sqlite-wal +0 -0
|
@@ -6,8 +6,8 @@ export class TestRpcs extends RpcGroup.make(Rpc.make('Ping', {
|
|
|
6
6
|
payload: Schema.Struct({ text: Schema.String }),
|
|
7
7
|
success: Schema.Struct({ echo: Schema.String }),
|
|
8
8
|
}), Rpc.make('Add', {
|
|
9
|
-
payload: Schema.Struct({ a: Schema.
|
|
10
|
-
success: Schema.Struct({ result: Schema.
|
|
9
|
+
payload: Schema.Struct({ a: Schema.Finite, b: Schema.Finite }),
|
|
10
|
+
success: Schema.Struct({ result: Schema.Finite }),
|
|
11
11
|
}), Rpc.make('Defect', {
|
|
12
12
|
payload: Schema.Struct({ message: Schema.String }),
|
|
13
13
|
success: Schema.Struct({ never: Schema.String }),
|
|
@@ -18,21 +18,21 @@ export class TestRpcs extends RpcGroup.make(Rpc.make('Ping', {
|
|
|
18
18
|
}), Rpc.make('Stream', {
|
|
19
19
|
payload: Schema.Struct({}),
|
|
20
20
|
success: Schema.Struct({
|
|
21
|
-
maybeNumber: Schema.Option(Schema.
|
|
21
|
+
maybeNumber: Schema.Option(Schema.Finite),
|
|
22
22
|
}),
|
|
23
23
|
stream: true,
|
|
24
24
|
}), Rpc.make('StreamError', {
|
|
25
|
-
payload: Schema.Struct({ count: Schema.
|
|
26
|
-
success: Schema.
|
|
25
|
+
payload: Schema.Struct({ count: Schema.Finite, errorAfter: Schema.Finite }),
|
|
26
|
+
success: Schema.Finite,
|
|
27
27
|
error: Schema.String,
|
|
28
28
|
stream: true,
|
|
29
29
|
}), Rpc.make('StreamDefect', {
|
|
30
|
-
payload: Schema.Struct({ count: Schema.
|
|
31
|
-
success: Schema.
|
|
30
|
+
payload: Schema.Struct({ count: Schema.Finite, defectAfter: Schema.Finite }),
|
|
31
|
+
success: Schema.Finite,
|
|
32
32
|
stream: true,
|
|
33
33
|
}), Rpc.make('StreamInterruptible', {
|
|
34
|
-
payload: Schema.Struct({ delay: Schema.
|
|
35
|
-
success: Schema.
|
|
34
|
+
payload: Schema.Struct({ delay: Schema.Finite, interruptAfterCount: Schema.Finite }),
|
|
35
|
+
success: Schema.Finite,
|
|
36
36
|
stream: true,
|
|
37
37
|
})) {
|
|
38
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/ws-rpc/test-fixtures/worker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/ws-rpc/test-fixtures/worker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAQlD,MAAM,WAAW,GAAG;IAClB,WAAW,EAAE,sBAAsB,CAAC,oBAAoB,CAAC,CAAA;CAC1D;AAED,qBAAa,oBAAqB,SAAQ,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC;IAC1D,sBAAsB,EAA6B,KAAK,CAAA;gBAErD,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG;IA8ChC,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;CAgB1D;;mBAGsB,OAAO,OAAO,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;;AAD5D,wBAeC"}
|
|
@@ -45,14 +45,14 @@ export default {
|
|
|
45
45
|
async fetch(request, env) {
|
|
46
46
|
try {
|
|
47
47
|
const upgradeHeader = request.headers.get('Upgrade');
|
|
48
|
-
if (
|
|
48
|
+
if (upgradeHeader == null || upgradeHeader !== 'websocket') {
|
|
49
49
|
return new Response('Durable Object expected Upgrade: websocket', { status: 426 });
|
|
50
50
|
}
|
|
51
51
|
const serverDO = env.TEST_RPC_DO.get(env.TEST_RPC_DO.idFromName('test-server'));
|
|
52
52
|
return serverDO.fetch(request);
|
|
53
53
|
}
|
|
54
54
|
catch (error) {
|
|
55
|
-
return new Response(`Error: ${error}`, { status: 500 });
|
|
55
|
+
return new Response(`Error: ${String(error)}`, { status: 500 });
|
|
56
56
|
}
|
|
57
57
|
},
|
|
58
58
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/ws-rpc/test-fixtures/worker.ts"],"names":[],"mappings":"AAAA,mDAAmD;AAEnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/ws-rpc/test-fixtures/worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,8 +14,18 @@
|
|
|
14
14
|
*
|
|
15
15
|
* @see {@link https://developers.cloudflare.com/durable-objects/best-practices/websockets/ Cloudflare WebSocket Best Practices}
|
|
16
16
|
*/
|
|
17
|
-
import { Layer,
|
|
17
|
+
import { Context, Layer, Queue, RpcMessage, RpcSerialization, RpcServer, Scope } from '@livestore/utils/effect';
|
|
18
18
|
import type * as CfTypes from '../cf-types.ts';
|
|
19
|
+
declare const WsContext_base: Context.ServiceClass<WsContext, "WsContext", {
|
|
20
|
+
readonly ws: CfTypes.WebSocket;
|
|
21
|
+
}>;
|
|
22
|
+
/**
|
|
23
|
+
* Context service providing access to the current WebSocket.
|
|
24
|
+
* This is useful for reading WebSocket attachment data (e.g., forwarded headers)
|
|
25
|
+
* inside RPC handlers.
|
|
26
|
+
*/
|
|
27
|
+
export declare class WsContext extends WsContext_base {
|
|
28
|
+
}
|
|
19
29
|
/**
|
|
20
30
|
* Configuration options for setting up WebSocket RPC on a Durable Object.
|
|
21
31
|
*/
|
|
@@ -28,11 +38,25 @@ export interface DurableObjectWebSocketRpcConfig {
|
|
|
28
38
|
* - 'accept': Use traditional WebSocket handling (not yet implemented)
|
|
29
39
|
*/
|
|
30
40
|
webSocketMode: 'hibernate' | 'accept';
|
|
31
|
-
/**
|
|
32
|
-
|
|
41
|
+
/**
|
|
42
|
+
* Effect RPC layer that requires `RpcServer.Protocol` (and `WsContext` if used)
|
|
43
|
+
* and provides the RPC server services.
|
|
44
|
+
*
|
|
45
|
+
* This is typically created by:
|
|
46
|
+
* ```typescript
|
|
47
|
+
* RpcServer.layer(MyRpcs).pipe(Layer.provide(handlersLayer))
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
50
|
+
* `WsContext` is provided by the WebSocket protocol layer, so handlers can access
|
|
51
|
+
* WebSocket attachment data (e.g., forwarded headers stored after WebSocket upgrade).
|
|
52
|
+
*
|
|
53
|
+
* The layer requirements (`RIn`) must be a subset of `RpcServer.Protocol | WsContext`,
|
|
54
|
+
* which are both provided by the WebSocket protocol layer.
|
|
55
|
+
*/
|
|
56
|
+
rpcLayer: Layer.Layer<never, never, RpcServer.Protocol | WsContext>;
|
|
33
57
|
/** Function to get access to incoming requests */
|
|
34
58
|
onMessage?: (msg: RpcMessage.FromClientEncoded, ws: CfTypes.WebSocket) => void;
|
|
35
|
-
mainLayer?: Layer.Layer<never
|
|
59
|
+
mainLayer?: Layer.Layer<never>;
|
|
36
60
|
}
|
|
37
61
|
/**
|
|
38
62
|
* Sets up WebSocket RPC functionality on a Cloudflare Durable Object with hibernation support.
|
|
@@ -103,8 +127,25 @@ export declare const setupDurableObjectWebSocketRpc: ({ doSelf, rpcLayer, webSoc
|
|
|
103
127
|
*/
|
|
104
128
|
export interface WsRpcServerArgs {
|
|
105
129
|
ws: CfTypes.WebSocket;
|
|
130
|
+
scope: Scope.Scope;
|
|
106
131
|
onMessage?: (message: RpcMessage.FromClientEncoded, ws: CfTypes.WebSocket) => void;
|
|
107
|
-
/**
|
|
108
|
-
incomingQueue:
|
|
132
|
+
/** Queue for receiving incoming messages from the WebSocket */
|
|
133
|
+
incomingQueue: Queue.Queue<Uint8Array | string>;
|
|
109
134
|
}
|
|
135
|
+
/**
|
|
136
|
+
* Creates an RPC server protocol layer for WebSocket communication.
|
|
137
|
+
*
|
|
138
|
+
* This layer handles the low-level WebSocket protocol details for RPC communication,
|
|
139
|
+
* including message serialization, routing, and error handling.
|
|
140
|
+
*
|
|
141
|
+
* Also provides `WsContext` with the current WebSocket so handlers can access
|
|
142
|
+
* WebSocket attachment data (e.g., forwarded headers).
|
|
143
|
+
*
|
|
144
|
+
* @param args Configuration for WebSocket RPC protocol
|
|
145
|
+
* @returns Effect layer that provides RPC server protocol functionality and WsContext
|
|
146
|
+
*
|
|
147
|
+
* @internal This is typically used internally by `setupDurableObjectWebSocketRpc`
|
|
148
|
+
*/
|
|
149
|
+
export declare const layerRpcServerWebsocket: (args: WsRpcServerArgs) => Layer.Layer<WsContext | RpcServer.Protocol, never, RpcSerialization.RpcSerialization>;
|
|
150
|
+
export {};
|
|
110
151
|
//# sourceMappingURL=ws-rpc-server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws-rpc-server.d.ts","sourceRoot":"","sources":["../../src/ws-rpc/ws-rpc-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,
|
|
1
|
+
{"version":3,"file":"ws-rpc-server.d.ts","sourceRoot":"","sources":["../../src/ws-rpc/ws-rpc-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EACL,OAAO,EAIP,KAAK,EAEL,KAAK,EAEL,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,KAAK,EAEN,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,KAAK,OAAO,MAAM,gBAAgB,CAAA;;iBAO2B,OAAO,CAAC,SAAS;;AAL1F;;;;GAIG;AACH,qBAAa,SAAU,SAAQ,cAA6E;CAAG;AAE/G;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C,+CAA+C;IAC/C,MAAM,EAAE,OAAO,CAAC,aAAa,CAAA;IAC7B;;;;OAIG;IACH,aAAa,EAAE,WAAW,GAAG,QAAQ,CAAA;IACrC;;;;;;;;;;;;;;OAcG;IACH,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAA;IACnE,kDAAkD;IAClD,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,CAAC,iBAAiB,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,KAAK,IAAI,CAAA;IAC9E,SAAS,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,eAAO,MAAM,8BAA8B,GAAI,4DAM5C,+BAA+B;;;CA0FjC,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,OAAO,CAAC,SAAS,CAAA;IACrB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAA;IAClB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,iBAAiB,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,KAAK,IAAI,CAAA;IAClF,+DAA+D;IAC/D,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,CAAA;CAChD;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,uBAAuB,GAAI,MAAM,eAAe,0FAI1D,CAAA"}
|
|
@@ -15,7 +15,14 @@
|
|
|
15
15
|
* @see {@link https://developers.cloudflare.com/durable-objects/best-practices/websockets/ Cloudflare WebSocket Best Practices}
|
|
16
16
|
*/
|
|
17
17
|
import { notYetImplemented, omitUndefineds } from '@livestore/utils';
|
|
18
|
-
import {
|
|
18
|
+
import { Context, Effect, Function, Exit, Layer, Logger, Queue, References, RpcMessage, RpcSerialization, RpcServer, Scope, Stream, } from '@livestore/utils/effect';
|
|
19
|
+
/**
|
|
20
|
+
* Context service providing access to the current WebSocket.
|
|
21
|
+
* This is useful for reading WebSocket attachment data (e.g., forwarded headers)
|
|
22
|
+
* inside RPC handlers.
|
|
23
|
+
*/
|
|
24
|
+
export class WsContext extends Context.Service()('WsContext') {
|
|
25
|
+
}
|
|
19
26
|
/**
|
|
20
27
|
* Sets up WebSocket RPC functionality on a Cloudflare Durable Object with hibernation support.
|
|
21
28
|
*
|
|
@@ -82,31 +89,30 @@ export const setupDurableObjectWebSocketRpc = ({ doSelf, rpcLayer, webSocketMode
|
|
|
82
89
|
}
|
|
83
90
|
const serverCtxMap = new Map();
|
|
84
91
|
const launchServer = (ws) => Effect.gen(function* () {
|
|
85
|
-
if (serverCtxMap.has(ws)) {
|
|
92
|
+
if (serverCtxMap.has(ws) === true) {
|
|
86
93
|
return serverCtxMap.get(ws);
|
|
87
94
|
}
|
|
88
95
|
yield* Effect.logDebug(`Launching WebSocket Effect RPC server`);
|
|
89
96
|
const scope = yield* Scope.make();
|
|
90
|
-
const incomingQueue = yield*
|
|
91
|
-
yield* Scope.addFinalizer(scope,
|
|
97
|
+
const incomingQueue = yield* Queue.unbounded();
|
|
98
|
+
yield* Scope.addFinalizer(scope, Queue.shutdown(incomingQueue).pipe(Effect.asVoid));
|
|
92
99
|
const ProtocolLive = layerRpcServerWebsocket({
|
|
93
100
|
ws,
|
|
101
|
+
scope,
|
|
94
102
|
incomingQueue,
|
|
95
103
|
...omitUndefineds({ onMessage }),
|
|
96
104
|
}).pipe(Layer.provide(RpcSerialization.layerJson));
|
|
97
105
|
const ServerLive = rpcLayer.pipe(Layer.provide(ProtocolLive));
|
|
98
106
|
yield* Layer.launch(ServerLive).pipe(Effect.tapCauseLogPretty, Effect.forkIn(scope));
|
|
99
|
-
const
|
|
107
|
+
const services = yield* Effect.context();
|
|
100
108
|
const ctx = {
|
|
101
109
|
scope,
|
|
102
|
-
onMessage: (message) => incomingQueue
|
|
103
|
-
.offer(message)
|
|
104
|
-
.pipe(Effect.asVoid, Effect.withSpan('ws-rpc-server/onMessage', { root: true }), Effect.provide(runtime), Effect.runPromise),
|
|
110
|
+
onMessage: (message) => Queue.offer(incomingQueue, message).pipe(Effect.asVoid, Effect.withSpan('ws-rpc-server/onMessage', { root: true }), Effect.runPromiseWith(services)),
|
|
105
111
|
};
|
|
106
112
|
serverCtxMap.set(ws, ctx);
|
|
107
113
|
return ctx;
|
|
108
|
-
}).pipe(Effect.tapCauseLogPretty, Logger.
|
|
109
|
-
|
|
114
|
+
}).pipe(Effect.tapCauseLogPretty, Effect.annotateLogs({ thread: 'ws-rpc-server' }), Effect.provide(Layer.mergeAll(Logger.layer([Logger.consoleStructured]), Layer.succeed(References.MinimumLogLevel, 'Debug'), // Useful for debugging
|
|
115
|
+
mainLayer ?? Layer.empty)), Effect.withSpan('effect-ws-rpc-server'), Effect.runPromise);
|
|
110
116
|
const webSocketMessage = async (ws, message) => {
|
|
111
117
|
// console.log('webSocketMessage', message, serverCtxMap.has(ws))
|
|
112
118
|
const { onMessage } = await launchServer(ws);
|
|
@@ -115,7 +121,7 @@ export const setupDurableObjectWebSocketRpc = ({ doSelf, rpcLayer, webSocketMode
|
|
|
115
121
|
const webSocketClose = async (ws, _code, _reason, _wasClean) => {
|
|
116
122
|
const ctx = serverCtxMap.get(ws);
|
|
117
123
|
// console.log('webSocketClose', ctx, ws)
|
|
118
|
-
if (ctx) {
|
|
124
|
+
if (ctx !== undefined) {
|
|
119
125
|
await Scope.close(ctx.scope, Exit.void).pipe(Effect.runPromise);
|
|
120
126
|
serverCtxMap.delete(ws);
|
|
121
127
|
}
|
|
@@ -133,12 +139,15 @@ export const setupDurableObjectWebSocketRpc = ({ doSelf, rpcLayer, webSocketMode
|
|
|
133
139
|
* This layer handles the low-level WebSocket protocol details for RPC communication,
|
|
134
140
|
* including message serialization, routing, and error handling.
|
|
135
141
|
*
|
|
142
|
+
* Also provides `WsContext` with the current WebSocket so handlers can access
|
|
143
|
+
* WebSocket attachment data (e.g., forwarded headers).
|
|
144
|
+
*
|
|
136
145
|
* @param args Configuration for WebSocket RPC protocol
|
|
137
|
-
* @returns Effect layer that provides RPC server protocol functionality
|
|
146
|
+
* @returns Effect layer that provides RPC server protocol functionality and WsContext
|
|
138
147
|
*
|
|
139
148
|
* @internal This is typically used internally by `setupDurableObjectWebSocketRpc`
|
|
140
149
|
*/
|
|
141
|
-
export const layerRpcServerWebsocket = (args) => Layer.
|
|
150
|
+
export const layerRpcServerWebsocket = (args) => Layer.mergeAll(Layer.effect(RpcServer.Protocol, makeSocketProtocol(args)), Layer.succeed(WsContext, WsContext.of({ ws: args.ws })));
|
|
142
151
|
/**
|
|
143
152
|
* Creates the low-level RPC protocol implementation for WebSocket communication.
|
|
144
153
|
*
|
|
@@ -150,12 +159,12 @@ export const layerRpcServerWebsocket = (args) => Layer.scoped(RpcServer.Protocol
|
|
|
150
159
|
*
|
|
151
160
|
* @internal Used internally by `layerRpcServerWebsocket`
|
|
152
161
|
*/
|
|
153
|
-
const makeSocketProtocol = ({ incomingQueue, ws, onMessage }) => Effect.gen(function* () {
|
|
162
|
+
const makeSocketProtocol = ({ incomingQueue, scope, ws, onMessage }) => Effect.gen(function* () {
|
|
154
163
|
const serialization = yield* RpcSerialization.RpcSerialization;
|
|
155
|
-
const disconnects = yield*
|
|
164
|
+
const disconnects = yield* Queue.unbounded();
|
|
156
165
|
const writeRaw = (msg) => Effect.succeed(ws.send(msg));
|
|
157
166
|
let writeRequest;
|
|
158
|
-
const parser = serialization.
|
|
167
|
+
const parser = serialization.makeUnsafe();
|
|
159
168
|
const id = 0;
|
|
160
169
|
const write = (response) => {
|
|
161
170
|
try {
|
|
@@ -172,7 +181,7 @@ const makeSocketProtocol = ({ incomingQueue, ws, onMessage }) => Effect.gen(func
|
|
|
172
181
|
const protocol = yield* RpcServer.Protocol.make((writeRequest_) => {
|
|
173
182
|
writeRequest = writeRequest_;
|
|
174
183
|
// Start processing messages now that writeRequest is available
|
|
175
|
-
const startProcessing =
|
|
184
|
+
const startProcessing = Stream.fromQueue(incomingQueue).pipe(Stream.tap((data) => {
|
|
176
185
|
try {
|
|
177
186
|
const decoded = parser.decode(data);
|
|
178
187
|
if (decoded.length === 0)
|
|
@@ -182,18 +191,18 @@ const makeSocketProtocol = ({ incomingQueue, ws, onMessage }) => Effect.gen(func
|
|
|
182
191
|
while: () => i < decoded.length,
|
|
183
192
|
body: () => {
|
|
184
193
|
const request = decoded[i++];
|
|
185
|
-
if (onMessage) {
|
|
194
|
+
if (onMessage !== undefined) {
|
|
186
195
|
onMessage(request, ws);
|
|
187
196
|
}
|
|
188
197
|
return writeRequest(id, request);
|
|
189
198
|
},
|
|
190
|
-
step: constVoid,
|
|
199
|
+
step: Function.constVoid,
|
|
191
200
|
});
|
|
192
201
|
}
|
|
193
202
|
catch (cause) {
|
|
194
203
|
return Effect.orDie(writeRaw(parser.encode(RpcMessage.ResponseDefectEncoded(cause))));
|
|
195
204
|
}
|
|
196
|
-
}), Stream.runDrain, Effect.tapCauseLogPretty, Effect.
|
|
205
|
+
}), Stream.runDrain, Effect.tapCauseLogPretty, Effect.forkIn(scope));
|
|
197
206
|
// Start the message processing
|
|
198
207
|
return Effect.map(startProcessing, () => ({
|
|
199
208
|
disconnects,
|
|
@@ -207,6 +216,7 @@ const makeSocketProtocol = ({ incomingQueue, ws, onMessage }) => Effect.gen(func
|
|
|
207
216
|
supportsAck: true,
|
|
208
217
|
supportsTransferables: false,
|
|
209
218
|
supportsSpanPropagation: true,
|
|
219
|
+
supportsNotifications: true,
|
|
210
220
|
}));
|
|
211
221
|
});
|
|
212
222
|
return protocol;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws-rpc-server.js","sourceRoot":"","sources":["../../src/ws-rpc/ws-rpc-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACpE,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"ws-rpc-server.js","sourceRoot":"","sources":["../../src/ws-rpc/ws-rpc-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,114 +1,82 @@
|
|
|
1
|
-
import { Chunk, Effect, FetchHttpClient, Layer, Logger, LogLevel, Option, RpcClient, RpcSerialization, Socket, Stream, } from '@livestore/utils/effect';
|
|
2
|
-
import { PlatformNode } from '@livestore/utils/node';
|
|
3
|
-
import { Vitest } from '@livestore/utils-dev/node-vitest';
|
|
4
|
-
import { WranglerDevServerService } from '@livestore/utils-dev/wrangler';
|
|
5
1
|
import { expect } from 'vitest';
|
|
2
|
+
import { Vitest } from '@livestore/utils-dev/node-vitest';
|
|
3
|
+
import { WranglerDevServer } from '@livestore/utils-dev/wrangler';
|
|
4
|
+
import { Effect, FetchHttpClient, Layer, Option, References, RpcClient, RpcSerialization, Socket, Stream, } from '@livestore/utils/effect';
|
|
5
|
+
import { PlatformNode } from '@livestore/utils/node';
|
|
6
6
|
import { TestRpcs } from "./test-fixtures/rpc-schema.js";
|
|
7
7
|
const testTimeout = 60_000;
|
|
8
8
|
const withWranglerTest = Vitest.makeWithTestCtx({
|
|
9
9
|
timeout: testTimeout,
|
|
10
|
-
makeLayer: () =>
|
|
10
|
+
makeLayer: () => WranglerDevServer.layer({
|
|
11
11
|
cwd: `${import.meta.dirname}/test-fixtures`,
|
|
12
|
-
}).pipe(Layer.provide(Layer.mergeAll(PlatformNode.
|
|
12
|
+
}).pipe(Layer.provide(Layer.mergeAll(PlatformNode.NodeServices.layer, FetchHttpClient.layer, Layer.succeed(References.MinimumLogLevel, 'Debug')))),
|
|
13
13
|
});
|
|
14
14
|
const ProtocolLive = Layer.suspend(() => Effect.gen(function* () {
|
|
15
|
-
const server = yield*
|
|
15
|
+
const server = yield* WranglerDevServer.WranglerDevServer;
|
|
16
16
|
return RpcClient.layerProtocolSocket().pipe(Layer.provide(Socket.layerWebSocket(`ws://localhost:${server.port}`)), Layer.provide(Socket.layerWebSocketConstructorGlobal), Layer.provide(RpcSerialization.layerJson));
|
|
17
|
-
}).pipe(Layer.
|
|
17
|
+
}).pipe(Layer.unwrap));
|
|
18
18
|
Vitest.describe('Durable Object WebSocket RPC', { timeout: testTimeout }, () => {
|
|
19
19
|
// Direct HTTP RPC client tests
|
|
20
|
-
Vitest.
|
|
20
|
+
Vitest.live('should call ping method', (test) => Effect.gen(function* () {
|
|
21
21
|
const client = yield* RpcClient.make(TestRpcs);
|
|
22
22
|
const result = yield* client.Ping({ message: 'Hello HTTP RPC' });
|
|
23
23
|
expect(result).toEqual({ response: 'Pong: Hello HTTP RPC' });
|
|
24
24
|
}).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)));
|
|
25
|
-
Vitest.
|
|
25
|
+
Vitest.live('should call echo method', (test) => Effect.gen(function* () {
|
|
26
26
|
const client = yield* RpcClient.make(TestRpcs);
|
|
27
27
|
const result = yield* client.Echo({ text: 'Echo' });
|
|
28
28
|
expect(result).toEqual({ echo: 'Echo: Echo' });
|
|
29
29
|
}).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)));
|
|
30
|
-
Vitest.
|
|
30
|
+
Vitest.live('should call add method', (test) => Effect.gen(function* () {
|
|
31
31
|
const client = yield* RpcClient.make(TestRpcs);
|
|
32
32
|
const result = yield* client.Add({ a: 15, b: 25 });
|
|
33
33
|
expect(result).toEqual({ result: 40 });
|
|
34
34
|
}).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)));
|
|
35
|
-
Vitest.
|
|
35
|
+
Vitest.live('should handle RPC fail method', (test) => Effect.gen(function* () {
|
|
36
36
|
const client = yield* RpcClient.make(TestRpcs);
|
|
37
37
|
const error = yield* client.Fail({ message: 'test http failure' }).pipe(Effect.exit);
|
|
38
38
|
expect(error.toString()).toMatchInlineSnapshot(`
|
|
39
|
-
"
|
|
40
|
-
"_id": "Exit",
|
|
41
|
-
"_tag": "Failure",
|
|
42
|
-
"cause": {
|
|
43
|
-
"_id": "Cause",
|
|
44
|
-
"_tag": "Fail",
|
|
45
|
-
"failure": "RPC failure: test http failure"
|
|
46
|
-
}
|
|
47
|
-
}"
|
|
39
|
+
"Failure(Cause([Fail("RPC failure: test http failure")]))"
|
|
48
40
|
`);
|
|
49
41
|
}).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)));
|
|
50
|
-
Vitest.
|
|
42
|
+
Vitest.live('should handle defect method', (test) => Effect.gen(function* () {
|
|
51
43
|
const client = yield* RpcClient.make(TestRpcs);
|
|
52
44
|
const error = yield* client.Defect({ message: 'test http defect' }).pipe(Effect.exit);
|
|
53
45
|
expect(error.toString()).toMatchInlineSnapshot(`
|
|
54
|
-
"
|
|
55
|
-
"_id": "Exit",
|
|
56
|
-
"_tag": "Failure",
|
|
57
|
-
"cause": {
|
|
58
|
-
"_id": "Cause",
|
|
59
|
-
"_tag": "Die",
|
|
60
|
-
"defect": "some defect: test http defect"
|
|
61
|
-
}
|
|
62
|
-
}"
|
|
46
|
+
"Failure(Cause([Die("some defect: test http defect")]))"
|
|
63
47
|
`);
|
|
64
48
|
}).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)));
|
|
65
|
-
Vitest.
|
|
49
|
+
Vitest.live('should handle streaming RPC via HTTP', (test) => Effect.gen(function* () {
|
|
66
50
|
const client = yield* RpcClient.make(TestRpcs);
|
|
67
51
|
const stream = client.Stream({}).pipe(Stream.take(4), Stream.map((c) => c.maybeNumber.pipe(Option.getOrUndefined)));
|
|
68
|
-
const
|
|
69
|
-
expect(
|
|
52
|
+
const result = yield* Stream.runCollect(stream);
|
|
53
|
+
expect(result).toEqual([1, 4, 9, 16]); // squares of 1,2,3,4
|
|
70
54
|
}).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)));
|
|
71
|
-
Vitest.
|
|
55
|
+
Vitest.live('should handle streaming RPC with error via HTTP', (test) => Effect.gen(function* () {
|
|
72
56
|
const client = yield* RpcClient.make(TestRpcs);
|
|
73
57
|
const stream = client.StreamError({ count: 5, errorAfter: 4 });
|
|
74
58
|
const error = yield* Stream.runCollect(stream).pipe(Effect.exit);
|
|
75
59
|
expect(error.toString()).toMatchInlineSnapshot(`
|
|
76
|
-
"
|
|
77
|
-
"_id": "Exit",
|
|
78
|
-
"_tag": "Failure",
|
|
79
|
-
"cause": {
|
|
80
|
-
"_id": "Cause",
|
|
81
|
-
"_tag": "Fail",
|
|
82
|
-
"failure": "Stream error after 4: got 9"
|
|
83
|
-
}
|
|
84
|
-
}"
|
|
60
|
+
"Failure(Cause([Fail("Stream error after 4: got 9")]))"
|
|
85
61
|
`);
|
|
86
62
|
}).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)));
|
|
87
|
-
Vitest.
|
|
63
|
+
Vitest.live('should handle streaming RPC with defect via HTTP', (test) => Effect.gen(function* () {
|
|
88
64
|
const client = yield* RpcClient.make(TestRpcs);
|
|
89
65
|
const stream = client.StreamDefect({ count: 4, defectAfter: 1 });
|
|
90
66
|
const error = yield* Stream.runCollect(stream).pipe(Effect.exit);
|
|
91
67
|
expect(error.toString()).toMatchInlineSnapshot(`
|
|
92
|
-
"
|
|
93
|
-
"_id": "Exit",
|
|
94
|
-
"_tag": "Failure",
|
|
95
|
-
"cause": {
|
|
96
|
-
"_id": "Cause",
|
|
97
|
-
"_tag": "Die",
|
|
98
|
-
"defect": "Stream defect after 1: got 4"
|
|
99
|
-
}
|
|
100
|
-
}"
|
|
68
|
+
"Failure(Cause([Die("Stream defect after 1: got 4")]))"
|
|
101
69
|
`);
|
|
102
70
|
}).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)));
|
|
103
|
-
Vitest.
|
|
71
|
+
Vitest.live('should handle stream interruption via HTTP', (test) => Effect.gen(function* () {
|
|
104
72
|
const client = yield* RpcClient.make(TestRpcs);
|
|
105
73
|
const stream = client.StreamInterruptible({ delay: 50, interruptAfterCount: 3 }).pipe(Stream.take(3));
|
|
106
|
-
const
|
|
107
|
-
expect(
|
|
74
|
+
const result = yield* Stream.runCollect(stream);
|
|
75
|
+
expect(result).toEqual([1, 2, 3]);
|
|
108
76
|
}).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)));
|
|
109
77
|
});
|
|
110
78
|
Vitest.describe('Hibernation Tests', { timeout: 25000 }, () => {
|
|
111
|
-
Vitest.
|
|
79
|
+
Vitest.live('should maintain RPC functionality after hibernation', (test) => Effect.gen(function* () {
|
|
112
80
|
console.log('๐งช Testing RPC server persistence across hibernation...');
|
|
113
81
|
// Step 1: Create client and test initial functionality
|
|
114
82
|
console.log('Step 1: Establishing initial connection and testing RPC methods...');
|
|
@@ -149,12 +117,12 @@ Vitest.describe('Hibernation Tests', { timeout: 25000 }, () => {
|
|
|
149
117
|
// Step 4: Test streaming after hibernation
|
|
150
118
|
console.log('Testing streaming after hibernation...');
|
|
151
119
|
const stream = client.Stream({}).pipe(Stream.take(3), Stream.map((c) => c.maybeNumber.pipe(Option.getOrUndefined)));
|
|
152
|
-
const
|
|
153
|
-
expect(
|
|
120
|
+
const result = yield* Stream.runCollect(stream);
|
|
121
|
+
expect(result).toEqual([1, 4, 9]); // squares of 1,2,3
|
|
154
122
|
console.log('โ
Streaming after hibernation successful');
|
|
155
123
|
console.log('๐ All RPC operations successful after hibernation!');
|
|
156
124
|
}).pipe(Effect.provide(ProtocolLive), withWranglerTest(test)));
|
|
157
|
-
Vitest.
|
|
125
|
+
Vitest.live('should handle rapid operations after hibernation', (test) => Effect.gen(function* () {
|
|
158
126
|
console.log('๐งช Testing rapid operations after hibernation...');
|
|
159
127
|
console.log('Step 1: Establishing initial connection...');
|
|
160
128
|
const client = yield* RpcClient.make(TestRpcs);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws-rpc.test.js","sourceRoot":"","sources":["../../src/ws-rpc/ws-rpc.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ws-rpc.test.js","sourceRoot":"","sources":["../../src/ws-rpc/ws-rpc.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,31 +1,55 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@livestore/common-cf",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0-dev.0",
|
|
4
|
+
"license": "Apache-2.0",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "git+https://github.com/livestorejs/livestore.git"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"dist",
|
|
11
|
+
"package.json",
|
|
12
|
+
"src",
|
|
13
|
+
"README.md"
|
|
14
|
+
],
|
|
4
15
|
"type": "module",
|
|
5
16
|
"sideEffects": false,
|
|
6
17
|
"exports": {
|
|
7
18
|
".": "./dist/mod.js",
|
|
8
19
|
"./declare": "./dist/declare/mod.js"
|
|
9
20
|
},
|
|
21
|
+
"publishConfig": {
|
|
22
|
+
"access": "public"
|
|
23
|
+
},
|
|
10
24
|
"dependencies": {
|
|
11
|
-
"@cloudflare/workers-types": "4.
|
|
12
|
-
"@livestore/
|
|
13
|
-
"@livestore/utils": "0.4.0-dev.9"
|
|
25
|
+
"@cloudflare/workers-types": "4.20251118.0",
|
|
26
|
+
"@livestore/utils": "^0.5.0-dev.0"
|
|
14
27
|
},
|
|
15
28
|
"devDependencies": {
|
|
16
|
-
"vitest": "
|
|
17
|
-
"wrangler": "4.
|
|
18
|
-
"@livestore/utils-dev": "0.
|
|
29
|
+
"vitest": "4.1.9",
|
|
30
|
+
"wrangler": "4.42.2",
|
|
31
|
+
"@livestore/utils-dev": "^0.5.0-dev.0"
|
|
19
32
|
},
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
"
|
|
33
|
+
"peerDependencies": {
|
|
34
|
+
"@effect/opentelemetry": "^4.0.0-rc.111",
|
|
35
|
+
"@effect/platform-browser": "^4.0.0-rc.111",
|
|
36
|
+
"@effect/platform-bun": "^4.0.0-rc.111",
|
|
37
|
+
"@effect/platform-node": "^4.0.0-rc.111",
|
|
38
|
+
"@effect/platform-node-shared": "^4.0.0-rc.111",
|
|
39
|
+
"@effect/vitest": "^4.0.0-rc.111",
|
|
40
|
+
"@opentelemetry/api": "^1.9.0",
|
|
41
|
+
"@opentelemetry/resources": "^2.2.0",
|
|
42
|
+
"@standard-schema/spec": "^1.1.0",
|
|
43
|
+
"effect": "^4.0.0-rc.111"
|
|
44
|
+
},
|
|
45
|
+
"$genie": {
|
|
46
|
+
"source": "package.json.genie.ts",
|
|
47
|
+
"warning": "DO NOT EDIT - changes will be overwritten",
|
|
48
|
+
"workspaceClosureDirs": [
|
|
49
|
+
"packages/@livestore/common-cf",
|
|
50
|
+
"packages/@livestore/utils",
|
|
51
|
+
"packages/@livestore/utils-dev"
|
|
52
|
+
]
|
|
29
53
|
},
|
|
30
54
|
"scripts": {
|
|
31
55
|
"test": "vitest run"
|
package/src/cf-types.ts
CHANGED