@livestore/adapter-web 0.3.2-dev.0 → 0.3.2-dev.10

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.
Files changed (34) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/in-memory/in-memory-adapter.js +2 -2
  3. package/dist/index.d.ts +3 -3
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +3 -3
  6. package/dist/index.js.map +1 -1
  7. package/dist/web-worker/client-session/persisted-adapter.d.ts +2 -2
  8. package/dist/web-worker/client-session/persisted-adapter.d.ts.map +1 -1
  9. package/dist/web-worker/client-session/persisted-adapter.js +19 -19
  10. package/dist/web-worker/client-session/persisted-adapter.js.map +1 -1
  11. package/dist/web-worker/common/persisted-sqlite.d.ts +1 -1
  12. package/dist/web-worker/common/persisted-sqlite.js +1 -1
  13. package/dist/web-worker/common/shutdown-channel.d.ts +1 -1
  14. package/dist/web-worker/common/shutdown-channel.d.ts.map +1 -1
  15. package/dist/web-worker/common/worker-schema.d.ts +179 -187
  16. package/dist/web-worker/common/worker-schema.d.ts.map +1 -1
  17. package/dist/web-worker/common/worker-schema.js +120 -146
  18. package/dist/web-worker/common/worker-schema.js.map +1 -1
  19. package/dist/web-worker/leader-worker/make-leader-worker.js +6 -6
  20. package/dist/web-worker/leader-worker/make-leader-worker.js.map +1 -1
  21. package/dist/web-worker/shared-worker/make-shared-worker.js +4 -4
  22. package/dist/web-worker/shared-worker/make-shared-worker.js.map +1 -1
  23. package/dist/web-worker/vite-dev-polyfill.js +1 -1
  24. package/dist/web-worker/vite-dev-polyfill.js.map +1 -1
  25. package/package.json +12 -50
  26. package/src/in-memory/in-memory-adapter.ts +2 -2
  27. package/src/index.ts +3 -3
  28. package/src/web-worker/ambient.d.ts +0 -2
  29. package/src/web-worker/client-session/persisted-adapter.ts +23 -24
  30. package/src/web-worker/common/persisted-sqlite.ts +2 -2
  31. package/src/web-worker/common/worker-schema.ts +126 -102
  32. package/src/web-worker/leader-worker/make-leader-worker.ts +6 -6
  33. package/src/web-worker/shared-worker/make-shared-worker.ts +10 -10
  34. package/src/web-worker/vite-dev-polyfill.ts +1 -1
@@ -32,12 +32,12 @@ import {
32
32
  } from '@livestore/utils/effect'
33
33
  import { nanoid } from '@livestore/utils/nanoid'
34
34
 
35
- import * as OpfsUtils from '../../opfs-utils.js'
36
- import { readPersistedAppDbFromClientSession, resetPersistedDataFromClientSession } from '../common/persisted-sqlite.js'
37
- import { makeShutdownChannel } from '../common/shutdown-channel.js'
38
- import { DedicatedWorkerDisconnectBroadcast, makeWorkerDisconnectChannel } from '../common/worker-disconnect-channel.js'
39
- import * as WorkerSchema from '../common/worker-schema.js'
40
- import { connectWebmeshNodeClientSession } from './client-session-devtools.js'
35
+ import * as OpfsUtils from '../../opfs-utils.ts'
36
+ import { readPersistedAppDbFromClientSession, resetPersistedDataFromClientSession } from '../common/persisted-sqlite.ts'
37
+ import { makeShutdownChannel } from '../common/shutdown-channel.ts'
38
+ import { DedicatedWorkerDisconnectBroadcast, makeWorkerDisconnectChannel } from '../common/worker-disconnect-channel.ts'
39
+ import * as WorkerSchema from '../common/worker-schema.ts'
40
+ import { connectWebmeshNodeClientSession } from './client-session-devtools.ts'
41
41
 
42
42
  // NOTE we're starting to initialize the sqlite wasm binary here to speed things up
43
43
  const sqlite3Promise = loadSqlite3Wasm()
@@ -110,7 +110,7 @@ export type WebAdapterOptions = {
110
110
  * @example
111
111
  * ```ts
112
112
  * import { makePersistedAdapter } from '@livestore/adapter-web'
113
- * import LiveStoreWorker from './livestore.worker?worker'
113
+ * import LiveStoreWorker from './livestore.worker.ts?worker'
114
114
  * import LiveStoreSharedWorker from '@livestore/adapter-web/shared-worker?sharedworker'
115
115
  *
116
116
  * const adapter = makePersistedAdapter({
@@ -173,15 +173,15 @@ export const makePersistedAdapter =
173
173
 
174
174
  const sharedWebWorker = tryAsFunctionAndNew(options.sharedWorker, { name: `livestore-shared-worker-${storeId}` })
175
175
 
176
- const sharedWorkerFiber = yield* Worker.makePoolSerialized<typeof WorkerSchema.SharedWorker.Request.Type>({
176
+ const sharedWorkerFiber = yield* Worker.makePoolSerialized<typeof WorkerSchema.SharedWorkerRequest.Type>({
177
177
  size: 1,
178
178
  concurrency: 100,
179
179
  initialMessage: () =>
180
- new WorkerSchema.SharedWorker.InitialMessage({
180
+ new WorkerSchema.SharedWorkerInitialMessage({
181
181
  liveStoreVersion,
182
182
  payload: {
183
183
  _tag: 'FromClientSession',
184
- initialMessage: new WorkerSchema.LeaderWorkerInner.InitialMessage({
184
+ initialMessage: new WorkerSchema.LeaderWorkerInnerInitialMessage({
185
185
  storageOptions,
186
186
  storeId,
187
187
  clientId,
@@ -232,9 +232,8 @@ export const makePersistedAdapter =
232
232
  // and adding the `sessionId` to make it easier to debug which session a worker belongs to in logs
233
233
  const worker = tryAsFunctionAndNew(options.worker, { name: `livestore-worker-${storeId}-${sessionId}` })
234
234
 
235
- yield* Worker.makeSerialized<WorkerSchema.LeaderWorkerOuter.Request>({
236
- initialMessage: () =>
237
- new WorkerSchema.LeaderWorkerOuter.InitialMessage({ port: mc.port1, storeId, clientId }),
235
+ yield* Worker.makeSerialized<WorkerSchema.LeaderWorkerOuterRequest>({
236
+ initialMessage: () => new WorkerSchema.LeaderWorkerOuterInitialMessage({ port: mc.port1, storeId, clientId }),
238
237
  }).pipe(
239
238
  Effect.provide(BrowserWorker.layer(() => worker)),
240
239
  UnexpectedError.mapToUnexpectedError,
@@ -248,7 +247,7 @@ export const makePersistedAdapter =
248
247
 
249
248
  const sharedWorker = yield* Fiber.join(sharedWorkerFiber)
250
249
  yield* sharedWorker
251
- .executeEffect(new WorkerSchema.SharedWorker.UpdateMessagePort({ port: mc.port2 }))
250
+ .executeEffect(new WorkerSchema.SharedWorkerUpdateMessagePort({ port: mc.port2 }))
252
251
  .pipe(UnexpectedError.mapToUnexpectedError, Effect.tapErrorCause(shutdown))
253
252
 
254
253
  yield* Deferred.succeed(waitForSharedWorkerInitialized, undefined)
@@ -276,7 +275,7 @@ export const makePersistedAdapter =
276
275
  yield* runLocked.pipe(Effect.interruptible, Effect.tapCauseLogPretty, Effect.forkScoped)
277
276
  }
278
277
 
279
- const runInWorker = <TReq extends typeof WorkerSchema.SharedWorker.Request.Type>(
278
+ const runInWorker = <TReq extends typeof WorkerSchema.SharedWorkerRequest.Type>(
280
279
  req: TReq,
281
280
  ): TReq extends Schema.WithResult<infer A, infer _I, infer E, infer _EI, infer R>
282
281
  ? Effect.Effect<A, UnexpectedError | E, R>
@@ -303,7 +302,7 @@ export const makePersistedAdapter =
303
302
  Effect.catchAllDefect((cause) => new UnexpectedError({ cause })),
304
303
  ) as any
305
304
 
306
- const runInWorkerStream = <TReq extends typeof WorkerSchema.SharedWorker.Request.Type>(
305
+ const runInWorkerStream = <TReq extends typeof WorkerSchema.SharedWorkerRequest.Type>(
307
306
  req: TReq,
308
307
  ): TReq extends Schema.WithResult<infer A, infer _I, infer _E, infer _EI, infer R>
309
308
  ? Stream.Stream<A, UnexpectedError, R>
@@ -322,7 +321,7 @@ export const makePersistedAdapter =
322
321
  )
323
322
  }).pipe(Stream.unwrap) as any
324
323
 
325
- const bootStatusFiber = yield* runInWorkerStream(new WorkerSchema.LeaderWorkerInner.BootStatusStream()).pipe(
324
+ const bootStatusFiber = yield* runInWorkerStream(new WorkerSchema.LeaderWorkerInnerBootStatusStream()).pipe(
326
325
  Stream.tap((_) => Queue.offer(bootStatusQueue, _)),
327
326
  Stream.runDrain,
328
327
  Effect.tapErrorCause((cause) => (Cause.isInterruptedOnly(cause) ? Effect.void : shutdown(cause))),
@@ -341,7 +340,7 @@ export const makePersistedAdapter =
341
340
  // re-exporting the db
342
341
  const initialResult =
343
342
  dataFromFile === undefined
344
- ? yield* runInWorker(new WorkerSchema.LeaderWorkerInner.GetRecreateSnapshot()).pipe(
343
+ ? yield* runInWorker(new WorkerSchema.LeaderWorkerInnerGetRecreateSnapshot()).pipe(
345
344
  Effect.map(({ snapshot, migrationsReport }) => ({
346
345
  _tag: 'from-leader-worker' as const,
347
346
  snapshot,
@@ -403,7 +402,7 @@ export const makePersistedAdapter =
403
402
  )
404
403
 
405
404
  const leaderThread: ClientSession['leaderThread'] = {
406
- export: runInWorker(new WorkerSchema.LeaderWorkerInner.Export()).pipe(
405
+ export: runInWorker(new WorkerSchema.LeaderWorkerInnerExport()).pipe(
407
406
  Effect.timeout(10_000),
408
407
  UnexpectedError.mapToUnexpectedError,
409
408
  Effect.withSpan('@livestore/adapter-web:client-session:export'),
@@ -411,9 +410,9 @@ export const makePersistedAdapter =
411
410
 
412
411
  events: {
413
412
  pull: ({ cursor }) =>
414
- runInWorkerStream(new WorkerSchema.LeaderWorkerInner.PullStream({ cursor })).pipe(Stream.orDie),
413
+ runInWorkerStream(new WorkerSchema.LeaderWorkerInnerPullStream({ cursor })).pipe(Stream.orDie),
415
414
  push: (batch) =>
416
- runInWorker(new WorkerSchema.LeaderWorkerInner.PushToLeader({ batch })).pipe(
415
+ runInWorker(new WorkerSchema.LeaderWorkerInnerPushToLeader({ batch })).pipe(
417
416
  Effect.withSpan('@livestore/adapter-web:client-session:pushToLeader', {
418
417
  attributes: { batchSize: batch.length },
419
418
  }),
@@ -422,19 +421,19 @@ export const makePersistedAdapter =
422
421
 
423
422
  initialState: { leaderHead: initialLeaderHead, migrationsReport },
424
423
 
425
- getEventlogData: runInWorker(new WorkerSchema.LeaderWorkerInner.ExportEventlog()).pipe(
424
+ getEventlogData: runInWorker(new WorkerSchema.LeaderWorkerInnerExportEventlog()).pipe(
426
425
  Effect.timeout(10_000),
427
426
  UnexpectedError.mapToUnexpectedError,
428
427
  Effect.withSpan('@livestore/adapter-web:client-session:getEventlogData'),
429
428
  ),
430
429
 
431
- getSyncState: runInWorker(new WorkerSchema.LeaderWorkerInner.GetLeaderSyncState()).pipe(
430
+ getSyncState: runInWorker(new WorkerSchema.LeaderWorkerInnerGetLeaderSyncState()).pipe(
432
431
  UnexpectedError.mapToUnexpectedError,
433
432
  Effect.withSpan('@livestore/adapter-web:client-session:getLeaderSyncState'),
434
433
  ),
435
434
 
436
435
  sendDevtoolsMessage: (message) =>
437
- runInWorker(new WorkerSchema.LeaderWorkerInner.ExtraDevtoolsMessage({ message })).pipe(
436
+ runInWorker(new WorkerSchema.LeaderWorkerInnerExtraDevtoolsMessage({ message })).pipe(
438
437
  UnexpectedError.mapToUnexpectedError,
439
438
  Effect.withSpan('@livestore/adapter-web:client-session:devtoolsMessageForLeader'),
440
439
  ),
@@ -3,8 +3,8 @@ import type { LiveStoreSchema } from '@livestore/common/schema'
3
3
  import { decodeSAHPoolFilename, HEADER_OFFSET_DATA } from '@livestore/sqlite-wasm/browser'
4
4
  import { Effect, Schedule, Schema } from '@livestore/utils/effect'
5
5
 
6
- import * as OpfsUtils from '../../opfs-utils.js'
7
- import type * as WorkerSchema from './worker-schema.js'
6
+ import * as OpfsUtils from '../../opfs-utils.ts'
7
+ import type * as WorkerSchema from './worker-schema.ts'
8
8
 
9
9
  export class PersistedSqliteError extends Schema.TaggedError<PersistedSqliteError>()('PersistedSqliteError', {
10
10
  cause: Schema.Defect,
@@ -43,19 +43,21 @@ export type StorageTypeEncoded = typeof StorageType.Encoded
43
43
  export const SyncBackendOptions = Schema.Record({ key: Schema.String, value: Schema.JsonValue })
44
44
  export type SyncBackendOptions = Record<string, Schema.JsonValue>
45
45
 
46
- export namespace LeaderWorkerOuter {
47
- export class InitialMessage extends Schema.TaggedRequest<InitialMessage>()('InitialMessage', {
46
+ export class LeaderWorkerOuterInitialMessage extends Schema.TaggedRequest<LeaderWorkerOuterInitialMessage>()(
47
+ 'InitialMessage',
48
+ {
48
49
  payload: { port: Transferable.MessagePort, storeId: Schema.String, clientId: Schema.String },
49
50
  success: Schema.Void,
50
51
  failure: UnexpectedError,
51
- }) {}
52
+ },
53
+ ) {}
52
54
 
53
- export class Request extends Schema.Union(InitialMessage) {}
54
- }
55
+ export class LeaderWorkerOuterRequest extends Schema.Union(LeaderWorkerOuterInitialMessage) {}
55
56
 
56
57
  // TODO unify this code with schema from node adapter
57
- export namespace LeaderWorkerInner {
58
- export class InitialMessage extends Schema.TaggedRequest<InitialMessage>()('InitialMessage', {
58
+ export class LeaderWorkerInnerInitialMessage extends Schema.TaggedRequest<LeaderWorkerInnerInitialMessage>()(
59
+ 'InitialMessage',
60
+ {
59
61
  payload: {
60
62
  storageOptions: StorageType,
61
63
  devtoolsEnabled: Schema.Boolean,
@@ -66,136 +68,158 @@ export namespace LeaderWorkerInner {
66
68
  },
67
69
  success: Schema.Void,
68
70
  failure: UnexpectedError,
69
- }) {}
71
+ },
72
+ ) {}
70
73
 
71
- export class BootStatusStream extends Schema.TaggedRequest<BootStatusStream>()('BootStatusStream', {
74
+ export class LeaderWorkerInnerBootStatusStream extends Schema.TaggedRequest<LeaderWorkerInnerBootStatusStream>()(
75
+ 'BootStatusStream',
76
+ {
72
77
  payload: {},
73
78
  success: BootStatus,
74
79
  failure: UnexpectedError,
75
- }) {}
80
+ },
81
+ ) {}
76
82
 
77
- export class PushToLeader extends Schema.TaggedRequest<PushToLeader>()('PushToLeader', {
83
+ export class LeaderWorkerInnerPushToLeader extends Schema.TaggedRequest<LeaderWorkerInnerPushToLeader>()(
84
+ 'PushToLeader',
85
+ {
78
86
  payload: {
79
87
  batch: Schema.Array(LiveStoreEvent.AnyEncoded),
80
88
  },
81
89
  success: Schema.Void,
82
90
  failure: Schema.Union(UnexpectedError, LeaderAheadError),
83
- }) {}
84
-
85
- export class PullStream extends Schema.TaggedRequest<PullStream>()('PullStream', {
86
- payload: {
87
- cursor: EventSequenceNumber.EventSequenceNumber,
88
- },
89
- success: Schema.Struct({
90
- payload: SyncState.PayloadUpstream,
91
- }),
92
- failure: UnexpectedError,
93
- }) {}
94
-
95
- export class Export extends Schema.TaggedRequest<Export>()('Export', {
96
- payload: {},
97
- success: Transferable.Uint8Array,
98
- failure: UnexpectedError,
99
- }) {}
100
-
101
- export class ExportEventlog extends Schema.TaggedRequest<ExportEventlog>()('ExportEventlog', {
91
+ },
92
+ ) {}
93
+
94
+ export class LeaderWorkerInnerPullStream extends Schema.TaggedRequest<LeaderWorkerInnerPullStream>()('PullStream', {
95
+ payload: {
96
+ cursor: EventSequenceNumber.EventSequenceNumber,
97
+ },
98
+ success: Schema.Struct({
99
+ payload: SyncState.PayloadUpstream,
100
+ }),
101
+ failure: UnexpectedError,
102
+ }) {}
103
+
104
+ export class LeaderWorkerInnerExport extends Schema.TaggedRequest<LeaderWorkerInnerExport>()('Export', {
105
+ payload: {},
106
+ success: Transferable.Uint8Array,
107
+ failure: UnexpectedError,
108
+ }) {}
109
+
110
+ export class LeaderWorkerInnerExportEventlog extends Schema.TaggedRequest<LeaderWorkerInnerExportEventlog>()(
111
+ 'ExportEventlog',
112
+ {
102
113
  payload: {},
103
114
  success: Transferable.Uint8Array,
104
115
  failure: UnexpectedError,
105
- }) {}
116
+ },
117
+ ) {}
106
118
 
107
- export class GetRecreateSnapshot extends Schema.TaggedRequest<GetRecreateSnapshot>()('GetRecreateSnapshot', {
119
+ export class LeaderWorkerInnerGetRecreateSnapshot extends Schema.TaggedRequest<LeaderWorkerInnerGetRecreateSnapshot>()(
120
+ 'GetRecreateSnapshot',
121
+ {
108
122
  payload: {},
109
123
  success: Schema.Struct({
110
124
  snapshot: Transferable.Uint8Array,
111
125
  migrationsReport: MigrationsReport,
112
126
  }),
113
127
  failure: UnexpectedError,
114
- }) {}
128
+ },
129
+ ) {}
115
130
 
116
- export class GetLeaderHead extends Schema.TaggedRequest<GetLeaderHead>()('GetLeaderHead', {
131
+ export class LeaderWorkerInnerGetLeaderHead extends Schema.TaggedRequest<LeaderWorkerInnerGetLeaderHead>()(
132
+ 'GetLeaderHead',
133
+ {
117
134
  payload: {},
118
135
  success: EventSequenceNumber.EventSequenceNumber,
119
136
  failure: UnexpectedError,
120
- }) {}
137
+ },
138
+ ) {}
121
139
 
122
- export class GetLeaderSyncState extends Schema.TaggedRequest<GetLeaderSyncState>()('GetLeaderSyncState', {
140
+ export class LeaderWorkerInnerGetLeaderSyncState extends Schema.TaggedRequest<LeaderWorkerInnerGetLeaderSyncState>()(
141
+ 'GetLeaderSyncState',
142
+ {
123
143
  payload: {},
124
144
  success: SyncState.SyncState,
125
145
  failure: UnexpectedError,
126
- }) {}
127
-
128
- export class Shutdown extends Schema.TaggedRequest<Shutdown>()('Shutdown', {
129
- payload: {},
130
- success: Schema.Void,
131
- failure: UnexpectedError,
132
- }) {}
133
-
134
- export class ExtraDevtoolsMessage extends Schema.TaggedRequest<ExtraDevtoolsMessage>()('ExtraDevtoolsMessage', {
146
+ },
147
+ ) {}
148
+
149
+ export class LeaderWorkerInnerShutdown extends Schema.TaggedRequest<LeaderWorkerInnerShutdown>()('Shutdown', {
150
+ payload: {},
151
+ success: Schema.Void,
152
+ failure: UnexpectedError,
153
+ }) {}
154
+
155
+ export class LeaderWorkerInnerExtraDevtoolsMessage extends Schema.TaggedRequest<LeaderWorkerInnerExtraDevtoolsMessage>()(
156
+ 'ExtraDevtoolsMessage',
157
+ {
135
158
  payload: {
136
159
  message: Devtools.Leader.MessageToApp,
137
160
  },
138
161
  success: Schema.Void,
139
162
  failure: UnexpectedError,
140
- }) {}
141
-
142
- export const Request = Schema.Union(
143
- InitialMessage,
144
- BootStatusStream,
145
- PushToLeader,
146
- PullStream,
147
- Export,
148
- ExportEventlog,
149
- GetRecreateSnapshot,
150
- GetLeaderHead,
151
- GetLeaderSyncState,
152
- Shutdown,
153
- ExtraDevtoolsMessage,
154
- WebmeshWorker.Schema.CreateConnection,
155
- )
156
- export type Request = typeof Request.Type
157
- }
158
-
159
- export namespace SharedWorker {
160
- export class InitialMessagePayloadFromClientSession extends Schema.TaggedStruct('FromClientSession', {
161
- initialMessage: LeaderWorkerInner.InitialMessage,
162
- }) {}
163
-
164
- export class InitialMessage extends Schema.TaggedRequest<InitialMessage>()('InitialMessage', {
165
- payload: {
166
- payload: Schema.Union(InitialMessagePayloadFromClientSession, Schema.TaggedStruct('FromWebBridge', {})),
167
- // To guard against scenarios where a client session is already running a newer version of LiveStore
168
- // We should probably find a better way to handle those cases once they become more common.
169
- liveStoreVersion: Schema.Literal(liveStoreVersion),
170
- },
171
- success: Schema.Void,
172
- failure: UnexpectedError,
173
- }) {}
174
-
175
- export class UpdateMessagePort extends Schema.TaggedRequest<UpdateMessagePort>()('UpdateMessagePort', {
163
+ },
164
+ ) {}
165
+
166
+ export const LeaderWorkerInnerRequest = Schema.Union(
167
+ LeaderWorkerInnerInitialMessage,
168
+ LeaderWorkerInnerBootStatusStream,
169
+ LeaderWorkerInnerPushToLeader,
170
+ LeaderWorkerInnerPullStream,
171
+ LeaderWorkerInnerExport,
172
+ LeaderWorkerInnerExportEventlog,
173
+ LeaderWorkerInnerGetRecreateSnapshot,
174
+ LeaderWorkerInnerGetLeaderHead,
175
+ LeaderWorkerInnerGetLeaderSyncState,
176
+ LeaderWorkerInnerShutdown,
177
+ LeaderWorkerInnerExtraDevtoolsMessage,
178
+ WebmeshWorker.Schema.CreateConnection,
179
+ )
180
+ export type LeaderWorkerInnerRequest = typeof LeaderWorkerInnerRequest.Type
181
+
182
+ export class SharedWorkerInitialMessagePayloadFromClientSession extends Schema.TaggedStruct('FromClientSession', {
183
+ initialMessage: LeaderWorkerInnerInitialMessage,
184
+ }) {}
185
+
186
+ export class SharedWorkerInitialMessage extends Schema.TaggedRequest<SharedWorkerInitialMessage>()('InitialMessage', {
187
+ payload: {
188
+ payload: Schema.Union(SharedWorkerInitialMessagePayloadFromClientSession, Schema.TaggedStruct('FromWebBridge', {})),
189
+ // To guard against scenarios where a client session is already running a newer version of LiveStore
190
+ // We should probably find a better way to handle those cases once they become more common.
191
+ liveStoreVersion: Schema.Literal(liveStoreVersion),
192
+ },
193
+ success: Schema.Void,
194
+ failure: UnexpectedError,
195
+ }) {}
196
+
197
+ export class SharedWorkerUpdateMessagePort extends Schema.TaggedRequest<SharedWorkerUpdateMessagePort>()(
198
+ 'UpdateMessagePort',
199
+ {
176
200
  payload: {
177
201
  port: Transferable.MessagePort,
178
202
  },
179
203
  success: Schema.Void,
180
204
  failure: UnexpectedError,
181
- }) {}
182
-
183
- export class Request extends Schema.Union(
184
- InitialMessage,
185
- UpdateMessagePort,
186
-
187
- // Proxied requests
188
- LeaderWorkerInner.BootStatusStream,
189
- LeaderWorkerInner.PushToLeader,
190
- LeaderWorkerInner.PullStream,
191
- LeaderWorkerInner.Export,
192
- LeaderWorkerInner.GetRecreateSnapshot,
193
- LeaderWorkerInner.ExportEventlog,
194
- LeaderWorkerInner.GetLeaderHead,
195
- LeaderWorkerInner.GetLeaderSyncState,
196
- LeaderWorkerInner.Shutdown,
197
- LeaderWorkerInner.ExtraDevtoolsMessage,
198
-
199
- WebmeshWorker.Schema.CreateConnection,
200
- ) {}
201
- }
205
+ },
206
+ ) {}
207
+
208
+ export class SharedWorkerRequest extends Schema.Union(
209
+ SharedWorkerInitialMessage,
210
+ SharedWorkerUpdateMessagePort,
211
+
212
+ // Proxied requests
213
+ LeaderWorkerInnerBootStatusStream,
214
+ LeaderWorkerInnerPushToLeader,
215
+ LeaderWorkerInnerPullStream,
216
+ LeaderWorkerInnerExport,
217
+ LeaderWorkerInnerGetRecreateSnapshot,
218
+ LeaderWorkerInnerExportEventlog,
219
+ LeaderWorkerInnerGetLeaderHead,
220
+ LeaderWorkerInnerGetLeaderSyncState,
221
+ LeaderWorkerInnerShutdown,
222
+ LeaderWorkerInnerExtraDevtoolsMessage,
223
+
224
+ WebmeshWorker.Schema.CreateConnection,
225
+ ) {}
@@ -25,10 +25,10 @@ import {
25
25
  } from '@livestore/utils/effect'
26
26
  import type * as otel from '@opentelemetry/api'
27
27
 
28
- import * as OpfsUtils from '../../opfs-utils.js'
29
- import { getStateDbFileName, sanitizeOpfsDir } from '../common/persisted-sqlite.js'
30
- import { makeShutdownChannel } from '../common/shutdown-channel.js'
31
- import * as WorkerSchema from '../common/worker-schema.js'
28
+ import * as OpfsUtils from '../../opfs-utils.ts'
29
+ import { getStateDbFileName, sanitizeOpfsDir } from '../common/persisted-sqlite.ts'
30
+ import { makeShutdownChannel } from '../common/shutdown-channel.ts'
31
+ import * as WorkerSchema from '../common/worker-schema.ts'
32
32
 
33
33
  export type WorkerOptions = {
34
34
  schema: LiveStoreSchema
@@ -81,7 +81,7 @@ export const makeWorkerEffect = (options: WorkerOptions) => {
81
81
  const makeWorkerRunnerOuter = (
82
82
  workerOptions: WorkerOptions,
83
83
  ): Layer.Layer<never, WorkerError.WorkerError, WorkerRunner.PlatformRunner | HttpClient.HttpClient> =>
84
- WorkerRunner.layerSerialized(WorkerSchema.LeaderWorkerOuter.InitialMessage, {
84
+ WorkerRunner.layerSerialized(WorkerSchema.LeaderWorkerOuterInitialMessage, {
85
85
  // Port coming from client session and forwarded via the shared worker
86
86
  InitialMessage: ({ port: incomingRequestsPort, storeId, clientId }) =>
87
87
  Effect.gen(function* () {
@@ -102,7 +102,7 @@ const makeWorkerRunnerOuter = (
102
102
  })
103
103
 
104
104
  const makeWorkerRunnerInner = ({ schema, sync: syncOptions }: WorkerOptions) =>
105
- WorkerRunner.layerSerialized(WorkerSchema.LeaderWorkerInner.Request, {
105
+ WorkerRunner.layerSerialized(WorkerSchema.LeaderWorkerInnerRequest, {
106
106
  InitialMessage: ({ storageOptions, storeId, clientId, devtoolsEnabled, debugInstanceId, syncPayload }) =>
107
107
  Effect.gen(function* () {
108
108
  const sqlite3 = yield* Effect.promise(() => loadSqlite3Wasm())
@@ -25,8 +25,8 @@ import {
25
25
  WorkerRunner,
26
26
  } from '@livestore/utils/effect'
27
27
 
28
- import { makeShutdownChannel } from '../common/shutdown-channel.js'
29
- import * as WorkerSchema from '../common/worker-schema.js'
28
+ import { makeShutdownChannel } from '../common/shutdown-channel.ts'
29
+ import * as WorkerSchema from '../common/worker-schema.ts'
30
30
 
31
31
  if (isDevEnv()) {
32
32
  globalThis.__debugLiveStoreUtils = {
@@ -39,21 +39,21 @@ if (isDevEnv()) {
39
39
  const makeWorkerRunner = Effect.gen(function* () {
40
40
  const leaderWorkerContextSubRef = yield* SubscriptionRef.make<
41
41
  | {
42
- worker: Worker.SerializedWorkerPool<WorkerSchema.LeaderWorkerInner.Request>
42
+ worker: Worker.SerializedWorkerPool<WorkerSchema.LeaderWorkerInnerRequest>
43
43
  scope: Scope.CloseableScope
44
44
  }
45
45
  | undefined
46
46
  >(undefined)
47
47
 
48
48
  const initialMessagePayloadDeferredRef = yield* Deferred.make<
49
- typeof WorkerSchema.SharedWorker.InitialMessagePayloadFromClientSession.Type
49
+ typeof WorkerSchema.SharedWorkerInitialMessagePayloadFromClientSession.Type
50
50
  >().pipe(Effect.andThen(Ref.make))
51
51
 
52
52
  const waitForWorker = SubscriptionRef.waitUntil(leaderWorkerContextSubRef, isNotUndefined).pipe(
53
53
  Effect.map((_) => _.worker),
54
54
  )
55
55
 
56
- const forwardRequest = <TReq extends WorkerSchema.LeaderWorkerInner.Request>(
56
+ const forwardRequest = <TReq extends WorkerSchema.LeaderWorkerInnerRequest>(
57
57
  req: TReq,
58
58
  ): TReq extends Schema.WithResult<infer A, infer _I, infer _E, infer _EI, infer _R>
59
59
  ? Effect.Effect<A, UnexpectedError, never>
@@ -79,7 +79,7 @@ const makeWorkerRunner = Effect.gen(function* () {
79
79
  Effect.tapCauseLogPretty,
80
80
  ) as any
81
81
 
82
- const forwardRequestStream = <TReq extends WorkerSchema.LeaderWorkerInner.Request>(
82
+ const forwardRequestStream = <TReq extends WorkerSchema.LeaderWorkerInnerRequest>(
83
83
  req: TReq,
84
84
  ): TReq extends Schema.WithResult<infer A, infer _I, infer _E, infer _EI, infer _R>
85
85
  ? Stream.Stream<A, UnexpectedError, never>
@@ -133,14 +133,14 @@ const makeWorkerRunner = Effect.gen(function* () {
133
133
  yield* Effect.logDebug('reset')
134
134
 
135
135
  const initialMessagePayloadDeferred =
136
- yield* Deferred.make<typeof WorkerSchema.SharedWorker.InitialMessagePayloadFromClientSession.Type>()
136
+ yield* Deferred.make<typeof WorkerSchema.SharedWorkerInitialMessagePayloadFromClientSession.Type>()
137
137
  yield* Ref.set(initialMessagePayloadDeferredRef, initialMessagePayloadDeferred)
138
138
 
139
139
  yield* resetCurrentWorkerCtx
140
140
  // yield* devtoolsWebBridge.reset
141
141
  })
142
142
 
143
- return WorkerRunner.layerSerialized(WorkerSchema.SharedWorker.Request, {
143
+ return WorkerRunner.layerSerialized(WorkerSchema.SharedWorkerRequest, {
144
144
  InitialMessage: (message) =>
145
145
  Effect.gen(function* () {
146
146
  if (message.payload._tag === 'FromWebBridge') return
@@ -151,7 +151,7 @@ const makeWorkerRunner = Effect.gen(function* () {
151
151
 
152
152
  if (deferredAlreadyDone) {
153
153
  const previousInitialMessage = yield* Deferred.await(initialMessagePayloadDeferred)
154
- const messageSchema = WorkerSchema.LeaderWorkerInner.InitialMessage.pipe(
154
+ const messageSchema = WorkerSchema.LeaderWorkerInnerInitialMessage.pipe(
155
155
  Schema.omit('devtoolsEnabled', 'debugInstanceId'),
156
156
  )
157
157
  const isEqual = Schema.equivalence(messageSchema)
@@ -194,7 +194,7 @@ const makeWorkerRunner = Effect.gen(function* () {
194
194
 
195
195
  const workerLayer = yield* Layer.build(BrowserWorker.layer(() => port))
196
196
 
197
- const worker = yield* Worker.makePoolSerialized<WorkerSchema.LeaderWorkerInner.Request>({
197
+ const worker = yield* Worker.makePoolSerialized<WorkerSchema.LeaderWorkerInnerRequest>({
198
198
  size: 1,
199
199
  concurrency: 100,
200
200
  initialMessage: () => initialMessagePayload.initialMessage,
@@ -5,7 +5,7 @@ globalThis.$RefreshReg$ = () => {}
5
5
  // @ts-expect-error TODO remove when Vite does proper treeshaking during dev
6
6
  globalThis.$RefreshSig$ = () => (type: any) => type
7
7
 
8
- // @ts-ignore
8
+ // @ts-ignore
9
9
  globalThis.process = globalThis.process ?? { env: {} }
10
10
 
11
11
  globalThis.document = (globalThis as any)?.document ?? {