@livestore/adapter-web 0.0.0-snapshot-c70175cc471a448781cfe8f01001b0034e29a384 → 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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/in-memory/in-memory-adapter.d.ts +1 -2
- package/dist/in-memory/in-memory-adapter.d.ts.map +1 -1
- package/dist/in-memory/in-memory-adapter.js +4 -3
- 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 +7 -6
- 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 +2 -3
- package/dist/web-worker/common/worker-schema.js.map +1 -1
- package/dist/web-worker/vite-dev-polyfill.js +2 -1
- package/dist/web-worker/vite-dev-polyfill.js.map +1 -1
- package/package.json +7 -7
- package/src/in-memory/in-memory-adapter.ts +17 -5
- package/src/index.ts +1 -1
- package/src/opfs-utils.ts +1 -1
- package/src/web-worker/ambient.d.ts +0 -2
- package/src/web-worker/client-session/persisted-adapter.ts +12 -11
- package/src/web-worker/common/persisted-sqlite.ts +1 -1
- package/src/web-worker/common/worker-schema.ts +1 -3
- 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
|
|
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: {
|
|
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
|
|
371
|
-
|
|
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 =
|
|
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:
|
|
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-
|
|
8
|
+
// @ts-ignore
|
|
7
9
|
globalThis.process = globalThis.process ?? { env: {} }
|
|
8
10
|
|
|
9
11
|
globalThis.document = (globalThis as any)?.document ?? {
|