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