@livestore/adapter-web 0.0.0-snapshot-2ef046b02334f52613d31dbe06af53487685edc0 → 0.0.0-snapshot-8115ad48d5a57244358c943ecc92bb0a30274b87

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.
@@ -75,7 +75,7 @@ export type WebAdapterOptions = {
75
75
  */
76
76
  storage: WorkerSchema.StorageTypeEncoded
77
77
  /**
78
- * Warning: This will reset both the app and mutationlog database.
78
+ * Warning: This will reset both the app and eventlog database.
79
79
  * This should only be used during development.
80
80
  *
81
81
  * @default false
@@ -190,7 +190,7 @@ export const makePersistedAdapter =
190
190
 
191
191
  const lockDeferred = yield* Deferred.make<void>()
192
192
  // It's important that we resolve the leader election in a blocking way, so there's always a leader.
193
- // Otherwise mutations could end up being dropped.
193
+ // Otherwise events could end up being dropped.
194
194
  //
195
195
  // Sorry for this pun ...
196
196
  let gotLocky = yield* WebLock.tryGetDeferredLock(lockDeferred, LIVESTORE_TAB_LOCK)
@@ -358,8 +358,8 @@ export const makePersistedAdapter =
358
358
  })
359
359
  }
360
360
 
361
- // We're restoring the leader head from the SESSION_CHANGESET_META_TABLE, not from the mutationlog db/table
362
- // in order to avoid exporting/transferring the mutationlog db/table, which is important to speed up the fast path.
361
+ // We're restoring the leader head from the SESSION_CHANGESET_META_TABLE, not from the eventlog db/table
362
+ // in order to avoid exporting/transferring the eventlog db/table, which is important to speed up the fast path.
363
363
  const initialLeaderHeadRes = sqliteDb.select<{
364
364
  idGlobal: EventId.GlobalEventId
365
365
  idClient: EventId.ClientEventId
@@ -410,7 +410,7 @@ export const makePersistedAdapter =
410
410
  Effect.withSpan('@livestore/adapter-web:client-session:export'),
411
411
  ),
412
412
 
413
- mutations: {
413
+ events: {
414
414
  pull: ({ cursor }) =>
415
415
  runInWorkerStream(new WorkerSchema.LeaderWorkerInner.PullStream({ cursor })).pipe(Stream.orDie),
416
416
  push: (batch) =>
@@ -423,10 +423,10 @@ export const makePersistedAdapter =
423
423
 
424
424
  initialState: { leaderHead: initialLeaderHead, migrationsReport },
425
425
 
426
- getMutationLogData: runInWorker(new WorkerSchema.LeaderWorkerInner.ExportMutationlog()).pipe(
426
+ getEventlogData: runInWorker(new WorkerSchema.LeaderWorkerInner.ExportEventlog()).pipe(
427
427
  Effect.timeout(10_000),
428
428
  UnexpectedError.mapToUnexpectedError,
429
- Effect.withSpan('@livestore/adapter-web:client-session:getMutationLogData'),
429
+ Effect.withSpan('@livestore/adapter-web:client-session:getEventlogData'),
430
430
  ),
431
431
 
432
432
  getSyncState: runInWorker(new WorkerSchema.LeaderWorkerInner.GetLeaderSyncState()).pipe(
@@ -520,7 +520,7 @@ export const makePersistedAdapter =
520
520
  return clientSession
521
521
  }).pipe(UnexpectedError.mapToUnexpectedError)
522
522
 
523
- // NOTE for `local` storage we could also use the mutationlog db to store the data
523
+ // NOTE for `local` storage we could also use the eventlog db to store the data
524
524
  const getPersistedId = (key: string, storageType: 'session' | 'local') => {
525
525
  const makeId = () => nanoid(5)
526
526
 
@@ -1,5 +1,13 @@
1
- import { BootStatus, Devtools, LeaderAheadError, MigrationsReport, SyncState, UnexpectedError } from '@livestore/common'
2
- import { EventId, MutationEvent } from '@livestore/common/schema'
1
+ import {
2
+ BootStatus,
3
+ Devtools,
4
+ LeaderAheadError,
5
+ LeaderPullCursor,
6
+ MigrationsReport,
7
+ SyncState,
8
+ UnexpectedError,
9
+ } from '@livestore/common'
10
+ import { EventId, LiveStoreEvent } from '@livestore/common/schema'
3
11
  import * as WebmeshWorker from '@livestore/devtools-web-common/worker'
4
12
  import { Schema, Transferable } from '@livestore/utils/effect'
5
13
 
@@ -68,7 +76,7 @@ export namespace LeaderWorkerInner {
68
76
 
69
77
  export class PushToLeader extends Schema.TaggedRequest<PushToLeader>()('PushToLeader', {
70
78
  payload: {
71
- batch: Schema.Array(MutationEvent.AnyEncoded),
79
+ batch: Schema.Array(LiveStoreEvent.AnyEncoded),
72
80
  },
73
81
  success: Schema.Void,
74
82
  failure: Schema.Union(UnexpectedError, LeaderAheadError),
@@ -76,7 +84,7 @@ export namespace LeaderWorkerInner {
76
84
 
77
85
  export class PullStream extends Schema.TaggedRequest<PullStream>()('PullStream', {
78
86
  payload: {
79
- cursor: Schema.Number,
87
+ cursor: LeaderPullCursor,
80
88
  },
81
89
  success: Schema.Struct({
82
90
  payload: SyncState.PayloadUpstream,
@@ -91,7 +99,7 @@ export namespace LeaderWorkerInner {
91
99
  failure: UnexpectedError,
92
100
  }) {}
93
101
 
94
- export class ExportMutationlog extends Schema.TaggedRequest<ExportMutationlog>()('ExportMutationlog', {
102
+ export class ExportEventlog extends Schema.TaggedRequest<ExportEventlog>()('ExportEventlog', {
95
103
  payload: {},
96
104
  success: Transferable.Uint8Array,
97
105
  failure: UnexpectedError,
@@ -138,7 +146,7 @@ export namespace LeaderWorkerInner {
138
146
  PushToLeader,
139
147
  PullStream,
140
148
  Export,
141
- ExportMutationlog,
149
+ ExportEventlog,
142
150
  GetRecreateSnapshot,
143
151
  GetLeaderHead,
144
152
  GetLeaderSyncState,
@@ -180,7 +188,7 @@ export namespace SharedWorker {
180
188
  LeaderWorkerInner.PullStream,
181
189
  LeaderWorkerInner.Export,
182
190
  LeaderWorkerInner.GetRecreateSnapshot,
183
- LeaderWorkerInner.ExportMutationlog,
191
+ LeaderWorkerInner.ExportEventlog,
184
192
  LeaderWorkerInner.GetLeaderHead,
185
193
  LeaderWorkerInner.GetLeaderSyncState,
186
194
  LeaderWorkerInner.Shutdown,
@@ -1,14 +1,9 @@
1
1
  import type { SqliteDb, SyncOptions } from '@livestore/common'
2
2
  import { Devtools, UnexpectedError } from '@livestore/common'
3
3
  import type { DevtoolsOptions } from '@livestore/common/leader-thread'
4
- import {
5
- configureConnection,
6
- LeaderThreadCtx,
7
- makeLeaderThreadLayer,
8
- Mutationlog,
9
- } from '@livestore/common/leader-thread'
4
+ import { configureConnection, Eventlog, LeaderThreadCtx, makeLeaderThreadLayer } from '@livestore/common/leader-thread'
10
5
  import type { LiveStoreSchema } from '@livestore/common/schema'
11
- import { MutationEvent } from '@livestore/common/schema'
6
+ import { LiveStoreEvent } from '@livestore/common/schema'
12
7
  import { makeChannelForConnectedMeshNode } from '@livestore/devtools-web-common/web-channel'
13
8
  import * as WebmeshWorker from '@livestore/devtools-web-common/worker'
14
9
  import { sqliteDbFactory } from '@livestore/sqlite-wasm/browser'
@@ -113,11 +108,11 @@ const makeWorkerRunnerInner = ({ schema, sync: syncOptions }: WorkerOptions) =>
113
108
  const makeSqliteDb = sqliteDbFactory({ sqlite3 })
114
109
  const runtime = yield* Effect.runtime<never>()
115
110
 
116
- const makeDb = (kind: 'app' | 'mutationlog') =>
111
+ const makeDb = (kind: 'app' | 'eventlog') =>
117
112
  makeSqliteDb({
118
113
  _tag: 'opfs',
119
114
  opfsDirectory: sanitizeOpfsDir(storageOptions.directory, storeId),
120
- fileName: kind === 'app' ? getAppDbFileName(schema) : 'mutationlog.db',
115
+ fileName: kind === 'app' ? getAppDbFileName(schema) : 'eventlog.db',
121
116
  configureDb: (db) =>
122
117
  configureConnection(db, {
123
118
  // The persisted databases use the AccessHandlePoolVFS which always uses a single database connection.
@@ -130,11 +125,11 @@ const makeWorkerRunnerInner = ({ schema, sync: syncOptions }: WorkerOptions) =>
130
125
  }).pipe(Effect.acquireRelease((db) => Effect.try(() => db.close()).pipe(Effect.ignoreLogged)))
131
126
 
132
127
  // Might involve some async work, so we're running them concurrently
133
- const [dbReadModel, dbMutationLog] = yield* Effect.all([makeDb('app'), makeDb('mutationlog')], {
128
+ const [dbReadModel, dbEventlog] = yield* Effect.all([makeDb('app'), makeDb('eventlog')], {
134
129
  concurrency: 2,
135
130
  })
136
131
 
137
- const devtoolsOptions = yield* makeDevtoolsOptions({ devtoolsEnabled, dbReadModel, dbMutationLog })
132
+ const devtoolsOptions = yield* makeDevtoolsOptions({ devtoolsEnabled, dbReadModel, dbEventlog })
138
133
  const shutdownChannel = yield* makeShutdownChannel(storeId)
139
134
 
140
135
  return makeLeaderThreadLayer({
@@ -144,7 +139,7 @@ const makeWorkerRunnerInner = ({ schema, sync: syncOptions }: WorkerOptions) =>
144
139
  makeSqliteDb,
145
140
  syncOptions,
146
141
  dbReadModel,
147
- dbMutationLog,
142
+ dbEventlog,
148
143
  devtoolsOptions,
149
144
  shutdownChannel,
150
145
  syncPayload,
@@ -185,7 +180,7 @@ const makeWorkerRunnerInner = ({ schema, sync: syncOptions }: WorkerOptions) =>
185
180
  PushToLeader: ({ batch }) =>
186
181
  Effect.andThen(LeaderThreadCtx, ({ syncProcessor }) =>
187
182
  syncProcessor.push(
188
- batch.map((mutationEvent) => new MutationEvent.EncodedWithMeta(mutationEvent)),
183
+ batch.map((event) => new LiveStoreEvent.EncodedWithMeta(event)),
189
184
  // We'll wait in order to keep back pressure on the client session
190
185
  { waitForProcessing: true },
191
186
  ),
@@ -195,17 +190,17 @@ const makeWorkerRunnerInner = ({ schema, sync: syncOptions }: WorkerOptions) =>
195
190
  UnexpectedError.mapToUnexpectedError,
196
191
  Effect.withSpan('@livestore/adapter-web:worker:Export'),
197
192
  ),
198
- ExportMutationlog: () =>
199
- Effect.andThen(LeaderThreadCtx, (_) => _.dbMutationLog.export()).pipe(
193
+ ExportEventlog: () =>
194
+ Effect.andThen(LeaderThreadCtx, (_) => _.dbEventlog.export()).pipe(
200
195
  UnexpectedError.mapToUnexpectedError,
201
- Effect.withSpan('@livestore/adapter-web:worker:ExportMutationlog'),
196
+ Effect.withSpan('@livestore/adapter-web:worker:ExportEventlog'),
202
197
  ),
203
198
  BootStatusStream: () =>
204
199
  Effect.andThen(LeaderThreadCtx, (_) => Stream.fromQueue(_.bootStatusQueue)).pipe(Stream.unwrap),
205
200
  GetLeaderHead: () =>
206
201
  Effect.gen(function* () {
207
202
  const workerCtx = yield* LeaderThreadCtx
208
- return Mutationlog.getClientHeadFromDb(workerCtx.dbMutationLog)
203
+ return Eventlog.getClientHeadFromDb(workerCtx.dbEventlog)
209
204
  }).pipe(UnexpectedError.mapToUnexpectedError, Effect.withSpan('@livestore/adapter-web:worker:GetLeaderHead')),
210
205
  GetLeaderSyncState: () =>
211
206
  Effect.gen(function* () {
@@ -234,11 +229,11 @@ const makeWorkerRunnerInner = ({ schema, sync: syncOptions }: WorkerOptions) =>
234
229
  const makeDevtoolsOptions = ({
235
230
  devtoolsEnabled,
236
231
  dbReadModel,
237
- dbMutationLog,
232
+ dbEventlog,
238
233
  }: {
239
234
  devtoolsEnabled: boolean
240
235
  dbReadModel: SqliteDb
241
- dbMutationLog: SqliteDb
236
+ dbEventlog: SqliteDb
242
237
  }): Effect.Effect<DevtoolsOptions, UnexpectedError, Scope.Scope | WebmeshWorker.CacheService> =>
243
238
  Effect.gen(function* () {
244
239
  if (devtoolsEnabled === false) {
@@ -257,7 +252,7 @@ const makeDevtoolsOptions = ({
257
252
  }),
258
253
  persistenceInfo: {
259
254
  readModel: dbReadModel.metadata.persistenceInfo,
260
- mutationLog: dbMutationLog.metadata.persistenceInfo,
255
+ eventlog: dbEventlog.metadata.persistenceInfo,
261
256
  },
262
257
  }
263
258
  }),
@@ -226,7 +226,7 @@ const makeWorkerRunner = Effect.gen(function* () {
226
226
  PullStream: forwardRequestStream,
227
227
  Export: forwardRequest,
228
228
  GetRecreateSnapshot: forwardRequest,
229
- ExportMutationlog: forwardRequest,
229
+ ExportEventlog: forwardRequest,
230
230
  Setup: forwardRequest,
231
231
  GetLeaderSyncState: forwardRequest,
232
232
  GetLeaderHead: forwardRequest,