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.
- package/dist/modern/dexie-cloud-addon.js +38 -26
- package/dist/modern/dexie-cloud-addon.js.map +1 -1
- package/dist/modern/dexie-cloud-addon.min.js +1 -1
- package/dist/modern/dexie-cloud-addon.min.js.map +1 -1
- package/dist/modern/service-worker.js +37 -25
- package/dist/modern/service-worker.js.map +1 -1
- package/dist/modern/service-worker.min.js +1 -1
- package/dist/modern/service-worker.min.js.map +1 -1
- package/dist/module-es5/dexie-cloud-addon.js +38 -26
- package/dist/module-es5/dexie-cloud-addon.js.map +1 -1
- package/dist/module-es5/dexie-cloud-addon.min.js +1 -1
- package/dist/module-es5/dexie-cloud-addon.min.js.map +1 -1
- package/dist/types/DexieCloudTable.d.ts +18 -2
- package/dist/types/extend-dexie-interface.d.ts +5 -3
- package/dist/types/sync/getTablesToSyncify.d.ts +1 -1
- package/dist/umd/dexie-cloud-addon.js +37 -25
- package/dist/umd/dexie-cloud-addon.js.map +1 -1
- package/dist/umd/dexie-cloud-addon.min.js +1 -1
- package/dist/umd/dexie-cloud-addon.min.js.map +1 -1
- package/dist/umd/service-worker.js +36 -24
- package/dist/umd/service-worker.js.map +1 -1
- package/dist/umd/service-worker.min.js +1 -1
- package/dist/umd/service-worker.min.js.map +1 -1
- package/dist/umd-modern/dexie-cloud-addon.js +34 -22
- package/dist/umd-modern/dexie-cloud-addon.js.map +1 -1
- package/package.json +3 -3
- package/dist/types/DexieCloudEntity.d.ts +0 -8
- package/dist/types/DexieCloudServerState.d.ts +0 -5
- package/dist/types/WebSocketStatus.d.ts +0 -1
- package/dist/types/createMyMembersObservable.d.ts +0 -14
- package/dist/types/currentUserObservable.d.ts +0 -3
- package/dist/types/helpers/BroadcastedLocalEvent.d.ts +0 -8
- package/dist/types/helpers/visibleState.d.ts +0 -1
- package/dist/types/permissionsLookup.d.ts +0 -9
- package/dist/types/permissionsLookupObservable.d.ts +0 -14
- package/dist/types/sync/globalizePrivateIds.d.ts +0 -4
- package/dist/types/sync/syncServerToClientOnly.d.ts +0 -3
- package/dist/types/types/CloudConnectionStatus.d.ts +0 -0
- package/dist/types/types/ConnectionStatus.d.ts +0 -0
- package/dist/types/types/LoginState.d.ts +0 -41
- package/dist/types/types/SyncConnectionStatus.d.ts +0 -1
- package/dist/types/types/SyncFlowStatus.d.ts +0 -6
- 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
|
|
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
|
|
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.
|
|
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
|
|
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
|
-
:
|
|
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
|
-
|
|
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(
|
|
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(
|
|
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.
|
|
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.
|
|
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:
|