@livestore/adapter-web 0.4.0-dev.9 → 0.4.0

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 (74) hide show
  1. package/README.md +5 -5
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/in-memory/in-memory-adapter.d.ts +49 -5
  4. package/dist/in-memory/in-memory-adapter.d.ts.map +1 -1
  5. package/dist/in-memory/in-memory-adapter.js +77 -20
  6. package/dist/in-memory/in-memory-adapter.js.map +1 -1
  7. package/dist/index.d.ts +11 -1
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +11 -1
  10. package/dist/index.js.map +1 -1
  11. package/dist/single-tab/mod.d.ts +15 -0
  12. package/dist/single-tab/mod.d.ts.map +1 -0
  13. package/dist/single-tab/mod.js +15 -0
  14. package/dist/single-tab/mod.js.map +1 -0
  15. package/dist/single-tab/single-tab-adapter.d.ts +108 -0
  16. package/dist/single-tab/single-tab-adapter.d.ts.map +1 -0
  17. package/dist/single-tab/single-tab-adapter.js +271 -0
  18. package/dist/single-tab/single-tab-adapter.js.map +1 -0
  19. package/dist/web-worker/client-session/client-session-devtools.d.ts +2 -2
  20. package/dist/web-worker/client-session/client-session-devtools.d.ts.map +1 -1
  21. package/dist/web-worker/client-session/client-session-devtools.js +20 -9
  22. package/dist/web-worker/client-session/client-session-devtools.js.map +1 -1
  23. package/dist/web-worker/client-session/persisted-adapter.d.ts +18 -0
  24. package/dist/web-worker/client-session/persisted-adapter.d.ts.map +1 -1
  25. package/dist/web-worker/client-session/persisted-adapter.js +141 -67
  26. package/dist/web-worker/client-session/persisted-adapter.js.map +1 -1
  27. package/dist/web-worker/client-session/sqlite-loader.d.ts +2 -0
  28. package/dist/web-worker/client-session/sqlite-loader.d.ts.map +1 -0
  29. package/dist/web-worker/client-session/sqlite-loader.js +16 -0
  30. package/dist/web-worker/client-session/sqlite-loader.js.map +1 -0
  31. package/dist/web-worker/common/persisted-sqlite.d.ts +11 -29
  32. package/dist/web-worker/common/persisted-sqlite.d.ts.map +1 -1
  33. package/dist/web-worker/common/persisted-sqlite.js +87 -188
  34. package/dist/web-worker/common/persisted-sqlite.js.map +1 -1
  35. package/dist/web-worker/common/shutdown-channel.d.ts +3 -2
  36. package/dist/web-worker/common/shutdown-channel.d.ts.map +1 -1
  37. package/dist/web-worker/common/shutdown-channel.js +2 -2
  38. package/dist/web-worker/common/shutdown-channel.js.map +1 -1
  39. package/dist/web-worker/common/worker-disconnect-channel.d.ts +2 -6
  40. package/dist/web-worker/common/worker-disconnect-channel.d.ts.map +1 -1
  41. package/dist/web-worker/common/worker-disconnect-channel.js +3 -2
  42. package/dist/web-worker/common/worker-disconnect-channel.js.map +1 -1
  43. package/dist/web-worker/common/worker-schema.d.ts +152 -58
  44. package/dist/web-worker/common/worker-schema.d.ts.map +1 -1
  45. package/dist/web-worker/common/worker-schema.js +55 -37
  46. package/dist/web-worker/common/worker-schema.js.map +1 -1
  47. package/dist/web-worker/leader-worker/make-leader-worker.d.ts +5 -3
  48. package/dist/web-worker/leader-worker/make-leader-worker.d.ts.map +1 -1
  49. package/dist/web-worker/leader-worker/make-leader-worker.js +98 -38
  50. package/dist/web-worker/leader-worker/make-leader-worker.js.map +1 -1
  51. package/dist/web-worker/shared-worker/make-shared-worker.d.ts +2 -1
  52. package/dist/web-worker/shared-worker/make-shared-worker.d.ts.map +1 -1
  53. package/dist/web-worker/shared-worker/make-shared-worker.js +62 -52
  54. package/dist/web-worker/shared-worker/make-shared-worker.js.map +1 -1
  55. package/package.json +56 -18
  56. package/src/in-memory/in-memory-adapter.ts +92 -26
  57. package/src/index.ts +15 -1
  58. package/src/single-tab/mod.ts +15 -0
  59. package/src/single-tab/single-tab-adapter.ts +499 -0
  60. package/src/web-worker/ambient.d.ts +7 -24
  61. package/src/web-worker/client-session/client-session-devtools.ts +32 -18
  62. package/src/web-worker/client-session/persisted-adapter.ts +199 -103
  63. package/src/web-worker/client-session/sqlite-loader.ts +19 -0
  64. package/src/web-worker/common/persisted-sqlite.ts +200 -298
  65. package/src/web-worker/common/shutdown-channel.ts +10 -3
  66. package/src/web-worker/common/worker-disconnect-channel.ts +10 -3
  67. package/src/web-worker/common/worker-schema.ts +78 -38
  68. package/src/web-worker/leader-worker/make-leader-worker.ts +148 -71
  69. package/src/web-worker/shared-worker/make-shared-worker.ts +78 -90
  70. package/dist/opfs-utils.d.ts +0 -7
  71. package/dist/opfs-utils.d.ts.map +0 -1
  72. package/dist/opfs-utils.js +0 -43
  73. package/dist/opfs-utils.js.map +0 -1
  74. package/src/opfs-utils.ts +0 -61
@@ -1,97 +1,66 @@
1
- import { liveStoreStorageFormatVersion, UnexpectedError } from '@livestore/common';
2
- import { decodeSAHPoolFilename, HEADER_OFFSET_DATA } from '@livestore/sqlite-wasm/browser';
1
+ import { liveStoreStorageFormatVersion } from '@livestore/common';
2
+ import { decodeAccessHandlePoolFilename, HEADER_OFFSET_DATA, } from '@livestore/sqlite-wasm/browser';
3
3
  import { isDevEnv } from '@livestore/utils';
4
- import { Effect, Schedule, Schema } from '@livestore/utils/effect';
5
- import * as OpfsUtils from "../../opfs-utils.js";
6
- export class PersistedSqliteError extends Schema.TaggedError()('PersistedSqliteError', {
4
+ import { Chunk, Effect, Option, Order, Schedule, Schema, Stream } from '@livestore/utils/effect';
5
+ import { Opfs } from '@livestore/utils/effect/browser';
6
+ export class PersistedSqliteError extends Schema.TaggedError('~@livestore/adapter-web/PersistedSqliteError')('PersistedSqliteError', {
7
7
  message: Schema.String,
8
- cause: Schema.Defect,
8
+ cause: Schema.optional(Schema.Defect),
9
9
  }) {
10
10
  }
11
- export const readPersistedAppDbFromClientSession = ({ storageOptions, storeId, schema, }) => Effect.promise(async () => {
12
- const directory = sanitizeOpfsDir(storageOptions.directory, storeId);
13
- const sahPoolOpaqueDir = await OpfsUtils.getDirHandle(directory).catch(() => undefined);
14
- if (sahPoolOpaqueDir === undefined) {
15
- return undefined;
11
+ export const readPersistedStateDbFromClientSession = Effect.fn('@livestore/adapter-web:readPersistedStateDbFromClientSession')(function* ({ storageOptions, storeId, schema }) {
12
+ const accessHandlePoolDirString = yield* sanitizeOpfsDir(storageOptions.directory, storeId);
13
+ const accessHandlePoolDirHandle = yield* Opfs.getDirectoryHandleByPath(accessHandlePoolDirString);
14
+ const stateDbFileName = `/${getStateDbFileName(schema)}`;
15
+ const handlesStream = yield* Opfs.Opfs.values(accessHandlePoolDirHandle);
16
+ const stateDbFileOption = yield* handlesStream.pipe(Stream.filter((handle) => handle.kind === 'file'), Stream.mapEffect((fileHandle) => Effect.gen(function* () {
17
+ const file = yield* Opfs.Opfs.getFile(fileHandle);
18
+ const fileName = yield* Effect.promise(() => decodeAccessHandlePoolFilename(file));
19
+ return { file, fileName };
20
+ }), { concurrency: 'unbounded' }), Stream.find(({ fileName }) => fileName === stateDbFileName), Stream.runHead);
21
+ if (Option.isNone(stateDbFileOption) === true) {
22
+ return yield* new PersistedSqliteError({
23
+ message: `State database file not found in client session (expected '${stateDbFileName}' in '${accessHandlePoolDirString}')`,
24
+ });
16
25
  }
17
- const tryGetDbFile = async (fileHandle) => {
18
- const file = await fileHandle.getFile();
19
- const fileName = await decodeSAHPoolFilename(file);
20
- return fileName ? { fileName, file } : undefined;
21
- };
22
- const getAllFiles = async (asyncIterator) => {
23
- const results = [];
24
- for await (const value of asyncIterator) {
25
- if (value.kind === 'file') {
26
- results.push(value);
27
- }
28
- }
29
- return results;
30
- };
31
- const files = await getAllFiles(sahPoolOpaqueDir.values());
32
- const fileResults = await Promise.all(files.map(tryGetDbFile));
33
- const appDbFileName = `/${getStateDbFileName(schema)}`;
34
- const dbFileRes = fileResults.find((_) => _?.fileName === appDbFileName);
35
- // console.debug('fileResults', fileResults, 'dbFileRes', dbFileRes)
36
- if (dbFileRes !== undefined) {
37
- const data = await dbFileRes.file.slice(HEADER_OFFSET_DATA).arrayBuffer();
38
- // console.debug('readPersistedAppDbFromClientSession', data.byteLength, data)
39
- // Given the SAH pool always eagerly creates files with empty non-header data,
40
- // we want to return undefined if the file exists but is empty
41
- if (data.byteLength === 0) {
42
- return undefined;
43
- }
44
- return new Uint8Array(data);
26
+ const stateDbBuffer = yield* Effect.promise(() => stateDbFileOption.value.file.slice(HEADER_OFFSET_DATA).arrayBuffer());
27
+ // Given the access handle pool always eagerly creates files with empty non-header data,
28
+ // we want to return undefined if the file exists but is empty
29
+ if (stateDbBuffer.byteLength === 0) {
30
+ return yield* new PersistedSqliteError({
31
+ message: `State database file is empty in client session (expected '${stateDbFileName}' in '${accessHandlePoolDirString}')`,
32
+ });
45
33
  }
46
- return undefined;
47
- }).pipe(Effect.logWarnIfTakesLongerThan({
34
+ return new Uint8Array(stateDbBuffer);
35
+ }, Effect.logWarnIfTakesLongerThan({
48
36
  duration: 1000,
49
- label: '@livestore/adapter-web:readPersistedAppDbFromClientSession',
50
- }), Effect.withPerformanceMeasure('@livestore/adapter-web:readPersistedAppDbFromClientSession'), Effect.withSpan('@livestore/adapter-web:readPersistedAppDbFromClientSession'));
51
- export const resetPersistedDataFromClientSession = ({ storageOptions, storeId, }) => Effect.gen(function* () {
52
- const directory = sanitizeOpfsDir(storageOptions.directory, storeId);
53
- yield* opfsDeleteAbs(directory);
54
- }).pipe(Effect.retry({
37
+ label: '@livestore/adapter-web:readPersistedStateDbFromClientSession',
38
+ }), Effect.withPerformanceMeasure('@livestore/adapter-web:readPersistedStateDbFromClientSession'));
39
+ export const resetPersistedDataFromClientSession = Effect.fn('@livestore/adapter-web:resetPersistedDataFromClientSession')(function* ({ storageOptions, storeId }) {
40
+ const directory = yield* sanitizeOpfsDir(storageOptions.directory, storeId);
41
+ yield* Opfs.remove(directory, { recursive: true }).pipe(
42
+ // We ignore NotFoundError here as it may not exist or have already been deleted
43
+ Effect.catchTag('NotFoundError', () => Effect.void));
44
+ }, Effect.retry({
55
45
  schedule: Schedule.exponentialBackoff10Sec,
56
- }), Effect.withSpan('@livestore/adapter-web:resetPersistedDataFromClientSession'));
57
- const opfsDeleteAbs = (absPath) => Effect.promise(async () => {
58
- // Get the root directory handle
59
- const root = await OpfsUtils.rootHandlePromise;
60
- // Split the absolute path to traverse directories
61
- const pathParts = absPath.split('/').filter((part) => part.length);
62
- try {
63
- // Traverse to the target file handle
64
- let currentDir = root;
65
- for (let i = 0; i < pathParts.length - 1; i++) {
66
- currentDir = await currentDir.getDirectoryHandle(pathParts[i]);
67
- }
68
- // Delete the file
69
- await currentDir.removeEntry(pathParts.at(-1), { recursive: true });
70
- }
71
- catch (error) {
72
- if (error instanceof DOMException && error.name === 'NotFoundError') {
73
- // Can ignore as it's already been deleted or not there in the first place
74
- return;
75
- }
76
- else {
77
- throw error;
78
- }
79
- }
80
- }).pipe(UnexpectedError.mapToUnexpectedError, Effect.withSpan('@livestore/adapter-web:worker:opfsDeleteFile', { attributes: { absFilePath: absPath } }));
81
- export const sanitizeOpfsDir = (directory, storeId) => {
82
- // Root dir should be `''` not `/`
83
- if (directory === undefined || directory === '' || directory === '/')
46
+ }));
47
+ export const sanitizeOpfsDir = Effect.fn('@livestore/adapter-web:sanitizeOpfsDir')(function* (directory, storeId) {
48
+ if (directory === undefined || directory === '' || directory === '/') {
84
49
  return `livestore-${storeId}@${liveStoreStorageFormatVersion}`;
85
- if (directory.includes('/')) {
86
- throw new Error(`@livestore/adapter-web:worker:sanitizeOpfsDir: Nested directories are not yet supported ('${directory}')`);
50
+ }
51
+ if (directory.includes('/') === true) {
52
+ return yield* new PersistedSqliteError({
53
+ message: `Nested directories are not yet supported ('${directory}')`,
54
+ });
87
55
  }
88
56
  return `${directory}@${liveStoreStorageFormatVersion}`;
89
- };
57
+ });
90
58
  export const getStateDbFileName = (schema) => {
91
59
  const schemaHashSuffix = schema.state.sqlite.migrations.strategy === 'manual' ? 'fixed' : schema.state.sqlite.hash.toString();
92
60
  return `state${schemaHashSuffix}.db`;
93
61
  };
94
62
  export const MAX_ARCHIVED_STATE_DBS_IN_DEV = 3;
63
+ export const ARCHIVE_DIR_NAME = 'archive';
95
64
  /**
96
65
  * Cleanup old state database files after successful migration.
97
66
  * This prevents OPFS file pool capacity from being exhausted by accumulated schema files.
@@ -99,7 +68,7 @@ export const MAX_ARCHIVED_STATE_DBS_IN_DEV = 3;
99
68
  * @param vfs - The AccessHandlePoolVFS instance for safe file operations
100
69
  * @param currentSchema - Current schema (to avoid deleting the active database)
101
70
  */
102
- export const cleanupOldStateDbFiles = Effect.fn('@livestore/adapter-web:cleanupOldStateDbFiles')(function* ({ vfs, currentSchema, opfsDirectory, }) {
71
+ export const cleanupOldStateDbFiles = Effect.fn('@livestore/adapter-web:cleanupOldStateDbFiles')(function* ({ vfs, currentSchema, opfsDirectory }) {
103
72
  // Only cleanup for auto migration strategy because:
104
73
  // - Auto strategy: Creates new database files per schema change (e.g., state123.db, state456.db)
105
74
  // which accumulate over time and can exhaust OPFS file pool capacity
@@ -115,130 +84,60 @@ export const cleanupOldStateDbFiles = Effect.fn('@livestore/adapter-web:cleanupO
115
84
  const allPaths = yield* Effect.sync(() => vfs.getTrackedFilePaths());
116
85
  const oldStateDbPaths = allPaths.filter((path) => path.startsWith('/state') && path.endsWith('.db') && path !== currentPath);
117
86
  if (oldStateDbPaths.length === 0) {
118
- yield* Effect.logDebug('State db cleanup completed: no old database files found');
87
+ yield* Effect.logDebug('No old database files found');
119
88
  return;
120
89
  }
121
- yield* Effect.logDebug(`Found ${oldStateDbPaths.length} old state database file(s) to clean up`);
122
- let deletedCount = 0;
123
- const archivedFileNames = [];
124
- let archiveDirHandle;
90
+ const absoluteArchiveDirName = `${opfsDirectory}/${ARCHIVE_DIR_NAME}`;
91
+ if (isDev === true && (yield* Opfs.exists(absoluteArchiveDirName)) === false)
92
+ yield* Opfs.makeDirectory(absoluteArchiveDirName);
125
93
  for (const path of oldStateDbPaths) {
126
- const fileName = path.startsWith('/') ? path.slice(1) : path;
127
- if (isDev) {
128
- archiveDirHandle = yield* Effect.tryPromise({
129
- try: () => OpfsUtils.getDirHandle(`${opfsDirectory}/archive`, { create: true }),
130
- catch: (cause) => new ArchiveStateDbError({ message: 'Failed to ensure archive directory', cause }),
131
- });
132
- const archivedFileName = yield* archiveStateDbFile({
133
- vfs,
134
- fileName,
135
- archiveDirHandle,
136
- });
137
- archivedFileNames.push(archivedFileName);
94
+ const fileName = path.startsWith('/') === true ? path.slice(1) : path;
95
+ if (isDev === true) {
96
+ const archiveFileData = yield* vfs.readFilePayload(fileName);
97
+ const archiveFileName = `${Date.now()}-${fileName}`;
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 === true) {
105
+ yield* Opfs.writeFile(archivePath, archiveData);
106
+ }
107
+ else {
108
+ yield* Opfs.syncWriteFile(archivePath, archiveData);
109
+ }
138
110
  }
139
111
  const vfsResultCode = yield* Effect.try({
140
112
  try: () => vfs.jDelete(fileName, 0),
141
- catch: (cause) => new SqliteVfsError({ operation: 'jDelete', fileName, cause }),
113
+ catch: (cause) => new PersistedSqliteError({ message: `Failed to delete old state database file: ${fileName}`, cause }),
142
114
  });
143
115
  // 0 indicates a successful result in SQLite.
144
116
  // See https://www.sqlite.org/c3ref/c_abort.html
145
117
  if (vfsResultCode !== 0) {
146
- return yield* new SqliteVfsError({
147
- operation: 'jDelete',
148
- fileName,
149
- vfsResultCode,
118
+ return yield* new PersistedSqliteError({
119
+ message: `Failed to delete old state database file: ${fileName}, got result code: ${vfsResultCode}`,
150
120
  });
151
121
  }
152
- deletedCount++;
153
- yield* Effect.logDebug(`Successfully deleted old state database file: ${fileName}`);
122
+ yield* Effect.logDebug(`Deleted old state database file: ${fileName}`);
154
123
  }
155
- if (isDev && archiveDirHandle !== undefined) {
156
- const pruneResult = yield* pruneArchiveDir({
157
- archiveDirHandle,
124
+ if (isDev === true) {
125
+ yield* pruneArchiveDirectory({
126
+ archiveDirectory: absoluteArchiveDirName,
158
127
  keep: MAX_ARCHIVED_STATE_DBS_IN_DEV,
159
128
  });
160
- yield* Effect.logDebug(`State db cleanup completed: archived ${archivedFileNames.length} file(s); removed ${deletedCount} old database file(s) from active pool; archive retained ${pruneResult.retained.length} file(s)`);
161
129
  }
162
- else {
163
- yield* Effect.logDebug(`State db cleanup completed: removed ${deletedCount} old database file(s)`);
164
- }
165
- }, Effect.mapError((error) => new PersistedSqliteError({
166
- message: 'Failed to clean up old state database file(s)',
167
- cause: error,
168
- })));
169
- const archiveStateDbFile = Effect.fn('@livestore/adapter-web:archiveStateDbFile')(function* ({ vfs, fileName, archiveDirHandle, }) {
170
- const stateDbBuffer = vfs.readFilePayload(fileName);
171
- const archiveFileName = `${Date.now()}-${fileName}`;
172
- const archiveFileHandle = yield* Effect.tryPromise({
173
- try: () => archiveDirHandle.getFileHandle(archiveFileName, { create: true }),
174
- catch: (cause) => new ArchiveStateDbError({
175
- message: 'Failed to open archive file handle',
176
- fileName: archiveFileName,
177
- cause,
178
- }),
179
- });
180
- const archiveFileAccessHandle = yield* Effect.acquireRelease(Effect.tryPromise({
181
- try: () => archiveFileHandle.createSyncAccessHandle(),
182
- catch: (cause) => new ArchiveStateDbError({
183
- message: 'Failed to create sync access handle for archived file',
184
- fileName: archiveFileName,
185
- cause,
186
- }),
187
- }), (handle) => Effect.sync(() => handle.close()).pipe(Effect.ignoreLogged));
188
- yield* Effect.try({
189
- try: () => {
190
- archiveFileAccessHandle.write(stateDbBuffer);
191
- archiveFileAccessHandle.flush();
192
- },
193
- catch: (cause) => new ArchiveStateDbError({
194
- message: 'Failed to write archived state database',
195
- fileName: archiveFileName,
196
- cause,
197
- }),
198
- });
199
- return archiveFileName;
200
- }, Effect.scoped);
201
- const pruneArchiveDir = Effect.fn('@livestore/adapter-web:pruneArchiveDir')(function* ({ archiveDirHandle, keep, }) {
202
- const files = yield* Effect.tryPromise({
203
- try: async () => {
204
- const result = [];
205
- for await (const entry of archiveDirHandle.values()) {
206
- if (entry.kind !== 'file')
207
- continue;
208
- const fileHandle = await archiveDirHandle.getFileHandle(entry.name);
209
- const file = await fileHandle.getFile();
210
- result.push({ name: entry.name, lastModified: file.lastModified });
211
- }
212
- return result.sort((a, b) => b.lastModified - a.lastModified);
213
- },
214
- catch: (cause) => new ArchiveStateDbError({ message: 'Failed to enumerate archived state databases', cause }),
215
- });
216
- const retained = files.slice(0, keep);
217
- const toDelete = files.slice(keep);
218
- yield* Effect.forEach(toDelete, ({ name }) => Effect.tryPromise({
219
- try: () => archiveDirHandle.removeEntry(name),
220
- catch: (cause) => new ArchiveStateDbError({
221
- message: 'Failed to delete archived state database',
222
- fileName: name,
223
- cause,
224
- }),
225
- }));
226
- return {
227
- retained,
228
- deleted: toDelete,
229
- };
230
130
  });
231
- export class ArchiveStateDbError extends Schema.TaggedError()('ArchiveStateDbError', {
232
- message: Schema.String,
233
- fileName: Schema.optional(Schema.String),
234
- cause: Schema.Defect,
235
- }) {
236
- }
237
- export class SqliteVfsError extends Schema.TaggedError()('SqliteVfsError', {
238
- operation: Schema.String,
239
- fileName: Schema.String,
240
- vfsResultCode: Schema.optional(Schema.Number),
241
- cause: Schema.optional(Schema.Defect),
242
- }) {
243
- }
131
+ const pruneArchiveDirectory = Effect.fn('@livestore/adapter-web:pruneArchiveDirectory')(function* ({ archiveDirectory, keep, }) {
132
+ const archiveDirHandle = yield* Opfs.getDirectoryHandleByPath(archiveDirectory);
133
+ const handlesStream = yield* Opfs.Opfs.values(archiveDirHandle);
134
+ const filesWithMetadata = yield* handlesStream.pipe(Stream.filter((handle) => handle.kind === 'file'), Stream.mapEffect((fileHandle) => Opfs.getMetadata(fileHandle)), Stream.runCollect);
135
+ const filesToDelete = filesWithMetadata.pipe(
136
+ // oxlint-disable-next-line unicorn/no-array-sort -- false positive: Effect Chunk.sort is immutable, not Array#sort (https://github.com/oxc-project/oxc/issues/19110)
137
+ Chunk.sort(Order.mapInput(Order.number, (entry) => entry.lastModified)), Chunk.drop(keep), Chunk.toReadonlyArray);
138
+ if (filesToDelete.length === 0)
139
+ return;
140
+ yield* Effect.forEach(filesToDelete, ({ name }) => Opfs.Opfs.removeEntry(archiveDirHandle, name));
141
+ yield* Effect.logDebug(`Pruned ${filesToDelete.length} old database file(s) from archive directory`);
142
+ });
244
143
  //# sourceMappingURL=persisted-sqlite.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"persisted-sqlite.js","sourceRoot":"","sources":["../../../src/web-worker/common/persisted-sqlite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"persisted-sqlite.js","sourceRoot":"","sources":["../../../src/web-worker/common/persisted-sqlite.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
- import { WebChannel } from '@livestore/utils/effect';
2
- export declare const makeShutdownChannel: (storeId: string) => import("effect/Effect").Effect<WebChannel.WebChannel<import("@livestore/common").UnexpectedError | import("@livestore/common").IntentionalShutdownCause | import("@livestore/common").IsOfflineError | import("@livestore/common").InvalidPushError | import("@livestore/common").InvalidPullError | import("@livestore/common").MaterializeError, import("@livestore/common").UnexpectedError | import("@livestore/common").IntentionalShutdownCause | import("@livestore/common").IsOfflineError | import("@livestore/common").InvalidPushError | import("@livestore/common").InvalidPullError | import("@livestore/common").MaterializeError, never>, never, import("effect/Scope").Scope>;
1
+ import { ShutdownChannel } from '@livestore/common/leader-thread';
2
+ import type { Effect, Scope, WebChannel } from '@livestore/utils/effect';
3
+ export declare const makeShutdownChannel: (storeId: string) => Effect.Effect<WebChannel.WebChannel<typeof ShutdownChannel.All.Type, typeof ShutdownChannel.All.Type>, never, Scope.Scope>;
3
4
  //# sourceMappingURL=shutdown-channel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shutdown-channel.d.ts","sourceRoot":"","sources":["../../../src/web-worker/common/shutdown-channel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEpD,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,kqBAI/C,CAAA"}
1
+ {"version":3,"file":"shutdown-channel.d.ts","sourceRoot":"","sources":["../../../src/web-worker/common/shutdown-channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAGxE,eAAO,MAAM,mBAAmB,GAC9B,SAAS,MAAM,KACd,MAAM,CAAC,MAAM,CACd,UAAU,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EACvF,KAAK,EACL,KAAK,CAAC,KAAK,CAKT,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { ShutdownChannel } from '@livestore/common/leader-thread';
2
- import { WebChannel } from '@livestore/utils/effect';
3
- export const makeShutdownChannel = (storeId) => WebChannel.broadcastChannel({
2
+ import { WebChannelBrowser } from '@livestore/utils/effect/browser';
3
+ export const makeShutdownChannel = (storeId) => WebChannelBrowser.broadcastChannel({
4
4
  channelName: `livestore.shutdown.${storeId}`,
5
5
  schema: ShutdownChannel.All,
6
6
  });
@@ -1 +1 @@
1
- {"version":3,"file":"shutdown-channel.js","sourceRoot":"","sources":["../../../src/web-worker/common/shutdown-channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEpD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAAe,EAAE,EAAE,CACrD,UAAU,CAAC,gBAAgB,CAAC;IAC1B,WAAW,EAAE,sBAAsB,OAAO,EAAE;IAC5C,MAAM,EAAE,eAAe,CAAC,GAAG;CAC5B,CAAC,CAAA"}
1
+ {"version":3,"file":"shutdown-channel.js","sourceRoot":"","sources":["../../../src/web-worker/common/shutdown-channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAEjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,OAAe,EAKf,EAAE,CACF,iBAAiB,CAAC,gBAAgB,CAAC;IACjC,WAAW,EAAE,sBAAsB,OAAO,EAAE;IAC5C,MAAM,EAAE,eAAe,CAAC,GAAG;CAC5B,CAAC,CAAA"}
@@ -1,12 +1,8 @@
1
- import { Schema, WebChannel } from '@livestore/utils/effect';
1
+ import { type Effect, Schema, type Scope, type WebChannel } from '@livestore/utils/effect';
2
2
  declare const DedicatedWorkerDisconnectBroadcast_base: Schema.TaggedStruct<"DedicatedWorkerDisconnectBroadcast", {}>;
3
3
  export declare class DedicatedWorkerDisconnectBroadcast extends DedicatedWorkerDisconnectBroadcast_base {
4
4
  }
5
5
  /** Used across workers for leader election purposes */
6
- export declare const makeWorkerDisconnectChannel: (storeId: string) => import("effect/Effect").Effect<WebChannel.WebChannel<{
7
- readonly _tag: "DedicatedWorkerDisconnectBroadcast";
8
- }, {
9
- readonly _tag: "DedicatedWorkerDisconnectBroadcast";
10
- }, never>, never, import("effect/Scope").Scope>;
6
+ export declare const makeWorkerDisconnectChannel: (storeId: string) => Effect.Effect<WebChannel.WebChannel<typeof DedicatedWorkerDisconnectBroadcast.Type, typeof DedicatedWorkerDisconnectBroadcast.Type>, never, Scope.Scope>;
11
7
  export {};
12
8
  //# sourceMappingURL=worker-disconnect-channel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker-disconnect-channel.d.ts","sourceRoot":"","sources":["../../../src/web-worker/common/worker-disconnect-channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;;AAE5D,qBAAa,kCAAmC,SAAQ,uCAA6D;CAAG;AAExH,uDAAuD;AACvD,eAAO,MAAM,2BAA2B,GAAI,SAAS,MAAM;;;;+CAIvD,CAAA"}
1
+ {"version":3,"file":"worker-disconnect-channel.d.ts","sourceRoot":"","sources":["../../../src/web-worker/common/worker-disconnect-channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,EAAE,KAAK,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAA;;AAG1F,qBAAa,kCAAmC,SAAQ,uCAA6D;CAAG;AAExH,uDAAuD;AACvD,eAAO,MAAM,2BAA2B,GACtC,SAAS,MAAM,KACd,MAAM,CAAC,MAAM,CACd,UAAU,CAAC,UAAU,CAAC,OAAO,kCAAkC,CAAC,IAAI,EAAE,OAAO,kCAAkC,CAAC,IAAI,CAAC,EACrH,KAAK,EACL,KAAK,CAAC,KAAK,CAKT,CAAA"}
@@ -1,8 +1,9 @@
1
- import { Schema, WebChannel } from '@livestore/utils/effect';
1
+ import { Schema } from '@livestore/utils/effect';
2
+ import { WebChannelBrowser } from '@livestore/utils/effect/browser';
2
3
  export class DedicatedWorkerDisconnectBroadcast extends Schema.TaggedStruct('DedicatedWorkerDisconnectBroadcast', {}) {
3
4
  }
4
5
  /** Used across workers for leader election purposes */
5
- export const makeWorkerDisconnectChannel = (storeId) => WebChannel.broadcastChannel({
6
+ export const makeWorkerDisconnectChannel = (storeId) => WebChannelBrowser.broadcastChannel({
6
7
  channelName: `livestore.worker-disconnect.${storeId}`,
7
8
  schema: DedicatedWorkerDisconnectBroadcast,
8
9
  });
@@ -1 +1 @@
1
- {"version":3,"file":"worker-disconnect-channel.js","sourceRoot":"","sources":["../../../src/web-worker/common/worker-disconnect-channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAE5D,MAAM,OAAO,kCAAmC,SAAQ,MAAM,CAAC,YAAY,CAAC,oCAAoC,EAAE,EAAE,CAAC;CAAG;AAExH,uDAAuD;AACvD,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,OAAe,EAAE,EAAE,CAC7D,UAAU,CAAC,gBAAgB,CAAC;IAC1B,WAAW,EAAE,+BAA+B,OAAO,EAAE;IACrD,MAAM,EAAE,kCAAkC;CAC3C,CAAC,CAAA"}
1
+ {"version":3,"file":"worker-disconnect-channel.js","sourceRoot":"","sources":["../../../src/web-worker/common/worker-disconnect-channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,MAAM,EAA+B,MAAM,yBAAyB,CAAA;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,MAAM,OAAO,kCAAmC,SAAQ,MAAM,CAAC,YAAY,CAAC,oCAAoC,EAAE,EAAE,CAAC;CAAG;AAExH,uDAAuD;AACvD,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,OAAe,EAKf,EAAE,CACF,iBAAiB,CAAC,gBAAgB,CAAC;IACjC,WAAW,EAAE,+BAA+B,OAAO,EAAE;IACrD,MAAM,EAAE,kCAAkC;CAC3C,CAAC,CAAA"}