@powersync/web 1.39.0 → 2.1.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 (243) hide show
  1. package/README.md +0 -10
  2. package/bin/powersync.cjs +1 -1
  3. package/dist/index.react_native_web.js +1992 -0
  4. package/dist/index.react_native_web.js.map +1 -0
  5. package/dist/worker/AccessHandlePoolVFS-BPUHfZME.js +2 -0
  6. package/dist/worker/AccessHandlePoolVFS-BPUHfZME.js.map +1 -0
  7. package/dist/worker/FacadeVFS-d1ZDvud7.js +2 -0
  8. package/dist/worker/FacadeVFS-d1ZDvud7.js.map +1 -0
  9. package/dist/worker/IDBBatchAtomicVFS-DbkDb777.js +2 -0
  10. package/dist/worker/IDBBatchAtomicVFS-DbkDb777.js.map +1 -0
  11. package/dist/worker/MemoryVFS-DVJL5F8j.js +2 -0
  12. package/dist/worker/MemoryVFS-DVJL5F8j.js.map +1 -0
  13. package/dist/worker/OPFSCoopSyncVFS-BgTiWPfa.js +2 -0
  14. package/dist/worker/OPFSCoopSyncVFS-BgTiWPfa.js.map +1 -0
  15. package/dist/worker/OPFSWriteAheadVFS-BzodSqNq.js +2 -0
  16. package/dist/worker/OPFSWriteAheadVFS-BzodSqNq.js.map +1 -0
  17. package/dist/worker/assets/mc-wa-sqlite-DoDpgFfE.wasm +0 -0
  18. package/dist/worker/assets/mc-wa-sqlite-async-DYagSq56.wasm +0 -0
  19. package/dist/worker/assets/wa-sqlite-CagagB9I.wasm +0 -0
  20. package/dist/worker/assets/wa-sqlite-async-DCIP8kAx.wasm +0 -0
  21. package/dist/worker/mc-wa-sqlite-DDFgWP93.js +2 -0
  22. package/dist/worker/mc-wa-sqlite-DDFgWP93.js.map +1 -0
  23. package/dist/worker/mc-wa-sqlite-async-lGclTjKJ.js +2 -0
  24. package/dist/worker/mc-wa-sqlite-async-lGclTjKJ.js.map +1 -0
  25. package/dist/worker/wa-sqlite-B0tZMM0j.js +2 -0
  26. package/dist/worker/wa-sqlite-B0tZMM0j.js.map +1 -0
  27. package/dist/worker/wa-sqlite-async-CM6BmfRh.js +2 -0
  28. package/dist/worker/wa-sqlite-async-CM6BmfRh.js.map +1 -0
  29. package/dist/worker/websockets-Q8W_lerF.js +9 -0
  30. package/dist/worker/websockets-Q8W_lerF.js.map +1 -0
  31. package/dist/worker/worker.js +7 -0
  32. package/dist/worker/worker.js.map +1 -0
  33. package/lib/attachments/IndexDBFileSystemAdapter.js.map +1 -0
  34. package/lib/{src/db → db}/NavigatorTriggerClaimManager.d.ts +1 -1
  35. package/lib/db/NavigatorTriggerClaimManager.js.map +1 -0
  36. package/lib/db/PowerSyncDatabase.d.ts +67 -0
  37. package/lib/{src/db → db}/PowerSyncDatabase.js +49 -63
  38. package/lib/db/PowerSyncDatabase.js.map +1 -0
  39. package/lib/db/adapters/AsyncWebAdapter.d.ts +32 -0
  40. package/lib/{src/db → db}/adapters/AsyncWebAdapter.js +15 -15
  41. package/lib/db/adapters/AsyncWebAdapter.js.map +1 -0
  42. package/lib/db/adapters/SSRDBAdapter.d.ts +17 -0
  43. package/lib/db/adapters/SSRDBAdapter.js +37 -0
  44. package/lib/db/adapters/SSRDBAdapter.js.map +1 -0
  45. package/lib/{src/db → db}/adapters/WebDBAdapter.d.ts +1 -1
  46. package/lib/db/adapters/WebDBAdapter.js.map +1 -0
  47. package/lib/db/adapters/options.d.ts +87 -0
  48. package/lib/db/adapters/options.js +6 -0
  49. package/lib/db/adapters/options.js.map +1 -0
  50. package/lib/db/adapters/resolveAndValidateOptions.d.ts +13 -0
  51. package/lib/db/adapters/resolveAndValidateOptions.js +41 -0
  52. package/lib/db/adapters/resolveAndValidateOptions.js.map +1 -0
  53. package/lib/{src/db → db}/adapters/wa-sqlite/ConcurrentConnection.d.ts +3 -4
  54. package/lib/{src/db → db}/adapters/wa-sqlite/ConcurrentConnection.js +2 -2
  55. package/lib/db/adapters/wa-sqlite/ConcurrentConnection.js.map +1 -0
  56. package/lib/{src/db → db}/adapters/wa-sqlite/DatabaseClient.d.ts +4 -4
  57. package/lib/{src/db → db}/adapters/wa-sqlite/DatabaseClient.js +11 -37
  58. package/lib/db/adapters/wa-sqlite/DatabaseClient.js.map +1 -0
  59. package/lib/{src/db → db}/adapters/wa-sqlite/DatabaseServer.d.ts +5 -5
  60. package/lib/{src/db → db}/adapters/wa-sqlite/DatabaseServer.js +14 -7
  61. package/lib/db/adapters/wa-sqlite/DatabaseServer.js.map +1 -0
  62. package/lib/{src/db → db}/adapters/wa-sqlite/RawSqliteConnection.d.ts +22 -12
  63. package/lib/{src/db → db}/adapters/wa-sqlite/RawSqliteConnection.js +12 -9
  64. package/lib/db/adapters/wa-sqlite/RawSqliteConnection.js.map +1 -0
  65. package/lib/db/adapters/wa-sqlite/WASQLiteOpenFactory.d.ts +18 -0
  66. package/lib/db/adapters/wa-sqlite/WASQLiteOpenFactory.js +137 -0
  67. package/lib/db/adapters/wa-sqlite/WASQLiteOpenFactory.js.map +1 -0
  68. package/lib/{src/db → db}/adapters/wa-sqlite/vfs.d.ts +9 -2
  69. package/lib/{src/db → db}/adapters/wa-sqlite/vfs.js +6 -6
  70. package/lib/db/adapters/wa-sqlite/vfs.js.map +1 -0
  71. package/lib/{src/db → db}/sync/SSRWebStreamingSyncImplementation.d.ts +4 -8
  72. package/lib/{src/db → db}/sync/SSRWebStreamingSyncImplementation.js +4 -11
  73. package/lib/db/sync/SSRWebStreamingSyncImplementation.js.map +1 -0
  74. package/lib/{src/db → db}/sync/SharedWebStreamingSyncImplementation.d.ts +13 -14
  75. package/lib/{src/db → db}/sync/SharedWebStreamingSyncImplementation.js +32 -66
  76. package/lib/db/sync/SharedWebStreamingSyncImplementation.js.map +1 -0
  77. package/lib/db/sync/TabLocalStreamingSyncImplementation.d.ts +19 -0
  78. package/lib/db/sync/TabLocalStreamingSyncImplementation.js +70 -0
  79. package/lib/db/sync/TabLocalStreamingSyncImplementation.js.map +1 -0
  80. package/lib/db/sync/WebRemote.d.ts +10 -0
  81. package/lib/db/sync/WebRemote.js +33 -0
  82. package/lib/db/sync/WebRemote.js.map +1 -0
  83. package/lib/{src/db → db}/sync/WebStreamingSyncImplementation.d.ts +2 -4
  84. package/lib/{src/db → db}/sync/WebStreamingSyncImplementation.js +3 -2
  85. package/lib/db/sync/WebStreamingSyncImplementation.js.map +1 -0
  86. package/lib/db/sync/userAgent.js.map +1 -0
  87. package/lib/{src/index.d.ts → index.d.ts} +1 -3
  88. package/lib/{src/index.js → index.js} +1 -3
  89. package/lib/index.js.map +1 -0
  90. package/lib/shared/navigator.js.map +1 -0
  91. package/lib/shared/tab_close_signal.js.map +1 -0
  92. package/lib/worker/SharedWorkerConnectionRequest.d.ts +5 -0
  93. package/lib/worker/SharedWorkerConnectionRequest.js +2 -0
  94. package/lib/worker/SharedWorkerConnectionRequest.js.map +1 -0
  95. package/lib/worker/client.d.ts +17 -0
  96. package/lib/worker/client.js +90 -0
  97. package/lib/worker/client.js.map +1 -0
  98. package/lib/worker/db/MultiDatabaseServer.d.ts +22 -0
  99. package/lib/{src/worker → worker}/db/MultiDatabaseServer.js +25 -15
  100. package/lib/worker/db/MultiDatabaseServer.js.map +1 -0
  101. package/lib/worker/sync/AbstractSharedSyncClientProvider.d.ts +13 -0
  102. package/lib/worker/sync/AbstractSharedSyncClientProvider.js.map +1 -0
  103. package/lib/worker/sync/BroadcastLogger.d.ts +27 -0
  104. package/lib/worker/sync/BroadcastLogger.js +65 -0
  105. package/lib/worker/sync/BroadcastLogger.js.map +1 -0
  106. package/lib/{src/worker → worker}/sync/SharedSyncImplementation.d.ts +12 -15
  107. package/lib/{src/worker → worker}/sync/SharedSyncImplementation.js +44 -44
  108. package/lib/worker/sync/SharedSyncImplementation.js.map +1 -0
  109. package/lib/{src/worker → worker}/sync/WorkerClient.d.ts +3 -3
  110. package/lib/{src/worker → worker}/sync/WorkerClient.js +2 -2
  111. package/lib/worker/sync/WorkerClient.js.map +1 -0
  112. package/lib/worker/worker.js +34 -0
  113. package/lib/worker/worker.js.map +1 -0
  114. package/package.json +23 -31
  115. package/src/db/NavigatorTriggerClaimManager.ts +1 -1
  116. package/src/db/PowerSyncDatabase.ts +83 -127
  117. package/src/db/adapters/AsyncWebAdapter.ts +18 -27
  118. package/src/db/adapters/SSRDBAdapter.ts +14 -64
  119. package/src/db/adapters/WebDBAdapter.ts +1 -1
  120. package/src/db/adapters/options.ts +100 -0
  121. package/src/db/adapters/resolveAndValidateOptions.ts +49 -0
  122. package/src/db/adapters/wa-sqlite/ConcurrentConnection.ts +4 -5
  123. package/src/db/adapters/wa-sqlite/DatabaseClient.ts +20 -56
  124. package/src/db/adapters/wa-sqlite/DatabaseServer.ts +18 -12
  125. package/src/db/adapters/wa-sqlite/RawSqliteConnection.ts +36 -23
  126. package/src/db/adapters/wa-sqlite/WASQLiteOpenFactory.ts +70 -125
  127. package/src/db/adapters/wa-sqlite/vfs.ts +13 -8
  128. package/src/db/sync/SSRWebStreamingSyncImplementation.ts +4 -22
  129. package/src/db/sync/SharedWebStreamingSyncImplementation.ts +39 -77
  130. package/src/db/sync/TabLocalStreamingSyncImplementation.ts +90 -0
  131. package/src/db/sync/WebRemote.ts +23 -26
  132. package/src/db/sync/WebStreamingSyncImplementation.ts +4 -5
  133. package/src/index.ts +1 -3
  134. package/src/worker/SharedWorkerConnectionRequest.ts +6 -0
  135. package/src/worker/client.ts +121 -0
  136. package/src/worker/db/MultiDatabaseServer.ts +40 -22
  137. package/src/worker/sync/AbstractSharedSyncClientProvider.ts +4 -10
  138. package/src/worker/sync/BroadcastLogger.ts +35 -103
  139. package/src/worker/sync/SharedSyncImplementation.ts +65 -64
  140. package/src/worker/sync/WorkerClient.ts +4 -4
  141. package/src/worker/worker.ts +38 -0
  142. package/dist/2075a31bb151adbb9767.wasm +0 -0
  143. package/dist/3322bc84de986b63c2cd.wasm +0 -0
  144. package/dist/8e97452e297be23b5e50.wasm +0 -0
  145. package/dist/fbc178b70d530e8ce02b.wasm +0 -0
  146. package/dist/index.umd.js +0 -7821
  147. package/dist/index.umd.js.map +0 -1
  148. package/dist/worker/SharedSyncImplementation.umd.js +0 -16142
  149. package/dist/worker/SharedSyncImplementation.umd.js.map +0 -1
  150. package/dist/worker/WASQLiteDB.umd.js +0 -17437
  151. package/dist/worker/WASQLiteDB.umd.js.map +0 -1
  152. 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
  153. 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
  154. 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
  155. 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
  156. 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
  157. 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
  158. 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
  159. 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
  160. package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-2fb422.umd.js +0 -3562
  161. 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
  162. package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-833585.umd.js +0 -1400
  163. 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
  164. package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-96fb23.umd.js +0 -2478
  165. 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
  166. package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-c89911.umd.js +0 -1681
  167. 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
  168. package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-ec4eb1.umd.js +0 -1820
  169. 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
  170. package/lib/package.json +0 -91
  171. package/lib/src/attachments/IndexDBFileSystemAdapter.js.map +0 -1
  172. package/lib/src/db/NavigatorTriggerClaimManager.js.map +0 -1
  173. package/lib/src/db/PowerSyncDatabase.d.ts +0 -78
  174. package/lib/src/db/PowerSyncDatabase.js.map +0 -1
  175. package/lib/src/db/adapters/AbstractWebPowerSyncDatabaseOpenFactory.d.ts +0 -23
  176. package/lib/src/db/adapters/AbstractWebPowerSyncDatabaseOpenFactory.js +0 -27
  177. package/lib/src/db/adapters/AbstractWebPowerSyncDatabaseOpenFactory.js.map +0 -1
  178. package/lib/src/db/adapters/AsyncWebAdapter.d.ts +0 -50
  179. package/lib/src/db/adapters/AsyncWebAdapter.js.map +0 -1
  180. package/lib/src/db/adapters/SSRDBAdapter.d.ts +0 -30
  181. package/lib/src/db/adapters/SSRDBAdapter.js +0 -69
  182. package/lib/src/db/adapters/SSRDBAdapter.js.map +0 -1
  183. package/lib/src/db/adapters/WebDBAdapter.js.map +0 -1
  184. package/lib/src/db/adapters/wa-sqlite/ConcurrentConnection.js.map +0 -1
  185. package/lib/src/db/adapters/wa-sqlite/DatabaseClient.js.map +0 -1
  186. package/lib/src/db/adapters/wa-sqlite/DatabaseServer.js.map +0 -1
  187. package/lib/src/db/adapters/wa-sqlite/RawSqliteConnection.js.map +0 -1
  188. package/lib/src/db/adapters/wa-sqlite/WASQLiteOpenFactory.d.ts +0 -45
  189. package/lib/src/db/adapters/wa-sqlite/WASQLiteOpenFactory.js +0 -146
  190. package/lib/src/db/adapters/wa-sqlite/WASQLiteOpenFactory.js.map +0 -1
  191. package/lib/src/db/adapters/wa-sqlite/WASQLitePowerSyncDatabaseOpenFactory.d.ts +0 -15
  192. package/lib/src/db/adapters/wa-sqlite/WASQLitePowerSyncDatabaseOpenFactory.js +0 -22
  193. package/lib/src/db/adapters/wa-sqlite/WASQLitePowerSyncDatabaseOpenFactory.js.map +0 -1
  194. package/lib/src/db/adapters/wa-sqlite/vfs.js.map +0 -1
  195. package/lib/src/db/adapters/web-sql-flags.d.ts +0 -92
  196. package/lib/src/db/adapters/web-sql-flags.js +0 -37
  197. package/lib/src/db/adapters/web-sql-flags.js.map +0 -1
  198. package/lib/src/db/sync/SSRWebStreamingSyncImplementation.js.map +0 -1
  199. package/lib/src/db/sync/SharedWebStreamingSyncImplementation.js.map +0 -1
  200. package/lib/src/db/sync/WebRemote.d.ts +0 -7
  201. package/lib/src/db/sync/WebRemote.js +0 -33
  202. package/lib/src/db/sync/WebRemote.js.map +0 -1
  203. package/lib/src/db/sync/WebStreamingSyncImplementation.js.map +0 -1
  204. package/lib/src/db/sync/userAgent.js.map +0 -1
  205. package/lib/src/index.js.map +0 -1
  206. package/lib/src/shared/navigator.js.map +0 -1
  207. package/lib/src/shared/tab_close_signal.js.map +0 -1
  208. package/lib/src/worker/db/MultiDatabaseServer.d.ts +0 -17
  209. package/lib/src/worker/db/MultiDatabaseServer.js.map +0 -1
  210. package/lib/src/worker/db/WASQLiteDB.worker.d.ts +0 -4
  211. package/lib/src/worker/db/WASQLiteDB.worker.js +0 -31
  212. package/lib/src/worker/db/WASQLiteDB.worker.js.map +0 -1
  213. package/lib/src/worker/db/open-worker-database.d.ts +0 -14
  214. package/lib/src/worker/db/open-worker-database.js +0 -53
  215. package/lib/src/worker/db/open-worker-database.js.map +0 -1
  216. package/lib/src/worker/sync/AbstractSharedSyncClientProvider.d.ts +0 -19
  217. package/lib/src/worker/sync/AbstractSharedSyncClientProvider.js.map +0 -1
  218. package/lib/src/worker/sync/BroadcastLogger.d.ts +0 -47
  219. package/lib/src/worker/sync/BroadcastLogger.js +0 -129
  220. package/lib/src/worker/sync/BroadcastLogger.js.map +0 -1
  221. package/lib/src/worker/sync/SharedSyncImplementation.js.map +0 -1
  222. package/lib/src/worker/sync/SharedSyncImplementation.worker.js +0 -12
  223. package/lib/src/worker/sync/SharedSyncImplementation.worker.js.map +0 -1
  224. package/lib/src/worker/sync/WorkerClient.js.map +0 -1
  225. package/lib/tsconfig.tsbuildinfo +0 -1
  226. package/src/db/adapters/AbstractWebPowerSyncDatabaseOpenFactory.ts +0 -47
  227. package/src/db/adapters/wa-sqlite/WASQLitePowerSyncDatabaseOpenFactory.ts +0 -24
  228. package/src/db/adapters/web-sql-flags.ts +0 -141
  229. package/src/worker/db/WASQLiteDB.worker.ts +0 -35
  230. package/src/worker/db/open-worker-database.ts +0 -62
  231. package/src/worker/sync/SharedSyncImplementation.worker.ts +0 -14
  232. /package/lib/{src/attachments → attachments}/IndexDBFileSystemAdapter.d.ts +0 -0
  233. /package/lib/{src/attachments → attachments}/IndexDBFileSystemAdapter.js +0 -0
  234. /package/lib/{src/db → db}/NavigatorTriggerClaimManager.js +0 -0
  235. /package/lib/{src/db → db}/adapters/WebDBAdapter.js +0 -0
  236. /package/lib/{src/db → db}/sync/userAgent.d.ts +0 -0
  237. /package/lib/{src/db → db}/sync/userAgent.js +0 -0
  238. /package/lib/{src/shared → shared}/navigator.d.ts +0 -0
  239. /package/lib/{src/shared → shared}/navigator.js +0 -0
  240. /package/lib/{src/shared → shared}/tab_close_signal.d.ts +0 -0
  241. /package/lib/{src/shared → shared}/tab_close_signal.js +0 -0
  242. /package/lib/{src/worker → worker}/sync/AbstractSharedSyncClientProvider.js +0 -0
  243. /package/lib/{src/worker/sync/SharedSyncImplementation.worker.d.ts → 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();
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConcurrentConnection.js","sourceRoot":"","sources":["../../../../src/db/adapters/wa-sqlite/ConcurrentConnection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAY,MAAM,6BAA6B,CAAC;AAG9D;;;;;;;;GAQG;AACH,MAAM,OAAO,0BAA0B;IAgBlB;IAfnB;;;;OAIG;IACK,UAAU,CAAe;IAEjC;;;;;;OAMG;IACH,YACmB,KAA0B,EAC3C,mBAA4B;QADX,UAAK,GAAL,KAAK,CAAqB;QAG3C,IAAI,CAAC,UAAU,GAAG,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC;IAC7D,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC5B,CAAC;IAED,YAAY,CAAC,KAAmB;QAC9B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,OAAO,GAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;YAE/C,SAAS,CAAC,KAAK;iBACZ,OAAO,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;gBAC1D,OAAO,IAAI,OAAO,CAAO,CAAC,UAAU,EAAE,EAAE;oBACtC,OAAO,OAAO,CAAC,GAAG,EAAE;wBAClB,UAAU,EAAE,CAAC;oBACf,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC;iBACD,KAAK,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qDAAqD;IACrD,cAAc;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,KAAmB;QACzC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,IAAI,oBAAoB,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAEhE,IAAI,CAAC;YACH,yFAAyF;YACzF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAE3B,iHAAiH;YACjH,+GAA+G;YAC/G,8BAA8B;YAC9B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC;gBAC/B,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,WAAW,EAAE,CAAC;YACd,MAAM,CAAC,CAAC;QACV,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAC3B,CAAC;gBAAS,CAAC;YACT,WAAW,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,oBAAoB;IAMrB;IACA;IANV,2FAA2F;IACnF,QAAQ,GAAU,IAAI,KAAK,EAAE,CAAC;IAC9B,MAAM,GAAG,KAAK,CAAC;IAEvB,YACU,WAAqB,EACrB,UAA+B;QAD/B,gBAAW,GAAX,WAAW,CAAU;QACrB,eAAU,GAAV,UAAU,CAAqB;IACtC,CAAC;IAEJ;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;YAC1C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAI,QAAmD;QAC9D,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;YACjD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;YACzD,CAAC;YAED,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -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,10 @@ 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({
144
+ level: LogLevels.debug,
145
+ message: `Closing connection to ${JSON.stringify(this.#inner.options)}.`
146
+ });
140
147
  const connection = this.#inner;
141
148
  this.#options.onClose();
142
149
  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}.
@@ -1,5 +1,6 @@
1
1
  import { Factory as WaSqliteFactory, SQLITE_ROW } from '@journeyapps/wa-sqlite';
2
2
  import { loadModuleAndVfs } from './vfs.js';
3
+ import { maxPathNameLength } from '../resolveAndValidateOptions.js';
3
4
  /**
4
5
  * A small wrapper around WA-sqlite to help with opening databases and running statements by preparing them internally.
5
6
  *
@@ -21,7 +22,7 @@ export class RawSqliteConnection {
21
22
  }
22
23
  async init() {
23
24
  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 */);
25
+ this.db = await api.open_v2(this.options.filename, this.options.readonly ? 1 /* SQLITE_OPEN_READONLY */ : 6 /* SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE */);
25
26
  await this.executeRaw(`PRAGMA temp_store = ${this.options.temporaryStorage};`);
26
27
  if (this.options.encryptionKey) {
27
28
  const escapedKey = this.options.encryptionKey.replaceAll("'", "''");
@@ -32,6 +33,7 @@ export class RawSqliteConnection {
32
33
  }
33
34
  async openSQLiteAPI() {
34
35
  const { module, vfs } = await loadModuleAndVfs(this.options);
36
+ vfs.mxPathname = maxPathNameLength;
35
37
  const sqlite3 = WaSqliteFactory(module);
36
38
  sqlite3.vfs_register(vfs, true);
37
39
  /**
@@ -42,7 +44,7 @@ export class RawSqliteConnection {
42
44
  * Create the multiple cipher vfs if an encryption key is provided
43
45
  */
44
46
  if (this.options.encryptionKey) {
45
- const createResult = module.ccall('sqlite3mc_vfs_create', 'int', ['string', 'int'], [this.options.dbFilename, 1]);
47
+ const createResult = module.ccall('sqlite3mc_vfs_create', 'int', ['string', 'int'], [this.options.filename, 1]);
46
48
  if (createResult !== 0) {
47
49
  throw new Error('Failed to create multiple cipher vfs, Database encryption will not work');
48
50
  }
@@ -80,12 +82,13 @@ export class RawSqliteConnection {
80
82
  }
81
83
  return results;
82
84
  }
83
- wrapQueryResults(api, rs) {
85
+ wrapQueryResults(api, { rawRows, columnNames }) {
84
86
  return {
85
- changes: api.changes(this.db),
86
- lastInsertRowId: api.last_insert_id(this.db),
87
+ rowsAffected: api.changes(this.db),
88
+ insertId: api.last_insert_id(this.db),
87
89
  autocommit: api.get_autocommit(this.db) != 0,
88
- resultSet: rs
90
+ rawRows,
91
+ columnNames
89
92
  };
90
93
  }
91
94
  /**
@@ -93,7 +96,7 @@ export class RawSqliteConnection {
93
96
  */
94
97
  async executeSingleStatementRaw(sql, bindings) {
95
98
  const results = await this.executeRaw(sql, bindings);
96
- return results.length ? results[0] : undefined;
99
+ return results.length ? results[0] : { columnNames: [], rawRows: [] };
97
100
  }
98
101
  async executeRaw(sql, bindings) {
99
102
  const results = [];
@@ -101,7 +104,7 @@ export class RawSqliteConnection {
101
104
  for await (const stmt of api.statements(this.db, sql)) {
102
105
  let columns;
103
106
  const rs = await this.stepThroughStatement(api, stmt, bindings ?? [], columns);
104
- columns = rs.columns;
107
+ columns = rs.columnNames;
105
108
  if (columns.length) {
106
109
  results.push(rs);
107
110
  }
@@ -131,7 +134,7 @@ export class RawSqliteConnection {
131
134
  }
132
135
  }
133
136
  knownColumns ??= api.column_names(stmt);
134
- return { columns: knownColumns, rows };
137
+ return { columnNames: knownColumns, rawRows: rows };
135
138
  }
136
139
  async close() {
137
140
  if (this.isOpen) {
@@ -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,137 @@
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 { maxPathNameLength, 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
+ // Account for the fact that SQLite might append -journal suffixes
20
+ const maxLength = maxPathNameLength - 16;
21
+ if (this.options.dbFilename.length > maxLength) {
22
+ throw new Error(`dbFilename too long (max length is ${maxLength})`);
23
+ }
24
+ this.logger = options.logger;
25
+ }
26
+ openAdapter() {
27
+ return new AsyncDbAdapter(this.openConnection(), this.options.dbFilename);
28
+ }
29
+ openDB() {
30
+ const { disableSSRWarning, enableMultiTabs, ssrMode } = this.options;
31
+ if (ssrMode) {
32
+ if (!disableSSRWarning) {
33
+ this.logger.log({
34
+ level: LogLevels.warn,
35
+ message: `
36
+ Running PowerSync in SSR mode.
37
+ Only empty query results will be returned.
38
+ Disable this warning by setting 'disableSSRWarning: true' in options.`
39
+ });
40
+ }
41
+ return new SSRDBAdapter();
42
+ }
43
+ if (!enableMultiTabs) {
44
+ this.logger.log({
45
+ level: LogLevels.warn,
46
+ message: 'Multiple tab support is not enabled. Using this site across multiple tabs may not function correctly.'
47
+ });
48
+ }
49
+ return this.openAdapter();
50
+ }
51
+ async openConnection() {
52
+ const { enableMultiTabs, useWebWorker, vfs, dbFilename, encryptionKey, temporaryStorage, cacheSizeKb } = this.options;
53
+ if (!enableMultiTabs) {
54
+ this.logger.log({ level: LogLevels.warn, message: 'Multiple tabs are not enabled in this browser' });
55
+ }
56
+ let client;
57
+ let additionalReaders = [];
58
+ let requiresPersistentTriggers = vfsRequiresDedicatedWorkers(vfs);
59
+ function resolveRawWaSqliteDatabaseOptions(readonly) {
60
+ return {
61
+ filename: dbFilename,
62
+ readonly,
63
+ vfs,
64
+ encryptionKey,
65
+ temporaryStorage,
66
+ cacheSizeKb
67
+ };
68
+ }
69
+ if (useWebWorker) {
70
+ const optionsDbWorker = this.options.worker;
71
+ const openDatabaseWorker = async (readonly) => {
72
+ let workerConnection;
73
+ if (typeof optionsDbWorker == 'function') {
74
+ const worker = optionsDbWorker(this.options);
75
+ workerConnection = connectToExistingWorker(worker, this.logger, 'database');
76
+ }
77
+ else {
78
+ const needsDedicated = vfsRequiresDedicatedWorkers(vfs);
79
+ const useShared = !needsDedicated && enableMultiTabs;
80
+ workerConnection = connectToWorker({
81
+ service: 'database',
82
+ databaseIdentifier: this.options.dbFilename,
83
+ shared: useShared,
84
+ customWorker: optionsDbWorker,
85
+ loggerForErrors: this.logger
86
+ });
87
+ }
88
+ const source = Comlink.wrap(workerConnection.endpoint);
89
+ const closeSignal = new AbortController();
90
+ const connection = await source.connect({
91
+ database: resolveRawWaSqliteDatabaseOptions(readonly),
92
+ logLevel: this.options.databaseWorkerLogLevel,
93
+ lockName: await generateTabCloseSignal(closeSignal.signal)
94
+ });
95
+ const clientOptions = {
96
+ connection,
97
+ source,
98
+ // This tab owns the worker, so we're guaranteed to outlive it.
99
+ remoteCanCloseUnexpectedly: false,
100
+ onClose: () => {
101
+ closeSignal.abort();
102
+ workerConnection.close();
103
+ }
104
+ };
105
+ return new DatabaseClient(clientOptions, {
106
+ ...this.options,
107
+ requiresPersistentTriggers
108
+ });
109
+ };
110
+ client = await openDatabaseWorker(false);
111
+ if (vfs == WASQLiteVFS.OPFSWriteAheadVFS) {
112
+ // This VFS supports concurrent reads, so we can open additional workers to host read-only connections for
113
+ // concurrent reads / writes.
114
+ const additionalReadersCount = this.options.additionalReaders ?? 1;
115
+ for (let i = 0; i < additionalReadersCount; i++) {
116
+ const reader = await openDatabaseWorker(true);
117
+ additionalReaders.push(reader);
118
+ }
119
+ }
120
+ }
121
+ else {
122
+ // Don't use a web worker. Instead, open the MultiDatabaseServer a worker would use locally.
123
+ const localServer = new MultiDatabaseServer(this.logger);
124
+ requiresPersistentTriggers = true;
125
+ const connection = await localServer.openConnectionLocally(this.logger, resolveRawWaSqliteDatabaseOptions(false));
126
+ client = new DatabaseClient({ connection, source: null, remoteCanCloseUnexpectedly: false }, {
127
+ ...this.options,
128
+ requiresPersistentTriggers
129
+ });
130
+ }
131
+ return {
132
+ writer: client,
133
+ additionalReaders
134
+ };
135
+ }
136
+ }
137
+ //# 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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"}
@@ -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
  }>;