@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.
- 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/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/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 @@
|
|
|
1
|
+
{"version":3,"file":"CloudflareWorkerVFS.js","sourceRoot":"","sources":["../../src/cf/CloudflareWorkerVFS.ts"],"names":[],"mappings":"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"}
|
package/dist/cf/mod.d.ts
ADDED
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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":""}
|