@livestore/sqlite-wasm 0.4.0-dev.2 → 0.4.0-dev.20

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 (97) 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 +15 -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 +40 -17
  10. package/dist/browser/opfs/AccessHandlePoolVFS.d.ts.map +1 -1
  11. package/dist/browser/opfs/AccessHandlePoolVFS.js +211 -143
  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/BlockManager.d.ts +61 -0
  22. package/dist/cf/BlockManager.d.ts.map +1 -0
  23. package/dist/cf/BlockManager.js +157 -0
  24. package/dist/cf/BlockManager.js.map +1 -0
  25. package/dist/cf/CloudflareSqlVFS.d.ts +51 -0
  26. package/dist/cf/CloudflareSqlVFS.d.ts.map +1 -0
  27. package/dist/cf/CloudflareSqlVFS.js +351 -0
  28. package/dist/cf/CloudflareSqlVFS.js.map +1 -0
  29. package/dist/cf/CloudflareWorkerVFS.d.ts +72 -0
  30. package/dist/cf/CloudflareWorkerVFS.d.ts.map +1 -0
  31. package/dist/cf/CloudflareWorkerVFS.js +552 -0
  32. package/dist/cf/CloudflareWorkerVFS.js.map +1 -0
  33. package/dist/cf/mod.d.ts +43 -0
  34. package/dist/cf/mod.d.ts.map +1 -0
  35. package/dist/cf/mod.js +74 -0
  36. package/dist/cf/mod.js.map +1 -0
  37. package/dist/cf/test/async-storage/cloudflare-worker-vfs-advanced.test.d.ts +2 -0
  38. package/dist/cf/test/async-storage/cloudflare-worker-vfs-advanced.test.d.ts.map +1 -0
  39. package/dist/cf/test/async-storage/cloudflare-worker-vfs-advanced.test.js +314 -0
  40. package/dist/cf/test/async-storage/cloudflare-worker-vfs-advanced.test.js.map +1 -0
  41. package/dist/cf/test/async-storage/cloudflare-worker-vfs-core.test.d.ts +2 -0
  42. package/dist/cf/test/async-storage/cloudflare-worker-vfs-core.test.d.ts.map +1 -0
  43. package/dist/cf/test/async-storage/cloudflare-worker-vfs-core.test.js +266 -0
  44. package/dist/cf/test/async-storage/cloudflare-worker-vfs-core.test.js.map +1 -0
  45. package/dist/cf/test/async-storage/cloudflare-worker-vfs-integration.test.d.ts +2 -0
  46. package/dist/cf/test/async-storage/cloudflare-worker-vfs-integration.test.d.ts.map +1 -0
  47. package/dist/cf/test/async-storage/cloudflare-worker-vfs-integration.test.js +462 -0
  48. package/dist/cf/test/async-storage/cloudflare-worker-vfs-integration.test.js.map +1 -0
  49. package/dist/cf/test/async-storage/cloudflare-worker-vfs-reliability.test.d.ts +2 -0
  50. package/dist/cf/test/async-storage/cloudflare-worker-vfs-reliability.test.d.ts.map +1 -0
  51. package/dist/cf/test/async-storage/cloudflare-worker-vfs-reliability.test.js +334 -0
  52. package/dist/cf/test/async-storage/cloudflare-worker-vfs-reliability.test.js.map +1 -0
  53. package/dist/cf/test/sql/cloudflare-sql-vfs-core.test.d.ts +2 -0
  54. package/dist/cf/test/sql/cloudflare-sql-vfs-core.test.d.ts.map +1 -0
  55. package/dist/cf/test/sql/cloudflare-sql-vfs-core.test.js +354 -0
  56. package/dist/cf/test/sql/cloudflare-sql-vfs-core.test.js.map +1 -0
  57. package/dist/load-wasm/mod.node.d.ts.map +1 -1
  58. package/dist/load-wasm/mod.node.js +1 -2
  59. package/dist/load-wasm/mod.node.js.map +1 -1
  60. package/dist/load-wasm/mod.workerd.d.ts +2 -0
  61. package/dist/load-wasm/mod.workerd.d.ts.map +1 -0
  62. package/dist/load-wasm/mod.workerd.js +28 -0
  63. package/dist/load-wasm/mod.workerd.js.map +1 -0
  64. package/dist/make-sqlite-db.d.ts +1 -0
  65. package/dist/make-sqlite-db.d.ts.map +1 -1
  66. package/dist/make-sqlite-db.js +29 -8
  67. package/dist/make-sqlite-db.js.map +1 -1
  68. package/dist/node/NodeFS.d.ts +1 -2
  69. package/dist/node/NodeFS.d.ts.map +1 -1
  70. package/dist/node/NodeFS.js +1 -6
  71. package/dist/node/NodeFS.js.map +1 -1
  72. package/dist/node/mod.d.ts.map +1 -1
  73. package/dist/node/mod.js +5 -10
  74. package/dist/node/mod.js.map +1 -1
  75. package/package.json +21 -8
  76. package/src/FacadeVFS.ts +5 -0
  77. package/src/browser/mod.ts +39 -13
  78. package/src/browser/opfs/AccessHandlePoolVFS.ts +387 -225
  79. package/src/browser/opfs/index.ts +4 -3
  80. package/src/browser/opfs/opfs-sah-pool.ts +1 -1
  81. package/src/cf/BlockManager.ts +225 -0
  82. package/src/cf/CloudflareSqlVFS.ts +450 -0
  83. package/src/cf/CloudflareWorkerVFS.ts +664 -0
  84. package/src/cf/README.md +60 -0
  85. package/src/cf/mod.ts +143 -0
  86. package/src/cf/test/README.md +224 -0
  87. package/src/cf/test/async-storage/cloudflare-worker-vfs-advanced.test.ts +389 -0
  88. package/src/cf/test/async-storage/cloudflare-worker-vfs-core.test.ts +322 -0
  89. package/src/cf/test/async-storage/cloudflare-worker-vfs-integration.test.ts +585 -0
  90. package/src/cf/test/async-storage/cloudflare-worker-vfs-reliability.test.ts +403 -0
  91. package/src/cf/test/sql/cloudflare-sql-vfs-core.test.ts +433 -0
  92. package/src/load-wasm/mod.node.ts +1 -2
  93. package/src/load-wasm/mod.workerd.ts +28 -0
  94. package/src/make-sqlite-db.ts +39 -8
  95. package/src/node/NodeFS.ts +1 -9
  96. package/src/node/mod.ts +5 -12
  97. package/src/ambient.d.ts +0 -18
@@ -0,0 +1,354 @@
1
+ /// <reference types="vitest/globals" />
2
+ import * as VFS from '@livestore/wa-sqlite/src/VFS.js';
3
+ import { beforeEach, describe, expect, it } from 'vitest';
4
+ import { CloudflareSqlVFS } from "../../mod.js";
5
+ describe('CloudflareSqlVFS - Core Functionality', () => {
6
+ let vfs;
7
+ let mockSql;
8
+ let mockDatabase;
9
+ let queryLog;
10
+ beforeEach(async () => {
11
+ mockDatabase = new Map();
12
+ queryLog = [];
13
+ // Mock SQL storage that mimics the Cloudflare DurableObject SQL API
14
+ mockSql = {
15
+ exec: (query, ...bindings) => {
16
+ queryLog.push(`${query} [${bindings.join(', ')}]`);
17
+ // Simple SQL parser for testing - handles basic CREATE, INSERT, SELECT, UPDATE, DELETE
18
+ const normalizedQuery = query.trim().toUpperCase();
19
+ if (normalizedQuery.includes('CREATE TABLE') ||
20
+ normalizedQuery.includes('CREATE INDEX') ||
21
+ normalizedQuery.includes('CREATE TRIGGER')) {
22
+ // Handle schema creation
23
+ return createMockCursor([]);
24
+ }
25
+ if (normalizedQuery.startsWith('INSERT OR REPLACE INTO VFS_BLOCKS')) {
26
+ const [filePath, blockId, blockData] = bindings;
27
+ const key = `blocks:${filePath}`;
28
+ if (!mockDatabase.has(key)) {
29
+ mockDatabase.set(key, []);
30
+ }
31
+ const blocks = mockDatabase.get(key);
32
+ const existingIndex = blocks.findIndex((b) => b.block_id === blockId);
33
+ const blockEntry = { file_path: filePath, block_id: blockId, block_data: blockData };
34
+ if (existingIndex >= 0) {
35
+ blocks[existingIndex] = blockEntry;
36
+ }
37
+ else {
38
+ blocks.push(blockEntry);
39
+ }
40
+ return createMockCursor([]);
41
+ }
42
+ if (normalizedQuery.startsWith('INSERT INTO VFS_FILES')) {
43
+ const [filePath, fileSize, flags, createdAt, modifiedAt] = bindings;
44
+ mockDatabase.set(`file:${filePath}`, {
45
+ file_path: filePath,
46
+ file_size: fileSize,
47
+ flags: flags,
48
+ created_at: createdAt,
49
+ modified_at: modifiedAt,
50
+ });
51
+ return createMockCursor([]);
52
+ }
53
+ if (normalizedQuery.startsWith('SELECT') && normalizedQuery.includes('FROM VFS_FILES')) {
54
+ if (normalizedQuery.includes('WHERE FILE_PATH = ?')) {
55
+ const [filePath] = bindings;
56
+ const fileData = mockDatabase.get(`file:${filePath}`);
57
+ return createMockCursor(fileData ? [fileData] : []);
58
+ }
59
+ return createMockCursor([]);
60
+ }
61
+ if (normalizedQuery.startsWith('SELECT') && normalizedQuery.includes('FROM VFS_BLOCKS')) {
62
+ if (normalizedQuery.includes('WHERE FILE_PATH = ?')) {
63
+ const filePath = bindings[0];
64
+ const blocks = mockDatabase.get(`blocks:${filePath}`) || [];
65
+ if (normalizedQuery.includes('AND BLOCK_ID IN')) {
66
+ const requestedBlockIds = bindings.slice(1);
67
+ const matchingBlocks = blocks.filter((b) => requestedBlockIds.includes(b.block_id));
68
+ return createMockCursor(matchingBlocks);
69
+ }
70
+ return createMockCursor(blocks);
71
+ }
72
+ return createMockCursor([]);
73
+ }
74
+ if (normalizedQuery.startsWith('UPDATE VFS_FILES')) {
75
+ if (normalizedQuery.includes('SET FILE_SIZE = ?')) {
76
+ const [newSize, filePath] = bindings;
77
+ const fileData = mockDatabase.get(`file:${filePath}`);
78
+ if (fileData) {
79
+ fileData.file_size = newSize;
80
+ fileData.modified_at = Math.floor(Date.now() / 1000);
81
+ }
82
+ }
83
+ return createMockCursor([]);
84
+ }
85
+ if (normalizedQuery.startsWith('DELETE FROM VFS_BLOCKS')) {
86
+ const [filePath, minBlockId] = bindings;
87
+ const blocks = mockDatabase.get(`blocks:${filePath}`);
88
+ if (blocks) {
89
+ const filteredBlocks = blocks.filter((b) => b.block_id < minBlockId);
90
+ mockDatabase.set(`blocks:${filePath}`, filteredBlocks);
91
+ }
92
+ return createMockCursor([]);
93
+ }
94
+ if (normalizedQuery.startsWith('DELETE FROM VFS_FILES')) {
95
+ const [filePath] = bindings;
96
+ mockDatabase.delete(`file:${filePath}`);
97
+ mockDatabase.delete(`blocks:${filePath}`);
98
+ return createMockCursor([]);
99
+ }
100
+ // Default empty result for unhandled queries
101
+ console.warn('Unhandled query:', query, bindings);
102
+ return createMockCursor([]);
103
+ },
104
+ get databaseSize() {
105
+ return 1024 * 1024; // Mock 1MB database
106
+ },
107
+ Cursor: {},
108
+ Statement: {},
109
+ };
110
+ function createMockCursor(data) {
111
+ let index = 0;
112
+ return {
113
+ next: () => {
114
+ if (index < data.length) {
115
+ return { done: false, value: data[index++] };
116
+ }
117
+ return { done: true };
118
+ },
119
+ toArray: () => data,
120
+ one: () => {
121
+ if (data.length === 0) {
122
+ throw new Error('No results');
123
+ }
124
+ return data[0];
125
+ },
126
+ raw: function* () {
127
+ for (const item of data) {
128
+ yield Object.values(item);
129
+ }
130
+ },
131
+ columnNames: Object.keys(data[0] || {}),
132
+ get rowsRead() {
133
+ return data.length;
134
+ },
135
+ get rowsWritten() {
136
+ return 0;
137
+ },
138
+ [Symbol.iterator]: function* () {
139
+ for (const item of data) {
140
+ yield item;
141
+ }
142
+ },
143
+ };
144
+ }
145
+ vfs = new CloudflareSqlVFS('test-sql-vfs', mockSql, {});
146
+ await vfs.isReady();
147
+ });
148
+ describe('Basic File Operations', () => {
149
+ it('should create and open files', async () => {
150
+ const path = '/test/basic.db';
151
+ const fileId = 1;
152
+ const flags = VFS.SQLITE_OPEN_CREATE | VFS.SQLITE_OPEN_READWRITE;
153
+ const pOutFlags = new DataView(new ArrayBuffer(4));
154
+ const result = vfs.jOpen(path, fileId, flags, pOutFlags);
155
+ expect(result).toBe(VFS.SQLITE_OK);
156
+ expect(pOutFlags.getUint32(0, true)).toBe(flags);
157
+ expect(vfs.jClose(fileId)).toBe(VFS.SQLITE_OK);
158
+ // Verify file was created in mock database
159
+ expect(mockDatabase.has(`file:${path}`)).toBe(true);
160
+ });
161
+ it('should handle file access checks', async () => {
162
+ const path = '/test/access.db';
163
+ const fileId = 1;
164
+ const flags = VFS.SQLITE_OPEN_CREATE | VFS.SQLITE_OPEN_READWRITE;
165
+ const pOutFlags = new DataView(new ArrayBuffer(4));
166
+ // File doesn't exist initially
167
+ const pResOut = new DataView(new ArrayBuffer(4));
168
+ expect(vfs.jAccess(path, VFS.SQLITE_ACCESS_EXISTS, pResOut)).toBe(VFS.SQLITE_OK);
169
+ expect(pResOut.getUint32(0, true)).toBe(0);
170
+ // Create file
171
+ vfs.jOpen(path, fileId, flags, pOutFlags);
172
+ vfs.jClose(fileId);
173
+ // File should exist now
174
+ expect(vfs.jAccess(path, VFS.SQLITE_ACCESS_EXISTS, pResOut)).toBe(VFS.SQLITE_OK);
175
+ expect(pResOut.getUint32(0, true)).toBe(1);
176
+ });
177
+ it('should handle basic read/write operations', async () => {
178
+ const path = '/test/readwrite.db';
179
+ const fileId = 1;
180
+ const flags = VFS.SQLITE_OPEN_CREATE | VFS.SQLITE_OPEN_READWRITE;
181
+ const pOutFlags = new DataView(new ArrayBuffer(4));
182
+ vfs.jOpen(path, fileId, flags, pOutFlags);
183
+ // Write data
184
+ const testData = new TextEncoder().encode('Hello, SQL VFS!');
185
+ expect(vfs.jWrite(fileId, testData, 0)).toBe(VFS.SQLITE_OK);
186
+ // Read data back
187
+ const readBuffer = new Uint8Array(testData.length);
188
+ expect(vfs.jRead(fileId, readBuffer, 0)).toBe(VFS.SQLITE_OK);
189
+ expect(readBuffer).toEqual(testData);
190
+ vfs.jClose(fileId);
191
+ });
192
+ it('should handle file size operations', async () => {
193
+ const path = '/test/size.db';
194
+ const fileId = 1;
195
+ const flags = VFS.SQLITE_OPEN_CREATE | VFS.SQLITE_OPEN_READWRITE;
196
+ const pOutFlags = new DataView(new ArrayBuffer(4));
197
+ vfs.jOpen(path, fileId, flags, pOutFlags);
198
+ // Initial size should be 0
199
+ const pSize64 = new DataView(new ArrayBuffer(8));
200
+ expect(vfs.jFileSize(fileId, pSize64)).toBe(VFS.SQLITE_OK);
201
+ expect(pSize64.getBigInt64(0, true)).toBe(0n);
202
+ // Write data and check size
203
+ const testData = new Uint8Array(1000);
204
+ testData.fill(0xaa);
205
+ vfs.jWrite(fileId, testData, 0);
206
+ expect(vfs.jFileSize(fileId, pSize64)).toBe(VFS.SQLITE_OK);
207
+ expect(pSize64.getBigInt64(0, true)).toBe(1000n);
208
+ vfs.jClose(fileId);
209
+ });
210
+ it('should handle file truncation', async () => {
211
+ const path = '/test/truncate.db';
212
+ const fileId = 1;
213
+ const flags = VFS.SQLITE_OPEN_CREATE | VFS.SQLITE_OPEN_READWRITE;
214
+ const pOutFlags = new DataView(new ArrayBuffer(4));
215
+ vfs.jOpen(path, fileId, flags, pOutFlags);
216
+ // Write data
217
+ const testData = new Uint8Array(2000);
218
+ testData.fill(0xbb);
219
+ vfs.jWrite(fileId, testData, 0);
220
+ // Truncate to smaller size
221
+ expect(vfs.jTruncate(fileId, 500)).toBe(VFS.SQLITE_OK);
222
+ // Verify size
223
+ const pSize64 = new DataView(new ArrayBuffer(8));
224
+ expect(vfs.jFileSize(fileId, pSize64)).toBe(VFS.SQLITE_OK);
225
+ expect(pSize64.getBigInt64(0, true)).toBe(500n);
226
+ vfs.jClose(fileId);
227
+ });
228
+ it('should handle sync operations', async () => {
229
+ const path = '/test/sync.db';
230
+ const fileId = 1;
231
+ const flags = VFS.SQLITE_OPEN_CREATE | VFS.SQLITE_OPEN_READWRITE;
232
+ const pOutFlags = new DataView(new ArrayBuffer(4));
233
+ vfs.jOpen(path, fileId, flags, pOutFlags);
234
+ const testData = new TextEncoder().encode('Sync test data');
235
+ vfs.jWrite(fileId, testData, 0);
236
+ // Test different sync modes - should all be no-ops for SQL VFS
237
+ expect(vfs.jSync(fileId, VFS.SQLITE_SYNC_NORMAL)).toBe(VFS.SQLITE_OK);
238
+ expect(vfs.jSync(fileId, VFS.SQLITE_SYNC_FULL)).toBe(VFS.SQLITE_OK);
239
+ expect(vfs.jSync(fileId, VFS.SQLITE_SYNC_DATAONLY)).toBe(VFS.SQLITE_OK);
240
+ vfs.jClose(fileId);
241
+ });
242
+ it('should handle file deletion', async () => {
243
+ const path = '/test/delete.db';
244
+ const fileId = 1;
245
+ const flags = VFS.SQLITE_OPEN_CREATE | VFS.SQLITE_OPEN_READWRITE;
246
+ const pOutFlags = new DataView(new ArrayBuffer(4));
247
+ // Create file
248
+ vfs.jOpen(path, fileId, flags, pOutFlags);
249
+ const testData = new TextEncoder().encode('Delete test');
250
+ vfs.jWrite(fileId, testData, 0);
251
+ vfs.jClose(fileId);
252
+ // Delete file
253
+ expect(vfs.jDelete(path, 0)).toBe(VFS.SQLITE_OK);
254
+ // Verify file is gone
255
+ expect(mockDatabase.has(`file:${path}`)).toBe(false);
256
+ expect(mockDatabase.has(`blocks:${path}`)).toBe(false);
257
+ });
258
+ });
259
+ describe('VFS Management', () => {
260
+ it('should provide correct VFS characteristics', () => {
261
+ expect(vfs.jSectorSize(1)).toBe(4096);
262
+ expect(vfs.jDeviceCharacteristics(1)).toBe(VFS.SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN);
263
+ });
264
+ it('should handle multiple files', async () => {
265
+ const files = [
266
+ { path: '/test/file1.db', id: 1 },
267
+ { path: '/test/file2.db', id: 2 },
268
+ { path: '/test/file3.db', id: 3 },
269
+ ];
270
+ const flags = VFS.SQLITE_OPEN_CREATE | VFS.SQLITE_OPEN_READWRITE;
271
+ const pOutFlags = new DataView(new ArrayBuffer(4));
272
+ // Open all files
273
+ for (const file of files) {
274
+ expect(vfs.jOpen(file.path, file.id, flags, pOutFlags)).toBe(VFS.SQLITE_OK);
275
+ }
276
+ // Write different data to each
277
+ for (let i = 0; i < files.length; i++) {
278
+ const data = new TextEncoder().encode(`File ${i + 1} data`);
279
+ expect(vfs.jWrite(files[i]?.id ?? 0, data, 0)).toBe(VFS.SQLITE_OK);
280
+ }
281
+ // Read back and verify
282
+ for (let i = 0; i < files.length; i++) {
283
+ const expected = new TextEncoder().encode(`File ${i + 1} data`);
284
+ const actual = new Uint8Array(expected.length);
285
+ expect(vfs.jRead(files[i]?.id ?? 0, actual, 0)).toBe(VFS.SQLITE_OK);
286
+ expect(actual).toEqual(expected);
287
+ }
288
+ // Close all files
289
+ for (const file of files) {
290
+ expect(vfs.jClose(file.id)).toBe(VFS.SQLITE_OK);
291
+ }
292
+ });
293
+ it('should provide VFS statistics', () => {
294
+ const stats = vfs.getStats();
295
+ expect(stats).toHaveProperty('activeFiles');
296
+ expect(stats).toHaveProperty('openFiles');
297
+ expect(stats).toHaveProperty('maxFiles');
298
+ expect(stats).toHaveProperty('blockSize');
299
+ expect(stats).toHaveProperty('totalStoredBytes');
300
+ expect(stats.blockSize).toBe(64 * 1024);
301
+ });
302
+ });
303
+ describe('Error Handling', () => {
304
+ it('should handle invalid file IDs', () => {
305
+ const invalidFileId = 999;
306
+ const buffer = new Uint8Array(100);
307
+ expect(vfs.jRead(invalidFileId, buffer, 0)).toBe(VFS.SQLITE_IOERR);
308
+ expect(vfs.jWrite(invalidFileId, buffer, 0)).toBe(VFS.SQLITE_IOERR);
309
+ expect(vfs.jTruncate(invalidFileId, 50)).toBe(VFS.SQLITE_IOERR);
310
+ expect(vfs.jSync(invalidFileId, 0)).toBe(VFS.SQLITE_IOERR);
311
+ expect(vfs.jClose(invalidFileId)).toBe(VFS.SQLITE_OK);
312
+ });
313
+ it('should handle invalid paths', () => {
314
+ const invalidPath = '';
315
+ const fileId = 1;
316
+ const flags = VFS.SQLITE_OPEN_CREATE | VFS.SQLITE_OPEN_READWRITE;
317
+ const pOutFlags = new DataView(new ArrayBuffer(4));
318
+ expect(vfs.jOpen(invalidPath, fileId, flags, pOutFlags)).toBe(VFS.SQLITE_OK);
319
+ });
320
+ it('should handle file operations on closed files', () => {
321
+ const path = '/test/closed.db';
322
+ const fileId = 1;
323
+ const flags = VFS.SQLITE_OPEN_CREATE | VFS.SQLITE_OPEN_READWRITE;
324
+ const pOutFlags = new DataView(new ArrayBuffer(4));
325
+ // Open and close file
326
+ vfs.jOpen(path, fileId, flags, pOutFlags);
327
+ vfs.jClose(fileId);
328
+ // Try to operate on closed file
329
+ const buffer = new Uint8Array(10);
330
+ expect(vfs.jRead(fileId, buffer, 0)).toBe(VFS.SQLITE_IOERR);
331
+ expect(vfs.jWrite(fileId, buffer, 0)).toBe(VFS.SQLITE_IOERR);
332
+ });
333
+ });
334
+ describe('Constants and Compatibility', () => {
335
+ it('should define correct VFS constants', () => {
336
+ expect(VFS.SQLITE_OK).toBe(0);
337
+ expect(VFS.SQLITE_IOERR).toBe(10);
338
+ expect(VFS.SQLITE_CANTOPEN).toBe(14);
339
+ expect(VFS.SQLITE_READONLY).toBe(8);
340
+ expect(VFS.SQLITE_IOERR_SHORT_READ).toBe(522);
341
+ expect(VFS.SQLITE_IOERR_WRITE).toBe(778);
342
+ expect(VFS.SQLITE_IOERR_TRUNCATE).toBe(1546);
343
+ });
344
+ it('should handle VFS flags correctly', () => {
345
+ expect(VFS.SQLITE_OPEN_CREATE).toBeTruthy();
346
+ expect(VFS.SQLITE_OPEN_READWRITE).toBeTruthy();
347
+ expect(VFS.SQLITE_OPEN_READONLY).toBeTruthy();
348
+ expect(VFS.SQLITE_OPEN_MAIN_DB).toBeTruthy();
349
+ expect(VFS.SQLITE_OPEN_WAL).toBeTruthy();
350
+ expect(VFS.SQLITE_OPEN_MAIN_JOURNAL).toBeTruthy();
351
+ });
352
+ });
353
+ });
354
+ //# sourceMappingURL=cloudflare-sql-vfs-core.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudflare-sql-vfs-core.test.js","sourceRoot":"","sources":["../../../../src/cf/test/sql/cloudflare-sql-vfs-core.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mod.node.d.ts","sourceRoot":"","sources":["../../src/load-wasm/mod.node.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,eAAe,0BAQ3B,CAAA"}
1
+ {"version":3,"file":"mod.node.d.ts","sourceRoot":"","sources":["../../src/load-wasm/mod.node.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,eAAe,0BAQ3B,CAAA"}
@@ -1,6 +1,5 @@
1
- import * as WaSqlite from '@livestore/wa-sqlite';
2
- // @ts-expect-error TODO fix types in wa-sqlite
3
1
  import WaSqliteFactory from '@livestore/wa-sqlite/dist/wa-sqlite.node.mjs';
2
+ import * as WaSqlite from '@livestore/wa-sqlite/src/sqlite-api.js';
4
3
  export const loadSqlite3Wasm = async () => {
5
4
  const module = await WaSqliteFactory();
6
5
  // https://github.com/rhashimoto/wa-sqlite/issues/143#issuecomment-1899060056
@@ -1 +1 @@
1
- {"version":3,"file":"mod.node.js","sourceRoot":"","sources":["../../src/load-wasm/mod.node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAChD,+CAA+C;AAC/C,OAAO,eAAe,MAAM,8CAA8C,CAAA;AAE1E,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE;IACxC,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAA;IACtC,6EAA6E;IAC7E,uDAAuD;IACvD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACxC,kCAAkC;IAClC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAA;IACvB,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
1
+ {"version":3,"file":"mod.node.js","sourceRoot":"","sources":["../../src/load-wasm/mod.node.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,8CAA8C,CAAA;AAC1E,OAAO,KAAK,QAAQ,MAAM,wCAAwC,CAAA;AAElE,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE;IACxC,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAA;IACtC,6EAA6E;IAC7E,uDAAuD;IACvD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACxC,kCAAkC;IAClC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAA;IACvB,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const loadSqlite3Wasm: () => Promise<SQLiteAPI>;
2
+ //# sourceMappingURL=mod.workerd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.workerd.d.ts","sourceRoot":"","sources":["../../src/load-wasm/mod.workerd.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,eAAe,0BAoB3B,CAAA"}
@@ -0,0 +1,28 @@
1
+ import * as WaSqlite from '@livestore/wa-sqlite';
2
+ import WaSqliteFactory from '@livestore/wa-sqlite/dist/wa-sqlite.mjs';
3
+ // @ts-expect-error TODO fix types in wa-sqlite
4
+ import wasm from '@livestore/wa-sqlite/dist/wa-sqlite.wasm';
5
+ // Note that it's important that the `workerd` entry is the first one in the `exports` map in the `package.json` file.
6
+ export const loadSqlite3Wasm = async () => {
7
+ // It seems we need to pass in the wasm binary directly for workerd to work
8
+ // This is due to workerd not supporting the same patterns as Vite for automatically loading WASM.
9
+ const module = await WaSqliteFactory({
10
+ instantiateWasm: (info, receiveInstance) => {
11
+ try {
12
+ // Use the pre-compiled module directly
13
+ const instance = new WebAssembly.Instance(wasm, info);
14
+ receiveInstance(instance, wasm);
15
+ return instance.exports;
16
+ }
17
+ catch (error) {
18
+ console.error('Failed to instantiate WASM:', error);
19
+ throw error;
20
+ }
21
+ },
22
+ });
23
+ const sqlite3 = WaSqlite.Factory(module);
24
+ // @ts-expect-error TODO fix types
25
+ sqlite3.module = module;
26
+ return sqlite3;
27
+ };
28
+ //# sourceMappingURL=mod.workerd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.workerd.js","sourceRoot":"","sources":["../../src/load-wasm/mod.workerd.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAChD,OAAO,eAAe,MAAM,yCAAyC,CAAA;AAErE,+CAA+C;AAC/C,OAAO,IAAI,MAAM,0CAA0C,CAAA;AAE3D,sHAAsH;AACtH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE;IACxC,2EAA2E;IAC3E,kGAAkG;IAClG,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;QACnC,eAAe,EAAE,CAAC,IAAS,EAAE,eAAoB,EAAE,EAAE;YACnD,IAAI,CAAC;gBACH,uCAAuC;gBACvC,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;gBACrD,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;gBAC/B,OAAO,QAAQ,CAAC,OAAO,CAAA;YACzB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAA;gBACnD,MAAM,KAAK,CAAA;YACb,CAAC;QACH,CAAC;KACF,CAAC,CAAA;IACF,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACxC,kCAAkC;IAClC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAA;IACvB,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import type { PersistenceInfo, SqliteDb } from '@livestore/common';
2
+ import type { SQLiteAPI } from '@livestore/wa-sqlite';
2
3
  export declare const makeSqliteDb: <TMetadata extends {
3
4
  dbPointer: number;
4
5
  persistenceInfo: PersistenceInfo;
@@ -1 +1 @@
1
- {"version":3,"file":"make-sqlite-db.d.ts","sourceRoot":"","sources":["../src/make-sqlite-db.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EAGf,QAAQ,EAET,MAAM,mBAAmB,CAAA;AAM1B,eAAO,MAAM,YAAY,GACvB,SAAS,SAAS;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,eAAe,CAAA;IAChC,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,WAAW,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,IAAI,CAAA;CAC/C,EACD,wBAGC;IACD,OAAO,EAAE,SAAS,CAAA;IAClB,QAAQ,EAAE,SAAS,CAAA;CACpB,KAAG,QAAQ,CAAC,SAAS,CAgNrB,CAAA"}
1
+ {"version":3,"file":"make-sqlite-db.d.ts","sourceRoot":"","sources":["../src/make-sqlite-db.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EAGf,QAAQ,EAET,MAAM,mBAAmB,CAAA;AAG1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAIrD,eAAO,MAAM,YAAY,GACvB,SAAS,SAAS;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,eAAe,CAAA;IAChC,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,WAAW,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,IAAI,CAAA;CAC/C,EACD,wBAGC;IACD,OAAO,EAAE,SAAS,CAAA;IAClB,QAAQ,EAAE,SAAS,CAAA;CACpB,KAAG,QAAQ,CAAC,SAAS,CA8OrB,CAAA"}
@@ -11,7 +11,7 @@ export const makeSqliteDb = ({ sqlite3, metadata, }) => {
11
11
  metadata,
12
12
  debug: {
13
13
  // Setting initially to root but will be set to correct value shortly after
14
- head: EventSequenceNumber.ROOT,
14
+ head: EventSequenceNumber.Client.ROOT,
15
15
  },
16
16
  prepare: (queryStr) => {
17
17
  try {
@@ -115,9 +115,6 @@ export const makeSqliteDb = ({ sqlite3, metadata, }) => {
115
115
  destroy: () => {
116
116
  sqliteDb.close();
117
117
  metadata.deleteDb();
118
- // if (metadata._tag === 'opfs') {
119
- // metadata.vfs.resetAccessHandle(metadata.fileName)
120
- // }
121
118
  },
122
119
  close: () => {
123
120
  if (isClosed) {
@@ -140,16 +137,40 @@ export const makeSqliteDb = ({ sqlite3, metadata, }) => {
140
137
  // if (readOnly === true) {
141
138
  // sqlite3.deserialize(db, 'main', bytes, bytes.length, bytes.length, FREE_ON_CLOSE | RESIZEABLE)
142
139
  // } else {
140
+ const ensureSuccess = (rc, operation) => {
141
+ if (rc !== SqliteConstants.SQLITE_OK) {
142
+ throw new SqliteError({
143
+ code: rc,
144
+ cause: new Error(`${operation} failed with rc=${rc}`),
145
+ note: 'Snapshot import failed during SQLite copy',
146
+ });
147
+ }
148
+ };
143
149
  if (source instanceof Uint8Array) {
150
+ const WAL_FILE_FORMAT = 2;
151
+ if (source.length >= 24 && (source[18] === WAL_FILE_FORMAT || source[19] === WAL_FILE_FORMAT)) {
152
+ throw new SqliteError({
153
+ code: SqliteConstants.SQLITE_CANTOPEN,
154
+ cause: new Error('WAL snapshots are not supported'),
155
+ note: 'Import expects rollback-journal snapshots (journal_mode=DELETE). Please convert snapshot before importing.',
156
+ });
157
+ }
144
158
  const tmpDb = makeInMemoryDb(sqlite3);
145
159
  // TODO find a way to do this more efficiently with sqlite to avoid either of the deserialize + backup call
146
160
  // Maybe this can be done via the VFS API
147
- sqlite3.deserialize(tmpDb.dbPointer, 'main', source, source.length, source.length, FREE_ON_CLOSE | RESIZEABLE);
148
- sqlite3.backup(dbPointer, 'main', tmpDb.dbPointer, 'main');
149
- sqlite3.close(tmpDb.dbPointer);
161
+ const rcDeserialize = sqlite3.deserialize(tmpDb.dbPointer, 'main', source, source.length, source.length, FREE_ON_CLOSE | RESIZEABLE);
162
+ ensureSuccess(rcDeserialize, 'sqlite3.deserialize');
163
+ try {
164
+ const rcBackup = sqlite3.backup(dbPointer, 'main', tmpDb.dbPointer, 'main');
165
+ ensureSuccess(rcBackup, 'sqlite3.backup');
166
+ }
167
+ finally {
168
+ sqlite3.close(tmpDb.dbPointer);
169
+ }
150
170
  }
151
171
  else {
152
- sqlite3.backup(dbPointer, 'main', source.metadata.dbPointer, 'main');
172
+ const rcBackup = sqlite3.backup(dbPointer, 'main', source.metadata.dbPointer, 'main');
173
+ ensureSuccess(rcBackup, 'sqlite3.backup');
153
174
  }
154
175
  metadata.configureDb(sqliteDb);
155
176
  },
@@ -1 +1 @@
1
- {"version":3,"file":"make-sqlite-db.js","sourceRoot":"","sources":["../src/make-sqlite-db.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,KAAK,eAAe,MAAM,8CAA8C,CAAA;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnD,MAAM,CAAC,MAAM,YAAY,GAAG,CAO1B,EACA,OAAO,EACP,QAAQ,GAIT,EAAuB,EAAE;IACxB,MAAM,aAAa,GAAwB,EAAE,CAAA;IAC7C,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAA;IAE9B,IAAI,QAAQ,GAAG,KAAK,CAAA;IAEpB,MAAM,QAAQ,GAAwB;QACpC,IAAI,EAAE,UAAU;QAChB,QAAQ;QACR,KAAK,EAAE;YACL,2EAA2E;YAC3E,IAAI,EAAE,mBAAmB,CAAC,IAAI;SAC/B;QACD,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE;YACpB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;gBAEhF,IAAI,WAAW,GAAG,KAAK,CAAA;gBAEvB,MAAM,YAAY,GAAG;oBACnB,OAAO,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE;wBAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;4BACzB,IAAI,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCACnE,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,UAAiB,CAAC,CAAA;4BAClD,CAAC;4BAED,IAAI,CAAC;gCACH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;4BACpB,CAAC;oCAAS,CAAC;gCACT,IAAI,OAAO,EAAE,aAAa,EAAE,CAAC;oCAC3B,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;gCACnD,CAAC;gCAED,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA,CAAC,qCAAqC;4BAC3D,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,MAAM,EAAE,CAAI,UAA8B,EAAE,EAAE;wBAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;4BACvB,MAAM,IAAI,WAAW,CAAC;gCACpB,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE;gCACpC,IAAI,EAAE,CAAC,CAAC;gCACR,KAAK,EAAE,iDAAiD;6BACzD,CAAC,CAAA;wBACJ,CAAC;wBAED,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAA;wBAEtB,IAAI,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACnE,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,UAAiB,CAAC,CAAA;wBAClD,CAAC;wBAED,MAAM,OAAO,GAAQ,EAAE,CAAA;wBAEvB,IAAI,CAAC;4BACH,4FAA4F;4BAC5F,IAAI,OAA6B,CAAA;4BACjC,IAAI,CAAC;gCACH,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;4BACtC,CAAC;4BAAC,OAAO,EAAE,EAAE,CAAC,CAAA,CAAC;4BAEf,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,eAAe,CAAC,UAAU,EAAE,CAAC;gCACzD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oCAC1B,MAAM,GAAG,GAA2B,EAAE,CAAA;oCACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wCACxC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;oCAC5C,CAAC;oCACD,OAAO,CAAC,IAAI,CAAC,GAAmB,CAAC,CAAA;gCACnC,CAAC;4BACH,CAAC;wBACH,CAAC;wBAAC,OAAO,CAAC,EAAE,CAAC;4BACX,MAAM,IAAI,WAAW,CAAC;gCACpB,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE;gCACpC,IAAI,EAAG,CAAS,CAAC,IAAI;gCACrB,KAAK,EAAE,CAAC;6BACT,CAAC,CAAA;wBACJ,CAAC;gCAAS,CAAC;4BACT,kEAAkE;4BAClE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;wBACrB,CAAC;wBAED,OAAO,OAAO,CAAA;oBAChB,CAAC;oBACD,QAAQ,EAAE,GAAG,EAAE;wBACb,mDAAmD;wBACnD,IAAI,WAAW,EAAE,CAAC;4BAChB,OAAM;wBACR,CAAC;wBAED,WAAW,GAAG,IAAI,CAAA;wBAElB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;4BACzB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;wBACxB,CAAC;oBACH,CAAC;oBACD,GAAG,EAAE,QAAQ;iBACc,CAAA;gBAE7B,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;gBAEhC,OAAO,YAAY,CAAA;YACrB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,IAAI,WAAW,CAAC;oBACpB,KAAK,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;oBACxC,IAAI,EAAG,CAAS,CAAC,IAAI;oBACrB,KAAK,EAAE,CAAC;iBACT,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QACD,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC7E,OAAO,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE;YACpE,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;YACvC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;YACjC,IAAI,CAAC,QAAQ,EAAE,CAAA;QACjB,CAAC,CAAC;QACF,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE;YACzD,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YACvC,IAAI,CAAC,QAAQ,EAAE,CAAA;YACf,OAAO,OAA6B,CAAA;QACtC,CAAC,CAAC;QACF,OAAO,EAAE,GAAG,EAAE;YACZ,QAAQ,CAAC,KAAK,EAAE,CAAA;YAEhB,QAAQ,CAAC,QAAQ,EAAE,CAAA;YACnB,kCAAkC;YAClC,sDAAsD;YACtD,IAAI;QACN,CAAC;QACD,KAAK,EAAE,GAAG,EAAE;YACV,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAM;YACR,CAAC;YAED,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;gBACjC,IAAI,CAAC,QAAQ,EAAE,CAAA;YACjB,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YACxB,QAAQ,GAAG,IAAI,CAAA;QACjB,CAAC;QACD,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;YACjB,8DAA8D;YAC9D,8EAA8E;YAC9E,kFAAkF;YAClF,uEAAuE;YACvE,MAAM,aAAa,GAAG,CAAC,CAAA;YACvB,MAAM,UAAU,GAAG,CAAC,CAAA;YAEpB,6GAA6G;YAC7G,2BAA2B;YAC3B,mGAAmG;YACnG,WAAW;YACX,IAAI,MAAM,YAAY,UAAU,EAAE,CAAC;gBACjC,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;gBACrC,2GAA2G;gBAC3G,yCAAyC;gBACzC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,UAAU,CAAC,CAAA;gBAC9G,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;gBAC1D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YAChC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;YACtE,CAAC;YAED,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;QAChC,CAAC;QACD,OAAO,EAAE,GAAG,EAAE;YACZ,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;YAChE,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC,CAAA;YAE5C,OAAO;gBACL,SAAS,EAAE,GAAG,EAAE;oBACd,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAA;oBACrD,OAAO,GAAG,CAAC,SAAS,IAAI,SAAS,CAAA;gBACnC,CAAC;gBACD,MAAM,EAAE,GAAG,EAAE;oBACX,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;gBACxC,CAAC;aACF,CAAA;QACH,CAAC;QACD,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE;YACtB,MAAM,SAAS,GAAG;gBAChB,MAAM,EAAE,GAAG,EAAE;oBACX,MAAM,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;oBAC/C,OAAO,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;gBACzC,CAAC;gBACD,KAAK,EAAE,GAAG,EAAE;oBACV,IAAI,CAAC;wBACH,OAAO,CAAC,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;wBACxC,8DAA8D;wBAC9D,iDAAiD;wBACjD,IAAI,GAAG,SAAS,CAAA;oBAClB,CAAC;oBAAC,OAAO,KAAU,EAAE,CAAC;wBACpB,MAAM,IAAI,WAAW,CAAC;4BACpB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;4BACtB,KAAK;4BACL,IAAI,EAAE,oCAAoC;yBAC3C,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;aAC0B,CAAA;YAE7B,OAAO,SAAS,CAAA;QAClB,CAAC;KAC4B,CAAA;IAE/B,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;IAE9B,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA"}
1
+ {"version":3,"file":"make-sqlite-db.js","sourceRoot":"","sources":["../src/make-sqlite-db.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,7 @@ export declare class NodeFS extends FacadeVFS {
4
4
  private mapIdToFile;
5
5
  private lastError;
6
6
  private readonly directory;
7
- private readonly onShutdown;
8
- constructor(name: string, sqlite3: WaSqlite.SQLiteAPI, directory: string, onShutdown: () => void);
7
+ constructor(name: string, sqlite3: WaSqlite.SQLiteAPI, directory: string);
9
8
  getFilename(fileId: number): string;
10
9
  jOpen(zName: string | null, fileId: number, flags: number, pOutFlags: DataView): number;
11
10
  jRead(fileId: number, pData: Uint8Array<ArrayBuffer>, iOffset: number): number;
@@ -1 +1 @@
1
- {"version":3,"file":"NodeFS.d.ts","sourceRoot":"","sources":["../../src/node/NodeFS.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAGrD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAQ3C,qBAAa,MAAO,SAAQ,SAAS;IACnC,OAAO,CAAC,WAAW,CAAgC;IAEnD,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;gBAC3B,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,IAAI;IAOhG,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAKnC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,GAAG,MAAM;IAmCvF,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAoB9E,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAe/E,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAsB9B,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,MAAM;IAcpD,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAahD,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAc7C,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAahD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,MAAM;IAYjE,QAAQ,CAAC,QAAQ,EAAE,MAAM;CAK1B"}
1
+ {"version":3,"file":"NodeFS.d.ts","sourceRoot":"","sources":["../../src/node/NodeFS.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAGrD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAQ3C,qBAAa,MAAO,SAAQ,SAAS;IACnC,OAAO,CAAC,WAAW,CAAgC;IAEnD,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;gBACtB,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM;IAMxE,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAKnC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,GAAG,MAAM;IAmCvF,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAoB9E,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAe/E,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAoB9B,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,MAAM;IAcpD,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAahD,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAc7C,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAWhD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,MAAM;IAYjE,QAAQ,CAAC,QAAQ,EAAE,MAAM;CAG1B"}
@@ -8,11 +8,9 @@ export class NodeFS extends FacadeVFS {
8
8
  // biome-ignore lint/correctness/noUnusedPrivateClassMembers: for debugging
9
9
  lastError = null;
10
10
  directory;
11
- onShutdown;
12
- constructor(name, sqlite3, directory, onShutdown) {
11
+ constructor(name, sqlite3, directory) {
13
12
  super(name, sqlite3);
14
13
  this.directory = directory;
15
- this.onShutdown = onShutdown;
16
14
  }
17
15
  getFilename(fileId) {
18
16
  const pathname = this.mapIdToFile.get(fileId)?.pathname;
@@ -88,7 +86,6 @@ export class NodeFS extends FacadeVFS {
88
86
  }
89
87
  jClose(fileId) {
90
88
  try {
91
- this.onShutdown();
92
89
  const file = this.mapIdToFile.get(fileId);
93
90
  if (!file)
94
91
  return VFS.SQLITE_OK;
@@ -149,7 +146,6 @@ export class NodeFS extends FacadeVFS {
149
146
  }
150
147
  jDelete(zName, _syncDir) {
151
148
  try {
152
- this.onShutdown();
153
149
  const pathname = path.resolve(this.directory, zName);
154
150
  fs.unlinkSync(pathname);
155
151
  return VFS.SQLITE_OK;
@@ -172,7 +168,6 @@ export class NodeFS extends FacadeVFS {
172
168
  }
173
169
  }
174
170
  deleteDb(fileName) {
175
- this.onShutdown();
176
171
  fs.unlinkSync(path.join(this.directory, fileName));
177
172
  }
178
173
  }