@powersync/common 1.50.0 → 1.52.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 (45) hide show
  1. package/dist/bundle.cjs +558 -481
  2. package/dist/bundle.cjs.map +1 -1
  3. package/dist/bundle.mjs +558 -480
  4. package/dist/bundle.mjs.map +1 -1
  5. package/dist/bundle.node.cjs +556 -481
  6. package/dist/bundle.node.cjs.map +1 -1
  7. package/dist/bundle.node.mjs +556 -480
  8. package/dist/bundle.node.mjs.map +1 -1
  9. package/dist/index.d.cts +73 -73
  10. package/lib/client/AbstractPowerSyncDatabase.js +3 -3
  11. package/lib/client/AbstractPowerSyncDatabase.js.map +1 -1
  12. package/lib/client/sync/stream/AbstractRemote.d.ts +29 -8
  13. package/lib/client/sync/stream/AbstractRemote.js +154 -177
  14. package/lib/client/sync/stream/AbstractRemote.js.map +1 -1
  15. package/lib/client/sync/stream/AbstractStreamingSyncImplementation.d.ts +1 -0
  16. package/lib/client/sync/stream/AbstractStreamingSyncImplementation.js +69 -88
  17. package/lib/client/sync/stream/AbstractStreamingSyncImplementation.js.map +1 -1
  18. package/lib/index.d.ts +1 -1
  19. package/lib/index.js +0 -1
  20. package/lib/index.js.map +1 -1
  21. package/lib/utils/async.d.ts +0 -9
  22. package/lib/utils/async.js +0 -9
  23. package/lib/utils/async.js.map +1 -1
  24. package/lib/utils/mutex.d.ts +32 -3
  25. package/lib/utils/mutex.js +85 -36
  26. package/lib/utils/mutex.js.map +1 -1
  27. package/lib/utils/queue.d.ts +16 -0
  28. package/lib/utils/queue.js +42 -0
  29. package/lib/utils/queue.js.map +1 -0
  30. package/lib/utils/stream_transform.d.ts +39 -0
  31. package/lib/utils/stream_transform.js +206 -0
  32. package/lib/utils/stream_transform.js.map +1 -0
  33. package/package.json +9 -7
  34. package/src/client/AbstractPowerSyncDatabase.ts +3 -3
  35. package/src/client/sync/stream/AbstractRemote.ts +182 -206
  36. package/src/client/sync/stream/AbstractStreamingSyncImplementation.ts +82 -83
  37. package/src/index.ts +1 -1
  38. package/src/utils/async.ts +0 -11
  39. package/src/utils/mutex.ts +111 -48
  40. package/src/utils/queue.ts +48 -0
  41. package/src/utils/stream_transform.ts +252 -0
  42. package/lib/utils/DataStream.d.ts +0 -62
  43. package/lib/utils/DataStream.js +0 -169
  44. package/lib/utils/DataStream.js.map +0 -1
  45. package/src/utils/DataStream.ts +0 -222
@@ -2,10 +2,12 @@ import Logger from 'js-logger';
2
2
  import { RSocketConnector } from 'rsocket-core';
3
3
  import PACKAGE from '../../../../package.json' with { type: 'json' };
4
4
  import { AbortOperation } from '../../../utils/AbortOperation.js';
5
- import { DataStream } from '../../../utils/DataStream.js';
6
5
  import { WebsocketClientTransport } from './WebsocketClientTransport.js';
6
+ import { doneResult, extractBsonObjects, extractJsonLines } from '../../../utils/stream_transform.js';
7
+ import { EventIterator } from 'event-iterator';
7
8
  const POWERSYNC_TRAILING_SLASH_MATCH = /\/+$/;
8
9
  const POWERSYNC_JS_VERSION = PACKAGE.version;
10
+ const SYNC_QUEUE_REQUEST_HIGH_WATER = 10;
9
11
  const SYNC_QUEUE_REQUEST_LOW_WATER = 5;
10
12
  // Keep alive message is sent every period
11
13
  const KEEP_ALIVE_MS = 20_000;
@@ -185,13 +187,14 @@ export class AbstractRemote {
185
187
  return new WebSocket(url);
186
188
  }
187
189
  /**
188
- * Returns a data stream of sync line data.
190
+ * Returns a data stream of sync line data, fetched via RSocket-over-WebSocket.
191
+ *
192
+ * The only mechanism to abort the returned stream is to use the abort signal in {@link SocketSyncStreamOptions}.
189
193
  *
190
- * @param map Maps received payload frames to the typed event value.
191
194
  * @param bson A BSON encoder and decoder. When set, the data stream will be requested with a BSON payload
192
195
  * (required for compatibility with older sync services).
193
196
  */
194
- async socketStreamRaw(options, map, bson) {
197
+ async socketStreamRaw(options, bson) {
195
198
  const { path, fetchStrategy = FetchStrategy.Buffered } = options;
196
199
  const mimeType = bson == null ? 'application/json' : 'application/bson';
197
200
  function toBuffer(js) {
@@ -206,52 +209,55 @@ export class AbstractRemote {
206
209
  }
207
210
  const syncQueueRequestSize = fetchStrategy == FetchStrategy.Buffered ? 10 : 1;
208
211
  const request = await this.buildRequest(path);
212
+ const url = this.options.socketUrlTransformer(request.url);
209
213
  // Add the user agent in the setup payload - we can't set custom
210
214
  // headers with websockets on web. The browser userAgent is however added
211
215
  // automatically as a header.
212
216
  const userAgent = this.getUserAgent();
213
- const stream = new DataStream({
214
- logger: this.logger,
215
- pressure: {
216
- lowWaterMark: SYNC_QUEUE_REQUEST_LOW_WATER
217
- },
218
- mapLine: map
219
- });
217
+ // While we're connecting (a process that can't be aborted in RSocket), the WebSocket instance to close if we wanted
218
+ // to abort the connection.
219
+ let pendingSocket = null;
220
+ let keepAliveTimeout;
221
+ let rsocket = null;
222
+ let queue = null;
223
+ let didClose = false;
224
+ const abortRequest = () => {
225
+ if (didClose) {
226
+ return;
227
+ }
228
+ didClose = true;
229
+ clearTimeout(keepAliveTimeout);
230
+ if (pendingSocket) {
231
+ pendingSocket.close();
232
+ }
233
+ if (rsocket) {
234
+ rsocket.close();
235
+ }
236
+ if (queue) {
237
+ queue.stop();
238
+ }
239
+ };
220
240
  // Handle upstream abort
221
- if (options.abortSignal?.aborted) {
241
+ if (options.abortSignal.aborted) {
222
242
  throw new AbortOperation('Connection request aborted');
223
243
  }
224
244
  else {
225
- options.abortSignal?.addEventListener('abort', () => {
226
- stream.close();
227
- }, { once: true });
245
+ options.abortSignal.addEventListener('abort', abortRequest);
228
246
  }
229
- let keepAliveTimeout;
230
247
  const resetTimeout = () => {
231
248
  clearTimeout(keepAliveTimeout);
232
249
  keepAliveTimeout = setTimeout(() => {
233
250
  this.logger.error(`No data received on WebSocket in ${SOCKET_TIMEOUT_MS}ms, closing connection.`);
234
- stream.close();
251
+ abortRequest();
235
252
  }, SOCKET_TIMEOUT_MS);
236
253
  };
237
254
  resetTimeout();
238
- // Typescript complains about this being `never` if it's not assigned here.
239
- // This is assigned in `wsCreator`.
240
- let disposeSocketConnectionTimeout = () => { };
241
- const url = this.options.socketUrlTransformer(request.url);
242
255
  const connector = new RSocketConnector({
243
256
  transport: new WebsocketClientTransport({
244
257
  url,
245
258
  wsCreator: (url) => {
246
- const socket = this.createSocket(url);
247
- disposeSocketConnectionTimeout = stream.registerListener({
248
- closed: () => {
249
- // Allow closing the underlying WebSocket if the stream was closed before the
250
- // RSocket connect completed. This should effectively abort the request.
251
- socket.close();
252
- }
253
- });
254
- socket.addEventListener('message', (event) => {
259
+ const socket = (pendingSocket = this.createSocket(url));
260
+ socket.addEventListener('message', () => {
255
261
  resetTimeout();
256
262
  });
257
263
  return socket;
@@ -271,43 +277,40 @@ export class AbstractRemote {
271
277
  }
272
278
  }
273
279
  });
274
- let rsocket;
275
280
  try {
276
281
  rsocket = await connector.connect();
277
282
  // The connection is established, we no longer need to monitor the initial timeout
278
- disposeSocketConnectionTimeout();
283
+ pendingSocket = null;
279
284
  }
280
285
  catch (ex) {
281
286
  this.logger.error(`Failed to connect WebSocket`, ex);
282
- clearTimeout(keepAliveTimeout);
283
- if (!stream.closed) {
284
- await stream.close();
285
- }
287
+ abortRequest();
286
288
  throw ex;
287
289
  }
288
290
  resetTimeout();
289
- let socketIsClosed = false;
290
- const closeSocket = () => {
291
- clearTimeout(keepAliveTimeout);
292
- if (socketIsClosed) {
293
- return;
294
- }
295
- socketIsClosed = true;
296
- rsocket.close();
297
- };
298
291
  // Helps to prevent double close scenarios
299
- rsocket.onClose(() => (socketIsClosed = true));
300
- // We initially request this amount and expect these to arrive eventually
301
- let pendingEventsCount = syncQueueRequestSize;
302
- const disposeClosedListener = stream.registerListener({
303
- closed: () => {
304
- closeSocket();
305
- disposeClosedListener();
306
- }
307
- });
308
- const socket = await new Promise((resolve, reject) => {
292
+ rsocket.onClose(() => (rsocket = null));
293
+ return await new Promise((resolve, reject) => {
309
294
  let connectionEstablished = false;
310
- const res = rsocket.requestStream({
295
+ let pendingEventsCount = syncQueueRequestSize;
296
+ let paused = false;
297
+ let res = null;
298
+ function requestMore() {
299
+ const delta = syncQueueRequestSize - pendingEventsCount;
300
+ if (!paused && delta > 0) {
301
+ res?.request(delta);
302
+ pendingEventsCount = syncQueueRequestSize;
303
+ }
304
+ }
305
+ const events = new EventIterator((q) => {
306
+ queue = q;
307
+ q.on('highWater', () => (paused = true));
308
+ q.on('lowWater', () => {
309
+ paused = false;
310
+ requestMore();
311
+ });
312
+ }, { highWaterMark: SYNC_QUEUE_REQUEST_HIGH_WATER, lowWaterMark: SYNC_QUEUE_REQUEST_LOW_WATER })[Symbol.asyncIterator]();
313
+ res = rsocket.requestStream({
311
314
  data: toBuffer(options.data),
312
315
  metadata: toBuffer({
313
316
  path
@@ -332,7 +335,7 @@ export class AbstractRemote {
332
335
  }
333
336
  // RSocket will close the RSocket stream automatically
334
337
  // Close the downstream stream as well - this will close the RSocket connection and WebSocket
335
- stream.close();
338
+ abortRequest();
336
339
  // Handles cases where the connection failed e.g. auth error or connection error
337
340
  if (!connectionEstablished) {
338
341
  reject(e);
@@ -342,41 +345,40 @@ export class AbstractRemote {
342
345
  // The connection is active
343
346
  if (!connectionEstablished) {
344
347
  connectionEstablished = true;
345
- resolve(res);
348
+ resolve(events);
346
349
  }
347
350
  const { data } = payload;
351
+ if (data) {
352
+ queue.push(data);
353
+ }
348
354
  // Less events are now pending
349
355
  pendingEventsCount--;
350
- if (!data) {
351
- return;
352
- }
353
- stream.enqueueData(data);
356
+ // Request another event (unless the downstream consumer is paused).
357
+ requestMore();
354
358
  },
355
359
  onComplete: () => {
356
- stream.close();
360
+ abortRequest(); // this will also emit a done event
357
361
  },
358
362
  onExtension: () => { }
359
363
  });
360
364
  });
361
- const l = stream.registerListener({
362
- lowWater: async () => {
363
- // Request to fill up the queue
364
- const required = syncQueueRequestSize - pendingEventsCount;
365
- if (required > 0) {
366
- socket.request(syncQueueRequestSize - pendingEventsCount);
367
- pendingEventsCount = syncQueueRequestSize;
368
- }
369
- },
370
- closed: () => {
371
- l();
372
- }
373
- });
374
- return stream;
375
365
  }
376
366
  /**
377
- * Connects to the sync/stream http endpoint, mapping and emitting each received string line.
367
+ * @returns Whether the HTTP implementation on this platform can receive streamed binary responses. This is true on
368
+ * all platforms except React Native (who would have guessed...), where we must not request BSON responses.
369
+ *
370
+ * @see https://github.com/react-native-community/fetch?tab=readme-ov-file#motivation
378
371
  */
379
- async postStreamRaw(options, mapLine) {
372
+ get supportsStreamingBinaryResponses() {
373
+ return true;
374
+ }
375
+ /**
376
+ * Posts a `/sync/stream` request, asserts that it completes successfully and returns the streaming response as an
377
+ * async iterator of byte blobs.
378
+ *
379
+ * To cancel the async iterator, use the abort signal from {@link SyncStreamOptions} passed to this method.
380
+ */
381
+ async fetchStreamRaw(options) {
380
382
  const { data, path, headers, abortSignal } = options;
381
383
  const request = await this.buildRequest(path);
382
384
  /**
@@ -388,119 +390,94 @@ export class AbstractRemote {
388
390
  * Aborting the active fetch request while it is being consumed seems to throw
389
391
  * an unhandled exception on the window level.
390
392
  */
391
- if (abortSignal?.aborted) {
392
- throw new AbortOperation('Abort request received before making postStreamRaw request');
393
+ if (abortSignal.aborted) {
394
+ throw new AbortOperation('Abort request received before making fetchStreamRaw request');
393
395
  }
394
396
  const controller = new AbortController();
395
- let requestResolved = false;
396
- abortSignal?.addEventListener('abort', () => {
397
- if (!requestResolved) {
397
+ let reader = null;
398
+ abortSignal.addEventListener('abort', () => {
399
+ const reason = abortSignal.reason ??
400
+ new AbortOperation('Cancelling network request before it resolves. Abort signal has been received.');
401
+ if (reader == null) {
398
402
  // Only abort via the abort controller if the request has not resolved yet
399
- controller.abort(abortSignal.reason ??
400
- new AbortOperation('Cancelling network request before it resolves. Abort signal has been received.'));
403
+ controller.abort(reason);
404
+ }
405
+ else {
406
+ reader.cancel(reason).catch(() => {
407
+ // Cancelling the reader might rethrow an exception we would have handled by throwing in next(). So we can
408
+ // ignore it here.
409
+ });
401
410
  }
402
411
  });
403
- const res = await this.fetch(request.url, {
404
- method: 'POST',
405
- headers: { ...headers, ...request.headers },
406
- body: JSON.stringify(data),
407
- signal: controller.signal,
408
- cache: 'no-store',
409
- ...(this.options.fetchOptions ?? {}),
410
- ...options.fetchOptions
411
- }).catch((ex) => {
412
+ let res;
413
+ let responseIsBson = false;
414
+ try {
415
+ const ndJson = 'application/x-ndjson';
416
+ const bson = 'application/vnd.powersync.bson-stream';
417
+ res = await this.fetch(request.url, {
418
+ method: 'POST',
419
+ headers: {
420
+ ...headers,
421
+ ...request.headers,
422
+ accept: this.supportsStreamingBinaryResponses ? `${bson};q=0.9,${ndJson};q=0.8` : ndJson
423
+ },
424
+ body: JSON.stringify(data),
425
+ signal: controller.signal,
426
+ cache: 'no-store',
427
+ ...(this.options.fetchOptions ?? {}),
428
+ ...options.fetchOptions
429
+ });
430
+ if (!res.ok || !res.body) {
431
+ const text = await res.text();
432
+ this.logger.error(`Could not POST streaming to ${path} - ${res.status} - ${res.statusText}: ${text}`);
433
+ const error = new Error(`HTTP ${res.statusText}: ${text}`);
434
+ error.status = res.status;
435
+ throw error;
436
+ }
437
+ const contentType = res.headers.get('content-type');
438
+ responseIsBson = contentType == bson;
439
+ }
440
+ catch (ex) {
412
441
  if (ex.name == 'AbortError') {
413
442
  throw new AbortOperation(`Pending fetch request to ${request.url} has been aborted.`);
414
443
  }
415
444
  throw ex;
416
- });
417
- if (!res) {
418
- throw new Error('Fetch request was aborted');
419
445
  }
420
- requestResolved = true;
421
- if (!res.ok || !res.body) {
422
- const text = await res.text();
423
- this.logger.error(`Could not POST streaming to ${path} - ${res.status} - ${res.statusText}: ${text}`);
424
- const error = new Error(`HTTP ${res.statusText}: ${text}`);
425
- error.status = res.status;
426
- throw error;
427
- }
428
- // Create a new stream splitting the response at line endings while also handling cancellations
429
- // by closing the reader.
430
- const reader = res.body.getReader();
431
- let readerReleased = false;
432
- // This will close the network request and read stream
433
- const closeReader = async () => {
434
- try {
435
- readerReleased = true;
436
- await reader.cancel();
437
- }
438
- catch (ex) {
439
- // an error will throw if the reader hasn't been used yet
440
- }
441
- reader.releaseLock();
442
- };
443
- const stream = new DataStream({
444
- logger: this.logger,
445
- mapLine: mapLine,
446
- pressure: {
447
- highWaterMark: 20,
448
- lowWaterMark: 10
449
- }
450
- });
451
- abortSignal?.addEventListener('abort', () => {
452
- closeReader();
453
- stream.close();
454
- });
455
- const decoder = this.createTextDecoder();
456
- let buffer = '';
457
- const consumeStream = async () => {
458
- while (!stream.closed && !abortSignal?.aborted && !readerReleased) {
459
- const { done, value } = await reader.read();
460
- if (done) {
461
- const remaining = buffer.trim();
462
- if (remaining.length != 0) {
463
- stream.enqueueData(remaining);
464
- }
465
- stream.close();
466
- await closeReader();
467
- return;
446
+ reader = res.body.getReader();
447
+ const stream = {
448
+ next: async () => {
449
+ if (controller.signal.aborted) {
450
+ return doneResult;
468
451
  }
469
- const data = decoder.decode(value, { stream: true });
470
- buffer += data;
471
- const lines = buffer.split('\n');
472
- for (var i = 0; i < lines.length - 1; i++) {
473
- var l = lines[i].trim();
474
- if (l.length > 0) {
475
- stream.enqueueData(l);
476
- }
452
+ try {
453
+ return await reader.read();
477
454
  }
478
- buffer = lines[lines.length - 1];
479
- // Implement backpressure by waiting for the low water mark to be reached
480
- if (stream.dataQueue.length > stream.highWatermark) {
481
- await new Promise((resolve) => {
482
- const dispose = stream.registerListener({
483
- lowWater: async () => {
484
- resolve();
485
- dispose();
486
- },
487
- closed: () => {
488
- resolve();
489
- dispose();
490
- }
491
- });
492
- });
455
+ catch (ex) {
456
+ if (controller.signal.aborted) {
457
+ // .read() completes with an error if we cancel the reader, which we do to disconnect. So this is just
458
+ // things working as intended, we can return a done event and consider the exception handled.
459
+ return doneResult;
460
+ }
461
+ throw ex;
493
462
  }
494
463
  }
495
464
  };
496
- consumeStream().catch(ex => this.logger.error('Error consuming stream', ex));
497
- const l = stream.registerListener({
498
- closed: () => {
499
- closeReader();
500
- l?.();
501
- }
502
- });
503
- return stream;
465
+ return { isBson: responseIsBson, stream };
466
+ }
467
+ /**
468
+ * Posts a `/sync/stream` request.
469
+ *
470
+ * Depending on the `Content-Type` of the response, this returns strings for sync lines or encoded BSON documents as
471
+ * {@link Uint8Array}s.
472
+ */
473
+ async fetchStream(options) {
474
+ const { isBson, stream } = await this.fetchStreamRaw(options);
475
+ if (isBson) {
476
+ return extractBsonObjects(stream);
477
+ }
478
+ else {
479
+ return extractJsonLines(stream, this.createTextDecoder());
480
+ }
504
481
  }
505
482
  }
506
483
  //# sourceMappingURL=AbstractRemote.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractRemote.js","sourceRoot":"","sources":["../../../../src/client/sync/stream/AbstractRemote.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractRemote.js","sourceRoot":"","sources":["../../../../src/client/sync/stream/AbstractRemote.ts"],"names":[],"mappings":"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"}
@@ -226,6 +226,7 @@ export declare abstract class AbstractStreamingSyncImplementation extends BaseOb
226
226
  */
227
227
  private requireKeyFormat;
228
228
  protected streamingSyncIteration(signal: AbortSignal, options?: PowerSyncConnectionOptions): Promise<RustIterationResult | null>;
229
+ private receiveSyncLines;
229
230
  private legacyStreamingSyncIteration;
230
231
  private rustSyncIteration;
231
232
  private updateSyncStatusForStartingCheckpoint;