@powersync/web 0.0.0-dev-20260630141119 → 0.0.0-dev-20260708103617

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.umd.js +7821 -0
  3. package/dist/index.umd.js.map +1 -0
  4. package/dist/worker/SharedSyncImplementation.umd.js +16139 -0
  5. package/dist/worker/SharedSyncImplementation.umd.js.map +1 -0
  6. package/dist/worker/WASQLiteDB.umd.js +17434 -0
  7. package/dist/worker/WASQLiteDB.umd.js.map +1 -0
  8. package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_dist_mc-wa-s-9af0a7.umd.js +31 -0
  9. 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 +1 -0
  10. package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_dist_mc-wa-s-bbf5a9.umd.js +31 -0
  11. 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 +1 -0
  12. package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_dist_wa-sqli-c26e0f.umd.js +31 -0
  13. package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_dist_wa-sqli-c26e0f.umd.js.map +1 -0
  14. package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_dist_wa-sqlite_mjs.umd.js +31 -0
  15. package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_dist_wa-sqlite_mjs.umd.js.map +1 -0
  16. package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-2fb422.umd.js +3562 -0
  17. package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-2fb422.umd.js.map +1 -0
  18. package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-833585.umd.js +1400 -0
  19. package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-833585.umd.js.map +1 -0
  20. package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-96fb23.umd.js +2478 -0
  21. package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-96fb23.umd.js.map +1 -0
  22. package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-c89911.umd.js +1681 -0
  23. package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-c89911.umd.js.map +1 -0
  24. package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-ec4eb1.umd.js +1820 -0
  25. package/dist/worker/node_modules_pnpm_journeyapps_wa-sqlite_1_7_0_node_modules_journeyapps_wa-sqlite_src_examples-ec4eb1.umd.js.map +1 -0
  26. package/lib/package.json +91 -0
  27. package/lib/src/attachments/IndexDBFileSystemAdapter.js.map +1 -0
  28. package/lib/{db → src/db}/NavigatorTriggerClaimManager.d.ts +1 -1
  29. package/lib/src/db/NavigatorTriggerClaimManager.js.map +1 -0
  30. package/lib/src/db/PowerSyncDatabase.d.ts +78 -0
  31. package/lib/{db → src/db}/PowerSyncDatabase.js +61 -47
  32. package/lib/src/db/PowerSyncDatabase.js.map +1 -0
  33. package/lib/src/db/adapters/AbstractWebPowerSyncDatabaseOpenFactory.d.ts +23 -0
  34. package/lib/src/db/adapters/AbstractWebPowerSyncDatabaseOpenFactory.js +27 -0
  35. package/lib/src/db/adapters/AbstractWebPowerSyncDatabaseOpenFactory.js.map +1 -0
  36. package/lib/src/db/adapters/AsyncWebAdapter.d.ts +50 -0
  37. package/lib/{db → src/db}/adapters/AsyncWebAdapter.js +14 -14
  38. package/lib/src/db/adapters/AsyncWebAdapter.js.map +1 -0
  39. package/lib/src/db/adapters/SSRDBAdapter.d.ts +30 -0
  40. package/lib/src/db/adapters/SSRDBAdapter.js +69 -0
  41. package/lib/src/db/adapters/SSRDBAdapter.js.map +1 -0
  42. package/lib/{db → src/db}/adapters/WebDBAdapter.d.ts +1 -1
  43. package/lib/src/db/adapters/WebDBAdapter.js.map +1 -0
  44. package/lib/{db → src/db}/adapters/wa-sqlite/ConcurrentConnection.d.ts +4 -3
  45. package/lib/{db → src/db}/adapters/wa-sqlite/ConcurrentConnection.js +2 -2
  46. package/lib/src/db/adapters/wa-sqlite/ConcurrentConnection.js.map +1 -0
  47. package/lib/{db → src/db}/adapters/wa-sqlite/DatabaseClient.d.ts +4 -4
  48. package/lib/{db → src/db}/adapters/wa-sqlite/DatabaseClient.js +37 -11
  49. package/lib/src/db/adapters/wa-sqlite/DatabaseClient.js.map +1 -0
  50. package/lib/{db → src/db}/adapters/wa-sqlite/DatabaseServer.d.ts +5 -5
  51. package/lib/{db → src/db}/adapters/wa-sqlite/DatabaseServer.js +7 -11
  52. package/lib/src/db/adapters/wa-sqlite/DatabaseServer.js.map +1 -0
  53. package/lib/{db → src/db}/adapters/wa-sqlite/RawSqliteConnection.d.ts +12 -23
  54. package/lib/{db → src/db}/adapters/wa-sqlite/RawSqliteConnection.js +11 -17
  55. package/lib/src/db/adapters/wa-sqlite/RawSqliteConnection.js.map +1 -0
  56. package/lib/src/db/adapters/wa-sqlite/WASQLiteOpenFactory.d.ts +45 -0
  57. package/lib/src/db/adapters/wa-sqlite/WASQLiteOpenFactory.js +146 -0
  58. package/lib/src/db/adapters/wa-sqlite/WASQLiteOpenFactory.js.map +1 -0
  59. package/lib/src/db/adapters/wa-sqlite/WASQLitePowerSyncDatabaseOpenFactory.d.ts +15 -0
  60. package/lib/src/db/adapters/wa-sqlite/WASQLitePowerSyncDatabaseOpenFactory.js +22 -0
  61. package/lib/src/db/adapters/wa-sqlite/WASQLitePowerSyncDatabaseOpenFactory.js.map +1 -0
  62. package/lib/src/db/adapters/wa-sqlite/vfs.d.ts +40 -0
  63. package/lib/src/db/adapters/wa-sqlite/vfs.js +95 -0
  64. package/lib/src/db/adapters/wa-sqlite/vfs.js.map +1 -0
  65. package/lib/src/db/adapters/web-sql-flags.d.ts +92 -0
  66. package/lib/src/db/adapters/web-sql-flags.js +37 -0
  67. package/lib/src/db/adapters/web-sql-flags.js.map +1 -0
  68. package/lib/{db → src/db}/sync/SSRWebStreamingSyncImplementation.d.ts +8 -4
  69. package/lib/{db → src/db}/sync/SSRWebStreamingSyncImplementation.js +11 -4
  70. package/lib/src/db/sync/SSRWebStreamingSyncImplementation.js.map +1 -0
  71. package/lib/{db → src/db}/sync/SharedWebStreamingSyncImplementation.d.ts +14 -13
  72. package/lib/{db → src/db}/sync/SharedWebStreamingSyncImplementation.js +66 -31
  73. package/lib/src/db/sync/SharedWebStreamingSyncImplementation.js.map +1 -0
  74. package/lib/src/db/sync/WebRemote.d.ts +7 -0
  75. package/lib/src/db/sync/WebRemote.js +33 -0
  76. package/lib/src/db/sync/WebRemote.js.map +1 -0
  77. package/lib/{db → src/db}/sync/WebStreamingSyncImplementation.d.ts +4 -2
  78. package/lib/{db → src/db}/sync/WebStreamingSyncImplementation.js +2 -3
  79. package/lib/src/db/sync/WebStreamingSyncImplementation.js.map +1 -0
  80. package/lib/src/db/sync/userAgent.js.map +1 -0
  81. package/lib/{index.d.ts → src/index.d.ts} +3 -1
  82. package/lib/{index.js → src/index.js} +3 -1
  83. package/lib/src/index.js.map +1 -0
  84. package/lib/src/shared/navigator.js.map +1 -0
  85. package/lib/src/shared/tab_close_signal.js.map +1 -0
  86. package/lib/src/worker/db/MultiDatabaseServer.d.ts +17 -0
  87. package/lib/{worker → src/worker}/db/MultiDatabaseServer.js +18 -26
  88. package/lib/src/worker/db/MultiDatabaseServer.js.map +1 -0
  89. package/lib/src/worker/db/WASQLiteDB.worker.d.ts +4 -0
  90. package/lib/src/worker/db/WASQLiteDB.worker.js +31 -0
  91. package/lib/src/worker/db/WASQLiteDB.worker.js.map +1 -0
  92. package/lib/src/worker/db/open-worker-database.d.ts +14 -0
  93. package/lib/src/worker/db/open-worker-database.js +53 -0
  94. package/lib/src/worker/db/open-worker-database.js.map +1 -0
  95. package/lib/src/worker/sync/AbstractSharedSyncClientProvider.d.ts +19 -0
  96. package/lib/src/worker/sync/AbstractSharedSyncClientProvider.js.map +1 -0
  97. package/lib/src/worker/sync/BroadcastLogger.d.ts +47 -0
  98. package/lib/src/worker/sync/BroadcastLogger.js +129 -0
  99. package/lib/src/worker/sync/BroadcastLogger.js.map +1 -0
  100. package/lib/{worker → src/worker}/sync/SharedSyncImplementation.d.ts +15 -11
  101. package/lib/{worker → src/worker}/sync/SharedSyncImplementation.js +43 -42
  102. package/lib/src/worker/sync/SharedSyncImplementation.js.map +1 -0
  103. package/lib/src/worker/sync/SharedSyncImplementation.worker.js +12 -0
  104. package/lib/src/worker/sync/SharedSyncImplementation.worker.js.map +1 -0
  105. package/lib/{worker → src/worker}/sync/WorkerClient.d.ts +3 -3
  106. package/lib/{worker → src/worker}/sync/WorkerClient.js +2 -2
  107. package/lib/src/worker/sync/WorkerClient.js.map +1 -0
  108. package/lib/tsconfig.tsbuildinfo +1 -0
  109. package/package.json +29 -22
  110. package/src/db/NavigatorTriggerClaimManager.ts +1 -1
  111. package/src/db/PowerSyncDatabase.ts +122 -80
  112. package/src/db/adapters/AbstractWebPowerSyncDatabaseOpenFactory.ts +47 -0
  113. package/src/db/adapters/AsyncWebAdapter.ts +26 -17
  114. package/src/db/adapters/SSRDBAdapter.ts +64 -14
  115. package/src/db/adapters/WebDBAdapter.ts +1 -1
  116. package/src/db/adapters/wa-sqlite/ConcurrentConnection.ts +5 -4
  117. package/src/db/adapters/wa-sqlite/DatabaseClient.ts +56 -20
  118. package/src/db/adapters/wa-sqlite/DatabaseServer.ts +12 -15
  119. package/src/db/adapters/wa-sqlite/RawSqliteConnection.ts +24 -41
  120. package/src/db/adapters/wa-sqlite/WASQLiteOpenFactory.ts +126 -63
  121. package/src/db/adapters/wa-sqlite/WASQLitePowerSyncDatabaseOpenFactory.ts +24 -0
  122. package/src/db/adapters/wa-sqlite/vfs.ts +67 -54
  123. package/src/db/adapters/web-sql-flags.ts +141 -0
  124. package/src/db/sync/SSRWebStreamingSyncImplementation.ts +22 -4
  125. package/src/db/sync/SharedWebStreamingSyncImplementation.ts +77 -38
  126. package/src/db/sync/WebRemote.ts +26 -23
  127. package/src/db/sync/WebStreamingSyncImplementation.ts +5 -4
  128. package/src/index.ts +3 -1
  129. package/src/worker/db/MultiDatabaseServer.ts +25 -41
  130. package/src/worker/db/WASQLiteDB.worker.ts +35 -0
  131. package/src/worker/db/open-worker-database.ts +62 -0
  132. package/src/worker/sync/AbstractSharedSyncClientProvider.ts +10 -4
  133. package/src/worker/sync/BroadcastLogger.ts +103 -35
  134. package/src/worker/sync/SharedSyncImplementation.ts +63 -62
  135. package/src/worker/sync/SharedSyncImplementation.worker.ts +14 -0
  136. package/src/worker/sync/WorkerClient.ts +4 -4
  137. package/dist/index.react_native_web.js +0 -1879
  138. package/dist/index.react_native_web.js.map +0 -1
  139. package/dist/worker/AccessHandlePoolVFS-BPUHfZME.js +0 -2
  140. package/dist/worker/AccessHandlePoolVFS-BPUHfZME.js.map +0 -1
  141. package/dist/worker/FacadeVFS-d1ZDvud7.js +0 -2
  142. package/dist/worker/FacadeVFS-d1ZDvud7.js.map +0 -1
  143. package/dist/worker/IDBBatchAtomicVFS-DbkDb777.js +0 -2
  144. package/dist/worker/IDBBatchAtomicVFS-DbkDb777.js.map +0 -1
  145. package/dist/worker/OPFSCoopSyncVFS-DRKedN0p.js +0 -2
  146. package/dist/worker/OPFSCoopSyncVFS-DRKedN0p.js.map +0 -1
  147. package/dist/worker/OPFSWriteAheadVFS-BzodSqNq.js +0 -2
  148. package/dist/worker/OPFSWriteAheadVFS-BzodSqNq.js.map +0 -1
  149. package/dist/worker/mc-wa-sqlite-DiBqIVE5.js +0 -2
  150. package/dist/worker/mc-wa-sqlite-DiBqIVE5.js.map +0 -1
  151. package/dist/worker/mc-wa-sqlite-async-DUEhO9ef.js +0 -2
  152. package/dist/worker/mc-wa-sqlite-async-DUEhO9ef.js.map +0 -1
  153. package/dist/worker/wa-sqlite-BlSx7-_P.js +0 -2
  154. package/dist/worker/wa-sqlite-BlSx7-_P.js.map +0 -1
  155. package/dist/worker/wa-sqlite-async-BdR24Ucf.js +0 -2
  156. package/dist/worker/wa-sqlite-async-BdR24Ucf.js.map +0 -1
  157. package/dist/worker/websockets-Q8W_lerF.js +0 -9
  158. package/dist/worker/websockets-Q8W_lerF.js.map +0 -1
  159. package/dist/worker/worker.js +0 -7
  160. package/dist/worker/worker.js.map +0 -1
  161. package/lib/attachments/IndexDBFileSystemAdapter.js.map +0 -1
  162. package/lib/db/NavigatorTriggerClaimManager.js.map +0 -1
  163. package/lib/db/PowerSyncDatabase.d.ts +0 -67
  164. package/lib/db/PowerSyncDatabase.js.map +0 -1
  165. package/lib/db/adapters/AsyncWebAdapter.d.ts +0 -32
  166. package/lib/db/adapters/AsyncWebAdapter.js.map +0 -1
  167. package/lib/db/adapters/SSRDBAdapter.d.ts +0 -17
  168. package/lib/db/adapters/SSRDBAdapter.js +0 -37
  169. package/lib/db/adapters/SSRDBAdapter.js.map +0 -1
  170. package/lib/db/adapters/WebDBAdapter.js.map +0 -1
  171. package/lib/db/adapters/options.d.ts +0 -87
  172. package/lib/db/adapters/options.js +0 -6
  173. package/lib/db/adapters/options.js.map +0 -1
  174. package/lib/db/adapters/resolveAndValidateOptions.d.ts +0 -5
  175. package/lib/db/adapters/resolveAndValidateOptions.js +0 -33
  176. package/lib/db/adapters/resolveAndValidateOptions.js.map +0 -1
  177. package/lib/db/adapters/wa-sqlite/ConcurrentConnection.js.map +0 -1
  178. package/lib/db/adapters/wa-sqlite/DatabaseClient.js.map +0 -1
  179. package/lib/db/adapters/wa-sqlite/DatabaseServer.js.map +0 -1
  180. package/lib/db/adapters/wa-sqlite/RawSqliteConnection.js.map +0 -1
  181. package/lib/db/adapters/wa-sqlite/WASQLiteOpenFactory.d.ts +0 -18
  182. package/lib/db/adapters/wa-sqlite/WASQLiteOpenFactory.js +0 -131
  183. package/lib/db/adapters/wa-sqlite/WASQLiteOpenFactory.js.map +0 -1
  184. package/lib/db/adapters/wa-sqlite/vfs.d.ts +0 -50
  185. package/lib/db/adapters/wa-sqlite/vfs.js +0 -77
  186. package/lib/db/adapters/wa-sqlite/vfs.js.map +0 -1
  187. package/lib/db/sync/SSRWebStreamingSyncImplementation.js.map +0 -1
  188. package/lib/db/sync/SharedWebStreamingSyncImplementation.js.map +0 -1
  189. package/lib/db/sync/WebRemote.d.ts +0 -10
  190. package/lib/db/sync/WebRemote.js +0 -33
  191. package/lib/db/sync/WebRemote.js.map +0 -1
  192. package/lib/db/sync/WebStreamingSyncImplementation.js.map +0 -1
  193. package/lib/db/sync/userAgent.js.map +0 -1
  194. package/lib/index.js.map +0 -1
  195. package/lib/shared/navigator.js.map +0 -1
  196. package/lib/shared/tab_close_signal.js.map +0 -1
  197. package/lib/worker/SharedWorkerConnectionRequest.d.ts +0 -5
  198. package/lib/worker/SharedWorkerConnectionRequest.js +0 -2
  199. package/lib/worker/SharedWorkerConnectionRequest.js.map +0 -1
  200. package/lib/worker/client.d.ts +0 -15
  201. package/lib/worker/client.js +0 -77
  202. package/lib/worker/client.js.map +0 -1
  203. package/lib/worker/db/MultiDatabaseServer.d.ts +0 -22
  204. package/lib/worker/db/MultiDatabaseServer.js.map +0 -1
  205. package/lib/worker/sync/AbstractSharedSyncClientProvider.d.ts +0 -13
  206. package/lib/worker/sync/AbstractSharedSyncClientProvider.js.map +0 -1
  207. package/lib/worker/sync/BroadcastLogger.d.ts +0 -27
  208. package/lib/worker/sync/BroadcastLogger.js +0 -65
  209. package/lib/worker/sync/BroadcastLogger.js.map +0 -1
  210. package/lib/worker/sync/SharedSyncImplementation.js.map +0 -1
  211. package/lib/worker/sync/WorkerClient.js.map +0 -1
  212. package/lib/worker/worker.js +0 -34
  213. package/lib/worker/worker.js.map +0 -1
  214. package/src/db/adapters/options.ts +0 -100
  215. package/src/db/adapters/resolveAndValidateOptions.ts +0 -40
  216. package/src/worker/SharedWorkerConnectionRequest.ts +0 -6
  217. package/src/worker/client.ts +0 -100
  218. package/src/worker/worker.ts +0 -38
  219. /package/dist/{worker/assets/mc-wa-sqlite-async-D6idQS2r.wasm → 2075a31bb151adbb9767.wasm} +0 -0
  220. /package/dist/{worker/assets/wa-sqlite-XZW__iJk.wasm → 3322bc84de986b63c2cd.wasm} +0 -0
  221. /package/dist/{worker/assets/mc-wa-sqlite-CnHbhWvs.wasm → 8e97452e297be23b5e50.wasm} +0 -0
  222. /package/dist/{worker/assets/wa-sqlite-async-rHzzC98y.wasm → fbc178b70d530e8ce02b.wasm} +0 -0
  223. /package/lib/{attachments → src/attachments}/IndexDBFileSystemAdapter.d.ts +0 -0
  224. /package/lib/{attachments → src/attachments}/IndexDBFileSystemAdapter.js +0 -0
  225. /package/lib/{db → src/db}/NavigatorTriggerClaimManager.js +0 -0
  226. /package/lib/{db → src/db}/adapters/WebDBAdapter.js +0 -0
  227. /package/lib/{db → src/db}/sync/userAgent.d.ts +0 -0
  228. /package/lib/{db → src/db}/sync/userAgent.js +0 -0
  229. /package/lib/{shared → src/shared}/navigator.d.ts +0 -0
  230. /package/lib/{shared → src/shared}/navigator.js +0 -0
  231. /package/lib/{shared → src/shared}/tab_close_signal.d.ts +0 -0
  232. /package/lib/{shared → src/shared}/tab_close_signal.js +0 -0
  233. /package/lib/{worker → src/worker}/sync/AbstractSharedSyncClientProvider.js +0 -0
  234. /package/lib/{worker/worker.d.ts → src/worker/sync/SharedSyncImplementation.worker.d.ts} +0 -0
@@ -0,0 +1,19 @@
1
+ import type { PowerSyncCredentials, SyncStatusOptions } from '@powersync/common';
2
+ /**
3
+ * The client side port should provide these methods.
4
+ */
5
+ export declare abstract class AbstractSharedSyncClientProvider {
6
+ abstract fetchCredentials(): Promise<PowerSyncCredentials | null>;
7
+ abstract invalidateCredentials(): void;
8
+ abstract uploadCrud(): Promise<void>;
9
+ abstract statusChanged(status: SyncStatusOptions): void;
10
+ abstract getDBWorkerPort(): Promise<MessagePort>;
11
+ abstract trace(...x: any[]): void;
12
+ abstract debug(...x: any[]): void;
13
+ abstract info(...x: any[]): void;
14
+ abstract log(...x: any[]): void;
15
+ abstract warn(...x: any[]): void;
16
+ abstract error(...x: any[]): void;
17
+ abstract time(label: string): void;
18
+ abstract timeEnd(label: string): void;
19
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractSharedSyncClientProvider.js","sourceRoot":"","sources":["../../../../src/worker/sync/AbstractSharedSyncClientProvider.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,OAAgB,gCAAgC;CAerD"}
@@ -0,0 +1,47 @@
1
+ import { type ILogger, type ILogLevel } from '@powersync/common';
2
+ import { type WrappedSyncPort } from './SharedSyncImplementation.js';
3
+ /**
4
+ * Broadcasts logs to all clients
5
+ */
6
+ export declare class BroadcastLogger implements ILogger {
7
+ protected clients: WrappedSyncPort[];
8
+ TRACE: ILogLevel;
9
+ DEBUG: ILogLevel;
10
+ INFO: ILogLevel;
11
+ TIME: ILogLevel;
12
+ WARN: ILogLevel;
13
+ ERROR: ILogLevel;
14
+ OFF: ILogLevel;
15
+ private currentLevel;
16
+ constructor(clients: WrappedSyncPort[]);
17
+ trace(...x: any[]): void;
18
+ debug(...x: any[]): void;
19
+ info(...x: any[]): void;
20
+ log(...x: any[]): void;
21
+ warn(...x: any[]): void;
22
+ error(...x: any[]): void;
23
+ time(label: string): void;
24
+ timeEnd(label: string): void;
25
+ /**
26
+ * Set the global log level.
27
+ */
28
+ setLevel(level: ILogLevel): void;
29
+ /**
30
+ * Get the current log level.
31
+ */
32
+ getLevel(): ILogLevel;
33
+ /**
34
+ * Returns true if the given level is enabled.
35
+ */
36
+ enabledFor(level: ILogLevel): boolean;
37
+ /**
38
+ * Iterates all clients, catches individual client exceptions
39
+ * and proceeds to execute for all clients.
40
+ */
41
+ protected iterateClients(callback: (client: WrappedSyncPort) => Promise<void>): Promise<void>;
42
+ /**
43
+ * Guards against any logging errors.
44
+ * We don't want a logging exception to cause further issues upstream
45
+ */
46
+ protected sanitizeArgs(x: any[]): any[];
47
+ }
@@ -0,0 +1,129 @@
1
+ import { LogLevel } from '@powersync/common';
2
+ /**
3
+ * Broadcasts logs to all clients
4
+ */
5
+ export class BroadcastLogger {
6
+ clients;
7
+ TRACE;
8
+ DEBUG;
9
+ INFO;
10
+ TIME;
11
+ WARN;
12
+ ERROR;
13
+ OFF;
14
+ currentLevel = LogLevel.INFO;
15
+ constructor(clients) {
16
+ this.clients = clients;
17
+ this.TRACE = LogLevel.TRACE;
18
+ this.DEBUG = LogLevel.DEBUG;
19
+ this.INFO = LogLevel.INFO;
20
+ this.TIME = LogLevel.TIME;
21
+ this.WARN = LogLevel.WARN;
22
+ this.ERROR = LogLevel.ERROR;
23
+ this.OFF = LogLevel.OFF;
24
+ }
25
+ trace(...x) {
26
+ if (!this.enabledFor(this.TRACE))
27
+ return;
28
+ console.trace(...x);
29
+ const sanitized = this.sanitizeArgs(x);
30
+ this.iterateClients((client) => client.clientProvider.trace(...sanitized));
31
+ }
32
+ debug(...x) {
33
+ if (!this.enabledFor(this.DEBUG))
34
+ return;
35
+ console.debug(...x);
36
+ const sanitized = this.sanitizeArgs(x);
37
+ this.iterateClients((client) => client.clientProvider.debug(...sanitized));
38
+ }
39
+ info(...x) {
40
+ if (!this.enabledFor(this.INFO))
41
+ return;
42
+ console.info(...x);
43
+ const sanitized = this.sanitizeArgs(x);
44
+ this.iterateClients((client) => client.clientProvider.info(...sanitized));
45
+ }
46
+ log(...x) {
47
+ if (!this.enabledFor(this.INFO))
48
+ return;
49
+ console.log(...x);
50
+ const sanitized = this.sanitizeArgs(x);
51
+ this.iterateClients((client) => client.clientProvider.log(...sanitized));
52
+ }
53
+ warn(...x) {
54
+ if (!this.enabledFor(this.WARN))
55
+ return;
56
+ console.warn(...x);
57
+ const sanitized = this.sanitizeArgs(x);
58
+ this.iterateClients((client) => client.clientProvider.warn(...sanitized));
59
+ }
60
+ error(...x) {
61
+ if (!this.enabledFor(this.ERROR))
62
+ return;
63
+ console.error(...x);
64
+ const sanitized = this.sanitizeArgs(x);
65
+ this.iterateClients((client) => client.clientProvider.error(...sanitized));
66
+ }
67
+ time(label) {
68
+ if (!this.enabledFor(this.TIME))
69
+ return;
70
+ console.time(label);
71
+ this.iterateClients((client) => client.clientProvider.time(label));
72
+ }
73
+ timeEnd(label) {
74
+ if (!this.enabledFor(this.TIME))
75
+ return;
76
+ console.timeEnd(label);
77
+ this.iterateClients((client) => client.clientProvider.timeEnd(label));
78
+ }
79
+ /**
80
+ * Set the global log level.
81
+ */
82
+ setLevel(level) {
83
+ this.currentLevel = level;
84
+ }
85
+ /**
86
+ * Get the current log level.
87
+ */
88
+ getLevel() {
89
+ return this.currentLevel;
90
+ }
91
+ /**
92
+ * Returns true if the given level is enabled.
93
+ */
94
+ enabledFor(level) {
95
+ return level.value >= this.currentLevel.value;
96
+ }
97
+ /**
98
+ * Iterates all clients, catches individual client exceptions
99
+ * and proceeds to execute for all clients.
100
+ */
101
+ async iterateClients(callback) {
102
+ for (const client of this.clients) {
103
+ try {
104
+ await callback(client);
105
+ }
106
+ catch (ex) {
107
+ console.error('Caught exception when iterating client', ex);
108
+ }
109
+ }
110
+ }
111
+ /**
112
+ * Guards against any logging errors.
113
+ * We don't want a logging exception to cause further issues upstream
114
+ */
115
+ sanitizeArgs(x) {
116
+ const sanitizedParams = x.map((param) => {
117
+ try {
118
+ // Try and clone here first. If it fails it won't be passable over a MessagePort
119
+ return structuredClone(param);
120
+ }
121
+ catch (ex) {
122
+ console.error(ex);
123
+ return 'Could not serialize log params. Check shared worker logs for more details.';
124
+ }
125
+ });
126
+ return sanitizedParams;
127
+ }
128
+ }
129
+ //# sourceMappingURL=BroadcastLogger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BroadcastLogger.js","sourceRoot":"","sources":["../../../../src/worker/sync/BroadcastLogger.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,8 @@
1
- import { BaseObserver, DBAdapter, SyncStatus } from '@powersync/common';
2
- import { ConnectionManager, SubscribedStream, type StreamingSyncImplementation, type StreamingSyncImplementationListener, Mutex, ResolvedSyncOptions } from '@powersync/shared-internals';
1
+ import { BaseObserver, ConnectionManager, DBAdapter, SubscribedStream, SyncStatus, Mutex, type ILogLevel, type ILogger, type PowerSyncConnectionOptions, type StreamingSyncImplementation, type StreamingSyncImplementationListener, type SyncStatusOptions } from '@powersync/common';
3
2
  import * as Comlink from 'comlink';
4
3
  import { WebStreamingSyncImplementation, WebStreamingSyncImplementationOptions } from '../../db/sync/WebStreamingSyncImplementation.js';
4
+ import { ResolvedWebSQLOpenOptions } from '../../db/adapters/web-sql-flags.js';
5
5
  import { AbstractSharedSyncClientProvider } from './AbstractSharedSyncClientProvider.js';
6
- import { BroadcastLogger } from './BroadcastLogger.js';
7
- import { ResolvedWebSQLOpenOptions } from '../../db/adapters/options.js';
8
6
  /**
9
7
  * @internal
10
8
  * Manual message events for shared sync clients
@@ -28,9 +26,8 @@ export type ManualSharedSyncPayload = {
28
26
  * @internal
29
27
  */
30
28
  export type SharedSyncInitOptions = {
31
- streamOptions: Omit<WebStreamingSyncImplementationOptions, 'adapter' | 'uploadCrud' | 'remote' | 'subscriptions' | 'logger'>;
29
+ streamOptions: Omit<WebStreamingSyncImplementationOptions, 'adapter' | 'uploadCrud' | 'remote' | 'subscriptions'>;
32
30
  dbParams: ResolvedWebSQLOpenOptions;
33
- enableBroadcastLogs: boolean;
34
31
  };
35
32
  /**
36
33
  * @internal
@@ -67,12 +64,13 @@ export declare class SharedSyncImplementation extends BaseObserver<SharedSyncImp
67
64
  protected fetchCredentialsController?: RemoteOperationAbortController;
68
65
  protected uploadDataController?: RemoteOperationAbortController;
69
66
  protected syncParams: SharedSyncInitOptions | null;
70
- protected lastConnectOptions: ResolvedSyncOptions | undefined;
67
+ protected logger: ILogger;
68
+ protected lastConnectOptions: PowerSyncConnectionOptions | undefined;
71
69
  protected portMutex: Mutex;
72
70
  private subscriptions;
73
71
  protected connectionManager: ConnectionManager;
74
- private syncStatus?;
75
- logger: BroadcastLogger;
72
+ syncStatus: SyncStatus;
73
+ broadCastLogger: ILogger;
76
74
  protected readonly database: DBAdapter;
77
75
  constructor();
78
76
  get isConnected(): boolean;
@@ -85,11 +83,12 @@ export declare class SharedSyncImplementation extends BaseObserver<SharedSyncImp
85
83
  * This returns a random port which is not closing.
86
84
  */
87
85
  protected getRandomWrappedPort(): Promise<WrappedSyncPort | undefined>;
86
+ waitForStatus(status: SyncStatusOptions): Promise<void>;
88
87
  waitUntilStatusMatches(predicate: (status: SyncStatus) => boolean): Promise<void>;
89
88
  waitForReady(): Promise<void>;
90
89
  private collectActiveSubscriptions;
91
90
  updateSubscriptions(port: WrappedSyncPort, subscriptions: SubscribedStream[]): void;
92
- setLogLevel(level: number): void;
91
+ setLogLevel(level: ILogLevel): void;
93
92
  /**
94
93
  * Configures the DBAdapter connection and a streaming sync client.
95
94
  */
@@ -101,7 +100,7 @@ export declare class SharedSyncImplementation extends BaseObserver<SharedSyncImp
101
100
  * The connection will simply be reconnected whenever a new tab
102
101
  * connects.
103
102
  */
104
- connect(options: ResolvedSyncOptions, serializedSchema: any): Promise<void>;
103
+ connect(options?: PowerSyncConnectionOptions): Promise<void>;
105
104
  disconnect(): Promise<void>;
106
105
  /**
107
106
  * Adds a new client tab's message port to the list of connected ports
@@ -127,4 +126,9 @@ export declare class SharedSyncImplementation extends BaseObserver<SharedSyncImp
127
126
  */
128
127
  private openInternalDB;
129
128
  private generateReconnectableDatabase;
129
+ /**
130
+ * A method to update the all shared statuses for each
131
+ * client.
132
+ */
133
+ private updateAllStatuses;
130
134
  }
@@ -1,5 +1,4 @@
1
- import { BaseObserver, DBAdapter, LogLevels, SyncStreamConnectionMethod } from '@powersync/common';
2
- import { AbortOperation, ConnectionManager, SqliteBucketStorage, Mutex } from '@powersync/shared-internals';
1
+ import { AbortOperation, BaseObserver, ConnectionManager, DBAdapterDefaultMixin, SqliteBucketStorage, SyncStatus, createLogger, Mutex } from '@powersync/common';
3
2
  import * as Comlink from 'comlink';
4
3
  import { WebRemote } from '../../db/sync/WebRemote.js';
5
4
  import { WebStreamingSyncImplementation } from '../../db/sync/WebStreamingSyncImplementation.js';
@@ -36,17 +35,19 @@ export class SharedSyncImplementation extends BaseObserver {
36
35
  fetchCredentialsController;
37
36
  uploadDataController;
38
37
  syncParams;
38
+ logger;
39
39
  lastConnectOptions;
40
40
  portMutex;
41
41
  subscriptions = [];
42
42
  connectionManager;
43
43
  syncStatus;
44
- logger;
44
+ broadCastLogger;
45
45
  database = this.generateReconnectableDatabase();
46
46
  constructor() {
47
47
  super();
48
48
  this.ports = [];
49
49
  this.syncParams = null;
50
+ this.logger = createLogger('shared-sync');
50
51
  this.lastConnectOptions = undefined;
51
52
  this.portMutex = new Mutex();
52
53
  this.isInitialized = new Promise((resolve) => {
@@ -57,16 +58,15 @@ export class SharedSyncImplementation extends BaseObserver {
57
58
  }
58
59
  });
59
60
  });
60
- this.logger = new BroadcastLogger('shared-sync', this.ports);
61
+ this.syncStatus = new SyncStatus({});
62
+ this.broadCastLogger = new BroadcastLogger(this.ports);
61
63
  this.connectionManager = new ConnectionManager({
62
64
  createSyncImplementation: async () => {
63
65
  await this.waitForReady();
64
66
  const sync = this.generateStreamingImplementation();
65
67
  const onDispose = sync.registerListener({
66
- statusChanged: (snapshot) => {
67
- this.syncStatus = snapshot;
68
- const json = snapshot.toJSON();
69
- this.ports.forEach((p) => p.clientProvider.statusChanged(json));
68
+ statusChanged: (status) => {
69
+ this.updateAllStatuses(status.toJSON());
70
70
  }
71
71
  });
72
72
  return {
@@ -74,8 +74,7 @@ export class SharedSyncImplementation extends BaseObserver {
74
74
  onDispose
75
75
  };
76
76
  },
77
- logger: this.logger,
78
- defaultConnectionMethod: SyncStreamConnectionMethod.HTTP
77
+ logger: this.logger
79
78
  });
80
79
  }
81
80
  get isConnected() {
@@ -105,6 +104,11 @@ export class SharedSyncImplementation extends BaseObserver {
105
104
  return nonClosingPorts[Math.floor(Math.random() * nonClosingPorts.length)];
106
105
  });
107
106
  }
107
+ async waitForStatus(status) {
108
+ return this.withSyncImplementation(async (sync) => {
109
+ return sync.waitForStatus(status);
110
+ });
111
+ }
108
112
  async waitUntilStatusMatches(predicate) {
109
113
  return this.withSyncImplementation(async (sync) => {
110
114
  return sync.waitUntilStatusMatches(predicate);
@@ -114,7 +118,7 @@ export class SharedSyncImplementation extends BaseObserver {
114
118
  return this.isInitialized;
115
119
  }
116
120
  collectActiveSubscriptions() {
117
- this.logger.log({ level: LogLevels.debug, message: 'Collecting active stream subscriptions across tabs' });
121
+ this.logger.debug('Collecting active stream subscriptions across tabs');
118
122
  const active = new Map();
119
123
  for (const port of this.ports) {
120
124
  for (const stream of port.currentSubscriptions) {
@@ -123,10 +127,7 @@ export class SharedSyncImplementation extends BaseObserver {
123
127
  }
124
128
  }
125
129
  this.subscriptions = [...active.values()];
126
- this.logger.log({
127
- level: LogLevels.debug,
128
- message: `Collected stream subscriptions, ${JSON.stringify(this.subscriptions)}`
129
- });
130
+ this.logger.debug('Collected stream subscriptions', this.subscriptions);
130
131
  this.connectionManager.syncStreamImplementation?.updateSubscriptions(this.subscriptions);
131
132
  }
132
133
  updateSubscriptions(port, subscriptions) {
@@ -135,6 +136,7 @@ export class SharedSyncImplementation extends BaseObserver {
135
136
  }
136
137
  setLogLevel(level) {
137
138
  this.logger.setLevel(level);
139
+ this.broadCastLogger.setLevel(level);
138
140
  }
139
141
  /**
140
142
  * Configures the DBAdapter connection and a streaming sync client.
@@ -149,16 +151,14 @@ export class SharedSyncImplementation extends BaseObserver {
149
151
  }
150
152
  // First time setting params
151
153
  this.syncParams = params;
152
- this.logger.sendBroadcasts = params.enableBroadcastLogs;
154
+ if (params.streamOptions?.flags?.broadcastLogs) {
155
+ this.logger = this.broadCastLogger;
156
+ }
153
157
  // Ensure we have a usable database connection, the reconnectable database will connect lazily on first use.
154
158
  await this.database.readLock(async () => { });
155
159
  self.onerror = (event) => {
156
160
  // Share any uncaught events on the broadcast logger
157
- this.logger.log({
158
- level: LogLevels.error,
159
- message: 'Uncaught exception in PowerSync shared sync worker',
160
- error: event
161
- });
161
+ this.logger.error('Uncaught exception in PowerSync shared sync worker', event);
162
162
  };
163
163
  this.iterateListeners((l) => l.initialized?.());
164
164
  }
@@ -173,9 +173,9 @@ export class SharedSyncImplementation extends BaseObserver {
173
173
  * The connection will simply be reconnected whenever a new tab
174
174
  * connects.
175
175
  */
176
- async connect(options, serializedSchema) {
176
+ async connect(options) {
177
177
  this.lastConnectOptions = options;
178
- return this.connectionManager.connect(CONNECTOR_PLACEHOLDER, options ?? {}, serializedSchema);
178
+ return this.connectionManager.connect(CONNECTOR_PLACEHOLDER, options ?? {});
179
179
  }
180
180
  async disconnect() {
181
181
  return this.connectionManager.disconnect();
@@ -194,7 +194,7 @@ export class SharedSyncImplementation extends BaseObserver {
194
194
  };
195
195
  this.ports.push(portProvider);
196
196
  // Give the newly connected client the latest status
197
- const status = this.syncStatus;
197
+ const status = this.connectionManager.syncStreamImplementation?.syncStatus;
198
198
  if (status) {
199
199
  portProvider.clientProvider.statusChanged(status.toJSON());
200
200
  }
@@ -214,10 +214,7 @@ export class SharedSyncImplementation extends BaseObserver {
214
214
  return await this.portMutex.runExclusive(async () => {
215
215
  const index = this.ports.findIndex((p) => p == port);
216
216
  if (index < 0) {
217
- this.logger.log({
218
- level: LogLevels.warn,
219
- message: `Could not remove port ${port} since it is not present in active ports.`
220
- });
217
+ this.logger.warn(`Could not remove port ${port} since it is not present in active ports.`);
221
218
  return () => { };
222
219
  }
223
220
  const trackedPort = this.ports[index];
@@ -278,14 +275,11 @@ export class SharedSyncImplementation extends BaseObserver {
278
275
  throw new Error('No client port found to invalidate credentials');
279
276
  }
280
277
  try {
281
- this.logger.log({
282
- level: LogLevels.info,
283
- message: 'calling the last port client provider to invalidate credentials'
284
- });
278
+ this.logger.log('calling the last port client provider to invalidate credentials');
285
279
  lastPort.clientProvider.invalidateCredentials();
286
280
  }
287
- catch (error) {
288
- this.logger.log({ level: LogLevels.error, message: 'error invalidating credentials', error });
281
+ catch (ex) {
282
+ this.logger.error('error invalidating credentials', ex);
289
283
  }
290
284
  },
291
285
  fetchCredentials: async () => {
@@ -301,10 +295,7 @@ export class SharedSyncImplementation extends BaseObserver {
301
295
  };
302
296
  abortController.signal.onabort = reject;
303
297
  try {
304
- this.logger.log({
305
- level: LogLevels.info,
306
- message: 'calling the last port client provider for credentials'
307
- });
298
+ this.logger.log('calling the last port client provider for credentials');
308
299
  resolve(await lastPort.clientProvider.fetchCredentials());
309
300
  }
310
301
  catch (ex) {
@@ -413,7 +404,7 @@ export class SharedSyncImplementation extends BaseObserver {
413
404
  });
414
405
  clearTimeout(timeout);
415
406
  client.closeListeners.push(async () => {
416
- this.logger.log({ level: LogLevels.info, message: 'Aborting open connection because associated tab closed.' });
407
+ this.logger.info('Aborting open connection because associated tab closed.');
417
408
  handleClosed(db);
418
409
  /**
419
410
  * Don't await this close operation. It might never resolve if the tab is closed.
@@ -421,14 +412,14 @@ export class SharedSyncImplementation extends BaseObserver {
421
412
  * We then call close. The close operation is configured to fire-and-forget, the main promise will reject immediately.
422
413
  */
423
414
  db.markRemoteClosed();
424
- db.close().catch((error) => this.logger.log({ level: LogLevels.warn, message: 'error closing database connection', error }));
415
+ db.close().catch((ex) => this.logger.warn('error closing database connection', ex));
425
416
  });
426
417
  return db;
427
418
  }
428
419
  generateReconnectableDatabase() {
429
420
  const syncParams = this.syncParams;
430
421
  const sharedSync = this;
431
- return new (class extends DBAdapter {
422
+ class ReconnectPool extends BaseObserver {
432
423
  connectionState = null;
433
424
  get name() {
434
425
  return syncParams?.dbParams.dbFilename;
@@ -485,7 +476,17 @@ export class SharedSyncImplementation extends BaseObserver {
485
476
  async refreshSchema() {
486
477
  // Not used by sync client.
487
478
  }
488
- })();
479
+ }
480
+ const Adapter = DBAdapterDefaultMixin(ReconnectPool);
481
+ return new Adapter();
482
+ }
483
+ /**
484
+ * A method to update the all shared statuses for each
485
+ * client.
486
+ */
487
+ updateAllStatuses(status) {
488
+ this.syncStatus = new SyncStatus(status);
489
+ this.ports.forEach((p) => p.clientProvider.statusChanged(status));
489
490
  }
490
491
  }
491
492
  /**
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SharedSyncImplementation.js","sourceRoot":"","sources":["../../../../src/worker/sync/SharedSyncImplementation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,YAAY,EACZ,iBAAiB,EAGjB,qBAAqB,EAKrB,mBAAmB,EAEnB,UAAU,EACV,YAAY,EACZ,KAAK,EAON,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EACL,8BAA8B,EAE/B,MAAM,iDAAiD,CAAC;AAIzD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAwB,MAAM,+CAA+C,CAAC;AACrG,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAE1E;;;GAGG;AACH,MAAM,CAAN,IAAY,qBAQX;AARD,WAAY,qBAAqB;IAC/B;;;OAGG;IACH,sDAA6B,CAAA;IAE7B,gDAAuB,CAAA;AACzB,CAAC,EARW,qBAAqB,KAArB,qBAAqB,QAQhC;AA6CD;;;;GAIG;AACH,MAAM,qBAAqB,GAAG,EAA+B,CAAC;AAE9D;;;GAGG;AACH,MAAM,OAAO,wBAAyB,SAAQ,YAA8C;IAChF,KAAK,CAAoB;IAEzB,aAAa,CAAgB;IAC7B,cAAc,CAAc;IAE5B,0BAA0B,CAAkC;IAC5D,oBAAoB,CAAkC;IAEtD,UAAU,CAA+B;IACzC,MAAM,CAAU;IAChB,kBAAkB,CAAyC;IAC3D,SAAS,CAAQ;IACnB,aAAa,GAAuB,EAAE,CAAC;IAErC,iBAAiB,CAAoB;IAC/C,UAAU,CAAa;IACvB,eAAe,CAAU;IACN,QAAQ,GAAG,IAAI,CAAC,6BAA6B,EAAE,CAAC;IAEnE;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;QAC1C,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,KAAK,EAAE,CAAC;QAE7B,IAAI,CAAC,aAAa,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBACrC,WAAW,EAAE,GAAG,EAAE;oBAChB,OAAO,EAAE,CAAC;oBACV,QAAQ,EAAE,EAAE,CAAC;gBACf,CAAC;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEvD,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAAC;YAC7C,wBAAwB,EAAE,KAAK,IAAI,EAAE;gBACnC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;gBAE1B,MAAM,IAAI,GAAG,IAAI,CAAC,+BAA+B,EAAE,CAAC;gBACpD,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC;oBACtC,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE;wBACxB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC1C,CAAC;iBACF,CAAC,CAAC;gBAEH,OAAO;oBACL,IAAI;oBACJ,SAAS;iBACV,CAAC;YACJ,CAAC;YACD,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,EAAE,WAAW,IAAI,KAAK,CAAC;IAC/E,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,kBAAkB;QAChC,0CAA0C;QAC1C,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE;YAC5C,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;oBAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;YACD,OAAO;QACT,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,oBAAoB;QAClC,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE;YAC5C,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC/D,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAyB;QAC3C,OAAO,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAChD,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,SAA0C;QACrE,OAAO,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAChD,OAAO,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAEO,0BAA0B;QAChC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,IAAI,GAAG,EAA4B,CAAC;QACnD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAC7C,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACxE,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,EAAE,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3F,CAAC;IAED,mBAAmB,CAAC,IAAqB,EAAE,aAAiC;QAC1E,IAAI,CAAC,oBAAoB,GAAG,aAAa,CAAC;QAC1C,IAAI,CAAC,0BAA0B,EAAE,CAAC;IACpC,CAAC;IAED,WAAW,CAAC,KAAgB;QAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,MAA6B;QAC3C,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;YAC3C,IAAI,CAAC,0BAA0B,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,4DAA4D;YAC5D,OAAO;QACT,CAAC;QAED,4BAA4B;QAC5B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QACzB,IAAI,MAAM,CAAC,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;YAC/C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;QACrC,CAAC;QAED,4GAA4G;QAC5G,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,GAAE,CAAC,CAAC,CAAC;QAE7C,IAAI,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE;YACvB,oDAAoD;YACpD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oDAAoD,EAAE,KAAK,CAAC,CAAC;QACjF,CAAC,CAAC;QAEF,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;IACxC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,OAAO,CAAC,OAAoC;QAChD,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC;QAClC,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,qBAAqB,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,IAAiB;QAC7B,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE;YAC5C,MAAM,YAAY,GAAG;gBACnB,IAAI;gBACJ,cAAc,EAAE,OAAO,CAAC,IAAI,CAAmC,IAAI,CAAC;gBACpE,oBAAoB,EAAE,EAAE;gBACxB,cAAc,EAAE,EAAE;gBAClB,SAAS,EAAE,KAAK;aACS,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAE9B,oDAAoD;YACpD,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,EAAE,UAAU,CAAC;YAC3E,IAAI,MAAM,EAAE,CAAC;gBACX,YAAY,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7D,CAAC;YAED,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU,CAAC,IAAqB;QACpC,0DAA0D;QAC1D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,0CAA0C;QAC1C,sEAAsE;QACtE,4CAA4C;QAC5C,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;YACrD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,IAAI,2CAA2C,CAAC,CAAC;gBAC3F,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACtC,uCAAuC;YACvC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAE5B;;;eAGG;YACH,CAAC,IAAI,CAAC,0BAA0B,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,EAAE;gBACvF,IAAI,eAAe,EAAE,UAAU,IAAI,IAAI,EAAE,CAAC;oBACxC,eAAgB,CAAC,UAAU,CAAC,KAAK,CAC/B,IAAI,cAAc,CAAC,uDAAuD,CAAC,CAC5E,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,4FAA4F;YAC5F,KAAK,MAAM,aAAa,IAAI,WAAW,CAAC,cAAc,EAAE,CAAC;gBACvD,MAAM,aAAa,EAAE,CAAC;YACxB,CAAC;YAED,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAElC,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAClE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACzC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,OAAO,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAChD,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC;IAES,KAAK,CAAC,sBAAsB,CAAI,QAA2D;QACnG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAE1B,IAAI,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,EAAE,CAAC;YACpD,OAAO,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,OAAO,CAA8B,CAAC,OAAO,EAAE,EAAE;YACtE,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;gBACtD,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE;oBAC1B,OAAO,CAAC,IAAI,CAAC,CAAC;oBACd,OAAO,EAAE,EAAE,CAAC;gBACd,CAAC;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAES,+BAA+B;QACvC,gEAAgE;QAChE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAW,CAAC;QACpC,oGAAoG;QACpG,OAAO,IAAI,8BAA8B,CAAC;YACxC,OAAO,EAAE,IAAI,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC;YAC5D,MAAM,EAAE,IAAI,SAAS,CACnB;gBACE,qBAAqB,EAAE,KAAK,IAAI,EAAE;oBAChC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;oBACpE,CAAC;oBACD,IAAI,CAAC;wBACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;wBACnF,QAAQ,CAAC,cAAc,CAAC,qBAAqB,EAAE,CAAC;oBAClD,CAAC;oBAAC,OAAO,EAAE,EAAE,CAAC;wBACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,EAAE,CAAC,CAAC;oBAC1D,CAAC;gBACH,CAAC;gBACD,gBAAgB,EAAE,KAAK,IAAI,EAAE;oBAC3B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;oBAC/D,CAAC;oBACD,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;wBAC3C,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;wBAC9C,IAAI,CAAC,0BAA0B,GAAG;4BAChC,UAAU,EAAE,eAAe;4BAC3B,UAAU,EAAE,QAAQ;yBACrB,CAAC;wBAEF,eAAe,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;wBACxC,IAAI,CAAC;4BACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;4BACzE,OAAO,CAAC,MAAM,QAAQ,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC,CAAC;wBAC5D,CAAC;wBAAC,OAAO,EAAE,EAAE,CAAC;4BACZ,MAAM,CAAC,EAAE,CAAC,CAAC;wBACb,CAAC;gCAAS,CAAC;4BACT,IAAI,CAAC,0BAA0B,GAAG,SAAS,CAAC;wBAC9C,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC;aACF,EACD,IAAI,CAAC,MAAM,CACZ;YACD,UAAU,EAAE,KAAK,IAAI,EAAE;gBACrB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;gBACzD,CAAC;gBAED,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;oBAC3C,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;oBAC9C,IAAI,CAAC,oBAAoB,GAAG;wBAC1B,UAAU,EAAE,eAAe;wBAC3B,UAAU,EAAE,QAAQ;qBACrB,CAAC;oBAEF,+BAA+B;oBAC/B,eAAe,CAAC,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;oBACjD,IAAI,CAAC;wBACH,OAAO,CAAC,MAAM,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC;oBACtD,CAAC;oBAAC,OAAO,EAAE,EAAE,CAAC;wBACZ,MAAM,CAAC,EAAE,CAAC,CAAC;oBACb,CAAC;4BAAS,CAAC;wBACT,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;oBACxC,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YACD,GAAG,UAAU,CAAC,aAAa;YAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,wCAAwC;YACxC,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAC1B,YAAqE;QAErE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACjD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,uCAAuC;YACvC,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,CAAC;QAED,uDAAuD;QACvD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,eAAe,CAAC,KAAK,EAAE,CAAC;QAC1B,CAAC,EAAE,MAAM,CAAC,CAAC;QAEX;;WAEG;QACH,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC9C,MAAM,aAAa,GAAG,GAAG,EAAE;YACzB,eAAe,CAAC,KAAK,EAAE,CAAC;QAC1B,CAAC,CAAC;QAEF,MAAM,mBAAmB,GAAG,GAAG,EAAE;YAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC3D,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBACf,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACzC,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE1C,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC;YACjC,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,eAAe,EAAE;YACrD,MAAM,EAAE,eAAe,CAAC,MAAM;YAC9B,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE;gBACvB,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,CAAC;SACF,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE;YACd,mBAAmB,EAAE,CAAC;YACtB,MAAM,EAAE,CAAC;QACX,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAuB,UAAU,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,UAAW,CAAC,QAAQ,CAAC,UAAU,CAAC;QAExD,MAAM,cAAc,GAAG,MAAM,sBAAsB,EAAE,CAAC;QAEtD;;;;;WAKG;QACH,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC;YACzB,MAAM,EAAE,KAAK,IAAI,EAAE;gBACjB,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;gBAC5F,OAAO,IAAI,cAAc,CACvB;oBACE,UAAU,EAAE,UAAU;oBACtB,MAAM,EAAE,MAAM;oBACd,8GAA8G;oBAC9G,uEAAuE;oBACvE,0BAA0B,EAAE,IAAI;iBACjC,EACD,IAAI,CAAC,UAAW,CAAC,QAAQ,CAC1B,CAAC;YACJ,CAAC;YACD,MAAM,EAAE,eAAe,CAAC,MAAM;YAC9B,cAAc,EAAE,CAAC,EAAE,EAAE,EAAE;gBACrB,EAAE,CAAC,KAAK,EAAE,CAAC;YACb,CAAC;SACF,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;YACd,oFAAoF;YACpF,mBAAmB,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,YAAY,CAAC,OAAO,CAAC,CAAC;QAEtB,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;YAC5E,YAAY,CAAC,EAAE,CAAC,CAAC;YACjB;;;;eAIG;YACH,EAAE,CAAC,gBAAgB,EAAE,CAAC;YACtB,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE,EAAE,CAAC,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,6BAA6B;QACnC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,MAAM,UAAU,GAAG,IAAI,CAAC;QAExB,MAAM,aAAc,SAAQ,YAA+B;YACjD,eAAe,GAGkC,IAAI,CAAC;YAE9D,IAAI,IAAI;gBACN,OAAO,UAAU,EAAE,QAAQ,CAAC,UAAW,CAAC;YAC1C,CAAC;YAEO,KAAK,CAAC,OAAO;gBACnB,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE,CAAC;oBACjC,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACxD,IAAI,CAAC,eAAe,GAAG,CAAC,KAAK,IAAI,EAAE;wBACjC,IAAI,CAAC;4BACH,MAAM,EAAE,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;4BACzD,EAAE,CAAC,gBAAgB,CAAC;gCAClB,aAAa,EAAE,CAAC,YAAY,EAAE,EAAE;oCAC9B,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;gCAChE,CAAC;6BACF,CAAC,CAAC;4BACH,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;4BAC1B,OAAO,EAAE,CAAC;wBACZ,CAAC;wBAAC,OAAO,CAAC,EAAE,CAAC;4BACX,sDAAsD;4BACtD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;4BAC5B,MAAM,CAAC,CAAC;wBACV,CAAC;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP,CAAC;gBAED,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC;YACpC,CAAC;YAED,KAAK,CAAC,KAAK;gBACT,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE,CAAC;oBACjC,MAAM,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC7C,CAAC;YACH,CAAC;YAED,kBAAkB,CAAC,MAAiD;gBAClE,IAAI,MAAM,KAAK,IAAI,CAAC,eAAe,EAAE,CAAC;oBACpC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;oBAE5B,uEAAuE;oBACvE,sDAAsD;oBACtD,MAAM,IAAI,GAAG,UAAU,CAAC,iBAAiB,CAAC,wBAA2D,CAAC;oBACtG,IAAI,EAAE,iBAAiB,EAAE,CAAC;oBAE1B,4GAA4G;oBAC5G,2GAA2G;oBAC3G,qBAAqB;oBACrB,IAAI,EAAE,4BAA4B,EAAE,CAAC;gBACvC,CAAC;YACH,CAAC;YAED,KAAK,CAAC,QAAQ,CAAI,EAAmC,EAAE,OAAuB;gBAC5E,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBAChC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAClC,CAAC;YAED,KAAK,CAAC,SAAS,CAAI,EAAmC,EAAE,OAAuB;gBAC7E,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBAChC,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACnC,CAAC;YAED,KAAK,CAAC,aAAa;gBACjB,2BAA2B;YAC7B,CAAC;SACF;QAED,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;QACrD,OAAO,IAAI,OAAO,EAAE,CAAC;IACvB,CAAC;IAED;;;OAGG;IACK,iBAAiB,CAAC,MAAyB;QACjD,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IACpE,CAAC;CACF;AAED;;GAEG;AACH,SAAS,SAAS,CAAI,OAIrB;IACC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IACnD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,cAAc,CAAC,uCAAuC,CAAC,CAAC,CAAC;YACpE,OAAO;QACT,CAAC;QAED,SAAS,WAAW;YAClB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YACjD,MAAM,CAAC,IAAI,cAAc,CAAC,uCAAuC,CAAC,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAE9D,SAAS,eAAe,CAAC,MAAkB;YACzC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YACjD,MAAM,EAAE,CAAC;QACX,CAAC;QAED,MAAM,EAAE;aACL,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACb,0DAA0D;YAC1D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,eAAe,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;YACvD,CAAC;YACD,eAAe,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { createBaseLogger } from '@powersync/common';
2
+ import { SharedSyncImplementation } from './SharedSyncImplementation.js';
3
+ import { WorkerClient } from './WorkerClient.js';
4
+ const _self = self;
5
+ const logger = createBaseLogger();
6
+ logger.useDefaults();
7
+ const sharedSyncImplementation = new SharedSyncImplementation();
8
+ _self.onconnect = async function (event) {
9
+ const port = event.ports[0];
10
+ new WorkerClient(sharedSyncImplementation, port);
11
+ };
12
+ //# sourceMappingURL=SharedSyncImplementation.worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SharedSyncImplementation.worker.js","sourceRoot":"","sources":["../../../../src/worker/sync/SharedSyncImplementation.worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,KAAK,GAA4B,IAAW,CAAC;AACnD,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;AAClC,MAAM,CAAC,WAAW,EAAE,CAAC;AAErB,MAAM,wBAAwB,GAAG,IAAI,wBAAwB,EAAE,CAAC;AAEhE,KAAK,CAAC,SAAS,GAAG,KAAK,WAAW,KAA2B;IAC3D,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,YAAY,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;AACnD,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
+ import { ILogLevel, PowerSyncConnectionOptions, SubscribedStream } from '@powersync/common';
1
2
  import { SharedSyncImplementation, SharedSyncInitOptions, WrappedSyncPort } from './SharedSyncImplementation.js';
2
- import { SubscribedStream, ResolvedSyncOptions } from '@powersync/shared-internals';
3
3
  /**
4
4
  * A client to the shared sync worker.
5
5
  *
@@ -20,11 +20,11 @@ export declare class WorkerClient {
20
20
  * it can consider the connection to be closed.
21
21
  */
22
22
  addLockBasedCloseSignal(name: string): Promise<void>;
23
- setLogLevel(level: number): void;
23
+ setLogLevel(level: ILogLevel): void;
24
24
  triggerCrudUpload(): void;
25
25
  setParams(params: SharedSyncInitOptions, subscriptions: SubscribedStream[]): Promise<void>;
26
26
  getWriteCheckpoint(): Promise<string>;
27
- connect(options: ResolvedSyncOptions, schema: any): Promise<void>;
27
+ connect(options?: PowerSyncConnectionOptions): Promise<void>;
28
28
  updateSubscriptions(subscriptions: SubscribedStream[]): void;
29
29
  disconnect(): Promise<void>;
30
30
  }
@@ -67,8 +67,8 @@ export class WorkerClient {
67
67
  getWriteCheckpoint() {
68
68
  return this.sync.getWriteCheckpoint();
69
69
  }
70
- connect(options, schema) {
71
- return this.sync.connect(options, schema);
70
+ connect(options) {
71
+ return this.sync.connect(options);
72
72
  }
73
73
  updateSubscriptions(subscriptions) {
74
74
  if (this.resolvedPort) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkerClient.js","sourceRoot":"","sources":["../../../../src/worker/sync/WorkerClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAEL,qBAAqB,EAItB,MAAM,+BAA+B,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,OAAO,YAAY;IAKJ;IACA;IALX,YAAY,GAA2B,IAAI,CAAC;IAC1C,mBAAmB,GAAoC,IAAI,CAAC;IAEtE,YACmB,IAA8B,EAC9B,IAAiB;QADjB,SAAI,GAAJ,IAAI,CAA0B;QAC9B,SAAI,GAAJ,IAAI,CAAa;QAElC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC;;;WAGG;QACH,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACpD,MAAM,OAAO,GAAG,KAAK,CAAC,IAA+B,CAAC;YACtD,IAAI,OAAO,EAAE,KAAK,IAAI,qBAAqB,CAAC,YAAY,EAAE,CAAC;gBACzD,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC;YACnC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACrD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;gBACpB,KAAK,EAAE,qBAAqB,CAAC,SAAS;gBACtC,IAAI,EAAE,EAAE;aACyB,CAAC,CAAC;YACrC,OAAO,EAAE,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,uBAAuB,CAAC,IAAY;QACxC,mEAAmE;QACnE,IAAI,CAAC,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,gCAAgC;QAChC,iBAAiB,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;YAC3C,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,KAAgB;QAC1B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACvC,CAAC;IAED,SAAS,CAAC,MAA6B,EAAE,aAAiC;QACxE,IAAI,CAAC,YAAa,CAAC,oBAAoB,GAAG,aAAa,CAAC;QACxD,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACxC,CAAC;IAED,OAAO,CAAC,OAAoC;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,mBAAmB,CAAC,aAAiC;QACnD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;IAChC,CAAC;CACF"}