@livestore/adapter-web 0.0.0-snapshot-f5ece014485b5ab43795c218f7ba7cfa32c81707 → 0.0.0-snapshot-057a9e3a18ca69a310d4eb8cf35a34e94fa1841e

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.d.ts +1 -2
  3. package/dist/in-memory/in-memory-adapter.d.ts.map +1 -1
  4. package/dist/in-memory/in-memory-adapter.js +4 -3
  5. package/dist/in-memory/in-memory-adapter.js.map +1 -1
  6. package/dist/index.d.ts +1 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +1 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/opfs-utils.d.ts.map +1 -1
  11. package/dist/opfs-utils.js.map +1 -1
  12. package/dist/web-worker/client-session/client-session-devtools.d.ts +1 -1
  13. package/dist/web-worker/client-session/persisted-adapter.d.ts.map +1 -1
  14. package/dist/web-worker/client-session/persisted-adapter.js +7 -6
  15. package/dist/web-worker/client-session/persisted-adapter.js.map +1 -1
  16. package/dist/web-worker/common/persisted-sqlite.js +1 -1
  17. package/dist/web-worker/common/persisted-sqlite.js.map +1 -1
  18. package/dist/web-worker/common/shutdown-channel.d.ts +1 -1
  19. package/dist/web-worker/common/shutdown-channel.d.ts.map +1 -1
  20. package/dist/web-worker/common/worker-schema.d.ts +7 -7
  21. package/dist/web-worker/common/worker-schema.d.ts.map +1 -1
  22. package/dist/web-worker/common/worker-schema.js +2 -3
  23. package/dist/web-worker/common/worker-schema.js.map +1 -1
  24. package/dist/web-worker/vite-dev-polyfill.js +2 -1
  25. package/dist/web-worker/vite-dev-polyfill.js.map +1 -1
  26. package/package.json +7 -7
  27. package/src/in-memory/in-memory-adapter.ts +17 -5
  28. package/src/index.ts +1 -1
  29. package/src/opfs-utils.ts +1 -1
  30. package/src/web-worker/ambient.d.ts +0 -2
  31. package/src/web-worker/client-session/persisted-adapter.ts +12 -11
  32. package/src/web-worker/common/persisted-sqlite.ts +1 -1
  33. package/src/web-worker/common/worker-schema.ts +1 -3
  34. package/src/web-worker/vite-dev-polyfill.ts +3 -1
@@ -4,12 +4,13 @@ import {
4
4
  liveStoreVersion,
5
5
  makeClientSession,
6
6
  StoreInterrupted,
7
+ sessionChangesetMetaTable,
7
8
  UnexpectedError,
8
9
  } from '@livestore/common'
9
10
  // TODO bring back - this currently doesn't work due to https://github.com/vitejs/vite/issues/8427
10
11
  // NOTE We're using a non-relative import here for Vite to properly resolve the import during app builds
11
12
  // import LiveStoreSharedWorker from '@livestore/adapter-web/internal-shared-worker?sharedworker'
12
- import { EventSequenceNumber, SystemTables } from '@livestore/common/schema'
13
+ import { EventSequenceNumber } from '@livestore/common/schema'
13
14
  import { sqliteDbFactory } from '@livestore/sqlite-wasm/browser'
14
15
  import { loadSqlite3Wasm } from '@livestore/sqlite-wasm/load-wasm'
15
16
  import { isDevEnv, shouldNeverHappen, tryAsFunctionAndNew } from '@livestore/utils'
@@ -67,7 +68,9 @@ export type WebAdapterOptions = {
67
68
  */
68
69
  sharedWorker:
69
70
  | ((options: { name: string }) => globalThis.SharedWorker)
70
- | (new (options: { name: string }) => globalThis.SharedWorker)
71
+ | (new (options: {
72
+ name: string
73
+ }) => globalThis.SharedWorker)
71
74
  /**
72
75
  * Specifies where to persist data for this adapter
73
76
  */
@@ -250,7 +253,7 @@ export const makePersistedAdapter =
250
253
 
251
254
  yield* Deferred.succeed(waitForSharedWorkerInitialized, undefined)
252
255
 
253
- yield* Effect.never
256
+ return yield* Effect.never
254
257
  }).pipe(Effect.withSpan('@livestore/adapter-web:client-session:lock'))
255
258
 
256
259
  // TODO take/give up lock when tab becomes active/passive
@@ -358,7 +361,7 @@ export const makePersistedAdapter =
358
361
  const numberOfTables =
359
362
  sqliteDb.select<{ count: number }>(`select count(*) as count from sqlite_master`)[0]?.count ?? 0
360
363
  if (numberOfTables === 0) {
361
- yield* UnexpectedError.make({
364
+ return yield* UnexpectedError.make({
362
365
  cause: `Encountered empty or corrupted database`,
363
366
  payload: { snapshotByteLength: initialResult.snapshot.byteLength, storageOptions: options.storage },
364
367
  })
@@ -366,17 +369,15 @@ export const makePersistedAdapter =
366
369
 
367
370
  // We're restoring the leader head from the SESSION_CHANGESET_META_TABLE, not from the eventlog db/table
368
371
  // in order to avoid exporting/transferring the eventlog db/table, which is important to speed up the fast path.
369
- const initialLeaderHeadRes = sqliteDb.select<{
370
- seqNumGlobal: EventSequenceNumber.GlobalEventSequenceNumber
371
- seqNumClient: EventSequenceNumber.ClientEventSequenceNumber
372
- }>(
373
- `select seqNumGlobal, seqNumClient from ${SystemTables.SESSION_CHANGESET_META_TABLE} order by seqNumGlobal desc, seqNumClient desc limit 1`,
374
- )[0]
372
+ const initialLeaderHeadRes = sqliteDb.select(
373
+ sessionChangesetMetaTable.select('seqNumClient', 'seqNumGlobal', 'seqNumRebaseGeneration').first(),
374
+ )
375
375
 
376
376
  const initialLeaderHead = initialLeaderHeadRes
377
377
  ? EventSequenceNumber.make({
378
378
  global: initialLeaderHeadRes.seqNumGlobal,
379
379
  client: initialLeaderHeadRes.seqNumClient,
380
+ rebaseGeneration: initialLeaderHeadRes.seqNumRebaseGeneration,
380
381
  })
381
382
  : EventSequenceNumber.ROOT
382
383
 
@@ -500,7 +501,7 @@ const ensureBrowserRequirements = Effect.gen(function* () {
500
501
  const validate = (condition: boolean, label: string) =>
501
502
  Effect.gen(function* () {
502
503
  if (condition) {
503
- yield* UnexpectedError.make({
504
+ return yield* UnexpectedError.make({
504
505
  cause: `[@livestore/adapter-web] Browser not supported. The LiveStore web adapter needs '${label}' to work properly`,
505
506
  })
506
507
  }
@@ -47,7 +47,7 @@ export const readPersistedAppDbFromClientSession = ({
47
47
 
48
48
  const fileResults = await Promise.all(files.map(tryGetDbFile))
49
49
 
50
- const appDbFileName = '/' + getStateDbFileName(schema)
50
+ const appDbFileName = `/${getStateDbFileName(schema)}`
51
51
 
52
52
  const dbFileRes = fileResults.find((_) => _?.fileName === appDbFileName)
53
53
  // console.debug('fileResults', fileResults, 'dbFileRes', dbFileRes)
@@ -2,7 +2,6 @@ import {
2
2
  BootStatus,
3
3
  Devtools,
4
4
  LeaderAheadError,
5
- LeaderPullCursor,
6
5
  liveStoreVersion,
7
6
  MigrationsReport,
8
7
  SyncState,
@@ -85,11 +84,10 @@ export namespace LeaderWorkerInner {
85
84
 
86
85
  export class PullStream extends Schema.TaggedRequest<PullStream>()('PullStream', {
87
86
  payload: {
88
- cursor: LeaderPullCursor,
87
+ cursor: EventSequenceNumber.EventSequenceNumber,
89
88
  },
90
89
  success: Schema.Struct({
91
90
  payload: SyncState.PayloadUpstream,
92
- mergeCounter: Schema.Number,
93
91
  }),
94
92
  failure: UnexpectedError,
95
93
  }) {}
@@ -1,9 +1,11 @@
1
+ /// <reference lib="dom" />
2
+
1
3
  // @ts-expect-error TODO remove when Vite does proper treeshaking during dev
2
4
  globalThis.$RefreshReg$ = () => {}
3
5
  // @ts-expect-error TODO remove when Vite does proper treeshaking during dev
4
6
  globalThis.$RefreshSig$ = () => (type: any) => type
5
7
 
6
- // @ts-expect-error Needed for React
8
+ // @ts-ignore
7
9
  globalThis.process = globalThis.process ?? { env: {} }
8
10
 
9
11
  globalThis.document = (globalThis as any)?.document ?? {