dexie-cloud-addon 4.0.0-beta.24 → 4.0.1-beta.27

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 (40) hide show
  1. package/dist/modern/dexie-cloud-addon.js +42 -27
  2. package/dist/modern/dexie-cloud-addon.js.map +1 -1
  3. package/dist/modern/dexie-cloud-addon.min.js +1 -1
  4. package/dist/modern/dexie-cloud-addon.min.js.map +1 -1
  5. package/dist/modern/service-worker.js +41 -26
  6. package/dist/modern/service-worker.js.map +1 -1
  7. package/dist/modern/service-worker.min.js +1 -1
  8. package/dist/modern/service-worker.min.js.map +1 -1
  9. package/dist/module-es5/dexie-cloud-addon.js +41 -25
  10. package/dist/module-es5/dexie-cloud-addon.js.map +1 -1
  11. package/dist/module-es5/dexie-cloud-addon.min.js +1 -1
  12. package/dist/module-es5/dexie-cloud-addon.min.js.map +1 -1
  13. package/dist/types/DXCWebSocketStatus.d.ts +1 -1
  14. package/dist/types/DexieCloudTable.d.ts +18 -2
  15. package/dist/types/PermissionChecker.d.ts +1 -1
  16. package/dist/types/TSON.d.ts +1 -1
  17. package/dist/types/WSObservable.d.ts +2 -2
  18. package/dist/types/authentication/authenticate.d.ts +1 -1
  19. package/dist/types/db/DexieCloudDB.d.ts +1 -1
  20. package/dist/types/extend-dexie-interface.d.ts +5 -3
  21. package/dist/types/getInternalAccessControlObservable.d.ts +1 -1
  22. package/dist/types/getPermissionsLookupObservable.d.ts +2 -2
  23. package/dist/types/sync/getTablesToSyncify.d.ts +1 -1
  24. package/dist/types/sync/messagesFromServerQueue.d.ts +1 -1
  25. package/dist/types/types/DXCAlert.d.ts +1 -1
  26. package/dist/types/types/DXCInputField.d.ts +1 -1
  27. package/dist/types/types/DXCUserInteraction.d.ts +1 -1
  28. package/dist/types/types/SWSyncEvent.d.ts +1 -1
  29. package/dist/types/types/SyncState.d.ts +2 -2
  30. package/dist/umd/dexie-cloud-addon.js +40 -24
  31. package/dist/umd/dexie-cloud-addon.js.map +1 -1
  32. package/dist/umd/dexie-cloud-addon.min.js +1 -1
  33. package/dist/umd/dexie-cloud-addon.min.js.map +1 -1
  34. package/dist/umd/service-worker.js +40 -25
  35. package/dist/umd/service-worker.js.map +1 -1
  36. package/dist/umd/service-worker.min.js +1 -1
  37. package/dist/umd/service-worker.min.js.map +1 -1
  38. package/dist/umd-modern/dexie-cloud-addon.js +38 -23
  39. package/dist/umd-modern/dexie-cloud-addon.js.map +1 -1
  40. package/package.json +5 -6
@@ -1,5 +1,5 @@
1
1
  import Dexie, { liveQuery, cmp } from 'dexie';
2
- import { BehaviorSubject, fromEvent, of, merge, from as from$1, Observable as Observable$1, Subscription as Subscription$1, Subject, combineLatest, switchMap as switchMap$1, map as map$1, share, timer as timer$1, throwError } from 'rxjs';
2
+ import { BehaviorSubject, fromEvent, of, merge, from as from$1, Observable as Observable$1, Subscription as Subscription$1, Subject, combineLatest, map as map$1, share, timer as timer$1, throwError } from 'rxjs';
3
3
 
4
4
  /******************************************************************************
5
5
  Copyright (c) Microsoft Corporation.
@@ -101,7 +101,7 @@ function __spreadArray$1(to, from, pack) {
101
101
  *
102
102
  * ==========================================================================
103
103
  *
104
- * Version 4.0.0-beta.24, Mon Oct 17 2022
104
+ * Version 4.0.1-beta.27, Mon Mar 06 2023
105
105
  *
106
106
  * https://dexie.org
107
107
  *
@@ -306,7 +306,7 @@ function __asyncValues(o) {
306
306
  function settle(resolve, reject, d, v) { Promise.resolve(v).then(function (v) { resolve({ value: v, done: d }); }, reject); }
307
307
  }
308
308
  //@ts-check
309
- var randomFillSync = crypto.getRandomValues;
309
+ var randomFillSync = crypto.getRandomValues.bind(crypto);
310
310
  function assert(b) {
311
311
  if (!b)
312
312
  throw new Error('Assertion Failed');
@@ -367,17 +367,17 @@ function setByKeyPath(obj, keyPath, value) {
367
367
  }
368
368
  }
369
369
  }
370
- var randomString$1 = typeof Buffer !== 'undefined' ? function (bytes) {
371
- // Node
372
- var buf = Buffer.alloc(bytes);
373
- randomFillSync(buf);
374
- return buf.toString("base64");
375
- } : function (bytes) {
370
+ var randomString$1 = typeof self !== 'undefined' && typeof crypto !== 'undefined' ? function (bytes) {
376
371
  // Web
377
372
  var buf = new Uint8Array(bytes);
378
373
  crypto.getRandomValues(buf);
379
374
  return btoa(String.fromCharCode.apply(null, buf));
380
- };
375
+ } : typeof Buffer !== 'undefined' ? function (bytes) {
376
+ // Node
377
+ var buf = Buffer.alloc(bytes);
378
+ randomFillSync(buf);
379
+ return buf.toString("base64");
380
+ } : function () { throw new Error("No implementation of randomString was found"); };
381
381
  /** Verifies that given primary key is valid.
382
382
  * The reason we narrow validity for valid keys are twofold:
383
383
  * 1: Make sure to only support types that can be used as an object index in DBKeyMutationSet.
@@ -3584,7 +3584,7 @@ var undefinedDef = {
3584
3584
  // serverRev.rev = bigIntDef.bigint.revive(server.rev)
3585
3585
  // else
3586
3586
  // serverRev.rev = new FakeBigInt(server.rev)
3587
- var hasBigIntSupport = typeof BigInt(0) === 'bigint';
3587
+ var hasBigIntSupport = typeof BigInt === 'function' && typeof BigInt(0) === 'bigint';
3588
3588
  var FakeBigInt = /** @class */ (function () {
3589
3589
  function FakeBigInt(value) {
3590
3590
  this.v = value;
@@ -4780,7 +4780,17 @@ function DexieCloudDB(dx) {
4780
4780
  return db.$syncState.get('syncState');
4781
4781
  },
4782
4782
  getSchema: function () {
4783
- return db.$syncState.get('schema');
4783
+ return db.$syncState.get('schema').then(function (schema) {
4784
+ if (schema) {
4785
+ for (var _k = 0, _l = db.tables; _k < _l.length; _k++) {
4786
+ var table = _l[_k];
4787
+ if (table.schema.primKey && table.schema.primKey.keyPath && schema[table.name]) {
4788
+ schema[table.name].primaryKey = nameFromKeyPath(table.schema.primKey.keyPath);
4789
+ }
4790
+ }
4791
+ }
4792
+ return schema;
4793
+ });
4784
4794
  },
4785
4795
  getOptions: function () {
4786
4796
  return db.$syncState.get('options');
@@ -4798,6 +4808,11 @@ function DexieCloudDB(dx) {
4798
4808
  }
4799
4809
  return db;
4800
4810
  }
4811
+ function nameFromKeyPath(keyPath) {
4812
+ return typeof keyPath === 'string' ?
4813
+ keyPath :
4814
+ keyPath ? ('[' + [].join.call(keyPath, '+') + ']') : "";
4815
+ }
4801
4816
  // @ts-ignore
4802
4817
  var isFirefox = typeof InstallTrigger !== 'undefined';
4803
4818
  var isSafari = typeof navigator !== 'undefined' &&
@@ -5045,7 +5060,7 @@ function createImplicitPropSetterMiddleware(db) {
5045
5060
  // modify operations. Reason: Server may not have
5046
5061
  // the object. Object should be created on server only
5047
5062
  // if is being updated. An update operation won't create it
5048
- // so we must delete req.changeSpec to decrate operation to
5063
+ // so we must delete req.changeSpec to degrade operation to
5049
5064
  // an upsert operation with timestamp so that it will be created.
5050
5065
  // We must also degrade from consistent modify operations for the
5051
5066
  // same reason - object might be there on server. Must but put up instead.
@@ -5057,7 +5072,7 @@ function createImplicitPropSetterMiddleware(db) {
5057
5072
  if (req.type === 'put') {
5058
5073
  delete req.criteria;
5059
5074
  delete req.changeSpec;
5060
- delete req.changeSpecs;
5075
+ delete req.updates;
5061
5076
  obj.$ts = Date.now();
5062
5077
  }
5063
5078
  }
@@ -5259,11 +5274,10 @@ function createMutationTrackingMiddleware(_k) {
5259
5274
  var hasFailures = res.numFailures, failures = res.failures;
5260
5275
  var keys = type === 'delete' ? req.keys : res.results;
5261
5276
  var values = 'values' in req ? req.values : [];
5262
- var changeSpecs = 'changeSpecs' in req ? req.changeSpecs : [];
5277
+ var updates = 'updates' in req && req.updates;
5263
5278
  if (hasFailures) {
5264
5279
  keys = keys.filter(function (_, idx) { return !failures[idx]; });
5265
5280
  values = values.filter(function (_, idx) { return !failures[idx]; });
5266
- changeSpecs = changeSpecs.filter(function (_, idx) { return !failures[idx]; });
5267
5281
  }
5268
5282
  var ts = Date.now();
5269
5283
  var mut = req.type === 'delete'
@@ -5295,13 +5309,13 @@ function createMutationTrackingMiddleware(_k) {
5295
5309
  txid: txid,
5296
5310
  userId: userId
5297
5311
  }
5298
- : req.changeSpecs
5312
+ : updates
5299
5313
  ? {
5300
5314
  // One changeSpec per key
5301
5315
  type: 'update',
5302
5316
  ts: ts,
5303
- keys: keys,
5304
- changeSpecs: changeSpecs,
5317
+ keys: updates.keys,
5318
+ changeSpecs: updates.changeSpecs,
5305
5319
  txid: txid,
5306
5320
  userId: userId
5307
5321
  }
@@ -6824,10 +6838,10 @@ function permissions(dexie, obj, tableName) {
6824
6838
  return o;
6825
6839
  }
6826
6840
  var getInvitesObservable = associate(function (db) {
6827
- var membersByEmail = getCurrentUserEmitter(db._novip).pipe(switchMap$1(function (currentUser) { return liveQuery(function () { return db.members.where({ email: currentUser.email || '' }).toArray(); }); }));
6841
+ var membersByEmail = getCurrentUserEmitter(db._novip).pipe(switchMap(function (currentUser) { return liveQuery(function () { return db.members.where({ email: currentUser.email || '' }).toArray(); }); }));
6828
6842
  var permissions = getPermissionsLookupObservable(db._novip);
6829
6843
  var accessControl = getInternalAccessControlObservable(db._novip);
6830
- return createSharedValueObservable(combineLatest([membersByEmail, accessControl, permissions]).pipe(map$1(function (_k) {
6844
+ return createSharedValueObservable(combineLatest([membersByEmail, accessControl, permissions]).pipe(map(function (_k) {
6831
6845
  var membersByEmail = _k[0], accessControl = _k[1], realmLookup = _k[2];
6832
6846
  var reducer = function (result, m) {
6833
6847
  var _k;
@@ -6915,7 +6929,7 @@ function dexieCloud(dexie) {
6915
6929
  currentUserEmitter.next(UNAUTHORIZED_USER);
6916
6930
  });
6917
6931
  dexie.cloud = {
6918
- version: '4.0.0-beta.24',
6932
+ version: '4.0.1-beta.27',
6919
6933
  options: Object.assign({}, DEFAULT_OPTIONS),
6920
6934
  schema: null,
6921
6935
  get currentUserId() {
@@ -7075,7 +7089,7 @@ function dexieCloud(dexie) {
7075
7089
  case 3:
7076
7090
  swRegistrations = _k;
7077
7091
  return [4 /*yield*/, db.transaction('rw', db.$syncState, function () { return __awaiter(_this_1, void 0, void 0, function () {
7078
- var _h, _j, _k, options, schema, _l, persistedOptions, persistedSchema, persistedSyncState, newPersistedSchema, _m, _o, _p, table, tblSchema, newTblSchema;
7092
+ var _h, _j, _k, options, schema, _l, persistedOptions, persistedSchema, persistedSyncState, newPersistedOptions, newPersistedSchema, _m, _o, _p, table, tblSchema, newTblSchema;
7079
7093
  return __generator$1(this, function (_q) {
7080
7094
  switch (_q.label) {
7081
7095
  case 0:
@@ -7098,7 +7112,9 @@ function dexieCloud(dexie) {
7098
7112
  // Update persisted options:
7099
7113
  if (!options)
7100
7114
  throw new Error("Internal error"); // options cannot be null if configuredProgramatically is set.
7101
- return [4 /*yield*/, db.$syncState.put(options, 'options')];
7115
+ newPersistedOptions = Object.assign({}, options);
7116
+ delete newPersistedOptions.fetchTokens;
7117
+ return [4 /*yield*/, db.$syncState.put(newPersistedOptions, 'options')];
7102
7118
  case 3:
7103
7119
  _q.sent();
7104
7120
  _q.label = 4;
@@ -7246,7 +7262,7 @@ function dexieCloud(dexie) {
7246
7262
  });
7247
7263
  }
7248
7264
  }
7249
- dexieCloud.version = '4.0.0-beta.24';
7265
+ dexieCloud.version = '4.0.1-beta.27';
7250
7266
  Dexie.Cloud = dexieCloud;
7251
7267
 
7252
7268
  export { dexieCloud as default, dexieCloud, getTiedObjectId, getTiedRealmId };