@powersync/node 0.14.3 → 0.15.1
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/README.md +1 -1
- package/dist/DefaultWorker.cjs +7 -6
- package/dist/DefaultWorker.cjs.map +1 -1
- package/dist/worker.cjs +7 -6
- package/dist/worker.cjs.map +1 -1
- package/download_core.js +11 -11
- package/lib/db/SqliteWorker.js +7 -6
- package/lib/db/SqliteWorker.js.map +1 -1
- package/lib/libpowersync_aarch64.linux.so +0 -0
- package/lib/libpowersync_aarch64.macos.dylib +0 -0
- package/lib/libpowersync_armv7.linux.so +0 -0
- package/lib/libpowersync_riscv64gc.linux.so +0 -0
- package/lib/libpowersync_x64.linux.so +0 -0
- package/lib/libpowersync_x64.macos.dylib +0 -0
- package/lib/libpowersync_x86.linux.so +0 -0
- package/lib/powersync_aarch64.dll +0 -0
- package/lib/powersync_x64.dll +0 -0
- package/lib/powersync_x86.dll +0 -0
- package/package.json +5 -5
- package/src/db/SqliteWorker.ts +8 -7
- package/lib/libpowersync_aarch64.dylib +0 -0
- package/lib/libpowersync_aarch64.so +0 -0
- package/lib/libpowersync_armv7.so +0 -0
- package/lib/libpowersync_riscv64gc.so +0 -0
- package/lib/libpowersync_x64.dylib +0 -0
- package/lib/libpowersync_x64.so +0 -0
- package/lib/libpowersync_x86.so +0 -0
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# PowerSync SDK for Node.js
|
|
6
6
|
|
|
7
|
-
_[PowerSync](https://www.powersync.com) is a sync engine for building local-first apps with instantly-responsive UI/UX and simplified state transfer. Syncs between SQLite on the client-side and Postgres, MongoDB or
|
|
7
|
+
_[PowerSync](https://www.powersync.com) is a sync engine for building local-first apps with instantly-responsive UI/UX and simplified state transfer. Syncs between SQLite on the client-side and Postgres, MongoDB, MySQL or SQL Server on the server-side._
|
|
8
8
|
|
|
9
9
|
This package (`packages/node`) is the PowerSync SDK for Node.js clients. It is an extension of `packages/common`.
|
|
10
10
|
Using this package is not necessary for PowerSync on servers, see [our documentation](https://docs.powersync.com/installation/app-backend-setup) for more details on that.
|
package/dist/DefaultWorker.cjs
CHANGED
|
@@ -158,14 +158,14 @@ function getPowerSyncExtensionFilename() {
|
|
|
158
158
|
}
|
|
159
159
|
else if (platform == 'linux') {
|
|
160
160
|
if (arch == 'x64') {
|
|
161
|
-
extensionFile = 'libpowersync_x64.so';
|
|
161
|
+
extensionFile = 'libpowersync_x64.linux.so';
|
|
162
162
|
}
|
|
163
163
|
else if (arch == 'arm64') {
|
|
164
164
|
// TODO detect armv7 as an option
|
|
165
|
-
extensionFile = 'libpowersync_aarch64.so';
|
|
165
|
+
extensionFile = 'libpowersync_aarch64.linux.so';
|
|
166
166
|
}
|
|
167
167
|
else if (arch == 'riscv64') {
|
|
168
|
-
extensionFile = 'libpowersync_riscv64gc.so';
|
|
168
|
+
extensionFile = 'libpowersync_riscv64gc.linux.so';
|
|
169
169
|
}
|
|
170
170
|
else {
|
|
171
171
|
throw new Error('Linux platform only supports x64, arm64 and riscv64 architectures.');
|
|
@@ -173,10 +173,10 @@ function getPowerSyncExtensionFilename() {
|
|
|
173
173
|
}
|
|
174
174
|
else if (platform == 'darwin') {
|
|
175
175
|
if (arch == 'x64') {
|
|
176
|
-
extensionFile = 'libpowersync_x64.dylib';
|
|
176
|
+
extensionFile = 'libpowersync_x64.macos.dylib';
|
|
177
177
|
}
|
|
178
178
|
else if (arch == 'arm64') {
|
|
179
|
-
extensionFile = 'libpowersync_aarch64.dylib';
|
|
179
|
+
extensionFile = 'libpowersync_aarch64.macos.dylib';
|
|
180
180
|
}
|
|
181
181
|
else {
|
|
182
182
|
throw new Error('macOS platform only supports x64 and arm64 architectures.');
|
|
@@ -199,7 +199,8 @@ function startPowerSyncWorker(options) {
|
|
|
199
199
|
},
|
|
200
200
|
async loadBetterSqlite3() {
|
|
201
201
|
const module = await dynamicImport('better-sqlite3');
|
|
202
|
-
|
|
202
|
+
// require() gives us the default directly, for an ESM import() we need to use the default export.
|
|
203
|
+
return module ;
|
|
203
204
|
},
|
|
204
205
|
...options
|
|
205
206
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultWorker.cjs","sources":["../lib/utils/modules_commonjs.js","../lib/db/BetterSqliteWorker.js","../lib/db/NodeSqliteWorker.js","../lib/db/SqliteWorker.js","../lib/db/DefaultWorker.js"],"sourcesContent":["// NOTE! Do not import this file directly! We have a rollup plugin that rewrites imports to modules.js to this file when\n// bundling to CommonJS.\nexport const isBundledToCommonJs = true;\nexport async function dynamicImport(path) {\n return require(path);\n}\n//# sourceMappingURL=modules_commonjs.js.map","import { threadId } from 'node:worker_threads';\nclass BlockingAsyncDatabase {\n db;\n constructor(db) {\n this.db = db;\n db.function('node_thread_id', () => threadId);\n }\n async close() {\n this.db.close();\n }\n async execute(query, params) {\n const stmt = this.db.prepare(query);\n if (stmt.reader) {\n const rows = stmt.all(params);\n return {\n rowsAffected: 0,\n rows: {\n _array: rows,\n length: rows.length\n }\n };\n }\n else {\n const info = stmt.run(params);\n return {\n rowsAffected: info.changes,\n insertId: Number(info.lastInsertRowid)\n };\n }\n }\n async executeRaw(query, params) {\n const stmt = this.db.prepare(query);\n if (stmt.reader) {\n return stmt.raw().all(params);\n }\n else {\n stmt.raw().run(params);\n return [];\n }\n }\n async executeBatch(query, params) {\n params = params ?? [];\n let rowsAffected = 0;\n const stmt = this.db.prepare(query);\n for (const paramSet of params) {\n const info = stmt.run(paramSet);\n rowsAffected += info.changes;\n }\n return { rowsAffected };\n }\n}\nexport async function openDatabase(worker, options) {\n const BetterSQLite3Database = await worker.loadBetterSqlite3();\n const baseDB = new BetterSQLite3Database(options.path);\n baseDB.loadExtension(worker.extensionPath(), 'sqlite3_powersync_init');\n const asyncDb = new BlockingAsyncDatabase(baseDB);\n return asyncDb;\n}\n//# sourceMappingURL=BetterSqliteWorker.js.map","import { threadId } from 'node:worker_threads';\nimport { dynamicImport } from '../utils/modules.js';\nclass BlockingNodeDatabase {\n db;\n constructor(db, write) {\n this.db = db;\n db.function('node_thread_id', () => threadId);\n }\n async close() {\n this.db.close();\n }\n async execute(query, params) {\n const stmt = this.db.prepare(query);\n const rows = stmt.all(...params);\n return {\n rowsAffected: 0,\n rows: {\n _array: rows,\n length: rows.length\n }\n };\n }\n async executeRaw(query, params) {\n const stmt = this.db.prepare(query);\n stmt.setReturnArrays(true); // Missing in @types/node, https://nodejs.org/api/sqlite.html#statementsetreturnarraysenabled\n return stmt.all(...params);\n }\n async executeBatch(query, params) {\n params = params ?? [];\n let rowsAffected = 0;\n const stmt = this.db.prepare(query);\n for (const paramSet of params) {\n const info = stmt.run(...paramSet);\n rowsAffected += info.changes;\n }\n return { rowsAffected };\n }\n}\nexport async function openDatabase(worker, options) {\n // NOTE: We want to import node:sqlite dynamically, to avoid bundlers unconditionally requiring node:sqlite in the\n // end, since that would make us incompatible with older Node.JS versions.\n const { DatabaseSync } = await dynamicImport('node:sqlite');\n const baseDB = new DatabaseSync(options.path, { allowExtension: true });\n baseDB.loadExtension(worker.extensionPath(), 'sqlite3_powersync_init');\n return new BlockingNodeDatabase(baseDB, options.isWriter);\n}\n//# sourceMappingURL=NodeSqliteWorker.js.map","import * as Comlink from 'comlink';\nimport OS from 'node:os';\nimport * as path from 'node:path';\nimport url from 'node:url';\nimport { parentPort } from 'node:worker_threads';\nimport { dynamicImport, isBundledToCommonJs } from '../utils/modules.js';\nimport { openDatabase as openBetterSqliteDatabase } from './BetterSqliteWorker.js';\nimport { openDatabase as openNodeDatabase } from './NodeSqliteWorker.js';\n/**\n * @returns The relevant PowerSync extension binary filename for the current platform and architecture\n */\nexport function getPowerSyncExtensionFilename() {\n const platform = OS.platform();\n const arch = OS.arch();\n let extensionFile;\n if (platform == 'win32') {\n if (arch == 'x64') {\n extensionFile = 'powersync_x64.dll';\n }\n else if (arch == 'ia32') {\n extensionFile = 'powersync_x86.dll';\n }\n else if (arch == 'arm64') {\n extensionFile = 'powersync_aarch64.dll';\n }\n else {\n throw new Error('Windows platform only supports arm64, ia32 and x64 architecture.');\n }\n }\n else if (platform == 'linux') {\n if (arch == 'x64') {\n extensionFile = 'libpowersync_x64.so';\n }\n else if (arch == 'arm64') {\n // TODO detect armv7 as an option\n extensionFile = 'libpowersync_aarch64.so';\n }\n else if (arch == 'riscv64') {\n extensionFile = 'libpowersync_riscv64gc.so';\n }\n else {\n throw new Error('Linux platform only supports x64, arm64 and riscv64 architectures.');\n }\n }\n else if (platform == 'darwin') {\n if (arch == 'x64') {\n extensionFile = 'libpowersync_x64.dylib';\n }\n else if (arch == 'arm64') {\n extensionFile = 'libpowersync_aarch64.dylib';\n }\n else {\n throw new Error('macOS platform only supports x64 and arm64 architectures.');\n }\n }\n else {\n throw new Error(`Unknown platform: ${platform}, PowerSync for Node.js currently supports Windows, Linux and macOS.`);\n }\n return extensionFile;\n}\nexport function startPowerSyncWorker(options) {\n const resolvedOptions = {\n extensionPath() {\n const isCommonJsModule = isBundledToCommonJs;\n const extensionFilename = getPowerSyncExtensionFilename();\n let resolved;\n if (isCommonJsModule) {\n resolved = path.resolve(__dirname, '../lib/', extensionFilename);\n }\n else {\n resolved = url.fileURLToPath(new URL(`../${extensionFilename}`, import.meta.url));\n }\n return resolved;\n },\n async loadBetterSqlite3() {\n const module = await dynamicImport('better-sqlite3');\n return module.default;\n },\n ...options\n };\n Comlink.expose(new DatabaseOpenHelper(resolvedOptions), parentPort);\n}\nclass DatabaseOpenHelper {\n options;\n constructor(options) {\n this.options = options;\n }\n async open(options) {\n let database;\n const implementation = options.implementation;\n switch (implementation.type) {\n case 'better-sqlite3':\n database = await openBetterSqliteDatabase(this.options, options);\n break;\n case 'node:sqlite':\n database = await openNodeDatabase(this.options, options);\n break;\n default:\n throw new Error(`Unknown database implementation: ${options.implementation}.`);\n }\n return Comlink.proxy(database);\n }\n}\n//# sourceMappingURL=SqliteWorker.js.map","import { startPowerSyncWorker } from './SqliteWorker.js';\nstartPowerSyncWorker();\n//# sourceMappingURL=DefaultWorker.js.map"],"names":["threadId","openDatabase","path","Comlink","parentPort","openBetterSqliteDatabase","openNodeDatabase"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DefaultWorker.cjs","sources":["../lib/utils/modules_commonjs.js","../lib/db/BetterSqliteWorker.js","../lib/db/NodeSqliteWorker.js","../lib/db/SqliteWorker.js","../lib/db/DefaultWorker.js"],"sourcesContent":["// NOTE! Do not import this file directly! We have a rollup plugin that rewrites imports to modules.js to this file when\n// bundling to CommonJS.\nexport const isBundledToCommonJs = true;\nexport async function dynamicImport(path) {\n return require(path);\n}\n//# sourceMappingURL=modules_commonjs.js.map","import { threadId } from 'node:worker_threads';\nclass BlockingAsyncDatabase {\n db;\n constructor(db) {\n this.db = db;\n db.function('node_thread_id', () => threadId);\n }\n async close() {\n this.db.close();\n }\n async execute(query, params) {\n const stmt = this.db.prepare(query);\n if (stmt.reader) {\n const rows = stmt.all(params);\n return {\n rowsAffected: 0,\n rows: {\n _array: rows,\n length: rows.length\n }\n };\n }\n else {\n const info = stmt.run(params);\n return {\n rowsAffected: info.changes,\n insertId: Number(info.lastInsertRowid)\n };\n }\n }\n async executeRaw(query, params) {\n const stmt = this.db.prepare(query);\n if (stmt.reader) {\n return stmt.raw().all(params);\n }\n else {\n stmt.raw().run(params);\n return [];\n }\n }\n async executeBatch(query, params) {\n params = params ?? [];\n let rowsAffected = 0;\n const stmt = this.db.prepare(query);\n for (const paramSet of params) {\n const info = stmt.run(paramSet);\n rowsAffected += info.changes;\n }\n return { rowsAffected };\n }\n}\nexport async function openDatabase(worker, options) {\n const BetterSQLite3Database = await worker.loadBetterSqlite3();\n const baseDB = new BetterSQLite3Database(options.path);\n baseDB.loadExtension(worker.extensionPath(), 'sqlite3_powersync_init');\n const asyncDb = new BlockingAsyncDatabase(baseDB);\n return asyncDb;\n}\n//# sourceMappingURL=BetterSqliteWorker.js.map","import { threadId } from 'node:worker_threads';\nimport { dynamicImport } from '../utils/modules.js';\nclass BlockingNodeDatabase {\n db;\n constructor(db, write) {\n this.db = db;\n db.function('node_thread_id', () => threadId);\n }\n async close() {\n this.db.close();\n }\n async execute(query, params) {\n const stmt = this.db.prepare(query);\n const rows = stmt.all(...params);\n return {\n rowsAffected: 0,\n rows: {\n _array: rows,\n length: rows.length\n }\n };\n }\n async executeRaw(query, params) {\n const stmt = this.db.prepare(query);\n stmt.setReturnArrays(true); // Missing in @types/node, https://nodejs.org/api/sqlite.html#statementsetreturnarraysenabled\n return stmt.all(...params);\n }\n async executeBatch(query, params) {\n params = params ?? [];\n let rowsAffected = 0;\n const stmt = this.db.prepare(query);\n for (const paramSet of params) {\n const info = stmt.run(...paramSet);\n rowsAffected += info.changes;\n }\n return { rowsAffected };\n }\n}\nexport async function openDatabase(worker, options) {\n // NOTE: We want to import node:sqlite dynamically, to avoid bundlers unconditionally requiring node:sqlite in the\n // end, since that would make us incompatible with older Node.JS versions.\n const { DatabaseSync } = await dynamicImport('node:sqlite');\n const baseDB = new DatabaseSync(options.path, { allowExtension: true });\n baseDB.loadExtension(worker.extensionPath(), 'sqlite3_powersync_init');\n return new BlockingNodeDatabase(baseDB, options.isWriter);\n}\n//# sourceMappingURL=NodeSqliteWorker.js.map","import * as Comlink from 'comlink';\nimport OS from 'node:os';\nimport * as path from 'node:path';\nimport url from 'node:url';\nimport { parentPort } from 'node:worker_threads';\nimport { dynamicImport, isBundledToCommonJs } from '../utils/modules.js';\nimport { openDatabase as openBetterSqliteDatabase } from './BetterSqliteWorker.js';\nimport { openDatabase as openNodeDatabase } from './NodeSqliteWorker.js';\n/**\n * @returns The relevant PowerSync extension binary filename for the current platform and architecture\n */\nexport function getPowerSyncExtensionFilename() {\n const platform = OS.platform();\n const arch = OS.arch();\n let extensionFile;\n if (platform == 'win32') {\n if (arch == 'x64') {\n extensionFile = 'powersync_x64.dll';\n }\n else if (arch == 'ia32') {\n extensionFile = 'powersync_x86.dll';\n }\n else if (arch == 'arm64') {\n extensionFile = 'powersync_aarch64.dll';\n }\n else {\n throw new Error('Windows platform only supports arm64, ia32 and x64 architecture.');\n }\n }\n else if (platform == 'linux') {\n if (arch == 'x64') {\n extensionFile = 'libpowersync_x64.linux.so';\n }\n else if (arch == 'arm64') {\n // TODO detect armv7 as an option\n extensionFile = 'libpowersync_aarch64.linux.so';\n }\n else if (arch == 'riscv64') {\n extensionFile = 'libpowersync_riscv64gc.linux.so';\n }\n else {\n throw new Error('Linux platform only supports x64, arm64 and riscv64 architectures.');\n }\n }\n else if (platform == 'darwin') {\n if (arch == 'x64') {\n extensionFile = 'libpowersync_x64.macos.dylib';\n }\n else if (arch == 'arm64') {\n extensionFile = 'libpowersync_aarch64.macos.dylib';\n }\n else {\n throw new Error('macOS platform only supports x64 and arm64 architectures.');\n }\n }\n else {\n throw new Error(`Unknown platform: ${platform}, PowerSync for Node.js currently supports Windows, Linux and macOS.`);\n }\n return extensionFile;\n}\nexport function startPowerSyncWorker(options) {\n const resolvedOptions = {\n extensionPath() {\n const isCommonJsModule = isBundledToCommonJs;\n const extensionFilename = getPowerSyncExtensionFilename();\n let resolved;\n if (isCommonJsModule) {\n resolved = path.resolve(__dirname, '../lib/', extensionFilename);\n }\n else {\n resolved = url.fileURLToPath(new URL(`../${extensionFilename}`, import.meta.url));\n }\n return resolved;\n },\n async loadBetterSqlite3() {\n const module = await dynamicImport('better-sqlite3');\n // require() gives us the default directly, for an ESM import() we need to use the default export.\n return isBundledToCommonJs ? module : module.default;\n },\n ...options\n };\n Comlink.expose(new DatabaseOpenHelper(resolvedOptions), parentPort);\n}\nclass DatabaseOpenHelper {\n options;\n constructor(options) {\n this.options = options;\n }\n async open(options) {\n let database;\n const implementation = options.implementation;\n switch (implementation.type) {\n case 'better-sqlite3':\n database = await openBetterSqliteDatabase(this.options, options);\n break;\n case 'node:sqlite':\n database = await openNodeDatabase(this.options, options);\n break;\n default:\n throw new Error(`Unknown database implementation: ${options.implementation}.`);\n }\n return Comlink.proxy(database);\n }\n}\n//# sourceMappingURL=SqliteWorker.js.map","import { startPowerSyncWorker } from './SqliteWorker.js';\nstartPowerSyncWorker();\n//# sourceMappingURL=DefaultWorker.js.map"],"names":["threadId","openDatabase","path","Comlink","parentPort","openBetterSqliteDatabase","openNodeDatabase"],"mappings":"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"}
|
package/dist/worker.cjs
CHANGED
|
@@ -158,14 +158,14 @@ function getPowerSyncExtensionFilename() {
|
|
|
158
158
|
}
|
|
159
159
|
else if (platform == 'linux') {
|
|
160
160
|
if (arch == 'x64') {
|
|
161
|
-
extensionFile = 'libpowersync_x64.so';
|
|
161
|
+
extensionFile = 'libpowersync_x64.linux.so';
|
|
162
162
|
}
|
|
163
163
|
else if (arch == 'arm64') {
|
|
164
164
|
// TODO detect armv7 as an option
|
|
165
|
-
extensionFile = 'libpowersync_aarch64.so';
|
|
165
|
+
extensionFile = 'libpowersync_aarch64.linux.so';
|
|
166
166
|
}
|
|
167
167
|
else if (arch == 'riscv64') {
|
|
168
|
-
extensionFile = 'libpowersync_riscv64gc.so';
|
|
168
|
+
extensionFile = 'libpowersync_riscv64gc.linux.so';
|
|
169
169
|
}
|
|
170
170
|
else {
|
|
171
171
|
throw new Error('Linux platform only supports x64, arm64 and riscv64 architectures.');
|
|
@@ -173,10 +173,10 @@ function getPowerSyncExtensionFilename() {
|
|
|
173
173
|
}
|
|
174
174
|
else if (platform == 'darwin') {
|
|
175
175
|
if (arch == 'x64') {
|
|
176
|
-
extensionFile = 'libpowersync_x64.dylib';
|
|
176
|
+
extensionFile = 'libpowersync_x64.macos.dylib';
|
|
177
177
|
}
|
|
178
178
|
else if (arch == 'arm64') {
|
|
179
|
-
extensionFile = 'libpowersync_aarch64.dylib';
|
|
179
|
+
extensionFile = 'libpowersync_aarch64.macos.dylib';
|
|
180
180
|
}
|
|
181
181
|
else {
|
|
182
182
|
throw new Error('macOS platform only supports x64 and arm64 architectures.');
|
|
@@ -199,7 +199,8 @@ function startPowerSyncWorker(options) {
|
|
|
199
199
|
},
|
|
200
200
|
async loadBetterSqlite3() {
|
|
201
201
|
const module = await dynamicImport('better-sqlite3');
|
|
202
|
-
|
|
202
|
+
// require() gives us the default directly, for an ESM import() we need to use the default export.
|
|
203
|
+
return module ;
|
|
203
204
|
},
|
|
204
205
|
...options
|
|
205
206
|
};
|
package/dist/worker.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.cjs","sources":["../lib/utils/modules_commonjs.js","../lib/db/BetterSqliteWorker.js","../lib/db/NodeSqliteWorker.js","../lib/db/SqliteWorker.js"],"sourcesContent":["// NOTE! Do not import this file directly! We have a rollup plugin that rewrites imports to modules.js to this file when\n// bundling to CommonJS.\nexport const isBundledToCommonJs = true;\nexport async function dynamicImport(path) {\n return require(path);\n}\n//# sourceMappingURL=modules_commonjs.js.map","import { threadId } from 'node:worker_threads';\nclass BlockingAsyncDatabase {\n db;\n constructor(db) {\n this.db = db;\n db.function('node_thread_id', () => threadId);\n }\n async close() {\n this.db.close();\n }\n async execute(query, params) {\n const stmt = this.db.prepare(query);\n if (stmt.reader) {\n const rows = stmt.all(params);\n return {\n rowsAffected: 0,\n rows: {\n _array: rows,\n length: rows.length\n }\n };\n }\n else {\n const info = stmt.run(params);\n return {\n rowsAffected: info.changes,\n insertId: Number(info.lastInsertRowid)\n };\n }\n }\n async executeRaw(query, params) {\n const stmt = this.db.prepare(query);\n if (stmt.reader) {\n return stmt.raw().all(params);\n }\n else {\n stmt.raw().run(params);\n return [];\n }\n }\n async executeBatch(query, params) {\n params = params ?? [];\n let rowsAffected = 0;\n const stmt = this.db.prepare(query);\n for (const paramSet of params) {\n const info = stmt.run(paramSet);\n rowsAffected += info.changes;\n }\n return { rowsAffected };\n }\n}\nexport async function openDatabase(worker, options) {\n const BetterSQLite3Database = await worker.loadBetterSqlite3();\n const baseDB = new BetterSQLite3Database(options.path);\n baseDB.loadExtension(worker.extensionPath(), 'sqlite3_powersync_init');\n const asyncDb = new BlockingAsyncDatabase(baseDB);\n return asyncDb;\n}\n//# sourceMappingURL=BetterSqliteWorker.js.map","import { threadId } from 'node:worker_threads';\nimport { dynamicImport } from '../utils/modules.js';\nclass BlockingNodeDatabase {\n db;\n constructor(db, write) {\n this.db = db;\n db.function('node_thread_id', () => threadId);\n }\n async close() {\n this.db.close();\n }\n async execute(query, params) {\n const stmt = this.db.prepare(query);\n const rows = stmt.all(...params);\n return {\n rowsAffected: 0,\n rows: {\n _array: rows,\n length: rows.length\n }\n };\n }\n async executeRaw(query, params) {\n const stmt = this.db.prepare(query);\n stmt.setReturnArrays(true); // Missing in @types/node, https://nodejs.org/api/sqlite.html#statementsetreturnarraysenabled\n return stmt.all(...params);\n }\n async executeBatch(query, params) {\n params = params ?? [];\n let rowsAffected = 0;\n const stmt = this.db.prepare(query);\n for (const paramSet of params) {\n const info = stmt.run(...paramSet);\n rowsAffected += info.changes;\n }\n return { rowsAffected };\n }\n}\nexport async function openDatabase(worker, options) {\n // NOTE: We want to import node:sqlite dynamically, to avoid bundlers unconditionally requiring node:sqlite in the\n // end, since that would make us incompatible with older Node.JS versions.\n const { DatabaseSync } = await dynamicImport('node:sqlite');\n const baseDB = new DatabaseSync(options.path, { allowExtension: true });\n baseDB.loadExtension(worker.extensionPath(), 'sqlite3_powersync_init');\n return new BlockingNodeDatabase(baseDB, options.isWriter);\n}\n//# sourceMappingURL=NodeSqliteWorker.js.map","import * as Comlink from 'comlink';\nimport OS from 'node:os';\nimport * as path from 'node:path';\nimport url from 'node:url';\nimport { parentPort } from 'node:worker_threads';\nimport { dynamicImport, isBundledToCommonJs } from '../utils/modules.js';\nimport { openDatabase as openBetterSqliteDatabase } from './BetterSqliteWorker.js';\nimport { openDatabase as openNodeDatabase } from './NodeSqliteWorker.js';\n/**\n * @returns The relevant PowerSync extension binary filename for the current platform and architecture\n */\nexport function getPowerSyncExtensionFilename() {\n const platform = OS.platform();\n const arch = OS.arch();\n let extensionFile;\n if (platform == 'win32') {\n if (arch == 'x64') {\n extensionFile = 'powersync_x64.dll';\n }\n else if (arch == 'ia32') {\n extensionFile = 'powersync_x86.dll';\n }\n else if (arch == 'arm64') {\n extensionFile = 'powersync_aarch64.dll';\n }\n else {\n throw new Error('Windows platform only supports arm64, ia32 and x64 architecture.');\n }\n }\n else if (platform == 'linux') {\n if (arch == 'x64') {\n extensionFile = 'libpowersync_x64.so';\n }\n else if (arch == 'arm64') {\n // TODO detect armv7 as an option\n extensionFile = 'libpowersync_aarch64.so';\n }\n else if (arch == 'riscv64') {\n extensionFile = 'libpowersync_riscv64gc.so';\n }\n else {\n throw new Error('Linux platform only supports x64, arm64 and riscv64 architectures.');\n }\n }\n else if (platform == 'darwin') {\n if (arch == 'x64') {\n extensionFile = 'libpowersync_x64.dylib';\n }\n else if (arch == 'arm64') {\n extensionFile = 'libpowersync_aarch64.dylib';\n }\n else {\n throw new Error('macOS platform only supports x64 and arm64 architectures.');\n }\n }\n else {\n throw new Error(`Unknown platform: ${platform}, PowerSync for Node.js currently supports Windows, Linux and macOS.`);\n }\n return extensionFile;\n}\nexport function startPowerSyncWorker(options) {\n const resolvedOptions = {\n extensionPath() {\n const isCommonJsModule = isBundledToCommonJs;\n const extensionFilename = getPowerSyncExtensionFilename();\n let resolved;\n if (isCommonJsModule) {\n resolved = path.resolve(__dirname, '../lib/', extensionFilename);\n }\n else {\n resolved = url.fileURLToPath(new URL(`../${extensionFilename}`, import.meta.url));\n }\n return resolved;\n },\n async loadBetterSqlite3() {\n const module = await dynamicImport('better-sqlite3');\n return module.default;\n },\n ...options\n };\n Comlink.expose(new DatabaseOpenHelper(resolvedOptions), parentPort);\n}\nclass DatabaseOpenHelper {\n options;\n constructor(options) {\n this.options = options;\n }\n async open(options) {\n let database;\n const implementation = options.implementation;\n switch (implementation.type) {\n case 'better-sqlite3':\n database = await openBetterSqliteDatabase(this.options, options);\n break;\n case 'node:sqlite':\n database = await openNodeDatabase(this.options, options);\n break;\n default:\n throw new Error(`Unknown database implementation: ${options.implementation}.`);\n }\n return Comlink.proxy(database);\n }\n}\n//# sourceMappingURL=SqliteWorker.js.map"],"names":["threadId","openDatabase","path","Comlink","parentPort","openBetterSqliteDatabase","openNodeDatabase"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"worker.cjs","sources":["../lib/utils/modules_commonjs.js","../lib/db/BetterSqliteWorker.js","../lib/db/NodeSqliteWorker.js","../lib/db/SqliteWorker.js"],"sourcesContent":["// NOTE! Do not import this file directly! We have a rollup plugin that rewrites imports to modules.js to this file when\n// bundling to CommonJS.\nexport const isBundledToCommonJs = true;\nexport async function dynamicImport(path) {\n return require(path);\n}\n//# sourceMappingURL=modules_commonjs.js.map","import { threadId } from 'node:worker_threads';\nclass BlockingAsyncDatabase {\n db;\n constructor(db) {\n this.db = db;\n db.function('node_thread_id', () => threadId);\n }\n async close() {\n this.db.close();\n }\n async execute(query, params) {\n const stmt = this.db.prepare(query);\n if (stmt.reader) {\n const rows = stmt.all(params);\n return {\n rowsAffected: 0,\n rows: {\n _array: rows,\n length: rows.length\n }\n };\n }\n else {\n const info = stmt.run(params);\n return {\n rowsAffected: info.changes,\n insertId: Number(info.lastInsertRowid)\n };\n }\n }\n async executeRaw(query, params) {\n const stmt = this.db.prepare(query);\n if (stmt.reader) {\n return stmt.raw().all(params);\n }\n else {\n stmt.raw().run(params);\n return [];\n }\n }\n async executeBatch(query, params) {\n params = params ?? [];\n let rowsAffected = 0;\n const stmt = this.db.prepare(query);\n for (const paramSet of params) {\n const info = stmt.run(paramSet);\n rowsAffected += info.changes;\n }\n return { rowsAffected };\n }\n}\nexport async function openDatabase(worker, options) {\n const BetterSQLite3Database = await worker.loadBetterSqlite3();\n const baseDB = new BetterSQLite3Database(options.path);\n baseDB.loadExtension(worker.extensionPath(), 'sqlite3_powersync_init');\n const asyncDb = new BlockingAsyncDatabase(baseDB);\n return asyncDb;\n}\n//# sourceMappingURL=BetterSqliteWorker.js.map","import { threadId } from 'node:worker_threads';\nimport { dynamicImport } from '../utils/modules.js';\nclass BlockingNodeDatabase {\n db;\n constructor(db, write) {\n this.db = db;\n db.function('node_thread_id', () => threadId);\n }\n async close() {\n this.db.close();\n }\n async execute(query, params) {\n const stmt = this.db.prepare(query);\n const rows = stmt.all(...params);\n return {\n rowsAffected: 0,\n rows: {\n _array: rows,\n length: rows.length\n }\n };\n }\n async executeRaw(query, params) {\n const stmt = this.db.prepare(query);\n stmt.setReturnArrays(true); // Missing in @types/node, https://nodejs.org/api/sqlite.html#statementsetreturnarraysenabled\n return stmt.all(...params);\n }\n async executeBatch(query, params) {\n params = params ?? [];\n let rowsAffected = 0;\n const stmt = this.db.prepare(query);\n for (const paramSet of params) {\n const info = stmt.run(...paramSet);\n rowsAffected += info.changes;\n }\n return { rowsAffected };\n }\n}\nexport async function openDatabase(worker, options) {\n // NOTE: We want to import node:sqlite dynamically, to avoid bundlers unconditionally requiring node:sqlite in the\n // end, since that would make us incompatible with older Node.JS versions.\n const { DatabaseSync } = await dynamicImport('node:sqlite');\n const baseDB = new DatabaseSync(options.path, { allowExtension: true });\n baseDB.loadExtension(worker.extensionPath(), 'sqlite3_powersync_init');\n return new BlockingNodeDatabase(baseDB, options.isWriter);\n}\n//# sourceMappingURL=NodeSqliteWorker.js.map","import * as Comlink from 'comlink';\nimport OS from 'node:os';\nimport * as path from 'node:path';\nimport url from 'node:url';\nimport { parentPort } from 'node:worker_threads';\nimport { dynamicImport, isBundledToCommonJs } from '../utils/modules.js';\nimport { openDatabase as openBetterSqliteDatabase } from './BetterSqliteWorker.js';\nimport { openDatabase as openNodeDatabase } from './NodeSqliteWorker.js';\n/**\n * @returns The relevant PowerSync extension binary filename for the current platform and architecture\n */\nexport function getPowerSyncExtensionFilename() {\n const platform = OS.platform();\n const arch = OS.arch();\n let extensionFile;\n if (platform == 'win32') {\n if (arch == 'x64') {\n extensionFile = 'powersync_x64.dll';\n }\n else if (arch == 'ia32') {\n extensionFile = 'powersync_x86.dll';\n }\n else if (arch == 'arm64') {\n extensionFile = 'powersync_aarch64.dll';\n }\n else {\n throw new Error('Windows platform only supports arm64, ia32 and x64 architecture.');\n }\n }\n else if (platform == 'linux') {\n if (arch == 'x64') {\n extensionFile = 'libpowersync_x64.linux.so';\n }\n else if (arch == 'arm64') {\n // TODO detect armv7 as an option\n extensionFile = 'libpowersync_aarch64.linux.so';\n }\n else if (arch == 'riscv64') {\n extensionFile = 'libpowersync_riscv64gc.linux.so';\n }\n else {\n throw new Error('Linux platform only supports x64, arm64 and riscv64 architectures.');\n }\n }\n else if (platform == 'darwin') {\n if (arch == 'x64') {\n extensionFile = 'libpowersync_x64.macos.dylib';\n }\n else if (arch == 'arm64') {\n extensionFile = 'libpowersync_aarch64.macos.dylib';\n }\n else {\n throw new Error('macOS platform only supports x64 and arm64 architectures.');\n }\n }\n else {\n throw new Error(`Unknown platform: ${platform}, PowerSync for Node.js currently supports Windows, Linux and macOS.`);\n }\n return extensionFile;\n}\nexport function startPowerSyncWorker(options) {\n const resolvedOptions = {\n extensionPath() {\n const isCommonJsModule = isBundledToCommonJs;\n const extensionFilename = getPowerSyncExtensionFilename();\n let resolved;\n if (isCommonJsModule) {\n resolved = path.resolve(__dirname, '../lib/', extensionFilename);\n }\n else {\n resolved = url.fileURLToPath(new URL(`../${extensionFilename}`, import.meta.url));\n }\n return resolved;\n },\n async loadBetterSqlite3() {\n const module = await dynamicImport('better-sqlite3');\n // require() gives us the default directly, for an ESM import() we need to use the default export.\n return isBundledToCommonJs ? module : module.default;\n },\n ...options\n };\n Comlink.expose(new DatabaseOpenHelper(resolvedOptions), parentPort);\n}\nclass DatabaseOpenHelper {\n options;\n constructor(options) {\n this.options = options;\n }\n async open(options) {\n let database;\n const implementation = options.implementation;\n switch (implementation.type) {\n case 'better-sqlite3':\n database = await openBetterSqliteDatabase(this.options, options);\n break;\n case 'node:sqlite':\n database = await openNodeDatabase(this.options, options);\n break;\n default:\n throw new Error(`Unknown database implementation: ${options.implementation}.`);\n }\n return Comlink.proxy(database);\n }\n}\n//# sourceMappingURL=SqliteWorker.js.map"],"names":["threadId","openDatabase","path","Comlink","parentPort","openBetterSqliteDatabase","openNodeDatabase"],"mappings":"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"}
|
package/download_core.js
CHANGED
|
@@ -5,18 +5,18 @@ import { Readable } from 'node:stream';
|
|
|
5
5
|
import { finished } from 'node:stream/promises';
|
|
6
6
|
|
|
7
7
|
// When changing this version, run node download_core.js update_hashes
|
|
8
|
-
const version = '0.4.
|
|
8
|
+
const version = '0.4.10';
|
|
9
9
|
const versionHashes = {
|
|
10
|
-
'powersync_x64.dll': '
|
|
11
|
-
'powersync_x86.dll': '
|
|
12
|
-
'powersync_aarch64.dll': '
|
|
13
|
-
'libpowersync_x86.so': '
|
|
14
|
-
'libpowersync_x64.so': '
|
|
15
|
-
'libpowersync_aarch64.so': '
|
|
16
|
-
'libpowersync_armv7.so': '
|
|
17
|
-
'libpowersync_riscv64gc.so': '
|
|
18
|
-
'libpowersync_x64.dylib': '
|
|
19
|
-
'libpowersync_aarch64.dylib': '
|
|
10
|
+
'powersync_x64.dll': '9cffcd5e2393172523405c35021ce5db70f1d257a7973ca4210c67dbfd00c203',
|
|
11
|
+
'powersync_x86.dll': 'e809ca6c877bc011ce193441d922a9c9f7c8d43675c990c671c22983263aad41',
|
|
12
|
+
'powersync_aarch64.dll': '756c4b591562b468c4f7c4a2a6a9a910b52389760294bac0e02f1c25636e68cc',
|
|
13
|
+
'libpowersync_x86.linux.so': 'e0a4bf3e1228386fbdffafe4d8bc7d00b2e5d1f6340ec8db563a205bd3299121',
|
|
14
|
+
'libpowersync_x64.linux.so': '81ab16086e504cafc248969c44b53731bea937ea721b2f8cda78bcdc835de1f2',
|
|
15
|
+
'libpowersync_aarch64.linux.so': 'a2e87871ce8fd9418c6a4e6d29ba5b6024062f604dd48dc878022fd2be6884a3',
|
|
16
|
+
'libpowersync_armv7.linux.so': '857c673912db666ec4248f2fd5a942b8eec3c8a1830db2ece0dd8de171943f88',
|
|
17
|
+
'libpowersync_riscv64gc.linux.so': '45bf10394010f410f6ddb16299bbf326af1286b9146972b0c8e0aaa545aa9ddf',
|
|
18
|
+
'libpowersync_x64.macos.dylib': '21dedb45427e6abcc2dd080db82b4bf57a90ddc7ef811c87927a02dcd52188ac',
|
|
19
|
+
'libpowersync_aarch64.macos.dylib': 'cf8c2f6c3bb6ed18e58b415423d51db2ffbaadcc077cf3522ed7402ca56313ce'
|
|
20
20
|
};
|
|
21
21
|
|
|
22
22
|
const assets = Object.keys(versionHashes);
|
package/lib/db/SqliteWorker.js
CHANGED
|
@@ -29,14 +29,14 @@ export function getPowerSyncExtensionFilename() {
|
|
|
29
29
|
}
|
|
30
30
|
else if (platform == 'linux') {
|
|
31
31
|
if (arch == 'x64') {
|
|
32
|
-
extensionFile = 'libpowersync_x64.so';
|
|
32
|
+
extensionFile = 'libpowersync_x64.linux.so';
|
|
33
33
|
}
|
|
34
34
|
else if (arch == 'arm64') {
|
|
35
35
|
// TODO detect armv7 as an option
|
|
36
|
-
extensionFile = 'libpowersync_aarch64.so';
|
|
36
|
+
extensionFile = 'libpowersync_aarch64.linux.so';
|
|
37
37
|
}
|
|
38
38
|
else if (arch == 'riscv64') {
|
|
39
|
-
extensionFile = 'libpowersync_riscv64gc.so';
|
|
39
|
+
extensionFile = 'libpowersync_riscv64gc.linux.so';
|
|
40
40
|
}
|
|
41
41
|
else {
|
|
42
42
|
throw new Error('Linux platform only supports x64, arm64 and riscv64 architectures.');
|
|
@@ -44,10 +44,10 @@ export function getPowerSyncExtensionFilename() {
|
|
|
44
44
|
}
|
|
45
45
|
else if (platform == 'darwin') {
|
|
46
46
|
if (arch == 'x64') {
|
|
47
|
-
extensionFile = 'libpowersync_x64.dylib';
|
|
47
|
+
extensionFile = 'libpowersync_x64.macos.dylib';
|
|
48
48
|
}
|
|
49
49
|
else if (arch == 'arm64') {
|
|
50
|
-
extensionFile = 'libpowersync_aarch64.dylib';
|
|
50
|
+
extensionFile = 'libpowersync_aarch64.macos.dylib';
|
|
51
51
|
}
|
|
52
52
|
else {
|
|
53
53
|
throw new Error('macOS platform only supports x64 and arm64 architectures.');
|
|
@@ -74,7 +74,8 @@ export function startPowerSyncWorker(options) {
|
|
|
74
74
|
},
|
|
75
75
|
async loadBetterSqlite3() {
|
|
76
76
|
const module = await dynamicImport('better-sqlite3');
|
|
77
|
-
|
|
77
|
+
// require() gives us the default directly, for an ESM import() we need to use the default export.
|
|
78
|
+
return isBundledToCommonJs ? module : module.default;
|
|
78
79
|
},
|
|
79
80
|
...options
|
|
80
81
|
};
|
|
@@ -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,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,OAAO,EAAE,YAAY,IAAI,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAgBzE;;GAEG;AACH,MAAM,UAAU,6BAA6B;IAC3C,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IACvB,IAAI,aAAqB,CAAC;IAE1B,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;YAClB,aAAa,GAAG,mBAAmB,CAAC;QACtC,CAAC;aAAM,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YAC1B,aAAa,GAAG,mBAAmB,CAAC;QACtC,CAAC;aAAM,IAAI,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,aAAa,GAAG,uBAAuB,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;SAAM,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;QAC/B,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;YAClB,aAAa,GAAG,
|
|
1
|
+
{"version":3,"file":"SqliteWorker.js","sourceRoot":"","sources":["../../src/db/SqliteWorker.ts"],"names":[],"mappings":"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"}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/lib/powersync_x64.dll
CHANGED
|
Binary file
|
package/lib/powersync_x86.dll
CHANGED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@powersync/node",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.1",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"registry": "https://registry.npmjs.org/",
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
8
|
-
"description": "PowerSync Node.js SDK
|
|
8
|
+
"description": "PowerSync Node.js SDK",
|
|
9
9
|
"main": "lib/index.js",
|
|
10
10
|
"files": [
|
|
11
11
|
"lib",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
},
|
|
49
49
|
"homepage": "https://docs.powersync.com/",
|
|
50
50
|
"peerDependencies": {
|
|
51
|
-
"@powersync/common": "^1.
|
|
51
|
+
"@powersync/common": "^1.44.0",
|
|
52
52
|
"better-sqlite3": "12.x"
|
|
53
53
|
},
|
|
54
54
|
"peerDependenciesMeta": {
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"comlink": "^4.4.2",
|
|
62
62
|
"undici": "^7.11.0",
|
|
63
63
|
"bson": "^6.10.4",
|
|
64
|
-
"@powersync/common": "1.
|
|
64
|
+
"@powersync/common": "1.44.0"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
67
|
"@types/node": "^24.2.0",
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"rollup": "4.14.3",
|
|
71
71
|
"typescript": "^5.5.3",
|
|
72
72
|
"vitest": "^3.2.4",
|
|
73
|
-
"@powersync/drizzle-driver": "0.7.
|
|
73
|
+
"@powersync/drizzle-driver": "0.7.1"
|
|
74
74
|
},
|
|
75
75
|
"keywords": [
|
|
76
76
|
"data sync",
|
package/src/db/SqliteWorker.ts
CHANGED
|
@@ -4,7 +4,7 @@ import * as path from 'node:path';
|
|
|
4
4
|
import url from 'node:url';
|
|
5
5
|
import { parentPort } from 'node:worker_threads';
|
|
6
6
|
import { dynamicImport, isBundledToCommonJs } from '../utils/modules.js';
|
|
7
|
-
import { AsyncDatabase,
|
|
7
|
+
import { AsyncDatabase, AsyncDatabaseOpenOptions, AsyncDatabaseOpener } from './AsyncDatabase.js';
|
|
8
8
|
import { openDatabase as openBetterSqliteDatabase } from './BetterSqliteWorker.js';
|
|
9
9
|
import { openDatabase as openNodeDatabase } from './NodeSqliteWorker.js';
|
|
10
10
|
|
|
@@ -42,20 +42,20 @@ export function getPowerSyncExtensionFilename() {
|
|
|
42
42
|
}
|
|
43
43
|
} else if (platform == 'linux') {
|
|
44
44
|
if (arch == 'x64') {
|
|
45
|
-
extensionFile = 'libpowersync_x64.so';
|
|
45
|
+
extensionFile = 'libpowersync_x64.linux.so';
|
|
46
46
|
} else if (arch == 'arm64') {
|
|
47
47
|
// TODO detect armv7 as an option
|
|
48
|
-
extensionFile = 'libpowersync_aarch64.so';
|
|
48
|
+
extensionFile = 'libpowersync_aarch64.linux.so';
|
|
49
49
|
} else if (arch == 'riscv64') {
|
|
50
|
-
extensionFile = 'libpowersync_riscv64gc.so';
|
|
50
|
+
extensionFile = 'libpowersync_riscv64gc.linux.so';
|
|
51
51
|
} else {
|
|
52
52
|
throw new Error('Linux platform only supports x64, arm64 and riscv64 architectures.');
|
|
53
53
|
}
|
|
54
54
|
} else if (platform == 'darwin') {
|
|
55
55
|
if (arch == 'x64') {
|
|
56
|
-
extensionFile = 'libpowersync_x64.dylib';
|
|
56
|
+
extensionFile = 'libpowersync_x64.macos.dylib';
|
|
57
57
|
} else if (arch == 'arm64') {
|
|
58
|
-
extensionFile = 'libpowersync_aarch64.dylib';
|
|
58
|
+
extensionFile = 'libpowersync_aarch64.macos.dylib';
|
|
59
59
|
} else {
|
|
60
60
|
throw new Error('macOS platform only supports x64 and arm64 architectures.');
|
|
61
61
|
}
|
|
@@ -84,7 +84,8 @@ export function startPowerSyncWorker(options?: Partial<PowerSyncWorkerOptions>)
|
|
|
84
84
|
},
|
|
85
85
|
async loadBetterSqlite3() {
|
|
86
86
|
const module = await dynamicImport('better-sqlite3');
|
|
87
|
-
|
|
87
|
+
// require() gives us the default directly, for an ESM import() we need to use the default export.
|
|
88
|
+
return isBundledToCommonJs ? module : module.default;
|
|
88
89
|
},
|
|
89
90
|
...options
|
|
90
91
|
};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/lib/libpowersync_x64.so
DELETED
|
Binary file
|
package/lib/libpowersync_x86.so
DELETED
|
Binary file
|