@powersync/service-module-mongodb 0.0.0-dev-20260909133214 → 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 (88) hide show
  1. package/CHANGELOG.md +38 -6
  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 +0 -1
  14. package/dist/module/MongoModule.js.map +1 -1
  15. package/dist/replication/ChangeStream.d.ts +10 -2
  16. package/dist/replication/ChangeStream.js +228 -317
  17. package/dist/replication/ChangeStream.js.map +1 -1
  18. package/dist/replication/ChangeStreamReplicationJob.d.ts +4 -1
  19. package/dist/replication/ChangeStreamReplicationJob.js +4 -1
  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 +58 -85
  37. package/dist/replication/MongoSnapshotter.js.map +1 -1
  38. package/dist/replication/RawChangeStream.d.ts +1 -1
  39. package/dist/replication/RawChangeStream.js +1 -1
  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/replication-index.d.ts +6 -0
  48. package/dist/replication/replication-index.js +6 -0
  49. package/dist/replication/replication-index.js.map +1 -1
  50. package/dist/test-utils/ChangeStreamTestContext.d.ts +131 -0
  51. package/dist/test-utils/ChangeStreamTestContext.js +391 -0
  52. package/dist/test-utils/ChangeStreamTestContext.js.map +1 -0
  53. package/dist/test-utils/test-utils-index.d.ts +1 -0
  54. package/dist/test-utils/test-utils-index.js +2 -0
  55. package/dist/test-utils/test-utils-index.js.map +1 -0
  56. package/package.json +8 -8
  57. package/src/api/MongoRouteAPIAdapter.ts +79 -127
  58. package/src/api/infer-collection-schema.ts +153 -0
  59. package/src/index.ts +1 -0
  60. package/src/module/MongoModule.ts +1 -3
  61. package/src/replication/ChangeStream.ts +253 -359
  62. package/src/replication/ChangeStreamReplicationJob.ts +7 -2
  63. package/src/replication/ChangeStreamReplicator.ts +5 -0
  64. package/src/replication/MongoRelation.ts +8 -1
  65. package/src/replication/MongoReplicationQueryProvider.ts +108 -0
  66. package/src/replication/MongoReplicationStream.ts +201 -0
  67. package/src/replication/MongoSnapshotQuery.ts +19 -3
  68. package/src/replication/MongoSnapshotter.ts +70 -92
  69. package/src/replication/RawChangeStream.ts +2 -2
  70. package/src/replication/SourceRowConverter.ts +4 -2
  71. package/src/replication/bufferToSqlite.ts +43 -23
  72. package/src/replication/replication-index.ts +6 -0
  73. package/src/test-utils/ChangeStreamTestContext.ts +520 -0
  74. package/src/test-utils/test-utils-index.ts +1 -0
  75. package/test/src/buffer_to_sqlite.test.ts +9 -0
  76. package/test/src/change_stream.test.ts +3 -3
  77. package/test/src/change_stream_test_setup.ts +38 -0
  78. package/test/src/chunked_snapshot.test.ts +3 -3
  79. package/test/src/documentdb_mode.test.ts +3 -3
  80. package/test/src/replication_stream.test.ts +311 -0
  81. package/test/src/resume.test.ts +10 -4
  82. package/test/src/resuming_snapshots.test.ts +3 -3
  83. package/test/src/schema.test.ts +223 -0
  84. package/test/src/slow_tests.test.ts +3 -3
  85. package/test/src/snapshot_query_provider.test.ts +95 -0
  86. package/test/src/stream_progress.test.ts +312 -0
  87. package/tsconfig.tsbuildinfo +1 -1
  88. package/test/src/change_stream_utils.ts +0 -375
@@ -52,12 +52,15 @@ const SHARED_WRITER = new JsonBufferWriter();
52
52
  *
53
53
  * @param bytes the source BSON bytes
54
54
  * @param dateRenderMode derive using getDateRenderMode(compatibilityContext)
55
+ * @param fixedBooleansInJson whether to serialize booleans in nested JSON as booleans, derived from compatibility
56
+ * context.
55
57
  *
56
58
  * @returns a SqliteRow
57
59
  */
58
- export function bufferToSqlite(bytes, dateRenderMode) {
60
+ export function bufferToSqlite(bytes, dateRenderMode, fixedBooleansInJson) {
59
61
  const row = {};
60
62
  const jsonWriter = SHARED_WRITER;
63
+ const options = { dateRenderMode, fixedBooleans: fixedBooleansInJson };
61
64
  // BSON documents are length-prefixed and null-terminated. We parse directly
62
65
  // from raw bytes, so structural validation happens here rather than in the
63
66
  // upstream BSON decoder.
@@ -82,14 +85,14 @@ export function bufferToSqlite(bytes, dateRenderMode) {
82
85
  }
83
86
  case BSON_TYPE_ARRAY: {
84
87
  jsonWriter.reset();
85
- const result = serializeNestedArrayToJson(bytes, offset, 0, jsonWriter, dateRenderMode);
88
+ const result = serializeNestedArrayToJson(bytes, offset, 0, jsonWriter, options);
86
89
  row[key] = jsonWriter.toString();
87
90
  offset = result.nextOffset;
88
91
  break;
89
92
  }
90
93
  case BSON_TYPE_DOCUMENT: {
91
94
  jsonWriter.reset();
92
- const result = serializeNestedObjectToJson(bytes, offset, 0, jsonWriter, dateRenderMode);
95
+ const result = serializeNestedObjectToJson(bytes, offset, 0, jsonWriter, options);
93
96
  row[key] = jsonWriter.toString();
94
97
  offset = result.nextOffset;
95
98
  break;
@@ -165,7 +168,7 @@ export function bufferToSqlite(bytes, dateRenderMode) {
165
168
  }
166
169
  case BSON_TYPE_CODE_WITH_SCOPE: {
167
170
  jsonWriter.reset();
168
- const nextOffset = writeCodeWithScopeJson(bytes, offset, 0, jsonWriter, dateRenderMode);
171
+ const nextOffset = writeCodeWithScopeJson(bytes, offset, 0, jsonWriter, options);
169
172
  row[key] = jsonWriter.toString();
170
173
  offset = nextOffset;
171
174
  break;
@@ -387,7 +390,7 @@ function skipBsonValue(bytes, offset, type) {
387
390
  throw new Error(`Unsupported BSON type for skip: 0x${type.toString(16)}`);
388
391
  }
389
392
  }
390
- function serializeNestedObjectToJson(bytes, offset, depth, writer, dateRenderMode) {
393
+ function serializeNestedObjectToJson(bytes, offset, depth, writer, options) {
391
394
  if (depth > NESTED_DEPTH_LIMIT) {
392
395
  throw new Error(`json nested object depth exceeds the limit of ${NESTED_DEPTH_LIMIT}`);
393
396
  }
@@ -410,7 +413,7 @@ function serializeNestedObjectToJson(bytes, offset, depth, writer, dateRenderMod
410
413
  writer.writeQuotedUtf8Slice(bytes, cursor, keyEnd);
411
414
  writer.writeByte(BYTE_COLON);
412
415
  cursor = keyEnd + 1;
413
- const { nextOffset: afterValue, defined } = serializeNestedElementValue(bytes, cursor, type, depth, writer, dateRenderMode);
416
+ const { nextOffset: afterValue, defined } = serializeNestedElementValue(bytes, cursor, type, depth, writer, options);
414
417
  cursor = afterValue;
415
418
  // Malformed BSON must fail fast instead of getting the parser stuck on the
416
419
  // same element forever.
@@ -424,7 +427,7 @@ function serializeNestedObjectToJson(bytes, offset, depth, writer, dateRenderMod
424
427
  writer.writeByte(BYTE_RBRACE);
425
428
  return { nextOffset: offset + totalLength };
426
429
  }
427
- function serializeNestedArrayToJson(bytes, offset, depth, writer, dateRenderMode) {
430
+ function serializeNestedArrayToJson(bytes, offset, depth, writer, options) {
428
431
  if (depth > NESTED_DEPTH_LIMIT) {
429
432
  throw new Error(`json nested object depth exceeds the limit of ${NESTED_DEPTH_LIMIT}`);
430
433
  }
@@ -441,7 +444,7 @@ function serializeNestedArrayToJson(bytes, offset, depth, writer, dateRenderMode
441
444
  writer.writeByte(BYTE_COMMA);
442
445
  }
443
446
  first = false;
444
- const { nextOffset: afterValue, defined } = serializeNestedElementValue(bytes, cursor, type, depth, writer, dateRenderMode);
447
+ const { nextOffset: afterValue, defined } = serializeNestedElementValue(bytes, cursor, type, depth, writer, options);
445
448
  cursor = afterValue;
446
449
  assertAdvanced(previousCursor, cursor);
447
450
  if (!defined) {
@@ -451,16 +454,16 @@ function serializeNestedArrayToJson(bytes, offset, depth, writer, dateRenderMode
451
454
  writer.writeByte(BYTE_RBRACKET);
452
455
  return { nextOffset: offset + totalLength };
453
456
  }
454
- function serializeNestedElementValue(bytes, offset, type, depth, writer, dateRenderMode) {
457
+ function serializeNestedElementValue(bytes, offset, type, depth, writer, options) {
455
458
  switch (type) {
456
459
  case BSON_TYPE_DOUBLE: // Double
457
460
  return serializeNestedDoubleElement(bytes, offset, writer);
458
461
  case BSON_TYPE_STRING: // String
459
462
  return serializeNestedStringElement(bytes, offset, writer);
460
463
  case BSON_TYPE_DOCUMENT: // Embedded document
461
- return serializeNestedObjectElement(bytes, offset, depth, writer, dateRenderMode);
464
+ return serializeNestedObjectElement(bytes, offset, depth, writer, options);
462
465
  case BSON_TYPE_ARRAY: // Array
463
- return serializeNestedArrayElement(bytes, offset, depth, writer, dateRenderMode);
466
+ return serializeNestedArrayElement(bytes, offset, depth, writer, options);
464
467
  case BSON_TYPE_BINARY: // Binary
465
468
  return serializeNestedBinaryElement(bytes, offset, writer);
466
469
  case BSON_TYPE_UNDEFINED: // Undefined
@@ -470,11 +473,20 @@ function serializeNestedElementValue(bytes, offset, type, depth, writer, dateRen
470
473
  writer.writeQuotedHexLower(bytes, offset, 12);
471
474
  return { nextOffset: offset + 12, defined: true };
472
475
  }
473
- case BSON_TYPE_BOOLEAN: // Boolean
474
- writer.writeByte(bytes[offset] ? BYTE_ONE : BYTE_ZERO);
476
+ case BSON_TYPE_BOOLEAN: {
477
+ // Boolean
478
+ const value = !!bytes[offset];
479
+ if (options.fixedBooleans) {
480
+ const str = value ? 'true' : 'false';
481
+ writer.writeAscii(str);
482
+ }
483
+ else {
484
+ writer.writeByte(value ? BYTE_ONE : BYTE_ZERO);
485
+ }
475
486
  return { nextOffset: offset + 1, defined: true };
487
+ }
476
488
  case BSON_TYPE_UTC_DATETIME: // UTC datetime
477
- return serializeNestedDateTimeElement(bytes, offset, writer, dateRenderMode);
489
+ return serializeNestedDateTimeElement(bytes, offset, writer, options.dateRenderMode);
478
490
  case BSON_TYPE_NULL: // Null
479
491
  case BSON_TYPE_MIN_KEY: // MinKey
480
492
  case BSON_TYPE_MAX_KEY: // MaxKey
@@ -489,7 +501,7 @@ function serializeNestedElementValue(bytes, offset, type, depth, writer, dateRen
489
501
  case BSON_TYPE_SYMBOL: // Symbol
490
502
  return serializeNestedSymbolElement(bytes, offset, writer);
491
503
  case BSON_TYPE_CODE_WITH_SCOPE: // JavaScript code with scope
492
- return serializeNestedCodeWithScopeElement(bytes, offset, depth, writer, dateRenderMode);
504
+ return serializeNestedCodeWithScopeElement(bytes, offset, depth, writer, options);
493
505
  case BSON_TYPE_INT32: {
494
506
  // Int32
495
507
  writer.writeAscii(String(readInt32LE(bytes, offset)));
@@ -529,12 +541,12 @@ function serializeNestedStringElement(bytes, offset, writer) {
529
541
  writer.writeQuotedUtf8Slice(bytes, stringStart, stringStart + length - 1);
530
542
  return { nextOffset, defined: true };
531
543
  }
532
- function serializeNestedObjectElement(bytes, offset, depth, writer, dateRenderMode) {
533
- const result = serializeNestedObjectToJson(bytes, offset, depth + 1, writer, dateRenderMode);
544
+ function serializeNestedObjectElement(bytes, offset, depth, writer, options) {
545
+ const result = serializeNestedObjectToJson(bytes, offset, depth + 1, writer, options);
534
546
  return { nextOffset: result.nextOffset, defined: true };
535
547
  }
536
- function serializeNestedArrayElement(bytes, offset, depth, writer, dateRenderMode) {
537
- const result = serializeNestedArrayToJson(bytes, offset, depth + 1, writer, dateRenderMode);
548
+ function serializeNestedArrayElement(bytes, offset, depth, writer, options) {
549
+ const result = serializeNestedArrayToJson(bytes, offset, depth + 1, writer, options);
538
550
  return { nextOffset: result.nextOffset, defined: true };
539
551
  }
540
552
  function serializeNestedDateTimeElement(bytes, offset, writer, dateRenderMode) {
@@ -626,13 +638,13 @@ function writeCodeJson(bytes, offset, depth, writer) {
626
638
  writer.writeAscii(',"scope":null}');
627
639
  return nextOffset;
628
640
  }
629
- function writeCodeWithScopeJson(bytes, offset, depth, writer, dateRenderMode) {
641
+ function writeCodeWithScopeJson(bytes, offset, depth, writer, options) {
630
642
  const totalLength = readInt32LE(bytes, offset);
631
643
  const { value: code, nextOffset: afterCode } = readBsonString(bytes, offset + 4);
632
644
  writer.writeAscii('{"code":');
633
645
  writer.writeQuotedJsonString(code);
634
646
  writer.writeAscii(',"scope":');
635
- serializeNestedObjectToJson(bytes, afterCode, depth + 1, writer, dateRenderMode);
647
+ serializeNestedObjectToJson(bytes, afterCode, depth + 1, writer, options);
636
648
  writer.writeByte(BYTE_RBRACE);
637
649
  // code_w_scope carries its own total byte length, so we trust that wrapper
638
650
  // rather than reconstructing the end position from the nested scope.
@@ -688,9 +700,9 @@ function serializeNestedCodeElement(bytes, offset, depth, writer) {
688
700
  function serializeNestedSymbolElement(bytes, offset, writer) {
689
701
  return serializeNestedStringElement(bytes, offset, writer);
690
702
  }
691
- function serializeNestedCodeWithScopeElement(bytes, offset, depth, writer, dateRenderMode) {
703
+ function serializeNestedCodeWithScopeElement(bytes, offset, depth, writer, options) {
692
704
  return {
693
- nextOffset: writeCodeWithScopeJson(bytes, offset, depth, writer, dateRenderMode),
705
+ nextOffset: writeCodeWithScopeJson(bytes, offset, depth, writer, options),
694
706
  defined: true
695
707
  };
696
708
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bufferToSqlite.js","sourceRoot":"","sources":["../../src/replication/bufferToSqlite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bufferToSqlite.js","sourceRoot":"","sources":["../../src/replication/bufferToSqlite.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,13 @@
1
1
  export * from './ChangeStream.js';
2
2
  export * from './ChangeStreamReplicationJob.js';
3
3
  export * from './ChangeStreamReplicator.js';
4
+ export * from './ConnectionManagerFactory.js';
4
5
  export * from './internal-mongodb-utils.js';
6
+ export * from './MongoErrorRateLimiter.js';
5
7
  export * from './MongoRelation.js';
8
+ export * from './MongoReplicationQueryProvider.js';
9
+ export * from './MongoReplicationStream.js';
10
+ export * from './MongoSnapshotter.js';
6
11
  export * from './RawChangeStream.js';
12
+ export { CHECKPOINTS_COLLECTION } from './replication-utils.js';
7
13
  export * from './SourceRowConverter.js';
@@ -1,8 +1,14 @@
1
1
  export * from './ChangeStream.js';
2
2
  export * from './ChangeStreamReplicationJob.js';
3
3
  export * from './ChangeStreamReplicator.js';
4
+ export * from './ConnectionManagerFactory.js';
4
5
  export * from './internal-mongodb-utils.js';
6
+ export * from './MongoErrorRateLimiter.js';
5
7
  export * from './MongoRelation.js';
8
+ export * from './MongoReplicationQueryProvider.js';
9
+ export * from './MongoReplicationStream.js';
10
+ export * from './MongoSnapshotter.js';
6
11
  export * from './RawChangeStream.js';
12
+ export { CHECKPOINTS_COLLECTION } from './replication-utils.js';
7
13
  export * from './SourceRowConverter.js';
8
14
  //# sourceMappingURL=replication-index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"replication-index.js","sourceRoot":"","sources":["../../src/replication/replication-index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"replication-index.js","sourceRoot":"","sources":["../../src/replication/replication-index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,131 @@
1
+ import { mongo } from '@powersync/lib-service-mongodb';
2
+ import { BucketStorageFactory, InternalOpId, OplogEntry, ProtocolOpId, ReplicationCheckpoint, storage, SyncRulesBucketStorage, TestStorageFactory, utils } from '@powersync/service-core';
3
+ import { ChangeStream, ChangeStreamOptions } from '../replication/ChangeStream.js';
4
+ import { MongoManager } from '../replication/MongoManager.js';
5
+ import { NormalizedMongoConnectionConfig } from '../types/types.js';
6
+ /**
7
+ * Stream settings callers may override while the context owns connections, storage, metrics and cancellation.
8
+ */
9
+ export type TestChangeStreamOptions = Omit<ChangeStreamOptions, 'connections' | 'storage' | 'metrics' | 'abort_signal'>;
10
+ export interface ChangeStreamTestContextOptions {
11
+ factory: TestStorageFactory;
12
+ connectionOptions: NormalizedMongoConnectionConfig;
13
+ metrics: ChangeStreamOptions['metrics'];
14
+ /**
15
+ * Preserve both source data and bucket storage when reopening an interrupted replication attempt.
16
+ */
17
+ doNotClear?: boolean;
18
+ storageVersion?: number;
19
+ streamOptions?: TestChangeStreamOptions;
20
+ /**
21
+ * Defaults to detecting DocumentDB from the source's hello response.
22
+ */
23
+ documentDbMode?: boolean;
24
+ }
25
+ export interface ChangeStreamTestContextResources {
26
+ factory: BucketStorageFactory;
27
+ connectionManager: MongoManager;
28
+ metrics: ChangeStreamOptions['metrics'];
29
+ storageVersion?: number;
30
+ streamOptions?: TestChangeStreamOptions;
31
+ documentDbMode?: boolean;
32
+ }
33
+ /**
34
+ * Owns source/storage connections and real replication. Callers supply their environment and storage implementation.
35
+ */
36
+ export declare class ChangeStreamTestContext implements AsyncDisposable {
37
+ private _walStream?;
38
+ private abortController;
39
+ private settledReplicationPromise?;
40
+ private syncRulesContent?;
41
+ private readonly replicationLeases;
42
+ storage?: SyncRulesBucketStorage;
43
+ /**
44
+ * Open a fresh fixture by default; use doNotClear to resume its persisted source and storage state.
45
+ */
46
+ static open(options: ChangeStreamTestContextOptions): Promise<ChangeStreamTestContext>;
47
+ /**
48
+ * Share resource setup and failure cleanup with subclasses that supply their own context and defaults.
49
+ */
50
+ protected static openWith<T extends ChangeStreamTestContext>({ options, createContext }: {
51
+ options: ChangeStreamTestContextOptions;
52
+ createContext: (resources: ChangeStreamTestContextResources) => T | Promise<T>;
53
+ }): Promise<T>;
54
+ readonly factory: BucketStorageFactory;
55
+ readonly connectionManager: MongoManager;
56
+ protected readonly metrics: ChangeStreamOptions['metrics'];
57
+ protected readonly streamOptions: TestChangeStreamOptions;
58
+ protected readonly storageVersion: number;
59
+ private readonly documentDbMode;
60
+ /**
61
+ * Takes ownership of an already configured storage factory and source connection.
62
+ */
63
+ constructor({ factory, connectionManager, metrics, streamOptions, storageVersion, documentDbMode }: ChangeStreamTestContextResources);
64
+ /**
65
+ * Abort snapshot and/or replication, without actively closing connections.
66
+ */
67
+ abort(cause?: Error): void;
68
+ /**
69
+ * Drain replication before inspecting its final persisted state or closing connections.
70
+ */
71
+ stop(cause?: Error): Promise<void>;
72
+ dispose(): Promise<void>;
73
+ [Symbol.asyncDispose](): Promise<void>;
74
+ get client(): mongo.MongoClient;
75
+ get db(): mongo.Db;
76
+ get connectionTag(): string;
77
+ updateSyncRules(content: string): Promise<storage.SyncRulesBucketStorage>;
78
+ loadNextSyncRules(): Promise<storage.SyncRulesBucketStorage>;
79
+ loadActiveSyncRules(): Promise<storage.SyncRulesBucketStorage>;
80
+ /**
81
+ * Reuse a replication lease per stream until the owning factory is disposed.
82
+ */
83
+ private getWritableStorage;
84
+ getSyncConfigContent(): storage.PersistedSyncConfigContent;
85
+ get streamer(): ChangeStream;
86
+ replicateSnapshot(): Promise<void>;
87
+ /**
88
+ * A snapshot is not consistent until streaming replication has caught up.
89
+ * We simulate that for tests.
90
+ * Do not use if there are any writes performed while doing the snapshot, as that
91
+ * would result in inconsistent data.
92
+ */
93
+ markSnapshotConsistent(): Promise<void>;
94
+ startStreaming(): Promise<PromiseSettledResult<void>>;
95
+ /**
96
+ * Wait for this stream to publish a real source marker; stop polling if replication exits first.
97
+ */
98
+ getCheckpoint(options?: {
99
+ timeout?: number;
100
+ }): Promise<ReplicationCheckpoint>;
101
+ getBucketsDataBatch(buckets: Record<string, InternalOpId>, options?: {
102
+ timeout?: number;
103
+ }): Promise<(storage.SyncBucketDataChunk | storage.SyncBucketDataBatchEnd)[]>;
104
+ getBucketData(bucket: string, start?: ProtocolOpId | InternalOpId | undefined, options?: {
105
+ timeout?: number;
106
+ }): Promise<OplogEntry<utils.StoredOplogData>[]>;
107
+ getBucketDataAtLatestCheckpoint(bucket: string, start?: ProtocolOpId | InternalOpId | undefined): Promise<OplogEntry<utils.StoredOplogData>[]>;
108
+ getBucketDataAtCheckpoint(bucket: string, checkpoint: ReplicationCheckpoint, start?: ProtocolOpId | InternalOpId | undefined): Promise<OplogEntry<utils.StoredOplogData>[]>;
109
+ /**
110
+ * Resolve a readable test bucket such as global[] to its persisted, versioned bucket name.
111
+ */
112
+ private bucketRequest;
113
+ getChecksums(buckets: string[], options?: {
114
+ timeout?: number;
115
+ }): Promise<utils.ChecksumMap>;
116
+ getChecksum(bucket: string, options?: {
117
+ timeout?: number;
118
+ }): Promise<utils.BucketChecksum | undefined>;
119
+ }
120
+ export declare function getClientCheckpoint({ client, db, storageFactory, timeout, documentDbMode: forcedDocumentDbMode, storage: expectedStorage, signal }: {
121
+ client: mongo.MongoClient;
122
+ db: mongo.Db;
123
+ storageFactory: BucketStorageFactory;
124
+ timeout?: number;
125
+ documentDbMode?: boolean;
126
+ /**
127
+ * Ignore checkpoints from another active stream while this one is still deploying.
128
+ */
129
+ storage?: SyncRulesBucketStorage;
130
+ signal?: AbortSignal;
131
+ }): Promise<ReplicationCheckpoint>;