@livestore/adapter-node 0.4.0-dev.2 → 0.4.0-dev.21

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.
@@ -1 +1 @@
1
- {"version":3,"file":"worker-schema.js","sourceRoot":"","sources":["../src/worker-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-schema.js","sourceRoot":"","sources":["../src/worker-schema.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@livestore/adapter-node",
3
- "version": "0.4.0-dev.2",
3
+ "version": "0.4.0-dev.21",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "exports": {
@@ -9,19 +9,19 @@
9
9
  "./worker": "./dist/make-leader-worker.js"
10
10
  },
11
11
  "dependencies": {
12
- "@livestore/devtools-vite": "0.4.0-dev.2",
12
+ "@livestore/devtools-vite": "0.4.0-dev.21",
13
13
  "@opentelemetry/api": "1.9.0",
14
- "vite": "7.0.6",
15
- "@livestore/common": "0.4.0-dev.2",
16
- "@livestore/webmesh": "0.4.0-dev.2",
17
- "@livestore/sqlite-wasm": "0.4.0-dev.2",
18
- "@livestore/utils": "0.4.0-dev.2"
14
+ "vite": "7.2.4",
15
+ "@livestore/common": "0.4.0-dev.21",
16
+ "@livestore/utils": "0.4.0-dev.21",
17
+ "@livestore/sqlite-wasm": "0.4.0-dev.21",
18
+ "@livestore/webmesh": "0.4.0-dev.21"
19
19
  },
20
20
  "devDependencies": {
21
21
  "@rollup/plugin-commonjs": "^28.0.6",
22
22
  "@rollup/plugin-node-resolve": "^16.0.1",
23
23
  "@rollup/plugin-terser": "^0.4.4",
24
- "rollup": "^4.46.2"
24
+ "rollup": "^4.49.0"
25
25
  },
26
26
  "files": [
27
27
  "package.json",
@@ -1,33 +1,38 @@
1
1
  import { hostname } from 'node:os'
2
+ import path from 'node:path'
2
3
  import * as WT from 'node:worker_threads'
3
4
  import {
4
5
  type Adapter,
5
6
  type BootStatus,
6
7
  ClientSessionLeaderThreadProxy,
7
- type IntentionalShutdownCause,
8
+ IntentionalShutdownCause,
8
9
  type LockStatus,
9
10
  type MakeSqliteDb,
10
11
  makeClientSession,
11
12
  type SyncError,
12
13
  type SyncOptions,
13
- UnexpectedError,
14
+ UnknownError,
14
15
  } from '@livestore/common'
15
- import { Eventlog, LeaderThreadCtx } from '@livestore/common/leader-thread'
16
+ import { Eventlog, LeaderThreadCtx, streamEventsWithSyncState } from '@livestore/common/leader-thread'
16
17
  import type { LiveStoreSchema } from '@livestore/common/schema'
17
18
  import { LiveStoreEvent } from '@livestore/common/schema'
18
19
  import { loadSqlite3Wasm } from '@livestore/sqlite-wasm/load-wasm'
19
20
  import { sqliteDbFactory } from '@livestore/sqlite-wasm/node'
21
+ import { omitUndefineds } from '@livestore/utils'
20
22
  import {
21
23
  Cause,
22
24
  Effect,
23
25
  Exit,
24
26
  FetchHttpClient,
25
27
  Fiber,
28
+ FileSystem,
26
29
  Layer,
27
30
  ParseResult,
28
31
  Queue,
32
+ Schedule,
29
33
  Schema,
30
34
  Stream,
35
+ Subscribable,
31
36
  SubscriptionRef,
32
37
  Worker,
33
38
  WorkerError,
@@ -50,6 +55,13 @@ export interface NodeAdapterOptions {
50
55
  */
51
56
  sessionId?: string
52
57
 
58
+ /**
59
+ * Warning: This will reset both the app and eventlog database. This should only be used during development.
60
+ *
61
+ * @default false
62
+ */
63
+ resetPersistence?: boolean
64
+
53
65
  devtools?: {
54
66
  schemaPath: string | URL
55
67
  /**
@@ -76,7 +88,43 @@ export interface NodeAdapterOptions {
76
88
  }
77
89
  }
78
90
 
79
- /** Runs everything in the same thread. Use `makeWorkerAdapter` for multi-threaded implementation. */
91
+ /**
92
+ * Creates a single-threaded LiveStore adapter for Node.js applications.
93
+ *
94
+ * This adapter runs the leader thread (persistence and sync) in the same thread as
95
+ * your application. Suitable for CLI tools, scripts, and applications where simplicity
96
+ * is preferred over maximum performance.
97
+ *
98
+ * For production servers or performance-critical applications, consider `makeWorkerAdapter`
99
+ * which runs persistence/sync in a separate worker thread.
100
+ *
101
+ * @example
102
+ * ```ts
103
+ * import { makeAdapter } from '@livestore/adapter-node'
104
+ * import { makeWsSync } from '@livestore/sync-cf/client'
105
+ *
106
+ * const adapter = makeAdapter({
107
+ * storage: { type: 'fs', baseDirectory: './data' },
108
+ * sync: {
109
+ * backend: makeWsSync({ url: 'wss://api.example.com/sync' }),
110
+ * },
111
+ * })
112
+ * ```
113
+ *
114
+ * @example
115
+ * ```ts
116
+ * // With DevTools support
117
+ * const adapter = makeAdapter({
118
+ * storage: { type: 'fs', baseDirectory: './data' },
119
+ * devtools: {
120
+ * schemaPath: new URL('./schema.ts', import.meta.url),
121
+ * port: 4242,
122
+ * },
123
+ * })
124
+ * ```
125
+ *
126
+ * @see https://livestore.dev/docs/reference/adapters/node for setup guide
127
+ */
80
128
  export const makeAdapter = ({
81
129
  sync,
82
130
  ...options
@@ -85,17 +133,52 @@ export const makeAdapter = ({
85
133
  }): Adapter => makeAdapterImpl({ ...options, leaderThread: { _tag: 'single-threaded', sync } })
86
134
 
87
135
  /**
88
- * Runs persistence and syncing in a worker thread.
136
+ * Creates a multi-threaded LiveStore adapter for Node.js applications.
137
+ *
138
+ * This adapter runs the leader thread (persistence, sync, and heavy SQLite operations)
139
+ * in a separate worker thread, keeping your main thread responsive. Recommended for
140
+ * production servers and performance-critical applications.
141
+ *
142
+ * You must create a worker file that calls `makeLeaderWorker()` and pass its URL
143
+ * to this function.
144
+ *
145
+ * @example
146
+ * ```ts
147
+ * // In your main file:
148
+ * import { makeWorkerAdapter } from '@livestore/adapter-node'
149
+ *
150
+ * const adapter = makeWorkerAdapter({
151
+ * storage: { type: 'fs', baseDirectory: './data' },
152
+ * workerUrl: new URL('./livestore.worker.ts', import.meta.url),
153
+ * })
154
+ * ```
155
+ *
156
+ * @example
157
+ * ```ts
158
+ * // In livestore.worker.ts:
159
+ * import { makeLeaderWorker } from '@livestore/adapter-node/worker'
160
+ * import { schema } from './schema'
161
+ *
162
+ * makeLeaderWorker({ schema })
163
+ * ```
164
+ *
165
+ * @see https://livestore.dev/docs/reference/adapters/node for setup guide
89
166
  */
90
167
  export const makeWorkerAdapter = ({
91
168
  workerUrl,
169
+ workerExtraArgs,
92
170
  ...options
93
171
  }: NodeAdapterOptions & {
94
172
  /**
95
173
  * Example: `new URL('./livestore.worker.ts', import.meta.url)`
96
174
  */
97
175
  workerUrl: URL
98
- }): Adapter => makeAdapterImpl({ ...options, leaderThread: { _tag: 'multi-threaded', workerUrl } })
176
+ /**
177
+ * Extra arguments to pass to the worker which can be accessed in the worker
178
+ * via `getWorkerArgs()`
179
+ */
180
+ workerExtraArgs?: Schema.JsonValue
181
+ }): Adapter => makeAdapterImpl({ ...options, leaderThread: { _tag: 'multi-threaded', workerUrl, workerExtraArgs } })
99
182
 
100
183
  const makeAdapterImpl = ({
101
184
  storage,
@@ -104,6 +187,7 @@ const makeAdapterImpl = ({
104
187
  // TODO make this dynamic and actually support multiple sessions
105
188
  sessionId = 'static',
106
189
  testing,
190
+ resetPersistence = false,
107
191
  leaderThread: leaderThreadInput,
108
192
  }: NodeAdapterOptions & {
109
193
  leaderThread:
@@ -114,11 +198,13 @@ const makeAdapterImpl = ({
114
198
  | {
115
199
  _tag: 'multi-threaded'
116
200
  workerUrl: URL
201
+ workerExtraArgs: Schema.JsonValue | undefined
117
202
  }
118
203
  }): Adapter =>
119
204
  ((adapterArgs) =>
120
205
  Effect.gen(function* () {
121
- const { storeId, devtoolsEnabled, shutdown, bootStatusQueue, syncPayload, schema } = adapterArgs
206
+ const { storeId, devtoolsEnabled, shutdown, bootStatusQueue, syncPayloadEncoded, syncPayloadSchema, schema } =
207
+ adapterArgs
122
208
 
123
209
  yield* Queue.offer(bootStatusQueue, { stage: 'loading' })
124
210
 
@@ -135,6 +221,14 @@ const makeAdapterImpl = ({
135
221
 
136
222
  const shutdownChannel = yield* makeShutdownChannel(storeId)
137
223
 
224
+ if (resetPersistence === true) {
225
+ yield* shutdownChannel
226
+ .send(IntentionalShutdownCause.make({ reason: 'adapter-reset' }))
227
+ .pipe(UnknownError.mapToUnknownError)
228
+
229
+ yield* resetNodePersistence({ storage, storeId })
230
+ }
231
+
138
232
  yield* shutdownChannel.listen.pipe(
139
233
  Stream.flatten(),
140
234
  Stream.tap((cause) =>
@@ -173,22 +267,26 @@ const makeAdapterImpl = ({
173
267
  clientId,
174
268
  schema,
175
269
  makeSqliteDb,
176
- syncOptions: leaderThreadInput.sync,
177
- syncPayload,
178
270
  devtools: devtoolsOptions,
179
271
  storage,
180
- testing,
181
- }).pipe(UnexpectedError.mapToUnexpectedError)
272
+ ...omitUndefineds({
273
+ syncOptions: leaderThreadInput.sync,
274
+ syncPayloadEncoded,
275
+ syncPayloadSchema,
276
+ testing,
277
+ }),
278
+ }).pipe(UnknownError.mapToUnknownError)
182
279
  : yield* makeWorkerLeaderThread({
183
280
  shutdown,
184
281
  storeId,
185
282
  clientId,
186
283
  sessionId,
187
284
  workerUrl: leaderThreadInput.workerUrl,
285
+ workerExtraArgs: leaderThreadInput.workerExtraArgs,
188
286
  storage,
189
287
  devtools: devtoolsOptions,
190
288
  bootStatusQueue,
191
- syncPayload,
289
+ syncPayloadEncoded,
192
290
  })
193
291
 
194
292
  syncInMemoryDb.import(initialSnapshot)
@@ -214,22 +312,52 @@ const makeAdapterImpl = ({
214
312
  isLeader: true,
215
313
  // Not really applicable for node as there is no "reload the app" concept
216
314
  registerBeforeUnload: (_onBeforeUnload) => () => {},
315
+ origin: undefined,
217
316
  })
218
317
 
219
318
  return clientSession
220
319
  }).pipe(
221
320
  Effect.withSpan('@livestore/adapter-node:adapter'),
222
- Effect.provide(PlatformNode.NodeFileSystem.layer),
223
- Effect.provide(FetchHttpClient.layer),
321
+ Effect.provide(Layer.mergeAll(PlatformNode.NodeFileSystem.layer, FetchHttpClient.layer)),
224
322
  )) satisfies Adapter
225
323
 
324
+ const resetNodePersistence = ({
325
+ storage,
326
+ storeId,
327
+ }: {
328
+ storage: WorkerSchema.StorageType
329
+ storeId: string
330
+ }): Effect.Effect<void, UnknownError, FileSystem.FileSystem> => {
331
+ if (storage.type !== 'fs') {
332
+ return Effect.void
333
+ }
334
+
335
+ const directory = path.join(storage.baseDirectory ?? '', storeId)
336
+
337
+ return Effect.gen(function* () {
338
+ const fs = yield* FileSystem.FileSystem
339
+
340
+ const directoryExists = yield* fs.exists(directory).pipe(UnknownError.mapToUnknownError)
341
+
342
+ if (directoryExists === false) {
343
+ return
344
+ }
345
+
346
+ yield* fs.remove(directory, { recursive: true }).pipe(UnknownError.mapToUnknownError)
347
+ }).pipe(
348
+ Effect.retry({ schedule: Schedule.exponentialBackoff10Sec }),
349
+ Effect.withSpan('@livestore/adapter-node:resetPersistence', { attributes: { directory } }),
350
+ )
351
+ }
352
+
226
353
  const makeLocalLeaderThread = ({
227
354
  storeId,
228
355
  clientId,
229
356
  schema,
230
357
  makeSqliteDb,
231
358
  syncOptions,
232
- syncPayload,
359
+ syncPayloadEncoded,
360
+ syncPayloadSchema,
233
361
  storage,
234
362
  devtools,
235
363
  testing,
@@ -240,7 +368,8 @@ const makeLocalLeaderThread = ({
240
368
  makeSqliteDb: MakeSqliteDb
241
369
  syncOptions: SyncOptions | undefined
242
370
  storage: WorkerSchema.StorageType
243
- syncPayload: Schema.JsonValue | undefined
371
+ syncPayloadEncoded: Schema.JsonValue | undefined
372
+ syncPayloadSchema: Schema.Schema<any>
244
373
  devtools: WorkerSchema.LeaderWorkerInnerInitialMessage['devtools']
245
374
  testing?: {
246
375
  overrides?: TestingOverrides
@@ -254,15 +383,17 @@ const makeLocalLeaderThread = ({
254
383
  schema,
255
384
  syncOptions,
256
385
  storage,
257
- syncPayload,
386
+ syncPayloadEncoded,
387
+ syncPayloadSchema,
258
388
  devtools,
259
389
  makeSqliteDb,
260
- testing: testing?.overrides,
390
+ ...omitUndefineds({ testing: testing?.overrides }),
261
391
  }).pipe(Layer.unwrapScoped),
262
392
  )
263
393
 
264
394
  return yield* Effect.gen(function* () {
265
- const { dbState, dbEventlog, syncProcessor, extraIncomingMessagesQueue, initialState } = yield* LeaderThreadCtx
395
+ const { dbState, dbEventlog, syncProcessor, extraIncomingMessagesQueue, initialState, networkStatus } =
396
+ yield* LeaderThreadCtx
266
397
 
267
398
  const initialLeaderHead = Eventlog.getClientHeadFromDb(dbEventlog)
268
399
 
@@ -272,17 +403,24 @@ const makeLocalLeaderThread = ({
272
403
  pull: ({ cursor }) => syncProcessor.pull({ cursor }),
273
404
  push: (batch) =>
274
405
  syncProcessor.push(
275
- batch.map((item) => new LiveStoreEvent.EncodedWithMeta(item)),
406
+ batch.map((item) => new LiveStoreEvent.Client.EncodedWithMeta(item)),
276
407
  { waitForProcessing: true },
277
408
  ),
409
+ stream: (options) =>
410
+ streamEventsWithSyncState({
411
+ dbEventlog,
412
+ syncState: syncProcessor.syncState,
413
+ options,
414
+ }),
278
415
  },
279
416
  initialState: { leaderHead: initialLeaderHead, migrationsReport: initialState.migrationsReport },
280
417
  export: Effect.sync(() => dbState.export()),
281
418
  getEventlogData: Effect.sync(() => dbEventlog.export()),
282
- getSyncState: syncProcessor.syncState,
419
+ syncState: syncProcessor.syncState,
283
420
  sendDevtoolsMessage: (message) => extraIncomingMessagesQueue.offer(message),
421
+ networkStatus,
284
422
  },
285
- { overrides: testing?.overrides?.clientSession?.leaderThreadProxy },
423
+ { ...omitUndefineds({ overrides: testing?.overrides?.clientSession?.leaderThreadProxy }) },
286
424
  )
287
425
 
288
426
  const initialSnapshot = dbState.export()
@@ -297,21 +435,23 @@ const makeWorkerLeaderThread = ({
297
435
  clientId,
298
436
  sessionId,
299
437
  workerUrl,
438
+ workerExtraArgs,
300
439
  storage,
301
440
  devtools,
302
441
  bootStatusQueue,
303
- syncPayload,
442
+ syncPayloadEncoded,
304
443
  testing,
305
444
  }: {
306
- shutdown: (cause: Exit.Exit<IntentionalShutdownCause, UnexpectedError | SyncError>) => Effect.Effect<void>
445
+ shutdown: (cause: Exit.Exit<IntentionalShutdownCause, UnknownError | SyncError>) => Effect.Effect<void>
307
446
  storeId: string
308
447
  clientId: string
309
448
  sessionId: string
310
449
  workerUrl: URL
450
+ workerExtraArgs: Schema.JsonValue | undefined
311
451
  storage: WorkerSchema.StorageType
312
452
  devtools: WorkerSchema.LeaderWorkerInnerInitialMessage['devtools']
313
453
  bootStatusQueue: Queue.Queue<BootStatus>
314
- syncPayload: Schema.JsonValue | undefined
454
+ syncPayloadEncoded: Schema.JsonValue | undefined
315
455
  testing?: {
316
456
  overrides?: TestingOverrides
317
457
  }
@@ -319,7 +459,7 @@ const makeWorkerLeaderThread = ({
319
459
  Effect.gen(function* () {
320
460
  const nodeWorker = new WT.Worker(workerUrl, {
321
461
  execArgv: process.env.DEBUG_WORKER ? ['--inspect --enable-source-maps'] : ['--enable-source-maps'],
322
- argv: [Schema.encodeSync(WorkerSchema.WorkerArgv)({ storeId, clientId, sessionId })],
462
+ argv: [Schema.encodeSync(WorkerSchema.WorkerArgv)({ storeId, clientId, sessionId, extraArgs: workerExtraArgs })],
323
463
  })
324
464
  const nodeWorkerLayer = yield* Layer.build(PlatformNode.NodeWorker.layer(() => nodeWorker))
325
465
 
@@ -332,11 +472,11 @@ const makeWorkerLeaderThread = ({
332
472
  clientId,
333
473
  storage,
334
474
  devtools,
335
- syncPayload,
475
+ syncPayloadEncoded,
336
476
  }),
337
477
  }).pipe(
338
478
  Effect.provide(nodeWorkerLayer),
339
- UnexpectedError.mapToUnexpectedError,
479
+ UnknownError.mapToUnknownError,
340
480
  Effect.tapErrorCause((cause) => shutdown(Exit.failCause(cause))),
341
481
  Effect.withSpan('@livestore/adapter-node:adapter:setupLeaderThread'),
342
482
  )
@@ -344,7 +484,7 @@ const makeWorkerLeaderThread = ({
344
484
  const runInWorker = <TReq extends typeof WorkerSchema.LeaderWorkerInnerRequest.Type>(
345
485
  req: TReq,
346
486
  ): TReq extends Schema.WithResult<infer A, infer _I, infer _E, infer _EI, infer R>
347
- ? Effect.Effect<A, UnexpectedError, R>
487
+ ? Effect.Effect<A, UnknownError, R>
348
488
  : never =>
349
489
  (worker.executeEffect(req) as any).pipe(
350
490
  Effect.logWarnIfTakesLongerThan({
@@ -353,26 +493,26 @@ const makeWorkerLeaderThread = ({
353
493
  }),
354
494
  Effect.withSpan(`@livestore/adapter-node:client-session:runInWorker:${req._tag}`),
355
495
  Effect.mapError((cause) =>
356
- Schema.is(UnexpectedError)(cause)
496
+ Schema.is(UnknownError)(cause)
357
497
  ? cause
358
498
  : ParseResult.isParseError(cause) || Schema.is(WorkerError.WorkerError)(cause)
359
- ? new UnexpectedError({ cause })
499
+ ? new UnknownError({ cause })
360
500
  : cause,
361
501
  ),
362
- Effect.catchAllDefect((cause) => new UnexpectedError({ cause })),
502
+ Effect.catchAllDefect((cause) => new UnknownError({ cause })),
363
503
  ) as any
364
504
 
365
505
  const runInWorkerStream = <TReq extends typeof WorkerSchema.LeaderWorkerInnerRequest.Type>(
366
506
  req: TReq,
367
507
  ): TReq extends Schema.WithResult<infer A, infer _I, infer _E, infer _EI, infer R>
368
- ? Stream.Stream<A, UnexpectedError, R>
508
+ ? Stream.Stream<A, UnknownError, R>
369
509
  : never =>
370
510
  worker.execute(req as any).pipe(
371
511
  Stream.mapError((cause) =>
372
- Schema.is(UnexpectedError)(cause)
512
+ Schema.is(UnknownError)(cause)
373
513
  ? cause
374
514
  : ParseResult.isParseError(cause) || Schema.is(WorkerError.WorkerError)(cause)
375
- ? new UnexpectedError({ cause })
515
+ ? new UnknownError({ cause })
376
516
  : cause,
377
517
  ),
378
518
  Stream.withSpan(`@livestore/adapter-node:client-session:runInWorkerStream:${req._tag}`),
@@ -397,7 +537,7 @@ const makeWorkerLeaderThread = ({
397
537
 
398
538
  const bootResult = yield* runInWorker(new WorkerSchema.LeaderWorkerInnerGetRecreateSnapshot()).pipe(
399
539
  Effect.timeout(10_000),
400
- UnexpectedError.mapToUnexpectedError,
540
+ UnknownError.mapToUnknownError,
401
541
  Effect.withSpan('@livestore/adapter-node:client-session:export'),
402
542
  )
403
543
 
@@ -412,6 +552,11 @@ const makeWorkerLeaderThread = ({
412
552
  attributes: { batchSize: batch.length },
413
553
  }),
414
554
  ),
555
+ stream: (options) =>
556
+ runInWorkerStream(new WorkerSchema.LeaderWorkerInnerStreamEvents(options)).pipe(
557
+ Stream.withSpan('@livestore/adapter-node:client-session:streamEvents'),
558
+ Stream.orDie,
559
+ ),
415
560
  },
416
561
  initialState: {
417
562
  leaderHead: initialLeaderHead,
@@ -419,22 +564,29 @@ const makeWorkerLeaderThread = ({
419
564
  },
420
565
  export: runInWorker(new WorkerSchema.LeaderWorkerInnerExport()).pipe(
421
566
  Effect.timeout(10_000),
422
- UnexpectedError.mapToUnexpectedError,
567
+ UnknownError.mapToUnknownError,
423
568
  Effect.withSpan('@livestore/adapter-node:client-session:export'),
424
569
  ),
425
570
  getEventlogData: Effect.dieMessage('Not implemented'),
426
- getSyncState: runInWorker(new WorkerSchema.LeaderWorkerInnerGetLeaderSyncState()).pipe(
427
- UnexpectedError.mapToUnexpectedError,
428
- Effect.withSpan('@livestore/adapter-node:client-session:getLeaderSyncState'),
429
- ),
571
+ syncState: Subscribable.make({
572
+ get: runInWorker(new WorkerSchema.LeaderWorkerInnerGetLeaderSyncState()).pipe(
573
+ UnknownError.mapToUnknownError,
574
+ Effect.withSpan('@livestore/adapter-node:client-session:getLeaderSyncState'),
575
+ ),
576
+ changes: runInWorkerStream(new WorkerSchema.LeaderWorkerInnerSyncStateStream()).pipe(Stream.orDie),
577
+ }),
430
578
  sendDevtoolsMessage: (message) =>
431
579
  runInWorker(new WorkerSchema.LeaderWorkerInnerExtraDevtoolsMessage({ message })).pipe(
432
- UnexpectedError.mapToUnexpectedError,
580
+ UnknownError.mapToUnknownError,
433
581
  Effect.withSpan('@livestore/adapter-node:client-session:devtoolsMessageForLeader'),
434
582
  ),
583
+ networkStatus: Subscribable.make({
584
+ get: runInWorker(new WorkerSchema.LeaderWorkerInnerGetNetworkStatus()).pipe(Effect.orDie),
585
+ changes: runInWorkerStream(new WorkerSchema.LeaderWorkerInnerNetworkStatusStream()).pipe(Stream.orDie),
586
+ }),
435
587
  },
436
588
  {
437
- overrides: testing?.overrides?.clientSession?.leaderThreadProxy,
589
+ ...omitUndefineds({ overrides: testing?.overrides?.clientSession?.leaderThreadProxy }),
438
590
  },
439
591
  )
440
592
 
@@ -1,7 +1,7 @@
1
1
  import path from 'node:path'
2
2
 
3
3
  import type { Devtools } from '@livestore/common'
4
- import { UnexpectedError } from '@livestore/common'
4
+ import { UnknownError } from '@livestore/common'
5
5
  import { livestoreDevtoolsPlugin } from '@livestore/devtools-vite'
6
6
  import { isReadonlyArray } from '@livestore/utils'
7
7
  import { Effect } from '@livestore/utils/effect'
@@ -26,11 +26,11 @@ export type ViteDevtoolsOptions = {
26
26
  }
27
27
 
28
28
  // NOTE this is currently also used in @livestore/devtools-expo
29
- export const makeViteMiddleware = (options: ViteDevtoolsOptions): Effect.Effect<Vite.ViteDevServer, UnexpectedError> =>
29
+ export const makeViteMiddleware = (options: ViteDevtoolsOptions): Effect.Effect<Vite.ViteDevServer, UnknownError> =>
30
30
  Effect.gen(function* () {
31
31
  const cwd = process.cwd()
32
32
 
33
- const hmrPort = yield* getFreePort.pipe(UnexpectedError.mapToUnexpectedError)
33
+ const hmrPort = yield* getFreePort.pipe(UnknownError.mapToUnknownError)
34
34
 
35
35
  const defaultViteConfig = Vite.defineConfig({
36
36
  server: {
@@ -58,9 +58,7 @@ export const makeViteMiddleware = (options: ViteDevtoolsOptions): Effect.Effect<
58
58
 
59
59
  const viteConfig = options.viteConfig?.(defaultViteConfig) ?? defaultViteConfig
60
60
 
61
- const viteServer = yield* Effect.promise(() => Vite.createServer(viteConfig)).pipe(
62
- UnexpectedError.mapToUnexpectedError,
63
- )
61
+ const viteServer = yield* Effect.promise(() => Vite.createServer(viteConfig)).pipe(UnknownError.mapToUnknownError)
64
62
 
65
63
  return viteServer
66
64
  }).pipe(Effect.withSpan('@livestore/adapter-node:devtools:makeViteServer'))
@@ -7,7 +7,7 @@ if (process.execArgv.includes('--inspect')) {
7
7
  }
8
8
 
9
9
  import type { ClientSessionLeaderThreadProxy, MakeSqliteDb, SqliteDb, SyncOptions } from '@livestore/common'
10
- import { Devtools, liveStoreStorageFormatVersion, migrateDb, UnexpectedError } from '@livestore/common'
10
+ import { Devtools, liveStoreStorageFormatVersion, migrateDb, UnknownError } from '@livestore/common'
11
11
  import type { DevtoolsOptions, LeaderSqliteDb, LeaderThreadCtx } from '@livestore/common/leader-thread'
12
12
  import { configureConnection, makeLeaderThreadLayer } from '@livestore/common/leader-thread'
13
13
  import type { LiveStoreSchema } from '@livestore/common/schema'
@@ -30,7 +30,7 @@ export type TestingOverrides = {
30
30
  dbEventlog: SqliteDb
31
31
  dbState: SqliteDb
32
32
  },
33
- UnexpectedError
33
+ UnknownError
34
34
  >
35
35
  }
36
36
 
@@ -42,7 +42,8 @@ export interface MakeLeaderThreadArgs {
42
42
  makeSqliteDb: MakeNodeSqliteDb
43
43
  devtools: WorkerSchema.LeaderWorkerInnerInitialMessage['devtools']
44
44
  schema: LiveStoreSchema
45
- syncPayload: Schema.JsonValue | undefined
45
+ syncPayloadEncoded: Schema.JsonValue | undefined
46
+ syncPayloadSchema: Schema.Schema<any> | undefined
46
47
  testing: TestingOverrides | undefined
47
48
  }
48
49
 
@@ -54,11 +55,12 @@ export const makeLeaderThread = ({
54
55
  storage,
55
56
  devtools,
56
57
  schema,
57
- syncPayload,
58
+ syncPayloadEncoded,
59
+ syncPayloadSchema,
58
60
  testing,
59
61
  }: MakeLeaderThreadArgs): Effect.Effect<
60
- Layer.Layer<LeaderThreadCtx, UnexpectedError, Scope.Scope | HttpClient.HttpClient | FileSystem.FileSystem>,
61
- UnexpectedError,
62
+ Layer.Layer<LeaderThreadCtx, UnknownError, Scope.Scope | HttpClient.HttpClient | FileSystem.FileSystem>,
63
+ UnknownError,
62
64
  Scope.Scope
63
65
  > =>
64
66
  Effect.gen(function* () {
@@ -113,11 +115,12 @@ export const makeLeaderThread = ({
113
115
  dbEventlog,
114
116
  devtoolsOptions,
115
117
  shutdownChannel,
116
- syncPayload,
118
+ syncPayloadEncoded,
119
+ syncPayloadSchema,
117
120
  })
118
121
  }).pipe(
119
122
  Effect.tapCauseLogPretty,
120
- UnexpectedError.mapToUnexpectedError,
123
+ UnknownError.mapToUnknownError,
121
124
  Effect.withSpan('@livestore/adapter-node:makeLeaderThread', {
122
125
  attributes: { storeId, clientId, storage, devtools, syncOptions },
123
126
  }),
@@ -137,7 +140,7 @@ const makeDevtoolsOptions = ({
137
140
  storeId: string
138
141
  clientId: string
139
142
  devtools: WorkerSchema.LeaderWorkerInnerInitialMessage['devtools']
140
- }): Effect.Effect<DevtoolsOptions, UnexpectedError, Scope.Scope> =>
143
+ }): Effect.Effect<DevtoolsOptions, UnknownError, Scope.Scope> =>
141
144
  Effect.gen(function* () {
142
145
  if (devtools.enabled === false) {
143
146
  return {
@@ -161,6 +164,7 @@ const makeDevtoolsOptions = ({
161
164
  sessionId: 'static', // TODO make this dynamic
162
165
  schemaAlias: devtools.schemaAlias,
163
166
  isLeader: true,
167
+ origin: undefined,
164
168
  }),
165
169
  port: devtools.port,
166
170
  host: devtools.host,