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.
@@ -8,7 +8,7 @@
8
8
  *
9
9
  * ==========================================================================
10
10
  *
11
- * Version 4.0.1-beta.43, Sat Jul 01 2023
11
+ * Version 4.0.1-beta.44, Wed Jul 05 2023
12
12
  *
13
13
  * https://dexie.org
14
14
  *
@@ -4302,14 +4302,17 @@ const DISABLE_SERVICEWORKER_STRATEGY = (isSafari && safariVersion <= 605) || //
4302
4302
  */
4303
4303
  function dbOnClosed(db, handler) {
4304
4304
  db.on.close.subscribe(handler);
4305
- const origClose = db.close;
4306
- db.close = function () {
4305
+ // @ts-ignore
4306
+ const origClose = db._close;
4307
+ // @ts-ignore
4308
+ db._close = function () {
4307
4309
  origClose.call(this);
4308
4310
  handler();
4309
4311
  };
4310
4312
  return () => {
4311
4313
  db.on.close.unsubscribe(handler);
4312
- db.close = origClose;
4314
+ // @ts-ignore
4315
+ db._close = origClose;
4313
4316
  };
4314
4317
  }
4315
4318
 
@@ -5218,13 +5221,17 @@ function connectWebSocket(db) {
5218
5221
  return db.cloud.persistedSyncState.pipe(filter((syncState) => (syncState === null || syncState === void 0 ? void 0 : syncState.realms.includes(userLogin.userId)) || false), take(1), map((syncState) => [userLogin, syncState]));
5219
5222
  }
5220
5223
  return new BehaviorSubject([userLogin, syncState]);
5221
- }), switchMap(([userLogin, syncState]) => __awaiter(this, void 0, void 0, function* () { return [userLogin, yield computeRealmSetHash(syncState)]; })), switchMap(([userLogin, realmSetHash]) =>
5222
- // Let server end query changes from last entry of same client-ID and forward.
5223
- // If no new entries, server won't bother the client. If new entries, server sends only those
5224
- // and the baseRev of the last from same client-ID.
5225
- userLogin
5226
- ? 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)
5227
- : from$1([])), catchError((error) => {
5224
+ }), switchMap(([userLogin, syncState]) => __awaiter(this, void 0, void 0, function* () { return [userLogin, yield computeRealmSetHash(syncState)]; })), distinctUntilChanged(([prevUser, prevHash], [currUser, currHash]) => prevUser === currUser && prevHash === currHash), switchMap(([userLogin, realmSetHash]) => {
5225
+ // Let server end query changes from last entry of same client-ID and forward.
5226
+ // If no new entries, server won't bother the client. If new entries, server sends only those
5227
+ // and the baseRev of the last from same client-ID.
5228
+ if (userLogin) {
5229
+ 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);
5230
+ }
5231
+ else {
5232
+ return from$1([]);
5233
+ }
5234
+ }), catchError((error) => {
5228
5235
  if ((error === null || error === void 0 ? void 0 : error.name) === 'TokenExpiredError') {
5229
5236
  console.debug('WebSocket observable: Token expired. Refreshing token...');
5230
5237
  return of(true).pipe(switchMap(() => __awaiter(this, void 0, void 0, function* () {
@@ -5246,15 +5253,19 @@ function connectWebSocket(db) {
5246
5253
  return from$1(waitAndReconnectWhenUserDoesSomething(error)).pipe(switchMap(() => createObservable()));
5247
5254
  }));
5248
5255
  }
5249
- return createObservable().subscribe((msg) => {
5250
- if (msg) {
5251
- console.debug('WS got message', msg);
5252
- db.messageConsumer.enqueue(msg);
5253
- }
5254
- }, (error) => {
5255
- console.error('Oops! The main observable errored!', error);
5256
- }, () => {
5257
- console.error('Oops! The main observable completed!');
5256
+ return createObservable().subscribe({
5257
+ next: (msg) => {
5258
+ if (msg) {
5259
+ console.debug('WS got message', msg);
5260
+ db.messageConsumer.enqueue(msg);
5261
+ }
5262
+ },
5263
+ error: (error) => {
5264
+ console.error('WS got error', error);
5265
+ },
5266
+ complete: () => {
5267
+ console.debug('WS observable completed');
5268
+ },
5258
5269
  });
5259
5270
  }
5260
5271
 
@@ -6030,7 +6041,7 @@ const getInvitesObservable = associate((db) => {
6030
6041
  const emailMembersById = membersByEmail.reduce(reducer, {});
6031
6042
  const membersById = accessControl.selfMembers.reduce(reducer, emailMembersById);
6032
6043
  return Object.values(membersById)
6033
- .filter((invite) => !invite.accepted && !invite.rejected)
6044
+ .filter((invite) => !invite.accepted)
6034
6045
  .map((invite) => (Object.assign(Object.assign({}, invite), { accept() {
6035
6046
  return __awaiter(this, void 0, void 0, function* () {
6036
6047
  yield db.members.update(invite.id, { accepted: new Date() });
@@ -6089,7 +6100,7 @@ function dexieCloud(dexie) {
6089
6100
  });
6090
6101
  const syncComplete = new Subject();
6091
6102
  dexie.cloud = {
6092
- version: '4.0.1-beta.43',
6103
+ version: '4.0.1-beta.44',
6093
6104
  options: Object.assign({}, DEFAULT_OPTIONS),
6094
6105
  schema: null,
6095
6106
  get currentUserId() {
@@ -6350,7 +6361,7 @@ function dexieCloud(dexie) {
6350
6361
  });
6351
6362
  }
6352
6363
  }
6353
- dexieCloud.version = '4.0.1-beta.43';
6364
+ dexieCloud.version = '4.0.1-beta.44';
6354
6365
  Dexie.Cloud = dexieCloud;
6355
6366
 
6356
6367
  export { dexieCloud as default, dexieCloud, getTiedObjectId, getTiedRealmId };