@powersync/node 0.18.8 → 0.19.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.
Files changed (57) hide show
  1. package/lib/attachments/NodeFileSystemAdapter.d.ts +1 -0
  2. package/lib/attachments/NodeFileSystemAdapter.d.ts.map +1 -0
  3. package/lib/db/AsyncDatabase.d.ts +1 -0
  4. package/lib/db/AsyncDatabase.d.ts.map +1 -0
  5. package/lib/db/BetterSqliteWorker.d.ts +1 -0
  6. package/lib/db/BetterSqliteWorker.d.ts.map +1 -0
  7. package/lib/db/DefaultWorker.d.ts +1 -0
  8. package/lib/db/DefaultWorker.d.ts.map +1 -0
  9. package/lib/db/NodeSqliteWorker.d.ts +1 -0
  10. package/lib/db/NodeSqliteWorker.d.ts.map +1 -0
  11. package/lib/db/NodeSqliteWorker.js +2 -2
  12. package/lib/db/NodeSqliteWorker.js.map +1 -1
  13. package/lib/db/PowerSyncDatabase.d.ts +1 -0
  14. package/lib/db/PowerSyncDatabase.d.ts.map +1 -0
  15. package/lib/db/RemoteConnection.d.ts +1 -0
  16. package/lib/db/RemoteConnection.d.ts.map +1 -0
  17. package/lib/db/SqliteWorker.d.ts +1 -0
  18. package/lib/db/SqliteWorker.d.ts.map +1 -0
  19. package/lib/db/SqliteWorker.js +3 -13
  20. package/lib/db/SqliteWorker.js.map +1 -1
  21. package/lib/db/WorkerConnectionPool.d.ts +1 -0
  22. package/lib/db/WorkerConnectionPool.d.ts.map +1 -0
  23. package/lib/db/WorkerConnectionPool.js +1 -9
  24. package/lib/db/WorkerConnectionPool.js.map +1 -1
  25. package/lib/db/options.d.ts +1 -0
  26. package/lib/db/options.d.ts.map +1 -0
  27. package/lib/index.d.ts +2 -0
  28. package/lib/index.d.ts.map +1 -0
  29. package/lib/index.js +1 -0
  30. package/lib/index.js.map +1 -1
  31. package/lib/sync/stream/NodeRemote.d.ts +1 -0
  32. package/lib/sync/stream/NodeRemote.d.ts.map +1 -0
  33. package/lib/sync/stream/NodeStreamingSyncImplementation.d.ts +1 -0
  34. package/lib/sync/stream/NodeStreamingSyncImplementation.d.ts.map +1 -0
  35. package/lib/worker.d.ts +1 -0
  36. package/lib/worker.d.ts.map +1 -0
  37. package/package.json +13 -25
  38. package/src/db/NodeSqliteWorker.ts +2 -2
  39. package/src/db/SqliteWorker.ts +3 -13
  40. package/src/db/WorkerConnectionPool.ts +1 -8
  41. package/src/index.ts +2 -1
  42. package/dist/DefaultWorker.cjs +0 -232
  43. package/dist/DefaultWorker.cjs.map +0 -1
  44. package/dist/bundle.cjs +0 -531
  45. package/dist/bundle.cjs.map +0 -1
  46. package/dist/bundle.d.cts +0 -127
  47. package/dist/worker.cjs +0 -233
  48. package/dist/worker.cjs.map +0 -1
  49. package/dist/worker.d.cts +0 -20
  50. package/lib/utils/modules.d.ts +0 -2
  51. package/lib/utils/modules.js +0 -6
  52. package/lib/utils/modules.js.map +0 -1
  53. package/lib/utils/modules_commonjs.d.ts +0 -2
  54. package/lib/utils/modules_commonjs.js +0 -7
  55. package/lib/utils/modules_commonjs.js.map +0 -1
  56. package/src/utils/modules.ts +0 -6
  57. package/src/utils/modules_commonjs.ts +0 -7
package/dist/bundle.d.cts DELETED
@@ -1,127 +0,0 @@
1
- import { SQLOpenOptions, LockContext, AdditionalConnectionOptions, PowerSyncConnectionOptions, PowerSyncDatabaseOptions, DBAdapter, SQLOpenFactory, AbstractRemoteOptions, AbstractPowerSyncDatabase, PowerSyncDatabaseOptionsWithSettings, BucketStorageAdapter, PowerSyncBackendConnector, RequiredAdditionalConnectionOptions, AbstractStreamingSyncImplementation, LocalStorageAdapter, EncodingType, AttachmentData } from '@powersync/common';
2
- export * from '@powersync/common';
3
- import { Dispatcher } from 'undici';
4
- import { Worker } from 'node:worker_threads';
5
-
6
- type NodeCustomConnectionOptions = {
7
- /**
8
- * Optional custom dispatcher for HTTP or WEB_SOCKET connections.
9
- *
10
- * This can be used to customize proxy usage (using undici ProxyAgent),
11
- * or other connection options.
12
- */
13
- dispatcher?: Dispatcher;
14
- };
15
-
16
- type WorkerOpener = (...args: ConstructorParameters<typeof Worker>) => InstanceType<typeof Worker>;
17
- /**
18
- * Use the [better-sqlite3](https://github.com/WiseLibs/better-sqlite3) package as a SQLite driver for PowerSync.
19
- */
20
- interface BetterSqlite3Options {
21
- type: 'better-sqlite3';
22
- }
23
- /**
24
- * Use the experimental `node:sqlite` interface as a SQLite driver for PowerSync.
25
- *
26
- * Note that this option is not currently tested and highly unstable.
27
- */
28
- interface NodeSqliteOptions {
29
- type: 'node:sqlite';
30
- }
31
- type NodeDatabaseImplementation = BetterSqlite3Options | NodeSqliteOptions;
32
- /**
33
- * The {@link SQLOpenOptions} available across all PowerSync SDKs for JavaScript extended with
34
- * Node.JS-specific options.
35
- */
36
- interface NodeSQLOpenOptions extends SQLOpenOptions {
37
- implementation?: NodeDatabaseImplementation;
38
- /**
39
- * The Node.JS SDK will use one worker to run writing queries and additional workers to run reads.
40
- * This option controls how many workers to use for reads.
41
- */
42
- readWorkerCount?: number;
43
- /**
44
- * A callback to allow customizing how the Node.JS SDK loads workers. This can be customized to
45
- * use workers at different paths.
46
- *
47
- * @param args The arguments that would otherwise be passed to the {@link Worker} constructor.
48
- * @returns the resolved worker.
49
- */
50
- openWorker?: WorkerOpener;
51
- /**
52
- * Initializes a created database connection.
53
- *
54
- * This can be used to e.g. set encryption keys, if an encrypted database should be used.
55
- */
56
- initializeConnection?: (db: LockContext, isWriter: boolean) => Promise<void>;
57
- }
58
-
59
- type NodePowerSyncDatabaseOptions = PowerSyncDatabaseOptions & {
60
- database: DBAdapter | SQLOpenFactory | NodeSQLOpenOptions;
61
- /**
62
- * Options to override how the SDK will connect to the sync service.
63
- *
64
- * This option is intended to be used for internal tests.
65
- */
66
- remoteOptions?: Partial<AbstractRemoteOptions>;
67
- };
68
- type NodeAdditionalConnectionOptions = AdditionalConnectionOptions & NodeCustomConnectionOptions;
69
- type NodePowerSyncConnectionOptions = PowerSyncConnectionOptions & NodeAdditionalConnectionOptions;
70
- /**
71
- * A PowerSync database which provides SQLite functionality
72
- * which is automatically synced.
73
- *
74
- * @example
75
- * ```typescript
76
- * export const db = new PowerSyncDatabase({
77
- * schema: AppSchema,
78
- * database: {
79
- * dbFilename: 'example.db'
80
- * }
81
- * });
82
- * ```
83
- */
84
- declare class PowerSyncDatabase extends AbstractPowerSyncDatabase {
85
- constructor(options: NodePowerSyncDatabaseOptions);
86
- _initialize(): Promise<void>;
87
- /**
88
- * Opens a DBAdapter using better-sqlite3 as the default SQLite open factory.
89
- */
90
- protected openDBAdapter(options: PowerSyncDatabaseOptionsWithSettings): DBAdapter;
91
- protected generateBucketStorageAdapter(): BucketStorageAdapter;
92
- connect(connector: PowerSyncBackendConnector, options?: PowerSyncConnectionOptions & NodeCustomConnectionOptions): Promise<void>;
93
- protected generateSyncStreamImplementation(connector: PowerSyncBackendConnector, options: RequiredAdditionalConnectionOptions & NodeAdditionalConnectionOptions): AbstractStreamingSyncImplementation;
94
- }
95
-
96
- /**
97
- * NodeFileSystemAdapter implements LocalStorageAdapter using Node.js filesystem.
98
- * Suitable for Node.js environments and Electron applications.
99
- */
100
- declare class NodeFileSystemAdapter implements LocalStorageAdapter {
101
- private storageDirectory;
102
- constructor(storageDirectory?: string);
103
- initialize(): Promise<void>;
104
- clear(): Promise<void>;
105
- getLocalUri(filename: string): string;
106
- uploadFile(filePath: string, data: ArrayBuffer, options?: {
107
- encoding: EncodingType;
108
- }): Promise<void>;
109
- downloadFile(filePath: string): Promise<Blob>;
110
- saveFile(filePath: string, data: AttachmentData, options?: {
111
- encoding?: EncodingType;
112
- mediaType?: string;
113
- }): Promise<number>;
114
- readFile(filePath: string, options?: {
115
- encoding?: EncodingType;
116
- mediaType?: string;
117
- }): Promise<ArrayBuffer>;
118
- deleteFile(path: string, options?: {
119
- filename?: string;
120
- }): Promise<void>;
121
- fileExists(filePath: string): Promise<boolean>;
122
- makeDir(path: string): Promise<void>;
123
- rmDir(path: string): Promise<void>;
124
- }
125
-
126
- export { NodeFileSystemAdapter, PowerSyncDatabase };
127
- export type { NodeAdditionalConnectionOptions, NodePowerSyncConnectionOptions, NodePowerSyncDatabaseOptions };
package/dist/worker.cjs DELETED
@@ -1,233 +0,0 @@
1
- 'use strict';
2
-
3
- var Comlink = require('comlink');
4
- var OS = require('node:os');
5
- var path = require('node:path');
6
- require('node:url');
7
- var node_worker_threads = require('node:worker_threads');
8
-
9
- function _interopNamespaceDefault(e) {
10
- var n = Object.create(null);
11
- if (e) {
12
- Object.keys(e).forEach(function (k) {
13
- if (k !== 'default') {
14
- var d = Object.getOwnPropertyDescriptor(e, k);
15
- Object.defineProperty(n, k, d.get ? d : {
16
- enumerable: true,
17
- get: function () { return e[k]; }
18
- });
19
- }
20
- });
21
- }
22
- n.default = e;
23
- return Object.freeze(n);
24
- }
25
-
26
- var Comlink__namespace = /*#__PURE__*/_interopNamespaceDefault(Comlink);
27
- var path__namespace = /*#__PURE__*/_interopNamespaceDefault(path);
28
-
29
- // NOTE! Do not import this file directly! We have a rollup plugin that rewrites imports to modules.js to this file when
30
- // bundling to CommonJS.
31
- async function dynamicImport(path) {
32
- return require(path);
33
- }
34
-
35
- class BlockingAsyncDatabase {
36
- db;
37
- constructor(db) {
38
- this.db = db;
39
- db.function('node_thread_id', () => node_worker_threads.threadId);
40
- }
41
- async close() {
42
- this.db.close();
43
- }
44
- async execute(query, params) {
45
- const stmt = this.db.prepare(query);
46
- if (stmt.reader) {
47
- const rows = stmt.all(params);
48
- return {
49
- rowsAffected: 0,
50
- rows: {
51
- _array: rows,
52
- length: rows.length
53
- }
54
- };
55
- }
56
- else {
57
- const info = stmt.run(params);
58
- return {
59
- rowsAffected: info.changes,
60
- insertId: Number(info.lastInsertRowid)
61
- };
62
- }
63
- }
64
- async executeRaw(query, params) {
65
- const stmt = this.db.prepare(query);
66
- if (stmt.reader) {
67
- return stmt.raw().all(params);
68
- }
69
- else {
70
- stmt.raw().run(params);
71
- return [];
72
- }
73
- }
74
- async executeBatch(query, params) {
75
- params = params ?? [];
76
- let rowsAffected = 0;
77
- const stmt = this.db.prepare(query);
78
- for (const paramSet of params) {
79
- const info = stmt.run(paramSet);
80
- rowsAffected += info.changes;
81
- }
82
- return { rowsAffected };
83
- }
84
- }
85
- async function openDatabase$1(worker, options) {
86
- const BetterSQLite3Database = await worker.loadBetterSqlite3();
87
- const baseDB = new BetterSQLite3Database(options.path, { readonly: !options.isWriter });
88
- baseDB.loadExtension(worker.extensionPath(), 'sqlite3_powersync_init');
89
- const asyncDb = new BlockingAsyncDatabase(baseDB);
90
- return asyncDb;
91
- }
92
-
93
- class BlockingNodeDatabase {
94
- db;
95
- constructor(db, write) {
96
- this.db = db;
97
- db.function('node_thread_id', () => node_worker_threads.threadId);
98
- }
99
- async close() {
100
- this.db.close();
101
- }
102
- async execute(query, params) {
103
- const stmt = this.db.prepare(query);
104
- const rows = stmt.all(...params);
105
- return {
106
- rowsAffected: 0,
107
- rows: {
108
- _array: rows,
109
- length: rows.length
110
- }
111
- };
112
- }
113
- async executeRaw(query, params) {
114
- const stmt = this.db.prepare(query);
115
- stmt.setReturnArrays(true); // Missing in @types/node, https://nodejs.org/api/sqlite.html#statementsetreturnarraysenabled
116
- return stmt.all(...params);
117
- }
118
- async executeBatch(query, params) {
119
- params = params ?? [];
120
- let rowsAffected = 0;
121
- const stmt = this.db.prepare(query);
122
- for (const paramSet of params) {
123
- const info = stmt.run(...paramSet);
124
- rowsAffected += info.changes;
125
- }
126
- return { rowsAffected };
127
- }
128
- }
129
- async function openDatabase(worker, options) {
130
- // NOTE: We want to import node:sqlite dynamically, to avoid bundlers unconditionally requiring node:sqlite in the
131
- // end, since that would make us incompatible with older Node.JS versions.
132
- const { DatabaseSync } = await dynamicImport('node:sqlite');
133
- const baseDB = new DatabaseSync(options.path, { allowExtension: true, readOnly: !options.isWriter });
134
- baseDB.loadExtension(worker.extensionPath(), 'sqlite3_powersync_init');
135
- return new BlockingNodeDatabase(baseDB, options.isWriter);
136
- }
137
-
138
- /**
139
- * @returns The relevant PowerSync extension binary filename for the current platform and architecture
140
- */
141
- function getPowerSyncExtensionFilename() {
142
- const platform = OS.platform();
143
- const arch = OS.arch();
144
- let extensionFile;
145
- if (platform == 'win32') {
146
- if (arch == 'x64') {
147
- extensionFile = 'powersync_x64.dll';
148
- }
149
- else if (arch == 'ia32') {
150
- extensionFile = 'powersync_x86.dll';
151
- }
152
- else if (arch == 'arm64') {
153
- extensionFile = 'powersync_aarch64.dll';
154
- }
155
- else {
156
- throw new Error('Windows platform only supports arm64, ia32 and x64 architecture.');
157
- }
158
- }
159
- else if (platform == 'linux') {
160
- if (arch == 'x64') {
161
- extensionFile = 'libpowersync_x64.linux.so';
162
- }
163
- else if (arch == 'arm64') {
164
- // TODO detect armv7 as an option
165
- extensionFile = 'libpowersync_aarch64.linux.so';
166
- }
167
- else if (arch == 'riscv64') {
168
- extensionFile = 'libpowersync_riscv64gc.linux.so';
169
- }
170
- else {
171
- throw new Error('Linux platform only supports x64, arm64 and riscv64 architectures.');
172
- }
173
- }
174
- else if (platform == 'darwin') {
175
- if (arch == 'x64') {
176
- extensionFile = 'libpowersync_x64.macos.dylib';
177
- }
178
- else if (arch == 'arm64') {
179
- extensionFile = 'libpowersync_aarch64.macos.dylib';
180
- }
181
- else {
182
- throw new Error('macOS platform only supports x64 and arm64 architectures.');
183
- }
184
- }
185
- else {
186
- throw new Error(`Unknown platform: ${platform}, PowerSync for Node.js currently supports Windows, Linux and macOS.`);
187
- }
188
- return extensionFile;
189
- }
190
- function startPowerSyncWorker(options) {
191
- const resolvedOptions = {
192
- extensionPath() {
193
- const extensionFilename = getPowerSyncExtensionFilename();
194
- let resolved;
195
- {
196
- resolved = path__namespace.resolve(__dirname, '../lib/', extensionFilename);
197
- }
198
- return resolved;
199
- },
200
- async loadBetterSqlite3() {
201
- const module = await dynamicImport('better-sqlite3');
202
- // require() gives us the default directly, for an ESM import() we need to use the default export.
203
- return module ;
204
- },
205
- ...options
206
- };
207
- Comlink__namespace.expose(new DatabaseOpenHelper(resolvedOptions), node_worker_threads.parentPort);
208
- }
209
- class DatabaseOpenHelper {
210
- options;
211
- constructor(options) {
212
- this.options = options;
213
- }
214
- async open(options) {
215
- let database;
216
- const implementation = options.implementation;
217
- switch (implementation.type) {
218
- case 'better-sqlite3':
219
- database = await openDatabase$1(this.options, options);
220
- break;
221
- case 'node:sqlite':
222
- database = await openDatabase(this.options, options);
223
- break;
224
- default:
225
- throw new Error(`Unknown database implementation: ${options.implementation}.`);
226
- }
227
- return Comlink__namespace.proxy(database);
228
- }
229
- }
230
-
231
- exports.getPowerSyncExtensionFilename = getPowerSyncExtensionFilename;
232
- exports.startPowerSyncWorker = startPowerSyncWorker;
233
- //# sourceMappingURL=worker.cjs.map
@@ -1 +0,0 @@
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, { readonly: !options.isWriter });\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, readOnly: !options.isWriter });\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/dist/worker.d.cts DELETED
@@ -1,20 +0,0 @@
1
- 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
- declare function getPowerSyncExtensionFilename(): string;
17
- declare function startPowerSyncWorker(options?: Partial<PowerSyncWorkerOptions>): void;
18
-
19
- export { getPowerSyncExtensionFilename, startPowerSyncWorker };
20
- export type { PowerSyncWorkerOptions };
@@ -1,2 +0,0 @@
1
- export declare const isBundledToCommonJs: boolean;
2
- export declare function dynamicImport(path: string): Promise<any>;
@@ -1,6 +0,0 @@
1
- // Note: When updating this file, always update module_commonjs.ts as well.
2
- export const isBundledToCommonJs = false;
3
- export async function dynamicImport(path) {
4
- return await import(path);
5
- }
6
- //# sourceMappingURL=modules.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"modules.js","sourceRoot":"","sources":["../../src/utils/modules.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,MAAM,CAAC,MAAM,mBAAmB,GAAY,KAAK,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAY;IAC9C,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare const isBundledToCommonJs: boolean;
2
- export declare function dynamicImport(path: string): Promise<any>;
@@ -1,7 +0,0 @@
1
- // NOTE! Do not import this file directly! We have a rollup plugin that rewrites imports to modules.js to this file when
2
- // bundling to CommonJS.
3
- export const isBundledToCommonJs = true;
4
- export async function dynamicImport(path) {
5
- return require(path);
6
- }
7
- //# sourceMappingURL=modules_commonjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"modules_commonjs.js","sourceRoot":"","sources":["../../src/utils/modules_commonjs.ts"],"names":[],"mappings":"AAAA,wHAAwH;AACxH,wBAAwB;AACxB,MAAM,CAAC,MAAM,mBAAmB,GAAY,IAAI,CAAC;AAEjD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAY;IAC9C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC"}
@@ -1,6 +0,0 @@
1
- // Note: When updating this file, always update module_commonjs.ts as well.
2
- export const isBundledToCommonJs: boolean = false;
3
-
4
- export async function dynamicImport(path: string) {
5
- return await import(path);
6
- }
@@ -1,7 +0,0 @@
1
- // NOTE! Do not import this file directly! We have a rollup plugin that rewrites imports to modules.js to this file when
2
- // bundling to CommonJS.
3
- export const isBundledToCommonJs: boolean = true;
4
-
5
- export async function dynamicImport(path: string) {
6
- return require(path);
7
- }