@livestore/common-cf 0.4.0-dev.21 → 0.4.0-dev.23
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/declare/cf-declare.d.ts +53 -6
- 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 +10 -17
- package/dist/do-rpc/client.js.map +1 -1
- package/dist/do-rpc/rpc.test.js +3 -3
- package/dist/do-rpc/rpc.test.js.map +1 -1
- package/dist/do-rpc/server.d.ts +1 -1
- package/dist/do-rpc/server.d.ts.map +1 -1
- package/dist/do-rpc/server.js +31 -21
- package/dist/do-rpc/server.js.map +1 -1
- package/dist/do-rpc/test-fixtures/worker.d.ts.map +1 -1
- package/dist/do-rpc/test-fixtures/worker.js +1 -1
- package/dist/do-rpc/test-fixtures/worker.js.map +1 -1
- 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 +45 -5
- package/dist/ws-rpc/ws-rpc-server.d.ts.map +1 -1
- package/dist/ws-rpc/ws-rpc-server.js +16 -6
- package/dist/ws-rpc/ws-rpc-server.js.map +1 -1
- package/dist/ws-rpc/ws-rpc.test.js +3 -3
- package/dist/ws-rpc/ws-rpc.test.js.map +1 -1
- package/package.json +46 -13
- package/src/declare/cf-declare.ts +18 -10
- package/src/do-rpc/README.md +1 -2
- package/src/do-rpc/client.ts +15 -19
- package/src/do-rpc/rpc.test.ts +5 -3
- package/src/do-rpc/server.ts +45 -32
- package/src/do-rpc/test-fixtures/worker.ts +4 -2
- package/src/ws-rpc/README.md +1 -1
- package/src/ws-rpc/test-fixtures/worker.ts +6 -4
- package/src/ws-rpc/ws-rpc-server.ts +38 -12
- package/src/ws-rpc/ws-rpc.test.ts +5 -3
- 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
|
@@ -1,9 +1,56 @@
|
|
|
1
1
|
import type * as CF from '@cloudflare/workers-types';
|
|
2
|
-
export declare const ReadableStream:
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export declare const
|
|
2
|
+
export declare const ReadableStream: {
|
|
3
|
+
new (underlyingSource: CF.UnderlyingByteSource, strategy?: CF.QueuingStrategy<Uint8Array>): CF.ReadableStream<Uint8Array>;
|
|
4
|
+
new <R = any>(underlyingSource?: CF.UnderlyingSource<R>, strategy?: CF.QueuingStrategy<R>): CF.ReadableStream<R>;
|
|
5
|
+
prototype: CF.ReadableStream;
|
|
6
|
+
};
|
|
7
|
+
export declare const Request: {
|
|
8
|
+
new <CfHostMetadata = unknown, Cf = CfProperties<CfHostMetadata>>(input: RequestInfo<CfProperties> | URL, init?: RequestInit<Cf>): Request<CfHostMetadata, Cf>;
|
|
9
|
+
prototype: Request;
|
|
10
|
+
} & {
|
|
11
|
+
new <CfHostMetadata = unknown, Cf = CF.CfProperties<CfHostMetadata>>(input: CF.RequestInfo<CF.CfProperties> | CF.URL, init?: CF.RequestInit<Cf>): CF.Request<CfHostMetadata, Cf>;
|
|
12
|
+
prototype: CF.Request;
|
|
13
|
+
};
|
|
14
|
+
export declare const Response: {
|
|
15
|
+
new (body?: BodyInit | null, init?: ResponseInit): Response;
|
|
16
|
+
prototype: Response;
|
|
17
|
+
error(): Response;
|
|
18
|
+
redirect(url: string, status?: number): Response;
|
|
19
|
+
json(any: any, maybeInit?: ResponseInit | Response): Response;
|
|
20
|
+
} & {
|
|
21
|
+
new (body?: CF.BodyInit | null, init?: CF.ResponseInit): CF.Response;
|
|
22
|
+
prototype: CF.Response;
|
|
23
|
+
error(): CF.Response;
|
|
24
|
+
redirect(url: string, status?: number): CF.Response;
|
|
25
|
+
json(any: any, maybeInit?: CF.ResponseInit | CF.Response): CF.Response;
|
|
26
|
+
};
|
|
27
|
+
export declare const WebSocket: {
|
|
28
|
+
new (url: string, protocols?: string[] | string): WebSocket;
|
|
29
|
+
prototype: WebSocket;
|
|
30
|
+
readonly READY_STATE_CONNECTING: number;
|
|
31
|
+
readonly CONNECTING: number;
|
|
32
|
+
readonly READY_STATE_OPEN: number;
|
|
33
|
+
readonly OPEN: number;
|
|
34
|
+
readonly READY_STATE_CLOSING: number;
|
|
35
|
+
readonly CLOSING: number;
|
|
36
|
+
readonly READY_STATE_CLOSED: number;
|
|
37
|
+
readonly CLOSED: number;
|
|
38
|
+
} & {
|
|
39
|
+
new (url: string, protocols?: string[] | string): CF.WebSocket;
|
|
40
|
+
prototype: CF.WebSocket;
|
|
41
|
+
readonly READY_STATE_CONNECTING: number;
|
|
42
|
+
readonly CONNECTING: number;
|
|
43
|
+
readonly READY_STATE_OPEN: number;
|
|
44
|
+
readonly OPEN: number;
|
|
45
|
+
readonly READY_STATE_CLOSING: number;
|
|
46
|
+
readonly CLOSING: number;
|
|
47
|
+
readonly READY_STATE_CLOSED: number;
|
|
48
|
+
readonly CLOSED: number;
|
|
49
|
+
};
|
|
50
|
+
export declare const Rpc: typeof globalThis.Rpc & typeof CF.Rpc;
|
|
51
|
+
export declare const WebSocketPair: new () => {
|
|
52
|
+
0: CF.WebSocket;
|
|
53
|
+
1: CF.WebSocket;
|
|
54
|
+
};
|
|
8
55
|
export declare const WebSocketRequestResponsePair: typeof CF.WebSocketRequestResponsePair;
|
|
9
56
|
//# sourceMappingURL=cf-declare.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cf-declare.d.ts","sourceRoot":"","sources":["../../src/declare/cf-declare.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"cf-declare.d.ts","sourceRoot":"","sources":["../../src/declare/cf-declare.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,EAAE,MAAM,2BAA2B,CAAA;AAapD,eAAO,MAAM,cAAc;;;;CAA8B,CAAA;AACzD,eAAO,MAAM,OAAO;;;;;;CAAuB,CAAA;AAC3C,eAAO,MAAM,QAAQ;;;;;;;;;;;;CAAwB,CAAA;AAC7C,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;CAAyB,CAAA;AAC/C,eAAO,MAAM,GAAG,uCAAmB,CAAA;AACnC,eAAO,MAAM,aAAa;;;CAA6B,CAAA;AACvD,eAAO,MAAM,4BAA4B,wCAA4C,CAAA"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
/// <reference types="@cloudflare/workers-types" />
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export const
|
|
5
|
-
export const
|
|
6
|
-
export const
|
|
7
|
-
|
|
8
|
-
export const
|
|
9
|
-
export const
|
|
10
|
-
|
|
11
|
-
globalThis.WebSocketRequestResponsePair;
|
|
2
|
+
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- bridging standard Web API types to Cloudflare Worker types; inherent platform type mismatch
|
|
3
|
+
const cfGlobalThis = globalThis;
|
|
4
|
+
export const ReadableStream = cfGlobalThis.ReadableStream;
|
|
5
|
+
export const Request = cfGlobalThis.Request;
|
|
6
|
+
export const Response = cfGlobalThis.Response;
|
|
7
|
+
export const WebSocket = cfGlobalThis.WebSocket;
|
|
8
|
+
export const Rpc = cfGlobalThis.Rpc;
|
|
9
|
+
export const WebSocketPair = cfGlobalThis.WebSocketPair;
|
|
10
|
+
export const WebSocketRequestResponsePair = cfGlobalThis.WebSocketRequestResponsePair;
|
|
12
11
|
//# sourceMappingURL=cf-declare.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cf-declare.js","sourceRoot":"","sources":["../../src/declare/cf-declare.ts"],"names":[],"mappings":"AAAA,mDAAmD;AAMnD,MAAM,CAAC,MAAM,cAAc,GAAG,
|
|
1
|
+
{"version":3,"file":"cf-declare.js","sourceRoot":"","sources":["../../src/declare/cf-declare.ts"],"names":[],"mappings":"AAAA,mDAAmD;AAMnD,sKAAsK;AACtK,MAAM,YAAY,GAAG,UAQpB,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC,cAAc,CAAA;AACzD,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAA;AAC3C,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAA;AAC7C,MAAM,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAA;AAC/C,MAAM,CAAC,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAA;AACnC,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CAAC,aAAa,CAAA;AACvD,MAAM,CAAC,MAAM,4BAA4B,GAAG,YAAY,CAAC,4BAA4B,CAAA"}
|
package/dist/do-rpc/client.d.ts
CHANGED
|
@@ -11,6 +11,6 @@ interface MakeDoRpcProtocolArgs {
|
|
|
11
11
|
* Creates a Protocol layer that uses Cloudflare Durable Object RPC calls.
|
|
12
12
|
* This enables direct RPC communication with Durable Objects using Cloudflare's native RPC.
|
|
13
13
|
*/
|
|
14
|
-
export declare const layerProtocolDurableObject: (args: MakeDoRpcProtocolArgs) => Layer.Layer<RpcClient.Protocol
|
|
14
|
+
export declare const layerProtocolDurableObject: (args: MakeDoRpcProtocolArgs) => Layer.Layer<RpcClient.Protocol>;
|
|
15
15
|
export {};
|
|
16
16
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/do-rpc/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,EACL,SAAS,EAIV,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/do-rpc/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,EACL,SAAS,EAIV,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAiD9C,UAAU,qBAAqB;IAC7B,OAAO,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9E,aAAa,EAAE;QACb,WAAW,EAAE,MAAM,CAAA;QACnB,eAAe,EAAE,MAAM,CAAA;KACxB,CAAA;CACF;AAED;;;GAGG;AACH,eAAO,MAAM,0BAA0B,GACrC,MAAM,qBAAqB,KAC1B,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAsE,CAAA"}
|
package/dist/do-rpc/client.js
CHANGED
|
@@ -8,20 +8,18 @@ const processReadableStream = (stream, parser, writeResponse) => Effect.gen(func
|
|
|
8
8
|
yield* Effect.gen(function* () {
|
|
9
9
|
while (true) {
|
|
10
10
|
const { done, value } = yield* Effect.tryPromise(() => reader.read()).pipe(Effect.orDie);
|
|
11
|
-
if (done) {
|
|
11
|
+
if (done === true) {
|
|
12
12
|
break;
|
|
13
13
|
}
|
|
14
14
|
// Decode the chunk
|
|
15
15
|
const decoded = parser.decode(value);
|
|
16
|
-
// Handle array of messages
|
|
16
|
+
// Handle array of messages from server.
|
|
17
|
+
// Server sends `parser.encode([message])` per enqueue, so each decoded value is `[message]`.
|
|
18
|
+
// When CF DO RPC merges enqueues in production, we get `[[msg1], [msg2], ...]`.
|
|
19
|
+
// `flat(1)` normalizes both single and merged cases to `[msg1, msg2, ...]`.
|
|
17
20
|
let messages;
|
|
18
|
-
if (Array.isArray(decoded)
|
|
19
|
-
|
|
20
|
-
messages = decoded[0];
|
|
21
|
-
}
|
|
22
|
-
else if (Array.isArray(decoded)) {
|
|
23
|
-
// Single array [message]
|
|
24
|
-
messages = decoded;
|
|
21
|
+
if (Array.isArray(decoded) === true) {
|
|
22
|
+
messages = decoded.flat(1);
|
|
25
23
|
}
|
|
26
24
|
else {
|
|
27
25
|
messages = [decoded];
|
|
@@ -73,15 +71,10 @@ const makeProtocolDurableObject = ({ callRpc, }) => RpcClient.Protocol.make(Effe
|
|
|
73
71
|
}
|
|
74
72
|
// Handle regular Uint8Array responses
|
|
75
73
|
const decoded = parser.decode(serializedResponse);
|
|
76
|
-
//
|
|
74
|
+
// Normalize nested arrays from server serialization (same as streaming path)
|
|
77
75
|
let responseArray;
|
|
78
|
-
if (Array.isArray(decoded)
|
|
79
|
-
|
|
80
|
-
responseArray = decoded[0];
|
|
81
|
-
}
|
|
82
|
-
else if (Array.isArray(decoded)) {
|
|
83
|
-
// Single array [Exit]
|
|
84
|
-
responseArray = decoded;
|
|
76
|
+
if (Array.isArray(decoded) === true) {
|
|
77
|
+
responseArray = decoded.flat(1);
|
|
85
78
|
}
|
|
86
79
|
else {
|
|
87
80
|
responseArray = [decoded];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/do-rpc/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAS,EAET,gBAAgB,GAEjB,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/do-rpc/client.ts"],"names":[],"mappings":"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"}
|
package/dist/do-rpc/rpc.test.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { PlatformNode } from '@livestore/utils/node';
|
|
1
|
+
import { expect } from 'vitest';
|
|
3
2
|
import { Vitest } from '@livestore/utils-dev/node-vitest';
|
|
4
3
|
import { WranglerDevServerService } from '@livestore/utils-dev/wrangler';
|
|
5
|
-
import {
|
|
4
|
+
import { Chunk, Effect, FetchHttpClient, Layer, Logger, LogLevel, Option, RpcClient, RpcSerialization, 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({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc.test.js","sourceRoot":"","sources":["../../src/do-rpc/rpc.test.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,MAAM,EACN,eAAe,EACf,KAAK,EACL,MAAM,EACN,QAAQ,EACR,MAAM,EACN,SAAS,EACT,gBAAgB,EAChB,MAAM,GACP,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"rpc.test.js","sourceRoot":"","sources":["../../src/do-rpc/rpc.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AACxE,OAAO,EACL,KAAK,EACL,MAAM,EACN,eAAe,EACf,KAAK,EACL,MAAM,EACN,QAAQ,EACR,MAAM,EACN,SAAS,EACT,gBAAgB,EAChB,MAAM,GACP,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEpD,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAA;AAExD,MAAM,WAAW,GAAG,MAAM,CAAA;AAE1B,MAAM,gBAAgB,GAAG,MAAM,CAAC,eAAe,CAAC;IAC9C,OAAO,EAAE,WAAW;IACpB,SAAS,EAAE,GAAG,EAAE,CACd,wBAAwB,CAAC,OAAO,CAAC;QAC/B,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,gBAAgB;KAC5C,CAAC,CAAC,IAAI,CACL,KAAK,CAAC,OAAO,CACX,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAC9G,CACF;CACJ,CAAC,CAAA;AAEF,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CACtC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,wBAAwB,CAAA;IAC9C,OAAO,SAAS,CAAC,iBAAiB,CAAC;QACjC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,MAAM;KACzB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AAC7E,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAC5B,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,CAAC,QAAQ,CAAC,oBAAoB,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE;IACnE,+BAA+B;IAC/B,MAAM,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC,IAAI,EAAE,EAAE,CACpD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAA;QAChE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,sBAAsB,EAAE,CAAC,CAAA;IAC9D,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAC9D,CAAA;IAED,MAAM,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC,IAAI,EAAE,EAAE,CACpD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;QACnD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAA;IAChD,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAC9D,CAAA;IAED,MAAM,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,IAAI,EAAE,EAAE,CACnD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QAClD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAA;IACxC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAC9D,CAAA;IAED,MAAM,CAAC,UAAU,CAAC,+BAA+B,EAAE,CAAC,IAAI,EAAE,EAAE,CAC1D,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACpF,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;OAU9C,CAAC,CAAA;IACJ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAC9D,CAAA;IAED,MAAM,CAAC,UAAU,CAAC,6BAA6B,EAAE,CAAC,IAAI,EAAE,EAAE,CACxD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACrF,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;OAU9C,CAAC,CAAA;IACJ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAC9D,CAAA;IAED,MAAM,CAAC,UAAU,CAAC,sCAAsC,EAAE,CAAC,IAAI,EAAE,EAAE,CACjE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CACnC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EACd,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAC7D,CAAA;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAC/C,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA,CAAC,qBAAqB;IACpF,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAC9D,CAAA;IAED,MAAM,CAAC,UAAU,CAAC,iDAAiD,EAAE,CAAC,IAAI,EAAE,EAAE,CAC5E,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAA;QAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAChE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;OAU9C,CAAC,CAAA;IACJ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAC9D,CAAA;IAED,MAAM,CAAC,UAAU,CAAC,kDAAkD,EAAE,CAAC,IAAI,EAAE,EAAE,CAC7E,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAA;QAChE,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAChE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;OAU9C,CAAC,CAAA;IACJ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAC9D,CAAA;IAED,MAAM,CAAC,UAAU,CAAC,4CAA4C,EAAE,CAAC,IAAI,EAAE,EAAE,CACvE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QACrG,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAC/C,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC1D,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAC9D,CAAA;IAED,gBAAgB;IAChB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,0CAA0C,EAAE,CAAC,IAAI,EAAE,EAAE,CAC1E,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC9C,KAAK,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAA;QAC3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UA+CE;IACJ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAC9D,CAAA;AACH,CAAC,CAAC,CAAA"}
|
package/dist/do-rpc/server.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export declare const toDurableObjectHandler: <Rpcs extends Rpc.Any, LE>(group: R
|
|
|
15
15
|
readonly spanAttributes?: Record<string, unknown> | undefined;
|
|
16
16
|
}) => ((serializedPayload: Uint8Array<ArrayBuffer>) => Effect.Effect<Uint8Array<ArrayBuffer> | CfTypes.ReadableStream>);
|
|
17
17
|
/** Out-of-band RPC stream response emission back to the caller DO */
|
|
18
|
-
export declare const emitStreamResponse: (
|
|
18
|
+
export declare const emitStreamResponse: (args_0: {
|
|
19
19
|
env: Record<string, any>;
|
|
20
20
|
callerContext: {
|
|
21
21
|
bindingName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/do-rpc/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EAGN,KAAK,KAAK,EACV,KAAK,aAAa,EAElB,GAAG,EACH,KAAK,QAAQ,EACb,KAAK,UAAU,EAMhB,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/do-rpc/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EAGN,KAAK,KAAK,EACV,KAAK,aAAa,EAElB,GAAG,EACH,KAAK,QAAQ,EACb,KAAK,UAAU,EAMhB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAE9C,MAAM,WAAW,uBAAuB;IACtC,sBAAsB,EAAE,KAAK,CAAA;IAC7B,aAAa,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3E;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GAChC,IAAI,SAAS,GAAG,CAAC,GAAG,EAAE,EAAE,EACvB,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAC9B,SAAS;IACP,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;IAC3E,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC7C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;CAC9D,KACA,CAAC,CACF,iBAAiB,EAAE,UAAU,CAAC,WAAW,CAAC,KACvC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CA2HC,CAAA;AAEvE,qEAAqE;AACrE,eAAO,MAAM,kBAAkB;SAMxB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;mBACT;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE;eACpD,MAAM;YACT,aAAa,CAAC,GAAG,CAAC;yEAgB1B,CAAA"}
|
package/dist/do-rpc/server.js
CHANGED
|
@@ -9,11 +9,11 @@ export const toDurableObjectHandler = (group, options) => (serializedPayload) =>
|
|
|
9
9
|
const decoded = parser.decode(serializedPayload);
|
|
10
10
|
// Handle potential nested array from client serialization
|
|
11
11
|
let requests;
|
|
12
|
-
if (Array.isArray(decoded) && decoded.length === 1 && Array.isArray(decoded[0])) {
|
|
12
|
+
if (Array.isArray(decoded) === true && decoded.length === 1 && Array.isArray(decoded[0]) === true) {
|
|
13
13
|
// Double-wrapped array [[{...}]] -> [{...}]
|
|
14
14
|
requests = decoded[0];
|
|
15
15
|
}
|
|
16
|
-
else if (Array.isArray(decoded)) {
|
|
16
|
+
else if (Array.isArray(decoded) === true) {
|
|
17
17
|
// Single array [{...}]
|
|
18
18
|
requests = decoded;
|
|
19
19
|
}
|
|
@@ -29,9 +29,11 @@ export const toDurableObjectHandler = (group, options) => (serializedPayload) =>
|
|
|
29
29
|
continue;
|
|
30
30
|
}
|
|
31
31
|
// Find the RPC handler
|
|
32
|
+
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- RpcGroup.requests map returns Rpc.Any; narrowing to AnyWithProps for property access
|
|
32
33
|
const rpc = group.requests.get(request.tag);
|
|
34
|
+
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- context.unsafeMap dynamic lookup; type safety ensured by RpcGroup registration
|
|
33
35
|
const entry = context.unsafeMap.get(rpc.key);
|
|
34
|
-
if (
|
|
36
|
+
if (rpc == null || entry == null) {
|
|
35
37
|
responses.push({
|
|
36
38
|
_tag: 'Exit',
|
|
37
39
|
requestId: request.id,
|
|
@@ -40,9 +42,10 @@ export const toDurableObjectHandler = (group, options) => (serializedPayload) =>
|
|
|
40
42
|
continue;
|
|
41
43
|
}
|
|
42
44
|
// Check if this is a streaming RPC
|
|
45
|
+
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- Rpc.Handler doesn't expose successSchema publicly; see https://github.com/Effect-TS/effect/issues/6064
|
|
43
46
|
const isStream = RpcSchema.isStreamSchema(rpc.successSchema);
|
|
44
47
|
// For streaming RPCs with only one request, return ReadableStream directly
|
|
45
|
-
if (isStream && requests.length === 1) {
|
|
48
|
+
if (isStream === true && requests.length === 1) {
|
|
46
49
|
return yield* createStreamingResponse(rpc, entry, request, parser, options.layer);
|
|
47
50
|
}
|
|
48
51
|
// Execute the handler
|
|
@@ -54,16 +57,18 @@ export const toDurableObjectHandler = (group, options) => (serializedPayload) =>
|
|
|
54
57
|
}),
|
|
55
58
|
});
|
|
56
59
|
let value;
|
|
57
|
-
if (Effect.isEffect(handlerResult)) {
|
|
60
|
+
if (Effect.isEffect(handlerResult) === true) {
|
|
61
|
+
// @effect-diagnostics-next-line anyUnknownInErrorContext:off -- `Rpc.Handler.handler` returns `Effect<any, any>` due to dynamic dispatch
|
|
58
62
|
value = yield* handlerResult;
|
|
59
63
|
}
|
|
60
64
|
else {
|
|
61
65
|
value = handlerResult;
|
|
62
66
|
}
|
|
63
67
|
// Get the exit schema for this RPC
|
|
68
|
+
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- Rpc.exitSchema requires AnyWithProps; type narrowing already done above
|
|
64
69
|
const exitSchema = Rpc.exitSchema(rpc);
|
|
65
70
|
let encodedExit;
|
|
66
|
-
if (exitSchema) {
|
|
71
|
+
if (exitSchema !== undefined) {
|
|
67
72
|
// Use schema encoding for proper serialization
|
|
68
73
|
const rawExit = Exit.succeed(value);
|
|
69
74
|
encodedExit = yield* Schema.encodeUnknown(exitSchema)(rawExit);
|
|
@@ -79,10 +84,11 @@ export const toDurableObjectHandler = (group, options) => (serializedPayload) =>
|
|
|
79
84
|
};
|
|
80
85
|
}).pipe(Effect.catchAllCause((cause) => {
|
|
81
86
|
// Get the exit schema for this RPC
|
|
87
|
+
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- Rpc.exitSchema requires AnyWithProps; type narrowing already done above
|
|
82
88
|
const exitSchema = Rpc.exitSchema(rpc);
|
|
83
89
|
return Effect.gen(function* () {
|
|
84
90
|
let encodedExit;
|
|
85
|
-
if (exitSchema) {
|
|
91
|
+
if (exitSchema !== undefined) {
|
|
86
92
|
// Use schema encoding for proper serialization
|
|
87
93
|
const rawExit = Exit.failCause(cause);
|
|
88
94
|
encodedExit = yield* Schema.encodeUnknown(exitSchema)(rawExit);
|
|
@@ -100,11 +106,13 @@ export const toDurableObjectHandler = (group, options) => (serializedPayload) =>
|
|
|
100
106
|
}));
|
|
101
107
|
responses.push(result);
|
|
102
108
|
}
|
|
109
|
+
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- msgPack parser.encode returns unknown; cast to expected wire format
|
|
103
110
|
const encoded = parser.encode(responses);
|
|
104
111
|
return encoded;
|
|
105
112
|
}).pipe(Effect.provide(options.layer), Effect.scoped, Effect.orDie);
|
|
106
113
|
/** Out-of-band RPC stream response emission back to the caller DO */
|
|
107
|
-
export const emitStreamResponse = ({ callerContext, env, requestId, values, })
|
|
114
|
+
export const emitStreamResponse = Effect.fn('do-rpc/emitStreamResponse')(function* ({ callerContext, env, requestId, values, }) {
|
|
115
|
+
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- CF worker env bindings are typed as Record<string, any>; narrowing to known DO namespace
|
|
108
116
|
const clientDoNamespace = env[callerContext.bindingName];
|
|
109
117
|
if (clientDoNamespace === undefined) {
|
|
110
118
|
throw new Error(`Client DO namespace not found: ${callerContext.bindingName}`);
|
|
@@ -112,7 +120,7 @@ export const emitStreamResponse = ({ callerContext, env, requestId, values, }) =
|
|
|
112
120
|
const clientDo = clientDoNamespace.get(clientDoNamespace.idFromString(callerContext.durableObjectId));
|
|
113
121
|
const res = { _tag: 'Chunk', requestId, values };
|
|
114
122
|
yield* Effect.tryPromise(() => clientDo.syncUpdateRpc(res));
|
|
115
|
-
})
|
|
123
|
+
});
|
|
116
124
|
/**
|
|
117
125
|
* Creates a ReadableStream response for streaming RPCs.
|
|
118
126
|
* This converts an Effect Stream into a ReadableStream of serialized RPC messages.
|
|
@@ -125,20 +133,16 @@ const createStreamingResponse = (rpc, entry, request, parser, layer) => Effect.g
|
|
|
125
133
|
'x-rpc-request-id': request.id.toString(),
|
|
126
134
|
}),
|
|
127
135
|
});
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
// If handler returns Effect<Stream>, we need to run it to get the stream
|
|
131
|
-
stream = yield* handlerResult;
|
|
132
|
-
}
|
|
133
|
-
else {
|
|
134
|
-
// Direct stream
|
|
135
|
-
stream = handlerResult;
|
|
136
|
-
}
|
|
136
|
+
// @effect-diagnostics-next-line anyUnknownInErrorContext:off -- `Rpc.Handler.handler` returns `Effect<any, any>` due to dynamic dispatch; orDie converts the error to a defect handled by the downstream catchAllCause
|
|
137
|
+
const stream = Effect.isEffect(handlerResult) === true ? yield* Effect.orDie(handlerResult) : handlerResult;
|
|
137
138
|
// Get the stream schemas for proper chunk-level encoding
|
|
139
|
+
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- Rpc.Handler doesn't expose successSchema publicly; see https://github.com/Effect-TS/effect/issues/6064
|
|
138
140
|
const streamSchemas = RpcSchema.getStreamSchemas(rpc.successSchema.ast);
|
|
139
|
-
const chunkEncoder = Option.isSome(streamSchemas)
|
|
140
|
-
?
|
|
141
|
-
|
|
141
|
+
const chunkEncoder = Option.isSome(streamSchemas) === true
|
|
142
|
+
? // oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- stream schema success type is inferred as unknown; cast needed for encodeUnknown
|
|
143
|
+
Schema.encodeUnknown(Schema.Array(streamSchemas.value.success))
|
|
144
|
+
: // oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- Schema.Any needs explicit cast for Schema.Array compatibility
|
|
145
|
+
Schema.encodeUnknown(Schema.Array(Schema.Any));
|
|
142
146
|
// Convert stream to ReadableStream
|
|
143
147
|
const readableStream = new ReadableStream({
|
|
144
148
|
start(controller) {
|
|
@@ -156,11 +160,13 @@ const createStreamingResponse = (rpc, entry, request, parser, layer) => Effect.g
|
|
|
156
160
|
requestId: request.id,
|
|
157
161
|
values: encodedValues,
|
|
158
162
|
};
|
|
163
|
+
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- msgPack parser.encode returns unknown; cast to expected wire format
|
|
159
164
|
const serialized = parser.encode([chunkMessage]);
|
|
160
165
|
controller.enqueue(serialized);
|
|
161
166
|
}));
|
|
162
167
|
// Send final exit message with proper schema encoding
|
|
163
168
|
const rawExit = Exit.void;
|
|
169
|
+
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- Rpc.exitSchema requires AnyWithProps; type narrowing already done above
|
|
164
170
|
const exitSchema = Rpc.exitSchema(rpc);
|
|
165
171
|
const encodedExit = yield* Schema.encodeUnknown(exitSchema)(rawExit);
|
|
166
172
|
const exitMessage = {
|
|
@@ -168,12 +174,14 @@ const createStreamingResponse = (rpc, entry, request, parser, layer) => Effect.g
|
|
|
168
174
|
requestId: request.id,
|
|
169
175
|
exit: encodedExit,
|
|
170
176
|
};
|
|
177
|
+
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- msgPack parser.encode returns unknown; cast to expected wire format
|
|
171
178
|
const exitSerialized = parser.encode([exitMessage]);
|
|
172
179
|
controller.enqueue(exitSerialized);
|
|
173
180
|
controller.close();
|
|
174
181
|
}).pipe(Effect.catchAllCause((cause) => Effect.gen(function* () {
|
|
175
182
|
// Send error exit with proper schema encoding
|
|
176
183
|
const rawExit = Exit.failCause(cause);
|
|
184
|
+
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- Rpc.exitSchema requires AnyWithProps; type narrowing already done above
|
|
177
185
|
const exitSchema = Rpc.exitSchema(rpc);
|
|
178
186
|
const encodedExit = yield* Schema.encodeUnknown(exitSchema)(rawExit);
|
|
179
187
|
const exitMessage = {
|
|
@@ -181,6 +189,7 @@ const createStreamingResponse = (rpc, entry, request, parser, layer) => Effect.g
|
|
|
181
189
|
requestId: request.id,
|
|
182
190
|
exit: encodedExit,
|
|
183
191
|
};
|
|
192
|
+
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- msgPack parser.encode returns unknown; cast to expected wire format
|
|
184
193
|
const exitSerialized = parser.encode([exitMessage]);
|
|
185
194
|
controller.enqueue(exitSerialized);
|
|
186
195
|
controller.close();
|
|
@@ -188,6 +197,7 @@ const createStreamingResponse = (rpc, entry, request, parser, layer) => Effect.g
|
|
|
188
197
|
// Run the stream processing
|
|
189
198
|
runStream.pipe(Effect.provide(layer), Effect.scoped, Effect.tapCauseLogPretty, Effect.runPromise);
|
|
190
199
|
},
|
|
200
|
+
// oxlint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- bridging standard Web API ReadableStream to Cloudflare Worker ReadableStream type
|
|
191
201
|
});
|
|
192
202
|
// yield* Effect.addFinalizer(() => Effect.promise(() => readableStream.cancel()))
|
|
193
203
|
return readableStream;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/do-rpc/server.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,MAAM,EACN,IAAI,EACJ,OAAO,EAGP,MAAM,EACN,GAAG,EAGH,SAAS,EACT,gBAAgB,EAChB,MAAM,EAEN,MAAM,GACP,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/do-rpc/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/do-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/do-rpc/test-fixtures/worker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAiBlD,MAAM,WAAW,GAAG;IAClB,WAAW,EAAE,sBAAsB,CAAC,oBAAoB,CAAC,CAAA;CAC1D;AAED,qBAAa,oBAAqB,SAAQ,aAAa;IAC5C,sBAAsB,EAA6B,KAAK,CAAA;IAE3D,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CA4C9C;;mBAGsB,OAAO,OAAO,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;;AAD5D,wBA0EC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/do-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/do-rpc/test-fixtures/worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -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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"}
|