@powersync/web 1.39.0 → 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.
Files changed (234) hide show
  1. package/bin/powersync.cjs +1 -1
  2. package/dist/index.react_native_web.js +1893 -0
  3. package/dist/index.react_native_web.js.map +1 -0
  4. package/dist/worker/AccessHandlePoolVFS-BPUHfZME.js +2 -0
  5. package/dist/worker/AccessHandlePoolVFS-BPUHfZME.js.map +1 -0
  6. package/dist/worker/FacadeVFS-d1ZDvud7.js +2 -0
  7. package/dist/worker/FacadeVFS-d1ZDvud7.js.map +1 -0
  8. package/dist/worker/IDBBatchAtomicVFS-DbkDb777.js +2 -0
  9. package/dist/worker/IDBBatchAtomicVFS-DbkDb777.js.map +1 -0
  10. package/dist/worker/MemoryVFS-DVJL5F8j.js +2 -0
  11. package/dist/worker/MemoryVFS-DVJL5F8j.js.map +1 -0
  12. package/dist/worker/OPFSCoopSyncVFS-BgTiWPfa.js +2 -0
  13. package/dist/worker/OPFSCoopSyncVFS-BgTiWPfa.js.map +1 -0
  14. package/dist/worker/OPFSWriteAheadVFS-BzodSqNq.js +2 -0
  15. package/dist/worker/OPFSWriteAheadVFS-BzodSqNq.js.map +1 -0
  16. package/dist/worker/mc-wa-sqlite-DiBqIVE5.js +2 -0
  17. package/dist/worker/mc-wa-sqlite-DiBqIVE5.js.map +1 -0
  18. package/dist/worker/mc-wa-sqlite-async-DUEhO9ef.js +2 -0
  19. package/dist/worker/mc-wa-sqlite-async-DUEhO9ef.js.map +1 -0
  20. package/dist/worker/wa-sqlite-BlSx7-_P.js +2 -0
  21. package/dist/worker/wa-sqlite-BlSx7-_P.js.map +1 -0
  22. package/dist/worker/wa-sqlite-async-BdR24Ucf.js +2 -0
  23. package/dist/worker/wa-sqlite-async-BdR24Ucf.js.map +1 -0
  24. package/dist/worker/websockets-Q8W_lerF.js +9 -0
  25. package/dist/worker/websockets-Q8W_lerF.js.map +1 -0
  26. package/dist/worker/worker.js +7 -0
  27. package/dist/worker/worker.js.map +1 -0
  28. package/lib/attachments/IndexDBFileSystemAdapter.js.map +1 -0
  29. package/lib/{src/db → db}/NavigatorTriggerClaimManager.d.ts +1 -1
  30. package/lib/db/NavigatorTriggerClaimManager.js.map +1 -0
  31. package/lib/db/PowerSyncDatabase.d.ts +67 -0
  32. package/lib/{src/db → db}/PowerSyncDatabase.js +47 -61
  33. package/lib/db/PowerSyncDatabase.js.map +1 -0
  34. package/lib/db/adapters/AsyncWebAdapter.d.ts +32 -0
  35. package/lib/{src/db → db}/adapters/AsyncWebAdapter.js +14 -14
  36. package/lib/db/adapters/AsyncWebAdapter.js.map +1 -0
  37. package/lib/db/adapters/SSRDBAdapter.d.ts +17 -0
  38. package/lib/db/adapters/SSRDBAdapter.js +37 -0
  39. package/lib/db/adapters/SSRDBAdapter.js.map +1 -0
  40. package/lib/{src/db → db}/adapters/WebDBAdapter.d.ts +1 -1
  41. package/lib/db/adapters/WebDBAdapter.js.map +1 -0
  42. package/lib/db/adapters/options.d.ts +87 -0
  43. package/lib/db/adapters/options.js +6 -0
  44. package/lib/db/adapters/options.js.map +1 -0
  45. package/lib/db/adapters/resolveAndValidateOptions.d.ts +5 -0
  46. package/lib/db/adapters/resolveAndValidateOptions.js +33 -0
  47. package/lib/db/adapters/resolveAndValidateOptions.js.map +1 -0
  48. package/lib/{src/db → db}/adapters/wa-sqlite/ConcurrentConnection.d.ts +3 -4
  49. package/lib/{src/db → db}/adapters/wa-sqlite/ConcurrentConnection.js +2 -2
  50. package/lib/db/adapters/wa-sqlite/ConcurrentConnection.js.map +1 -0
  51. package/lib/{src/db → db}/adapters/wa-sqlite/DatabaseClient.d.ts +4 -4
  52. package/lib/{src/db → db}/adapters/wa-sqlite/DatabaseClient.js +11 -37
  53. package/lib/db/adapters/wa-sqlite/DatabaseClient.js.map +1 -0
  54. package/lib/{src/db → db}/adapters/wa-sqlite/DatabaseServer.d.ts +5 -5
  55. package/lib/{src/db → db}/adapters/wa-sqlite/DatabaseServer.js +11 -7
  56. package/lib/db/adapters/wa-sqlite/DatabaseServer.js.map +1 -0
  57. package/lib/{src/db → db}/adapters/wa-sqlite/RawSqliteConnection.d.ts +22 -12
  58. package/lib/{src/db → db}/adapters/wa-sqlite/RawSqliteConnection.js +10 -9
  59. package/lib/db/adapters/wa-sqlite/RawSqliteConnection.js.map +1 -0
  60. package/lib/db/adapters/wa-sqlite/WASQLiteOpenFactory.d.ts +18 -0
  61. package/lib/db/adapters/wa-sqlite/WASQLiteOpenFactory.js +131 -0
  62. package/lib/db/adapters/wa-sqlite/WASQLiteOpenFactory.js.map +1 -0
  63. package/lib/{src/db → db}/adapters/wa-sqlite/vfs.d.ts +9 -2
  64. package/lib/{src/db → db}/adapters/wa-sqlite/vfs.js +6 -6
  65. package/lib/db/adapters/wa-sqlite/vfs.js.map +1 -0
  66. package/lib/{src/db → db}/sync/SSRWebStreamingSyncImplementation.d.ts +4 -8
  67. package/lib/{src/db → db}/sync/SSRWebStreamingSyncImplementation.js +4 -11
  68. package/lib/db/sync/SSRWebStreamingSyncImplementation.js.map +1 -0
  69. package/lib/{src/db → db}/sync/SharedWebStreamingSyncImplementation.d.ts +13 -14
  70. package/lib/{src/db → db}/sync/SharedWebStreamingSyncImplementation.js +31 -66
  71. package/lib/db/sync/SharedWebStreamingSyncImplementation.js.map +1 -0
  72. package/lib/db/sync/WebRemote.d.ts +10 -0
  73. package/lib/db/sync/WebRemote.js +33 -0
  74. package/lib/db/sync/WebRemote.js.map +1 -0
  75. package/lib/{src/db → db}/sync/WebStreamingSyncImplementation.d.ts +2 -4
  76. package/lib/{src/db → db}/sync/WebStreamingSyncImplementation.js +3 -2
  77. package/lib/db/sync/WebStreamingSyncImplementation.js.map +1 -0
  78. package/lib/db/sync/userAgent.js.map +1 -0
  79. package/lib/{src/index.d.ts → index.d.ts} +1 -3
  80. package/lib/{src/index.js → index.js} +1 -3
  81. package/lib/index.js.map +1 -0
  82. package/lib/shared/navigator.js.map +1 -0
  83. package/lib/shared/tab_close_signal.js.map +1 -0
  84. package/lib/worker/SharedWorkerConnectionRequest.d.ts +5 -0
  85. package/lib/worker/SharedWorkerConnectionRequest.js +2 -0
  86. package/lib/worker/SharedWorkerConnectionRequest.js.map +1 -0
  87. package/lib/worker/client.d.ts +15 -0
  88. package/lib/worker/client.js +77 -0
  89. package/lib/worker/client.js.map +1 -0
  90. package/lib/worker/db/MultiDatabaseServer.d.ts +22 -0
  91. package/lib/{src/worker → worker}/db/MultiDatabaseServer.js +25 -15
  92. package/lib/worker/db/MultiDatabaseServer.js.map +1 -0
  93. package/lib/worker/sync/AbstractSharedSyncClientProvider.d.ts +13 -0
  94. package/lib/worker/sync/AbstractSharedSyncClientProvider.js.map +1 -0
  95. package/lib/worker/sync/BroadcastLogger.d.ts +27 -0
  96. package/lib/worker/sync/BroadcastLogger.js +65 -0
  97. package/lib/worker/sync/BroadcastLogger.js.map +1 -0
  98. package/lib/{src/worker → worker}/sync/SharedSyncImplementation.d.ts +11 -15
  99. package/lib/{src/worker → worker}/sync/SharedSyncImplementation.js +42 -43
  100. package/lib/worker/sync/SharedSyncImplementation.js.map +1 -0
  101. package/lib/{src/worker → worker}/sync/WorkerClient.d.ts +3 -3
  102. package/lib/{src/worker → worker}/sync/WorkerClient.js +2 -2
  103. package/lib/worker/sync/WorkerClient.js.map +1 -0
  104. package/lib/worker/worker.js +34 -0
  105. package/lib/worker/worker.js.map +1 -0
  106. package/package.json +22 -29
  107. package/src/db/NavigatorTriggerClaimManager.ts +1 -1
  108. package/src/db/PowerSyncDatabase.ts +80 -122
  109. package/src/db/adapters/AsyncWebAdapter.ts +17 -26
  110. package/src/db/adapters/SSRDBAdapter.ts +14 -64
  111. package/src/db/adapters/WebDBAdapter.ts +1 -1
  112. package/src/db/adapters/options.ts +100 -0
  113. package/src/db/adapters/resolveAndValidateOptions.ts +40 -0
  114. package/src/db/adapters/wa-sqlite/ConcurrentConnection.ts +4 -5
  115. package/src/db/adapters/wa-sqlite/DatabaseClient.ts +20 -56
  116. package/src/db/adapters/wa-sqlite/DatabaseServer.ts +15 -12
  117. package/src/db/adapters/wa-sqlite/RawSqliteConnection.ts +34 -23
  118. package/src/db/adapters/wa-sqlite/WASQLiteOpenFactory.ts +63 -126
  119. package/src/db/adapters/wa-sqlite/vfs.ts +13 -8
  120. package/src/db/sync/SSRWebStreamingSyncImplementation.ts +4 -22
  121. package/src/db/sync/SharedWebStreamingSyncImplementation.ts +38 -77
  122. package/src/db/sync/WebRemote.ts +23 -26
  123. package/src/db/sync/WebStreamingSyncImplementation.ts +4 -5
  124. package/src/index.ts +1 -3
  125. package/src/worker/SharedWorkerConnectionRequest.ts +6 -0
  126. package/src/worker/client.ts +100 -0
  127. package/src/worker/db/MultiDatabaseServer.ts +40 -22
  128. package/src/worker/sync/AbstractSharedSyncClientProvider.ts +4 -10
  129. package/src/worker/sync/BroadcastLogger.ts +35 -103
  130. package/src/worker/sync/SharedSyncImplementation.ts +62 -63
  131. package/src/worker/sync/WorkerClient.ts +4 -4
  132. package/src/worker/worker.ts +38 -0
  133. package/dist/index.umd.js +0 -7821
  134. package/dist/index.umd.js.map +0 -1
  135. package/dist/worker/SharedSyncImplementation.umd.js +0 -16142
  136. package/dist/worker/SharedSyncImplementation.umd.js.map +0 -1
  137. package/dist/worker/WASQLiteDB.umd.js +0 -17437
  138. package/dist/worker/WASQLiteDB.umd.js.map +0 -1
  139. 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
  140. 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
  141. 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
  142. 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
  143. 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
  144. 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
  145. 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
  146. 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
  147. package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-2fb422.umd.js +0 -3562
  148. 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
  149. package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-833585.umd.js +0 -1400
  150. package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-833585.umd.js.map +0 -1
  151. package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-96fb23.umd.js +0 -2478
  152. 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
  153. package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-c89911.umd.js +0 -1681
  154. 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
  155. package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-ec4eb1.umd.js +0 -1820
  156. 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
  157. package/lib/package.json +0 -91
  158. package/lib/src/attachments/IndexDBFileSystemAdapter.js.map +0 -1
  159. package/lib/src/db/NavigatorTriggerClaimManager.js.map +0 -1
  160. package/lib/src/db/PowerSyncDatabase.d.ts +0 -78
  161. package/lib/src/db/PowerSyncDatabase.js.map +0 -1
  162. package/lib/src/db/adapters/AbstractWebPowerSyncDatabaseOpenFactory.d.ts +0 -23
  163. package/lib/src/db/adapters/AbstractWebPowerSyncDatabaseOpenFactory.js +0 -27
  164. package/lib/src/db/adapters/AbstractWebPowerSyncDatabaseOpenFactory.js.map +0 -1
  165. package/lib/src/db/adapters/AsyncWebAdapter.d.ts +0 -50
  166. package/lib/src/db/adapters/AsyncWebAdapter.js.map +0 -1
  167. package/lib/src/db/adapters/SSRDBAdapter.d.ts +0 -30
  168. package/lib/src/db/adapters/SSRDBAdapter.js +0 -69
  169. package/lib/src/db/adapters/SSRDBAdapter.js.map +0 -1
  170. package/lib/src/db/adapters/WebDBAdapter.js.map +0 -1
  171. package/lib/src/db/adapters/wa-sqlite/ConcurrentConnection.js.map +0 -1
  172. package/lib/src/db/adapters/wa-sqlite/DatabaseClient.js.map +0 -1
  173. package/lib/src/db/adapters/wa-sqlite/DatabaseServer.js.map +0 -1
  174. package/lib/src/db/adapters/wa-sqlite/RawSqliteConnection.js.map +0 -1
  175. package/lib/src/db/adapters/wa-sqlite/WASQLiteOpenFactory.d.ts +0 -45
  176. package/lib/src/db/adapters/wa-sqlite/WASQLiteOpenFactory.js +0 -146
  177. package/lib/src/db/adapters/wa-sqlite/WASQLiteOpenFactory.js.map +0 -1
  178. package/lib/src/db/adapters/wa-sqlite/WASQLitePowerSyncDatabaseOpenFactory.d.ts +0 -15
  179. package/lib/src/db/adapters/wa-sqlite/WASQLitePowerSyncDatabaseOpenFactory.js +0 -22
  180. package/lib/src/db/adapters/wa-sqlite/WASQLitePowerSyncDatabaseOpenFactory.js.map +0 -1
  181. package/lib/src/db/adapters/wa-sqlite/vfs.js.map +0 -1
  182. package/lib/src/db/adapters/web-sql-flags.d.ts +0 -92
  183. package/lib/src/db/adapters/web-sql-flags.js +0 -37
  184. package/lib/src/db/adapters/web-sql-flags.js.map +0 -1
  185. package/lib/src/db/sync/SSRWebStreamingSyncImplementation.js.map +0 -1
  186. package/lib/src/db/sync/SharedWebStreamingSyncImplementation.js.map +0 -1
  187. package/lib/src/db/sync/WebRemote.d.ts +0 -7
  188. package/lib/src/db/sync/WebRemote.js +0 -33
  189. package/lib/src/db/sync/WebRemote.js.map +0 -1
  190. package/lib/src/db/sync/WebStreamingSyncImplementation.js.map +0 -1
  191. package/lib/src/db/sync/userAgent.js.map +0 -1
  192. package/lib/src/index.js.map +0 -1
  193. package/lib/src/shared/navigator.js.map +0 -1
  194. package/lib/src/shared/tab_close_signal.js.map +0 -1
  195. package/lib/src/worker/db/MultiDatabaseServer.d.ts +0 -17
  196. package/lib/src/worker/db/MultiDatabaseServer.js.map +0 -1
  197. package/lib/src/worker/db/WASQLiteDB.worker.d.ts +0 -4
  198. package/lib/src/worker/db/WASQLiteDB.worker.js +0 -31
  199. package/lib/src/worker/db/WASQLiteDB.worker.js.map +0 -1
  200. package/lib/src/worker/db/open-worker-database.d.ts +0 -14
  201. package/lib/src/worker/db/open-worker-database.js +0 -53
  202. package/lib/src/worker/db/open-worker-database.js.map +0 -1
  203. package/lib/src/worker/sync/AbstractSharedSyncClientProvider.d.ts +0 -19
  204. package/lib/src/worker/sync/AbstractSharedSyncClientProvider.js.map +0 -1
  205. package/lib/src/worker/sync/BroadcastLogger.d.ts +0 -47
  206. package/lib/src/worker/sync/BroadcastLogger.js +0 -129
  207. package/lib/src/worker/sync/BroadcastLogger.js.map +0 -1
  208. package/lib/src/worker/sync/SharedSyncImplementation.js.map +0 -1
  209. package/lib/src/worker/sync/SharedSyncImplementation.worker.js +0 -12
  210. package/lib/src/worker/sync/SharedSyncImplementation.worker.js.map +0 -1
  211. package/lib/src/worker/sync/WorkerClient.js.map +0 -1
  212. package/lib/tsconfig.tsbuildinfo +0 -1
  213. package/src/db/adapters/AbstractWebPowerSyncDatabaseOpenFactory.ts +0 -47
  214. package/src/db/adapters/wa-sqlite/WASQLitePowerSyncDatabaseOpenFactory.ts +0 -24
  215. package/src/db/adapters/web-sql-flags.ts +0 -141
  216. package/src/worker/db/WASQLiteDB.worker.ts +0 -35
  217. package/src/worker/db/open-worker-database.ts +0 -62
  218. package/src/worker/sync/SharedSyncImplementation.worker.ts +0 -14
  219. /package/dist/{8e97452e297be23b5e50.wasm → worker/assets/mc-wa-sqlite-CnHbhWvs.wasm} +0 -0
  220. /package/dist/{2075a31bb151adbb9767.wasm → worker/assets/mc-wa-sqlite-async-D6idQS2r.wasm} +0 -0
  221. /package/dist/{3322bc84de986b63c2cd.wasm → worker/assets/wa-sqlite-XZW__iJk.wasm} +0 -0
  222. /package/dist/{fbc178b70d530e8ce02b.wasm → worker/assets/wa-sqlite-async-rHzzC98y.wasm} +0 -0
  223. /package/lib/{src/attachments → attachments}/IndexDBFileSystemAdapter.d.ts +0 -0
  224. /package/lib/{src/attachments → attachments}/IndexDBFileSystemAdapter.js +0 -0
  225. /package/lib/{src/db → db}/NavigatorTriggerClaimManager.js +0 -0
  226. /package/lib/{src/db → db}/adapters/WebDBAdapter.js +0 -0
  227. /package/lib/{src/db → db}/sync/userAgent.d.ts +0 -0
  228. /package/lib/{src/db → db}/sync/userAgent.js +0 -0
  229. /package/lib/{src/shared → shared}/navigator.d.ts +0 -0
  230. /package/lib/{src/shared → shared}/navigator.js +0 -0
  231. /package/lib/{src/shared → shared}/tab_close_signal.d.ts +0 -0
  232. /package/lib/{src/shared → shared}/tab_close_signal.js +0 -0
  233. /package/lib/{src/worker → worker}/sync/AbstractSharedSyncClientProvider.js +0 -0
  234. /package/lib/{src/worker/sync/SharedSyncImplementation.worker.d.ts → worker/worker.d.ts} +0 -0
@@ -1,10 +1,10 @@
1
- import { LockContext, DBLockOptions, DBAdapterListener, ConnectionPool, BaseObserver, SQLOpenOptions } from '@powersync/common';
1
+ import { LockContext, DBLockOptions, SQLOpenOptions, DBAdapter } from '@powersync/common';
2
2
  import { SharedConnectionWorker, WebDBAdapterConfiguration } from '../WebDBAdapter.js';
3
3
  import { ClientConnectionView } from './DatabaseServer.js';
4
4
  import * as Comlink from 'comlink';
5
- import { WorkerDBOpenerOptions } from './WASQLiteOpenFactory.js';
5
+ import type { ConnectToMultiDatabaseServerOptions } from '../../../worker/db/MultiDatabaseServer.js';
6
6
  export interface OpenWorkerConnection {
7
- connect(config: WorkerDBOpenerOptions): Promise<ClientConnectionView>;
7
+ connect(config: ConnectToMultiDatabaseServerOptions): Promise<ClientConnectionView>;
8
8
  connectToExisting(options: {
9
9
  identifier: string;
10
10
  lockName: string;
@@ -31,7 +31,7 @@ export interface ClientOptions {
31
31
  /**
32
32
  * A single-connection {@link ConnectionPool} implementation based on a worker connection.
33
33
  */
34
- export declare class DatabaseClient<Config extends SQLOpenOptions = WebDBAdapterConfiguration> extends BaseObserver<DBAdapterListener> implements ConnectionPool {
34
+ export declare class DatabaseClient<Config extends SQLOpenOptions = WebDBAdapterConfiguration> extends DBAdapter {
35
35
  #private;
36
36
  private readonly options;
37
37
  private readonly config;
@@ -1,9 +1,10 @@
1
- import { DBGetUtilsDefaultMixin, BaseObserver, ConnectionClosedError } from '@powersync/common';
1
+ import { LockContext, DBAdapter, queryResultWithoutRows } from '@powersync/common';
2
2
  import * as Comlink from 'comlink';
3
+ import { ConnectionClosedError } from '@powersync/shared-internals';
3
4
  /**
4
5
  * A single-connection {@link ConnectionPool} implementation based on a worker connection.
5
6
  */
6
- export class DatabaseClient extends BaseObserver {
7
+ export class DatabaseClient extends DBAdapter {
7
8
  options;
8
9
  config;
9
10
  #connection;
@@ -24,9 +25,7 @@ export class DatabaseClient extends BaseObserver {
24
25
  port2.onmessage = (event) => {
25
26
  const tables = event.data;
26
27
  const notification = {
27
- tables,
28
- groupedUpdates: {},
29
- rawUpdates: []
28
+ tables
30
29
  };
31
30
  this.iterateListeners((l) => {
32
31
  l.tablesUpdated && l.tablesUpdated(notification);
@@ -120,15 +119,16 @@ export class DatabaseClient extends BaseObserver {
120
119
  }
121
120
  }
122
121
  /**
123
- * A {@link SqlExecutor} implemented by sending commands to a worker.
122
+ * A {@link LockContext} implemented by sending commands to a worker.
124
123
  *
125
124
  * While an instance is active, it has exclusive access to the underlying database connection (as represented by its
126
125
  * token).
127
126
  */
128
- class ClientSqlExecutor {
127
+ class ClientLockContext extends LockContext {
129
128
  #connection;
130
129
  #token;
131
130
  constructor(connection, token) {
131
+ super();
132
132
  this.#connection = connection;
133
133
  this.#token = token;
134
134
  }
@@ -153,32 +153,8 @@ class ClientSqlExecutor {
153
153
  return useConnectionState(this.#connection, fn);
154
154
  }
155
155
  }
156
- async execute(query, params) {
157
- const rs = await this.#executeOnWorker(query, params);
158
- let rows;
159
- if (rs.resultSet) {
160
- const resultSet = rs.resultSet;
161
- function rowToJavaScriptObject(row) {
162
- const obj = {};
163
- resultSet.columns.forEach((key, idx) => (obj[key] = row[idx]));
164
- return obj;
165
- }
166
- const mapped = resultSet.rows.map(rowToJavaScriptObject);
167
- rows = {
168
- _array: mapped,
169
- length: mapped.length,
170
- item: (idx) => mapped[idx]
171
- };
172
- }
173
- return {
174
- rowsAffected: rs.changes,
175
- insertId: rs.lastInsertRowId,
176
- rows
177
- };
178
- }
179
156
  async executeRaw(query, params) {
180
- const rs = await this.#executeOnWorker(query, params);
181
- return rs.resultSet?.rows ?? [];
157
+ return await this.#executeOnWorker(query, params);
182
158
  }
183
159
  async #executeOnWorker(query, params) {
184
160
  return this.maybeTrace((c) => c.execute(this.#token, query, params), () => query);
@@ -187,14 +163,12 @@ class ClientSqlExecutor {
187
163
  const results = await this.maybeTrace((c) => c.executeBatch(this.#token, query, params), () => `${query} (batch of ${params.length})`);
188
164
  const result = { insertId: undefined, rowsAffected: 0 };
189
165
  for (const source of results) {
190
- result.insertId = source.lastInsertRowId;
191
- result.rowsAffected += source.changes;
166
+ result.insertId = source.insertId;
167
+ result.rowsAffected = (result.rowsAffected ?? 0) + source.rowsAffected;
192
168
  }
193
- return result;
169
+ return queryResultWithoutRows(result);
194
170
  }
195
171
  }
196
- class ClientLockContext extends DBGetUtilsDefaultMixin(ClientSqlExecutor) {
197
- }
198
172
  async function useConnectionState(state, workerPromise, fireActionOnAbort = false) {
199
173
  const controller = state.notifyRemoteClosed;
200
174
  if (controller) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatabaseClient.js","sourceRoot":"","sources":["../../../../src/db/adapters/wa-sqlite/DatabaseClient.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import { ILogger } from '@powersync/common';
1
+ import { PowerSyncLogger } from '@powersync/common';
2
2
  import { ConcurrentSqliteConnection } from './ConcurrentConnection.js';
3
- import { RawQueryResult } from './RawSqliteConnection.js';
3
+ import { RawWebResult } from './RawSqliteConnection.js';
4
4
  export interface DatabaseServerOptions {
5
5
  inner: ConcurrentSqliteConnection;
6
6
  onClose: () => void;
7
- logger: ILogger;
7
+ logger: PowerSyncLogger;
8
8
  }
9
9
  /**
10
10
  * Access to a WA-sqlite connection that can be shared with multiple clients sending queries over an RPC protocol built
@@ -35,8 +35,8 @@ export interface ClientConnectionView {
35
35
  * give other clients access to the database afterwards.
36
36
  */
37
37
  requestAccess(write: boolean, timeoutMs?: number): Promise<string>;
38
- execute(token: string, sql: string, params: any[] | undefined): Promise<RawQueryResult>;
39
- executeBatch(token: string, sql: string, params: any[][]): Promise<RawQueryResult[]>;
38
+ execute(token: string, sql: string, params: any[] | undefined): Promise<RawWebResult>;
39
+ executeBatch(token: string, sql: string, params: any[][]): Promise<RawWebResult[]>;
40
40
  completeAccess(token: string): Promise<void>;
41
41
  /**
42
42
  * Sends update notifications to the given message port.
@@ -1,3 +1,4 @@
1
+ import { LogLevels } from '@powersync/common';
1
2
  /**
2
3
  * Access to a WA-sqlite connection that can be shared with multiple clients sending queries over an RPC protocol built
3
4
  * with the Comlink package.
@@ -12,7 +13,7 @@ export class DatabaseServer {
12
13
  constructor(options) {
13
14
  this.#options = options;
14
15
  const inner = options.inner;
15
- this.#updateBroadcastChannel = new BroadcastChannel(`${inner.options.dbFilename}-table-updates`);
16
+ this.#updateBroadcastChannel = new BroadcastChannel(`${inner.options.filename}-table-updates`);
16
17
  this.#updateBroadcastChannel.onmessage = ({ data }) => {
17
18
  this.#pushTableUpdateToClients(data);
18
19
  };
@@ -61,7 +62,7 @@ export class DatabaseServer {
61
62
  }
62
63
  // If the client holds a connection lease it hasn't returned, return that now.
63
64
  for (const { lease } of connectionLeases.values()) {
64
- this.#logger.debug(`Closing connection lease that hasn't been returned.`);
65
+ this.#logger.log({ level: LogLevels.debug, message: `Closing connection lease that hasn't been returned.` });
65
66
  await lease.returnLease();
66
67
  }
67
68
  this.#activeClients.delete(clientId);
@@ -69,7 +70,10 @@ export class DatabaseServer {
69
70
  await this.forceClose();
70
71
  }
71
72
  else {
72
- this.#logger.debug('Keeping underlying connection active since its used by other clients.');
73
+ this.#logger.log({
74
+ level: LogLevels.debug,
75
+ message: 'Keeping underlying connection active since its used by other clients.'
76
+ });
73
77
  }
74
78
  }
75
79
  };
@@ -101,9 +105,9 @@ export class DatabaseServer {
101
105
  try {
102
106
  if (lease.write) {
103
107
  // Collect update hooks invoked while the client had the write connection.
104
- const { resultSet } = await lease.lease.use((conn) => conn.execute(`SELECT powersync_update_hooks('get')`));
105
- if (resultSet) {
106
- const updatedTables = JSON.parse(resultSet.rows[0][0]);
108
+ const { rawRows } = await lease.lease.use((conn) => conn.execute(`SELECT powersync_update_hooks('get')`));
109
+ if (rawRows.length) {
110
+ const updatedTables = JSON.parse(rawRows[0][0]);
107
111
  if (updatedTables.length) {
108
112
  this.#updateBroadcastChannel.postMessage(updatedTables);
109
113
  this.#pushTableUpdateToClients(updatedTables);
@@ -136,7 +140,7 @@ export class DatabaseServer {
136
140
  };
137
141
  }
138
142
  async forceClose() {
139
- this.#logger.debug(`Closing connection to ${this.#inner.options}.`);
143
+ this.#logger.log({ level: LogLevels.debug, message: `Closing connection to ${this.#inner.options}.` });
140
144
  const connection = this.#inner;
141
145
  this.#options.onClose();
142
146
  this.#updateBroadcastChannel.close();
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatabaseServer.js","sourceRoot":"","sources":["../../../../src/db/adapters/wa-sqlite/DatabaseServer.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,23 @@
1
- import { ResolvedWASQLiteOpenFactoryOptions } from './WASQLiteOpenFactory.js';
1
+ import { WASQLiteVFS } from './vfs.js';
2
+ import { TemporaryStorageOption } from '../options.js';
3
+ import { RawQueryResult, SqliteValue } from '@powersync/common';
4
+ export interface RawWebResult extends Required<RawQueryResult> {
5
+ autocommit: boolean;
6
+ }
2
7
  export interface RawResultSet {
3
- columns: string[];
4
- rows: SQLiteCompatibleType[][];
8
+ columnNames: string[];
9
+ rawRows: SqliteValue[][];
5
10
  }
6
- export interface RawQueryResult {
7
- changes: number;
8
- lastInsertRowId: number;
9
- autocommit: boolean;
10
- resultSet: RawResultSet | undefined;
11
+ /**
12
+ * @internal
13
+ */
14
+ export interface RawWaSqliteDatabaseOptions {
15
+ filename: string;
16
+ readonly: boolean;
17
+ vfs: WASQLiteVFS;
18
+ encryptionKey: string | undefined;
19
+ temporaryStorage: TemporaryStorageOption;
20
+ cacheSizeKb: number;
11
21
  }
12
22
  /**
13
23
  * A small wrapper around WA-sqlite to help with opening databases and running statements by preparing them internally.
@@ -16,13 +26,13 @@ export interface RawQueryResult {
16
26
  * used concurrently across tabs.
17
27
  */
18
28
  export declare class RawSqliteConnection {
19
- readonly options: ResolvedWASQLiteOpenFactoryOptions;
29
+ readonly options: RawWaSqliteDatabaseOptions;
20
30
  private _sqliteAPI;
21
31
  /**
22
32
  * The `sqlite3*` connection pointer.
23
33
  */
24
34
  private db;
25
- constructor(options: ResolvedWASQLiteOpenFactoryOptions);
35
+ constructor(options: RawWaSqliteDatabaseOptions);
26
36
  get isOpen(): boolean;
27
37
  init(): Promise<void>;
28
38
  private openSQLiteAPI;
@@ -32,8 +42,8 @@ export declare class RawSqliteConnection {
32
42
  * @returns true if in autocommit mode, false if in a transaction
33
43
  */
34
44
  isAutoCommit(): boolean;
35
- execute(sql: string, bindings?: any[]): Promise<RawQueryResult>;
36
- executeBatch(sql: string, bindings: any[][]): Promise<RawQueryResult[]>;
45
+ execute(sql: string, bindings?: any[]): Promise<RawWebResult>;
46
+ executeBatch(sql: string, bindings: any[][]): Promise<RawWebResult[]>;
37
47
  private wrapQueryResults;
38
48
  /**
39
49
  * This executes a single statement using SQLite3 and returns the results as a {@link RawResultSet}.
@@ -21,7 +21,7 @@ export class RawSqliteConnection {
21
21
  }
22
22
  async init() {
23
23
  const api = (this._sqliteAPI = await this.openSQLiteAPI());
24
- this.db = await api.open_v2(this.options.dbFilename, this.options.isReadOnly ? 1 /* SQLITE_OPEN_READONLY */ : 6 /* SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE */);
24
+ this.db = await api.open_v2(this.options.filename, this.options.readonly ? 1 /* SQLITE_OPEN_READONLY */ : 6 /* SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE */);
25
25
  await this.executeRaw(`PRAGMA temp_store = ${this.options.temporaryStorage};`);
26
26
  if (this.options.encryptionKey) {
27
27
  const escapedKey = this.options.encryptionKey.replaceAll("'", "''");
@@ -42,7 +42,7 @@ export class RawSqliteConnection {
42
42
  * Create the multiple cipher vfs if an encryption key is provided
43
43
  */
44
44
  if (this.options.encryptionKey) {
45
- const createResult = module.ccall('sqlite3mc_vfs_create', 'int', ['string', 'int'], [this.options.dbFilename, 1]);
45
+ const createResult = module.ccall('sqlite3mc_vfs_create', 'int', ['string', 'int'], [this.options.filename, 1]);
46
46
  if (createResult !== 0) {
47
47
  throw new Error('Failed to create multiple cipher vfs, Database encryption will not work');
48
48
  }
@@ -80,12 +80,13 @@ export class RawSqliteConnection {
80
80
  }
81
81
  return results;
82
82
  }
83
- wrapQueryResults(api, rs) {
83
+ wrapQueryResults(api, { rawRows, columnNames }) {
84
84
  return {
85
- changes: api.changes(this.db),
86
- lastInsertRowId: api.last_insert_id(this.db),
85
+ rowsAffected: api.changes(this.db),
86
+ insertId: api.last_insert_id(this.db),
87
87
  autocommit: api.get_autocommit(this.db) != 0,
88
- resultSet: rs
88
+ rawRows,
89
+ columnNames
89
90
  };
90
91
  }
91
92
  /**
@@ -93,7 +94,7 @@ export class RawSqliteConnection {
93
94
  */
94
95
  async executeSingleStatementRaw(sql, bindings) {
95
96
  const results = await this.executeRaw(sql, bindings);
96
- return results.length ? results[0] : undefined;
97
+ return results.length ? results[0] : { columnNames: [], rawRows: [] };
97
98
  }
98
99
  async executeRaw(sql, bindings) {
99
100
  const results = [];
@@ -101,7 +102,7 @@ export class RawSqliteConnection {
101
102
  for await (const stmt of api.statements(this.db, sql)) {
102
103
  let columns;
103
104
  const rs = await this.stepThroughStatement(api, stmt, bindings ?? [], columns);
104
- columns = rs.columns;
105
+ columns = rs.columnNames;
105
106
  if (columns.length) {
106
107
  results.push(rs);
107
108
  }
@@ -131,7 +132,7 @@ export class RawSqliteConnection {
131
132
  }
132
133
  }
133
134
  knownColumns ??= api.column_names(stmt);
134
- return { columns: knownColumns, rows };
135
+ return { columnNames: knownColumns, rawRows: rows };
135
136
  }
136
137
  async close() {
137
138
  if (this.isOpen) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RawSqliteConnection.js","sourceRoot":"","sources":["../../../../src/db/adapters/wa-sqlite/RawSqliteConnection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEhF,OAAO,EAAE,gBAAgB,EAAe,MAAM,UAAU,CAAC;AAyBzD;;;;;GAKG;AACH,MAAM,OAAO,mBAAmB;IAOT;IANb,UAAU,GAAqB,IAAI,CAAC;IAC5C;;OAEG;IACK,EAAE,GAAW,CAAC,CAAC;IAEvB,YAAqB,OAAmC;QAAnC,YAAO,GAAP,OAAO,CAA4B;IAAG,CAAC;IAE5D,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,EAAE,GAAG,MAAM,GAAG,CAAC,OAAO,CACzB,IAAI,CAAC,OAAO,CAAC,QAAQ,EACrB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,gDAAgD,CAC1G,CAAC;QACF,MAAM,IAAI,CAAC,UAAU,CAAC,uBAAuB,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC/E,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACpE,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,UAAU,IAAI,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,IAAI,CAAC,UAAU,CAAC,wBAAwB,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC;QAE3E,MAAM,IAAI,CAAC,UAAU,CAAC,2CAA2C,CAAC,CAAC;IACrE,CAAC;IAEO,KAAK,CAAC,aAAa;QACzB,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACxC,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAChC;;WAEG;QACH,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAEjD;;WAEG;QACH,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YAC/B,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;YAChH,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;YAC7F,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,aAAa;QACX,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,QAAgB;QACzC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,SAAS,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAW,EAAE,QAAiB;QAC/C,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACjC,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC;YACtD,IAAI,OAAO,CAAC;YAEZ,KAAK,MAAM,YAAY,IAAI,QAAQ,EAAE,CAAC;gBACpC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;gBACpF,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;YAC/C,CAAC;YAED,+CAA+C;YAC/C,MAAM;QACR,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,gBAAgB,CAAC,GAAc,EAAE,EAAE,OAAO,EAAE,WAAW,EAAgB;QAC7E,OAAO;YACL,YAAY,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,QAAQ,EAAE,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,UAAU,EAAE,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;YAC5C,OAAO;YACP,WAAW;SACZ,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,yBAAyB,CAAC,GAAW,EAAE,QAAgB;QACnE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACrD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAW,EAAE,QAAgB;QAC5C,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACjC,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC;YACtD,IAAI,OAAO,CAAC;YAEZ,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;YAC/E,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC;YACzB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnB,CAAC;YAED,gEAAgE;YAChE,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM;YACR,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAChC,GAAc,EACd,IAAY,EACZ,QAAe,EACf,YAAkC,EAClC,iBAA0B,IAAI;QAE9B,iEAAiE;QACjE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACjC,IAAI,OAAO,CAAC,IAAI,SAAS,EAAE,CAAC;gBAC1B,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChB,IAAI,QAAQ,EAAE,CAAC;YACb,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;YAC7C,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC1B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;QAED,YAAY,KAAK,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1C,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,18 @@
1
+ import { DBAdapter, PowerSyncLogger, SQLOpenFactory } from '@powersync/common';
2
+ import { WebSQLOpenOptions } from '../options.js';
3
+ import { PoolConnection } from '../AsyncWebAdapter.js';
4
+ export interface WASQLiteOpenFactoryOptions {
5
+ open: WebSQLOpenOptions;
6
+ logger: PowerSyncLogger;
7
+ }
8
+ /**
9
+ * Opens a SQLite connection using WA-SQLite.
10
+ */
11
+ export declare class WASQLiteOpenFactory implements SQLOpenFactory {
12
+ private options;
13
+ private logger;
14
+ constructor(options: WASQLiteOpenFactoryOptions);
15
+ protected openAdapter(): DBAdapter;
16
+ openDB(): DBAdapter;
17
+ openConnection(): Promise<PoolConnection>;
18
+ }
@@ -0,0 +1,131 @@
1
+ import { LogLevels } from '@powersync/common';
2
+ import * as Comlink from 'comlink';
3
+ import { SSRDBAdapter } from '../SSRDBAdapter.js';
4
+ import { vfsRequiresDedicatedWorkers, WASQLiteVFS } from './vfs.js';
5
+ import { MultiDatabaseServer } from '../../../worker/db/MultiDatabaseServer.js';
6
+ import { DatabaseClient } from './DatabaseClient.js';
7
+ import { generateTabCloseSignal } from '../../../shared/tab_close_signal.js';
8
+ import { AsyncDbAdapter } from '../AsyncWebAdapter.js';
9
+ import { resolveAndValidateOptions } from '../resolveAndValidateOptions.js';
10
+ import { connectToExistingWorker, connectToWorker } from '../../../worker/client.js';
11
+ /**
12
+ * Opens a SQLite connection using WA-SQLite.
13
+ */
14
+ export class WASQLiteOpenFactory {
15
+ options;
16
+ logger;
17
+ constructor(options) {
18
+ this.options = resolveAndValidateOptions(options.open);
19
+ this.logger = options.logger;
20
+ }
21
+ openAdapter() {
22
+ return new AsyncDbAdapter(this.openConnection(), this.options.dbFilename);
23
+ }
24
+ openDB() {
25
+ const { disableSSRWarning, enableMultiTabs, ssrMode } = this.options;
26
+ if (ssrMode) {
27
+ if (!disableSSRWarning) {
28
+ this.logger.log({
29
+ level: LogLevels.warn,
30
+ message: `
31
+ Running PowerSync in SSR mode.
32
+ Only empty query results will be returned.
33
+ Disable this warning by setting 'disableSSRWarning: true' in options.`
34
+ });
35
+ }
36
+ return new SSRDBAdapter();
37
+ }
38
+ if (!enableMultiTabs) {
39
+ this.logger.log({
40
+ level: LogLevels.warn,
41
+ message: 'Multiple tab support is not enabled. Using this site across multiple tabs may not function correctly.'
42
+ });
43
+ }
44
+ return this.openAdapter();
45
+ }
46
+ async openConnection() {
47
+ const { enableMultiTabs, useWebWorker, vfs, dbFilename, encryptionKey, temporaryStorage, cacheSizeKb } = this.options;
48
+ if (!enableMultiTabs) {
49
+ this.logger.log({ level: LogLevels.warn, message: 'Multiple tabs are not enabled in this browser' });
50
+ }
51
+ let client;
52
+ let additionalReaders = [];
53
+ let requiresPersistentTriggers = vfsRequiresDedicatedWorkers(vfs);
54
+ function resolveRawWaSqliteDatabaseOptions(readonly) {
55
+ return {
56
+ filename: dbFilename,
57
+ readonly,
58
+ vfs,
59
+ encryptionKey,
60
+ temporaryStorage,
61
+ cacheSizeKb
62
+ };
63
+ }
64
+ if (useWebWorker) {
65
+ const optionsDbWorker = this.options.worker;
66
+ const openDatabaseWorker = async (readonly) => {
67
+ let workerConnection;
68
+ if (typeof optionsDbWorker == 'function') {
69
+ const worker = optionsDbWorker(this.options);
70
+ workerConnection = connectToExistingWorker(worker, 'database');
71
+ }
72
+ else {
73
+ const needsDedicated = vfsRequiresDedicatedWorkers(vfs);
74
+ const useShared = !needsDedicated && enableMultiTabs;
75
+ workerConnection = connectToWorker({
76
+ service: 'database',
77
+ databaseIdentifier: this.options.dbFilename,
78
+ shared: useShared,
79
+ customWorker: optionsDbWorker
80
+ });
81
+ }
82
+ const source = Comlink.wrap(workerConnection.endpoint);
83
+ const closeSignal = new AbortController();
84
+ const connection = await source.connect({
85
+ database: resolveRawWaSqliteDatabaseOptions(readonly),
86
+ logLevel: this.options.databaseWorkerLogLevel,
87
+ lockName: await generateTabCloseSignal(closeSignal.signal)
88
+ });
89
+ const clientOptions = {
90
+ connection,
91
+ source,
92
+ // This tab owns the worker, so we're guaranteed to outlive it.
93
+ remoteCanCloseUnexpectedly: false,
94
+ onClose: () => {
95
+ closeSignal.abort();
96
+ workerConnection.close();
97
+ }
98
+ };
99
+ return new DatabaseClient(clientOptions, {
100
+ ...this.options,
101
+ requiresPersistentTriggers
102
+ });
103
+ };
104
+ client = await openDatabaseWorker(false);
105
+ if (vfs == WASQLiteVFS.OPFSWriteAheadVFS) {
106
+ // This VFS supports concurrent reads, so we can open additional workers to host read-only connections for
107
+ // concurrent reads / writes.
108
+ const additionalReadersCount = this.options.additionalReaders ?? 1;
109
+ for (let i = 0; i < additionalReadersCount; i++) {
110
+ const reader = await openDatabaseWorker(true);
111
+ additionalReaders.push(reader);
112
+ }
113
+ }
114
+ }
115
+ else {
116
+ // Don't use a web worker. Instead, open the MultiDatabaseServer a worker would use locally.
117
+ const localServer = new MultiDatabaseServer(this.logger);
118
+ requiresPersistentTriggers = true;
119
+ const connection = await localServer.openConnectionLocally(this.logger, resolveRawWaSqliteDatabaseOptions(false));
120
+ client = new DatabaseClient({ connection, source: null, remoteCanCloseUnexpectedly: false }, {
121
+ ...this.options,
122
+ requiresPersistentTriggers
123
+ });
124
+ }
125
+ return {
126
+ writer: client,
127
+ additionalReaders
128
+ };
129
+ }
130
+ }
131
+ //# sourceMappingURL=WASQLiteOpenFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WASQLiteOpenFactory.js","sourceRoot":"","sources":["../../../../src/db/adapters/wa-sqlite/WASQLiteOpenFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,SAAS,EAAmC,MAAM,mBAAmB,CAAC;AAC1F,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,2BAA2B,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,cAAc,EAAwB,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAkB,MAAM,uBAAuB,CAAC;AAEvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAoB,MAAM,2BAA2B,CAAC;AAOvG;;GAEG;AACH,MAAM,OAAO,mBAAmB;IACtB,OAAO,CAA4B;IACnC,MAAM,CAAkB;IAEhC,YAAY,OAAmC;QAC7C,IAAI,CAAC,OAAO,GAAG,yBAAyB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC;IAES,WAAW;QACnB,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,iBAAiB,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAErE,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;oBACd,KAAK,EAAE,SAAS,CAAC,IAAI;oBACrB,OAAO,EAAE;;;4EAGyD;iBACnE,CAAC,CAAC;YACL,CAAC;YAED,OAAO,IAAI,YAAY,EAAE,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;gBACd,KAAK,EAAE,SAAS,CAAC,IAAI;gBACrB,OAAO,EAAE,uGAAuG;aACjH,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,GACpG,IAAI,CAAC,OAAO,CAAC;QAEf,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,+CAA+C,EAAE,CAAC,CAAC;QACvG,CAAC;QAED,IAAI,MAAsB,CAAC;QAC3B,IAAI,iBAAiB,GAAqB,EAAE,CAAC;QAC7C,IAAI,0BAA0B,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAC;QAElE,SAAS,iCAAiC,CAAC,QAAiB;YAC1D,OAAO;gBACL,QAAQ,EAAE,UAAU;gBACpB,QAAQ;gBACR,GAAG;gBACH,aAAa;gBACb,gBAAgB;gBAChB,WAAW;aACZ,CAAC;QACJ,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YAE5C,MAAM,kBAAkB,GAAG,KAAK,EAAE,QAAiB,EAA2B,EAAE;gBAC9E,IAAI,gBAAkC,CAAC;gBACvC,IAAI,OAAO,eAAe,IAAI,UAAU,EAAE,CAAC;oBACzC,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC7C,gBAAgB,GAAG,uBAAuB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;gBACjE,CAAC;qBAAM,CAAC;oBACN,MAAM,cAAc,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAC;oBACxD,MAAM,SAAS,GAAG,CAAC,cAAc,IAAI,eAAe,CAAC;oBAErD,gBAAgB,GAAG,eAAe,CAAC;wBACjC,OAAO,EAAE,UAAU;wBACnB,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;wBAC3C,MAAM,EAAE,SAAS;wBACjB,YAAY,EAAE,eAAe;qBAC9B,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAuB,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBAC7E,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;gBAC1C,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;oBACtC,QAAQ,EAAE,iCAAiC,CAAC,QAAQ,CAAC;oBACrD,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,sBAAsB;oBAC7C,QAAQ,EAAE,MAAM,sBAAsB,CAAC,WAAW,CAAC,MAAM,CAAC;iBAC3D,CAAC,CAAC;gBACH,MAAM,aAAa,GAAG;oBACpB,UAAU;oBACV,MAAM;oBACN,+DAA+D;oBAC/D,0BAA0B,EAAE,KAAK;oBACjC,OAAO,EAAE,GAAG,EAAE;wBACZ,WAAW,CAAC,KAAK,EAAE,CAAC;wBACpB,gBAAgB,CAAC,KAAK,EAAE,CAAC;oBAC3B,CAAC;iBACF,CAAC;gBAEF,OAAO,IAAI,cAAc,CAAC,aAAa,EAAE;oBACvC,GAAG,IAAI,CAAC,OAAO;oBACf,0BAA0B;iBAC3B,CAAC,CAAC;YACL,CAAC,CAAC;YAEF,MAAM,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAEzC,IAAI,GAAG,IAAI,WAAW,CAAC,iBAAiB,EAAE,CAAC;gBACzC,0GAA0G;gBAC1G,6BAA6B;gBAC7B,MAAM,sBAAsB,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,CAAC,CAAC;gBACnE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,sBAAsB,EAAE,CAAC,EAAE,EAAE,CAAC;oBAChD,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;oBAC9C,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,4FAA4F;YAC5F,MAAM,WAAW,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzD,0BAA0B,GAAG,IAAI,CAAC;YAElC,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,iCAAiC,CAAC,KAAK,CAAC,CAAC,CAAC;YAClH,MAAM,GAAG,IAAI,cAAc,CACzB,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,EAC/D;gBACE,GAAG,IAAI,CAAC,OAAO;gBACf,0BAA0B;aAC3B,CACF,CAAC;QACJ,CAAC;QAED,OAAO;YACL,MAAM,EAAE,MAAM;YACd,iBAAiB;SAClB,CAAC;IACJ,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
1
  import type * as SQLite from '@journeyapps/wa-sqlite';
2
- import { ResolvedWASQLiteOpenFactoryOptions } from './WASQLiteOpenFactory.js';
2
+ import { RawWaSqliteDatabaseOptions } from './RawSqliteConnection.js';
3
3
  /**
4
4
  * List of currently tested virtual filesystems
5
5
  */
@@ -27,6 +27,13 @@ export declare enum WASQLiteVFS {
27
27
  InMemoryVfs = "InMemoryVFS"
28
28
  }
29
29
  export declare function vfsRequiresDedicatedWorkers(vfs: WASQLiteVFS): vfs is WASQLiteVFS.OPFSCoopSyncVFS | WASQLiteVFS.AccessHandlePoolVFS | WASQLiteVFS.OPFSWriteAheadVFS;
30
+ /**
31
+ * @internal
32
+ */
33
+ export type WASQLiteModuleFactoryOptions = {
34
+ dbFileName: string;
35
+ encryptionKey?: string;
36
+ };
30
37
  /**
31
38
  * @internal
32
39
  */
@@ -34,7 +41,7 @@ export type SQLiteModule = Parameters<typeof SQLite.Factory>[0];
34
41
  /**
35
42
  * @internal
36
43
  */
37
- export declare function loadModuleAndVfs({ vfs, dbFilename, encryptionKey }: ResolvedWASQLiteOpenFactoryOptions): Promise<{
44
+ export declare function loadModuleAndVfs({ vfs, filename, encryptionKey }: RawWaSqliteDatabaseOptions): Promise<{
38
45
  module: SQLiteModule;
39
46
  vfs: SQLiteVFS;
40
47
  }>;
@@ -51,7 +51,7 @@ async function syncModuleFactory(encryptionKey) {
51
51
  /**
52
52
  * @internal
53
53
  */
54
- export async function loadModuleAndVfs({ vfs, dbFilename, encryptionKey }) {
54
+ export async function loadModuleAndVfs({ vfs, filename, encryptionKey }) {
55
55
  let moduleFactory = syncModuleFactory;
56
56
  let resolveVfs;
57
57
  switch (vfs) {
@@ -60,32 +60,32 @@ export async function loadModuleAndVfs({ vfs, dbFilename, encryptionKey }) {
60
60
  const { IDBBatchAtomicVFS } = await import('@journeyapps/wa-sqlite/src/examples/IDBBatchAtomicVFS.js');
61
61
  resolveVfs = (module) => {
62
62
  // @ts-expect-error The types for this static method are missing upstream
63
- return IDBBatchAtomicVFS.create(dbFilename, module, { lockPolicy: 'exclusive' });
63
+ return IDBBatchAtomicVFS.create(filename, module, { lockPolicy: 'exclusive' });
64
64
  };
65
65
  break;
66
66
  }
67
67
  case WASQLiteVFS.AccessHandlePoolVFS: {
68
68
  // @ts-expect-error The types for this import are missing upstream
69
69
  const { AccessHandlePoolVFS } = await import('@journeyapps/wa-sqlite/src/examples/AccessHandlePoolVFS.js');
70
- resolveVfs = (module) => AccessHandlePoolVFS.create(dbFilename, module);
70
+ resolveVfs = (module) => AccessHandlePoolVFS.create(filename, module);
71
71
  break;
72
72
  }
73
73
  case WASQLiteVFS.OPFSCoopSyncVFS: {
74
74
  // @ts-expect-error The types for this import are missing upstream
75
75
  const { OPFSCoopSyncVFS } = await import('@journeyapps/wa-sqlite/src/examples/OPFSCoopSyncVFS.js');
76
- resolveVfs = (module) => OPFSCoopSyncVFS.create(dbFilename, module);
76
+ resolveVfs = (module) => OPFSCoopSyncVFS.create(filename, module);
77
77
  break;
78
78
  }
79
79
  case WASQLiteVFS.OPFSWriteAheadVFS: {
80
80
  // @ts-expect-error The types for this import are missing upstream
81
81
  const { OPFSWriteAheadVFS } = await import('@journeyapps/wa-sqlite/src/examples/OPFSWriteAheadVFS.js');
82
- resolveVfs = (module) => OPFSWriteAheadVFS.create(dbFilename, module, {});
82
+ resolveVfs = (module) => OPFSWriteAheadVFS.create(filename, module, {});
83
83
  break;
84
84
  }
85
85
  case WASQLiteVFS.InMemoryVfs: {
86
86
  const { MemoryVFS } = await import('@journeyapps/wa-sqlite/src/examples/MemoryVFS.js');
87
87
  // @ts-expect-error The types for this static method are missing upstream
88
- resolveVfs = (module) => MemoryVFS.create(dbFilename, module);
88
+ resolveVfs = (module) => MemoryVFS.create(filename, module);
89
89
  break;
90
90
  }
91
91
  }
@@ -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 { AbstractStreamingSyncImplementationOptions, BaseObserver, LockOptions, Mutex, PowerSyncConnectionOptions, StreamingSyncImplementation, SyncStatus, SyncStatusOptions } from '@powersync/common';
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
- syncStatus: SyncStatus;
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(options?: PowerSyncConnectionOptions): Promise<void>;
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
  */