@powersync/service-module-mongodb 0.0.0-dev-20250102111825 → 0.0.0-dev-20250108073049
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 +8 -5
- package/dist/api/MongoRouteAPIAdapter.d.ts +1 -1
- package/dist/api/MongoRouteAPIAdapter.js +4 -3
- package/dist/api/MongoRouteAPIAdapter.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/module/MongoModule.d.ts +0 -1
- package/dist/module/MongoModule.js +2 -10
- package/dist/module/MongoModule.js.map +1 -1
- package/dist/replication/MongoRelation.js +15 -5
- package/dist/replication/MongoRelation.js.map +1 -1
- package/dist/types/types.d.ts +16 -22
- package/dist/types/types.js +4 -24
- package/dist/types/types.js.map +1 -1
- package/package.json +9 -10
- package/src/api/MongoRouteAPIAdapter.ts +4 -4
- package/src/index.ts +3 -4
- package/src/module/MongoModule.ts +2 -14
- package/src/replication/MongoRelation.ts +13 -5
- package/src/types/types.ts +8 -34
- package/test/src/change_stream.test.ts +2 -4
- package/test/src/env.ts +1 -1
- package/test/src/mongo_test.test.ts +69 -10
- package/test/src/setup.ts +4 -1
- package/test/src/slow_tests.test.ts +5 -12
- package/test/src/util.ts +5 -38
- package/test/tsconfig.json +1 -2
- package/tsconfig.json +6 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/db/db-index.d.ts +0 -1
- package/dist/db/db-index.js +0 -2
- package/dist/db/db-index.js.map +0 -1
- package/dist/db/mongo.d.ts +0 -35
- package/dist/db/mongo.js +0 -73
- package/dist/db/mongo.js.map +0 -1
- package/dist/locks/MongoLockManager.d.ts +0 -25
- package/dist/locks/MongoLockManager.js +0 -79
- package/dist/locks/MongoLockManager.js.map +0 -1
- package/dist/migrations/MongoMigrationAgent.d.ts +0 -12
- package/dist/migrations/MongoMigrationAgent.js +0 -25
- package/dist/migrations/MongoMigrationAgent.js.map +0 -1
- package/dist/migrations/db/migrations/1684951997326-init.d.ts +0 -3
- package/dist/migrations/db/migrations/1684951997326-init.js +0 -30
- package/dist/migrations/db/migrations/1684951997326-init.js.map +0 -1
- package/dist/migrations/db/migrations/1688556755264-initial-sync-rules.d.ts +0 -2
- package/dist/migrations/db/migrations/1688556755264-initial-sync-rules.js +0 -5
- package/dist/migrations/db/migrations/1688556755264-initial-sync-rules.js.map +0 -1
- package/dist/migrations/db/migrations/1702295701188-sync-rule-state.d.ts +0 -3
- package/dist/migrations/db/migrations/1702295701188-sync-rule-state.js +0 -54
- package/dist/migrations/db/migrations/1702295701188-sync-rule-state.js.map +0 -1
- package/dist/migrations/db/migrations/1711543888062-write-checkpoint-index.d.ts +0 -3
- package/dist/migrations/db/migrations/1711543888062-write-checkpoint-index.js +0 -26
- package/dist/migrations/db/migrations/1711543888062-write-checkpoint-index.js.map +0 -1
- package/dist/migrations/db/migrations/1727099539247-custom-write-checkpoint-index.d.ts +0 -3
- package/dist/migrations/db/migrations/1727099539247-custom-write-checkpoint-index.js +0 -28
- package/dist/migrations/db/migrations/1727099539247-custom-write-checkpoint-index.js.map +0 -1
- package/dist/migrations/mongo-migration-store.d.ts +0 -7
- package/dist/migrations/mongo-migration-store.js +0 -49
- package/dist/migrations/mongo-migration-store.js.map +0 -1
- package/dist/storage/MongoBucketStorage.d.ts +0 -48
- package/dist/storage/MongoBucketStorage.js +0 -426
- package/dist/storage/MongoBucketStorage.js.map +0 -1
- package/dist/storage/implementation/MongoBucketBatch.d.ts +0 -72
- package/dist/storage/implementation/MongoBucketBatch.js +0 -681
- package/dist/storage/implementation/MongoBucketBatch.js.map +0 -1
- package/dist/storage/implementation/MongoCompactor.d.ts +0 -40
- package/dist/storage/implementation/MongoCompactor.js +0 -300
- package/dist/storage/implementation/MongoCompactor.js.map +0 -1
- package/dist/storage/implementation/MongoIdSequence.d.ts +0 -12
- package/dist/storage/implementation/MongoIdSequence.js +0 -21
- package/dist/storage/implementation/MongoIdSequence.js.map +0 -1
- package/dist/storage/implementation/MongoPersistedSyncRules.d.ts +0 -9
- package/dist/storage/implementation/MongoPersistedSyncRules.js +0 -9
- package/dist/storage/implementation/MongoPersistedSyncRules.js.map +0 -1
- package/dist/storage/implementation/MongoPersistedSyncRulesContent.d.ts +0 -20
- package/dist/storage/implementation/MongoPersistedSyncRulesContent.js +0 -26
- package/dist/storage/implementation/MongoPersistedSyncRulesContent.js.map +0 -1
- package/dist/storage/implementation/MongoStorageProvider.d.ts +0 -6
- package/dist/storage/implementation/MongoStorageProvider.js +0 -34
- package/dist/storage/implementation/MongoStorageProvider.js.map +0 -1
- package/dist/storage/implementation/MongoSyncBucketStorage.d.ts +0 -36
- package/dist/storage/implementation/MongoSyncBucketStorage.js +0 -529
- package/dist/storage/implementation/MongoSyncBucketStorage.js.map +0 -1
- package/dist/storage/implementation/MongoSyncRulesLock.d.ts +0 -16
- package/dist/storage/implementation/MongoSyncRulesLock.js +0 -65
- package/dist/storage/implementation/MongoSyncRulesLock.js.map +0 -1
- package/dist/storage/implementation/MongoWriteCheckpointAPI.d.ts +0 -20
- package/dist/storage/implementation/MongoWriteCheckpointAPI.js +0 -104
- package/dist/storage/implementation/MongoWriteCheckpointAPI.js.map +0 -1
- package/dist/storage/implementation/OperationBatch.d.ts +0 -34
- package/dist/storage/implementation/OperationBatch.js +0 -119
- package/dist/storage/implementation/OperationBatch.js.map +0 -1
- package/dist/storage/implementation/PersistedBatch.d.ts +0 -46
- package/dist/storage/implementation/PersistedBatch.js +0 -223
- package/dist/storage/implementation/PersistedBatch.js.map +0 -1
- package/dist/storage/implementation/config.d.ts +0 -19
- package/dist/storage/implementation/config.js +0 -26
- package/dist/storage/implementation/config.js.map +0 -1
- package/dist/storage/implementation/db.d.ts +0 -36
- package/dist/storage/implementation/db.js +0 -47
- package/dist/storage/implementation/db.js.map +0 -1
- package/dist/storage/implementation/models.d.ts +0 -139
- package/dist/storage/implementation/models.js +0 -2
- package/dist/storage/implementation/models.js.map +0 -1
- package/dist/storage/implementation/util.d.ts +0 -41
- package/dist/storage/implementation/util.js +0 -141
- package/dist/storage/implementation/util.js.map +0 -1
- package/dist/storage/storage-index.d.ts +0 -14
- package/dist/storage/storage-index.js +0 -15
- package/dist/storage/storage-index.js.map +0 -1
- package/src/db/db-index.ts +0 -1
- package/src/db/mongo.ts +0 -81
- package/src/locks/MongoLockManager.ts +0 -123
- package/src/migrations/MongoMigrationAgent.ts +0 -39
- package/src/migrations/db/migrations/1684951997326-init.ts +0 -39
- package/src/migrations/db/migrations/1688556755264-initial-sync-rules.ts +0 -5
- package/src/migrations/db/migrations/1702295701188-sync-rule-state.ts +0 -105
- package/src/migrations/db/migrations/1711543888062-write-checkpoint-index.ts +0 -38
- package/src/migrations/db/migrations/1727099539247-custom-write-checkpoint-index.ts +0 -40
- package/src/migrations/mongo-migration-store.ts +0 -62
- package/src/storage/MongoBucketStorage.ts +0 -531
- package/src/storage/implementation/MongoBucketBatch.ts +0 -896
- package/src/storage/implementation/MongoCompactor.ts +0 -381
- package/src/storage/implementation/MongoIdSequence.ts +0 -24
- package/src/storage/implementation/MongoPersistedSyncRules.ts +0 -16
- package/src/storage/implementation/MongoPersistedSyncRulesContent.ts +0 -49
- package/src/storage/implementation/MongoStorageProvider.ts +0 -42
- package/src/storage/implementation/MongoSyncBucketStorage.ts +0 -612
- package/src/storage/implementation/MongoSyncRulesLock.ts +0 -88
- package/src/storage/implementation/MongoWriteCheckpointAPI.ts +0 -146
- package/src/storage/implementation/OperationBatch.ts +0 -129
- package/src/storage/implementation/PersistedBatch.ts +0 -283
- package/src/storage/implementation/config.ts +0 -40
- package/src/storage/implementation/db.ts +0 -87
- package/src/storage/implementation/models.ts +0 -161
- package/src/storage/implementation/util.ts +0 -154
- package/src/storage/storage-index.ts +0 -14
- package/test/src/__snapshots__/storage_sync.test.ts.snap +0 -332
- package/test/src/storage.test.ts +0 -7
- package/test/src/storage_compacting.test.ts +0 -6
- package/test/src/storage_sync.test.ts +0 -113
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import { storage } from '@powersync/service-core';
|
|
2
|
-
import { register, TEST_TABLE, test_utils } from '@powersync/service-core-tests';
|
|
3
|
-
import { describe, expect, test } from 'vitest';
|
|
4
|
-
import { INITIALIZED_MONGO_STORAGE_FACTORY } from './util.js';
|
|
5
|
-
|
|
6
|
-
describe('sync - mongodb', () => {
|
|
7
|
-
register.registerSyncTests(INITIALIZED_MONGO_STORAGE_FACTORY);
|
|
8
|
-
|
|
9
|
-
// The split of returned results can vary depending on storage drivers
|
|
10
|
-
test('large batch (2)', async () => {
|
|
11
|
-
// Test syncing a batch of data that is small in count,
|
|
12
|
-
// but large enough in size to be split over multiple returned chunks.
|
|
13
|
-
// Similar to the above test, but splits over 1MB chunks.
|
|
14
|
-
const sync_rules = test_utils.testRules(
|
|
15
|
-
`
|
|
16
|
-
bucket_definitions:
|
|
17
|
-
global:
|
|
18
|
-
data:
|
|
19
|
-
- SELECT id, description FROM "%"
|
|
20
|
-
`
|
|
21
|
-
);
|
|
22
|
-
using factory = await INITIALIZED_MONGO_STORAGE_FACTORY();
|
|
23
|
-
const bucketStorage = factory.getInstance(sync_rules);
|
|
24
|
-
|
|
25
|
-
const result = await bucketStorage.startBatch(test_utils.BATCH_OPTIONS, async (batch) => {
|
|
26
|
-
const sourceTable = TEST_TABLE;
|
|
27
|
-
|
|
28
|
-
const largeDescription = '0123456789'.repeat(2_000_00);
|
|
29
|
-
|
|
30
|
-
await batch.save({
|
|
31
|
-
sourceTable,
|
|
32
|
-
tag: storage.SaveOperationTag.INSERT,
|
|
33
|
-
after: {
|
|
34
|
-
id: 'test1',
|
|
35
|
-
description: 'test1'
|
|
36
|
-
},
|
|
37
|
-
afterReplicaId: test_utils.rid('test1')
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
await batch.save({
|
|
41
|
-
sourceTable,
|
|
42
|
-
tag: storage.SaveOperationTag.INSERT,
|
|
43
|
-
after: {
|
|
44
|
-
id: 'large1',
|
|
45
|
-
description: largeDescription
|
|
46
|
-
},
|
|
47
|
-
afterReplicaId: test_utils.rid('large1')
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
// Large enough to split the returned batch
|
|
51
|
-
await batch.save({
|
|
52
|
-
sourceTable,
|
|
53
|
-
tag: storage.SaveOperationTag.INSERT,
|
|
54
|
-
after: {
|
|
55
|
-
id: 'large2',
|
|
56
|
-
description: largeDescription
|
|
57
|
-
},
|
|
58
|
-
afterReplicaId: test_utils.rid('large2')
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
await batch.save({
|
|
62
|
-
sourceTable,
|
|
63
|
-
tag: storage.SaveOperationTag.INSERT,
|
|
64
|
-
after: {
|
|
65
|
-
id: 'test3',
|
|
66
|
-
description: 'test3'
|
|
67
|
-
},
|
|
68
|
-
afterReplicaId: test_utils.rid('test3')
|
|
69
|
-
});
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
const checkpoint = result!.flushed_op;
|
|
73
|
-
|
|
74
|
-
const options: storage.BucketDataBatchOptions = {};
|
|
75
|
-
|
|
76
|
-
const batch1 = await test_utils.fromAsync(
|
|
77
|
-
bucketStorage.getBucketDataBatch(checkpoint, new Map([['global[]', '0']]), options)
|
|
78
|
-
);
|
|
79
|
-
expect(test_utils.getBatchData(batch1)).toEqual([
|
|
80
|
-
{ op_id: '1', op: 'PUT', object_id: 'test1', checksum: 2871785649 },
|
|
81
|
-
{ op_id: '2', op: 'PUT', object_id: 'large1', checksum: 1178768505 }
|
|
82
|
-
]);
|
|
83
|
-
expect(test_utils.getBatchMeta(batch1)).toEqual({
|
|
84
|
-
after: '0',
|
|
85
|
-
has_more: true,
|
|
86
|
-
next_after: '2'
|
|
87
|
-
});
|
|
88
|
-
|
|
89
|
-
const batch2 = await test_utils.fromAsync(
|
|
90
|
-
bucketStorage.getBucketDataBatch(checkpoint, new Map([['global[]', batch1[0].batch.next_after]]), options)
|
|
91
|
-
);
|
|
92
|
-
expect(test_utils.getBatchData(batch2)).toEqual([
|
|
93
|
-
{ op_id: '3', op: 'PUT', object_id: 'large2', checksum: 1607205872 }
|
|
94
|
-
]);
|
|
95
|
-
expect(test_utils.getBatchMeta(batch2)).toEqual({
|
|
96
|
-
after: '2',
|
|
97
|
-
has_more: true,
|
|
98
|
-
next_after: '3'
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
const batch3 = await test_utils.fromAsync(
|
|
102
|
-
bucketStorage.getBucketDataBatch(checkpoint, new Map([['global[]', batch2[0].batch.next_after]]), options)
|
|
103
|
-
);
|
|
104
|
-
expect(test_utils.getBatchData(batch3)).toEqual([
|
|
105
|
-
{ op_id: '4', op: 'PUT', object_id: 'test3', checksum: 1359888332 }
|
|
106
|
-
]);
|
|
107
|
-
expect(test_utils.getBatchMeta(batch3)).toEqual({
|
|
108
|
-
after: '3',
|
|
109
|
-
has_more: false,
|
|
110
|
-
next_after: '4'
|
|
111
|
-
});
|
|
112
|
-
});
|
|
113
|
-
});
|