@powersync/node 0.0.0-dev-20260128170935 → 0.0.0-dev-20260202162549

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 (67) hide show
  1. package/package.json +4 -4
  2. package/dist/DefaultWorker.cjs +0 -232
  3. package/dist/DefaultWorker.cjs.map +0 -1
  4. package/dist/bundle.cjs +0 -647
  5. package/dist/bundle.cjs.map +0 -1
  6. package/dist/bundle.d.cts +0 -127
  7. package/dist/worker.cjs +0 -233
  8. package/dist/worker.cjs.map +0 -1
  9. package/dist/worker.d.cts +0 -20
  10. package/lib/attachments/NodeFileSystemAdapter.d.ts +0 -30
  11. package/lib/attachments/NodeFileSystemAdapter.js +0 -77
  12. package/lib/attachments/NodeFileSystemAdapter.js.map +0 -1
  13. package/lib/db/AsyncDatabase.d.ts +0 -22
  14. package/lib/db/AsyncDatabase.js +0 -2
  15. package/lib/db/AsyncDatabase.js.map +0 -1
  16. package/lib/db/BetterSqliteWorker.d.ts +0 -26
  17. package/lib/db/BetterSqliteWorker.js +0 -59
  18. package/lib/db/BetterSqliteWorker.js.map +0 -1
  19. package/lib/db/DefaultWorker.d.ts +0 -1
  20. package/lib/db/DefaultWorker.js +0 -3
  21. package/lib/db/DefaultWorker.js.map +0 -1
  22. package/lib/db/NodeSqliteWorker.d.ts +0 -21
  23. package/lib/db/NodeSqliteWorker.js +0 -47
  24. package/lib/db/NodeSqliteWorker.js.map +0 -1
  25. package/lib/db/PowerSyncDatabase.d.ts +0 -39
  26. package/lib/db/PowerSyncDatabase.js +0 -57
  27. package/lib/db/PowerSyncDatabase.js.map +0 -1
  28. package/lib/db/RemoteConnection.d.ts +0 -29
  29. package/lib/db/RemoteConnection.js +0 -106
  30. package/lib/db/RemoteConnection.js.map +0 -1
  31. package/lib/db/SqliteWorker.d.ts +0 -17
  32. package/lib/db/SqliteWorker.js +0 -105
  33. package/lib/db/SqliteWorker.js.map +0 -1
  34. package/lib/db/WorkerConnectionPool.d.ts +0 -32
  35. package/lib/db/WorkerConnectionPool.js +0 -266
  36. package/lib/db/WorkerConnectionPool.js.map +0 -1
  37. package/lib/db/options.d.ts +0 -44
  38. package/lib/db/options.js +0 -2
  39. package/lib/db/options.js.map +0 -1
  40. package/lib/index.d.ts +0 -3
  41. package/lib/index.js +0 -5
  42. package/lib/index.js.map +0 -1
  43. package/lib/libpowersync_aarch64.linux.so +0 -0
  44. package/lib/libpowersync_aarch64.macos.dylib +0 -0
  45. package/lib/libpowersync_armv7.linux.so +0 -0
  46. package/lib/libpowersync_riscv64gc.linux.so +0 -0
  47. package/lib/libpowersync_x64.linux.so +0 -0
  48. package/lib/libpowersync_x64.macos.dylib +0 -0
  49. package/lib/libpowersync_x86.linux.so +0 -0
  50. package/lib/powersync_aarch64.dll +0 -0
  51. package/lib/powersync_x64.dll +0 -0
  52. package/lib/powersync_x86.dll +0 -0
  53. package/lib/sync/stream/NodeRemote.d.ts +0 -23
  54. package/lib/sync/stream/NodeRemote.js +0 -79
  55. package/lib/sync/stream/NodeRemote.js.map +0 -1
  56. package/lib/sync/stream/NodeStreamingSyncImplementation.d.ts +0 -11
  57. package/lib/sync/stream/NodeStreamingSyncImplementation.js +0 -44
  58. package/lib/sync/stream/NodeStreamingSyncImplementation.js.map +0 -1
  59. package/lib/utils/modules.d.ts +0 -2
  60. package/lib/utils/modules.js +0 -6
  61. package/lib/utils/modules.js.map +0 -1
  62. package/lib/utils/modules_commonjs.d.ts +0 -2
  63. package/lib/utils/modules_commonjs.js +0 -7
  64. package/lib/utils/modules_commonjs.js.map +0 -1
  65. package/lib/worker.d.ts +0 -1
  66. package/lib/worker.js +0 -2
  67. package/lib/worker.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"AsyncDatabase.js","sourceRoot":"","sources":["../../src/db/AsyncDatabase.ts"],"names":[],"mappings":""}
@@ -1,26 +0,0 @@
1
- import type { Database } from 'better-sqlite3';
2
- import { AsyncDatabase, AsyncDatabaseOpenOptions } from './AsyncDatabase.js';
3
- import { PowerSyncWorkerOptions } from './SqliteWorker.js';
4
- declare class BlockingAsyncDatabase implements AsyncDatabase {
5
- private readonly db;
6
- constructor(db: Database);
7
- close(): Promise<void>;
8
- execute(query: string, params: any[]): Promise<{
9
- rowsAffected: number;
10
- rows: {
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
- }>;
24
- }
25
- export declare function openDatabase(worker: PowerSyncWorkerOptions, options: AsyncDatabaseOpenOptions): Promise<BlockingAsyncDatabase>;
26
- export {};
@@ -1,59 +0,0 @@
1
- import { threadId } from 'node:worker_threads';
2
- class BlockingAsyncDatabase {
3
- db;
4
- constructor(db) {
5
- this.db = db;
6
- db.function('node_thread_id', () => threadId);
7
- }
8
- async close() {
9
- this.db.close();
10
- }
11
- async execute(query, params) {
12
- const stmt = this.db.prepare(query);
13
- if (stmt.reader) {
14
- const rows = stmt.all(params);
15
- return {
16
- rowsAffected: 0,
17
- rows: {
18
- _array: rows,
19
- length: rows.length
20
- }
21
- };
22
- }
23
- else {
24
- const info = stmt.run(params);
25
- return {
26
- rowsAffected: info.changes,
27
- insertId: Number(info.lastInsertRowid)
28
- };
29
- }
30
- }
31
- async executeRaw(query, params) {
32
- const stmt = this.db.prepare(query);
33
- if (stmt.reader) {
34
- return stmt.raw().all(params);
35
- }
36
- else {
37
- stmt.raw().run(params);
38
- return [];
39
- }
40
- }
41
- async executeBatch(query, params) {
42
- params = params ?? [];
43
- let rowsAffected = 0;
44
- const stmt = this.db.prepare(query);
45
- for (const paramSet of params) {
46
- const info = stmt.run(paramSet);
47
- rowsAffected += info.changes;
48
- }
49
- return { rowsAffected };
50
- }
51
- }
52
- export async function openDatabase(worker, options) {
53
- const BetterSQLite3Database = await worker.loadBetterSqlite3();
54
- const baseDB = new BetterSQLite3Database(options.path);
55
- baseDB.loadExtension(worker.extensionPath(), 'sqlite3_powersync_init');
56
- const asyncDb = new BlockingAsyncDatabase(baseDB);
57
- return asyncDb;
58
- }
59
- //# sourceMappingURL=BetterSqliteWorker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BetterSqliteWorker.js","sourceRoot":"","sources":["../../src/db/BetterSqliteWorker.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,MAAM,qBAAqB;IACR,EAAE,CAAW;IAE9B,YAAY,EAAY;QACtB,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,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC9B,OAAO;gBACL,YAAY,EAAE,CAAC;gBACf,IAAI,EAAE;oBACJ,MAAM,EAAE,IAAI;oBACZ,MAAM,EAAE,IAAI,CAAC,MAAM;iBACpB;aACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC9B,OAAO;gBACL,YAAY,EAAE,IAAI,CAAC,OAAO;gBAC1B,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;aACvC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,MAAa;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEpC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAY,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACvB,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,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,QAAQ,CAAC,CAAC;YAChC,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC;QAC/B,CAAC;QAED,OAAO,EAAE,YAAY,EAAE,CAAC;IAC1B,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAA8B,EAAE,OAAiC;IAClG,MAAM,qBAAqB,GAAG,MAAM,MAAM,CAAC,iBAAiB,EAAE,CAAC;IAC/D,MAAM,MAAM,GAAG,IAAI,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,wBAAwB,CAAC,CAAC;IAEvE,MAAM,OAAO,GAAG,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAClD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,3 +0,0 @@
1
- import { startPowerSyncWorker } from './SqliteWorker.js';
2
- startPowerSyncWorker();
3
- //# sourceMappingURL=DefaultWorker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DefaultWorker.js","sourceRoot":"","sources":["../../src/db/DefaultWorker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,oBAAoB,EAAE,CAAC"}
@@ -1,21 +0,0 @@
1
- import type { DatabaseSync } from 'node:sqlite';
2
- import { AsyncDatabase, AsyncDatabaseOpenOptions } from './AsyncDatabase.js';
3
- import { PowerSyncWorkerOptions } from './SqliteWorker.js';
4
- declare class BlockingNodeDatabase implements AsyncDatabase {
5
- private readonly db;
6
- constructor(db: DatabaseSync, write: boolean);
7
- close(): Promise<void>;
8
- execute(query: string, params: any[]): Promise<{
9
- rowsAffected: number;
10
- rows: {
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
- }>;
19
- }
20
- export declare function openDatabase(worker: PowerSyncWorkerOptions, options: AsyncDatabaseOpenOptions): Promise<BlockingNodeDatabase>;
21
- export {};
@@ -1,47 +0,0 @@
1
- import { threadId } from 'node:worker_threads';
2
- import { dynamicImport } from '../utils/modules.js';
3
- class BlockingNodeDatabase {
4
- db;
5
- constructor(db, write) {
6
- this.db = db;
7
- db.function('node_thread_id', () => threadId);
8
- }
9
- async close() {
10
- this.db.close();
11
- }
12
- async execute(query, params) {
13
- const stmt = this.db.prepare(query);
14
- const rows = stmt.all(...params);
15
- return {
16
- rowsAffected: 0,
17
- rows: {
18
- _array: rows,
19
- length: rows.length
20
- }
21
- };
22
- }
23
- async executeRaw(query, params) {
24
- const stmt = this.db.prepare(query);
25
- stmt.setReturnArrays(true); // Missing in @types/node, https://nodejs.org/api/sqlite.html#statementsetreturnarraysenabled
26
- return stmt.all(...params);
27
- }
28
- async executeBatch(query, params) {
29
- params = params ?? [];
30
- let rowsAffected = 0;
31
- const stmt = this.db.prepare(query);
32
- for (const paramSet of params) {
33
- const info = stmt.run(...paramSet);
34
- rowsAffected += info.changes;
35
- }
36
- return { rowsAffected };
37
- }
38
- }
39
- export async function openDatabase(worker, options) {
40
- // NOTE: We want to import node:sqlite dynamically, to avoid bundlers unconditionally requiring node:sqlite in the
41
- // end, since that would make us incompatible with older Node.JS versions.
42
- const { DatabaseSync } = await dynamicImport('node:sqlite');
43
- const baseDB = new DatabaseSync(options.path, { allowExtension: true });
44
- baseDB.loadExtension(worker.extensionPath(), 'sqlite3_powersync_init');
45
- return new BlockingNodeDatabase(baseDB, options.isWriter);
46
- }
47
- //# sourceMappingURL=NodeSqliteWorker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NodeSqliteWorker.js","sourceRoot":"","sources":["../../src/db/NodeSqliteWorker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIpD,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,EAAE;gBACJ,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB;SACF,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;QAClI,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAmB,CAAC;IAC/C,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,EAAE,YAAY,EAAE,CAAC;IAC1B,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAA8B,EAAE,OAAiC;IAClG,kHAAkH;IAClH,0EAA0E;IAC1E,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,aAAa,CAAC,aAAa,CAAC,CAAC;IAE5D,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,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,39 +0,0 @@
1
- import { AbstractPowerSyncDatabase, AbstractRemoteOptions, AbstractStreamingSyncImplementation, AdditionalConnectionOptions, BucketStorageAdapter, DBAdapter, PowerSyncBackendConnector, PowerSyncConnectionOptions, PowerSyncDatabaseOptions, PowerSyncDatabaseOptionsWithSettings, RequiredAdditionalConnectionOptions, SQLOpenFactory } from '@powersync/common';
2
- import { NodeCustomConnectionOptions } from '../sync/stream/NodeRemote.js';
3
- import { NodeSQLOpenOptions } from './options.js';
4
- export type NodePowerSyncDatabaseOptions = PowerSyncDatabaseOptions & {
5
- database: DBAdapter | SQLOpenFactory | NodeSQLOpenOptions;
6
- /**
7
- * 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
- */
11
- remoteOptions?: Partial<AbstractRemoteOptions>;
12
- };
13
- export type NodeAdditionalConnectionOptions = AdditionalConnectionOptions & NodeCustomConnectionOptions;
14
- export type NodePowerSyncConnectionOptions = PowerSyncConnectionOptions & NodeAdditionalConnectionOptions;
15
- /**
16
- * A PowerSync database which provides SQLite functionality
17
- * which is automatically synced.
18
- *
19
- * @example
20
- * ```typescript
21
- * export const db = new PowerSyncDatabase({
22
- * schema: AppSchema,
23
- * database: {
24
- * dbFilename: 'example.db'
25
- * }
26
- * });
27
- * ```
28
- */
29
- export declare class PowerSyncDatabase extends AbstractPowerSyncDatabase {
30
- constructor(options: NodePowerSyncDatabaseOptions);
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;
39
- }
@@ -1,57 +0,0 @@
1
- import { AbstractPowerSyncDatabase, SqliteBucketStorage } from '@powersync/common';
2
- import { NodeRemote } from '../sync/stream/NodeRemote.js';
3
- import { NodeStreamingSyncImplementation } from '../sync/stream/NodeStreamingSyncImplementation.js';
4
- import { WorkerConnectionPool } from './WorkerConnectionPool.js';
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 {
20
- constructor(options) {
21
- super(options);
22
- }
23
- async _initialize() {
24
- await this.database.initialize();
25
- }
26
- /**
27
- * Opens a DBAdapter using better-sqlite3 as the default SQLite open factory.
28
- */
29
- openDBAdapter(options) {
30
- return new WorkerConnectionPool(options.database);
31
- }
32
- generateBucketStorageAdapter() {
33
- return new SqliteBucketStorage(this.database, this.logger);
34
- }
35
- connect(connector, options) {
36
- return super.connect(connector, options);
37
- }
38
- generateSyncStreamImplementation(connector, options) {
39
- const logger = this.logger;
40
- const remote = new NodeRemote(connector, logger, {
41
- dispatcher: options.dispatcher,
42
- ...this.options.remoteOptions
43
- });
44
- return new NodeStreamingSyncImplementation({
45
- adapter: this.bucketStorageAdapter,
46
- remote,
47
- uploadCrud: async () => {
48
- await this.waitForReady();
49
- await connector.uploadData(this);
50
- },
51
- ...options,
52
- identifier: this.database.name,
53
- logger
54
- });
55
- }
56
- }
57
- //# sourceMappingURL=PowerSyncDatabase.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PowerSyncDatabase.js","sourceRoot":"","sources":["../../src/db/PowerSyncDatabase.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EAWzB,mBAAmB,EAEpB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAA+B,UAAU,EAAE,MAAM,8BAA8B,CAAC;AACvF,OAAO,EAAE,+BAA+B,EAAE,MAAM,mDAAmD,CAAC;AAEpG,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAiBjE;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,iBAAkB,SAAQ,yBAAyB;IAC9D,YAAY,OAAqC;QAC/C,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAO,IAAI,CAAC,QAAiC,CAAC,UAAU,EAAE,CAAC;IAC7D,CAAC;IAED;;OAEG;IACO,aAAa,CAAC,OAA6C;QACnE,OAAO,IAAI,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC;IAES,4BAA4B;QACpC,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,CACL,SAAoC,EACpC,OAAkE;QAElE,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAES,gCAAgC,CACxC,SAAoC,EACpC,OAA8E;QAE9E,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE;YAC/C,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,GAAI,IAAI,CAAC,OAAwC,CAAC,aAAa;SAChE,CAAC,CAAC;QAEH,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"}
@@ -1,29 +0,0 @@
1
- import { LockContext, QueryResult } from '@powersync/common';
2
- import { Remote } from 'comlink';
3
- import { Worker } from 'node:worker_threads';
4
- import { AsyncDatabase, AsyncDatabaseOpener, ProxiedQueryResult } from './AsyncDatabase.js';
5
- /**
6
- * A PowerSync database connection implemented with RPC calls to a background worker.
7
- */
8
- export declare class RemoteConnection implements LockContext {
9
- isBusy: boolean;
10
- private readonly worker;
11
- private readonly comlink;
12
- private readonly database;
13
- private readonly notifyWorkerClosed;
14
- constructor(worker: Worker, comlink: Remote<AsyncDatabaseOpener>, database: Remote<AsyncDatabase>);
15
- /**
16
- * Runs the inner function, but appends the stack trace where this function was called. This is useful for workers
17
- * because stack traces from worker errors are otherwise unrelated to the application issue that has caused them.
18
- */
19
- private withRemote;
20
- executeBatch(query: string, params?: any[][]): Promise<QueryResult>;
21
- execute(query: string, params?: any[] | undefined): Promise<QueryResult>;
22
- executeRaw(query: string, params?: any[] | undefined): Promise<any[][]>;
23
- getAll<T>(sql: string, parameters?: any[]): Promise<T[]>;
24
- getOptional<T>(sql: string, parameters?: any[]): Promise<T | null>;
25
- get<T>(sql: string, parameters?: any[]): Promise<T>;
26
- refreshSchema(): Promise<void>;
27
- close(): Promise<void>;
28
- static wrapQueryResult(result: ProxiedQueryResult): QueryResult;
29
- }
@@ -1,106 +0,0 @@
1
- import { ConnectionClosedError } from '@powersync/common';
2
- import { releaseProxy } from 'comlink';
3
- /**
4
- * A PowerSync database connection implemented with RPC calls to a background worker.
5
- */
6
- export class RemoteConnection {
7
- isBusy = false;
8
- worker;
9
- comlink;
10
- database;
11
- notifyWorkerClosed = new AbortController();
12
- constructor(worker, comlink, database) {
13
- this.worker = worker;
14
- this.comlink = comlink;
15
- this.database = database;
16
- this.worker.once('exit', (_) => {
17
- this.notifyWorkerClosed.abort();
18
- });
19
- }
20
- /**
21
- * Runs the inner function, but appends the stack trace where this function was called. This is useful for workers
22
- * because stack traces from worker errors are otherwise unrelated to the application issue that has caused them.
23
- */
24
- withRemote(inner) {
25
- const trace = {};
26
- Error.captureStackTrace(trace);
27
- const controller = this.notifyWorkerClosed;
28
- return new Promise((resolve, reject) => {
29
- if (controller.signal.aborted) {
30
- reject(new ConnectionClosedError('Called operation on closed remote'));
31
- }
32
- function handleAbort() {
33
- reject(new ConnectionClosedError('Remote peer closed with request in flight'));
34
- }
35
- function completePromise(action) {
36
- controller.signal.removeEventListener('abort', handleAbort);
37
- action();
38
- }
39
- controller.signal.addEventListener('abort', handleAbort);
40
- inner()
41
- .then((data) => completePromise(() => resolve(data)))
42
- .catch((e) => {
43
- if (e instanceof Error && e.stack) {
44
- e.stack += trace.stack;
45
- }
46
- return completePromise(() => reject(e));
47
- });
48
- });
49
- }
50
- executeBatch(query, params = []) {
51
- return this.withRemote(async () => {
52
- const result = await this.database.executeBatch(query, params ?? []);
53
- return RemoteConnection.wrapQueryResult(result);
54
- });
55
- }
56
- execute(query, params) {
57
- return this.withRemote(async () => {
58
- const result = await this.database.execute(query, params ?? []);
59
- return RemoteConnection.wrapQueryResult(result);
60
- });
61
- }
62
- executeRaw(query, params) {
63
- return this.withRemote(async () => {
64
- return await this.database.executeRaw(query, params ?? []);
65
- });
66
- }
67
- async getAll(sql, parameters) {
68
- const res = await this.execute(sql, parameters);
69
- return res.rows?._array ?? [];
70
- }
71
- async getOptional(sql, parameters) {
72
- const res = await this.execute(sql, parameters);
73
- return res.rows?.item(0) ?? null;
74
- }
75
- async get(sql, parameters) {
76
- const res = await this.execute(sql, parameters);
77
- const first = res.rows?.item(0);
78
- if (!first) {
79
- throw new Error('Result set is empty');
80
- }
81
- return first;
82
- }
83
- async refreshSchema() {
84
- await this.execute("pragma table_info('sqlite_master')");
85
- }
86
- async close() {
87
- await this.database.close();
88
- this.database[releaseProxy]();
89
- this.comlink[releaseProxy]();
90
- await this.worker.terminate();
91
- }
92
- static wrapQueryResult(result) {
93
- let rows = undefined;
94
- if (result.rows) {
95
- rows = {
96
- ...result.rows,
97
- item: (idx) => result.rows?._array[idx]
98
- };
99
- }
100
- return {
101
- ...result,
102
- rows
103
- };
104
- }
105
- }
106
- //# sourceMappingURL=RemoteConnection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RemoteConnection.js","sourceRoot":"","sources":["../../src/db/RemoteConnection.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- export interface PowerSyncWorkerOptions {
2
- /**
3
- * A function responsible for finding the powersync DLL/so/dylib file.
4
- *
5
- * @returns The absolute path of the PowerSync SQLite core extensions library.
6
- */
7
- extensionPath: () => string;
8
- /**
9
- * A function that returns the `Database` constructor from the `better-sqlite3` package.
10
- */
11
- loadBetterSqlite3: () => Promise<any>;
12
- }
13
- /**
14
- * @returns The relevant PowerSync extension binary filename for the current platform and architecture
15
- */
16
- export declare function getPowerSyncExtensionFilename(): string;
17
- export declare function startPowerSyncWorker(options?: Partial<PowerSyncWorkerOptions>): void;
@@ -1,105 +0,0 @@
1
- import * as Comlink from 'comlink';
2
- import OS from 'node:os';
3
- import * as path from 'node:path';
4
- import url from 'node:url';
5
- import { parentPort } from 'node:worker_threads';
6
- import { dynamicImport, isBundledToCommonJs } from '../utils/modules.js';
7
- import { openDatabase as openBetterSqliteDatabase } from './BetterSqliteWorker.js';
8
- import { openDatabase as openNodeDatabase } from './NodeSqliteWorker.js';
9
- /**
10
- * @returns The relevant PowerSync extension binary filename for the current platform and architecture
11
- */
12
- export function getPowerSyncExtensionFilename() {
13
- const platform = OS.platform();
14
- const arch = OS.arch();
15
- let extensionFile;
16
- if (platform == 'win32') {
17
- if (arch == 'x64') {
18
- extensionFile = 'powersync_x64.dll';
19
- }
20
- else if (arch == 'ia32') {
21
- extensionFile = 'powersync_x86.dll';
22
- }
23
- else if (arch == 'arm64') {
24
- extensionFile = 'powersync_aarch64.dll';
25
- }
26
- else {
27
- throw new Error('Windows platform only supports arm64, ia32 and x64 architecture.');
28
- }
29
- }
30
- else if (platform == 'linux') {
31
- if (arch == 'x64') {
32
- extensionFile = 'libpowersync_x64.linux.so';
33
- }
34
- else if (arch == 'arm64') {
35
- // TODO detect armv7 as an option
36
- extensionFile = 'libpowersync_aarch64.linux.so';
37
- }
38
- else if (arch == 'riscv64') {
39
- extensionFile = 'libpowersync_riscv64gc.linux.so';
40
- }
41
- else {
42
- throw new Error('Linux platform only supports x64, arm64 and riscv64 architectures.');
43
- }
44
- }
45
- else if (platform == 'darwin') {
46
- if (arch == 'x64') {
47
- extensionFile = 'libpowersync_x64.macos.dylib';
48
- }
49
- else if (arch == 'arm64') {
50
- extensionFile = 'libpowersync_aarch64.macos.dylib';
51
- }
52
- else {
53
- throw new Error('macOS platform only supports x64 and arm64 architectures.');
54
- }
55
- }
56
- else {
57
- throw new Error(`Unknown platform: ${platform}, PowerSync for Node.js currently supports Windows, Linux and macOS.`);
58
- }
59
- return extensionFile;
60
- }
61
- export function startPowerSyncWorker(options) {
62
- const resolvedOptions = {
63
- extensionPath() {
64
- const isCommonJsModule = isBundledToCommonJs;
65
- const extensionFilename = getPowerSyncExtensionFilename();
66
- let resolved;
67
- if (isCommonJsModule) {
68
- resolved = path.resolve(__dirname, '../lib/', extensionFilename);
69
- }
70
- else {
71
- resolved = url.fileURLToPath(new URL(`../${extensionFilename}`, import.meta.url));
72
- }
73
- return resolved;
74
- },
75
- async loadBetterSqlite3() {
76
- const module = await dynamicImport('better-sqlite3');
77
- // require() gives us the default directly, for an ESM import() we need to use the default export.
78
- return isBundledToCommonJs ? module : module.default;
79
- },
80
- ...options
81
- };
82
- Comlink.expose(new DatabaseOpenHelper(resolvedOptions), parentPort);
83
- }
84
- class DatabaseOpenHelper {
85
- options;
86
- constructor(options) {
87
- this.options = options;
88
- }
89
- async open(options) {
90
- let database;
91
- const implementation = options.implementation;
92
- switch (implementation.type) {
93
- case 'better-sqlite3':
94
- database = await openBetterSqliteDatabase(this.options, options);
95
- break;
96
- case 'node:sqlite':
97
- database = await openNodeDatabase(this.options, options);
98
- break;
99
- default:
100
- throw new Error(`Unknown database implementation: ${options.implementation}.`);
101
- }
102
- return Comlink.proxy(database);
103
- }
104
- }
105
- //# sourceMappingURL=SqliteWorker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SqliteWorker.js","sourceRoot":"","sources":["../../src/db/SqliteWorker.ts"],"names":[],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- import { BaseObserver, DBAdapter, DBAdapterListener, DBLockOptions, LockContext, QueryResult, Transaction } from '@powersync/common';
2
- import { NodeSQLOpenOptions } from './options.js';
3
- export type BetterSQLite3LockContext = LockContext & {
4
- executeBatch(query: string, params?: any[][]): Promise<QueryResult>;
5
- };
6
- export type BetterSQLite3Transaction = Transaction & BetterSQLite3LockContext;
7
- /**
8
- * Adapter for better-sqlite3
9
- */
10
- export declare class WorkerConnectionPool extends BaseObserver<DBAdapterListener> implements DBAdapter {
11
- private readonly options;
12
- readonly name: string;
13
- private readConnections;
14
- private writeConnection;
15
- private readonly readQueue;
16
- private readonly writeQueue;
17
- constructor(options: NodeSQLOpenOptions);
18
- initialize(): Promise<void>;
19
- close(): Promise<void>;
20
- readLock<T>(fn: (tx: BetterSQLite3LockContext) => Promise<T>, _options?: DBLockOptions | undefined): Promise<T>;
21
- writeLock<T>(fn: (tx: BetterSQLite3LockContext) => Promise<T>, _options?: DBLockOptions | undefined): Promise<T>;
22
- readTransaction<T>(fn: (tx: BetterSQLite3Transaction) => Promise<T>, _options?: DBLockOptions | undefined): Promise<T>;
23
- writeTransaction<T>(fn: (tx: BetterSQLite3Transaction) => Promise<T>, _options?: DBLockOptions | undefined): Promise<T>;
24
- private internalTransaction;
25
- getAll<T>(sql: string, parameters?: any[]): Promise<T[]>;
26
- getOptional<T>(sql: string, parameters?: any[]): Promise<T | null>;
27
- get<T>(sql: string, parameters?: any[]): Promise<T>;
28
- execute(query: string, params?: any[] | undefined): Promise<QueryResult>;
29
- executeRaw(query: string, params?: any[] | undefined): Promise<any[][]>;
30
- executeBatch(query: string, params?: any[][]): Promise<QueryResult>;
31
- refreshSchema(): Promise<void>;
32
- }