@livestore/sqlite-wasm 0.4.0-dev.3 → 0.4.0-dev.5

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 (74) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/browser/mod.d.ts +1 -0
  3. package/dist/browser/mod.d.ts.map +1 -1
  4. package/dist/browser/mod.js.map +1 -1
  5. package/dist/cf/BlockManager.d.ts +61 -0
  6. package/dist/cf/BlockManager.d.ts.map +1 -0
  7. package/dist/cf/BlockManager.js +157 -0
  8. package/dist/cf/BlockManager.js.map +1 -0
  9. package/dist/cf/CloudflareSqlVFS.d.ts +51 -0
  10. package/dist/cf/CloudflareSqlVFS.d.ts.map +1 -0
  11. package/dist/cf/CloudflareSqlVFS.js +351 -0
  12. package/dist/cf/CloudflareSqlVFS.js.map +1 -0
  13. package/dist/cf/CloudflareWorkerVFS.d.ts +72 -0
  14. package/dist/cf/CloudflareWorkerVFS.d.ts.map +1 -0
  15. package/dist/cf/CloudflareWorkerVFS.js +552 -0
  16. package/dist/cf/CloudflareWorkerVFS.js.map +1 -0
  17. package/dist/cf/mod.d.ts +43 -0
  18. package/dist/cf/mod.d.ts.map +1 -0
  19. package/dist/cf/mod.js +74 -0
  20. package/dist/cf/mod.js.map +1 -0
  21. package/dist/cf/test/async-storage/cloudflare-worker-vfs-advanced.test.d.ts +2 -0
  22. package/dist/cf/test/async-storage/cloudflare-worker-vfs-advanced.test.d.ts.map +1 -0
  23. package/dist/cf/test/async-storage/cloudflare-worker-vfs-advanced.test.js +314 -0
  24. package/dist/cf/test/async-storage/cloudflare-worker-vfs-advanced.test.js.map +1 -0
  25. package/dist/cf/test/async-storage/cloudflare-worker-vfs-core.test.d.ts +2 -0
  26. package/dist/cf/test/async-storage/cloudflare-worker-vfs-core.test.d.ts.map +1 -0
  27. package/dist/cf/test/async-storage/cloudflare-worker-vfs-core.test.js +266 -0
  28. package/dist/cf/test/async-storage/cloudflare-worker-vfs-core.test.js.map +1 -0
  29. package/dist/cf/test/async-storage/cloudflare-worker-vfs-integration.test.d.ts +2 -0
  30. package/dist/cf/test/async-storage/cloudflare-worker-vfs-integration.test.d.ts.map +1 -0
  31. package/dist/cf/test/async-storage/cloudflare-worker-vfs-integration.test.js +444 -0
  32. package/dist/cf/test/async-storage/cloudflare-worker-vfs-integration.test.js.map +1 -0
  33. package/dist/cf/test/async-storage/cloudflare-worker-vfs-reliability.test.d.ts +2 -0
  34. package/dist/cf/test/async-storage/cloudflare-worker-vfs-reliability.test.d.ts.map +1 -0
  35. package/dist/cf/test/async-storage/cloudflare-worker-vfs-reliability.test.js +334 -0
  36. package/dist/cf/test/async-storage/cloudflare-worker-vfs-reliability.test.js.map +1 -0
  37. package/dist/cf/test/sql/cloudflare-sql-vfs-core.test.d.ts +2 -0
  38. package/dist/cf/test/sql/cloudflare-sql-vfs-core.test.d.ts.map +1 -0
  39. package/dist/cf/test/sql/cloudflare-sql-vfs-core.test.js +354 -0
  40. package/dist/cf/test/sql/cloudflare-sql-vfs-core.test.js.map +1 -0
  41. package/dist/load-wasm/mod.node.d.ts.map +1 -1
  42. package/dist/load-wasm/mod.node.js +1 -2
  43. package/dist/load-wasm/mod.node.js.map +1 -1
  44. package/dist/load-wasm/mod.workerd.d.ts +2 -0
  45. package/dist/load-wasm/mod.workerd.d.ts.map +1 -0
  46. package/dist/load-wasm/mod.workerd.js +26 -0
  47. package/dist/load-wasm/mod.workerd.js.map +1 -0
  48. package/dist/make-sqlite-db.d.ts +1 -0
  49. package/dist/make-sqlite-db.d.ts.map +1 -1
  50. package/dist/make-sqlite-db.js.map +1 -1
  51. package/dist/node/NodeFS.d.ts +1 -2
  52. package/dist/node/NodeFS.d.ts.map +1 -1
  53. package/dist/node/NodeFS.js +1 -6
  54. package/dist/node/NodeFS.js.map +1 -1
  55. package/dist/node/mod.js +3 -8
  56. package/dist/node/mod.js.map +1 -1
  57. package/package.json +20 -7
  58. package/src/browser/mod.ts +1 -0
  59. package/src/cf/BlockManager.ts +225 -0
  60. package/src/cf/CloudflareSqlVFS.ts +450 -0
  61. package/src/cf/CloudflareWorkerVFS.ts +664 -0
  62. package/src/cf/README.md +60 -0
  63. package/src/cf/mod.ts +143 -0
  64. package/src/cf/test/README.md +224 -0
  65. package/src/cf/test/async-storage/cloudflare-worker-vfs-advanced.test.ts +389 -0
  66. package/src/cf/test/async-storage/cloudflare-worker-vfs-core.test.ts +322 -0
  67. package/src/cf/test/async-storage/cloudflare-worker-vfs-integration.test.ts +567 -0
  68. package/src/cf/test/async-storage/cloudflare-worker-vfs-reliability.test.ts +403 -0
  69. package/src/cf/test/sql/cloudflare-sql-vfs-core.test.ts +433 -0
  70. package/src/load-wasm/mod.node.ts +1 -2
  71. package/src/load-wasm/mod.workerd.ts +26 -0
  72. package/src/make-sqlite-db.ts +1 -0
  73. package/src/node/NodeFS.ts +1 -9
  74. package/src/node/mod.ts +3 -10
@@ -0,0 +1,266 @@
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 { CloudflareWorkerVFS } from "../../mod.js";
5
+ describe('CloudflareWorkerVFS - Core Functionality', () => {
6
+ let vfs;
7
+ let mockStorage;
8
+ let storageData;
9
+ beforeEach(async () => {
10
+ storageData = new Map();
11
+ mockStorage = {
12
+ get: (async (_key) => {
13
+ if (Array.isArray(_key)) {
14
+ return new Map();
15
+ }
16
+ return storageData.get(_key);
17
+ }),
18
+ put: async (_key, _value) => {
19
+ if (typeof _key === 'string') {
20
+ storageData.set(_key, _value);
21
+ }
22
+ else {
23
+ for (const [k, v] of Object.entries(_key)) {
24
+ storageData.set(k, v);
25
+ }
26
+ }
27
+ },
28
+ delete: (async (_key) => {
29
+ if (Array.isArray(_key)) {
30
+ let count = 0;
31
+ for (const k of _key) {
32
+ if (storageData.delete(k))
33
+ count++;
34
+ }
35
+ return count;
36
+ }
37
+ else {
38
+ return storageData.delete(_key);
39
+ }
40
+ }),
41
+ list: async () => new Map(storageData),
42
+ sync: async () => { },
43
+ transactionSync: (fn) => fn(),
44
+ deleteAll: async () => {
45
+ storageData.clear();
46
+ },
47
+ transaction: async (fn) => fn({}),
48
+ getCurrentBookmark: async () => '',
49
+ getBookmarkForTime: async (_time) => '',
50
+ onNextSessionRestoreBookmark: async (_bookmark) => '',
51
+ getAlarm: async () => null,
52
+ setAlarm: async (_timestamp) => { },
53
+ deleteAlarm: async () => { },
54
+ sql: {},
55
+ };
56
+ vfs = new CloudflareWorkerVFS('test-vfs', mockStorage, {});
57
+ await vfs.isReady();
58
+ });
59
+ describe('Basic File Operations', () => {
60
+ it('should create and open files', async () => {
61
+ const path = '/test/basic.db';
62
+ const fileId = 1;
63
+ const flags = VFS.SQLITE_OPEN_CREATE | VFS.SQLITE_OPEN_READWRITE;
64
+ const pOutFlags = new DataView(new ArrayBuffer(4));
65
+ const result = vfs.jOpen(path, fileId, flags, pOutFlags);
66
+ expect(result).toBe(VFS.SQLITE_OK);
67
+ expect(pOutFlags.getUint32(0, true)).toBe(flags);
68
+ expect(vfs.jClose(fileId)).toBe(VFS.SQLITE_OK);
69
+ });
70
+ it('should handle file access checks', async () => {
71
+ const path = '/test/access.db';
72
+ const fileId = 1;
73
+ const flags = VFS.SQLITE_OPEN_CREATE | VFS.SQLITE_OPEN_READWRITE;
74
+ const pOutFlags = new DataView(new ArrayBuffer(4));
75
+ // File doesn't exist initially
76
+ expect(vfs.jAccess(path, VFS.SQLITE_ACCESS_EXISTS, new DataView(new ArrayBuffer(4)))).toBe(VFS.SQLITE_OK);
77
+ // Create file
78
+ vfs.jOpen(path, fileId, flags, pOutFlags);
79
+ vfs.jClose(fileId);
80
+ // File should exist now
81
+ const pResOut = new DataView(new ArrayBuffer(4));
82
+ expect(vfs.jAccess(path, VFS.SQLITE_ACCESS_EXISTS, pResOut)).toBe(VFS.SQLITE_OK);
83
+ });
84
+ it('should handle basic read/write operations', async () => {
85
+ const path = '/test/readwrite.db';
86
+ const fileId = 1;
87
+ const flags = VFS.SQLITE_OPEN_CREATE | VFS.SQLITE_OPEN_READWRITE;
88
+ const pOutFlags = new DataView(new ArrayBuffer(4));
89
+ vfs.jOpen(path, fileId, flags, pOutFlags);
90
+ // Write data
91
+ const testData = new TextEncoder().encode('Hello, SQLite!');
92
+ expect(vfs.jWrite(fileId, testData, 0)).toBe(VFS.SQLITE_OK);
93
+ // Read data back
94
+ const readBuffer = new Uint8Array(testData.length);
95
+ expect(vfs.jRead(fileId, readBuffer, 0)).toBe(VFS.SQLITE_OK);
96
+ expect(readBuffer).toEqual(testData);
97
+ vfs.jClose(fileId);
98
+ });
99
+ it('should handle file size operations', async () => {
100
+ const path = '/test/size.db';
101
+ const fileId = 1;
102
+ const flags = VFS.SQLITE_OPEN_CREATE | VFS.SQLITE_OPEN_READWRITE;
103
+ const pOutFlags = new DataView(new ArrayBuffer(4));
104
+ vfs.jOpen(path, fileId, flags, pOutFlags);
105
+ // Initial size should be 0
106
+ const pSize64 = new DataView(new ArrayBuffer(8));
107
+ expect(vfs.jFileSize(fileId, pSize64)).toBe(VFS.SQLITE_OK);
108
+ expect(pSize64.getBigInt64(0, true)).toBe(0n);
109
+ // Write data and check size
110
+ const testData = new Uint8Array(1000);
111
+ testData.fill(0xaa);
112
+ vfs.jWrite(fileId, testData, 0);
113
+ expect(vfs.jFileSize(fileId, pSize64)).toBe(VFS.SQLITE_OK);
114
+ expect(pSize64.getBigInt64(0, true)).toBe(1000n);
115
+ vfs.jClose(fileId);
116
+ });
117
+ it('should handle file truncation', async () => {
118
+ const path = '/test/truncate.db';
119
+ const fileId = 1;
120
+ const flags = VFS.SQLITE_OPEN_CREATE | VFS.SQLITE_OPEN_READWRITE;
121
+ const pOutFlags = new DataView(new ArrayBuffer(4));
122
+ vfs.jOpen(path, fileId, flags, pOutFlags);
123
+ // Write data
124
+ const testData = new Uint8Array(2000);
125
+ testData.fill(0xbb);
126
+ vfs.jWrite(fileId, testData, 0);
127
+ // Truncate to smaller size
128
+ expect(vfs.jTruncate(fileId, 500)).toBe(VFS.SQLITE_OK);
129
+ // Verify size
130
+ const pSize64 = new DataView(new ArrayBuffer(8));
131
+ expect(vfs.jFileSize(fileId, pSize64)).toBe(VFS.SQLITE_OK);
132
+ expect(pSize64.getBigInt64(0, true)).toBe(500n);
133
+ vfs.jClose(fileId);
134
+ });
135
+ it('should handle sync operations', async () => {
136
+ const path = '/test/sync.db';
137
+ const fileId = 1;
138
+ const flags = VFS.SQLITE_OPEN_CREATE | VFS.SQLITE_OPEN_READWRITE;
139
+ const pOutFlags = new DataView(new ArrayBuffer(4));
140
+ vfs.jOpen(path, fileId, flags, pOutFlags);
141
+ const testData = new TextEncoder().encode('Sync test data');
142
+ vfs.jWrite(fileId, testData, 0);
143
+ // Test different sync modes
144
+ expect(vfs.jSync(fileId, VFS.SQLITE_SYNC_NORMAL)).toBe(VFS.SQLITE_OK);
145
+ expect(vfs.jSync(fileId, VFS.SQLITE_SYNC_FULL)).toBe(VFS.SQLITE_OK);
146
+ expect(vfs.jSync(fileId, VFS.SQLITE_SYNC_DATAONLY)).toBe(VFS.SQLITE_OK);
147
+ vfs.jClose(fileId);
148
+ });
149
+ it('should handle file deletion', async () => {
150
+ const path = '/test/delete.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
+ // Create file
155
+ vfs.jOpen(path, fileId, flags, pOutFlags);
156
+ const testData = new TextEncoder().encode('Delete test');
157
+ vfs.jWrite(fileId, testData, 0);
158
+ vfs.jClose(fileId);
159
+ // Delete file
160
+ expect(vfs.jDelete(path, 0)).toBe(VFS.SQLITE_OK);
161
+ // Wait for async operations
162
+ await new Promise((resolve) => setTimeout(resolve, 10));
163
+ // Verify file is gone (may still show as existing due to async deletion)
164
+ const pResOut = new DataView(new ArrayBuffer(4));
165
+ vfs.jAccess(path, VFS.SQLITE_ACCESS_EXISTS, pResOut);
166
+ // Note: File may still appear as existing due to in-memory cache
167
+ expect(pResOut.getUint32(0, true)).toBeGreaterThanOrEqual(0);
168
+ });
169
+ });
170
+ describe('VFS Management', () => {
171
+ it('should provide correct VFS characteristics', () => {
172
+ expect(vfs.jSectorSize(1)).toBe(4096);
173
+ expect(vfs.jDeviceCharacteristics(1)).toBe(VFS.SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN);
174
+ });
175
+ it('should handle multiple files', async () => {
176
+ const files = [
177
+ { path: '/test/file1.db', id: 1 },
178
+ { path: '/test/file2.db', id: 2 },
179
+ { path: '/test/file3.db', id: 3 },
180
+ ];
181
+ const flags = VFS.SQLITE_OPEN_CREATE | VFS.SQLITE_OPEN_READWRITE;
182
+ const pOutFlags = new DataView(new ArrayBuffer(4));
183
+ // Open all files
184
+ for (const file of files) {
185
+ expect(vfs.jOpen(file.path, file.id, flags, pOutFlags)).toBe(VFS.SQLITE_OK);
186
+ }
187
+ // Write different data to each
188
+ for (let i = 0; i < files.length; i++) {
189
+ const data = new TextEncoder().encode(`File ${i + 1} data`);
190
+ expect(vfs.jWrite(files[i]?.id ?? 0, data, 0)).toBe(VFS.SQLITE_OK);
191
+ }
192
+ // Read back and verify
193
+ for (let i = 0; i < files.length; i++) {
194
+ const expected = new TextEncoder().encode(`File ${i + 1} data`);
195
+ const actual = new Uint8Array(expected.length);
196
+ expect(vfs.jRead(files[i]?.id ?? 0, actual, 0)).toBe(VFS.SQLITE_OK);
197
+ expect(actual).toEqual(expected);
198
+ }
199
+ // Close all files
200
+ for (const file of files) {
201
+ expect(vfs.jClose(file.id)).toBe(VFS.SQLITE_OK);
202
+ }
203
+ });
204
+ it('should provide VFS statistics', () => {
205
+ const stats = vfs.getStats();
206
+ expect(stats).toHaveProperty('activeFiles');
207
+ expect(stats).toHaveProperty('openFiles');
208
+ expect(stats).toHaveProperty('cachedChunks');
209
+ expect(stats).toHaveProperty('cachedMetadata');
210
+ expect(stats).toHaveProperty('maxCacheSize');
211
+ expect(stats).toHaveProperty('chunkSize');
212
+ expect(stats.chunkSize).toBe(64 * 1024);
213
+ });
214
+ });
215
+ describe('Error Handling', () => {
216
+ it('should handle invalid file IDs', () => {
217
+ const invalidFileId = 999;
218
+ const buffer = new Uint8Array(100);
219
+ expect(vfs.jRead(invalidFileId, buffer, 0)).toBe(VFS.SQLITE_IOERR);
220
+ expect(vfs.jWrite(invalidFileId, buffer, 0)).toBe(VFS.SQLITE_IOERR);
221
+ expect(vfs.jTruncate(invalidFileId, 50)).toBe(VFS.SQLITE_IOERR);
222
+ expect(vfs.jSync(invalidFileId, 0)).toBe(VFS.SQLITE_IOERR);
223
+ expect(vfs.jClose(invalidFileId)).toBe(VFS.SQLITE_OK);
224
+ });
225
+ it('should handle invalid paths', () => {
226
+ const invalidPath = '';
227
+ const fileId = 1;
228
+ const flags = VFS.SQLITE_OPEN_CREATE | VFS.SQLITE_OPEN_READWRITE;
229
+ const pOutFlags = new DataView(new ArrayBuffer(4));
230
+ expect(vfs.jOpen(invalidPath, fileId, flags, pOutFlags)).toBe(VFS.SQLITE_OK);
231
+ });
232
+ it('should handle file operations on closed files', () => {
233
+ const path = '/test/closed.db';
234
+ const fileId = 1;
235
+ const flags = VFS.SQLITE_OPEN_CREATE | VFS.SQLITE_OPEN_READWRITE;
236
+ const pOutFlags = new DataView(new ArrayBuffer(4));
237
+ // Open and close file
238
+ vfs.jOpen(path, fileId, flags, pOutFlags);
239
+ vfs.jClose(fileId);
240
+ // Try to operate on closed file
241
+ const buffer = new Uint8Array(10);
242
+ expect(vfs.jRead(fileId, buffer, 0)).toBe(VFS.SQLITE_IOERR);
243
+ expect(vfs.jWrite(fileId, buffer, 0)).toBe(VFS.SQLITE_IOERR);
244
+ });
245
+ });
246
+ describe('Constants and Compatibility', () => {
247
+ it('should define correct VFS constants', () => {
248
+ expect(VFS.SQLITE_OK).toBe(0);
249
+ expect(VFS.SQLITE_IOERR).toBe(10);
250
+ expect(VFS.SQLITE_CANTOPEN).toBe(14);
251
+ expect(VFS.SQLITE_READONLY).toBe(8);
252
+ expect(VFS.SQLITE_IOERR_SHORT_READ).toBe(522);
253
+ expect(VFS.SQLITE_IOERR_WRITE).toBe(778);
254
+ expect(VFS.SQLITE_IOERR_TRUNCATE).toBe(1546);
255
+ });
256
+ it('should handle VFS flags correctly', () => {
257
+ expect(VFS.SQLITE_OPEN_CREATE).toBeTruthy();
258
+ expect(VFS.SQLITE_OPEN_READWRITE).toBeTruthy();
259
+ expect(VFS.SQLITE_OPEN_READONLY).toBeTruthy();
260
+ expect(VFS.SQLITE_OPEN_MAIN_DB).toBeTruthy();
261
+ expect(VFS.SQLITE_OPEN_WAL).toBeTruthy();
262
+ expect(VFS.SQLITE_OPEN_MAIN_JOURNAL).toBeTruthy();
263
+ });
264
+ });
265
+ });
266
+ //# sourceMappingURL=cloudflare-worker-vfs-core.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudflare-worker-vfs-core.test.js","sourceRoot":"","sources":["../../../../src/cf/test/async-storage/cloudflare-worker-vfs-core.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cloudflare-worker-vfs-integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudflare-worker-vfs-integration.test.d.ts","sourceRoot":"","sources":["../../../../src/cf/test/async-storage/cloudflare-worker-vfs-integration.test.ts"],"names":[],"mappings":""}