@livestore/adapter-web 0.4.0-dev.20 → 0.4.0-dev.22

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 (46) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/in-memory/in-memory-adapter.d.ts +42 -8
  3. package/dist/in-memory/in-memory-adapter.d.ts.map +1 -1
  4. package/dist/in-memory/in-memory-adapter.js +52 -9
  5. package/dist/in-memory/in-memory-adapter.js.map +1 -1
  6. package/dist/index.d.ts +11 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +11 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/single-tab/mod.d.ts +15 -0
  11. package/dist/single-tab/mod.d.ts.map +1 -0
  12. package/dist/single-tab/mod.js +15 -0
  13. package/dist/single-tab/mod.js.map +1 -0
  14. package/dist/single-tab/single-tab-adapter.d.ts +108 -0
  15. package/dist/single-tab/single-tab-adapter.d.ts.map +1 -0
  16. package/dist/single-tab/single-tab-adapter.js +279 -0
  17. package/dist/single-tab/single-tab-adapter.js.map +1 -0
  18. package/dist/web-worker/client-session/persisted-adapter.d.ts +18 -0
  19. package/dist/web-worker/client-session/persisted-adapter.d.ts.map +1 -1
  20. package/dist/web-worker/client-session/persisted-adapter.js +73 -5
  21. package/dist/web-worker/client-session/persisted-adapter.js.map +1 -1
  22. package/dist/web-worker/common/persisted-sqlite.d.ts +1 -1
  23. package/dist/web-worker/common/persisted-sqlite.d.ts.map +1 -1
  24. package/dist/web-worker/common/persisted-sqlite.js +13 -2
  25. package/dist/web-worker/common/persisted-sqlite.js.map +1 -1
  26. package/dist/web-worker/common/worker-schema.d.ts +56 -6
  27. package/dist/web-worker/common/worker-schema.d.ts.map +1 -1
  28. package/dist/web-worker/common/worker-schema.js +9 -2
  29. package/dist/web-worker/common/worker-schema.js.map +1 -1
  30. package/dist/web-worker/leader-worker/make-leader-worker.d.ts +1 -1
  31. package/dist/web-worker/leader-worker/make-leader-worker.d.ts.map +1 -1
  32. package/dist/web-worker/leader-worker/make-leader-worker.js +59 -15
  33. package/dist/web-worker/leader-worker/make-leader-worker.js.map +1 -1
  34. package/dist/web-worker/shared-worker/make-shared-worker.d.ts.map +1 -1
  35. package/dist/web-worker/shared-worker/make-shared-worker.js +1 -0
  36. package/dist/web-worker/shared-worker/make-shared-worker.js.map +1 -1
  37. package/package.json +6 -6
  38. package/src/in-memory/in-memory-adapter.ts +59 -9
  39. package/src/index.ts +15 -1
  40. package/src/single-tab/mod.ts +15 -0
  41. package/src/single-tab/single-tab-adapter.ts +517 -0
  42. package/src/web-worker/client-session/persisted-adapter.ts +92 -6
  43. package/src/web-worker/common/persisted-sqlite.ts +15 -3
  44. package/src/web-worker/common/worker-schema.ts +12 -0
  45. package/src/web-worker/leader-worker/make-leader-worker.ts +87 -18
  46. package/src/web-worker/shared-worker/make-shared-worker.ts +1 -0
@@ -0,0 +1,279 @@
1
+ /**
2
+ * Single-tab adapter for browsers without SharedWorker support (e.g. Android Chrome).
3
+ *
4
+ * This adapter is a fallback for browsers that don't support the SharedWorker API.
5
+ * It provides the same OPFS persistence as the regular persisted adapter, but without
6
+ * multi-tab synchronization capabilities.
7
+ *
8
+ * **IMPORTANT**: This code is intended to be removed once SharedWorker support is
9
+ * available in Android Chrome. Track progress at:
10
+ * - LiveStore issue: https://github.com/livestorejs/livestore/issues/321
11
+ * - Chromium bug: https://issues.chromium.org/issues/40290702
12
+ *
13
+ * @module
14
+ */
15
+ import { IntentionalShutdownCause, makeClientSession, StoreInterrupted, sessionChangesetMetaTable, UnknownError, } from '@livestore/common';
16
+ import { EventSequenceNumber } from '@livestore/common/schema';
17
+ import { sqliteDbFactory } from '@livestore/sqlite-wasm/browser';
18
+ import { shouldNeverHappen, tryAsFunctionAndNew } from '@livestore/utils';
19
+ import { Cause, Effect, Exit, Fiber, Layer, ParseResult, Queue, Schema, Stream, Subscribable, SubscriptionRef, Worker, WorkerError, } from '@livestore/utils/effect';
20
+ import { BrowserWorker, Opfs, WebError } from '@livestore/utils/effect/browser';
21
+ import { nanoid } from '@livestore/utils/nanoid';
22
+ import { loadSqlite3 } from "../web-worker/client-session/sqlite-loader.js";
23
+ import { readPersistedStateDbFromClientSession, resetPersistedDataFromClientSession, } from "../web-worker/common/persisted-sqlite.js";
24
+ import { makeShutdownChannel } from "../web-worker/common/shutdown-channel.js";
25
+ import * as WorkerSchema from "../web-worker/common/worker-schema.js";
26
+ /**
27
+ * Creates a single-tab web adapter with OPFS persistence.
28
+ *
29
+ * **This adapter is a fallback for browsers without SharedWorker support** (notably Android Chrome).
30
+ * It provides the same persistence capabilities as `makePersistedAdapter`, but without multi-tab
31
+ * synchronization. Each browser tab runs its own independent leader worker.
32
+ *
33
+ * In most cases, you should use `makePersistedAdapter` instead, which automatically falls back
34
+ * to this adapter when SharedWorker is unavailable.
35
+ *
36
+ * **Limitations**:
37
+ * - No multi-tab synchronization (each tab operates independently)
38
+ * - No devtools support (requires SharedWorker)
39
+ * - Opening multiple tabs with the same storeId may cause data conflicts
40
+ *
41
+ * @see https://github.com/livestorejs/livestore/issues/321 - LiveStore tracking issue
42
+ * @see https://issues.chromium.org/issues/40290702 - Chromium SharedWorker bug
43
+ *
44
+ * @example
45
+ * ```ts
46
+ * import { makeSingleTabAdapter } from '@livestore/adapter-web'
47
+ * import LiveStoreWorker from './livestore.worker.ts?worker'
48
+ *
49
+ * // Only use this directly if you specifically need single-tab mode.
50
+ * // Prefer makePersistedAdapter which auto-detects SharedWorker support.
51
+ * const adapter = makeSingleTabAdapter({
52
+ * worker: LiveStoreWorker,
53
+ * storage: { type: 'opfs' },
54
+ * })
55
+ * ```
56
+ */
57
+ export const makeSingleTabAdapter = (options) => (adapterArgs) => Effect.gen(function* () {
58
+ const { schema, storeId, bootStatusQueue, shutdown, syncPayloadEncoded } = adapterArgs;
59
+ // Note: devtoolsEnabled is ignored in single-tab mode (devtools require SharedWorker)
60
+ yield* ensureBrowserRequirements;
61
+ yield* Queue.offer(bootStatusQueue, { stage: 'loading' });
62
+ const sqlite3 = yield* Effect.promise(() => loadSqlite3());
63
+ const storageOptions = yield* Schema.decode(WorkerSchema.StorageType)(options.storage);
64
+ const shutdownChannel = yield* makeShutdownChannel(storeId);
65
+ // Check OPFS availability early and notify user if storage is unavailable (e.g. private browsing)
66
+ const opfsWarning = yield* checkOpfsAvailability;
67
+ if (opfsWarning !== undefined) {
68
+ yield* Effect.logWarning('[@livestore/adapter-web:single-tab] OPFS unavailable', opfsWarning);
69
+ }
70
+ if (options.resetPersistence === true && opfsWarning === undefined) {
71
+ yield* shutdownChannel.send(IntentionalShutdownCause.make({ reason: 'adapter-reset' }));
72
+ yield* resetPersistedDataFromClientSession({ storageOptions, storeId });
73
+ }
74
+ else if (options.resetPersistence === true) {
75
+ yield* Effect.logWarning('[@livestore/adapter-web:single-tab] Skipping persistence reset because storage is unavailable', opfsWarning);
76
+ }
77
+ // Fast-path: try to load snapshot directly from storage
78
+ const dataFromFile = options.experimental?.disableFastPath === true || opfsWarning !== undefined
79
+ ? undefined
80
+ : yield* readPersistedStateDbFromClientSession({ storageOptions, storeId, schema }).pipe(Effect.tapError((error) => Effect.logDebug('[@livestore/adapter-web:single-tab] Could not read persisted state db', error, {
81
+ storeId,
82
+ })), Effect.orElseSucceed(() => undefined));
83
+ const clientId = options.clientId ?? getPersistedId(`clientId:${storeId}`, 'local');
84
+ const sessionId = options.sessionId ?? getPersistedId(`sessionId:${storeId}`, 'session');
85
+ yield* shutdownChannel.listen.pipe(Stream.flatten(), Stream.tap((cause) => shutdown(cause._tag === 'LiveStore.IntentionalShutdownCause' ? Exit.succeed(cause) : Exit.fail(cause))), Stream.runDrain, Effect.interruptible, Effect.tapCauseLogPretty, Effect.forkScoped);
86
+ // In single-tab mode, we always have the lock (we're always the leader)
87
+ const lockStatus = yield* SubscriptionRef.make('has-lock');
88
+ // Create MessageChannel for direct communication with the dedicated worker
89
+ const mc = new MessageChannel();
90
+ // Create the dedicated worker directly (no SharedWorker proxy)
91
+ const worker = tryAsFunctionAndNew(options.worker, { name: `livestore-worker-${storeId}-${sessionId}` });
92
+ // Set up communication with the dedicated worker via the outer protocol
93
+ const _dedicatedWorkerFiber = yield* Worker.makeSerialized({
94
+ initialMessage: () => new WorkerSchema.LeaderWorkerOuterInitialMessage({ port: mc.port1, storeId, clientId }),
95
+ }).pipe(Effect.provide(BrowserWorker.layer(() => worker)), UnknownError.mapToUnknownError, Effect.tapErrorCause((cause) => shutdown(Exit.failCause(cause))), Effect.withSpan('@livestore/adapter-web:single-tab:setupDedicatedWorker'), Effect.tapCauseLogPretty, Effect.forkScoped);
96
+ // Set up the inner worker communication via port2 (like SharedWorker would do)
97
+ // BrowserWorker.layer accepts a MessagePort as well as a Worker
98
+ const innerWorkerContext = yield* Layer.build(BrowserWorker.layer(() => mc.port2));
99
+ const innerWorkerFiber = yield* Worker.makePoolSerialized({
100
+ size: 1,
101
+ concurrency: 100,
102
+ initialMessage: () => new WorkerSchema.LeaderWorkerInnerInitialMessage({
103
+ storageOptions,
104
+ storeId,
105
+ clientId,
106
+ // Devtools disabled in single-tab mode (requires SharedWorker)
107
+ devtoolsEnabled: false,
108
+ debugInstanceId: adapterArgs.debugInstanceId,
109
+ syncPayloadEncoded,
110
+ }),
111
+ }).pipe(Effect.provide(innerWorkerContext), Effect.tapCauseLogPretty, UnknownError.mapToUnknownError, Effect.tapErrorCause((cause) => shutdown(Exit.failCause(cause))), Effect.withSpan('@livestore/adapter-web:single-tab:setupInnerWorker'), Effect.forkScoped);
112
+ // Helper to run requests against the worker
113
+ const runInWorker = (req) => Fiber.join(innerWorkerFiber).pipe(Effect.flatMap((worker) => worker.executeEffect(req)), Effect.logWarnIfTakesLongerThan({
114
+ label: `@livestore/adapter-web:single-tab:runInWorker:${req._tag}`,
115
+ duration: 2000,
116
+ }), Effect.withSpan(`@livestore/adapter-web:single-tab:runInWorker:${req._tag}`), Effect.mapError((cause) => Schema.is(UnknownError)(cause)
117
+ ? cause
118
+ : ParseResult.isParseError(cause) || Schema.is(WorkerError.WorkerError)(cause)
119
+ ? new UnknownError({ cause })
120
+ : cause), Effect.catchAllDefect((cause) => new UnknownError({ cause })));
121
+ const runInWorkerStream = (req) => Effect.gen(function* () {
122
+ const innerWorker = yield* Fiber.join(innerWorkerFiber);
123
+ return innerWorker.execute(req).pipe(Stream.mapError((cause) => Schema.is(UnknownError)(cause)
124
+ ? cause
125
+ : ParseResult.isParseError(cause) || Schema.is(WorkerError.WorkerError)(cause)
126
+ ? new UnknownError({ cause })
127
+ : cause), Stream.withSpan(`@livestore/adapter-web:single-tab:runInWorkerStream:${req._tag}`));
128
+ }).pipe(Stream.unwrap);
129
+ // Forward boot status from worker
130
+ const bootStatusFiber = yield* runInWorkerStream(new WorkerSchema.LeaderWorkerInnerBootStatusStream()).pipe(Stream.tap((_) => Queue.offer(bootStatusQueue, _)), Stream.runDrain, Effect.tapErrorCause((cause) => Cause.isInterruptedOnly(cause) ? Effect.void : shutdown(Exit.failCause(cause))), Effect.interruptible, Effect.tapCauseLogPretty, Effect.forkScoped);
131
+ yield* Queue.awaitShutdown(bootStatusQueue).pipe(Effect.andThen(Fiber.interrupt(bootStatusFiber)), Effect.tapCauseLogPretty, Effect.forkScoped);
132
+ // Get initial snapshot (either from fast-path or from worker)
133
+ const initialResult = dataFromFile === undefined
134
+ ? yield* runInWorker(new WorkerSchema.LeaderWorkerInnerGetRecreateSnapshot()).pipe(Effect.map(({ snapshot, migrationsReport }) => ({
135
+ _tag: 'from-leader-worker',
136
+ snapshot,
137
+ migrationsReport,
138
+ })))
139
+ : { _tag: 'fast-path', snapshot: dataFromFile };
140
+ const migrationsReport = initialResult._tag === 'from-leader-worker' ? initialResult.migrationsReport : { migrations: [] };
141
+ const makeSqliteDb = sqliteDbFactory({ sqlite3 });
142
+ const sqliteDb = yield* makeSqliteDb({ _tag: 'in-memory' });
143
+ sqliteDb.import(initialResult.snapshot);
144
+ const numberOfTables = sqliteDb.select(`select count(*) as count from sqlite_master`)[0]?.count ?? 0;
145
+ if (numberOfTables === 0) {
146
+ return yield* UnknownError.make({
147
+ cause: `Encountered empty or corrupted database`,
148
+ payload: { snapshotByteLength: initialResult.snapshot.byteLength, storageOptions: options.storage },
149
+ });
150
+ }
151
+ // Restore leader head from SESSION_CHANGESET_META_TABLE
152
+ const initialLeaderHeadRes = sqliteDb.select(sessionChangesetMetaTable
153
+ .select('seqNumClient', 'seqNumGlobal', 'seqNumRebaseGeneration')
154
+ .orderBy([
155
+ { col: 'seqNumGlobal', direction: 'desc' },
156
+ { col: 'seqNumClient', direction: 'desc' },
157
+ ])
158
+ .first());
159
+ const initialLeaderHead = initialLeaderHeadRes
160
+ ? EventSequenceNumber.Client.Composite.make({
161
+ global: initialLeaderHeadRes.seqNumGlobal,
162
+ client: initialLeaderHeadRes.seqNumClient,
163
+ rebaseGeneration: initialLeaderHeadRes.seqNumRebaseGeneration,
164
+ })
165
+ : EventSequenceNumber.Client.ROOT;
166
+ yield* Effect.addFinalizer((ex) => Effect.gen(function* () {
167
+ if (Exit.isFailure(ex) &&
168
+ Exit.isInterrupted(ex) === false &&
169
+ Schema.is(IntentionalShutdownCause)(Cause.squash(ex.cause)) === false &&
170
+ Schema.is(StoreInterrupted)(Cause.squash(ex.cause)) === false) {
171
+ yield* Effect.logError('[@livestore/adapter-web:single-tab] client-session shutdown', ex.cause);
172
+ }
173
+ else {
174
+ yield* Effect.logDebug('[@livestore/adapter-web:single-tab] client-session shutdown', ex);
175
+ }
176
+ }).pipe(Effect.tapCauseLogPretty, Effect.orDie));
177
+ const leaderThread = {
178
+ export: runInWorker(new WorkerSchema.LeaderWorkerInnerExport()).pipe(Effect.timeout(10_000), UnknownError.mapToUnknownError, Effect.withSpan('@livestore/adapter-web:single-tab:export')),
179
+ events: {
180
+ pull: ({ cursor }) => runInWorkerStream(new WorkerSchema.LeaderWorkerInnerPullStream({ cursor })).pipe(Stream.orDie),
181
+ push: (batch) => runInWorker(new WorkerSchema.LeaderWorkerInnerPushToLeader({ batch })).pipe(Effect.withSpan('@livestore/adapter-web:single-tab:pushToLeader', {
182
+ attributes: { batchSize: batch.length },
183
+ })),
184
+ stream: (options) => runInWorkerStream(new WorkerSchema.LeaderWorkerInnerStreamEvents(options)).pipe(Stream.withSpan('@livestore/adapter-web:single-tab:streamEvents'), Stream.orDie),
185
+ },
186
+ initialState: {
187
+ leaderHead: initialLeaderHead,
188
+ migrationsReport,
189
+ storageMode: opfsWarning === undefined ? 'persisted' : 'in-memory',
190
+ },
191
+ getEventlogData: runInWorker(new WorkerSchema.LeaderWorkerInnerExportEventlog()).pipe(Effect.timeout(10_000), UnknownError.mapToUnknownError, Effect.withSpan('@livestore/adapter-web:single-tab:getEventlogData')),
192
+ syncState: Subscribable.make({
193
+ get: runInWorker(new WorkerSchema.LeaderWorkerInnerGetLeaderSyncState()).pipe(UnknownError.mapToUnknownError, Effect.withSpan('@livestore/adapter-web:single-tab:getLeaderSyncState')),
194
+ changes: runInWorkerStream(new WorkerSchema.LeaderWorkerInnerSyncStateStream()).pipe(Stream.orDie),
195
+ }),
196
+ sendDevtoolsMessage: (_message) =>
197
+ // Devtools not supported in single-tab mode
198
+ Effect.void,
199
+ networkStatus: Subscribable.make({
200
+ get: runInWorker(new WorkerSchema.LeaderWorkerInnerGetNetworkStatus()).pipe(Effect.orDie),
201
+ changes: runInWorkerStream(new WorkerSchema.LeaderWorkerInnerNetworkStatusStream()).pipe(Stream.orDie),
202
+ }),
203
+ };
204
+ const clientSession = yield* makeClientSession({
205
+ ...adapterArgs,
206
+ sqliteDb,
207
+ lockStatus,
208
+ clientId,
209
+ sessionId,
210
+ isLeader: true, // Always leader in single-tab mode
211
+ leaderThread,
212
+ webmeshMode: 'direct',
213
+ origin: globalThis.location?.origin,
214
+ // No webmesh connection in single-tab mode (devtools disabled)
215
+ connectWebmeshNode: () => Effect.void,
216
+ registerBeforeUnload: (onBeforeUnload) => {
217
+ if (typeof window !== 'undefined' && typeof window.addEventListener === 'function') {
218
+ window.addEventListener('beforeunload', onBeforeUnload);
219
+ return () => window.removeEventListener('beforeunload', onBeforeUnload);
220
+ }
221
+ return () => { };
222
+ },
223
+ });
224
+ return clientSession;
225
+ }).pipe(Effect.provide(Opfs.Opfs.Default), UnknownError.mapToUnknownError);
226
+ /** Persists clientId/sessionId to storage */
227
+ const getPersistedId = (key, storageType) => {
228
+ const makeId = () => nanoid(5);
229
+ const storage = typeof window === 'undefined'
230
+ ? undefined
231
+ : storageType === 'session'
232
+ ? sessionStorage
233
+ : storageType === 'local'
234
+ ? localStorage
235
+ : shouldNeverHappen(`[@livestore/adapter-web] Invalid storage type: ${storageType}`);
236
+ if (storage === undefined) {
237
+ return makeId();
238
+ }
239
+ const fullKey = `livestore:${key}`;
240
+ const storedKey = storage.getItem(fullKey);
241
+ if (storedKey)
242
+ return storedKey;
243
+ const newKey = makeId();
244
+ storage.setItem(fullKey, newKey);
245
+ return newKey;
246
+ };
247
+ const ensureBrowserRequirements = Effect.gen(function* () {
248
+ const validate = (condition, label) => Effect.gen(function* () {
249
+ if (condition) {
250
+ return yield* UnknownError.make({
251
+ cause: `[@livestore/adapter-web] Browser not supported. The LiveStore web adapter needs '${label}' to work properly`,
252
+ });
253
+ }
254
+ });
255
+ yield* Effect.all([
256
+ validate(typeof navigator === 'undefined', 'navigator'),
257
+ validate(navigator.locks === undefined, 'navigator.locks'),
258
+ validate(navigator.storage === undefined, 'navigator.storage'),
259
+ validate(crypto.randomUUID === undefined, 'crypto.randomUUID'),
260
+ validate(typeof window === 'undefined', 'window'),
261
+ validate(typeof sessionStorage === 'undefined', 'sessionStorage'),
262
+ ]);
263
+ });
264
+ /**
265
+ * Attempts to access OPFS and returns a warning if unavailable.
266
+ */
267
+ const checkOpfsAvailability = Effect.gen(function* () {
268
+ const opfs = yield* Opfs.Opfs;
269
+ return yield* opfs.getRootDirectoryHandle.pipe(Effect.as(undefined), Effect.catchAll((error) => {
270
+ const reason = Schema.is(WebError.SecurityError)(error) || Schema.is(WebError.NotAllowedError)(error)
271
+ ? 'private-browsing'
272
+ : 'storage-unavailable';
273
+ const message = reason === 'private-browsing'
274
+ ? 'Storage unavailable in private browsing mode. LiveStore will continue without persistence.'
275
+ : 'Storage access denied. LiveStore will continue without persistence.';
276
+ return Effect.succeed({ reason, message });
277
+ }));
278
+ });
279
+ //# sourceMappingURL=single-tab-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"single-tab-adapter.js","sourceRoot":"","sources":["../../src/single-tab/single-tab-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,14 @@
1
1
  import type { Adapter } from '@livestore/common';
2
2
  import * as WorkerSchema from '../common/worker-schema.ts';
3
+ /**
4
+ * Checks if SharedWorker API is available in the current browser context.
5
+ *
6
+ * Returns false on Android Chrome and other browsers without SharedWorker support.
7
+ *
8
+ * @see https://github.com/livestorejs/livestore/issues/321
9
+ * @see https://issues.chromium.org/issues/40290702
10
+ */
11
+ export declare const canUseSharedWorker: () => boolean;
3
12
  export type WebAdapterOptions = {
4
13
  worker: ((options: {
5
14
  name: string;
@@ -75,6 +84,15 @@ export type WebAdapterOptions = {
75
84
  * Creates a web adapter with persistent storage (currently only supports OPFS).
76
85
  * Requires both a web worker and a shared worker.
77
86
  *
87
+ * On browsers without SharedWorker support (e.g. Android Chrome), this adapter
88
+ * automatically falls back to single-tab mode. In single-tab mode:
89
+ * - Each tab runs independently with its own leader worker
90
+ * - Multi-tab synchronization is not available
91
+ * - Devtools are not supported
92
+ *
93
+ * @see https://github.com/livestorejs/livestore/issues/321 - SharedWorker tracking issue
94
+ * @see https://issues.chromium.org/issues/40290702 - Chromium SharedWorker bug
95
+ *
78
96
  * @example
79
97
  * ```ts
80
98
  * import { makePersistedAdapter } from '@livestore/adapter-web'
@@ -1 +1 @@
1
- {"version":3,"file":"persisted-adapter.d.ts","sourceRoot":"","sources":["../../../src/web-worker/client-session/persisted-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAA6B,MAAM,mBAAmB,CAAA;AAuC3E,OAAO,KAAK,YAAY,MAAM,4BAA4B,CAAA;AAW1D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,UAAU,CAAC,MAAM,CAAC,CAAA;IACnH;;;;;;;;;;;;;OAaG;IACH,YAAY,EACR,CAAC,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,UAAU,CAAC,YAAY,CAAC,GACxD,CAAC,KAAK,OAAO,EAAE;QACb,IAAI,EAAE,MAAM,CAAA;KACb,KAAK,UAAU,CAAC,YAAY,CAAC,CAAA;IAClC;;OAEG;IACH,OAAO,EAAE,YAAY,CAAC,kBAAkB,CAAA;IACxC;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE;QACb;;;;;WAKG;QACH,eAAe,CAAC,EAAE,OAAO,CAAA;QACzB;;;;;;;;;;;;;WAaG;QACH,4BAA4B,CAAC,EAAE,OAAO,CAAA;KACvC,CAAA;CACF,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,oBAAoB,GAC9B,SAAS,iBAAiB,KAAG,OA0Y8C,CAAA"}
1
+ {"version":3,"file":"persisted-adapter.d.ts","sourceRoot":"","sources":["../../../src/web-worker/client-session/persisted-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAgD,MAAM,mBAAmB,CAAA;AAwC9F,OAAO,KAAK,YAAY,MAAM,4BAA4B,CAAA;AAI1D;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,QAAO,OAA8C,CAAA;AASpF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,UAAU,CAAC,MAAM,CAAC,CAAA;IACnH;;;;;;;;;;;;;OAaG;IACH,YAAY,EACR,CAAC,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,UAAU,CAAC,YAAY,CAAC,GACxD,CAAC,KAAK,OAAO,EAAE;QACb,IAAI,EAAE,MAAM,CAAA;KACb,KAAK,UAAU,CAAC,YAAY,CAAC,CAAA;IAClC;;OAEG;IACH,OAAO,EAAE,YAAY,CAAC,kBAAkB,CAAA;IACxC;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE;QACb;;;;;WAKG;QACH,eAAe,CAAC,EAAE,OAAO,CAAA;QACzB;;;;;;;;;;;;;WAaG;QACH,4BAA4B,CAAC,EAAE,OAAO,CAAA;KACvC,CAAA;CACF,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,oBAAoB,GAC9B,SAAS,iBAAiB,KAAG,OAkb8C,CAAA"}
@@ -4,16 +4,26 @@ import { IntentionalShutdownCause, liveStoreVersion, makeClientSession, StoreInt
4
4
  // import LiveStoreSharedWorker from '@livestore/adapter-web/internal-shared-worker?sharedworker'
5
5
  import { EventSequenceNumber } from '@livestore/common/schema';
6
6
  import { sqliteDbFactory } from '@livestore/sqlite-wasm/browser';
7
- import { isDevEnv, shouldNeverHappen, tryAsFunctionAndNew } from '@livestore/utils';
7
+ import { isDevEnv, omitUndefineds, shouldNeverHappen, tryAsFunctionAndNew } from '@livestore/utils';
8
8
  import { Cause, Deferred, Effect, Exit, Fiber, Layer, ParseResult, Queue, Schema, Stream, Subscribable, SubscriptionRef, Worker, WorkerError, } from '@livestore/utils/effect';
9
- import { BrowserWorker, Opfs, WebLock } from '@livestore/utils/effect/browser';
9
+ import { BrowserWorker, Opfs, WebError, WebLock } from '@livestore/utils/effect/browser';
10
10
  import { nanoid } from '@livestore/utils/nanoid';
11
+ import { makeSingleTabAdapter } from "../../single-tab/single-tab-adapter.js";
11
12
  import { readPersistedStateDbFromClientSession, resetPersistedDataFromClientSession, } from "../common/persisted-sqlite.js";
12
13
  import { makeShutdownChannel } from "../common/shutdown-channel.js";
13
14
  import { DedicatedWorkerDisconnectBroadcast, makeWorkerDisconnectChannel } from "../common/worker-disconnect-channel.js";
14
15
  import * as WorkerSchema from "../common/worker-schema.js";
15
16
  import { connectWebmeshNodeClientSession } from "./client-session-devtools.js";
16
17
  import { loadSqlite3 } from "./sqlite-loader.js";
18
+ /**
19
+ * Checks if SharedWorker API is available in the current browser context.
20
+ *
21
+ * Returns false on Android Chrome and other browsers without SharedWorker support.
22
+ *
23
+ * @see https://github.com/livestorejs/livestore/issues/321
24
+ * @see https://issues.chromium.org/issues/40290702
25
+ */
26
+ export const canUseSharedWorker = () => typeof SharedWorker !== 'undefined';
17
27
  if (isDevEnv()) {
18
28
  globalThis.__debugLiveStoreUtils = {
19
29
  ...globalThis.__debugLiveStoreUtils,
@@ -24,6 +34,15 @@ if (isDevEnv()) {
24
34
  * Creates a web adapter with persistent storage (currently only supports OPFS).
25
35
  * Requires both a web worker and a shared worker.
26
36
  *
37
+ * On browsers without SharedWorker support (e.g. Android Chrome), this adapter
38
+ * automatically falls back to single-tab mode. In single-tab mode:
39
+ * - Each tab runs independently with its own leader worker
40
+ * - Multi-tab synchronization is not available
41
+ * - Devtools are not supported
42
+ *
43
+ * @see https://github.com/livestorejs/livestore/issues/321 - SharedWorker tracking issue
44
+ * @see https://issues.chromium.org/issues/40290702 - Chromium SharedWorker bug
45
+ *
27
46
  * @example
28
47
  * ```ts
29
48
  * import { makePersistedAdapter } from '@livestore/adapter-web'
@@ -38,6 +57,22 @@ if (isDevEnv()) {
38
57
  * ```
39
58
  */
40
59
  export const makePersistedAdapter = (options) => (adapterArgs) => Effect.gen(function* () {
60
+ // Check SharedWorker availability first and fall back to single-tab mode if unavailable
61
+ if (!canUseSharedWorker()) {
62
+ yield* Effect.logWarning('[@livestore/adapter-web] SharedWorker unavailable (e.g. Android Chrome). ' +
63
+ 'Falling back to single-tab mode. Multi-tab synchronization and devtools are disabled. ' +
64
+ 'See: https://github.com/livestorejs/livestore/issues/321');
65
+ return yield* makeSingleTabAdapter({
66
+ worker: options.worker,
67
+ storage: options.storage,
68
+ ...omitUndefineds({
69
+ resetPersistence: options.resetPersistence,
70
+ clientId: options.clientId,
71
+ sessionId: options.sessionId,
72
+ experimental: options.experimental,
73
+ }),
74
+ })(adapterArgs);
75
+ }
41
76
  const { schema, storeId, devtoolsEnabled, debugInstanceId, bootStatusQueue, shutdown, syncPayloadSchema: _syncPayloadSchema, syncPayloadEncoded, } = adapterArgs;
42
77
  // NOTE: The schema travels with the worker bundle (developers call
43
78
  // `makeWorker({ schema, syncPayloadSchema })`). We only keep the
@@ -52,17 +87,25 @@ export const makePersistedAdapter = (options) => (adapterArgs) => Effect.gen(fun
52
87
  const LIVESTORE_SHARED_WORKER_TERMINATION_LOCK = `livestore-shared-worker-termination-lock-${storeId}`;
53
88
  const storageOptions = yield* Schema.decode(WorkerSchema.StorageType)(options.storage);
54
89
  const shutdownChannel = yield* makeShutdownChannel(storeId);
55
- if (options.resetPersistence === true) {
90
+ // Check OPFS availability early and notify user if storage is unavailable (e.g. private browsing)
91
+ const opfsWarning = yield* checkOpfsAvailability;
92
+ if (opfsWarning !== undefined) {
93
+ yield* Effect.logWarning('[@livestore/adapter-web:client-session] OPFS unavailable', opfsWarning);
94
+ }
95
+ if (options.resetPersistence === true && opfsWarning === undefined) {
56
96
  yield* shutdownChannel.send(IntentionalShutdownCause.make({ reason: 'adapter-reset' }));
57
97
  yield* resetPersistedDataFromClientSession({ storageOptions, storeId });
58
98
  }
99
+ else if (options.resetPersistence === true) {
100
+ yield* Effect.logWarning('[@livestore/adapter-web:client-session] Skipping persistence reset because storage is unavailable', opfsWarning);
101
+ }
59
102
  // Note on fast-path booting:
60
103
  // Instead of waiting for the leader worker to boot and then get a database snapshot from it,
61
104
  // we're here trying to get the snapshot directly from storage
62
105
  // we usually speeds up the boot process by a lot.
63
106
  // We need to be extra careful though to not run into any race conditions or inconsistencies.
64
107
  // TODO also verify persisted data
65
- const dataFromFile = options.experimental?.disableFastPath === true
108
+ const dataFromFile = options.experimental?.disableFastPath === true || opfsWarning !== undefined
66
109
  ? undefined
67
110
  : yield* readPersistedStateDbFromClientSession({ storageOptions, storeId, schema }).pipe(Effect.tapError((error) => Effect.logDebug('[@livestore/adapter-web:client-session] Could not read persisted state db', error, {
68
111
  storeId,
@@ -223,8 +266,13 @@ export const makePersistedAdapter = (options) => (adapterArgs) => Effect.gen(fun
223
266
  push: (batch) => runInWorker(new WorkerSchema.LeaderWorkerInnerPushToLeader({ batch })).pipe(Effect.withSpan('@livestore/adapter-web:client-session:pushToLeader', {
224
267
  attributes: { batchSize: batch.length },
225
268
  })),
269
+ stream: (options) => runInWorkerStream(new WorkerSchema.LeaderWorkerInnerStreamEvents(options)).pipe(Stream.withSpan('@livestore/adapter-web:client-session:streamEvents'), Stream.orDie),
270
+ },
271
+ initialState: {
272
+ leaderHead: initialLeaderHead,
273
+ migrationsReport,
274
+ storageMode: opfsWarning === undefined ? 'persisted' : 'in-memory',
226
275
  },
227
- initialState: { leaderHead: initialLeaderHead, migrationsReport },
228
276
  getEventlogData: runInWorker(new WorkerSchema.LeaderWorkerInnerExportEventlog()).pipe(Effect.timeout(10_000), UnknownError.mapToUnknownError, Effect.withSpan('@livestore/adapter-web:client-session:getEventlogData')),
229
277
  syncState: Subscribable.make({
230
278
  get: runInWorker(new WorkerSchema.LeaderWorkerInnerGetLeaderSyncState()).pipe(UnknownError.mapToUnknownError, Effect.withSpan('@livestore/adapter-web:client-session:getLeaderSyncState')),
@@ -299,4 +347,24 @@ const ensureBrowserRequirements = Effect.gen(function* () {
299
347
  validate(typeof sessionStorage === 'undefined', 'sessionStorage'),
300
348
  ]);
301
349
  });
350
+ /**
351
+ * Attempts to access OPFS and returns a warning if unavailable.
352
+ *
353
+ * Common failure scenarios:
354
+ * - Safari/Firefox private browsing: SecurityError or NotAllowedError
355
+ * - Permission denied: NotAllowedError
356
+ * - Quota exceeded: QuotaExceededError
357
+ */
358
+ const checkOpfsAvailability = Effect.gen(function* () {
359
+ const opfs = yield* Opfs.Opfs;
360
+ return yield* opfs.getRootDirectoryHandle.pipe(Effect.as(undefined), Effect.catchAll((error) => {
361
+ const reason = Schema.is(WebError.SecurityError)(error) || Schema.is(WebError.NotAllowedError)(error)
362
+ ? 'private-browsing'
363
+ : 'storage-unavailable';
364
+ const message = reason === 'private-browsing'
365
+ ? 'Storage unavailable in private browsing mode. LiveStore will continue without persistence.'
366
+ : 'Storage access denied. LiveStore will continue without persistence.';
367
+ return Effect.succeed({ reason, message });
368
+ }));
369
+ });
302
370
  //# sourceMappingURL=persisted-adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"persisted-adapter.js","sourceRoot":"","sources":["../../../src/web-worker/client-session/persisted-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"persisted-adapter.js","sourceRoot":"","sources":["../../../src/web-worker/client-session/persisted-adapter.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@ export declare const readPersistedStateDbFromClientSession: (args: {
19
19
  export declare const resetPersistedDataFromClientSession: (args_0: {
20
20
  storageOptions: WorkerSchema.StorageType;
21
21
  storeId: string;
22
- }) => Effect.Effect.AsEffect<Effect.Effect<void, PersistedSqliteError | WebError.UnknownError | WebError.TypeError | WebError.NotAllowedError | WebError.TypeMismatchError | WebError.SecurityError | Opfs.OpfsError | WebError.NoModificationAllowedError | WebError.InvalidModificationError, Opfs.Opfs>>;
22
+ }) => Effect.Effect<void, PersistedSqliteError | WebError.UnknownError | WebError.TypeError | WebError.NotAllowedError | WebError.TypeMismatchError | WebError.SecurityError | Opfs.OpfsError | WebError.NoModificationAllowedError | WebError.InvalidModificationError, Opfs.Opfs>;
23
23
  export declare const sanitizeOpfsDir: (directory: string | undefined, storeId: string) => Effect.Effect<string, PersistedSqliteError, never>;
24
24
  export declare const getStateDbFileName: (schema: LiveStoreSchema) => string;
25
25
  export declare const MAX_ARCHIVED_STATE_DBS_IN_DEV = 3;
@@ -1 +1 @@
1
- {"version":3,"file":"persisted-sqlite.d.ts","sourceRoot":"","sources":["../../../src/web-worker/common/persisted-sqlite.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,gCAAgC,CAAA;AAEvC,OAAO,EAAS,MAAM,EAA2B,MAAM,EAAU,MAAM,yBAAyB,CAAA;AAChG,OAAO,EAAE,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AACrE,OAAO,KAAK,KAAK,YAAY,MAAM,oBAAoB,CAAA;;;;;;;AAEvD,qBAAa,oBAAqB,SAAQ,yBAGxC;CAAG;AAEL,eAAO,MAAM,qCAAqC,EAAE,CAAC,IAAI,EAAE;IACzD,cAAc,EAAE,YAAY,CAAC,WAAW,CAAA;IACxC,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,eAAe,CAAA;CACxB,KAAK,MAAM,CAAC,MAAM,CACjB,UAAU,CAAC,WAAW,CAAC,EAErB,oBAAoB,GACpB,QAAQ,CAAC,YAAY,GACrB,QAAQ,CAAC,SAAS,GAClB,QAAQ,CAAC,aAAa,GACtB,QAAQ,CAAC,eAAe,GACxB,QAAQ,CAAC,iBAAiB,GAC1B,QAAQ,CAAC,aAAa,GACtB,IAAI,CAAC,SAAS,EAChB,IAAI,CAAC,IAAI,CAmDV,CAAA;AAED,eAAO,MAAM,mCAAmC;oBAGY,YAAY,CAAC,WAAW;aAAW,MAAM;2SAUpG,CAAA;AAED,eAAO,MAAM,eAAe,wGAe1B,CAAA;AAEF,eAAO,MAAM,kBAAkB,GAAI,QAAQ,eAAe,WAIzD,CAAA;AAED,eAAO,MAAM,6BAA6B,IAAI,CAAA;AAC9C,eAAO,MAAM,gBAAgB,YAAY,CAAA;AAEzC;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,EAAE,CAAC,OAAO,EAAE;IAC7C,GAAG,EAAE,uBAAuB,CAAC,KAAK,CAAC,CAAA;IACnC,aAAa,EAAE,eAAe,CAAA;IAC9B,aAAa,EAAE,MAAM,CAAA;CACtB,KAAK,MAAM,CAAC,MAAM,CACjB,IAAI,EAEF,QAAQ,CAAC,UAAU,GACnB,QAAQ,CAAC,cAAc,GACvB,QAAQ,CAAC,SAAS,GAClB,QAAQ,CAAC,wBAAwB,GACjC,QAAQ,CAAC,iBAAiB,GAC1B,QAAQ,CAAC,0BAA0B,GACnC,QAAQ,CAAC,eAAe,GACxB,QAAQ,CAAC,aAAa,GACtB,QAAQ,CAAC,kBAAkB,GAC3B,QAAQ,CAAC,UAAU,GACnB,QAAQ,CAAC,cAAc,GACvB,QAAQ,CAAC,aAAa,GACtB,QAAQ,CAAC,SAAS,GAClB,QAAQ,CAAC,iBAAiB,GAC1B,QAAQ,CAAC,QAAQ,GACjB,QAAQ,CAAC,YAAY,GACrB,IAAI,CAAC,SAAS,GACd,oBAAoB,EACtB,IAAI,CAAC,IAAI,CA+DT,CAAA"}
1
+ {"version":3,"file":"persisted-sqlite.d.ts","sourceRoot":"","sources":["../../../src/web-worker/common/persisted-sqlite.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,gCAAgC,CAAA;AAEvC,OAAO,EAAS,MAAM,EAA2B,MAAM,EAAU,MAAM,yBAAyB,CAAA;AAChG,OAAO,EAAE,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AACrE,OAAO,KAAK,KAAK,YAAY,MAAM,oBAAoB,CAAA;;;;;;;AAEvD,qBAAa,oBAAqB,SAAQ,yBAGxC;CAAG;AAEL,eAAO,MAAM,qCAAqC,EAAE,CAAC,IAAI,EAAE;IACzD,cAAc,EAAE,YAAY,CAAC,WAAW,CAAA;IACxC,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,eAAe,CAAA;CACxB,KAAK,MAAM,CAAC,MAAM,CACjB,UAAU,CAAC,WAAW,CAAC,EAErB,oBAAoB,GACpB,QAAQ,CAAC,YAAY,GACrB,QAAQ,CAAC,SAAS,GAClB,QAAQ,CAAC,aAAa,GACtB,QAAQ,CAAC,eAAe,GACxB,QAAQ,CAAC,iBAAiB,GAC1B,QAAQ,CAAC,aAAa,GACtB,IAAI,CAAC,SAAS,EAChB,IAAI,CAAC,IAAI,CAmDV,CAAA;AAED,eAAO,MAAM,mCAAmC;oBAGY,YAAY,CAAC,WAAW;aAAW,MAAM;mRAUpG,CAAA;AAED,eAAO,MAAM,eAAe,wGAe1B,CAAA;AAEF,eAAO,MAAM,kBAAkB,GAAI,QAAQ,eAAe,WAIzD,CAAA;AAED,eAAO,MAAM,6BAA6B,IAAI,CAAA;AAC9C,eAAO,MAAM,gBAAgB,YAAY,CAAA;AAEzC;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,EAAE,CAAC,OAAO,EAAE;IAC7C,GAAG,EAAE,uBAAuB,CAAC,KAAK,CAAC,CAAA;IACnC,aAAa,EAAE,eAAe,CAAA;IAC9B,aAAa,EAAE,MAAM,CAAA;CACtB,KAAK,MAAM,CAAC,MAAM,CACjB,IAAI,EAEF,QAAQ,CAAC,UAAU,GACnB,QAAQ,CAAC,cAAc,GACvB,QAAQ,CAAC,SAAS,GAClB,QAAQ,CAAC,wBAAwB,GACjC,QAAQ,CAAC,iBAAiB,GAC1B,QAAQ,CAAC,0BAA0B,GACnC,QAAQ,CAAC,eAAe,GACxB,QAAQ,CAAC,aAAa,GACtB,QAAQ,CAAC,kBAAkB,GAC3B,QAAQ,CAAC,UAAU,GACnB,QAAQ,CAAC,cAAc,GACvB,QAAQ,CAAC,aAAa,GACtB,QAAQ,CAAC,SAAS,GAClB,QAAQ,CAAC,iBAAiB,GAC1B,QAAQ,CAAC,QAAQ,GACjB,QAAQ,CAAC,YAAY,GACrB,IAAI,CAAC,SAAS,GACd,oBAAoB,EACtB,IAAI,CAAC,IAAI,CA2ET,CAAA"}
@@ -38,7 +38,7 @@ export const readPersistedStateDbFromClientSession = Effect.fn('@livestore/adapt
38
38
  }), Effect.withPerformanceMeasure('@livestore/adapter-web:readPersistedStateDbFromClientSession'));
39
39
  export const resetPersistedDataFromClientSession = Effect.fn('@livestore/adapter-web:resetPersistedDataFromClientSession')(function* ({ storageOptions, storeId }) {
40
40
  const directory = yield* sanitizeOpfsDir(storageOptions.directory, storeId);
41
- yield* Opfs.remove(directory).pipe(
41
+ yield* Opfs.remove(directory, { recursive: true }).pipe(
42
42
  // We ignore NotFoundError here as it may not exist or have already been deleted
43
43
  Effect.catchTag('@livestore/utils/Web/NotFoundError', () => Effect.void));
44
44
  }, Effect.retry({
@@ -95,7 +95,18 @@ export const cleanupOldStateDbFiles = Effect.fn('@livestore/adapter-web:cleanupO
95
95
  if (isDev) {
96
96
  const archiveFileData = yield* vfs.readFilePayload(fileName);
97
97
  const archiveFileName = `${Date.now()}-${fileName}`;
98
- yield* Opfs.writeFile(`${opfsDirectory}/archive/${archiveFileName}`, new Uint8Array(archiveFileData));
98
+ const archivePath = `${opfsDirectory}/archive/${archiveFileName}`;
99
+ const archiveData = new Uint8Array(archiveFileData);
100
+ // Prefer writeFile (atomic) when createWritable is available (Chrome, Firefox, Safari 26+),
101
+ // fall back to syncWriteFile (non-atomic) for Safari 18.x compatibility.
102
+ // TODO: Remove feature detection and use writeFile directly when Safari >= 26 is widely available.
103
+ const supportsCreateWritable = typeof FileSystemFileHandle !== 'undefined' && 'createWritable' in FileSystemFileHandle.prototype;
104
+ if (supportsCreateWritable) {
105
+ yield* Opfs.writeFile(archivePath, archiveData);
106
+ }
107
+ else {
108
+ yield* Opfs.syncWriteFile(archivePath, archiveData);
109
+ }
99
110
  }
100
111
  const vfsResultCode = yield* Effect.try({
101
112
  try: () => vfs.jDelete(fileName, 0),