@powersync/common 0.0.0-dev-20240729071401 → 0.0.0-dev-20240815073141
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/index.js +3 -3
- package/lib/client/AbstractPowerSyncDatabase.d.ts +8 -4
- package/lib/client/AbstractPowerSyncDatabase.js +21 -30
- package/lib/client/AbstractPowerSyncDatabase.js.map +1 -1
- package/lib/client/constants.d.ts +1 -0
- package/lib/client/constants.js +2 -0
- package/lib/client/constants.js.map +1 -0
- package/lib/client/sync/bucket/BucketStorageAdapter.d.ts +3 -2
- package/lib/client/sync/bucket/CrudEntry.d.ts +2 -7
- package/lib/client/sync/bucket/SqliteBucketStorage.d.ts +4 -3
- package/lib/client/sync/bucket/SqliteBucketStorage.js +26 -31
- package/lib/client/sync/bucket/SqliteBucketStorage.js.map +1 -1
- package/lib/client/sync/bucket/SyncDataBucket.d.ts +0 -1
- package/lib/client/sync/bucket/SyncDataBucket.js +0 -1
- package/lib/client/sync/bucket/SyncDataBucket.js.map +1 -1
- package/lib/client/sync/stream/AbstractStreamingSyncImplementation.d.ts +4 -5
- package/lib/client/sync/stream/AbstractStreamingSyncImplementation.js +31 -21
- package/lib/client/sync/stream/AbstractStreamingSyncImplementation.js.map +1 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.js +2 -1
- package/lib/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -5,12 +5,12 @@ import { SyncStatus } from '../db/crud/SyncStatus';
|
|
|
5
5
|
import { UploadQueueStats } from '../db/crud/UploadQueueStatus';
|
|
6
6
|
import { Schema } from '../db/schema/Schema';
|
|
7
7
|
import { BaseObserver } from '../utils/BaseObserver';
|
|
8
|
+
import { SQLOpenFactory, SQLOpenOptions } from './SQLOpenFactory';
|
|
8
9
|
import { PowerSyncBackendConnector } from './connection/PowerSyncBackendConnector';
|
|
9
10
|
import { BucketStorageAdapter } from './sync/bucket/BucketStorageAdapter';
|
|
10
11
|
import { CrudBatch } from './sync/bucket/CrudBatch';
|
|
11
12
|
import { CrudTransaction } from './sync/bucket/CrudTransaction';
|
|
12
|
-
import { AbstractStreamingSyncImplementation,
|
|
13
|
-
import { SQLOpenFactory, SQLOpenOptions } from './SQLOpenFactory';
|
|
13
|
+
import { AbstractStreamingSyncImplementation, PowerSyncConnectionOptions, StreamingSyncImplementation, StreamingSyncImplementationListener } from './sync/stream/AbstractStreamingSyncImplementation';
|
|
14
14
|
export interface DisconnectAndClearOptions {
|
|
15
15
|
/** When set to false, data in local-only tables is preserved. */
|
|
16
16
|
clearLocal?: boolean;
|
|
@@ -96,6 +96,11 @@ export declare const DEFAULT_POWERSYNC_DB_OPTIONS: {
|
|
|
96
96
|
* be obtained.
|
|
97
97
|
*/
|
|
98
98
|
export declare const DEFAULT_LOCK_TIMEOUT_MS = 120000;
|
|
99
|
+
/**
|
|
100
|
+
* Tests if the input is a {@link PowerSyncDatabaseOptionsWithSettings}
|
|
101
|
+
* @internal
|
|
102
|
+
*/
|
|
103
|
+
export declare const isPowerSyncDatabaseOptionsWithSettings: (test: any) => test is PowerSyncDatabaseOptionsWithSettings;
|
|
99
104
|
export declare abstract class AbstractPowerSyncDatabase extends BaseObserver<PowerSyncDBListener> {
|
|
100
105
|
protected options: PowerSyncDatabaseOptions;
|
|
101
106
|
/**
|
|
@@ -117,7 +122,6 @@ export declare abstract class AbstractPowerSyncDatabase extends BaseObserver<Pow
|
|
|
117
122
|
protected bucketStorageAdapter: BucketStorageAdapter;
|
|
118
123
|
private syncStatusListenerDisposer?;
|
|
119
124
|
protected _isReadyPromise: Promise<void>;
|
|
120
|
-
private hasSyncedWatchDisposer?;
|
|
121
125
|
protected _schema: Schema;
|
|
122
126
|
private _database;
|
|
123
127
|
constructor(options: PowerSyncDatabaseOptionsWithDBAdapter);
|
|
@@ -143,7 +147,7 @@ export declare abstract class AbstractPowerSyncDatabase extends BaseObserver<Pow
|
|
|
143
147
|
/**
|
|
144
148
|
* Opens the DBAdapter given open options using a default open factory
|
|
145
149
|
*/
|
|
146
|
-
protected abstract openDBAdapter(options:
|
|
150
|
+
protected abstract openDBAdapter(options: PowerSyncDatabaseOptionsWithSettings): DBAdapter;
|
|
147
151
|
protected abstract generateSyncStreamImplementation(connector: PowerSyncBackendConnector): AbstractStreamingSyncImplementation;
|
|
148
152
|
protected abstract generateBucketStorageAdapter(): BucketStorageAdapter;
|
|
149
153
|
/**
|
|
@@ -6,15 +6,15 @@ import { isBatchedUpdateNotification } from '../db/DBAdapter';
|
|
|
6
6
|
import { SyncStatus } from '../db/crud/SyncStatus';
|
|
7
7
|
import { UploadQueueStats } from '../db/crud/UploadQueueStatus';
|
|
8
8
|
import { BaseObserver } from '../utils/BaseObserver';
|
|
9
|
+
import { ControlledExecutor } from '../utils/ControlledExecutor';
|
|
9
10
|
import { mutexRunExclusive } from '../utils/mutex';
|
|
10
11
|
import { quoteIdentifier } from '../utils/strings';
|
|
12
|
+
import { isDBAdapter, isSQLOpenFactory, isSQLOpenOptions } from './SQLOpenFactory';
|
|
11
13
|
import { PSInternalTable } from './sync/bucket/BucketStorageAdapter';
|
|
12
14
|
import { CrudBatch } from './sync/bucket/CrudBatch';
|
|
13
15
|
import { CrudEntry } from './sync/bucket/CrudEntry';
|
|
14
16
|
import { CrudTransaction } from './sync/bucket/CrudTransaction';
|
|
15
17
|
import { DEFAULT_CRUD_UPLOAD_THROTTLE_MS } from './sync/stream/AbstractStreamingSyncImplementation';
|
|
16
|
-
import { ControlledExecutor } from '../utils/ControlledExecutor';
|
|
17
|
-
import { isDBAdapter, isSQLOpenFactory, isSQLOpenOptions } from './SQLOpenFactory';
|
|
18
18
|
const POWERSYNC_TABLE_MATCH = /(^ps_data__|^ps_data_local__)/;
|
|
19
19
|
const DEFAULT_DISCONNECT_CLEAR_OPTIONS = {
|
|
20
20
|
clearLocal: true
|
|
@@ -34,6 +34,13 @@ export const DEFAULT_POWERSYNC_DB_OPTIONS = {
|
|
|
34
34
|
* be obtained.
|
|
35
35
|
*/
|
|
36
36
|
export const DEFAULT_LOCK_TIMEOUT_MS = 120_000; // 2 mins
|
|
37
|
+
/**
|
|
38
|
+
* Tests if the input is a {@link PowerSyncDatabaseOptionsWithSettings}
|
|
39
|
+
* @internal
|
|
40
|
+
*/
|
|
41
|
+
export const isPowerSyncDatabaseOptionsWithSettings = (test) => {
|
|
42
|
+
return typeof test == 'object' && isSQLOpenOptions(test.database);
|
|
43
|
+
};
|
|
37
44
|
export class AbstractPowerSyncDatabase extends BaseObserver {
|
|
38
45
|
options;
|
|
39
46
|
/**
|
|
@@ -55,7 +62,6 @@ export class AbstractPowerSyncDatabase extends BaseObserver {
|
|
|
55
62
|
bucketStorageAdapter;
|
|
56
63
|
syncStatusListenerDisposer;
|
|
57
64
|
_isReadyPromise;
|
|
58
|
-
hasSyncedWatchDisposer;
|
|
59
65
|
_schema;
|
|
60
66
|
_database;
|
|
61
67
|
constructor(options) {
|
|
@@ -68,8 +74,8 @@ export class AbstractPowerSyncDatabase extends BaseObserver {
|
|
|
68
74
|
else if (isSQLOpenFactory(database)) {
|
|
69
75
|
this._database = database.openDB();
|
|
70
76
|
}
|
|
71
|
-
else if (
|
|
72
|
-
this._database = this.openDBAdapter(
|
|
77
|
+
else if (isPowerSyncDatabaseOptionsWithSettings(options)) {
|
|
78
|
+
this._database = this.openDBAdapter(options);
|
|
73
79
|
}
|
|
74
80
|
this.bucketStorageAdapter = this.generateBucketStorageAdapter();
|
|
75
81
|
this.closed = false;
|
|
@@ -142,35 +148,18 @@ export class AbstractPowerSyncDatabase extends BaseObserver {
|
|
|
142
148
|
const version = await this.database.execute('SELECT powersync_rs_version()');
|
|
143
149
|
this.sdkVersion = version.rows?.item(0)['powersync_rs_version()'] ?? '';
|
|
144
150
|
await this.updateSchema(this.options.schema);
|
|
145
|
-
this.updateHasSynced();
|
|
151
|
+
await this.updateHasSynced();
|
|
146
152
|
await this.database.execute('PRAGMA RECURSIVE_TRIGGERS=TRUE');
|
|
147
153
|
this.ready = true;
|
|
148
154
|
this.iterateListeners((cb) => cb.initialized?.());
|
|
149
155
|
}
|
|
150
156
|
async updateHasSynced() {
|
|
151
|
-
const
|
|
152
|
-
const
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
const hasSynced = !!result.rows?.length;
|
|
158
|
-
if (hasSynced != this.currentStatus.hasSynced) {
|
|
159
|
-
this.currentStatus = new SyncStatus({ ...this.currentStatus.toJSON(), hasSynced });
|
|
160
|
-
this.iterateListeners((l) => l.statusChanged?.(this.currentStatus));
|
|
161
|
-
}
|
|
162
|
-
if (hasSynced) {
|
|
163
|
-
abortController.abort();
|
|
164
|
-
}
|
|
165
|
-
},
|
|
166
|
-
onError: (ex) => {
|
|
167
|
-
this.options.logger?.warn('Failure while watching synced state', ex);
|
|
168
|
-
abortController.abort();
|
|
169
|
-
}
|
|
170
|
-
}, {
|
|
171
|
-
rawTableNames: true,
|
|
172
|
-
signal: abortController.signal
|
|
173
|
-
});
|
|
157
|
+
const result = await this.database.getOptional('SELECT 1 FROM ps_buckets WHERE last_applied_op > 0 LIMIT 1');
|
|
158
|
+
const hasSynced = !!result;
|
|
159
|
+
if (hasSynced != this.currentStatus.hasSynced) {
|
|
160
|
+
this.currentStatus = new SyncStatus({ ...this.currentStatus.toJSON(), hasSynced });
|
|
161
|
+
this.iterateListeners((l) => l.statusChanged?.(this.currentStatus));
|
|
162
|
+
}
|
|
174
163
|
}
|
|
175
164
|
/**
|
|
176
165
|
* Replace the schema with a new version. This is for advanced use cases - typically the schema should just be specified once in the constructor.
|
|
@@ -267,6 +256,9 @@ export class AbstractPowerSyncDatabase extends BaseObserver {
|
|
|
267
256
|
await tx.execute(`DELETE FROM ${quoteIdentifier(row.name)} WHERE 1`);
|
|
268
257
|
}
|
|
269
258
|
});
|
|
259
|
+
// The data has been deleted - reset the sync status
|
|
260
|
+
this.currentStatus = new SyncStatus({});
|
|
261
|
+
this.iterateListeners((l) => l.statusChanged?.(this.currentStatus));
|
|
270
262
|
}
|
|
271
263
|
/**
|
|
272
264
|
* Close the database, releasing resources.
|
|
@@ -278,7 +270,6 @@ export class AbstractPowerSyncDatabase extends BaseObserver {
|
|
|
278
270
|
*/
|
|
279
271
|
async close(options = DEFAULT_POWERSYNC_CLOSE_OPTIONS) {
|
|
280
272
|
await this.waitForReady();
|
|
281
|
-
this.hasSyncedWatchDisposer?.();
|
|
282
273
|
const { disconnect } = options;
|
|
283
274
|
if (disconnect) {
|
|
284
275
|
await this.disconnect();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractPowerSyncDatabase.js","sourceRoot":"","sources":["../../src/client/AbstractPowerSyncDatabase.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AbstractPowerSyncDatabase.js","sourceRoot":"","sources":["../../src/client/AbstractPowerSyncDatabase.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const MAX_OP_ID = "9223372036854775807";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/client/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,qBAAqB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BaseListener, BaseObserver, Disposable } from '../../../utils/BaseObserver';
|
|
2
2
|
import { CrudBatch } from './CrudBatch';
|
|
3
|
+
import { CrudEntry, OpId } from './CrudEntry';
|
|
3
4
|
import { SyncDataBatch } from './SyncDataBatch';
|
|
4
|
-
import { BaseListener, BaseObserver, Disposable } from '../../../utils/BaseObserver';
|
|
5
5
|
export interface Checkpoint {
|
|
6
6
|
last_op_id: OpId;
|
|
7
7
|
buckets: BucketChecksum[];
|
|
@@ -56,6 +56,7 @@ export interface BucketStorageAdapter extends BaseObserver<BucketStorageListener
|
|
|
56
56
|
ready: boolean;
|
|
57
57
|
failures?: any[];
|
|
58
58
|
}>;
|
|
59
|
+
nextCrudItem(): Promise<CrudEntry | undefined>;
|
|
59
60
|
hasCrud(): Promise<boolean>;
|
|
60
61
|
getCrudBatch(limit?: number): Promise<CrudBatch | null>;
|
|
61
62
|
hasCompletedSync(): Promise<boolean>;
|
|
@@ -20,16 +20,10 @@ export type CrudEntryJSON = {
|
|
|
20
20
|
data: string;
|
|
21
21
|
tx_id?: number;
|
|
22
22
|
};
|
|
23
|
-
export type CrudEntryDataJSON = {
|
|
24
|
-
data: Record<string, any>;
|
|
25
|
-
op: UpdateType;
|
|
26
|
-
type: string;
|
|
27
|
-
id: string;
|
|
28
|
-
};
|
|
29
23
|
/**
|
|
30
24
|
* The output JSON seems to be a third type of JSON, not the same as the input JSON.
|
|
31
25
|
*/
|
|
32
|
-
|
|
26
|
+
type CrudEntryOutputJSON = {
|
|
33
27
|
op_id: number;
|
|
34
28
|
op: UpdateType;
|
|
35
29
|
type: string;
|
|
@@ -84,3 +78,4 @@ export declare class CrudEntry {
|
|
|
84
78
|
*/
|
|
85
79
|
toComparisonArray(): (string | number | Record<string, any> | undefined)[];
|
|
86
80
|
}
|
|
81
|
+
export {};
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { Mutex } from 'async-mutex';
|
|
2
|
+
import { ILogger } from 'js-logger';
|
|
2
3
|
import { DBAdapter, Transaction } from '../../../db/DBAdapter';
|
|
4
|
+
import { BaseObserver } from '../../../utils/BaseObserver';
|
|
3
5
|
import { BucketState, BucketStorageAdapter, BucketStorageListener, Checkpoint, SyncLocalDatabaseResult } from './BucketStorageAdapter';
|
|
4
6
|
import { CrudBatch } from './CrudBatch';
|
|
7
|
+
import { CrudEntry } from './CrudEntry';
|
|
5
8
|
import { SyncDataBatch } from './SyncDataBatch';
|
|
6
|
-
import { ILogger } from 'js-logger';
|
|
7
|
-
import { BaseObserver } from '../../../utils/BaseObserver';
|
|
8
9
|
export declare class SqliteBucketStorage extends BaseObserver<BucketStorageListener> implements BucketStorageAdapter {
|
|
9
10
|
private db;
|
|
10
11
|
private mutex;
|
|
11
12
|
private logger;
|
|
12
|
-
static MAX_OP_ID: string;
|
|
13
13
|
tableNames: Set<string>;
|
|
14
14
|
private pendingBucketDeletes;
|
|
15
15
|
private _hasCompletedSync;
|
|
@@ -50,6 +50,7 @@ export declare class SqliteBucketStorage extends BaseObserver<BucketStorageListe
|
|
|
50
50
|
private deletePendingBuckets;
|
|
51
51
|
private clearRemoveOps;
|
|
52
52
|
updateLocalTarget(cb: () => Promise<string>): Promise<boolean>;
|
|
53
|
+
nextCrudItem(): Promise<CrudEntry | undefined>;
|
|
53
54
|
hasCrud(): Promise<boolean>;
|
|
54
55
|
/**
|
|
55
56
|
* Get a batch of objects to send to the server.
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
+
import Logger from 'js-logger';
|
|
1
2
|
import { extractTableUpdates } from '../../../db/DBAdapter';
|
|
3
|
+
import { BaseObserver } from '../../../utils/BaseObserver';
|
|
2
4
|
import { PSInternalTable } from './BucketStorageAdapter';
|
|
3
|
-
import {
|
|
5
|
+
import { MAX_OP_ID } from '../../constants';
|
|
4
6
|
import { CrudEntry } from './CrudEntry';
|
|
5
|
-
import Logger from 'js-logger';
|
|
6
|
-
import { BaseObserver } from '../../../utils/BaseObserver';
|
|
7
7
|
const COMPACT_OPERATION_INTERVAL = 1_000;
|
|
8
8
|
export class SqliteBucketStorage extends BaseObserver {
|
|
9
9
|
db;
|
|
10
10
|
mutex;
|
|
11
11
|
logger;
|
|
12
|
-
static MAX_OP_ID = '9223372036854775807';
|
|
13
12
|
tableNames;
|
|
14
13
|
pendingBucketDeletes;
|
|
15
14
|
_hasCompletedSync;
|
|
@@ -37,8 +36,8 @@ export class SqliteBucketStorage extends BaseObserver {
|
|
|
37
36
|
}
|
|
38
37
|
async init() {
|
|
39
38
|
this._hasCompletedSync = false;
|
|
40
|
-
const existingTableRows = await this.db.
|
|
41
|
-
for (const row of existingTableRows
|
|
39
|
+
const existingTableRows = await this.db.getAll(`SELECT name FROM sqlite_master WHERE type='table' AND name GLOB 'ps_data_*'`);
|
|
40
|
+
for (const row of existingTableRows ?? []) {
|
|
42
41
|
this.tableNames.add(row.name);
|
|
43
42
|
}
|
|
44
43
|
}
|
|
@@ -46,15 +45,15 @@ export class SqliteBucketStorage extends BaseObserver {
|
|
|
46
45
|
this.updateListener?.();
|
|
47
46
|
}
|
|
48
47
|
getMaxOpId() {
|
|
49
|
-
return
|
|
48
|
+
return MAX_OP_ID;
|
|
50
49
|
}
|
|
51
50
|
/**
|
|
52
51
|
* Reset any caches.
|
|
53
52
|
*/
|
|
54
53
|
startSession() { }
|
|
55
54
|
async getBucketStates() {
|
|
56
|
-
const result = await this.db.
|
|
57
|
-
return result
|
|
55
|
+
const result = await this.db.getAll('SELECT name as bucket, cast(last_op as TEXT) as op_id FROM ps_buckets WHERE pending_delete = 0');
|
|
56
|
+
return result;
|
|
58
57
|
}
|
|
59
58
|
async saveSyncData(batch) {
|
|
60
59
|
await this.writeTransaction(async (tx) => {
|
|
@@ -79,19 +78,8 @@ export class SqliteBucketStorage extends BaseObserver {
|
|
|
79
78
|
* Mark a bucket for deletion.
|
|
80
79
|
*/
|
|
81
80
|
async deleteBucket(bucket) {
|
|
82
|
-
// Delete a bucket, but allow it to be re-created.
|
|
83
|
-
// To achieve this, we rename the bucket to a new temp name, and change all ops to remove.
|
|
84
|
-
// By itself, this new bucket would ensure that the previous objects are deleted if they contain no more references.
|
|
85
|
-
// If the old bucket is re-added, this new bucket would have no effect.
|
|
86
81
|
await this.writeTransaction(async (tx) => {
|
|
87
|
-
|
|
88
|
-
const newName = `$delete_${bucket}_${uuid}`;
|
|
89
|
-
this.logger.debug('Deleting bucket', bucket);
|
|
90
|
-
await tx.execute(`UPDATE ps_oplog SET op=${OpTypeEnum.REMOVE}, data=NULL WHERE op=${OpTypeEnum.PUT} AND superseded=0 AND bucket=?`, [bucket]);
|
|
91
|
-
// Rename bucket
|
|
92
|
-
await tx.execute('UPDATE ps_oplog SET bucket=? WHERE bucket=?', [newName, bucket]);
|
|
93
|
-
await tx.execute('DELETE FROM ps_buckets WHERE name = ?', [bucket]);
|
|
94
|
-
await tx.execute('INSERT INTO ps_buckets(name, pending_delete, last_op) SELECT ?, 1, IFNULL(MAX(op_id), 0) FROM ps_oplog WHERE bucket = ?', [newName, newName]);
|
|
82
|
+
await tx.execute('INSERT INTO powersync_operations(op, data) VALUES(?, ?)', ['delete_bucket', bucket]);
|
|
95
83
|
});
|
|
96
84
|
this.logger.debug('done deleting bucket');
|
|
97
85
|
this.pendingBucketDeletes = true;
|
|
@@ -206,19 +194,19 @@ export class SqliteBucketStorage extends BaseObserver {
|
|
|
206
194
|
this.compactCounter = 0;
|
|
207
195
|
}
|
|
208
196
|
async updateLocalTarget(cb) {
|
|
209
|
-
const rs1 = await this.db.
|
|
210
|
-
|
|
197
|
+
const rs1 = await this.db.getAll("SELECT target_op FROM ps_buckets WHERE name = '$local' AND target_op = ?", [
|
|
198
|
+
MAX_OP_ID
|
|
211
199
|
]);
|
|
212
|
-
if (!rs1.
|
|
200
|
+
if (!rs1.length) {
|
|
213
201
|
// Nothing to update
|
|
214
202
|
return false;
|
|
215
203
|
}
|
|
216
|
-
const rs = await this.db.
|
|
217
|
-
if (!rs.
|
|
204
|
+
const rs = await this.db.getAll("SELECT seq FROM sqlite_sequence WHERE name = 'ps_crud'");
|
|
205
|
+
if (!rs.length) {
|
|
218
206
|
// Nothing to update
|
|
219
207
|
return false;
|
|
220
208
|
}
|
|
221
|
-
const seqBefore = rs
|
|
209
|
+
const seqBefore = rs[0]['seq'];
|
|
222
210
|
const opId = await cb();
|
|
223
211
|
this.logger.debug(`[updateLocalTarget] Updating target to checkpoint ${opId}`);
|
|
224
212
|
return this.writeTransaction(async (tx) => {
|
|
@@ -245,9 +233,16 @@ export class SqliteBucketStorage extends BaseObserver {
|
|
|
245
233
|
return true;
|
|
246
234
|
});
|
|
247
235
|
}
|
|
236
|
+
async nextCrudItem() {
|
|
237
|
+
const next = await this.db.getOptional('SELECT * FROM ps_crud ORDER BY id ASC LIMIT 1');
|
|
238
|
+
if (!next) {
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
return CrudEntry.fromRow(next);
|
|
242
|
+
}
|
|
248
243
|
async hasCrud() {
|
|
249
|
-
const anyData = await this.db.
|
|
250
|
-
return !!anyData
|
|
244
|
+
const anyData = await this.db.getOptional('SELECT 1 FROM ps_crud LIMIT 1');
|
|
245
|
+
return !!anyData;
|
|
251
246
|
}
|
|
252
247
|
/**
|
|
253
248
|
* Get a batch of objects to send to the server.
|
|
@@ -257,9 +252,9 @@ export class SqliteBucketStorage extends BaseObserver {
|
|
|
257
252
|
if (!(await this.hasCrud())) {
|
|
258
253
|
return null;
|
|
259
254
|
}
|
|
260
|
-
const crudResult = await this.db.
|
|
255
|
+
const crudResult = await this.db.getAll('SELECT * FROM ps_crud ORDER BY id ASC LIMIT ?', [limit]);
|
|
261
256
|
const all = [];
|
|
262
|
-
for (const row of crudResult
|
|
257
|
+
for (const row of crudResult) {
|
|
263
258
|
all.push(CrudEntry.fromRow(row));
|
|
264
259
|
}
|
|
265
260
|
if (all.length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteBucketStorage.js","sourceRoot":"","sources":["../../../../src/client/sync/bucket/SqliteBucketStorage.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"SqliteBucketStorage.js","sourceRoot":"","sources":["../../../../src/client/sync/bucket/SqliteBucketStorage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyncDataBucket.js","sourceRoot":"","sources":["../../../../src/client/sync/bucket/SyncDataBucket.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAkB,MAAM,cAAc,CAAC;AAU1D,MAAM,
|
|
1
|
+
{"version":3,"file":"SyncDataBucket.js","sourceRoot":"","sources":["../../../../src/client/sync/bucket/SyncDataBucket.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAkB,MAAM,cAAc,CAAC;AAU1D,MAAM,OAAO,cAAc;IAYhB;IACA;IAIA;IAIA;IAIA;IAxBT,MAAM,CAAC,OAAO,CAAC,GAAuB;QACpC,OAAO,IAAI,cAAc,CACvB,GAAG,CAAC,MAAM,EACV,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAClD,GAAG,CAAC,QAAQ,IAAI,KAAK,EACrB,GAAG,CAAC,KAAK,EACT,GAAG,CAAC,UAAU,CACf,CAAC;IACJ,CAAC;IAED,YACS,MAAc,EACd,IAAkB;IACzB;;OAEG;IACI,QAAiB;IACxB;;OAEG;IACI,KAAY;IACnB;;OAEG;IACI,UAAiB;QAbjB,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAc;QAIlB,aAAQ,GAAR,QAAQ,CAAS;QAIjB,UAAK,GAAL,KAAK,CAAO;QAIZ,eAAU,GAAV,UAAU,CAAO;IACvB,CAAC;IAEJ,MAAM;QACJ,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;SAC/C,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ILogger } from 'js-logger';
|
|
2
|
-
import { StreamingSyncRequestParameterType } from './streaming-sync-types';
|
|
3
|
-
import { AbstractRemote } from './AbstractRemote';
|
|
4
|
-
import { BucketStorageAdapter } from '../bucket/BucketStorageAdapter';
|
|
5
2
|
import { SyncStatus, SyncStatusOptions } from '../../../db/crud/SyncStatus';
|
|
6
|
-
import {
|
|
3
|
+
import { BaseListener, BaseObserver, Disposable } from '../../../utils/BaseObserver';
|
|
4
|
+
import { BucketStorageAdapter } from '../bucket/BucketStorageAdapter';
|
|
5
|
+
import { AbstractRemote } from './AbstractRemote';
|
|
6
|
+
import { StreamingSyncRequestParameterType } from './streaming-sync-types';
|
|
7
7
|
export declare enum LockType {
|
|
8
8
|
CRUD = "crud",
|
|
9
9
|
SYNC = "sync"
|
|
@@ -105,7 +105,6 @@ export declare abstract class AbstractStreamingSyncImplementation extends BaseOb
|
|
|
105
105
|
hasCompletedSync(): Promise<boolean>;
|
|
106
106
|
getWriteCheckpoint(): Promise<string>;
|
|
107
107
|
protected _uploadAllCrud(): Promise<void>;
|
|
108
|
-
protected uploadCrudBatch(): Promise<boolean>;
|
|
109
108
|
connect(options?: PowerSyncConnectionOptions): Promise<void>;
|
|
110
109
|
disconnect(): Promise<void>;
|
|
111
110
|
/**
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import throttle from 'lodash/throttle';
|
|
2
2
|
import Logger from 'js-logger';
|
|
3
|
-
import { isStreamingKeepalive, isStreamingSyncCheckpoint, isStreamingSyncCheckpointComplete, isStreamingSyncCheckpointDiff, isStreamingSyncData } from './streaming-sync-types';
|
|
4
3
|
import { SyncStatus } from '../../../db/crud/SyncStatus';
|
|
5
|
-
import { SyncDataBucket } from '../bucket/SyncDataBucket';
|
|
6
|
-
import { BaseObserver } from '../../../utils/BaseObserver';
|
|
7
4
|
import { AbortOperation } from '../../../utils/AbortOperation';
|
|
5
|
+
import { BaseObserver } from '../../../utils/BaseObserver';
|
|
6
|
+
import { SyncDataBucket } from '../bucket/SyncDataBucket';
|
|
7
|
+
import { isStreamingKeepalive, isStreamingSyncCheckpoint, isStreamingSyncCheckpointComplete, isStreamingSyncCheckpointDiff, isStreamingSyncData } from './streaming-sync-types';
|
|
8
8
|
export var LockType;
|
|
9
9
|
(function (LockType) {
|
|
10
10
|
LockType["CRUD"] = "crud";
|
|
@@ -103,19 +103,40 @@ export class AbstractStreamingSyncImplementation extends BaseObserver {
|
|
|
103
103
|
return this.obtainLock({
|
|
104
104
|
type: LockType.CRUD,
|
|
105
105
|
callback: async () => {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
});
|
|
106
|
+
/**
|
|
107
|
+
* Keep track of the first item in the CRUD queue for the last `uploadCrud` iteration.
|
|
108
|
+
*/
|
|
109
|
+
let checkedCrudItem;
|
|
111
110
|
while (true) {
|
|
111
|
+
this.updateSyncStatus({
|
|
112
|
+
dataFlow: {
|
|
113
|
+
uploading: true
|
|
114
|
+
}
|
|
115
|
+
});
|
|
112
116
|
try {
|
|
113
|
-
|
|
114
|
-
|
|
117
|
+
/**
|
|
118
|
+
* This is the first item in the FIFO CRUD queue.
|
|
119
|
+
*/
|
|
120
|
+
const nextCrudItem = await this.options.adapter.nextCrudItem();
|
|
121
|
+
if (nextCrudItem) {
|
|
122
|
+
if (nextCrudItem.id == checkedCrudItem?.id) {
|
|
123
|
+
// This will force a higher log level than exceptions which are caught here.
|
|
124
|
+
this.logger.warn(`Potentially previously uploaded CRUD entries are still present in the upload queue.
|
|
125
|
+
Make sure to handle uploads and complete CRUD transactions or batches by calling and awaiting their [.complete()] method.
|
|
126
|
+
The next upload iteration will be delayed.`);
|
|
127
|
+
throw new Error('Delaying due to previously encountered CRUD item.');
|
|
128
|
+
}
|
|
129
|
+
checkedCrudItem = nextCrudItem;
|
|
130
|
+
await this.options.uploadCrud();
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
// Uploading is completed
|
|
134
|
+
await this.options.adapter.updateLocalTarget(() => this.getWriteCheckpoint());
|
|
115
135
|
break;
|
|
116
136
|
}
|
|
117
137
|
}
|
|
118
138
|
catch (ex) {
|
|
139
|
+
checkedCrudItem = undefined;
|
|
119
140
|
this.updateSyncStatus({
|
|
120
141
|
dataFlow: {
|
|
121
142
|
uploading: false
|
|
@@ -139,17 +160,6 @@ export class AbstractStreamingSyncImplementation extends BaseObserver {
|
|
|
139
160
|
}
|
|
140
161
|
});
|
|
141
162
|
}
|
|
142
|
-
async uploadCrudBatch() {
|
|
143
|
-
const hasCrud = await this.options.adapter.hasCrud();
|
|
144
|
-
if (hasCrud) {
|
|
145
|
-
await this.options.uploadCrud();
|
|
146
|
-
return false;
|
|
147
|
-
}
|
|
148
|
-
else {
|
|
149
|
-
await this.options.adapter.updateLocalTarget(() => this.getWriteCheckpoint());
|
|
150
|
-
return true;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
163
|
async connect(options) {
|
|
154
164
|
if (this.abortController) {
|
|
155
165
|
await this.disconnect();
|