@powersync/service-module-mongodb 0.0.0-dev-20260803144812 → 0.0.0-dev-20260929095716

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.
Files changed (105) hide show
  1. package/CHANGELOG.md +95 -7
  2. package/ci/test-connection.yaml +12 -0
  3. package/dist/api/MongoRouteAPIAdapter.d.ts +2 -2
  4. package/dist/api/MongoRouteAPIAdapter.js +73 -143
  5. package/dist/api/MongoRouteAPIAdapter.js.map +1 -1
  6. package/dist/api/infer-collection-schema.d.ts +12 -0
  7. package/dist/api/infer-collection-schema.js +142 -0
  8. package/dist/api/infer-collection-schema.js.map +1 -0
  9. package/dist/index.d.ts +1 -0
  10. package/dist/index.js +1 -0
  11. package/dist/index.js.map +1 -1
  12. package/dist/module/MongoModule.d.ts +1 -2
  13. package/dist/module/MongoModule.js +2 -2
  14. package/dist/module/MongoModule.js.map +1 -1
  15. package/dist/replication/ChangeStream.d.ts +18 -2
  16. package/dist/replication/ChangeStream.js +275 -307
  17. package/dist/replication/ChangeStream.js.map +1 -1
  18. package/dist/replication/ChangeStreamReplicationJob.d.ts +4 -1
  19. package/dist/replication/ChangeStreamReplicationJob.js +6 -2
  20. package/dist/replication/ChangeStreamReplicationJob.js.map +1 -1
  21. package/dist/replication/ChangeStreamReplicator.d.ts +3 -0
  22. package/dist/replication/ChangeStreamReplicator.js +3 -0
  23. package/dist/replication/ChangeStreamReplicator.js.map +1 -1
  24. package/dist/replication/MongoRelation.js +5 -2
  25. package/dist/replication/MongoRelation.js.map +1 -1
  26. package/dist/replication/MongoReplicationQueryProvider.d.ts +87 -0
  27. package/dist/replication/MongoReplicationQueryProvider.js +23 -0
  28. package/dist/replication/MongoReplicationQueryProvider.js.map +1 -0
  29. package/dist/replication/MongoReplicationStream.d.ts +85 -0
  30. package/dist/replication/MongoReplicationStream.js +101 -0
  31. package/dist/replication/MongoReplicationStream.js.map +1 -0
  32. package/dist/replication/MongoSnapshotQuery.d.ts +2 -0
  33. package/dist/replication/MongoSnapshotQuery.js +12 -2
  34. package/dist/replication/MongoSnapshotQuery.js.map +1 -1
  35. package/dist/replication/MongoSnapshotter.d.ts +7 -2
  36. package/dist/replication/MongoSnapshotter.js +64 -91
  37. package/dist/replication/MongoSnapshotter.js.map +1 -1
  38. package/dist/replication/RawChangeStream.d.ts +4 -12
  39. package/dist/replication/RawChangeStream.js +1 -18
  40. package/dist/replication/RawChangeStream.js.map +1 -1
  41. package/dist/replication/SourceRowConverter.d.ts +1 -0
  42. package/dist/replication/SourceRowConverter.js +4 -2
  43. package/dist/replication/SourceRowConverter.js.map +1 -1
  44. package/dist/replication/bufferToSqlite.d.ts +3 -1
  45. package/dist/replication/bufferToSqlite.js +35 -23
  46. package/dist/replication/bufferToSqlite.js.map +1 -1
  47. package/dist/replication/checkpoints/CheckpointImplementation.d.ts +4 -1
  48. package/dist/replication/checkpoints/SentinelCheckpointImplementation.d.ts +4 -1
  49. package/dist/replication/checkpoints/SentinelCheckpointImplementation.js +1 -1
  50. package/dist/replication/checkpoints/SentinelCheckpointImplementation.js.map +1 -1
  51. package/dist/replication/checkpoints/TimestampCheckpointImplementation.d.ts +4 -1
  52. package/dist/replication/checkpoints/TimestampCheckpointImplementation.js +2 -1
  53. package/dist/replication/checkpoints/TimestampCheckpointImplementation.js.map +1 -1
  54. package/dist/replication/replication-index.d.ts +6 -0
  55. package/dist/replication/replication-index.js +6 -0
  56. package/dist/replication/replication-index.js.map +1 -1
  57. package/dist/test-utils/ChangeStreamTestContext.d.ts +131 -0
  58. package/dist/test-utils/ChangeStreamTestContext.js +391 -0
  59. package/dist/test-utils/ChangeStreamTestContext.js.map +1 -0
  60. package/dist/test-utils/test-utils-index.d.ts +1 -0
  61. package/dist/test-utils/test-utils-index.js +2 -0
  62. package/dist/test-utils/test-utils-index.js.map +1 -0
  63. package/dist/types/types.d.ts +5 -0
  64. package/dist/types/types.js +20 -2
  65. package/dist/types/types.js.map +1 -1
  66. package/package.json +9 -9
  67. package/src/api/MongoRouteAPIAdapter.ts +79 -127
  68. package/src/api/infer-collection-schema.ts +153 -0
  69. package/src/index.ts +1 -0
  70. package/src/module/MongoModule.ts +3 -4
  71. package/src/replication/ChangeStream.ts +303 -350
  72. package/src/replication/ChangeStreamReplicationJob.ts +9 -3
  73. package/src/replication/ChangeStreamReplicator.ts +5 -0
  74. package/src/replication/MongoRelation.ts +8 -1
  75. package/src/replication/MongoReplicationQueryProvider.ts +108 -0
  76. package/src/replication/MongoReplicationStream.ts +201 -0
  77. package/src/replication/MongoSnapshotQuery.ts +19 -3
  78. package/src/replication/MongoSnapshotter.ts +76 -98
  79. package/src/replication/RawChangeStream.ts +5 -32
  80. package/src/replication/SourceRowConverter.ts +4 -2
  81. package/src/replication/bufferToSqlite.ts +43 -23
  82. package/src/replication/checkpoints/CheckpointImplementation.ts +1 -1
  83. package/src/replication/checkpoints/SentinelCheckpointImplementation.ts +2 -2
  84. package/src/replication/checkpoints/TimestampCheckpointImplementation.ts +3 -2
  85. package/src/replication/replication-index.ts +6 -0
  86. package/src/test-utils/ChangeStreamTestContext.ts +520 -0
  87. package/src/test-utils/test-utils-index.ts +1 -0
  88. package/src/types/types.ts +27 -2
  89. package/test/src/buffer_to_sqlite.test.ts +9 -0
  90. package/test/src/change_stream.test.ts +76 -3
  91. package/test/src/change_stream_test_setup.ts +38 -0
  92. package/test/src/chunked_snapshot.test.ts +3 -3
  93. package/test/src/config.test.ts +34 -0
  94. package/test/src/documentdb_mode.test.ts +4 -5
  95. package/test/src/raw_change_stream.test.ts +0 -63
  96. package/test/src/replication_stream.test.ts +311 -0
  97. package/test/src/resume.test.ts +10 -4
  98. package/test/src/resuming_snapshots.test.ts +3 -3
  99. package/test/src/schema.test.ts +223 -0
  100. package/test/src/slow_tests.test.ts +3 -3
  101. package/test/src/snapshot_query_provider.test.ts +95 -0
  102. package/test/src/stream_progress.test.ts +312 -0
  103. package/test/src/util.ts +11 -29
  104. package/tsconfig.tsbuildinfo +1 -1
  105. package/test/src/change_stream_utils.ts +0 -375
@@ -13,11 +13,13 @@ export class ChunkedSnapshotQuery {
13
13
  lastCursor = null;
14
14
  collection;
15
15
  batchSize;
16
+ filter;
16
17
  constructor(options) {
17
18
  this.lastKey = options.key ? bson.deserialize(options.key, { useBigInt64: true })._id : null;
18
19
  this.lastCursor = null;
19
20
  this.collection = options.collection;
20
21
  this.batchSize = options.batchSize;
22
+ this.filter = options.filter ?? null;
21
23
  }
22
24
  async nextChunk() {
23
25
  let cursor = this.lastCursor;
@@ -33,7 +35,12 @@ export class ChunkedSnapshotQuery {
33
35
  // any parsing as an operator.
34
36
  // Starting in MongoDB 5.0, this filter can use the _id index. Source:
35
37
  // https://www.mongodb.com/docs/manual/release-notes/5.0/#general-aggregation-improvements
36
- const filter = this.lastKey == null ? {} : { $expr: { $gt: ['$_id', { $literal: this.lastKey }] } };
38
+ const continuationFilter = this.lastKey == null ? {} : { $expr: { $gt: ['$_id', { $literal: this.lastKey }] } };
39
+ const filter = this.filter == null
40
+ ? continuationFilter
41
+ : this.lastKey == null
42
+ ? this.filter
43
+ : { $and: [this.filter, continuationFilter] };
37
44
  cursor = this.collection.find(filter, {
38
45
  readConcern: 'majority',
39
46
  limit: this.batchSize,
@@ -41,7 +48,10 @@ export class ChunkedSnapshotQuery {
41
48
  // See https://github.com/mongodb/node-mongodb-native/pull/4580
42
49
  batchSize: this.batchSize + 1,
43
50
  sort: { _id: 1 },
44
- raw: true
51
+ raw: true,
52
+ // Replication predicates have stable binary semantics independent of a
53
+ // collection's default collation.
54
+ ...(this.filter == null ? {} : { collation: { locale: 'simple' } })
45
55
  });
46
56
  newCursor = true;
47
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MongoSnapshotQuery.js","sourceRoot":"","sources":["../../src/replication/MongoSnapshotQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MongoSnapshotQuery.js","sourceRoot":"","sources":["../../src/replication/MongoSnapshotQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE;;;;;GAKG;AACH,MAAM,OAAO,oBAAoB;IAC/B,OAAO,GAAQ,IAAI,CAAC;IACZ,UAAU,GAA4B,IAAI,CAAC;IAC3C,UAAU,CAAmB;IAC7B,SAAS,CAAS;IACT,MAAM,CAAsC;IAE7D,YAAmB,OAKlB;QACC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7F,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,SAAS;QAGb,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;QAC7B,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACpC,sFAAsF;YACtF,wGAAwG;YACxG,yGAAyG;YACzG,sCAAsC;YACtC,oBAAoB;YACpB,kGAAkG;YAClG,0GAA0G;YAC1G,8BAA8B;YAC9B,sEAAsE;YACtE,0FAA0F;YAC1F,MAAM,kBAAkB,GACtB,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YACvF,MAAM,MAAM,GACV,IAAI,CAAC,MAAM,IAAI,IAAI;gBACjB,CAAC,CAAC,kBAAkB;gBACpB,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI;oBACpB,CAAC,CAAC,IAAI,CAAC,MAAM;oBACb,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,CAAC;YACpD,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE;gBACpC,WAAW,EAAE,UAAU;gBACvB,KAAK,EAAE,IAAI,CAAC,SAAS;gBACrB,2DAA2D;gBAC3D,+DAA+D;gBAC/D,SAAS,EAAE,IAAI,CAAC,SAAS,GAAG,CAAC;gBAC7B,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;gBAChB,GAAG,EAAE,IAAI;gBACT,uEAAuE;gBACvE,kCAAkC;gBAClC,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;aACpE,CAAC,CAAC;YACH,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACvC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,SAAS,EAAE,CAAC;gBACd,8FAA8F;gBAC9F,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,kDAAkD;gBAClD,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,qBAAqB,EAAc,CAAC;QAC5D,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QACzB,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,yBAAyB,CAAC,yEAAyE,CAAC,CAAC;QACjH,CAAC;QACD,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC9C,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;QACzB,MAAM,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC;IACjC,CAAC;CACF"}
@@ -2,6 +2,7 @@ import { mongo } from '@powersync/lib-service-mongodb';
2
2
  import { Logger } from '@powersync/lib-services-framework';
3
3
  import { MetricsEngine, SourceTable, storage } from '@powersync/service-core';
4
4
  import { MongoManager } from './MongoManager.js';
5
+ import { MongoReplicationQueryProvider } from './MongoReplicationQueryProvider.js';
5
6
  export interface MongoSnapshotterOptions {
6
7
  connections: MongoManager;
7
8
  storage: storage.SyncRulesBucketStorage;
@@ -13,6 +14,7 @@ export interface MongoSnapshotterOptions {
13
14
  checkpointStreamId: mongo.ObjectId;
14
15
  storageHooks?: storage.StorageHooks;
15
16
  snapshotHooks?: MongoSnapshotterHooks;
17
+ queryProvider?: MongoReplicationQueryProvider;
16
18
  }
17
19
  export interface MongoSnapshotterHooks {
18
20
  beforeSnapshotStarted?: (table: SourceTable) => Promise<void>;
@@ -29,6 +31,7 @@ export declare class MongoSnapshotter {
29
31
  private readonly defaultDb;
30
32
  private readonly syncRules;
31
33
  private readonly sourceRowConverter;
34
+ private readonly queryProvider;
32
35
  private readonly maxAwaitTimeMS;
33
36
  private readonly snapshotChunkLength;
34
37
  private readonly abortSignal;
@@ -48,7 +51,9 @@ export declare class MongoSnapshotter {
48
51
  private get usePostImages();
49
52
  private get configurePostImages();
50
53
  get supportsConcurrentSnapshots(): boolean;
51
- /** The active checkpoint strategy. Only valid after ensureDetected(). */
54
+ /**
55
+ * The active checkpoint strategy. Only valid after ensureDetected().
56
+ */
52
57
  private get checkpointImplementation();
53
58
  /**
54
59
  * Detect DocumentDB and select the checkpoint implementation. Idempotent.
@@ -83,7 +88,7 @@ export declare class MongoSnapshotter {
83
88
  */
84
89
  private validateSnapshotLsn;
85
90
  private getSourceNamespaceFilters;
86
- private rawChangeStreamBatches;
91
+ private openChangeStream;
87
92
  private touch;
88
93
  }
89
94
  export {};
@@ -7,8 +7,9 @@ import { PostImagesOption } from '../types/types.js';
7
7
  import { escapeRegExp } from '../utils.js';
8
8
  import { createCheckpointImplementation } from './checkpoints/create-checkpoint-implementation.js';
9
9
  import { getMongoRelation } from './MongoRelation.js';
10
+ import { DEFAULT_MONGO_REPLICATION_QUERY_PROVIDER } from './MongoReplicationQueryProvider.js';
11
+ import { openMongoReplicationStream } from './MongoReplicationStream.js';
10
12
  import { ChunkedSnapshotQuery } from './MongoSnapshotQuery.js';
11
- import { parseChangeDocument, rawChangeStream } from './RawChangeStream.js';
12
13
  import { CHECKPOINTS_COLLECTION, detectDocumentDb } from './replication-utils.js';
13
14
  import { DirectSourceRowConverter } from './SourceRowConverter.js';
14
15
  export class MongoSnapshotter {
@@ -19,6 +20,7 @@ export class MongoSnapshotter {
19
20
  defaultDb;
20
21
  syncRules;
21
22
  sourceRowConverter;
23
+ queryProvider;
22
24
  maxAwaitTimeMS;
23
25
  snapshotChunkLength;
24
26
  abortSignal;
@@ -47,6 +49,7 @@ export class MongoSnapshotter {
47
49
  this.checkpointStreamId = options.checkpointStreamId;
48
50
  this.storageHooks = options.storageHooks;
49
51
  this.snapshotHooks = options.snapshotHooks;
52
+ this.queryProvider = options.queryProvider ?? DEFAULT_MONGO_REPLICATION_QUERY_PROVIDER;
50
53
  this.changeStreamTimeout = Math.ceil(this.client.options.socketTimeoutMS * 0.9);
51
54
  this.syncRules = options.storage.getParsedSyncRules({
52
55
  defaultSchema: this.defaultDb.databaseName
@@ -67,7 +70,9 @@ export class MongoSnapshotter {
67
70
  get supportsConcurrentSnapshots() {
68
71
  return this.storage.storageConfig.softDeleteCurrentData;
69
72
  }
70
- /** The active checkpoint strategy. Only valid after ensureDetected(). */
73
+ /**
74
+ * The active checkpoint strategy. Only valid after ensureDetected().
75
+ */
71
76
  get checkpointImplementation() {
72
77
  if (this._checkpointImplementation == null) {
73
78
  throw new ServiceError(ErrorCode.PSYNC_S1301, 'Checkpoint implementation not initialized - call ensureDetected() first');
@@ -92,6 +97,7 @@ export class MongoSnapshotter {
92
97
  throw new ServiceError(ErrorCode.PSYNC_S1342, 'Standalone MongoDB instances are not supported - use a replicaset.');
93
98
  }
94
99
  }
100
+ await this.queryProvider.validateSource?.({ connectionManager: this.connections, isDocumentDb: this.isDocumentDb });
95
101
  this._checkpointImplementation = createCheckpointImplementation(this.isDocumentDb, {
96
102
  client: this.client,
97
103
  db: this.defaultDb,
@@ -150,6 +156,7 @@ export class MongoSnapshotter {
150
156
  defaultSchema: this.defaultDb.databaseName,
151
157
  storeCurrentData: false,
152
158
  skipExistingRows: true,
159
+ signal: this.abortSignal,
153
160
  tracer: new PerformanceTracer('MongoDB initial snapshot setup')
154
161
  });
155
162
  if (snapshotLsn == null) {
@@ -180,7 +187,7 @@ export class MongoSnapshotter {
180
187
  totalEstimatedCount: count
181
188
  });
182
189
  this.queueTable(updated);
183
- this.logger.info(`To replicate: ${updated.qualifiedName}: ${updated.snapshotStatus?.replicatedCount}/~${updated.snapshotStatus?.totalEstimatedCount}`);
190
+ this.logger.info(`To replicate: ${updated.qualifiedName} ${updated.formatSnapshotProgress()}`);
184
191
  }
185
192
  }
186
193
  async waitForInitialSnapshot() {
@@ -273,10 +280,10 @@ export class MongoSnapshotter {
273
280
  if (status.snapshotDone) {
274
281
  return;
275
282
  }
276
- // Populate the cache _after_ initial replication, but _before_ we switch to this replication stream.
283
+ // Compact storage _after_ initial replication, but _before_ we switch to this replication stream.
277
284
  // Keeping snapshot_done false until this completes makes this resumable after interruption.
278
285
  // No checkpoint exists yet - storage defaults to its highest persisted op id.
279
- await this.storage.populatePersistentChecksumCache({
286
+ await this.storage.compactInitialReplication({
280
287
  signal: this.abortSignal
281
288
  });
282
289
  if (this.queue.size != 0) {
@@ -287,7 +294,8 @@ export class MongoSnapshotter {
287
294
  zeroLSN: MongoLSN.ZERO.comparable,
288
295
  defaultSchema: this.defaultDb.databaseName,
289
296
  storeCurrentData: false,
290
- skipExistingRows: true
297
+ skipExistingRows: true,
298
+ signal: this.abortSignal
291
299
  });
292
300
  // The checkpoint here is a marker - we need to replicate up to at least this
293
301
  // point before the data can be considered consistent.
@@ -313,6 +321,7 @@ export class MongoSnapshotter {
313
321
  storeCurrentData: false,
314
322
  skipExistingRows: true,
315
323
  hooks: this.storageHooks,
324
+ signal: this.abortSignal,
316
325
  tracer: new PerformanceTracer('MongoDB snapshot table')
317
326
  });
318
327
  // Get fresh table info, in case it was updated while queuing.
@@ -361,13 +370,15 @@ export class MongoSnapshotter {
361
370
  const rowsReplicatedMetric = this.metrics.getCounter(ReplicationMetric.ROWS_REPLICATED);
362
371
  const bytesReplicatedMetric = this.metrics.getCounter(ReplicationMetric.DATA_REPLICATED_BYTES);
363
372
  const chunksReplicatedMetric = this.metrics.getCounter(ReplicationMetric.CHUNKS_REPLICATED);
364
- const totalEstimatedCount = await this.estimatedCountNumber(table);
373
+ const filter = this.queryProvider.getSnapshotFilter(table);
374
+ const totalEstimatedCount = await this.estimatedCountNumber(table, filter);
365
375
  let at = table.snapshotStatus?.replicatedCount ?? 0;
366
376
  const collection = this.client.db(table.schema).collection(table.name);
367
377
  await using query = new ChunkedSnapshotQuery({
368
378
  collection,
369
379
  key: table.snapshotStatus?.lastKey,
370
- batchSize: this.snapshotChunkLength
380
+ batchSize: this.snapshotChunkLength,
381
+ filter
371
382
  });
372
383
  if (query.lastKey != null) {
373
384
  this.logger.info(`Replicating ${table.qualifiedName} ${table.formatSnapshotProgress()} - resuming at _id > ${query.lastKey}`);
@@ -442,7 +453,12 @@ export class MongoSnapshotter {
442
453
  }
443
454
  return result.tables;
444
455
  }
445
- async estimatedCountNumber(table) {
456
+ async estimatedCountNumber(table, filter = this.queryProvider.getSnapshotFilter(table)) {
457
+ // Collection metadata cannot estimate a filtered result. An exact count could require another
458
+ // expensive scan, so use the shared unknown-total sentinel and report only the replicated count.
459
+ if (filter != null) {
460
+ return -1;
461
+ }
446
462
  return await this.client.db(table.schema).collection(table.name).estimatedDocumentCount();
447
463
  }
448
464
  async getCollectionInfo(db, name) {
@@ -487,7 +503,7 @@ export class MongoSnapshotter {
487
503
  this.checkpointImplementation.seedPosition(null);
488
504
  const startStreamFromLsn = await this.checkpointImplementation.createFirstBarrier();
489
505
  const filters = this.getSourceNamespaceFilters();
490
- const iter = this.rawChangeStreamBatches({
506
+ const iter = this.openChangeStream({
491
507
  lsn: startStreamFromLsn,
492
508
  maxAwaitTimeMS: 0,
493
509
  signal: this.abortSignal,
@@ -497,7 +513,7 @@ export class MongoSnapshotter {
497
513
  let lastCheckpointCreated = performance.now();
498
514
  let eventsSeen = 0;
499
515
  let batchesSeen = 0;
500
- for await (const { events } of iter) {
516
+ for await (const item of iter) {
501
517
  if (performance.now() - startTime >= LSN_TIMEOUT_SECONDS * 1000) {
502
518
  break;
503
519
  }
@@ -505,23 +521,24 @@ export class MongoSnapshotter {
505
521
  await this.checkpointImplementation.createBatchCheckpoint();
506
522
  lastCheckpointCreated = performance.now();
507
523
  }
508
- batchesSeen += 1;
509
- for (const rawChangeDocument of events) {
510
- const changeDocument = parseChangeDocument(rawChangeDocument);
511
- const ns = 'ns' in changeDocument && 'coll' in changeDocument.ns ? changeDocument.ns : undefined;
512
- if (ns?.coll == CHECKPOINTS_COLLECTION && 'documentKey' in changeDocument) {
513
- const kind = this.checkpointImplementation.event.observe(changeDocument);
514
- if (kind != 'own-barrier') {
515
- // Standalone events still feed the implementation's coordinate via
516
- // event.observe above; we only resolve on our own barrier.
517
- continue;
518
- }
519
- // Observing our own barrier has set the coordinate (the barrier event
520
- // carries the sentinel counter directly), so the LSN is ready.
521
- return this.checkpointImplementation.event.lsn(changeDocument);
524
+ if (item.type == 'progress') {
525
+ batchesSeen += 1;
526
+ continue;
527
+ }
528
+ const changeDocument = item.event;
529
+ const ns = 'ns' in changeDocument && 'coll' in changeDocument.ns ? changeDocument.ns : undefined;
530
+ if (ns?.coll == CHECKPOINTS_COLLECTION && 'documentKey' in changeDocument) {
531
+ const kind = this.checkpointImplementation.event.observe(changeDocument);
532
+ if (kind != 'own-barrier') {
533
+ // Standalone events still feed the implementation's coordinate via
534
+ // event.observe above; we only resolve on our own barrier.
535
+ continue;
522
536
  }
523
- eventsSeen += 1;
537
+ // Observing our own barrier has set the coordinate (the barrier event
538
+ // carries the sentinel counter directly), so the LSN is ready.
539
+ return this.checkpointImplementation.event.lsn(changeDocument);
524
540
  }
541
+ eventsSeen += 1;
525
542
  }
526
543
  // Could happen if there is a very large replication lag?
527
544
  throw new ServiceError(ErrorCode.PSYNC_S1301, `Timeout after while waiting for checkpoint document for ${LSN_TIMEOUT_SECONDS}s. Streamed events = ${eventsSeen}, batches = ${batchesSeen}`);
@@ -530,12 +547,13 @@ export class MongoSnapshotter {
530
547
  * Given a snapshot LSN, validate that we can read from it, by opening a change stream.
531
548
  */
532
549
  async validateSnapshotLsn(lsn) {
533
- const stream = this.rawChangeStreamBatches({
550
+ const stream = this.openChangeStream({
534
551
  lsn,
535
552
  maxAwaitTimeMS: 0,
536
- filters: this.getSourceNamespaceFilters()
553
+ filters: this.getSourceNamespaceFilters(),
554
+ signal: this.abortSignal
537
555
  });
538
- for await (const _batch of stream) {
556
+ for await (const _item of stream) {
539
557
  break;
540
558
  }
541
559
  }
@@ -579,68 +597,23 @@ export class MongoSnapshotter {
579
597
  }
580
598
  return { $match: nsFilter, multipleDatabases };
581
599
  }
582
- rawChangeStreamBatches(options) {
583
- const position = options.lsn ? this.checkpointImplementation.parseResumePosition(options.lsn) : null;
584
- const startAfter = position?.startAfter ?? undefined;
585
- const resumeAfter = position?.resumeAfter ?? undefined;
586
- let fullDocument;
587
- if (this.isDocumentDb) {
588
- // DocumentDB does not support changeStreamPreAndPostImages, so 'required' won't work.
589
- fullDocument = 'updateLookup';
590
- }
591
- else if (this.usePostImages) {
592
- // 'read_only' or 'auto_configure'
593
- // Configuration happens during snapshot, or when we see new
594
- // collections.
595
- fullDocument = 'required';
596
- }
597
- else {
598
- fullDocument = 'updateLookup';
599
- }
600
- const streamOptions = {
601
- fullDocument
602
- };
603
- if (!this.isDocumentDb) {
604
- // DocumentDB does not support showExpandedEvents.
605
- streamOptions.showExpandedEvents = true;
606
- }
607
- const pipeline = [{ $changeStream: streamOptions }, { $match: options.filters.$match }];
608
- if (!this.isDocumentDb) {
609
- // DocumentDB does not support $changeStreamSplitLargeEvent.
610
- pipeline.push({ $changeStreamSplitLargeEvent: {} });
611
- }
612
- // Only one of these options can be supplied at a time.
613
- if (resumeAfter) {
614
- streamOptions.resumeAfter = resumeAfter;
615
- }
616
- else if (startAfter != null) {
617
- // Legacy: We don't persist lsns without resumeTokens anymore, but we do still handle the
618
- // case if we have an old one. The sentinel implementation never produces a startAfter,
619
- // and a fresh DocumentDB stream opens from "now" with neither option set.
620
- streamOptions.startAtOperationTime = startAfter;
621
- }
622
- let watchDb;
623
- if (this.isDocumentDb || options.filters.multipleDatabases) {
624
- // DocumentDB only supports cluster-level change streams.
625
- // Requires readAnyDatabase@admin on Atlas.
626
- watchDb = this.client.db('admin');
627
- streamOptions.allChangesForCluster = true;
628
- }
629
- else {
630
- // Same general result, but requires less permissions than the above
631
- watchDb = this.defaultDb;
632
- }
633
- const maxAwaitTimeMS = options.maxAwaitTimeMS ?? this.maxAwaitTimeMS;
634
- return rawChangeStream(watchDb, pipeline, {
635
- batchSize: options.batchSize ?? this.snapshotChunkLength,
636
- maxAwaitTimeMS,
637
- // maxAwaitTimeMS can be 0 for probe-style streams that do not want an idle wait.
638
- // In that case there is no client-side wait to emulate for DocumentDB.
639
- clientSideMaxAwaitTimeMS: this.isDocumentDb && maxAwaitTimeMS > 0,
640
- maxTimeMS: this.changeStreamTimeout,
641
- signal: options.signal,
642
- logger: this.logger,
643
- tracer: options.tracer
600
+ openChangeStream(options) {
601
+ return openMongoReplicationStream({
602
+ db: this.defaultDb,
603
+ queryProvider: this.queryProvider,
604
+ namespaceFilter: options.filters,
605
+ isDocumentDb: this.isDocumentDb,
606
+ usePostImages: this.usePostImages,
607
+ position: options.lsn ? this.checkpointImplementation.parseResumePosition(options.lsn) : null,
608
+ onBatch: options.onBatch,
609
+ options: {
610
+ batchSize: options.batchSize ?? this.snapshotChunkLength,
611
+ maxAwaitTimeMS: options.maxAwaitTimeMS ?? this.maxAwaitTimeMS,
612
+ maxTimeMS: this.changeStreamTimeout,
613
+ signal: options.signal,
614
+ logger: this.logger,
615
+ tracer: options.tracer
616
+ }
644
617
  });
645
618
  }
646
619
  touch() {
@@ -1 +1 @@
1
- {"version":3,"file":"MongoSnapshotter.js","sourceRoot":"","sources":["../../src/replication/MongoSnapshotter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MongoSnapshotter.js","sourceRoot":"","sources":["../../src/replication/MongoSnapshotter.ts"],"names":[],"mappings":"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"}
@@ -7,19 +7,11 @@ export interface RawChangeStreamOptions {
7
7
  * How long to wait for new data per batch (max time for long-polling).
8
8
  * This is sent as maxTimeMS for the getMore command.
9
9
  *
10
- * A value of 0 is allowed for probe-style streams that do not want an idle
11
- * wait; in that case PowerSync also skips the local empty-batch delay.
10
+ * A value of 0 removes the explicit await limit and leaves the server's
11
+ * default awaitData behavior in effect; it does not make getMore return
12
+ * immediately. Snapshot probes use 0 for this purpose.
12
13
  */
13
14
  maxAwaitTimeMS: number;
14
- /**
15
- * Also enforce maxAwaitTimeMS on the client for empty getMore batches.
16
- *
17
- * Azure DocumentDB currently returns idle getMore calls before maxTimeMS. When
18
- * this is enabled, empty batches are delayed locally (capped at 1s) to avoid
19
- * tight polling. We still send maxTimeMS so this remains compatible with
20
- * servers that handle maxAwaitTimeMS correctly.
21
- */
22
- clientSideMaxAwaitTimeMS?: boolean;
23
15
  /**
24
16
  * Timeout for the initial aggregate command.
25
17
  */
@@ -48,7 +40,7 @@ export interface ChangeStreamBatch {
48
40
  byteSize: number;
49
41
  }
50
42
  export declare function rawChangeStream(db: mongo.Db, pipeline: mongo.Document[], options: RawChangeStreamOptions): AsyncGenerator<ChangeStreamBatch, void, unknown>;
51
- export type ProjectedChangeStreamDocument = Omit<mongo.ChangeStreamDropDocument, 'wallTime' | 'collectionUUID'> | Omit<mongo.ChangeStreamRenameDocument, 'wallTime'> | Omit<mongo.ChangeStreamDeleteDocument<Buffer>, 'wallTime'> | Omit<mongo.ChangeStreamInsertDocument<Buffer>, 'wallTime'> | Omit<mongo.ChangeStreamUpdateDocument<Buffer>, 'wallTime' | 'updateDescription'> | Omit<mongo.ChangeStreamReplaceDocument<Buffer>, 'wallTime'>;
43
+ export type ProjectedChangeStreamDocument = Omit<mongo.ChangeStreamDropDocument, 'wallTime' | 'collectionUUID'> | Omit<mongo.ChangeStreamRenameDocument, 'wallTime'> | Omit<mongo.ChangeStreamDeleteDocument<Buffer>, 'wallTime' | 'collectionUUID'> | Omit<mongo.ChangeStreamInsertDocument<Buffer>, 'wallTime'> | Omit<mongo.ChangeStreamUpdateDocument<Buffer>, 'wallTime' | 'updateDescription'> | Omit<mongo.ChangeStreamReplaceDocument<Buffer>, 'wallTime'>;
52
44
  /**
53
45
  * Parse a change stream document, while keeping `fullDocument` as a Buffer.
54
46
  *
@@ -1,11 +1,6 @@
1
1
  import { isMaxTimeMSExpiredError, isMongoServerError, isTimeoutError, mongo } from '@powersync/lib-service-mongodb';
2
2
  import { DatabaseConnectionError, ErrorCode, ReplicationAssertionError } from '@powersync/lib-services-framework';
3
- import { performance } from 'node:perf_hooks';
4
- import { setTimeout as delay } from 'node:timers/promises';
5
3
  import { ChangeStreamInvalidatedError } from './ChangeStream.js';
6
- // Keep the DocumentDB idle-poll workaround from adding the full maxAwaitTimeMS
7
- // as local latency when an update arrives just after an empty batch.
8
- const CLIENT_SIDE_MAX_AWAIT_TIME_MS_DELAY_CAP_MS = 1_000;
9
4
  const deserialize = mongo.BSON.deserialize;
10
5
  const DESERIALIZE_DEFAULT = { useBigInt64: true };
11
6
  const DESERIALIZE_RAW = {
@@ -135,17 +130,12 @@ async function* rawChangeStreamInner(session, db, pipeline, options, batchSizer)
135
130
  while (cursorId && cursorId !== 0n) {
136
131
  options.signal?.throwIfAborted();
137
132
  using commandSpan = options.tracer?.span('changestream', 'getmore');
138
- const getMoreStartedAt = performance.now();
139
133
  const getMoreCommand = {
140
134
  getMore: cursorId,
141
135
  collection: nsCollection,
142
136
  batchSize: batchSizer.next(),
143
137
  maxTimeMS: options.maxAwaitTimeMS
144
138
  };
145
- // Azure DocumentDB currently returns empty getMore batches before
146
- // maxTimeMS expires. Keep maxTimeMS for forward compatibility with the
147
- // server-side behavior, and when client-side mode is enabled, enforce the
148
- // capped idle wait locally for empty batches below.
149
139
  const getMoreResult = await db.command(getMoreCommand, { session, raw: true }).catch((e) => {
150
140
  if (isMongoServerError(e) && e.codeName == 'CursorKilled') {
151
141
  // This may be due to the killCursors command issued when aborting.
@@ -169,13 +159,6 @@ async function* rawChangeStreamInner(session, db, pipeline, options, batchSizer)
169
159
  // postBatchResumeToken is returned in MongoDB 4.0.7 and later, and we support 6.0+
170
160
  throw new ReplicationAssertionError(`postBatchResumeToken from aggregate response`);
171
161
  }
172
- if (options.clientSideMaxAwaitTimeMS && nextBatch.length == 0) {
173
- const remainingMaxAwaitTimeMS = Math.ceil(options.maxAwaitTimeMS - (performance.now() - getMoreStartedAt));
174
- if (remainingMaxAwaitTimeMS > 0) {
175
- const clientSideDelayMs = Math.min(remainingMaxAwaitTimeMS, CLIENT_SIDE_MAX_AWAIT_TIME_MS_DELAY_CAP_MS);
176
- await delay(clientSideDelayMs, undefined, { signal: options.signal });
177
- }
178
- }
179
162
  yield {
180
163
  events: nextBatch,
181
164
  resumeToken: cursor.postBatchResumeToken,
@@ -311,7 +294,7 @@ export function mapChangeStreamError(e) {
311
294
  }
312
295
  else if (isMongoServerError(e) &&
313
296
  e.codeName == 'NoMatchingDocument' &&
314
- e.errmsg?.includes('post-image was not found')) {
297
+ (e.errmsg?.includes('post-image was not found') || e.errmsg?.includes('pre-image was not found'))) {
315
298
  throw new ChangeStreamInvalidatedError(e.errmsg, e);
316
299
  }
317
300
  else if (isMongoServerError(e) && e.hasErrorLabel('NonResumableChangeStreamError')) {
@@ -1 +1 @@
1
- {"version":3,"file":"RawChangeStream.js","sourceRoot":"","sources":["../../src/replication/RawChangeStream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RawChangeStream.js","sourceRoot":"","sources":["../../src/replication/RawChangeStream.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,7 @@ export declare class LegacySourceRowConverter implements SourceRowConverter {
37
37
  }
38
38
  export declare class DirectSourceRowConverter implements SourceRowConverter {
39
39
  private readonly dateRenderMode;
40
+ private readonly fixedBooleansInJson;
40
41
  constructor(compatibilityContext: CompatibilityContext);
41
42
  rawToSqliteRow(source: Buffer): {
42
43
  row: SqliteRow;