@powersync/web 1.38.7 → 2.0.0
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 +1893 -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/MemoryVFS-DVJL5F8j.js +2 -0
- package/dist/worker/MemoryVFS-DVJL5F8j.js.map +1 -0
- package/dist/worker/OPFSCoopSyncVFS-BgTiWPfa.js +2 -0
- package/dist/worker/OPFSCoopSyncVFS-BgTiWPfa.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/attachments/IndexDBFileSystemAdapter.js.map +1 -0
- package/lib/{src/db → db}/NavigatorTriggerClaimManager.d.ts +1 -1
- package/lib/db/NavigatorTriggerClaimManager.js.map +1 -0
- package/lib/db/PowerSyncDatabase.d.ts +67 -0
- package/lib/{src/db → db}/PowerSyncDatabase.js +47 -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 +14 -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.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 +2 -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 +11 -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 +11 -7
- package/lib/db/adapters/wa-sqlite/DatabaseServer.js.map +1 -0
- package/lib/{src/db → db}/adapters/wa-sqlite/RawSqliteConnection.d.ts +22 -13
- package/lib/{src/db → db}/adapters/wa-sqlite/RawSqliteConnection.js +14 -18
- 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/db/adapters/wa-sqlite/vfs.d.ts +47 -0
- package/lib/db/adapters/wa-sqlite/vfs.js +95 -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 +4 -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 +31 -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 +3 -2
- package/lib/db/sync/WebStreamingSyncImplementation.js.map +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} +1 -3
- package/lib/index.js.map +1 -0
- package/lib/shared/navigator.js.map +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 +28 -16
- package/lib/worker/db/MultiDatabaseServer.js.map +1 -0
- package/lib/worker/sync/AbstractSharedSyncClientProvider.d.ts +13 -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 +42 -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 +2 -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 +37 -32
- package/src/db/adapters/wa-sqlite/WASQLiteOpenFactory.ts +63 -126
- package/src/db/adapters/wa-sqlite/vfs.ts +67 -49
- 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 +43 -23
- 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 -16139
- package/dist/worker/SharedSyncImplementation.umd.js.map +0 -1
- package/dist/worker/WASQLiteDB.umd.js +0 -17418
- 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/attachments/IndexDBFileSystemAdapter.js.map +0 -1
- package/lib/src/db/NavigatorTriggerClaimManager.js.map +0 -1
- package/lib/src/db/PowerSyncDatabase.d.ts +0 -78
- package/lib/src/db/PowerSyncDatabase.js.map +0 -1
- package/lib/src/db/adapters/AbstractWebPowerSyncDatabaseOpenFactory.d.ts +0 -23
- package/lib/src/db/adapters/AbstractWebPowerSyncDatabaseOpenFactory.js +0 -27
- package/lib/src/db/adapters/AbstractWebPowerSyncDatabaseOpenFactory.js.map +0 -1
- package/lib/src/db/adapters/AsyncWebAdapter.d.ts +0 -50
- package/lib/src/db/adapters/AsyncWebAdapter.js.map +0 -1
- package/lib/src/db/adapters/SSRDBAdapter.d.ts +0 -30
- package/lib/src/db/adapters/SSRDBAdapter.js +0 -69
- package/lib/src/db/adapters/SSRDBAdapter.js.map +0 -1
- package/lib/src/db/adapters/WebDBAdapter.js.map +0 -1
- package/lib/src/db/adapters/wa-sqlite/ConcurrentConnection.js.map +0 -1
- package/lib/src/db/adapters/wa-sqlite/DatabaseClient.js.map +0 -1
- package/lib/src/db/adapters/wa-sqlite/DatabaseServer.js.map +0 -1
- package/lib/src/db/adapters/wa-sqlite/RawSqliteConnection.js.map +0 -1
- package/lib/src/db/adapters/wa-sqlite/WASQLiteOpenFactory.d.ts +0 -45
- package/lib/src/db/adapters/wa-sqlite/WASQLiteOpenFactory.js +0 -146
- package/lib/src/db/adapters/wa-sqlite/WASQLiteOpenFactory.js.map +0 -1
- package/lib/src/db/adapters/wa-sqlite/WASQLitePowerSyncDatabaseOpenFactory.d.ts +0 -15
- package/lib/src/db/adapters/wa-sqlite/WASQLitePowerSyncDatabaseOpenFactory.js +0 -22
- package/lib/src/db/adapters/wa-sqlite/WASQLitePowerSyncDatabaseOpenFactory.js.map +0 -1
- package/lib/src/db/adapters/wa-sqlite/vfs.d.ts +0 -50
- package/lib/src/db/adapters/wa-sqlite/vfs.js +0 -77
- package/lib/src/db/adapters/wa-sqlite/vfs.js.map +0 -1
- package/lib/src/db/adapters/web-sql-flags.d.ts +0 -92
- package/lib/src/db/adapters/web-sql-flags.js +0 -37
- package/lib/src/db/adapters/web-sql-flags.js.map +0 -1
- package/lib/src/db/sync/SSRWebStreamingSyncImplementation.js.map +0 -1
- package/lib/src/db/sync/SharedWebStreamingSyncImplementation.js.map +0 -1
- package/lib/src/db/sync/WebRemote.d.ts +0 -7
- package/lib/src/db/sync/WebRemote.js +0 -33
- package/lib/src/db/sync/WebRemote.js.map +0 -1
- package/lib/src/db/sync/WebStreamingSyncImplementation.js.map +0 -1
- package/lib/src/db/sync/userAgent.js.map +0 -1
- package/lib/src/index.js.map +0 -1
- package/lib/src/shared/navigator.js.map +0 -1
- package/lib/src/shared/tab_close_signal.js.map +0 -1
- package/lib/src/worker/db/MultiDatabaseServer.d.ts +0 -17
- package/lib/src/worker/db/MultiDatabaseServer.js.map +0 -1
- package/lib/src/worker/db/WASQLiteDB.worker.d.ts +0 -4
- package/lib/src/worker/db/WASQLiteDB.worker.js +0 -31
- package/lib/src/worker/db/WASQLiteDB.worker.js.map +0 -1
- package/lib/src/worker/db/open-worker-database.d.ts +0 -14
- package/lib/src/worker/db/open-worker-database.js +0 -53
- package/lib/src/worker/db/open-worker-database.js.map +0 -1
- package/lib/src/worker/sync/AbstractSharedSyncClientProvider.d.ts +0 -19
- package/lib/src/worker/sync/AbstractSharedSyncClientProvider.js.map +0 -1
- package/lib/src/worker/sync/BroadcastLogger.d.ts +0 -47
- package/lib/src/worker/sync/BroadcastLogger.js +0 -129
- package/lib/src/worker/sync/BroadcastLogger.js.map +0 -1
- package/lib/src/worker/sync/SharedSyncImplementation.js.map +0 -1
- package/lib/src/worker/sync/SharedSyncImplementation.worker.js +0 -12
- package/lib/src/worker/sync/SharedSyncImplementation.worker.js.map +0 -1
- package/lib/src/worker/sync/WorkerClient.js.map +0 -1
- 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/attachments → attachments}/IndexDBFileSystemAdapter.js +0 -0
- /package/lib/{src/db → db}/NavigatorTriggerClaimManager.js +0 -0
- /package/lib/{src/db → db}/adapters/WebDBAdapter.js +0 -0
- /package/lib/{src/db → db}/sync/userAgent.d.ts +0 -0
- /package/lib/{src/db → db}/sync/userAgent.js +0 -0
- /package/lib/{src/shared → shared}/navigator.d.ts +0 -0
- /package/lib/{src/shared → shared}/navigator.js +0 -0
- /package/lib/{src/shared → shared}/tab_close_signal.d.ts +0 -0
- /package/lib/{src/shared → shared}/tab_close_signal.js +0 -0
- /package/lib/{src/worker → worker}/sync/AbstractSharedSyncClientProvider.js +0 -0
- /package/lib/{src/worker/sync/SharedSyncImplementation.worker.d.ts → worker/worker.d.ts} +0 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* List of currently tested virtual filesystems
|
|
3
|
+
*/
|
|
4
|
+
export var WASQLiteVFS;
|
|
5
|
+
(function (WASQLiteVFS) {
|
|
6
|
+
WASQLiteVFS["IDBBatchAtomicVFS"] = "IDBBatchAtomicVFS";
|
|
7
|
+
WASQLiteVFS["OPFSCoopSyncVFS"] = "OPFSCoopSyncVFS";
|
|
8
|
+
WASQLiteVFS["AccessHandlePoolVFS"] = "AccessHandlePoolVFS";
|
|
9
|
+
WASQLiteVFS["OPFSWriteAheadVFS"] = "OPFSWriteAheadVFS";
|
|
10
|
+
/**
|
|
11
|
+
* A virtual file system storing data in-memory only, without persistence.
|
|
12
|
+
*
|
|
13
|
+
* This file system can be used in three configurations:
|
|
14
|
+
*
|
|
15
|
+
* 1. In shared workers (the default when available): All tabs share the same in-memory database, which is cleared
|
|
16
|
+
* once the last tab is closed.
|
|
17
|
+
* 2. In dedicated workers (used when `enableMultiTabs` is disabled). Each tab has its own in-memory database cleared
|
|
18
|
+
* when the tab is closed. Queries are offloaded to a dedicated worker.
|
|
19
|
+
* 3. In the context of the tab itself (used when both `enableMultiTabs` and `useWebWorker` are disabled). The per-tab
|
|
20
|
+
* database is hosted in the tab itself, and queries run synchronously. This is _a lot_ faster than any other
|
|
21
|
+
* single-threadedVFS, but can block JavaScript for computationally-intensive queries.
|
|
22
|
+
*
|
|
23
|
+
* This VFS primarily intended for development, but it also useful for online-first deployments not syncing large
|
|
24
|
+
* amounts of data, as it is quicker to start up.
|
|
25
|
+
*/
|
|
26
|
+
WASQLiteVFS["InMemoryVfs"] = "InMemoryVFS";
|
|
27
|
+
})(WASQLiteVFS || (WASQLiteVFS = {}));
|
|
28
|
+
export function vfsRequiresDedicatedWorkers(vfs) {
|
|
29
|
+
return vfs != WASQLiteVFS.IDBBatchAtomicVFS && vfs != WASQLiteVFS.InMemoryVfs;
|
|
30
|
+
}
|
|
31
|
+
async function asyncModuleFactory(encryptionKey) {
|
|
32
|
+
if (encryptionKey) {
|
|
33
|
+
const { default: factory } = await import('@journeyapps/wa-sqlite/dist/mc-wa-sqlite-async.mjs');
|
|
34
|
+
return factory();
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
const { default: factory } = await import('@journeyapps/wa-sqlite/dist/wa-sqlite-async.mjs');
|
|
38
|
+
return factory();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
async function syncModuleFactory(encryptionKey) {
|
|
42
|
+
if (encryptionKey) {
|
|
43
|
+
const { default: factory } = await import('@journeyapps/wa-sqlite/dist/mc-wa-sqlite.mjs');
|
|
44
|
+
return factory();
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
const { default: factory } = await import('@journeyapps/wa-sqlite/dist/wa-sqlite.mjs');
|
|
48
|
+
return factory();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* @internal
|
|
53
|
+
*/
|
|
54
|
+
export async function loadModuleAndVfs({ vfs, filename, encryptionKey }) {
|
|
55
|
+
let moduleFactory = syncModuleFactory;
|
|
56
|
+
let resolveVfs;
|
|
57
|
+
switch (vfs) {
|
|
58
|
+
case WASQLiteVFS.IDBBatchAtomicVFS: {
|
|
59
|
+
moduleFactory = asyncModuleFactory;
|
|
60
|
+
const { IDBBatchAtomicVFS } = await import('@journeyapps/wa-sqlite/src/examples/IDBBatchAtomicVFS.js');
|
|
61
|
+
resolveVfs = (module) => {
|
|
62
|
+
// @ts-expect-error The types for this static method are missing upstream
|
|
63
|
+
return IDBBatchAtomicVFS.create(filename, module, { lockPolicy: 'exclusive' });
|
|
64
|
+
};
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
case WASQLiteVFS.AccessHandlePoolVFS: {
|
|
68
|
+
// @ts-expect-error The types for this import are missing upstream
|
|
69
|
+
const { AccessHandlePoolVFS } = await import('@journeyapps/wa-sqlite/src/examples/AccessHandlePoolVFS.js');
|
|
70
|
+
resolveVfs = (module) => AccessHandlePoolVFS.create(filename, module);
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
case WASQLiteVFS.OPFSCoopSyncVFS: {
|
|
74
|
+
// @ts-expect-error The types for this import are missing upstream
|
|
75
|
+
const { OPFSCoopSyncVFS } = await import('@journeyapps/wa-sqlite/src/examples/OPFSCoopSyncVFS.js');
|
|
76
|
+
resolveVfs = (module) => OPFSCoopSyncVFS.create(filename, module);
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
case WASQLiteVFS.OPFSWriteAheadVFS: {
|
|
80
|
+
// @ts-expect-error The types for this import are missing upstream
|
|
81
|
+
const { OPFSWriteAheadVFS } = await import('@journeyapps/wa-sqlite/src/examples/OPFSWriteAheadVFS.js');
|
|
82
|
+
resolveVfs = (module) => OPFSWriteAheadVFS.create(filename, module, {});
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
case WASQLiteVFS.InMemoryVfs: {
|
|
86
|
+
const { MemoryVFS } = await import('@journeyapps/wa-sqlite/src/examples/MemoryVFS.js');
|
|
87
|
+
// @ts-expect-error The types for this static method are missing upstream
|
|
88
|
+
resolveVfs = (module) => MemoryVFS.create(filename, module);
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
const module = await moduleFactory(encryptionKey);
|
|
93
|
+
return { module, vfs: await resolveVfs(module) };
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=vfs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vfs.js","sourceRoot":"","sources":["../../../../src/db/adapters/wa-sqlite/vfs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BaseObserver, SyncStatus } from '@powersync/common';
|
|
2
|
+
import { Mutex, StreamingSyncImplementation, LockOptions } from '@powersync/shared-internals';
|
|
2
3
|
export declare class SSRStreamingSyncImplementation extends BaseObserver implements StreamingSyncImplementation {
|
|
3
4
|
syncMutex: Mutex;
|
|
4
5
|
crudMutex: Mutex;
|
|
5
6
|
isConnected: boolean;
|
|
6
7
|
lastSyncedAt?: Date | undefined;
|
|
7
|
-
|
|
8
|
-
constructor(options: AbstractStreamingSyncImplementationOptions);
|
|
8
|
+
constructor();
|
|
9
9
|
obtainLock<T>(lockOptions: LockOptions<T>): Promise<T>;
|
|
10
10
|
/**
|
|
11
11
|
* This is a no-op in SSR mode
|
|
12
12
|
*/
|
|
13
|
-
connect(
|
|
13
|
+
connect(): Promise<void>;
|
|
14
14
|
dispose(): Promise<void>;
|
|
15
15
|
/**
|
|
16
16
|
* This is a no-op in SSR mode
|
|
@@ -20,10 +20,6 @@ export declare class SSRStreamingSyncImplementation extends BaseObserver impleme
|
|
|
20
20
|
* This SSR Mode implementation is immediately ready.
|
|
21
21
|
*/
|
|
22
22
|
waitForReady(): Promise<void>;
|
|
23
|
-
/**
|
|
24
|
-
* This will never resolve in SSR Mode.
|
|
25
|
-
*/
|
|
26
|
-
waitForStatus(status: SyncStatusOptions): Promise<void>;
|
|
27
23
|
/**
|
|
28
24
|
* This will never resolve in SSR Mode.
|
|
29
25
|
*/
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import { BaseObserver
|
|
1
|
+
import { BaseObserver } from '@powersync/common';
|
|
2
|
+
import { Mutex, LockType } from '@powersync/shared-internals';
|
|
2
3
|
export class SSRStreamingSyncImplementation extends BaseObserver {
|
|
3
4
|
syncMutex;
|
|
4
5
|
crudMutex;
|
|
5
6
|
isConnected;
|
|
6
7
|
lastSyncedAt;
|
|
7
|
-
|
|
8
|
-
constructor(options) {
|
|
8
|
+
constructor() {
|
|
9
9
|
super();
|
|
10
10
|
this.syncMutex = new Mutex();
|
|
11
11
|
this.crudMutex = new Mutex();
|
|
12
|
-
this.syncStatus = new SyncStatus({});
|
|
13
12
|
this.isConnected = false;
|
|
14
13
|
}
|
|
15
14
|
obtainLock(lockOptions) {
|
|
@@ -19,7 +18,7 @@ export class SSRStreamingSyncImplementation extends BaseObserver {
|
|
|
19
18
|
/**
|
|
20
19
|
* This is a no-op in SSR mode
|
|
21
20
|
*/
|
|
22
|
-
async connect(
|
|
21
|
+
async connect() { }
|
|
23
22
|
async dispose() { }
|
|
24
23
|
/**
|
|
25
24
|
* This is a no-op in SSR mode
|
|
@@ -29,12 +28,6 @@ export class SSRStreamingSyncImplementation extends BaseObserver {
|
|
|
29
28
|
* This SSR Mode implementation is immediately ready.
|
|
30
29
|
*/
|
|
31
30
|
async waitForReady() { }
|
|
32
|
-
/**
|
|
33
|
-
* This will never resolve in SSR Mode.
|
|
34
|
-
*/
|
|
35
|
-
async waitForStatus(status) {
|
|
36
|
-
return this.waitUntilStatusMatches(() => false);
|
|
37
|
-
}
|
|
38
31
|
/**
|
|
39
32
|
* This will never resolve in SSR Mode.
|
|
40
33
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SSRWebStreamingSyncImplementation.js","sourceRoot":"","sources":["../../../src/db/sync/SSRWebStreamingSyncImplementation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAc,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,KAAK,EAA4C,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAExG,MAAM,OAAO,8BAA+B,SAAQ,YAAY;IAC9D,SAAS,CAAQ;IACjB,SAAS,CAAQ;IAEjB,WAAW,CAAU;IACrB,YAAY,CAAoB;IAEhC;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,IAAI,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,UAAU,CAAI,WAA2B;QACvC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QAClF,OAAO,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,KAAmB,CAAC;IAEjC,KAAK,CAAC,OAAO,KAAI,CAAC;IAElB;;OAEG;IACH,KAAK,CAAC,UAAU,KAAmB,CAAC;IAEpC;;OAEG;IACH,KAAK,CAAC,YAAY,KAAI,CAAC;IAEvB;;OAEG;IACH,sBAAsB,CAAC,UAA2C;QAChE,OAAO,IAAI,OAAO,CAAO,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB;QACtB,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,iBAAiB,KAAI,CAAC;IAEtB;;OAEG;IACH,mBAAmB,KAAU,CAAC;IAE9B;;OAEG;IACH,4BAA4B,KAAU,CAAC;CACxC"}
|
|
@@ -1,34 +1,31 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { LogRecord, PowerSyncCredentials } from '@powersync/common';
|
|
2
2
|
import * as Comlink from 'comlink';
|
|
3
3
|
import { AbstractSharedSyncClientProvider } from '../../worker/sync/AbstractSharedSyncClientProvider.js';
|
|
4
4
|
import { WorkerClient } from '../../worker/sync/WorkerClient.js';
|
|
5
5
|
import { WebDBAdapter } from '../adapters/WebDBAdapter.js';
|
|
6
6
|
import { WebStreamingSyncImplementation, WebStreamingSyncImplementationOptions } from './WebStreamingSyncImplementation.js';
|
|
7
|
+
import { SubscribedStream, SyncStatusJson, ResolvedSyncOptions } from '@powersync/shared-internals';
|
|
8
|
+
import { WorkerConnection } from '../../worker/client.js';
|
|
7
9
|
/**
|
|
8
10
|
* The shared worker will trigger methods on this side of the message port
|
|
9
11
|
* via this client provider.
|
|
10
12
|
*/
|
|
11
13
|
declare class SharedSyncClientProvider extends AbstractSharedSyncClientProvider {
|
|
12
14
|
protected options: WebStreamingSyncImplementationOptions;
|
|
13
|
-
statusChanged: (status:
|
|
15
|
+
statusChanged: (status: SyncStatusJson) => void;
|
|
14
16
|
protected webDB: WebDBAdapter;
|
|
15
|
-
constructor(options: WebStreamingSyncImplementationOptions, statusChanged: (status:
|
|
17
|
+
constructor(options: WebStreamingSyncImplementationOptions, statusChanged: (status: SyncStatusJson) => void, webDB: WebDBAdapter);
|
|
16
18
|
getDBWorkerPort(): Promise<MessagePort>;
|
|
17
19
|
invalidateCredentials(): void;
|
|
18
20
|
fetchCredentials(): Promise<PowerSyncCredentials | null>;
|
|
19
21
|
uploadCrud(): Promise<void>;
|
|
20
|
-
get logger(): import("@powersync/common").
|
|
21
|
-
|
|
22
|
-
debug(...x: any[]): void;
|
|
23
|
-
info(...x: any[]): void;
|
|
24
|
-
log(...x: any[]): void;
|
|
25
|
-
warn(...x: any[]): void;
|
|
26
|
-
error(...x: any[]): void;
|
|
27
|
-
time(label: string): void;
|
|
28
|
-
timeEnd(label: string): void;
|
|
22
|
+
get logger(): import("@powersync/common").PowerSyncLogger;
|
|
23
|
+
log(record: LogRecord): void;
|
|
29
24
|
}
|
|
30
25
|
export interface SharedWebStreamingSyncImplementationOptions extends WebStreamingSyncImplementationOptions {
|
|
26
|
+
logLevel: number;
|
|
31
27
|
db: WebDBAdapter;
|
|
28
|
+
enableBroadcastLogs: boolean;
|
|
32
29
|
}
|
|
33
30
|
/**
|
|
34
31
|
* The local part of the sync implementation on the web, which talks to a sync implementation hosted in a shared worker.
|
|
@@ -36,17 +33,19 @@ export interface SharedWebStreamingSyncImplementationOptions extends WebStreamin
|
|
|
36
33
|
export declare class SharedWebStreamingSyncImplementation extends WebStreamingSyncImplementation {
|
|
37
34
|
protected syncManager: Comlink.Remote<WorkerClient>;
|
|
38
35
|
protected clientProvider: SharedSyncClientProvider;
|
|
39
|
-
protected
|
|
36
|
+
protected worker: WorkerConnection;
|
|
40
37
|
protected isInitialized: Promise<void>;
|
|
41
38
|
protected dbAdapter: WebDBAdapter;
|
|
42
39
|
private abortOnClose;
|
|
40
|
+
private logLevel;
|
|
41
|
+
private enableBroadcastLogs;
|
|
43
42
|
constructor(options: SharedWebStreamingSyncImplementationOptions);
|
|
44
43
|
protected _init(): Promise<void>;
|
|
45
44
|
/**
|
|
46
45
|
* Starts the sync process, this effectively acts as a call to
|
|
47
46
|
* `connect` if not yet connected.
|
|
48
47
|
*/
|
|
49
|
-
connect(options
|
|
48
|
+
connect(options: ResolvedSyncOptions): Promise<void>;
|
|
50
49
|
disconnect(): Promise<void>;
|
|
51
50
|
getWriteCheckpoint(): Promise<string>;
|
|
52
51
|
dispose(): Promise<void>;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as Comlink from 'comlink';
|
|
2
2
|
import { AbstractSharedSyncClientProvider } from '../../worker/sync/AbstractSharedSyncClientProvider.js';
|
|
3
3
|
import { SharedSyncClientEvent } from '../../worker/sync/SharedSyncImplementation.js';
|
|
4
|
-
import { DEFAULT_CACHE_SIZE_KB, TemporaryStorageOption, resolveWebSQLFlags } from '../adapters/web-sql-flags.js';
|
|
5
4
|
import { WebStreamingSyncImplementation } from './WebStreamingSyncImplementation.js';
|
|
6
5
|
import { generateTabCloseSignal } from '../../shared/tab_close_signal.js';
|
|
6
|
+
import { connectToExistingWorker, connectToWorker } from '../../worker/client.js';
|
|
7
7
|
/**
|
|
8
8
|
* The shared worker will trigger methods on this side of the message port
|
|
9
9
|
* via this client provider.
|
|
@@ -51,29 +51,8 @@ class SharedSyncClientProvider extends AbstractSharedSyncClientProvider {
|
|
|
51
51
|
get logger() {
|
|
52
52
|
return this.options.logger;
|
|
53
53
|
}
|
|
54
|
-
|
|
55
|
-
this.logger
|
|
56
|
-
}
|
|
57
|
-
debug(...x) {
|
|
58
|
-
this.logger?.debug(...x);
|
|
59
|
-
}
|
|
60
|
-
info(...x) {
|
|
61
|
-
this.logger?.info(...x);
|
|
62
|
-
}
|
|
63
|
-
log(...x) {
|
|
64
|
-
this.logger?.log(...x);
|
|
65
|
-
}
|
|
66
|
-
warn(...x) {
|
|
67
|
-
this.logger?.warn(...x);
|
|
68
|
-
}
|
|
69
|
-
error(...x) {
|
|
70
|
-
this.logger?.error(...x);
|
|
71
|
-
}
|
|
72
|
-
time(label) {
|
|
73
|
-
this.logger?.time(label);
|
|
74
|
-
}
|
|
75
|
-
timeEnd(label) {
|
|
76
|
-
this.logger?.timeEnd(label);
|
|
54
|
+
log(record) {
|
|
55
|
+
this.logger.log(record);
|
|
77
56
|
}
|
|
78
57
|
}
|
|
79
58
|
/**
|
|
@@ -82,57 +61,43 @@ class SharedSyncClientProvider extends AbstractSharedSyncClientProvider {
|
|
|
82
61
|
export class SharedWebStreamingSyncImplementation extends WebStreamingSyncImplementation {
|
|
83
62
|
syncManager;
|
|
84
63
|
clientProvider;
|
|
85
|
-
|
|
64
|
+
worker;
|
|
86
65
|
isInitialized;
|
|
87
66
|
dbAdapter;
|
|
88
67
|
abortOnClose = new AbortController();
|
|
68
|
+
logLevel;
|
|
69
|
+
enableBroadcastLogs;
|
|
89
70
|
constructor(options) {
|
|
90
71
|
super(options);
|
|
91
72
|
this.dbAdapter = options.db;
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
* This worker will manage all syncing operations remotely.
|
|
95
|
-
*/
|
|
96
|
-
const resolvedWorkerOptions = {
|
|
97
|
-
dbFilename: this.options.identifier,
|
|
98
|
-
temporaryStorage: TemporaryStorageOption.MEMORY,
|
|
99
|
-
cacheSizeKb: DEFAULT_CACHE_SIZE_KB,
|
|
100
|
-
...options,
|
|
101
|
-
flags: resolveWebSQLFlags(options.flags)
|
|
102
|
-
};
|
|
73
|
+
this.logLevel = options.logLevel;
|
|
74
|
+
this.enableBroadcastLogs = options.enableBroadcastLogs;
|
|
103
75
|
const syncWorker = options.sync?.worker;
|
|
104
|
-
if (syncWorker) {
|
|
105
|
-
|
|
106
|
-
this.messagePort = syncWorker(resolvedWorkerOptions).port;
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
this.messagePort = new SharedWorker(`${syncWorker}`, {
|
|
110
|
-
/* @vite-ignore */
|
|
111
|
-
name: `shared-sync-${this.webOptions.identifier}`
|
|
112
|
-
}).port;
|
|
113
|
-
}
|
|
76
|
+
if (typeof syncWorker === 'function') {
|
|
77
|
+
this.worker = connectToExistingWorker(syncWorker(), 'sync');
|
|
114
78
|
}
|
|
115
79
|
else {
|
|
116
|
-
this.
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
80
|
+
this.worker = connectToWorker({
|
|
81
|
+
service: 'sync',
|
|
82
|
+
databaseIdentifier: this.webOptions.identifier,
|
|
83
|
+
shared: true,
|
|
84
|
+
customWorker: syncWorker
|
|
85
|
+
});
|
|
121
86
|
}
|
|
122
87
|
/**
|
|
123
88
|
* Pass along any sync status updates to this listener
|
|
124
89
|
*/
|
|
125
|
-
this.clientProvider = new SharedSyncClientProvider(this.webOptions, (
|
|
126
|
-
this.updateSyncStatus(
|
|
90
|
+
this.clientProvider = new SharedSyncClientProvider(this.webOptions, ({ core, dataFlow }) => {
|
|
91
|
+
this.updateSyncStatus(core, dataFlow);
|
|
127
92
|
}, options.db);
|
|
128
|
-
this.syncManager = Comlink.wrap(this.
|
|
93
|
+
this.syncManager = Comlink.wrap(this.worker.endpoint);
|
|
129
94
|
/**
|
|
130
95
|
* The sync worker will call this client provider when it needs
|
|
131
96
|
* to fetch credentials or upload data.
|
|
132
97
|
* This performs bi-directional method calling.
|
|
133
98
|
*/
|
|
134
|
-
Comlink.expose(this.clientProvider, this.
|
|
135
|
-
this.syncManager.setLogLevel(this.
|
|
99
|
+
Comlink.expose(this.clientProvider, this.worker.endpoint);
|
|
100
|
+
this.syncManager.setLogLevel(this.logLevel);
|
|
136
101
|
this.triggerCrudUpload = this.syncManager.triggerCrudUpload;
|
|
137
102
|
/**
|
|
138
103
|
* Opens MessagePort to the existing shared DB worker.
|
|
@@ -159,16 +124,14 @@ export class SharedWebStreamingSyncImplementation extends WebStreamingSyncImplem
|
|
|
159
124
|
const closeSignal = await generateTabCloseSignal(this.abortOnClose.signal);
|
|
160
125
|
// Awaiting here ensures the worker is waiting for the lock
|
|
161
126
|
await this.syncManager.addLockBasedCloseSignal(closeSignal);
|
|
162
|
-
const {
|
|
163
|
-
const flags = { ...this.webOptions.flags, workers: undefined };
|
|
127
|
+
const { identifier } = this.options;
|
|
164
128
|
await this.syncManager.setParams({
|
|
165
129
|
dbParams: this.dbAdapter.getConfiguration(),
|
|
166
130
|
streamOptions: {
|
|
167
|
-
crudUploadThrottleMs,
|
|
168
131
|
identifier,
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
132
|
+
serializedSchema: this.options.serializedSchema
|
|
133
|
+
},
|
|
134
|
+
enableBroadcastLogs: this.enableBroadcastLogs
|
|
172
135
|
}, this.options.subscriptions);
|
|
173
136
|
}
|
|
174
137
|
/**
|
|
@@ -177,7 +140,7 @@ export class SharedWebStreamingSyncImplementation extends WebStreamingSyncImplem
|
|
|
177
140
|
*/
|
|
178
141
|
async connect(options) {
|
|
179
142
|
await this.waitForReady();
|
|
180
|
-
return this.syncManager.connect(options);
|
|
143
|
+
return this.syncManager.connect(options, this.options.serializedSchema);
|
|
181
144
|
}
|
|
182
145
|
async disconnect() {
|
|
183
146
|
await this.waitForReady();
|
|
@@ -190,8 +153,10 @@ export class SharedWebStreamingSyncImplementation extends WebStreamingSyncImplem
|
|
|
190
153
|
async dispose() {
|
|
191
154
|
await this.waitForReady();
|
|
192
155
|
await new Promise((resolve) => {
|
|
156
|
+
// This will always be a message port since we use shared workers.
|
|
157
|
+
const messagePort = this.worker.endpoint;
|
|
193
158
|
// Listen for the close acknowledgment from the worker
|
|
194
|
-
|
|
159
|
+
messagePort.addEventListener('message', (event) => {
|
|
195
160
|
const payload = event.data;
|
|
196
161
|
if (payload?.event === SharedSyncClientEvent.CLOSE_ACK) {
|
|
197
162
|
resolve();
|
|
@@ -202,13 +167,13 @@ export class SharedWebStreamingSyncImplementation extends WebStreamingSyncImplem
|
|
|
202
167
|
event: SharedSyncClientEvent.CLOSE_CLIENT,
|
|
203
168
|
data: {}
|
|
204
169
|
};
|
|
205
|
-
|
|
170
|
+
messagePort.postMessage(closeMessagePayload);
|
|
206
171
|
});
|
|
207
172
|
await super.dispose();
|
|
208
173
|
this.abortOnClose.abort();
|
|
209
174
|
// Release the proxy
|
|
210
175
|
this.syncManager[Comlink.releaseProxy]();
|
|
211
|
-
this.
|
|
176
|
+
this.worker.close();
|
|
212
177
|
}
|
|
213
178
|
async waitForReady() {
|
|
214
179
|
return this.isInitialized;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SharedWebStreamingSyncImplementation.js","sourceRoot":"","sources":["../../../src/db/sync/SharedWebStreamingSyncImplementation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { PowerSyncLogger } from '@powersync/common';
|
|
2
|
+
import { AbstractRemote, FetchOptions, RemoteConnector } from '@powersync/shared-internals';
|
|
3
|
+
import type { WebSocketSyncStreamPlatform, WebSocketSupport } from '@powersync/shared-internals/websockets';
|
|
4
|
+
export declare class WebRemote extends AbstractRemote {
|
|
5
|
+
protected connector: RemoteConnector;
|
|
6
|
+
constructor(connector: RemoteConnector, logger: PowerSyncLogger);
|
|
7
|
+
protected fetch({ resource, request }: FetchOptions): Promise<Response>;
|
|
8
|
+
protected loadWebSocketSupport(platform: WebSocketSyncStreamPlatform): Promise<WebSocketSupport>;
|
|
9
|
+
getUserAgent(): string;
|
|
10
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { LogLevels } from '@powersync/common';
|
|
2
|
+
import { AbstractRemote } from '@powersync/shared-internals';
|
|
3
|
+
import { getUserAgentInfo } from './userAgent.js';
|
|
4
|
+
export class WebRemote extends AbstractRemote {
|
|
5
|
+
connector;
|
|
6
|
+
constructor(connector, logger) {
|
|
7
|
+
super(connector, logger);
|
|
8
|
+
this.connector = connector;
|
|
9
|
+
}
|
|
10
|
+
fetch({ resource, request }) {
|
|
11
|
+
return fetch(resource, request);
|
|
12
|
+
}
|
|
13
|
+
async loadWebSocketSupport(platform) {
|
|
14
|
+
if (!websockets) {
|
|
15
|
+
// loadWebSocketSupport being called concurrently is safe, the import resolves to the same module in that case.
|
|
16
|
+
const module = await import('@powersync/shared-internals/websockets');
|
|
17
|
+
websockets = new module.WebSocketSupport(platform);
|
|
18
|
+
}
|
|
19
|
+
return websockets;
|
|
20
|
+
}
|
|
21
|
+
getUserAgent() {
|
|
22
|
+
let ua = [super.getUserAgent(), `powersync-web`];
|
|
23
|
+
try {
|
|
24
|
+
ua.push(...getUserAgentInfo());
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
this.logger.log({ level: LogLevels.warn, message: 'Failed to get user agent info', error });
|
|
28
|
+
}
|
|
29
|
+
return ua.join(' ');
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
let websockets;
|
|
33
|
+
//# sourceMappingURL=WebRemote.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebRemote.js","sourceRoot":"","sources":["../../../src/db/sync/WebRemote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAmB,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAiC,MAAM,6BAA6B,CAAC;AAE5F,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGlD,MAAM,OAAO,SAAU,SAAQ,cAAc;IAE/B;IADZ,YACY,SAA0B,EACpC,MAAuB;QAEvB,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAHf,cAAS,GAAT,SAAS,CAAiB;IAItC,CAAC;IAES,KAAK,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAgB;QACjD,OAAO,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;IAES,KAAK,CAAC,oBAAoB,CAAC,QAAqC;QACxE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,+GAA+G;YAC/G,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,wCAAwC,CAAC,CAAC;YACtE,UAAU,GAAG,IAAI,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,YAAY;QACV,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,eAAe,CAAC,CAAC;QACjD,IAAI,CAAC;YACH,EAAE,CAAC,IAAI,CAAC,GAAG,gBAAgB,EAAE,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,+BAA+B,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9F,CAAC;QACD,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;CACF;AAED,IAAI,UAAwC,CAAC"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { AbstractStreamingSyncImplementation, AbstractStreamingSyncImplementationOptions, LockOptions } from '@powersync/
|
|
2
|
-
import { ResolvedWebSQLOpenOptions, WebSQLFlags } from '../adapters/web-sql-flags.js';
|
|
1
|
+
import { AbstractStreamingSyncImplementation, AbstractStreamingSyncImplementationOptions, LockOptions } from '@powersync/shared-internals';
|
|
3
2
|
export interface WebStreamingSyncImplementationOptions extends AbstractStreamingSyncImplementationOptions {
|
|
4
|
-
flags?: WebSQLFlags;
|
|
5
3
|
sync?: {
|
|
6
|
-
worker?: string | URL | ((
|
|
4
|
+
worker?: string | URL | (() => SharedWorker);
|
|
7
5
|
};
|
|
8
6
|
}
|
|
9
7
|
export declare class WebStreamingSyncImplementation extends AbstractStreamingSyncImplementation {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { LogLevels } from '@powersync/common';
|
|
2
|
+
import { AbstractStreamingSyncImplementation, LockType } from '@powersync/shared-internals';
|
|
2
3
|
import { getNavigatorLocks } from '../../shared/navigator.js';
|
|
3
4
|
export class WebStreamingSyncImplementation extends AbstractStreamingSyncImplementation {
|
|
4
5
|
constructor(options) {
|
|
@@ -11,7 +12,7 @@ export class WebStreamingSyncImplementation extends AbstractStreamingSyncImpleme
|
|
|
11
12
|
async obtainLock(lockOptions) {
|
|
12
13
|
const identifier = `streaming-sync-${lockOptions.type}-${this.webOptions.identifier}`;
|
|
13
14
|
if (lockOptions.type == LockType.SYNC) {
|
|
14
|
-
this.logger.debug
|
|
15
|
+
this.logger.log({ level: LogLevels.debug, message: `requesting lock for ${identifier}` });
|
|
15
16
|
}
|
|
16
17
|
return getNavigatorLocks().request(identifier, { signal: lockOptions.signal }, lockOptions.callback);
|
|
17
18
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebStreamingSyncImplementation.js","sourceRoot":"","sources":["../../../src/db/sync/WebStreamingSyncImplementation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EACL,mCAAmC,EAGnC,QAAQ,EACT,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAQ9D,MAAM,OAAO,8BAA+B,SAAQ,mCAAmC;IACrF,YAAY,OAA8C;QACxD,0DAA0D;QAC1D,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,OAAgD,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,UAAU,CAAI,WAA2B;QAC7C,MAAM,UAAU,GAAG,kBAAkB,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QACtF,IAAI,WAAW,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,uBAAuB,UAAU,EAAE,EAAE,CAAC,CAAC;QAC5F,CAAC;QACD,OAAO,iBAAiB,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IACvG,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userAgent.js","sourceRoot":"","sources":["../../../src/db/sync/userAgent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
export * from '@powersync/common';
|
|
2
2
|
export * from './attachments/IndexDBFileSystemAdapter.js';
|
|
3
|
-
export * from './db/adapters/AbstractWebPowerSyncDatabaseOpenFactory.js';
|
|
4
3
|
export { WASQLiteVFS } from './db/adapters/wa-sqlite/vfs.js';
|
|
5
4
|
export * from './db/adapters/wa-sqlite/WASQLiteOpenFactory.js';
|
|
6
|
-
export * from './db/adapters/
|
|
7
|
-
export * from './db/adapters/web-sql-flags.js';
|
|
5
|
+
export * from './db/adapters/options.js';
|
|
8
6
|
export * from './db/PowerSyncDatabase.js';
|
|
9
7
|
export * from './db/sync/SharedWebStreamingSyncImplementation.js';
|
|
10
8
|
export * from './db/sync/WebRemote.js';
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
export * from '@powersync/common';
|
|
2
2
|
export * from './attachments/IndexDBFileSystemAdapter.js';
|
|
3
|
-
export * from './db/adapters/AbstractWebPowerSyncDatabaseOpenFactory.js';
|
|
4
3
|
export { WASQLiteVFS } from './db/adapters/wa-sqlite/vfs.js';
|
|
5
4
|
export * from './db/adapters/wa-sqlite/WASQLiteOpenFactory.js';
|
|
6
|
-
export * from './db/adapters/
|
|
7
|
-
export * from './db/adapters/web-sql-flags.js';
|
|
5
|
+
export * from './db/adapters/options.js';
|
|
8
6
|
export * from './db/PowerSyncDatabase.js';
|
|
9
7
|
export * from './db/sync/SharedWebStreamingSyncImplementation.js';
|
|
10
8
|
export * from './db/sync/WebRemote.js';
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,2CAA2C,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mDAAmD,CAAC;AAClE,cAAc,wBAAwB,CAAC;AACvC,cAAc,6CAA6C,CAAC;AAC5D,cAAc,+BAA+B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigator.js","sourceRoot":"","sources":["../../src/shared/navigator.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAgB,EAAE;IACjD,IAAI,OAAO,IAAI,SAAS,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;QAC5C,OAAO,SAAS,CAAC,KAAK,CAAC;IACzB,CAAC;IAED,MAAM,IAAI,KAAK,CACb,mHAAmH,CACpH,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tab_close_signal.js","sourceRoot":"","sources":["../../src/shared/tab_close_signal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAmB;IACxD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,OAAO,GAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAC/C,iBAAiB,EAAE;aAChB,OAAO,CAAC,oBAAoB,MAAM,CAAC,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACpE,OAAO,CAAC,IAAK,CAAC,IAAI,CAAC,CAAC;YAEpB,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBACnC,IAAI,KAAK,EAAE,CAAC;oBACV,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;aACD,KAAK,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SharedWorkerConnectionRequest.js","sourceRoot":"","sources":["../../src/worker/SharedWorkerConnectionRequest.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { WorkerService } from './SharedWorkerConnectionRequest.js';
|
|
2
|
+
export interface OpenWorkerOptions {
|
|
3
|
+
service: WorkerService;
|
|
4
|
+
databaseIdentifier: string;
|
|
5
|
+
customWorker?: string | URL;
|
|
6
|
+
shared: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface WorkerConnection {
|
|
9
|
+
endpoint: MessagePort | Worker;
|
|
10
|
+
worker: Worker | SharedWorker;
|
|
11
|
+
close: () => void;
|
|
12
|
+
}
|
|
13
|
+
export declare function connectToWorker({ service, databaseIdentifier, customWorker, shared }: OpenWorkerOptions): WorkerConnection;
|
|
14
|
+
export declare function connectToExistingWorker(worker: Worker | SharedWorker, service: WorkerService): WorkerConnection;
|
|
15
|
+
export declare function isSharedWorker(worker: Worker | SharedWorker): worker is SharedWorker;
|