dexie-cloud-addon 4.0.1-beta.44 → 4.0.1-beta.46

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.46, Sat Aug 05 2023
12
12
  *
13
13
  * https://dexie.org
14
14
  *
@@ -3413,9 +3413,19 @@
3413
3413
  const mutClone = changeClone.muts[mutIndex];
3414
3414
  const rewrittenKey = JSON.stringify(key);
3415
3415
  mutClone.keys[keyIndex] = rewrittenKey;
3416
- if (rewriteValues) {
3417
- Dexie__default["default"].setByKeyPath(mutClone.values[keyIndex], primaryKey.keyPath, rewrittenKey);
3418
- }
3416
+ /* Bug (#1777)
3417
+ We should not rewrite values. It will fail because the key is array and the value is string.
3418
+ Only the keys should be rewritten and it's already done on the server.
3419
+ We should take another round of revieweing how key transformations are being done between
3420
+ client and server and let the server do the key transformations entirely instead now that
3421
+ we have the primary key schema on the server making it possible to do so.
3422
+ if (rewriteValues) {
3423
+ Dexie.setByKeyPath(
3424
+ (mutClone as DBInsertOperation).values[keyIndex],
3425
+ primaryKey.keyPath!,
3426
+ rewrittenKey
3427
+ );
3428
+ }*/
3419
3429
  }
3420
3430
  else if (key[0] === '#') {
3421
3431
  // Private ID - translate!
@@ -3722,7 +3732,7 @@
3722
3732
  });
3723
3733
  db.syncStateChangedEvent.next({
3724
3734
  phase: isOnline ? 'error' : 'offline',
3725
- error,
3735
+ error: new Error('' + (error === null || error === void 0 ? void 0 : error.message) || error),
3726
3736
  });
3727
3737
  return Promise.reject(error);
3728
3738
  }));
@@ -4309,14 +4319,17 @@
4309
4319
  */
4310
4320
  function dbOnClosed(db, handler) {
4311
4321
  db.on.close.subscribe(handler);
4312
- const origClose = db.close;
4313
- db.close = function () {
4322
+ // @ts-ignore
4323
+ const origClose = db._close;
4324
+ // @ts-ignore
4325
+ db._close = function () {
4314
4326
  origClose.call(this);
4315
4327
  handler();
4316
4328
  };
4317
4329
  return () => {
4318
4330
  db.on.close.unsubscribe(handler);
4319
- db.close = origClose;
4331
+ // @ts-ignore
4332
+ db._close = origClose;
4320
4333
  };
4321
4334
  }
4322
4335
 
@@ -5225,13 +5238,17 @@
5225
5238
  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
5239
  }
5227
5240
  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) => {
5241
+ }), 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]) => {
5242
+ // Let server end query changes from last entry of same client-ID and forward.
5243
+ // If no new entries, server won't bother the client. If new entries, server sends only those
5244
+ // and the baseRev of the last from same client-ID.
5245
+ if (userLogin) {
5246
+ 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);
5247
+ }
5248
+ else {
5249
+ return rxjs.from([]);
5250
+ }
5251
+ }), catchError((error) => {
5235
5252
  if ((error === null || error === void 0 ? void 0 : error.name) === 'TokenExpiredError') {
5236
5253
  console.debug('WebSocket observable: Token expired. Refreshing token...');
5237
5254
  return rxjs.of(true).pipe(switchMap(() => __awaiter(this, void 0, void 0, function* () {
@@ -5253,15 +5270,19 @@
5253
5270
  return rxjs.from(waitAndReconnectWhenUserDoesSomething(error)).pipe(switchMap(() => createObservable()));
5254
5271
  }));
5255
5272
  }
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!');
5273
+ return createObservable().subscribe({
5274
+ next: (msg) => {
5275
+ if (msg) {
5276
+ console.debug('WS got message', msg);
5277
+ db.messageConsumer.enqueue(msg);
5278
+ }
5279
+ },
5280
+ error: (error) => {
5281
+ console.error('WS got error', error);
5282
+ },
5283
+ complete: () => {
5284
+ console.debug('WS observable completed');
5285
+ },
5265
5286
  });
5266
5287
  }
5267
5288
 
@@ -6096,7 +6117,7 @@
6096
6117
  });
6097
6118
  const syncComplete = new rxjs.Subject();
6098
6119
  dexie.cloud = {
6099
- version: '4.0.1-beta.44',
6120
+ version: '4.0.1-beta.46',
6100
6121
  options: Object.assign({}, DEFAULT_OPTIONS),
6101
6122
  schema: null,
6102
6123
  get currentUserId() {
@@ -6357,7 +6378,7 @@
6357
6378
  });
6358
6379
  }
6359
6380
  }
6360
- dexieCloud.version = '4.0.1-beta.44';
6381
+ dexieCloud.version = '4.0.1-beta.46';
6361
6382
  Dexie__default["default"].Cloud = dexieCloud;
6362
6383
 
6363
6384
  exports["default"] = dexieCloud;