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
@@ -1,5 +1,5 @@
1
1
  import Dexie, { cmp, liveQuery } from 'dexie';
2
- import { Observable as Observable$1, BehaviorSubject, Subject, fromEvent, of, merge, Subscription as Subscription$1, from as from$1, throwError, combineLatest, map as map$1, share, timer as timer$1, switchMap as switchMap$1 } from 'rxjs';
2
+ import { Observable as Observable$1, BehaviorSubject, Subject, fromEvent, of, merge, Subscription as Subscription$1, from as from$1, throwError, combineLatest, map as map$1, share, timer as timer$1 } from 'rxjs';
3
3
 
4
4
  /******************************************************************************
5
5
  Copyright (c) Microsoft Corporation.
@@ -1934,7 +1934,7 @@ function randomString$1(bytes) {
1934
1934
  }
1935
1935
 
1936
1936
  //@ts-check
1937
- const randomFillSync = crypto.getRandomValues;
1937
+ const randomFillSync = crypto.getRandomValues.bind(crypto);
1938
1938
 
1939
1939
  function assert(b) {
1940
1940
  if (!b)
@@ -1996,17 +1996,17 @@ function setByKeyPath(obj, keyPath, value) {
1996
1996
  }
1997
1997
  }
1998
1998
  }
1999
- const randomString = typeof Buffer !== 'undefined' ? (bytes) => {
2000
- // Node
2001
- const buf = Buffer.alloc(bytes);
2002
- randomFillSync(buf);
2003
- return buf.toString("base64");
2004
- } : (bytes) => {
1999
+ const randomString = typeof self !== 'undefined' && typeof crypto !== 'undefined' ? (bytes) => {
2005
2000
  // Web
2006
2001
  const buf = new Uint8Array(bytes);
2007
2002
  crypto.getRandomValues(buf);
2008
2003
  return btoa(String.fromCharCode.apply(null, buf));
2009
- };
2004
+ } : typeof Buffer !== 'undefined' ? (bytes) => {
2005
+ // Node
2006
+ const buf = Buffer.alloc(bytes);
2007
+ randomFillSync(buf);
2008
+ return buf.toString("base64");
2009
+ } : () => { throw new Error("No implementation of randomString was found"); };
2010
2010
 
2011
2011
  /** Verifies that given primary key is valid.
2012
2012
  * The reason we narrow validity for valid keys are twofold:
@@ -3032,7 +3032,7 @@ var undefinedDef = {
3032
3032
  // serverRev.rev = bigIntDef.bigint.revive(server.rev)
3033
3033
  // else
3034
3034
  // serverRev.rev = new FakeBigInt(server.rev)
3035
- const hasBigIntSupport = typeof BigInt(0) === 'bigint';
3035
+ const hasBigIntSupport = typeof BigInt === 'function' && typeof BigInt(0) === 'bigint';
3036
3036
  class FakeBigInt {
3037
3037
  constructor(value) {
3038
3038
  this.v = value;
@@ -4398,7 +4398,7 @@ function createImplicitPropSetterMiddleware(db) {
4398
4398
  // modify operations. Reason: Server may not have
4399
4399
  // the object. Object should be created on server only
4400
4400
  // if is being updated. An update operation won't create it
4401
- // so we must delete req.changeSpec to decrate operation to
4401
+ // so we must delete req.changeSpec to degrade operation to
4402
4402
  // an upsert operation with timestamp so that it will be created.
4403
4403
  // We must also degrade from consistent modify operations for the
4404
4404
  // same reason - object might be there on server. Must but put up instead.
@@ -4410,7 +4410,7 @@ function createImplicitPropSetterMiddleware(db) {
4410
4410
  if (req.type === 'put') {
4411
4411
  delete req.criteria;
4412
4412
  delete req.changeSpec;
4413
- delete req.changeSpecs;
4413
+ delete req.updates;
4414
4414
  obj.$ts = Date.now();
4415
4415
  }
4416
4416
  }
@@ -4615,11 +4615,10 @@ function createMutationTrackingMiddleware({ currentUserObservable, db }) {
4615
4615
  const { numFailures: hasFailures, failures } = res;
4616
4616
  let keys = type === 'delete' ? req.keys : res.results;
4617
4617
  let values = 'values' in req ? req.values : [];
4618
- let changeSpecs = 'changeSpecs' in req ? req.changeSpecs : [];
4618
+ let updates = 'updates' in req && req.updates;
4619
4619
  if (hasFailures) {
4620
4620
  keys = keys.filter((_, idx) => !failures[idx]);
4621
4621
  values = values.filter((_, idx) => !failures[idx]);
4622
- changeSpecs = changeSpecs.filter((_, idx) => !failures[idx]);
4623
4622
  }
4624
4623
  const ts = Date.now();
4625
4624
  const mut = req.type === 'delete'
@@ -4651,13 +4650,13 @@ function createMutationTrackingMiddleware({ currentUserObservable, db }) {
4651
4650
  txid,
4652
4651
  userId
4653
4652
  }
4654
- : req.changeSpecs
4653
+ : updates
4655
4654
  ? {
4656
4655
  // One changeSpec per key
4657
4656
  type: 'update',
4658
4657
  ts,
4659
- keys,
4660
- changeSpecs,
4658
+ keys: updates.keys,
4659
+ changeSpecs: updates.changeSpecs,
4661
4660
  txid,
4662
4661
  userId
4663
4662
  }
@@ -5463,13 +5462,26 @@ class LoginGui extends d$1 {
5463
5462
  }
5464
5463
  }
5465
5464
  function setupDefaultGUI(db) {
5466
- const el = document.createElement('div');
5467
- document.body.appendChild(el);
5468
- P(h(LoginGui, { db: db.vip }), el);
5469
5465
  let closed = false;
5466
+ const el = document.createElement('div');
5467
+ if (document.body) {
5468
+ document.body.appendChild(el);
5469
+ P(h(LoginGui, { db: db.vip }), el);
5470
+ }
5471
+ else {
5472
+ addEventListener('DOMContentLoaded', () => {
5473
+ if (!closed) {
5474
+ document.body.appendChild(el);
5475
+ P(h(LoginGui, { db: db.vip }), el);
5476
+ }
5477
+ });
5478
+ }
5470
5479
  return {
5471
5480
  unsubscribe() {
5472
- el.remove();
5481
+ try {
5482
+ el.remove();
5483
+ }
5484
+ catch (_a) { }
5473
5485
  closed = true;
5474
5486
  },
5475
5487
  get closed() {
@@ -5825,10 +5837,10 @@ function permissions(dexie, obj, tableName) {
5825
5837
  }
5826
5838
 
5827
5839
  const getInvitesObservable = associate((db) => {
5828
- const membersByEmail = getCurrentUserEmitter(db._novip).pipe(switchMap$1((currentUser) => liveQuery(() => db.members.where({ email: currentUser.email || '' }).toArray())));
5840
+ const membersByEmail = getCurrentUserEmitter(db._novip).pipe(switchMap((currentUser) => liveQuery(() => db.members.where({ email: currentUser.email || '' }).toArray())));
5829
5841
  const permissions = getPermissionsLookupObservable(db._novip);
5830
5842
  const accessControl = getInternalAccessControlObservable(db._novip);
5831
- return createSharedValueObservable(combineLatest([membersByEmail, accessControl, permissions]).pipe(map$1(([membersByEmail, accessControl, realmLookup]) => {
5843
+ return createSharedValueObservable(combineLatest([membersByEmail, accessControl, permissions]).pipe(map(([membersByEmail, accessControl, realmLookup]) => {
5832
5844
  const reducer = (result, m) => (Object.assign(Object.assign({}, result), { [m.id]: Object.assign(Object.assign({}, m), { realm: realmLookup[m.realmId] }) }));
5833
5845
  const emailMembersById = membersByEmail.reduce(reducer, {});
5834
5846
  const membersById = accessControl.selfMembers.reduce(reducer, emailMembersById);
@@ -5884,7 +5896,7 @@ function dexieCloud(dexie) {
5884
5896
  currentUserEmitter.next(UNAUTHORIZED_USER);
5885
5897
  });
5886
5898
  dexie.cloud = {
5887
- version: '4.0.0-beta.23',
5899
+ version: '4.0.1-beta.26',
5888
5900
  options: Object.assign({}, DEFAULT_OPTIONS),
5889
5901
  schema: null,
5890
5902
  get currentUserId() {
@@ -6137,7 +6149,7 @@ function dexieCloud(dexie) {
6137
6149
  });
6138
6150
  }
6139
6151
  }
6140
- dexieCloud.version = '4.0.0-beta.23';
6152
+ dexieCloud.version = '4.0.1-beta.26';
6141
6153
  Dexie.Cloud = dexieCloud;
6142
6154
 
6143
6155
  // In case the SW lives for a while, let it reuse already opened connections: