@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 @@
1
+ {"version":3,"file":"CloudflareWorkerVFS.js","sourceRoot":"","sources":["../../src/cf/CloudflareWorkerVFS.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { type MakeSqliteDb, type PersistenceInfo, type SqliteDb } from '@livestore/common';
2
+ import type { CfTypes } from '@livestore/common-cf';
3
+ import type { MemoryVFS } from '@livestore/wa-sqlite/src/examples/MemoryVFS.js';
4
+ import { CloudflareSqlVFS } from './CloudflareSqlVFS.ts';
5
+ export { BlockManager } from './BlockManager.ts';
6
+ export { CloudflareSqlVFS } from './CloudflareSqlVFS.ts';
7
+ export { CloudflareWorkerVFS } from './CloudflareWorkerVFS.ts';
8
+ export type CloudflareDatabaseMetadataInMemory = {
9
+ _tag: 'in-memory';
10
+ vfs: MemoryVFS;
11
+ dbPointer: number;
12
+ persistenceInfo: PersistenceInfo;
13
+ deleteDb: () => void;
14
+ configureDb: (db: SqliteDb) => void;
15
+ };
16
+ export type CloudflareDatabaseMetadataFs = {
17
+ _tag: 'storage';
18
+ vfs: CloudflareSqlVFS;
19
+ dbPointer: number;
20
+ persistenceInfo: PersistenceInfo;
21
+ deleteDb: () => void;
22
+ configureDb: (db: SqliteDb) => void;
23
+ };
24
+ export type CloudflareDatabaseMetadata = CloudflareDatabaseMetadataInMemory | CloudflareDatabaseMetadataFs;
25
+ export type CloudflareDatabaseInputInMemory = {
26
+ _tag: 'in-memory';
27
+ configureDb?: (db: SqliteDb) => void;
28
+ };
29
+ export type CloudflareDatabaseInputFs = {
30
+ _tag: 'storage';
31
+ fileName: string;
32
+ configureDb?: (db: SqliteDb) => void;
33
+ storage: CfTypes.DurableObjectStorage;
34
+ };
35
+ export type CloudflareDatabaseInput = CloudflareDatabaseInputInMemory | CloudflareDatabaseInputFs;
36
+ export type MakeCloudflareSqliteDb = MakeSqliteDb<{
37
+ dbPointer: number;
38
+ persistenceInfo: PersistenceInfo;
39
+ }, CloudflareDatabaseInput, CloudflareDatabaseMetadata>;
40
+ export declare const sqliteDbFactory: ({ sqlite3 }: {
41
+ sqlite3: SQLiteAPI;
42
+ }) => MakeCloudflareSqliteDb;
43
+ //# sourceMappingURL=mod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/cf/mod.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAmB,MAAM,mBAAmB,CAAA;AAC3G,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAGnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gDAAgD,CAAA;AAG/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,MAAM,kCAAkC,GAAG;IAC/C,IAAI,EAAE,WAAW,CAAA;IACjB,GAAG,EAAE,SAAS,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,eAAe,CAAA;IAChC,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,WAAW,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,IAAI,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,IAAI,EAAE,SAAS,CAAA;IAEf,GAAG,EAAE,gBAAgB,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,eAAe,CAAA;IAChC,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,WAAW,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,IAAI,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG,kCAAkC,GAAG,4BAA4B,CAAA;AAE1G,MAAM,MAAM,+BAA+B,GAAG;IAC5C,IAAI,EAAE,WAAW,CAAA;IACjB,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,IAAI,CAAA;CACrC,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,SAAS,CAAA;IAEf,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,IAAI,CAAA;IACpC,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAA;CACtC,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,+BAA+B,GAAG,yBAAyB,CAAA;AAEjG,MAAM,MAAM,sBAAsB,GAAG,YAAY,CAC/C;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,eAAe,CAAA;CAAE,EACvD,uBAAuB,EACvB,0BAA0B,CAC3B,CAAA;AAED,eAAO,MAAM,eAAe,GACzB,aAAa;IAAE,OAAO,EAAE,SAAS,CAAA;CAAE,KAAG,sBAyCnC,CAAA"}
package/dist/cf/mod.js ADDED
@@ -0,0 +1,74 @@
1
+ // import path from 'node:path'
2
+ import { UnexpectedError } from '@livestore/common';
3
+ import { Effect } from '@livestore/utils/effect';
4
+ import { makeInMemoryDb } from "../in-memory-vfs.js";
5
+ import { makeSqliteDb } from "../make-sqlite-db.js";
6
+ import { CloudflareSqlVFS } from "./CloudflareSqlVFS.js";
7
+ export { BlockManager } from "./BlockManager.js";
8
+ export { CloudflareSqlVFS } from "./CloudflareSqlVFS.js";
9
+ export { CloudflareWorkerVFS } from "./CloudflareWorkerVFS.js";
10
+ export const sqliteDbFactory = ({ sqlite3 }) => (input) => Effect.gen(function* () {
11
+ if (input._tag === 'in-memory') {
12
+ const { dbPointer, vfs } = makeInMemoryDb(sqlite3);
13
+ return makeSqliteDb({
14
+ sqlite3,
15
+ metadata: {
16
+ _tag: 'in-memory',
17
+ vfs,
18
+ dbPointer,
19
+ persistenceInfo: { fileName: ':memory:' },
20
+ deleteDb: () => { },
21
+ configureDb: input.configureDb ?? (() => { }),
22
+ },
23
+ });
24
+ }
25
+ const { dbPointer, vfs } = yield* makeCloudflareFsDb({
26
+ sqlite3,
27
+ fileName: input.fileName,
28
+ // directory: input.directory,
29
+ storage: input.storage,
30
+ });
31
+ // const filePath = path.join(input.directory, input.fileName)
32
+ // const filePath = `${input.directory}/${input.fileName}`
33
+ return makeSqliteDb({
34
+ sqlite3,
35
+ metadata: {
36
+ _tag: 'storage',
37
+ vfs,
38
+ dbPointer,
39
+ persistenceInfo: { fileName: input.fileName },
40
+ // deleteDb: () => vfs.deleteDb(filePath),
41
+ // TODO: implement deleteDb
42
+ deleteDb: () => { },
43
+ configureDb: input.configureDb ?? (() => { }),
44
+ },
45
+ });
46
+ });
47
+ const makeCloudflareFsDb = ({ sqlite3, fileName,
48
+ // directory,
49
+ storage, }) => Effect.gen(function* () {
50
+ // NOTE to keep the filePath short, we use the directory name in the vfs name
51
+ // If this is becoming a problem, we can use a hashed version of the directory name
52
+ const vfsName = `cf-do-sqlite-${fileName}`;
53
+ if (sqlite3.vfs_registered.has(vfsName) === false) {
54
+ // TODO refactor with Effect FileSystem instead of using `node:fs` directly inside of CloudflareWorkerVFS
55
+ // const nodeFsVfs = new CloudflareWorkerVFS(vfsName, storage, (sqlite3 as any).module)
56
+ const nodeFsVfs = new CloudflareSqlVFS(vfsName, storage.sql, sqlite3.module);
57
+ // Initialize the VFS schema before registering it
58
+ const isReady = yield* Effect.promise(() => nodeFsVfs.isReady());
59
+ if (!isReady) {
60
+ throw new Error(`Failed to initialize CloudflareSqlVFS for ${vfsName}`);
61
+ }
62
+ // @ts-expect-error TODO fix types
63
+ sqlite3.vfs_register(nodeFsVfs, false);
64
+ }
65
+ // yield* fs.makeDirectory(directory, { recursive: true })
66
+ const FILE_NAME_MAX_LENGTH = 56;
67
+ if (fileName.length > FILE_NAME_MAX_LENGTH) {
68
+ throw new Error(`File name ${fileName} is too long. Maximum length is ${FILE_NAME_MAX_LENGTH} characters.`);
69
+ }
70
+ // NOTE SQLite will return a "disk I/O error" if the file path is too long.
71
+ const dbPointer = sqlite3.open_v2Sync(fileName, undefined, vfsName);
72
+ return { dbPointer, vfs: {} };
73
+ }).pipe(UnexpectedError.mapToUnexpectedError);
74
+ //# sourceMappingURL=mod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/cf/mod.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cloudflare-worker-vfs-advanced.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudflare-worker-vfs-advanced.test.d.ts","sourceRoot":"","sources":["../../../../src/cf/test/async-storage/cloudflare-worker-vfs-advanced.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,314 @@
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 - Advanced Features', () => {
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-advanced-vfs', mockStorage, {});
57
+ await vfs.isReady();
58
+ });
59
+ describe('Large File Chunking', () => {
60
+ it('should handle large files with proper chunking', async () => {
61
+ const path = '/test/large-file.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
+ vfs.jOpen(path, fileId, flags, pOutFlags);
66
+ // Write 5 chunks worth of data
67
+ const chunkSize = 64 * 1024;
68
+ const numChunks = 5;
69
+ const totalSize = chunkSize * numChunks;
70
+ const largeData = new Uint8Array(totalSize);
71
+ // Fill with pattern for verification
72
+ for (let i = 0; i < totalSize; i++) {
73
+ largeData[i] = (i * 7) % 256;
74
+ }
75
+ expect(vfs.jWrite(fileId, largeData, 0)).toBe(VFS.SQLITE_OK);
76
+ // Verify file size
77
+ const pSize64 = new DataView(new ArrayBuffer(8));
78
+ expect(vfs.jFileSize(fileId, pSize64)).toBe(VFS.SQLITE_OK);
79
+ expect(pSize64.getBigInt64(0, true)).toBe(BigInt(totalSize));
80
+ // Read back in chunks to verify chunking works correctly
81
+ for (let chunkIdx = 0; chunkIdx < numChunks; chunkIdx++) {
82
+ const chunkData = new Uint8Array(chunkSize);
83
+ const offset = chunkIdx * chunkSize;
84
+ expect(vfs.jRead(fileId, chunkData, offset)).toBe(VFS.SQLITE_OK);
85
+ expect(chunkData).toEqual(largeData.slice(offset, offset + chunkSize));
86
+ }
87
+ expect(vfs.jClose(fileId)).toBe(VFS.SQLITE_OK);
88
+ });
89
+ it('should handle cross-chunk boundary operations', async () => {
90
+ const path = '/test/cross-chunk.db';
91
+ const fileId = 1;
92
+ const flags = VFS.SQLITE_OPEN_CREATE | VFS.SQLITE_OPEN_READWRITE;
93
+ const pOutFlags = new DataView(new ArrayBuffer(4));
94
+ vfs.jOpen(path, fileId, flags, pOutFlags);
95
+ const chunkSize = 64 * 1024;
96
+ // Write data spanning chunk boundaries
97
+ const spanData = new Uint8Array(chunkSize + 1000);
98
+ spanData.fill(0xaa);
99
+ const spanOffset = chunkSize - 500;
100
+ expect(vfs.jWrite(fileId, spanData, spanOffset)).toBe(VFS.SQLITE_OK);
101
+ // Read back cross-boundary data
102
+ const readData = new Uint8Array(spanData.length);
103
+ expect(vfs.jRead(fileId, readData, spanOffset)).toBe(VFS.SQLITE_OK);
104
+ expect(readData).toEqual(spanData);
105
+ expect(vfs.jClose(fileId)).toBe(VFS.SQLITE_OK);
106
+ });
107
+ });
108
+ describe('Cache Management', () => {
109
+ it('should handle cache operations correctly', async () => {
110
+ const path = '/test/cache-test.db';
111
+ const fileId = 1;
112
+ const flags = VFS.SQLITE_OPEN_CREATE | VFS.SQLITE_OPEN_READWRITE;
113
+ const pOutFlags = new DataView(new ArrayBuffer(4));
114
+ vfs.jOpen(path, fileId, flags, pOutFlags);
115
+ // Write data to populate cache
116
+ const testData = new TextEncoder().encode('Cache test data');
117
+ expect(vfs.jWrite(fileId, testData, 0)).toBe(VFS.SQLITE_OK);
118
+ // Multiple reads should use cache
119
+ for (let i = 0; i < 5; i++) {
120
+ const readData = new Uint8Array(testData.length);
121
+ expect(vfs.jRead(fileId, readData, 0)).toBe(VFS.SQLITE_OK);
122
+ expect(readData).toEqual(testData);
123
+ }
124
+ // Check cache statistics
125
+ const stats = vfs.getStats();
126
+ expect(stats.cachedChunks).toBeGreaterThan(0);
127
+ expect(stats.chunkSize).toBe(64 * 1024);
128
+ expect(vfs.jClose(fileId)).toBe(VFS.SQLITE_OK);
129
+ });
130
+ it('should handle large files that exceed cache capacity', async () => {
131
+ const path = '/test/cache-overflow.db';
132
+ const fileId = 1;
133
+ const flags = VFS.SQLITE_OPEN_CREATE | VFS.SQLITE_OPEN_READWRITE;
134
+ const pOutFlags = new DataView(new ArrayBuffer(4));
135
+ vfs.jOpen(path, fileId, flags, pOutFlags);
136
+ // Write many chunks to potentially exceed cache
137
+ const chunkSize = 64 * 1024;
138
+ const numChunks = 20; // Likely to exceed typical cache size
139
+ for (let i = 0; i < numChunks; i++) {
140
+ const chunkData = new Uint8Array(chunkSize);
141
+ chunkData.fill(i % 256);
142
+ const offset = i * chunkSize;
143
+ expect(vfs.jWrite(fileId, chunkData, offset)).toBe(VFS.SQLITE_OK);
144
+ }
145
+ // Verify all chunks can still be read correctly
146
+ for (let i = 0; i < numChunks; i++) {
147
+ const readData = new Uint8Array(chunkSize);
148
+ const offset = i * chunkSize;
149
+ const readResult = vfs.jRead(fileId, readData, offset);
150
+ if (readResult === VFS.SQLITE_OK) {
151
+ const expectedData = new Uint8Array(chunkSize);
152
+ expectedData.fill(i % 256);
153
+ expect(readData).toEqual(expectedData);
154
+ }
155
+ else {
156
+ // Cache miss is acceptable for this test - we're testing cache pressure
157
+ expect(readResult).toBe(VFS.SQLITE_IOERR_SHORT_READ);
158
+ }
159
+ }
160
+ expect(vfs.jClose(fileId)).toBe(VFS.SQLITE_OK);
161
+ });
162
+ });
163
+ describe('SQLite File Types', () => {
164
+ it('should handle main database files', async () => {
165
+ const path = '/test/main.db';
166
+ const fileId = 1;
167
+ const flags = VFS.SQLITE_OPEN_MAIN_DB | VFS.SQLITE_OPEN_CREATE | VFS.SQLITE_OPEN_READWRITE;
168
+ const pOutFlags = new DataView(new ArrayBuffer(4));
169
+ expect(vfs.jOpen(path, fileId, flags, pOutFlags)).toBe(VFS.SQLITE_OK);
170
+ expect(pOutFlags.getUint32(0, true)).toBe(flags);
171
+ // Write typical SQLite header
172
+ const header = new TextEncoder().encode('SQLite format 3\0');
173
+ expect(vfs.jWrite(fileId, header, 0)).toBe(VFS.SQLITE_OK);
174
+ // Read back header
175
+ const readHeader = new Uint8Array(header.length);
176
+ expect(vfs.jRead(fileId, readHeader, 0)).toBe(VFS.SQLITE_OK);
177
+ expect(readHeader).toEqual(header);
178
+ expect(vfs.jClose(fileId)).toBe(VFS.SQLITE_OK);
179
+ });
180
+ it('should handle WAL files', async () => {
181
+ const path = '/test/main.db-wal';
182
+ const fileId = 2;
183
+ const flags = VFS.SQLITE_OPEN_WAL | VFS.SQLITE_OPEN_CREATE | VFS.SQLITE_OPEN_READWRITE;
184
+ const pOutFlags = new DataView(new ArrayBuffer(4));
185
+ expect(vfs.jOpen(path, fileId, flags, pOutFlags)).toBe(VFS.SQLITE_OK);
186
+ // Write WAL data
187
+ const walData = new Uint8Array(1000);
188
+ walData.fill(0xee);
189
+ expect(vfs.jWrite(fileId, walData, 0)).toBe(VFS.SQLITE_OK);
190
+ // Verify WAL data
191
+ const readWalData = new Uint8Array(walData.length);
192
+ expect(vfs.jRead(fileId, readWalData, 0)).toBe(VFS.SQLITE_OK);
193
+ expect(readWalData).toEqual(walData);
194
+ expect(vfs.jClose(fileId)).toBe(VFS.SQLITE_OK);
195
+ });
196
+ it('should handle journal files', async () => {
197
+ const path = '/test/main.db-journal';
198
+ const fileId = 3;
199
+ const flags = VFS.SQLITE_OPEN_MAIN_JOURNAL | VFS.SQLITE_OPEN_CREATE | VFS.SQLITE_OPEN_READWRITE;
200
+ const pOutFlags = new DataView(new ArrayBuffer(4));
201
+ expect(vfs.jOpen(path, fileId, flags, pOutFlags)).toBe(VFS.SQLITE_OK);
202
+ // Write journal data
203
+ const journalData = new Uint8Array(500);
204
+ journalData.fill(0xff);
205
+ expect(vfs.jWrite(fileId, journalData, 0)).toBe(VFS.SQLITE_OK);
206
+ // Verify journal data
207
+ const readJournalData = new Uint8Array(journalData.length);
208
+ expect(vfs.jRead(fileId, readJournalData, 0)).toBe(VFS.SQLITE_OK);
209
+ expect(readJournalData).toEqual(journalData);
210
+ expect(vfs.jClose(fileId)).toBe(VFS.SQLITE_OK);
211
+ });
212
+ it('should handle temporary files', async () => {
213
+ const path = '/test/temp.db';
214
+ const fileId = 4;
215
+ const flags = VFS.SQLITE_OPEN_TEMP_DB | VFS.SQLITE_OPEN_CREATE | VFS.SQLITE_OPEN_READWRITE;
216
+ const pOutFlags = new DataView(new ArrayBuffer(4));
217
+ expect(vfs.jOpen(path, fileId, flags, pOutFlags)).toBe(VFS.SQLITE_OK);
218
+ // Write temporary data
219
+ const tempData = new TextEncoder().encode('Temporary database content');
220
+ expect(vfs.jWrite(fileId, tempData, 0)).toBe(VFS.SQLITE_OK);
221
+ // Read temporary data
222
+ const readTempData = new Uint8Array(tempData.length);
223
+ expect(vfs.jRead(fileId, readTempData, 0)).toBe(VFS.SQLITE_OK);
224
+ expect(readTempData).toEqual(tempData);
225
+ expect(vfs.jClose(fileId)).toBe(VFS.SQLITE_OK);
226
+ });
227
+ });
228
+ describe('Advanced Operations', () => {
229
+ it('should handle multiple files with different types simultaneously', async () => {
230
+ const files = [
231
+ {
232
+ path: '/test/multi-main.db',
233
+ id: 1,
234
+ flags: VFS.SQLITE_OPEN_MAIN_DB | VFS.SQLITE_OPEN_CREATE | VFS.SQLITE_OPEN_READWRITE,
235
+ },
236
+ {
237
+ path: '/test/multi-main.db-wal',
238
+ id: 2,
239
+ flags: VFS.SQLITE_OPEN_WAL | VFS.SQLITE_OPEN_CREATE | VFS.SQLITE_OPEN_READWRITE,
240
+ },
241
+ {
242
+ path: '/test/multi-main.db-journal',
243
+ id: 3,
244
+ flags: VFS.SQLITE_OPEN_MAIN_JOURNAL | VFS.SQLITE_OPEN_CREATE | VFS.SQLITE_OPEN_READWRITE,
245
+ },
246
+ ];
247
+ const pOutFlags = new DataView(new ArrayBuffer(4));
248
+ // Open all files
249
+ for (const file of files) {
250
+ expect(vfs.jOpen(file.path, file.id, file.flags, pOutFlags)).toBe(VFS.SQLITE_OK);
251
+ }
252
+ // Write different data to each file
253
+ for (let i = 0; i < files.length; i++) {
254
+ const data = new TextEncoder().encode(`File ${i} data`);
255
+ expect(vfs.jWrite(files[i]?.id ?? 0, data, 0)).toBe(VFS.SQLITE_OK);
256
+ }
257
+ // Verify each file has correct data
258
+ for (let i = 0; i < files.length; i++) {
259
+ const expected = new TextEncoder().encode(`File ${i} data`);
260
+ const actual = new Uint8Array(expected.length);
261
+ expect(vfs.jRead(files[i]?.id ?? 0, actual, 0)).toBe(VFS.SQLITE_OK);
262
+ expect(actual).toEqual(expected);
263
+ }
264
+ // Close all files
265
+ for (const file of files) {
266
+ expect(vfs.jClose(file.id)).toBe(VFS.SQLITE_OK);
267
+ }
268
+ });
269
+ it('should handle file truncation with chunking', async () => {
270
+ const path = '/test/truncate-chunks.db';
271
+ const fileId = 1;
272
+ const flags = VFS.SQLITE_OPEN_CREATE | VFS.SQLITE_OPEN_READWRITE;
273
+ const pOutFlags = new DataView(new ArrayBuffer(4));
274
+ vfs.jOpen(path, fileId, flags, pOutFlags);
275
+ const chunkSize = 64 * 1024;
276
+ // Write data spanning 3 chunks
277
+ const largeData = new Uint8Array(chunkSize * 3);
278
+ largeData.fill(0xdd);
279
+ expect(vfs.jWrite(fileId, largeData, 0)).toBe(VFS.SQLITE_OK);
280
+ // Truncate to 1.5 chunks
281
+ const truncateSize = chunkSize + chunkSize / 2;
282
+ expect(vfs.jTruncate(fileId, truncateSize)).toBe(VFS.SQLITE_OK);
283
+ // Verify new size
284
+ const pSize64 = new DataView(new ArrayBuffer(8));
285
+ expect(vfs.jFileSize(fileId, pSize64)).toBe(VFS.SQLITE_OK);
286
+ expect(pSize64.getBigInt64(0, true)).toBe(BigInt(truncateSize));
287
+ // Verify data integrity after truncation
288
+ const readData = new Uint8Array(truncateSize);
289
+ expect(vfs.jRead(fileId, readData, 0)).toBe(VFS.SQLITE_OK);
290
+ expect(readData).toEqual(largeData.slice(0, truncateSize));
291
+ expect(vfs.jClose(fileId)).toBe(VFS.SQLITE_OK);
292
+ });
293
+ it('should handle sync operations with proper flush behavior', async () => {
294
+ const path = '/test/sync-flush.db';
295
+ const fileId = 1;
296
+ const flags = VFS.SQLITE_OPEN_CREATE | VFS.SQLITE_OPEN_READWRITE;
297
+ const pOutFlags = new DataView(new ArrayBuffer(4));
298
+ vfs.jOpen(path, fileId, flags, pOutFlags);
299
+ // Write data
300
+ const testData = new TextEncoder().encode('Sync test data');
301
+ expect(vfs.jWrite(fileId, testData, 0)).toBe(VFS.SQLITE_OK);
302
+ // Test different sync modes
303
+ expect(vfs.jSync(fileId, VFS.SQLITE_SYNC_NORMAL)).toBe(VFS.SQLITE_OK);
304
+ expect(vfs.jSync(fileId, VFS.SQLITE_SYNC_FULL)).toBe(VFS.SQLITE_OK);
305
+ expect(vfs.jSync(fileId, VFS.SQLITE_SYNC_DATAONLY)).toBe(VFS.SQLITE_OK);
306
+ // Verify data is still accessible after sync
307
+ const readData = new Uint8Array(testData.length);
308
+ expect(vfs.jRead(fileId, readData, 0)).toBe(VFS.SQLITE_OK);
309
+ expect(readData).toEqual(testData);
310
+ expect(vfs.jClose(fileId)).toBe(VFS.SQLITE_OK);
311
+ });
312
+ });
313
+ });
314
+ //# sourceMappingURL=cloudflare-worker-vfs-advanced.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudflare-worker-vfs-advanced.test.js","sourceRoot":"","sources":["../../../../src/cf/test/async-storage/cloudflare-worker-vfs-advanced.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cloudflare-worker-vfs-core.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudflare-worker-vfs-core.test.d.ts","sourceRoot":"","sources":["../../../../src/cf/test/async-storage/cloudflare-worker-vfs-core.test.ts"],"names":[],"mappings":""}