@powersync/web 0.0.0-dev-20260503073249 → 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 -15
- package/lib/{src/db → db}/sync/SharedWebStreamingSyncImplementation.js +32 -69
- 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 -17
- package/lib/{src/worker → worker}/sync/SharedSyncImplementation.js +43 -51
- package/lib/worker/sync/SharedSyncImplementation.js.map +1 -0
- package/lib/{src/worker → worker}/sync/WorkerClient.d.ts +3 -4
- package/lib/{src/worker → worker}/sync/WorkerClient.js +3 -5
- 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 +23 -33
- 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 -81
- package/src/db/sync/WebRemote.ts +23 -42
- 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 -73
- package/src/worker/sync/WorkerClient.ts +4 -8
- package/src/worker/worker.ts +38 -0
- package/dist/index.umd.js +0 -12277
- package/dist/index.umd.js.map +0 -1
- package/dist/worker/SharedSyncImplementation.umd.js +0 -16655
- package/dist/worker/SharedSyncImplementation.umd.js.map +0 -1
- package/dist/worker/WASQLiteDB.umd.js +0 -17810
- package/dist/worker/WASQLiteDB.umd.js.map +0 -1
- 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_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 -94
- 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 -9
- package/lib/src/db/sync/WebRemote.js +0 -44
- 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
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
import { type ILogger, SQLOpenOptions } from '@powersync/common';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Common settings used when creating SQL connections on web.
|
|
5
|
-
*/
|
|
6
|
-
export interface WebSQLFlags {
|
|
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
|
-
/**
|
|
14
|
-
* SQLite operations are currently not supported in SSR mode.
|
|
15
|
-
* A warning will be logged if attempting to use SQLite in SSR.
|
|
16
|
-
* Setting this to `true` will disabled the warning above.
|
|
17
|
-
*/
|
|
18
|
-
disableSSRWarning?: boolean;
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Enables multi tab support
|
|
22
|
-
*/
|
|
23
|
-
enableMultiTabs?: boolean;
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* The SQLite connection is often executed through a web worker
|
|
27
|
-
* in order to offload computation. This can be used to manually
|
|
28
|
-
* disable the use of web workers in environments where web workers
|
|
29
|
-
* might be unstable.
|
|
30
|
-
*/
|
|
31
|
-
useWebWorker?: boolean;
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Open in SSR placeholder mode. DB operations and Sync operations will be a No-op
|
|
35
|
-
*/
|
|
36
|
-
ssrMode?: boolean;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export type ResolvedWebSQLFlags = Required<WebSQLFlags>;
|
|
40
|
-
|
|
41
|
-
export interface ResolvedWebSQLOpenOptions extends SQLOpenOptions {
|
|
42
|
-
flags: ResolvedWebSQLFlags;
|
|
43
|
-
/**
|
|
44
|
-
* Where to store SQLite temporary files. Defaults to 'MEMORY'.
|
|
45
|
-
* Setting this to `FILESYSTEM` can cause issues with larger queries or datasets.
|
|
46
|
-
*/
|
|
47
|
-
temporaryStorage: TemporaryStorageOption;
|
|
48
|
-
|
|
49
|
-
cacheSizeKb: number;
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Encryption key for the database.
|
|
53
|
-
* If set, the database will be encrypted using ChaCha20.
|
|
54
|
-
*/
|
|
55
|
-
encryptionKey?: string;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
export enum TemporaryStorageOption {
|
|
59
|
-
MEMORY = 'memory',
|
|
60
|
-
FILESYSTEM = 'file'
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
export const DEFAULT_CACHE_SIZE_KB = 50 * 1024;
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Options for opening a Web SQL connection
|
|
67
|
-
*/
|
|
68
|
-
export interface WebSQLOpenFactoryOptions extends SQLOpenOptions {
|
|
69
|
-
flags?: WebSQLFlags;
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Allows you to override the default wasqlite db worker.
|
|
73
|
-
*
|
|
74
|
-
* You can either provide a path to the worker script
|
|
75
|
-
* or a factory method that returns a worker.
|
|
76
|
-
*/
|
|
77
|
-
worker?: string | URL | ((options: ResolvedWebSQLOpenOptions) => Worker | SharedWorker);
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Use an existing port to an initialized worker.
|
|
81
|
-
* A worker will be initialized if none is provided
|
|
82
|
-
*/
|
|
83
|
-
workerPort?: MessagePort;
|
|
84
|
-
|
|
85
|
-
logger?: ILogger;
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* Where to store SQLite temporary files. Defaults to 'MEMORY'.
|
|
89
|
-
* Setting this to `FILESYSTEM` can cause issues with larger queries or datasets.
|
|
90
|
-
*
|
|
91
|
-
* For details, see: https://www.sqlite.org/pragma.html#pragma_temp_store
|
|
92
|
-
*/
|
|
93
|
-
temporaryStorage?: TemporaryStorageOption;
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Maximum SQLite cache size. Defaults to 50MB.
|
|
97
|
-
*
|
|
98
|
-
* For details, see: https://www.sqlite.org/pragma.html#pragma_cache_size
|
|
99
|
-
*/
|
|
100
|
-
cacheSizeKb?: number;
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* Encryption key for the database.
|
|
104
|
-
* If set, the database will be encrypted using ChaCha20.
|
|
105
|
-
*/
|
|
106
|
-
encryptionKey?: string;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
export function isServerSide() {
|
|
110
|
-
return typeof window == 'undefined';
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
export const DEFAULT_WEB_SQL_FLAGS: ResolvedWebSQLFlags = {
|
|
114
|
-
broadcastLogs: true,
|
|
115
|
-
disableSSRWarning: false,
|
|
116
|
-
ssrMode: isServerSide(),
|
|
117
|
-
/**
|
|
118
|
-
* Multiple tabs are by default not supported on Android, iOS and Safari.
|
|
119
|
-
* Other platforms will have multiple tabs enabled by default.
|
|
120
|
-
*/
|
|
121
|
-
enableMultiTabs:
|
|
122
|
-
typeof globalThis.navigator !== 'undefined' && // For SSR purposes
|
|
123
|
-
typeof SharedWorker !== 'undefined' &&
|
|
124
|
-
!navigator.userAgent.match(/(Android|iPhone|iPod|iPad)/i) &&
|
|
125
|
-
!(window as any).safari,
|
|
126
|
-
useWebWorker: true
|
|
127
|
-
};
|
|
128
|
-
|
|
129
|
-
export function resolveWebSQLFlags(flags?: WebSQLFlags): ResolvedWebSQLFlags {
|
|
130
|
-
const resolvedFlags = {
|
|
131
|
-
...DEFAULT_WEB_SQL_FLAGS,
|
|
132
|
-
...(flags ?? {})
|
|
133
|
-
};
|
|
134
|
-
if (typeof flags?.enableMultiTabs != 'undefined') {
|
|
135
|
-
resolvedFlags.enableMultiTabs = flags.enableMultiTabs;
|
|
136
|
-
}
|
|
137
|
-
if (flags?.useWebWorker === false) {
|
|
138
|
-
resolvedFlags.enableMultiTabs = false;
|
|
139
|
-
}
|
|
140
|
-
return resolvedFlags;
|
|
141
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Supports both shared and dedicated workers, based on how the worker is constructed (new SharedWorker vs new Worker()).
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import '@journeyapps/wa-sqlite';
|
|
6
|
-
import { createBaseLogger, createLogger } from '@powersync/common';
|
|
7
|
-
import * as Comlink from 'comlink';
|
|
8
|
-
import { isSharedWorker, MultiDatabaseServer } from './MultiDatabaseServer.js';
|
|
9
|
-
import { OpenWorkerConnection } from '../../db/adapters/wa-sqlite/DatabaseClient.js';
|
|
10
|
-
|
|
11
|
-
const baseLogger = createBaseLogger();
|
|
12
|
-
baseLogger.useDefaults();
|
|
13
|
-
const logger = createLogger('db-worker');
|
|
14
|
-
|
|
15
|
-
const server = new MultiDatabaseServer(logger);
|
|
16
|
-
const exposedFunctions: OpenWorkerConnection = {
|
|
17
|
-
connect: (config) => server.handleConnection(config),
|
|
18
|
-
connectToExisting: ({ identifier, lockName }) => server.connectToExisting(identifier, lockName)
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
// Check if we're in a SharedWorker context
|
|
22
|
-
if (isSharedWorker) {
|
|
23
|
-
const _self: SharedWorkerGlobalScope = self as any;
|
|
24
|
-
_self.onconnect = function (event: MessageEvent<string>) {
|
|
25
|
-
const port = event.ports[0];
|
|
26
|
-
Comlink.expose(exposedFunctions, port);
|
|
27
|
-
};
|
|
28
|
-
} else {
|
|
29
|
-
// A dedicated worker can be shared externally
|
|
30
|
-
Comlink.expose(exposedFunctions);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
addEventListener('unload', () => {
|
|
34
|
-
server.closeAll();
|
|
35
|
-
});
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import * as Comlink from 'comlink';
|
|
2
|
-
import { vfsRequiresDedicatedWorkers, WASQLiteVFS } from '../../db/adapters/wa-sqlite/vfs.js';
|
|
3
|
-
import { OpenWorkerConnection } from '../../db/adapters/wa-sqlite/DatabaseClient.js';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Opens a shared or dedicated worker which exposes opening of database connections
|
|
7
|
-
*/
|
|
8
|
-
export function openWorkerDatabasePort(
|
|
9
|
-
workerIdentifier: string,
|
|
10
|
-
multipleTabs = true,
|
|
11
|
-
worker: string | URL = '',
|
|
12
|
-
vfs?: WASQLiteVFS
|
|
13
|
-
) {
|
|
14
|
-
const needsDedicated = vfs && vfsRequiresDedicatedWorkers(vfs);
|
|
15
|
-
|
|
16
|
-
if (worker) {
|
|
17
|
-
return !needsDedicated && multipleTabs
|
|
18
|
-
? new SharedWorker(`${worker}`, {
|
|
19
|
-
/* @vite-ignore */
|
|
20
|
-
name: `shared-DB-worker-${workerIdentifier}`
|
|
21
|
-
}).port
|
|
22
|
-
: new Worker(`${worker}`, {
|
|
23
|
-
/* @vite-ignore */
|
|
24
|
-
name: `DB-worker-${workerIdentifier}`
|
|
25
|
-
});
|
|
26
|
-
} else {
|
|
27
|
-
/**
|
|
28
|
-
* Webpack V5 can bundle the worker automatically if the full Worker constructor syntax is used
|
|
29
|
-
* https://webpack.js.org/guides/web-workers/
|
|
30
|
-
* This enables multi tab support by default, but falls back if SharedWorker is not available
|
|
31
|
-
* (in the case of Android)
|
|
32
|
-
*/
|
|
33
|
-
return !needsDedicated && multipleTabs
|
|
34
|
-
? new SharedWorker(new URL('./WASQLiteDB.worker.js', import.meta.url), {
|
|
35
|
-
/* @vite-ignore */
|
|
36
|
-
name: `shared-DB-worker-${workerIdentifier}`,
|
|
37
|
-
type: 'module'
|
|
38
|
-
}).port
|
|
39
|
-
: new Worker(new URL('./WASQLiteDB.worker.js', import.meta.url), {
|
|
40
|
-
/* @vite-ignore */
|
|
41
|
-
name: `DB-worker-${workerIdentifier}`,
|
|
42
|
-
type: 'module'
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* @returns A function which allows for opening database connections inside
|
|
49
|
-
* a worker.
|
|
50
|
-
*/
|
|
51
|
-
export function getWorkerDatabaseOpener(workerIdentifier: string, multipleTabs = true, worker: string | URL = '') {
|
|
52
|
-
return Comlink.wrap<OpenWorkerConnection>(openWorkerDatabasePort(workerIdentifier, multipleTabs, worker));
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
export function resolveWorkerDatabasePortFactory(worker: () => Worker | SharedWorker) {
|
|
56
|
-
const workerInstance = worker();
|
|
57
|
-
return isSharedWorker(workerInstance) ? workerInstance.port : workerInstance;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
export function isSharedWorker(worker: Worker | SharedWorker): worker is SharedWorker {
|
|
61
|
-
return 'port' in worker;
|
|
62
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { createBaseLogger } from '@powersync/common';
|
|
2
|
-
import { SharedSyncImplementation } from './SharedSyncImplementation.js';
|
|
3
|
-
import { WorkerClient } from './WorkerClient.js';
|
|
4
|
-
|
|
5
|
-
const _self: SharedWorkerGlobalScope = self as any;
|
|
6
|
-
const logger = createBaseLogger();
|
|
7
|
-
logger.useDefaults();
|
|
8
|
-
|
|
9
|
-
const sharedSyncImplementation = new SharedSyncImplementation();
|
|
10
|
-
|
|
11
|
-
_self.onconnect = async function (event: MessageEvent<string>) {
|
|
12
|
-
const port = event.ports[0];
|
|
13
|
-
new WorkerClient(sharedSyncImplementation, port);
|
|
14
|
-
};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|