@powersync/web 0.0.0-dev-20260504100448 → 0.0.0-dev-20260630144038

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 (199) hide show
  1. package/bin/powersync.cjs +1 -1
  2. package/dist/index.react_native_web.js +1879 -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/OPFSCoopSyncVFS-DRKedN0p.js +2 -0
  11. package/dist/worker/OPFSCoopSyncVFS-DRKedN0p.js.map +1 -0
  12. package/dist/worker/OPFSWriteAheadVFS-BzodSqNq.js +2 -0
  13. package/dist/worker/OPFSWriteAheadVFS-BzodSqNq.js.map +1 -0
  14. package/dist/worker/mc-wa-sqlite-DiBqIVE5.js +2 -0
  15. package/dist/worker/mc-wa-sqlite-DiBqIVE5.js.map +1 -0
  16. package/dist/worker/mc-wa-sqlite-async-DUEhO9ef.js +2 -0
  17. package/dist/worker/mc-wa-sqlite-async-DUEhO9ef.js.map +1 -0
  18. package/dist/worker/wa-sqlite-BlSx7-_P.js +2 -0
  19. package/dist/worker/wa-sqlite-BlSx7-_P.js.map +1 -0
  20. package/dist/worker/wa-sqlite-async-BdR24Ucf.js +2 -0
  21. package/dist/worker/wa-sqlite-async-BdR24Ucf.js.map +1 -0
  22. package/dist/worker/websockets-Q8W_lerF.js +9 -0
  23. package/dist/worker/websockets-Q8W_lerF.js.map +1 -0
  24. package/dist/worker/worker.js +7 -0
  25. package/dist/worker/worker.js.map +1 -0
  26. package/lib/{src/attachments → attachments}/IndexDBFileSystemAdapter.js +1 -0
  27. package/lib/attachments/IndexDBFileSystemAdapter.js.map +1 -0
  28. package/lib/{src/db → db}/NavigatorTriggerClaimManager.d.ts +1 -1
  29. package/lib/{src/db → db}/NavigatorTriggerClaimManager.js +1 -0
  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 +48 -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 +15 -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 +2 -0
  42. package/lib/db/adapters/WebDBAdapter.js.map +1 -0
  43. package/lib/db/adapters/options.d.ts +87 -0
  44. package/lib/db/adapters/options.js +6 -0
  45. package/lib/db/adapters/options.js.map +1 -0
  46. package/lib/db/adapters/resolveAndValidateOptions.d.ts +5 -0
  47. package/lib/db/adapters/resolveAndValidateOptions.js +33 -0
  48. package/lib/db/adapters/resolveAndValidateOptions.js.map +1 -0
  49. package/lib/{src/db → db}/adapters/wa-sqlite/ConcurrentConnection.d.ts +3 -4
  50. package/lib/{src/db → db}/adapters/wa-sqlite/ConcurrentConnection.js +3 -2
  51. package/lib/db/adapters/wa-sqlite/ConcurrentConnection.js.map +1 -0
  52. package/lib/{src/db → db}/adapters/wa-sqlite/DatabaseClient.d.ts +4 -4
  53. package/lib/{src/db → db}/adapters/wa-sqlite/DatabaseClient.js +12 -37
  54. package/lib/db/adapters/wa-sqlite/DatabaseClient.js.map +1 -0
  55. package/lib/{src/db → db}/adapters/wa-sqlite/DatabaseServer.d.ts +5 -5
  56. package/lib/{src/db → db}/adapters/wa-sqlite/DatabaseServer.js +12 -7
  57. package/lib/db/adapters/wa-sqlite/DatabaseServer.js.map +1 -0
  58. package/lib/{src/db → db}/adapters/wa-sqlite/RawSqliteConnection.d.ts +22 -12
  59. package/lib/{src/db → db}/adapters/wa-sqlite/RawSqliteConnection.js +12 -10
  60. package/lib/db/adapters/wa-sqlite/RawSqliteConnection.js.map +1 -0
  61. package/lib/db/adapters/wa-sqlite/WASQLiteOpenFactory.d.ts +18 -0
  62. package/lib/db/adapters/wa-sqlite/WASQLiteOpenFactory.js +131 -0
  63. package/lib/db/adapters/wa-sqlite/WASQLiteOpenFactory.js.map +1 -0
  64. package/lib/{src/db → db}/adapters/wa-sqlite/vfs.js +1 -0
  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 +5 -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 +32 -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 +4 -2
  77. package/lib/db/sync/WebStreamingSyncImplementation.js.map +1 -0
  78. package/lib/{src/db → db}/sync/userAgent.js +1 -0
  79. package/lib/db/sync/userAgent.js.map +1 -0
  80. package/lib/{src/index.d.ts → index.d.ts} +1 -3
  81. package/lib/{src/index.js → index.js} +2 -3
  82. package/lib/index.js.map +1 -0
  83. package/lib/{src/shared → shared}/navigator.js +1 -0
  84. package/lib/shared/navigator.js.map +1 -0
  85. package/lib/{src/shared → shared}/tab_close_signal.js +1 -0
  86. package/lib/shared/tab_close_signal.js.map +1 -0
  87. package/lib/worker/SharedWorkerConnectionRequest.d.ts +5 -0
  88. package/lib/worker/SharedWorkerConnectionRequest.js +2 -0
  89. package/lib/worker/SharedWorkerConnectionRequest.js.map +1 -0
  90. package/lib/worker/client.d.ts +15 -0
  91. package/lib/worker/client.js +77 -0
  92. package/lib/worker/client.js.map +1 -0
  93. package/lib/worker/db/MultiDatabaseServer.d.ts +22 -0
  94. package/lib/{src/worker → worker}/db/MultiDatabaseServer.js +26 -15
  95. package/lib/worker/db/MultiDatabaseServer.js.map +1 -0
  96. package/lib/worker/sync/AbstractSharedSyncClientProvider.d.ts +13 -0
  97. package/lib/{src/worker → worker}/sync/AbstractSharedSyncClientProvider.js +1 -0
  98. package/lib/worker/sync/AbstractSharedSyncClientProvider.js.map +1 -0
  99. package/lib/worker/sync/BroadcastLogger.d.ts +27 -0
  100. package/lib/worker/sync/BroadcastLogger.js +65 -0
  101. package/lib/worker/sync/BroadcastLogger.js.map +1 -0
  102. package/lib/{src/worker → worker}/sync/SharedSyncImplementation.d.ts +11 -15
  103. package/lib/{src/worker → worker}/sync/SharedSyncImplementation.js +43 -43
  104. package/lib/worker/sync/SharedSyncImplementation.js.map +1 -0
  105. package/lib/{src/worker → worker}/sync/WorkerClient.d.ts +3 -3
  106. package/lib/{src/worker → worker}/sync/WorkerClient.js +3 -2
  107. package/lib/worker/sync/WorkerClient.js.map +1 -0
  108. package/lib/worker/worker.js +34 -0
  109. package/lib/worker/worker.js.map +1 -0
  110. package/package.json +22 -29
  111. package/src/db/NavigatorTriggerClaimManager.ts +1 -1
  112. package/src/db/PowerSyncDatabase.ts +80 -122
  113. package/src/db/adapters/AsyncWebAdapter.ts +17 -26
  114. package/src/db/adapters/SSRDBAdapter.ts +14 -64
  115. package/src/db/adapters/WebDBAdapter.ts +1 -1
  116. package/src/db/adapters/options.ts +100 -0
  117. package/src/db/adapters/resolveAndValidateOptions.ts +40 -0
  118. package/src/db/adapters/wa-sqlite/ConcurrentConnection.ts +4 -5
  119. package/src/db/adapters/wa-sqlite/DatabaseClient.ts +20 -56
  120. package/src/db/adapters/wa-sqlite/DatabaseServer.ts +15 -12
  121. package/src/db/adapters/wa-sqlite/RawSqliteConnection.ts +35 -24
  122. package/src/db/adapters/wa-sqlite/WASQLiteOpenFactory.ts +63 -126
  123. package/src/db/sync/SSRWebStreamingSyncImplementation.ts +4 -22
  124. package/src/db/sync/SharedWebStreamingSyncImplementation.ts +38 -77
  125. package/src/db/sync/WebRemote.ts +23 -26
  126. package/src/db/sync/WebStreamingSyncImplementation.ts +4 -5
  127. package/src/index.ts +1 -3
  128. package/src/worker/SharedWorkerConnectionRequest.ts +6 -0
  129. package/src/worker/client.ts +100 -0
  130. package/src/worker/db/MultiDatabaseServer.ts +40 -22
  131. package/src/worker/sync/AbstractSharedSyncClientProvider.ts +4 -10
  132. package/src/worker/sync/BroadcastLogger.ts +35 -103
  133. package/src/worker/sync/SharedSyncImplementation.ts +62 -63
  134. package/src/worker/sync/WorkerClient.ts +4 -4
  135. package/src/worker/worker.ts +38 -0
  136. package/dist/index.umd.js +0 -7613
  137. package/dist/index.umd.js.map +0 -1
  138. package/dist/worker/SharedSyncImplementation.umd.js +0 -15885
  139. package/dist/worker/SharedSyncImplementation.umd.js.map +0 -1
  140. package/dist/worker/WASQLiteDB.umd.js +0 -17164
  141. package/dist/worker/WASQLiteDB.umd.js.map +0 -1
  142. 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
  143. 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
  144. 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
  145. 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
  146. 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
  147. 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
  148. 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
  149. 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
  150. package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-2fb422.umd.js +0 -3562
  151. 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
  152. package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-96fb23.umd.js +0 -2478
  153. 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
  154. package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-c89911.umd.js +0 -1681
  155. 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
  156. package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-ec4eb1.umd.js +0 -1820
  157. 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
  158. package/lib/package.json +0 -91
  159. package/lib/src/db/PowerSyncDatabase.d.ts +0 -78
  160. package/lib/src/db/adapters/AbstractWebPowerSyncDatabaseOpenFactory.d.ts +0 -23
  161. package/lib/src/db/adapters/AbstractWebPowerSyncDatabaseOpenFactory.js +0 -26
  162. package/lib/src/db/adapters/AsyncWebAdapter.d.ts +0 -50
  163. package/lib/src/db/adapters/SSRDBAdapter.d.ts +0 -30
  164. package/lib/src/db/adapters/SSRDBAdapter.js +0 -68
  165. package/lib/src/db/adapters/wa-sqlite/WASQLiteOpenFactory.d.ts +0 -45
  166. package/lib/src/db/adapters/wa-sqlite/WASQLiteOpenFactory.js +0 -145
  167. package/lib/src/db/adapters/wa-sqlite/WASQLitePowerSyncDatabaseOpenFactory.d.ts +0 -15
  168. package/lib/src/db/adapters/wa-sqlite/WASQLitePowerSyncDatabaseOpenFactory.js +0 -21
  169. package/lib/src/db/adapters/web-sql-flags.d.ts +0 -92
  170. package/lib/src/db/adapters/web-sql-flags.js +0 -36
  171. package/lib/src/db/sync/WebRemote.d.ts +0 -7
  172. package/lib/src/db/sync/WebRemote.js +0 -32
  173. package/lib/src/worker/db/MultiDatabaseServer.d.ts +0 -17
  174. package/lib/src/worker/db/WASQLiteDB.worker.d.ts +0 -4
  175. package/lib/src/worker/db/WASQLiteDB.worker.js +0 -30
  176. package/lib/src/worker/db/open-worker-database.d.ts +0 -14
  177. package/lib/src/worker/db/open-worker-database.js +0 -52
  178. package/lib/src/worker/sync/AbstractSharedSyncClientProvider.d.ts +0 -19
  179. package/lib/src/worker/sync/BroadcastLogger.d.ts +0 -47
  180. package/lib/src/worker/sync/BroadcastLogger.js +0 -128
  181. package/lib/src/worker/sync/SharedSyncImplementation.worker.d.ts +0 -1
  182. package/lib/src/worker/sync/SharedSyncImplementation.worker.js +0 -11
  183. package/lib/tsconfig.tsbuildinfo +0 -1
  184. package/src/db/adapters/AbstractWebPowerSyncDatabaseOpenFactory.ts +0 -47
  185. package/src/db/adapters/wa-sqlite/WASQLitePowerSyncDatabaseOpenFactory.ts +0 -24
  186. package/src/db/adapters/web-sql-flags.ts +0 -141
  187. package/src/worker/db/WASQLiteDB.worker.ts +0 -35
  188. package/src/worker/db/open-worker-database.ts +0 -62
  189. package/src/worker/sync/SharedSyncImplementation.worker.ts +0 -14
  190. /package/dist/{8e97452e297be23b5e50.wasm → worker/assets/mc-wa-sqlite-CnHbhWvs.wasm} +0 -0
  191. /package/dist/{2075a31bb151adbb9767.wasm → worker/assets/mc-wa-sqlite-async-D6idQS2r.wasm} +0 -0
  192. /package/dist/{3322bc84de986b63c2cd.wasm → worker/assets/wa-sqlite-XZW__iJk.wasm} +0 -0
  193. /package/dist/{fbc178b70d530e8ce02b.wasm → worker/assets/wa-sqlite-async-rHzzC98y.wasm} +0 -0
  194. /package/lib/{src/attachments → attachments}/IndexDBFileSystemAdapter.d.ts +0 -0
  195. /package/lib/{src/db → db}/adapters/wa-sqlite/vfs.d.ts +0 -0
  196. /package/lib/{src/db → db}/sync/userAgent.d.ts +0 -0
  197. /package/lib/{src/shared → shared}/navigator.d.ts +0 -0
  198. /package/lib/{src/shared → shared}/tab_close_signal.d.ts +0 -0
  199. /package/lib/{src/db/adapters/WebDBAdapter.js → worker/worker.d.ts} +0 -0
@@ -1,4 +1,4 @@
1
- import { Mutex } from '@powersync/common';
1
+ import { Mutex } from '@powersync/shared-internals';
2
2
  /**
3
3
  * A wrapper around a {@link RawSqliteConnection} allowing multiple tabs to access it.
4
4
  *
@@ -37,7 +37,7 @@ export class ConcurrentSqliteConnection {
37
37
  return new Promise((resolve, reject) => {
38
38
  const options = { signal: abort };
39
39
  navigator.locks
40
- .request(`db-lock-${this.options.dbFilename}`, options, (_) => {
40
+ .request(`db-lock-${this.options.filename}`, options, (_) => {
41
41
  return new Promise((returnLock) => {
42
42
  return resolve(() => {
43
43
  returnLock();
@@ -119,3 +119,4 @@ export class ConnectionLeaseToken {
119
119
  });
120
120
  }
121
121
  }
122
+ //# sourceMappingURL=ConcurrentConnection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConcurrentConnection.js","sourceRoot":"","sources":["../../../../src/db/adapters/wa-sqlite/ConcurrentConnection.ts"],"names":[],"mappings":"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"}
@@ -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) {
@@ -225,3 +199,4 @@ async function useConnectionState(state, workerPromise, fireActionOnAbort = fals
225
199
  return workerPromise(state.connection);
226
200
  }
227
201
  }
202
+ //# sourceMappingURL=DatabaseClient.js.map
@@ -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,10 +140,11 @@ 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();
143
147
  await connection.close();
144
148
  }
145
149
  }
150
+ //# sourceMappingURL=DatabaseServer.js.map
@@ -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,14 +26,14 @@ 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
35
  private _moduleFactory;
26
- constructor(options: ResolvedWASQLiteOpenFactoryOptions);
36
+ constructor(options: RawWaSqliteDatabaseOptions);
27
37
  get isOpen(): boolean;
28
38
  init(): Promise<void>;
29
39
  private openSQLiteAPI;
@@ -33,8 +43,8 @@ export declare class RawSqliteConnection {
33
43
  * @returns true if in autocommit mode, false if in a transaction
34
44
  */
35
45
  isAutoCommit(): boolean;
36
- execute(sql: string, bindings?: any[]): Promise<RawQueryResult>;
37
- executeBatch(sql: string, bindings: any[][]): Promise<RawQueryResult[]>;
46
+ execute(sql: string, bindings?: any[]): Promise<RawWebResult>;
47
+ executeBatch(sql: string, bindings: any[][]): Promise<RawWebResult[]>;
38
48
  private wrapQueryResults;
39
49
  /**
40
50
  * This executes a single statement using SQLite3 and returns the results as a {@link RawResultSet}.
@@ -23,7 +23,7 @@ export class RawSqliteConnection {
23
23
  }
24
24
  async init() {
25
25
  const api = (this._sqliteAPI = await this.openSQLiteAPI());
26
- this.db = await api.open_v2(this.options.dbFilename, this.options.isReadOnly ? 1 /* SQLITE_OPEN_READONLY */ : 6 /* SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE */);
26
+ this.db = await api.open_v2(this.options.filename, this.options.readonly ? 1 /* SQLITE_OPEN_READONLY */ : 6 /* SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE */);
27
27
  await this.executeRaw(`PRAGMA temp_store = ${this.options.temporaryStorage};`);
28
28
  if (this.options.encryptionKey) {
29
29
  const escapedKey = this.options.encryptionKey.replace("'", "''");
@@ -34,7 +34,7 @@ export class RawSqliteConnection {
34
34
  }
35
35
  async openSQLiteAPI() {
36
36
  const { module, vfs } = await this._moduleFactory({
37
- dbFileName: this.options.dbFilename,
37
+ dbFileName: this.options.filename,
38
38
  encryptionKey: this.options.encryptionKey
39
39
  });
40
40
  const sqlite3 = WaSqliteFactory(module);
@@ -47,7 +47,7 @@ export class RawSqliteConnection {
47
47
  * Create the multiple cipher vfs if an encryption key is provided
48
48
  */
49
49
  if (this.options.encryptionKey) {
50
- const createResult = module.ccall('sqlite3mc_vfs_create', 'int', ['string', 'int'], [this.options.dbFilename, 1]);
50
+ const createResult = module.ccall('sqlite3mc_vfs_create', 'int', ['string', 'int'], [this.options.filename, 1]);
51
51
  if (createResult !== 0) {
52
52
  throw new Error('Failed to create multiple cipher vfs, Database encryption will not work');
53
53
  }
@@ -85,12 +85,13 @@ export class RawSqliteConnection {
85
85
  }
86
86
  return results;
87
87
  }
88
- wrapQueryResults(api, rs) {
88
+ wrapQueryResults(api, { rawRows, columnNames }) {
89
89
  return {
90
- changes: api.changes(this.db),
91
- lastInsertRowId: api.last_insert_id(this.db),
90
+ rowsAffected: api.changes(this.db),
91
+ insertId: api.last_insert_id(this.db),
92
92
  autocommit: api.get_autocommit(this.db) != 0,
93
- resultSet: rs
93
+ rawRows,
94
+ columnNames
94
95
  };
95
96
  }
96
97
  /**
@@ -98,7 +99,7 @@ export class RawSqliteConnection {
98
99
  */
99
100
  async executeSingleStatementRaw(sql, bindings) {
100
101
  const results = await this.executeRaw(sql, bindings);
101
- return results.length ? results[0] : undefined;
102
+ return results.length ? results[0] : { columnNames: [], rawRows: [] };
102
103
  }
103
104
  async executeRaw(sql, bindings) {
104
105
  const results = [];
@@ -106,7 +107,7 @@ export class RawSqliteConnection {
106
107
  for await (const stmt of api.statements(this.db, sql)) {
107
108
  let columns;
108
109
  const rs = await this.stepThroughStatement(api, stmt, bindings ?? [], columns);
109
- columns = rs.columns;
110
+ columns = rs.columnNames;
110
111
  if (columns.length) {
111
112
  results.push(rs);
112
113
  }
@@ -136,7 +137,7 @@ export class RawSqliteConnection {
136
137
  }
137
138
  }
138
139
  knownColumns ??= api.column_names(stmt);
139
- return { columns: knownColumns, rows };
140
+ return { columnNames: knownColumns, rawRows: rows };
140
141
  }
141
142
  async close() {
142
143
  if (this.isOpen) {
@@ -145,3 +146,4 @@ export class RawSqliteConnection {
145
146
  }
146
147
  }
147
148
  }
149
+ //# sourceMappingURL=RawSqliteConnection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RawSqliteConnection.js","sourceRoot":"","sources":["../../../../src/db/adapters/wa-sqlite/RawSqliteConnection.ts"],"names":[],"mappings":"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"}
@@ -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":"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"}
@@ -74,3 +74,4 @@ export const DEFAULT_MODULE_FACTORIES = {
74
74
  };
75
75
  }
76
76
  };
77
+ //# 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 { 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
  */