@powersync/web 0.0.0-dev-20260504100448 → 0.0.0-dev-20260630141119
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/bin/powersync.cjs +1 -1
- package/dist/index.react_native_web.js +1879 -0
- package/dist/index.react_native_web.js.map +1 -0
- package/dist/worker/AccessHandlePoolVFS-BPUHfZME.js +2 -0
- package/dist/worker/AccessHandlePoolVFS-BPUHfZME.js.map +1 -0
- package/dist/worker/FacadeVFS-d1ZDvud7.js +2 -0
- package/dist/worker/FacadeVFS-d1ZDvud7.js.map +1 -0
- package/dist/worker/IDBBatchAtomicVFS-DbkDb777.js +2 -0
- package/dist/worker/IDBBatchAtomicVFS-DbkDb777.js.map +1 -0
- package/dist/worker/OPFSCoopSyncVFS-DRKedN0p.js +2 -0
- package/dist/worker/OPFSCoopSyncVFS-DRKedN0p.js.map +1 -0
- package/dist/worker/OPFSWriteAheadVFS-BzodSqNq.js +2 -0
- package/dist/worker/OPFSWriteAheadVFS-BzodSqNq.js.map +1 -0
- package/dist/worker/mc-wa-sqlite-DiBqIVE5.js +2 -0
- package/dist/worker/mc-wa-sqlite-DiBqIVE5.js.map +1 -0
- package/dist/worker/mc-wa-sqlite-async-DUEhO9ef.js +2 -0
- package/dist/worker/mc-wa-sqlite-async-DUEhO9ef.js.map +1 -0
- package/dist/worker/wa-sqlite-BlSx7-_P.js +2 -0
- package/dist/worker/wa-sqlite-BlSx7-_P.js.map +1 -0
- package/dist/worker/wa-sqlite-async-BdR24Ucf.js +2 -0
- package/dist/worker/wa-sqlite-async-BdR24Ucf.js.map +1 -0
- package/dist/worker/websockets-Q8W_lerF.js +9 -0
- package/dist/worker/websockets-Q8W_lerF.js.map +1 -0
- package/dist/worker/worker.js +7 -0
- package/dist/worker/worker.js.map +1 -0
- package/lib/{src/attachments → attachments}/IndexDBFileSystemAdapter.js +1 -0
- package/lib/attachments/IndexDBFileSystemAdapter.js.map +1 -0
- package/lib/{src/db → db}/NavigatorTriggerClaimManager.d.ts +1 -1
- package/lib/{src/db → db}/NavigatorTriggerClaimManager.js +1 -0
- package/lib/db/NavigatorTriggerClaimManager.js.map +1 -0
- package/lib/db/PowerSyncDatabase.d.ts +67 -0
- package/lib/{src/db → db}/PowerSyncDatabase.js +48 -61
- package/lib/db/PowerSyncDatabase.js.map +1 -0
- package/lib/db/adapters/AsyncWebAdapter.d.ts +32 -0
- package/lib/{src/db → db}/adapters/AsyncWebAdapter.js +15 -14
- package/lib/db/adapters/AsyncWebAdapter.js.map +1 -0
- package/lib/db/adapters/SSRDBAdapter.d.ts +17 -0
- package/lib/db/adapters/SSRDBAdapter.js +37 -0
- package/lib/db/adapters/SSRDBAdapter.js.map +1 -0
- package/lib/{src/db → db}/adapters/WebDBAdapter.d.ts +1 -1
- package/lib/db/adapters/WebDBAdapter.js +2 -0
- package/lib/db/adapters/WebDBAdapter.js.map +1 -0
- package/lib/db/adapters/options.d.ts +87 -0
- package/lib/db/adapters/options.js +6 -0
- package/lib/db/adapters/options.js.map +1 -0
- package/lib/db/adapters/resolveAndValidateOptions.d.ts +5 -0
- package/lib/db/adapters/resolveAndValidateOptions.js +33 -0
- package/lib/db/adapters/resolveAndValidateOptions.js.map +1 -0
- package/lib/{src/db → db}/adapters/wa-sqlite/ConcurrentConnection.d.ts +3 -4
- package/lib/{src/db → db}/adapters/wa-sqlite/ConcurrentConnection.js +3 -2
- package/lib/db/adapters/wa-sqlite/ConcurrentConnection.js.map +1 -0
- package/lib/{src/db → db}/adapters/wa-sqlite/DatabaseClient.d.ts +4 -4
- package/lib/{src/db → db}/adapters/wa-sqlite/DatabaseClient.js +12 -37
- package/lib/db/adapters/wa-sqlite/DatabaseClient.js.map +1 -0
- package/lib/{src/db → db}/adapters/wa-sqlite/DatabaseServer.d.ts +5 -5
- package/lib/{src/db → db}/adapters/wa-sqlite/DatabaseServer.js +12 -7
- package/lib/db/adapters/wa-sqlite/DatabaseServer.js.map +1 -0
- package/lib/{src/db → db}/adapters/wa-sqlite/RawSqliteConnection.d.ts +22 -12
- package/lib/{src/db → db}/adapters/wa-sqlite/RawSqliteConnection.js +12 -10
- package/lib/db/adapters/wa-sqlite/RawSqliteConnection.js.map +1 -0
- package/lib/db/adapters/wa-sqlite/WASQLiteOpenFactory.d.ts +18 -0
- package/lib/db/adapters/wa-sqlite/WASQLiteOpenFactory.js +131 -0
- package/lib/db/adapters/wa-sqlite/WASQLiteOpenFactory.js.map +1 -0
- package/lib/{src/db → db}/adapters/wa-sqlite/vfs.js +1 -0
- package/lib/db/adapters/wa-sqlite/vfs.js.map +1 -0
- package/lib/{src/db → db}/sync/SSRWebStreamingSyncImplementation.d.ts +4 -8
- package/lib/{src/db → db}/sync/SSRWebStreamingSyncImplementation.js +5 -11
- package/lib/db/sync/SSRWebStreamingSyncImplementation.js.map +1 -0
- package/lib/{src/db → db}/sync/SharedWebStreamingSyncImplementation.d.ts +13 -14
- package/lib/{src/db → db}/sync/SharedWebStreamingSyncImplementation.js +32 -66
- package/lib/db/sync/SharedWebStreamingSyncImplementation.js.map +1 -0
- package/lib/db/sync/WebRemote.d.ts +10 -0
- package/lib/db/sync/WebRemote.js +33 -0
- package/lib/db/sync/WebRemote.js.map +1 -0
- package/lib/{src/db → db}/sync/WebStreamingSyncImplementation.d.ts +2 -4
- package/lib/{src/db → db}/sync/WebStreamingSyncImplementation.js +4 -2
- package/lib/db/sync/WebStreamingSyncImplementation.js.map +1 -0
- package/lib/{src/db → db}/sync/userAgent.js +1 -0
- package/lib/db/sync/userAgent.js.map +1 -0
- package/lib/{src/index.d.ts → index.d.ts} +1 -3
- package/lib/{src/index.js → index.js} +2 -3
- package/lib/index.js.map +1 -0
- package/lib/{src/shared → shared}/navigator.js +1 -0
- package/lib/shared/navigator.js.map +1 -0
- package/lib/{src/shared → shared}/tab_close_signal.js +1 -0
- package/lib/shared/tab_close_signal.js.map +1 -0
- package/lib/worker/SharedWorkerConnectionRequest.d.ts +5 -0
- package/lib/worker/SharedWorkerConnectionRequest.js +2 -0
- package/lib/worker/SharedWorkerConnectionRequest.js.map +1 -0
- package/lib/worker/client.d.ts +15 -0
- package/lib/worker/client.js +77 -0
- package/lib/worker/client.js.map +1 -0
- package/lib/worker/db/MultiDatabaseServer.d.ts +22 -0
- package/lib/{src/worker → worker}/db/MultiDatabaseServer.js +26 -15
- package/lib/worker/db/MultiDatabaseServer.js.map +1 -0
- package/lib/worker/sync/AbstractSharedSyncClientProvider.d.ts +13 -0
- package/lib/{src/worker → worker}/sync/AbstractSharedSyncClientProvider.js +1 -0
- package/lib/worker/sync/AbstractSharedSyncClientProvider.js.map +1 -0
- package/lib/worker/sync/BroadcastLogger.d.ts +27 -0
- package/lib/worker/sync/BroadcastLogger.js +65 -0
- package/lib/worker/sync/BroadcastLogger.js.map +1 -0
- package/lib/{src/worker → worker}/sync/SharedSyncImplementation.d.ts +11 -15
- package/lib/{src/worker → worker}/sync/SharedSyncImplementation.js +43 -43
- package/lib/worker/sync/SharedSyncImplementation.js.map +1 -0
- package/lib/{src/worker → worker}/sync/WorkerClient.d.ts +3 -3
- package/lib/{src/worker → worker}/sync/WorkerClient.js +3 -2
- package/lib/worker/sync/WorkerClient.js.map +1 -0
- package/lib/worker/worker.js +34 -0
- package/lib/worker/worker.js.map +1 -0
- package/package.json +22 -29
- package/src/db/NavigatorTriggerClaimManager.ts +1 -1
- package/src/db/PowerSyncDatabase.ts +80 -122
- package/src/db/adapters/AsyncWebAdapter.ts +17 -26
- package/src/db/adapters/SSRDBAdapter.ts +14 -64
- package/src/db/adapters/WebDBAdapter.ts +1 -1
- package/src/db/adapters/options.ts +100 -0
- package/src/db/adapters/resolveAndValidateOptions.ts +40 -0
- package/src/db/adapters/wa-sqlite/ConcurrentConnection.ts +4 -5
- package/src/db/adapters/wa-sqlite/DatabaseClient.ts +20 -56
- package/src/db/adapters/wa-sqlite/DatabaseServer.ts +15 -12
- package/src/db/adapters/wa-sqlite/RawSqliteConnection.ts +35 -24
- package/src/db/adapters/wa-sqlite/WASQLiteOpenFactory.ts +63 -126
- package/src/db/sync/SSRWebStreamingSyncImplementation.ts +4 -22
- package/src/db/sync/SharedWebStreamingSyncImplementation.ts +38 -77
- package/src/db/sync/WebRemote.ts +23 -26
- package/src/db/sync/WebStreamingSyncImplementation.ts +4 -5
- package/src/index.ts +1 -3
- package/src/worker/SharedWorkerConnectionRequest.ts +6 -0
- package/src/worker/client.ts +100 -0
- package/src/worker/db/MultiDatabaseServer.ts +40 -22
- package/src/worker/sync/AbstractSharedSyncClientProvider.ts +4 -10
- package/src/worker/sync/BroadcastLogger.ts +35 -103
- package/src/worker/sync/SharedSyncImplementation.ts +62 -63
- package/src/worker/sync/WorkerClient.ts +4 -4
- package/src/worker/worker.ts +38 -0
- package/dist/index.umd.js +0 -7613
- package/dist/index.umd.js.map +0 -1
- package/dist/worker/SharedSyncImplementation.umd.js +0 -15885
- package/dist/worker/SharedSyncImplementation.umd.js.map +0 -1
- package/dist/worker/WASQLiteDB.umd.js +0 -17164
- package/dist/worker/WASQLiteDB.umd.js.map +0 -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 +0 -31
- 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 +0 -1
- package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_dist_mc-wa-s-bbf5a9.umd.js +0 -31
- 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 +0 -1
- package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_dist_wa-sqli-c26e0f.umd.js +0 -31
- package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_dist_wa-sqli-c26e0f.umd.js.map +0 -1
- package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_dist_wa-sqlite_mjs.umd.js +0 -31
- package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_dist_wa-sqlite_mjs.umd.js.map +0 -1
- package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-2fb422.umd.js +0 -3562
- package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-2fb422.umd.js.map +0 -1
- package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-96fb23.umd.js +0 -2478
- package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-96fb23.umd.js.map +0 -1
- package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-c89911.umd.js +0 -1681
- package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-c89911.umd.js.map +0 -1
- package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-ec4eb1.umd.js +0 -1820
- package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-ec4eb1.umd.js.map +0 -1
- package/lib/package.json +0 -91
- package/lib/src/db/PowerSyncDatabase.d.ts +0 -78
- package/lib/src/db/adapters/AbstractWebPowerSyncDatabaseOpenFactory.d.ts +0 -23
- package/lib/src/db/adapters/AbstractWebPowerSyncDatabaseOpenFactory.js +0 -26
- package/lib/src/db/adapters/AsyncWebAdapter.d.ts +0 -50
- package/lib/src/db/adapters/SSRDBAdapter.d.ts +0 -30
- package/lib/src/db/adapters/SSRDBAdapter.js +0 -68
- package/lib/src/db/adapters/wa-sqlite/WASQLiteOpenFactory.d.ts +0 -45
- package/lib/src/db/adapters/wa-sqlite/WASQLiteOpenFactory.js +0 -145
- package/lib/src/db/adapters/wa-sqlite/WASQLitePowerSyncDatabaseOpenFactory.d.ts +0 -15
- package/lib/src/db/adapters/wa-sqlite/WASQLitePowerSyncDatabaseOpenFactory.js +0 -21
- package/lib/src/db/adapters/web-sql-flags.d.ts +0 -92
- package/lib/src/db/adapters/web-sql-flags.js +0 -36
- package/lib/src/db/sync/WebRemote.d.ts +0 -7
- package/lib/src/db/sync/WebRemote.js +0 -32
- package/lib/src/worker/db/MultiDatabaseServer.d.ts +0 -17
- package/lib/src/worker/db/WASQLiteDB.worker.d.ts +0 -4
- package/lib/src/worker/db/WASQLiteDB.worker.js +0 -30
- package/lib/src/worker/db/open-worker-database.d.ts +0 -14
- package/lib/src/worker/db/open-worker-database.js +0 -52
- package/lib/src/worker/sync/AbstractSharedSyncClientProvider.d.ts +0 -19
- package/lib/src/worker/sync/BroadcastLogger.d.ts +0 -47
- package/lib/src/worker/sync/BroadcastLogger.js +0 -128
- package/lib/src/worker/sync/SharedSyncImplementation.worker.d.ts +0 -1
- package/lib/src/worker/sync/SharedSyncImplementation.worker.js +0 -11
- package/lib/tsconfig.tsbuildinfo +0 -1
- package/src/db/adapters/AbstractWebPowerSyncDatabaseOpenFactory.ts +0 -47
- package/src/db/adapters/wa-sqlite/WASQLitePowerSyncDatabaseOpenFactory.ts +0 -24
- package/src/db/adapters/web-sql-flags.ts +0 -141
- package/src/worker/db/WASQLiteDB.worker.ts +0 -35
- package/src/worker/db/open-worker-database.ts +0 -62
- package/src/worker/sync/SharedSyncImplementation.worker.ts +0 -14
- /package/dist/{8e97452e297be23b5e50.wasm → worker/assets/mc-wa-sqlite-CnHbhWvs.wasm} +0 -0
- /package/dist/{2075a31bb151adbb9767.wasm → worker/assets/mc-wa-sqlite-async-D6idQS2r.wasm} +0 -0
- /package/dist/{3322bc84de986b63c2cd.wasm → worker/assets/wa-sqlite-XZW__iJk.wasm} +0 -0
- /package/dist/{fbc178b70d530e8ce02b.wasm → worker/assets/wa-sqlite-async-rHzzC98y.wasm} +0 -0
- /package/lib/{src/attachments → attachments}/IndexDBFileSystemAdapter.d.ts +0 -0
- /package/lib/{src/db → db}/adapters/wa-sqlite/vfs.d.ts +0 -0
- /package/lib/{src/db → db}/sync/userAgent.d.ts +0 -0
- /package/lib/{src/shared → shared}/navigator.d.ts +0 -0
- /package/lib/{src/shared → shared}/tab_close_signal.d.ts +0 -0
- /package/lib/{src/db/adapters/WebDBAdapter.js → worker/worker.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IndexDBFileSystemAdapter.js","sourceRoot":"","sources":["../../src/attachments/IndexDBFileSystemAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NavigatorTriggerClaimManager.js","sourceRoot":"","sources":["../../src/db/NavigatorTriggerClaimManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAwB;IAClE,KAAK,CAAC,WAAW,CAAC,UAAkB;QAClC,OAAO,IAAI,OAAO,CAAC,CAAC,eAAe,EAAE,EAAE;YACrC,iBAAiB,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;gBACjD,MAAM,IAAI,OAAO,CAAO,CAAC,WAAW,EAAE,EAAE;oBACtC,eAAe,CAAC,KAAK,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;gBAC7C,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAkB;QACjC,MAAM,YAAY,GAAG,MAAM,iBAAiB,EAAE,CAAC,KAAK,EAAE,CAAC;QACvD,OAAO,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,IAAI,CAAC;IACpF,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { type PowerSyncBackendConnector, type PowerSyncCloseOptions, BasePowerSyncDatabaseOptions, DatabaseSource, DBAdapter, PowerSyncDatabaseConstructor, CommonPowerSyncDatabase } from '@powersync/common';
|
|
2
|
+
import { BasePowerSyncDatabase, BucketStorageAdapter, CreateSyncImplementationOptions, Mutex, StreamingSyncImplementation, TriggerManagerConfig } from '@powersync/shared-internals';
|
|
3
|
+
import { WebSpecificOpenOptions, WebSQLOpenOptions } from './adapters/options.js';
|
|
4
|
+
export type WebPowerSyncDatabaseOptions = BasePowerSyncDatabaseOptions & DatabaseSource<WebSQLOpenOptions> & WebSpecificOptions;
|
|
5
|
+
export interface WebSpecificOptions {
|
|
6
|
+
sync?: WebSyncOptions;
|
|
7
|
+
/**
|
|
8
|
+
* Broadcast logs from shared workers, such as the shared sync worker,
|
|
9
|
+
* to individual tabs. This defaults to true.
|
|
10
|
+
*/
|
|
11
|
+
broadcastLogs?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface WebSyncOptions {
|
|
14
|
+
/**
|
|
15
|
+
* Allows you to override the default sync worker.
|
|
16
|
+
*
|
|
17
|
+
* You can either provide a path to the worker script
|
|
18
|
+
* or a factory method that returns a worker.
|
|
19
|
+
*/
|
|
20
|
+
worker?: string | URL | (() => SharedWorker);
|
|
21
|
+
/**
|
|
22
|
+
* The log level for logs from the sync worker.
|
|
23
|
+
*
|
|
24
|
+
* Defaults to {@link LogLevels.info}.
|
|
25
|
+
*/
|
|
26
|
+
logLevel?: number;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* @internal Use {@link PowerSyncDatabase} instead, this class is only used by other SDKs also needing web support.
|
|
30
|
+
*/
|
|
31
|
+
export declare class WebPowerSyncDatabase extends BasePowerSyncDatabase<WebPowerSyncDatabaseOptions> {
|
|
32
|
+
static SHARED_MUTEX: Mutex;
|
|
33
|
+
protected resolvedOpenOptions: WebSpecificOpenOptions;
|
|
34
|
+
protected enableBroadcastLogs: boolean;
|
|
35
|
+
constructor(options: WebPowerSyncDatabaseOptions);
|
|
36
|
+
_initialize(): Promise<void>;
|
|
37
|
+
protected generateTriggerManagerConfig(): TriggerManagerConfig;
|
|
38
|
+
protected openDBAdapter(): DBAdapter;
|
|
39
|
+
/**
|
|
40
|
+
* Closes the database connection.
|
|
41
|
+
* By default the sync stream client is only disconnected if
|
|
42
|
+
* multiple tabs are not enabled.
|
|
43
|
+
*/
|
|
44
|
+
close(options?: PowerSyncCloseOptions): Promise<void>;
|
|
45
|
+
protected loadVersion(): Promise<void>;
|
|
46
|
+
protected resolveOfflineSyncStatus(): Promise<void>;
|
|
47
|
+
protected generateBucketStorageAdapter(): BucketStorageAdapter;
|
|
48
|
+
protected runExclusive<T>(cb: () => Promise<T>): Promise<T>;
|
|
49
|
+
protected generateSyncStreamImplementation(connector: PowerSyncBackendConnector, options: CreateSyncImplementationOptions): StreamingSyncImplementation;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* A PowerSync database which provides SQLite functionality
|
|
53
|
+
* which is automatically synced.
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```typescript
|
|
57
|
+
* export const db = new PowerSyncDatabase({
|
|
58
|
+
* schema: AppSchema,
|
|
59
|
+
* database: {
|
|
60
|
+
* dbFilename: 'example.db'
|
|
61
|
+
* }
|
|
62
|
+
* });
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
export declare const PowerSyncDatabase: PowerSyncDatabaseConstructor<WebPowerSyncDatabaseOptions>;
|
|
66
|
+
export interface PowerSyncDatabase extends CommonPowerSyncDatabase {
|
|
67
|
+
}
|
|
@@ -1,58 +1,26 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { LogLevels } from '@powersync/common';
|
|
2
|
+
import { BasePowerSyncDatabase, Mutex, SqliteBucketStorage, openDatabase } from '@powersync/shared-internals';
|
|
2
3
|
import { getNavigatorLocks } from '../shared/navigator.js';
|
|
3
4
|
import { NAVIGATOR_TRIGGER_CLAIM_MANAGER } from './NavigatorTriggerClaimManager.js';
|
|
4
5
|
import { WASQLiteOpenFactory } from './adapters/wa-sqlite/WASQLiteOpenFactory.js';
|
|
5
|
-
import { DEFAULT_WEB_SQL_FLAGS, isServerSide, resolveWebSQLFlags } from './adapters/web-sql-flags.js';
|
|
6
6
|
import { SSRStreamingSyncImplementation } from './sync/SSRWebStreamingSyncImplementation.js';
|
|
7
7
|
import { SharedWebStreamingSyncImplementation } from './sync/SharedWebStreamingSyncImplementation.js';
|
|
8
8
|
import { WebRemote } from './sync/WebRemote.js';
|
|
9
9
|
import { WebStreamingSyncImplementation } from './sync/WebStreamingSyncImplementation.js';
|
|
10
10
|
import { AsyncDbAdapter } from './adapters/AsyncWebAdapter.js';
|
|
11
|
-
|
|
12
|
-
...DEFAULT_WEB_SQL_FLAGS,
|
|
13
|
-
externallyUnload: false
|
|
14
|
-
};
|
|
15
|
-
export const resolveWebPowerSyncFlags = (flags) => {
|
|
16
|
-
return {
|
|
17
|
-
...DEFAULT_POWERSYNC_FLAGS,
|
|
18
|
-
...flags,
|
|
19
|
-
...resolveWebSQLFlags(flags)
|
|
20
|
-
};
|
|
21
|
-
};
|
|
11
|
+
import { resolveAndValidateOptions } from './adapters/resolveAndValidateOptions.js';
|
|
22
12
|
/**
|
|
23
|
-
*
|
|
13
|
+
* @internal Use {@link PowerSyncDatabase} instead, this class is only used by other SDKs also needing web support.
|
|
24
14
|
*/
|
|
25
|
-
|
|
26
|
-
if ('database' in options && 'encryptionKey' in options) {
|
|
27
|
-
const { database } = options;
|
|
28
|
-
if (isSQLOpenFactory(database) || isDBAdapter(database)) {
|
|
29
|
-
throw new Error(`Invalid configuration: 'encryptionKey' should only be included inside the database object when using a custom ${isSQLOpenFactory(database) ? 'WASQLiteOpenFactory' : 'WASQLiteDBAdapter'} constructor.`);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* A PowerSync database which provides SQLite functionality
|
|
35
|
-
* which is automatically synced.
|
|
36
|
-
*
|
|
37
|
-
* @example
|
|
38
|
-
* ```typescript
|
|
39
|
-
* export const db = new PowerSyncDatabase({
|
|
40
|
-
* schema: AppSchema,
|
|
41
|
-
* database: {
|
|
42
|
-
* dbFilename: 'example.db'
|
|
43
|
-
* }
|
|
44
|
-
* });
|
|
45
|
-
* ```
|
|
46
|
-
*/
|
|
47
|
-
export class PowerSyncDatabase extends AbstractPowerSyncDatabase {
|
|
48
|
-
options;
|
|
15
|
+
export class WebPowerSyncDatabase extends BasePowerSyncDatabase {
|
|
49
16
|
static SHARED_MUTEX = new Mutex();
|
|
50
|
-
|
|
17
|
+
resolvedOpenOptions;
|
|
18
|
+
enableBroadcastLogs;
|
|
51
19
|
constructor(options) {
|
|
20
|
+
const resolvedOpenOptions = resolveAndValidateOptions('database' in options ? options.database : {});
|
|
52
21
|
super(options);
|
|
53
|
-
this.
|
|
54
|
-
|
|
55
|
-
this.resolvedFlags = resolveWebPowerSyncFlags(options.flags);
|
|
22
|
+
this.resolvedOpenOptions = resolvedOpenOptions;
|
|
23
|
+
this.enableBroadcastLogs = options.broadcastLogs ?? true;
|
|
56
24
|
}
|
|
57
25
|
async _initialize() {
|
|
58
26
|
if (this.database instanceof AsyncDbAdapter) {
|
|
@@ -79,13 +47,14 @@ export class PowerSyncDatabase extends AbstractPowerSyncDatabase {
|
|
|
79
47
|
claimManager: NAVIGATOR_TRIGGER_CLAIM_MANAGER
|
|
80
48
|
};
|
|
81
49
|
}
|
|
82
|
-
openDBAdapter(
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
50
|
+
openDBAdapter() {
|
|
51
|
+
return openDatabase(this.options, (options) => {
|
|
52
|
+
const defaultFactory = new WASQLiteOpenFactory({
|
|
53
|
+
logger: this.logger,
|
|
54
|
+
open: options
|
|
55
|
+
});
|
|
56
|
+
return defaultFactory.openDB();
|
|
87
57
|
});
|
|
88
|
-
return defaultFactory.openDB();
|
|
89
58
|
}
|
|
90
59
|
/**
|
|
91
60
|
* Closes the database connection.
|
|
@@ -95,27 +64,27 @@ export class PowerSyncDatabase extends AbstractPowerSyncDatabase {
|
|
|
95
64
|
close(options) {
|
|
96
65
|
return super.close({
|
|
97
66
|
// Don't disconnect by default if multiple tabs are enabled
|
|
98
|
-
disconnect: options?.disconnect ?? !this.
|
|
67
|
+
disconnect: options?.disconnect ?? !this.resolvedOpenOptions.enableMultiTabs
|
|
99
68
|
});
|
|
100
69
|
}
|
|
101
70
|
async loadVersion() {
|
|
102
|
-
if (
|
|
71
|
+
if (this.resolvedOpenOptions.ssrMode) {
|
|
103
72
|
return;
|
|
104
73
|
}
|
|
105
74
|
return super.loadVersion();
|
|
106
75
|
}
|
|
107
76
|
async resolveOfflineSyncStatus() {
|
|
108
|
-
if (
|
|
77
|
+
if (this.resolvedOpenOptions.ssrMode) {
|
|
109
78
|
return;
|
|
110
79
|
}
|
|
111
80
|
return super.resolveOfflineSyncStatus();
|
|
112
81
|
}
|
|
113
82
|
generateBucketStorageAdapter() {
|
|
114
|
-
return new SqliteBucketStorage(this.database);
|
|
83
|
+
return new SqliteBucketStorage(this.database, this.logger);
|
|
115
84
|
}
|
|
116
85
|
async runExclusive(cb) {
|
|
117
|
-
if (this.
|
|
118
|
-
return
|
|
86
|
+
if (this.resolvedOpenOptions.ssrMode) {
|
|
87
|
+
return WebPowerSyncDatabase.SHARED_MUTEX.runExclusive(cb);
|
|
119
88
|
}
|
|
120
89
|
return getNavigatorLocks().request(`lock-${this.database.name}`, cb);
|
|
121
90
|
}
|
|
@@ -124,7 +93,6 @@ export class PowerSyncDatabase extends AbstractPowerSyncDatabase {
|
|
|
124
93
|
const syncOptions = {
|
|
125
94
|
...this.options,
|
|
126
95
|
...options,
|
|
127
|
-
flags: this.resolvedFlags,
|
|
128
96
|
adapter: this.bucketStorageAdapter,
|
|
129
97
|
remote,
|
|
130
98
|
uploadCrud: async () => {
|
|
@@ -135,23 +103,42 @@ export class PowerSyncDatabase extends AbstractPowerSyncDatabase {
|
|
|
135
103
|
logger: this.logger
|
|
136
104
|
};
|
|
137
105
|
switch (true) {
|
|
138
|
-
case this.
|
|
139
|
-
return new SSRStreamingSyncImplementation(
|
|
140
|
-
case this.
|
|
141
|
-
if (!this.
|
|
106
|
+
case this.resolvedOpenOptions.ssrMode:
|
|
107
|
+
return new SSRStreamingSyncImplementation();
|
|
108
|
+
case this.resolvedOpenOptions.enableMultiTabs:
|
|
109
|
+
if (!this.enableBroadcastLogs) {
|
|
142
110
|
const warning = `
|
|
143
111
|
Multiple tabs are enabled, but broadcasting of logs is disabled.
|
|
144
112
|
Logs for shared sync worker will only be available in the shared worker context
|
|
145
113
|
`;
|
|
146
114
|
const logger = this.options.logger;
|
|
147
|
-
logger ? logger.warn
|
|
115
|
+
logger ? logger.log({ level: LogLevels.warn, message: warning }) : console.warn(warning);
|
|
148
116
|
}
|
|
149
117
|
return new SharedWebStreamingSyncImplementation({
|
|
150
118
|
...syncOptions,
|
|
151
|
-
db: this.database // This should always be the case
|
|
119
|
+
db: this.database, // This should always be the case
|
|
120
|
+
logLevel: this.options.sync?.logLevel ?? LogLevels.info,
|
|
121
|
+
enableBroadcastLogs: this.enableBroadcastLogs
|
|
152
122
|
});
|
|
153
123
|
default:
|
|
154
124
|
return new WebStreamingSyncImplementation(syncOptions);
|
|
155
125
|
}
|
|
156
126
|
}
|
|
157
127
|
}
|
|
128
|
+
/**
|
|
129
|
+
* A PowerSync database which provides SQLite functionality
|
|
130
|
+
* which is automatically synced.
|
|
131
|
+
*
|
|
132
|
+
* @example
|
|
133
|
+
* ```typescript
|
|
134
|
+
* export const db = new PowerSyncDatabase({
|
|
135
|
+
* schema: AppSchema,
|
|
136
|
+
* database: {
|
|
137
|
+
* dbFilename: 'example.db'
|
|
138
|
+
* }
|
|
139
|
+
* });
|
|
140
|
+
* ```
|
|
141
|
+
*/
|
|
142
|
+
// Typed constructor to avoid leaking AbstractPowerSyncDatabase into the public interface
|
|
143
|
+
export const PowerSyncDatabase = WebPowerSyncDatabase;
|
|
144
|
+
//# sourceMappingURL=PowerSyncDatabase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PowerSyncDatabase.js","sourceRoot":"","sources":["../../src/db/PowerSyncDatabase.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { DBAdapter, DBAdapterListener, DBLockOptions, LockContext } from '@powersync/common';
|
|
2
|
+
import { SharedConnectionWorker, WebDBAdapterConfiguration } from './WebDBAdapter.js';
|
|
3
|
+
import { DatabaseClient } from './wa-sqlite/DatabaseClient.js';
|
|
4
|
+
/**
|
|
5
|
+
* A connection pool implementation delegating to another pool opened asynchronnously.
|
|
6
|
+
*/
|
|
7
|
+
export declare class AsyncDbAdapter extends DBAdapter {
|
|
8
|
+
readonly name: string;
|
|
9
|
+
protected readonly state: Promise<PoolState>;
|
|
10
|
+
protected resolvedWriter?: DatabaseClient;
|
|
11
|
+
private readonly pendingListeners;
|
|
12
|
+
constructor(inner: Promise<PoolConnection>, name: string);
|
|
13
|
+
init(): Promise<void>;
|
|
14
|
+
close(): Promise<void>;
|
|
15
|
+
readLock<T>(fn: (tx: LockContext) => Promise<T>, options?: DBLockOptions): Promise<T>;
|
|
16
|
+
writeLock<T>(fn: (tx: LockContext) => Promise<T>, options?: DBLockOptions): Promise<T>;
|
|
17
|
+
refreshSchema(): Promise<void>;
|
|
18
|
+
registerListener(listener: Partial<DBAdapterListener>): () => void;
|
|
19
|
+
shareConnection(): Promise<SharedConnectionWorker>;
|
|
20
|
+
getConfiguration(): WebDBAdapterConfiguration;
|
|
21
|
+
}
|
|
22
|
+
export interface PoolConnection {
|
|
23
|
+
writer: DatabaseClient;
|
|
24
|
+
additionalReaders: DatabaseClient[];
|
|
25
|
+
}
|
|
26
|
+
interface PoolState {
|
|
27
|
+
writer: DatabaseClient;
|
|
28
|
+
withConnection<T>(allowReadOnly: boolean, fn: (tx: LockContext) => Promise<T>, options?: DBLockOptions): Promise<T>;
|
|
29
|
+
close(): Promise<void>;
|
|
30
|
+
refreshSchema(): Promise<void>;
|
|
31
|
+
}
|
|
32
|
+
export {};
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DBAdapter } from '@powersync/common';
|
|
2
|
+
import { Mutex, Semaphore } from '@powersync/shared-internals';
|
|
2
3
|
/**
|
|
3
4
|
* A connection pool implementation delegating to another pool opened asynchronnously.
|
|
4
5
|
*/
|
|
5
|
-
class
|
|
6
|
+
export class AsyncDbAdapter extends DBAdapter {
|
|
6
7
|
name;
|
|
7
8
|
state;
|
|
8
9
|
resolvedWriter;
|
|
9
10
|
pendingListeners = new Set();
|
|
10
11
|
constructor(inner, name) {
|
|
12
|
+
super();
|
|
11
13
|
this.name = name;
|
|
12
14
|
this.state = inner.then((client) => {
|
|
13
15
|
for (const pending of this.pendingListeners) {
|
|
@@ -58,6 +60,16 @@ class AsyncConnectionPool {
|
|
|
58
60
|
};
|
|
59
61
|
}
|
|
60
62
|
}
|
|
63
|
+
async shareConnection() {
|
|
64
|
+
const state = await this.state;
|
|
65
|
+
return state.writer.shareConnection();
|
|
66
|
+
}
|
|
67
|
+
getConfiguration() {
|
|
68
|
+
if (this.resolvedWriter) {
|
|
69
|
+
return this.resolvedWriter.getConfiguration();
|
|
70
|
+
}
|
|
71
|
+
throw new Error('AsyncDbAdapter.getConfiguration() can only be called after initializing it.');
|
|
72
|
+
}
|
|
61
73
|
}
|
|
62
74
|
function singleConnectionPoolState(connection) {
|
|
63
75
|
return {
|
|
@@ -149,15 +161,4 @@ function readWritePoolState(writer, readers) {
|
|
|
149
161
|
}
|
|
150
162
|
};
|
|
151
163
|
}
|
|
152
|
-
|
|
153
|
-
async shareConnection() {
|
|
154
|
-
const state = await this.state;
|
|
155
|
-
return state.writer.shareConnection();
|
|
156
|
-
}
|
|
157
|
-
getConfiguration() {
|
|
158
|
-
if (this.resolvedWriter) {
|
|
159
|
-
return this.resolvedWriter.getConfiguration();
|
|
160
|
-
}
|
|
161
|
-
throw new Error('AsyncDbAdapter.getConfiguration() can only be called after initializing it.');
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
+
//# sourceMappingURL=AsyncWebAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AsyncWebAdapter.js","sourceRoot":"","sources":["../../../src/db/adapters/AsyncWebAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAiD,MAAM,mBAAmB,CAAC;AAC7F,OAAO,EAAE,KAAK,EAAE,SAAS,EAAY,MAAM,6BAA6B,CAAC;AAMzE;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,SAAS;IAQhC;IAPQ,KAAK,CAAqB;IACnC,cAAc,CAAkB;IAEzB,gBAAgB,GAAG,IAAI,GAAG,EAAmB,CAAC;IAE/D,YACE,KAA8B,EACrB,IAAY;QAErB,KAAK,EAAE,CAAC;QAFC,SAAI,GAAJ,IAAI,CAAQ;QAGrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACjC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC5C,OAAO,CAAC,kCAAkC,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAChG,CAAC;YACD,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAE9B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;YACpC,IAAI,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;gBACpC,OAAO,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;YACrE,CAAC;YAED,OAAO,yBAAyB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;QAC/B,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAI,EAAmC,EAAE,OAAuB;QAC5E,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;QAC/B,OAAO,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,SAAS,CAAI,EAAmC,EAAE,OAAuB;QAC7E,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;QAC/B,OAAO,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;QAC/B,MAAM,KAAK,CAAC,aAAa,EAAE,CAAC;IAC9B,CAAC;IAED,gBAAgB,CAAC,QAAoC;QACnD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAoB,EAAE,QAAQ,EAAE,CAAC;YAC9C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnC,OAAO,GAAG,EAAE;gBACV,IAAI,OAAO,CAAC,kCAAkC,EAAE,CAAC;oBAC/C,OAAO,OAAO,CAAC,kCAAkC,EAAE,CAAC;gBACtD,CAAC;qBAAM,CAAC;oBACN,wEAAwE;oBACxE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;QAC/B,OAAO,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;IACxC,CAAC;IAED,gBAAgB;QACd,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC;QAChD,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;IACjG,CAAC;CACF;AAcD,SAAS,yBAAyB,CAAC,UAA0B;IAC3D,OAAO;QACL,MAAM,EAAE,UAAU;QAClB,cAAc,EAAE,CAAC,aAAa,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;YAC7C,IAAI,aAAa,EAAE,CAAC;gBAClB,OAAO,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACN,OAAO,UAAU,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE;QAC/B,aAAa,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,EAAE;KAChD,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAsB,EAAE,OAAyB;IAC3E,qHAAqH;IACrH,iHAAiH;IACjH,gFAAgF;IAChF,MAAM,WAAW,GAAG,IAAI,KAAK,EAAE,CAAC;IAChC,MAAM,eAAe,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;IAE/C,OAAO;QACL,MAAM;QACN,KAAK,CAAC,cAAc,CAAC,aAAa,EAAE,EAAE,EAAE,OAAO;YAC7C,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;YAC9C,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC;YAE3C,IAAI,OAAO,GAAQ,IAAI,CAAC;YACxB,IAAI,OAA6B,CAAC;YAClC,IAAI,OAAO,EAAE,SAAS,EAAE,CAAC;gBACvB,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YACvE,CAAC;YAED,IAAI,CAAC;gBACH,IAAI,aAAa,EAAE,CAAC;oBAClB,IAAI,UAA0B,CAAC;oBAE/B,4GAA4G;oBAC5G,4GAA4G;oBAC5G,2GAA2G;oBAC3G,WAAW;oBACX,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,MAAM,IAAI,OAAO,CAA6B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;wBACxF,IAAI,WAAW,GAAG,KAAK,CAAC;wBACxB,SAAS,QAAQ;4BACf,WAAW,GAAG,IAAI,CAAC;4BACnB,eAAe,CAAC,KAAK,EAAE,CAAC;wBAC1B,CAAC;wBAED,SAAS,eAAe,CAAC,UAA0B,EAAE,QAAkB;4BACrE,IAAI,WAAW,EAAE,CAAC;gCAChB,oEAAoE;gCACpE,QAAQ,EAAE,CAAC;4BACb,CAAC;iCAAM,CAAC;gCACN,QAAQ,EAAE,CAAC;gCACX,OAAO,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;4BAClC,CAAC;wBACH,CAAC;wBAED,SAAS,aAAa,CAAC,KAAc;4BACnC,wGAAwG;4BACxG,4BAA4B;4BAC5B,IAAI,WAAW;gCAAE,OAAO;4BAExB,QAAQ,EAAE,CAAC;4BACX,MAAM,CAAC,KAAK,CAAC,CAAC;wBAChB,CAAC;wBAED,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,CAAC,CAAC;wBAClG,eAAe;6BACZ,UAAU,CAAC,WAAW,CAAC;6BACvB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC;oBAChF,CAAC,CAAC,CAAC;oBAEH,OAAO,MAAM,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACvC,CAAC;qBAAM,CAAC;oBACN,OAAO,MAAM,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;gBACjF,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;oBACpB,YAAY,CAAC,OAAO,CAAC,CAAC;gBACxB,CAAC;gBACD,OAAO,EAAE,EAAE,CAAC;YACd,CAAC;QACH,CAAC;QACD,KAAK,CAAC,KAAK;YACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACrB,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACnD,CAAC;QACD,KAAK,CAAC,aAAa;YACjB,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC;YAC7B,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;QAC3D,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DBAdapter, DBLockOptions, LockContext } from '@powersync/common';
|
|
2
|
+
import { Mutex } from '@powersync/shared-internals';
|
|
3
|
+
/**
|
|
4
|
+
* Implements a Mock DB adapter for use in Server Side Rendering (SSR).
|
|
5
|
+
* This adapter will return empty results for queries, which will allow
|
|
6
|
+
* server rendered views to initially generate scaffolding components
|
|
7
|
+
*/
|
|
8
|
+
export declare class SSRDBAdapter extends DBAdapter {
|
|
9
|
+
name: string;
|
|
10
|
+
readMutex: Mutex;
|
|
11
|
+
writeMutex: Mutex;
|
|
12
|
+
constructor();
|
|
13
|
+
close(): void;
|
|
14
|
+
readLock<T>(fn: (tx: LockContext) => Promise<T>, options?: DBLockOptions): Promise<T>;
|
|
15
|
+
writeLock<T>(fn: (tx: LockContext) => Promise<T>, options?: DBLockOptions): Promise<T>;
|
|
16
|
+
refreshSchema(): Promise<void>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { DBAdapter, LockContext } from '@powersync/common';
|
|
2
|
+
import { Mutex } from '@powersync/shared-internals';
|
|
3
|
+
const MOCK_QUERY_RESPONSE = {
|
|
4
|
+
rowsAffected: 0,
|
|
5
|
+
columnNames: [],
|
|
6
|
+
rawRows: []
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Implements a Mock DB adapter for use in Server Side Rendering (SSR).
|
|
10
|
+
* This adapter will return empty results for queries, which will allow
|
|
11
|
+
* server rendered views to initially generate scaffolding components
|
|
12
|
+
*/
|
|
13
|
+
export class SSRDBAdapter extends DBAdapter {
|
|
14
|
+
name;
|
|
15
|
+
readMutex;
|
|
16
|
+
writeMutex;
|
|
17
|
+
constructor() {
|
|
18
|
+
super();
|
|
19
|
+
this.name = 'SSR DB';
|
|
20
|
+
this.readMutex = new Mutex();
|
|
21
|
+
this.writeMutex = new Mutex();
|
|
22
|
+
}
|
|
23
|
+
close() { }
|
|
24
|
+
async readLock(fn, options) {
|
|
25
|
+
return fn(new StubLockContext());
|
|
26
|
+
}
|
|
27
|
+
async writeLock(fn, options) {
|
|
28
|
+
return fn(new StubLockContext());
|
|
29
|
+
}
|
|
30
|
+
async refreshSchema() { }
|
|
31
|
+
}
|
|
32
|
+
class StubLockContext extends LockContext {
|
|
33
|
+
async executeRaw() {
|
|
34
|
+
return MOCK_QUERY_RESPONSE;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=SSRDBAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SSRDBAdapter.js","sourceRoot":"","sources":["../../../src/db/adapters/SSRDBAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAiB,WAAW,EAAkB,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAEpD,MAAM,mBAAmB,GAAmB;IAC1C,YAAY,EAAE,CAAC;IACf,WAAW,EAAE,EAAE;IACf,OAAO,EAAE,EAAE;CACZ,CAAC;AAEF;;;;GAIG;AACH,MAAM,OAAO,YAAa,SAAQ,SAAS;IACzC,IAAI,CAAS;IACb,SAAS,CAAQ;IACjB,UAAU,CAAQ;IAElB;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,IAAI,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,KAAK,EAAE,CAAC;IAChC,CAAC;IAED,KAAK,KAAI,CAAC;IAEV,KAAK,CAAC,QAAQ,CAAI,EAAmC,EAAE,OAAuB;QAC5E,OAAO,EAAE,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,SAAS,CAAI,EAAmC,EAAE,OAAuB;QAC7E,OAAO,EAAE,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,aAAa,KAAmB,CAAC;CACxC;AAED,MAAM,eAAgB,SAAQ,WAAW;IACvC,KAAK,CAAC,UAAU;QACd,OAAO,mBAAmB,CAAC;IAC7B,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebDBAdapter.js","sourceRoot":"","sources":["../../../src/db/adapters/WebDBAdapter.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { SQLOpenOptions } from '@powersync/common';
|
|
2
|
+
import { WASQLiteVFS } from './wa-sqlite/vfs.js';
|
|
3
|
+
export interface WebSpecificOpenOptions {
|
|
4
|
+
/**
|
|
5
|
+
* SQLite operations are currently not supported in SSR mode.
|
|
6
|
+
* A warning will be logged if attempting to use SQLite in SSR.
|
|
7
|
+
* Setting this to `true` will disabled the warning above.
|
|
8
|
+
*/
|
|
9
|
+
disableSSRWarning: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Enables multi tab support.
|
|
12
|
+
*
|
|
13
|
+
* Enabling multi-tab support will transparently make PowerSync manage the sync process in a shared worker collecting
|
|
14
|
+
* Sync Streams across tabs. Additionally, it enables a shared worker for IndexedDB databases.
|
|
15
|
+
*
|
|
16
|
+
* It is still valid to open multiple tabs when this option is disabled, but the experience may be degrated as only
|
|
17
|
+
* one tab can sync at the time.
|
|
18
|
+
*
|
|
19
|
+
* This is enabled by default on Desktop browsers if shared workers are enabled, except for Safari.
|
|
20
|
+
*/
|
|
21
|
+
enableMultiTabs: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* The SQLite connection is often executed through a web worker in order to offload computation and because some file
|
|
24
|
+
* system implementations (notably those based on web filesystem APIs like OPFS) are only available in workers.
|
|
25
|
+
*
|
|
26
|
+
* Manually disabling the use of web workers is not recommended, but can be useful for testing or for environments
|
|
27
|
+
* or toolchains where web workers are not supported.
|
|
28
|
+
*/
|
|
29
|
+
useWebWorker: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Open in SSR placeholder mode. DB operations and Sync operations will be a No-op
|
|
32
|
+
*/
|
|
33
|
+
ssrMode: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* The log level for database workers.
|
|
36
|
+
*
|
|
37
|
+
* Defaults to {@link LogLevels.info}.
|
|
38
|
+
*/
|
|
39
|
+
databaseWorkerLogLevel: number;
|
|
40
|
+
/**
|
|
41
|
+
* Where to store SQLite temporary files. Defaults to 'MEMORY'.
|
|
42
|
+
* Setting this to `FILESYSTEM` can cause issues with larger queries or datasets.
|
|
43
|
+
*/
|
|
44
|
+
temporaryStorage: TemporaryStorageOption;
|
|
45
|
+
/**
|
|
46
|
+
* Maximum SQLite cache size. Defaults to 50MB.
|
|
47
|
+
*
|
|
48
|
+
* For details, see: https://www.sqlite.org/pragma.html#pragma_cache_size
|
|
49
|
+
*/
|
|
50
|
+
cacheSizeKb: number;
|
|
51
|
+
/**
|
|
52
|
+
* Encryption key for the database.
|
|
53
|
+
* If set, the database will be encrypted using ChaCha20.
|
|
54
|
+
*/
|
|
55
|
+
encryptionKey: string | undefined;
|
|
56
|
+
vfs: WASQLiteVFS;
|
|
57
|
+
/**
|
|
58
|
+
* If the {@link vfs} supports it, an additional amount of read-only connections to open. Using additional read
|
|
59
|
+
* connections can speed up queries by dispatching them to multiple workers running them concurrently.
|
|
60
|
+
*
|
|
61
|
+
* {@link WASQLiteVFS.OPFSWriteAheadVFS} is the only VFS with support for multiple connections, so this option is
|
|
62
|
+
* ignored for other VFS implementations.
|
|
63
|
+
*
|
|
64
|
+
* Defaults to 1.
|
|
65
|
+
*/
|
|
66
|
+
additionalReaders: number;
|
|
67
|
+
/**
|
|
68
|
+
* Allows you to override the default wasqlite db worker.
|
|
69
|
+
*
|
|
70
|
+
* You can either provide a path to the worker script
|
|
71
|
+
* or a factory method that returns a worker.
|
|
72
|
+
*/
|
|
73
|
+
worker?: string | URL | ((options: ResolvedWebSQLOpenOptions) => Worker | SharedWorker);
|
|
74
|
+
/**
|
|
75
|
+
* Use an existing port to an initialized worker.
|
|
76
|
+
* A worker will be initialized if none is provided
|
|
77
|
+
*/
|
|
78
|
+
workerPort?: MessagePort | undefined;
|
|
79
|
+
}
|
|
80
|
+
export interface ResolvedWebSQLOpenOptions extends SQLOpenOptions, WebSpecificOpenOptions {
|
|
81
|
+
}
|
|
82
|
+
export interface WebSQLOpenOptions extends SQLOpenOptions, Partial<WebSpecificOpenOptions> {
|
|
83
|
+
}
|
|
84
|
+
export declare enum TemporaryStorageOption {
|
|
85
|
+
MEMORY = "memory",
|
|
86
|
+
FILESYSTEM = "file"
|
|
87
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export var TemporaryStorageOption;
|
|
2
|
+
(function (TemporaryStorageOption) {
|
|
3
|
+
TemporaryStorageOption["MEMORY"] = "memory";
|
|
4
|
+
TemporaryStorageOption["FILESYSTEM"] = "file";
|
|
5
|
+
})(TemporaryStorageOption || (TemporaryStorageOption = {}));
|
|
6
|
+
//# sourceMappingURL=options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/db/adapters/options.ts"],"names":[],"mappings":"AAgGA,MAAM,CAAN,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAChC,2CAAiB,CAAA;IACjB,6CAAmB,CAAA;AACrB,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,QAGjC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { LogLevels } from '@powersync/common';
|
|
2
|
+
import { TemporaryStorageOption } from './options.js';
|
|
3
|
+
import { vfsRequiresDedicatedWorkers, WASQLiteVFS } from './wa-sqlite/vfs.js';
|
|
4
|
+
/**
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
export function resolveAndValidateOptions(options) {
|
|
8
|
+
const defaults = {
|
|
9
|
+
disableSSRWarning: false,
|
|
10
|
+
ssrMode: !('window' in globalThis),
|
|
11
|
+
/**
|
|
12
|
+
* Multiple tabs are by default not supported on Android, iOS and Safari.
|
|
13
|
+
* Other platforms will have multiple tabs enabled by default.
|
|
14
|
+
*/
|
|
15
|
+
enableMultiTabs: typeof globalThis.navigator !== 'undefined' && // For SSR purposes
|
|
16
|
+
typeof SharedWorker !== 'undefined' &&
|
|
17
|
+
!navigator.userAgent.match(/(Android|iPhone|iPod|iPad)/i) &&
|
|
18
|
+
!window.safari,
|
|
19
|
+
useWebWorker: true,
|
|
20
|
+
databaseWorkerLogLevel: LogLevels.info,
|
|
21
|
+
temporaryStorage: TemporaryStorageOption.MEMORY,
|
|
22
|
+
cacheSizeKb: 50 * 1024,
|
|
23
|
+
encryptionKey: undefined,
|
|
24
|
+
vfs: WASQLiteVFS.IDBBatchAtomicVFS,
|
|
25
|
+
additionalReaders: 1
|
|
26
|
+
};
|
|
27
|
+
const resolved = Object.assign(defaults, options);
|
|
28
|
+
if (vfsRequiresDedicatedWorkers(resolved.vfs) && !resolved.useWebWorker) {
|
|
29
|
+
throw new Error(`Invalid configuration: The 'useWebWorker' flag must be true when using an OPFS-based VFS (${resolved.vfs}).`);
|
|
30
|
+
}
|
|
31
|
+
return resolved;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=resolveAndValidateOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveAndValidateOptions.js","sourceRoot":"","sources":["../../../src/db/adapters/resolveAndValidateOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAA0B,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,2BAA2B,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE9E;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAA8C;IAE9C,MAAM,QAAQ,GAA2B;QACvC,iBAAiB,EAAE,KAAK;QACxB,OAAO,EAAE,CAAC,CAAC,QAAQ,IAAI,UAAU,CAAC;QAClC;;;WAGG;QACH,eAAe,EACb,OAAO,UAAU,CAAC,SAAS,KAAK,WAAW,IAAI,mBAAmB;YAClE,OAAO,YAAY,KAAK,WAAW;YACnC,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,6BAA6B,CAAC;YACzD,CAAE,MAAc,CAAC,MAAM;QACzB,YAAY,EAAE,IAAI;QAClB,sBAAsB,EAAE,SAAS,CAAC,IAAI;QACtC,gBAAgB,EAAE,sBAAsB,CAAC,MAAM;QAC/C,WAAW,EAAE,EAAE,GAAG,IAAI;QACtB,aAAa,EAAE,SAAS;QACxB,GAAG,EAAE,WAAW,CAAC,iBAAiB;QAClC,iBAAiB,EAAE,CAAC;KACrB,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClD,IAAI,2BAA2B,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CACb,6FAA6F,QAAQ,CAAC,GAAG,IAAI,CAC9G,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { UnlockFn } from '@powersync/
|
|
2
|
-
import { RawSqliteConnection } from './RawSqliteConnection.js';
|
|
3
|
-
import { ResolvedWASQLiteOpenFactoryOptions } from './WASQLiteOpenFactory.js';
|
|
1
|
+
import { UnlockFn } from '@powersync/shared-internals';
|
|
2
|
+
import { RawSqliteConnection, RawWaSqliteDatabaseOptions } from './RawSqliteConnection.js';
|
|
4
3
|
/**
|
|
5
4
|
* A wrapper around a {@link RawSqliteConnection} allowing multiple tabs to access it.
|
|
6
5
|
*
|
|
@@ -26,7 +25,7 @@ export declare class ConcurrentSqliteConnection {
|
|
|
26
25
|
* In those setups, we use navigator locks instead of an internal mutex to guard access..
|
|
27
26
|
*/
|
|
28
27
|
constructor(inner: RawSqliteConnection, needsNavigatorLocks: boolean);
|
|
29
|
-
get options():
|
|
28
|
+
get options(): RawWaSqliteDatabaseOptions;
|
|
30
29
|
acquireMutex(abort?: AbortSignal): Promise<UnlockFn>;
|
|
31
30
|
unsafeUseInner(): RawSqliteConnection;
|
|
32
31
|
/**
|