@syncular/client 0.0.1 → 0.0.2-126
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/README.md +23 -0
- package/dist/blobs/index.js +3 -3
- package/dist/client.d.ts +10 -5
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +70 -21
- package/dist/client.js.map +1 -1
- package/dist/conflicts.d.ts.map +1 -1
- package/dist/conflicts.js +1 -7
- package/dist/conflicts.js.map +1 -1
- package/dist/create-client.d.ts +5 -1
- package/dist/create-client.d.ts.map +1 -1
- package/dist/create-client.js +22 -10
- package/dist/create-client.js.map +1 -1
- package/dist/engine/SyncEngine.d.ts +24 -2
- package/dist/engine/SyncEngine.d.ts.map +1 -1
- package/dist/engine/SyncEngine.js +290 -43
- package/dist/engine/SyncEngine.js.map +1 -1
- package/dist/engine/index.js +2 -2
- package/dist/engine/types.d.ts +16 -4
- package/dist/engine/types.d.ts.map +1 -1
- package/dist/handlers/create-handler.d.ts +15 -5
- package/dist/handlers/create-handler.d.ts.map +1 -1
- package/dist/handlers/create-handler.js +35 -24
- package/dist/handlers/create-handler.js.map +1 -1
- package/dist/handlers/types.d.ts +5 -5
- package/dist/handlers/types.d.ts.map +1 -1
- package/dist/index.js +19 -19
- package/dist/migrate.d.ts +1 -1
- package/dist/migrate.d.ts.map +1 -1
- package/dist/migrate.js +148 -28
- package/dist/migrate.js.map +1 -1
- package/dist/mutations.d.ts +3 -1
- package/dist/mutations.d.ts.map +1 -1
- package/dist/mutations.js +93 -18
- package/dist/mutations.js.map +1 -1
- package/dist/outbox.d.ts.map +1 -1
- package/dist/outbox.js +1 -11
- package/dist/outbox.js.map +1 -1
- package/dist/plugins/incrementing-version.d.ts +1 -1
- package/dist/plugins/incrementing-version.js +2 -2
- package/dist/plugins/index.js +2 -2
- package/dist/proxy/dialect.js +1 -1
- package/dist/proxy/driver.js +1 -1
- package/dist/proxy/index.js +4 -4
- package/dist/proxy/mutations.js +1 -1
- package/dist/pull-engine.d.ts +29 -3
- package/dist/pull-engine.d.ts.map +1 -1
- package/dist/pull-engine.js +314 -78
- package/dist/pull-engine.js.map +1 -1
- package/dist/push-engine.d.ts.map +1 -1
- package/dist/push-engine.js +28 -3
- package/dist/push-engine.js.map +1 -1
- package/dist/query/QueryContext.js +1 -1
- package/dist/query/index.js +3 -3
- package/dist/query/tracked-select.d.ts +2 -1
- package/dist/query/tracked-select.d.ts.map +1 -1
- package/dist/query/tracked-select.js +1 -1
- package/dist/schema.d.ts +2 -2
- package/dist/schema.d.ts.map +1 -1
- package/dist/sync-loop.d.ts +5 -1
- package/dist/sync-loop.d.ts.map +1 -1
- package/dist/sync-loop.js +167 -18
- package/dist/sync-loop.js.map +1 -1
- package/package.json +30 -6
- package/src/client.test.ts +369 -0
- package/src/client.ts +101 -22
- package/src/conflicts.ts +1 -10
- package/src/create-client.ts +33 -5
- package/src/engine/SyncEngine.test.ts +157 -0
- package/src/engine/SyncEngine.ts +359 -40
- package/src/engine/types.ts +22 -4
- package/src/handlers/create-handler.ts +86 -37
- package/src/handlers/types.ts +10 -4
- package/src/migrate.ts +215 -33
- package/src/mutations.ts +143 -21
- package/src/outbox.ts +1 -15
- package/src/plugins/incrementing-version.ts +2 -2
- package/src/pull-engine.test.ts +147 -0
- package/src/pull-engine.ts +392 -77
- package/src/push-engine.ts +33 -1
- package/src/query/tracked-select.ts +1 -1
- package/src/schema.ts +2 -2
- package/src/sync-loop.ts +215 -19
package/dist/pull-engine.js
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @syncular/client - Sync pull engine
|
|
3
3
|
*/
|
|
4
|
+
import { decodeSnapshotRows } from '@syncular/core';
|
|
4
5
|
import { sql } from 'kysely';
|
|
5
6
|
// Simple JSON serialization cache to avoid repeated stringification
|
|
6
7
|
// of the same objects during pull operations
|
|
7
8
|
const jsonCache = new WeakMap();
|
|
8
9
|
const jsonCacheStats = { hits: 0, misses: 0 };
|
|
10
|
+
const SNAPSHOT_CHUNK_CONCURRENCY = 8;
|
|
11
|
+
const SNAPSHOT_APPLY_BATCH_ROWS = 500;
|
|
12
|
+
const SNAPSHOT_ROW_FRAME_MAGIC = new Uint8Array([0x53, 0x52, 0x46, 0x31]); // "SRF1"
|
|
13
|
+
const FRAME_LENGTH_BYTES = 4;
|
|
9
14
|
function serializeJsonCached(obj) {
|
|
10
15
|
if (obj === null || typeof obj !== 'object') {
|
|
11
16
|
return JSON.stringify(obj);
|
|
@@ -26,57 +31,197 @@ function serializeJsonCached(obj) {
|
|
|
26
31
|
function isGzipBytes(bytes) {
|
|
27
32
|
return bytes.length >= 2 && bytes[0] === 0x1f && bytes[1] === 0x8b;
|
|
28
33
|
}
|
|
34
|
+
function bytesToReadableStream(bytes) {
|
|
35
|
+
return new ReadableStream({
|
|
36
|
+
start(controller) {
|
|
37
|
+
controller.enqueue(bytes);
|
|
38
|
+
controller.close();
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
function concatBytes(chunks) {
|
|
43
|
+
if (chunks.length === 1) {
|
|
44
|
+
return chunks[0] ?? new Uint8Array();
|
|
45
|
+
}
|
|
46
|
+
let total = 0;
|
|
47
|
+
for (const chunk of chunks)
|
|
48
|
+
total += chunk.length;
|
|
49
|
+
const out = new Uint8Array(total);
|
|
50
|
+
let offset = 0;
|
|
51
|
+
for (const chunk of chunks) {
|
|
52
|
+
out.set(chunk, offset);
|
|
53
|
+
offset += chunk.length;
|
|
54
|
+
}
|
|
55
|
+
return out;
|
|
56
|
+
}
|
|
57
|
+
function appendBytes(base, next) {
|
|
58
|
+
if (base.length === 0)
|
|
59
|
+
return next;
|
|
60
|
+
if (next.length === 0)
|
|
61
|
+
return base;
|
|
62
|
+
const out = new Uint8Array(base.length + next.length);
|
|
63
|
+
out.set(base, 0);
|
|
64
|
+
out.set(next, base.length);
|
|
65
|
+
return out;
|
|
66
|
+
}
|
|
67
|
+
function toOwnedUint8Array(chunk) {
|
|
68
|
+
const out = new ArrayBuffer(chunk.byteLength);
|
|
69
|
+
const bytes = new Uint8Array(out);
|
|
70
|
+
bytes.set(chunk);
|
|
71
|
+
return bytes;
|
|
72
|
+
}
|
|
73
|
+
async function streamToBytes(stream) {
|
|
74
|
+
const reader = stream.getReader();
|
|
75
|
+
try {
|
|
76
|
+
const chunks = [];
|
|
77
|
+
while (true) {
|
|
78
|
+
const { done, value } = await reader.read();
|
|
79
|
+
if (done)
|
|
80
|
+
break;
|
|
81
|
+
if (!value || value.length === 0)
|
|
82
|
+
continue;
|
|
83
|
+
chunks.push(value);
|
|
84
|
+
}
|
|
85
|
+
return concatBytes(chunks);
|
|
86
|
+
}
|
|
87
|
+
finally {
|
|
88
|
+
reader.releaseLock();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
async function maybeGunzipStream(stream) {
|
|
92
|
+
const reader = stream.getReader();
|
|
93
|
+
const prefetched = [];
|
|
94
|
+
let prefetchedBytes = 0;
|
|
95
|
+
while (prefetchedBytes < 2) {
|
|
96
|
+
const { done, value } = await reader.read();
|
|
97
|
+
if (done)
|
|
98
|
+
break;
|
|
99
|
+
if (!value || value.length === 0)
|
|
100
|
+
continue;
|
|
101
|
+
prefetched.push(value);
|
|
102
|
+
prefetchedBytes += value.length;
|
|
103
|
+
}
|
|
104
|
+
const prefetchedCombined = concatBytes(prefetched);
|
|
105
|
+
const gzip = isGzipBytes(prefetchedCombined);
|
|
106
|
+
const replayStream = new ReadableStream({
|
|
107
|
+
start(controller) {
|
|
108
|
+
if (prefetchedCombined.length > 0) {
|
|
109
|
+
controller.enqueue(toOwnedUint8Array(prefetchedCombined));
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
async pull(controller) {
|
|
113
|
+
const { done, value } = await reader.read();
|
|
114
|
+
if (done) {
|
|
115
|
+
controller.close();
|
|
116
|
+
reader.releaseLock();
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
if (!value || value.length === 0)
|
|
120
|
+
return;
|
|
121
|
+
controller.enqueue(toOwnedUint8Array(value));
|
|
122
|
+
},
|
|
123
|
+
async cancel(reason) {
|
|
124
|
+
await reader.cancel(reason);
|
|
125
|
+
reader.releaseLock();
|
|
126
|
+
},
|
|
127
|
+
});
|
|
128
|
+
if (!gzip)
|
|
129
|
+
return replayStream;
|
|
130
|
+
if (typeof DecompressionStream !== 'undefined') {
|
|
131
|
+
return replayStream.pipeThrough(new DecompressionStream('gzip'));
|
|
132
|
+
}
|
|
133
|
+
throw new Error('Snapshot chunk appears gzip-compressed but gzip decompression is not available in this runtime');
|
|
134
|
+
}
|
|
29
135
|
async function maybeGunzip(bytes) {
|
|
30
136
|
if (!isGzipBytes(bytes))
|
|
31
137
|
return bytes;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
138
|
+
const decompressedStream = await maybeGunzipStream(bytesToReadableStream(bytes));
|
|
139
|
+
return streamToBytes(decompressedStream);
|
|
140
|
+
}
|
|
141
|
+
async function* decodeSnapshotRowStreamBatches(stream, batchSize) {
|
|
142
|
+
const reader = stream.getReader();
|
|
143
|
+
const decoder = new TextDecoder();
|
|
144
|
+
let pending = new Uint8Array(0);
|
|
145
|
+
let headerValidated = false;
|
|
146
|
+
let rows = [];
|
|
147
|
+
try {
|
|
148
|
+
while (true) {
|
|
149
|
+
const { done, value } = await reader.read();
|
|
150
|
+
if (done)
|
|
151
|
+
break;
|
|
152
|
+
if (!value || value.length === 0)
|
|
153
|
+
continue;
|
|
154
|
+
pending = appendBytes(pending, value);
|
|
155
|
+
if (!headerValidated) {
|
|
156
|
+
if (pending.length < SNAPSHOT_ROW_FRAME_MAGIC.length) {
|
|
50
157
|
continue;
|
|
51
|
-
|
|
52
|
-
|
|
158
|
+
}
|
|
159
|
+
for (let index = 0; index < SNAPSHOT_ROW_FRAME_MAGIC.length; index++) {
|
|
160
|
+
if (pending[index] !== SNAPSHOT_ROW_FRAME_MAGIC[index]) {
|
|
161
|
+
throw new Error('Unexpected snapshot chunk format');
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
pending = pending.subarray(SNAPSHOT_ROW_FRAME_MAGIC.length);
|
|
165
|
+
headerValidated = true;
|
|
53
166
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
167
|
+
while (pending.length >= FRAME_LENGTH_BYTES) {
|
|
168
|
+
const view = new DataView(pending.buffer, pending.byteOffset, pending.byteLength);
|
|
169
|
+
const payloadLength = view.getUint32(0, false);
|
|
170
|
+
if (pending.length < FRAME_LENGTH_BYTES + payloadLength) {
|
|
171
|
+
break;
|
|
172
|
+
}
|
|
173
|
+
const payload = pending.subarray(FRAME_LENGTH_BYTES, FRAME_LENGTH_BYTES + payloadLength);
|
|
174
|
+
rows.push(JSON.parse(decoder.decode(payload)));
|
|
175
|
+
pending = pending.subarray(FRAME_LENGTH_BYTES + payloadLength);
|
|
176
|
+
if (rows.length >= batchSize) {
|
|
177
|
+
yield rows;
|
|
178
|
+
rows = [];
|
|
179
|
+
}
|
|
59
180
|
}
|
|
60
|
-
return out;
|
|
61
181
|
}
|
|
62
|
-
|
|
63
|
-
|
|
182
|
+
if (!headerValidated) {
|
|
183
|
+
throw new Error('Snapshot chunk payload is too small');
|
|
184
|
+
}
|
|
185
|
+
if (pending.length > 0) {
|
|
186
|
+
if (pending.length < FRAME_LENGTH_BYTES) {
|
|
187
|
+
throw new Error('Snapshot chunk payload ended mid-frame header');
|
|
188
|
+
}
|
|
189
|
+
const view = new DataView(pending.buffer, pending.byteOffset, pending.byteLength);
|
|
190
|
+
const payloadLength = view.getUint32(0, false);
|
|
191
|
+
if (pending.length < FRAME_LENGTH_BYTES + payloadLength) {
|
|
192
|
+
throw new Error('Snapshot chunk payload ended mid-frame body');
|
|
193
|
+
}
|
|
194
|
+
while (pending.length >= FRAME_LENGTH_BYTES) {
|
|
195
|
+
const nextView = new DataView(pending.buffer, pending.byteOffset, pending.byteLength);
|
|
196
|
+
const nextLength = nextView.getUint32(0, false);
|
|
197
|
+
if (pending.length < FRAME_LENGTH_BYTES + nextLength) {
|
|
198
|
+
break;
|
|
199
|
+
}
|
|
200
|
+
const payload = pending.subarray(FRAME_LENGTH_BYTES, FRAME_LENGTH_BYTES + nextLength);
|
|
201
|
+
rows.push(JSON.parse(decoder.decode(payload)));
|
|
202
|
+
pending = pending.subarray(FRAME_LENGTH_BYTES + nextLength);
|
|
203
|
+
if (rows.length >= batchSize) {
|
|
204
|
+
yield rows;
|
|
205
|
+
rows = [];
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
if (pending.length > 0) {
|
|
209
|
+
throw new Error('Snapshot chunk payload ended mid-frame body');
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
if (rows.length > 0) {
|
|
213
|
+
yield rows;
|
|
64
214
|
}
|
|
65
215
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
throw new Error('Snapshot chunk appears gzip-compressed but gzip decompression is not available in this runtime');
|
|
69
|
-
}
|
|
70
|
-
function parseNdjsonRows(text) {
|
|
71
|
-
const rows = [];
|
|
72
|
-
for (const line of text.split('\n')) {
|
|
73
|
-
if (!line)
|
|
74
|
-
continue;
|
|
75
|
-
rows.push(JSON.parse(line));
|
|
216
|
+
finally {
|
|
217
|
+
reader.releaseLock();
|
|
76
218
|
}
|
|
77
|
-
return rows;
|
|
78
219
|
}
|
|
79
|
-
async function computeSha256Hex(bytes) {
|
|
220
|
+
async function computeSha256Hex(bytes, sha256Override) {
|
|
221
|
+
// Use injected implementation if provided (e.g. expo-crypto on React Native)
|
|
222
|
+
if (sha256Override) {
|
|
223
|
+
return sha256Override(bytes);
|
|
224
|
+
}
|
|
80
225
|
// Use crypto.subtle if available (browsers, modern Node/Bun)
|
|
81
226
|
if (typeof crypto !== 'undefined' && crypto.subtle) {
|
|
82
227
|
// Create a fresh ArrayBuffer to satisfy crypto.subtle's type requirements
|
|
@@ -86,32 +231,48 @@ async function computeSha256Hex(bytes) {
|
|
|
86
231
|
const hashArray = new Uint8Array(hashBuffer);
|
|
87
232
|
return Array.from(hashArray, (b) => b.toString(16).padStart(2, '0')).join('');
|
|
88
233
|
}
|
|
89
|
-
// Fallback for Node.js/Bun without crypto.subtle
|
|
90
|
-
if (typeof globalThis.require === 'function') {
|
|
91
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
92
|
-
const { createHash } = await import('node:crypto');
|
|
93
|
-
return createHash('sha256').update(Buffer.from(bytes)).digest('hex');
|
|
94
|
-
}
|
|
95
234
|
throw new Error('No crypto implementation available for SHA-256. ' +
|
|
96
|
-
'
|
|
235
|
+
'Provide a sha256 function via options or ensure crypto.subtle is available.');
|
|
236
|
+
}
|
|
237
|
+
async function fetchSnapshotChunkStream(transport, chunkId) {
|
|
238
|
+
if (transport.fetchSnapshotChunkStream) {
|
|
239
|
+
return transport.fetchSnapshotChunkStream({ chunkId });
|
|
240
|
+
}
|
|
241
|
+
const bytes = await transport.fetchSnapshotChunk({ chunkId });
|
|
242
|
+
return bytesToReadableStream(bytes);
|
|
243
|
+
}
|
|
244
|
+
async function mapWithConcurrency(items, concurrency, mapper) {
|
|
245
|
+
if (items.length === 0)
|
|
246
|
+
return [];
|
|
247
|
+
const workerCount = Math.max(1, Math.min(concurrency, items.length));
|
|
248
|
+
const results = new Array(items.length);
|
|
249
|
+
let nextIndex = 0;
|
|
250
|
+
async function worker() {
|
|
251
|
+
while (nextIndex < items.length) {
|
|
252
|
+
const index = nextIndex;
|
|
253
|
+
nextIndex += 1;
|
|
254
|
+
const item = items[index];
|
|
255
|
+
if (item === undefined)
|
|
256
|
+
continue;
|
|
257
|
+
results[index] = await mapper(item, index);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
await Promise.all(Array.from({ length: workerCount }, () => worker()));
|
|
261
|
+
return results;
|
|
97
262
|
}
|
|
98
|
-
async function materializeChunkedSnapshots(transport, response) {
|
|
263
|
+
async function materializeChunkedSnapshots(transport, response, sha256Override) {
|
|
99
264
|
const chunkCache = new Map();
|
|
100
|
-
const decoder = new TextDecoder();
|
|
101
265
|
const subscriptions = await Promise.all(response.subscriptions.map(async (sub) => {
|
|
102
266
|
if (!sub.bootstrap)
|
|
103
267
|
return sub;
|
|
104
268
|
if (!sub.snapshots || sub.snapshots.length === 0)
|
|
105
269
|
return sub;
|
|
106
|
-
const snapshots =
|
|
107
|
-
for (const snapshot of sub.snapshots) {
|
|
270
|
+
const snapshots = await mapWithConcurrency(sub.snapshots, SNAPSHOT_CHUNK_CONCURRENCY, async (snapshot) => {
|
|
108
271
|
const chunks = snapshot.chunks ?? [];
|
|
109
272
|
if (chunks.length === 0) {
|
|
110
|
-
|
|
111
|
-
continue;
|
|
273
|
+
return snapshot;
|
|
112
274
|
}
|
|
113
|
-
const
|
|
114
|
-
for (const chunk of chunks) {
|
|
275
|
+
const parsedRowsByChunk = await mapWithConcurrency(chunks, SNAPSHOT_CHUNK_CONCURRENCY, async (chunk) => {
|
|
115
276
|
const promise = chunkCache.get(chunk.id) ??
|
|
116
277
|
transport.fetchSnapshotChunk({ chunkId: chunk.id });
|
|
117
278
|
chunkCache.set(chunk.id, promise);
|
|
@@ -119,22 +280,69 @@ async function materializeChunkedSnapshots(transport, response) {
|
|
|
119
280
|
const bytes = await maybeGunzip(raw);
|
|
120
281
|
// Verify chunk integrity using sha256 hash
|
|
121
282
|
if (chunk.sha256) {
|
|
122
|
-
const actualHash = await computeSha256Hex(bytes);
|
|
283
|
+
const actualHash = await computeSha256Hex(bytes, sha256Override);
|
|
123
284
|
if (actualHash !== chunk.sha256) {
|
|
124
285
|
throw new Error(`Snapshot chunk integrity check failed: expected sha256 ${chunk.sha256}, got ${actualHash}`);
|
|
125
286
|
}
|
|
126
287
|
}
|
|
127
|
-
|
|
128
|
-
|
|
288
|
+
return decodeSnapshotRows(bytes);
|
|
289
|
+
});
|
|
290
|
+
const rows = [];
|
|
291
|
+
for (const parsedRows of parsedRowsByChunk) {
|
|
292
|
+
rows.push(...parsedRows);
|
|
129
293
|
}
|
|
130
|
-
|
|
131
|
-
}
|
|
294
|
+
return { ...snapshot, rows, chunks: undefined };
|
|
295
|
+
});
|
|
132
296
|
return { ...sub, snapshots };
|
|
133
297
|
}));
|
|
134
298
|
// Clear chunk cache after processing to prevent memory accumulation
|
|
135
299
|
chunkCache.clear();
|
|
136
300
|
return { ...response, subscriptions };
|
|
137
301
|
}
|
|
302
|
+
async function applyChunkedSnapshot(transport, handler, trx, snapshot) {
|
|
303
|
+
const chunks = snapshot.chunks ?? [];
|
|
304
|
+
if (chunks.length === 0) {
|
|
305
|
+
await handler.applySnapshot({ trx }, snapshot);
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
let nextIsFirstPage = snapshot.isFirstPage;
|
|
309
|
+
for (let chunkIndex = 0; chunkIndex < chunks.length; chunkIndex += 1) {
|
|
310
|
+
const chunk = chunks[chunkIndex];
|
|
311
|
+
if (!chunk)
|
|
312
|
+
continue;
|
|
313
|
+
const rawStream = await fetchSnapshotChunkStream(transport, chunk.id);
|
|
314
|
+
const decodedStream = await maybeGunzipStream(rawStream);
|
|
315
|
+
const rowBatchIterator = decodeSnapshotRowStreamBatches(decodedStream, SNAPSHOT_APPLY_BATCH_ROWS);
|
|
316
|
+
let pendingBatch = null;
|
|
317
|
+
// eslint-disable-next-line no-await-in-loop
|
|
318
|
+
for await (const batch of rowBatchIterator) {
|
|
319
|
+
if (pendingBatch) {
|
|
320
|
+
// eslint-disable-next-line no-await-in-loop
|
|
321
|
+
await handler.applySnapshot({ trx }, {
|
|
322
|
+
...snapshot,
|
|
323
|
+
rows: pendingBatch,
|
|
324
|
+
chunks: undefined,
|
|
325
|
+
isFirstPage: nextIsFirstPage,
|
|
326
|
+
isLastPage: false,
|
|
327
|
+
});
|
|
328
|
+
nextIsFirstPage = false;
|
|
329
|
+
}
|
|
330
|
+
pendingBatch = batch;
|
|
331
|
+
}
|
|
332
|
+
if (pendingBatch) {
|
|
333
|
+
const isLastChunk = chunkIndex === chunks.length - 1;
|
|
334
|
+
// eslint-disable-next-line no-await-in-loop
|
|
335
|
+
await handler.applySnapshot({ trx }, {
|
|
336
|
+
...snapshot,
|
|
337
|
+
rows: pendingBatch,
|
|
338
|
+
chunks: undefined,
|
|
339
|
+
isFirstPage: nextIsFirstPage,
|
|
340
|
+
isLastPage: isLastChunk ? snapshot.isLastPage : false,
|
|
341
|
+
});
|
|
342
|
+
nextIsFirstPage = false;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
}
|
|
138
346
|
function parseBootstrapState(value) {
|
|
139
347
|
if (!value)
|
|
140
348
|
return null;
|
|
@@ -159,13 +367,17 @@ function parseBootstrapState(value) {
|
|
|
159
367
|
return null;
|
|
160
368
|
}
|
|
161
369
|
}
|
|
162
|
-
|
|
370
|
+
/**
|
|
371
|
+
* Build a pull request from subscription state. Exported for use
|
|
372
|
+
* by the combined sync path in sync-loop.ts.
|
|
373
|
+
*/
|
|
374
|
+
export async function buildPullRequest(db, options) {
|
|
163
375
|
const stateId = options.stateId ?? 'default';
|
|
164
376
|
const existingResult = await sql `
|
|
165
377
|
select
|
|
166
378
|
${sql.ref('state_id')},
|
|
167
379
|
${sql.ref('subscription_id')},
|
|
168
|
-
${sql.ref('
|
|
380
|
+
${sql.ref('table')},
|
|
169
381
|
${sql.ref('scopes_json')},
|
|
170
382
|
${sql.ref('params_json')},
|
|
171
383
|
${sql.ref('cursor')},
|
|
@@ -192,14 +404,23 @@ export async function syncPullOnce(db, transport, shapes, options) {
|
|
|
192
404
|
bootstrapState: parseBootstrapState(existingById.get(sub.id)?.bootstrap_state_json),
|
|
193
405
|
})),
|
|
194
406
|
};
|
|
195
|
-
|
|
196
|
-
|
|
407
|
+
return { request, existing, existingById, stateId };
|
|
408
|
+
}
|
|
409
|
+
/**
|
|
410
|
+
* Apply a pull response (run plugins + write to local DB).
|
|
411
|
+
* Exported for use by the combined sync path in sync-loop.ts.
|
|
412
|
+
*/
|
|
413
|
+
export async function applyPullResponse(db, transport, handlers, options, pullState, rawResponse) {
|
|
414
|
+
const { request, existing, existingById, stateId } = pullState;
|
|
197
415
|
const ctx = {
|
|
198
416
|
actorId: options.actorId ?? 'unknown',
|
|
199
417
|
clientId: options.clientId,
|
|
200
418
|
};
|
|
201
419
|
const plugins = options.plugins ?? [];
|
|
202
|
-
|
|
420
|
+
const requiresMaterializedSnapshots = plugins.some((plugin) => !!plugin.afterPull);
|
|
421
|
+
let responseToApply = requiresMaterializedSnapshots
|
|
422
|
+
? await materializeChunkedSnapshots(transport, rawResponse, options.sha256)
|
|
423
|
+
: rawResponse;
|
|
203
424
|
for (const plugin of plugins) {
|
|
204
425
|
if (!plugin.afterPull)
|
|
205
426
|
continue;
|
|
@@ -214,18 +435,18 @@ export async function syncPullOnce(db, transport, shapes, options) {
|
|
|
214
435
|
for (const row of existing) {
|
|
215
436
|
if (desiredIds.has(row.subscription_id))
|
|
216
437
|
continue;
|
|
217
|
-
// Clear data for this
|
|
218
|
-
if (row.
|
|
438
|
+
// Clear data for this table matching the subscription's scopes
|
|
439
|
+
if (row.table) {
|
|
219
440
|
try {
|
|
220
441
|
const scopes = row.scopes_json
|
|
221
442
|
? typeof row.scopes_json === 'string'
|
|
222
443
|
? JSON.parse(row.scopes_json)
|
|
223
444
|
: row.scopes_json
|
|
224
445
|
: {};
|
|
225
|
-
await
|
|
446
|
+
await handlers.getOrThrow(row.table).clearAll({ trx, scopes });
|
|
226
447
|
}
|
|
227
448
|
catch {
|
|
228
|
-
// ignore missing
|
|
449
|
+
// ignore missing table handler
|
|
229
450
|
}
|
|
230
451
|
}
|
|
231
452
|
await sql `
|
|
@@ -242,14 +463,14 @@ export async function syncPullOnce(db, transport, shapes, options) {
|
|
|
242
463
|
const prev = existingById.get(sub.id);
|
|
243
464
|
// Revoked: clear data and drop the subscription row.
|
|
244
465
|
if (sub.status === 'revoked') {
|
|
245
|
-
if (prev?.
|
|
466
|
+
if (prev?.table) {
|
|
246
467
|
try {
|
|
247
468
|
const scopes = prev.scopes_json
|
|
248
469
|
? typeof prev.scopes_json === 'string'
|
|
249
470
|
? JSON.parse(prev.scopes_json)
|
|
250
471
|
: prev.scopes_json
|
|
251
472
|
: {};
|
|
252
|
-
await
|
|
473
|
+
await handlers.getOrThrow(prev.table).clearAll({ trx, scopes });
|
|
253
474
|
}
|
|
254
475
|
catch {
|
|
255
476
|
// ignore missing handler
|
|
@@ -265,7 +486,8 @@ export async function syncPullOnce(db, transport, shapes, options) {
|
|
|
265
486
|
// Apply snapshots (bootstrap mode)
|
|
266
487
|
if (sub.bootstrap) {
|
|
267
488
|
for (const snapshot of sub.snapshots ?? []) {
|
|
268
|
-
const handler =
|
|
489
|
+
const handler = handlers.getOrThrow(snapshot.table);
|
|
490
|
+
const hasChunkRefs = Array.isArray(snapshot.chunks) && snapshot.chunks.length > 0;
|
|
269
491
|
// Call onSnapshotStart hook when starting a new snapshot
|
|
270
492
|
if (snapshot.isFirstPage && handler.onSnapshotStart) {
|
|
271
493
|
await handler.onSnapshotStart({
|
|
@@ -274,7 +496,12 @@ export async function syncPullOnce(db, transport, shapes, options) {
|
|
|
274
496
|
scopes: sub.scopes,
|
|
275
497
|
});
|
|
276
498
|
}
|
|
277
|
-
|
|
499
|
+
if (hasChunkRefs) {
|
|
500
|
+
await applyChunkedSnapshot(transport, handler, trx, snapshot);
|
|
501
|
+
}
|
|
502
|
+
else {
|
|
503
|
+
await handler.applySnapshot({ trx }, snapshot);
|
|
504
|
+
}
|
|
278
505
|
// Call onSnapshotEnd hook when snapshot is complete
|
|
279
506
|
if (snapshot.isLastPage && handler.onSnapshotEnd) {
|
|
280
507
|
await handler.onSnapshotEnd({
|
|
@@ -289,7 +516,7 @@ export async function syncPullOnce(db, transport, shapes, options) {
|
|
|
289
516
|
// Apply incremental changes
|
|
290
517
|
for (const commit of sub.commits) {
|
|
291
518
|
for (const change of commit.changes) {
|
|
292
|
-
const handler =
|
|
519
|
+
const handler = handlers.getOrThrow(change.table);
|
|
293
520
|
await handler.applyChange({ trx }, change);
|
|
294
521
|
}
|
|
295
522
|
}
|
|
@@ -304,13 +531,13 @@ export async function syncPullOnce(db, transport, shapes, options) {
|
|
|
304
531
|
? serializeJsonCached(sub.bootstrapState)
|
|
305
532
|
: null
|
|
306
533
|
: null;
|
|
307
|
-
const
|
|
534
|
+
const table = def?.table ?? 'unknown';
|
|
308
535
|
await sql `
|
|
309
536
|
insert into ${sql.table('sync_subscription_state')} (
|
|
310
537
|
${sql.join([
|
|
311
538
|
sql.ref('state_id'),
|
|
312
539
|
sql.ref('subscription_id'),
|
|
313
|
-
sql.ref('
|
|
540
|
+
sql.ref('table'),
|
|
314
541
|
sql.ref('scopes_json'),
|
|
315
542
|
sql.ref('params_json'),
|
|
316
543
|
sql.ref('cursor'),
|
|
@@ -323,7 +550,7 @@ export async function syncPullOnce(db, transport, shapes, options) {
|
|
|
323
550
|
${sql.join([
|
|
324
551
|
sql.val(stateId),
|
|
325
552
|
sql.val(sub.id),
|
|
326
|
-
sql.val(
|
|
553
|
+
sql.val(table),
|
|
327
554
|
sql.val(scopesJson),
|
|
328
555
|
sql.val(paramsJson),
|
|
329
556
|
sql.val(sub.nextCursor),
|
|
@@ -335,7 +562,7 @@ export async function syncPullOnce(db, transport, shapes, options) {
|
|
|
335
562
|
)
|
|
336
563
|
on conflict (${sql.join([sql.ref('state_id'), sql.ref('subscription_id')])})
|
|
337
564
|
do update set
|
|
338
|
-
${sql.ref('
|
|
565
|
+
${sql.ref('table')} = ${sql.val(table)},
|
|
339
566
|
${sql.ref('scopes_json')} = ${sql.val(scopesJson)},
|
|
340
567
|
${sql.ref('params_json')} = ${sql.val(paramsJson)},
|
|
341
568
|
${sql.ref('cursor')} = ${sql.val(sub.nextCursor)},
|
|
@@ -347,4 +574,13 @@ export async function syncPullOnce(db, transport, shapes, options) {
|
|
|
347
574
|
});
|
|
348
575
|
return responseToApply;
|
|
349
576
|
}
|
|
577
|
+
export async function syncPullOnce(db, transport, handlers, options) {
|
|
578
|
+
const pullState = await buildPullRequest(db, options);
|
|
579
|
+
const { clientId, ...pullBody } = pullState.request;
|
|
580
|
+
const combined = await transport.sync({ clientId, pull: pullBody });
|
|
581
|
+
if (!combined.pull) {
|
|
582
|
+
return { ok: true, subscriptions: [] };
|
|
583
|
+
}
|
|
584
|
+
return applyPullResponse(db, transport, handlers, options, pullState, combined.pull);
|
|
585
|
+
}
|
|
350
586
|
//# sourceMappingURL=pull-engine.js.map
|
package/dist/pull-engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull-engine.js","sourceRoot":"","sources":["../src/pull-engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pull-engine.js","sourceRoot":"","sources":["../src/pull-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push-engine.d.ts","sourceRoot":"","sources":["../src/push-engine.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAEV,gBAAgB,EAChB,aAAa,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAQrC,OAAO,KAAK,EACV,gBAAgB,EAEjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;
|
|
1
|
+
{"version":3,"file":"push-engine.d.ts","sourceRoot":"","sources":["../src/push-engine.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAEV,gBAAgB,EAChB,aAAa,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAQrC,OAAO,KAAK,EACV,gBAAgB,EAEjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AAiBD,wBAAsB,YAAY,CAAC,EAAE,SAAS,YAAY,EACxD,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,EACd,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CAmJ7B"}
|