dexie-cloud-addon 4.0.0-beta.23 → 4.0.1-beta.26

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 (43) hide show
  1. package/dist/modern/dexie-cloud-addon.js +38 -26
  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 +37 -25
  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 +38 -26
  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/DexieCloudTable.d.ts +18 -2
  14. package/dist/types/extend-dexie-interface.d.ts +5 -3
  15. package/dist/types/sync/getTablesToSyncify.d.ts +1 -1
  16. package/dist/umd/dexie-cloud-addon.js +37 -25
  17. package/dist/umd/dexie-cloud-addon.js.map +1 -1
  18. package/dist/umd/dexie-cloud-addon.min.js +1 -1
  19. package/dist/umd/dexie-cloud-addon.min.js.map +1 -1
  20. package/dist/umd/service-worker.js +36 -24
  21. package/dist/umd/service-worker.js.map +1 -1
  22. package/dist/umd/service-worker.min.js +1 -1
  23. package/dist/umd/service-worker.min.js.map +1 -1
  24. package/dist/umd-modern/dexie-cloud-addon.js +34 -22
  25. package/dist/umd-modern/dexie-cloud-addon.js.map +1 -1
  26. package/package.json +3 -3
  27. package/dist/types/DexieCloudEntity.d.ts +0 -8
  28. package/dist/types/DexieCloudServerState.d.ts +0 -5
  29. package/dist/types/WebSocketStatus.d.ts +0 -1
  30. package/dist/types/createMyMembersObservable.d.ts +0 -14
  31. package/dist/types/currentUserObservable.d.ts +0 -3
  32. package/dist/types/helpers/BroadcastedLocalEvent.d.ts +0 -8
  33. package/dist/types/helpers/visibleState.d.ts +0 -1
  34. package/dist/types/permissionsLookup.d.ts +0 -9
  35. package/dist/types/permissionsLookupObservable.d.ts +0 -14
  36. package/dist/types/sync/globalizePrivateIds.d.ts +0 -4
  37. package/dist/types/sync/syncServerToClientOnly.d.ts +0 -3
  38. package/dist/types/types/CloudConnectionStatus.d.ts +0 -0
  39. package/dist/types/types/ConnectionStatus.d.ts +0 -0
  40. package/dist/types/types/LoginState.d.ts +0 -41
  41. package/dist/types/types/SyncConnectionStatus.d.ts +0 -1
  42. package/dist/types/types/SyncFlowStatus.d.ts +0 -6
  43. package/dist/types/types/SyncStatus.d.ts +0 -6
@@ -1941,7 +1941,7 @@
1941
1941
  }
1942
1942
 
1943
1943
  //@ts-check
1944
- const randomFillSync = crypto.getRandomValues;
1944
+ const randomFillSync = crypto.getRandomValues.bind(crypto);
1945
1945
 
1946
1946
  function assert(b) {
1947
1947
  if (!b)
@@ -2003,17 +2003,17 @@
2003
2003
  }
2004
2004
  }
2005
2005
  }
2006
- const randomString = typeof Buffer !== 'undefined' ? (bytes) => {
2007
- // Node
2008
- const buf = Buffer.alloc(bytes);
2009
- randomFillSync(buf);
2010
- return buf.toString("base64");
2011
- } : (bytes) => {
2006
+ const randomString = typeof self !== 'undefined' && typeof crypto !== 'undefined' ? (bytes) => {
2012
2007
  // Web
2013
2008
  const buf = new Uint8Array(bytes);
2014
2009
  crypto.getRandomValues(buf);
2015
2010
  return btoa(String.fromCharCode.apply(null, buf));
2016
- };
2011
+ } : typeof Buffer !== 'undefined' ? (bytes) => {
2012
+ // Node
2013
+ const buf = Buffer.alloc(bytes);
2014
+ randomFillSync(buf);
2015
+ return buf.toString("base64");
2016
+ } : () => { throw new Error("No implementation of randomString was found"); };
2017
2017
 
2018
2018
  /** Verifies that given primary key is valid.
2019
2019
  * The reason we narrow validity for valid keys are twofold:
@@ -3039,7 +3039,7 @@
3039
3039
  // serverRev.rev = bigIntDef.bigint.revive(server.rev)
3040
3040
  // else
3041
3041
  // serverRev.rev = new FakeBigInt(server.rev)
3042
- const hasBigIntSupport = typeof BigInt(0) === 'bigint';
3042
+ const hasBigIntSupport = typeof BigInt === 'function' && typeof BigInt(0) === 'bigint';
3043
3043
  class FakeBigInt {
3044
3044
  constructor(value) {
3045
3045
  this.v = value;
@@ -4405,7 +4405,7 @@
4405
4405
  // modify operations. Reason: Server may not have
4406
4406
  // the object. Object should be created on server only
4407
4407
  // if is being updated. An update operation won't create it
4408
- // so we must delete req.changeSpec to decrate operation to
4408
+ // so we must delete req.changeSpec to degrade operation to
4409
4409
  // an upsert operation with timestamp so that it will be created.
4410
4410
  // We must also degrade from consistent modify operations for the
4411
4411
  // same reason - object might be there on server. Must but put up instead.
@@ -4417,7 +4417,7 @@
4417
4417
  if (req.type === 'put') {
4418
4418
  delete req.criteria;
4419
4419
  delete req.changeSpec;
4420
- delete req.changeSpecs;
4420
+ delete req.updates;
4421
4421
  obj.$ts = Date.now();
4422
4422
  }
4423
4423
  }
@@ -4622,11 +4622,10 @@
4622
4622
  const { numFailures: hasFailures, failures } = res;
4623
4623
  let keys = type === 'delete' ? req.keys : res.results;
4624
4624
  let values = 'values' in req ? req.values : [];
4625
- let changeSpecs = 'changeSpecs' in req ? req.changeSpecs : [];
4625
+ let updates = 'updates' in req && req.updates;
4626
4626
  if (hasFailures) {
4627
4627
  keys = keys.filter((_, idx) => !failures[idx]);
4628
4628
  values = values.filter((_, idx) => !failures[idx]);
4629
- changeSpecs = changeSpecs.filter((_, idx) => !failures[idx]);
4630
4629
  }
4631
4630
  const ts = Date.now();
4632
4631
  const mut = req.type === 'delete'
@@ -4658,13 +4657,13 @@
4658
4657
  txid,
4659
4658
  userId
4660
4659
  }
4661
- : req.changeSpecs
4660
+ : updates
4662
4661
  ? {
4663
4662
  // One changeSpec per key
4664
4663
  type: 'update',
4665
4664
  ts,
4666
- keys,
4667
- changeSpecs,
4665
+ keys: updates.keys,
4666
+ changeSpecs: updates.changeSpecs,
4668
4667
  txid,
4669
4668
  userId
4670
4669
  }
@@ -5470,13 +5469,26 @@
5470
5469
  }
5471
5470
  }
5472
5471
  function setupDefaultGUI(db) {
5473
- const el = document.createElement('div');
5474
- document.body.appendChild(el);
5475
- P(h(LoginGui, { db: db.vip }), el);
5476
5472
  let closed = false;
5473
+ const el = document.createElement('div');
5474
+ if (document.body) {
5475
+ document.body.appendChild(el);
5476
+ P(h(LoginGui, { db: db.vip }), el);
5477
+ }
5478
+ else {
5479
+ addEventListener('DOMContentLoaded', () => {
5480
+ if (!closed) {
5481
+ document.body.appendChild(el);
5482
+ P(h(LoginGui, { db: db.vip }), el);
5483
+ }
5484
+ });
5485
+ }
5477
5486
  return {
5478
5487
  unsubscribe() {
5479
- el.remove();
5488
+ try {
5489
+ el.remove();
5490
+ }
5491
+ catch (_a) { }
5480
5492
  closed = true;
5481
5493
  },
5482
5494
  get closed() {
@@ -5832,10 +5844,10 @@
5832
5844
  }
5833
5845
 
5834
5846
  const getInvitesObservable = associate((db) => {
5835
- const membersByEmail = getCurrentUserEmitter(db._novip).pipe(rxjs.switchMap((currentUser) => Dexie.liveQuery(() => db.members.where({ email: currentUser.email || '' }).toArray())));
5847
+ const membersByEmail = getCurrentUserEmitter(db._novip).pipe(switchMap((currentUser) => Dexie.liveQuery(() => db.members.where({ email: currentUser.email || '' }).toArray())));
5836
5848
  const permissions = getPermissionsLookupObservable(db._novip);
5837
5849
  const accessControl = getInternalAccessControlObservable(db._novip);
5838
- return createSharedValueObservable(rxjs.combineLatest([membersByEmail, accessControl, permissions]).pipe(rxjs.map(([membersByEmail, accessControl, realmLookup]) => {
5850
+ return createSharedValueObservable(rxjs.combineLatest([membersByEmail, accessControl, permissions]).pipe(map(([membersByEmail, accessControl, realmLookup]) => {
5839
5851
  const reducer = (result, m) => (Object.assign(Object.assign({}, result), { [m.id]: Object.assign(Object.assign({}, m), { realm: realmLookup[m.realmId] }) }));
5840
5852
  const emailMembersById = membersByEmail.reduce(reducer, {});
5841
5853
  const membersById = accessControl.selfMembers.reduce(reducer, emailMembersById);
@@ -5891,7 +5903,7 @@
5891
5903
  currentUserEmitter.next(UNAUTHORIZED_USER);
5892
5904
  });
5893
5905
  dexie.cloud = {
5894
- version: '4.0.0-beta.23',
5906
+ version: '4.0.1-beta.26',
5895
5907
  options: Object.assign({}, DEFAULT_OPTIONS),
5896
5908
  schema: null,
5897
5909
  get currentUserId() {
@@ -6144,7 +6156,7 @@
6144
6156
  });
6145
6157
  }
6146
6158
  }
6147
- dexieCloud.version = '4.0.0-beta.23';
6159
+ dexieCloud.version = '4.0.1-beta.26';
6148
6160
  Dexie__default["default"].Cloud = dexieCloud;
6149
6161
 
6150
6162
  // In case the SW lives for a while, let it reuse already opened connections: