@livestore/sync-cf 0.4.0-dev.3 → 0.4.0-dev.6
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/README.md +60 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/cf-worker/do/durable-object.d.ts +45 -0
- package/dist/cf-worker/do/durable-object.d.ts.map +1 -0
- package/dist/cf-worker/do/durable-object.js +154 -0
- package/dist/cf-worker/do/durable-object.js.map +1 -0
- package/dist/cf-worker/do/layer.d.ts +34 -0
- package/dist/cf-worker/do/layer.d.ts.map +1 -0
- package/dist/cf-worker/do/layer.js +68 -0
- package/dist/cf-worker/do/layer.js.map +1 -0
- package/dist/cf-worker/do/pull.d.ts +6 -0
- package/dist/cf-worker/do/pull.d.ts.map +1 -0
- package/dist/cf-worker/do/pull.js +39 -0
- package/dist/cf-worker/do/pull.js.map +1 -0
- package/dist/cf-worker/do/push.d.ts +14 -0
- package/dist/cf-worker/do/push.d.ts.map +1 -0
- package/dist/cf-worker/do/push.js +99 -0
- package/dist/cf-worker/do/push.js.map +1 -0
- package/dist/cf-worker/do/sqlite.d.ts +196 -0
- package/dist/cf-worker/do/sqlite.d.ts.map +1 -0
- package/dist/cf-worker/do/sqlite.js +27 -0
- package/dist/cf-worker/do/sqlite.js.map +1 -0
- package/dist/cf-worker/do/sync-storage.d.ts +17 -0
- package/dist/cf-worker/do/sync-storage.d.ts.map +1 -0
- package/dist/cf-worker/do/sync-storage.js +73 -0
- package/dist/cf-worker/do/sync-storage.js.map +1 -0
- package/dist/cf-worker/do/transport/do-rpc-server.d.ts +8 -0
- package/dist/cf-worker/do/transport/do-rpc-server.d.ts.map +1 -0
- package/dist/cf-worker/do/transport/do-rpc-server.js +45 -0
- package/dist/cf-worker/do/transport/do-rpc-server.js.map +1 -0
- package/dist/cf-worker/do/transport/http-rpc-server.d.ts +7 -0
- package/dist/cf-worker/do/transport/http-rpc-server.d.ts.map +1 -0
- package/dist/cf-worker/do/transport/http-rpc-server.js +24 -0
- package/dist/cf-worker/do/transport/http-rpc-server.js.map +1 -0
- package/dist/cf-worker/do/transport/ws-rpc-server.d.ts +4 -0
- package/dist/cf-worker/do/transport/ws-rpc-server.d.ts.map +1 -0
- package/dist/cf-worker/do/transport/ws-rpc-server.js +21 -0
- package/dist/cf-worker/do/transport/ws-rpc-server.js.map +1 -0
- package/dist/cf-worker/mod.d.ts +4 -2
- package/dist/cf-worker/mod.d.ts.map +1 -1
- package/dist/cf-worker/mod.js +3 -2
- package/dist/cf-worker/mod.js.map +1 -1
- package/dist/cf-worker/shared.d.ts +127 -0
- package/dist/cf-worker/shared.d.ts.map +1 -0
- package/dist/cf-worker/shared.js +26 -0
- package/dist/cf-worker/shared.js.map +1 -0
- package/dist/cf-worker/worker.d.ts +36 -21
- package/dist/cf-worker/worker.d.ts.map +1 -1
- package/dist/cf-worker/worker.js +39 -32
- package/dist/cf-worker/worker.js.map +1 -1
- package/dist/client/mod.d.ts +4 -0
- package/dist/client/mod.d.ts.map +1 -0
- package/dist/client/mod.js +4 -0
- package/dist/client/mod.js.map +1 -0
- package/dist/client/transport/do-rpc-client.d.ts +40 -0
- package/dist/client/transport/do-rpc-client.d.ts.map +1 -0
- package/dist/client/transport/do-rpc-client.js +102 -0
- package/dist/client/transport/do-rpc-client.js.map +1 -0
- package/dist/client/transport/http-rpc-client.d.ts +43 -0
- package/dist/client/transport/http-rpc-client.d.ts.map +1 -0
- package/dist/client/transport/http-rpc-client.js +87 -0
- package/dist/client/transport/http-rpc-client.js.map +1 -0
- package/dist/client/transport/ws-rpc-client.d.ts +45 -0
- package/dist/client/transport/ws-rpc-client.d.ts.map +1 -0
- package/dist/client/transport/ws-rpc-client.js +94 -0
- package/dist/client/transport/ws-rpc-client.js.map +1 -0
- package/dist/common/do-rpc-schema.d.ts +76 -0
- package/dist/common/do-rpc-schema.d.ts.map +1 -0
- package/dist/common/do-rpc-schema.js +48 -0
- package/dist/common/do-rpc-schema.js.map +1 -0
- package/dist/common/http-rpc-schema.d.ts +58 -0
- package/dist/common/http-rpc-schema.d.ts.map +1 -0
- package/dist/common/http-rpc-schema.js +37 -0
- package/dist/common/http-rpc-schema.js.map +1 -0
- package/dist/common/mod.d.ts +5 -1
- package/dist/common/mod.d.ts.map +1 -1
- package/dist/common/mod.js +4 -1
- package/dist/common/mod.js.map +1 -1
- package/dist/common/sync-message-types.d.ts +236 -0
- package/dist/common/sync-message-types.d.ts.map +1 -0
- package/dist/common/sync-message-types.js +60 -0
- package/dist/common/sync-message-types.js.map +1 -0
- package/dist/common/ws-rpc-schema.d.ts +55 -0
- package/dist/common/ws-rpc-schema.d.ts.map +1 -0
- package/dist/common/ws-rpc-schema.js +32 -0
- package/dist/common/ws-rpc-schema.js.map +1 -0
- package/package.json +7 -8
- package/src/cf-worker/do/durable-object.ts +241 -0
- package/src/cf-worker/do/layer.ts +107 -0
- package/src/cf-worker/do/pull.ts +64 -0
- package/src/cf-worker/do/push.ts +162 -0
- package/src/cf-worker/do/sqlite.ts +28 -0
- package/src/cf-worker/do/sync-storage.ts +126 -0
- package/src/cf-worker/do/transport/do-rpc-server.ts +82 -0
- package/src/cf-worker/do/transport/http-rpc-server.ts +37 -0
- package/src/cf-worker/do/transport/ws-rpc-server.ts +34 -0
- package/src/cf-worker/mod.ts +4 -2
- package/src/cf-worker/shared.ts +95 -0
- package/src/cf-worker/worker.ts +72 -63
- package/src/client/mod.ts +3 -0
- package/src/client/transport/do-rpc-client.ts +171 -0
- package/src/client/transport/http-rpc-client.ts +205 -0
- package/src/client/transport/ws-rpc-client.ts +182 -0
- package/src/common/do-rpc-schema.ts +54 -0
- package/src/common/http-rpc-schema.ts +40 -0
- package/src/common/mod.ts +8 -1
- package/src/common/sync-message-types.ts +117 -0
- package/src/common/ws-rpc-schema.ts +36 -0
- package/src/cf-worker/cf-types.ts +0 -12
- package/src/cf-worker/durable-object.ts +0 -478
- package/src/common/ws-message-types.ts +0 -114
- package/src/sync-impl/mod.ts +0 -1
- package/src/sync-impl/ws-impl.ts +0 -274
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
import { Schema } from '@livestore/utils/effect';
|
|
2
|
+
/**
|
|
3
|
+
* Common sync message types shared between different transport modes (WS, HTTP, RPC)
|
|
4
|
+
*
|
|
5
|
+
* These are the canonical message definitions used across all transport implementations.
|
|
6
|
+
*/
|
|
7
|
+
export declare const SyncMetadata: Schema.Struct<{
|
|
8
|
+
_tag: Schema.tag<"SyncMessage.SyncMetadata">;
|
|
9
|
+
} & {
|
|
10
|
+
/** ISO date format */
|
|
11
|
+
createdAt: typeof Schema.String;
|
|
12
|
+
}>;
|
|
13
|
+
export type SyncMetadata = typeof SyncMetadata.Type;
|
|
14
|
+
export declare const PullRequest: Schema.Struct<{
|
|
15
|
+
/** Omitting the cursor will start from the beginning */
|
|
16
|
+
cursor: Schema.Option<Schema.Struct<{
|
|
17
|
+
backendId: Schema.SchemaClass<string, string, never>;
|
|
18
|
+
eventSequenceNumber: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
|
|
19
|
+
}>>;
|
|
20
|
+
}>;
|
|
21
|
+
export type PullRequest = typeof PullRequest.Type;
|
|
22
|
+
export declare const PullResponse: Schema.Struct<{
|
|
23
|
+
batch: Schema.Array$<Schema.Struct<{
|
|
24
|
+
eventEncoded: Schema.Struct<{
|
|
25
|
+
name: typeof Schema.String;
|
|
26
|
+
args: typeof Schema.Any;
|
|
27
|
+
seqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
|
|
28
|
+
parentSeqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
|
|
29
|
+
clientId: typeof Schema.String;
|
|
30
|
+
sessionId: typeof Schema.String;
|
|
31
|
+
}>;
|
|
32
|
+
metadata: Schema.Option<Schema.Struct<{
|
|
33
|
+
_tag: Schema.tag<"SyncMessage.SyncMetadata">;
|
|
34
|
+
} & {
|
|
35
|
+
/** ISO date format */
|
|
36
|
+
createdAt: typeof Schema.String;
|
|
37
|
+
}>>;
|
|
38
|
+
}>>;
|
|
39
|
+
pageInfo: Schema.Union<[Schema.TaggedStruct<"MoreUnknown", {}>, Schema.TaggedStruct<"MoreKnown", {
|
|
40
|
+
remaining: typeof Schema.Number;
|
|
41
|
+
}>, Schema.TaggedStruct<"NoMore", {}>]>;
|
|
42
|
+
backendId: Schema.SchemaClass<string, string, never>;
|
|
43
|
+
}>;
|
|
44
|
+
export declare const emptyPullResponse: (backendId: string) => {
|
|
45
|
+
readonly backendId: string;
|
|
46
|
+
readonly batch: readonly {
|
|
47
|
+
readonly metadata: import("effect/Option").Option<{
|
|
48
|
+
readonly createdAt: string;
|
|
49
|
+
readonly _tag: "SyncMessage.SyncMetadata";
|
|
50
|
+
}>;
|
|
51
|
+
readonly eventEncoded: {
|
|
52
|
+
readonly name: string;
|
|
53
|
+
readonly args: any;
|
|
54
|
+
readonly seqNum: any;
|
|
55
|
+
readonly parentSeqNum: any;
|
|
56
|
+
readonly clientId: string;
|
|
57
|
+
readonly sessionId: string;
|
|
58
|
+
};
|
|
59
|
+
}[];
|
|
60
|
+
readonly pageInfo: {
|
|
61
|
+
readonly _tag: "MoreUnknown";
|
|
62
|
+
} | {
|
|
63
|
+
readonly _tag: "MoreKnown";
|
|
64
|
+
readonly remaining: number;
|
|
65
|
+
} | {
|
|
66
|
+
readonly _tag: "NoMore";
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
export type PullResponse = typeof PullResponse.Type;
|
|
70
|
+
export declare const PushRequest: Schema.Struct<{
|
|
71
|
+
batch: Schema.Array$<Schema.Struct<{
|
|
72
|
+
name: typeof Schema.String;
|
|
73
|
+
args: typeof Schema.Any;
|
|
74
|
+
seqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
|
|
75
|
+
parentSeqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
|
|
76
|
+
clientId: typeof Schema.String;
|
|
77
|
+
sessionId: typeof Schema.String;
|
|
78
|
+
}>>;
|
|
79
|
+
backendId: Schema.Option<Schema.SchemaClass<string, string, never>>;
|
|
80
|
+
}>;
|
|
81
|
+
export type PushRequest = typeof PushRequest.Type;
|
|
82
|
+
export declare const PushAck: Schema.Struct<{}>;
|
|
83
|
+
export type PushAck = typeof PushAck.Type;
|
|
84
|
+
export declare const Ping: Schema.Struct<{
|
|
85
|
+
_tag: Schema.tag<"SyncMessage.Ping">;
|
|
86
|
+
}>;
|
|
87
|
+
export type Ping = typeof Ping.Type;
|
|
88
|
+
export declare const Pong: Schema.Struct<{
|
|
89
|
+
_tag: Schema.tag<"SyncMessage.Pong">;
|
|
90
|
+
}>;
|
|
91
|
+
export type Pong = typeof Pong.Type;
|
|
92
|
+
export declare const AdminResetRoomRequest: Schema.Struct<{
|
|
93
|
+
_tag: Schema.tag<"SyncMessage.AdminResetRoomRequest">;
|
|
94
|
+
} & {
|
|
95
|
+
adminSecret: typeof Schema.String;
|
|
96
|
+
}>;
|
|
97
|
+
export type AdminResetRoomRequest = typeof AdminResetRoomRequest.Type;
|
|
98
|
+
export declare const AdminResetRoomResponse: Schema.Struct<{
|
|
99
|
+
_tag: Schema.tag<"SyncMessage.AdminResetRoomResponse">;
|
|
100
|
+
}>;
|
|
101
|
+
export type AdminResetRoomResponse = typeof AdminResetRoomResponse.Type;
|
|
102
|
+
export declare const AdminInfoRequest: Schema.Struct<{
|
|
103
|
+
_tag: Schema.tag<"SyncMessage.AdminInfoRequest">;
|
|
104
|
+
} & {
|
|
105
|
+
adminSecret: typeof Schema.String;
|
|
106
|
+
}>;
|
|
107
|
+
export type AdminInfoRequest = typeof AdminInfoRequest.Type;
|
|
108
|
+
export declare const AdminInfoResponse: Schema.Struct<{
|
|
109
|
+
_tag: Schema.tag<"SyncMessage.AdminInfoResponse">;
|
|
110
|
+
} & {
|
|
111
|
+
info: Schema.Struct<{
|
|
112
|
+
durableObjectId: typeof Schema.String;
|
|
113
|
+
}>;
|
|
114
|
+
}>;
|
|
115
|
+
export type AdminInfoResponse = typeof AdminInfoResponse.Type;
|
|
116
|
+
export declare const BackendToClientMessage: Schema.Union<[Schema.Struct<{
|
|
117
|
+
batch: Schema.Array$<Schema.Struct<{
|
|
118
|
+
eventEncoded: Schema.Struct<{
|
|
119
|
+
name: typeof Schema.String;
|
|
120
|
+
args: typeof Schema.Any;
|
|
121
|
+
seqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
|
|
122
|
+
parentSeqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
|
|
123
|
+
clientId: typeof Schema.String;
|
|
124
|
+
sessionId: typeof Schema.String;
|
|
125
|
+
}>;
|
|
126
|
+
metadata: Schema.Option<Schema.Struct<{
|
|
127
|
+
_tag: Schema.tag<"SyncMessage.SyncMetadata">;
|
|
128
|
+
} & {
|
|
129
|
+
/** ISO date format */
|
|
130
|
+
createdAt: typeof Schema.String;
|
|
131
|
+
}>>;
|
|
132
|
+
}>>;
|
|
133
|
+
pageInfo: Schema.Union<[Schema.TaggedStruct<"MoreUnknown", {}>, Schema.TaggedStruct<"MoreKnown", {
|
|
134
|
+
remaining: typeof Schema.Number;
|
|
135
|
+
}>, Schema.TaggedStruct<"NoMore", {}>]>;
|
|
136
|
+
backendId: Schema.SchemaClass<string, string, never>;
|
|
137
|
+
}>, Schema.Struct<{}>, Schema.Struct<{
|
|
138
|
+
_tag: Schema.tag<"SyncMessage.Pong">;
|
|
139
|
+
}>, Schema.Struct<{
|
|
140
|
+
_tag: Schema.tag<"SyncMessage.AdminResetRoomResponse">;
|
|
141
|
+
}>, Schema.Struct<{
|
|
142
|
+
_tag: Schema.tag<"SyncMessage.AdminInfoResponse">;
|
|
143
|
+
} & {
|
|
144
|
+
info: Schema.Struct<{
|
|
145
|
+
durableObjectId: typeof Schema.String;
|
|
146
|
+
}>;
|
|
147
|
+
}>]>;
|
|
148
|
+
export type BackendToClientMessage = typeof BackendToClientMessage.Type;
|
|
149
|
+
export declare const ClientToBackendMessage: Schema.Union<[Schema.Struct<{
|
|
150
|
+
/** Omitting the cursor will start from the beginning */
|
|
151
|
+
cursor: Schema.Option<Schema.Struct<{
|
|
152
|
+
backendId: Schema.SchemaClass<string, string, never>;
|
|
153
|
+
eventSequenceNumber: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
|
|
154
|
+
}>>;
|
|
155
|
+
}>, Schema.Struct<{
|
|
156
|
+
batch: Schema.Array$<Schema.Struct<{
|
|
157
|
+
name: typeof Schema.String;
|
|
158
|
+
args: typeof Schema.Any;
|
|
159
|
+
seqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
|
|
160
|
+
parentSeqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
|
|
161
|
+
clientId: typeof Schema.String;
|
|
162
|
+
sessionId: typeof Schema.String;
|
|
163
|
+
}>>;
|
|
164
|
+
backendId: Schema.Option<Schema.SchemaClass<string, string, never>>;
|
|
165
|
+
}>, Schema.Struct<{
|
|
166
|
+
_tag: Schema.tag<"SyncMessage.Ping">;
|
|
167
|
+
}>, Schema.Struct<{
|
|
168
|
+
_tag: Schema.tag<"SyncMessage.AdminResetRoomRequest">;
|
|
169
|
+
} & {
|
|
170
|
+
adminSecret: typeof Schema.String;
|
|
171
|
+
}>, Schema.Struct<{
|
|
172
|
+
_tag: Schema.tag<"SyncMessage.AdminInfoRequest">;
|
|
173
|
+
} & {
|
|
174
|
+
adminSecret: typeof Schema.String;
|
|
175
|
+
}>]>;
|
|
176
|
+
export type ClientToBackendMessage = typeof ClientToBackendMessage.Type;
|
|
177
|
+
export declare const Message: Schema.Union<[Schema.Union<[Schema.Struct<{
|
|
178
|
+
batch: Schema.Array$<Schema.Struct<{
|
|
179
|
+
eventEncoded: Schema.Struct<{
|
|
180
|
+
name: typeof Schema.String;
|
|
181
|
+
args: typeof Schema.Any;
|
|
182
|
+
seqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
|
|
183
|
+
parentSeqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
|
|
184
|
+
clientId: typeof Schema.String;
|
|
185
|
+
sessionId: typeof Schema.String;
|
|
186
|
+
}>;
|
|
187
|
+
metadata: Schema.Option<Schema.Struct<{
|
|
188
|
+
_tag: Schema.tag<"SyncMessage.SyncMetadata">;
|
|
189
|
+
} & {
|
|
190
|
+
/** ISO date format */
|
|
191
|
+
createdAt: typeof Schema.String;
|
|
192
|
+
}>>;
|
|
193
|
+
}>>;
|
|
194
|
+
pageInfo: Schema.Union<[Schema.TaggedStruct<"MoreUnknown", {}>, Schema.TaggedStruct<"MoreKnown", {
|
|
195
|
+
remaining: typeof Schema.Number;
|
|
196
|
+
}>, Schema.TaggedStruct<"NoMore", {}>]>;
|
|
197
|
+
backendId: Schema.SchemaClass<string, string, never>;
|
|
198
|
+
}>, Schema.Struct<{}>, Schema.Struct<{
|
|
199
|
+
_tag: Schema.tag<"SyncMessage.Pong">;
|
|
200
|
+
}>, Schema.Struct<{
|
|
201
|
+
_tag: Schema.tag<"SyncMessage.AdminResetRoomResponse">;
|
|
202
|
+
}>, Schema.Struct<{
|
|
203
|
+
_tag: Schema.tag<"SyncMessage.AdminInfoResponse">;
|
|
204
|
+
} & {
|
|
205
|
+
info: Schema.Struct<{
|
|
206
|
+
durableObjectId: typeof Schema.String;
|
|
207
|
+
}>;
|
|
208
|
+
}>]>, Schema.Union<[Schema.Struct<{
|
|
209
|
+
/** Omitting the cursor will start from the beginning */
|
|
210
|
+
cursor: Schema.Option<Schema.Struct<{
|
|
211
|
+
backendId: Schema.SchemaClass<string, string, never>;
|
|
212
|
+
eventSequenceNumber: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
|
|
213
|
+
}>>;
|
|
214
|
+
}>, Schema.Struct<{
|
|
215
|
+
batch: Schema.Array$<Schema.Struct<{
|
|
216
|
+
name: typeof Schema.String;
|
|
217
|
+
args: typeof Schema.Any;
|
|
218
|
+
seqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
|
|
219
|
+
parentSeqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
|
|
220
|
+
clientId: typeof Schema.String;
|
|
221
|
+
sessionId: typeof Schema.String;
|
|
222
|
+
}>>;
|
|
223
|
+
backendId: Schema.Option<Schema.SchemaClass<string, string, never>>;
|
|
224
|
+
}>, Schema.Struct<{
|
|
225
|
+
_tag: Schema.tag<"SyncMessage.Ping">;
|
|
226
|
+
}>, Schema.Struct<{
|
|
227
|
+
_tag: Schema.tag<"SyncMessage.AdminResetRoomRequest">;
|
|
228
|
+
} & {
|
|
229
|
+
adminSecret: typeof Schema.String;
|
|
230
|
+
}>, Schema.Struct<{
|
|
231
|
+
_tag: Schema.tag<"SyncMessage.AdminInfoRequest">;
|
|
232
|
+
} & {
|
|
233
|
+
adminSecret: typeof Schema.String;
|
|
234
|
+
}>]>]>;
|
|
235
|
+
export type Message = typeof Message.Type;
|
|
236
|
+
//# sourceMappingURL=sync-message-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-message-types.d.ts","sourceRoot":"","sources":["../../src/common/sync-message-types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD;;;;GAIG;AAEH,eAAO,MAAM,YAAY;;;IACvB,sBAAsB;;EAEoC,CAAA;AAE5D,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA;AAEnD,eAAO,MAAM,WAAW;IACtB,wDAAwD;;;;;EAOC,CAAA;AAE3D,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAA;AAEjD,eAAO,MAAM,YAAY;;;;;;;;;;;;;YAlBvB,sBAAsB;;;;;;;;EA2BoC,CAAA;AAE5D,eAAO,MAAM,iBAAiB,GAAI,WAAW,MAAM;;;;;;;;;;;;;;;;;;;;;;;;CAK/C,CAAA;AAEJ,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA;AAEnD,eAAO,MAAM,WAAW;;;;;;;;;;EAGmC,CAAA;AAE3D,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAA;AAEjD,eAAO,MAAM,OAAO,mBAElB,CAAA;AAEF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAEzC,eAAO,MAAM,IAAI;;EAAgG,CAAA;AAEjH,MAAM,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,CAAA;AAEnC,eAAO,MAAM,IAAI;;EAAgG,CAAA;AAEjH,MAAM,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,CAAA;AAGnC,eAAO,MAAM,qBAAqB;;;;EAEmC,CAAA;AAErE,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC,IAAI,CAAA;AAErE,eAAO,MAAM,sBAAsB;;EAEjC,CAAA;AAEF,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAC,IAAI,CAAA;AAEvE,eAAO,MAAM,gBAAgB;;;;EAEmC,CAAA;AAEhE,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAA;AAE3D,eAAO,MAAM,iBAAiB;;;;;;EAImC,CAAA;AAEjE,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAA;AAE7D,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;YAtFjC,sBAAsB;;;;;;;;;;;;;;;;;;IA4FvB,CAAA;AACD,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAC,IAAI,CAAA;AAEvE,eAAO,MAAM,sBAAsB;IAxFjC,wDAAwD;;;;;;;;;;;;;;;;;;;;;;;;;IA8FzD,CAAA;AACD,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAC,IAAI,CAAA;AAEvE,eAAO,MAAM,OAAO;;;;;;;;;;;;;YAxGlB,sBAAsB;;;;;;;;;;;;;;;;;;;IAOtB,wDAAwD;;;;;;;;;;;;;;;;;;;;;;;;;MAiGyB,CAAA;AACnF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { BackendId, SyncBackend } from '@livestore/common';
|
|
2
|
+
import { EventSequenceNumber, LiveStoreEvent } from '@livestore/common/schema';
|
|
3
|
+
import { Schema } from '@livestore/utils/effect';
|
|
4
|
+
/**
|
|
5
|
+
* Common sync message types shared between different transport modes (WS, HTTP, RPC)
|
|
6
|
+
*
|
|
7
|
+
* These are the canonical message definitions used across all transport implementations.
|
|
8
|
+
*/
|
|
9
|
+
export const SyncMetadata = Schema.TaggedStruct('SyncMessage.SyncMetadata', {
|
|
10
|
+
/** ISO date format */
|
|
11
|
+
createdAt: Schema.String,
|
|
12
|
+
}).annotations({ title: '@livestore/sync-cf:SyncMetadata' });
|
|
13
|
+
export const PullRequest = Schema.Struct({
|
|
14
|
+
/** Omitting the cursor will start from the beginning */
|
|
15
|
+
cursor: Schema.Option(Schema.Struct({
|
|
16
|
+
backendId: BackendId,
|
|
17
|
+
eventSequenceNumber: EventSequenceNumber.GlobalEventSequenceNumber,
|
|
18
|
+
})),
|
|
19
|
+
}).annotations({ title: '@livestore/sync-cf:PullRequest' });
|
|
20
|
+
export const PullResponse = Schema.Struct({
|
|
21
|
+
batch: Schema.Array(Schema.Struct({
|
|
22
|
+
eventEncoded: LiveStoreEvent.AnyEncodedGlobal,
|
|
23
|
+
metadata: Schema.Option(SyncMetadata),
|
|
24
|
+
})),
|
|
25
|
+
pageInfo: SyncBackend.PullResPageInfo,
|
|
26
|
+
backendId: BackendId,
|
|
27
|
+
}).annotations({ title: '@livestore/sync-cf:PullResponse' });
|
|
28
|
+
export const emptyPullResponse = (backendId) => PullResponse.make({
|
|
29
|
+
batch: [],
|
|
30
|
+
pageInfo: SyncBackend.pageInfoNoMore,
|
|
31
|
+
backendId,
|
|
32
|
+
});
|
|
33
|
+
export const PushRequest = Schema.Struct({
|
|
34
|
+
batch: Schema.Array(LiveStoreEvent.AnyEncodedGlobal),
|
|
35
|
+
backendId: Schema.Option(BackendId),
|
|
36
|
+
}).annotations({ title: '@livestore/sync-cf:PushRequest' });
|
|
37
|
+
export const PushAck = Schema.Struct({}).annotations({
|
|
38
|
+
title: '@livestore/sync-cf:PushAck',
|
|
39
|
+
});
|
|
40
|
+
export const Ping = Schema.TaggedStruct('SyncMessage.Ping', {}).annotations({ title: '@livestore/sync-cf:Ping' });
|
|
41
|
+
export const Pong = Schema.TaggedStruct('SyncMessage.Pong', {}).annotations({ title: '@livestore/sync-cf:Pong' });
|
|
42
|
+
// Admin operations
|
|
43
|
+
export const AdminResetRoomRequest = Schema.TaggedStruct('SyncMessage.AdminResetRoomRequest', {
|
|
44
|
+
adminSecret: Schema.String,
|
|
45
|
+
}).annotations({ title: '@livestore/sync-cf:AdminResetRoomRequest' });
|
|
46
|
+
export const AdminResetRoomResponse = Schema.TaggedStruct('SyncMessage.AdminResetRoomResponse', {}).annotations({
|
|
47
|
+
title: '@livestore/sync-cf:AdminResetRoomResponse',
|
|
48
|
+
});
|
|
49
|
+
export const AdminInfoRequest = Schema.TaggedStruct('SyncMessage.AdminInfoRequest', {
|
|
50
|
+
adminSecret: Schema.String,
|
|
51
|
+
}).annotations({ title: '@livestore/sync-cf:AdminInfoRequest' });
|
|
52
|
+
export const AdminInfoResponse = Schema.TaggedStruct('SyncMessage.AdminInfoResponse', {
|
|
53
|
+
info: Schema.Struct({
|
|
54
|
+
durableObjectId: Schema.String,
|
|
55
|
+
}),
|
|
56
|
+
}).annotations({ title: '@livestore/sync-cf:AdminInfoResponse' });
|
|
57
|
+
export const BackendToClientMessage = Schema.Union(PullResponse, PushAck, Pong, AdminResetRoomResponse, AdminInfoResponse);
|
|
58
|
+
export const ClientToBackendMessage = Schema.Union(PullRequest, PushRequest, Ping, AdminResetRoomRequest, AdminInfoRequest);
|
|
59
|
+
export const Message = Schema.Union(BackendToClientMessage, ClientToBackendMessage);
|
|
60
|
+
//# sourceMappingURL=sync-message-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-message-types.js","sourceRoot":"","sources":["../../src/common/sync-message-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { InvalidPullError, InvalidPushError } from '@livestore/common';
|
|
2
|
+
import { Rpc, RpcGroup, Schema } from '@livestore/utils/effect';
|
|
3
|
+
declare const SyncWsRpc_base: RpcGroup.RpcGroup<Rpc.Rpc<"SyncWsRpc.Pull", Schema.Struct<{
|
|
4
|
+
cursor: Schema.Option<Schema.Struct<{
|
|
5
|
+
backendId: Schema.SchemaClass<string, string, never>;
|
|
6
|
+
eventSequenceNumber: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
|
|
7
|
+
}>>;
|
|
8
|
+
storeId: typeof Schema.String;
|
|
9
|
+
payload: Schema.optional<Schema.Schema<Schema.JsonValue, Schema.JsonValue, never>>;
|
|
10
|
+
/** Whether to keep the pull stream alive and wait for more events */
|
|
11
|
+
live: typeof Schema.Boolean;
|
|
12
|
+
}>, import("@effect/rpc/RpcSchema").Stream<Schema.Struct<{
|
|
13
|
+
batch: Schema.Array$<Schema.Struct<{
|
|
14
|
+
eventEncoded: Schema.Struct<{
|
|
15
|
+
name: typeof Schema.String;
|
|
16
|
+
args: typeof Schema.Any;
|
|
17
|
+
seqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
|
|
18
|
+
parentSeqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
|
|
19
|
+
clientId: typeof Schema.String;
|
|
20
|
+
sessionId: typeof Schema.String;
|
|
21
|
+
}>;
|
|
22
|
+
metadata: Schema.Option<Schema.Struct<{
|
|
23
|
+
_tag: Schema.tag<"SyncMessage.SyncMetadata">;
|
|
24
|
+
} & {
|
|
25
|
+
createdAt: typeof Schema.String;
|
|
26
|
+
}>>;
|
|
27
|
+
}>>;
|
|
28
|
+
pageInfo: Schema.Union<[Schema.TaggedStruct<"MoreUnknown", {}>, Schema.TaggedStruct<"MoreKnown", {
|
|
29
|
+
remaining: typeof Schema.Number;
|
|
30
|
+
}>, Schema.TaggedStruct<"NoMore", {}>]>;
|
|
31
|
+
backendId: Schema.SchemaClass<string, string, never>;
|
|
32
|
+
}>, typeof InvalidPullError>, typeof Schema.Never, never> | Rpc.Rpc<"SyncWsRpc.Push", Schema.Struct<{
|
|
33
|
+
batch: Schema.Array$<Schema.Struct<{
|
|
34
|
+
name: typeof Schema.String;
|
|
35
|
+
args: typeof Schema.Any;
|
|
36
|
+
seqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
|
|
37
|
+
parentSeqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
|
|
38
|
+
clientId: typeof Schema.String;
|
|
39
|
+
sessionId: typeof Schema.String;
|
|
40
|
+
}>>;
|
|
41
|
+
backendId: Schema.Option<Schema.SchemaClass<string, string, never>>;
|
|
42
|
+
storeId: typeof Schema.String;
|
|
43
|
+
payload: Schema.optional<Schema.Schema<Schema.JsonValue, Schema.JsonValue, never>>;
|
|
44
|
+
}>, Schema.Struct<{}>, typeof InvalidPushError, never>>;
|
|
45
|
+
/**
|
|
46
|
+
* WebSocket RPC Schema for LiveStore CF Sync Provider
|
|
47
|
+
*
|
|
48
|
+
* This defines the RPC endpoints available over WebSocket transport.
|
|
49
|
+
* Unlike HTTP transport which uses request/response patterns for each operation,
|
|
50
|
+
* WebSocket transport maintains a persistent connection and uses streaming responses.
|
|
51
|
+
*/
|
|
52
|
+
export declare class SyncWsRpc extends SyncWsRpc_base {
|
|
53
|
+
}
|
|
54
|
+
export {};
|
|
55
|
+
//# sourceMappingURL=ws-rpc-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-rpc-schema.d.ts","sourceRoot":"","sources":["../../src/common/ws-rpc-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACtE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;;;;;;;;IAezD,qEAAqE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAZ3E;;;;;;GAMG;AACH,qBAAa,SAAU,SAAQ,cAwB9B;CAAG"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { InvalidPullError, InvalidPushError } from '@livestore/common';
|
|
2
|
+
import { Rpc, RpcGroup, Schema } from '@livestore/utils/effect';
|
|
3
|
+
import * as SyncMessage from "./sync-message-types.js";
|
|
4
|
+
/**
|
|
5
|
+
* WebSocket RPC Schema for LiveStore CF Sync Provider
|
|
6
|
+
*
|
|
7
|
+
* This defines the RPC endpoints available over WebSocket transport.
|
|
8
|
+
* Unlike HTTP transport which uses request/response patterns for each operation,
|
|
9
|
+
* WebSocket transport maintains a persistent connection and uses streaming responses.
|
|
10
|
+
*/
|
|
11
|
+
export class SyncWsRpc extends RpcGroup.make(Rpc.make('SyncWsRpc.Pull', {
|
|
12
|
+
payload: Schema.Struct({
|
|
13
|
+
storeId: Schema.String,
|
|
14
|
+
payload: Schema.optional(Schema.JsonValue),
|
|
15
|
+
/** Whether to keep the pull stream alive and wait for more events */
|
|
16
|
+
live: Schema.Boolean,
|
|
17
|
+
...SyncMessage.PullRequest.fields,
|
|
18
|
+
}),
|
|
19
|
+
success: SyncMessage.PullResponse,
|
|
20
|
+
error: InvalidPullError,
|
|
21
|
+
stream: true,
|
|
22
|
+
}), Rpc.make('SyncWsRpc.Push', {
|
|
23
|
+
payload: Schema.Struct({
|
|
24
|
+
storeId: Schema.String,
|
|
25
|
+
payload: Schema.optional(Schema.JsonValue),
|
|
26
|
+
...SyncMessage.PushRequest.fields,
|
|
27
|
+
}),
|
|
28
|
+
success: SyncMessage.PushAck,
|
|
29
|
+
error: InvalidPushError,
|
|
30
|
+
})) {
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=ws-rpc-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-rpc-schema.js","sourceRoot":"","sources":["../../src/common/ws-rpc-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACtE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAA;AAEtD;;;;;;GAMG;AACH,MAAM,OAAO,SAAU,SAAQ,QAAQ,CAAC,IAAI,CAC1C,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE;IACzB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC,MAAM;QACtB,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;QAC1C,qEAAqE;QACrE,IAAI,EAAE,MAAM,CAAC,OAAO;QACpB,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM;KAClC,CAAC;IACF,OAAO,EAAE,WAAW,CAAC,YAAY;IACjC,KAAK,EAAE,gBAAgB;IACvB,MAAM,EAAE,IAAI;CACb,CAAC,EACF,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE;IACzB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC,MAAM;QACtB,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;QAC1C,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM;KAClC,CAAC;IACF,OAAO,EAAE,WAAW,CAAC,OAAO;IAC5B,KAAK,EAAE,gBAAgB;CACxB,CAAC,CAGH;CAAG"}
|
package/package.json
CHANGED
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@livestore/sync-cf",
|
|
3
|
-
"version": "0.4.0-dev.
|
|
3
|
+
"version": "0.4.0-dev.6",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"exports": {
|
|
7
|
-
"
|
|
7
|
+
"./client": "./dist/client/mod.js",
|
|
8
8
|
"./common": "./dist/common/mod.js",
|
|
9
|
-
"./cf-worker": "./dist/cf-worker/mod.js"
|
|
10
|
-
"./cf-worker/durable-object": "./dist/cf-worker/durable-object.js",
|
|
11
|
-
"./cf-worker/worker": "./dist/cf-worker/worker.js"
|
|
9
|
+
"./cf-worker": "./dist/cf-worker/mod.js"
|
|
12
10
|
},
|
|
13
11
|
"dependencies": {
|
|
14
|
-
"@cloudflare/workers-types": "4.
|
|
15
|
-
"@livestore/
|
|
16
|
-
"@livestore/
|
|
12
|
+
"@cloudflare/workers-types": "4.20250823.0",
|
|
13
|
+
"@livestore/common": "0.4.0-dev.6",
|
|
14
|
+
"@livestore/utils": "0.4.0-dev.6",
|
|
15
|
+
"@livestore/common-cf": "0.4.0-dev.6"
|
|
17
16
|
},
|
|
18
17
|
"files": [
|
|
19
18
|
"dist",
|