@livestore/sqlite-wasm 0.4.0-dev.9 → 0.5.0-dev.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 -4
  4. package/dist/FacadeVFS.d.ts.map +1 -1
  5. package/dist/FacadeVFS.js +13 -17
  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 +48 -42
  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 +178 -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 +3 -3
  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 +283 -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 +6 -5
  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 +4 -4
  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 +4 -4
  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 +4 -4
  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 +195 -180
  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 +18 -9
  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 +14 -14
  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 +3 -3
  60. package/dist/node/mod.js.map +1 -1
  61. package/package.json +48 -18
  62. package/src/FacadeVFS.ts +13 -17
  63. package/src/browser/mod.ts +38 -13
  64. package/src/browser/opfs/AccessHandlePoolVFS.ts +374 -268
  65. package/src/browser/opfs/index.ts +5 -4
  66. package/src/browser/opfs/opfs-sah-pool.ts +4 -4
  67. package/src/cf/CloudflareDurableObjectVFS.ts +324 -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 +63 -37
  72. package/src/cf/test/async-storage/cloudflare-worker-vfs-advanced.test.ts +8 -5
  73. package/src/cf/test/async-storage/cloudflare-worker-vfs-core.test.ts +6 -4
  74. package/src/cf/test/async-storage/cloudflare-worker-vfs-integration.test.ts +6 -4
  75. package/src/cf/test/async-storage/cloudflare-worker-vfs-reliability.test.ts +6 -4
  76. package/src/cf/test/sql/cloudflare-sql-vfs-core.test.ts +232 -198
  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 +21 -9
  81. package/src/node/NodeFS.ts +25 -24
  82. package/src/node/mod.ts +3 -3
  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, 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
+ // Context for executing Effect operations.
61
+ #services;
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 services = yield* Effect.context();
74
+ const vfs = new AccessHandlePoolVFS({ name, directoryPath, module, services });
75
+ yield* Effect.promise(() => vfs.isReady());
70
76
  return vfs;
71
- }
72
- constructor(name, directoryPath, module) {
77
+ });
78
+ constructor({ name, directoryPath, module, services, }) {
73
79
  super(name, module);
74
80
  this.#directoryPath = directoryPath;
81
+ this.#services = services;
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({ self: 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,129 @@ 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({ self: 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 opfs = yield* Opfs.Opfs;
113
+ const fileSize = yield* opfs.syncGetSize(accessHandle);
100
114
  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
- });
115
+ return shouldNeverHappen(`OPFS file too small to contain header and payload: size ${fileSize} < HEADER_OFFSET_DATA ${HEADER_OFFSET_DATA}`);
105
116
  }
106
117
  const payloadSize = fileSize - HEADER_OFFSET_DATA;
107
118
  const payload = new Uint8Array(payloadSize);
108
- const bytesRead = accessHandle.read(payload, { at: HEADER_OFFSET_DATA });
119
+ const bytesRead = yield* opfs.syncRead(accessHandle, payload, { at: HEADER_OFFSET_DATA });
109
120
  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
- });
121
+ return shouldNeverHappen(`Failed to read full payload from OPFS file: read ${bytesRead}/${payloadSize}`);
114
122
  }
115
123
  return payload.buffer;
116
- }
117
- resetAccessHandle(zName) {
124
+ }));
125
+ resetAccessHandle = Effect.fn((zName) => Effect.gen({ self: this }, function* () {
118
126
  const path = this.#getPath(zName);
119
127
  const accessHandle = this.#mapPathToAccessHandle.get(path);
120
- accessHandle.truncate(HEADER_OFFSET_DATA);
128
+ const opfs = yield* Opfs.Opfs;
129
+ yield* opfs.syncTruncate(accessHandle, HEADER_OFFSET_DATA);
121
130
  // accessHandle.write(new Uint8Array(), { at: HEADER_OFFSET_DATA })
122
131
  // accessHandle.flush()
123
- }
132
+ }));
124
133
  jOpen(zName, fileId, flags, pOutFlags) {
125
- try {
134
+ return Effect.gen({ self: this }, function* () {
126
135
  // First try to open a path that already exists in the file system.
127
- const path = zName ? this.#getPath(zName) : Math.random().toString(36);
136
+ const name = zName;
137
+ const path = typeof name === 'string' && name !== '' ? this.#getPath(name) : Math.random().toString(36);
128
138
  let accessHandle = this.#mapPathToAccessHandle.get(path);
129
- if (!accessHandle && flags & VFS.SQLITE_OPEN_CREATE) {
139
+ if (accessHandle == null && (flags & VFS.SQLITE_OPEN_CREATE) !== 0) {
130
140
  // File not found so try to create it.
131
141
  if (this.getSize() < this.getCapacity()) {
132
142
  // Choose an unassociated OPFS file from the pool.
133
143
  ;
134
144
  [accessHandle] = this.#availableAccessHandles.keys();
135
- this.#setAssociatedPath(accessHandle, path, flags);
145
+ yield* this.#setAssociatedPath(accessHandle, path, flags);
136
146
  }
137
147
  else {
138
148
  // Out of unassociated files. This can be fixed by calling
139
149
  // addCapacity() from the application.
140
- throw new Error('cannot create file');
150
+ return yield* Effect.die(new Error('cannot create file'));
141
151
  }
142
152
  }
143
- if (!accessHandle) {
144
- throw new Error('file not found');
145
- }
153
+ if (accessHandle == null)
154
+ return yield* Effect.die(new Error('file not found'));
146
155
  // Subsequent methods are only passed the fileId, so make sure we have
147
156
  // a way to get the file resources.
148
157
  const file = { path, flags, accessHandle };
149
158
  this.#mapIdToFile.set(fileId, file);
150
159
  pOutFlags.setInt32(0, flags, true);
151
160
  return VFS.SQLITE_OK;
152
- }
153
- catch (e) {
154
- console.error(e.message);
155
- return VFS.SQLITE_CANTOPEN;
156
- }
161
+ }).pipe(Effect.tapCauseLogPretty, Effect.catchCause(() => Effect.succeed(VFS.SQLITE_CANTOPEN)), Effect.runSyncWith(this.#services));
157
162
  }
158
163
  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);
164
+ return Effect.gen({ self: this }, function* () {
165
+ const file = this.#mapIdToFile.get(fileId);
166
+ if (file !== undefined) {
167
+ const opfs = yield* Opfs.Opfs;
168
+ yield* opfs.syncFlush(file.accessHandle);
169
+ this.#mapIdToFile.delete(fileId);
170
+ if ((file.flags & VFS.SQLITE_OPEN_DELETEONCLOSE) !== 0) {
171
+ yield* this.#deletePath(file.path);
172
+ }
165
173
  }
166
- }
167
- return VFS.SQLITE_OK;
174
+ return VFS.SQLITE_OK;
175
+ }).pipe(Effect.tapCauseLogPretty, Effect.catchCause(() => Effect.succeed(VFS.SQLITE_IOERR_CLOSE)), Effect.runSyncWith(this.#services));
168
176
  }
169
177
  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;
178
+ return Effect.gen({ self: this }, function* () {
179
+ const file = this.#mapIdToFile.get(fileId);
180
+ const opfs = yield* Opfs.Opfs;
181
+ const nBytes = yield* opfs.syncRead(file.accessHandle, pData.subarray(), {
182
+ at: HEADER_OFFSET_DATA + iOffset,
183
+ });
184
+ if (nBytes < pData.byteLength) {
185
+ pData.fill(0, nBytes, pData.byteLength);
186
+ return VFS.SQLITE_IOERR_SHORT_READ;
187
+ }
188
+ return VFS.SQLITE_OK;
189
+ }).pipe(Effect.tapCauseLogPretty, Effect.catchCause(() => Effect.succeed(VFS.SQLITE_IOERR_READ)), Effect.runSyncWith(this.#services));
179
190
  }
180
191
  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;
192
+ return Effect.gen({ self: this }, function* () {
193
+ const file = this.#mapIdToFile.get(fileId);
194
+ const opfs = yield* Opfs.Opfs;
195
+ const nBytes = yield* opfs.syncWrite(file.accessHandle, pData.subarray(), {
196
+ at: HEADER_OFFSET_DATA + iOffset,
197
+ });
198
+ if (nBytes !== pData.byteLength) {
199
+ return yield* Effect.die(new Error(`Wrote ${nBytes} bytes, expected ${pData.byteLength}`));
200
+ }
201
+ return VFS.SQLITE_OK;
202
+ }).pipe(Effect.tapCauseLogPretty, Effect.catchCause(() => Effect.succeed(VFS.SQLITE_IOERR_WRITE)), Effect.runSyncWith(this.#services));
186
203
  }
187
204
  jTruncate(fileId, iSize) {
188
- const file = this.#mapIdToFile.get(fileId);
189
- file.accessHandle.truncate(HEADER_OFFSET_DATA + iSize);
190
- return VFS.SQLITE_OK;
205
+ return Effect.gen({ self: this }, function* () {
206
+ const file = this.#mapIdToFile.get(fileId);
207
+ const opfs = yield* Opfs.Opfs;
208
+ yield* opfs.syncTruncate(file.accessHandle, HEADER_OFFSET_DATA + iSize);
209
+ return VFS.SQLITE_OK;
210
+ }).pipe(Effect.tapCauseLogPretty, Effect.catchCause(() => Effect.succeed(VFS.SQLITE_IOERR_TRUNCATE)), Effect.runSyncWith(this.#services));
191
211
  }
192
212
  jSync(fileId, _flags) {
193
- const file = this.#mapIdToFile.get(fileId);
194
- file.accessHandle.flush();
195
- return VFS.SQLITE_OK;
213
+ return Effect.gen({ self: this }, function* () {
214
+ const file = this.#mapIdToFile.get(fileId);
215
+ const opfs = yield* Opfs.Opfs;
216
+ yield* opfs.syncFlush(file.accessHandle);
217
+ return VFS.SQLITE_OK;
218
+ }).pipe(Effect.tapCauseLogPretty, Effect.catchCause(() => Effect.succeed(VFS.SQLITE_IOERR_FSYNC)), Effect.runSyncWith(this.#services));
196
219
  }
197
220
  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;
221
+ return Effect.gen({ self: this }, function* () {
222
+ const file = this.#mapIdToFile.get(fileId);
223
+ const opfs = yield* Opfs.Opfs;
224
+ const opfsFileSize = yield* opfs.syncGetSize(file.accessHandle);
225
+ const size = opfsFileSize - HEADER_OFFSET_DATA;
226
+ pSize64.setBigInt64(0, BigInt(size), true);
227
+ return VFS.SQLITE_OK;
228
+ }).pipe(Effect.tapCauseLogPretty, Effect.catchCause(() => Effect.succeed(VFS.SQLITE_IOERR_FSTAT)), Effect.runSyncWith(this.#services));
202
229
  }
203
230
  jSectorSize(_fileId) {
204
231
  return SECTOR_SIZE;
@@ -207,34 +234,34 @@ export class AccessHandlePoolVFS extends FacadeVFS {
207
234
  return VFS.SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN;
208
235
  }
209
236
  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;
237
+ return Effect.gen({ self: this }, function* () {
238
+ const path = this.#getPath(zName);
239
+ pResOut.setInt32(0, this.#mapPathToAccessHandle.has(path) === true ? 1 : 0, true);
240
+ return VFS.SQLITE_OK;
241
+ }).pipe(Effect.tapCauseLogPretty, Effect.catchCause(() => Effect.succeed(VFS.SQLITE_IOERR_ACCESS)), Effect.runSyncWith(this.#services));
213
242
  }
214
243
  jDelete(zName, _syncDir) {
215
- const path = this.#getPath(zName);
216
- this.#deletePath(path);
217
- return VFS.SQLITE_OK;
244
+ return Effect.gen({ self: this }, function* () {
245
+ const path = this.#getPath(zName);
246
+ yield* this.#deletePath(path);
247
+ return VFS.SQLITE_OK;
248
+ }).pipe(Effect.tapCauseLogPretty, Effect.catchCause(() => Effect.succeed(VFS.SQLITE_IOERR_DELETE)), Effect.runSyncWith(this.#services));
218
249
  }
219
- async close() {
220
- this.#releaseAccessHandles();
250
+ close() {
251
+ this.#releaseAccessHandles().pipe(Effect.runPromiseWith(this.#services));
221
252
  }
222
253
  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 });
254
+ return Effect.gen({ self: this }, function* () {
255
+ if (this.#directoryHandle == null) {
256
+ // All files are stored in a single directory.
257
+ this.#directoryHandle = yield* Opfs.getDirectoryHandleByPath(this.#directoryPath, { create: true });
258
+ yield* this.#acquireAccessHandles();
259
+ if (this.getCapacity() === 0) {
260
+ yield* this.addCapacity(DEFAULT_CAPACITY);
229
261
  }
230
262
  }
231
- this.#directoryHandle = handle;
232
- await this.#acquireAccessHandles();
233
- if (this.getCapacity() === 0) {
234
- await this.addCapacity(DEFAULT_CAPACITY);
235
- }
236
- }
237
- return true;
263
+ return true;
264
+ }).pipe(Effect.runPromiseWith(this.#services));
238
265
  }
239
266
  /**
240
267
  * Returns the number of SQLite files in the file system.
@@ -260,94 +287,83 @@ export class AccessHandlePoolVFS extends FacadeVFS {
260
287
  /**
261
288
  * Increase the capacity of the file system by n.
262
289
  */
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
- }
290
+ addCapacity = Effect.fn((n) => Effect.replicateEffect(Effect.gen({ self: this }, function* () {
291
+ const name = Math.random().toString(36).replace('0.', '');
292
+ const opfs = yield* Opfs.Opfs;
293
+ const accessHandle = yield* opfs.getFileHandle(this.#directoryHandle, name, { create: true }).pipe(Effect.andThen((handle) => opfs.createSyncAccessHandle(handle)), Effect.retry(Schedule.exponentialBackoff10Sec));
294
+ this.#mapAccessHandleToName.set(accessHandle, name);
295
+ yield* this.#setAssociatedPath(accessHandle, '', 0);
296
+ }), n, { discard: true }));
278
297
  /**
279
298
  * Decrease the capacity of the file system by n. The capacity cannot be
280
299
  * decreased to fewer than the current number of SQLite files in the
281
300
  * file system.
282
301
  */
283
- async removeCapacity(n) {
302
+ removeCapacity = Effect.fn((n) => Effect.gen({ self: this }, function* () {
284
303
  let nRemoved = 0;
285
- for (const accessHandle of Array.from(this.#availableAccessHandles)) {
304
+ yield* Effect.forEach(this.#availableAccessHandles, (accessHandle) => Effect.gen({ self: this }, function* () {
286
305
  if (nRemoved === n || this.getSize() === this.getCapacity())
287
306
  return nRemoved;
288
307
  const name = this.#mapAccessHandleToName.get(accessHandle);
289
308
  accessHandle.close();
290
- await this.#directoryHandle.removeEntry(name);
309
+ const opfs = yield* Opfs.Opfs;
310
+ yield* opfs.removeEntry(this.#directoryHandle, name);
291
311
  this.#mapAccessHandleToName.delete(accessHandle);
292
312
  this.#availableAccessHandles.delete(accessHandle);
293
313
  ++nRemoved;
294
- }
314
+ return nRemoved;
315
+ }), { discard: true });
295
316
  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) {
317
+ }));
318
+ #acquireAccessHandles = Effect.fn(() => Effect.gen({ self: this }, function* () {
319
+ const opfs = yield* Opfs.Opfs;
320
+ const handlesStream = opfs.values(this.#directoryHandle);
321
+ yield* handlesStream.pipe(Stream.filter((handle) => handle.kind === 'file'), Stream.mapEffect((fileHandle) => Effect.gen({ self: this }, function* () {
322
+ const accessHandle = yield* opfs.createSyncAccessHandle(fileHandle);
323
+ return {
324
+ accessHandle,
325
+ opfsFileName: fileHandle.name,
326
+ path: yield* this.#getAssociatedPath(accessHandle),
327
+ };
328
+ }), { concurrency: 'unbounded' }), Stream.runForEach(({ opfsFileName, accessHandle, path }) => Effect.gen({ self: this }, function* () {
329
+ this.#mapAccessHandleToName.set(accessHandle, opfsFileName);
330
+ if (path !== '') {
314
331
  this.#mapPathToAccessHandle.set(path, accessHandle);
315
332
  }
316
333
  else {
317
334
  this.#availableAccessHandles.add(accessHandle);
318
335
  }
319
- }));
320
- }
321
- #releaseAccessHandles() {
322
- for (const accessHandle of this.#mapAccessHandleToName.keys()) {
323
- accessHandle.close();
324
- }
336
+ })));
337
+ }));
338
+ #releaseAccessHandles = Effect.fn(() => Effect.gen({ self: this }, function* () {
339
+ yield* Effect.forEach(this.#mapAccessHandleToName.keys(), (accessHandle) => Effect.sync(() => accessHandle.close()), { concurrency: 'unbounded', discard: true });
325
340
  this.#mapAccessHandleToName.clear();
326
341
  this.#mapPathToAccessHandle.clear();
327
342
  this.#availableAccessHandles.clear();
328
- }
343
+ }));
329
344
  /**
330
345
  * Read and return the associated path from an OPFS file header.
331
346
  * Empty string is returned for an unassociated OPFS file.
332
347
  * @returns {string} path or empty string
333
348
  */
334
- #getAssociatedPath(accessHandle) {
349
+ #getAssociatedPath = Effect.fn((accessHandle) => Effect.gen({ self: this }, function* () {
335
350
  // Read the path and digest of the path from the file.
336
351
  const corpus = new Uint8Array(HEADER_CORPUS_SIZE);
337
- accessHandle.read(corpus, { at: 0 });
352
+ const opfs = yield* Opfs.Opfs;
353
+ yield* opfs.syncRead(accessHandle, corpus, { at: 0 });
338
354
  // Delete files not expected to be present.
339
355
  const dataView = new DataView(corpus.buffer, corpus.byteOffset);
340
356
  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);
357
+ if (corpus[0] !== 0 && ((flags & VFS.SQLITE_OPEN_DELETEONCLOSE) !== 0 || (flags & PERSISTENT_FILE_TYPES) === 0)) {
358
+ yield* Effect.logWarning(`Remove file with unexpected flags ${flags.toString(16)}`);
359
+ yield* this.#setAssociatedPath(accessHandle, '', 0);
344
360
  return '';
345
361
  }
346
362
  const fileDigest = new Uint32Array(HEADER_DIGEST_SIZE / 4);
347
- accessHandle.read(fileDigest, { at: HEADER_OFFSET_DIGEST });
363
+ yield* opfs.syncRead(accessHandle, fileDigest, { at: HEADER_OFFSET_DIGEST });
348
364
  // Verify the digest.
349
365
  const computedDigest = this.#computeDigest(corpus);
350
- if (fileDigest.every((value, i) => value === computedDigest[i])) {
366
+ if (fileDigest.every((value, i) => value === computedDigest[i]) === true) {
351
367
  // Good digest. Decode the null-terminated path string.
352
368
  const pathBytes = corpus.indexOf(0);
353
369
  if (pathBytes === 0) {
@@ -355,53 +371,54 @@ export class AccessHandlePoolVFS extends FacadeVFS {
355
371
  // truncated in #setAssociatedPath after the header is written. If
356
372
  // an interruption occurs right before the truncation then garbage
357
373
  // may remain in the file.
358
- accessHandle.truncate(HEADER_OFFSET_DATA);
374
+ yield* opfs.syncTruncate(accessHandle, HEADER_OFFSET_DATA);
359
375
  }
360
376
  return new TextDecoder().decode(corpus.subarray(0, pathBytes));
361
377
  }
362
378
  else {
363
379
  // Bad digest. Repair this header.
364
- console.warn('Disassociating file with bad digest.');
365
- this.#setAssociatedPath(accessHandle, '', 0);
380
+ yield* Effect.logWarning('Disassociating file with bad digest.');
381
+ yield* this.#setAssociatedPath(accessHandle, '', 0);
366
382
  return '';
367
383
  }
368
- }
384
+ }));
369
385
  /**
370
386
  * Set the path on an OPFS file header.
371
387
  */
372
- #setAssociatedPath(accessHandle, path, flags) {
388
+ #setAssociatedPath = Effect.fn((accessHandle, path, flags) => Effect.gen({ self: this }, function* () {
373
389
  // Convert the path string to UTF-8.
374
390
  const corpus = new Uint8Array(HEADER_CORPUS_SIZE);
375
391
  const encodedResult = new TextEncoder().encodeInto(path, corpus);
376
392
  if (encodedResult.written >= HEADER_MAX_PATH_SIZE) {
377
- throw new Error('path too long');
393
+ return yield* Effect.die(new Error('path too long'));
378
394
  }
379
395
  // Add the creation flags.
380
396
  const dataView = new DataView(corpus.buffer, corpus.byteOffset);
381
397
  dataView.setUint32(HEADER_OFFSET_FLAGS, flags);
382
398
  // Write the OPFS file header, including the digest.
383
399
  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) {
400
+ const opfs = yield* Opfs.Opfs;
401
+ yield* opfs.syncWrite(accessHandle, corpus, { at: 0 });
402
+ yield* opfs.syncWrite(accessHandle, digest, { at: HEADER_OFFSET_DIGEST });
403
+ yield* opfs.syncFlush(accessHandle);
404
+ if (path !== '') {
388
405
  this.#mapPathToAccessHandle.set(path, accessHandle);
389
406
  this.#availableAccessHandles.delete(accessHandle);
390
407
  }
391
408
  else {
392
409
  // This OPFS file doesn't represent any SQLite file so it doesn't
393
410
  // need to keep any data.
394
- accessHandle.truncate(HEADER_OFFSET_DATA);
411
+ yield* opfs.syncTruncate(accessHandle, HEADER_OFFSET_DATA);
395
412
  this.#availableAccessHandles.add(accessHandle);
396
413
  }
397
- }
414
+ }));
398
415
  /**
399
416
  * We need a synchronous digest function so can't use WebCrypto.
400
417
  * Adapted from https://github.com/bryc/code/blob/master/jshash/experimental/cyrb53.js
401
418
  * @returns {ArrayBuffer} 64-bit digest
402
419
  */
403
420
  #computeDigest(corpus) {
404
- if (!corpus[0]) {
421
+ if (corpus[0] === 0) {
405
422
  // Optimization for deleted file.
406
423
  return new Uint32Array([0xfe_cc_5f_80, 0xac_ce_c0_37]);
407
424
  }
@@ -426,18 +443,13 @@ export class AccessHandlePoolVFS extends FacadeVFS {
426
443
  * Remove the association between a path and an OPFS file.
427
444
  * @param {string} path
428
445
  */
429
- #deletePath(path) {
446
+ #deletePath = Effect.fn((path) => Effect.gen({ self: this }, function* () {
430
447
  const accessHandle = this.#mapPathToAccessHandle.get(path);
431
- if (accessHandle) {
448
+ if (accessHandle !== undefined) {
432
449
  // Un-associate the SQLite path from the OPFS file.
433
450
  this.#mapPathToAccessHandle.delete(path);
434
- this.#setAssociatedPath(accessHandle, '', 0);
451
+ yield* this.#setAssociatedPath(accessHandle, '', 0);
435
452
  }
436
- }
437
- }
438
- export class OpfsError extends Schema.TaggedError()('OpfsError', {
439
- cause: Schema.Defect,
440
- path: Schema.String,
441
- }) {
453
+ }));
442
454
  }
443
455
  //# sourceMappingURL=AccessHandlePoolVFS.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AccessHandlePoolVFS.js","sourceRoot":"","sources":["../../../src/browser/opfs/AccessHandlePoolVFS.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAClE,mGAAmG;AACnG,OAAO,KAAK,GAAG,MAAM,iCAAiC,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAE9C,MAAM,WAAW,GAAG,IAAI,CAAA;AAExB,oEAAoE;AACpE,4DAA4D;AAC5D,MAAM,oBAAoB,GAAG,GAAG,CAAA;AAChC,MAAM,iBAAiB,GAAG,CAAC,CAAA;AAC3B,MAAM,kBAAkB,GAAG,CAAC,CAAA;AAC5B,MAAM,kBAAkB,GAAG,oBAAoB,GAAG,iBAAiB,CAAA;AACnE,MAAM,mBAAmB,GAAG,oBAAoB,CAAA;AAChD,MAAM,oBAAoB,GAAG,kBAAkB,CAAA;AAC/C,MAAM,kBAAkB,GAAG,WAAW,CAAA;AAEtC,sEAAsE;AACtE,uDAAuD;AACvD,MAAM,qBAAqB,GACzB,GAAG,CAAC,mBAAmB,GAAG,GAAG,CAAC,wBAAwB,GAAG,GAAG,CAAC,yBAAyB,GAAG,GAAG,CAAC,eAAe,CAAA;AAE9G,sFAAsF;AACtF,qFAAqF;AACrF,sFAAsF;AACtF,EAAE;AACF,4BAA4B;AAC5B,oEAAoE;AACpE,kFAAkF;AAClF,gDAAgD;AAChD,iEAAiE;AACjE,oDAAoD;AACpD,mEAAmE;AACnE,EAAE;AACF,uFAAuF;AACvF,sFAAsF;AACtF,EAAE;AACF,wBAAwB;AACxB,2FAA2F;AAC3F,8EAA8E;AAC9E,iDAAiD;AACjD,0DAA0D;AAC1D,+EAA+E;AAC/E,kBAAkB;AAClB,EAAE;AACF,cAAc;AACd,6CAA6C;AAC7C,0CAA0C;AAC1C,MAAM,gBAAgB,GAAG,EAAE,CAAA;AAE3B;;;;;GAKG;AACH,MAAM,OAAO,mBAAoB,SAAQ,SAAS;IAChD,GAAG,GAAG,IAAI,CAAA,CAAC,iEAAiE;IAE5E,sEAAsE;IACtE,uEAAuE;IACvE,cAAc,CAAA;IACd,gBAAgB,CAAuC;IAEvD,qEAAqE;IACrE,uEAAuE;IACvE,6CAA6C;IAC7C,sBAAsB,GAAG,IAAI,GAAG,EAAsC,CAAA;IAEtE,uEAAuE;IACvE,sEAAsE;IACtE,4DAA4D;IAC5D,sBAAsB,GAAG,IAAI,GAAG,EAAsC,CAAA;IACtE,uBAAuB,GAAG,IAAI,GAAG,EAA8B,CAAA;IAE/D,YAAY,GAAG,IAAI,GAAG,EAAqF,CAAA;IAE3G,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,aAAqB,EAAE,MAAW;QAClE,MAAM,GAAG,GAAG,IAAI,mBAAmB,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,CAAA;QAChE,MAAM,GAAG,CAAC,OAAO,EAAE,CAAA;QACnB,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,YAAY,IAAY,EAAE,aAAqB,EAAE,MAAW;QAC1D,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACnB,IAAI,CAAC,cAAc,GAAG,aAAa,CAAA;IACrC,CAAC;IAED,eAAe,CAAC,KAAa;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACjC,MAAM,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAE,CAAA;QAC3D,OAAO,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAE,CAAA;IACvD,CAAC;IAED;;;;;;;;OAQG;IACH,eAAe,CAAC,KAAa;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACjC,MAAM,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAE1D,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,SAAS,CAAC;gBAClB,IAAI;gBACJ,KAAK,EAAE,IAAI,KAAK,CAAC,6CAA6C,CAAC;aAChE,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,CAAA;QACvC,IAAI,QAAQ,IAAI,kBAAkB,EAAE,CAAC;YACnC,MAAM,IAAI,SAAS,CAAC;gBAClB,IAAI;gBACJ,KAAK,EAAE,IAAI,KAAK,CACd,2DAA2D,QAAQ,yBAAyB,kBAAkB,EAAE,CACjH;aACF,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,QAAQ,GAAG,kBAAkB,CAAA;QACjD,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAA;QAC3C,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAA;QACxE,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;YAC9B,MAAM,IAAI,SAAS,CAAC;gBAClB,IAAI;gBACJ,KAAK,EAAE,IAAI,KAAK,CAAC,oDAAoD,SAAS,IAAI,WAAW,EAAE,CAAC;aACjG,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,OAAO,CAAC,MAAM,CAAA;IACvB,CAAC;IAED,iBAAiB,CAAC,KAAa;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACjC,MAAM,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAE,CAAA;QAC3D,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAA;QACzC,mEAAmE;QACnE,uBAAuB;IACzB,CAAC;IAED,KAAK,CAAC,KAAa,EAAE,MAAc,EAAE,KAAa,EAAE,SAAmB;QACrE,IAAI,CAAC;YACH,mEAAmE;YACnE,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;YACtE,IAAI,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACxD,IAAI,CAAC,YAAY,IAAI,KAAK,GAAG,GAAG,CAAC,kBAAkB,EAAE,CAAC;gBACpD,sCAAsC;gBACtC,IAAI,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxC,kDAAkD;oBAClD,CAAC;oBAAA,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAA;oBACrD,IAAI,CAAC,kBAAkB,CAAC,YAAa,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;gBACrD,CAAC;qBAAM,CAAC;oBACN,0DAA0D;oBAC1D,sCAAsC;oBACtC,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;gBACvC,CAAC;YACH,CAAC;YACD,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;YACnC,CAAC;YACD,sEAAsE;YACtE,mCAAmC;YACnC,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,CAAA;YAC1C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;YAEnC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;YAClC,OAAO,GAAG,CAAC,SAAS,CAAA;QACtB,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;YACxB,OAAO,GAAG,CAAC,eAAe,CAAA;QAC5B,CAAC;IACH,CAAC;IAED,MAAM,CAAC,MAAc;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC1C,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;YACzB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YAChC,IAAI,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,yBAAyB,EAAE,CAAC;gBAC/C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC7B,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC,SAAS,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,MAAc,EAAE,KAA8B,EAAE,OAAe;QACnE,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAE,CAAA;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE;YACtD,EAAE,EAAE,kBAAkB,GAAG,OAAO;SACjC,CAAC,CAAA;QACF,IAAI,MAAM,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;YACvC,OAAO,GAAG,CAAC,uBAAuB,CAAA;QACpC,CAAC;QACD,OAAO,GAAG,CAAC,SAAS,CAAA;IACtB,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,KAA8B,EAAE,OAAe;QACpE,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAE,CAAA;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE;YACvD,EAAE,EAAE,kBAAkB,GAAG,OAAO;SACjC,CAAC,CAAA;QACF,OAAO,MAAM,KAAK,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAA;IACvE,CAAC;IAED,SAAS,CAAC,MAAc,EAAE,KAAa;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAE,CAAA;QAC3C,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,kBAAkB,GAAG,KAAK,CAAC,CAAA;QACtD,OAAO,GAAG,CAAC,SAAS,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,MAAc,EAAE,MAAc;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAE,CAAA;QAC3C,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;QACzB,OAAO,GAAG,CAAC,SAAS,CAAA;IACtB,CAAC;IAED,SAAS,CAAC,MAAc,EAAE,OAAiB;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAE,CAAA;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,kBAAkB,CAAA;QAC7D,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;QAC1C,OAAO,GAAG,CAAC,SAAS,CAAA;IACtB,CAAC;IAED,WAAW,CAAC,OAAe;QACzB,OAAO,WAAW,CAAA;IACpB,CAAC;IAED,sBAAsB,CAAC,OAAe;QACpC,OAAO,GAAG,CAAC,kCAAkC,CAAA;IAC/C,CAAC;IAED,OAAO,CAAC,KAAa,EAAE,MAAc,EAAE,OAAiB;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACjC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QACxE,OAAO,GAAG,CAAC,SAAS,CAAA;IACtB,CAAC;IAED,OAAO,CAAC,KAAa,EAAE,QAAgB;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACjC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QACtB,OAAO,GAAG,CAAC,SAAS,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,qBAAqB,EAAE,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,8CAA8C;YAC9C,IAAI,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,CAAA;YACnD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/C,IAAI,CAAC,EAAE,CAAC;oBACN,MAAM,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;gBAC/D,CAAC;YACH,CAAC;YACD,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAA;YAE9B,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAA;YAClC,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAA;YAC1C,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAA;IACzC,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAA;IACzC,CAAC;IAED;;;;;OAKG;IACH,mBAAmB;QACjB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC,CAAA;IACvD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,CAAS;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;YACzD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAiB,CAAC,aAAa,CAAC,IAAI,EAAE;gBAC9D,MAAM,EAAE,IAAI;aACb,CAAC,CAAA;YAEF,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC;gBAC3C,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,sBAAsB,EAAE;gBAC1C,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;aACvD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;YAC1E,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;YAEnD,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;QAC9C,CAAC;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,cAAc,CAAC,CAAS;QAC5B,IAAI,QAAQ,GAAG,CAAC,CAAA;QAChB,KAAK,MAAM,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC;YACpE,IAAI,QAAQ,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE;gBAAE,OAAO,QAAQ,CAAA;YAE5E,MAAM,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAE,CAAA;YAC3D,YAAY,CAAC,KAAK,EAAE,CAAA;YACpB,MAAM,IAAI,CAAC,gBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;YAC9C,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;YAChD,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;YACjD,EAAE,QAAQ,CAAA;QACZ,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,4CAA4C;QAC5C,MAAM,KAAK,GAAG,EAAsC,CAAA;QACpD,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAiB,EAAE,CAAC;YAC1D,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC3B,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,MAA8B,CAAC,CAAC,CAAA;YACpD,CAAC;QACH,CAAC;QAED,2EAA2E;QAC3E,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE;YACjC,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC;gBAC3C,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,sBAAsB,EAAE;gBAC1C,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;aACvD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;YAC1E,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;YACnD,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAA;YAClD,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;YACrD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;YAChD,CAAC;QACH,CAAC,CAAC,CACH,CAAA;IACH,CAAC;IAED,qBAAqB;QACnB,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,EAAE,CAAC;YAC9D,YAAY,CAAC,KAAK,EAAE,CAAA;QACtB,CAAC;QACD,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAA;QACnC,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAA;QACnC,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAA;IACtC,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,YAAwC;QACzD,sDAAsD;QACtD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,kBAAkB,CAAC,CAAA;QACjD,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;QAEpC,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;QAC/D,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAA;QACrD,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,yBAAyB,IAAI,CAAC,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAClG,OAAO,CAAC,IAAI,CAAC,qCAAqC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;YACvE,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;YAC5C,OAAO,EAAE,CAAA;QACX,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAA;QAC1D,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,oBAAoB,EAAE,CAAC,CAAA;QAE3D,qBAAqB;QACrB,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;QAClD,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,uDAAuD;YACvD,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;YACnC,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;gBACpB,mEAAmE;gBACnE,kEAAkE;gBAClE,kEAAkE;gBAClE,0BAA0B;gBAC1B,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAA;YAC3C,CAAC;YACD,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAA;QAChE,CAAC;aAAM,CAAC;YACN,kCAAkC;YAClC,OAAO,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAA;YACpD,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;YAC5C,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,YAAwC,EAAE,IAAY,EAAE,KAAa;QACtF,oCAAoC;QACpC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,kBAAkB,CAAC,CAAA;QACjD,MAAM,aAAa,GAAG,IAAI,WAAW,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAChE,IAAI,aAAa,CAAC,OAAO,IAAI,oBAAoB,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAA;QAClC,CAAC;QAED,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;QAC/D,QAAQ,CAAC,SAAS,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAA;QAE9C,oDAAoD;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;QAC1C,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;QACrC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,oBAAoB,EAAE,CAAC,CAAA;QACxD,YAAY,CAAC,KAAK,EAAE,CAAA;QAEpB,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;YACnD,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QACnD,CAAC;aAAM,CAAC;YACN,iEAAiE;YACjE,yBAAyB;YACzB,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAA;YACzC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QAChD,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,MAAkB;QAC/B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACf,iCAAiC;YACjC,OAAO,IAAI,WAAW,CAAC,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC,CAAA;QACxD,CAAC;QAED,IAAI,EAAE,GAAG,aAAa,CAAA;QACtB,IAAI,EAAE,GAAG,aAAa,CAAA;QAEtB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,aAAa,CAAC,CAAA;YACzC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,aAAa,CAAC,CAAA;QAC3C,CAAC;QAED,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,aAAa,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,aAAa,CAAC,CAAA;QAC5F,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,aAAa,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,aAAa,CAAC,CAAA;QAE5F,OAAO,IAAI,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;IAC9C,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,SAAuB;QAC9B,MAAM,GAAG,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC/F,OAAO,GAAG,CAAC,QAAQ,CAAA;IACrB,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,IAAY;QACtB,MAAM,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC1D,IAAI,YAAY,EAAE,CAAC;YACjB,mDAAmD;YACnD,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACxC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,SAAU,SAAQ,MAAM,CAAC,WAAW,EAAa,CAAC,WAAW,EAAE;IAC1E,KAAK,EAAE,MAAM,CAAC,MAAM;IACpB,IAAI,EAAE,MAAM,CAAC,MAAM;CACpB,CAAC;CAAG"}
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,EAAa,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAA;AACvE,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"}