@livestore/sqlite-wasm 0.4.0-dev.8 → 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 (93) hide show
  1. package/README.md +1 -1
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/FacadeVFS.d.ts +0 -1
  4. package/dist/FacadeVFS.d.ts.map +1 -1
  5. package/dist/FacadeVFS.js +13 -14
  6. package/dist/FacadeVFS.js.map +1 -1
  7. package/dist/browser/mod.d.ts +13 -6
  8. package/dist/browser/mod.d.ts.map +1 -1
  9. package/dist/browser/mod.js +49 -43
  10. package/dist/browser/mod.js.map +1 -1
  11. package/dist/browser/opfs/AccessHandlePoolVFS.d.ts +33 -17
  12. package/dist/browser/opfs/AccessHandlePoolVFS.d.ts.map +1 -1
  13. package/dist/browser/opfs/AccessHandlePoolVFS.js +187 -152
  14. package/dist/browser/opfs/AccessHandlePoolVFS.js.map +1 -1
  15. package/dist/browser/opfs/index.d.ts +3 -2
  16. package/dist/browser/opfs/index.d.ts.map +1 -1
  17. package/dist/browser/opfs/index.js +1 -1
  18. package/dist/browser/opfs/index.js.map +1 -1
  19. package/dist/browser/opfs/opfs-sah-pool.d.ts +1 -1
  20. package/dist/browser/opfs/opfs-sah-pool.d.ts.map +1 -1
  21. package/dist/browser/opfs/opfs-sah-pool.js +4 -4
  22. package/dist/browser/opfs/opfs-sah-pool.js.map +1 -1
  23. package/dist/cf/CloudflareDurableObjectVFS.d.ts +104 -0
  24. package/dist/cf/CloudflareDurableObjectVFS.d.ts.map +1 -0
  25. package/dist/cf/CloudflareDurableObjectVFS.js +281 -0
  26. package/dist/cf/CloudflareDurableObjectVFS.js.map +1 -0
  27. package/dist/cf/CloudflareWorkerVFS.d.ts.map +1 -1
  28. package/dist/cf/CloudflareWorkerVFS.js +29 -28
  29. package/dist/cf/CloudflareWorkerVFS.js.map +1 -1
  30. package/dist/cf/mod.d.ts +3 -4
  31. package/dist/cf/mod.d.ts.map +1 -1
  32. package/dist/cf/mod.js +6 -14
  33. package/dist/cf/mod.js.map +1 -1
  34. package/dist/cf/test/async-storage/cloudflare-worker-vfs-advanced.test.js +5 -4
  35. package/dist/cf/test/async-storage/cloudflare-worker-vfs-advanced.test.js.map +1 -1
  36. package/dist/cf/test/async-storage/cloudflare-worker-vfs-core.test.js +3 -3
  37. package/dist/cf/test/async-storage/cloudflare-worker-vfs-core.test.js.map +1 -1
  38. package/dist/cf/test/async-storage/cloudflare-worker-vfs-integration.test.js +21 -3
  39. package/dist/cf/test/async-storage/cloudflare-worker-vfs-integration.test.js.map +1 -1
  40. package/dist/cf/test/async-storage/cloudflare-worker-vfs-reliability.test.js +3 -3
  41. package/dist/cf/test/async-storage/cloudflare-worker-vfs-reliability.test.js.map +1 -1
  42. package/dist/cf/test/sql/cloudflare-sql-vfs-core.test.js +194 -179
  43. package/dist/cf/test/sql/cloudflare-sql-vfs-core.test.js.map +1 -1
  44. package/dist/in-memory-vfs.d.ts.map +1 -1
  45. package/dist/in-memory-vfs.js +0 -1
  46. package/dist/in-memory-vfs.js.map +1 -1
  47. package/dist/load-wasm/mod.node.js +1 -1
  48. package/dist/load-wasm/mod.node.js.map +1 -1
  49. package/dist/load-wasm/mod.workerd.d.ts.map +1 -1
  50. package/dist/load-wasm/mod.workerd.js +2 -0
  51. package/dist/load-wasm/mod.workerd.js.map +1 -1
  52. package/dist/make-sqlite-db.d.ts.map +1 -1
  53. package/dist/make-sqlite-db.js +45 -12
  54. package/dist/make-sqlite-db.js.map +1 -1
  55. package/dist/node/NodeFS.d.ts.map +1 -1
  56. package/dist/node/NodeFS.js +13 -13
  57. package/dist/node/NodeFS.js.map +1 -1
  58. package/dist/node/mod.d.ts.map +1 -1
  59. package/dist/node/mod.js +2 -2
  60. package/dist/node/mod.js.map +1 -1
  61. package/package.json +56 -17
  62. package/src/FacadeVFS.ts +14 -14
  63. package/src/browser/mod.ts +38 -13
  64. package/src/browser/opfs/AccessHandlePoolVFS.ts +374 -240
  65. package/src/browser/opfs/index.ts +4 -3
  66. package/src/browser/opfs/opfs-sah-pool.ts +4 -4
  67. package/src/cf/CloudflareDurableObjectVFS.ts +325 -0
  68. package/src/cf/CloudflareWorkerVFS.ts +41 -39
  69. package/src/cf/README.md +3 -3
  70. package/src/cf/mod.ts +12 -17
  71. package/src/cf/test/README.md +55 -26
  72. package/src/cf/test/async-storage/cloudflare-worker-vfs-advanced.test.ts +6 -4
  73. package/src/cf/test/async-storage/cloudflare-worker-vfs-core.test.ts +4 -3
  74. package/src/cf/test/async-storage/cloudflare-worker-vfs-integration.test.ts +22 -3
  75. package/src/cf/test/async-storage/cloudflare-worker-vfs-reliability.test.ts +4 -3
  76. package/src/cf/test/sql/cloudflare-sql-vfs-core.test.ts +228 -197
  77. package/src/in-memory-vfs.ts +0 -1
  78. package/src/load-wasm/mod.node.ts +1 -1
  79. package/src/load-wasm/mod.workerd.ts +2 -1
  80. package/src/make-sqlite-db.ts +62 -12
  81. package/src/node/NodeFS.ts +24 -23
  82. package/src/node/mod.ts +2 -2
  83. package/dist/cf/BlockManager.d.ts +0 -61
  84. package/dist/cf/BlockManager.d.ts.map +0 -1
  85. package/dist/cf/BlockManager.js +0 -157
  86. package/dist/cf/BlockManager.js.map +0 -1
  87. package/dist/cf/CloudflareSqlVFS.d.ts +0 -51
  88. package/dist/cf/CloudflareSqlVFS.d.ts.map +0 -1
  89. package/dist/cf/CloudflareSqlVFS.js +0 -351
  90. package/dist/cf/CloudflareSqlVFS.js.map +0 -1
  91. package/src/ambient.d.ts +0 -18
  92. package/src/cf/BlockManager.ts +0 -225
  93. package/src/cf/CloudflareSqlVFS.ts +0 -450
@@ -1,5 +1,8 @@
1
- import { Effect, Schedule, Schema } from '@livestore/utils/effect';
2
1
  // Based on https://github.com/rhashimoto/wa-sqlite/blob/master/src/examples/AccessHandlePoolVFS.js
2
+ /// <reference lib="webworker" />
3
+ import { shouldNeverHappen } from '@livestore/utils';
4
+ import { Effect, Runtime, Schedule, Stream } from '@livestore/utils/effect';
5
+ import { Opfs } from '@livestore/utils/effect/browser';
3
6
  import * as VFS from '@livestore/wa-sqlite/src/VFS.js';
4
7
  import { FacadeVFS } from "../../FacadeVFS.js";
5
8
  const SECTOR_SIZE = 4096;
@@ -34,8 +37,8 @@ const PERSISTENT_FILE_TYPES = VFS.SQLITE_OPEN_MAIN_DB | VFS.SQLITE_OPEN_MAIN_JOU
34
37
  // - 2 main databases (state + eventlog) × 4 files each (main, journal, WAL, shm) = 8 files
35
38
  // - Up to 5 SQLite temporary files (super-journal, temp DB, materializations,
36
39
  // transient indices, VACUUM temp DB) = 5 files
37
- // - 3 old state databases after migrations for debugging during development = 3 files
38
- // - Safety buffer for future SQLite versions and unpredictable usage = 4 files
40
+ // - Transient state database archival operations = 1 file
41
+ // - Safety buffer for future SQLite versions and unpredictable usage = 6 files
39
42
  // Total: 20 files
40
43
  //
41
44
  // References:
@@ -54,6 +57,8 @@ export class AccessHandlePoolVFS extends FacadeVFS {
54
57
  // specified in the constructor. No other files should be written here.
55
58
  #directoryPath;
56
59
  #directoryHandle;
60
+ // Runtime for executing Effect operations
61
+ #runtime;
57
62
  // The OPFS files all have randomly-generated names that do not match
58
63
  // the SQLite files whose data they contain. This map links those names
59
64
  // with their respective OPFS access handles.
@@ -64,105 +69,155 @@ export class AccessHandlePoolVFS extends FacadeVFS {
64
69
  #mapPathToAccessHandle = new Map();
65
70
  #availableAccessHandles = new Set();
66
71
  #mapIdToFile = new Map();
67
- static async create(name, directoryPath, module) {
68
- const vfs = new AccessHandlePoolVFS(name, directoryPath, module);
69
- await vfs.isReady();
72
+ static create = Effect.fn(function* (name, directoryPath, module) {
73
+ const runtime = yield* Effect.runtime();
74
+ const vfs = new AccessHandlePoolVFS({ name, directoryPath, module, runtime });
75
+ yield* Effect.promise(() => vfs.isReady());
70
76
  return vfs;
71
- }
72
- constructor(name, directoryPath, module) {
77
+ });
78
+ constructor({ name, directoryPath, module, runtime, }) {
73
79
  super(name, module);
74
80
  this.#directoryPath = directoryPath;
81
+ this.#runtime = runtime;
75
82
  }
76
- getOpfsFileName(zName) {
83
+ /**
84
+ * Get the OPFS file name that contains the data for the given SQLite file.
85
+ *
86
+ * @remarks
87
+ *
88
+ * This would be for one of the files in the pool managed by this VFS.
89
+ * It's not the same as the SQLite file name. It's a randomly-generated
90
+ * string that is not meaningful to the application.
91
+ */
92
+ getOpfsFileName = Effect.fn((zName) => Effect.gen(this, function* () {
77
93
  const path = this.#getPath(zName);
78
94
  const accessHandle = this.#mapPathToAccessHandle.get(path);
79
95
  return this.#mapAccessHandleToName.get(accessHandle);
80
- }
81
- resetAccessHandle(zName) {
96
+ }));
97
+ /**
98
+ * Reads the SQLite payload (without the OPFS header) for the given file.
99
+ *
100
+ * @privateRemarks
101
+ *
102
+ * Since the file's access handle is a FileSystemSyncAccessHandle — which
103
+ * acquires an exclusive lock — we don't need to handle short reads as
104
+ * the file cannot be modified by other threads.
105
+ */
106
+ readFilePayload = Effect.fn((zName) => Effect.gen(this, function* () {
82
107
  const path = this.#getPath(zName);
83
108
  const accessHandle = this.#mapPathToAccessHandle.get(path);
84
- accessHandle.truncate(HEADER_OFFSET_DATA);
109
+ if (accessHandle === undefined) {
110
+ return shouldNeverHappen('Cannot read payload for untracked OPFS path');
111
+ }
112
+ const fileSize = yield* Opfs.Opfs.syncGetSize(accessHandle);
113
+ if (fileSize <= HEADER_OFFSET_DATA) {
114
+ return shouldNeverHappen(`OPFS file too small to contain header and payload: size ${fileSize} < HEADER_OFFSET_DATA ${HEADER_OFFSET_DATA}`);
115
+ }
116
+ const payloadSize = fileSize - HEADER_OFFSET_DATA;
117
+ const payload = new Uint8Array(payloadSize);
118
+ const bytesRead = yield* Opfs.Opfs.syncRead(accessHandle, payload, { at: HEADER_OFFSET_DATA });
119
+ if (bytesRead !== payloadSize) {
120
+ return shouldNeverHappen(`Failed to read full payload from OPFS file: read ${bytesRead}/${payloadSize}`);
121
+ }
122
+ return payload.buffer;
123
+ }));
124
+ resetAccessHandle = Effect.fn((zName) => Effect.gen(this, function* () {
125
+ const path = this.#getPath(zName);
126
+ const accessHandle = this.#mapPathToAccessHandle.get(path);
127
+ yield* Opfs.Opfs.syncTruncate(accessHandle, HEADER_OFFSET_DATA);
85
128
  // accessHandle.write(new Uint8Array(), { at: HEADER_OFFSET_DATA })
86
129
  // accessHandle.flush()
87
- }
130
+ }));
88
131
  jOpen(zName, fileId, flags, pOutFlags) {
89
- try {
132
+ return Effect.gen(this, function* () {
90
133
  // First try to open a path that already exists in the file system.
91
- const path = zName ? this.#getPath(zName) : Math.random().toString(36);
134
+ const name = zName;
135
+ const path = typeof name === 'string' && name !== '' ? this.#getPath(name) : Math.random().toString(36);
92
136
  let accessHandle = this.#mapPathToAccessHandle.get(path);
93
- if (!accessHandle && flags & VFS.SQLITE_OPEN_CREATE) {
137
+ if (accessHandle == null && (flags & VFS.SQLITE_OPEN_CREATE) !== 0) {
94
138
  // File not found so try to create it.
95
139
  if (this.getSize() < this.getCapacity()) {
96
140
  // Choose an unassociated OPFS file from the pool.
97
141
  ;
98
142
  [accessHandle] = this.#availableAccessHandles.keys();
99
- this.#setAssociatedPath(accessHandle, path, flags);
143
+ yield* this.#setAssociatedPath(accessHandle, path, flags);
100
144
  }
101
145
  else {
102
146
  // Out of unassociated files. This can be fixed by calling
103
147
  // addCapacity() from the application.
104
- throw new Error('cannot create file');
148
+ return yield* Effect.dieMessage('cannot create file');
105
149
  }
106
150
  }
107
- if (!accessHandle) {
108
- throw new Error('file not found');
109
- }
151
+ if (accessHandle == null)
152
+ return yield* Effect.dieMessage('file not found');
110
153
  // Subsequent methods are only passed the fileId, so make sure we have
111
154
  // a way to get the file resources.
112
155
  const file = { path, flags, accessHandle };
113
156
  this.#mapIdToFile.set(fileId, file);
114
157
  pOutFlags.setInt32(0, flags, true);
115
158
  return VFS.SQLITE_OK;
116
- }
117
- catch (e) {
118
- console.error(e.message);
119
- return VFS.SQLITE_CANTOPEN;
120
- }
159
+ }).pipe(Effect.tapCauseLogPretty, Effect.catchAllCause(() => Effect.succeed(VFS.SQLITE_CANTOPEN)), Runtime.runSync(this.#runtime));
121
160
  }
122
161
  jClose(fileId) {
123
- const file = this.#mapIdToFile.get(fileId);
124
- if (file) {
125
- file.accessHandle.flush();
126
- this.#mapIdToFile.delete(fileId);
127
- if (file.flags & VFS.SQLITE_OPEN_DELETEONCLOSE) {
128
- this.#deletePath(file.path);
162
+ return Effect.gen(this, function* () {
163
+ const file = this.#mapIdToFile.get(fileId);
164
+ if (file !== undefined) {
165
+ yield* Opfs.Opfs.syncFlush(file.accessHandle);
166
+ this.#mapIdToFile.delete(fileId);
167
+ if ((file.flags & VFS.SQLITE_OPEN_DELETEONCLOSE) !== 0) {
168
+ yield* this.#deletePath(file.path);
169
+ }
129
170
  }
130
- }
131
- return VFS.SQLITE_OK;
171
+ return VFS.SQLITE_OK;
172
+ }).pipe(Effect.tapCauseLogPretty, Effect.catchAllCause(() => Effect.succeed(VFS.SQLITE_IOERR_CLOSE)), Runtime.runSync(this.#runtime));
132
173
  }
133
174
  jRead(fileId, pData, iOffset) {
134
- const file = this.#mapIdToFile.get(fileId);
135
- const nBytes = file.accessHandle.read(pData.subarray(), {
136
- at: HEADER_OFFSET_DATA + iOffset,
137
- });
138
- if (nBytes < pData.byteLength) {
139
- pData.fill(0, nBytes, pData.byteLength);
140
- return VFS.SQLITE_IOERR_SHORT_READ;
141
- }
142
- return VFS.SQLITE_OK;
175
+ return Effect.gen(this, function* () {
176
+ const file = this.#mapIdToFile.get(fileId);
177
+ const nBytes = yield* Opfs.Opfs.syncRead(file.accessHandle, pData.subarray(), {
178
+ at: HEADER_OFFSET_DATA + iOffset,
179
+ });
180
+ if (nBytes < pData.byteLength) {
181
+ pData.fill(0, nBytes, pData.byteLength);
182
+ return VFS.SQLITE_IOERR_SHORT_READ;
183
+ }
184
+ return VFS.SQLITE_OK;
185
+ }).pipe(Effect.tapCauseLogPretty, Effect.catchAllCause(() => Effect.succeed(VFS.SQLITE_IOERR_READ)), Runtime.runSync(this.#runtime));
143
186
  }
144
187
  jWrite(fileId, pData, iOffset) {
145
- const file = this.#mapIdToFile.get(fileId);
146
- const nBytes = file.accessHandle.write(pData.subarray(), {
147
- at: HEADER_OFFSET_DATA + iOffset,
148
- });
149
- return nBytes === pData.byteLength ? VFS.SQLITE_OK : VFS.SQLITE_IOERR;
188
+ return Effect.gen(this, function* () {
189
+ const file = this.#mapIdToFile.get(fileId);
190
+ const nBytes = yield* Opfs.Opfs.syncWrite(file.accessHandle, pData.subarray(), {
191
+ at: HEADER_OFFSET_DATA + iOffset,
192
+ });
193
+ if (nBytes !== pData.byteLength) {
194
+ return yield* Effect.dieMessage(`Wrote ${nBytes} bytes, expected ${pData.byteLength}`);
195
+ }
196
+ return VFS.SQLITE_OK;
197
+ }).pipe(Effect.tapCauseLogPretty, Effect.catchAllCause(() => Effect.succeed(VFS.SQLITE_IOERR_WRITE)), Runtime.runSync(this.#runtime));
150
198
  }
151
199
  jTruncate(fileId, iSize) {
152
- const file = this.#mapIdToFile.get(fileId);
153
- file.accessHandle.truncate(HEADER_OFFSET_DATA + iSize);
154
- return VFS.SQLITE_OK;
200
+ return Effect.gen(this, function* () {
201
+ const file = this.#mapIdToFile.get(fileId);
202
+ yield* Opfs.Opfs.syncTruncate(file.accessHandle, HEADER_OFFSET_DATA + iSize);
203
+ return VFS.SQLITE_OK;
204
+ }).pipe(Effect.tapCauseLogPretty, Effect.catchAllCause(() => Effect.succeed(VFS.SQLITE_IOERR_TRUNCATE)), Runtime.runSync(this.#runtime));
155
205
  }
156
206
  jSync(fileId, _flags) {
157
- const file = this.#mapIdToFile.get(fileId);
158
- file.accessHandle.flush();
159
- return VFS.SQLITE_OK;
207
+ return Effect.gen(this, function* () {
208
+ const file = this.#mapIdToFile.get(fileId);
209
+ yield* Opfs.Opfs.syncFlush(file.accessHandle);
210
+ return VFS.SQLITE_OK;
211
+ }).pipe(Effect.tapCauseLogPretty, Effect.catchAllCause(() => Effect.succeed(VFS.SQLITE_IOERR_FSYNC)), Runtime.runSync(this.#runtime));
160
212
  }
161
213
  jFileSize(fileId, pSize64) {
162
- const file = this.#mapIdToFile.get(fileId);
163
- const size = file.accessHandle.getSize() - HEADER_OFFSET_DATA;
164
- pSize64.setBigInt64(0, BigInt(size), true);
165
- return VFS.SQLITE_OK;
214
+ return Effect.gen(this, function* () {
215
+ const file = this.#mapIdToFile.get(fileId);
216
+ const opfsFileSize = yield* Opfs.Opfs.syncGetSize(file.accessHandle);
217
+ const size = opfsFileSize - HEADER_OFFSET_DATA;
218
+ pSize64.setBigInt64(0, BigInt(size), true);
219
+ return VFS.SQLITE_OK;
220
+ }).pipe(Effect.tapCauseLogPretty, Effect.catchAllCause(() => Effect.succeed(VFS.SQLITE_IOERR_FSTAT)), Runtime.runSync(this.#runtime));
166
221
  }
167
222
  jSectorSize(_fileId) {
168
223
  return SECTOR_SIZE;
@@ -171,34 +226,34 @@ export class AccessHandlePoolVFS extends FacadeVFS {
171
226
  return VFS.SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN;
172
227
  }
173
228
  jAccess(zName, _flags, pResOut) {
174
- const path = this.#getPath(zName);
175
- pResOut.setInt32(0, this.#mapPathToAccessHandle.has(path) ? 1 : 0, true);
176
- return VFS.SQLITE_OK;
229
+ return Effect.gen(this, function* () {
230
+ const path = this.#getPath(zName);
231
+ pResOut.setInt32(0, this.#mapPathToAccessHandle.has(path) === true ? 1 : 0, true);
232
+ return VFS.SQLITE_OK;
233
+ }).pipe(Effect.tapCauseLogPretty, Effect.catchAllCause(() => Effect.succeed(VFS.SQLITE_IOERR_ACCESS)), Runtime.runSync(this.#runtime));
177
234
  }
178
235
  jDelete(zName, _syncDir) {
179
- const path = this.#getPath(zName);
180
- this.#deletePath(path);
181
- return VFS.SQLITE_OK;
236
+ return Effect.gen(this, function* () {
237
+ const path = this.#getPath(zName);
238
+ yield* this.#deletePath(path);
239
+ return VFS.SQLITE_OK;
240
+ }).pipe(Effect.tapCauseLogPretty, Effect.catchAllCause(() => Effect.succeed(VFS.SQLITE_IOERR_DELETE)), Runtime.runSync(this.#runtime));
182
241
  }
183
- async close() {
184
- this.#releaseAccessHandles();
242
+ close() {
243
+ this.#releaseAccessHandles().pipe(Runtime.runPromise(this.#runtime));
185
244
  }
186
245
  async isReady() {
187
- if (!this.#directoryHandle) {
188
- // All files are stored in a single directory.
189
- let handle = await navigator.storage.getDirectory();
190
- for (const d of this.#directoryPath.split('/')) {
191
- if (d) {
192
- handle = await handle.getDirectoryHandle(d, { create: true });
246
+ return Effect.gen(this, function* () {
247
+ if (this.#directoryHandle == null) {
248
+ // All files are stored in a single directory.
249
+ this.#directoryHandle = yield* Opfs.getDirectoryHandleByPath(this.#directoryPath, { create: true });
250
+ yield* this.#acquireAccessHandles();
251
+ if (this.getCapacity() === 0) {
252
+ yield* this.addCapacity(DEFAULT_CAPACITY);
193
253
  }
194
254
  }
195
- this.#directoryHandle = handle;
196
- await this.#acquireAccessHandles();
197
- if (this.getCapacity() === 0) {
198
- await this.addCapacity(DEFAULT_CAPACITY);
199
- }
200
- }
201
- return true;
255
+ return true;
256
+ }).pipe(Runtime.runPromise(this.#runtime));
202
257
  }
203
258
  /**
204
259
  * Returns the number of SQLite files in the file system.
@@ -224,94 +279,79 @@ export class AccessHandlePoolVFS extends FacadeVFS {
224
279
  /**
225
280
  * Increase the capacity of the file system by n.
226
281
  */
227
- async addCapacity(n) {
228
- for (let i = 0; i < n; ++i) {
229
- const name = Math.random().toString(36).replace('0.', '');
230
- const handle = await this.#directoryHandle.getFileHandle(name, {
231
- create: true,
232
- });
233
- const accessHandle = await Effect.tryPromise({
234
- try: () => handle.createSyncAccessHandle(),
235
- catch: (cause) => new OpfsError({ cause, path: name }),
236
- }).pipe(Effect.retry(Schedule.exponentialBackoff10Sec), Effect.runPromise);
237
- this.#mapAccessHandleToName.set(accessHandle, name);
238
- this.#setAssociatedPath(accessHandle, '', 0);
239
- }
240
- return n;
241
- }
282
+ addCapacity = Effect.fn((n) => Effect.repeatN(Effect.gen(this, function* () {
283
+ const name = Math.random().toString(36).replace('0.', '');
284
+ const accessHandle = yield* Opfs.Opfs.getFileHandle(this.#directoryHandle, name, { create: true }).pipe(Effect.andThen((handle) => Opfs.Opfs.createSyncAccessHandle(handle)), Effect.retry(Schedule.exponentialBackoff10Sec));
285
+ this.#mapAccessHandleToName.set(accessHandle, name);
286
+ yield* this.#setAssociatedPath(accessHandle, '', 0);
287
+ }), n));
242
288
  /**
243
289
  * Decrease the capacity of the file system by n. The capacity cannot be
244
290
  * decreased to fewer than the current number of SQLite files in the
245
291
  * file system.
246
292
  */
247
- async removeCapacity(n) {
293
+ removeCapacity = Effect.fn((n) => Effect.gen(this, function* () {
248
294
  let nRemoved = 0;
249
- for (const accessHandle of Array.from(this.#availableAccessHandles)) {
295
+ yield* Effect.forEach(this.#availableAccessHandles, (accessHandle) => Effect.gen(this, function* () {
250
296
  if (nRemoved === n || this.getSize() === this.getCapacity())
251
297
  return nRemoved;
252
298
  const name = this.#mapAccessHandleToName.get(accessHandle);
253
299
  accessHandle.close();
254
- await this.#directoryHandle.removeEntry(name);
300
+ yield* Opfs.Opfs.removeEntry(this.#directoryHandle, name);
255
301
  this.#mapAccessHandleToName.delete(accessHandle);
256
302
  this.#availableAccessHandles.delete(accessHandle);
257
303
  ++nRemoved;
258
- }
304
+ return nRemoved;
305
+ }), { discard: true });
259
306
  return nRemoved;
260
- }
261
- async #acquireAccessHandles() {
262
- // Enumerate all the files in the directory.
263
- const files = [];
264
- for await (const [name, handle] of this.#directoryHandle) {
265
- if (handle.kind === 'file') {
266
- files.push([name, handle]);
267
- }
268
- }
269
- // Open access handles in parallel, separating associated and unassociated.
270
- await Promise.all(files.map(async ([name, handle]) => {
271
- const accessHandle = await Effect.tryPromise({
272
- try: () => handle.createSyncAccessHandle(),
273
- catch: (cause) => new OpfsError({ cause, path: name }),
274
- }).pipe(Effect.retry(Schedule.exponentialBackoff10Sec), Effect.runPromise);
275
- this.#mapAccessHandleToName.set(accessHandle, name);
276
- const path = this.#getAssociatedPath(accessHandle);
277
- if (path) {
307
+ }));
308
+ #acquireAccessHandles = Effect.fn(() => Effect.gen(this, function* () {
309
+ const handlesStream = yield* Opfs.Opfs.values(this.#directoryHandle);
310
+ yield* handlesStream.pipe(Stream.filter((handle) => handle.kind === 'file'), Stream.mapEffect((fileHandle) => Effect.gen(this, function* () {
311
+ const accessHandle = yield* Opfs.Opfs.createSyncAccessHandle(fileHandle);
312
+ return {
313
+ accessHandle,
314
+ opfsFileName: fileHandle.name,
315
+ path: yield* this.#getAssociatedPath(accessHandle),
316
+ };
317
+ }), { concurrency: 'unbounded' }), Stream.runForEach(({ opfsFileName, accessHandle, path }) => Effect.gen(this, function* () {
318
+ this.#mapAccessHandleToName.set(accessHandle, opfsFileName);
319
+ if (path !== '') {
278
320
  this.#mapPathToAccessHandle.set(path, accessHandle);
279
321
  }
280
322
  else {
281
323
  this.#availableAccessHandles.add(accessHandle);
282
324
  }
283
- }));
284
- }
285
- #releaseAccessHandles() {
286
- for (const accessHandle of this.#mapAccessHandleToName.keys()) {
287
- accessHandle.close();
288
- }
325
+ })));
326
+ }));
327
+ #releaseAccessHandles = Effect.fn(() => Effect.gen(this, function* () {
328
+ yield* Effect.forEach(this.#mapAccessHandleToName.keys(), (accessHandle) => Effect.sync(() => accessHandle.close()), { concurrency: 'unbounded', discard: true });
289
329
  this.#mapAccessHandleToName.clear();
290
330
  this.#mapPathToAccessHandle.clear();
291
331
  this.#availableAccessHandles.clear();
292
- }
332
+ }));
293
333
  /**
294
334
  * Read and return the associated path from an OPFS file header.
295
335
  * Empty string is returned for an unassociated OPFS file.
296
336
  * @returns {string} path or empty string
297
337
  */
298
- #getAssociatedPath(accessHandle) {
338
+ #getAssociatedPath = Effect.fn((accessHandle) => Effect.gen(this, function* () {
299
339
  // Read the path and digest of the path from the file.
300
340
  const corpus = new Uint8Array(HEADER_CORPUS_SIZE);
301
- accessHandle.read(corpus, { at: 0 });
341
+ yield* Opfs.Opfs.syncRead(accessHandle, corpus, { at: 0 });
302
342
  // Delete files not expected to be present.
303
343
  const dataView = new DataView(corpus.buffer, corpus.byteOffset);
304
344
  const flags = dataView.getUint32(HEADER_OFFSET_FLAGS);
305
- if (corpus[0] && (flags & VFS.SQLITE_OPEN_DELETEONCLOSE || (flags & PERSISTENT_FILE_TYPES) === 0)) {
306
- console.warn(`Remove file with unexpected flags ${flags.toString(16)}`);
307
- this.#setAssociatedPath(accessHandle, '', 0);
345
+ if (corpus[0] !== 0 && ((flags & VFS.SQLITE_OPEN_DELETEONCLOSE) !== 0 || (flags & PERSISTENT_FILE_TYPES) === 0)) {
346
+ yield* Effect.logWarning(`Remove file with unexpected flags ${flags.toString(16)}`);
347
+ yield* this.#setAssociatedPath(accessHandle, '', 0);
308
348
  return '';
309
349
  }
310
350
  const fileDigest = new Uint32Array(HEADER_DIGEST_SIZE / 4);
311
- accessHandle.read(fileDigest, { at: HEADER_OFFSET_DIGEST });
351
+ yield* Opfs.Opfs.syncRead(accessHandle, fileDigest, { at: HEADER_OFFSET_DIGEST });
312
352
  // Verify the digest.
313
353
  const computedDigest = this.#computeDigest(corpus);
314
- if (fileDigest.every((value, i) => value === computedDigest[i])) {
354
+ if (fileDigest.every((value, i) => value === computedDigest[i]) === true) {
315
355
  // Good digest. Decode the null-terminated path string.
316
356
  const pathBytes = corpus.indexOf(0);
317
357
  if (pathBytes === 0) {
@@ -319,53 +359,53 @@ export class AccessHandlePoolVFS extends FacadeVFS {
319
359
  // truncated in #setAssociatedPath after the header is written. If
320
360
  // an interruption occurs right before the truncation then garbage
321
361
  // may remain in the file.
322
- accessHandle.truncate(HEADER_OFFSET_DATA);
362
+ yield* Opfs.Opfs.syncTruncate(accessHandle, HEADER_OFFSET_DATA);
323
363
  }
324
364
  return new TextDecoder().decode(corpus.subarray(0, pathBytes));
325
365
  }
326
366
  else {
327
367
  // Bad digest. Repair this header.
328
- console.warn('Disassociating file with bad digest.');
329
- this.#setAssociatedPath(accessHandle, '', 0);
368
+ yield* Effect.logWarning('Disassociating file with bad digest.');
369
+ yield* this.#setAssociatedPath(accessHandle, '', 0);
330
370
  return '';
331
371
  }
332
- }
372
+ }));
333
373
  /**
334
374
  * Set the path on an OPFS file header.
335
375
  */
336
- #setAssociatedPath(accessHandle, path, flags) {
376
+ #setAssociatedPath = Effect.fn((accessHandle, path, flags) => Effect.gen(this, function* () {
337
377
  // Convert the path string to UTF-8.
338
378
  const corpus = new Uint8Array(HEADER_CORPUS_SIZE);
339
379
  const encodedResult = new TextEncoder().encodeInto(path, corpus);
340
380
  if (encodedResult.written >= HEADER_MAX_PATH_SIZE) {
341
- throw new Error('path too long');
381
+ return yield* Effect.dieMessage('path too long');
342
382
  }
343
383
  // Add the creation flags.
344
384
  const dataView = new DataView(corpus.buffer, corpus.byteOffset);
345
385
  dataView.setUint32(HEADER_OFFSET_FLAGS, flags);
346
386
  // Write the OPFS file header, including the digest.
347
387
  const digest = this.#computeDigest(corpus);
348
- accessHandle.write(corpus, { at: 0 });
349
- accessHandle.write(digest, { at: HEADER_OFFSET_DIGEST });
350
- accessHandle.flush();
351
- if (path) {
388
+ yield* Opfs.Opfs.syncWrite(accessHandle, corpus, { at: 0 });
389
+ yield* Opfs.Opfs.syncWrite(accessHandle, digest, { at: HEADER_OFFSET_DIGEST });
390
+ yield* Opfs.Opfs.syncFlush(accessHandle);
391
+ if (path !== '') {
352
392
  this.#mapPathToAccessHandle.set(path, accessHandle);
353
393
  this.#availableAccessHandles.delete(accessHandle);
354
394
  }
355
395
  else {
356
396
  // This OPFS file doesn't represent any SQLite file so it doesn't
357
397
  // need to keep any data.
358
- accessHandle.truncate(HEADER_OFFSET_DATA);
398
+ yield* Opfs.Opfs.syncTruncate(accessHandle, HEADER_OFFSET_DATA);
359
399
  this.#availableAccessHandles.add(accessHandle);
360
400
  }
361
- }
401
+ }));
362
402
  /**
363
403
  * We need a synchronous digest function so can't use WebCrypto.
364
404
  * Adapted from https://github.com/bryc/code/blob/master/jshash/experimental/cyrb53.js
365
405
  * @returns {ArrayBuffer} 64-bit digest
366
406
  */
367
407
  #computeDigest(corpus) {
368
- if (!corpus[0]) {
408
+ if (corpus[0] === 0) {
369
409
  // Optimization for deleted file.
370
410
  return new Uint32Array([0xfe_cc_5f_80, 0xac_ce_c0_37]);
371
411
  }
@@ -390,18 +430,13 @@ export class AccessHandlePoolVFS extends FacadeVFS {
390
430
  * Remove the association between a path and an OPFS file.
391
431
  * @param {string} path
392
432
  */
393
- #deletePath(path) {
433
+ #deletePath = Effect.fn((path) => Effect.gen(this, function* () {
394
434
  const accessHandle = this.#mapPathToAccessHandle.get(path);
395
- if (accessHandle) {
435
+ if (accessHandle !== undefined) {
396
436
  // Un-associate the SQLite path from the OPFS file.
397
437
  this.#mapPathToAccessHandle.delete(path);
398
- this.#setAssociatedPath(accessHandle, '', 0);
438
+ yield* this.#setAssociatedPath(accessHandle, '', 0);
399
439
  }
400
- }
401
- }
402
- export class OpfsError extends Schema.TaggedError()('OpfsError', {
403
- cause: Schema.Defect,
404
- path: Schema.String,
405
- }) {
440
+ }));
406
441
  }
407
442
  //# sourceMappingURL=AccessHandlePoolVFS.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AccessHandlePoolVFS.js","sourceRoot":"","sources":["../../../src/browser/opfs/AccessHandlePoolVFS.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AccessHandlePoolVFS.js","sourceRoot":"","sources":["../../../src/browser/opfs/AccessHandlePoolVFS.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { Effect } from '@livestore/utils/effect';
1
+ import { Effect, type Scope } from '@livestore/utils/effect';
2
+ import type { Opfs } from '@livestore/utils/effect/browser';
2
3
  import type * as WaSqlite from '@livestore/wa-sqlite';
3
4
  import { AccessHandlePoolVFS } from './AccessHandlePoolVFS.ts';
4
5
  export declare const makeOpfsDb: ({ sqlite3, directory, fileName, }: {
@@ -8,5 +9,5 @@ export declare const makeOpfsDb: ({ sqlite3, directory, fileName, }: {
8
9
  }) => Effect.Effect<{
9
10
  dbPointer: number;
10
11
  vfs: AccessHandlePoolVFS;
11
- }, never, never>;
12
+ }, never, Opfs.Opfs | Scope.Scope>;
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/browser/opfs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,KAAK,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAErD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAK9D,eAAO,MAAM,UAAU,GAAI,mCAIxB;IACD,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAA;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;CACjB;;;gBAkBkC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/browser/opfs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAA;AAC3D,OAAO,KAAK,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAErD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAK9D,eAAO,MAAM,UAAU,GAAI,mCAIxB;IACD,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAA;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;CACjB,KAAG,MAAM,CAAC,MAAM,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,mBAAmB,CAAA;CAAE,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAkB9D,CAAA"}
@@ -8,7 +8,7 @@ export const makeOpfsDb = ({ sqlite3, directory, fileName, }) => Effect.gen(func
8
8
  const pathSegment = safePath.length === 0 ? '' : `-${safePath}`;
9
9
  const vfsName = `opfs${pathSegment}`;
10
10
  if (sqlite3.vfs_registered.has(vfsName) === false) {
11
- const vfs = yield* Effect.promise(() => AccessHandlePoolVFS.create(vfsName, directory, sqlite3.module));
11
+ const vfs = yield* AccessHandlePoolVFS.create(vfsName, directory, sqlite3.module);
12
12
  sqlite3.vfs_register(vfs, false);
13
13
  opfsVfsMap.set(vfsName, vfs);
14
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/browser/opfs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAGhD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;AAC9D,MAAM,UAAU,GAAG,IAAI,GAAG,EAA+B,CAAA;AAEzD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACzB,OAAO,EACP,SAAS,EACT,QAAQ,GAKT,EAAE,EAAE,CACH,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,kDAAkD;IAClD,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,eAAe,EAAE,GAAG,CAAC,CAAA;IAC3D,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAA;IAC/D,MAAM,OAAO,GAAG,OAAO,WAAW,EAAE,CAAA;IAEpC,IAAI,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,EAAE,CAAC;QAClD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,EAAG,OAAe,CAAC,MAAM,CAAC,CAAC,CAAA;QAEhH,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QAChC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC9B,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;IACnE,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAE,CAAA;IAEpC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAA;AAC3B,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/browser/opfs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAc,MAAM,yBAAyB,CAAA;AAI5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;AAC9D,MAAM,UAAU,GAAG,IAAI,GAAG,EAA+B,CAAA;AAEzD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACzB,OAAO,EACP,SAAS,EACT,QAAQ,GAKT,EAAkG,EAAE,CACnG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,kDAAkD;IAClD,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,eAAe,EAAE,GAAG,CAAC,CAAA;IAC3D,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAA;IAC/D,MAAM,OAAO,GAAG,OAAO,WAAW,EAAE,CAAA;IAEpC,IAAI,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,EAAE,CAAC;QAClD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,EAAG,OAAe,CAAC,MAAM,CAAC,CAAA;QAE1F,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QAChC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC9B,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;IACnE,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAE,CAAA;IAEpC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAA;AAC3B,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA"}