@powersync/service-module-mongodb 0.0.0-dev-20250214100224 → 0.0.0-dev-20250303114151

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 CHANGED
@@ -1,12 +1,53 @@
1
1
  # @powersync/service-module-mongodb
2
2
 
3
- ## 0.0.0-dev-20250214100224
3
+ ## 0.0.0-dev-20250303114151
4
4
 
5
5
  ### Patch Changes
6
6
 
7
- - 84d03b8: Fix write checkpoint race condition
8
- - Updated dependencies [84d03b8]
9
- - @powersync/service-core@0.0.0-dev-20250214100224
7
+ - 174fe80: Improve intial replication performance for MongoDB by avoiding sessions.
8
+ - @powersync/service-core@0.0.0-dev-20250303114151
9
+
10
+ ## 0.6.1
11
+
12
+ ### Patch Changes
13
+
14
+ - b4fe4ae: Upgrade mongodb and bson packages, removing the need for some workarounds.
15
+ - 88ab679: Keep serving current data when restarting replication due to errors.
16
+ - 2f75fd7: Improve handling of some edge cases which could trigger truncating of synced tables.
17
+ - Updated dependencies [b4fe4ae]
18
+ - Updated dependencies [88ab679]
19
+ - Updated dependencies [2f75fd7]
20
+ - Updated dependencies [346382e]
21
+ - Updated dependencies [9b1868d]
22
+ - @powersync/service-core@1.7.1
23
+ - @powersync/lib-services-framework@0.5.3
24
+ - @powersync/lib-service-mongodb@0.4.3
25
+
26
+ ## 0.6.0
27
+
28
+ ### Minor Changes
29
+
30
+ - 436eee6: Minor optimizations to new checkpoint calulations.
31
+
32
+ ### Patch Changes
33
+
34
+ - 88d4cb3: Fix signed integer overflow issue for int64 values from MongoDB.
35
+ - Updated dependencies [436eee6]
36
+ - Updated dependencies [15283d4]
37
+ - Updated dependencies [88d4cb3]
38
+ - Updated dependencies [f55e36a]
39
+ - @powersync/service-core@1.7.0
40
+ - @powersync/service-sync-rules@0.24.0
41
+ - @powersync/lib-services-framework@0.5.2
42
+ - @powersync/lib-service-mongodb@0.4.2
43
+
44
+ ## 0.5.1
45
+
46
+ ### Patch Changes
47
+
48
+ - ffc8d98: Fix write checkpoint race condition
49
+ - Updated dependencies [ffc8d98]
50
+ - @powersync/service-core@0.18.1
10
51
 
11
52
  ## 0.5.0
12
53
 
@@ -36,6 +36,7 @@ export declare class ChangeStream {
36
36
  get stopped(): boolean;
37
37
  private get usePostImages();
38
38
  private get configurePostImages();
39
+ private get logPrefix();
39
40
  /**
40
41
  * This resolves a pattern, persists the related metadata, and returns
41
42
  * the resulting SourceTables.
@@ -4,7 +4,7 @@ import { Metrics, SaveOperationTag } from '@powersync/service-core';
4
4
  import { MongoLSN } from '../common/MongoLSN.js';
5
5
  import { PostImagesOption } from '../types/types.js';
6
6
  import { escapeRegExp } from '../utils.js';
7
- import { constructAfterRecord, createCheckpoint, getMongoRelation } from './MongoRelation.js';
7
+ import { constructAfterRecord, createCheckpoint, getCacheIdentifier, getMongoRelation } from './MongoRelation.js';
8
8
  import { CHECKPOINTS_COLLECTION } from './replication-utils.js';
9
9
  /**
10
10
  * Thrown when the change stream is not valid anymore, and replication
@@ -52,6 +52,9 @@ export class ChangeStream {
52
52
  get configurePostImages() {
53
53
  return this.connections.options.postImages == PostImagesOption.AUTO_CONFIGURE;
54
54
  }
55
+ get logPrefix() {
56
+ return `[powersync_${this.group_id}]`;
57
+ }
55
58
  /**
56
59
  * This resolves a pattern, persists the related metadata, and returns
57
60
  * the resulting SourceTables.
@@ -79,15 +82,10 @@ export class ChangeStream {
79
82
  }, { nameOnly: false })
80
83
  .toArray();
81
84
  if (!tablePattern.isWildcard && collections.length == 0) {
82
- logger.warn(`Collection ${schema}.${tablePattern.name} not found`);
85
+ logger.warn(`${this.logPrefix} Collection ${schema}.${tablePattern.name} not found`);
83
86
  }
84
87
  for (let collection of collections) {
85
- const table = await this.handleRelation(batch, {
86
- name: collection.name,
87
- schema,
88
- objectId: collection.name,
89
- replicationColumns: [{ name: '_id' }]
90
- },
88
+ const table = await this.handleRelation(batch, getMongoRelation({ db: schema, coll: collection.name }),
91
89
  // This is done as part of the initial setup - snapshot is handled elsewhere
92
90
  { snapshot: false, collectionInfo: collection });
93
91
  result.push(table);
@@ -97,7 +95,7 @@ export class ChangeStream {
97
95
  async initSlot() {
98
96
  const status = await this.storage.getStatus();
99
97
  if (status.snapshot_done && status.checkpoint_lsn) {
100
- logger.info(`Initial replication already done`);
98
+ logger.info(`${this.logPrefix} Initial replication already done`);
101
99
  return { needsInitialSync: false };
102
100
  }
103
101
  return { needsInitialSync: true };
@@ -133,34 +131,24 @@ export class ChangeStream {
133
131
  // Not known where this would happen apart from the above cases
134
132
  throw new ReplicationAssertionError('MongoDB lastWrite timestamp not found.');
135
133
  }
136
- // We previously used {snapshot: true} for the snapshot session.
137
- // While it gives nice consistency guarantees, it fails when the
138
- // snapshot takes longer than 5 minutes, due to minSnapshotHistoryWindowInSeconds
139
- // expiring the snapshot.
140
- const session = await this.client.startSession();
141
- try {
142
- await this.storage.startBatch({ zeroLSN: MongoLSN.ZERO.comparable, defaultSchema: this.defaultDb.databaseName, storeCurrentData: false }, async (batch) => {
143
- // Start by resolving all tables.
144
- // This checks postImage configuration, and that should fail as
145
- // earlier as possible.
146
- let allSourceTables = [];
147
- for (let tablePattern of sourceTables) {
148
- const tables = await this.resolveQualifiedTableNames(batch, tablePattern);
149
- allSourceTables.push(...tables);
150
- }
151
- for (let table of allSourceTables) {
152
- await this.snapshotTable(batch, table, session);
153
- await batch.markSnapshotDone([table], MongoLSN.ZERO.comparable);
154
- await touch();
155
- }
156
- const { comparable: lsn } = new MongoLSN({ timestamp: snapshotTime });
157
- logger.info(`Snapshot commit at ${snapshotTime.inspect()} / ${lsn}`);
158
- await batch.commit(lsn);
159
- });
160
- }
161
- finally {
162
- session.endSession();
163
- }
134
+ await this.storage.startBatch({ zeroLSN: MongoLSN.ZERO.comparable, defaultSchema: this.defaultDb.databaseName, storeCurrentData: false }, async (batch) => {
135
+ // Start by resolving all tables.
136
+ // This checks postImage configuration, and that should fail as
137
+ // earlier as possible.
138
+ let allSourceTables = [];
139
+ for (let tablePattern of sourceTables) {
140
+ const tables = await this.resolveQualifiedTableNames(batch, tablePattern);
141
+ allSourceTables.push(...tables);
142
+ }
143
+ for (let table of allSourceTables) {
144
+ await this.snapshotTable(batch, table);
145
+ await batch.markSnapshotDone([table], MongoLSN.ZERO.comparable);
146
+ await touch();
147
+ }
148
+ const { comparable: lsn } = new MongoLSN({ timestamp: snapshotTime });
149
+ logger.info(`${this.logPrefix} Snapshot commit at ${snapshotTime.inspect()} / ${lsn}`);
150
+ await batch.commit(lsn);
151
+ });
164
152
  }
165
153
  async setupCheckpointsCollection() {
166
154
  const collection = await this.getCollectionInfo(this.defaultDb.databaseName, CHECKPOINTS_COLLECTION);
@@ -213,49 +201,59 @@ export class ChangeStream {
213
201
  yield constructAfterRecord(row);
214
202
  }
215
203
  }
216
- async snapshotTable(batch, table, session) {
217
- logger.info(`Replicating ${table.qualifiedName}`);
204
+ async snapshotTable(batch, table) {
205
+ logger.info(`${this.logPrefix} Replicating ${table.qualifiedName}`);
218
206
  const estimatedCount = await this.estimatedCount(table);
219
207
  let at = 0;
220
- let lastLogIndex = 0;
221
208
  const db = this.client.db(table.schema);
222
209
  const collection = db.collection(table.table);
223
- const query = collection.find({}, { session, readConcern: { level: 'majority' } });
224
- const cursor = query.stream();
225
- for await (let document of cursor) {
226
- if (this.abort_signal.aborted) {
227
- throw new ReplicationAbortedError(`Aborted initial replication`);
228
- }
229
- const record = constructAfterRecord(document);
230
- // This auto-flushes when the batch reaches its size limit
231
- await batch.save({
232
- tag: SaveOperationTag.INSERT,
233
- sourceTable: table,
234
- before: undefined,
235
- beforeReplicaId: undefined,
236
- after: record,
237
- afterReplicaId: document._id
238
- });
239
- at += 1;
240
- if (at - lastLogIndex >= 5000) {
241
- logger.info(`[${this.group_id}] Replicating ${table.qualifiedName} ${at}/${estimatedCount}`);
242
- lastLogIndex = at;
210
+ const cursor = collection.find({}, { batchSize: 6_000, readConcern: 'majority' });
211
+ let lastBatch = performance.now();
212
+ // hasNext() is the call that triggers fetching of the next batch,
213
+ // then we read it with readBufferedDocuments(). This gives us semi-explicit
214
+ // control over the fetching of each batch, and avoids a separate promise per document
215
+ let hasNextPromise = cursor.hasNext();
216
+ while (await hasNextPromise) {
217
+ const docBatch = cursor.readBufferedDocuments();
218
+ // Pre-fetch next batch, so that we can read and write concurrently
219
+ hasNextPromise = cursor.hasNext();
220
+ for (let document of docBatch) {
221
+ if (this.abort_signal.aborted) {
222
+ throw new ReplicationAbortedError(`Aborted initial replication`);
223
+ }
224
+ const record = constructAfterRecord(document);
225
+ // This auto-flushes when the batch reaches its size limit
226
+ await batch.save({
227
+ tag: SaveOperationTag.INSERT,
228
+ sourceTable: table,
229
+ before: undefined,
230
+ beforeReplicaId: undefined,
231
+ after: record,
232
+ afterReplicaId: document._id
233
+ });
243
234
  }
244
- Metrics.getInstance().rows_replicated_total.add(1);
235
+ at += docBatch.length;
236
+ Metrics.getInstance().rows_replicated_total.add(docBatch.length);
237
+ const duration = performance.now() - lastBatch;
238
+ lastBatch = performance.now();
239
+ logger.info(`${this.logPrefix} Replicating ${table.qualifiedName} ${at}/${estimatedCount} in ${duration.toFixed(0)}ms`);
245
240
  await touch();
246
241
  }
242
+ // In case the loop was interrupted, make sure we await the last promise.
243
+ await hasNextPromise;
247
244
  await batch.flush();
248
- logger.info(`Replicated ${at} documents for ${table.qualifiedName}`);
245
+ logger.info(`${this.logPrefix} Replicated ${at} documents for ${table.qualifiedName}`);
249
246
  }
250
- async getRelation(batch, descriptor) {
251
- const existing = this.relation_cache.get(descriptor.objectId);
247
+ async getRelation(batch, descriptor, options) {
248
+ const cacheId = getCacheIdentifier(descriptor);
249
+ const existing = this.relation_cache.get(cacheId);
252
250
  if (existing != null) {
253
251
  return existing;
254
252
  }
255
253
  // Note: collection may have been dropped at this point, so we handle
256
254
  // missing values.
257
255
  const collection = await this.getCollectionInfo(descriptor.schema, descriptor.name);
258
- return this.handleRelation(batch, descriptor, { snapshot: false, collectionInfo: collection });
256
+ return this.handleRelation(batch, descriptor, { snapshot: options.snapshot, collectionInfo: collection });
259
257
  }
260
258
  async getCollectionInfo(db, name) {
261
259
  const collection = (await this.client
@@ -277,7 +275,7 @@ export class ChangeStream {
277
275
  collMod: collectionInfo.name,
278
276
  changeStreamPreAndPostImages: { enabled: true }
279
277
  });
280
- logger.info(`Enabled postImages on ${db}.${collectionInfo.name}`);
278
+ logger.info(`${this.logPrefix} Enabled postImages on ${db}.${collectionInfo.name}`);
281
279
  }
282
280
  else if (!enabled) {
283
281
  throw new ServiceError(ErrorCode.PSYNC_S1343, `postImages not enabled on ${db}.${collectionInfo.name}`);
@@ -292,9 +290,6 @@ export class ChangeStream {
292
290
  // Ignore the postImages check in this case.
293
291
  }
294
292
  const snapshot = options.snapshot;
295
- if (!descriptor.objectId && typeof descriptor.objectId != 'string') {
296
- throw new ReplicationAssertionError('MongoDB replication - objectId expected');
297
- }
298
293
  const result = await this.storage.resolveTable({
299
294
  group_id: this.group_id,
300
295
  connection_id: this.connection_id,
@@ -302,15 +297,20 @@ export class ChangeStream {
302
297
  entity_descriptor: descriptor,
303
298
  sync_rules: this.sync_rules
304
299
  });
305
- this.relation_cache.set(descriptor.objectId, result.table);
306
- // Drop conflicting tables. This includes for example renamed tables.
307
- await batch.drop(result.dropTables);
300
+ this.relation_cache.set(getCacheIdentifier(descriptor), result.table);
301
+ // Drop conflicting collections.
302
+ // This is generally not expected for MongoDB source dbs, so we log an error.
303
+ if (result.dropTables.length > 0) {
304
+ logger.error(`Conflicting collections found for ${JSON.stringify(descriptor)}. Dropping: ${result.dropTables.map((t) => t.id).join(', ')}`);
305
+ await batch.drop(result.dropTables);
306
+ }
308
307
  // Snapshot if:
309
308
  // 1. Snapshot is requested (false for initial snapshot, since that process handles it elsewhere)
310
309
  // 2. Snapshot is not already done, AND:
311
310
  // 3. The table is used in sync rules.
312
311
  const shouldSnapshot = snapshot && !result.table.snapshotComplete && result.table.syncAny;
313
312
  if (shouldSnapshot) {
313
+ logger.info(`${this.logPrefix} New collection: ${descriptor.schema}.${descriptor.name}`);
314
314
  // Truncate this table, in case a previous snapshot was interrupted.
315
315
  await batch.truncate([result.table]);
316
316
  await this.snapshotTable(batch, result.table);
@@ -322,7 +322,7 @@ export class ChangeStream {
322
322
  }
323
323
  async writeChange(batch, table, change) {
324
324
  if (!table.syncAny) {
325
- logger.debug(`Collection ${table.qualifiedName} not used in sync rules - skipping`);
325
+ logger.debug(`${this.logPrefix} Collection ${table.qualifiedName} not used in sync rules - skipping`);
326
326
  return null;
327
327
  }
328
328
  Metrics.getInstance().rows_replicated_total.add(1);
@@ -409,7 +409,7 @@ export class ChangeStream {
409
409
  const lastLsn = lastCheckpointLsn ? MongoLSN.fromSerialized(lastCheckpointLsn) : null;
410
410
  const startAfter = lastLsn?.timestamp;
411
411
  const resumeAfter = lastLsn?.resumeToken;
412
- logger.info(`Resume streaming at ${startAfter?.inspect()} / ${lastLsn}`);
412
+ logger.info(`${this.logPrefix} Resume streaming at ${startAfter?.inspect()} / ${lastLsn}`);
413
413
  const filters = this.getSourceNamespaceFilters();
414
414
  const pipeline = [
415
415
  {
@@ -429,7 +429,6 @@ export class ChangeStream {
429
429
  }
430
430
  const streamOptions = {
431
431
  showExpandedEvents: true,
432
- useBigInt64: true,
433
432
  maxAwaitTimeMS: 200,
434
433
  fullDocument: fullDocument
435
434
  };
@@ -463,6 +462,7 @@ export class ChangeStream {
463
462
  // no data to replicate.
464
463
  let waitForCheckpointLsn = await createCheckpoint(this.client, this.defaultDb);
465
464
  let splitDocument = null;
465
+ let flexDbNameWorkaroundLogged = false;
466
466
  while (true) {
467
467
  if (this.abort_signal.aborted) {
468
468
  break;
@@ -504,6 +504,23 @@ export class ChangeStream {
504
504
  // We were waiting for fragments, but got a different event
505
505
  throw new ReplicationAssertionError(`Incomplete splitEvent: ${JSON.stringify(splitDocument.splitEvent)}`);
506
506
  }
507
+ if (!filters.multipleDatabases &&
508
+ 'ns' in changeDocument &&
509
+ changeDocument.ns.db != this.defaultDb.databaseName &&
510
+ changeDocument.ns.db.endsWith(`_${this.defaultDb.databaseName}`)) {
511
+ // When all of the following conditions are met:
512
+ // 1. We're replicating from an Atlas Flex instance.
513
+ // 2. There were changestream events recorded while the PowerSync service is paused.
514
+ // 3. We're only replicating from a single database.
515
+ // Then we've observed an ns with for example {db: '67b83e86cd20730f1e766dde_ps'},
516
+ // instead of the expected {db: 'ps'}.
517
+ // We correct this.
518
+ changeDocument.ns.db = this.defaultDb.databaseName;
519
+ if (!flexDbNameWorkaroundLogged) {
520
+ flexDbNameWorkaroundLogged = true;
521
+ logger.warn(`${this.logPrefix} Incorrect DB name in change stream: ${changeDocument.ns.db}. Changed to ${this.defaultDb.databaseName}.`);
522
+ }
523
+ }
507
524
  if ((changeDocument.operationType == 'insert' ||
508
525
  changeDocument.operationType == 'update' ||
509
526
  changeDocument.operationType == 'replace' ||
@@ -542,30 +559,46 @@ export class ChangeStream {
542
559
  waitForCheckpointLsn = await createCheckpoint(this.client, this.defaultDb);
543
560
  }
544
561
  const rel = getMongoRelation(changeDocument.ns);
545
- const table = await this.getRelation(batch, rel);
562
+ const table = await this.getRelation(batch, rel, {
563
+ // In most cases, we should not need to snapshot this. But if this is the first time we see the collection
564
+ // for whatever reason, then we do need to snapshot it.
565
+ // This may result in some duplicate operations when a collection is created for the first time after
566
+ // sync rules was deployed.
567
+ snapshot: true
568
+ });
546
569
  if (table.syncAny) {
547
570
  await this.writeChange(batch, table, changeDocument);
548
571
  }
549
572
  }
550
573
  else if (changeDocument.operationType == 'drop') {
551
574
  const rel = getMongoRelation(changeDocument.ns);
552
- const table = await this.getRelation(batch, rel);
575
+ const table = await this.getRelation(batch, rel, {
576
+ // We're "dropping" this collection, so never snapshot it.
577
+ snapshot: false
578
+ });
553
579
  if (table.syncAny) {
554
580
  await batch.drop([table]);
555
- this.relation_cache.delete(table.objectId);
581
+ this.relation_cache.delete(getCacheIdentifier(rel));
556
582
  }
557
583
  }
558
584
  else if (changeDocument.operationType == 'rename') {
559
585
  const relFrom = getMongoRelation(changeDocument.ns);
560
586
  const relTo = getMongoRelation(changeDocument.to);
561
- const tableFrom = await this.getRelation(batch, relFrom);
587
+ const tableFrom = await this.getRelation(batch, relFrom, {
588
+ // We're "dropping" this collection, so never snapshot it.
589
+ snapshot: false
590
+ });
562
591
  if (tableFrom.syncAny) {
563
592
  await batch.drop([tableFrom]);
564
- this.relation_cache.delete(tableFrom.objectId);
593
+ this.relation_cache.delete(getCacheIdentifier(relFrom));
565
594
  }
566
595
  // Here we do need to snapshot the new table
567
596
  const collection = await this.getCollectionInfo(relTo.schema, relTo.name);
568
- await this.handleRelation(batch, relTo, { snapshot: true, collectionInfo: collection });
597
+ await this.handleRelation(batch, relTo, {
598
+ // This is a new (renamed) collection, so always snapshot it.
599
+ snapshot: true,
600
+ collectionInfo: collection
601
+ });
569
602
  }
570
603
  }
571
604
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ChangeStream.js","sourceRoot":"","sources":["../../src/replication/ChangeStream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChangeStream.js","sourceRoot":"","sources":["../../src/replication/ChangeStream.ts"],"names":[],"mappings":"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"}
@@ -28,8 +28,8 @@ export class ChangeStreamReplicationJob extends replication.AbstractReplicationJ
28
28
  });
29
29
  this.logger.error(`Replication failed`, e);
30
30
  if (e instanceof ChangeStreamInvalidatedError) {
31
- // This stops replication on this slot, and creates a new slot
32
- await this.options.storage.factory.slotRemoved(this.slotName);
31
+ // This stops replication and restarts with a new instance
32
+ await this.options.storage.factory.restartReplication(this.storage.group_id);
33
33
  }
34
34
  }
35
35
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"ChangeStreamReplicationJob.js","sourceRoot":"","sources":["../../src/replication/ChangeStreamReplicationJob.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChangeStreamReplicationJob.js","sourceRoot":"","sources":["../../src/replication/ChangeStreamReplicationJob.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,6 @@ import { mongo } from '@powersync/lib-service-mongodb';
2
2
  import { NormalizedMongoConnectionConfig } from '../types/types.js';
3
3
  export declare class MongoManager {
4
4
  options: NormalizedMongoConnectionConfig;
5
- /**
6
- * Do not use this for any transactions.
7
- */
8
5
  readonly client: mongo.MongoClient;
9
6
  readonly db: mongo.Db;
10
7
  constructor(options: NormalizedMongoConnectionConfig, overrides?: mongo.MongoClientOptions);
@@ -1,9 +1,7 @@
1
1
  import { mongo } from '@powersync/lib-service-mongodb';
2
+ import { BSON_DESERIALIZE_DATA_OPTIONS } from '@powersync/service-core';
2
3
  export class MongoManager {
3
4
  options;
4
- /**
5
- * Do not use this for any transactions.
6
- */
7
5
  client;
8
6
  db;
9
7
  constructor(options, overrides) {
@@ -27,6 +25,7 @@ export class MongoManager {
27
25
  maxPoolSize: 8,
28
26
  maxConnecting: 3,
29
27
  maxIdleTimeMS: 60_000,
28
+ ...BSON_DESERIALIZE_DATA_OPTIONS,
30
29
  ...overrides
31
30
  });
32
31
  this.db = this.client.db(options.database, {});
@@ -1 +1 @@
1
- {"version":3,"file":"MongoManager.js","sourceRoot":"","sources":["../../src/replication/MongoManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAIvD,MAAM,OAAO,YAAY;IAQd;IAPT;;OAEG;IACa,MAAM,CAAoB;IAC1B,EAAE,CAAW;IAE7B,YACS,OAAwC,EAC/C,SAAoC;QAD7B,YAAO,GAAP,OAAO,CAAiC;QAG/C,2EAA2E;QAC3E,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE;YAC/C,IAAI,EAAE;gBACJ,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC3B;YAED,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,iCAAiC;YACjC,gBAAgB,EAAE,KAAK;YACvB,0CAA0C;YAC1C,eAAe,EAAE,MAAM;YACvB,6CAA6C;YAC7C,wBAAwB,EAAE,MAAM;YAEhC,8BAA8B;YAC9B,2CAA2C;YAC3C,yFAAyF;YACzF,WAAW,EAAE,CAAC;YAEd,aAAa,EAAE,CAAC;YAChB,aAAa,EAAE,MAAM;YACrB,GAAG,SAAS;SACb,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,IAAW,aAAa;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,OAAO;QACX,mBAAmB;IACrB,CAAC;CACF"}
1
+ {"version":3,"file":"MongoManager.js","sourceRoot":"","sources":["../../src/replication/MongoManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAGvD,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAExE,MAAM,OAAO,YAAY;IAKd;IAJO,MAAM,CAAoB;IAC1B,EAAE,CAAW;IAE7B,YACS,OAAwC,EAC/C,SAAoC;QAD7B,YAAO,GAAP,OAAO,CAAiC;QAG/C,2EAA2E;QAC3E,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE;YAC/C,IAAI,EAAE;gBACJ,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC3B;YAED,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,iCAAiC;YACjC,gBAAgB,EAAE,KAAK;YACvB,0CAA0C;YAC1C,eAAe,EAAE,MAAM;YACvB,6CAA6C;YAC7C,wBAAwB,EAAE,MAAM;YAEhC,8BAA8B;YAC9B,2CAA2C;YAC3C,yFAAyF;YACzF,WAAW,EAAE,CAAC;YAEd,aAAa,EAAE,CAAC;YAChB,aAAa,EAAE,MAAM;YAErB,GAAG,6BAA6B;YAEhC,GAAG,SAAS;SACb,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,IAAW,aAAa;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,OAAO;QACX,mBAAmB;IACrB,CAAC;CACF"}
@@ -2,6 +2,10 @@ import { mongo } from '@powersync/lib-service-mongodb';
2
2
  import { storage } from '@powersync/service-core';
3
3
  import { SqliteRow, SqliteValue } from '@powersync/service-sync-rules';
4
4
  export declare function getMongoRelation(source: mongo.ChangeStreamNameSpace): storage.SourceEntityDescriptor;
5
+ /**
6
+ * For in-memory cache only.
7
+ */
8
+ export declare function getCacheIdentifier(source: storage.SourceEntityDescriptor): string;
5
9
  export declare function constructAfterRecord(document: mongo.Document): SqliteRow;
6
10
  export declare function toMongoSyncRulesValue(data: any): SqliteValue;
7
11
  export declare function createCheckpoint(client: mongo.MongoClient, db: mongo.Db): Promise<string>;
@@ -7,10 +7,17 @@ export function getMongoRelation(source) {
7
7
  return {
8
8
  name: source.coll,
9
9
  schema: source.db,
10
- objectId: source.coll,
10
+ // Not relevant for MongoDB - we use db + coll name as the identifier
11
+ objectId: undefined,
11
12
  replicationColumns: [{ name: '_id' }]
12
13
  };
13
14
  }
15
+ /**
16
+ * For in-memory cache only.
17
+ */
18
+ export function getCacheIdentifier(source) {
19
+ return `${source.schema}.${source.name}`;
20
+ }
14
21
  export function constructAfterRecord(document) {
15
22
  let record = {};
16
23
  for (let key of Object.keys(document)) {
@@ -1 +1 @@
1
- {"version":3,"file":"MongoRelation.js","sourceRoot":"","sources":["../../src/replication/MongoRelation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MongoRelation.js","sourceRoot":"","sources":["../../src/replication/MongoRelation.ts"],"names":[],"mappings":"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"}