@livestore/sqlite-wasm 0.4.0-dev.9 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +24 -18
  12. package/dist/browser/opfs/AccessHandlePoolVFS.d.ts.map +1 -1
  13. package/dist/browser/opfs/AccessHandlePoolVFS.js +165 -166
  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 +3 -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 +17 -8
  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 +360 -268
  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 +4 -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 +25 -8
  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;
@@ -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,118 +103,121 @@ 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
- 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);
128
136
  let accessHandle = this.#mapPathToAccessHandle.get(path);
129
- if (!accessHandle && flags & VFS.SQLITE_OPEN_CREATE) {
137
+ if (accessHandle == null && (flags & VFS.SQLITE_OPEN_CREATE) !== 0) {
130
138
  // File not found so try to create it.
131
139
  if (this.getSize() < this.getCapacity()) {
132
140
  // Choose an unassociated OPFS file from the pool.
133
141
  ;
134
142
  [accessHandle] = this.#availableAccessHandles.keys();
135
- this.#setAssociatedPath(accessHandle, path, flags);
143
+ yield* this.#setAssociatedPath(accessHandle, path, flags);
136
144
  }
137
145
  else {
138
146
  // Out of unassociated files. This can be fixed by calling
139
147
  // addCapacity() from the application.
140
- throw new Error('cannot create file');
148
+ return yield* Effect.dieMessage('cannot create file');
141
149
  }
142
150
  }
143
- if (!accessHandle) {
144
- throw new Error('file not found');
145
- }
151
+ if (accessHandle == null)
152
+ return yield* Effect.dieMessage('file not found');
146
153
  // Subsequent methods are only passed the fileId, so make sure we have
147
154
  // a way to get the file resources.
148
155
  const file = { path, flags, accessHandle };
149
156
  this.#mapIdToFile.set(fileId, file);
150
157
  pOutFlags.setInt32(0, flags, true);
151
158
  return VFS.SQLITE_OK;
152
- }
153
- catch (e) {
154
- console.error(e.message);
155
- return VFS.SQLITE_CANTOPEN;
156
- }
159
+ }).pipe(Effect.tapCauseLogPretty, Effect.catchAllCause(() => Effect.succeed(VFS.SQLITE_CANTOPEN)), Runtime.runSync(this.#runtime));
157
160
  }
158
161
  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);
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
+ }
165
170
  }
166
- }
167
- 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));
168
173
  }
169
174
  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;
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));
179
186
  }
180
187
  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;
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));
186
198
  }
187
199
  jTruncate(fileId, iSize) {
188
- const file = this.#mapIdToFile.get(fileId);
189
- file.accessHandle.truncate(HEADER_OFFSET_DATA + iSize);
190
- 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));
191
205
  }
192
206
  jSync(fileId, _flags) {
193
- const file = this.#mapIdToFile.get(fileId);
194
- file.accessHandle.flush();
195
- 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));
196
212
  }
197
213
  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;
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));
202
221
  }
203
222
  jSectorSize(_fileId) {
204
223
  return SECTOR_SIZE;
@@ -207,34 +226,34 @@ export class AccessHandlePoolVFS extends FacadeVFS {
207
226
  return VFS.SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN;
208
227
  }
209
228
  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;
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));
213
234
  }
214
235
  jDelete(zName, _syncDir) {
215
- const path = this.#getPath(zName);
216
- this.#deletePath(path);
217
- 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));
218
241
  }
219
- async close() {
220
- this.#releaseAccessHandles();
242
+ close() {
243
+ this.#releaseAccessHandles().pipe(Runtime.runPromise(this.#runtime));
221
244
  }
222
245
  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 });
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);
229
253
  }
230
254
  }
231
- this.#directoryHandle = handle;
232
- await this.#acquireAccessHandles();
233
- if (this.getCapacity() === 0) {
234
- await this.addCapacity(DEFAULT_CAPACITY);
235
- }
236
- }
237
- return true;
255
+ return true;
256
+ }).pipe(Runtime.runPromise(this.#runtime));
238
257
  }
239
258
  /**
240
259
  * Returns the number of SQLite files in the file system.
@@ -260,94 +279,79 @@ export class AccessHandlePoolVFS extends FacadeVFS {
260
279
  /**
261
280
  * Increase the capacity of the file system by n.
262
281
  */
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
- }
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));
278
288
  /**
279
289
  * Decrease the capacity of the file system by n. The capacity cannot be
280
290
  * decreased to fewer than the current number of SQLite files in the
281
291
  * file system.
282
292
  */
283
- async removeCapacity(n) {
293
+ removeCapacity = Effect.fn((n) => Effect.gen(this, function* () {
284
294
  let nRemoved = 0;
285
- for (const accessHandle of Array.from(this.#availableAccessHandles)) {
295
+ yield* Effect.forEach(this.#availableAccessHandles, (accessHandle) => Effect.gen(this, function* () {
286
296
  if (nRemoved === n || this.getSize() === this.getCapacity())
287
297
  return nRemoved;
288
298
  const name = this.#mapAccessHandleToName.get(accessHandle);
289
299
  accessHandle.close();
290
- await this.#directoryHandle.removeEntry(name);
300
+ yield* Opfs.Opfs.removeEntry(this.#directoryHandle, name);
291
301
  this.#mapAccessHandleToName.delete(accessHandle);
292
302
  this.#availableAccessHandles.delete(accessHandle);
293
303
  ++nRemoved;
294
- }
304
+ return nRemoved;
305
+ }), { discard: true });
295
306
  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);
313
- 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 !== '') {
314
320
  this.#mapPathToAccessHandle.set(path, accessHandle);
315
321
  }
316
322
  else {
317
323
  this.#availableAccessHandles.add(accessHandle);
318
324
  }
319
- }));
320
- }
321
- #releaseAccessHandles() {
322
- for (const accessHandle of this.#mapAccessHandleToName.keys()) {
323
- accessHandle.close();
324
- }
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 });
325
329
  this.#mapAccessHandleToName.clear();
326
330
  this.#mapPathToAccessHandle.clear();
327
331
  this.#availableAccessHandles.clear();
328
- }
332
+ }));
329
333
  /**
330
334
  * Read and return the associated path from an OPFS file header.
331
335
  * Empty string is returned for an unassociated OPFS file.
332
336
  * @returns {string} path or empty string
333
337
  */
334
- #getAssociatedPath(accessHandle) {
338
+ #getAssociatedPath = Effect.fn((accessHandle) => Effect.gen(this, function* () {
335
339
  // Read the path and digest of the path from the file.
336
340
  const corpus = new Uint8Array(HEADER_CORPUS_SIZE);
337
- accessHandle.read(corpus, { at: 0 });
341
+ yield* Opfs.Opfs.syncRead(accessHandle, corpus, { at: 0 });
338
342
  // Delete files not expected to be present.
339
343
  const dataView = new DataView(corpus.buffer, corpus.byteOffset);
340
344
  const flags = dataView.getUint32(HEADER_OFFSET_FLAGS);
341
- 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);
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);
344
348
  return '';
345
349
  }
346
350
  const fileDigest = new Uint32Array(HEADER_DIGEST_SIZE / 4);
347
- accessHandle.read(fileDigest, { at: HEADER_OFFSET_DIGEST });
351
+ yield* Opfs.Opfs.syncRead(accessHandle, fileDigest, { at: HEADER_OFFSET_DIGEST });
348
352
  // Verify the digest.
349
353
  const computedDigest = this.#computeDigest(corpus);
350
- if (fileDigest.every((value, i) => value === computedDigest[i])) {
354
+ if (fileDigest.every((value, i) => value === computedDigest[i]) === true) {
351
355
  // Good digest. Decode the null-terminated path string.
352
356
  const pathBytes = corpus.indexOf(0);
353
357
  if (pathBytes === 0) {
@@ -355,53 +359,53 @@ export class AccessHandlePoolVFS extends FacadeVFS {
355
359
  // truncated in #setAssociatedPath after the header is written. If
356
360
  // an interruption occurs right before the truncation then garbage
357
361
  // may remain in the file.
358
- accessHandle.truncate(HEADER_OFFSET_DATA);
362
+ yield* Opfs.Opfs.syncTruncate(accessHandle, HEADER_OFFSET_DATA);
359
363
  }
360
364
  return new TextDecoder().decode(corpus.subarray(0, pathBytes));
361
365
  }
362
366
  else {
363
367
  // Bad digest. Repair this header.
364
- console.warn('Disassociating file with bad digest.');
365
- this.#setAssociatedPath(accessHandle, '', 0);
368
+ yield* Effect.logWarning('Disassociating file with bad digest.');
369
+ yield* this.#setAssociatedPath(accessHandle, '', 0);
366
370
  return '';
367
371
  }
368
- }
372
+ }));
369
373
  /**
370
374
  * Set the path on an OPFS file header.
371
375
  */
372
- #setAssociatedPath(accessHandle, path, flags) {
376
+ #setAssociatedPath = Effect.fn((accessHandle, path, flags) => Effect.gen(this, function* () {
373
377
  // Convert the path string to UTF-8.
374
378
  const corpus = new Uint8Array(HEADER_CORPUS_SIZE);
375
379
  const encodedResult = new TextEncoder().encodeInto(path, corpus);
376
380
  if (encodedResult.written >= HEADER_MAX_PATH_SIZE) {
377
- throw new Error('path too long');
381
+ return yield* Effect.dieMessage('path too long');
378
382
  }
379
383
  // Add the creation flags.
380
384
  const dataView = new DataView(corpus.buffer, corpus.byteOffset);
381
385
  dataView.setUint32(HEADER_OFFSET_FLAGS, flags);
382
386
  // Write the OPFS file header, including the digest.
383
387
  const digest = this.#computeDigest(corpus);
384
- accessHandle.write(corpus, { at: 0 });
385
- accessHandle.write(digest, { at: HEADER_OFFSET_DIGEST });
386
- accessHandle.flush();
387
- 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 !== '') {
388
392
  this.#mapPathToAccessHandle.set(path, accessHandle);
389
393
  this.#availableAccessHandles.delete(accessHandle);
390
394
  }
391
395
  else {
392
396
  // This OPFS file doesn't represent any SQLite file so it doesn't
393
397
  // need to keep any data.
394
- accessHandle.truncate(HEADER_OFFSET_DATA);
398
+ yield* Opfs.Opfs.syncTruncate(accessHandle, HEADER_OFFSET_DATA);
395
399
  this.#availableAccessHandles.add(accessHandle);
396
400
  }
397
- }
401
+ }));
398
402
  /**
399
403
  * We need a synchronous digest function so can't use WebCrypto.
400
404
  * Adapted from https://github.com/bryc/code/blob/master/jshash/experimental/cyrb53.js
401
405
  * @returns {ArrayBuffer} 64-bit digest
402
406
  */
403
407
  #computeDigest(corpus) {
404
- if (!corpus[0]) {
408
+ if (corpus[0] === 0) {
405
409
  // Optimization for deleted file.
406
410
  return new Uint32Array([0xfe_cc_5f_80, 0xac_ce_c0_37]);
407
411
  }
@@ -426,18 +430,13 @@ export class AccessHandlePoolVFS extends FacadeVFS {
426
430
  * Remove the association between a path and an OPFS file.
427
431
  * @param {string} path
428
432
  */
429
- #deletePath(path) {
433
+ #deletePath = Effect.fn((path) => Effect.gen(this, function* () {
430
434
  const accessHandle = this.#mapPathToAccessHandle.get(path);
431
- if (accessHandle) {
435
+ if (accessHandle !== undefined) {
432
436
  // Un-associate the SQLite path from the OPFS file.
433
437
  this.#mapPathToAccessHandle.delete(path);
434
- this.#setAssociatedPath(accessHandle, '', 0);
438
+ yield* this.#setAssociatedPath(accessHandle, '', 0);
435
439
  }
436
- }
437
- }
438
- export class OpfsError extends Schema.TaggedError()('OpfsError', {
439
- cause: Schema.Defect,
440
- path: Schema.String,
441
- }) {
440
+ }));
442
441
  }
443
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
  }