@powersync/service-core 1.10.2 → 1.10.3

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 (64) hide show
  1. package/.probes/poll +1 -0
  2. package/CHANGELOG.md +6 -0
  3. package/package.json +3 -3
  4. package/test/dist/auth.test.d.ts +1 -0
  5. package/test/dist/auth.test.js +332 -0
  6. package/test/dist/auth.test.js.map +1 -0
  7. package/test/dist/broadcast_iterable.test.d.ts +1 -0
  8. package/test/dist/broadcast_iterable.test.js +131 -0
  9. package/test/dist/broadcast_iterable.test.js.map +1 -0
  10. package/test/dist/bucket_validation.d.ts +26 -0
  11. package/test/dist/bucket_validation.js +56 -0
  12. package/test/dist/bucket_validation.js.map +1 -0
  13. package/test/dist/bucket_validation.test.d.ts +1 -0
  14. package/test/dist/bucket_validation.test.js +134 -0
  15. package/test/dist/bucket_validation.test.js.map +1 -0
  16. package/test/dist/checksum_cache.test.d.ts +1 -0
  17. package/test/dist/checksum_cache.test.js +375 -0
  18. package/test/dist/checksum_cache.test.js.map +1 -0
  19. package/test/dist/compacting.test.d.ts +1 -0
  20. package/test/dist/compacting.test.js +254 -0
  21. package/test/dist/compacting.test.js.map +1 -0
  22. package/test/dist/data_storage.test.d.ts +1 -0
  23. package/test/dist/data_storage.test.js +1306 -0
  24. package/test/dist/data_storage.test.js.map +1 -0
  25. package/test/dist/demultiplexer.test.d.ts +1 -0
  26. package/test/dist/demultiplexer.test.js +166 -0
  27. package/test/dist/demultiplexer.test.js.map +1 -0
  28. package/test/dist/env.d.ts +3 -0
  29. package/test/dist/env.js +5 -0
  30. package/test/dist/env.js.map +1 -0
  31. package/test/dist/merge_iterable.test.d.ts +1 -0
  32. package/test/dist/merge_iterable.test.js +321 -0
  33. package/test/dist/merge_iterable.test.js.map +1 -0
  34. package/test/dist/routes/probes.integration.test.d.ts +1 -0
  35. package/test/dist/routes/probes.integration.test.js +192 -0
  36. package/test/dist/routes/probes.integration.test.js.map +1 -0
  37. package/test/dist/routes/probes.test.d.ts +1 -0
  38. package/test/dist/routes/probes.test.js +119 -0
  39. package/test/dist/routes/probes.test.js.map +1 -0
  40. package/test/dist/setup.d.ts +1 -0
  41. package/test/dist/setup.js +7 -0
  42. package/test/dist/setup.js.map +1 -0
  43. package/test/dist/stream_utils.d.ts +6 -0
  44. package/test/dist/stream_utils.js +37 -0
  45. package/test/dist/stream_utils.js.map +1 -0
  46. package/test/dist/sync/BucketChecksumState.test.d.ts +1 -0
  47. package/test/dist/sync/BucketChecksumState.test.js +499 -0
  48. package/test/dist/sync/BucketChecksumState.test.js.map +1 -0
  49. package/test/dist/sync/checksum_state.test.d.ts +1 -0
  50. package/test/dist/sync/checksum_state.test.js +21 -0
  51. package/test/dist/sync/checksum_state.test.js.map +1 -0
  52. package/test/dist/sync/util.test.d.ts +1 -0
  53. package/test/dist/sync/util.test.js +28 -0
  54. package/test/dist/sync/util.test.js.map +1 -0
  55. package/test/dist/sync.test.d.ts +1 -0
  56. package/test/dist/sync.test.js +428 -0
  57. package/test/dist/sync.test.js.map +1 -0
  58. package/test/dist/util.d.ts +36 -0
  59. package/test/dist/util.js +114 -0
  60. package/test/dist/util.js.map +1 -0
  61. package/test/dist/util.test.d.ts +1 -0
  62. package/test/dist/util.test.js +45 -0
  63. package/test/dist/util.test.js.map +1 -0
  64. package/test/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,254 @@
1
+ import { SaveOperationTag } from '@/storage/BucketStorage.js';
2
+ import { describe, expect, test } from 'vitest';
3
+ import { validateCompactedBucket } from './bucket_validation.js';
4
+ import { oneFromAsync } from './stream_utils.js';
5
+ import { BATCH_OPTIONS, makeTestTable, MONGO_STORAGE_FACTORY, rid, testRules } from './util.js';
6
+ const TEST_TABLE = makeTestTable('test', ['id']);
7
+ // Test with the default options - large batch sizes
8
+ describe('compacting buckets - default options', () => compactTests({}));
9
+ // Also test with the miniumum batch sizes, forcing usage of multiple batches internally
10
+ describe('compacting buckets - batched', () => compactTests({ clearBatchLimit: 2, moveBatchLimit: 1, moveBatchQueryLimit: 1 }));
11
+ function compactTests(compactOptions) {
12
+ const factory = MONGO_STORAGE_FACTORY;
13
+ test('compacting (1)', async () => {
14
+ const sync_rules = testRules(`
15
+ bucket_definitions:
16
+ global:
17
+ data: [select * from test]
18
+ `);
19
+ const storage = (await factory()).getInstance(sync_rules);
20
+ const result = await storage.startBatch(BATCH_OPTIONS, async (batch) => {
21
+ await batch.save({
22
+ sourceTable: TEST_TABLE,
23
+ tag: SaveOperationTag.INSERT,
24
+ after: {
25
+ id: 't1'
26
+ },
27
+ afterReplicaId: rid('t1')
28
+ });
29
+ await batch.save({
30
+ sourceTable: TEST_TABLE,
31
+ tag: SaveOperationTag.INSERT,
32
+ after: {
33
+ id: 't2'
34
+ },
35
+ afterReplicaId: rid('t2')
36
+ });
37
+ await batch.save({
38
+ sourceTable: TEST_TABLE,
39
+ tag: SaveOperationTag.UPDATE,
40
+ after: {
41
+ id: 't2'
42
+ },
43
+ afterReplicaId: rid('t2')
44
+ });
45
+ });
46
+ const checkpoint = result.flushed_op;
47
+ const batchBefore = await oneFromAsync(storage.getBucketDataBatch(checkpoint, new Map([['global[]', '0']])));
48
+ const dataBefore = batchBefore.batch.data;
49
+ const checksumBefore = await storage.getChecksums(checkpoint, ['global[]']);
50
+ expect(dataBefore).toMatchObject([
51
+ {
52
+ checksum: 2634521662,
53
+ object_id: 't1',
54
+ op: 'PUT',
55
+ op_id: '1'
56
+ },
57
+ {
58
+ checksum: 4243212114,
59
+ object_id: 't2',
60
+ op: 'PUT',
61
+ op_id: '2'
62
+ },
63
+ {
64
+ checksum: 4243212114,
65
+ object_id: 't2',
66
+ op: 'PUT',
67
+ op_id: '3'
68
+ }
69
+ ]);
70
+ await storage.compact(compactOptions);
71
+ const batchAfter = await oneFromAsync(storage.getBucketDataBatch(checkpoint, new Map([['global[]', '0']])));
72
+ const dataAfter = batchAfter.batch.data;
73
+ const checksumAfter = await storage.getChecksums(checkpoint, ['global[]']);
74
+ expect(batchAfter.targetOp).toEqual(3n);
75
+ expect(dataAfter).toMatchObject([
76
+ {
77
+ checksum: 2634521662,
78
+ object_id: 't1',
79
+ op: 'PUT',
80
+ op_id: '1'
81
+ },
82
+ {
83
+ checksum: 4243212114,
84
+ op: 'MOVE',
85
+ op_id: '2'
86
+ },
87
+ {
88
+ checksum: 4243212114,
89
+ object_id: 't2',
90
+ op: 'PUT',
91
+ op_id: '3'
92
+ }
93
+ ]);
94
+ expect(checksumBefore.get('global[]')).toEqual(checksumAfter.get('global[]'));
95
+ validateCompactedBucket(dataBefore, dataAfter);
96
+ });
97
+ test('compacting (2)', async () => {
98
+ const sync_rules = testRules(`
99
+ bucket_definitions:
100
+ global:
101
+ data: [select * from test]
102
+ `);
103
+ const storage = (await factory()).getInstance(sync_rules);
104
+ const result = await storage.startBatch(BATCH_OPTIONS, async (batch) => {
105
+ await batch.save({
106
+ sourceTable: TEST_TABLE,
107
+ tag: SaveOperationTag.INSERT,
108
+ after: {
109
+ id: 't1'
110
+ },
111
+ afterReplicaId: rid('t1')
112
+ });
113
+ await batch.save({
114
+ sourceTable: TEST_TABLE,
115
+ tag: SaveOperationTag.INSERT,
116
+ after: {
117
+ id: 't2'
118
+ },
119
+ afterReplicaId: rid('t2')
120
+ });
121
+ await batch.save({
122
+ sourceTable: TEST_TABLE,
123
+ tag: SaveOperationTag.DELETE,
124
+ before: {
125
+ id: 't1'
126
+ },
127
+ beforeReplicaId: rid('t1')
128
+ });
129
+ await batch.save({
130
+ sourceTable: TEST_TABLE,
131
+ tag: SaveOperationTag.UPDATE,
132
+ after: {
133
+ id: 't2'
134
+ },
135
+ afterReplicaId: rid('t2')
136
+ });
137
+ });
138
+ const checkpoint = result.flushed_op;
139
+ const batchBefore = await oneFromAsync(storage.getBucketDataBatch(checkpoint, new Map([['global[]', '0']])));
140
+ const dataBefore = batchBefore.batch.data;
141
+ const checksumBefore = await storage.getChecksums(checkpoint, ['global[]']);
142
+ expect(dataBefore).toMatchObject([
143
+ {
144
+ checksum: 2634521662,
145
+ object_id: 't1',
146
+ op: 'PUT',
147
+ op_id: '1'
148
+ },
149
+ {
150
+ checksum: 4243212114,
151
+ object_id: 't2',
152
+ op: 'PUT',
153
+ op_id: '2'
154
+ },
155
+ {
156
+ checksum: 4228978084,
157
+ object_id: 't1',
158
+ op: 'REMOVE',
159
+ op_id: '3'
160
+ },
161
+ {
162
+ checksum: 4243212114,
163
+ object_id: 't2',
164
+ op: 'PUT',
165
+ op_id: '4'
166
+ }
167
+ ]);
168
+ await storage.compact(compactOptions);
169
+ const batchAfter = await oneFromAsync(storage.getBucketDataBatch(checkpoint, new Map([['global[]', '0']])));
170
+ const dataAfter = batchAfter.batch.data;
171
+ const checksumAfter = await storage.getChecksums(checkpoint, ['global[]']);
172
+ expect(batchAfter.targetOp).toEqual(4n);
173
+ expect(dataAfter).toMatchObject([
174
+ {
175
+ checksum: -1778190028,
176
+ op: 'CLEAR',
177
+ op_id: '3'
178
+ },
179
+ {
180
+ checksum: 4243212114,
181
+ object_id: 't2',
182
+ op: 'PUT',
183
+ op_id: '4'
184
+ }
185
+ ]);
186
+ expect(checksumBefore.get('global[]')).toEqual(checksumAfter.get('global[]'));
187
+ validateCompactedBucket(dataBefore, dataAfter);
188
+ });
189
+ test('compacting (3)', async () => {
190
+ const sync_rules = testRules(`
191
+ bucket_definitions:
192
+ global:
193
+ data: [select * from test]
194
+ `);
195
+ const storage = (await factory()).getInstance(sync_rules);
196
+ const result = await storage.startBatch(BATCH_OPTIONS, async (batch) => {
197
+ await batch.save({
198
+ sourceTable: TEST_TABLE,
199
+ tag: SaveOperationTag.INSERT,
200
+ after: {
201
+ id: 't1'
202
+ },
203
+ afterReplicaId: 't1'
204
+ });
205
+ await batch.save({
206
+ sourceTable: TEST_TABLE,
207
+ tag: SaveOperationTag.INSERT,
208
+ after: {
209
+ id: 't2'
210
+ },
211
+ afterReplicaId: 't2'
212
+ });
213
+ await batch.save({
214
+ sourceTable: TEST_TABLE,
215
+ tag: SaveOperationTag.DELETE,
216
+ before: {
217
+ id: 't1'
218
+ },
219
+ beforeReplicaId: 't1'
220
+ });
221
+ });
222
+ const checkpoint1 = result.flushed_op;
223
+ const checksumBefore = await storage.getChecksums(checkpoint1, ['global[]']);
224
+ const result2 = await storage.startBatch(BATCH_OPTIONS, async (batch) => {
225
+ await batch.save({
226
+ sourceTable: TEST_TABLE,
227
+ tag: SaveOperationTag.DELETE,
228
+ before: {
229
+ id: 't2'
230
+ },
231
+ beforeReplicaId: 't2'
232
+ });
233
+ });
234
+ const checkpoint2 = result2.flushed_op;
235
+ await storage.compact(compactOptions);
236
+ const batchAfter = await oneFromAsync(storage.getBucketDataBatch(checkpoint2, new Map([['global[]', '0']])));
237
+ const dataAfter = batchAfter.batch.data;
238
+ const checksumAfter = await storage.getChecksums(checkpoint2, ['global[]']);
239
+ expect(batchAfter.targetOp).toEqual(4n);
240
+ expect(dataAfter).toMatchObject([
241
+ {
242
+ checksum: 1874612650,
243
+ op: 'CLEAR',
244
+ op_id: '4'
245
+ }
246
+ ]);
247
+ expect(checksumAfter.get('global[]')).toEqual({
248
+ bucket: 'global[]',
249
+ count: 1,
250
+ checksum: 1874612650
251
+ });
252
+ });
253
+ }
254
+ //# sourceMappingURL=compacting.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compacting.test.js","sourceRoot":"","sources":["../src/compacting.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};