dexie-cloud-addon 4.0.1-beta.44 → 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.44, Sun Jul 02 2023
11
+ * Version 4.0.1-beta.44, Wed Jul 05 2023
12
12
  *
13
13
  * https://dexie.org
14
14
  *
@@ -4309,14 +4309,17 @@
4309
4309
  */
4310
4310
  function dbOnClosed(db, handler) {
4311
4311
  db.on.close.subscribe(handler);
4312
- const origClose = db.close;
4313
- db.close = function () {
4312
+ // @ts-ignore
4313
+ const origClose = db._close;
4314
+ // @ts-ignore
4315
+ db._close = function () {
4314
4316
  origClose.call(this);
4315
4317
  handler();
4316
4318
  };
4317
4319
  return () => {
4318
4320
  db.on.close.unsubscribe(handler);
4319
- db.close = origClose;
4321
+ // @ts-ignore
4322
+ db._close = origClose;
4320
4323
  };
4321
4324
  }
4322
4325
 
@@ -5225,13 +5228,17 @@
5225
5228
  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]));
5226
5229
  }
5227
5230
  return new rxjs.BehaviorSubject([userLogin, syncState]);
5228
- }), switchMap(([userLogin, syncState]) => __awaiter(this, void 0, void 0, function* () { return [userLogin, yield computeRealmSetHash(syncState)]; })), switchMap(([userLogin, realmSetHash]) =>
5229
- // Let server end query changes from last entry of same client-ID and forward.
5230
- // If no new entries, server won't bother the client. If new entries, server sends only those
5231
- // and the baseRev of the last from same client-ID.
5232
- userLogin
5233
- ? 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)
5234
- : rxjs.from([])), catchError((error) => {
5231
+ }), 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]) => {
5232
+ // Let server end query changes from last entry of same client-ID and forward.
5233
+ // If no new entries, server won't bother the client. If new entries, server sends only those
5234
+ // and the baseRev of the last from same client-ID.
5235
+ if (userLogin) {
5236
+ 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);
5237
+ }
5238
+ else {
5239
+ return rxjs.from([]);
5240
+ }
5241
+ }), catchError((error) => {
5235
5242
  if ((error === null || error === void 0 ? void 0 : error.name) === 'TokenExpiredError') {
5236
5243
  console.debug('WebSocket observable: Token expired. Refreshing token...');
5237
5244
  return rxjs.of(true).pipe(switchMap(() => __awaiter(this, void 0, void 0, function* () {
@@ -5253,15 +5260,19 @@
5253
5260
  return rxjs.from(waitAndReconnectWhenUserDoesSomething(error)).pipe(switchMap(() => createObservable()));
5254
5261
  }));
5255
5262
  }
5256
- return createObservable().subscribe((msg) => {
5257
- if (msg) {
5258
- console.debug('WS got message', msg);
5259
- db.messageConsumer.enqueue(msg);
5260
- }
5261
- }, (error) => {
5262
- console.error('Oops! The main observable errored!', error);
5263
- }, () => {
5264
- console.error('Oops! The main observable completed!');
5263
+ return createObservable().subscribe({
5264
+ next: (msg) => {
5265
+ if (msg) {
5266
+ console.debug('WS got message', msg);
5267
+ db.messageConsumer.enqueue(msg);
5268
+ }
5269
+ },
5270
+ error: (error) => {
5271
+ console.error('WS got error', error);
5272
+ },
5273
+ complete: () => {
5274
+ console.debug('WS observable completed');
5275
+ },
5265
5276
  });
5266
5277
  }
5267
5278