@livestore/sqlite-wasm 0.4.0-dev.17 → 0.4.0-dev.19

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 (39) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/FacadeVFS.d.ts.map +1 -1
  3. package/dist/FacadeVFS.js +4 -0
  4. package/dist/FacadeVFS.js.map +1 -1
  5. package/dist/browser/mod.d.ts +14 -7
  6. package/dist/browser/mod.d.ts.map +1 -1
  7. package/dist/browser/mod.js +49 -43
  8. package/dist/browser/mod.js.map +1 -1
  9. package/dist/browser/opfs/AccessHandlePoolVFS.d.ts +24 -18
  10. package/dist/browser/opfs/AccessHandlePoolVFS.d.ts.map +1 -1
  11. package/dist/browser/opfs/AccessHandlePoolVFS.js +155 -158
  12. package/dist/browser/opfs/AccessHandlePoolVFS.js.map +1 -1
  13. package/dist/browser/opfs/index.d.ts +3 -2
  14. package/dist/browser/opfs/index.d.ts.map +1 -1
  15. package/dist/browser/opfs/index.js +1 -1
  16. package/dist/browser/opfs/index.js.map +1 -1
  17. package/dist/browser/opfs/opfs-sah-pool.d.ts +1 -1
  18. package/dist/browser/opfs/opfs-sah-pool.d.ts.map +1 -1
  19. package/dist/browser/opfs/opfs-sah-pool.js +1 -1
  20. package/dist/browser/opfs/opfs-sah-pool.js.map +1 -1
  21. package/dist/cf/mod.d.ts.map +1 -1
  22. package/dist/cf/mod.js +2 -2
  23. package/dist/cf/mod.js.map +1 -1
  24. package/dist/make-sqlite-db.d.ts.map +1 -1
  25. package/dist/make-sqlite-db.js +1 -4
  26. package/dist/make-sqlite-db.js.map +1 -1
  27. package/dist/node/mod.d.ts.map +1 -1
  28. package/dist/node/mod.js +2 -2
  29. package/dist/node/mod.js.map +1 -1
  30. package/package.json +7 -7
  31. package/src/FacadeVFS.ts +5 -0
  32. package/src/browser/mod.ts +38 -13
  33. package/src/browser/opfs/AccessHandlePoolVFS.ts +337 -253
  34. package/src/browser/opfs/index.ts +4 -3
  35. package/src/browser/opfs/opfs-sah-pool.ts +1 -1
  36. package/src/cf/mod.ts +2 -2
  37. package/src/make-sqlite-db.ts +1 -4
  38. package/src/node/mod.ts +2 -2
  39. package/src/ambient.d.ts +0 -18
@@ -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;
@@ -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,20 +69,31 @@ 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
- }
96
+ }));
81
97
  /**
82
98
  * Reads the SQLite payload (without the OPFS header) for the given file.
83
99
  *
@@ -87,42 +103,33 @@ export class AccessHandlePoolVFS extends FacadeVFS {
87
103
  * acquires an exclusive lock — we don't need to handle short reads as
88
104
  * the file cannot be modified by other threads.
89
105
  */
90
- readFilePayload(zName) {
106
+ readFilePayload = Effect.fn((zName) => Effect.gen(this, function* () {
91
107
  const path = this.#getPath(zName);
92
108
  const accessHandle = this.#mapPathToAccessHandle.get(path);
93
109
  if (accessHandle === undefined) {
94
- throw new OpfsError({
95
- path,
96
- cause: new Error('Cannot read payload for untracked OPFS path'),
97
- });
110
+ return shouldNeverHappen('Cannot read payload for untracked OPFS path');
98
111
  }
99
- const fileSize = accessHandle.getSize();
112
+ const fileSize = yield* Opfs.Opfs.syncGetSize(accessHandle);
100
113
  if (fileSize <= HEADER_OFFSET_DATA) {
101
- throw new OpfsError({
102
- path,
103
- cause: new Error(`OPFS file too small to contain header and payload: size ${fileSize} < HEADER_OFFSET_DATA ${HEADER_OFFSET_DATA}`),
104
- });
114
+ return shouldNeverHappen(`OPFS file too small to contain header and payload: size ${fileSize} < HEADER_OFFSET_DATA ${HEADER_OFFSET_DATA}`);
105
115
  }
106
116
  const payloadSize = fileSize - HEADER_OFFSET_DATA;
107
117
  const payload = new Uint8Array(payloadSize);
108
- const bytesRead = accessHandle.read(payload, { at: HEADER_OFFSET_DATA });
118
+ const bytesRead = yield* Opfs.Opfs.syncRead(accessHandle, payload, { at: HEADER_OFFSET_DATA });
109
119
  if (bytesRead !== payloadSize) {
110
- throw new OpfsError({
111
- path,
112
- cause: new Error(`Failed to read full payload from OPFS file: read ${bytesRead}/${payloadSize}`),
113
- });
120
+ return shouldNeverHappen(`Failed to read full payload from OPFS file: read ${bytesRead}/${payloadSize}`);
114
121
  }
115
122
  return payload.buffer;
116
- }
117
- resetAccessHandle(zName) {
123
+ }));
124
+ resetAccessHandle = Effect.fn((zName) => Effect.gen(this, function* () {
118
125
  const path = this.#getPath(zName);
119
126
  const accessHandle = this.#mapPathToAccessHandle.get(path);
120
- accessHandle.truncate(HEADER_OFFSET_DATA);
127
+ yield* Opfs.Opfs.syncTruncate(accessHandle, HEADER_OFFSET_DATA);
121
128
  // accessHandle.write(new Uint8Array(), { at: HEADER_OFFSET_DATA })
122
129
  // accessHandle.flush()
123
- }
130
+ }));
124
131
  jOpen(zName, fileId, flags, pOutFlags) {
125
- try {
132
+ return Effect.gen(this, function* () {
126
133
  // First try to open a path that already exists in the file system.
127
134
  const path = zName ? this.#getPath(zName) : Math.random().toString(36);
128
135
  let accessHandle = this.#mapPathToAccessHandle.get(path);
@@ -132,73 +139,84 @@ export class AccessHandlePoolVFS extends FacadeVFS {
132
139
  // Choose an unassociated OPFS file from the pool.
133
140
  ;
134
141
  [accessHandle] = this.#availableAccessHandles.keys();
135
- this.#setAssociatedPath(accessHandle, path, flags);
142
+ yield* this.#setAssociatedPath(accessHandle, path, flags);
136
143
  }
137
144
  else {
138
145
  // Out of unassociated files. This can be fixed by calling
139
146
  // addCapacity() from the application.
140
- throw new Error('cannot create file');
147
+ return yield* Effect.dieMessage('cannot create file');
141
148
  }
142
149
  }
143
- if (!accessHandle) {
144
- throw new Error('file not found');
145
- }
150
+ if (!accessHandle)
151
+ return yield* Effect.dieMessage('file not found');
146
152
  // Subsequent methods are only passed the fileId, so make sure we have
147
153
  // a way to get the file resources.
148
154
  const file = { path, flags, accessHandle };
149
155
  this.#mapIdToFile.set(fileId, file);
150
156
  pOutFlags.setInt32(0, flags, true);
151
157
  return VFS.SQLITE_OK;
152
- }
153
- catch (e) {
154
- console.error(e.message);
155
- return VFS.SQLITE_CANTOPEN;
156
- }
158
+ }).pipe(Effect.tapCauseLogPretty, Effect.catchAllCause(() => Effect.succeed(VFS.SQLITE_CANTOPEN)), Runtime.runSync(this.#runtime));
157
159
  }
158
160
  jClose(fileId) {
159
- const file = this.#mapIdToFile.get(fileId);
160
- if (file) {
161
- file.accessHandle.flush();
162
- this.#mapIdToFile.delete(fileId);
163
- if (file.flags & VFS.SQLITE_OPEN_DELETEONCLOSE) {
164
- this.#deletePath(file.path);
161
+ return Effect.gen(this, function* () {
162
+ const file = this.#mapIdToFile.get(fileId);
163
+ if (file) {
164
+ yield* Opfs.Opfs.syncFlush(file.accessHandle);
165
+ this.#mapIdToFile.delete(fileId);
166
+ if (file.flags & VFS.SQLITE_OPEN_DELETEONCLOSE) {
167
+ yield* this.#deletePath(file.path);
168
+ }
165
169
  }
166
- }
167
- return VFS.SQLITE_OK;
170
+ return VFS.SQLITE_OK;
171
+ }).pipe(Effect.tapCauseLogPretty, Effect.catchAllCause(() => Effect.succeed(VFS.SQLITE_IOERR_CLOSE)), Runtime.runSync(this.#runtime));
168
172
  }
169
173
  jRead(fileId, pData, iOffset) {
170
- const file = this.#mapIdToFile.get(fileId);
171
- const nBytes = file.accessHandle.read(pData.subarray(), {
172
- at: HEADER_OFFSET_DATA + iOffset,
173
- });
174
- if (nBytes < pData.byteLength) {
175
- pData.fill(0, nBytes, pData.byteLength);
176
- return VFS.SQLITE_IOERR_SHORT_READ;
177
- }
178
- return VFS.SQLITE_OK;
174
+ return Effect.gen(this, function* () {
175
+ const file = this.#mapIdToFile.get(fileId);
176
+ const nBytes = yield* Opfs.Opfs.syncRead(file.accessHandle, pData.subarray(), {
177
+ at: HEADER_OFFSET_DATA + iOffset,
178
+ });
179
+ if (nBytes < pData.byteLength) {
180
+ pData.fill(0, nBytes, pData.byteLength);
181
+ return VFS.SQLITE_IOERR_SHORT_READ;
182
+ }
183
+ return VFS.SQLITE_OK;
184
+ }).pipe(Effect.tapCauseLogPretty, Effect.catchAllCause(() => Effect.succeed(VFS.SQLITE_IOERR_READ)), Runtime.runSync(this.#runtime));
179
185
  }
180
186
  jWrite(fileId, pData, iOffset) {
181
- const file = this.#mapIdToFile.get(fileId);
182
- const nBytes = file.accessHandle.write(pData.subarray(), {
183
- at: HEADER_OFFSET_DATA + iOffset,
184
- });
185
- return nBytes === pData.byteLength ? VFS.SQLITE_OK : VFS.SQLITE_IOERR;
187
+ return Effect.gen(this, function* () {
188
+ const file = this.#mapIdToFile.get(fileId);
189
+ const nBytes = yield* Opfs.Opfs.syncWrite(file.accessHandle, pData.subarray(), {
190
+ at: HEADER_OFFSET_DATA + iOffset,
191
+ });
192
+ if (nBytes !== pData.byteLength) {
193
+ return yield* Effect.dieMessage(`Wrote ${nBytes} bytes, expected ${pData.byteLength}`);
194
+ }
195
+ return VFS.SQLITE_OK;
196
+ }).pipe(Effect.tapCauseLogPretty, Effect.catchAllCause(() => Effect.succeed(VFS.SQLITE_IOERR_WRITE)), Runtime.runSync(this.#runtime));
186
197
  }
187
198
  jTruncate(fileId, iSize) {
188
- const file = this.#mapIdToFile.get(fileId);
189
- file.accessHandle.truncate(HEADER_OFFSET_DATA + iSize);
190
- return VFS.SQLITE_OK;
199
+ return Effect.gen(this, function* () {
200
+ const file = this.#mapIdToFile.get(fileId);
201
+ yield* Opfs.Opfs.syncTruncate(file.accessHandle, HEADER_OFFSET_DATA + iSize);
202
+ return VFS.SQLITE_OK;
203
+ }).pipe(Effect.tapCauseLogPretty, Effect.catchAllCause(() => Effect.succeed(VFS.SQLITE_IOERR_TRUNCATE)), Runtime.runSync(this.#runtime));
191
204
  }
192
205
  jSync(fileId, _flags) {
193
- const file = this.#mapIdToFile.get(fileId);
194
- file.accessHandle.flush();
195
- return VFS.SQLITE_OK;
206
+ return Effect.gen(this, function* () {
207
+ const file = this.#mapIdToFile.get(fileId);
208
+ yield* Opfs.Opfs.syncFlush(file.accessHandle);
209
+ return VFS.SQLITE_OK;
210
+ }).pipe(Effect.tapCauseLogPretty, Effect.catchAllCause(() => Effect.succeed(VFS.SQLITE_IOERR_FSYNC)), Runtime.runSync(this.#runtime));
196
211
  }
197
212
  jFileSize(fileId, pSize64) {
198
- const file = this.#mapIdToFile.get(fileId);
199
- const size = file.accessHandle.getSize() - HEADER_OFFSET_DATA;
200
- pSize64.setBigInt64(0, BigInt(size), true);
201
- return VFS.SQLITE_OK;
213
+ return Effect.gen(this, function* () {
214
+ const file = this.#mapIdToFile.get(fileId);
215
+ const opfsFileSize = yield* Opfs.Opfs.syncGetSize(file.accessHandle);
216
+ const size = opfsFileSize - HEADER_OFFSET_DATA;
217
+ pSize64.setBigInt64(0, BigInt(size), true);
218
+ return VFS.SQLITE_OK;
219
+ }).pipe(Effect.tapCauseLogPretty, Effect.catchAllCause(() => Effect.succeed(VFS.SQLITE_IOERR_FSTAT)), Runtime.runSync(this.#runtime));
202
220
  }
203
221
  jSectorSize(_fileId) {
204
222
  return SECTOR_SIZE;
@@ -207,34 +225,34 @@ export class AccessHandlePoolVFS extends FacadeVFS {
207
225
  return VFS.SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN;
208
226
  }
209
227
  jAccess(zName, _flags, pResOut) {
210
- const path = this.#getPath(zName);
211
- pResOut.setInt32(0, this.#mapPathToAccessHandle.has(path) ? 1 : 0, true);
212
- return VFS.SQLITE_OK;
228
+ return Effect.gen(this, function* () {
229
+ const path = this.#getPath(zName);
230
+ pResOut.setInt32(0, this.#mapPathToAccessHandle.has(path) ? 1 : 0, true);
231
+ return VFS.SQLITE_OK;
232
+ }).pipe(Effect.tapCauseLogPretty, Effect.catchAllCause(() => Effect.succeed(VFS.SQLITE_IOERR_ACCESS)), Runtime.runSync(this.#runtime));
213
233
  }
214
234
  jDelete(zName, _syncDir) {
215
- const path = this.#getPath(zName);
216
- this.#deletePath(path);
217
- return VFS.SQLITE_OK;
235
+ return Effect.gen(this, function* () {
236
+ const path = this.#getPath(zName);
237
+ yield* this.#deletePath(path);
238
+ return VFS.SQLITE_OK;
239
+ }).pipe(Effect.tapCauseLogPretty, Effect.catchAllCause(() => Effect.succeed(VFS.SQLITE_IOERR_DELETE)), Runtime.runSync(this.#runtime));
218
240
  }
219
- async close() {
220
- this.#releaseAccessHandles();
241
+ close() {
242
+ this.#releaseAccessHandles().pipe(Runtime.runPromise(this.#runtime));
221
243
  }
222
244
  async isReady() {
223
- if (!this.#directoryHandle) {
224
- // All files are stored in a single directory.
225
- let handle = await navigator.storage.getDirectory();
226
- for (const d of this.#directoryPath.split('/')) {
227
- if (d) {
228
- handle = await handle.getDirectoryHandle(d, { create: true });
245
+ return Effect.gen(this, function* () {
246
+ if (!this.#directoryHandle) {
247
+ // All files are stored in a single directory.
248
+ this.#directoryHandle = yield* Opfs.getDirectoryHandleByPath(this.#directoryPath, { create: true });
249
+ yield* this.#acquireAccessHandles();
250
+ if (this.getCapacity() === 0) {
251
+ yield* this.addCapacity(DEFAULT_CAPACITY);
229
252
  }
230
253
  }
231
- this.#directoryHandle = handle;
232
- await this.#acquireAccessHandles();
233
- if (this.getCapacity() === 0) {
234
- await this.addCapacity(DEFAULT_CAPACITY);
235
- }
236
- }
237
- return true;
254
+ return true;
255
+ }).pipe(Runtime.runPromise(this.#runtime));
238
256
  }
239
257
  /**
240
258
  * Returns the number of SQLite files in the file system.
@@ -260,91 +278,75 @@ export class AccessHandlePoolVFS extends FacadeVFS {
260
278
  /**
261
279
  * Increase the capacity of the file system by n.
262
280
  */
263
- async addCapacity(n) {
264
- for (let i = 0; i < n; ++i) {
265
- const name = Math.random().toString(36).replace('0.', '');
266
- const handle = await this.#directoryHandle.getFileHandle(name, {
267
- create: true,
268
- });
269
- const accessHandle = await Effect.tryPromise({
270
- try: () => handle.createSyncAccessHandle(),
271
- catch: (cause) => new OpfsError({ cause, path: name }),
272
- }).pipe(Effect.retry(Schedule.exponentialBackoff10Sec), Effect.runPromise);
273
- this.#mapAccessHandleToName.set(accessHandle, name);
274
- this.#setAssociatedPath(accessHandle, '', 0);
275
- }
276
- return n;
277
- }
281
+ addCapacity = Effect.fn((n) => Effect.repeatN(Effect.gen(this, function* () {
282
+ const name = Math.random().toString(36).replace('0.', '');
283
+ const accessHandle = yield* Opfs.Opfs.getFileHandle(this.#directoryHandle, name, { create: true }).pipe(Effect.andThen((handle) => Opfs.Opfs.createSyncAccessHandle(handle)), Effect.retry(Schedule.exponentialBackoff10Sec));
284
+ this.#mapAccessHandleToName.set(accessHandle, name);
285
+ yield* this.#setAssociatedPath(accessHandle, '', 0);
286
+ }), n));
278
287
  /**
279
288
  * Decrease the capacity of the file system by n. The capacity cannot be
280
289
  * decreased to fewer than the current number of SQLite files in the
281
290
  * file system.
282
291
  */
283
- async removeCapacity(n) {
292
+ removeCapacity = Effect.fn((n) => Effect.gen(this, function* () {
284
293
  let nRemoved = 0;
285
- for (const accessHandle of Array.from(this.#availableAccessHandles)) {
294
+ yield* Effect.forEach(this.#availableAccessHandles, (accessHandle) => Effect.gen(this, function* () {
286
295
  if (nRemoved === n || this.getSize() === this.getCapacity())
287
296
  return nRemoved;
288
297
  const name = this.#mapAccessHandleToName.get(accessHandle);
289
298
  accessHandle.close();
290
- await this.#directoryHandle.removeEntry(name);
299
+ yield* Opfs.Opfs.removeEntry(this.#directoryHandle, name);
291
300
  this.#mapAccessHandleToName.delete(accessHandle);
292
301
  this.#availableAccessHandles.delete(accessHandle);
293
302
  ++nRemoved;
294
- }
303
+ }), { discard: true });
295
304
  return nRemoved;
296
- }
297
- async #acquireAccessHandles() {
298
- // Enumerate all the files in the directory.
299
- const files = [];
300
- for await (const [name, handle] of this.#directoryHandle) {
301
- if (handle.kind === 'file') {
302
- files.push([name, handle]);
303
- }
304
- }
305
- // Open access handles in parallel, separating associated and unassociated.
306
- await Promise.all(files.map(async ([name, handle]) => {
307
- const accessHandle = await Effect.tryPromise({
308
- try: () => handle.createSyncAccessHandle(),
309
- catch: (cause) => new OpfsError({ cause, path: name }),
310
- }).pipe(Effect.retry(Schedule.exponentialBackoff10Sec), Effect.runPromise);
311
- this.#mapAccessHandleToName.set(accessHandle, name);
312
- const path = this.#getAssociatedPath(accessHandle);
305
+ }));
306
+ #acquireAccessHandles = Effect.fn(() => Effect.gen(this, function* () {
307
+ const handlesStream = yield* Opfs.Opfs.values(this.#directoryHandle);
308
+ yield* handlesStream.pipe(Stream.filter((handle) => handle.kind === 'file'), Stream.mapEffect((fileHandle) => Effect.gen(this, function* () {
309
+ const accessHandle = yield* Opfs.Opfs.createSyncAccessHandle(fileHandle);
310
+ return {
311
+ accessHandle,
312
+ opfsFileName: fileHandle.name,
313
+ path: yield* this.#getAssociatedPath(accessHandle),
314
+ };
315
+ }), { concurrency: 'unbounded' }), Stream.runForEach(({ opfsFileName, accessHandle, path }) => Effect.gen(this, function* () {
316
+ this.#mapAccessHandleToName.set(accessHandle, opfsFileName);
313
317
  if (path) {
314
318
  this.#mapPathToAccessHandle.set(path, accessHandle);
315
319
  }
316
320
  else {
317
321
  this.#availableAccessHandles.add(accessHandle);
318
322
  }
319
- }));
320
- }
321
- #releaseAccessHandles() {
322
- for (const accessHandle of this.#mapAccessHandleToName.keys()) {
323
- accessHandle.close();
324
- }
323
+ })));
324
+ }));
325
+ #releaseAccessHandles = Effect.fn(() => Effect.gen(this, function* () {
326
+ yield* Effect.forEach(this.#mapAccessHandleToName.keys(), (accessHandle) => Effect.sync(() => accessHandle.close()), { concurrency: 'unbounded', discard: true });
325
327
  this.#mapAccessHandleToName.clear();
326
328
  this.#mapPathToAccessHandle.clear();
327
329
  this.#availableAccessHandles.clear();
328
- }
330
+ }));
329
331
  /**
330
332
  * Read and return the associated path from an OPFS file header.
331
333
  * Empty string is returned for an unassociated OPFS file.
332
334
  * @returns {string} path or empty string
333
335
  */
334
- #getAssociatedPath(accessHandle) {
336
+ #getAssociatedPath = Effect.fn((accessHandle) => Effect.gen(this, function* () {
335
337
  // Read the path and digest of the path from the file.
336
338
  const corpus = new Uint8Array(HEADER_CORPUS_SIZE);
337
- accessHandle.read(corpus, { at: 0 });
339
+ yield* Opfs.Opfs.syncRead(accessHandle, corpus, { at: 0 });
338
340
  // Delete files not expected to be present.
339
341
  const dataView = new DataView(corpus.buffer, corpus.byteOffset);
340
342
  const flags = dataView.getUint32(HEADER_OFFSET_FLAGS);
341
343
  if (corpus[0] && (flags & VFS.SQLITE_OPEN_DELETEONCLOSE || (flags & PERSISTENT_FILE_TYPES) === 0)) {
342
- console.warn(`Remove file with unexpected flags ${flags.toString(16)}`);
343
- this.#setAssociatedPath(accessHandle, '', 0);
344
+ yield* Effect.logWarning(`Remove file with unexpected flags ${flags.toString(16)}`);
345
+ yield* this.#setAssociatedPath(accessHandle, '', 0);
344
346
  return '';
345
347
  }
346
348
  const fileDigest = new Uint32Array(HEADER_DIGEST_SIZE / 4);
347
- accessHandle.read(fileDigest, { at: HEADER_OFFSET_DIGEST });
349
+ yield* Opfs.Opfs.syncRead(accessHandle, fileDigest, { at: HEADER_OFFSET_DIGEST });
348
350
  // Verify the digest.
349
351
  const computedDigest = this.#computeDigest(corpus);
350
352
  if (fileDigest.every((value, i) => value === computedDigest[i])) {
@@ -355,35 +357,35 @@ export class AccessHandlePoolVFS extends FacadeVFS {
355
357
  // truncated in #setAssociatedPath after the header is written. If
356
358
  // an interruption occurs right before the truncation then garbage
357
359
  // may remain in the file.
358
- accessHandle.truncate(HEADER_OFFSET_DATA);
360
+ yield* Opfs.Opfs.syncTruncate(accessHandle, HEADER_OFFSET_DATA);
359
361
  }
360
362
  return new TextDecoder().decode(corpus.subarray(0, pathBytes));
361
363
  }
362
364
  else {
363
365
  // Bad digest. Repair this header.
364
- console.warn('Disassociating file with bad digest.');
365
- this.#setAssociatedPath(accessHandle, '', 0);
366
+ yield* Effect.logWarning('Disassociating file with bad digest.');
367
+ yield* this.#setAssociatedPath(accessHandle, '', 0);
366
368
  return '';
367
369
  }
368
- }
370
+ }));
369
371
  /**
370
372
  * Set the path on an OPFS file header.
371
373
  */
372
- #setAssociatedPath(accessHandle, path, flags) {
374
+ #setAssociatedPath = Effect.fn((accessHandle, path, flags) => Effect.gen(this, function* () {
373
375
  // Convert the path string to UTF-8.
374
376
  const corpus = new Uint8Array(HEADER_CORPUS_SIZE);
375
377
  const encodedResult = new TextEncoder().encodeInto(path, corpus);
376
378
  if (encodedResult.written >= HEADER_MAX_PATH_SIZE) {
377
- throw new Error('path too long');
379
+ return yield* Effect.dieMessage('path too long');
378
380
  }
379
381
  // Add the creation flags.
380
382
  const dataView = new DataView(corpus.buffer, corpus.byteOffset);
381
383
  dataView.setUint32(HEADER_OFFSET_FLAGS, flags);
382
384
  // Write the OPFS file header, including the digest.
383
385
  const digest = this.#computeDigest(corpus);
384
- accessHandle.write(corpus, { at: 0 });
385
- accessHandle.write(digest, { at: HEADER_OFFSET_DIGEST });
386
- accessHandle.flush();
386
+ yield* Opfs.Opfs.syncWrite(accessHandle, corpus, { at: 0 });
387
+ yield* Opfs.Opfs.syncWrite(accessHandle, digest, { at: HEADER_OFFSET_DIGEST });
388
+ yield* Opfs.Opfs.syncFlush(accessHandle);
387
389
  if (path) {
388
390
  this.#mapPathToAccessHandle.set(path, accessHandle);
389
391
  this.#availableAccessHandles.delete(accessHandle);
@@ -391,10 +393,10 @@ export class AccessHandlePoolVFS extends FacadeVFS {
391
393
  else {
392
394
  // This OPFS file doesn't represent any SQLite file so it doesn't
393
395
  // need to keep any data.
394
- accessHandle.truncate(HEADER_OFFSET_DATA);
396
+ yield* Opfs.Opfs.syncTruncate(accessHandle, HEADER_OFFSET_DATA);
395
397
  this.#availableAccessHandles.add(accessHandle);
396
398
  }
397
- }
399
+ }));
398
400
  /**
399
401
  * We need a synchronous digest function so can't use WebCrypto.
400
402
  * Adapted from https://github.com/bryc/code/blob/master/jshash/experimental/cyrb53.js
@@ -426,18 +428,13 @@ export class AccessHandlePoolVFS extends FacadeVFS {
426
428
  * Remove the association between a path and an OPFS file.
427
429
  * @param {string} path
428
430
  */
429
- #deletePath(path) {
431
+ #deletePath = Effect.fn((path) => Effect.gen(this, function* () {
430
432
  const accessHandle = this.#mapPathToAccessHandle.get(path);
431
433
  if (accessHandle) {
432
434
  // Un-associate the SQLite path from the OPFS file.
433
435
  this.#mapPathToAccessHandle.delete(path);
434
- this.#setAssociatedPath(accessHandle, '', 0);
436
+ yield* this.#setAssociatedPath(accessHandle, '', 0);
435
437
  }
436
- }
437
- }
438
- export class OpfsError extends Schema.TaggedError()('OpfsError', {
439
- cause: Schema.Defect,
440
- path: Schema.String,
441
- }) {
438
+ }));
442
439
  }
443
440
  //# 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"}
@@ -1,3 +1,3 @@
1
1
  export declare const HEADER_OFFSET_DATA = 4096;
2
- export declare const decodeSAHPoolFilename: (file: File) => Promise<string>;
2
+ export declare const decodeAccessHandlePoolFilename: (file: File) => Promise<string>;
3
3
  //# sourceMappingURL=opfs-sah-pool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"opfs-sah-pool.d.ts","sourceRoot":"","sources":["../../../src/browser/opfs/opfs-sah-pool.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,kBAAkB,OAAc,CAAA;AAO7C,eAAO,MAAM,qBAAqB,GAAU,MAAM,IAAI,KAAG,OAAO,CAAC,MAAM,CA+BtE,CAAA"}
1
+ {"version":3,"file":"opfs-sah-pool.d.ts","sourceRoot":"","sources":["../../../src/browser/opfs/opfs-sah-pool.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,kBAAkB,OAAc,CAAA;AAO7C,eAAO,MAAM,8BAA8B,GAAU,MAAM,IAAI,KAAG,OAAO,CAAC,MAAM,CA+B/E,CAAA"}