@powersync/service-module-mongodb 0.0.0-dev-20260203155513 → 0.0.0-dev-20260223080959

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,6 +1,49 @@
1
1
  # @powersync/service-module-mongodb
2
2
 
3
- ## 0.0.0-dev-20260203155513
3
+ ## 0.0.0-dev-20260223080959
4
+
5
+ ### Minor Changes
6
+
7
+ - 8a4c34e: Refactor `BucketStorageFactory` and `PersistedSyncRulesContent` to be abstract classes instead of interfaces.
8
+ - 8bd83e8: Introduce storage versions.
9
+
10
+ ### Patch Changes
11
+
12
+ - Updated dependencies [0998251]
13
+ - Updated dependencies [1c45667]
14
+ - Updated dependencies [8a4c34e]
15
+ - Updated dependencies [8bd83e8]
16
+ - @powersync/service-core@0.0.0-dev-20260223080959
17
+ - @powersync/service-types@0.0.0-dev-20260223080959
18
+ - @powersync/service-sync-rules@0.0.0-dev-20260223080959
19
+ - @powersync/lib-services-framework@0.0.0-dev-20260223080959
20
+ - @powersync/lib-service-mongodb@0.0.0-dev-20260223080959
21
+
22
+ ## 0.13.2
23
+
24
+ ### Patch Changes
25
+
26
+ - Updated dependencies [a04252d]
27
+ - @powersync/service-sync-rules@0.31.1
28
+ - @powersync/lib-services-framework@0.8.2
29
+ - @powersync/service-core@1.19.2
30
+ - @powersync/lib-service-mongodb@0.6.19
31
+
32
+ ## 0.13.1
33
+
34
+ ### Patch Changes
35
+
36
+ - 479997b: Introduce `BaseSyncConfig` to represent SQL-based sync rules and precompiled sync plans.
37
+ - Updated dependencies [0e99ce0]
38
+ - Updated dependencies [479997b]
39
+ - Updated dependencies [d1c2228]
40
+ - Updated dependencies [1a1a4cc]
41
+ - @powersync/service-sync-rules@0.31.0
42
+ - @powersync/service-core@1.19.1
43
+ - @powersync/lib-services-framework@0.8.1
44
+ - @powersync/lib-service-mongodb@0.6.18
45
+
46
+ ## 0.13.0
4
47
 
5
48
  ### Minor Changes
6
49
 
@@ -8,19 +51,19 @@
8
51
 
9
52
  ### Patch Changes
10
53
 
54
+ - Updated dependencies [5d683cd]
11
55
  - Updated dependencies [05b9661]
12
56
  - Updated dependencies [eaa04cc]
13
57
  - Updated dependencies [781d0e3]
14
58
  - Updated dependencies [e578245]
15
59
  - Updated dependencies [3040079]
16
- - Updated dependencies [0255483]
17
- - Updated dependencies [3207fd2]
60
+ - Updated dependencies [3b2c512]
18
61
  - Updated dependencies [a02cc58]
19
- - @powersync/service-core@0.0.0-dev-20260203155513
20
- - @powersync/service-sync-rules@0.0.0-dev-20260203155513
21
- - @powersync/service-types@0.0.0-dev-20260203155513
22
- - @powersync/lib-services-framework@0.0.0-dev-20260203155513
23
- - @powersync/lib-service-mongodb@0.0.0-dev-20260203155513
62
+ - @powersync/lib-service-mongodb@0.6.17
63
+ - @powersync/service-core@1.19.0
64
+ - @powersync/service-sync-rules@0.30.0
65
+ - @powersync/lib-services-framework@0.8.0
66
+ - @powersync/service-types@0.14.0
24
67
 
25
68
  ## 0.12.16
26
69
 
@@ -16,7 +16,7 @@ export declare class MongoRouteAPIAdapter implements api.RouteAPI {
16
16
  getSourceConfig(): Promise<service_types.configFile.ResolvedDataSourceConfig>;
17
17
  getConnectionStatus(): Promise<service_types.ConnectionStatusV2>;
18
18
  executeQuery(query: string, params: any[]): Promise<service_types.internal_routes.ExecuteSqlResponse>;
19
- getDebugTablesInfo(tablePatterns: sync_rules.TablePattern[], sqlSyncRules: sync_rules.SqlSyncRules): Promise<api.PatternResult[]>;
19
+ getDebugTablesInfo(tablePatterns: sync_rules.TablePattern[], sqlSyncRules: sync_rules.SyncConfig): Promise<api.PatternResult[]>;
20
20
  getReplicationLagBytes(options: api.ReplicationLagOptions): Promise<number | undefined>;
21
21
  createReplicationHead<T>(callback: ReplicationHeadCallback<T>): Promise<T>;
22
22
  getConnectionSchema(): Promise<service_types.DatabaseSchema[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"MongoRouteAPIAdapter.js","sourceRoot":"","sources":["../../src/api/MongoRouteAPIAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MongoRouteAPIAdapter.js","sourceRoot":"","sources":["../../src/api/MongoRouteAPIAdapter.ts"],"names":[],"mappings":"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"}
@@ -44,29 +44,29 @@ export interface NormalizedMongoConnectionConfig {
44
44
  postImages: PostImagesOption;
45
45
  }
46
46
  export declare const MongoConnectionConfig: t.Intersection<t.Codec<{
47
+ type: string;
48
+ id?: string | undefined;
49
+ tag?: string | undefined;
50
+ debug_api?: boolean | undefined;
51
+ } & {
47
52
  uri: string;
48
53
  type: "mongodb";
49
54
  database?: string | undefined;
50
55
  username?: string | undefined;
51
56
  password?: string | undefined;
52
57
  reject_ip_ranges?: string[] | undefined;
53
- } & {
58
+ }, {
54
59
  type: string;
55
60
  id?: string | undefined;
56
61
  tag?: string | undefined;
57
62
  debug_api?: boolean | undefined;
58
- }, {
63
+ } & {
59
64
  uri: string;
60
65
  type: "mongodb";
61
66
  database?: string | undefined;
62
67
  username?: string | undefined;
63
68
  password?: string | undefined;
64
69
  reject_ip_ranges?: string[] | undefined;
65
- } & {
66
- type: string;
67
- id?: string | undefined;
68
- tag?: string | undefined;
69
- debug_api?: boolean | undefined;
70
70
  }, string, t.CodecProps>, t.ObjectCodec<{
71
71
  post_images: t.OptionalCodec<t.Codec<"off" | "auto_configure" | "read_only", "off" | "auto_configure" | "read_only", string, t.CodecProps>>;
72
72
  }>>;
@@ -35,7 +35,7 @@ export var PostImagesOption;
35
35
  */
36
36
  PostImagesOption["READ_ONLY"] = "read_only";
37
37
  })(PostImagesOption || (PostImagesOption = {}));
38
- export const MongoConnectionConfig = lib_mongo.BaseMongoConfig.and(service_types.configFile.DataSourceConfig).and(t.object({
38
+ export const MongoConnectionConfig = service_types.configFile.DataSourceConfig.and(lib_mongo.BaseMongoConfig).and(t.object({
39
39
  // Replication specific settings
40
40
  post_images: t.literal('off').or(t.literal('auto_configure')).or(t.literal('read_only')).optional()
41
41
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,sCAAsC,CAAC;AAClE,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAC;AAE1D,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAE9B,MAAM,CAAN,IAAY,gBAkCX;AAlCD,WAAY,gBAAgB;IAC1B;;;;;;;OAOG;IACH,+BAAW,CAAA;IAEX;;;;;;;OAOG;IACH,qDAAiC,CAAA;IAEjC;;;;;;;;;;;OAWG;IACH,2CAAuB,CAAA;AACzB,CAAC,EAlCW,gBAAgB,KAAhB,gBAAgB,QAkC3B;AAiBD,MAAM,CAAC,MAAM,qBAAqB,GAAG,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAC/G,CAAC,CAAC,MAAM,CAAC;IACP,gCAAgC;IAChC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE;CACpG,CAAC,CACH,CAAC;AAaF;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAAqC;IAC7E,MAAM,IAAI,GAAG,SAAS,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAErD,OAAO;QACL,GAAG,IAAI;QACP,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,SAAS;QAC3B,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,SAAS;QAC7B,UAAU,EAAG,OAAO,CAAC,WAA4C,IAAI,gBAAgB,CAAC,GAAG;KAC1F,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,sCAAsC,CAAC;AAClE,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAC;AAE1D,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAE9B,MAAM,CAAN,IAAY,gBAkCX;AAlCD,WAAY,gBAAgB;IAC1B;;;;;;;OAOG;IACH,+BAAW,CAAA;IAEX;;;;;;;OAOG;IACH,qDAAiC,CAAA;IAEjC;;;;;;;;;;;OAWG;IACH,2CAAuB,CAAA;AACzB,CAAC,EAlCW,gBAAgB,KAAhB,gBAAgB,QAkC3B;AAiBD,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,GAAG,CAC/G,CAAC,CAAC,MAAM,CAAC;IACP,gCAAgC;IAChC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE;CACpG,CAAC,CACH,CAAC;AAaF;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAAqC;IAC7E,MAAM,IAAI,GAAG,SAAS,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAErD,OAAO;QACL,GAAG,IAAI;QACP,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,SAAS;QAC3B,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,SAAS;QAC7B,UAAU,EAAG,OAAO,CAAC,WAA4C,IAAI,gBAAgB,CAAC,GAAG;KAC1F,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@powersync/service-module-mongodb",
3
3
  "repository": "https://github.com/powersync-ja/powersync-service",
4
4
  "types": "dist/index.d.ts",
5
- "version": "0.0.0-dev-20260203155513",
5
+ "version": "0.0.0-dev-20260223080959",
6
6
  "main": "dist/index.js",
7
7
  "license": "FSL-1.1-ALv2",
8
8
  "type": "module",
@@ -25,17 +25,17 @@
25
25
  "bson": "^6.10.4",
26
26
  "ts-codec": "^1.3.0",
27
27
  "uuid": "^11.1.0",
28
- "@powersync/lib-service-mongodb": "0.0.0-dev-20260203155513",
29
- "@powersync/lib-services-framework": "0.0.0-dev-20260203155513",
30
- "@powersync/service-core": "0.0.0-dev-20260203155513",
28
+ "@powersync/lib-service-mongodb": "0.0.0-dev-20260223080959",
29
+ "@powersync/lib-services-framework": "0.0.0-dev-20260223080959",
30
+ "@powersync/service-core": "0.0.0-dev-20260223080959",
31
31
  "@powersync/service-jsonbig": "0.17.12",
32
- "@powersync/service-sync-rules": "0.0.0-dev-20260203155513",
33
- "@powersync/service-types": "0.0.0-dev-20260203155513"
32
+ "@powersync/service-sync-rules": "0.0.0-dev-20260223080959",
33
+ "@powersync/service-types": "0.0.0-dev-20260223080959"
34
34
  },
35
35
  "devDependencies": {
36
- "@powersync/service-core-tests": "0.0.0-dev-20260203155513",
37
- "@powersync/service-module-mongodb-storage": "0.0.0-dev-20260203155513",
38
- "@powersync/service-module-postgres-storage": "0.0.0-dev-20260203155513"
36
+ "@powersync/service-core-tests": "0.0.0-dev-20260223080959",
37
+ "@powersync/service-module-mongodb-storage": "0.0.0-dev-20260223080959",
38
+ "@powersync/service-module-postgres-storage": "0.0.0-dev-20260223080959"
39
39
  },
40
40
  "scripts": {
41
41
  "build": "tsc -b",
@@ -81,7 +81,7 @@ export class MongoRouteAPIAdapter implements api.RouteAPI {
81
81
 
82
82
  async getDebugTablesInfo(
83
83
  tablePatterns: sync_rules.TablePattern[],
84
- sqlSyncRules: sync_rules.SqlSyncRules
84
+ sqlSyncRules: sync_rules.SyncConfig
85
85
  ): Promise<api.PatternResult[]> {
86
86
  let result: api.PatternResult[] = [];
87
87
 
@@ -54,7 +54,7 @@ export interface NormalizedMongoConnectionConfig {
54
54
  postImages: PostImagesOption;
55
55
  }
56
56
 
57
- export const MongoConnectionConfig = lib_mongo.BaseMongoConfig.and(service_types.configFile.DataSourceConfig).and(
57
+ export const MongoConnectionConfig = service_types.configFile.DataSourceConfig.and(lib_mongo.BaseMongoConfig).and(
58
58
  t.object({
59
59
  // Replication specific settings
60
60
  post_images: t.literal('off').or(t.literal('auto_configure')).or(t.literal('read_only')).optional()
@@ -3,12 +3,11 @@ import { setTimeout } from 'node:timers/promises';
3
3
  import { describe, expect, test, vi } from 'vitest';
4
4
 
5
5
  import { mongo } from '@powersync/lib-service-mongodb';
6
- import { storage } from '@powersync/service-core';
7
6
  import { test_utils } from '@powersync/service-core-tests';
8
7
 
9
8
  import { PostImagesOption } from '@module/types/types.js';
10
9
  import { ChangeStreamTestContext } from './change_stream_utils.js';
11
- import { describeWithStorage } from './util.js';
10
+ import { describeWithStorage, StorageVersionTestContext } from './util.js';
12
11
 
13
12
  const BASIC_SYNC_RULES = `
14
13
  bucket_definitions:
@@ -21,9 +20,12 @@ describe('change stream', () => {
21
20
  describeWithStorage({ timeout: 20_000 }, defineChangeStreamTests);
22
21
  });
23
22
 
24
- function defineChangeStreamTests(factory: storage.TestStorageFactory) {
23
+ function defineChangeStreamTests({ factory, storageVersion }: StorageVersionTestContext) {
24
+ const openContext = (options?: Parameters<typeof ChangeStreamTestContext.open>[1]) => {
25
+ return ChangeStreamTestContext.open(factory, { ...options, storageVersion });
26
+ };
25
27
  test('replicating basic values', async () => {
26
- await using context = await ChangeStreamTestContext.open(factory, {
28
+ await using context = await openContext({
27
29
  mongoOptions: { postImages: PostImagesOption.READ_ONLY }
28
30
  });
29
31
  const { db } = context;
@@ -59,7 +61,7 @@ bucket_definitions:
59
61
  });
60
62
 
61
63
  test('replicating wildcard', async () => {
62
- await using context = await ChangeStreamTestContext.open(factory);
64
+ await using context = await openContext();
63
65
  const { db } = context;
64
66
  await context.updateSyncRules(`
65
67
  bucket_definitions:
@@ -91,7 +93,7 @@ bucket_definitions:
91
93
  });
92
94
 
93
95
  test('updateLookup - no fullDocument available', async () => {
94
- await using context = await ChangeStreamTestContext.open(factory, {
96
+ await using context = await openContext({
95
97
  mongoOptions: { postImages: PostImagesOption.OFF }
96
98
  });
97
99
  const { db, client } = context;
@@ -137,7 +139,7 @@ bucket_definitions:
137
139
  test('postImages - autoConfigure', async () => {
138
140
  // Similar to the above test, but with postImages enabled.
139
141
  // This resolves the consistency issue.
140
- await using context = await ChangeStreamTestContext.open(factory, {
142
+ await using context = await openContext({
141
143
  mongoOptions: { postImages: PostImagesOption.AUTO_CONFIGURE }
142
144
  });
143
145
  const { db, client } = context;
@@ -185,7 +187,7 @@ bucket_definitions:
185
187
  test('postImages - on', async () => {
186
188
  // Similar to postImages - autoConfigure, but does not auto-configure.
187
189
  // changeStreamPreAndPostImages must be manually configured.
188
- await using context = await ChangeStreamTestContext.open(factory, {
190
+ await using context = await openContext({
189
191
  mongoOptions: { postImages: PostImagesOption.READ_ONLY }
190
192
  });
191
193
  const { db, client } = context;
@@ -230,7 +232,7 @@ bucket_definitions:
230
232
  });
231
233
 
232
234
  test('replicating case sensitive table', async () => {
233
- await using context = await ChangeStreamTestContext.open(factory);
235
+ await using context = await openContext();
234
236
  const { db } = context;
235
237
  await context.updateSyncRules(`
236
238
  bucket_definitions:
@@ -254,7 +256,7 @@ bucket_definitions:
254
256
  });
255
257
 
256
258
  test('replicating large values', async () => {
257
- await using context = await ChangeStreamTestContext.open(factory);
259
+ await using context = await openContext();
258
260
  const { db } = context;
259
261
  await context.updateSyncRules(`
260
262
  bucket_definitions:
@@ -285,7 +287,7 @@ bucket_definitions:
285
287
  });
286
288
 
287
289
  test('replicating dropCollection', async () => {
288
- await using context = await ChangeStreamTestContext.open(factory);
290
+ await using context = await openContext();
289
291
  const { db } = context;
290
292
  const syncRuleContent = `
291
293
  bucket_definitions:
@@ -307,6 +309,8 @@ bucket_definitions:
307
309
  await collection.drop();
308
310
 
309
311
  const data = await context.getBucketData('global[]');
312
+ const reduced = test_utils.reduceBucket(data).slice(1);
313
+ expect(reduced).toEqual([]);
310
314
 
311
315
  expect(data).toMatchObject([
312
316
  test_utils.putOp('test_data', { id: test_id, description: 'test1' }),
@@ -315,7 +319,7 @@ bucket_definitions:
315
319
  });
316
320
 
317
321
  test('replicating renameCollection', async () => {
318
- await using context = await ChangeStreamTestContext.open(factory);
322
+ await using context = await openContext();
319
323
  const { db } = context;
320
324
  const syncRuleContent = `
321
325
  bucket_definitions:
@@ -335,6 +339,8 @@ bucket_definitions:
335
339
  await collection.rename('test_data2');
336
340
 
337
341
  const data = await context.getBucketData('global[]');
342
+ const reduced = test_utils.reduceBucket(data).slice(1);
343
+ expect(reduced).toMatchObject([test_utils.putOp('test_data2', { id: test_id, description: 'test1' })]);
338
344
 
339
345
  expect(data).toMatchObject([
340
346
  test_utils.putOp('test_data1', { id: test_id, description: 'test1' }),
@@ -344,7 +350,7 @@ bucket_definitions:
344
350
  });
345
351
 
346
352
  test('initial sync', async () => {
347
- await using context = await ChangeStreamTestContext.open(factory);
353
+ await using context = await openContext();
348
354
  const { db } = context;
349
355
  await context.updateSyncRules(BASIC_SYNC_RULES);
350
356
 
@@ -369,7 +375,7 @@ bucket_definitions:
369
375
  // MongoServerError: PlanExecutor error during aggregation :: caused by :: BSONObj size: 33554925 (0x20001ED) is invalid.
370
376
  // Size must be between 0 and 16793600(16MB)
371
377
 
372
- await using context = await ChangeStreamTestContext.open(factory);
378
+ await using context = await openContext();
373
379
  await context.updateSyncRules(`bucket_definitions:
374
380
  global:
375
381
  data:
@@ -418,7 +424,7 @@ bucket_definitions:
418
424
  });
419
425
 
420
426
  test('collection not in sync rules', async () => {
421
- await using context = await ChangeStreamTestContext.open(factory);
427
+ await using context = await openContext();
422
428
  const { db } = context;
423
429
  await context.updateSyncRules(BASIC_SYNC_RULES);
424
430
 
@@ -435,7 +441,7 @@ bucket_definitions:
435
441
  });
436
442
 
437
443
  test('postImages - new collection with postImages enabled', async () => {
438
- await using context = await ChangeStreamTestContext.open(factory, {
444
+ await using context = await openContext({
439
445
  mongoOptions: { postImages: PostImagesOption.AUTO_CONFIGURE }
440
446
  });
441
447
  const { db } = context;
@@ -468,7 +474,7 @@ bucket_definitions:
468
474
  });
469
475
 
470
476
  test('postImages - new collection with postImages disabled', async () => {
471
- await using context = await ChangeStreamTestContext.open(factory, {
477
+ await using context = await openContext({
472
478
  mongoOptions: { postImages: PostImagesOption.AUTO_CONFIGURE }
473
479
  });
474
480
  const { db } = context;
@@ -498,7 +504,7 @@ bucket_definitions:
498
504
  });
499
505
 
500
506
  test('recover from error', async () => {
501
- await using context = await ChangeStreamTestContext.open(factory);
507
+ await using context = await openContext();
502
508
  const { db } = context;
503
509
  await context.updateSyncRules(`
504
510
  bucket_definitions:
@@ -4,11 +4,15 @@ import {
4
4
  createCoreReplicationMetrics,
5
5
  initializeCoreReplicationMetrics,
6
6
  InternalOpId,
7
+ LEGACY_STORAGE_VERSION,
7
8
  OplogEntry,
8
9
  ProtocolOpId,
9
10
  ReplicationCheckpoint,
11
+ STORAGE_VERSION_CONFIG,
10
12
  SyncRulesBucketStorage,
11
- TestStorageOptions
13
+ TestStorageOptions,
14
+ updateSyncRulesFromYaml,
15
+ utils
12
16
  } from '@powersync/service-core';
13
17
  import { METRICS_HELPER, test_utils } from '@powersync/service-core-tests';
14
18
 
@@ -23,6 +27,7 @@ export class ChangeStreamTestContext {
23
27
  private _walStream?: ChangeStream;
24
28
  private abortController = new AbortController();
25
29
  private streamPromise?: Promise<void>;
30
+ private syncRulesId?: number;
26
31
  public storage?: SyncRulesBucketStorage;
27
32
 
28
33
  /**
@@ -35,6 +40,7 @@ export class ChangeStreamTestContext {
35
40
  factory: (options: TestStorageOptions) => Promise<BucketStorageFactory>,
36
41
  options?: {
37
42
  doNotClear?: boolean;
43
+ storageVersion?: number;
38
44
  mongoOptions?: Partial<NormalizedMongoConnectionConfig>;
39
45
  streamOptions?: Partial<ChangeStreamOptions>;
40
46
  }
@@ -45,13 +51,19 @@ export class ChangeStreamTestContext {
45
51
  if (!options?.doNotClear) {
46
52
  await clearTestDb(connectionManager.db);
47
53
  }
48
- return new ChangeStreamTestContext(f, connectionManager, options?.streamOptions);
54
+
55
+ const storageVersion = options?.storageVersion ?? LEGACY_STORAGE_VERSION;
56
+ const versionedBuckets = STORAGE_VERSION_CONFIG[storageVersion]?.versionedBuckets ?? false;
57
+
58
+ return new ChangeStreamTestContext(f, connectionManager, options?.streamOptions, storageVersion, versionedBuckets);
49
59
  }
50
60
 
51
61
  constructor(
52
62
  public factory: BucketStorageFactory,
53
63
  public connectionManager: MongoManager,
54
- private streamOptions?: Partial<ChangeStreamOptions>
64
+ private streamOptions: Partial<ChangeStreamOptions> = {},
65
+ private storageVersion: number = LEGACY_STORAGE_VERSION,
66
+ private versionedBuckets: boolean = STORAGE_VERSION_CONFIG[storageVersion]?.versionedBuckets ?? false
55
67
  ) {
56
68
  createCoreReplicationMetrics(METRICS_HELPER.metricsEngine);
57
69
  initializeCoreReplicationMetrics(METRICS_HELPER.metricsEngine);
@@ -88,7 +100,10 @@ export class ChangeStreamTestContext {
88
100
  }
89
101
 
90
102
  async updateSyncRules(content: string) {
91
- const syncRules = await this.factory.updateSyncRules({ content: content, validate: true });
103
+ const syncRules = await this.factory.updateSyncRules(
104
+ updateSyncRulesFromYaml(content, { validate: true, storageVersion: this.storageVersion })
105
+ );
106
+ this.syncRulesId = syncRules.id;
92
107
  this.storage = this.factory.getInstance(syncRules);
93
108
  return this.storage!;
94
109
  }
@@ -99,6 +114,7 @@ export class ChangeStreamTestContext {
99
114
  throw new Error(`Next sync rules not available`);
100
115
  }
101
116
 
117
+ this.syncRulesId = syncRules.id;
102
118
  this.storage = this.factory.getInstance(syncRules);
103
119
  return this.storage!;
104
120
  }
@@ -159,9 +175,21 @@ export class ChangeStreamTestContext {
159
175
  return checkpoint;
160
176
  }
161
177
 
178
+ private resolveBucketName(bucket: string) {
179
+ if (!this.versionedBuckets || /^\d+#/.test(bucket)) {
180
+ return bucket;
181
+ }
182
+ if (this.syncRulesId == null) {
183
+ throw new Error('Sync rules not configured - call updateSyncRules() first');
184
+ }
185
+ return `${this.syncRulesId}#${bucket}`;
186
+ }
187
+
162
188
  async getBucketsDataBatch(buckets: Record<string, InternalOpId>, options?: { timeout?: number }) {
163
189
  let checkpoint = await this.getCheckpoint(options);
164
- const map = new Map<string, InternalOpId>(Object.entries(buckets));
190
+ const map = new Map<string, InternalOpId>(
191
+ Object.entries(buckets).map(([bucket, opId]) => [this.resolveBucketName(bucket), opId])
192
+ );
165
193
  return test_utils.fromAsync(this.storage!.getBucketDataBatch(checkpoint, map));
166
194
  }
167
195
 
@@ -170,8 +198,9 @@ export class ChangeStreamTestContext {
170
198
  if (typeof start == 'string') {
171
199
  start = BigInt(start);
172
200
  }
201
+ const resolvedBucket = this.resolveBucketName(bucket);
173
202
  const checkpoint = await this.getCheckpoint(options);
174
- const map = new Map<string, InternalOpId>([[bucket, start]]);
203
+ const map = new Map<string, InternalOpId>([[resolvedBucket, start]]);
175
204
  let data: OplogEntry[] = [];
176
205
  while (true) {
177
206
  const batch = this.storage!.getBucketDataBatch(checkpoint, map);
@@ -181,20 +210,26 @@ export class ChangeStreamTestContext {
181
210
  if (batches.length == 0 || !batches[0]!.chunkData.has_more) {
182
211
  break;
183
212
  }
184
- map.set(bucket, BigInt(batches[0]!.chunkData.next_after));
213
+ map.set(resolvedBucket, BigInt(batches[0]!.chunkData.next_after));
185
214
  }
186
215
  return data;
187
216
  }
188
217
 
189
- async getChecksums(buckets: string[], options?: { timeout?: number }) {
218
+ async getChecksums(buckets: string[], options?: { timeout?: number }): Promise<utils.ChecksumMap> {
190
219
  let checkpoint = await this.getCheckpoint(options);
191
- return this.storage!.getChecksums(checkpoint, buckets);
220
+ const versionedBuckets = buckets.map((bucket) => this.resolveBucketName(bucket));
221
+ const checksums = await this.storage!.getChecksums(checkpoint, versionedBuckets);
222
+
223
+ const unversioned: utils.ChecksumMap = new Map();
224
+ for (let i = 0; i < buckets.length; i++) {
225
+ unversioned.set(buckets[i], checksums.get(versionedBuckets[i])!);
226
+ }
227
+ return unversioned;
192
228
  }
193
229
 
194
230
  async getChecksum(bucket: string, options?: { timeout?: number }) {
195
- let checkpoint = await this.getCheckpoint(options);
196
- const map = await this.storage!.getChecksums(checkpoint, [bucket]);
197
- return map.get(bucket);
231
+ const checksums = await this.getChecksums([bucket], options);
232
+ return checksums.get(bucket);
198
233
  }
199
234
  }
200
235
 
@@ -1,18 +1,22 @@
1
1
  import { mongo } from '@powersync/lib-service-mongodb';
2
- import { reduceBucket, TestStorageFactory } from '@powersync/service-core';
2
+ import { reduceBucket } from '@powersync/service-core';
3
3
  import { METRICS_HELPER } from '@powersync/service-core-tests';
4
4
  import { JSONBig } from '@powersync/service-jsonbig';
5
5
  import { SqliteJsonValue } from '@powersync/service-sync-rules';
6
6
  import * as timers from 'timers/promises';
7
7
  import { describe, expect, test } from 'vitest';
8
8
  import { ChangeStreamTestContext } from './change_stream_utils.js';
9
- import { describeWithStorage } from './util.js';
9
+ import { describeWithStorage, StorageVersionTestContext } from './util.js';
10
10
 
11
11
  describe('chunked snapshots', () => {
12
12
  describeWithStorage({ timeout: 120_000 }, defineBatchTests);
13
13
  });
14
14
 
15
- function defineBatchTests(factory: TestStorageFactory) {
15
+ function defineBatchTests({ factory, storageVersion }: StorageVersionTestContext) {
16
+ const openContext = (options?: Parameters<typeof ChangeStreamTestContext.open>[1]) => {
17
+ return ChangeStreamTestContext.open(factory, { ...options, storageVersion });
18
+ };
19
+
16
20
  // This is not as sensitive to the id type as postgres, but we still test a couple of cases
17
21
  test('chunked snapshot (int32)', async () => {
18
22
  await testChunkedSnapshot({
@@ -93,7 +97,7 @@ function defineBatchTests(factory: TestStorageFactory) {
93
97
  const idToSqlite = options.idToSqlite ?? ((n) => n);
94
98
  const idToString = (id: any) => String(idToSqlite(id));
95
99
 
96
- await using context = await ChangeStreamTestContext.open(factory, {
100
+ await using context = await openContext({
97
101
  // We need to use a smaller chunk size here, so that we can run a query in between chunks
98
102
  streamOptions: { snapshotChunkLength: 100 }
99
103
  });
@@ -410,7 +410,7 @@ describe('mongo data types', () => {
410
410
  await setupTable(db);
411
411
  await insert(collection);
412
412
 
413
- const rules = SqlSyncRules.fromYaml(
413
+ const { config: rules } = SqlSyncRules.fromYaml(
414
414
  `
415
415
  bucket_definitions:
416
416
  global:
@@ -457,7 +457,7 @@ bucket_definitions:
457
457
  await setupTable(db);
458
458
  await insert(collection);
459
459
 
460
- const rules = SqlSyncRules.fromYaml(
460
+ const { config: rules } = SqlSyncRules.fromYaml(
461
461
  `
462
462
  bucket_definitions:
463
463
  global:
@@ -505,7 +505,7 @@ bucket_definitions:
505
505
  await setupTable(db);
506
506
  await insert(collection);
507
507
 
508
- const rules = SqlSyncRules.fromYaml(
508
+ const { config: rules } = SqlSyncRules.fromYaml(
509
509
  `
510
510
  bucket_definitions:
511
511
  global: