@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.
- package/dist/bundle.cjs +560 -353
- package/dist/bundle.cjs.map +1 -1
- package/dist/bundle.mjs +560 -353
- package/dist/bundle.mjs.map +1 -1
- package/dist/bundle.node.cjs +560 -353
- package/dist/bundle.node.cjs.map +1 -1
- package/dist/bundle.node.mjs +560 -353
- package/dist/bundle.node.mjs.map +1 -1
- package/dist/index.d.cts +733 -198
- package/lib/attachments/AttachmentContext.d.ts +7 -6
- package/lib/attachments/AttachmentContext.js +2 -1
- package/lib/attachments/AttachmentContext.js.map +1 -1
- package/lib/attachments/AttachmentErrorHandler.d.ts +6 -6
- package/lib/attachments/AttachmentQueue.d.ts +61 -20
- package/lib/attachments/AttachmentQueue.js +16 -18
- package/lib/attachments/AttachmentQueue.js.map +1 -1
- package/lib/attachments/LocalStorageAdapter.d.ts +14 -8
- package/lib/attachments/LocalStorageAdapter.js +3 -0
- package/lib/attachments/LocalStorageAdapter.js.map +1 -1
- package/lib/attachments/RemoteStorageAdapter.d.ts +4 -4
- package/lib/attachments/Schema.d.ts +12 -4
- package/lib/attachments/Schema.js +8 -3
- package/lib/attachments/Schema.js.map +1 -1
- package/lib/attachments/WatchedAttachmentItem.d.ts +3 -1
- package/lib/client/AbstractPowerSyncDatabase.d.ts +110 -58
- package/lib/client/AbstractPowerSyncDatabase.js +59 -48
- package/lib/client/AbstractPowerSyncDatabase.js.map +1 -1
- package/lib/client/AbstractPowerSyncOpenFactory.d.ts +6 -0
- package/lib/client/AbstractPowerSyncOpenFactory.js +3 -0
- package/lib/client/AbstractPowerSyncOpenFactory.js.map +1 -1
- package/lib/client/ConnectionManager.d.ts +4 -1
- package/lib/client/ConnectionManager.js +1 -1
- package/lib/client/ConnectionManager.js.map +1 -1
- package/lib/client/Query.d.ts +9 -0
- package/lib/client/SQLOpenFactory.d.ts +12 -0
- package/lib/client/SQLOpenFactory.js +6 -0
- package/lib/client/SQLOpenFactory.js.map +1 -1
- package/lib/client/compilableQueryWatch.d.ts +6 -0
- package/lib/client/compilableQueryWatch.js +3 -0
- package/lib/client/compilableQueryWatch.js.map +1 -1
- package/lib/client/connection/PowerSyncBackendConnector.d.ts +3 -0
- package/lib/client/connection/PowerSyncCredentials.d.ts +3 -0
- package/lib/client/constants.d.ts +3 -0
- package/lib/client/constants.js +3 -0
- package/lib/client/constants.js.map +1 -1
- package/lib/client/runOnSchemaChange.d.ts +3 -0
- package/lib/client/runOnSchemaChange.js +3 -0
- package/lib/client/runOnSchemaChange.js.map +1 -1
- package/lib/client/sync/bucket/BucketStorageAdapter.d.ts +12 -0
- package/lib/client/sync/bucket/BucketStorageAdapter.js +6 -0
- package/lib/client/sync/bucket/BucketStorageAdapter.js.map +1 -1
- package/lib/client/sync/bucket/CrudBatch.d.ts +2 -0
- package/lib/client/sync/bucket/CrudBatch.js +2 -0
- package/lib/client/sync/bucket/CrudBatch.js.map +1 -1
- package/lib/client/sync/bucket/CrudEntry.d.ts +9 -0
- package/lib/client/sync/bucket/CrudEntry.js +4 -0
- package/lib/client/sync/bucket/CrudEntry.js.map +1 -1
- package/lib/client/sync/bucket/CrudTransaction.d.ts +3 -0
- package/lib/client/sync/bucket/CrudTransaction.js +3 -0
- package/lib/client/sync/bucket/CrudTransaction.js.map +1 -1
- package/lib/client/sync/bucket/SqliteBucketStorage.d.ts +3 -0
- package/lib/client/sync/bucket/SqliteBucketStorage.js +3 -0
- package/lib/client/sync/bucket/SqliteBucketStorage.js.map +1 -1
- package/lib/client/sync/stream/AbstractRemote.d.ts +30 -1
- package/lib/client/sync/stream/AbstractRemote.js +15 -1
- package/lib/client/sync/stream/AbstractRemote.js.map +1 -1
- package/lib/client/sync/stream/AbstractStreamingSyncImplementation.d.ts +61 -14
- package/lib/client/sync/stream/AbstractStreamingSyncImplementation.js +60 -47
- package/lib/client/sync/stream/AbstractStreamingSyncImplementation.js.map +1 -1
- package/lib/client/sync/stream/JsonValue.d.ts +3 -0
- package/lib/client/sync/stream/WebsocketClientTransport.js +2 -1
- package/lib/client/sync/stream/WebsocketClientTransport.js.map +1 -1
- package/lib/client/sync/sync-streams.d.ts +22 -7
- package/lib/client/triggers/TriggerManager.d.ts +19 -18
- package/lib/client/triggers/TriggerManager.js +2 -1
- package/lib/client/triggers/TriggerManager.js.map +1 -1
- package/lib/client/triggers/TriggerManagerImpl.d.ts +1 -1
- package/lib/client/triggers/TriggerManagerImpl.js +3 -3
- package/lib/client/triggers/TriggerManagerImpl.js.map +1 -1
- package/lib/client/triggers/sanitizeSQL.d.ts +4 -0
- package/lib/client/triggers/sanitizeSQL.js +4 -0
- package/lib/client/triggers/sanitizeSQL.js.map +1 -1
- package/lib/client/watched/GetAllQuery.d.ts +4 -0
- package/lib/client/watched/GetAllQuery.js +2 -0
- package/lib/client/watched/GetAllQuery.js.map +1 -1
- package/lib/client/watched/WatchedQuery.d.ts +24 -2
- package/lib/client/watched/WatchedQuery.js +9 -0
- package/lib/client/watched/WatchedQuery.js.map +1 -1
- package/lib/client/watched/processors/AbstractQueryProcessor.d.ts +1 -1
- package/lib/client/watched/processors/AbstractQueryProcessor.js.map +1 -1
- package/lib/client/watched/processors/DifferentialQueryProcessor.d.ts +20 -0
- package/lib/client/watched/processors/DifferentialQueryProcessor.js +4 -0
- package/lib/client/watched/processors/DifferentialQueryProcessor.js.map +1 -1
- package/lib/client/watched/processors/OnChangeQueryProcessor.d.ts +4 -0
- package/lib/client/watched/processors/OnChangeQueryProcessor.js.map +1 -1
- package/lib/client/watched/processors/comparators.d.ts +8 -0
- package/lib/client/watched/processors/comparators.js +4 -0
- package/lib/client/watched/processors/comparators.js.map +1 -1
- package/lib/db/ConnectionClosedError.d.ts +2 -0
- package/lib/db/ConnectionClosedError.js +2 -0
- package/lib/db/ConnectionClosedError.js.map +1 -1
- package/lib/db/DBAdapter.d.ts +56 -6
- package/lib/db/DBAdapter.js +15 -3
- package/lib/db/DBAdapter.js.map +1 -1
- package/lib/db/crud/SyncProgress.d.ts +6 -1
- package/lib/db/crud/SyncProgress.js +2 -0
- package/lib/db/crud/SyncProgress.js.map +1 -1
- package/lib/db/crud/SyncStatus.d.ts +36 -38
- package/lib/db/crud/SyncStatus.js +19 -14
- package/lib/db/crud/SyncStatus.js.map +1 -1
- package/lib/db/crud/UploadQueueStatus.d.ts +3 -0
- package/lib/db/crud/UploadQueueStatus.js +3 -0
- package/lib/db/crud/UploadQueueStatus.js.map +1 -1
- package/lib/db/schema/Column.d.ts +28 -0
- package/lib/db/schema/Column.js +16 -3
- package/lib/db/schema/Column.js.map +1 -1
- package/lib/db/schema/Index.d.ts +9 -0
- package/lib/db/schema/Index.js +6 -0
- package/lib/db/schema/Index.js.map +1 -1
- package/lib/db/schema/IndexedColumn.d.ts +9 -0
- package/lib/db/schema/IndexedColumn.js +6 -0
- package/lib/db/schema/IndexedColumn.js.map +1 -1
- package/lib/db/schema/RawTable.d.ts +7 -1
- package/lib/db/schema/Schema.d.ts +6 -1
- package/lib/db/schema/Schema.js +3 -1
- package/lib/db/schema/Schema.js.map +1 -1
- package/lib/db/schema/Table.d.ts +27 -3
- package/lib/db/schema/Table.js +9 -0
- package/lib/db/schema/Table.js.map +1 -1
- package/lib/db/schema/TableV2.d.ts +2 -0
- package/lib/db/schema/TableV2.js +2 -0
- package/lib/db/schema/TableV2.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/types/types.d.ts +6 -0
- package/lib/utils/AbortOperation.d.ts +2 -0
- package/lib/utils/AbortOperation.js +2 -0
- package/lib/utils/AbortOperation.js.map +1 -1
- package/lib/utils/BaseObserver.d.ts +12 -0
- package/lib/utils/BaseObserver.js +3 -0
- package/lib/utils/BaseObserver.js.map +1 -1
- package/lib/utils/ControlledExecutor.d.ts +6 -0
- package/lib/utils/ControlledExecutor.js +3 -0
- package/lib/utils/ControlledExecutor.js.map +1 -1
- package/lib/utils/Logger.d.ts +9 -0
- package/lib/utils/Logger.js +6 -0
- package/lib/utils/Logger.js.map +1 -1
- package/lib/utils/async.d.ts +13 -7
- package/lib/utils/async.js +38 -24
- package/lib/utils/async.js.map +1 -1
- package/lib/utils/mutex.d.ts +8 -0
- package/lib/utils/mutex.js +3 -0
- package/lib/utils/mutex.js.map +1 -1
- package/lib/utils/parseQuery.d.ts +6 -0
- package/lib/utils/parseQuery.js +3 -0
- package/lib/utils/parseQuery.js.map +1 -1
- package/lib/utils/stream_transform.d.ts +3 -1
- package/lib/utils/stream_transform.js.map +1 -1
- package/package.json +3 -2
- package/src/attachments/AttachmentContext.ts +7 -6
- package/src/attachments/AttachmentErrorHandler.ts +6 -6
- package/src/attachments/AttachmentQueue.ts +71 -23
- package/src/attachments/LocalStorageAdapter.ts +14 -8
- package/src/attachments/README.md +2 -0
- package/src/attachments/RemoteStorageAdapter.ts +4 -4
- package/src/attachments/Schema.ts +12 -4
- package/src/attachments/WatchedAttachmentItem.ts +3 -1
- package/src/client/AbstractPowerSyncDatabase.ts +117 -62
- package/src/client/AbstractPowerSyncOpenFactory.ts +6 -0
- package/src/client/ConnectionManager.ts +4 -1
- package/src/client/Query.ts +9 -0
- package/src/client/SQLOpenFactory.ts +12 -0
- package/src/client/compilableQueryWatch.ts +6 -0
- package/src/client/connection/PowerSyncBackendConnector.ts +3 -0
- package/src/client/connection/PowerSyncCredentials.ts +3 -0
- package/src/client/constants.ts +3 -0
- package/src/client/runOnSchemaChange.ts +3 -0
- package/src/client/sync/bucket/BucketStorageAdapter.ts +12 -0
- package/src/client/sync/bucket/CrudBatch.ts +2 -0
- package/src/client/sync/bucket/CrudEntry.ts +9 -0
- package/src/client/sync/bucket/CrudTransaction.ts +3 -0
- package/src/client/sync/bucket/SqliteBucketStorage.ts +3 -0
- package/src/client/sync/stream/AbstractRemote.ts +30 -1
- package/src/client/sync/stream/AbstractStreamingSyncImplementation.ts +86 -59
- package/src/client/sync/stream/JsonValue.ts +3 -0
- package/src/client/sync/stream/WebsocketClientTransport.ts +3 -1
- package/src/client/sync/sync-streams.ts +22 -9
- package/src/client/triggers/TriggerManager.ts +19 -18
- package/src/client/triggers/TriggerManagerImpl.ts +5 -5
- package/src/client/triggers/sanitizeSQL.ts +5 -0
- package/src/client/watched/GetAllQuery.ts +5 -1
- package/src/client/watched/WatchedQuery.ts +24 -2
- package/src/client/watched/processors/AbstractQueryProcessor.ts +6 -6
- package/src/client/watched/processors/DifferentialQueryProcessor.ts +28 -5
- package/src/client/watched/processors/OnChangeQueryProcessor.ts +9 -3
- package/src/client/watched/processors/comparators.ts +8 -0
- package/src/db/ConnectionClosedError.ts +2 -0
- package/src/db/DBAdapter.ts +58 -6
- package/src/db/crud/SyncProgress.ts +6 -1
- package/src/db/crud/SyncStatus.ts +40 -21
- package/src/db/crud/UploadQueueStatus.ts +3 -0
- package/src/db/schema/Column.ts +28 -3
- package/src/db/schema/Index.ts +9 -0
- package/src/db/schema/IndexedColumn.ts +9 -0
- package/src/db/schema/RawTable.ts +7 -1
- package/src/db/schema/Schema.ts +8 -3
- package/src/db/schema/Table.ts +30 -5
- package/src/db/schema/TableV2.ts +2 -0
- package/src/index.ts +1 -1
- package/src/types/types.ts +6 -0
- package/src/utils/AbortOperation.ts +2 -0
- package/src/utils/BaseObserver.ts +12 -0
- package/src/utils/ControlledExecutor.ts +6 -0
- package/src/utils/Logger.ts +9 -0
- package/src/utils/async.ts +51 -24
- package/src/utils/mutex.ts +12 -0
- package/src/utils/parseQuery.ts +6 -0
- 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,
|
|
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
|
-
/** @
|
|
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
|
|
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
|
-
|
|
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
|
|
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,
|
|
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
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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
|
-
|
|
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
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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(
|
|
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 =
|
|
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
|
|
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,
|
|
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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"}
|
|
@@ -23,7 +23,8 @@ export class WebsocketClientTransport {
|
|
|
23
23
|
removeListeners();
|
|
24
24
|
resolve(new WebsocketDuplexConnection(websocket, new Deserializer(), multiplexerDemultiplexerFactory));
|
|
25
25
|
};
|
|
26
|
-
const errorListener = (
|
|
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,
|
|
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
|
|
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
|
|
28
|
-
*
|
|
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
|
|
35
|
-
*
|
|
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.
|