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