@powersync/web 0.0.0-dev-20260414110516 → 0.0.0-dev-20260504100448
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/dist/2075a31bb151adbb9767.wasm +0 -0
- package/dist/3322bc84de986b63c2cd.wasm +0 -0
- package/dist/8e97452e297be23b5e50.wasm +0 -0
- package/dist/fbc178b70d530e8ce02b.wasm +0 -0
- package/dist/index.umd.js +4289 -4786
- package/dist/index.umd.js.map +1 -1
- package/dist/worker/SharedSyncImplementation.umd.js +37 -798
- package/dist/worker/SharedSyncImplementation.umd.js.map +1 -1
- package/dist/worker/WASQLiteDB.umd.js +99 -737
- package/dist/worker/WASQLiteDB.umd.js.map +1 -1
- package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_dist_mc-wa-s-9af0a7.umd.js +31 -0
- package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_dist_mc-wa-s-9af0a7.umd.js.map +1 -0
- package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_dist_mc-wa-s-bbf5a9.umd.js +31 -0
- package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_dist_mc-wa-s-bbf5a9.umd.js.map +1 -0
- package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_dist_wa-sqli-c26e0f.umd.js +31 -0
- package/dist/worker/{node_modules_pnpm_journeyapps_wa-sqlite_1_5_0_node_modules_journeyapps_wa-sqlite_dist_wa-sqli-cc5fcc.umd.js.map → node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_dist_wa-sqli-c26e0f.umd.js.map} +1 -1
- package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_dist_wa-sqlite_mjs.umd.js +31 -0
- package/dist/worker/{node_modules_pnpm_journeyapps_wa-sqlite_1_5_0_node_modules_journeyapps_wa-sqlite_dist_wa-sqlite_mjs.umd.js.map → node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_dist_wa-sqlite_mjs.umd.js.map} +1 -1
- package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-2fb422.umd.js +3562 -0
- package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-2fb422.umd.js.map +1 -0
- package/dist/worker/{node_modules_pnpm_journeyapps_wa-sqlite_1_5_0_node_modules_journeyapps_wa-sqlite_src_examples-0df390.umd.js → node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-96fb23.umd.js} +16 -16
- package/dist/worker/{node_modules_pnpm_journeyapps_wa-sqlite_1_5_0_node_modules_journeyapps_wa-sqlite_src_examples-0df390.umd.js.map → node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-96fb23.umd.js.map} +1 -1
- package/dist/worker/{node_modules_pnpm_journeyapps_wa-sqlite_1_5_0_node_modules_journeyapps_wa-sqlite_src_examples-151024.umd.js → node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-c89911.umd.js} +12 -12
- package/dist/worker/{node_modules_pnpm_journeyapps_wa-sqlite_1_5_0_node_modules_journeyapps_wa-sqlite_src_examples-151024.umd.js.map → node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-c89911.umd.js.map} +1 -1
- package/dist/worker/{node_modules_pnpm_journeyapps_wa-sqlite_1_5_0_node_modules_journeyapps_wa-sqlite_src_examples-c01ef0.umd.js → node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-ec4eb1.umd.js} +14 -14
- package/dist/worker/{node_modules_pnpm_journeyapps_wa-sqlite_1_5_0_node_modules_journeyapps_wa-sqlite_src_examples-c01ef0.umd.js.map → node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-ec4eb1.umd.js.map} +1 -1
- package/lib/package.json +4 -7
- package/lib/src/db/PowerSyncDatabase.d.ts +1 -1
- package/lib/src/db/PowerSyncDatabase.js +0 -8
- package/lib/src/db/adapters/AsyncWebAdapter.d.ts +13 -3
- package/lib/src/db/adapters/AsyncWebAdapter.js +115 -21
- package/lib/src/db/adapters/wa-sqlite/DatabaseServer.js +1 -2
- package/lib/src/db/adapters/wa-sqlite/RawSqliteConnection.js +1 -1
- package/lib/src/db/adapters/wa-sqlite/WASQLiteOpenFactory.d.ts +16 -2
- package/lib/src/db/adapters/wa-sqlite/WASQLiteOpenFactory.js +60 -38
- package/lib/src/db/adapters/wa-sqlite/vfs.d.ts +7 -18
- package/lib/src/db/adapters/wa-sqlite/vfs.js +34 -49
- package/lib/src/db/sync/SSRWebStreamingSyncImplementation.d.ts +4 -0
- package/lib/src/db/sync/SSRWebStreamingSyncImplementation.js +4 -0
- package/lib/src/db/sync/SharedWebStreamingSyncImplementation.d.ts +0 -1
- package/lib/src/db/sync/SharedWebStreamingSyncImplementation.js +0 -3
- package/lib/src/db/sync/WebRemote.d.ts +1 -3
- package/lib/src/db/sync/WebRemote.js +0 -12
- package/lib/src/worker/db/MultiDatabaseServer.js +4 -1
- package/lib/src/worker/db/open-worker-database.js +2 -2
- package/lib/src/worker/sync/SharedSyncImplementation.d.ts +0 -2
- package/lib/src/worker/sync/SharedSyncImplementation.js +4 -16
- package/lib/src/worker/sync/WorkerClient.d.ts +0 -1
- package/lib/src/worker/sync/WorkerClient.js +0 -3
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -8
- package/src/db/PowerSyncDatabase.ts +1 -9
- package/src/db/adapters/AsyncWebAdapter.ts +138 -22
- package/src/db/adapters/wa-sqlite/DatabaseServer.ts +4 -2
- package/src/db/adapters/wa-sqlite/RawSqliteConnection.ts +4 -1
- package/src/db/adapters/wa-sqlite/WASQLiteOpenFactory.ts +89 -44
- package/src/db/adapters/wa-sqlite/vfs.ts +33 -49
- package/src/db/sync/SSRWebStreamingSyncImplementation.ts +5 -0
- package/src/db/sync/SharedWebStreamingSyncImplementation.ts +0 -4
- package/src/db/sync/WebRemote.ts +0 -16
- package/src/worker/db/MultiDatabaseServer.ts +4 -1
- package/src/worker/db/open-worker-database.ts +2 -2
- package/src/worker/sync/SharedSyncImplementation.ts +4 -18
- package/src/worker/sync/WorkerClient.ts +0 -4
- package/dist/26d61ca9f5694d064635.wasm +0 -0
- package/dist/b4c6283dc473b6b3fd24.wasm +0 -0
- package/dist/c78985091a0b22aaef03.wasm +0 -0
- package/dist/ca59e199e1138b553fad.wasm +0 -0
- package/dist/worker/node_modules_pnpm_bson_6_10_4_node_modules_bson_lib_bson_mjs.umd.js +0 -4646
- package/dist/worker/node_modules_pnpm_bson_6_10_4_node_modules_bson_lib_bson_mjs.umd.js.map +0 -1
- package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_5_0_node_modules_journeyapps_wa-sqlite_dist_mc-wa-s-b9c070.umd.js +0 -31
- package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_5_0_node_modules_journeyapps_wa-sqlite_dist_mc-wa-s-b9c070.umd.js.map +0 -1
- package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_5_0_node_modules_journeyapps_wa-sqlite_dist_mc-wa-s-c99c07.umd.js +0 -31
- package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_5_0_node_modules_journeyapps_wa-sqlite_dist_mc-wa-s-c99c07.umd.js.map +0 -1
- package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_5_0_node_modules_journeyapps_wa-sqlite_dist_wa-sqli-cc5fcc.umd.js +0 -31
- package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_5_0_node_modules_journeyapps_wa-sqlite_dist_wa-sqlite_mjs.umd.js +0 -31
|
@@ -49,7 +49,6 @@ export declare class SharedWebStreamingSyncImplementation extends WebStreamingSy
|
|
|
49
49
|
connect(options?: PowerSyncConnectionOptions): Promise<void>;
|
|
50
50
|
disconnect(): Promise<void>;
|
|
51
51
|
getWriteCheckpoint(): Promise<string>;
|
|
52
|
-
hasCompletedSync(): Promise<boolean>;
|
|
53
52
|
dispose(): Promise<void>;
|
|
54
53
|
waitForReady(): Promise<void>;
|
|
55
54
|
updateSubscriptions(subscriptions: SubscribedStream[]): void;
|
|
@@ -187,9 +187,6 @@ export class SharedWebStreamingSyncImplementation extends WebStreamingSyncImplem
|
|
|
187
187
|
await this.waitForReady();
|
|
188
188
|
return this.syncManager.getWriteCheckpoint();
|
|
189
189
|
}
|
|
190
|
-
async hasCompletedSync() {
|
|
191
|
-
return this.syncManager.hasCompletedSync();
|
|
192
|
-
}
|
|
193
190
|
async dispose() {
|
|
194
191
|
await this.waitForReady();
|
|
195
192
|
await new Promise((resolve) => {
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { AbstractRemote, AbstractRemoteOptions,
|
|
1
|
+
import { AbstractRemote, AbstractRemoteOptions, ILogger, RemoteConnector } from '@powersync/common';
|
|
2
2
|
export declare class WebRemote extends AbstractRemote {
|
|
3
3
|
protected connector: RemoteConnector;
|
|
4
4
|
protected logger: ILogger;
|
|
5
|
-
private _bson;
|
|
6
5
|
constructor(connector: RemoteConnector, logger?: ILogger, options?: Partial<AbstractRemoteOptions>);
|
|
7
6
|
getUserAgent(): string;
|
|
8
|
-
getBSON(): Promise<BSONImplementation>;
|
|
9
7
|
}
|
|
@@ -11,7 +11,6 @@ class WebFetchProvider extends FetchImplementationProvider {
|
|
|
11
11
|
export class WebRemote extends AbstractRemote {
|
|
12
12
|
connector;
|
|
13
13
|
logger;
|
|
14
|
-
_bson;
|
|
15
14
|
constructor(connector, logger = DEFAULT_REMOTE_LOGGER, options) {
|
|
16
15
|
super(connector, logger, {
|
|
17
16
|
...(options ?? {}),
|
|
@@ -30,15 +29,4 @@ export class WebRemote extends AbstractRemote {
|
|
|
30
29
|
}
|
|
31
30
|
return ua.join(' ');
|
|
32
31
|
}
|
|
33
|
-
async getBSON() {
|
|
34
|
-
if (this._bson) {
|
|
35
|
-
return this._bson;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Dynamic import to be used only when needed.
|
|
39
|
-
*/
|
|
40
|
-
const { BSON } = await import('bson');
|
|
41
|
-
this._bson = BSON;
|
|
42
|
-
return this._bson;
|
|
43
|
-
}
|
|
44
32
|
}
|
|
@@ -49,7 +49,10 @@ export class MultiDatabaseServer {
|
|
|
49
49
|
const { dbFilename } = options;
|
|
50
50
|
let server = this.activeDatabases.get(dbFilename);
|
|
51
51
|
if (server == null) {
|
|
52
|
-
|
|
52
|
+
// We don't need navigator locks for shared workers because all queries run in this shared worker exclusively.
|
|
53
|
+
// For read-only connections, we use a VFS that supports concurrent reads (so a single lock on the connection is
|
|
54
|
+
// fine).
|
|
55
|
+
const needsNavigatorLocks = !(isSharedWorker || options.isReadOnly);
|
|
53
56
|
const connection = new RawSqliteConnection(options);
|
|
54
57
|
const withSafeConcurrency = new ConcurrentSqliteConnection(connection, needsNavigatorLocks);
|
|
55
58
|
// Initializing the RawSqliteConnection will run some pragmas that might write to the database file, so we want
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as Comlink from 'comlink';
|
|
2
|
-
import {
|
|
2
|
+
import { vfsRequiresDedicatedWorkers } from '../../db/adapters/wa-sqlite/vfs.js';
|
|
3
3
|
/**
|
|
4
4
|
* Opens a shared or dedicated worker which exposes opening of database connections
|
|
5
5
|
*/
|
|
6
6
|
export function openWorkerDatabasePort(workerIdentifier, multipleTabs = true, worker = '', vfs) {
|
|
7
|
-
const needsDedicated = vfs
|
|
7
|
+
const needsDedicated = vfs && vfsRequiresDedicatedWorkers(vfs);
|
|
8
8
|
if (worker) {
|
|
9
9
|
return !needsDedicated && multipleTabs
|
|
10
10
|
? new SharedWorker(`${worker}`, {
|
|
@@ -73,7 +73,6 @@ export declare class SharedSyncImplementation extends BaseObserver<SharedSyncImp
|
|
|
73
73
|
broadCastLogger: ILogger;
|
|
74
74
|
protected readonly database: DBAdapter;
|
|
75
75
|
constructor();
|
|
76
|
-
get lastSyncedAt(): Date | undefined;
|
|
77
76
|
get isConnected(): boolean;
|
|
78
77
|
/**
|
|
79
78
|
* Gets the last client port which we know is safe from unexpected closes.
|
|
@@ -119,7 +118,6 @@ export declare class SharedSyncImplementation extends BaseObserver<SharedSyncImp
|
|
|
119
118
|
*/
|
|
120
119
|
removePort(port: WrappedSyncPort): Promise<() => void>;
|
|
121
120
|
triggerCrudUpload(): void;
|
|
122
|
-
hasCompletedSync(): Promise<boolean>;
|
|
123
121
|
getWriteCheckpoint(): Promise<string>;
|
|
124
122
|
protected withSyncImplementation<T>(callback: (sync: StreamingSyncImplementation) => Promise<T>): Promise<T>;
|
|
125
123
|
protected generateStreamingImplementation(): WebStreamingSyncImplementation;
|
|
@@ -77,9 +77,6 @@ export class SharedSyncImplementation extends BaseObserver {
|
|
|
77
77
|
logger: this.logger
|
|
78
78
|
});
|
|
79
79
|
}
|
|
80
|
-
get lastSyncedAt() {
|
|
81
|
-
return this.connectionManager.syncStreamImplementation?.lastSyncedAt;
|
|
82
|
-
}
|
|
83
80
|
get isConnected() {
|
|
84
81
|
return this.connectionManager.syncStreamImplementation?.isConnected ?? false;
|
|
85
82
|
}
|
|
@@ -245,11 +242,6 @@ export class SharedSyncImplementation extends BaseObserver {
|
|
|
245
242
|
sync.triggerCrudUpload();
|
|
246
243
|
});
|
|
247
244
|
}
|
|
248
|
-
async hasCompletedSync() {
|
|
249
|
-
return this.withSyncImplementation(async (sync) => {
|
|
250
|
-
return sync.hasCompletedSync();
|
|
251
|
-
});
|
|
252
|
-
}
|
|
253
245
|
async getWriteCheckpoint() {
|
|
254
246
|
return this.withSyncImplementation(async (sync) => {
|
|
255
247
|
return sync.getWriteCheckpoint();
|
|
@@ -467,14 +459,10 @@ export class SharedSyncImplementation extends BaseObserver {
|
|
|
467
459
|
// We can poke the crud in case we missed any updates.
|
|
468
460
|
const impl = sharedSync.connectionManager.syncStreamImplementation;
|
|
469
461
|
impl?.triggerCrudUpload();
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
* StreamingSyncImplementation to reconnect. It would be nicer if we could trigger
|
|
475
|
-
* this reconnect earlier.
|
|
476
|
-
* This reconnect is not required for IndexedDB.
|
|
477
|
-
*/
|
|
462
|
+
// The Rust client implementation stores sync state on the connection level. Reopening the database causes a
|
|
463
|
+
// disruption of the connection state and forces us to reconnect. We want to do that as soon as possible to
|
|
464
|
+
// minimize downtime.
|
|
465
|
+
impl?.markConnectionMayHaveChanged();
|
|
478
466
|
}
|
|
479
467
|
}
|
|
480
468
|
async readLock(fn, options) {
|
|
@@ -24,7 +24,6 @@ export declare class WorkerClient {
|
|
|
24
24
|
triggerCrudUpload(): void;
|
|
25
25
|
setParams(params: SharedSyncInitOptions, subscriptions: SubscribedStream[]): Promise<void>;
|
|
26
26
|
getWriteCheckpoint(): Promise<string>;
|
|
27
|
-
hasCompletedSync(): Promise<boolean>;
|
|
28
27
|
connect(options?: PowerSyncConnectionOptions): Promise<void>;
|
|
29
28
|
updateSubscriptions(subscriptions: SubscribedStream[]): void;
|
|
30
29
|
disconnect(): Promise<void>;
|