@livestore/sqlite-wasm 0.4.0-dev.3 → 0.4.0-dev.6
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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/browser/mod.d.ts +1 -0
- package/dist/browser/mod.d.ts.map +1 -1
- package/dist/browser/mod.js.map +1 -1
- package/dist/browser/opfs/AccessHandlePoolVFS.d.ts +7 -0
- package/dist/browser/opfs/AccessHandlePoolVFS.d.ts.map +1 -1
- package/dist/browser/opfs/AccessHandlePoolVFS.js +36 -1
- package/dist/browser/opfs/AccessHandlePoolVFS.js.map +1 -1
- package/dist/cf/BlockManager.d.ts +61 -0
- package/dist/cf/BlockManager.d.ts.map +1 -0
- package/dist/cf/BlockManager.js +157 -0
- package/dist/cf/BlockManager.js.map +1 -0
- package/dist/cf/CloudflareSqlVFS.d.ts +51 -0
- package/dist/cf/CloudflareSqlVFS.d.ts.map +1 -0
- package/dist/cf/CloudflareSqlVFS.js +351 -0
- package/dist/cf/CloudflareSqlVFS.js.map +1 -0
- package/dist/cf/CloudflareWorkerVFS.d.ts +72 -0
- package/dist/cf/CloudflareWorkerVFS.d.ts.map +1 -0
- package/dist/cf/CloudflareWorkerVFS.js +552 -0
- package/dist/cf/CloudflareWorkerVFS.js.map +1 -0
- package/dist/cf/mod.d.ts +43 -0
- package/dist/cf/mod.d.ts.map +1 -0
- package/dist/cf/mod.js +74 -0
- package/dist/cf/mod.js.map +1 -0
- package/dist/cf/test/async-storage/cloudflare-worker-vfs-advanced.test.d.ts +2 -0
- package/dist/cf/test/async-storage/cloudflare-worker-vfs-advanced.test.d.ts.map +1 -0
- package/dist/cf/test/async-storage/cloudflare-worker-vfs-advanced.test.js +314 -0
- package/dist/cf/test/async-storage/cloudflare-worker-vfs-advanced.test.js.map +1 -0
- package/dist/cf/test/async-storage/cloudflare-worker-vfs-core.test.d.ts +2 -0
- package/dist/cf/test/async-storage/cloudflare-worker-vfs-core.test.d.ts.map +1 -0
- package/dist/cf/test/async-storage/cloudflare-worker-vfs-core.test.js +266 -0
- package/dist/cf/test/async-storage/cloudflare-worker-vfs-core.test.js.map +1 -0
- package/dist/cf/test/async-storage/cloudflare-worker-vfs-integration.test.d.ts +2 -0
- package/dist/cf/test/async-storage/cloudflare-worker-vfs-integration.test.d.ts.map +1 -0
- package/dist/cf/test/async-storage/cloudflare-worker-vfs-integration.test.js +444 -0
- package/dist/cf/test/async-storage/cloudflare-worker-vfs-integration.test.js.map +1 -0
- package/dist/cf/test/async-storage/cloudflare-worker-vfs-reliability.test.d.ts +2 -0
- package/dist/cf/test/async-storage/cloudflare-worker-vfs-reliability.test.d.ts.map +1 -0
- package/dist/cf/test/async-storage/cloudflare-worker-vfs-reliability.test.js +334 -0
- package/dist/cf/test/async-storage/cloudflare-worker-vfs-reliability.test.js.map +1 -0
- package/dist/cf/test/sql/cloudflare-sql-vfs-core.test.d.ts +2 -0
- package/dist/cf/test/sql/cloudflare-sql-vfs-core.test.d.ts.map +1 -0
- package/dist/cf/test/sql/cloudflare-sql-vfs-core.test.js +354 -0
- package/dist/cf/test/sql/cloudflare-sql-vfs-core.test.js.map +1 -0
- package/dist/load-wasm/mod.node.d.ts.map +1 -1
- package/dist/load-wasm/mod.node.js +1 -2
- package/dist/load-wasm/mod.node.js.map +1 -1
- package/dist/load-wasm/mod.workerd.d.ts +2 -0
- package/dist/load-wasm/mod.workerd.d.ts.map +1 -0
- package/dist/load-wasm/mod.workerd.js +26 -0
- package/dist/load-wasm/mod.workerd.js.map +1 -0
- package/dist/make-sqlite-db.d.ts +1 -0
- package/dist/make-sqlite-db.d.ts.map +1 -1
- package/dist/make-sqlite-db.js.map +1 -1
- package/dist/node/NodeFS.d.ts +1 -2
- package/dist/node/NodeFS.d.ts.map +1 -1
- package/dist/node/NodeFS.js +1 -6
- package/dist/node/NodeFS.js.map +1 -1
- package/dist/node/mod.js +3 -8
- package/dist/node/mod.js.map +1 -1
- package/package.json +20 -7
- package/src/browser/mod.ts +1 -0
- package/src/browser/opfs/AccessHandlePoolVFS.ts +37 -1
- package/src/cf/BlockManager.ts +225 -0
- package/src/cf/CloudflareSqlVFS.ts +450 -0
- package/src/cf/CloudflareWorkerVFS.ts +664 -0
- package/src/cf/README.md +60 -0
- package/src/cf/mod.ts +143 -0
- package/src/cf/test/README.md +224 -0
- package/src/cf/test/async-storage/cloudflare-worker-vfs-advanced.test.ts +389 -0
- package/src/cf/test/async-storage/cloudflare-worker-vfs-core.test.ts +322 -0
- package/src/cf/test/async-storage/cloudflare-worker-vfs-integration.test.ts +567 -0
- package/src/cf/test/async-storage/cloudflare-worker-vfs-reliability.test.ts +403 -0
- package/src/cf/test/sql/cloudflare-sql-vfs-core.test.ts +433 -0
- package/src/load-wasm/mod.node.ts +1 -2
- package/src/load-wasm/mod.workerd.ts +26 -0
- package/src/make-sqlite-db.ts +1 -0
- package/src/node/NodeFS.ts +1 -9
- package/src/node/mod.ts +3 -10
|
@@ -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":"
|
|
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,
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"mod.workerd.d.ts","sourceRoot":"","sources":["../../src/load-wasm/mod.workerd.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,eAAe,0BAmB3B,CAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
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
|
+
export const loadSqlite3Wasm = async () => {
|
|
6
|
+
// It seems we need to pass in the wasm binary directly for workerd to work
|
|
7
|
+
const module = await WaSqliteFactory({
|
|
8
|
+
instantiateWasm: (info, receiveInstance) => {
|
|
9
|
+
try {
|
|
10
|
+
// Use the pre-compiled module directly
|
|
11
|
+
const instance = new WebAssembly.Instance(wasm, info);
|
|
12
|
+
receiveInstance(instance, wasm);
|
|
13
|
+
return instance.exports;
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
console.error('Failed to instantiate WASM:', error);
|
|
17
|
+
throw error;
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
const sqlite3 = WaSqlite.Factory(module);
|
|
22
|
+
// @ts-expect-error TODO fix types
|
|
23
|
+
sqlite3.module = module;
|
|
24
|
+
return sqlite3;
|
|
25
|
+
};
|
|
26
|
+
//# 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,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE;IACxC,2EAA2E;IAC3E,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"}
|
package/dist/make-sqlite-db.d.ts
CHANGED
|
@@ -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;
|
|
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,CAgNrB,CAAA"}
|
|
@@ -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;
|
|
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;AAE9D,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"}
|
package/dist/node/NodeFS.d.ts
CHANGED
|
@@ -4,8 +4,7 @@ export declare class NodeFS extends FacadeVFS {
|
|
|
4
4
|
private mapIdToFile;
|
|
5
5
|
private lastError;
|
|
6
6
|
private readonly directory;
|
|
7
|
-
|
|
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;
|
|
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"}
|
package/dist/node/NodeFS.js
CHANGED
|
@@ -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
|
-
|
|
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
|
}
|
package/dist/node/NodeFS.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeFS.js","sourceRoot":"","sources":["../../src/node/NodeFS.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAE9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,IAAI,MAAM,WAAW,CAAA;AAG5B,OAAO,KAAK,GAAG,MAAM,iCAAiC,CAAA;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAQ3C,MAAM,OAAO,MAAO,SAAQ,SAAS;IAC3B,WAAW,GAAG,IAAI,GAAG,EAAsB,CAAA;IACnD,2EAA2E;IACnE,SAAS,GAAiB,IAAI,CAAA;IACrB,SAAS,CAAQ;
|
|
1
|
+
{"version":3,"file":"NodeFS.js","sourceRoot":"","sources":["../../src/node/NodeFS.ts"],"names":[],"mappings":"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"}
|
package/dist/node/mod.js
CHANGED
|
@@ -38,19 +38,15 @@ export const sqliteDbFactory = ({ sqlite3, }) => Effect.andThen(FileSystem.FileS
|
|
|
38
38
|
},
|
|
39
39
|
});
|
|
40
40
|
}));
|
|
41
|
-
const nodeFsVfsMap = new Map();
|
|
42
41
|
const makeNodeFsDb = ({ sqlite3, fileName, directory, fs, }) => Effect.gen(function* () {
|
|
43
42
|
// NOTE to keep the filePath short, we use the directory name in the vfs name
|
|
44
43
|
// If this is becoming a problem, we can use a hashed version of the directory name
|
|
45
44
|
const vfsName = `node-fs-${directory}`;
|
|
46
|
-
if (
|
|
45
|
+
if (sqlite3.vfs_registered.has(vfsName) === false) {
|
|
47
46
|
// TODO refactor with Effect FileSystem instead of using `node:fs` directly inside of NodeFS
|
|
48
|
-
const nodeFsVfs = new NodeFS(vfsName, sqlite3.module, directory
|
|
49
|
-
nodeFsVfsMap.delete(vfsName);
|
|
50
|
-
});
|
|
47
|
+
const nodeFsVfs = new NodeFS(vfsName, sqlite3.module, directory);
|
|
51
48
|
// @ts-expect-error TODO fix types
|
|
52
49
|
sqlite3.vfs_register(nodeFsVfs, false);
|
|
53
|
-
nodeFsVfsMap.set(vfsName, nodeFsVfs);
|
|
54
50
|
}
|
|
55
51
|
yield* fs.makeDirectory(directory, { recursive: true });
|
|
56
52
|
const FILE_NAME_MAX_LENGTH = 56;
|
|
@@ -59,7 +55,6 @@ const makeNodeFsDb = ({ sqlite3, fileName, directory, fs, }) => Effect.gen(funct
|
|
|
59
55
|
}
|
|
60
56
|
// NOTE SQLite will return a "disk I/O error" if the file path is too long.
|
|
61
57
|
const dbPointer = sqlite3.open_v2Sync(fileName, undefined, vfsName);
|
|
62
|
-
|
|
63
|
-
return { dbPointer, vfs };
|
|
58
|
+
return { dbPointer, vfs: {} };
|
|
64
59
|
}).pipe(UnexpectedError.mapToUnexpectedError);
|
|
65
60
|
//# sourceMappingURL=mod.js.map
|
package/dist/node/mod.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/node/mod.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAA0D,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAC3G,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAI5D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AA0CpC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC9B,OAAO,GAGR,EAAiE,EAAE,CAClE,MAAM,CAAC,OAAO,CACZ,UAAU,CAAC,UAAU,EACrB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAChB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC/B,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;QAClD,OAAO,YAAY,CAA+B;YAChD,OAAO;YACP,QAAQ,EAAE;gBACR,IAAI,EAAE,WAAW;gBACjB,GAAG;gBACH,SAAS;gBACT,eAAe,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE;gBACzC,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;gBAClB,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;aAC7C;SACF,CAAQ,CAAA;IACX,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC;QAC7C,OAAO;QACP,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,EAAE;KACH,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;IAE3D,OAAO,YAAY,CAAyB;QAC1C,OAAO;QACP,QAAQ,EAAE;YACR,IAAI,EAAE,IAAI;YACV,GAAG;YACH,SAAS;YACT,eAAe,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE;YACzE,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACtC,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;SAC7C;KACF,CAAC,CAAA;AACJ,CAAC,CAAC,CACL,CAAA;AAEH,MAAM,YAAY,GAAG,
|
|
1
|
+
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/node/mod.ts"],"names":[],"mappings":"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"}
|