@powersync/common 1.53.1 → 1.54.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 (217) hide show
  1. package/dist/bundle.cjs +560 -353
  2. package/dist/bundle.cjs.map +1 -1
  3. package/dist/bundle.mjs +560 -353
  4. package/dist/bundle.mjs.map +1 -1
  5. package/dist/bundle.node.cjs +560 -353
  6. package/dist/bundle.node.cjs.map +1 -1
  7. package/dist/bundle.node.mjs +560 -353
  8. package/dist/bundle.node.mjs.map +1 -1
  9. package/dist/index.d.cts +733 -198
  10. package/lib/attachments/AttachmentContext.d.ts +7 -6
  11. package/lib/attachments/AttachmentContext.js +2 -1
  12. package/lib/attachments/AttachmentContext.js.map +1 -1
  13. package/lib/attachments/AttachmentErrorHandler.d.ts +6 -6
  14. package/lib/attachments/AttachmentQueue.d.ts +61 -20
  15. package/lib/attachments/AttachmentQueue.js +16 -18
  16. package/lib/attachments/AttachmentQueue.js.map +1 -1
  17. package/lib/attachments/LocalStorageAdapter.d.ts +14 -8
  18. package/lib/attachments/LocalStorageAdapter.js +3 -0
  19. package/lib/attachments/LocalStorageAdapter.js.map +1 -1
  20. package/lib/attachments/RemoteStorageAdapter.d.ts +4 -4
  21. package/lib/attachments/Schema.d.ts +12 -4
  22. package/lib/attachments/Schema.js +8 -3
  23. package/lib/attachments/Schema.js.map +1 -1
  24. package/lib/attachments/WatchedAttachmentItem.d.ts +3 -1
  25. package/lib/client/AbstractPowerSyncDatabase.d.ts +110 -58
  26. package/lib/client/AbstractPowerSyncDatabase.js +59 -48
  27. package/lib/client/AbstractPowerSyncDatabase.js.map +1 -1
  28. package/lib/client/AbstractPowerSyncOpenFactory.d.ts +6 -0
  29. package/lib/client/AbstractPowerSyncOpenFactory.js +3 -0
  30. package/lib/client/AbstractPowerSyncOpenFactory.js.map +1 -1
  31. package/lib/client/ConnectionManager.d.ts +4 -1
  32. package/lib/client/ConnectionManager.js +1 -1
  33. package/lib/client/ConnectionManager.js.map +1 -1
  34. package/lib/client/Query.d.ts +9 -0
  35. package/lib/client/SQLOpenFactory.d.ts +12 -0
  36. package/lib/client/SQLOpenFactory.js +6 -0
  37. package/lib/client/SQLOpenFactory.js.map +1 -1
  38. package/lib/client/compilableQueryWatch.d.ts +6 -0
  39. package/lib/client/compilableQueryWatch.js +3 -0
  40. package/lib/client/compilableQueryWatch.js.map +1 -1
  41. package/lib/client/connection/PowerSyncBackendConnector.d.ts +3 -0
  42. package/lib/client/connection/PowerSyncCredentials.d.ts +3 -0
  43. package/lib/client/constants.d.ts +3 -0
  44. package/lib/client/constants.js +3 -0
  45. package/lib/client/constants.js.map +1 -1
  46. package/lib/client/runOnSchemaChange.d.ts +3 -0
  47. package/lib/client/runOnSchemaChange.js +3 -0
  48. package/lib/client/runOnSchemaChange.js.map +1 -1
  49. package/lib/client/sync/bucket/BucketStorageAdapter.d.ts +12 -0
  50. package/lib/client/sync/bucket/BucketStorageAdapter.js +6 -0
  51. package/lib/client/sync/bucket/BucketStorageAdapter.js.map +1 -1
  52. package/lib/client/sync/bucket/CrudBatch.d.ts +2 -0
  53. package/lib/client/sync/bucket/CrudBatch.js +2 -0
  54. package/lib/client/sync/bucket/CrudBatch.js.map +1 -1
  55. package/lib/client/sync/bucket/CrudEntry.d.ts +9 -0
  56. package/lib/client/sync/bucket/CrudEntry.js +4 -0
  57. package/lib/client/sync/bucket/CrudEntry.js.map +1 -1
  58. package/lib/client/sync/bucket/CrudTransaction.d.ts +3 -0
  59. package/lib/client/sync/bucket/CrudTransaction.js +3 -0
  60. package/lib/client/sync/bucket/CrudTransaction.js.map +1 -1
  61. package/lib/client/sync/bucket/SqliteBucketStorage.d.ts +3 -0
  62. package/lib/client/sync/bucket/SqliteBucketStorage.js +3 -0
  63. package/lib/client/sync/bucket/SqliteBucketStorage.js.map +1 -1
  64. package/lib/client/sync/stream/AbstractRemote.d.ts +30 -1
  65. package/lib/client/sync/stream/AbstractRemote.js +15 -1
  66. package/lib/client/sync/stream/AbstractRemote.js.map +1 -1
  67. package/lib/client/sync/stream/AbstractStreamingSyncImplementation.d.ts +61 -14
  68. package/lib/client/sync/stream/AbstractStreamingSyncImplementation.js +60 -47
  69. package/lib/client/sync/stream/AbstractStreamingSyncImplementation.js.map +1 -1
  70. package/lib/client/sync/stream/JsonValue.d.ts +3 -0
  71. package/lib/client/sync/stream/WebsocketClientTransport.js +2 -1
  72. package/lib/client/sync/stream/WebsocketClientTransport.js.map +1 -1
  73. package/lib/client/sync/sync-streams.d.ts +22 -7
  74. package/lib/client/triggers/TriggerManager.d.ts +19 -18
  75. package/lib/client/triggers/TriggerManager.js +2 -1
  76. package/lib/client/triggers/TriggerManager.js.map +1 -1
  77. package/lib/client/triggers/TriggerManagerImpl.d.ts +1 -1
  78. package/lib/client/triggers/TriggerManagerImpl.js +3 -3
  79. package/lib/client/triggers/TriggerManagerImpl.js.map +1 -1
  80. package/lib/client/triggers/sanitizeSQL.d.ts +4 -0
  81. package/lib/client/triggers/sanitizeSQL.js +4 -0
  82. package/lib/client/triggers/sanitizeSQL.js.map +1 -1
  83. package/lib/client/watched/GetAllQuery.d.ts +4 -0
  84. package/lib/client/watched/GetAllQuery.js +2 -0
  85. package/lib/client/watched/GetAllQuery.js.map +1 -1
  86. package/lib/client/watched/WatchedQuery.d.ts +24 -2
  87. package/lib/client/watched/WatchedQuery.js +9 -0
  88. package/lib/client/watched/WatchedQuery.js.map +1 -1
  89. package/lib/client/watched/processors/AbstractQueryProcessor.d.ts +1 -1
  90. package/lib/client/watched/processors/AbstractQueryProcessor.js.map +1 -1
  91. package/lib/client/watched/processors/DifferentialQueryProcessor.d.ts +20 -0
  92. package/lib/client/watched/processors/DifferentialQueryProcessor.js +4 -0
  93. package/lib/client/watched/processors/DifferentialQueryProcessor.js.map +1 -1
  94. package/lib/client/watched/processors/OnChangeQueryProcessor.d.ts +4 -0
  95. package/lib/client/watched/processors/OnChangeQueryProcessor.js.map +1 -1
  96. package/lib/client/watched/processors/comparators.d.ts +8 -0
  97. package/lib/client/watched/processors/comparators.js +4 -0
  98. package/lib/client/watched/processors/comparators.js.map +1 -1
  99. package/lib/db/ConnectionClosedError.d.ts +2 -0
  100. package/lib/db/ConnectionClosedError.js +2 -0
  101. package/lib/db/ConnectionClosedError.js.map +1 -1
  102. package/lib/db/DBAdapter.d.ts +56 -6
  103. package/lib/db/DBAdapter.js +15 -3
  104. package/lib/db/DBAdapter.js.map +1 -1
  105. package/lib/db/crud/SyncProgress.d.ts +6 -1
  106. package/lib/db/crud/SyncProgress.js +2 -0
  107. package/lib/db/crud/SyncProgress.js.map +1 -1
  108. package/lib/db/crud/SyncStatus.d.ts +36 -38
  109. package/lib/db/crud/SyncStatus.js +19 -14
  110. package/lib/db/crud/SyncStatus.js.map +1 -1
  111. package/lib/db/crud/UploadQueueStatus.d.ts +3 -0
  112. package/lib/db/crud/UploadQueueStatus.js +3 -0
  113. package/lib/db/crud/UploadQueueStatus.js.map +1 -1
  114. package/lib/db/schema/Column.d.ts +28 -0
  115. package/lib/db/schema/Column.js +16 -3
  116. package/lib/db/schema/Column.js.map +1 -1
  117. package/lib/db/schema/Index.d.ts +9 -0
  118. package/lib/db/schema/Index.js +6 -0
  119. package/lib/db/schema/Index.js.map +1 -1
  120. package/lib/db/schema/IndexedColumn.d.ts +9 -0
  121. package/lib/db/schema/IndexedColumn.js +6 -0
  122. package/lib/db/schema/IndexedColumn.js.map +1 -1
  123. package/lib/db/schema/RawTable.d.ts +7 -1
  124. package/lib/db/schema/Schema.d.ts +6 -1
  125. package/lib/db/schema/Schema.js +3 -1
  126. package/lib/db/schema/Schema.js.map +1 -1
  127. package/lib/db/schema/Table.d.ts +27 -3
  128. package/lib/db/schema/Table.js +9 -0
  129. package/lib/db/schema/Table.js.map +1 -1
  130. package/lib/db/schema/TableV2.d.ts +2 -0
  131. package/lib/db/schema/TableV2.js +2 -0
  132. package/lib/db/schema/TableV2.js.map +1 -1
  133. package/lib/index.d.ts +1 -1
  134. package/lib/types/types.d.ts +6 -0
  135. package/lib/utils/AbortOperation.d.ts +2 -0
  136. package/lib/utils/AbortOperation.js +2 -0
  137. package/lib/utils/AbortOperation.js.map +1 -1
  138. package/lib/utils/BaseObserver.d.ts +12 -0
  139. package/lib/utils/BaseObserver.js +3 -0
  140. package/lib/utils/BaseObserver.js.map +1 -1
  141. package/lib/utils/ControlledExecutor.d.ts +6 -0
  142. package/lib/utils/ControlledExecutor.js +3 -0
  143. package/lib/utils/ControlledExecutor.js.map +1 -1
  144. package/lib/utils/Logger.d.ts +9 -0
  145. package/lib/utils/Logger.js +6 -0
  146. package/lib/utils/Logger.js.map +1 -1
  147. package/lib/utils/async.d.ts +13 -7
  148. package/lib/utils/async.js +38 -24
  149. package/lib/utils/async.js.map +1 -1
  150. package/lib/utils/mutex.d.ts +8 -0
  151. package/lib/utils/mutex.js +3 -0
  152. package/lib/utils/mutex.js.map +1 -1
  153. package/lib/utils/parseQuery.d.ts +6 -0
  154. package/lib/utils/parseQuery.js +3 -0
  155. package/lib/utils/parseQuery.js.map +1 -1
  156. package/lib/utils/stream_transform.d.ts +3 -1
  157. package/lib/utils/stream_transform.js.map +1 -1
  158. package/package.json +3 -2
  159. package/src/attachments/AttachmentContext.ts +7 -6
  160. package/src/attachments/AttachmentErrorHandler.ts +6 -6
  161. package/src/attachments/AttachmentQueue.ts +71 -23
  162. package/src/attachments/LocalStorageAdapter.ts +14 -8
  163. package/src/attachments/README.md +2 -0
  164. package/src/attachments/RemoteStorageAdapter.ts +4 -4
  165. package/src/attachments/Schema.ts +12 -4
  166. package/src/attachments/WatchedAttachmentItem.ts +3 -1
  167. package/src/client/AbstractPowerSyncDatabase.ts +117 -62
  168. package/src/client/AbstractPowerSyncOpenFactory.ts +6 -0
  169. package/src/client/ConnectionManager.ts +4 -1
  170. package/src/client/Query.ts +9 -0
  171. package/src/client/SQLOpenFactory.ts +12 -0
  172. package/src/client/compilableQueryWatch.ts +6 -0
  173. package/src/client/connection/PowerSyncBackendConnector.ts +3 -0
  174. package/src/client/connection/PowerSyncCredentials.ts +3 -0
  175. package/src/client/constants.ts +3 -0
  176. package/src/client/runOnSchemaChange.ts +3 -0
  177. package/src/client/sync/bucket/BucketStorageAdapter.ts +12 -0
  178. package/src/client/sync/bucket/CrudBatch.ts +2 -0
  179. package/src/client/sync/bucket/CrudEntry.ts +9 -0
  180. package/src/client/sync/bucket/CrudTransaction.ts +3 -0
  181. package/src/client/sync/bucket/SqliteBucketStorage.ts +3 -0
  182. package/src/client/sync/stream/AbstractRemote.ts +30 -1
  183. package/src/client/sync/stream/AbstractStreamingSyncImplementation.ts +86 -59
  184. package/src/client/sync/stream/JsonValue.ts +3 -0
  185. package/src/client/sync/stream/WebsocketClientTransport.ts +3 -1
  186. package/src/client/sync/sync-streams.ts +22 -9
  187. package/src/client/triggers/TriggerManager.ts +19 -18
  188. package/src/client/triggers/TriggerManagerImpl.ts +5 -5
  189. package/src/client/triggers/sanitizeSQL.ts +5 -0
  190. package/src/client/watched/GetAllQuery.ts +5 -1
  191. package/src/client/watched/WatchedQuery.ts +24 -2
  192. package/src/client/watched/processors/AbstractQueryProcessor.ts +6 -6
  193. package/src/client/watched/processors/DifferentialQueryProcessor.ts +28 -5
  194. package/src/client/watched/processors/OnChangeQueryProcessor.ts +9 -3
  195. package/src/client/watched/processors/comparators.ts +8 -0
  196. package/src/db/ConnectionClosedError.ts +2 -0
  197. package/src/db/DBAdapter.ts +58 -6
  198. package/src/db/crud/SyncProgress.ts +6 -1
  199. package/src/db/crud/SyncStatus.ts +40 -21
  200. package/src/db/crud/UploadQueueStatus.ts +3 -0
  201. package/src/db/schema/Column.ts +28 -3
  202. package/src/db/schema/Index.ts +9 -0
  203. package/src/db/schema/IndexedColumn.ts +9 -0
  204. package/src/db/schema/RawTable.ts +7 -1
  205. package/src/db/schema/Schema.ts +8 -3
  206. package/src/db/schema/Table.ts +30 -5
  207. package/src/db/schema/TableV2.ts +2 -0
  208. package/src/index.ts +1 -1
  209. package/src/types/types.ts +6 -0
  210. package/src/utils/AbortOperation.ts +2 -0
  211. package/src/utils/BaseObserver.ts +12 -0
  212. package/src/utils/ControlledExecutor.ts +6 -0
  213. package/src/utils/Logger.ts +9 -0
  214. package/src/utils/async.ts +51 -24
  215. package/src/utils/mutex.ts +12 -0
  216. package/src/utils/parseQuery.ts +6 -0
  217. package/src/utils/stream_transform.ts +3 -1
@@ -4,14 +4,24 @@ import { BaseListener, BaseObserver, BaseObserverInterface, Disposable } from '.
4
4
  import { BucketStorageAdapter } from '../bucket/BucketStorageAdapter.js';
5
5
  import { AbstractRemote, FetchStrategy } from './AbstractRemote.js';
6
6
  import { StreamingSyncRequestParameterType } from './JsonValue.js';
7
+ /**
8
+ * @internal
9
+ */
7
10
  export declare enum LockType {
8
11
  CRUD = "crud",
9
12
  SYNC = "sync"
10
13
  }
14
+ /**
15
+ * @public
16
+ */
11
17
  export declare enum SyncStreamConnectionMethod {
12
18
  HTTP = "http",
13
19
  WEB_SOCKET = "web-socket"
14
20
  }
21
+ /**
22
+ * @deprecated Deprecated since {@link SyncClientImplementation.RUST} is the only option.
23
+ * @public
24
+ */
15
25
  export declare enum SyncClientImplementation {
16
26
  /**
17
27
  * This implementation offloads the sync line decoding and handling into the PowerSync
@@ -22,8 +32,8 @@ export declare enum SyncClientImplementation {
22
32
  * ## Compatibility warning
23
33
  *
24
34
  * The Rust sync client stores sync data in a format that is slightly different than the one used
25
- * by the old JavaScript client. When adopting the {@link RUST} client on existing databases, the PowerSync SDK will
26
- * migrate the format automatically.
35
+ * by the old JavaScript client. When adopting the {@link SyncClientImplementation.RUST} client on existing databases,
36
+ * the PowerSync SDK will migrate the format automatically.
27
37
  *
28
38
  * SDK versions supporting both the JavaScript and the Rust client support both formats with the JavaScript client
29
39
  * implementaiton. However, downgrading to an SDK version that only supports the JavaScript client would not be
@@ -33,16 +43,24 @@ export declare enum SyncClientImplementation {
33
43
  }
34
44
  /**
35
45
  * The default {@link SyncClientImplementation} to use, {@link SyncClientImplementation.RUST}.
46
+ *
47
+ * @deprecated Deprecated since {@link SyncClientImplementation.RUST} is the only option.
48
+ * @public
36
49
  */
37
50
  export declare const DEFAULT_SYNC_CLIENT_IMPLEMENTATION = SyncClientImplementation.RUST;
38
51
  /**
39
52
  * Abstract Lock to be implemented by various JS environments
53
+ *
54
+ * @internal
40
55
  */
41
56
  export interface LockOptions<T> {
42
57
  callback: () => Promise<T>;
43
58
  type: LockType;
44
59
  signal?: AbortSignal;
45
60
  }
61
+ /**
62
+ * @internal
63
+ */
46
64
  export interface AbstractStreamingSyncImplementationOptions extends RequiredAdditionalConnectionOptions {
47
65
  adapter: BucketStorageAdapter;
48
66
  subscriptions: SubscribedStream[];
@@ -55,6 +73,9 @@ export interface AbstractStreamingSyncImplementationOptions extends RequiredAddi
55
73
  logger?: ILogger;
56
74
  remote: AbstractRemote;
57
75
  }
76
+ /**
77
+ * @internal
78
+ */
58
79
  export interface StreamingSyncImplementationListener extends BaseListener {
59
80
  /**
60
81
  * Triggered whenever a status update has been attempted to be made or
@@ -69,11 +90,16 @@ export interface StreamingSyncImplementationListener extends BaseListener {
69
90
  /**
70
91
  * Configurable options to be used when connecting to the PowerSync
71
92
  * backend instance.
93
+ *
94
+ * @public
72
95
  */
73
96
  export type PowerSyncConnectionOptions = Omit<InternalConnectionOptions, 'serializedSchema'>;
97
+ /**
98
+ * @internal
99
+ */
74
100
  export interface InternalConnectionOptions extends BaseConnectionOptions, AdditionalConnectionOptions {
75
101
  }
76
- /** @internal */
102
+ /** @public */
77
103
  export interface BaseConnectionOptions {
78
104
  /**
79
105
  * A set of metadata to be included in service logs.
@@ -126,6 +152,9 @@ export interface AdditionalConnectionOptions {
126
152
  export interface RequiredAdditionalConnectionOptions extends Required<AdditionalConnectionOptions> {
127
153
  subscriptions: SubscribedStream[];
128
154
  }
155
+ /**
156
+ * @internal
157
+ */
129
158
  export interface StreamingSyncImplementation extends BaseObserverInterface<StreamingSyncImplementationListener>, Disposable {
130
159
  /**
131
160
  * Connects to the sync service
@@ -146,33 +175,53 @@ export interface StreamingSyncImplementation extends BaseObserverInterface<Strea
146
175
  updateSubscriptions(subscriptions: SubscribedStream[]): void;
147
176
  markConnectionMayHaveChanged(): void;
148
177
  }
178
+ /**
179
+ * @internal
180
+ */
149
181
  export declare const DEFAULT_CRUD_UPLOAD_THROTTLE_MS = 1000;
182
+ /**
183
+ * @internal
184
+ */
150
185
  export declare const DEFAULT_RETRY_DELAY_MS = 5000;
186
+ /**
187
+ * @internal
188
+ */
151
189
  export declare const DEFAULT_STREAMING_SYNC_OPTIONS: {
152
190
  retryDelayMs: number;
153
191
  crudUploadThrottleMs: number;
154
192
  };
193
+ /**
194
+ * @internal
195
+ */
155
196
  export type RequiredPowerSyncConnectionOptions = Required<BaseConnectionOptions>;
197
+ /**
198
+ * @internal
199
+ */
156
200
  export declare const DEFAULT_STREAM_CONNECTION_OPTIONS: RequiredPowerSyncConnectionOptions;
201
+ /**
202
+ * @internal
203
+ */
157
204
  export type SubscribedStream = {
158
205
  name: string;
159
206
  params: Record<string, any> | null;
160
207
  };
208
+ /**
209
+ * @internal
210
+ */
161
211
  export declare abstract class AbstractStreamingSyncImplementation extends BaseObserver<StreamingSyncImplementationListener> implements StreamingSyncImplementation {
162
212
  protected options: AbstractStreamingSyncImplementationOptions;
163
213
  protected abortController: AbortController | null;
164
- protected uploadAbortController: AbortController | undefined;
165
214
  protected crudUpdateListener?: () => void;
166
- protected streamingSyncPromise?: Promise<void>;
215
+ protected streamingSyncPromise?: Promise<[void, void]>;
167
216
  protected logger: ILogger;
168
217
  private activeStreams;
169
218
  private connectionMayHaveChanged;
170
- private isUploadingCrud;
219
+ private crudUploadNotifier;
171
220
  private notifyCompletedUploads?;
172
221
  private handleActiveStreamsChange?;
173
222
  syncStatus: SyncStatus;
174
- triggerCrudUpload: () => void;
175
223
  constructor(options: AbstractStreamingSyncImplementationOptions);
224
+ triggerCrudUpload(): void;
176
225
  waitForReady(): Promise<void>;
177
226
  waitForStatus(status: SyncStatusOptions): Promise<void>;
178
227
  waitUntilStatusMatches(predicate: (status: SyncStatus) => boolean): Promise<void>;
@@ -181,16 +230,14 @@ export declare abstract class AbstractStreamingSyncImplementation extends BaseOb
181
230
  dispose(): Promise<void>;
182
231
  abstract obtainLock<T>(lockOptions: LockOptions<T>): Promise<T>;
183
232
  getWriteCheckpoint(): Promise<string>;
184
- protected _uploadAllCrud(): Promise<void>;
233
+ private crudUploadLoop;
234
+ private _uploadAllCrud;
185
235
  connect(options?: PowerSyncConnectionOptions): Promise<void>;
186
236
  disconnect(): Promise<void>;
187
- /**
188
- * @deprecated use [connect instead]
189
- */
190
- streamingSync(signal?: AbortSignal, options?: PowerSyncConnectionOptions): Promise<void>;
237
+ private streamingSync;
191
238
  markConnectionMayHaveChanged(): void;
192
239
  /**
193
- * Older versions of the JS SDK used to encode subkeys as JSON in {@link OplogEntry.toJSON}.
240
+ * Older versions of the JS SDK used to encode subkeys as JSON in `OplogEntry.toJSON`.
194
241
  * Because subkeys are always strings, this leads to quotes being added around them in `ps_oplog`.
195
242
  * While this is not a problem as long as it's done consistently, it causes issues when a database
196
243
  * created by the JS SDK is used with other SDKs, or (more likely) when the new Rust sync client
@@ -200,7 +247,7 @@ export declare abstract class AbstractStreamingSyncImplementation extends BaseOb
200
247
  * migration is only triggered when necessary (for now). The function returns whether the new format
201
248
  * should be used, so that the JS SDK is able to write to updated databases.
202
249
  *
203
- * @param requireFixedKeyFormat Whether we require the new format or also support the old one.
250
+ * @param requireFixedKeyFormat - Whether we require the new format or also support the old one.
204
251
  * The Rust client requires the new subkey format.
205
252
  * @returns Whether the database is now using the new, fixed subkey format.
206
253
  */
@@ -2,21 +2,31 @@ import Logger from 'js-logger';
2
2
  import { SyncStatus } from '../../../db/crud/SyncStatus.js';
3
3
  import { AbortOperation } from '../../../utils/AbortOperation.js';
4
4
  import { BaseObserver } from '../../../utils/BaseObserver.js';
5
- import { throttleLeadingTrailing } from '../../../utils/async.js';
6
5
  import { PowerSyncControlCommand } from '../bucket/BucketStorageAdapter.js';
7
6
  import { FetchStrategy } from './AbstractRemote.js';
8
7
  import { coreStatusToJs, isInterruptingInstruction } from './core-instruction.js';
9
8
  import { doneResult, injectable, valueResult } from '../../../utils/stream_transform.js';
9
+ import { asyncNotifier } from '../../../utils/async.js';
10
+ /**
11
+ * @internal
12
+ */
10
13
  export var LockType;
11
14
  (function (LockType) {
12
15
  LockType["CRUD"] = "crud";
13
16
  LockType["SYNC"] = "sync";
14
17
  })(LockType || (LockType = {}));
18
+ /**
19
+ * @public
20
+ */
15
21
  export var SyncStreamConnectionMethod;
16
22
  (function (SyncStreamConnectionMethod) {
17
23
  SyncStreamConnectionMethod["HTTP"] = "http";
18
24
  SyncStreamConnectionMethod["WEB_SOCKET"] = "web-socket";
19
25
  })(SyncStreamConnectionMethod || (SyncStreamConnectionMethod = {}));
26
+ /**
27
+ * @deprecated Deprecated since {@link SyncClientImplementation.RUST} is the only option.
28
+ * @public
29
+ */
20
30
  export var SyncClientImplementation;
21
31
  (function (SyncClientImplementation) {
22
32
  /**
@@ -28,8 +38,8 @@ export var SyncClientImplementation;
28
38
  * ## Compatibility warning
29
39
  *
30
40
  * The Rust sync client stores sync data in a format that is slightly different than the one used
31
- * by the old JavaScript client. When adopting the {@link RUST} client on existing databases, the PowerSync SDK will
32
- * migrate the format automatically.
41
+ * by the old JavaScript client. When adopting the {@link SyncClientImplementation.RUST} client on existing databases,
42
+ * the PowerSync SDK will migrate the format automatically.
33
43
  *
34
44
  * SDK versions supporting both the JavaScript and the Rust client support both formats with the JavaScript client
35
45
  * implementaiton. However, downgrading to an SDK version that only supports the JavaScript client would not be
@@ -39,14 +49,29 @@ export var SyncClientImplementation;
39
49
  })(SyncClientImplementation || (SyncClientImplementation = {}));
40
50
  /**
41
51
  * The default {@link SyncClientImplementation} to use, {@link SyncClientImplementation.RUST}.
52
+ *
53
+ * @deprecated Deprecated since {@link SyncClientImplementation.RUST} is the only option.
54
+ * @public
42
55
  */
43
56
  export const DEFAULT_SYNC_CLIENT_IMPLEMENTATION = SyncClientImplementation.RUST;
57
+ /**
58
+ * @internal
59
+ */
44
60
  export const DEFAULT_CRUD_UPLOAD_THROTTLE_MS = 1000;
61
+ /**
62
+ * @internal
63
+ */
45
64
  export const DEFAULT_RETRY_DELAY_MS = 5000;
65
+ /**
66
+ * @internal
67
+ */
46
68
  export const DEFAULT_STREAMING_SYNC_OPTIONS = {
47
69
  retryDelayMs: DEFAULT_RETRY_DELAY_MS,
48
70
  crudUploadThrottleMs: DEFAULT_CRUD_UPLOAD_THROTTLE_MS
49
71
  };
72
+ /**
73
+ * @internal
74
+ */
50
75
  export const DEFAULT_STREAM_CONNECTION_OPTIONS = {
51
76
  appMetadata: {},
52
77
  connectionMethod: SyncStreamConnectionMethod.WEB_SOCKET,
@@ -56,27 +81,21 @@ export const DEFAULT_STREAM_CONNECTION_OPTIONS = {
56
81
  serializedSchema: undefined,
57
82
  includeDefaultStreams: true
58
83
  };
59
- // The priority we assume when we receive checkpoint lines where no priority is set.
60
- // This is the default priority used by the sync service, but can be set to an arbitrary
61
- // value since sync services without priorities also won't send partial sync completion
62
- // messages.
63
- const FALLBACK_PRIORITY = 3;
84
+ /**
85
+ * @internal
86
+ */
64
87
  export class AbstractStreamingSyncImplementation extends BaseObserver {
65
88
  options;
66
89
  abortController;
67
- // In rare cases, mostly for tests, uploads can be triggered without being properly connected.
68
- // This allows ensuring that all upload processes can be aborted.
69
- uploadAbortController;
70
90
  crudUpdateListener;
71
91
  streamingSyncPromise;
72
92
  logger;
73
93
  activeStreams;
74
94
  connectionMayHaveChanged = false;
75
- isUploadingCrud = false;
95
+ crudUploadNotifier = asyncNotifier();
76
96
  notifyCompletedUploads;
77
97
  handleActiveStreamsChange;
78
98
  syncStatus;
79
- triggerCrudUpload;
80
99
  constructor(options) {
81
100
  super();
82
101
  this.options = options;
@@ -92,16 +111,9 @@ export class AbstractStreamingSyncImplementation extends BaseObserver {
92
111
  }
93
112
  });
94
113
  this.abortController = null;
95
- this.triggerCrudUpload = throttleLeadingTrailing(() => {
96
- if (!this.syncStatus.connected || this.isUploadingCrud) {
97
- return;
98
- }
99
- this.isUploadingCrud = true;
100
- this._uploadAllCrud().finally(() => {
101
- this.notifyCompletedUploads?.();
102
- this.isUploadingCrud = false;
103
- });
104
- }, this.options.crudUploadThrottleMs);
114
+ }
115
+ triggerCrudUpload() {
116
+ this.crudUploadNotifier.notify();
105
117
  }
106
118
  async waitForReady() { }
107
119
  waitForStatus(status) {
@@ -149,7 +161,6 @@ export class AbstractStreamingSyncImplementation extends BaseObserver {
149
161
  super.dispose();
150
162
  this.crudUpdateListener?.();
151
163
  this.crudUpdateListener = undefined;
152
- this.uploadAbortController?.abort();
153
164
  }
154
165
  async getWriteCheckpoint() {
155
166
  const clientId = await this.options.adapter.getClientId();
@@ -159,7 +170,17 @@ export class AbstractStreamingSyncImplementation extends BaseObserver {
159
170
  this.logger.debug(`Created write checkpoint: ${checkpoint}`);
160
171
  return checkpoint;
161
172
  }
162
- async _uploadAllCrud() {
173
+ async crudUploadLoop(signal) {
174
+ while (!signal.aborted) {
175
+ await Promise.all([
176
+ // Start the initial CRUD upload on connect. Then, keep polling until we're done.
177
+ this._uploadAllCrud(signal),
178
+ this.delayRetry(signal, this.options.crudUploadThrottleMs)
179
+ ]);
180
+ await this.crudUploadNotifier.waitForNotification(signal);
181
+ }
182
+ }
183
+ async _uploadAllCrud(signal) {
163
184
  return this.obtainLock({
164
185
  type: LockType.CRUD,
165
186
  callback: async () => {
@@ -167,12 +188,7 @@ export class AbstractStreamingSyncImplementation extends BaseObserver {
167
188
  * Keep track of the first item in the CRUD queue for the last `uploadCrud` iteration.
168
189
  */
169
190
  let checkedCrudItem;
170
- const controller = new AbortController();
171
- this.uploadAbortController = controller;
172
- this.abortController?.signal.addEventListener('abort', () => {
173
- controller.abort();
174
- }, { once: true });
175
- while (!controller.signal.aborted) {
191
+ while (!signal.aborted) {
176
192
  try {
177
193
  /**
178
194
  * This is the first item in the FIFO CRUD queue.
@@ -202,7 +218,10 @@ The next upload iteration will be delayed.`);
202
218
  else {
203
219
  // Uploading is completed
204
220
  const neededUpdate = await this.options.adapter.updateLocalTarget(() => this.getWriteCheckpoint());
205
- if (neededUpdate == false && checkedCrudItem != null) {
221
+ if (neededUpdate) {
222
+ this.notifyCompletedUploads?.();
223
+ }
224
+ else if (checkedCrudItem != null) {
206
225
  // Only log this if there was something to upload
207
226
  this.logger.debug('Upload complete, no write checkpoint needed.');
208
227
  }
@@ -217,7 +236,7 @@ The next upload iteration will be delayed.`);
217
236
  uploadError: ex
218
237
  }
219
238
  });
220
- await this.delayRetry(controller.signal);
239
+ await this.delayRetry(signal);
221
240
  if (!this.isConnected) {
222
241
  // Exit the upload loop if the sync stream is no longer connected
223
242
  break;
@@ -232,7 +251,6 @@ The next upload iteration will be delayed.`);
232
251
  });
233
252
  }
234
253
  }
235
- this.uploadAbortController = undefined;
236
254
  }
237
255
  });
238
256
  }
@@ -242,7 +260,10 @@ The next upload iteration will be delayed.`);
242
260
  }
243
261
  const controller = new AbortController();
244
262
  this.abortController = controller;
245
- this.streamingSyncPromise = this.streamingSync(this.abortController.signal, options);
263
+ this.streamingSyncPromise = Promise.all([
264
+ this.crudUploadLoop(controller.signal).catch((ex) => this.logger.error('Error in crud upload loop', ex)),
265
+ this.streamingSync(controller.signal, options)
266
+ ]);
246
267
  // Return a promise that resolves when the connection status is updated to indicate that we're connected.
247
268
  return new Promise((resolve) => {
248
269
  const disposer = this.registerListener({
@@ -280,14 +301,7 @@ The next upload iteration will be delayed.`);
280
301
  this.abortController = null;
281
302
  this.updateSyncStatus({ connected: false, connecting: false });
282
303
  }
283
- /**
284
- * @deprecated use [connect instead]
285
- */
286
304
  async streamingSync(signal, options) {
287
- if (!signal) {
288
- this.abortController = new AbortController();
289
- signal = this.abortController.signal;
290
- }
291
305
  /**
292
306
  * Listen for CRUD updates and trigger upstream uploads
293
307
  */
@@ -393,7 +407,7 @@ The next upload iteration will be delayed.`);
393
407
  this.handleActiveStreamsChange?.();
394
408
  }
395
409
  /**
396
- * Older versions of the JS SDK used to encode subkeys as JSON in {@link OplogEntry.toJSON}.
410
+ * Older versions of the JS SDK used to encode subkeys as JSON in `OplogEntry.toJSON`.
397
411
  * Because subkeys are always strings, this leads to quotes being added around them in `ps_oplog`.
398
412
  * While this is not a problem as long as it's done consistently, it causes issues when a database
399
413
  * created by the JS SDK is used with other SDKs, or (more likely) when the new Rust sync client
@@ -403,7 +417,7 @@ The next upload iteration will be delayed.`);
403
417
  * migration is only triggered when necessary (for now). The function returns whether the new format
404
418
  * should be used, so that the JS SDK is able to write to updated databases.
405
419
  *
406
- * @param requireFixedKeyFormat Whether we require the new format or also support the old one.
420
+ * @param requireFixedKeyFormat - Whether we require the new format or also support the old one.
407
421
  * The Rust client requires the new subkey format.
408
422
  * @returns Whether the database is now using the new, fixed subkey format.
409
423
  */
@@ -663,14 +677,13 @@ The next upload iteration will be delayed.`);
663
677
  // trigger this for all updates
664
678
  this.iterateListeners((cb) => cb.statusUpdated?.(options));
665
679
  }
666
- async delayRetry(signal) {
680
+ async delayRetry(signal, delay = this.options.retryDelayMs) {
667
681
  return new Promise((resolve) => {
668
682
  if (signal?.aborted) {
669
683
  // If the signal is already aborted, resolve immediately
670
684
  resolve();
671
685
  return;
672
686
  }
673
- const { retryDelayMs } = this.options;
674
687
  let timeoutId;
675
688
  const endDelay = () => {
676
689
  resolve();
@@ -681,7 +694,7 @@ The next upload iteration will be delayed.`);
681
694
  signal?.removeEventListener('abort', endDelay);
682
695
  };
683
696
  signal?.addEventListener('abort', endDelay, { once: true });
684
- timeoutId = setTimeout(endDelay, retryDelayMs);
697
+ timeoutId = setTimeout(endDelay, delay);
685
698
  });
686
699
  }
687
700
  updateSubscriptions(subscriptions) {
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractStreamingSyncImplementation.js","sourceRoot":"","sources":["../../../../src/client/sync/stream/AbstractStreamingSyncImplementation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractStreamingSyncImplementation.js","sourceRoot":"","sources":["../../../../src/client/sync/stream/AbstractStreamingSyncImplementation.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,8 @@ interface JSONObject {
3
3
  [key: string]: JSONValue;
4
4
  }
5
5
  type JSONArray = JSONValue[];
6
+ /**
7
+ * @public
8
+ */
6
9
  export type StreamingSyncRequestParameterType = JSONValue;
7
10
  export {};
@@ -23,7 +23,8 @@ export class WebsocketClientTransport {
23
23
  removeListeners();
24
24
  resolve(new WebsocketDuplexConnection(websocket, new Deserializer(), multiplexerDemultiplexerFactory));
25
25
  };
26
- const errorListener = (ev) => {
26
+ const errorListener = (event) => {
27
+ const ev = event;
27
28
  removeListeners();
28
29
  // We add a default error in that case.
29
30
  if (ev.error != null) {
@@ -1 +1 @@
1
- {"version":3,"file":"WebsocketClientTransport.js","sourceRoot":"","sources":["../../../../src/client/sync/stream/WebsocketClientTransport.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAIL,YAAY,EAKb,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,yBAAyB,EAAE,MAAM,4DAA4D,CAAC;AAEvG,MAAM,OAAO,wBAAwB;IAClB,GAAG,CAAS;IACZ,OAAO,CAA6B;IAErD,YAAY,OAAsB;QAChC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,CACL,+BAA+G;QAE/G,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEzC,SAAS,CAAC,UAAU,GAAG,aAAa,CAAC;YAErC,IAAI,eAA2B,CAAC;YAEhC,MAAM,YAAY,GAAG,GAAG,EAAE;gBACxB,eAAe,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,yBAAyB,CAAC,SAAS,EAAE,IAAI,YAAY,EAAE,EAAE,+BAA+B,CAAC,CAAC,CAAC;YACzG,CAAC,CAAC;YAEF,MAAM,aAAa,GAAG,CAAC,EAAc,EAAE,EAAE;gBACvC,eAAe,EAAE,CAAC;gBAClB,uCAAuC;gBACvC,IAAI,EAAE,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;oBACrB,4CAA4C;oBAC5C,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC;qBAAM,IAAI,EAAE,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;oBAC9B,sFAAsF;oBACtF,MAAM,CAAC,IAAI,KAAK,CAAC,0CAA0C,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC5E,CAAC;qBAAM,CAAC;oBACN,2CAA2C;oBAC3C,MAAM,CAAC,IAAI,KAAK,CAAC,4CAA4C,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC5E,CAAC;YACH,CAAC,CAAC;YAEF;;;eAGG;YACH,MAAM,aAAa,GAAG,GAAG,EAAE;gBACzB,eAAe,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC,CAAC;YACjE,CAAC,CAAC;YAEF,eAAe,GAAG,GAAG,EAAE;gBACrB,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;gBACpD,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;gBACtD,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YACxD,CAAC,CAAC;YAEF,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YACjD,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YACnD,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"WebsocketClientTransport.js","sourceRoot":"","sources":["../../../../src/client/sync/stream/WebsocketClientTransport.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAIL,YAAY,EAKb,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,yBAAyB,EAAE,MAAM,4DAA4D,CAAC;AAEvG,MAAM,OAAO,wBAAwB;IAClB,GAAG,CAAS;IACZ,OAAO,CAA6B;IAErD,YAAY,OAAsB;QAChC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,CACL,+BAA+G;QAE/G,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEzC,SAAS,CAAC,UAAU,GAAG,aAAa,CAAC;YAErC,IAAI,eAA2B,CAAC;YAEhC,MAAM,YAAY,GAAG,GAAG,EAAE;gBACxB,eAAe,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,yBAAyB,CAAC,SAAS,EAAE,IAAI,YAAY,EAAE,EAAE,+BAA+B,CAAC,CAAC,CAAC;YACzG,CAAC,CAAC;YAEF,MAAM,aAAa,GAAG,CAAC,KAAY,EAAE,EAAE;gBACrC,MAAM,EAAE,GAAG,KAAmB,CAAC;gBAE/B,eAAe,EAAE,CAAC;gBAClB,uCAAuC;gBACvC,IAAI,EAAE,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;oBACrB,4CAA4C;oBAC5C,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC;qBAAM,IAAI,EAAE,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;oBAC9B,sFAAsF;oBACtF,MAAM,CAAC,IAAI,KAAK,CAAC,0CAA0C,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC5E,CAAC;qBAAM,CAAC;oBACN,2CAA2C;oBAC3C,MAAM,CAAC,IAAI,KAAK,CAAC,4CAA4C,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC5E,CAAC;YACH,CAAC,CAAC;YAEF;;;eAGG;YACH,MAAM,aAAa,GAAG,GAAG,EAAE;gBACzB,eAAe,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC,CAAC;YACjE,CAAC,CAAC;YAEF,eAAe,GAAG,GAAG,EAAE;gBACrB,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;gBACpD,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;gBACtD,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YACxD,CAAC,CAAC;YAEF,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YACjD,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YACnD,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1,5 +1,8 @@
1
1
  /**
2
- * A description of a sync stream, consisting of its {@link name} and the {@link parameters} used when subscribing.
2
+ * A description of a sync stream, consisting of its {@link SyncStreamDescription.name} and the
3
+ * {@link SyncStreamDescription.parameters} used when subscribing.
4
+ *
5
+ * @public
3
6
  */
4
7
  export interface SyncStreamDescription {
5
8
  /**
@@ -17,6 +20,8 @@ export interface SyncStreamDescription {
17
20
  * Information about a subscribed sync stream.
18
21
  *
19
22
  * This includes the {@link SyncStreamDescription}, along with information about the current sync status.
23
+ *
24
+ * @public
20
25
  */
21
26
  export interface SyncSubscriptionDescription extends SyncStreamDescription {
22
27
  active: boolean;
@@ -24,15 +29,17 @@ export interface SyncSubscriptionDescription extends SyncStreamDescription {
24
29
  * Whether this stream subscription is included by default, regardless of whether the stream has explicitly been
25
30
  * subscribed to or not.
26
31
  *
27
- * It's possible for both {@link isDefault} and {@link hasExplicitSubscription} to be true at the same time - this
28
- * happens when a default stream was subscribed explicitly.
32
+ * It's possible for both {@link SyncSubscriptionDescription.isDefault} and
33
+ * {@link SyncSubscriptionDescription.hasExplicitSubscription} to be true at the same time - this happens when a
34
+ * default stream was subscribed explicitly.
29
35
  */
30
36
  isDefault: boolean;
31
37
  /**
32
38
  * Whether this stream has been subscribed to explicitly.
33
39
  *
34
- * It's possible for both {@link isDefault} and {@link hasExplicitSubscription} to be true at the same time - this
35
- * happens when a default stream was subscribed explicitly.
40
+ * It's possible for both {@link SyncSubscriptionDescription.isDefault} and
41
+ * {@link SyncSubscriptionDescription.hasExplicitSubscription} to be true at the same time - this happens when a
42
+ * default stream was subscribed explicitly.
36
43
  */
37
44
  hasExplicitSubscription: boolean;
38
45
  /**
@@ -45,10 +52,13 @@ export interface SyncSubscriptionDescription extends SyncStreamDescription {
45
52
  */
46
53
  hasSynced: boolean;
47
54
  /**
48
- * If {@link hasSynced} is true, the last time data from this stream has been synced.
55
+ * If {@link SyncSubscriptionDescription.hasSynced} is true, the last time data from this stream has been synced.
49
56
  */
50
57
  lastSyncedAt: Date | null;
51
58
  }
59
+ /**
60
+ * @public
61
+ */
52
62
  export interface SyncStreamSubscribeOptions {
53
63
  /**
54
64
  * A "time to live" for this stream subscription, in seconds.
@@ -68,6 +78,8 @@ export interface SyncStreamSubscribeOptions {
68
78
  * A handle to a {@link SyncStreamDescription} that allows subscribing to the stream.
69
79
  *
70
80
  * To obtain an instance of {@link SyncStream}, call {@link AbstractPowerSyncDatabase.syncStream}.
81
+ *
82
+ * @public
71
83
  */
72
84
  export interface SyncStream extends SyncStreamDescription {
73
85
  /**
@@ -76,7 +88,7 @@ export interface SyncStream extends SyncStreamDescription {
76
88
  * You should keep a reference to the returned {@link SyncStreamSubscription} object along as you need data for that
77
89
  * stream. As soon as {@link SyncStreamSubscription.unsubscribe} is called for all subscriptions on this stream
78
90
  * (including subscriptions created on other tabs), the {@link SyncStreamSubscribeOptions.ttl} starts ticking and will
79
- * eventually evict the stream (unless {@link subscribe} is called again).
91
+ * eventually evict the stream (unless {@link SyncStream.subscribe} is called again).
80
92
  */
81
93
  subscribe(options?: SyncStreamSubscribeOptions): Promise<SyncStreamSubscription>;
82
94
  /**
@@ -86,6 +98,9 @@ export interface SyncStream extends SyncStreamDescription {
86
98
  */
87
99
  unsubscribeAll(): Promise<void>;
88
100
  }
101
+ /**
102
+ * @public
103
+ */
89
104
  export interface SyncStreamSubscription extends SyncStreamDescription {
90
105
  /**
91
106
  * A promise that resolves once data from in this sync stream has been synced and applied.