@powersync/service-core 0.0.0-dev-20241022111143 → 0.0.0-dev-20241023230541
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/CHANGELOG.md +5 -5
- package/dist/api/RouteAPI.d.ts +6 -4
- package/dist/api/diagnostics.js +3 -1
- package/dist/api/diagnostics.js.map +1 -1
- package/dist/api/schema.js +2 -2
- package/dist/api/schema.js.map +1 -1
- package/dist/replication/AbstractReplicationJob.js +2 -2
- package/dist/replication/AbstractReplicationJob.js.map +1 -1
- package/dist/replication/ReplicationModule.d.ts +13 -1
- package/dist/replication/ReplicationModule.js +7 -4
- package/dist/replication/ReplicationModule.js.map +1 -1
- package/dist/routes/configure-fastify.js +12 -12
- package/dist/routes/configure-fastify.js.map +1 -1
- package/dist/routes/configure-rsocket.js +4 -1
- package/dist/routes/configure-rsocket.js.map +1 -1
- package/dist/routes/endpoints/admin.js.map +1 -1
- package/dist/routes/endpoints/sync-rules.js.map +1 -1
- package/dist/routes/router.d.ts +8 -1
- package/dist/routes/router.js.map +1 -1
- package/dist/storage/BucketStorage.d.ts +16 -11
- package/dist/storage/BucketStorage.js +6 -0
- package/dist/storage/BucketStorage.js.map +1 -1
- package/dist/storage/MongoBucketStorage.d.ts +1 -3
- package/dist/storage/MongoBucketStorage.js.map +1 -1
- package/dist/storage/mongo/MongoBucketBatch.js +1 -0
- package/dist/storage/mongo/MongoBucketBatch.js.map +1 -1
- package/dist/storage/mongo/MongoSyncBucketStorage.d.ts +2 -4
- package/dist/storage/mongo/MongoSyncBucketStorage.js +3 -2
- package/dist/storage/mongo/MongoSyncBucketStorage.js.map +1 -1
- package/dist/util/protocol-types.d.ts +2 -1
- package/package.json +5 -5
- package/src/api/RouteAPI.ts +7 -4
- package/src/api/diagnostics.ts +3 -1
- package/src/api/schema.ts +3 -3
- package/src/replication/AbstractReplicationJob.ts +2 -2
- package/src/replication/ReplicationModule.ts +26 -5
- package/src/routes/configure-fastify.ts +16 -17
- package/src/routes/configure-rsocket.ts +7 -2
- package/src/routes/endpoints/admin.ts +2 -2
- package/src/routes/endpoints/sync-rules.ts +1 -0
- package/src/routes/router.ts +7 -1
- package/src/storage/BucketStorage.ts +18 -10
- package/src/storage/MongoBucketStorage.ts +1 -3
- package/src/storage/mongo/MongoBucketBatch.ts +1 -0
- package/src/storage/mongo/MongoSyncBucketStorage.ts +5 -3
- package/src/util/protocol-types.ts +1 -1
- package/test/src/compacting.test.ts +13 -15
- package/test/src/data_storage.test.ts +56 -56
- package/test/src/sync.test.ts +10 -9
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -9,6 +9,7 @@ import * as util from '../../util/util-index.js';
|
|
|
9
9
|
import {
|
|
10
10
|
BucketDataBatchOptions,
|
|
11
11
|
BucketStorageBatch,
|
|
12
|
+
Checkpoint,
|
|
12
13
|
CompactOptions,
|
|
13
14
|
DEFAULT_DOCUMENT_BATCH_LIMIT,
|
|
14
15
|
DEFAULT_DOCUMENT_CHUNK_LIMIT_BYTES,
|
|
@@ -107,15 +108,16 @@ export class MongoSyncBucketStorage
|
|
|
107
108
|
return this.parsedSyncRulesCache;
|
|
108
109
|
}
|
|
109
110
|
|
|
110
|
-
async getCheckpoint() {
|
|
111
|
+
async getCheckpoint(): Promise<Checkpoint> {
|
|
111
112
|
const doc = await this.db.sync_rules.findOne(
|
|
112
113
|
{ _id: this.group_id },
|
|
113
114
|
{
|
|
114
|
-
projection: { last_checkpoint: 1 }
|
|
115
|
+
projection: { last_checkpoint: 1, last_checkpoint_lsn: 1 }
|
|
115
116
|
}
|
|
116
117
|
);
|
|
117
118
|
return {
|
|
118
|
-
checkpoint: util.timestampToOpId(doc?.last_checkpoint ?? 0n)
|
|
119
|
+
checkpoint: util.timestampToOpId(doc?.last_checkpoint ?? 0n),
|
|
120
|
+
lsn: doc?.last_checkpoint_lsn ?? null
|
|
119
121
|
};
|
|
120
122
|
}
|
|
121
123
|
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
+
import { SaveOperationTag } from '@/storage/BucketStorage.js';
|
|
1
2
|
import { MongoCompactOptions } from '@/storage/mongo/MongoCompactor.js';
|
|
2
|
-
import { SqlSyncRules } from '@powersync/service-sync-rules';
|
|
3
3
|
import { describe, expect, test } from 'vitest';
|
|
4
4
|
import { validateCompactedBucket } from './bucket_validation.js';
|
|
5
5
|
import { oneFromAsync } from './stream_utils.js';
|
|
6
|
-
import { BATCH_OPTIONS, makeTestTable, MONGO_STORAGE_FACTORY, rid, testRules
|
|
7
|
-
import { ParseSyncRulesOptions, PersistedSyncRulesContent, StartBatchOptions } from '@/storage/BucketStorage.js';
|
|
8
|
-
import { getUuidReplicaIdentityBson } from '@/util/util-index.js';
|
|
6
|
+
import { BATCH_OPTIONS, makeTestTable, MONGO_STORAGE_FACTORY, rid, testRules } from './util.js';
|
|
9
7
|
|
|
10
8
|
const TEST_TABLE = makeTestTable('test', ['id']);
|
|
11
9
|
|
|
@@ -31,7 +29,7 @@ bucket_definitions:
|
|
|
31
29
|
const result = await storage.startBatch(BATCH_OPTIONS, async (batch) => {
|
|
32
30
|
await batch.save({
|
|
33
31
|
sourceTable: TEST_TABLE,
|
|
34
|
-
tag:
|
|
32
|
+
tag: SaveOperationTag.INSERT,
|
|
35
33
|
after: {
|
|
36
34
|
id: 't1'
|
|
37
35
|
},
|
|
@@ -40,7 +38,7 @@ bucket_definitions:
|
|
|
40
38
|
|
|
41
39
|
await batch.save({
|
|
42
40
|
sourceTable: TEST_TABLE,
|
|
43
|
-
tag:
|
|
41
|
+
tag: SaveOperationTag.INSERT,
|
|
44
42
|
after: {
|
|
45
43
|
id: 't2'
|
|
46
44
|
},
|
|
@@ -49,7 +47,7 @@ bucket_definitions:
|
|
|
49
47
|
|
|
50
48
|
await batch.save({
|
|
51
49
|
sourceTable: TEST_TABLE,
|
|
52
|
-
tag:
|
|
50
|
+
tag: SaveOperationTag.UPDATE,
|
|
53
51
|
after: {
|
|
54
52
|
id: 't2'
|
|
55
53
|
},
|
|
@@ -128,7 +126,7 @@ bucket_definitions:
|
|
|
128
126
|
const result = await storage.startBatch(BATCH_OPTIONS, async (batch) => {
|
|
129
127
|
await batch.save({
|
|
130
128
|
sourceTable: TEST_TABLE,
|
|
131
|
-
tag:
|
|
129
|
+
tag: SaveOperationTag.INSERT,
|
|
132
130
|
after: {
|
|
133
131
|
id: 't1'
|
|
134
132
|
},
|
|
@@ -137,7 +135,7 @@ bucket_definitions:
|
|
|
137
135
|
|
|
138
136
|
await batch.save({
|
|
139
137
|
sourceTable: TEST_TABLE,
|
|
140
|
-
tag:
|
|
138
|
+
tag: SaveOperationTag.INSERT,
|
|
141
139
|
after: {
|
|
142
140
|
id: 't2'
|
|
143
141
|
},
|
|
@@ -146,7 +144,7 @@ bucket_definitions:
|
|
|
146
144
|
|
|
147
145
|
await batch.save({
|
|
148
146
|
sourceTable: TEST_TABLE,
|
|
149
|
-
tag:
|
|
147
|
+
tag: SaveOperationTag.DELETE,
|
|
150
148
|
before: {
|
|
151
149
|
id: 't1'
|
|
152
150
|
},
|
|
@@ -155,7 +153,7 @@ bucket_definitions:
|
|
|
155
153
|
|
|
156
154
|
await batch.save({
|
|
157
155
|
sourceTable: TEST_TABLE,
|
|
158
|
-
tag:
|
|
156
|
+
tag: SaveOperationTag.UPDATE,
|
|
159
157
|
after: {
|
|
160
158
|
id: 't2'
|
|
161
159
|
},
|
|
@@ -233,7 +231,7 @@ bucket_definitions:
|
|
|
233
231
|
const result = await storage.startBatch(BATCH_OPTIONS, async (batch) => {
|
|
234
232
|
await batch.save({
|
|
235
233
|
sourceTable: TEST_TABLE,
|
|
236
|
-
tag:
|
|
234
|
+
tag: SaveOperationTag.INSERT,
|
|
237
235
|
after: {
|
|
238
236
|
id: 't1'
|
|
239
237
|
},
|
|
@@ -242,7 +240,7 @@ bucket_definitions:
|
|
|
242
240
|
|
|
243
241
|
await batch.save({
|
|
244
242
|
sourceTable: TEST_TABLE,
|
|
245
|
-
tag:
|
|
243
|
+
tag: SaveOperationTag.INSERT,
|
|
246
244
|
after: {
|
|
247
245
|
id: 't2'
|
|
248
246
|
},
|
|
@@ -251,7 +249,7 @@ bucket_definitions:
|
|
|
251
249
|
|
|
252
250
|
await batch.save({
|
|
253
251
|
sourceTable: TEST_TABLE,
|
|
254
|
-
tag:
|
|
252
|
+
tag: SaveOperationTag.DELETE,
|
|
255
253
|
before: {
|
|
256
254
|
id: 't1'
|
|
257
255
|
},
|
|
@@ -265,7 +263,7 @@ bucket_definitions:
|
|
|
265
263
|
const result2 = await storage.startBatch(BATCH_OPTIONS, async (batch) => {
|
|
266
264
|
await batch.save({
|
|
267
265
|
sourceTable: TEST_TABLE,
|
|
268
|
-
tag:
|
|
266
|
+
tag: SaveOperationTag.DELETE,
|
|
269
267
|
before: {
|
|
270
268
|
id: 't2'
|
|
271
269
|
},
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { BucketDataBatchOptions } from '@/storage/BucketStorage.js';
|
|
2
|
-
import { getUuidReplicaIdentityBson } from '@/util/util-index.js';
|
|
1
|
+
import { BucketDataBatchOptions, SaveOperationTag } from '@/storage/BucketStorage.js';
|
|
3
2
|
import { RequestParameters } from '@powersync/service-sync-rules';
|
|
4
3
|
import { describe, expect, test } from 'vitest';
|
|
5
4
|
import { fromAsync, oneFromAsync } from './stream_utils.js';
|
|
@@ -14,6 +13,7 @@ import {
|
|
|
14
13
|
StorageFactory,
|
|
15
14
|
testRules
|
|
16
15
|
} from './util.js';
|
|
16
|
+
import { getUuidReplicaIdentityBson } from '@/util/util-index.js';
|
|
17
17
|
|
|
18
18
|
const TEST_TABLE = makeTestTable('test', ['id']);
|
|
19
19
|
|
|
@@ -36,7 +36,7 @@ bucket_definitions:
|
|
|
36
36
|
const result = await storage.startBatch(BATCH_OPTIONS, async (batch) => {
|
|
37
37
|
await batch.save({
|
|
38
38
|
sourceTable: TEST_TABLE,
|
|
39
|
-
tag:
|
|
39
|
+
tag: SaveOperationTag.INSERT,
|
|
40
40
|
after: {
|
|
41
41
|
id: 't2',
|
|
42
42
|
id1: 'user3',
|
|
@@ -48,7 +48,7 @@ bucket_definitions:
|
|
|
48
48
|
|
|
49
49
|
await batch.save({
|
|
50
50
|
sourceTable: TEST_TABLE,
|
|
51
|
-
tag:
|
|
51
|
+
tag: SaveOperationTag.INSERT,
|
|
52
52
|
after: {
|
|
53
53
|
id: 't1',
|
|
54
54
|
id1: 'user1',
|
|
@@ -83,7 +83,7 @@ bucket_definitions:
|
|
|
83
83
|
const result1 = await storage.startBatch(BATCH_OPTIONS, async (batch) => {
|
|
84
84
|
await batch.save({
|
|
85
85
|
sourceTable: TEST_TABLE,
|
|
86
|
-
tag:
|
|
86
|
+
tag: SaveOperationTag.INSERT,
|
|
87
87
|
after: {
|
|
88
88
|
id: 'user1',
|
|
89
89
|
group_id: 'group1'
|
|
@@ -94,7 +94,7 @@ bucket_definitions:
|
|
|
94
94
|
const result2 = await storage.startBatch(BATCH_OPTIONS, async (batch) => {
|
|
95
95
|
await batch.save({
|
|
96
96
|
sourceTable: TEST_TABLE,
|
|
97
|
-
tag:
|
|
97
|
+
tag: SaveOperationTag.INSERT,
|
|
98
98
|
after: {
|
|
99
99
|
id: 'user1',
|
|
100
100
|
group_id: 'group2'
|
|
@@ -135,7 +135,7 @@ bucket_definitions:
|
|
|
135
135
|
const result = await storage.startBatch(BATCH_OPTIONS, async (batch) => {
|
|
136
136
|
await batch.save({
|
|
137
137
|
sourceTable: TEST_TABLE,
|
|
138
|
-
tag:
|
|
138
|
+
tag: SaveOperationTag.INSERT,
|
|
139
139
|
after: {
|
|
140
140
|
id: 't1',
|
|
141
141
|
group_id: 'group1',
|
|
@@ -179,7 +179,7 @@ bucket_definitions:
|
|
|
179
179
|
const result = await storage.startBatch(BATCH_OPTIONS, async (batch) => {
|
|
180
180
|
await batch.save({
|
|
181
181
|
sourceTable: TEST_TABLE,
|
|
182
|
-
tag:
|
|
182
|
+
tag: SaveOperationTag.INSERT,
|
|
183
183
|
after: {
|
|
184
184
|
id: 't1',
|
|
185
185
|
group_id: 'group1',
|
|
@@ -190,7 +190,7 @@ bucket_definitions:
|
|
|
190
190
|
|
|
191
191
|
await batch.save({
|
|
192
192
|
sourceTable: TEST_TABLE,
|
|
193
|
-
tag:
|
|
193
|
+
tag: SaveOperationTag.UPDATE,
|
|
194
194
|
after: {
|
|
195
195
|
id: 't1',
|
|
196
196
|
group_id: 'group1',
|
|
@@ -226,7 +226,7 @@ bucket_definitions:
|
|
|
226
226
|
|
|
227
227
|
await batch.save({
|
|
228
228
|
sourceTable,
|
|
229
|
-
tag:
|
|
229
|
+
tag: SaveOperationTag.INSERT,
|
|
230
230
|
after: {
|
|
231
231
|
id: 'test1',
|
|
232
232
|
description: 'test1'
|
|
@@ -235,7 +235,7 @@ bucket_definitions:
|
|
|
235
235
|
});
|
|
236
236
|
await batch.save({
|
|
237
237
|
sourceTable,
|
|
238
|
-
tag:
|
|
238
|
+
tag: SaveOperationTag.DELETE,
|
|
239
239
|
beforeReplicaId: rid('test1')
|
|
240
240
|
});
|
|
241
241
|
});
|
|
@@ -289,7 +289,7 @@ bucket_definitions:
|
|
|
289
289
|
const result = await storage.startBatch(BATCH_OPTIONS, async (batch) => {
|
|
290
290
|
await batch.save({
|
|
291
291
|
sourceTable: WORKSPACE_TABLE,
|
|
292
|
-
tag:
|
|
292
|
+
tag: SaveOperationTag.INSERT,
|
|
293
293
|
after: {
|
|
294
294
|
id: 'workspace1',
|
|
295
295
|
userId: 'u1'
|
|
@@ -339,7 +339,7 @@ bucket_definitions:
|
|
|
339
339
|
const result = await storage.startBatch(BATCH_OPTIONS, async (batch) => {
|
|
340
340
|
await batch.save({
|
|
341
341
|
sourceTable: WORKSPACE_TABLE,
|
|
342
|
-
tag:
|
|
342
|
+
tag: SaveOperationTag.INSERT,
|
|
343
343
|
after: {
|
|
344
344
|
id: 'workspace1',
|
|
345
345
|
visibility: 'public'
|
|
@@ -349,7 +349,7 @@ bucket_definitions:
|
|
|
349
349
|
|
|
350
350
|
await batch.save({
|
|
351
351
|
sourceTable: WORKSPACE_TABLE,
|
|
352
|
-
tag:
|
|
352
|
+
tag: SaveOperationTag.INSERT,
|
|
353
353
|
after: {
|
|
354
354
|
id: 'workspace2',
|
|
355
355
|
visibility: 'private'
|
|
@@ -359,7 +359,7 @@ bucket_definitions:
|
|
|
359
359
|
|
|
360
360
|
await batch.save({
|
|
361
361
|
sourceTable: WORKSPACE_TABLE,
|
|
362
|
-
tag:
|
|
362
|
+
tag: SaveOperationTag.INSERT,
|
|
363
363
|
after: {
|
|
364
364
|
id: 'workspace3',
|
|
365
365
|
visibility: 'public'
|
|
@@ -413,7 +413,7 @@ bucket_definitions:
|
|
|
413
413
|
const result = await storage.startBatch(BATCH_OPTIONS, async (batch) => {
|
|
414
414
|
await batch.save({
|
|
415
415
|
sourceTable: WORKSPACE_TABLE,
|
|
416
|
-
tag:
|
|
416
|
+
tag: SaveOperationTag.INSERT,
|
|
417
417
|
after: {
|
|
418
418
|
id: 'workspace1',
|
|
419
419
|
visibility: 'public'
|
|
@@ -423,7 +423,7 @@ bucket_definitions:
|
|
|
423
423
|
|
|
424
424
|
await batch.save({
|
|
425
425
|
sourceTable: WORKSPACE_TABLE,
|
|
426
|
-
tag:
|
|
426
|
+
tag: SaveOperationTag.INSERT,
|
|
427
427
|
after: {
|
|
428
428
|
id: 'workspace2',
|
|
429
429
|
visibility: 'private'
|
|
@@ -433,7 +433,7 @@ bucket_definitions:
|
|
|
433
433
|
|
|
434
434
|
await batch.save({
|
|
435
435
|
sourceTable: WORKSPACE_TABLE,
|
|
436
|
-
tag:
|
|
436
|
+
tag: SaveOperationTag.INSERT,
|
|
437
437
|
after: {
|
|
438
438
|
id: 'workspace3',
|
|
439
439
|
user_id: 'u1',
|
|
@@ -444,7 +444,7 @@ bucket_definitions:
|
|
|
444
444
|
|
|
445
445
|
await batch.save({
|
|
446
446
|
sourceTable: WORKSPACE_TABLE,
|
|
447
|
-
tag:
|
|
447
|
+
tag: SaveOperationTag.INSERT,
|
|
448
448
|
after: {
|
|
449
449
|
id: 'workspace4',
|
|
450
450
|
user_id: 'u2',
|
|
@@ -501,7 +501,7 @@ bucket_definitions:
|
|
|
501
501
|
const result = await storage.startBatch(BATCH_OPTIONS, async (batch) => {
|
|
502
502
|
await batch.save({
|
|
503
503
|
sourceTable,
|
|
504
|
-
tag:
|
|
504
|
+
tag: SaveOperationTag.INSERT,
|
|
505
505
|
after: {
|
|
506
506
|
id: 'test1',
|
|
507
507
|
client_id: 'client1a',
|
|
@@ -511,7 +511,7 @@ bucket_definitions:
|
|
|
511
511
|
});
|
|
512
512
|
await batch.save({
|
|
513
513
|
sourceTable,
|
|
514
|
-
tag:
|
|
514
|
+
tag: SaveOperationTag.UPDATE,
|
|
515
515
|
after: {
|
|
516
516
|
id: 'test1',
|
|
517
517
|
client_id: 'client1b',
|
|
@@ -522,7 +522,7 @@ bucket_definitions:
|
|
|
522
522
|
|
|
523
523
|
await batch.save({
|
|
524
524
|
sourceTable,
|
|
525
|
-
tag:
|
|
525
|
+
tag: SaveOperationTag.INSERT,
|
|
526
526
|
after: {
|
|
527
527
|
id: 'test2',
|
|
528
528
|
client_id: 'client2',
|
|
@@ -564,7 +564,7 @@ bucket_definitions:
|
|
|
564
564
|
|
|
565
565
|
await batch.save({
|
|
566
566
|
sourceTable,
|
|
567
|
-
tag:
|
|
567
|
+
tag: SaveOperationTag.INSERT,
|
|
568
568
|
after: {
|
|
569
569
|
id: 'test1',
|
|
570
570
|
description: 'test1'
|
|
@@ -578,7 +578,7 @@ bucket_definitions:
|
|
|
578
578
|
|
|
579
579
|
await batch.save({
|
|
580
580
|
sourceTable,
|
|
581
|
-
tag:
|
|
581
|
+
tag: SaveOperationTag.DELETE,
|
|
582
582
|
beforeReplicaId: rid('test1')
|
|
583
583
|
});
|
|
584
584
|
});
|
|
@@ -588,7 +588,7 @@ bucket_definitions:
|
|
|
588
588
|
|
|
589
589
|
await batch.save({
|
|
590
590
|
sourceTable,
|
|
591
|
-
tag:
|
|
591
|
+
tag: SaveOperationTag.DELETE,
|
|
592
592
|
beforeReplicaId: rid('test1')
|
|
593
593
|
});
|
|
594
594
|
});
|
|
@@ -638,7 +638,7 @@ bucket_definitions:
|
|
|
638
638
|
|
|
639
639
|
await batch.save({
|
|
640
640
|
sourceTable,
|
|
641
|
-
tag:
|
|
641
|
+
tag: SaveOperationTag.INSERT,
|
|
642
642
|
after: {
|
|
643
643
|
id: 'test1',
|
|
644
644
|
description: 'test1'
|
|
@@ -652,7 +652,7 @@ bucket_definitions:
|
|
|
652
652
|
|
|
653
653
|
await batch.save({
|
|
654
654
|
sourceTable,
|
|
655
|
-
tag:
|
|
655
|
+
tag: SaveOperationTag.UPDATE,
|
|
656
656
|
after: {
|
|
657
657
|
id: 'test1',
|
|
658
658
|
description: undefined
|
|
@@ -662,7 +662,7 @@ bucket_definitions:
|
|
|
662
662
|
|
|
663
663
|
await batch.save({
|
|
664
664
|
sourceTable,
|
|
665
|
-
tag:
|
|
665
|
+
tag: SaveOperationTag.UPDATE,
|
|
666
666
|
after: {
|
|
667
667
|
id: 'test1',
|
|
668
668
|
description: undefined
|
|
@@ -672,7 +672,7 @@ bucket_definitions:
|
|
|
672
672
|
|
|
673
673
|
await batch.save({
|
|
674
674
|
sourceTable,
|
|
675
|
-
tag:
|
|
675
|
+
tag: SaveOperationTag.DELETE,
|
|
676
676
|
beforeReplicaId: rid('test1')
|
|
677
677
|
});
|
|
678
678
|
});
|
|
@@ -682,7 +682,7 @@ bucket_definitions:
|
|
|
682
682
|
|
|
683
683
|
await batch.save({
|
|
684
684
|
sourceTable,
|
|
685
|
-
tag:
|
|
685
|
+
tag: SaveOperationTag.UPDATE,
|
|
686
686
|
after: {
|
|
687
687
|
id: 'test1',
|
|
688
688
|
description: undefined
|
|
@@ -692,7 +692,7 @@ bucket_definitions:
|
|
|
692
692
|
|
|
693
693
|
await batch.save({
|
|
694
694
|
sourceTable,
|
|
695
|
-
tag:
|
|
695
|
+
tag: SaveOperationTag.UPDATE,
|
|
696
696
|
after: {
|
|
697
697
|
id: 'test1',
|
|
698
698
|
description: undefined
|
|
@@ -702,7 +702,7 @@ bucket_definitions:
|
|
|
702
702
|
|
|
703
703
|
await batch.save({
|
|
704
704
|
sourceTable,
|
|
705
|
-
tag:
|
|
705
|
+
tag: SaveOperationTag.DELETE,
|
|
706
706
|
beforeReplicaId: rid('test1')
|
|
707
707
|
});
|
|
708
708
|
});
|
|
@@ -755,7 +755,7 @@ bucket_definitions:
|
|
|
755
755
|
await storage.startBatch(BATCH_OPTIONS, async (batch) => {
|
|
756
756
|
await batch.save({
|
|
757
757
|
sourceTable: TEST_TABLE,
|
|
758
|
-
tag:
|
|
758
|
+
tag: SaveOperationTag.INSERT,
|
|
759
759
|
after: {
|
|
760
760
|
id: 't2',
|
|
761
761
|
id1: 'user3',
|
|
@@ -799,7 +799,7 @@ bucket_definitions:
|
|
|
799
799
|
|
|
800
800
|
await batch.save({
|
|
801
801
|
sourceTable,
|
|
802
|
-
tag:
|
|
802
|
+
tag: SaveOperationTag.INSERT,
|
|
803
803
|
after: {
|
|
804
804
|
id: 'test1',
|
|
805
805
|
description: 'test1a'
|
|
@@ -809,7 +809,7 @@ bucket_definitions:
|
|
|
809
809
|
|
|
810
810
|
await batch.save({
|
|
811
811
|
sourceTable,
|
|
812
|
-
tag:
|
|
812
|
+
tag: SaveOperationTag.INSERT,
|
|
813
813
|
after: {
|
|
814
814
|
id: 'test2',
|
|
815
815
|
description: 'test2a'
|
|
@@ -826,7 +826,7 @@ bucket_definitions:
|
|
|
826
826
|
// b
|
|
827
827
|
await batch.save({
|
|
828
828
|
sourceTable,
|
|
829
|
-
tag:
|
|
829
|
+
tag: SaveOperationTag.INSERT,
|
|
830
830
|
after: {
|
|
831
831
|
id: 'test1',
|
|
832
832
|
description: 'test1b'
|
|
@@ -836,7 +836,7 @@ bucket_definitions:
|
|
|
836
836
|
|
|
837
837
|
await batch.save({
|
|
838
838
|
sourceTable,
|
|
839
|
-
tag:
|
|
839
|
+
tag: SaveOperationTag.UPDATE,
|
|
840
840
|
before: {
|
|
841
841
|
id: 'test1'
|
|
842
842
|
},
|
|
@@ -850,7 +850,7 @@ bucket_definitions:
|
|
|
850
850
|
|
|
851
851
|
await batch.save({
|
|
852
852
|
sourceTable,
|
|
853
|
-
tag:
|
|
853
|
+
tag: SaveOperationTag.UPDATE,
|
|
854
854
|
before: {
|
|
855
855
|
id: 'test2'
|
|
856
856
|
},
|
|
@@ -866,7 +866,7 @@ bucket_definitions:
|
|
|
866
866
|
// c
|
|
867
867
|
await batch.save({
|
|
868
868
|
sourceTable,
|
|
869
|
-
tag:
|
|
869
|
+
tag: SaveOperationTag.UPDATE,
|
|
870
870
|
after: {
|
|
871
871
|
id: 'test2',
|
|
872
872
|
description: 'test2c'
|
|
@@ -877,7 +877,7 @@ bucket_definitions:
|
|
|
877
877
|
// d
|
|
878
878
|
await batch.save({
|
|
879
879
|
sourceTable,
|
|
880
|
-
tag:
|
|
880
|
+
tag: SaveOperationTag.INSERT,
|
|
881
881
|
after: {
|
|
882
882
|
id: 'test4',
|
|
883
883
|
description: 'test4d'
|
|
@@ -887,7 +887,7 @@ bucket_definitions:
|
|
|
887
887
|
|
|
888
888
|
await batch.save({
|
|
889
889
|
sourceTable,
|
|
890
|
-
tag:
|
|
890
|
+
tag: SaveOperationTag.UPDATE,
|
|
891
891
|
before: {
|
|
892
892
|
id: 'test4'
|
|
893
893
|
},
|
|
@@ -953,7 +953,7 @@ bucket_definitions:
|
|
|
953
953
|
const result1 = await storage.startBatch(BATCH_OPTIONS, async (batch) => {
|
|
954
954
|
await batch.save({
|
|
955
955
|
sourceTable,
|
|
956
|
-
tag:
|
|
956
|
+
tag: SaveOperationTag.INSERT,
|
|
957
957
|
after: {
|
|
958
958
|
id: 'test1',
|
|
959
959
|
description: 'test1a'
|
|
@@ -968,7 +968,7 @@ bucket_definitions:
|
|
|
968
968
|
// Unchanged, but has a before id
|
|
969
969
|
await batch.save({
|
|
970
970
|
sourceTable,
|
|
971
|
-
tag:
|
|
971
|
+
tag: SaveOperationTag.UPDATE,
|
|
972
972
|
before: {
|
|
973
973
|
id: 'test1',
|
|
974
974
|
description: 'test1a'
|
|
@@ -986,7 +986,7 @@ bucket_definitions:
|
|
|
986
986
|
// Delete
|
|
987
987
|
await batch.save({
|
|
988
988
|
sourceTable,
|
|
989
|
-
tag:
|
|
989
|
+
tag: SaveOperationTag.DELETE,
|
|
990
990
|
before: {
|
|
991
991
|
id: 'test1',
|
|
992
992
|
description: 'test1b'
|
|
@@ -1058,7 +1058,7 @@ bucket_definitions:
|
|
|
1058
1058
|
const result1 = await storage.startBatch(BATCH_OPTIONS, async (batch) => {
|
|
1059
1059
|
await batch.save({
|
|
1060
1060
|
sourceTable,
|
|
1061
|
-
tag:
|
|
1061
|
+
tag: SaveOperationTag.INSERT,
|
|
1062
1062
|
after: {
|
|
1063
1063
|
id: 'test1',
|
|
1064
1064
|
description: 'test1a'
|
|
@@ -1073,7 +1073,7 @@ bucket_definitions:
|
|
|
1073
1073
|
// Unchanged, but has a before id
|
|
1074
1074
|
await batch.save({
|
|
1075
1075
|
sourceTable,
|
|
1076
|
-
tag:
|
|
1076
|
+
tag: SaveOperationTag.UPDATE,
|
|
1077
1077
|
before: {
|
|
1078
1078
|
id: 'test1',
|
|
1079
1079
|
description: 'test1a'
|
|
@@ -1091,7 +1091,7 @@ bucket_definitions:
|
|
|
1091
1091
|
// Delete
|
|
1092
1092
|
await batch.save({
|
|
1093
1093
|
sourceTable,
|
|
1094
|
-
tag:
|
|
1094
|
+
tag: SaveOperationTag.DELETE,
|
|
1095
1095
|
before: {
|
|
1096
1096
|
id: 'test1',
|
|
1097
1097
|
description: 'test1a'
|
|
@@ -1154,7 +1154,7 @@ bucket_definitions:
|
|
|
1154
1154
|
|
|
1155
1155
|
await batch.save({
|
|
1156
1156
|
sourceTable,
|
|
1157
|
-
tag:
|
|
1157
|
+
tag: SaveOperationTag.INSERT,
|
|
1158
1158
|
after: {
|
|
1159
1159
|
id: 'test1',
|
|
1160
1160
|
description: 'test1'
|
|
@@ -1164,7 +1164,7 @@ bucket_definitions:
|
|
|
1164
1164
|
|
|
1165
1165
|
await batch.save({
|
|
1166
1166
|
sourceTable,
|
|
1167
|
-
tag:
|
|
1167
|
+
tag: SaveOperationTag.INSERT,
|
|
1168
1168
|
after: {
|
|
1169
1169
|
id: 'large1',
|
|
1170
1170
|
description: largeDescription
|
|
@@ -1175,7 +1175,7 @@ bucket_definitions:
|
|
|
1175
1175
|
// Large enough to split the returned batch
|
|
1176
1176
|
await batch.save({
|
|
1177
1177
|
sourceTable,
|
|
1178
|
-
tag:
|
|
1178
|
+
tag: SaveOperationTag.INSERT,
|
|
1179
1179
|
after: {
|
|
1180
1180
|
id: 'large2',
|
|
1181
1181
|
description: largeDescription
|
|
@@ -1185,7 +1185,7 @@ bucket_definitions:
|
|
|
1185
1185
|
|
|
1186
1186
|
await batch.save({
|
|
1187
1187
|
sourceTable,
|
|
1188
|
-
tag:
|
|
1188
|
+
tag: SaveOperationTag.INSERT,
|
|
1189
1189
|
after: {
|
|
1190
1190
|
id: 'test3',
|
|
1191
1191
|
description: 'test3'
|
|
@@ -1252,7 +1252,7 @@ bucket_definitions:
|
|
|
1252
1252
|
|
|
1253
1253
|
await batch.save({
|
|
1254
1254
|
sourceTable,
|
|
1255
|
-
tag:
|
|
1255
|
+
tag: SaveOperationTag.INSERT,
|
|
1256
1256
|
after: {
|
|
1257
1257
|
id: 'test1',
|
|
1258
1258
|
description: 'test1'
|
|
@@ -1262,7 +1262,7 @@ bucket_definitions:
|
|
|
1262
1262
|
|
|
1263
1263
|
await batch.save({
|
|
1264
1264
|
sourceTable,
|
|
1265
|
-
tag:
|
|
1265
|
+
tag: SaveOperationTag.INSERT,
|
|
1266
1266
|
after: {
|
|
1267
1267
|
id: 'large1',
|
|
1268
1268
|
description: largeDescription
|
|
@@ -1273,7 +1273,7 @@ bucket_definitions:
|
|
|
1273
1273
|
// Large enough to split the returned batch
|
|
1274
1274
|
await batch.save({
|
|
1275
1275
|
sourceTable,
|
|
1276
|
-
tag:
|
|
1276
|
+
tag: SaveOperationTag.INSERT,
|
|
1277
1277
|
after: {
|
|
1278
1278
|
id: 'large2',
|
|
1279
1279
|
description: largeDescription
|
|
@@ -1283,7 +1283,7 @@ bucket_definitions:
|
|
|
1283
1283
|
|
|
1284
1284
|
await batch.save({
|
|
1285
1285
|
sourceTable,
|
|
1286
|
-
tag:
|
|
1286
|
+
tag: SaveOperationTag.INSERT,
|
|
1287
1287
|
after: {
|
|
1288
1288
|
id: 'test3',
|
|
1289
1289
|
description: 'test3'
|
|
@@ -1346,7 +1346,7 @@ bucket_definitions:
|
|
|
1346
1346
|
for (let i = 1; i <= 6; i++) {
|
|
1347
1347
|
await batch.save({
|
|
1348
1348
|
sourceTable,
|
|
1349
|
-
tag:
|
|
1349
|
+
tag: SaveOperationTag.INSERT,
|
|
1350
1350
|
after: {
|
|
1351
1351
|
id: `test${i}`,
|
|
1352
1352
|
description: `test${i}`
|