@powersync/node 0.18.7 → 0.19.0
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 +1 -0
- package/lib/db/AsyncDatabase.d.ts.map +1 -0
- package/lib/db/BetterSqliteWorker.d.ts +1 -0
- package/lib/db/BetterSqliteWorker.d.ts.map +1 -0
- package/lib/db/DefaultWorker.d.ts +1 -0
- package/lib/db/DefaultWorker.d.ts.map +1 -0
- package/lib/db/NodeSqliteWorker.d.ts +1 -0
- package/lib/db/NodeSqliteWorker.d.ts.map +1 -0
- package/lib/db/NodeSqliteWorker.js +2 -2
- package/lib/db/NodeSqliteWorker.js.map +1 -1
- package/lib/db/PowerSyncDatabase.d.ts +1 -0
- package/lib/db/PowerSyncDatabase.d.ts.map +1 -0
- package/lib/db/RemoteConnection.d.ts +1 -0
- package/lib/db/RemoteConnection.d.ts.map +1 -0
- 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 +3 -2
- package/lib/db/WorkerConnectionPool.d.ts.map +1 -0
- package/lib/db/WorkerConnectionPool.js +1 -9
- 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 +1 -0
- package/lib/sync/stream/NodeRemote.d.ts.map +1 -0
- package/lib/sync/stream/NodeStreamingSyncImplementation.d.ts +1 -0
- package/lib/sync/stream/NodeStreamingSyncImplementation.d.ts.map +1 -0
- package/lib/sync/stream/NodeStreamingSyncImplementation.js +1 -1
- 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 +14 -26
- package/src/db/NodeSqliteWorker.ts +2 -2
- package/src/db/SqliteWorker.ts +3 -13
- package/src/db/WorkerConnectionPool.ts +9 -16
- package/src/index.ts +2 -1
- package/src/sync/stream/NodeStreamingSyncImplementation.ts +1 -1
- package/dist/DefaultWorker.cjs +0 -232
- package/dist/DefaultWorker.cjs.map +0 -1
- package/dist/bundle.cjs +0 -531
- 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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AsyncDatabase.d.ts","sourceRoot":"","sources":["../../src/db/AsyncDatabase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE1D,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG;IAC3D,IAAI,CAAC,EAAE;QACL,MAAM,EAAE,GAAG,EAAE,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CAAC;AAEF,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,kBAAkB,CAAC,CAAC;IACvE,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC/D,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC9E,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B"}
|
|
@@ -24,3 +24,4 @@ declare class BlockingAsyncDatabase implements AsyncDatabase {
|
|
|
24
24
|
}
|
|
25
25
|
export declare function openDatabase(worker: PowerSyncWorkerOptions, options: AsyncDatabaseOpenOptions): Promise<BlockingAsyncDatabase>;
|
|
26
26
|
export {};
|
|
27
|
+
//# 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,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAG3D,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;;;;;;;;;;;;IAoBpC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE;IAWvC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;;;CAalD;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,sBAAsB,EAAE,OAAO,EAAE,wBAAwB,kCAOnG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultWorker.d.ts","sourceRoot":"","sources":["../../src/db/DefaultWorker.ts"],"names":[],"mappings":""}
|
|
@@ -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,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,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;;;;;;;IAYpC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE;IAMvC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;;;CAalD;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,sBAAsB,EAAE,OAAO,EAAE,wBAAwB,iCAUnG"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { threadId } from 'node:worker_threads';
|
|
2
|
-
import { dynamicImport } from '../utils/modules.js';
|
|
3
2
|
class BlockingNodeDatabase {
|
|
4
3
|
db;
|
|
5
4
|
constructor(db, write) {
|
|
@@ -39,8 +38,9 @@ class BlockingNodeDatabase {
|
|
|
39
38
|
export async function openDatabase(worker, options) {
|
|
40
39
|
// NOTE: We want to import node:sqlite dynamically, to avoid bundlers unconditionally requiring node:sqlite in the
|
|
41
40
|
// end, since that would make us incompatible with older Node.JS versions.
|
|
42
|
-
const { DatabaseSync } = await
|
|
41
|
+
const { DatabaseSync } = await import('node:sqlite');
|
|
43
42
|
const baseDB = new DatabaseSync(options.path, { allowExtension: true, readOnly: !options.isWriter });
|
|
43
|
+
// @ts-expect-error (type definition is wrong)
|
|
44
44
|
baseDB.loadExtension(worker.extensionPath(), 'sqlite3_powersync_init');
|
|
45
45
|
return new BlockingNodeDatabase(baseDB, options.isWriter);
|
|
46
46
|
}
|
|
@@ -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;AAK/C,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,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"}
|
|
@@ -37,3 +37,4 @@ export declare class PowerSyncDatabase extends AbstractPowerSyncDatabase {
|
|
|
37
37
|
connect(connector: PowerSyncBackendConnector, options?: PowerSyncConnectionOptions & NodeCustomConnectionOptions): Promise<void>;
|
|
38
38
|
protected generateSyncStreamImplementation(connector: PowerSyncBackendConnector, options: RequiredAdditionalConnectionOptions & NodeAdditionalConnectionOptions): AbstractStreamingSyncImplementation;
|
|
39
39
|
}
|
|
40
|
+
//# 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,yBAAyB,EACzB,qBAAqB,EACrB,mCAAmC,EACnC,2BAA2B,EAC3B,oBAAoB,EACpB,SAAS,EACT,yBAAyB,EACzB,0BAA0B,EAC1B,wBAAwB,EACxB,oCAAoC,EACpC,mCAAmC,EAEnC,cAAc,EACf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,2BAA2B,EAAc,MAAM,8BAA8B,CAAC;AAIvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,MAAM,4BAA4B,GAAG,wBAAwB,GAAG;IACpE,QAAQ,EAAE,SAAS,GAAG,cAAc,GAAG,kBAAkB,CAAC;IAC1D;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG,2BAA2B,GAAG,2BAA2B,CAAC;AAExG,MAAM,MAAM,8BAA8B,GAAG,0BAA0B,GAAG,+BAA+B,CAAC;AAE1G;;;;;;;;;;;;;GAaG;AACH,qBAAa,iBAAkB,SAAQ,yBAAyB;gBAClD,OAAO,EAAE,4BAA4B;IAI3C,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAMlC;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,oCAAoC,GAAG,SAAS;IAIjF,SAAS,CAAC,4BAA4B,IAAI,oBAAoB;IAI9D,OAAO,CACL,SAAS,EAAE,yBAAyB,EACpC,OAAO,CAAC,EAAE,0BAA0B,GAAG,2BAA2B,GACjE,OAAO,CAAC,IAAI,CAAC;IAIhB,SAAS,CAAC,gCAAgC,CACxC,SAAS,EAAE,yBAAyB,EACpC,OAAO,EAAE,mCAAmC,GAAG,+BAA+B,GAC7E,mCAAmC;CAmBvC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RemoteConnection.d.ts","sourceRoot":"","sources":["../../src/db/RemoteConnection.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,EACX,WAAW,EACX,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAgB,MAAM,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE5F;;GAEG;AACH,cAAM,oBAAqB,YAAW,WAAW;IAW7C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAV3B,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;gBAG1D,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,mBAAmB,CAAC,EACpC,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,EACd,QAAQ,EAAE,OAAO;IAWpC,IAAW,cAAc,0BAExB;IAED;;;OAGG;IACH,OAAO,CAAC,UAAU;IAiClB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,GAAG,EAAE,EAAO,GAAG,OAAO,CAAC,WAAW,CAAC;IAOvE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAOxE,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;IAMjE,aAAa;IAIb,KAAK;IAOX,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,kBAAkB,GAAG,WAAW;CAchE;;qCAGgB,CAAC;0CAAsE,CAAC;kCAAmE,CAAC;sCAAgE,CAAC;mCAAyE,CAAC;sCAAwF,CAAC;;AADjY,qBAAa,gBAAiB,SAAQ,qBAA6C,YAAW,WAAW;CAAG"}
|
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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"}
|
|
@@ -11,8 +11,8 @@ export type BetterSQLite3Transaction = Transaction & BetterSQLite3LockContext;
|
|
|
11
11
|
export declare class WorkerConnectionPool extends BaseObserver<DBAdapterListener> implements ConnectionPool {
|
|
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>;
|
|
@@ -39,3 +39,4 @@ declare const WorkerPoolDatabaseAdapter_base: (new (...args: any[]) => {
|
|
|
39
39
|
export declare class WorkerPoolDatabaseAdapter extends WorkerPoolDatabaseAdapter_base {
|
|
40
40
|
}
|
|
41
41
|
export {};
|
|
42
|
+
//# sourceMappingURL=WorkerConnectionPool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkerConnectionPool.d.ts","sourceRoot":"","sources":["../../src/db/WorkerConnectionPool.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,YAAY,EAEZ,cAAc,EAEd,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,WAAW,EAGX,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAA8B,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAE9E,MAAM,MAAM,wBAAwB,GAAG,WAAW,GAAG;IACnD,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACrE,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,WAAW,GAAG,wBAAwB,CAAC;AAQ9E;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,YAAY,CAAC,iBAAiB,CAAE,YAAW,cAAc;IACjG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B,OAAO,CAAC,eAAe,CAAC,CAA8B;IACtD,OAAO,CAAC,eAAe,CAAC,CAA8B;gBAE1C,OAAO,EAAE,kBAAkB;IAWjC,UAAU;IA4FV,KAAK;IAaL,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,gBAAgB,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC;IAStG,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,gBAAgB,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC;IAwBvG,aAAa;CAUpB;;mEAHK,CAAJ;oEAKwE,CAAC;qCACvB,CAAC;0CAAsE,CAAC;kCAAmE,CAAC;iCAA2D,CAAC;oCAAwE,CAAC;sCAAsE,CAAC;;;8DAAqK,CAAC;+DAAmG,CAAC;;;;AADtpB,qBAAa,yBAA0B,SAAQ,8BAA2C;CAAG"}
|
|
@@ -3,7 +3,6 @@ import fs from 'node:fs/promises';
|
|
|
3
3
|
import * as path from 'node:path';
|
|
4
4
|
import { Worker } from 'node:worker_threads';
|
|
5
5
|
import { BaseObserver, DBAdapterDefaultMixin, Semaphore, timeoutSignal } from '@powersync/common';
|
|
6
|
-
import { isBundledToCommonJs } from '../utils/modules.js';
|
|
7
6
|
import { RemoteConnection } from './RemoteConnection.js';
|
|
8
7
|
const READ_CONNECTIONS = 5;
|
|
9
8
|
const defaultDatabaseImplementation = {
|
|
@@ -43,16 +42,9 @@ export class WorkerConnectionPool extends BaseObserver {
|
|
|
43
42
|
dbFilePath = path.join(this.options.dbLocation, dbFilePath);
|
|
44
43
|
}
|
|
45
44
|
const openWorker = async (isWriter) => {
|
|
46
|
-
const isCommonJsModule = isBundledToCommonJs;
|
|
47
|
-
let worker;
|
|
48
45
|
const workerName = isWriter ? `write ${dbFilePath}` : `read ${dbFilePath}`;
|
|
49
46
|
const workerFactory = this.options.openWorker ?? ((...args) => new Worker(...args));
|
|
50
|
-
|
|
51
|
-
worker = workerFactory(path.resolve(__dirname, 'DefaultWorker.cjs'), { name: workerName });
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
worker = workerFactory(new URL('./DefaultWorker.js', import.meta.url), { name: workerName });
|
|
55
|
-
}
|
|
47
|
+
const worker = workerFactory(new URL('./DefaultWorker.js', import.meta.url), { name: workerName });
|
|
56
48
|
const listeners = new WeakMap();
|
|
57
49
|
const comlink = Comlink.wrap({
|
|
58
50
|
postMessage: worker.postMessage.bind(worker),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerConnectionPool.js","sourceRoot":"","sources":["../../src/db/WorkerConnectionPool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EACL,YAAY,EAGZ,qBAAqB,EAKrB,SAAS,EACT,aAAa,EAEd,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"WorkerConnectionPool.js","sourceRoot":"","sources":["../../src/db/WorkerConnectionPool.ts"],"names":[],"mappings":"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"}
|
package/lib/db/options.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/db/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEhE,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,EAAE,qBAAqB,CAAC,OAAO,MAAM,CAAC,KAAK,YAAY,CAAC,OAAO,MAAM,CAAC,CAAC;AAE1G;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,MAAM,MAAM,0BAA0B,GAAG,oBAAoB,GAAG,iBAAiB,CAAC;AAElF;;;GAGG;AACH,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,cAAc,CAAC,EAAE,0BAA0B,CAAC;IAE5C;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,YAAY,CAAC;IAE1B;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9E"}
|
package/lib/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,mBAAmB,CAAC;AAElC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAEhC,cAAc,wCAAwC,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// Re export to only require one import in client side code
|
|
2
2
|
export * from '@powersync/common';
|
|
3
3
|
export * from './db/PowerSyncDatabase.js';
|
|
4
|
+
export * from './db/options.js';
|
|
4
5
|
export * from './attachments/NodeFileSystemAdapter.js';
|
|
5
6
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,cAAc,mBAAmB,CAAC;AAElC,cAAc,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,cAAc,mBAAmB,CAAC;AAElC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAEhC,cAAc,wCAAwC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeRemote.d.ts","sourceRoot":"","sources":["../../../src/sync/stream/NodeRemote.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,OAAO,EACZ,cAAc,EACd,qBAAqB,EAIrB,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAoF,MAAM,QAAQ,CAAC;AAEtH,eAAO,MAAM,yBAAyB,QAAS,CAAC;AAQhD,MAAM,MAAM,2BAA2B,GAAG;IACxC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,qBAAqB,GAAG,2BAA2B,CAAC;AAEpF,qBAAa,UAAW,SAAQ,cAAc;IAI1C,SAAS,CAAC,SAAS,EAAE,eAAe;IACpC,SAAS,CAAC,MAAM,EAAE,OAAO;IAJ3B,OAAO,CAAC,YAAY,CAAyB;gBAGjC,SAAS,EAAE,eAAe,EAC1B,MAAM,GAAE,OAA+B,EACjD,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC;IAetC,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,SAAS;IAezD,SAAS,CAAC,sBAAsB,CAAC,GAAG,EAAE,MAAM;IAc5C,YAAY,IAAI,MAAM;CAQvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeStreamingSyncImplementation.d.ts","sourceRoot":"","sources":["../../../src/sync/stream/NodeStreamingSyncImplementation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mCAAmC,EACnC,0CAA0C,EAC1C,WAAW,EACX,QAAQ,EACR,KAAK,EACN,MAAM,mBAAmB,CAAC;AAQ3B,qBAAa,+BAAgC,SAAQ,mCAAmC;IACtF,KAAK,EAAG,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAEjB,OAAO,EAAE,0CAA0C;IAK/D;;OAEG;IACH,SAAS;IAgBT,UAAU,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CASvD"}
|
|
@@ -5,7 +5,7 @@ import { AbstractStreamingSyncImplementation, LockType, Mutex } from '@powersync
|
|
|
5
5
|
*/
|
|
6
6
|
const LOCKS = new Map();
|
|
7
7
|
export class NodeStreamingSyncImplementation extends AbstractStreamingSyncImplementation {
|
|
8
|
-
locks;
|
|
8
|
+
locks; // initialized by initLocks()
|
|
9
9
|
constructor(options) {
|
|
10
10
|
super(options);
|
|
11
11
|
this.initLocks();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeStreamingSyncImplementation.js","sourceRoot":"","sources":["../../../src/sync/stream/NodeStreamingSyncImplementation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mCAAmC,EAGnC,QAAQ,EACR,KAAK,EACN,MAAM,mBAAmB,CAAC;AAE3B;;;GAGG;AACH,MAAM,KAAK,GAAG,IAAI,GAAG,EAAgC,CAAC;AAEtD,MAAM,OAAO,+BAAgC,SAAQ,mCAAmC;IACtF,KAAK,
|
|
1
|
+
{"version":3,"file":"NodeStreamingSyncImplementation.js","sourceRoot":"","sources":["../../../src/sync/stream/NodeStreamingSyncImplementation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mCAAmC,EAGnC,QAAQ,EACR,KAAK,EACN,MAAM,mBAAmB,CAAC;AAE3B;;;GAGG;AACH,MAAM,KAAK,GAAG,IAAI,GAAG,EAAgC,CAAC;AAEtD,MAAM,OAAO,+BAAgC,SAAQ,mCAAmC;IACtF,KAAK,CAAwB,CAAC,6BAA6B;IAE3D,YAAY,OAAmD;QAC7D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,SAAS;QACP,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QACpC,IAAI,UAAU,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;YACpC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAmB,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,KAAK,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,KAAK,EAAE,CAAC,CAAC;QAE3C,IAAI,UAAU,EAAE,CAAC;YACf,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,UAAU,CAAI,WAA2B;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,aAAa,WAAW,CAAC,IAAI,YAAY,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;YAClC,OAAO,WAAW,CAAC,QAAQ,EAAE,CAAC;QAChC,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;CACF"}
|
package/lib/worker.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@powersync/node",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"registry": "https://registry.npmjs.org/",
|
|
6
6
|
"access": "public"
|
|
@@ -16,24 +16,14 @@
|
|
|
16
16
|
"type": "module",
|
|
17
17
|
"exports": {
|
|
18
18
|
".": {
|
|
19
|
-
"
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
},
|
|
23
|
-
"require": {
|
|
24
|
-
"types": "./dist/bundle.d.cts",
|
|
25
|
-
"default": "./dist/bundle.cjs"
|
|
26
|
-
}
|
|
19
|
+
"types": "./lib/index.d.ts",
|
|
20
|
+
"import": "./lib/index.js",
|
|
21
|
+
"module-sync": "./lib/index.js"
|
|
27
22
|
},
|
|
28
23
|
"./worker.js": {
|
|
29
|
-
"
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
},
|
|
33
|
-
"require": {
|
|
34
|
-
"types": "./dist/worker.d.cts",
|
|
35
|
-
"default": "./dist/worker.cjs"
|
|
36
|
-
}
|
|
24
|
+
"types": "./lib/worker.d.ts",
|
|
25
|
+
"import": "./lib/worker.js",
|
|
26
|
+
"module-sync": "./lib/worker.js"
|
|
37
27
|
},
|
|
38
28
|
"./package.json": "./package.json"
|
|
39
29
|
},
|
|
@@ -48,7 +38,7 @@
|
|
|
48
38
|
},
|
|
49
39
|
"homepage": "https://docs.powersync.com/",
|
|
50
40
|
"peerDependencies": {
|
|
51
|
-
"@powersync/common": "^1.
|
|
41
|
+
"@powersync/common": "^1.55.0",
|
|
52
42
|
"better-sqlite3": "12.x"
|
|
53
43
|
},
|
|
54
44
|
"peerDependenciesMeta": {
|
|
@@ -59,7 +49,7 @@
|
|
|
59
49
|
"dependencies": {
|
|
60
50
|
"comlink": "^4.4.2",
|
|
61
51
|
"undici": "^7.11.0",
|
|
62
|
-
"@powersync/common": "1.
|
|
52
|
+
"@powersync/common": "1.55.0"
|
|
63
53
|
},
|
|
64
54
|
"devDependencies": {
|
|
65
55
|
"@types/node": "^24.0.0",
|
|
@@ -68,10 +58,8 @@
|
|
|
68
58
|
"bson": "^6.10.4",
|
|
69
59
|
"drizzle-orm": "^0.44.7",
|
|
70
60
|
"js-logger": "^1.6.1",
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"typescript": "^5.5.3",
|
|
74
|
-
"vitest": "^3.2.4",
|
|
61
|
+
"typescript": "^6.0.3",
|
|
62
|
+
"vitest": "^4.1.8",
|
|
75
63
|
"@powersync/drizzle-driver": "0.7.3"
|
|
76
64
|
},
|
|
77
65
|
"keywords": [
|
|
@@ -83,11 +71,11 @@
|
|
|
83
71
|
],
|
|
84
72
|
"scripts": {
|
|
85
73
|
"prepare:core": "node download_core.js",
|
|
86
|
-
"build": " pnpm prepare:core && tsc -b
|
|
87
|
-
"build:prod": "pnpm prepare:core && tsc -b
|
|
74
|
+
"build": " pnpm prepare:core && tsc -b",
|
|
75
|
+
"build:prod": "pnpm prepare:core && tsc -b",
|
|
88
76
|
"clean": "rm -rf lib dist tsconfig.tsbuildinfo",
|
|
89
77
|
"watch": "tsc -b -w",
|
|
90
78
|
"test": " pnpm prepare:core && vitest",
|
|
91
|
-
"test:exports": "attw --pack . --ignore-rules no-resolution"
|
|
79
|
+
"test:exports": "attw --pack . --ignore-rules no-resolution cjs-resolves-to-esm"
|
|
92
80
|
}
|
|
93
81
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { DatabaseSync } from 'node:sqlite';
|
|
2
2
|
import { threadId } from 'node:worker_threads';
|
|
3
3
|
|
|
4
|
-
import { dynamicImport } from '../utils/modules.js';
|
|
5
4
|
import { AsyncDatabase, AsyncDatabaseOpenOptions } from './AsyncDatabase.js';
|
|
6
5
|
import { PowerSyncWorkerOptions } from './SqliteWorker.js';
|
|
7
6
|
|
|
@@ -54,9 +53,10 @@ class BlockingNodeDatabase implements AsyncDatabase {
|
|
|
54
53
|
export async function openDatabase(worker: PowerSyncWorkerOptions, options: AsyncDatabaseOpenOptions) {
|
|
55
54
|
// NOTE: We want to import node:sqlite dynamically, to avoid bundlers unconditionally requiring node:sqlite in the
|
|
56
55
|
// end, since that would make us incompatible with older Node.JS versions.
|
|
57
|
-
const { DatabaseSync } = await
|
|
56
|
+
const { DatabaseSync } = await import('node:sqlite');
|
|
58
57
|
|
|
59
58
|
const baseDB = new DatabaseSync(options.path, { allowExtension: true, readOnly: !options.isWriter });
|
|
59
|
+
// @ts-expect-error (type definition is wrong)
|
|
60
60
|
baseDB.loadExtension(worker.extensionPath(), 'sqlite3_powersync_init');
|
|
61
61
|
|
|
62
62
|
return new BlockingNodeDatabase(baseDB, options.isWriter);
|
package/src/db/SqliteWorker.ts
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 { AsyncDatabase, AsyncDatabaseOpenOptions, AsyncDatabaseOpener } from './AsyncDatabase.js';
|
|
8
6
|
import { openDatabase as openBetterSqliteDatabase } from './BetterSqliteWorker.js';
|
|
9
7
|
import { openDatabase as openNodeDatabase } from './NodeSqliteWorker.js';
|
|
@@ -71,21 +69,13 @@ export function getPowerSyncExtensionFilename() {
|
|
|
71
69
|
export function startPowerSyncWorker(options?: Partial<PowerSyncWorkerOptions>) {
|
|
72
70
|
const resolvedOptions: PowerSyncWorkerOptions = {
|
|
73
71
|
extensionPath() {
|
|
74
|
-
const isCommonJsModule = isBundledToCommonJs;
|
|
75
72
|
const extensionFilename = getPowerSyncExtensionFilename();
|
|
76
|
-
|
|
77
|
-
if (isCommonJsModule) {
|
|
78
|
-
resolved = path.resolve(__dirname, '../lib/', extensionFilename);
|
|
79
|
-
} else {
|
|
80
|
-
resolved = url.fileURLToPath(new URL(`../${extensionFilename}`, import.meta.url));
|
|
81
|
-
}
|
|
82
|
-
|
|
73
|
+
const resolved = url.fileURLToPath(new URL(`../${extensionFilename}`, import.meta.url));
|
|
83
74
|
return resolved;
|
|
84
75
|
},
|
|
85
76
|
async loadBetterSqlite3() {
|
|
86
|
-
const module = await
|
|
87
|
-
|
|
88
|
-
return isBundledToCommonJs ? module : module.default;
|
|
77
|
+
const module = await import('better-sqlite3');
|
|
78
|
+
return module.default;
|
|
89
79
|
},
|
|
90
80
|
...options
|
|
91
81
|
};
|
|
@@ -17,7 +17,6 @@ import {
|
|
|
17
17
|
Transaction
|
|
18
18
|
} from '@powersync/common';
|
|
19
19
|
import { Remote } from 'comlink';
|
|
20
|
-
import { isBundledToCommonJs } from '../utils/modules.js';
|
|
21
20
|
import { AsyncDatabase, AsyncDatabaseOpener } from './AsyncDatabase.js';
|
|
22
21
|
import { RemoteConnection } from './RemoteConnection.js';
|
|
23
22
|
import { NodeDatabaseImplementation, NodeSQLOpenOptions } from './options.js';
|
|
@@ -41,8 +40,8 @@ export class WorkerConnectionPool extends BaseObserver<DBAdapterListener> implem
|
|
|
41
40
|
private readonly options: NodeSQLOpenOptions;
|
|
42
41
|
public readonly name: string;
|
|
43
42
|
|
|
44
|
-
private writeConnection
|
|
45
|
-
private readConnections
|
|
43
|
+
private writeConnection?: Semaphore<RemoteConnection>;
|
|
44
|
+
private readConnections?: Semaphore<RemoteConnection>;
|
|
46
45
|
|
|
47
46
|
constructor(options: NodeSQLOpenOptions) {
|
|
48
47
|
super();
|
|
@@ -77,21 +76,15 @@ export class WorkerConnectionPool extends BaseObserver<DBAdapterListener> implem
|
|
|
77
76
|
}
|
|
78
77
|
|
|
79
78
|
const openWorker = async (isWriter: boolean) => {
|
|
80
|
-
const isCommonJsModule = isBundledToCommonJs;
|
|
81
|
-
let worker: Worker;
|
|
82
79
|
const workerName = isWriter ? `write ${dbFilePath}` : `read ${dbFilePath}`;
|
|
83
80
|
|
|
84
81
|
const workerFactory = this.options.openWorker ?? ((...args) => new Worker(...args));
|
|
85
|
-
|
|
86
|
-
worker = workerFactory(path.resolve(__dirname, 'DefaultWorker.cjs'), { name: workerName });
|
|
87
|
-
} else {
|
|
88
|
-
worker = workerFactory(new URL('./DefaultWorker.js', import.meta.url), { name: workerName });
|
|
89
|
-
}
|
|
82
|
+
const worker = workerFactory(new URL('./DefaultWorker.js', import.meta.url), { name: workerName });
|
|
90
83
|
|
|
91
84
|
const listeners = new WeakMap<EventListenerOrEventListenerObject, (e: any) => void>();
|
|
92
85
|
|
|
93
86
|
const comlink = Comlink.wrap<AsyncDatabaseOpener>({
|
|
94
|
-
postMessage: worker.postMessage.bind(worker),
|
|
87
|
+
postMessage: worker.postMessage.bind(worker) as any,
|
|
95
88
|
addEventListener: (type, listener) => {
|
|
96
89
|
let resolved: (event: any) => void =
|
|
97
90
|
'handleEvent' in listener ? listener.handleEvent.bind(listener) : listener;
|
|
@@ -154,8 +147,8 @@ export class WorkerConnectionPool extends BaseObserver<DBAdapterListener> implem
|
|
|
154
147
|
}
|
|
155
148
|
|
|
156
149
|
async close() {
|
|
157
|
-
const { item: writeConnection, release: returnWrite } = await this.writeConnection
|
|
158
|
-
const { items: readers, release: returnReaders } = await this.readConnections
|
|
150
|
+
const { item: writeConnection, release: returnWrite } = await this.writeConnection!.requestOne();
|
|
151
|
+
const { items: readers, release: returnReaders } = await this.readConnections!.requestAll();
|
|
159
152
|
|
|
160
153
|
try {
|
|
161
154
|
await writeConnection.close();
|
|
@@ -167,7 +160,7 @@ export class WorkerConnectionPool extends BaseObserver<DBAdapterListener> implem
|
|
|
167
160
|
}
|
|
168
161
|
|
|
169
162
|
async readLock<T>(fn: (tx: RemoteConnection) => Promise<T>, options?: DBLockOptions | undefined): Promise<T> {
|
|
170
|
-
const lease = await this.readConnections
|
|
163
|
+
const lease = await this.readConnections!.requestOne(timeoutSignal(options?.timeoutMs));
|
|
171
164
|
try {
|
|
172
165
|
return await fn(lease.item);
|
|
173
166
|
} finally {
|
|
@@ -176,7 +169,7 @@ export class WorkerConnectionPool extends BaseObserver<DBAdapterListener> implem
|
|
|
176
169
|
}
|
|
177
170
|
|
|
178
171
|
async writeLock<T>(fn: (tx: RemoteConnection) => Promise<T>, options?: DBLockOptions | undefined): Promise<T> {
|
|
179
|
-
const { item, release } = await this.writeConnection
|
|
172
|
+
const { item, release } = await this.writeConnection!.requestOne(timeoutSignal(options?.timeoutMs));
|
|
180
173
|
|
|
181
174
|
try {
|
|
182
175
|
try {
|
|
@@ -202,7 +195,7 @@ export class WorkerConnectionPool extends BaseObserver<DBAdapterListener> implem
|
|
|
202
195
|
async refreshSchema() {
|
|
203
196
|
await this.writeLock((l) => l.refreshSchema());
|
|
204
197
|
|
|
205
|
-
const { items, release } = await this.readConnections
|
|
198
|
+
const { items, release } = await this.readConnections!.requestAll();
|
|
206
199
|
try {
|
|
207
200
|
await Promise.all(items.map((c) => c.refreshSchema()));
|
|
208
201
|
} finally {
|
package/src/index.ts
CHANGED
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
const LOCKS = new Map<string, Map<LockType, Mutex>>();
|
|
14
14
|
|
|
15
15
|
export class NodeStreamingSyncImplementation extends AbstractStreamingSyncImplementation {
|
|
16
|
-
locks
|
|
16
|
+
locks!: Map<LockType, Mutex>; // initialized by initLocks()
|
|
17
17
|
|
|
18
18
|
constructor(options: AbstractStreamingSyncImplementationOptions) {
|
|
19
19
|
super(options);
|