@powersync/service-core 1.27.2 → 1.28.0

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 (131) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/LICENSE +201 -67
  3. package/dist/api/RouteAPI.d.ts +6 -0
  4. package/dist/api/api-metrics.js +4 -0
  5. package/dist/api/api-metrics.js.map +1 -1
  6. package/dist/api/diagnostics.d.ts +5 -0
  7. package/dist/api/diagnostics.js +17 -2
  8. package/dist/api/diagnostics.js.map +1 -1
  9. package/dist/metrics/connection-metrics.d.ts +28 -0
  10. package/dist/metrics/connection-metrics.js +55 -0
  11. package/dist/metrics/connection-metrics.js.map +1 -0
  12. package/dist/metrics/metrics-index.d.ts +1 -0
  13. package/dist/metrics/metrics-index.js +1 -0
  14. package/dist/metrics/metrics-index.js.map +1 -1
  15. package/dist/metrics/metrics-interfaces.d.ts +7 -1
  16. package/dist/metrics/metrics-interfaces.js.map +1 -1
  17. package/dist/modules/loader.js +8 -2
  18. package/dist/modules/loader.js.map +1 -1
  19. package/dist/replication/AbstractReplicationJob.d.ts +2 -0
  20. package/dist/replication/AbstractReplicationJob.js +17 -1
  21. package/dist/replication/AbstractReplicationJob.js.map +1 -1
  22. package/dist/replication/AbstractReplicator.d.ts +8 -18
  23. package/dist/replication/AbstractReplicator.js +63 -64
  24. package/dist/replication/AbstractReplicator.js.map +1 -1
  25. package/dist/replication/ReplicationModule.js +0 -6
  26. package/dist/replication/ReplicationModule.js.map +1 -1
  27. package/dist/routes/configure-fastify.js +5 -1
  28. package/dist/routes/configure-fastify.js.map +1 -1
  29. package/dist/routes/endpoints/admin.js +24 -22
  30. package/dist/routes/endpoints/admin.js.map +1 -1
  31. package/dist/routes/endpoints/socket-route.js +19 -27
  32. package/dist/routes/endpoints/socket-route.js.map +1 -1
  33. package/dist/routes/endpoints/sync-rules.js +17 -40
  34. package/dist/routes/endpoints/sync-rules.js.map +1 -1
  35. package/dist/routes/endpoints/sync-stream.js +25 -23
  36. package/dist/routes/endpoints/sync-stream.js.map +1 -1
  37. package/dist/routes/hooks.d.ts +1 -1
  38. package/dist/routes/hooks.js +2 -1
  39. package/dist/routes/hooks.js.map +1 -1
  40. package/dist/routes/sync-connection.d.ts +7 -0
  41. package/dist/routes/sync-connection.js +34 -0
  42. package/dist/routes/sync-connection.js.map +1 -0
  43. package/dist/storage/BucketStorageFactory.d.ts +30 -22
  44. package/dist/storage/BucketStorageFactory.js +14 -14
  45. package/dist/storage/BucketStorageFactory.js.map +1 -1
  46. package/dist/storage/PersistedSyncConfigContent.js +2 -2
  47. package/dist/storage/PersistedSyncConfigContent.js.map +1 -1
  48. package/dist/storage/SyncRulesBucketStorage.d.ts +23 -2
  49. package/dist/storage/SyncRulesBucketStorage.js.map +1 -1
  50. package/dist/streams/BroadcastIterable.js +8 -7
  51. package/dist/streams/BroadcastIterable.js.map +1 -1
  52. package/dist/streams/LastValueSink.d.ts +2 -2
  53. package/dist/streams/LastValueSink.js +8 -13
  54. package/dist/streams/LastValueSink.js.map +1 -1
  55. package/dist/streams/merge.d.ts +15 -31
  56. package/dist/streams/merge.js +136 -152
  57. package/dist/streams/merge.js.map +1 -1
  58. package/dist/sync/BucketChecksumState.d.ts +3 -2
  59. package/dist/sync/BucketChecksumState.js +12 -5
  60. package/dist/sync/BucketChecksumState.js.map +1 -1
  61. package/dist/sync/sync.js +48 -38
  62. package/dist/sync/sync.js.map +1 -1
  63. package/dist/sync/util.d.ts +1 -2
  64. package/dist/sync/util.js +2 -5
  65. package/dist/sync/util.js.map +1 -1
  66. package/dist/system/ServiceContext.d.ts +7 -0
  67. package/dist/system/ServiceContext.js +3 -3
  68. package/dist/system/ServiceContext.js.map +1 -1
  69. package/dist/system/SyncConfigEngine.d.ts +135 -0
  70. package/dist/system/SyncConfigEngine.js +186 -0
  71. package/dist/system/SyncConfigEngine.js.map +1 -0
  72. package/dist/system/system-index.d.ts +1 -0
  73. package/dist/system/system-index.js +1 -0
  74. package/dist/system/system-index.js.map +1 -1
  75. package/dist/util/config/types.d.ts +4 -0
  76. package/package.json +8 -9
  77. package/src/api/RouteAPI.ts +6 -0
  78. package/src/api/api-metrics.ts +5 -0
  79. package/src/api/diagnostics.ts +22 -2
  80. package/src/metrics/connection-metrics.ts +75 -0
  81. package/src/metrics/metrics-index.ts +1 -0
  82. package/src/metrics/metrics-interfaces.ts +8 -1
  83. package/src/modules/loader.ts +16 -2
  84. package/src/replication/AbstractReplicationJob.ts +17 -1
  85. package/src/replication/AbstractReplicator.ts +83 -81
  86. package/src/replication/ReplicationModule.ts +0 -5
  87. package/src/routes/configure-fastify.ts +7 -1
  88. package/src/routes/endpoints/admin.ts +27 -20
  89. package/src/routes/endpoints/socket-route.ts +26 -38
  90. package/src/routes/endpoints/sync-rules.ts +22 -46
  91. package/src/routes/endpoints/sync-stream.ts +31 -27
  92. package/src/routes/hooks.ts +5 -1
  93. package/src/routes/sync-connection.ts +39 -0
  94. package/src/storage/BucketStorageFactory.ts +45 -29
  95. package/src/storage/PersistedSyncConfigContent.ts +2 -2
  96. package/src/storage/SyncRulesBucketStorage.ts +23 -2
  97. package/src/streams/BroadcastIterable.ts +8 -7
  98. package/src/streams/LastValueSink.ts +10 -16
  99. package/src/streams/merge.ts +149 -169
  100. package/src/sync/BucketChecksumState.ts +17 -5
  101. package/src/sync/sync.ts +71 -57
  102. package/src/sync/util.ts +2 -7
  103. package/src/system/ServiceContext.ts +8 -3
  104. package/src/system/SyncConfigEngine.ts +247 -0
  105. package/src/system/system-index.ts +1 -0
  106. package/src/util/config/types.ts +4 -0
  107. package/test/src/AbstractReplicator.test.ts +375 -45
  108. package/test/src/PersistedSyncConfigContent.test.ts +5 -5
  109. package/test/src/SyncConfigEngine.test.ts +208 -0
  110. package/test/src/broadcast_iterable.test.ts +59 -31
  111. package/test/src/config.test.ts +65 -3
  112. package/test/src/connection-metrics-export.test.ts +76 -0
  113. package/test/src/connection-metrics.test.ts +184 -0
  114. package/test/src/diagnostics.test.ts +3 -3
  115. package/test/src/last_value_sink.test.ts +34 -0
  116. package/test/src/merge_iterable.test.ts +304 -55
  117. package/test/src/module-loader.test.ts +14 -1
  118. package/test/src/recording-metrics.ts +36 -0
  119. package/test/src/routes/admin.test.ts +2 -2
  120. package/test/src/routes/concurrency-limit.test.ts +108 -0
  121. package/test/src/routes/connection-metrics.test.ts +269 -0
  122. package/test/src/routes/invalid-config.test.ts +184 -0
  123. package/test/src/routes/mocks.ts +26 -13
  124. package/test/src/routes/stream-disconnect.integration.test.ts +129 -0
  125. package/test/src/routes/stream.test.ts +200 -107
  126. package/test/src/routes/sync-rules.test.ts +19 -1
  127. package/test/src/source_table_config.test.ts +7 -7
  128. package/test/src/sync/BucketChecksumState.test.ts +10 -10
  129. package/test/src/sync/stream_response.test.ts +389 -0
  130. package/test/src/sync/util.test.ts +14 -3
  131. package/tsconfig.tsbuildinfo +1 -1
@@ -1,179 +1,163 @@
1
- import { throwIfAborted } from 'ix/aborterror.js';
2
- import { AsyncIterableX } from 'ix/asynciterable/index.js';
3
- import { wrapWithAbort } from 'ix/asynciterable/operators/withabort.js';
4
1
  import { safeRace } from '../sync/safeRace.js';
5
2
  /**
6
3
  * Merge multiple source AsyncIterables into one output AsyncIterable.
4
+ * The results from all iterables are interleaved. When any iterable is done, the output stops.
7
5
  *
8
- * The results from all iterables are interleaved.
6
+ * Sources receive a signal owned by this merge. They must use it to unblock pending reads:
7
+ * async generators queue return() behind next(), so closing an unabortable read can block forever.
8
+ * The signal is aborted before closing all source iterators, and completion waits for their cleanup.
9
+ * Cleanup failures propagate to the caller; multiple failures are combined in an AggregateError.
9
10
  *
10
- * When any iterable is done, the output stops.
11
+ * Loosely based on IxJS merge, with these differences:
12
+ * 1. Fix an issue with uncaught errors, partially fixed in https://github.com/ReactiveX/IxJS/pull/354.
13
+ * Only call next() on inner iterators when next() is called on the outer one, and handle every
14
+ * pending read immediately, including reads whose results are not consumed before shutdown.
15
+ * 2. Call return() on all inner iterators when the outer one returns.
16
+ * 3. Return when the first iterator returns.
17
+ * Original implementation: https://github.com/ReactiveX/IxJS/blob/f07b7ef4095120f1ef21a4023030c75b36335cd1/src/asynciterable/merge.ts
11
18
  *
12
- * @param source The source AsyncIterables.
19
+ * @param sources Factories for source iterables that observe the supplied abort signal.
13
20
  * @param signal Optional signal to abort iteration.
14
- * @returns The merged AsyncIterable.
15
21
  */
16
- export function mergeAsyncIterables(source, signal) {
17
- return mergeAsyncIterablesNew(source, signal);
18
- // return mergeAsyncIterablesOld(source, signal);
19
- }
20
- export function mergeAsyncIterablesNew(source, signal) {
21
- return new MergedAsyncIterable(source, signal);
22
- }
23
- export function mergeAsyncIterablesOld(source, signal) {
24
- return wrapWithAbort(new FixedMergeAsyncIterable(source, { race: true }), signal);
25
- }
26
- const NEVER_PROMISE = new Promise(() => { });
27
- function wrapPromiseWithIndex(promise, index) {
28
- return promise.then((value) => ({ value, index }));
22
+ export function mergeAsyncIterables(sources, signal) {
23
+ return {
24
+ [Symbol.asyncIterator]() {
25
+ return new MergedAsyncIterator(sources, signal);
26
+ }
27
+ };
29
28
  }
30
- /**
31
- * Re-implementation of FixedMergeAsyncIterable, without using async generators.
32
- *
33
- * The functionality should be the same in most cases.
34
- */
35
- class MergedAsyncIterable {
36
- _source;
37
- _signal;
38
- constructor(source, signal) {
39
- this._source = source;
40
- this._signal = signal;
29
+ class MergedAsyncIterator {
30
+ sources;
31
+ parentSignal;
32
+ controller = new AbortController();
33
+ signal;
34
+ iterators = [];
35
+ pending = [];
36
+ initialized = false;
37
+ closing;
38
+ nextInFlight = Promise.resolve();
39
+ onAbort = () => {
40
+ // Cleanup can start while the consumer is paused. Its settled errors remain available to next()/return().
41
+ void this.close({ error: this.parentSignal.reason });
42
+ };
43
+ constructor(sources, parentSignal) {
44
+ this.sources = sources;
45
+ this.parentSignal = parentSignal;
46
+ this.signal = parentSignal ? AbortSignal.any([parentSignal, this.controller.signal]) : this.controller.signal;
47
+ if (parentSignal && !parentSignal.aborted) {
48
+ parentSignal.addEventListener('abort', this.onAbort, { once: true });
49
+ }
50
+ }
51
+ next() {
52
+ // Serialize next() calls, while allowing return()/throw() to abort an in-flight read immediately.
53
+ const next = this.nextInFlight.then(() => this.read());
54
+ this.nextInFlight = next.then(() => { }, () => { });
55
+ return next;
41
56
  }
42
- [Symbol.asyncIterator]() {
43
- const signal = this._signal;
44
- throwIfAborted(signal);
45
- const length = this._source.length;
46
- const iterators = new Array(length);
47
- const nexts = new Array(length);
48
- for (let i = 0; i < length; i++) {
49
- const iterator = wrapWithAbort(this._source[i], signal)[Symbol.asyncIterator]();
50
- iterators[i] = iterator;
51
- nexts[i] = null;
57
+ async return() {
58
+ throwFailures(await this.close());
59
+ return { done: true, value: undefined };
60
+ }
61
+ async throw(error) {
62
+ throwFailures(await this.close({ error }, true));
63
+ return { done: true, value: undefined };
64
+ }
65
+ async read() {
66
+ if (this.closing) {
67
+ throwFailures(await this.closing);
68
+ return { done: true, value: undefined };
52
69
  }
53
- const returnIterators = async (_value) => {
54
- for (let iter of iterators) {
55
- // Do not wait for return() to complete, since it may block
56
- iter.return?.();
57
- }
58
- return { value: undefined, done: true };
59
- };
60
- return {
61
- next: async () => {
62
- for (let i = 0; i < length; i++) {
63
- if (nexts[i] == null) {
64
- nexts[i] = wrapPromiseWithIndex(iterators[i].next(), i);
65
- }
66
- }
67
- try {
68
- // IMPORTANT! safeRace here acts like Promise.race, but avoids major memory leaks.
69
- const { value: { done, value }, index } = (await safeRace(nexts));
70
- if (done) {
71
- // One of the source iterators is done - return them all
72
- await returnIterators();
73
- return {
74
- value: undefined,
75
- done: true
76
- };
77
- }
78
- else {
79
- // Consume the result, which will cause the next one to be requested on the
80
- // next iteration.
81
- nexts[index] = null;
82
- return {
83
- value: value,
84
- done: false
85
- };
86
- }
87
- }
88
- catch (e) {
89
- // One of the source iterators raised an error - return all others
90
- // and propagate the error
91
- await returnIterators();
92
- throw e;
70
+ try {
71
+ this.signal.throwIfAborted();
72
+ if (!this.initialized) {
73
+ this.initialized = true;
74
+ for (const source of this.sources) {
75
+ this.iterators.push(source(this.signal)[Symbol.asyncIterator]());
76
+ this.pending.push(null);
93
77
  }
94
- },
95
- return: () => {
96
- return returnIterators();
97
- },
98
- throw: async (e) => {
99
- for (let iter of iterators) {
100
- // Do not wait for throw() to complete, since it may block
101
- iter.throw?.(e);
78
+ }
79
+ for (const [index, iterator] of this.iterators.entries()) {
80
+ if (this.pending[index] == null) {
81
+ // Settle errors immediately, even if another source wins and the consumer stops reading.
82
+ this.pending[index] = Promise.resolve()
83
+ .then(() => iterator.next())
84
+ .then((value) => ({ index, status: 'fulfilled', value }), (reason) => ({ index, status: 'rejected', reason }));
102
85
  }
103
- throw e;
104
86
  }
105
- };
106
- }
107
- }
108
- /**
109
- * Loosely based on IxJS merge, but with some changes:
110
- * 1. Fix an issue with uncaught errors.
111
- * Partially fixed: https://github.com/ReactiveX/IxJS/pull/354
112
- * Essentially, we only want to call next() on inner iterators when next() is called on the outer one.
113
- * 2. Call return() on all inner iterators when the outer one returns.
114
- * 3. Returning when the first iterator returns.
115
- *
116
- * https://github.com/ReactiveX/IxJS/blob/f07b7ef4095120f1ef21a4023030c75b36335cd1/src/asynciterable/merge.ts
117
- */
118
- export class FixedMergeAsyncIterable extends AsyncIterableX {
119
- _source;
120
- _race;
121
- /**
122
- *
123
- * @param source
124
- * @param options Specify `race: true` to stop the iterator when any inner one returns, instead of waiting for all.
125
- */
126
- constructor(source, options) {
127
- super();
128
- this._source = source;
129
- this._race = options?.race ?? false;
87
+ if (this.pending.length === 0) {
88
+ return await this.return();
89
+ }
90
+ // Like Promise.race, but avoids retaining callbacks on long-lived pending reads.
91
+ const result = await safeRace(this.pending);
92
+ if (this.closing) {
93
+ throwFailures(await this.closing);
94
+ return { done: true, value: undefined };
95
+ }
96
+ if (result.status === 'rejected') {
97
+ throw result.reason;
98
+ }
99
+ if (result.value.done) {
100
+ return await this.return();
101
+ }
102
+ this.pending[result.index] = null;
103
+ return result.value;
104
+ }
105
+ catch (error) {
106
+ throwFailures(await this.close({ error }));
107
+ throw error;
108
+ }
130
109
  }
131
- async *[Symbol.asyncIterator](signal) {
132
- throwIfAborted(signal);
133
- const length = this._source.length;
134
- const iterators = new Array(length);
135
- const nexts = new Array(length);
136
- let active = length;
137
- for (let i = 0; i < length; i++) {
138
- const iterator = wrapWithAbort(this._source[i], signal)[Symbol.asyncIterator]();
139
- iterators[i] = iterator;
140
- nexts[i] = wrapPromiseWithIndex(iterator.next(), i);
110
+ close(failure, injectError = false) {
111
+ if (this.closing) {
112
+ return this.closing;
141
113
  }
142
- try {
143
- while (active > 0) {
144
- // IMPORTANT! safeRace here acts like Promise.race, but avoids major memory leaks.
145
- const { value: { done, value }, index } = await safeRace(nexts);
146
- if (done) {
147
- nexts[index] = NEVER_PROMISE;
148
- active--;
149
- if (this._race) {
150
- break;
114
+ // Publish the closing state before invoking source code, including synchronous abort listeners.
115
+ this.closing = Promise.resolve().then(async () => {
116
+ this.parentSignal?.removeEventListener('abort', this.onAbort);
117
+ this.controller.abort(failure?.error);
118
+ const errors = failure ? [failure.error] : [];
119
+ const collect = (error) => {
120
+ // Aborting pending reads is expected. Do not hide the original failure or unrelated cleanup errors.
121
+ if (error !== this.signal.reason && !(error instanceof Error && error.name === 'AbortError')) {
122
+ if (!errors.includes(error)) {
123
+ errors.push(error);
151
124
  }
152
125
  }
153
- else {
154
- const iterator$ = iterators[index];
155
- nexts[index] = NEVER_PROMISE;
126
+ };
127
+ const results = await Promise.allSettled(this.iterators.map(async (iterator) => {
128
+ if (injectError && iterator.throw) {
156
129
  try {
157
- yield value;
130
+ await iterator.throw(failure.error);
158
131
  }
159
- catch (e) {
160
- // iter.throw() was called on the merged iterator
161
- // Propagate the error to the source iterators
162
- for (let iter of iterators) {
163
- iter.throw?.(e);
164
- }
165
- throw e;
132
+ catch (error) {
133
+ collect(error);
166
134
  }
167
- nexts[index] = wrapPromiseWithIndex(iterator$.next(), index);
135
+ }
136
+ // Even an iterator that catches throw() and yields again must be closed.
137
+ await iterator.return?.();
138
+ }));
139
+ for (const result of results) {
140
+ if (result.status === 'rejected') {
141
+ collect(result.reason);
168
142
  }
169
143
  }
170
- }
171
- finally {
172
- for (let iter of iterators) {
173
- // This may be an early return - return all inner iterators
174
- iter.return?.();
144
+ // A source can fail while another source is finishing. Observe those pending reads as well.
145
+ for (const result of await Promise.all(this.pending)) {
146
+ if (result?.status === 'rejected') {
147
+ collect(result.reason);
148
+ }
175
149
  }
176
- }
150
+ return errors;
151
+ });
152
+ return this.closing;
153
+ }
154
+ }
155
+ function throwFailures(errors) {
156
+ if (errors.length === 1) {
157
+ throw errors[0];
158
+ }
159
+ if (errors.length > 1) {
160
+ throw new AggregateError(errors, 'Multiple errors while closing merged iterators', { cause: errors[0] });
177
161
  }
178
162
  }
179
163
  //# sourceMappingURL=merge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/streams/merge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/streams/merge.ts"],"names":[],"mappings":"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"}
@@ -70,11 +70,12 @@ export declare class BucketChecksumState {
70
70
  *
71
71
  * When the checkpoint line is sent to the client, call `CheckpointLine.advance()` to update the internal state.
72
72
  * A line may be safely discarded (not sent to the client) if `advance()` is not called.
73
+ * Cancellation is checked between storage reads; in-flight reads are allowed to finish.
73
74
  *
74
75
  * @param next The updated checkpoint
75
76
  * @returns A {@link CheckpointLine} if any of the buckets watched by this connected was updated, or otherwise `null`.
76
77
  */
77
- buildNextCheckpointLine(next: storage.StorageCheckpointUpdate, tracer?: PerformanceTracer<SyncCheckpointTraceCategory>): Promise<CheckpointLine | null>;
78
+ buildNextCheckpointLine(next: storage.StorageCheckpointUpdate, tracer?: PerformanceTracer<SyncCheckpointTraceCategory>, signal?: AbortSignal): Promise<CheckpointLine | null>;
78
79
  }
79
80
  declare const INVALIDATE_ALL_BUCKETS: unique symbol;
80
81
  export interface CheckpointUpdate {
@@ -120,7 +121,7 @@ export declare class BucketParameterState {
120
121
  */
121
122
  translateResolvedBucket(description: ResolvedBucket, lookupIndex: Map<string, number>): util.ClientBucketDescription;
122
123
  isSubscribedToStream(desc: BucketSource): boolean;
123
- getCheckpointUpdate(checkpoint: storage.StorageCheckpointUpdate, tracer: PerformanceTracer<SyncCheckpointTraceCategory>): Promise<CheckpointUpdate>;
124
+ getCheckpointUpdate(checkpoint: storage.StorageCheckpointUpdate, tracer: PerformanceTracer<SyncCheckpointTraceCategory>, signal?: AbortSignal): Promise<CheckpointUpdate>;
124
125
  /**
125
126
  * For static buckets, we can keep track of which buckets have been updated.
126
127
  */
@@ -68,16 +68,18 @@ export class BucketChecksumState {
68
68
  *
69
69
  * When the checkpoint line is sent to the client, call `CheckpointLine.advance()` to update the internal state.
70
70
  * A line may be safely discarded (not sent to the client) if `advance()` is not called.
71
+ * Cancellation is checked between storage reads; in-flight reads are allowed to finish.
71
72
  *
72
73
  * @param next The updated checkpoint
73
74
  * @returns A {@link CheckpointLine} if any of the buckets watched by this connected was updated, or otherwise `null`.
74
75
  */
75
- async buildNextCheckpointLine(next, tracer) {
76
+ async buildNextCheckpointLine(next, tracer, signal) {
76
77
  tracer ??= new PerformanceTracer(`sync checkpoint ${next.base.checkpoint}`);
77
78
  const { writeCheckpoint, base } = next;
78
79
  const userIdForLogs = this.parameterState.syncParams.userId;
79
80
  const storage = this.bucketStorage;
80
- const update = await this.parameterState.getCheckpointUpdate(next, tracer);
81
+ const update = await this.parameterState.getCheckpointUpdate(next, tracer, signal);
82
+ signal?.throwIfAborted();
81
83
  const { buckets: allBuckets, updatedBuckets, usedParameterResults } = update;
82
84
  const forceFullChecksum = this.forceFullChecksumForNextCheckpoint;
83
85
  /** Set of all buckets in this checkpoint. */
@@ -152,6 +154,7 @@ export class BucketChecksumState {
152
154
  using _ = tracer.span('checksum');
153
155
  checksumMap = await storage.getChecksums(base, bucketList, { requestHint });
154
156
  }
157
+ signal?.throwIfAborted();
155
158
  // Subset of buckets for which there may be new data in this batch.
156
159
  let bucketsToFetch;
157
160
  let bucketDataRequestHint;
@@ -428,12 +431,13 @@ export class BucketParameterState {
428
431
  isSubscribedToStream(desc) {
429
432
  return (desc.subscribedToByDefault && this.includeDefaultStreams) || this.subscribedStreamNames.has(desc.name);
430
433
  }
431
- async getCheckpointUpdate(checkpoint, tracer) {
434
+ async getCheckpointUpdate(checkpoint, tracer, signal) {
435
+ signal?.throwIfAborted();
432
436
  const querier = this.querier;
433
437
  let update;
434
438
  if (querier.hasDynamicBuckets) {
435
439
  try {
436
- update = await this.getCheckpointUpdateDynamic(checkpoint, tracer);
440
+ update = await this.getCheckpointUpdateDynamic(checkpoint, tracer, signal);
437
441
  }
438
442
  catch (e) {
439
443
  if (e instanceof ParameterSetLimitExceededError) {
@@ -486,7 +490,7 @@ export class BucketParameterState {
486
490
  /**
487
491
  * For dynamic buckets, we need to re-query the list of buckets every time.
488
492
  */
489
- async getCheckpointUpdateDynamic(checkpoint, tracer) {
493
+ async getCheckpointUpdateDynamic(checkpoint, tracer, signal) {
490
494
  const querier = this.querier;
491
495
  const staticBuckets = this.staticBuckets.values();
492
496
  const update = checkpoint.update;
@@ -520,6 +524,7 @@ export class BucketParameterState {
520
524
  const lookupLog = [];
521
525
  dynamicBuckets = await querier.queryDynamicBucketDescriptions({
522
526
  getParameterSets: async (lookups, definition) => {
527
+ signal?.throwIfAborted();
523
528
  if (lookups.length > parameterLimit) {
524
529
  // Sync Streams can chain parameter lookups, so a large output from an earlier call may become the input
525
530
  // here. We reuse the output limit as a generous upper bound; legitimate queries are much smaller.
@@ -537,6 +542,7 @@ export class BucketParameterState {
537
542
  try {
538
543
  using _ = tracer.span('parameters', definition);
539
544
  const results = await checkpoint.base.getParameterSets(lookups, remainingBudget);
545
+ signal?.throwIfAborted();
540
546
  const numRows = results.reduce((a, b) => a + b.rows.length, 0);
541
547
  lookupLog.push({ definition, resultsOrLimit: numRows, didExceedLimit: false });
542
548
  remainingBudget -= numRows;
@@ -552,6 +558,7 @@ export class BucketParameterState {
552
558
  }
553
559
  }
554
560
  });
561
+ signal?.throwIfAborted();
555
562
  this.cachedDynamicBuckets = dynamicBuckets;
556
563
  this.cachedDynamicBucketSet = new Set(dynamicBuckets.map((b) => b.bucket));
557
564
  this.lookupsFromPreviousCheckpoint = recordedLookups;
@@ -1 +1 @@
1
- {"version":3,"file":"BucketChecksumState.js","sourceRoot":"","sources":["../../src/sync/BucketChecksumState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BucketChecksumState.js","sourceRoot":"","sources":["../../src/sync/BucketChecksumState.ts"],"names":[],"mappings":"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"}