@livestore/adapter-node 0.4.0 → 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/client-session/adapter.d.ts +1 -1
- package/dist/client-session/adapter.d.ts.map +1 -1
- package/dist/client-session/adapter.js +58 -39
- package/dist/client-session/adapter.js.map +1 -1
- package/dist/devtools/devtools-server.d.ts.map +1 -1
- package/dist/devtools/devtools-server.js +12 -14
- package/dist/devtools/devtools-server.js.map +1 -1
- package/dist/devtools/vite-dev-server.d.ts +7 -11
- package/dist/devtools/vite-dev-server.d.ts.map +1 -1
- package/dist/devtools/vite-dev-server.js +5 -6
- package/dist/devtools/vite-dev-server.js.map +1 -1
- package/dist/leader-thread-shared.d.ts +4 -4
- package/dist/leader-thread-shared.d.ts.map +1 -1
- package/dist/leader-thread-shared.js +13 -12
- package/dist/leader-thread-shared.js.map +1 -1
- package/dist/make-leader-worker.d.ts +4 -4
- package/dist/make-leader-worker.d.ts.map +1 -1
- package/dist/make-leader-worker.js +62 -71
- package/dist/make-leader-worker.js.map +1 -1
- package/dist/rpc-worker.d.ts +8 -0
- package/dist/rpc-worker.d.ts.map +1 -0
- package/dist/rpc-worker.js +5 -0
- package/dist/rpc-worker.js.map +1 -0
- package/dist/webchannel.d.ts +1 -1
- package/dist/webchannel.d.ts.map +1 -1
- package/dist/webchannel.js +17 -18
- package/dist/webchannel.js.map +1 -1
- package/dist/worker-schema.d.ts +248 -212
- package/dist/worker-schema.d.ts.map +1 -1
- package/dist/worker-schema.js +62 -53
- package/dist/worker-schema.js.map +1 -1
- package/package.json +22 -31
- package/src/client-session/adapter.ts +104 -77
- package/src/devtools/devtools-server.ts +33 -30
- package/src/devtools/vite-dev-server.ts +7 -9
- package/src/leader-thread-shared.ts +24 -25
- package/src/make-leader-worker.ts +163 -127
- package/src/rpc-worker.ts +28 -0
- package/src/webchannel.ts +21 -28
- package/src/worker-schema.ts +115 -149
package/src/worker-schema.ts
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import {
|
|
2
2
|
BootStatus,
|
|
3
3
|
Devtools,
|
|
4
|
-
RejectedPushError,
|
|
5
4
|
MigrationsReport,
|
|
5
|
+
RejectedPushError,
|
|
6
6
|
SyncBackend,
|
|
7
7
|
SyncState,
|
|
8
8
|
UnknownError,
|
|
9
9
|
} from '@livestore/common'
|
|
10
10
|
import { StreamEventsOptionsFields } from '@livestore/common/leader-thread'
|
|
11
11
|
import { EventSequenceNumber, LiveStoreEvent } from '@livestore/common/schema'
|
|
12
|
-
import { Schema, Transferable } from '@livestore/utils/effect'
|
|
12
|
+
import { Rpc, RpcGroup, Schema, Transferable } from '@livestore/utils/effect'
|
|
13
13
|
|
|
14
|
-
export const WorkerArgv = Schema.
|
|
14
|
+
export const WorkerArgv = Schema.fromJsonString(
|
|
15
15
|
Schema.Struct({
|
|
16
16
|
clientId: Schema.String,
|
|
17
17
|
storeId: Schema.String,
|
|
18
18
|
sessionId: Schema.String,
|
|
19
|
-
extraArgs: Schema.
|
|
19
|
+
extraArgs: Schema.optional(Schema.Json),
|
|
20
20
|
}),
|
|
21
21
|
)
|
|
22
22
|
|
|
@@ -26,7 +26,7 @@ export const StorageTypeInMemory = Schema.Struct({
|
|
|
26
26
|
* Only works with single-threaded leader thread for now.
|
|
27
27
|
* Should be mostly used for testing.
|
|
28
28
|
*/
|
|
29
|
-
importSnapshot: Schema.optional(
|
|
29
|
+
importSnapshot: Schema.optional(Transferable.Uint8Array),
|
|
30
30
|
})
|
|
31
31
|
|
|
32
32
|
export type StorageTypeInMemory = typeof StorageTypeInMemory.Type
|
|
@@ -43,7 +43,7 @@ export const StorageTypeFs = Schema.Struct({
|
|
|
43
43
|
|
|
44
44
|
export type StorageTypeFs = typeof StorageTypeFs.Type
|
|
45
45
|
|
|
46
|
-
export const StorageType = Schema.Union(StorageTypeInMemory, StorageTypeFs)
|
|
46
|
+
export const StorageType = Schema.Union([StorageTypeInMemory, StorageTypeFs])
|
|
47
47
|
export type StorageType = typeof StorageType.Type
|
|
48
48
|
export type StorageTypeEncoded = typeof StorageType.Encoded
|
|
49
49
|
|
|
@@ -54,175 +54,142 @@ export type StorageTypeEncoded = typeof StorageType.Encoded
|
|
|
54
54
|
// })
|
|
55
55
|
|
|
56
56
|
// export const SyncBackendOptions = Schema.Union(SyncBackendOptionsWebsocket)
|
|
57
|
-
export const SyncBackendOptions = Schema.Record(
|
|
58
|
-
export type SyncBackendOptions = Record<string, Schema.
|
|
59
|
-
|
|
60
|
-
export class LeaderWorkerOuterInitialMessage extends Schema.TaggedRequest<LeaderWorkerOuterInitialMessage>()(
|
|
61
|
-
'InitialMessage',
|
|
62
|
-
{
|
|
63
|
-
payload: { port: Transferable.MessagePort },
|
|
64
|
-
success: Schema.Void,
|
|
65
|
-
failure: Schema.Never,
|
|
66
|
-
},
|
|
67
|
-
) {}
|
|
57
|
+
export const SyncBackendOptions = Schema.Record(Schema.String, Schema.Json)
|
|
58
|
+
export type SyncBackendOptions = Record<string, Schema.Json>
|
|
68
59
|
|
|
69
|
-
export class
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
payload: {
|
|
75
|
-
storeId: Schema.String,
|
|
76
|
-
clientId: Schema.String,
|
|
77
|
-
storage: StorageType,
|
|
78
|
-
syncPayloadEncoded: Schema.UndefinedOr(Schema.JsonValue),
|
|
79
|
-
devtools: Schema.Union(
|
|
80
|
-
Schema.Struct({
|
|
81
|
-
enabled: Schema.Literal(true),
|
|
82
|
-
schemaPath: Schema.String,
|
|
83
|
-
port: Schema.Number,
|
|
84
|
-
host: Schema.String,
|
|
85
|
-
schemaAlias: Schema.String,
|
|
86
|
-
useExistingDevtoolsServer: Schema.Boolean,
|
|
87
|
-
}),
|
|
88
|
-
Schema.Struct({ enabled: Schema.Literal(false) }),
|
|
89
|
-
),
|
|
90
|
-
},
|
|
91
|
-
success: Schema.Void,
|
|
92
|
-
failure: UnknownError,
|
|
93
|
-
},
|
|
94
|
-
) {}
|
|
60
|
+
export class LeaderWorkerOuterInitialMessage extends Rpc.make('InitialMessage', {
|
|
61
|
+
payload: { port: Transferable.MessagePort },
|
|
62
|
+
success: Schema.Void,
|
|
63
|
+
error: Schema.Never,
|
|
64
|
+
}) {}
|
|
95
65
|
|
|
96
|
-
export class
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
66
|
+
export class LeaderWorkerOuterRpcs extends RpcGroup.make(LeaderWorkerOuterInitialMessage) {}
|
|
67
|
+
|
|
68
|
+
export class LeaderWorkerInnerInitialMessage extends Rpc.make('InitialMessage', {
|
|
69
|
+
payload: {
|
|
70
|
+
storeId: Schema.String,
|
|
71
|
+
clientId: Schema.String,
|
|
72
|
+
storage: StorageType,
|
|
73
|
+
syncPayloadEncoded: Schema.UndefinedOr(Schema.Json),
|
|
74
|
+
devtools: Schema.Union([
|
|
75
|
+
Schema.Struct({
|
|
76
|
+
enabled: Schema.Literal(true),
|
|
77
|
+
schemaPath: Schema.String,
|
|
78
|
+
port: Schema.Int.check(Schema.isBetween({ minimum: 0, maximum: 65_535 })),
|
|
79
|
+
host: Schema.String,
|
|
80
|
+
schemaAlias: Schema.String,
|
|
81
|
+
useExistingDevtoolsServer: Schema.Boolean,
|
|
82
|
+
}),
|
|
83
|
+
Schema.Struct({ enabled: Schema.Literal(false) }),
|
|
84
|
+
]),
|
|
102
85
|
},
|
|
103
|
-
|
|
86
|
+
success: Schema.Void,
|
|
87
|
+
error: UnknownError,
|
|
88
|
+
}) {}
|
|
89
|
+
|
|
90
|
+
export type LeaderWorkerInnerInitialMessagePayload = typeof LeaderWorkerInnerInitialMessage.payloadSchema.Type
|
|
104
91
|
|
|
105
|
-
export class
|
|
92
|
+
export class LeaderWorkerInnerBootStatusStream extends Rpc.make('BootStatusStream', {
|
|
93
|
+
payload: {},
|
|
94
|
+
success: BootStatus,
|
|
95
|
+
error: Schema.Never,
|
|
96
|
+
stream: true,
|
|
97
|
+
}) {}
|
|
98
|
+
|
|
99
|
+
export class LeaderWorkerInnerPullStream extends Rpc.make('PullStream', {
|
|
106
100
|
payload: {
|
|
107
|
-
cursor: Schema.
|
|
101
|
+
cursor: Schema.toType(EventSequenceNumber.Client.Composite),
|
|
108
102
|
},
|
|
109
103
|
success: Schema.Struct({
|
|
110
104
|
payload: SyncState.PayloadUpstream,
|
|
111
105
|
}),
|
|
112
|
-
|
|
106
|
+
error: Schema.Never,
|
|
107
|
+
stream: true,
|
|
113
108
|
}) {}
|
|
114
109
|
|
|
115
|
-
export class LeaderWorkerInnerStreamEvents extends
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
},
|
|
122
|
-
) {}
|
|
110
|
+
export class LeaderWorkerInnerStreamEvents extends Rpc.make('StreamEvents', {
|
|
111
|
+
payload: StreamEventsOptionsFields,
|
|
112
|
+
success: LiveStoreEvent.Client.Encoded,
|
|
113
|
+
error: Schema.Never,
|
|
114
|
+
stream: true,
|
|
115
|
+
}) {}
|
|
123
116
|
|
|
124
|
-
export class LeaderWorkerInnerPushToLeader extends
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
payload: {
|
|
128
|
-
batch: Schema.Array(Schema.typeSchema(LiveStoreEvent.Client.Encoded)),
|
|
129
|
-
},
|
|
130
|
-
success: Schema.Void as Schema.Schema<void>,
|
|
131
|
-
failure: RejectedPushError,
|
|
117
|
+
export class LeaderWorkerInnerPushToLeader extends Rpc.make('PushToLeader', {
|
|
118
|
+
payload: {
|
|
119
|
+
batch: Schema.Array(Schema.toType(LiveStoreEvent.Client.Encoded)),
|
|
132
120
|
},
|
|
133
|
-
|
|
121
|
+
success: Schema.Void,
|
|
122
|
+
error: RejectedPushError,
|
|
123
|
+
}) {}
|
|
134
124
|
|
|
135
|
-
export class LeaderWorkerInnerExport extends
|
|
125
|
+
export class LeaderWorkerInnerExport extends Rpc.make('Export', {
|
|
136
126
|
payload: {},
|
|
137
|
-
success: Transferable.Uint8Array
|
|
138
|
-
|
|
139
|
-
}) {}
|
|
140
|
-
|
|
141
|
-
export class LeaderWorkerInnerGetRecreateSnapshot extends Schema.TaggedRequest<LeaderWorkerInnerGetRecreateSnapshot>()(
|
|
142
|
-
'GetRecreateSnapshot',
|
|
143
|
-
{
|
|
144
|
-
payload: {},
|
|
145
|
-
success: Schema.Struct({
|
|
146
|
-
snapshot: Transferable.Uint8Array as Schema.Schema<Uint8Array<ArrayBuffer>>,
|
|
147
|
-
migrationsReport: MigrationsReport,
|
|
148
|
-
}),
|
|
149
|
-
failure: Schema.Never,
|
|
150
|
-
},
|
|
151
|
-
) {}
|
|
127
|
+
success: Transferable.Uint8Array,
|
|
128
|
+
error: Schema.Never,
|
|
129
|
+
}) {}
|
|
152
130
|
|
|
153
|
-
export class
|
|
154
|
-
|
|
155
|
-
{
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
) {}
|
|
131
|
+
export class LeaderWorkerInnerGetRecreateSnapshot extends Rpc.make('GetRecreateSnapshot', {
|
|
132
|
+
payload: {},
|
|
133
|
+
success: Schema.Struct({
|
|
134
|
+
snapshot: Transferable.Uint8Array,
|
|
135
|
+
migrationsReport: MigrationsReport,
|
|
136
|
+
}),
|
|
137
|
+
error: Schema.Never,
|
|
138
|
+
}) {}
|
|
161
139
|
|
|
162
|
-
export class
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
failure: Schema.Never,
|
|
168
|
-
},
|
|
169
|
-
) {}
|
|
140
|
+
export class LeaderWorkerInnerExportEventlog extends Rpc.make('ExportEventlog', {
|
|
141
|
+
payload: {},
|
|
142
|
+
success: Transferable.Uint8Array,
|
|
143
|
+
error: Schema.Never,
|
|
144
|
+
}) {}
|
|
170
145
|
|
|
171
|
-
export class
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
failure: Schema.Never,
|
|
177
|
-
},
|
|
178
|
-
) {}
|
|
146
|
+
export class LeaderWorkerInnerGetLeaderHead extends Rpc.make('GetLeaderHead', {
|
|
147
|
+
payload: {},
|
|
148
|
+
success: Schema.toType(EventSequenceNumber.Client.Composite),
|
|
149
|
+
error: Schema.Never,
|
|
150
|
+
}) {}
|
|
179
151
|
|
|
180
|
-
export class
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
failure: Schema.Never,
|
|
186
|
-
},
|
|
187
|
-
) {}
|
|
152
|
+
export class LeaderWorkerInnerGetLeaderSyncState extends Rpc.make('GetLeaderSyncState', {
|
|
153
|
+
payload: {},
|
|
154
|
+
success: SyncState.SyncState,
|
|
155
|
+
error: Schema.Never,
|
|
156
|
+
}) {}
|
|
188
157
|
|
|
189
|
-
export class
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
},
|
|
196
|
-
) {}
|
|
158
|
+
export class LeaderWorkerInnerSyncStateStream extends Rpc.make('SyncStateStream', {
|
|
159
|
+
payload: {},
|
|
160
|
+
success: SyncState.SyncState,
|
|
161
|
+
error: Schema.Never,
|
|
162
|
+
stream: true,
|
|
163
|
+
}) {}
|
|
197
164
|
|
|
198
|
-
export class
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
165
|
+
export class LeaderWorkerInnerGetNetworkStatus extends Rpc.make('GetNetworkStatus', {
|
|
166
|
+
payload: {},
|
|
167
|
+
success: SyncBackend.NetworkStatus,
|
|
168
|
+
error: Schema.Never,
|
|
169
|
+
}) {}
|
|
170
|
+
|
|
171
|
+
export class LeaderWorkerInnerNetworkStatusStream extends Rpc.make('NetworkStatusStream', {
|
|
172
|
+
payload: {},
|
|
173
|
+
success: SyncBackend.NetworkStatus,
|
|
174
|
+
error: Schema.Never,
|
|
175
|
+
stream: true,
|
|
176
|
+
}) {}
|
|
206
177
|
|
|
207
|
-
export class LeaderWorkerInnerShutdown extends
|
|
178
|
+
export class LeaderWorkerInnerShutdown extends Rpc.make('Shutdown', {
|
|
208
179
|
payload: {},
|
|
209
180
|
success: Schema.Void,
|
|
210
|
-
|
|
181
|
+
error: Schema.Never,
|
|
211
182
|
}) {}
|
|
212
183
|
|
|
213
|
-
export class LeaderWorkerInnerExtraDevtoolsMessage extends
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
payload: {
|
|
217
|
-
message: Devtools.Leader.MessageToApp,
|
|
218
|
-
},
|
|
219
|
-
success: Schema.Void,
|
|
220
|
-
failure: Schema.Never,
|
|
184
|
+
export class LeaderWorkerInnerExtraDevtoolsMessage extends Rpc.make('ExtraDevtoolsMessage', {
|
|
185
|
+
payload: {
|
|
186
|
+
message: Devtools.Leader.MessageToApp,
|
|
221
187
|
},
|
|
222
|
-
|
|
188
|
+
success: Schema.Void,
|
|
189
|
+
error: Schema.Never,
|
|
190
|
+
}) {}
|
|
223
191
|
|
|
224
|
-
export
|
|
225
|
-
LeaderWorkerInnerInitialMessage,
|
|
192
|
+
export class LeaderWorkerInnerRpcs extends RpcGroup.make(
|
|
226
193
|
LeaderWorkerInnerBootStatusStream,
|
|
227
194
|
LeaderWorkerInnerPullStream,
|
|
228
195
|
LeaderWorkerInnerStreamEvents,
|
|
@@ -237,5 +204,4 @@ export const LeaderWorkerInnerRequest = Schema.Union(
|
|
|
237
204
|
LeaderWorkerInnerNetworkStatusStream,
|
|
238
205
|
LeaderWorkerInnerShutdown,
|
|
239
206
|
LeaderWorkerInnerExtraDevtoolsMessage,
|
|
240
|
-
)
|
|
241
|
-
export type LeaderWorkerInnerRequest = typeof LeaderWorkerInnerRequest.Type
|
|
207
|
+
) {}
|