@powersync/service-module-postgres-storage 0.13.2 → 0.13.4

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 (53) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/@types/storage/PostgresBucketStorageFactory.d.ts +2 -1
  4. package/dist/@types/storage/PostgresReportStorage.d.ts +1 -1
  5. package/dist/@types/storage/PostgresSyncRulesStorage.d.ts +1 -0
  6. package/dist/@types/types/models/SyncRules.d.ts +9 -0
  7. package/dist/@types/types/models/models-index.d.ts +1 -1
  8. package/dist/@types/utils/test-utils.d.ts +2 -2
  9. package/dist/@types/utils/utils-index.d.ts +1 -1
  10. package/dist/migrations/migration-utils.js +2 -2
  11. package/dist/migrations/migration-utils.js.map +1 -1
  12. package/dist/migrations/scripts/1684951997326-init.js +24 -100
  13. package/dist/migrations/scripts/1684951997326-init.js.map +1 -1
  14. package/dist/migrations/scripts/1749024804042-snapshot-progress.js +12 -88
  15. package/dist/migrations/scripts/1749024804042-snapshot-progress.js.map +1 -1
  16. package/dist/migrations/scripts/1756282360128-connection-reporting.js +12 -88
  17. package/dist/migrations/scripts/1756282360128-connection-reporting.js.map +1 -1
  18. package/dist/migrations/scripts/1771232439485-storage-version.js +14 -90
  19. package/dist/migrations/scripts/1771232439485-storage-version.js.map +1 -1
  20. package/dist/migrations/scripts/1771491856000-sync-plan.js +6 -82
  21. package/dist/migrations/scripts/1771491856000-sync-plan.js.map +1 -1
  22. package/dist/storage/PostgresBucketStorageFactory.js +1 -0
  23. package/dist/storage/PostgresBucketStorageFactory.js.map +1 -1
  24. package/dist/storage/PostgresReportStorage.js +3 -3
  25. package/dist/storage/PostgresReportStorage.js.map +1 -1
  26. package/dist/storage/PostgresSyncRulesStorage.js +6 -69
  27. package/dist/storage/PostgresSyncRulesStorage.js.map +1 -1
  28. package/dist/storage/batch/PostgresBucketBatch.js +3 -3
  29. package/dist/storage/batch/PostgresBucketBatch.js.map +1 -1
  30. package/dist/storage/current-data-store.js +1 -1
  31. package/dist/storage/current-data-store.js.map +1 -1
  32. package/dist/types/models/SyncRules.js +3 -1
  33. package/dist/types/models/SyncRules.js.map +1 -1
  34. package/dist/types/models/models-index.js +1 -1
  35. package/dist/types/models/models-index.js.map +1 -1
  36. package/dist/utils/test-utils.js +36 -112
  37. package/dist/utils/test-utils.js.map +1 -1
  38. package/dist/utils/utils-index.js +1 -1
  39. package/dist/utils/utils-index.js.map +1 -1
  40. package/package.json +9 -10
  41. package/src/migrations/migration-utils.ts +2 -2
  42. package/src/storage/PostgresBucketStorageFactory.ts +1 -0
  43. package/src/storage/PostgresReportStorage.ts +5 -5
  44. package/src/storage/PostgresSyncRulesStorage.ts +3 -1
  45. package/src/storage/batch/PostgresBucketBatch.ts +3 -3
  46. package/src/storage/current-data-store.ts +1 -1
  47. package/src/types/models/SyncRules.ts +3 -1
  48. package/src/types/models/models-index.ts +1 -1
  49. package/src/utils/test-utils.ts +3 -3
  50. package/src/utils/utils-index.ts +1 -1
  51. package/test/src/__snapshots__/storage_sync.test.ts.snap +282 -0
  52. package/test/src/connection-report-storage.test.ts +4 -4
  53. package/test/src/setup.ts +1 -1
@@ -1,5 +1,99 @@
1
1
  // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
2
 
3
+ exports[`sync - postgres > storage v1 > can override priority when subscribing to stream 1`] = `
4
+ [
5
+ {
6
+ "checkpoint": {
7
+ "buckets": [
8
+ {
9
+ "bucket": "1#todos|0["a"]",
10
+ "checksum": -1712802421,
11
+ "count": 1,
12
+ "priority": 0,
13
+ "subscriptions": [
14
+ {
15
+ "sub": 0,
16
+ },
17
+ {
18
+ "sub": 1,
19
+ },
20
+ ],
21
+ },
22
+ {
23
+ "bucket": "1#todos|0["b"]",
24
+ "checksum": -1291414318,
25
+ "count": 1,
26
+ "priority": 3,
27
+ "subscriptions": [
28
+ {
29
+ "sub": 1,
30
+ },
31
+ ],
32
+ },
33
+ ],
34
+ "last_op_id": "2",
35
+ "streams": [
36
+ {
37
+ "errors": [],
38
+ "is_default": false,
39
+ "name": "todos",
40
+ },
41
+ ],
42
+ "write_checkpoint": undefined,
43
+ },
44
+ },
45
+ {
46
+ "data": {
47
+ "after": "0",
48
+ "bucket": "1#todos|0["a"]",
49
+ "data": [
50
+ {
51
+ "checksum": 2582164875,
52
+ "data": "{"id":"a","description":"Test 1"}",
53
+ "object_id": "a",
54
+ "object_type": "test",
55
+ "op": "PUT",
56
+ "op_id": "1",
57
+ "subkey": "02d285ac-4f96-5124-8fba-c6d1df992dd1",
58
+ },
59
+ ],
60
+ "has_more": false,
61
+ "next_after": "1",
62
+ },
63
+ },
64
+ {
65
+ "partial_checkpoint_complete": {
66
+ "last_op_id": "2",
67
+ "priority": 0,
68
+ },
69
+ },
70
+ {
71
+ "data": {
72
+ "after": "0",
73
+ "bucket": "1#todos|0["b"]",
74
+ "data": [
75
+ {
76
+ "checksum": 3003552978,
77
+ "data": "{"id":"b","description":"Test 2"}",
78
+ "object_id": "b",
79
+ "object_type": "test",
80
+ "op": "PUT",
81
+ "op_id": "2",
82
+ "subkey": "243b0e26-87b2-578a-993c-5ac5b6f7fd64",
83
+ },
84
+ ],
85
+ "has_more": false,
86
+ "next_after": "2",
87
+ },
88
+ },
89
+ {
90
+ "checkpoint_complete": {
91
+ "last_op_id": "2",
92
+ },
93
+ },
94
+ ]
95
+ `;
96
+
3
97
  exports[`sync - postgres > storage v1 > compacting data - invalidate checkpoint 1`] = `
4
98
  [
5
99
  {
@@ -1095,6 +1189,100 @@ exports[`sync - postgres > storage v1 > sync updates to parameter query only 2`]
1095
1189
  ]
1096
1190
  `;
1097
1191
 
1192
+ exports[`sync - postgres > storage v2 > can override priority when subscribing to stream 1`] = `
1193
+ [
1194
+ {
1195
+ "checkpoint": {
1196
+ "buckets": [
1197
+ {
1198
+ "bucket": "1#todos|0["a"]",
1199
+ "checksum": -1712802421,
1200
+ "count": 1,
1201
+ "priority": 0,
1202
+ "subscriptions": [
1203
+ {
1204
+ "sub": 0,
1205
+ },
1206
+ {
1207
+ "sub": 1,
1208
+ },
1209
+ ],
1210
+ },
1211
+ {
1212
+ "bucket": "1#todos|0["b"]",
1213
+ "checksum": -1291414318,
1214
+ "count": 1,
1215
+ "priority": 3,
1216
+ "subscriptions": [
1217
+ {
1218
+ "sub": 1,
1219
+ },
1220
+ ],
1221
+ },
1222
+ ],
1223
+ "last_op_id": "2",
1224
+ "streams": [
1225
+ {
1226
+ "errors": [],
1227
+ "is_default": false,
1228
+ "name": "todos",
1229
+ },
1230
+ ],
1231
+ "write_checkpoint": undefined,
1232
+ },
1233
+ },
1234
+ {
1235
+ "data": {
1236
+ "after": "0",
1237
+ "bucket": "1#todos|0["a"]",
1238
+ "data": [
1239
+ {
1240
+ "checksum": 2582164875,
1241
+ "data": "{"id":"a","description":"Test 1"}",
1242
+ "object_id": "a",
1243
+ "object_type": "test",
1244
+ "op": "PUT",
1245
+ "op_id": "1",
1246
+ "subkey": "02d285ac-4f96-5124-8fba-c6d1df992dd1",
1247
+ },
1248
+ ],
1249
+ "has_more": false,
1250
+ "next_after": "1",
1251
+ },
1252
+ },
1253
+ {
1254
+ "partial_checkpoint_complete": {
1255
+ "last_op_id": "2",
1256
+ "priority": 0,
1257
+ },
1258
+ },
1259
+ {
1260
+ "data": {
1261
+ "after": "0",
1262
+ "bucket": "1#todos|0["b"]",
1263
+ "data": [
1264
+ {
1265
+ "checksum": 3003552978,
1266
+ "data": "{"id":"b","description":"Test 2"}",
1267
+ "object_id": "b",
1268
+ "object_type": "test",
1269
+ "op": "PUT",
1270
+ "op_id": "2",
1271
+ "subkey": "243b0e26-87b2-578a-993c-5ac5b6f7fd64",
1272
+ },
1273
+ ],
1274
+ "has_more": false,
1275
+ "next_after": "2",
1276
+ },
1277
+ },
1278
+ {
1279
+ "checkpoint_complete": {
1280
+ "last_op_id": "2",
1281
+ },
1282
+ },
1283
+ ]
1284
+ `;
1285
+
1098
1286
  exports[`sync - postgres > storage v2 > compacting data - invalidate checkpoint 1`] = `
1099
1287
  [
1100
1288
  {
@@ -2190,6 +2378,100 @@ exports[`sync - postgres > storage v2 > sync updates to parameter query only 2`]
2190
2378
  ]
2191
2379
  `;
2192
2380
 
2381
+ exports[`sync - postgres > storage v3 > can override priority when subscribing to stream 1`] = `
2382
+ [
2383
+ {
2384
+ "checkpoint": {
2385
+ "buckets": [
2386
+ {
2387
+ "bucket": "1#todos|0["a"]",
2388
+ "checksum": -1712802421,
2389
+ "count": 1,
2390
+ "priority": 0,
2391
+ "subscriptions": [
2392
+ {
2393
+ "sub": 0,
2394
+ },
2395
+ {
2396
+ "sub": 1,
2397
+ },
2398
+ ],
2399
+ },
2400
+ {
2401
+ "bucket": "1#todos|0["b"]",
2402
+ "checksum": -1291414318,
2403
+ "count": 1,
2404
+ "priority": 3,
2405
+ "subscriptions": [
2406
+ {
2407
+ "sub": 1,
2408
+ },
2409
+ ],
2410
+ },
2411
+ ],
2412
+ "last_op_id": "2",
2413
+ "streams": [
2414
+ {
2415
+ "errors": [],
2416
+ "is_default": false,
2417
+ "name": "todos",
2418
+ },
2419
+ ],
2420
+ "write_checkpoint": undefined,
2421
+ },
2422
+ },
2423
+ {
2424
+ "data": {
2425
+ "after": "0",
2426
+ "bucket": "1#todos|0["a"]",
2427
+ "data": [
2428
+ {
2429
+ "checksum": 2582164875,
2430
+ "data": "{"id":"a","description":"Test 1"}",
2431
+ "object_id": "a",
2432
+ "object_type": "test",
2433
+ "op": "PUT",
2434
+ "op_id": "1",
2435
+ "subkey": "02d285ac-4f96-5124-8fba-c6d1df992dd1",
2436
+ },
2437
+ ],
2438
+ "has_more": false,
2439
+ "next_after": "1",
2440
+ },
2441
+ },
2442
+ {
2443
+ "partial_checkpoint_complete": {
2444
+ "last_op_id": "2",
2445
+ "priority": 0,
2446
+ },
2447
+ },
2448
+ {
2449
+ "data": {
2450
+ "after": "0",
2451
+ "bucket": "1#todos|0["b"]",
2452
+ "data": [
2453
+ {
2454
+ "checksum": 3003552978,
2455
+ "data": "{"id":"b","description":"Test 2"}",
2456
+ "object_id": "b",
2457
+ "object_type": "test",
2458
+ "op": "PUT",
2459
+ "op_id": "2",
2460
+ "subkey": "243b0e26-87b2-578a-993c-5ac5b6f7fd64",
2461
+ },
2462
+ ],
2463
+ "has_more": false,
2464
+ "next_after": "2",
2465
+ },
2466
+ },
2467
+ {
2468
+ "checkpoint_complete": {
2469
+ "last_op_id": "2",
2470
+ },
2471
+ },
2472
+ ]
2473
+ `;
2474
+
2193
2475
  exports[`sync - postgres > storage v3 > compacting data - invalidate checkpoint 1`] = `
2194
2476
  [
2195
2477
  {
@@ -1,9 +1,9 @@
1
- import { afterAll, beforeAll, describe, expect, it } from 'vitest';
2
- import { POSTGRES_REPORT_STORAGE_FACTORY } from './util.js';
3
- import { event_types } from '@powersync/service-types';
4
1
  import { register, ReportUserData } from '@powersync/service-core-tests';
5
- import { PostgresReportStorage } from '../../src/storage/PostgresReportStorage.js';
6
2
  import { DateTimeValue } from '@powersync/service-sync-rules';
3
+ import { event_types } from '@powersync/service-types';
4
+ import { afterAll, beforeAll, describe, expect, it } from 'vitest';
5
+ import { PostgresReportStorage } from '../../src/storage/PostgresReportStorage.js';
6
+ import { POSTGRES_REPORT_STORAGE_FACTORY } from './util.js';
7
7
 
8
8
  const factory = await POSTGRES_REPORT_STORAGE_FACTORY();
9
9
  const userData = register.REPORT_TEST_USERS;
package/test/src/setup.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { container } from '@powersync/lib-services-framework';
2
- import { beforeAll } from 'vitest';
3
2
  import { METRICS_HELPER } from '@powersync/service-core-tests';
3
+ import { beforeAll } from 'vitest';
4
4
 
5
5
  beforeAll(async () => {
6
6
  // Executes for every test file