dexie-cloud-addon 4.0.1-beta.43 → 4.0.1-beta.45

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.
@@ -2670,14 +2670,17 @@
2670
2670
  */
2671
2671
  function dbOnClosed(db, handler) {
2672
2672
  db.on.close.subscribe(handler);
2673
- const origClose = db.close;
2674
- db.close = function () {
2673
+ // @ts-ignore
2674
+ const origClose = db._close;
2675
+ // @ts-ignore
2676
+ db._close = function () {
2675
2677
  origClose.call(this);
2676
2678
  handler();
2677
2679
  };
2678
2680
  return () => {
2679
2681
  db.on.close.unsubscribe(handler);
2680
- db.close = origClose;
2682
+ // @ts-ignore
2683
+ db._close = origClose;
2681
2684
  };
2682
2685
  }
2683
2686
 
@@ -3586,13 +3589,17 @@
3586
3589
  return db.cloud.persistedSyncState.pipe(operators.filter((syncState) => (syncState === null || syncState === void 0 ? void 0 : syncState.realms.includes(userLogin.userId)) || false), operators.take(1), operators.map((syncState) => [userLogin, syncState]));
3587
3590
  }
3588
3591
  return new rxjs.BehaviorSubject([userLogin, syncState]);
3589
- }), operators.switchMap(([userLogin, syncState]) => __awaiter(this, void 0, void 0, function* () { return [userLogin, yield computeRealmSetHash(syncState)]; })), operators.switchMap(([userLogin, realmSetHash]) =>
3590
- // Let server end query changes from last entry of same client-ID and forward.
3591
- // If no new entries, server won't bother the client. If new entries, server sends only those
3592
- // and the baseRev of the last from same client-ID.
3593
- userLogin
3594
- ? new WSObservable(db.cloud.options.databaseUrl, db.cloud.persistedSyncState.value.serverRevision, realmSetHash, db.cloud.persistedSyncState.value.clientIdentity, messageProducer, db.cloud.webSocketStatus, userLogin.accessToken, userLogin.accessTokenExpiration)
3595
- : rxjs.from([])), operators.catchError((error) => {
3592
+ }), operators.switchMap(([userLogin, syncState]) => __awaiter(this, void 0, void 0, function* () { return [userLogin, yield computeRealmSetHash(syncState)]; })), operators.distinctUntilChanged(([prevUser, prevHash], [currUser, currHash]) => prevUser === currUser && prevHash === currHash), operators.switchMap(([userLogin, realmSetHash]) => {
3593
+ // Let server end query changes from last entry of same client-ID and forward.
3594
+ // If no new entries, server won't bother the client. If new entries, server sends only those
3595
+ // and the baseRev of the last from same client-ID.
3596
+ if (userLogin) {
3597
+ return new WSObservable(db.cloud.options.databaseUrl, db.cloud.persistedSyncState.value.serverRevision, realmSetHash, db.cloud.persistedSyncState.value.clientIdentity, messageProducer, db.cloud.webSocketStatus, userLogin.accessToken, userLogin.accessTokenExpiration);
3598
+ }
3599
+ else {
3600
+ return rxjs.from([]);
3601
+ }
3602
+ }), operators.catchError((error) => {
3596
3603
  if ((error === null || error === void 0 ? void 0 : error.name) === 'TokenExpiredError') {
3597
3604
  console.debug('WebSocket observable: Token expired. Refreshing token...');
3598
3605
  return rxjs.of(true).pipe(operators.switchMap(() => __awaiter(this, void 0, void 0, function* () {
@@ -3614,15 +3621,19 @@
3614
3621
  return rxjs.from(waitAndReconnectWhenUserDoesSomething(error)).pipe(operators.switchMap(() => createObservable()));
3615
3622
  }));
3616
3623
  }
3617
- return createObservable().subscribe((msg) => {
3618
- if (msg) {
3619
- console.debug('WS got message', msg);
3620
- db.messageConsumer.enqueue(msg);
3621
- }
3622
- }, (error) => {
3623
- console.error('Oops! The main observable errored!', error);
3624
- }, () => {
3625
- console.error('Oops! The main observable completed!');
3624
+ return createObservable().subscribe({
3625
+ next: (msg) => {
3626
+ if (msg) {
3627
+ console.debug('WS got message', msg);
3628
+ db.messageConsumer.enqueue(msg);
3629
+ }
3630
+ },
3631
+ error: (error) => {
3632
+ console.error('WS got error', error);
3633
+ },
3634
+ complete: () => {
3635
+ console.debug('WS observable completed');
3636
+ },
3626
3637
  });
3627
3638
  }
3628
3639
 
@@ -4398,7 +4409,7 @@
4398
4409
  const emailMembersById = membersByEmail.reduce(reducer, {});
4399
4410
  const membersById = accessControl.selfMembers.reduce(reducer, emailMembersById);
4400
4411
  return Object.values(membersById)
4401
- .filter((invite) => !invite.accepted && !invite.rejected)
4412
+ .filter((invite) => !invite.accepted)
4402
4413
  .map((invite) => (Object.assign(Object.assign({}, invite), { accept() {
4403
4414
  return __awaiter(this, void 0, void 0, function* () {
4404
4415
  yield db.members.update(invite.id, { accepted: new Date() });
@@ -4450,7 +4461,7 @@
4450
4461
  });
4451
4462
  const syncComplete = new rxjs.Subject();
4452
4463
  dexie.cloud = {
4453
- version: '4.0.1-beta.43',
4464
+ version: '4.0.1-beta.44',
4454
4465
  options: Object.assign({}, DEFAULT_OPTIONS),
4455
4466
  schema: null,
4456
4467
  get currentUserId() {
@@ -4711,7 +4722,7 @@
4711
4722
  });
4712
4723
  }
4713
4724
  }
4714
- dexieCloud.version = '4.0.1-beta.43';
4725
+ dexieCloud.version = '4.0.1-beta.44';
4715
4726
  Dexie__default["default"].Cloud = dexieCloud;
4716
4727
 
4717
4728
  // In case the SW lives for a while, let it reuse already opened connections: