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

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.
@@ -1,5 +1,7 @@
1
1
  export declare const rootHandlePromise: Promise<FileSystemDirectoryHandle>;
2
- export declare const getDirHandle: (absDirPath: string | undefined) => Promise<FileSystemDirectoryHandle>;
2
+ export declare const getDirHandle: (absDirPath: string | undefined, options?: {
3
+ create?: boolean;
4
+ }) => Promise<FileSystemDirectoryHandle>;
3
5
  export declare const printTree: (directoryHandle_?: FileSystemDirectoryHandle | Promise<FileSystemDirectoryHandle>, depth?: number, prefix?: string) => Promise<void>;
4
6
  export declare const deleteAll: (directoryHandle: FileSystemDirectoryHandle) => Promise<void>;
5
7
  //# sourceMappingURL=opfs-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"opfs-utils.d.ts","sourceRoot":"","sources":["../src/opfs-utils.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,iBAAiB,oCAYQ,CAAA;AAEtC,eAAO,MAAM,YAAY,GAAU,YAAY,MAAM,GAAG,SAAS,uCAWhE,CAAA;AAED,eAAO,MAAM,SAAS,GACpB,mBAAkB,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAqB,EACpG,QAAO,MAAiC,EACxC,eAAW,KACV,OAAO,CAAC,IAAI,CAgBd,CAAA;AAED,eAAO,MAAM,SAAS,GAAU,iBAAiB,yBAAyB,kBAMzE,CAAA"}
1
+ {"version":3,"file":"opfs-utils.d.ts","sourceRoot":"","sources":["../src/opfs-utils.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,iBAAiB,oCAYQ,CAAA;AAEtC,eAAO,MAAM,YAAY,GAAU,YAAY,MAAM,GAAG,SAAS,EAAE,UAAS;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,uCAWpG,CAAA;AAED,eAAO,MAAM,SAAS,GACpB,mBAAkB,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAqB,EACpG,QAAO,MAAiC,EACxC,eAAW,KACV,OAAO,CAAC,IAAI,CAgBd,CAAA;AAED,eAAO,MAAM,SAAS,GAAU,iBAAiB,yBAAyB,kBAMzE,CAAA"}
@@ -7,14 +7,14 @@ export const rootHandlePromise = typeof navigator === 'undefined' || navigator.s
7
7
  get: () => Promise.reject(new Error(`Can't get OPFS root handle in this environment as navigator.storage is undefined`)),
8
8
  })
9
9
  : navigator.storage.getDirectory();
10
- export const getDirHandle = async (absDirPath) => {
10
+ export const getDirHandle = async (absDirPath, options = {}) => {
11
11
  const rootHandle = await rootHandlePromise;
12
- if (absDirPath === undefined)
12
+ if (absDirPath === undefined || absDirPath === '' || absDirPath === '/')
13
13
  return rootHandle;
14
14
  let dirHandle = rootHandle;
15
- const directoryStack = absDirPath?.split('/').filter(Boolean);
15
+ const directoryStack = absDirPath.split('/').filter(Boolean);
16
16
  while (directoryStack.length > 0) {
17
- dirHandle = await dirHandle.getDirectoryHandle(directoryStack.shift());
17
+ dirHandle = await dirHandle.getDirectoryHandle(directoryStack.shift(), options);
18
18
  }
19
19
  return dirHandle;
20
20
  };
@@ -1 +1 @@
1
- {"version":3,"file":"opfs-utils.js","sourceRoot":"","sources":["../src/opfs-utils.ts"],"names":[],"mappings":"AAAA,qGAAqG;AAErG,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,2HAA2H;AAC3H,MAAM,CAAC,MAAM,iBAAiB,GAC5B,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,OAAO,KAAK,SAAS;IACjE,CAAC,CAAC,2DAA2D;QAC1D,IAAI,KAAK,CACR,EAAE,EACF;YACE,GAAG,EAAE,GAAG,EAAE,CACR,OAAO,CAAC,MAAM,CACZ,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAC9F;SACJ,CACQ;IACb,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,CAAA;AAEtC,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,UAA8B,EAAE,EAAE;IACnE,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAA;IAC1C,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,UAAU,CAAA;IAE/C,IAAI,SAAS,GAAG,UAAU,CAAA;IAC1B,MAAM,cAAc,GAAG,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC7D,OAAO,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,SAAS,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAAC,cAAc,CAAC,KAAK,EAAG,CAAC,CAAA;IACzE,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC5B,mBAAmF,iBAAiB,EACpG,QAAgB,MAAM,CAAC,iBAAiB,EACxC,MAAM,GAAG,EAAE,EACI,EAAE;IACjB,IAAI,KAAK,GAAG,CAAC;QAAE,OAAM;IAErB,MAAM,eAAe,GAAG,MAAM,gBAAgB,CAAA;IAC9C,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,EAAE,CAAA;IAExC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,KAAK,WAAW,CAAA;QAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC7G,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAE7F,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,qBAAqB,GAAG,MAAM,eAAe,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAClF,MAAM,SAAS,CAAC,qBAAqB,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,MAAM,IAAI,CAAC,CAAA;QAClE,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,eAA0C,EAAE,EAAE;IAC5E,IAAI,eAAe,CAAC,IAAI,KAAK,WAAW;QAAE,OAAM;IAEhD,IAAI,KAAK,EAAE,MAAM,SAAS,IAAI,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC;QACrD,MAAM,eAAe,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACnE,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"opfs-utils.js","sourceRoot":"","sources":["../src/opfs-utils.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,7 @@ export declare const resetPersistedDataFromClientSession: ({ storageOptions, sto
22
22
  }) => Effect.Effect<void, UnexpectedError, never>;
23
23
  export declare const sanitizeOpfsDir: (directory: string | undefined, storeId: string) => string;
24
24
  export declare const getStateDbFileName: (schema: LiveStoreSchema) => string;
25
+ export declare const MAX_ARCHIVED_STATE_DBS_IN_DEV = 3;
25
26
  /**
26
27
  * Cleanup old state database files after successful migration.
27
28
  * This prevents OPFS file pool capacity from being exhausted by accumulated schema files.
@@ -32,7 +33,17 @@ export declare const getStateDbFileName: (schema: LiveStoreSchema) => string;
32
33
  export declare const cleanupOldStateDbFiles: (args_0: {
33
34
  vfs: WebDatabaseMetadataOpfs["vfs"];
34
35
  currentSchema: LiveStoreSchema;
36
+ opfsDirectory: string;
35
37
  }) => Effect.Effect.AsEffect<Effect.Effect<undefined, PersistedSqliteError, never>>;
38
+ declare const ArchiveStateDbError_base: Schema.TaggedErrorClass<ArchiveStateDbError, "ArchiveStateDbError", {
39
+ readonly _tag: Schema.tag<"ArchiveStateDbError">;
40
+ } & {
41
+ message: typeof Schema.String;
42
+ fileName: Schema.optional<typeof Schema.String>;
43
+ cause: typeof Schema.Defect;
44
+ }>;
45
+ export declare class ArchiveStateDbError extends ArchiveStateDbError_base {
46
+ }
36
47
  declare const SqliteVfsError_base: Schema.TaggedErrorClass<SqliteVfsError, "SqliteVfsError", {
37
48
  readonly _tag: Schema.tag<"SqliteVfsError">;
38
49
  } & {
@@ -1 +1 @@
1
- {"version":3,"file":"persisted-sqlite.d.ts","sourceRoot":"","sources":["../../../src/web-worker/common/persisted-sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAClF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAA6C,KAAK,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxH,OAAO,EAAE,MAAM,EAAY,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAGlE,OAAO,KAAK,KAAK,YAAY,MAAM,oBAAoB,CAAA;;;;;;;AAEvD,qBAAa,oBAAqB,SAAQ,yBAGxC;CAAG;AAEL,eAAO,MAAM,mCAAmC,GAAI,sCAIjD;IACD,cAAc,EAAE,YAAY,CAAC,WAAW,CAAA;IACxC,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,eAAe,CAAA;CACxB,qEAuDE,CAAA;AAEH,eAAO,MAAM,mCAAmC,GAAI,8BAGjD;IACD,cAAc,EAAE,YAAY,CAAC,WAAW,CAAA;IACxC,OAAO,EAAE,MAAM,CAAA;CAChB,gDASE,CAAA;AAgCH,eAAO,MAAM,eAAe,GAAI,WAAW,MAAM,GAAG,SAAS,EAAE,SAAS,MAAM,WAY7E,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,QAAQ,eAAe,WAIzD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB;SACS,uBAAuB,CAAC,KAAK,CAAC;mBAAiB,eAAe;mFA0DzG,CAAA;;;;;;;;;AAED,qBAAa,cAAe,SAAQ,mBAKlC;CAAG"}
1
+ {"version":3,"file":"persisted-sqlite.d.ts","sourceRoot":"","sources":["../../../src/web-worker/common/persisted-sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAClF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAA6C,KAAK,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AAExH,OAAO,EAAE,MAAM,EAAY,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAGlE,OAAO,KAAK,KAAK,YAAY,MAAM,oBAAoB,CAAA;;;;;;;AAEvD,qBAAa,oBAAqB,SAAQ,yBAGxC;CAAG;AAEL,eAAO,MAAM,mCAAmC,GAAI,sCAIjD;IACD,cAAc,EAAE,YAAY,CAAC,WAAW,CAAA;IACxC,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,eAAe,CAAA;CACxB,qEAuDE,CAAA;AAEH,eAAO,MAAM,mCAAmC,GAAI,8BAGjD;IACD,cAAc,EAAE,YAAY,CAAC,WAAW,CAAA;IACxC,OAAO,EAAE,MAAM,CAAA;CAChB,gDASE,CAAA;AAgCH,eAAO,MAAM,eAAe,GAAI,WAAW,MAAM,GAAG,SAAS,EAAE,SAAS,MAAM,WAY7E,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,QAAQ,eAAe,WAIzD,CAAA;AAED,eAAO,MAAM,6BAA6B,IAAI,CAAA;AAE9C;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB;SAM1B,uBAAuB,CAAC,KAAK,CAAC;mBACpB,eAAe;mBACf,MAAM;mFAyFxB,CAAA;;;;;;;;AAkGD,qBAAa,mBAAoB,SAAQ,wBAIvC;CAAG;;;;;;;;;AAEL,qBAAa,cAAe,SAAQ,mBAKlC;CAAG"}
@@ -1,5 +1,6 @@
1
1
  import { liveStoreStorageFormatVersion, UnexpectedError } from '@livestore/common';
2
2
  import { decodeSAHPoolFilename, HEADER_OFFSET_DATA } from '@livestore/sqlite-wasm/browser';
3
+ import { isDevEnv } from '@livestore/utils';
3
4
  import { Effect, Schedule, Schema } from '@livestore/utils/effect';
4
5
  import * as OpfsUtils from "../../opfs-utils.js";
5
6
  export class PersistedSqliteError extends Schema.TaggedError()('PersistedSqliteError', {
@@ -90,6 +91,7 @@ export const getStateDbFileName = (schema) => {
90
91
  const schemaHashSuffix = schema.state.sqlite.migrations.strategy === 'manual' ? 'fixed' : schema.state.sqlite.hash.toString();
91
92
  return `state${schemaHashSuffix}.db`;
92
93
  };
94
+ export const MAX_ARCHIVED_STATE_DBS_IN_DEV = 3;
93
95
  /**
94
96
  * Cleanup old state database files after successful migration.
95
97
  * This prevents OPFS file pool capacity from being exhausted by accumulated schema files.
@@ -97,7 +99,7 @@ export const getStateDbFileName = (schema) => {
97
99
  * @param vfs - The AccessHandlePoolVFS instance for safe file operations
98
100
  * @param currentSchema - Current schema (to avoid deleting the active database)
99
101
  */
100
- export const cleanupOldStateDbFiles = Effect.fn('@livestore/adapter-web:cleanupOldStateDbFiles')(function* ({ vfs, currentSchema }) {
102
+ export const cleanupOldStateDbFiles = Effect.fn('@livestore/adapter-web:cleanupOldStateDbFiles')(function* ({ vfs, currentSchema, opfsDirectory, }) {
101
103
  // Only cleanup for auto migration strategy because:
102
104
  // - Auto strategy: Creates new database files per schema change (e.g., state123.db, state456.db)
103
105
  // which accumulate over time and can exhaust OPFS file pool capacity
@@ -107,6 +109,7 @@ export const cleanupOldStateDbFiles = Effect.fn('@livestore/adapter-web:cleanupO
107
109
  yield* Effect.logDebug('Skipping state db cleanup - manual migration strategy uses fixed filename');
108
110
  return;
109
111
  }
112
+ const isDev = isDevEnv();
110
113
  const currentDbFileName = getStateDbFileName(currentSchema);
111
114
  const currentPath = `/${currentDbFileName}`;
112
115
  const allPaths = yield* Effect.sync(() => vfs.getTrackedFilePaths());
@@ -117,8 +120,22 @@ export const cleanupOldStateDbFiles = Effect.fn('@livestore/adapter-web:cleanupO
117
120
  }
118
121
  yield* Effect.logDebug(`Found ${oldStateDbPaths.length} old state database file(s) to clean up`);
119
122
  let deletedCount = 0;
123
+ const archivedFileNames = [];
124
+ let archiveDirHandle;
120
125
  for (const path of oldStateDbPaths) {
121
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);
138
+ }
122
139
  const vfsResultCode = yield* Effect.try({
123
140
  try: () => vfs.jDelete(fileName, 0),
124
141
  catch: (cause) => new SqliteVfsError({ operation: 'jDelete', fileName, cause }),
@@ -135,11 +152,88 @@ export const cleanupOldStateDbFiles = Effect.fn('@livestore/adapter-web:cleanupO
135
152
  deletedCount++;
136
153
  yield* Effect.logDebug(`Successfully deleted old state database file: ${fileName}`);
137
154
  }
138
- yield* Effect.logDebug(`State db cleanup completed: removed ${deletedCount} old database file(s)`);
155
+ if (isDev && archiveDirHandle !== undefined) {
156
+ const pruneResult = yield* pruneArchiveDir({
157
+ archiveDirHandle,
158
+ keep: MAX_ARCHIVED_STATE_DBS_IN_DEV,
159
+ });
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
+ }
162
+ else {
163
+ yield* Effect.logDebug(`State db cleanup completed: removed ${deletedCount} old database file(s)`);
164
+ }
139
165
  }, Effect.mapError((error) => new PersistedSqliteError({
140
166
  message: 'Failed to clean up old state database file(s)',
141
167
  cause: error,
142
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
+ });
231
+ export class ArchiveStateDbError extends Schema.TaggedError()('ArchiveStateDbError', {
232
+ message: Schema.String,
233
+ fileName: Schema.optional(Schema.String),
234
+ cause: Schema.Defect,
235
+ }) {
236
+ }
143
237
  export class SqliteVfsError extends Schema.TaggedError()('SqliteVfsError', {
144
238
  operation: Schema.String,
145
239
  fileName: Schema.String,
@@ -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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"}
@@ -173,19 +173,19 @@ declare const LeaderWorkerInnerExtraDevtoolsMessage_base: Schema.TaggedRequestCl
173
173
  data: Schema.Schema<Uint8Array<ArrayBuffer>>;
174
174
  } & {
175
175
  readonly requestId: typeof Schema.String;
176
- readonly liveStoreVersion: Schema.Literal<["0.4.0-dev.7"]>;
176
+ readonly liveStoreVersion: Schema.Literal<["0.4.0-dev.9"]>;
177
177
  readonly clientId: typeof Schema.String;
178
178
  }>, typeof Devtools.Leader.EventlogReq, Schema.TaggedStruct<"LSD.Leader.ResetAllData.Request", {
179
179
  mode: Schema.Literal<["all-data", "only-app-db"]>;
180
180
  } & {
181
181
  readonly requestId: typeof Schema.String;
182
- readonly liveStoreVersion: Schema.Literal<["0.4.0-dev.7"]>;
182
+ readonly liveStoreVersion: Schema.Literal<["0.4.0-dev.9"]>;
183
183
  readonly clientId: typeof Schema.String;
184
184
  }>, typeof Devtools.Leader.NetworkStatusSubscribe, typeof Devtools.Leader.NetworkStatusUnsubscribe, typeof Devtools.Leader.Disconnect, typeof Devtools.Leader.CommitEventReq, typeof Devtools.Leader.Ping, typeof Devtools.Leader.DatabaseFileInfoReq, typeof Devtools.Leader.SyncHistorySubscribe, typeof Devtools.Leader.SyncHistoryUnsubscribe, typeof Devtools.Leader.SyncingInfoReq, typeof Devtools.Leader.SyncHeadSubscribe, typeof Devtools.Leader.SyncHeadUnsubscribe, Schema.TaggedStruct<"LSD.Leader.SetSyncLatch.Request", {
185
185
  closeLatch: typeof Schema.Boolean;
186
186
  } & {
187
187
  readonly requestId: typeof Schema.String;
188
- readonly liveStoreVersion: Schema.Literal<["0.4.0-dev.7"]>;
188
+ readonly liveStoreVersion: Schema.Literal<["0.4.0-dev.9"]>;
189
189
  readonly clientId: typeof Schema.String;
190
190
  }>]>;
191
191
  }, typeof Schema.Void, typeof UnexpectedError>;
@@ -202,7 +202,7 @@ declare const SharedWorkerInitialMessage_base: Schema.TaggedRequestClass<SharedW
202
202
  readonly _tag: Schema.tag<"InitialMessage">;
203
203
  } & {
204
204
  payload: Schema.Union<[typeof SharedWorkerInitialMessagePayloadFromClientSession, Schema.TaggedStruct<"FromWebBridge", {}>]>;
205
- liveStoreVersion: Schema.Literal<["0.4.0-dev.7"]>;
205
+ liveStoreVersion: Schema.Literal<["0.4.0-dev.9"]>;
206
206
  }, typeof Schema.Void, typeof UnexpectedError>;
207
207
  export declare class SharedWorkerInitialMessage extends SharedWorkerInitialMessage_base {
208
208
  }
@@ -69,6 +69,7 @@ const makeWorkerRunnerInner = ({ schema, sync: syncOptions }) => WorkerRunner.la
69
69
  yield* cleanupOldStateDbFiles({
70
70
  vfs: dbState.metadata.vfs,
71
71
  currentSchema: schema,
72
+ opfsDirectory: dbState.metadata.persistenceInfo.opfsDirectory,
72
73
  });
73
74
  }
74
75
  const devtoolsOptions = yield* makeDevtoolsOptions({ devtoolsEnabled, dbState, dbEventlog });
@@ -1 +1 @@
1
- {"version":3,"file":"make-leader-worker.js","sourceRoot":"","sources":["../../../src/web-worker/leader-worker/make-leader-worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"make-leader-worker.js","sourceRoot":"","sources":["../../../src/web-worker/leader-worker/make-leader-worker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@livestore/adapter-web",
3
- "version": "0.4.0-dev.7",
3
+ "version": "0.4.0-dev.9",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "exports": {
@@ -13,14 +13,14 @@
13
13
  },
14
14
  "dependencies": {
15
15
  "@opentelemetry/api": "1.9.0",
16
- "@livestore/common": "0.4.0-dev.7",
17
- "@livestore/devtools-web-common": "0.4.0-dev.7",
18
- "@livestore/sqlite-wasm": "0.4.0-dev.7",
19
- "@livestore/webmesh": "0.4.0-dev.7",
20
- "@livestore/utils": "0.4.0-dev.7"
16
+ "@livestore/common": "0.4.0-dev.9",
17
+ "@livestore/utils": "0.4.0-dev.9",
18
+ "@livestore/devtools-web-common": "0.4.0-dev.9",
19
+ "@livestore/sqlite-wasm": "0.4.0-dev.9",
20
+ "@livestore/webmesh": "0.4.0-dev.9"
21
21
  },
22
22
  "devDependencies": {
23
- "@types/chrome": "^0.1.4",
23
+ "@types/chrome": "0.1.4",
24
24
  "@types/wicg-file-system-access": "^2023.10.6",
25
25
  "vitest": "3.2.4"
26
26
  },
package/src/opfs-utils.ts CHANGED
@@ -17,14 +17,14 @@ export const rootHandlePromise =
17
17
  ) as never)
18
18
  : navigator.storage.getDirectory()
19
19
 
20
- export const getDirHandle = async (absDirPath: string | undefined) => {
20
+ export const getDirHandle = async (absDirPath: string | undefined, options: { create?: boolean } = {}) => {
21
21
  const rootHandle = await rootHandlePromise
22
- if (absDirPath === undefined) return rootHandle
22
+ if (absDirPath === undefined || absDirPath === '' || absDirPath === '/') return rootHandle
23
23
 
24
24
  let dirHandle = rootHandle
25
- const directoryStack = absDirPath?.split('/').filter(Boolean)
25
+ const directoryStack = absDirPath.split('/').filter(Boolean)
26
26
  while (directoryStack.length > 0) {
27
- dirHandle = await dirHandle.getDirectoryHandle(directoryStack.shift()!)
27
+ dirHandle = await dirHandle.getDirectoryHandle(directoryStack.shift()!, options)
28
28
  }
29
29
 
30
30
  return dirHandle
@@ -1,6 +1,7 @@
1
1
  import { liveStoreStorageFormatVersion, UnexpectedError } from '@livestore/common'
2
2
  import type { LiveStoreSchema } from '@livestore/common/schema'
3
3
  import { decodeSAHPoolFilename, HEADER_OFFSET_DATA, type WebDatabaseMetadataOpfs } from '@livestore/sqlite-wasm/browser'
4
+ import { isDevEnv } from '@livestore/utils'
4
5
  import { Effect, Schedule, Schema } from '@livestore/utils/effect'
5
6
 
6
7
  import * as OpfsUtils from '../../opfs-utils.ts'
@@ -143,6 +144,8 @@ export const getStateDbFileName = (schema: LiveStoreSchema) => {
143
144
  return `state${schemaHashSuffix}.db`
144
145
  }
145
146
 
147
+ export const MAX_ARCHIVED_STATE_DBS_IN_DEV = 3
148
+
146
149
  /**
147
150
  * Cleanup old state database files after successful migration.
148
151
  * This prevents OPFS file pool capacity from being exhausted by accumulated schema files.
@@ -151,7 +154,15 @@ export const getStateDbFileName = (schema: LiveStoreSchema) => {
151
154
  * @param currentSchema - Current schema (to avoid deleting the active database)
152
155
  */
153
156
  export const cleanupOldStateDbFiles = Effect.fn('@livestore/adapter-web:cleanupOldStateDbFiles')(
154
- function* ({ vfs, currentSchema }: { vfs: WebDatabaseMetadataOpfs['vfs']; currentSchema: LiveStoreSchema }) {
157
+ function* ({
158
+ vfs,
159
+ currentSchema,
160
+ opfsDirectory,
161
+ }: {
162
+ vfs: WebDatabaseMetadataOpfs['vfs']
163
+ currentSchema: LiveStoreSchema
164
+ opfsDirectory: string
165
+ }) {
155
166
  // Only cleanup for auto migration strategy because:
156
167
  // - Auto strategy: Creates new database files per schema change (e.g., state123.db, state456.db)
157
168
  // which accumulate over time and can exhaust OPFS file pool capacity
@@ -162,6 +173,7 @@ export const cleanupOldStateDbFiles = Effect.fn('@livestore/adapter-web:cleanupO
162
173
  return
163
174
  }
164
175
 
176
+ const isDev = isDevEnv()
165
177
  const currentDbFileName = getStateDbFileName(currentSchema)
166
178
  const currentPath = `/${currentDbFileName}`
167
179
 
@@ -178,9 +190,27 @@ export const cleanupOldStateDbFiles = Effect.fn('@livestore/adapter-web:cleanupO
178
190
  yield* Effect.logDebug(`Found ${oldStateDbPaths.length} old state database file(s) to clean up`)
179
191
 
180
192
  let deletedCount = 0
193
+ const archivedFileNames: string[] = []
194
+ let archiveDirHandle: FileSystemDirectoryHandle | undefined
195
+
181
196
  for (const path of oldStateDbPaths) {
182
197
  const fileName = path.startsWith('/') ? path.slice(1) : path
183
198
 
199
+ if (isDev) {
200
+ archiveDirHandle = yield* Effect.tryPromise({
201
+ try: () => OpfsUtils.getDirHandle(`${opfsDirectory}/archive`, { create: true }),
202
+ catch: (cause) => new ArchiveStateDbError({ message: 'Failed to ensure archive directory', cause }),
203
+ })
204
+
205
+ const archivedFileName = yield* archiveStateDbFile({
206
+ vfs,
207
+ fileName,
208
+ archiveDirHandle,
209
+ })
210
+
211
+ archivedFileNames.push(archivedFileName)
212
+ }
213
+
184
214
  const vfsResultCode = yield* Effect.try({
185
215
  try: () => vfs.jDelete(fileName, 0),
186
216
  catch: (cause) => new SqliteVfsError({ operation: 'jDelete', fileName, cause }),
@@ -200,7 +230,18 @@ export const cleanupOldStateDbFiles = Effect.fn('@livestore/adapter-web:cleanupO
200
230
  yield* Effect.logDebug(`Successfully deleted old state database file: ${fileName}`)
201
231
  }
202
232
 
203
- yield* Effect.logDebug(`State db cleanup completed: removed ${deletedCount} old database file(s)`)
233
+ if (isDev && archiveDirHandle !== undefined) {
234
+ const pruneResult = yield* pruneArchiveDir({
235
+ archiveDirHandle,
236
+ keep: MAX_ARCHIVED_STATE_DBS_IN_DEV,
237
+ })
238
+
239
+ yield* Effect.logDebug(
240
+ `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)`,
241
+ )
242
+ } else {
243
+ yield* Effect.logDebug(`State db cleanup completed: removed ${deletedCount} old database file(s)`)
244
+ }
204
245
  },
205
246
  Effect.mapError(
206
247
  (error) =>
@@ -211,6 +252,108 @@ export const cleanupOldStateDbFiles = Effect.fn('@livestore/adapter-web:cleanupO
211
252
  ),
212
253
  )
213
254
 
255
+ const archiveStateDbFile = Effect.fn('@livestore/adapter-web:archiveStateDbFile')(function* ({
256
+ vfs,
257
+ fileName,
258
+ archiveDirHandle,
259
+ }: {
260
+ vfs: WebDatabaseMetadataOpfs['vfs']
261
+ fileName: string
262
+ archiveDirHandle: FileSystemDirectoryHandle
263
+ }) {
264
+ const stateDbBuffer = vfs.readFilePayload(fileName)
265
+
266
+ const archiveFileName = `${Date.now()}-${fileName}`
267
+
268
+ const archiveFileHandle = yield* Effect.tryPromise({
269
+ try: () => archiveDirHandle.getFileHandle(archiveFileName, { create: true }),
270
+ catch: (cause) =>
271
+ new ArchiveStateDbError({
272
+ message: 'Failed to open archive file handle',
273
+ fileName: archiveFileName,
274
+ cause,
275
+ }),
276
+ })
277
+
278
+ const archiveFileAccessHandle = yield* Effect.acquireRelease(
279
+ Effect.tryPromise({
280
+ try: () => archiveFileHandle.createSyncAccessHandle(),
281
+ catch: (cause) =>
282
+ new ArchiveStateDbError({
283
+ message: 'Failed to create sync access handle for archived file',
284
+ fileName: archiveFileName,
285
+ cause,
286
+ }),
287
+ }),
288
+ (handle) => Effect.sync(() => handle.close()).pipe(Effect.ignoreLogged),
289
+ )
290
+
291
+ yield* Effect.try({
292
+ try: () => {
293
+ archiveFileAccessHandle.write(stateDbBuffer)
294
+ archiveFileAccessHandle.flush()
295
+ },
296
+ catch: (cause) =>
297
+ new ArchiveStateDbError({
298
+ message: 'Failed to write archived state database',
299
+ fileName: archiveFileName,
300
+ cause,
301
+ }),
302
+ })
303
+
304
+ return archiveFileName
305
+ }, Effect.scoped)
306
+
307
+ const pruneArchiveDir = Effect.fn('@livestore/adapter-web:pruneArchiveDir')(function* ({
308
+ archiveDirHandle,
309
+ keep,
310
+ }: {
311
+ archiveDirHandle: FileSystemDirectoryHandle
312
+ keep: number
313
+ }) {
314
+ const files = yield* Effect.tryPromise({
315
+ try: async () => {
316
+ const result: { name: string; lastModified: number }[] = []
317
+
318
+ for await (const entry of archiveDirHandle.values()) {
319
+ if (entry.kind !== 'file') continue
320
+ const fileHandle = await archiveDirHandle.getFileHandle(entry.name)
321
+ const file = await fileHandle.getFile()
322
+ result.push({ name: entry.name, lastModified: file.lastModified })
323
+ }
324
+
325
+ return result.sort((a, b) => b.lastModified - a.lastModified)
326
+ },
327
+ catch: (cause) => new ArchiveStateDbError({ message: 'Failed to enumerate archived state databases', cause }),
328
+ })
329
+
330
+ const retained = files.slice(0, keep)
331
+ const toDelete = files.slice(keep)
332
+
333
+ yield* Effect.forEach(toDelete, ({ name }) =>
334
+ Effect.tryPromise({
335
+ try: () => archiveDirHandle.removeEntry(name),
336
+ catch: (cause) =>
337
+ new ArchiveStateDbError({
338
+ message: 'Failed to delete archived state database',
339
+ fileName: name,
340
+ cause,
341
+ }),
342
+ }),
343
+ )
344
+
345
+ return {
346
+ retained,
347
+ deleted: toDelete,
348
+ }
349
+ })
350
+
351
+ export class ArchiveStateDbError extends Schema.TaggedError<ArchiveStateDbError>()('ArchiveStateDbError', {
352
+ message: Schema.String,
353
+ fileName: Schema.optional(Schema.String),
354
+ cause: Schema.Defect,
355
+ }) {}
356
+
214
357
  export class SqliteVfsError extends Schema.TaggedError<SqliteVfsError>()('SqliteVfsError', {
215
358
  operation: Schema.String,
216
359
  fileName: Schema.String,
@@ -137,6 +137,7 @@ const makeWorkerRunnerInner = ({ schema, sync: syncOptions }: WorkerOptions) =>
137
137
  yield* cleanupOldStateDbFiles({
138
138
  vfs: dbState.metadata.vfs,
139
139
  currentSchema: schema,
140
+ opfsDirectory: dbState.metadata.persistenceInfo.opfsDirectory,
140
141
  })
141
142
  }
142
143