@powersync/node 0.0.0-dev-20260503073249 → 0.0.0-dev-20260630141119
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/lib/attachments/NodeFileSystemAdapter.d.ts +1 -0
- package/lib/attachments/NodeFileSystemAdapter.d.ts.map +1 -0
- package/lib/db/AsyncDatabase.d.ts +8 -10
- package/lib/db/AsyncDatabase.d.ts.map +1 -0
- package/lib/db/BetterSqliteWorker.d.ts +6 -17
- package/lib/db/BetterSqliteWorker.d.ts.map +1 -0
- package/lib/db/BetterSqliteWorker.js +18 -9
- package/lib/db/BetterSqliteWorker.js.map +1 -1
- package/lib/db/DefaultWorker.d.ts +1 -0
- package/lib/db/DefaultWorker.d.ts.map +1 -0
- package/lib/db/NodeSqliteWorker.d.ts +6 -12
- package/lib/db/NodeSqliteWorker.d.ts.map +1 -0
- package/lib/db/NodeSqliteWorker.js +11 -9
- package/lib/db/NodeSqliteWorker.js.map +1 -1
- package/lib/db/PowerSyncDatabase.d.ts +7 -19
- package/lib/db/PowerSyncDatabase.d.ts.map +1 -0
- package/lib/db/PowerSyncDatabase.js +22 -29
- package/lib/db/PowerSyncDatabase.js.map +1 -1
- package/lib/db/RemoteConnection.d.ts +7 -18
- package/lib/db/RemoteConnection.d.ts.map +1 -0
- package/lib/db/RemoteConnection.js +10 -24
- package/lib/db/RemoteConnection.js.map +1 -1
- package/lib/db/SqliteWorker.d.ts +1 -0
- package/lib/db/SqliteWorker.d.ts.map +1 -0
- package/lib/db/SqliteWorker.js +3 -13
- package/lib/db/SqliteWorker.js.map +1 -1
- package/lib/db/WorkerConnectionPool.d.ts +5 -23
- package/lib/db/WorkerConnectionPool.d.ts.map +1 -0
- package/lib/db/WorkerConnectionPool.js +8 -22
- package/lib/db/WorkerConnectionPool.js.map +1 -1
- package/lib/db/options.d.ts +1 -0
- package/lib/db/options.d.ts.map +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/sync/stream/NodeRemote.d.ts +15 -8
- package/lib/sync/stream/NodeRemote.d.ts.map +1 -0
- package/lib/sync/stream/NodeRemote.js +26 -21
- package/lib/sync/stream/NodeRemote.js.map +1 -1
- package/lib/sync/stream/NodeStreamingSyncImplementation.d.ts +2 -1
- package/lib/sync/stream/NodeStreamingSyncImplementation.d.ts.map +1 -0
- package/lib/sync/stream/NodeStreamingSyncImplementation.js +2 -2
- package/lib/sync/stream/NodeStreamingSyncImplementation.js.map +1 -1
- package/lib/worker.d.ts +1 -0
- package/lib/worker.d.ts.map +1 -0
- package/package.json +19 -30
- package/src/db/AsyncDatabase.ts +7 -10
- package/src/db/BetterSqliteWorker.ts +22 -14
- package/src/db/NodeSqliteWorker.ts +16 -13
- package/src/db/PowerSyncDatabase.ts +46 -59
- package/src/db/RemoteConnection.ts +12 -34
- package/src/db/SqliteWorker.ts +3 -13
- package/src/db/WorkerConnectionPool.ts +16 -33
- package/src/index.ts +2 -1
- package/src/sync/stream/NodeRemote.ts +43 -44
- package/src/sync/stream/NodeStreamingSyncImplementation.ts +2 -2
- package/dist/DefaultWorker.cjs +0 -232
- package/dist/DefaultWorker.cjs.map +0 -1
- package/dist/bundle.cjs +0 -533
- package/dist/bundle.cjs.map +0 -1
- package/dist/bundle.d.cts +0 -127
- package/dist/worker.cjs +0 -233
- package/dist/worker.cjs.map +0 -1
- package/dist/worker.d.cts +0 -20
- package/lib/utils/modules.d.ts +0 -2
- package/lib/utils/modules.js +0 -6
- package/lib/utils/modules.js.map +0 -1
- package/lib/utils/modules_commonjs.d.ts +0 -2
- package/lib/utils/modules_commonjs.js +0 -7
- package/lib/utils/modules_commonjs.js.map +0 -1
- package/src/utils/modules.ts +0 -6
- package/src/utils/modules_commonjs.ts +0 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeFileSystemAdapter.d.ts","sourceRoot":"","sources":["../../src/attachments/NodeFileSystemAdapter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEtF;;;GAGG;AACH,qBAAa,qBAAsB,YAAW,mBAAmB;IACnD,OAAO,CAAC,gBAAgB;gBAAhB,gBAAgB,GAAE,MAAsB;IAEtD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI/B,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,EAAE,YAAY,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7C,QAAQ,CACZ,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,cAAc,EACpB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,YAAY,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GACxD,OAAO,CAAC,MAAM,CAAC;IAYZ,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,YAAY,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IAS3G,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxE,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS9C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGzC"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
import { QueryResult } from '@powersync/common';
|
|
1
|
+
import { BaseQueryResult, QueryResult, RawQueryResult } from '@powersync/common';
|
|
2
2
|
import { NodeDatabaseImplementation } from './options.js';
|
|
3
|
-
export
|
|
4
|
-
rows?:
|
|
5
|
-
|
|
6
|
-
length: number;
|
|
7
|
-
};
|
|
8
|
-
};
|
|
3
|
+
export interface MappedQueryResult extends BaseQueryResult {
|
|
4
|
+
rows?: unknown[];
|
|
5
|
+
}
|
|
9
6
|
export interface AsyncDatabaseOpenOptions {
|
|
10
7
|
path: string;
|
|
11
8
|
isWriter: boolean;
|
|
@@ -15,8 +12,9 @@ export interface AsyncDatabaseOpener {
|
|
|
15
12
|
open(options: AsyncDatabaseOpenOptions): Promise<AsyncDatabase>;
|
|
16
13
|
}
|
|
17
14
|
export interface AsyncDatabase {
|
|
18
|
-
execute: (query: string, params: any[]) => Promise<
|
|
19
|
-
executeRaw: (query: string, params: any[]) => Promise<
|
|
20
|
-
executeBatch: (query: string, params: any[][]) => Promise<
|
|
15
|
+
execute: (query: string, params: any[]) => Promise<MappedQueryResult>;
|
|
16
|
+
executeRaw: (query: string, params: any[]) => Promise<RawQueryResult>;
|
|
17
|
+
executeBatch: (query: string, params: any[][]) => Promise<QueryResult<never>>;
|
|
21
18
|
close: () => Promise<void>;
|
|
22
19
|
}
|
|
20
|
+
//# sourceMappingURL=AsyncDatabase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AsyncDatabase.d.ts","sourceRoot":"","sources":["../../src/db/AsyncDatabase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE1D,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,0BAA0B,CAAC;CAC5C;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACtE,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IACtE,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,KAAK,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9E,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B"}
|
|
@@ -1,26 +1,15 @@
|
|
|
1
1
|
import type { Database } from 'better-sqlite3';
|
|
2
|
-
import { AsyncDatabase, AsyncDatabaseOpenOptions } from './AsyncDatabase.js';
|
|
2
|
+
import { AsyncDatabase, AsyncDatabaseOpenOptions, MappedQueryResult } from './AsyncDatabase.js';
|
|
3
3
|
import { PowerSyncWorkerOptions } from './SqliteWorker.js';
|
|
4
|
+
import { QueryResult, RawQueryResult } from '@powersync/common';
|
|
4
5
|
declare class BlockingAsyncDatabase implements AsyncDatabase {
|
|
5
6
|
private readonly db;
|
|
6
7
|
constructor(db: Database);
|
|
7
8
|
close(): Promise<void>;
|
|
8
|
-
execute(query: string, params: any[]): Promise<
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
_array: any;
|
|
12
|
-
length: any;
|
|
13
|
-
};
|
|
14
|
-
insertId?: undefined;
|
|
15
|
-
} | {
|
|
16
|
-
rowsAffected: any;
|
|
17
|
-
insertId: number;
|
|
18
|
-
rows?: undefined;
|
|
19
|
-
}>;
|
|
20
|
-
executeRaw(query: string, params: any[]): Promise<any[][]>;
|
|
21
|
-
executeBatch(query: string, params: any[][]): Promise<{
|
|
22
|
-
rowsAffected: number;
|
|
23
|
-
}>;
|
|
9
|
+
execute(query: string, params: any[]): Promise<MappedQueryResult>;
|
|
10
|
+
executeRaw(query: string, params: any[]): Promise<RawQueryResult>;
|
|
11
|
+
executeBatch(query: string, params: any[][]): Promise<QueryResult<never>>;
|
|
24
12
|
}
|
|
25
13
|
export declare function openDatabase(worker: PowerSyncWorkerOptions, options: AsyncDatabaseOpenOptions): Promise<BlockingAsyncDatabase>;
|
|
26
14
|
export {};
|
|
15
|
+
//# sourceMappingURL=BetterSqliteWorker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BetterSqliteWorker.d.ts","sourceRoot":"","sources":["../../src/db/BetterSqliteWorker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAChG,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,WAAW,EAA0B,cAAc,EAAe,MAAM,mBAAmB,CAAC;AAErG,cAAM,qBAAsB,YAAW,aAAa;IAClD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAW;gBAElB,EAAE,EAAE,QAAQ;IAMlB,KAAK;IAIL,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAiBjE,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAqBjE,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;CAahF;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,sBAAsB,EAAE,OAAO,EAAE,wBAAwB,kCAOnG"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { threadId } from 'node:worker_threads';
|
|
2
|
+
import { queryResultWithoutRows } from '@powersync/common';
|
|
2
3
|
class BlockingAsyncDatabase {
|
|
3
4
|
db;
|
|
4
5
|
constructor(db) {
|
|
@@ -14,10 +15,7 @@ class BlockingAsyncDatabase {
|
|
|
14
15
|
const rows = stmt.all(params);
|
|
15
16
|
return {
|
|
16
17
|
rowsAffected: 0,
|
|
17
|
-
rows
|
|
18
|
-
_array: rows,
|
|
19
|
-
length: rows.length
|
|
20
|
-
}
|
|
18
|
+
rows
|
|
21
19
|
};
|
|
22
20
|
}
|
|
23
21
|
else {
|
|
@@ -31,11 +29,22 @@ class BlockingAsyncDatabase {
|
|
|
31
29
|
async executeRaw(query, params) {
|
|
32
30
|
const stmt = this.db.prepare(query);
|
|
33
31
|
if (stmt.reader) {
|
|
34
|
-
|
|
32
|
+
stmt.raw();
|
|
33
|
+
const rows = stmt.all(params);
|
|
34
|
+
return {
|
|
35
|
+
rowsAffected: 0,
|
|
36
|
+
columnNames: stmt.columns().map((c) => c.name),
|
|
37
|
+
rawRows: rows
|
|
38
|
+
};
|
|
35
39
|
}
|
|
36
40
|
else {
|
|
37
|
-
stmt.
|
|
38
|
-
return
|
|
41
|
+
const info = stmt.run(params);
|
|
42
|
+
return {
|
|
43
|
+
rowsAffected: info.changes,
|
|
44
|
+
insertId: Number(info.lastInsertRowid),
|
|
45
|
+
rawRows: [],
|
|
46
|
+
columnNames: []
|
|
47
|
+
};
|
|
39
48
|
}
|
|
40
49
|
}
|
|
41
50
|
async executeBatch(query, params) {
|
|
@@ -46,12 +55,12 @@ class BlockingAsyncDatabase {
|
|
|
46
55
|
const info = stmt.run(paramSet);
|
|
47
56
|
rowsAffected += info.changes;
|
|
48
57
|
}
|
|
49
|
-
return { rowsAffected };
|
|
58
|
+
return queryResultWithoutRows({ rowsAffected });
|
|
50
59
|
}
|
|
51
60
|
}
|
|
52
61
|
export async function openDatabase(worker, options) {
|
|
53
62
|
const BetterSQLite3Database = await worker.loadBetterSqlite3();
|
|
54
|
-
const baseDB = new BetterSQLite3Database(options.path);
|
|
63
|
+
const baseDB = new BetterSQLite3Database(options.path, { readonly: !options.isWriter });
|
|
55
64
|
baseDB.loadExtension(worker.extensionPath(), 'sqlite3_powersync_init');
|
|
56
65
|
const asyncDb = new BlockingAsyncDatabase(baseDB);
|
|
57
66
|
return asyncDb;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BetterSqliteWorker.js","sourceRoot":"","sources":["../../src/db/BetterSqliteWorker.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"BetterSqliteWorker.js","sourceRoot":"","sources":["../../src/db/BetterSqliteWorker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultWorker.d.ts","sourceRoot":"","sources":["../../src/db/DefaultWorker.ts"],"names":[],"mappings":""}
|
|
@@ -1,21 +1,15 @@
|
|
|
1
1
|
import type { DatabaseSync } from 'node:sqlite';
|
|
2
|
-
import { AsyncDatabase, AsyncDatabaseOpenOptions } from './AsyncDatabase.js';
|
|
2
|
+
import { AsyncDatabase, AsyncDatabaseOpenOptions, MappedQueryResult } from './AsyncDatabase.js';
|
|
3
3
|
import { PowerSyncWorkerOptions } from './SqliteWorker.js';
|
|
4
|
+
import { QueryResult, RawQueryResult } from '@powersync/common';
|
|
4
5
|
declare class BlockingNodeDatabase implements AsyncDatabase {
|
|
5
6
|
private readonly db;
|
|
6
7
|
constructor(db: DatabaseSync, write: boolean);
|
|
7
8
|
close(): Promise<void>;
|
|
8
|
-
execute(query: string, params: any[]): Promise<
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
_array: Record<string, import("node:sqlite").SQLOutputValue>[];
|
|
12
|
-
length: number;
|
|
13
|
-
};
|
|
14
|
-
}>;
|
|
15
|
-
executeRaw(query: string, params: any[]): Promise<any[][]>;
|
|
16
|
-
executeBatch(query: string, params: any[][]): Promise<{
|
|
17
|
-
rowsAffected: number;
|
|
18
|
-
}>;
|
|
9
|
+
execute(query: string, params: any[]): Promise<MappedQueryResult>;
|
|
10
|
+
executeRaw(query: string, params: any[]): Promise<RawQueryResult>;
|
|
11
|
+
executeBatch(query: string, params: any[][]): Promise<QueryResult<never>>;
|
|
19
12
|
}
|
|
20
13
|
export declare function openDatabase(worker: PowerSyncWorkerOptions, options: AsyncDatabaseOpenOptions): Promise<BlockingNodeDatabase>;
|
|
21
14
|
export {};
|
|
15
|
+
//# sourceMappingURL=NodeSqliteWorker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeSqliteWorker.d.ts","sourceRoot":"","sources":["../../src/db/NodeSqliteWorker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAChG,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAA0B,cAAc,EAAe,MAAM,mBAAmB,CAAC;AAErG,cAAM,oBAAqB,YAAW,aAAa;IACjD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAe;gBAEtB,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO;IAMtC,KAAK;IAIL,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IASjE,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAWjE,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;CAahF;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,sBAAsB,EAAE,OAAO,EAAE,wBAAwB,iCAUnG"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { threadId } from 'node:worker_threads';
|
|
2
|
-
import {
|
|
2
|
+
import { queryResultWithoutRows } from '@powersync/common';
|
|
3
3
|
class BlockingNodeDatabase {
|
|
4
4
|
db;
|
|
5
5
|
constructor(db, write) {
|
|
@@ -14,16 +14,17 @@ class BlockingNodeDatabase {
|
|
|
14
14
|
const rows = stmt.all(...params);
|
|
15
15
|
return {
|
|
16
16
|
rowsAffected: 0,
|
|
17
|
-
rows
|
|
18
|
-
_array: rows,
|
|
19
|
-
length: rows.length
|
|
20
|
-
}
|
|
17
|
+
rows
|
|
21
18
|
};
|
|
22
19
|
}
|
|
23
20
|
async executeRaw(query, params) {
|
|
24
21
|
const stmt = this.db.prepare(query);
|
|
25
22
|
stmt.setReturnArrays(true); // Missing in @types/node, https://nodejs.org/api/sqlite.html#statementsetreturnarraysenabled
|
|
26
|
-
|
|
23
|
+
const rows = stmt.all(...params);
|
|
24
|
+
return {
|
|
25
|
+
rawRows: rows,
|
|
26
|
+
columnNames: stmt.columns().map((c) => c.name)
|
|
27
|
+
};
|
|
27
28
|
}
|
|
28
29
|
async executeBatch(query, params) {
|
|
29
30
|
params = params ?? [];
|
|
@@ -33,14 +34,15 @@ class BlockingNodeDatabase {
|
|
|
33
34
|
const info = stmt.run(...paramSet);
|
|
34
35
|
rowsAffected += info.changes;
|
|
35
36
|
}
|
|
36
|
-
return { rowsAffected };
|
|
37
|
+
return queryResultWithoutRows({ rowsAffected });
|
|
37
38
|
}
|
|
38
39
|
}
|
|
39
40
|
export async function openDatabase(worker, options) {
|
|
40
41
|
// NOTE: We want to import node:sqlite dynamically, to avoid bundlers unconditionally requiring node:sqlite in the
|
|
41
42
|
// end, since that would make us incompatible with older Node.JS versions.
|
|
42
|
-
const { DatabaseSync } = await
|
|
43
|
-
const baseDB = new DatabaseSync(options.path, { allowExtension: true });
|
|
43
|
+
const { DatabaseSync } = await import('node:sqlite');
|
|
44
|
+
const baseDB = new DatabaseSync(options.path, { allowExtension: true, readOnly: !options.isWriter });
|
|
45
|
+
// @ts-expect-error (type definition is wrong)
|
|
44
46
|
baseDB.loadExtension(worker.extensionPath(), 'sqlite3_powersync_init');
|
|
45
47
|
return new BlockingNodeDatabase(baseDB, options.isWriter);
|
|
46
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeSqliteWorker.js","sourceRoot":"","sources":["../../src/db/NodeSqliteWorker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"NodeSqliteWorker.js","sourceRoot":"","sources":["../../src/db/NodeSqliteWorker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAI/C,OAAO,EAAe,sBAAsB,EAA+B,MAAM,mBAAmB,CAAC;AAErG,MAAM,oBAAoB;IACP,EAAE,CAAe;IAElC,YAAY,EAAgB,EAAE,KAAc;QAC1C,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QAEb,EAAE,CAAC,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,MAAa;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QACjC,OAAO;YACL,YAAY,EAAE,CAAC;YACf,IAAI;SACL,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,MAAa;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,IAAY,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,6FAA6F;QAElI,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAA2B,CAAC;QAC3D,OAAO;YACL,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAK,CAAC;SAChD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,MAAe;QAC/C,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;QAEtB,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACpC,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;YACnC,YAAY,IAAI,IAAI,CAAC,OAAiB,CAAC;QACzC,CAAC;QAED,OAAO,sBAAsB,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;IAClD,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAA8B,EAAE,OAAiC;IAClG,kHAAkH;IAClH,0EAA0E;IAC1E,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IAErD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrG,8CAA8C;IAC9C,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,wBAAwB,CAAC,CAAC;IAEvE,OAAO,IAAI,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -1,17 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { BasePowerSyncDatabaseOptions, CommonPowerSyncDatabase, DatabaseSource, PowerSyncDatabaseConstructor } from '@powersync/common';
|
|
2
|
+
import { NodeRemoteOptions } from '../sync/stream/NodeRemote.js';
|
|
3
3
|
import { NodeSQLOpenOptions } from './options.js';
|
|
4
|
-
export type NodePowerSyncDatabaseOptions =
|
|
5
|
-
database: DBAdapter | SQLOpenFactory | NodeSQLOpenOptions;
|
|
4
|
+
export type NodePowerSyncDatabaseOptions = BasePowerSyncDatabaseOptions & DatabaseSource<NodeSQLOpenOptions> & {
|
|
6
5
|
/**
|
|
7
6
|
* Options to override how the SDK will connect to the sync service.
|
|
8
|
-
*
|
|
9
|
-
* This option is intended to be used for internal tests.
|
|
10
7
|
*/
|
|
11
|
-
remoteOptions?:
|
|
8
|
+
remoteOptions?: NodeRemoteOptions;
|
|
12
9
|
};
|
|
13
|
-
export type NodeAdditionalConnectionOptions = AdditionalConnectionOptions & NodeCustomConnectionOptions;
|
|
14
|
-
export type NodePowerSyncConnectionOptions = PowerSyncConnectionOptions & NodeAdditionalConnectionOptions;
|
|
15
10
|
/**
|
|
16
11
|
* A PowerSync database which provides SQLite functionality
|
|
17
12
|
* which is automatically synced.
|
|
@@ -26,14 +21,7 @@ export type NodePowerSyncConnectionOptions = PowerSyncConnectionOptions & NodeAd
|
|
|
26
21
|
* });
|
|
27
22
|
* ```
|
|
28
23
|
*/
|
|
29
|
-
export declare
|
|
30
|
-
|
|
31
|
-
_initialize(): Promise<void>;
|
|
32
|
-
/**
|
|
33
|
-
* Opens a DBAdapter using better-sqlite3 as the default SQLite open factory.
|
|
34
|
-
*/
|
|
35
|
-
protected openDBAdapter(options: PowerSyncDatabaseOptionsWithSettings): DBAdapter;
|
|
36
|
-
protected generateBucketStorageAdapter(): BucketStorageAdapter;
|
|
37
|
-
connect(connector: PowerSyncBackendConnector, options?: PowerSyncConnectionOptions & NodeCustomConnectionOptions): Promise<void>;
|
|
38
|
-
protected generateSyncStreamImplementation(connector: PowerSyncBackendConnector, options: RequiredAdditionalConnectionOptions & NodeAdditionalConnectionOptions): AbstractStreamingSyncImplementation;
|
|
24
|
+
export declare const PowerSyncDatabase: PowerSyncDatabaseConstructor<NodePowerSyncDatabaseOptions>;
|
|
25
|
+
export interface PowerSyncDatabase extends CommonPowerSyncDatabase {
|
|
39
26
|
}
|
|
27
|
+
//# sourceMappingURL=PowerSyncDatabase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PowerSyncDatabase.d.ts","sourceRoot":"","sources":["../../src/db/PowerSyncDatabase.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,EACvB,cAAc,EAGd,4BAA4B,EAC7B,MAAM,mBAAmB,CAAC;AAU3B,OAAO,EAAc,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAI7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,MAAM,4BAA4B,GAAG,4BAA4B,GACrE,cAAc,CAAC,kBAAkB,CAAC,GAAG;IACnC;;OAEG;IACH,aAAa,CAAC,EAAE,iBAAiB,CAAC;CACnC,CAAC;AA0CJ;;;;;;;;;;;;;GAaG;AAEH,eAAO,MAAM,iBAAiB,EAAE,4BAA4B,CAAC,4BAA4B,CAAyB,CAAC;AAEnH,MAAM,WAAW,iBAAkB,SAAQ,uBAAuB;CAAG"}
|
|
@@ -1,22 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BasePowerSyncDatabase, SqliteBucketStorage, openDatabase } from '@powersync/shared-internals';
|
|
2
2
|
import { NodeRemote } from '../sync/stream/NodeRemote.js';
|
|
3
3
|
import { NodeStreamingSyncImplementation } from '../sync/stream/NodeStreamingSyncImplementation.js';
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
* A PowerSync database which provides SQLite functionality
|
|
7
|
-
* which is automatically synced.
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* ```typescript
|
|
11
|
-
* export const db = new PowerSyncDatabase({
|
|
12
|
-
* schema: AppSchema,
|
|
13
|
-
* database: {
|
|
14
|
-
* dbFilename: 'example.db'
|
|
15
|
-
* }
|
|
16
|
-
* });
|
|
17
|
-
* ```
|
|
18
|
-
*/
|
|
19
|
-
export class PowerSyncDatabase extends AbstractPowerSyncDatabase {
|
|
4
|
+
import { WorkerConnectionPool } from './WorkerConnectionPool.js';
|
|
5
|
+
class NodePowerSyncDatabase extends BasePowerSyncDatabase {
|
|
20
6
|
constructor(options) {
|
|
21
7
|
super(options);
|
|
22
8
|
}
|
|
@@ -25,24 +11,15 @@ export class PowerSyncDatabase extends AbstractPowerSyncDatabase {
|
|
|
25
11
|
await this.database.initialize();
|
|
26
12
|
}
|
|
27
13
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
*/
|
|
31
|
-
openDBAdapter(options) {
|
|
32
|
-
return new WorkerPoolDatabaseAdapter(options.database);
|
|
14
|
+
openDBAdapter() {
|
|
15
|
+
return openDatabase(this.options, (open) => new WorkerConnectionPool(open));
|
|
33
16
|
}
|
|
34
17
|
generateBucketStorageAdapter() {
|
|
35
18
|
return new SqliteBucketStorage(this.database, this.logger);
|
|
36
19
|
}
|
|
37
|
-
connect(connector, options) {
|
|
38
|
-
return super.connect(connector, options);
|
|
39
|
-
}
|
|
40
20
|
generateSyncStreamImplementation(connector, options) {
|
|
41
21
|
const logger = this.logger;
|
|
42
|
-
const remote = new NodeRemote(connector, logger,
|
|
43
|
-
dispatcher: options.dispatcher,
|
|
44
|
-
...this.options.remoteOptions
|
|
45
|
-
});
|
|
22
|
+
const remote = new NodeRemote(connector, logger, this.options.remoteOptions);
|
|
46
23
|
return new NodeStreamingSyncImplementation({
|
|
47
24
|
adapter: this.bucketStorageAdapter,
|
|
48
25
|
remote,
|
|
@@ -56,4 +33,20 @@ export class PowerSyncDatabase extends AbstractPowerSyncDatabase {
|
|
|
56
33
|
});
|
|
57
34
|
}
|
|
58
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* A PowerSync database which provides SQLite functionality
|
|
38
|
+
* which is automatically synced.
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* export const db = new PowerSyncDatabase({
|
|
43
|
+
* schema: AppSchema,
|
|
44
|
+
* database: {
|
|
45
|
+
* dbFilename: 'example.db'
|
|
46
|
+
* }
|
|
47
|
+
* });
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
// Typed constructor to avoid leaking AbstractPowerSyncDatabase into the public interface
|
|
51
|
+
export const PowerSyncDatabase = NodePowerSyncDatabase;
|
|
59
52
|
//# sourceMappingURL=PowerSyncDatabase.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PowerSyncDatabase.js","sourceRoot":"","sources":["../../src/db/PowerSyncDatabase.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PowerSyncDatabase.js","sourceRoot":"","sources":["../../src/db/PowerSyncDatabase.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,qBAAqB,EAIrB,mBAAmB,EACnB,YAAY,EACb,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,UAAU,EAAqB,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,+BAA+B,EAAE,MAAM,mDAAmD,CAAC;AAEpG,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAWjE,MAAM,qBAAsB,SAAQ,qBAAmD;IACrF,YAAY,OAAqC;QAC/C,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,MAAO,IAAI,CAAC,QAAiC,CAAC,UAAU,EAAE,CAAC;QAC7D,CAAC;IACH,CAAC;IAES,aAAa;QACrB,OAAO,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9E,CAAC;IAES,4BAA4B;QACpC,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IAES,gCAAgC,CACxC,SAAoC,EACpC,OAAwC;QAExC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAE7E,OAAO,IAAI,+BAA+B,CAAC;YACzC,OAAO,EAAE,IAAI,CAAC,oBAAoB;YAClC,MAAM;YACN,UAAU,EAAE,KAAK,IAAI,EAAE;gBACrB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC1B,MAAM,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;YACD,GAAG,OAAO;YACV,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;YAC9B,MAAM;SACP,CAAC,CAAC;IACL,CAAC;CACF;AAED;;;;;;;;;;;;;GAaG;AACH,yFAAyF;AACzF,MAAM,CAAC,MAAM,iBAAiB,GAA+D,qBAAqB,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { QueryResult,
|
|
1
|
+
import { QueryResult, LockContext, RawQueryResult, SqliteRecord } from '@powersync/common';
|
|
2
2
|
import { Remote } from 'comlink';
|
|
3
3
|
import { Worker } from 'node:worker_threads';
|
|
4
|
-
import { AsyncDatabase, AsyncDatabaseOpener
|
|
4
|
+
import { AsyncDatabase, AsyncDatabaseOpener } from './AsyncDatabase.js';
|
|
5
5
|
/**
|
|
6
6
|
* A PowerSync database connection implemented with RPC calls to a background worker.
|
|
7
7
|
*/
|
|
8
|
-
declare class
|
|
8
|
+
export declare class RemoteConnection extends LockContext {
|
|
9
9
|
private readonly worker;
|
|
10
10
|
private readonly comlink;
|
|
11
11
|
private readonly database;
|
|
@@ -16,21 +16,10 @@ declare class BaseRemoteConnection implements SqlExecutor {
|
|
|
16
16
|
* because stack traces from worker errors are otherwise unrelated to the application issue that has caused them.
|
|
17
17
|
*/
|
|
18
18
|
private withRemote;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
executeRaw(query: string, params?: any[] | undefined): Promise<
|
|
19
|
+
execute<T = SqliteRecord>(query: string, params?: any[] | undefined): Promise<QueryResult<T>>;
|
|
20
|
+
executeBatch(query: string, params?: any[][]): Promise<QueryResult<never>>;
|
|
21
|
+
executeRaw(query: string, params?: any[] | undefined): Promise<RawQueryResult>;
|
|
22
22
|
refreshSchema(): Promise<void>;
|
|
23
23
|
close(): Promise<void>;
|
|
24
|
-
static wrapQueryResult(result: ProxiedQueryResult): QueryResult;
|
|
25
24
|
}
|
|
26
|
-
|
|
27
|
-
getAll<T>(sql: string, parameters?: any[]): Promise<T[]>;
|
|
28
|
-
getOptional<T>(sql: string, parameters?: any[]): Promise<T | null>;
|
|
29
|
-
get<T>(sql: string, parameters?: any[]): Promise<T>;
|
|
30
|
-
executeBatch(query: string, params?: any[][]): Promise<QueryResult>;
|
|
31
|
-
execute: (query: string, params?: any[] | undefined) => Promise<QueryResult>;
|
|
32
|
-
executeRaw: (query: string, params?: any[] | undefined) => Promise<any[][]>;
|
|
33
|
-
}) & typeof BaseRemoteConnection;
|
|
34
|
-
export declare class RemoteConnection extends RemoteConnection_base implements LockContext {
|
|
35
|
-
}
|
|
36
|
-
export {};
|
|
25
|
+
//# sourceMappingURL=RemoteConnection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RemoteConnection.d.ts","sourceRoot":"","sources":["../../src/db/RemoteConnection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAyB,MAAM,mBAAmB,CAAC;AAClH,OAAO,EAAgB,MAAM,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAGxE;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwB;IAEjD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAyB;gBAEhD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC;IAWjG;;;OAGG;IACH,OAAO,CAAC,UAAU;IAiClB,OAAO,CAAC,CAAC,GAAG,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAO7F,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,GAAG,EAAE,EAAO,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAM9E,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC;IAMxE,aAAa;IAIb,KAAK;CAMZ"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { LockContext, queryResultFromMapped } from '@powersync/common';
|
|
2
2
|
import { releaseProxy } from 'comlink';
|
|
3
|
+
import { ConnectionClosedError } from '@powersync/shared-internals';
|
|
3
4
|
/**
|
|
4
5
|
* A PowerSync database connection implemented with RPC calls to a background worker.
|
|
5
6
|
*/
|
|
6
|
-
class
|
|
7
|
+
export class RemoteConnection extends LockContext {
|
|
7
8
|
worker;
|
|
8
9
|
comlink;
|
|
9
10
|
database;
|
|
10
11
|
notifyWorkerClosed = new AbortController();
|
|
11
12
|
constructor(worker, comlink, database) {
|
|
13
|
+
super();
|
|
12
14
|
this.worker = worker;
|
|
13
15
|
this.comlink = comlink;
|
|
14
16
|
this.database = database;
|
|
@@ -46,16 +48,15 @@ class BaseRemoteConnection {
|
|
|
46
48
|
});
|
|
47
49
|
});
|
|
48
50
|
}
|
|
49
|
-
|
|
51
|
+
execute(query, params) {
|
|
50
52
|
return this.withRemote(async () => {
|
|
51
|
-
const
|
|
52
|
-
return
|
|
53
|
+
const results = await this.database.execute(query, params ?? []);
|
|
54
|
+
return queryResultFromMapped(results, results.rows);
|
|
53
55
|
});
|
|
54
56
|
}
|
|
55
|
-
|
|
57
|
+
executeBatch(query, params = []) {
|
|
56
58
|
return this.withRemote(async () => {
|
|
57
|
-
|
|
58
|
-
return BaseRemoteConnection.wrapQueryResult(result);
|
|
59
|
+
return await this.database.executeBatch(query, params ?? []);
|
|
59
60
|
});
|
|
60
61
|
}
|
|
61
62
|
executeRaw(query, params) {
|
|
@@ -64,7 +65,7 @@ class BaseRemoteConnection {
|
|
|
64
65
|
});
|
|
65
66
|
}
|
|
66
67
|
async refreshSchema() {
|
|
67
|
-
await this.
|
|
68
|
+
await this.executeRaw("pragma table_info('sqlite_master')");
|
|
68
69
|
}
|
|
69
70
|
async close() {
|
|
70
71
|
await this.database.close();
|
|
@@ -72,20 +73,5 @@ class BaseRemoteConnection {
|
|
|
72
73
|
this.comlink[releaseProxy]();
|
|
73
74
|
await this.worker.terminate();
|
|
74
75
|
}
|
|
75
|
-
static wrapQueryResult(result) {
|
|
76
|
-
let rows = undefined;
|
|
77
|
-
if (result.rows) {
|
|
78
|
-
rows = {
|
|
79
|
-
...result.rows,
|
|
80
|
-
item: (idx) => result.rows?._array[idx]
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
return {
|
|
84
|
-
...result,
|
|
85
|
-
rows
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
export class RemoteConnection extends DBGetUtilsDefaultMixin(BaseRemoteConnection) {
|
|
90
76
|
}
|
|
91
77
|
//# sourceMappingURL=RemoteConnection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RemoteConnection.js","sourceRoot":"","sources":["../../src/db/RemoteConnection.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"RemoteConnection.js","sourceRoot":"","sources":["../../src/db/RemoteConnection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,WAAW,EAAgC,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAClH,OAAO,EAAE,YAAY,EAAU,MAAM,SAAS,CAAC;AAG/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,WAAW;IAC9B,MAAM,CAAS;IACf,OAAO,CAA8B;IACrC,QAAQ,CAAwB;IAEhC,kBAAkB,GAAG,IAAI,eAAe,EAAE,CAAC;IAE5D,YAAY,MAAc,EAAE,OAAoC,EAAE,QAA+B;QAC/F,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;YAC7B,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,UAAU,CAAI,KAAuB;QAC3C,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAE3C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,qBAAqB,CAAC,mCAAmC,CAAC,CAAC,CAAC;YACzE,CAAC;YAED,SAAS,WAAW;gBAClB,MAAM,CAAC,IAAI,qBAAqB,CAAC,2CAA2C,CAAC,CAAC,CAAC;YACjF,CAAC;YAED,SAAS,eAAe,CAAC,MAAkB;gBACzC,UAAW,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBAC7D,MAAM,EAAE,CAAC;YACX,CAAC;YAED,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAEzD,KAAK,EAAE;iBACJ,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;iBACpD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;gBACX,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;oBAClC,CAAC,CAAC,KAAK,IAAK,KAAa,CAAC,KAAK,CAAC;gBAClC,CAAC;gBAED,OAAO,eAAe,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAmB,KAAa,EAAE,MAA0B;QACjE,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE;YAChC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;YACjE,OAAO,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,IAAuB,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,KAAa,EAAE,SAAkB,EAAE;QAC9C,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE;YAChC,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,KAAa,EAAE,MAA0B;QAClD,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE;YAChC,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,IAAI,CAAC,UAAU,CAAC,oCAAoC,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IAChC,CAAC;CACF"}
|
package/lib/db/SqliteWorker.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SqliteWorker.d.ts","sourceRoot":"","sources":["../../src/db/SqliteWorker.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,aAAa,EAAE,MAAM,MAAM,CAAC;IAE5B;;OAEG;IACH,iBAAiB,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,wBAAgB,6BAA6B,WAyC5C;AAED,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,QAe7E"}
|
package/lib/db/SqliteWorker.js
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import * as Comlink from 'comlink';
|
|
2
2
|
import OS from 'node:os';
|
|
3
|
-
import * as path from 'node:path';
|
|
4
3
|
import url from 'node:url';
|
|
5
4
|
import { parentPort } from 'node:worker_threads';
|
|
6
|
-
import { dynamicImport, isBundledToCommonJs } from '../utils/modules.js';
|
|
7
5
|
import { openDatabase as openBetterSqliteDatabase } from './BetterSqliteWorker.js';
|
|
8
6
|
import { openDatabase as openNodeDatabase } from './NodeSqliteWorker.js';
|
|
9
7
|
/**
|
|
@@ -61,21 +59,13 @@ export function getPowerSyncExtensionFilename() {
|
|
|
61
59
|
export function startPowerSyncWorker(options) {
|
|
62
60
|
const resolvedOptions = {
|
|
63
61
|
extensionPath() {
|
|
64
|
-
const isCommonJsModule = isBundledToCommonJs;
|
|
65
62
|
const extensionFilename = getPowerSyncExtensionFilename();
|
|
66
|
-
|
|
67
|
-
if (isCommonJsModule) {
|
|
68
|
-
resolved = path.resolve(__dirname, '../lib/', extensionFilename);
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
resolved = url.fileURLToPath(new URL(`../${extensionFilename}`, import.meta.url));
|
|
72
|
-
}
|
|
63
|
+
const resolved = url.fileURLToPath(new URL(`../${extensionFilename}`, import.meta.url));
|
|
73
64
|
return resolved;
|
|
74
65
|
},
|
|
75
66
|
async loadBetterSqlite3() {
|
|
76
|
-
const module = await
|
|
77
|
-
|
|
78
|
-
return isBundledToCommonJs ? module : module.default;
|
|
67
|
+
const module = await import('better-sqlite3');
|
|
68
|
+
return module.default;
|
|
79
69
|
},
|
|
80
70
|
...options
|
|
81
71
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteWorker.js","sourceRoot":"","sources":["../../src/db/SqliteWorker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,
|
|
1
|
+
{"version":3,"file":"SqliteWorker.js","sourceRoot":"","sources":["../../src/db/SqliteWorker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DBAdapter, DBLockOptions, LockContext, QueryResult, Transaction } from '@powersync/common';
|
|
2
2
|
import { RemoteConnection } from './RemoteConnection.js';
|
|
3
3
|
import { NodeSQLOpenOptions } from './options.js';
|
|
4
4
|
export type BetterSQLite3LockContext = LockContext & {
|
|
@@ -8,11 +8,11 @@ export type BetterSQLite3Transaction = Transaction & BetterSQLite3LockContext;
|
|
|
8
8
|
/**
|
|
9
9
|
* Adapter for better-sqlite3
|
|
10
10
|
*/
|
|
11
|
-
export declare class WorkerConnectionPool extends
|
|
11
|
+
export declare class WorkerConnectionPool extends DBAdapter {
|
|
12
12
|
private readonly options;
|
|
13
13
|
readonly name: string;
|
|
14
|
-
private writeConnection
|
|
15
|
-
private readConnections
|
|
14
|
+
private writeConnection?;
|
|
15
|
+
private readConnections?;
|
|
16
16
|
constructor(options: NodeSQLOpenOptions);
|
|
17
17
|
initialize(): Promise<void>;
|
|
18
18
|
close(): Promise<void>;
|
|
@@ -20,22 +20,4 @@ export declare class WorkerConnectionPool extends BaseObserver<DBAdapterListener
|
|
|
20
20
|
writeLock<T>(fn: (tx: RemoteConnection) => Promise<T>, options?: DBLockOptions | undefined): Promise<T>;
|
|
21
21
|
refreshSchema(): Promise<void>;
|
|
22
22
|
}
|
|
23
|
-
|
|
24
|
-
readTransaction<T>(fn: (tx: Transaction) => Promise<T>, options?: DBLockOptions): Promise<T>;
|
|
25
|
-
writeTransaction<T>(fn: (tx: Transaction) => Promise<T>, options?: DBLockOptions): Promise<T>;
|
|
26
|
-
getAll<T>(sql: string, parameters?: any[]): Promise<T[]>;
|
|
27
|
-
getOptional<T>(sql: string, parameters?: any[]): Promise<T | null>;
|
|
28
|
-
get<T>(sql: string, parameters?: any[]): Promise<T>;
|
|
29
|
-
execute(query: string, params?: any[]): Promise<QueryResult>;
|
|
30
|
-
executeRaw(query: string, params?: any[]): Promise<any[][]>;
|
|
31
|
-
executeBatch(query: string, params?: any[][]): Promise<QueryResult>;
|
|
32
|
-
name: string;
|
|
33
|
-
close: () => void | Promise<void>;
|
|
34
|
-
readLock: <T>(fn: (tx: LockContext) => Promise<T>, options?: DBLockOptions) => Promise<T>;
|
|
35
|
-
writeLock: <T>(fn: (tx: LockContext) => Promise<T>, options?: DBLockOptions) => Promise<T>;
|
|
36
|
-
refreshSchema: () => Promise<void>;
|
|
37
|
-
registerListener(listener: Partial<DBAdapterListener>): () => void;
|
|
38
|
-
}) & typeof WorkerConnectionPool;
|
|
39
|
-
export declare class WorkerPoolDatabaseAdapter extends WorkerPoolDatabaseAdapter_base {
|
|
40
|
-
}
|
|
41
|
-
export {};
|
|
23
|
+
//# sourceMappingURL=WorkerConnectionPool.d.ts.map
|