@powersync/service-core 0.0.0-dev-20241022094219 → 0.0.0-dev-20241022111143
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 +6 -5
- package/dist/api/RouteAPI.d.ts +4 -6
- package/dist/api/diagnostics.js +1 -3
- 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 +1 -13
- package/dist/replication/ReplicationModule.js +4 -7
- 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 +1 -4
- package/dist/routes/configure-rsocket.js.map +1 -1
- package/dist/routes/endpoints/admin.js.map +1 -1
- package/dist/routes/endpoints/checkpointing.js +82 -14
- package/dist/routes/endpoints/checkpointing.js.map +1 -1
- package/dist/routes/endpoints/sync-rules.js.map +1 -1
- package/dist/routes/router.d.ts +1 -8
- package/dist/routes/router.js.map +1 -1
- package/dist/storage/BucketStorage.d.ts +15 -19
- package/dist/storage/BucketStorage.js +0 -6
- package/dist/storage/BucketStorage.js.map +1 -1
- package/dist/storage/MongoBucketStorage.d.ts +3 -9
- package/dist/storage/MongoBucketStorage.js +4 -21
- package/dist/storage/MongoBucketStorage.js.map +1 -1
- package/dist/storage/StorageEngine.d.ts +1 -5
- package/dist/storage/StorageEngine.js +1 -19
- package/dist/storage/StorageEngine.js.map +1 -1
- package/dist/storage/StorageProvider.d.ts +1 -8
- package/dist/storage/{write-checkpoint.d.ts → WriteCheckpointAPI.d.ts} +29 -10
- package/dist/storage/{write-checkpoint.js → WriteCheckpointAPI.js} +2 -2
- package/dist/storage/WriteCheckpointAPI.js.map +1 -0
- package/dist/storage/mongo/MongoBucketBatch.d.ts +2 -2
- package/dist/storage/mongo/MongoBucketBatch.js +0 -1
- package/dist/storage/mongo/MongoBucketBatch.js.map +1 -1
- package/dist/storage/mongo/MongoStorageProvider.js +1 -2
- package/dist/storage/mongo/MongoStorageProvider.js.map +1 -1
- package/dist/storage/mongo/MongoSyncBucketStorage.d.ts +13 -3
- package/dist/storage/mongo/MongoSyncBucketStorage.js +35 -7
- package/dist/storage/mongo/MongoSyncBucketStorage.js.map +1 -1
- package/dist/storage/mongo/MongoWriteCheckpointAPI.d.ts +4 -2
- package/dist/storage/mongo/MongoWriteCheckpointAPI.js +13 -7
- package/dist/storage/mongo/MongoWriteCheckpointAPI.js.map +1 -1
- package/dist/storage/storage-index.d.ts +2 -2
- package/dist/storage/storage-index.js +2 -2
- package/dist/storage/storage-index.js.map +1 -1
- package/dist/util/config/compound-config-collector.js +2 -1
- package/dist/util/config/compound-config-collector.js.map +1 -1
- package/dist/util/config/types.d.ts +1 -0
- package/dist/util/protocol-types.d.ts +1 -2
- package/package.json +5 -5
- package/src/api/RouteAPI.ts +4 -7
- package/src/api/diagnostics.ts +1 -3
- package/src/api/schema.ts +3 -3
- package/src/replication/AbstractReplicationJob.ts +2 -2
- package/src/replication/ReplicationModule.ts +5 -26
- package/src/routes/configure-fastify.ts +17 -16
- package/src/routes/configure-rsocket.ts +2 -7
- package/src/routes/endpoints/admin.ts +2 -2
- package/src/routes/endpoints/checkpointing.ts +8 -1
- package/src/routes/endpoints/sync-rules.ts +0 -1
- package/src/routes/router.ts +1 -7
- package/src/storage/BucketStorage.ts +16 -23
- package/src/storage/MongoBucketStorage.ts +9 -39
- package/src/storage/StorageEngine.ts +2 -24
- package/src/storage/StorageProvider.ts +1 -9
- package/src/storage/{write-checkpoint.ts → WriteCheckpointAPI.ts} +31 -13
- package/src/storage/mongo/MongoBucketBatch.ts +2 -3
- package/src/storage/mongo/MongoStorageProvider.ts +1 -2
- package/src/storage/mongo/MongoSyncBucketStorage.ts +52 -9
- package/src/storage/mongo/MongoWriteCheckpointAPI.ts +16 -8
- package/src/storage/storage-index.ts +2 -2
- package/src/util/config/compound-config-collector.ts +2 -1
- package/src/util/config/types.ts +1 -0
- package/src/util/protocol-types.ts +1 -1
- package/test/src/compacting.test.ts +15 -13
- package/test/src/data_storage.test.ts +56 -56
- package/test/src/sync.test.ts +9 -10
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/storage/write-checkpoint.js.map +0 -1
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { SqliteJsonRow, SqliteJsonValue, SqlSyncRules } from '@powersync/service-sync-rules';
|
|
2
2
|
import { DisposableObserver } from '@powersync/lib-services-framework';
|
|
3
3
|
import * as util from '../../util/util-index.js';
|
|
4
|
-
import { BucketDataBatchOptions, BucketStorageBatch,
|
|
4
|
+
import { BucketDataBatchOptions, BucketStorageBatch, CompactOptions, FlushedResult, ParseSyncRulesOptions, PersistedSyncRulesContent, ResolveTableOptions, ResolveTableResult, StartBatchOptions, SyncBucketDataBatch, SyncRulesBucketStorage, SyncRulesBucketStorageListener, SyncRuleStatus, TerminateOptions } from '../BucketStorage.js';
|
|
5
5
|
import { MongoBucketStorage } from '../MongoBucketStorage.js';
|
|
6
|
+
import { BatchedCustomWriteCheckpointOptions, ManagedWriteCheckpointOptions, SyncStorageLastWriteCheckpointFilters, WriteCheckpointMode } from '../WriteCheckpointAPI.js';
|
|
6
7
|
export declare class MongoSyncBucketStorage extends DisposableObserver<SyncRulesBucketStorageListener> implements SyncRulesBucketStorage {
|
|
7
8
|
readonly factory: MongoBucketStorage;
|
|
8
9
|
readonly group_id: number;
|
|
@@ -11,9 +12,18 @@ export declare class MongoSyncBucketStorage extends DisposableObserver<SyncRules
|
|
|
11
12
|
private readonly db;
|
|
12
13
|
private checksumCache;
|
|
13
14
|
private parsedSyncRulesCache;
|
|
14
|
-
|
|
15
|
+
private writeCheckpointAPI;
|
|
16
|
+
constructor(factory: MongoBucketStorage, group_id: number, sync_rules: PersistedSyncRulesContent, slot_name: string, writeCheckpointMode?: WriteCheckpointMode);
|
|
17
|
+
get writeCheckpointMode(): WriteCheckpointMode;
|
|
18
|
+
setWriteCheckpointMode(mode: WriteCheckpointMode): void;
|
|
19
|
+
batchCreateCustomWriteCheckpoints(checkpoints: BatchedCustomWriteCheckpointOptions[]): Promise<void>;
|
|
20
|
+
createCustomWriteCheckpoint(checkpoint: BatchedCustomWriteCheckpointOptions): Promise<bigint>;
|
|
21
|
+
createManagedWriteCheckpoint(checkpoint: ManagedWriteCheckpointOptions): Promise<bigint>;
|
|
22
|
+
lastWriteCheckpoint(filters: SyncStorageLastWriteCheckpointFilters): Promise<bigint | null>;
|
|
15
23
|
getParsedSyncRules(options: ParseSyncRulesOptions): SqlSyncRules;
|
|
16
|
-
getCheckpoint(): Promise<
|
|
24
|
+
getCheckpoint(): Promise<{
|
|
25
|
+
checkpoint: string;
|
|
26
|
+
}>;
|
|
17
27
|
startBatch(options: StartBatchOptions, callback: (batch: BucketStorageBatch) => Promise<void>): Promise<FlushedResult | null>;
|
|
18
28
|
resolveTable(options: ResolveTableOptions): Promise<ResolveTableResult>;
|
|
19
29
|
getParameterSets(checkpoint: util.OpId, lookups: SqliteJsonValue[][]): Promise<SqliteJsonRow[]>;
|
|
@@ -52,20 +52,21 @@ var __disposeResources = (this && this.__disposeResources) || (function (Suppres
|
|
|
52
52
|
});
|
|
53
53
|
import * as bson from 'bson';
|
|
54
54
|
import * as mongo from 'mongodb';
|
|
55
|
-
import { DisposableObserver } from '@powersync/lib-services-framework';
|
|
55
|
+
import { DisposableObserver, logger } from '@powersync/lib-services-framework';
|
|
56
|
+
import * as timers from 'timers/promises';
|
|
56
57
|
import * as db from '../../db/db-index.js';
|
|
57
58
|
import * as util from '../../util/util-index.js';
|
|
58
59
|
import { DEFAULT_DOCUMENT_BATCH_LIMIT, DEFAULT_DOCUMENT_CHUNK_LIMIT_BYTES } from '../BucketStorage.js';
|
|
59
60
|
import { ChecksumCache } from '../ChecksumCache.js';
|
|
60
61
|
import { SourceTable } from '../SourceTable.js';
|
|
62
|
+
import { WriteCheckpointMode } from '../WriteCheckpointAPI.js';
|
|
61
63
|
import { SyncRuleState } from './models.js';
|
|
62
64
|
import { MongoBucketBatch } from './MongoBucketBatch.js';
|
|
63
65
|
import { MongoCompactor } from './MongoCompactor.js';
|
|
66
|
+
import { MongoWriteCheckpointAPI } from './MongoWriteCheckpointAPI.js';
|
|
64
67
|
import { BSON_DESERIALIZE_OPTIONS, idPrefixFilter, mapOpEntry, readSingleBatch, serializeLookup } from './util.js';
|
|
65
|
-
import { logger } from '@powersync/lib-services-framework';
|
|
66
|
-
import * as timers from 'timers/promises';
|
|
67
68
|
export class MongoSyncBucketStorage extends DisposableObserver {
|
|
68
|
-
constructor(factory, group_id, sync_rules, slot_name) {
|
|
69
|
+
constructor(factory, group_id, sync_rules, slot_name, writeCheckpointMode = WriteCheckpointMode.MANAGED) {
|
|
69
70
|
super();
|
|
70
71
|
this.factory = factory;
|
|
71
72
|
this.group_id = group_id;
|
|
@@ -77,6 +78,34 @@ export class MongoSyncBucketStorage extends DisposableObserver {
|
|
|
77
78
|
}
|
|
78
79
|
});
|
|
79
80
|
this.db = factory.db;
|
|
81
|
+
this.writeCheckpointAPI = new MongoWriteCheckpointAPI({
|
|
82
|
+
db: this.db,
|
|
83
|
+
mode: writeCheckpointMode
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
get writeCheckpointMode() {
|
|
87
|
+
return this.writeCheckpointAPI.writeCheckpointMode;
|
|
88
|
+
}
|
|
89
|
+
setWriteCheckpointMode(mode) {
|
|
90
|
+
this.writeCheckpointAPI.setWriteCheckpointMode(mode);
|
|
91
|
+
}
|
|
92
|
+
batchCreateCustomWriteCheckpoints(checkpoints) {
|
|
93
|
+
return this.writeCheckpointAPI.batchCreateCustomWriteCheckpoints(checkpoints.map((checkpoint) => ({ ...checkpoint, sync_rules_id: this.group_id })));
|
|
94
|
+
}
|
|
95
|
+
createCustomWriteCheckpoint(checkpoint) {
|
|
96
|
+
return this.writeCheckpointAPI.createCustomWriteCheckpoint({
|
|
97
|
+
...checkpoint,
|
|
98
|
+
sync_rules_id: this.group_id
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
createManagedWriteCheckpoint(checkpoint) {
|
|
102
|
+
return this.writeCheckpointAPI.createManagedWriteCheckpoint(checkpoint);
|
|
103
|
+
}
|
|
104
|
+
lastWriteCheckpoint(filters) {
|
|
105
|
+
return this.writeCheckpointAPI.lastWriteCheckpoint({
|
|
106
|
+
...filters,
|
|
107
|
+
sync_rules_id: this.group_id
|
|
108
|
+
});
|
|
80
109
|
}
|
|
81
110
|
getParsedSyncRules(options) {
|
|
82
111
|
this.parsedSyncRulesCache ?? (this.parsedSyncRulesCache = this.sync_rules.parsed(options).sync_rules);
|
|
@@ -84,11 +113,10 @@ export class MongoSyncBucketStorage extends DisposableObserver {
|
|
|
84
113
|
}
|
|
85
114
|
async getCheckpoint() {
|
|
86
115
|
const doc = await this.db.sync_rules.findOne({ _id: this.group_id }, {
|
|
87
|
-
projection: { last_checkpoint: 1
|
|
116
|
+
projection: { last_checkpoint: 1 }
|
|
88
117
|
});
|
|
89
118
|
return {
|
|
90
|
-
checkpoint: util.timestampToOpId(doc?.last_checkpoint ?? 0n)
|
|
91
|
-
lsn: doc?.last_checkpoint_lsn ?? null
|
|
119
|
+
checkpoint: util.timestampToOpId(doc?.last_checkpoint ?? 0n)
|
|
92
120
|
};
|
|
93
121
|
}
|
|
94
122
|
async startBatch(options, callback) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MongoSyncBucketStorage.js","sourceRoot":"","sources":["../../../src/storage/mongo/MongoSyncBucketStorage.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,KAAK,IAAI,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAKL,4BAA4B,EAC5B,kCAAkC,EAYnC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAmE,MAAM,qBAAqB,CAAC;AAErH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAgD,aAAa,EAAE,MAAM,aAAa,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACnH,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3D,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAE1C,MAAM,OAAO,sBACX,SAAQ,kBAAkD;IAY1D,YACkB,OAA2B,EAC3B,QAAgB,EACf,UAAqC,EACtC,SAAiB;QAEjC,KAAK,EAAE,CAAC;QALQ,YAAO,GAAP,OAAO,CAAoB;QAC3B,aAAQ,GAAR,QAAQ,CAAQ;QACf,eAAU,GAAV,UAAU,CAA2B;QACtC,cAAS,GAAT,SAAS,CAAQ;QAZ3B,kBAAa,GAAG,IAAI,aAAa,CAAC;YACxC,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE;gBACxB,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC1C,CAAC;SACF,CAAC,CAAC;QAWD,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;IACvB,CAAC;IAED,kBAAkB,CAAC,OAA8B;QAC/C,IAAI,CAAC,oBAAoB,KAAzB,IAAI,CAAC,oBAAoB,GAAK,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,EAAC;QACzE,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAC1C,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,EACtB;YACE,UAAU,EAAE,EAAE,eAAe,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE;SAC3D,CACF,CAAC;QACF,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,eAAe,IAAI,EAAE,CAAC;YAC5D,GAAG,EAAE,GAAG,EAAE,mBAAmB,IAAI,IAAI;SACtC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CACd,OAA0B,EAC1B,QAAsD;;;YAEtD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAC1C;gBACE,GAAG,EAAE,IAAI,CAAC,QAAQ;aACnB,EACD,EAAE,UAAU,EAAE,EAAE,mBAAmB,EAAE,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,CACpE,CAAC;YACF,MAAM,cAAc,GAAG,GAAG,EAAE,mBAAmB,IAAI,IAAI,CAAC;YAExD,MAAY,KAAK,kCAAG,IAAI,gBAAgB,CACtC,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,EAC1C,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,SAAS,EACd,cAAc,EACd,GAAG,EAAE,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAC7C,OAAA,CAAC;YACF,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;YAExD,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;YACtB,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;gBAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC;YACd,CAAC;;;;;;;;;;;KACF;IAED,KAAK,CAAC,YAAY,CAAC,OAA4B;QAC7C,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC;QAE/E,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,iBAAiB,CAAC;QAEhF,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAClD,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,QAAQ,EAAE,MAAM,CAAC,MAAM;SACxB,CAAC,CAAC,CAAC;QACJ,IAAI,MAAM,GAA8B,IAAI,CAAC;QAC7C,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YACjD,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;YAClC,IAAI,GAAG,GAAG,MAAM,GAAG,CAAC,OAAO,CACzB;gBACE,QAAQ,EAAE,QAAQ;gBAClB,aAAa,EAAE,aAAa;gBAC5B,WAAW,EAAE,QAAQ;gBACrB,WAAW,EAAE,MAAM;gBACnB,UAAU,EAAE,KAAK;gBACjB,mBAAmB,EAAE,OAAO;aAC7B,EACD,EAAE,OAAO,EAAE,CACZ,CAAC;YACF,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBAChB,GAAG,GAAG;oBACJ,GAAG,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACxB,QAAQ,EAAE,QAAQ;oBAClB,aAAa,EAAE,aAAa;oBAC5B,WAAW,EAAE,QAAQ;oBACrB,WAAW,EAAE,MAAM;oBACnB,UAAU,EAAE,KAAK;oBACjB,kBAAkB,EAAE,IAAI;oBACxB,mBAAmB,EAAE,OAAO;oBAC5B,aAAa,EAAE,KAAK;iBACrB,CAAC;gBAEF,MAAM,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YACxC,CAAC;YACD,MAAM,WAAW,GAAG,IAAI,WAAW,CACjC,GAAG,CAAC,GAAG,EACP,cAAc,EACd,QAAQ,EACR,MAAM,EACN,KAAK,EACL,kBAAkB,EAClB,GAAG,CAAC,aAAa,IAAI,IAAI,CAC1B,CAAC;YACF,WAAW,CAAC,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;YAC3E,WAAW,CAAC,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YACtE,WAAW,CAAC,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;YAElF,MAAM,QAAQ,GAAG,MAAM,GAAG;iBACvB,IAAI,CACH;gBACE,QAAQ,EAAE,QAAQ;gBAClB,aAAa,EAAE,aAAa;gBAC5B,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE;gBACrB,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;aAC7E,EACD,EAAE,OAAO,EAAE,CACZ;iBACA,OAAO,EAAE,CAAC;YACb,MAAM,GAAG;gBACP,KAAK,EAAE,WAAW;gBAClB,UAAU,EAAE,QAAQ,CAAC,GAAG,CACtB,CAAC,GAAG,EAAE,EAAE,CACN,IAAI,WAAW,CACb,GAAG,CAAC,GAAG,EACP,cAAc,EACd,GAAG,CAAC,WAAW,IAAI,CAAC,EACpB,GAAG,CAAC,WAAW,EACf,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAChG,GAAG,CAAC,aAAa,IAAI,IAAI,CAC1B,CACJ;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,MAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,UAAqB,EAAE,OAA4B;QACxE,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC1C,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,iBAAiB;aACzC,SAAS,CAAC;YACT;gBACE,MAAM,EAAE;oBACN,OAAO,EAAE,IAAI,CAAC,QAAQ;oBACtB,MAAM,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE;oBAC7B,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE;iBAClC;aACF;YACD;gBACE,KAAK,EAAE;oBACL,GAAG,EAAE,CAAC,CAAC;iBACR;aACF;YACD;gBACE,MAAM,EAAE;oBACN,GAAG,EAAE,MAAM;oBACX,iBAAiB,EAAE;wBACjB,MAAM,EAAE,oBAAoB;qBAC7B;iBACF;aACF;SACF,CAAC;aACD,OAAO,EAAE,CAAC;QACb,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACzC,OAAO,GAAG,CAAC,iBAAiB,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,OAAO,iBAAiB,CAAC,IAAI,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,CAAC,kBAAkB,CACvB,UAAqB,EACrB,WAAgC,EAChC,OAAgC;QAEhC,IAAI,WAAW,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QACD,IAAI,OAAO,GAAuC,EAAE,CAAC;QAErD,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChE,KAAK,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC;gBACX,GAAG,EAAE;oBACH,GAAG,EAAE;wBACH,CAAC,EAAE,IAAI,CAAC,QAAQ;wBAChB,CAAC,EAAE,IAAI;wBACP,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC;qBACjB;oBACD,IAAI,EAAE;wBACJ,CAAC,EAAE,IAAI,CAAC,QAAQ;wBAChB,CAAC,EAAE,IAAI;wBACP,CAAC,EAAE,GAAU;qBACd;iBACF;aACF,CAAC,CAAC;QACL,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,4BAA4B,CAAC;QAC7D,MAAM,SAAS,GAAG,OAAO,EAAE,eAAe,IAAI,kCAAkC,CAAC;QAEjF,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CACrC;YACE,GAAG,EAAE,OAAO;SACb,EACD;YACE,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;YAChB,KAAK,EAAE,KAAK;YACZ,oFAAoF;YACpF,UAAU;YACV,SAAS,EAAE,KAAK;YAChB,sEAAsE;YACtE,qBAAqB;YACrB,8EAA8E;YAC9E,yDAAyD;YACzD,yCAAyC;YACzC,GAAG,EAAE,IAAI;YAET,gFAAgF;YAChF,gBAAgB;YAChB,qFAAqF;YACrF,qCAAqC;YACrC,WAAW,EAAE,KAAK;SACnB,CACqC,CAAC;QAEzC,yEAAyE;QACzE,iFAAiF;QACjF,mDAAmD;QACnD,+EAA+E;QAC/E,uBAAuB;QACvB,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;YACzB,0EAA0E;YAC1E,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QAED,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,YAAY,GAA+B,IAAI,CAAC;QACpD,IAAI,QAAQ,GAAkB,IAAI,CAAC;QAEnC,uDAAuD;QACvD,KAAK,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,wBAAwB,CAAuB,CAAC;YACtF,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAEzB,IAAI,YAAY,IAAI,IAAI,IAAI,YAAY,CAAC,MAAM,IAAI,MAAM,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;gBACpF,IAAI,KAAK,GAAuB,SAAS,CAAC;gBAC1C,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;oBACzB,IAAI,YAAY,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;wBAClC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;oBAC/B,CAAC;oBAED,MAAM,UAAU,GAAG,YAAY,CAAC;oBAChC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;oBAC3B,YAAY,GAAG,IAAI,CAAC;oBACpB,SAAS,GAAG,CAAC,CAAC;oBACd,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;oBAChD,QAAQ,GAAG,IAAI,CAAC;gBAClB,CAAC;gBAED,KAAK,KAAL,KAAK,GAAK,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAC;gBAClC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;oBAClB,MAAM,IAAI,KAAK,CAAC,+BAA+B,MAAM,EAAE,CAAC,CAAC;gBAC3D,CAAC;gBACD,YAAY,GAAG;oBACb,MAAM;oBACN,KAAK,EAAE,KAAK;oBACZ,QAAQ,EAAE,OAAO;oBACjB,IAAI,EAAE,EAAE;oBACR,UAAU,EAAE,KAAK;iBAClB,CAAC;gBACF,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC;YAED,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YAE9B,IAAI,GAAG,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;gBAC1B,cAAc;gBACd,IAAI,QAAQ,IAAI,IAAI,IAAI,GAAG,CAAC,SAAS,GAAG,QAAQ,EAAE,CAAC;oBACjD,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC;gBAC3B,CAAC;YACH,CAAC;YAED,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9B,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;YAEtC,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;QAClC,CAAC;QAED,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,YAAY,CAAC;YAChC,YAAY,GAAG,IAAI,CAAC;YACpB,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;YAChD,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAqB,EAAE,OAAiB;QACzD,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,KAAmC;QACpE,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,GAAG,EAAE,CAAC;QACnB,CAAC;QAED,MAAM,OAAO,GAAU,EAAE,CAAC;QAC1B,KAAK,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC;gBACX,GAAG,EAAE;oBACH,GAAG,EAAE;wBACH,CAAC,EAAE,IAAI,CAAC,QAAQ;wBAChB,CAAC,EAAE,OAAO,CAAC,MAAM;wBACjB,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;qBAC7D;oBACD,IAAI,EAAE;wBACJ,CAAC,EAAE,IAAI,CAAC,QAAQ;wBAChB,CAAC,EAAE,OAAO,CAAC,MAAM;wBACjB,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;qBACvB;iBACF;aACF,CAAC,CAAC;QACL,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,WAAW;aACxC,SAAS,CACR;YACE;gBACE,MAAM,EAAE;oBACN,GAAG,EAAE,OAAO;iBACb;aACF;YACD;gBACE,MAAM,EAAE;oBACN,GAAG,EAAE,QAAQ;oBACb,cAAc,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;oBACrC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;oBAClB,YAAY,EAAE;wBACZ,IAAI,EAAE;4BACJ,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;yBACzC;qBACF;iBACF;aACF;SACF,EACD,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,CAChD;aACA,OAAO,EAAE,CAAC;QAEb,OAAO,IAAI,GAAG,CACZ,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACpB,OAAO;gBACL,GAAG,CAAC,GAAG;gBACP;oBACE,MAAM,EAAE,GAAG,CAAC,GAAG;oBACf,YAAY,EAAE,GAAG,CAAC,KAAK;oBACvB,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC,GAAG,UAAU;oBAC9E,cAAc,EAAE,GAAG,CAAC,YAAY,IAAI,CAAC;iBACZ;aAC5B,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAA0B;QACxC,2EAA2E;QAC3E,IAAI,CAAC,OAAO,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;YACtC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;QACD,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAChC;YACE,GAAG,EAAE,IAAI,CAAC,QAAQ;SACnB,EACD;YACE,IAAI,EAAE;gBACJ,KAAK,EAAE,aAAa,CAAC,UAAU;gBAC/B,aAAa,EAAE,IAAI;gBACnB,aAAa,EAAE,KAAK;aACrB;SACF,CACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAC1C;YACE,GAAG,EAAE,IAAI,CAAC,QAAQ;SACnB,EACD;YACE,UAAU,EAAE;gBACV,aAAa,EAAE,CAAC;gBAChB,mBAAmB,EAAE,CAAC;gBACtB,KAAK,EAAE,CAAC;aACT;SACF,CACF,CAAC;QACF,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QAED,OAAO;YACL,aAAa,EAAE,GAAG,CAAC,aAAa;YAChC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,QAAQ;YAC7B,cAAc,EAAE,GAAG,CAAC,mBAAmB;SACxC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC5B,OAAO;YACT,CAAC;YAAC,OAAO,CAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,YAAY,KAAK,CAAC,gBAAgB,IAAI,CAAC,CAAC,QAAQ,IAAI,kBAAkB,EAAE,CAAC;oBAC5E,MAAM,CAAC,IAAI,CACT,6BAA6B,EAAE,CAAC,KAAK,CAAC,gCAAgC,+CAA+C,CACtH,CAAC;oBACF,MAAM,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,gCAAgC,GAAG,CAAC,CAAC,CAAC;oBACvE,SAAS;gBACX,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,CAAC;gBACV,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,qEAAqE;QACrE,uEAAuE;QAEvE,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAChC;YACE,GAAG,EAAE,IAAI,CAAC,QAAQ;SACnB,EACD;YACE,IAAI,EAAE;gBACJ,aAAa,EAAE,KAAK;gBACpB,aAAa,EAAE,IAAI;gBACnB,mBAAmB,EAAE,IAAI;gBACzB,eAAe,EAAE,IAAI;gBACrB,oBAAoB,EAAE,IAAI;aAC3B;SACF,EACD,EAAE,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,gCAAgC,EAAE,CACzD,CAAC;QACF,MAAM,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,UAAU,CAClC;YACE,GAAG,EAAE,cAAc,CAAgB,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;SACrE,EACD,EAAE,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,gCAAgC,EAAE,CACzD,CAAC;QACF,MAAM,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,UAAU,CACxC;YACE,GAAG,EAAE,cAAc,CAAY,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;SACjE,EACD,EAAE,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,gCAAgC,EAAE,CACzD,CAAC;QAEF,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CACnC;YACE,GAAG,EAAE,cAAc,CAAY,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;SACjE,EACD,EAAE,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,gCAAgC,EAAE,CACzD,CAAC;QAEF,MAAM,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,UAAU,CACpC;YACE,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,EACD,EAAE,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,gCAAgC,EAAE,CACzD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YACjD,MAAM,OAAO,CAAC,eAAe,CAAC,KAAK,IAAI,EAAE;gBACvC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;gBAClF,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,IAAI,YAAY,EAAE,CAAC;oBACrC,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAChC;wBACE,GAAG,EAAE,IAAI,CAAC,QAAQ;qBACnB,EACD;wBACE,IAAI,EAAE;4BACJ,KAAK,EAAE,aAAa,CAAC,MAAM;yBAC5B;qBACF,EACD,EAAE,OAAO,EAAE,CACZ,CAAC;oBAEF,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CACjC;wBACE,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE;wBAC3B,KAAK,EAAE,aAAa,CAAC,MAAM;qBAC5B,EACD;wBACE,IAAI,EAAE;4BACJ,KAAK,EAAE,aAAa,CAAC,IAAI;yBAC1B;qBACF,EACD,EAAE,OAAO,EAAE,CACZ,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,CAAM;QACtB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,qBAAqB,CAAC,CAAC;QAC3D,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAChC;YACE,GAAG,EAAE,IAAI,CAAC,QAAQ;SACnB,EACD;YACE,IAAI,EAAE;gBACJ,gBAAgB,EAAE,OAAO;aAC1B;SACF,CACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAwB;QACpC,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;IACvE,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"MongoSyncBucketStorage.js","sourceRoot":"","sources":["../../../src/storage/mongo/MongoSyncBucketStorage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CustomWriteCheckpointFilters, CustomWriteCheckpointOptions, LastWriteCheckpointFilters, ManagedWriteCheckpointFilters, ManagedWriteCheckpointOptions, WriteCheckpointAPI, WriteCheckpointMode } from '../
|
|
1
|
+
import { CustomWriteCheckpointFilters, CustomWriteCheckpointOptions, LastWriteCheckpointFilters, ManagedWriteCheckpointFilters, ManagedWriteCheckpointOptions, WriteCheckpointAPI, WriteCheckpointMode } from '../WriteCheckpointAPI.js';
|
|
2
2
|
import { PowerSyncMongo } from './db.js';
|
|
3
3
|
export type MongoCheckpointAPIOptions = {
|
|
4
4
|
db: PowerSyncMongo;
|
|
@@ -6,8 +6,10 @@ export type MongoCheckpointAPIOptions = {
|
|
|
6
6
|
};
|
|
7
7
|
export declare class MongoWriteCheckpointAPI implements WriteCheckpointAPI {
|
|
8
8
|
readonly db: PowerSyncMongo;
|
|
9
|
-
|
|
9
|
+
private _mode;
|
|
10
10
|
constructor(options: MongoCheckpointAPIOptions);
|
|
11
|
+
get writeCheckpointMode(): WriteCheckpointMode;
|
|
12
|
+
setWriteCheckpointMode(mode: WriteCheckpointMode): void;
|
|
11
13
|
batchCreateCustomWriteCheckpoints(checkpoints: CustomWriteCheckpointOptions[]): Promise<void>;
|
|
12
14
|
createCustomWriteCheckpoint(options: CustomWriteCheckpointOptions): Promise<bigint>;
|
|
13
15
|
createManagedWriteCheckpoint(checkpoint: ManagedWriteCheckpointOptions): Promise<bigint>;
|
|
@@ -1,16 +1,22 @@
|
|
|
1
1
|
import * as framework from '@powersync/lib-services-framework';
|
|
2
|
-
import { WriteCheckpointMode } from '../
|
|
2
|
+
import { WriteCheckpointMode } from '../WriteCheckpointAPI.js';
|
|
3
3
|
export class MongoWriteCheckpointAPI {
|
|
4
4
|
constructor(options) {
|
|
5
5
|
this.db = options.db;
|
|
6
|
-
this.
|
|
6
|
+
this._mode = options.mode;
|
|
7
|
+
}
|
|
8
|
+
get writeCheckpointMode() {
|
|
9
|
+
return this._mode;
|
|
10
|
+
}
|
|
11
|
+
setWriteCheckpointMode(mode) {
|
|
12
|
+
this._mode = mode;
|
|
7
13
|
}
|
|
8
14
|
async batchCreateCustomWriteCheckpoints(checkpoints) {
|
|
9
15
|
return batchCreateCustomWriteCheckpoints(this.db, checkpoints);
|
|
10
16
|
}
|
|
11
17
|
async createCustomWriteCheckpoint(options) {
|
|
12
|
-
if (this.
|
|
13
|
-
throw new framework.errors.ValidationError(`Creating a custom Write Checkpoint when the current Write Checkpoint mode is set to "${this.
|
|
18
|
+
if (this.writeCheckpointMode !== WriteCheckpointMode.CUSTOM) {
|
|
19
|
+
throw new framework.errors.ValidationError(`Creating a custom Write Checkpoint when the current Write Checkpoint mode is set to "${this.writeCheckpointMode}"`);
|
|
14
20
|
}
|
|
15
21
|
const { checkpoint, user_id, sync_rules_id } = options;
|
|
16
22
|
const doc = await this.db.custom_write_checkpoints.findOneAndUpdate({
|
|
@@ -24,8 +30,8 @@ export class MongoWriteCheckpointAPI {
|
|
|
24
30
|
return doc.checkpoint;
|
|
25
31
|
}
|
|
26
32
|
async createManagedWriteCheckpoint(checkpoint) {
|
|
27
|
-
if (this.
|
|
28
|
-
throw new framework.errors.ValidationError(`
|
|
33
|
+
if (this.writeCheckpointMode !== WriteCheckpointMode.MANAGED) {
|
|
34
|
+
throw new framework.errors.ValidationError(`Attempting to create a managed Write Checkpoint when the current Write Checkpoint mode is set to "${this.writeCheckpointMode}"`);
|
|
29
35
|
}
|
|
30
36
|
const { user_id, heads: lsns } = checkpoint;
|
|
31
37
|
const doc = await this.db.write_checkpoints.findOneAndUpdate({
|
|
@@ -41,7 +47,7 @@ export class MongoWriteCheckpointAPI {
|
|
|
41
47
|
return doc.client_id;
|
|
42
48
|
}
|
|
43
49
|
async lastWriteCheckpoint(filters) {
|
|
44
|
-
switch (this.
|
|
50
|
+
switch (this.writeCheckpointMode) {
|
|
45
51
|
case WriteCheckpointMode.CUSTOM:
|
|
46
52
|
if (false == 'sync_rules_id' in filters) {
|
|
47
53
|
throw new framework.errors.ValidationError(`Sync rules ID is required for custom Write Checkpoint filtering`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MongoWriteCheckpointAPI.js","sourceRoot":"","sources":["../../../src/storage/mongo/MongoWriteCheckpointAPI.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAOL,mBAAmB,EACpB,MAAM,
|
|
1
|
+
{"version":3,"file":"MongoWriteCheckpointAPI.js","sourceRoot":"","sources":["../../../src/storage/mongo/MongoWriteCheckpointAPI.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ export * from './ReplicationEventPayload.js';
|
|
|
4
4
|
export * from './SourceEntity.js';
|
|
5
5
|
export * from './SourceTable.js';
|
|
6
6
|
export * from './StorageEngine.js';
|
|
7
|
+
export * from './mongo/config.js';
|
|
7
8
|
export * from './mongo/db.js';
|
|
8
9
|
export * from './mongo/models.js';
|
|
9
10
|
export * from './mongo/MongoBucketBatch.js';
|
|
@@ -16,5 +17,4 @@ export * from './mongo/MongoSyncRulesLock.js';
|
|
|
16
17
|
export * from './mongo/OperationBatch.js';
|
|
17
18
|
export * from './mongo/PersistedBatch.js';
|
|
18
19
|
export * from './mongo/util.js';
|
|
19
|
-
export * from './
|
|
20
|
-
export * from './write-checkpoint.js';
|
|
20
|
+
export * from './WriteCheckpointAPI.js';
|
|
@@ -4,6 +4,7 @@ export * from './ReplicationEventPayload.js';
|
|
|
4
4
|
export * from './SourceEntity.js';
|
|
5
5
|
export * from './SourceTable.js';
|
|
6
6
|
export * from './StorageEngine.js';
|
|
7
|
+
export * from './mongo/config.js';
|
|
7
8
|
export * from './mongo/db.js';
|
|
8
9
|
export * from './mongo/models.js';
|
|
9
10
|
export * from './mongo/MongoBucketBatch.js';
|
|
@@ -16,6 +17,5 @@ export * from './mongo/MongoSyncRulesLock.js';
|
|
|
16
17
|
export * from './mongo/OperationBatch.js';
|
|
17
18
|
export * from './mongo/PersistedBatch.js';
|
|
18
19
|
export * from './mongo/util.js';
|
|
19
|
-
export * from './
|
|
20
|
-
export * from './write-checkpoint.js';
|
|
20
|
+
export * from './WriteCheckpointAPI.js';
|
|
21
21
|
//# sourceMappingURL=storage-index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage-index.js","sourceRoot":"","sources":["../../src/storage/storage-index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oCAAoC,CAAC;AACnD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,
|
|
1
|
+
{"version":3,"file":"storage-index.js","sourceRoot":"","sources":["../../src/storage/storage-index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oCAAoC,CAAC;AACnD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC"}
|
|
@@ -75,7 +75,8 @@ export class CompoundConfigCollector {
|
|
|
75
75
|
},
|
|
76
76
|
// TODO maybe move this out of the connection or something
|
|
77
77
|
// slot_name_prefix: connections[0]?.slot_name_prefix ?? 'powersync_'
|
|
78
|
-
slot_name_prefix: 'powersync_'
|
|
78
|
+
slot_name_prefix: 'powersync_',
|
|
79
|
+
parameters: baseConfig.parameters ?? {}
|
|
79
80
|
};
|
|
80
81
|
return config;
|
|
81
82
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compound-config-collector.js","sourceRoot":"","sources":["../../../src/util/config/compound-config-collector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAE3D,OAAO,KAAK,IAAI,MAAM,0BAA0B,CAAC;AAEjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AACzF,OAAO,EAAE,yBAAyB,EAAE,MAAM,kDAAkD,CAAC;AAC7F,OAAO,EAAE,wBAAwB,EAAE,MAAM,kDAAkD,CAAC;AAC5F,OAAO,EAAE,4BAA4B,EAAE,MAAM,sDAAsD,CAAC;AACpG,OAAO,EAAE,wBAAwB,EAAE,MAAM,kDAAkD,CAAC;AA4B5F,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAE1C,MAAM,yBAAyB,GAAmC;IAChE,gBAAgB,EAAE,CAAC,IAAI,qBAAqB,EAAE,EAAE,IAAI,yBAAyB,EAAE,EAAE,IAAI,uBAAuB,EAAE,CAAC;IAC/G,mBAAmB,EAAE;QACnB,IAAI,wBAAwB,EAAE;QAC9B,IAAI,4BAA4B,EAAE;QAClC,IAAI,wBAAwB,EAAE;KAC/B;CACF,CAAC;AAEF,MAAM,OAAO,uBAAuB;IAClC,YAAsB,UAA0C,yBAAyB;QAAnE,YAAO,GAAP,OAAO,CAA4D;IAAG,CAAC;IAE7F;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,eAA6B,EAAE;QACjD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAE9D,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,EAAE,WAAW,IAAI,EAAE,CAAC;QAC9D,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAClF,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAE/C,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QAC3D,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAE5E,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAEhC,IAAI,SAAS,GAAG,UAAU,CAAC,WAAW,EAAE,QAAQ,IAAI,EAAE,CAAC;QACvD,IAAI,OAAO,SAAS,IAAI,QAAQ,EAAE,CAAC;YACjC,SAAS,GAAG,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC;QAED,KAAK,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;YAC1B,UAAU,CAAC,GAAG,CACZ,IAAI,IAAI,CAAC,kBAAkB,CACzB,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,gBAAgB,EAAE,CAAC,CAClG,CACF,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,iBAAiB,CAAC,CAAC;QAE1G,IAAI,MAAgC,CAAC;QACrC,IAAI,UAAU,CAAC,GAAG,EAAE,SAAS,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC;YAC/E,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAEzE,IAAI,aAAa,GAAa,UAAU,CAAC,WAAW,EAAE,QAAQ,IAAI,EAAE,CAAC;QAErE,IAAI,MAAM,GAA4B;YACpC,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE,WAAW,IAAI,EAAE;YACtD,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,eAAe,EAAE,QAAQ;YACzB,+DAA+D;YAC/D,mEAAmE;YACnE,mBAAmB,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;YACvD,UAAU,EAAE,UAAU,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE;YACxC,GAAG,EAAE;gBACH,SAAS,EAAE,UAAU,CAAC,GAAG,EAAE,SAAS,IAAI,KAAK;gBAC7C,WAAW,EAAE,UAAU,CAAC,GAAG,EAAE,WAAW,IAAI,KAAK;gBACjD,aAAa,EAAE,UAAU,CAAC,GAAG,EAAE,aAAa;gBAC5C,QAAQ,EAAE,UAAU,CAAC,GAAG,EAAE,QAAQ,IAAI,KAAK;gBAC3C,OAAO,EAAE,MAAM;aAChB;YACD,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,IAAI;YAC7B,UAAU;YACV,aAAa;YAEb,oBAAoB,EAAE,IAAI,EAAE,QAAQ;YACpC,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,EAAE;YACnC,UAAU,EAAE,UAAU,CAAC,UAAU;YACjC,SAAS,EAAE;gBACT,yBAAyB,EAAE,UAAU,CAAC,SAAS,EAAE,yBAAyB,IAAI,KAAK;gBACnF,yBAAyB,EACvB,UAAU,CAAC,SAAS,EAAE,yBAAyB,IAAI,0CAA0C;aAChG;YACD,0DAA0D;YAC1D,qEAAqE;YACrE,gBAAgB,EAAE,YAAY;
|
|
1
|
+
{"version":3,"file":"compound-config-collector.js","sourceRoot":"","sources":["../../../src/util/config/compound-config-collector.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,7 +71,7 @@ export type StreamingSyncLine = StreamingSyncData | StreamingSyncCheckpoint | St
|
|
|
71
71
|
* 64-bit unsigned number, as a base-10 string.
|
|
72
72
|
*/
|
|
73
73
|
export type OpId = string;
|
|
74
|
-
interface Checkpoint {
|
|
74
|
+
export interface Checkpoint {
|
|
75
75
|
last_op_id: OpId;
|
|
76
76
|
write_checkpoint?: OpId;
|
|
77
77
|
buckets: BucketChecksum[];
|
|
@@ -119,4 +119,3 @@ export interface BucketChecksum {
|
|
|
119
119
|
*/
|
|
120
120
|
count: number;
|
|
121
121
|
}
|
|
122
|
-
export {};
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
8
|
-
"version": "0.0.0-dev-
|
|
8
|
+
"version": "0.0.0-dev-20241022111143",
|
|
9
9
|
"main": "dist/index.js",
|
|
10
10
|
"license": "FSL-1.1-Apache-2.0",
|
|
11
11
|
"type": "module",
|
|
@@ -33,11 +33,11 @@
|
|
|
33
33
|
"uuid": "^9.0.1",
|
|
34
34
|
"winston": "^3.13.0",
|
|
35
35
|
"yaml": "^2.3.2",
|
|
36
|
-
"@powersync/lib-services-framework": "0.0.0-dev-
|
|
36
|
+
"@powersync/lib-services-framework": "0.0.0-dev-20241022111143",
|
|
37
37
|
"@powersync/service-jsonbig": "0.17.10",
|
|
38
|
-
"@powersync/service-rsocket-router": "0.0.0-dev-
|
|
39
|
-
"@powersync/service-sync-rules": "0.0.0-dev-
|
|
40
|
-
"@powersync/service-types": "0.0.0-dev-
|
|
38
|
+
"@powersync/service-rsocket-router": "0.0.0-dev-20241022111143",
|
|
39
|
+
"@powersync/service-sync-rules": "0.0.0-dev-20241022111143",
|
|
40
|
+
"@powersync/service-types": "0.0.0-dev-20241022111143"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@types/async": "^3.2.24",
|
package/src/api/RouteAPI.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SqlSyncRules, TablePattern } from '@powersync/service-sync-rules';
|
|
2
2
|
import * as types from '@powersync/service-types';
|
|
3
|
-
import { ParseSyncRulesOptions
|
|
3
|
+
import { ParseSyncRulesOptions } from '../storage/BucketStorage.js';
|
|
4
4
|
|
|
5
5
|
export interface PatternResult {
|
|
6
6
|
schema: string;
|
|
@@ -10,10 +10,6 @@ export interface PatternResult {
|
|
|
10
10
|
table?: types.TableInfo;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
export interface ReplicationLagOptions {
|
|
14
|
-
bucketStorage: SyncRulesBucketStorage;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
13
|
/**
|
|
18
14
|
* Describes all the methods currently required to service the sync API endpoints.
|
|
19
15
|
*/
|
|
@@ -21,7 +17,7 @@ export interface RouteAPI {
|
|
|
21
17
|
/**
|
|
22
18
|
* @returns basic identification of the connection
|
|
23
19
|
*/
|
|
24
|
-
getSourceConfig(): Promise<types.configFile.
|
|
20
|
+
getSourceConfig(): Promise<types.configFile.DataSourceConfig>;
|
|
25
21
|
|
|
26
22
|
/**
|
|
27
23
|
* Checks the current connection status of the data source.
|
|
@@ -46,8 +42,9 @@ export interface RouteAPI {
|
|
|
46
42
|
/**
|
|
47
43
|
* @returns The replication lag: that is the amount of data which has not been
|
|
48
44
|
* replicated yet, in bytes.
|
|
45
|
+
* @param {string} syncRulesId An identifier representing which set of sync rules the lag is required for.
|
|
49
46
|
*/
|
|
50
|
-
getReplicationLag(
|
|
47
|
+
getReplicationLag(syncRulesId: string): Promise<number | undefined>;
|
|
51
48
|
|
|
52
49
|
/**
|
|
53
50
|
* Get the current LSN or equivalent replication HEAD position identifier
|
package/src/api/diagnostics.ts
CHANGED
|
@@ -78,9 +78,7 @@ export async function getSyncRulesStatus(
|
|
|
78
78
|
|
|
79
79
|
if (systemStorage) {
|
|
80
80
|
try {
|
|
81
|
-
replication_lag_bytes = await apiHandler.getReplicationLag(
|
|
82
|
-
bucketStorage: systemStorage
|
|
83
|
-
});
|
|
81
|
+
replication_lag_bytes = await apiHandler.getReplicationLag(systemStorage.slot_name);
|
|
84
82
|
} catch (e) {
|
|
85
83
|
// Ignore
|
|
86
84
|
logger.warn(`Unable to get replication lag`, e);
|
package/src/api/schema.ts
CHANGED
|
@@ -16,9 +16,9 @@ export async function getConnectionsSchema(api: api.RouteAPI): Promise<internal_
|
|
|
16
16
|
return {
|
|
17
17
|
connections: [
|
|
18
18
|
{
|
|
19
|
-
|
|
20
|
-
tag: baseConfig.tag
|
|
21
|
-
|
|
19
|
+
schemas: await api.getConnectionSchema(),
|
|
20
|
+
tag: baseConfig.tag!,
|
|
21
|
+
id: baseConfig.id
|
|
22
22
|
}
|
|
23
23
|
],
|
|
24
24
|
defaultConnectionTag: baseConfig.tag!,
|
|
@@ -16,7 +16,7 @@ export abstract class AbstractReplicationJob {
|
|
|
16
16
|
protected isReplicatingPromise: Promise<void> | null = null;
|
|
17
17
|
|
|
18
18
|
protected constructor(protected options: AbstractReplicationJobOptions) {
|
|
19
|
-
this.logger = logger.child({ name: `ReplicationJob: ${
|
|
19
|
+
this.logger = logger.child({ name: `ReplicationJob: ${options.id}` });
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
/**
|
|
@@ -52,7 +52,7 @@ export abstract class AbstractReplicationJob {
|
|
|
52
52
|
* Safely stop the replication process
|
|
53
53
|
*/
|
|
54
54
|
public async stop(): Promise<void> {
|
|
55
|
-
this.logger.info(`Stopping replication job for sync rule iteration: ${this.storage.group_id}`);
|
|
55
|
+
this.logger.info(`Stopping ${this.id} replication job for sync rule iteration: ${this.storage.group_id}`);
|
|
56
56
|
this.abortController.abort();
|
|
57
57
|
await this.isReplicatingPromise;
|
|
58
58
|
}
|
|
@@ -7,18 +7,6 @@ import * as modules from '../modules/modules-index.js';
|
|
|
7
7
|
import * as system from '../system/system-index.js';
|
|
8
8
|
import { schema } from '@powersync/lib-services-framework';
|
|
9
9
|
import { AbstractReplicator } from './AbstractReplicator.js';
|
|
10
|
-
import { TearDownOptions } from '../modules/modules-index.js';
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Provides a common interface for testing the connection to a DataSource.
|
|
14
|
-
*/
|
|
15
|
-
export interface ConnectionTester<TConfig extends DataSourceConfig> {
|
|
16
|
-
/**
|
|
17
|
-
* Confirm if a connection can be established to the datasource for the provided datasource configuration
|
|
18
|
-
* @param config
|
|
19
|
-
*/
|
|
20
|
-
testConnection(config: TConfig): Promise<void>;
|
|
21
|
-
}
|
|
22
10
|
|
|
23
11
|
export interface ReplicationModuleOptions extends modules.AbstractModuleOptions {
|
|
24
12
|
type: string;
|
|
@@ -29,10 +17,7 @@ export interface ReplicationModuleOptions extends modules.AbstractModuleOptions
|
|
|
29
17
|
* A replication module describes all the functionality that PowerSync requires to
|
|
30
18
|
* replicate data from a DataSource. Whenever a new data source is added to powersync this class should be extended.
|
|
31
19
|
*/
|
|
32
|
-
export abstract class ReplicationModule<TConfig extends DataSourceConfig>
|
|
33
|
-
extends modules.AbstractModule
|
|
34
|
-
implements ConnectionTester<TConfig>
|
|
35
|
-
{
|
|
20
|
+
export abstract class ReplicationModule<TConfig extends DataSourceConfig> extends modules.AbstractModule {
|
|
36
21
|
protected type: string;
|
|
37
22
|
protected configSchema: t.AnyCodec;
|
|
38
23
|
protected decodedConfig: TConfig | undefined;
|
|
@@ -58,8 +43,6 @@ export abstract class ReplicationModule<TConfig extends DataSourceConfig>
|
|
|
58
43
|
*/
|
|
59
44
|
protected abstract createReplicator(context: system.ServiceContext): AbstractReplicator;
|
|
60
45
|
|
|
61
|
-
public abstract testConnection(config: TConfig): Promise<void>;
|
|
62
|
-
|
|
63
46
|
/**
|
|
64
47
|
* Register this module's Replicators and RouteAPI adapters if the required configuration is present.
|
|
65
48
|
*/
|
|
@@ -71,7 +54,7 @@ export abstract class ReplicationModule<TConfig extends DataSourceConfig>
|
|
|
71
54
|
|
|
72
55
|
const matchingConfig = context.configuration.connections.filter((dataSource) => dataSource.type === this.type);
|
|
73
56
|
if (!matchingConfig.length) {
|
|
74
|
-
//
|
|
57
|
+
// This module is needed given the config
|
|
75
58
|
return;
|
|
76
59
|
}
|
|
77
60
|
|
|
@@ -83,8 +66,9 @@ export abstract class ReplicationModule<TConfig extends DataSourceConfig>
|
|
|
83
66
|
|
|
84
67
|
try {
|
|
85
68
|
const baseMatchingConfig = matchingConfig[0] as TConfig;
|
|
86
|
-
// If
|
|
87
|
-
this.
|
|
69
|
+
// If validation fails, log the error and continue, no replication will happen for this data source
|
|
70
|
+
this.validateConfig(baseMatchingConfig);
|
|
71
|
+
this.decodedConfig = this.configSchema.decode(baseMatchingConfig);
|
|
88
72
|
|
|
89
73
|
context.replicationEngine?.register(this.createReplicator(context));
|
|
90
74
|
context.routerEngine?.registerAPI(this.createRouteAPIAdapter());
|
|
@@ -93,11 +77,6 @@ export abstract class ReplicationModule<TConfig extends DataSourceConfig>
|
|
|
93
77
|
}
|
|
94
78
|
}
|
|
95
79
|
|
|
96
|
-
protected decodeConfig(config: TConfig): void {
|
|
97
|
-
this.validateConfig(config);
|
|
98
|
-
this.decodedConfig = this.configSchema.decode(config);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
80
|
private validateConfig(config: TConfig): void {
|
|
102
81
|
const validator = schema
|
|
103
82
|
.parseJSONSchema(
|
|
@@ -8,7 +8,7 @@ import { CHECKPOINT_ROUTES } from './endpoints/checkpointing.js';
|
|
|
8
8
|
import { SYNC_RULES_ROUTES } from './endpoints/sync-rules.js';
|
|
9
9
|
import { SYNC_STREAM_ROUTES } from './endpoints/sync-stream.js';
|
|
10
10
|
import { createRequestQueueHook, CreateRequestQueueParams } from './hooks.js';
|
|
11
|
-
import { RouteDefinition
|
|
11
|
+
import { RouteDefinition } from './router.js';
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* A list of route definitions to be registered as endpoints.
|
|
@@ -56,19 +56,6 @@ export const DEFAULT_ROUTE_OPTIONS = {
|
|
|
56
56
|
*/
|
|
57
57
|
export function configureFastifyServer(server: fastify.FastifyInstance, options: FastifyServerConfig) {
|
|
58
58
|
const { service_context, routes = DEFAULT_ROUTE_OPTIONS } = options;
|
|
59
|
-
|
|
60
|
-
const generateContext = async () => {
|
|
61
|
-
const { routerEngine } = service_context;
|
|
62
|
-
if (!routerEngine) {
|
|
63
|
-
throw new Error(`RouterEngine has not been registered`);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
return {
|
|
67
|
-
user_id: undefined,
|
|
68
|
-
service_context: service_context as RouterServiceContext
|
|
69
|
-
};
|
|
70
|
-
};
|
|
71
|
-
|
|
72
59
|
/**
|
|
73
60
|
* Fastify creates an encapsulated context for each `.register` call.
|
|
74
61
|
* Creating a separate context here to separate the concurrency limits for Admin APIs
|
|
@@ -76,7 +63,16 @@ export function configureFastifyServer(server: fastify.FastifyInstance, options:
|
|
|
76
63
|
* https://github.com/fastify/fastify/blob/main/docs/Reference/Encapsulation.md
|
|
77
64
|
*/
|
|
78
65
|
server.register(async function (childContext) {
|
|
79
|
-
registerFastifyRoutes(
|
|
66
|
+
registerFastifyRoutes(
|
|
67
|
+
childContext,
|
|
68
|
+
async () => {
|
|
69
|
+
return {
|
|
70
|
+
user_id: undefined,
|
|
71
|
+
service_context
|
|
72
|
+
};
|
|
73
|
+
},
|
|
74
|
+
routes.api?.routes ?? DEFAULT_ROUTE_OPTIONS.api.routes
|
|
75
|
+
);
|
|
80
76
|
// Limit the active concurrent requests
|
|
81
77
|
childContext.addHook(
|
|
82
78
|
'onRequest',
|
|
@@ -88,7 +84,12 @@ export function configureFastifyServer(server: fastify.FastifyInstance, options:
|
|
|
88
84
|
server.register(async function (childContext) {
|
|
89
85
|
registerFastifyRoutes(
|
|
90
86
|
childContext,
|
|
91
|
-
|
|
87
|
+
async () => {
|
|
88
|
+
return {
|
|
89
|
+
user_id: undefined,
|
|
90
|
+
service_context
|
|
91
|
+
};
|
|
92
|
+
},
|
|
92
93
|
routes.sync_stream?.routes ?? DEFAULT_ROUTE_OPTIONS.sync_stream.routes
|
|
93
94
|
);
|
|
94
95
|
// Limit the active concurrent requests
|
|
@@ -8,7 +8,7 @@ import { ServiceContext } from '../system/ServiceContext.js';
|
|
|
8
8
|
import { generateContext, getTokenFromHeader } from './auth.js';
|
|
9
9
|
import { syncStreamReactive } from './endpoints/socket-route.js';
|
|
10
10
|
import { RSocketContextMeta, SocketRouteGenerator } from './router-socket.js';
|
|
11
|
-
import { Context
|
|
11
|
+
import { Context } from './router.js';
|
|
12
12
|
|
|
13
13
|
export type RSockerRouterConfig = {
|
|
14
14
|
service_context: ServiceContext;
|
|
@@ -36,17 +36,12 @@ export function configureRSocket(router: ReactiveSocketRouter<Context>, options:
|
|
|
36
36
|
if (context?.token_payload == null) {
|
|
37
37
|
throw new errors.AuthorizationError(token_errors ?? 'Authentication required');
|
|
38
38
|
}
|
|
39
|
-
|
|
40
|
-
if (!service_context.routerEngine) {
|
|
41
|
-
throw new Error(`RouterEngine has not been registered`);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
39
|
return {
|
|
45
40
|
token,
|
|
46
41
|
user_agent,
|
|
47
42
|
...context,
|
|
48
43
|
token_errors: token_errors,
|
|
49
|
-
service_context
|
|
44
|
+
service_context
|
|
50
45
|
};
|
|
51
46
|
} else {
|
|
52
47
|
throw new errors.AuthorizationError('No token provided');
|