@powersync/service-core-tests 0.13.0 → 0.13.1

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/package.json CHANGED
@@ -5,14 +5,14 @@
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
8
- "version": "0.13.0",
8
+ "version": "0.13.1",
9
9
  "main": "dist/index.js",
10
10
  "license": "FSL-1.1-ALv2",
11
11
  "type": "module",
12
12
  "dependencies": {
13
- "@powersync/service-core": "^1.19.0",
14
- "@powersync/service-jsonbig": "^0.17.12",
15
- "@powersync/service-sync-rules": "^0.30.0"
13
+ "@powersync/service-core": "^1.19.1",
14
+ "@powersync/service-sync-rules": "^0.31.0",
15
+ "@powersync/service-jsonbig": "^0.17.12"
16
16
  },
17
17
  "peerDependencies": {
18
18
  "vitest": "^4.0.16"
@@ -28,7 +28,7 @@ export function testRules(content: string): storage.PersistedSyncRulesContent {
28
28
  sync_rules: SqlSyncRules.fromYaml(content, options),
29
29
  slot_name: 'test',
30
30
  hydratedSyncRules() {
31
- return this.sync_rules.hydrate({ hydrationState: versionedHydrationState(1) });
31
+ return this.sync_rules.config.hydrate({ hydrationState: versionedHydrationState(1) });
32
32
  }
33
33
  };
34
34
  },
@@ -81,7 +81,8 @@ bucket_definitions:
81
81
  clearBatchLimit: 2,
82
82
  moveBatchLimit: 1,
83
83
  moveBatchQueryLimit: 1,
84
- minBucketChanges: 1
84
+ minBucketChanges: 1,
85
+ minChangeRatio: 0
85
86
  });
86
87
 
87
88
  const batchAfter = await test_utils.oneFromAsync(
@@ -209,7 +210,8 @@ bucket_definitions:
209
210
  clearBatchLimit: 2,
210
211
  moveBatchLimit: 1,
211
212
  moveBatchQueryLimit: 1,
212
- minBucketChanges: 1
213
+ minBucketChanges: 1,
214
+ minChangeRatio: 0
213
215
  });
214
216
 
215
217
  const batchAfter = await test_utils.oneFromAsync(
@@ -303,7 +305,8 @@ bucket_definitions:
303
305
  clearBatchLimit: 2,
304
306
  moveBatchLimit: 1,
305
307
  moveBatchQueryLimit: 1,
306
- minBucketChanges: 1
308
+ minBucketChanges: 1,
309
+ minChangeRatio: 0
307
310
  });
308
311
 
309
312
  const batchAfter = await test_utils.oneFromAsync(
@@ -416,7 +419,8 @@ bucket_definitions:
416
419
  clearBatchLimit: 100,
417
420
  moveBatchLimit: 100,
418
421
  moveBatchQueryLimit: 100, // Larger limit for a larger window of operations
419
- minBucketChanges: 1
422
+ minBucketChanges: 1,
423
+ minChangeRatio: 0
420
424
  });
421
425
 
422
426
  const batchAfter = await test_utils.fromAsync(
@@ -503,7 +507,8 @@ bucket_definitions:
503
507
  clearBatchLimit: 2,
504
508
  moveBatchLimit: 1,
505
509
  moveBatchQueryLimit: 1,
506
- minBucketChanges: 1
510
+ minBucketChanges: 1,
511
+ minChangeRatio: 0
507
512
  });
508
513
 
509
514
  const result2 = await bucketStorage.startBatch(test_utils.BATCH_OPTIONS, async (batch) => {
@@ -578,7 +583,8 @@ bucket_definitions:
578
583
  clearBatchLimit: 20,
579
584
  moveBatchLimit: 10,
580
585
  moveBatchQueryLimit: 10,
581
- minBucketChanges: 1
586
+ minBucketChanges: 1,
587
+ minChangeRatio: 0
582
588
  });
583
589
 
584
590
  const checkpoint2 = result2!.flushed_op;
@@ -1,4 +1,4 @@
1
- import { storage } from '@powersync/service-core';
1
+ import { JwtPayload, storage } from '@powersync/service-core';
2
2
  import { RequestParameters, ScopedParameterLookup, SqliteJsonRow } from '@powersync/service-sync-rules';
3
3
  import { expect, test } from 'vitest';
4
4
  import * as test_utils from '../test-utils/test-utils-index.js';
@@ -331,7 +331,7 @@ bucket_definitions:
331
331
  });
332
332
  const checkpoint = await bucketStorage.getCheckpoint();
333
333
 
334
- const parameters = new RequestParameters({ sub: 'u1' }, {});
334
+ const parameters = new RequestParameters(new JwtPayload({ sub: 'u1' }), {});
335
335
 
336
336
  const querier = sync_rules.getBucketParameterQuerier(test_utils.querierOptions(parameters)).querier;
337
337
 
@@ -402,7 +402,7 @@ bucket_definitions:
402
402
 
403
403
  const checkpoint = await bucketStorage.getCheckpoint();
404
404
 
405
- const parameters = new RequestParameters({ sub: 'unknown' }, {});
405
+ const parameters = new RequestParameters(new JwtPayload({ sub: 'unknown' }), {});
406
406
 
407
407
  const querier = sync_rules.getBucketParameterQuerier(test_utils.querierOptions(parameters)).querier;
408
408
 
@@ -502,7 +502,7 @@ bucket_definitions:
502
502
 
503
503
  const checkpoint = await bucketStorage.getCheckpoint();
504
504
 
505
- const parameters = new RequestParameters({ sub: 'u1' }, {});
505
+ const parameters = new RequestParameters(new JwtPayload({ sub: 'u1' }), {});
506
506
 
507
507
  // Test intermediate values - could be moved to sync_rules.test.ts
508
508
  const querier = sync_rules.getBucketParameterQuerier(test_utils.querierOptions(parameters)).querier;
@@ -1,5 +1,6 @@
1
1
  import {
2
2
  createCoreAPIMetrics,
3
+ JwtPayload,
3
4
  storage,
4
5
  StreamingSyncCheckpoint,
5
6
  StreamingSyncCheckpointDiff,
@@ -89,7 +90,7 @@ export function registerSyncTests(factory: storage.TestStorageFactory) {
89
90
  raw_data: true
90
91
  },
91
92
  tracker,
92
- token: { sub: '', exp: Date.now() / 1000 + 10 } as any,
93
+ token: new JwtPayload({ sub: '', exp: Date.now() / 1000 + 10 }),
93
94
  isEncodingAsBson: false
94
95
  });
95
96
 
@@ -150,7 +151,7 @@ bucket_definitions:
150
151
  raw_data: true
151
152
  },
152
153
  tracker,
153
- token: { sub: '', exp: Date.now() / 1000 + 10 } as any,
154
+ token: new JwtPayload({ sub: '', exp: Date.now() / 1000 + 10 }),
154
155
  isEncodingAsBson: false
155
156
  });
156
157
 
@@ -213,7 +214,7 @@ bucket_definitions:
213
214
  raw_data: true
214
215
  },
215
216
  tracker,
216
- token: { sub: '', exp: Date.now() / 1000 + 10 } as any,
217
+ token: new JwtPayload({ sub: '', exp: Date.now() / 1000 + 10 }),
217
218
  isEncodingAsBson: false
218
219
  });
219
220
 
@@ -323,7 +324,7 @@ bucket_definitions:
323
324
  raw_data: true
324
325
  },
325
326
  tracker,
326
- token: { sub: 'user_one', exp: Date.now() / 1000 + 100000 } as any,
327
+ token: new JwtPayload({ sub: 'user_one', exp: Date.now() / 1000 + 100000 }),
327
328
  isEncodingAsBson: false
328
329
  });
329
330
 
@@ -464,7 +465,7 @@ bucket_definitions:
464
465
  raw_data: true
465
466
  },
466
467
  tracker,
467
- token: { sub: '', exp: Date.now() / 1000 + 10 } as any,
468
+ token: new JwtPayload({ sub: '', exp: Date.now() / 1000 + 10 }),
468
469
  isEncodingAsBson: false
469
470
  });
470
471
 
@@ -580,7 +581,7 @@ bucket_definitions:
580
581
  raw_data: true
581
582
  },
582
583
  tracker,
583
- token: { sub: '', exp: Date.now() / 1000 + 100000 } as any,
584
+ token: new JwtPayload({ sub: '', exp: Date.now() / 1000 + 100000 }),
584
585
  isEncodingAsBson: false
585
586
  });
586
587
 
@@ -646,7 +647,7 @@ bucket_definitions:
646
647
  raw_data: false
647
648
  },
648
649
  tracker,
649
- token: { sub: '', exp: Date.now() / 1000 + 10 } as any,
650
+ token: new JwtPayload({ sub: '', exp: Date.now() / 1000 + 10 }),
650
651
  isEncodingAsBson: false
651
652
  });
652
653
 
@@ -675,7 +676,7 @@ bucket_definitions:
675
676
  raw_data: true
676
677
  },
677
678
  tracker,
678
- token: { sub: '', exp: 0 } as any,
679
+ token: new JwtPayload({ sub: '', exp: 0 }),
679
680
  isEncodingAsBson: false
680
681
  });
681
682
 
@@ -706,7 +707,7 @@ bucket_definitions:
706
707
  raw_data: true
707
708
  },
708
709
  tracker,
709
- token: { sub: '', exp: Date.now() / 1000 + 10 } as any,
710
+ token: new JwtPayload({ sub: '', exp: Date.now() / 1000 + 10 }),
710
711
  isEncodingAsBson: false
711
712
  });
712
713
  const iter = stream[Symbol.asyncIterator]();
@@ -780,7 +781,7 @@ bucket_definitions:
780
781
  raw_data: true
781
782
  },
782
783
  tracker,
783
- token: { sub: 'user1', exp: Date.now() / 1000 + 100 } as any,
784
+ token: new JwtPayload({ sub: 'user1', exp: Date.now() / 1000 + 100 }),
784
785
  isEncodingAsBson: false
785
786
  });
786
787
  const iter = stream[Symbol.asyncIterator]();
@@ -856,7 +857,7 @@ bucket_definitions:
856
857
  raw_data: true
857
858
  },
858
859
  tracker,
859
- token: { sub: 'user1', exp: Date.now() / 1000 + 100 } as any,
860
+ token: new JwtPayload({ sub: 'user1', exp: Date.now() / 1000 + 100 }),
860
861
  isEncodingAsBson: false
861
862
  });
862
863
  const iter = stream[Symbol.asyncIterator]();
@@ -923,7 +924,7 @@ bucket_definitions:
923
924
  raw_data: true
924
925
  },
925
926
  tracker,
926
- token: { sub: 'user1', exp: Date.now() / 1000 + 100 } as any,
927
+ token: new JwtPayload({ sub: 'user1', exp: Date.now() / 1000 + 100 }),
927
928
  isEncodingAsBson: false
928
929
  });
929
930
  const iter = stream[Symbol.asyncIterator]();
@@ -991,7 +992,7 @@ bucket_definitions:
991
992
  raw_data: true
992
993
  },
993
994
  tracker,
994
- token: { sub: '', exp: exp } as any,
995
+ token: new JwtPayload({ sub: '', exp: exp }),
995
996
  isEncodingAsBson: false
996
997
  });
997
998
  const iter = stream[Symbol.asyncIterator]();
@@ -1054,7 +1055,7 @@ bucket_definitions:
1054
1055
  raw_data: true
1055
1056
  },
1056
1057
  tracker,
1057
- token: { sub: '', exp: Date.now() / 1000 + 10 } as any,
1058
+ token: new JwtPayload({ sub: '', exp: Date.now() / 1000 + 10 }),
1058
1059
  isEncodingAsBson: false
1059
1060
  });
1060
1061
 
@@ -1100,7 +1101,8 @@ bucket_definitions:
1100
1101
  });
1101
1102
 
1102
1103
  await bucketStorage.compact({
1103
- minBucketChanges: 1
1104
+ minBucketChanges: 1,
1105
+ minChangeRatio: 0
1104
1106
  });
1105
1107
 
1106
1108
  const lines2 = await getCheckpointLines(iter, { consume: true });
@@ -1182,7 +1184,7 @@ bucket_definitions:
1182
1184
  raw_data: true
1183
1185
  },
1184
1186
  tracker,
1185
- token: { sub: 'test', exp: Date.now() / 1000 + 10 } as any,
1187
+ token: new JwtPayload({ sub: 'test', exp: Date.now() / 1000 + 10 }),
1186
1188
  isEncodingAsBson: false
1187
1189
  };
1188
1190
  const stream1 = sync.streamResponse(params);
@@ -1255,7 +1257,7 @@ config:
1255
1257
  raw_data: true
1256
1258
  },
1257
1259
  tracker,
1258
- token: { sub: '', exp: Date.now() / 1000 + 10 } as any,
1260
+ token: new JwtPayload({ sub: '', exp: Date.now() / 1000 + 10 }),
1259
1261
  isEncodingAsBson: false
1260
1262
  });
1261
1263