dexie-cloud-addon 4.0.0-beta.18 → 4.0.0-beta.21
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 +41 -25
- 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 +45 -26
- 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 +598 -568
- 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/DexieCloudAPI.d.ts +17 -3
- package/dist/types/DexieCloudEntity.d.ts +8 -0
- package/dist/types/DexieCloudOptions.d.ts +2 -1
- package/dist/types/Invite.d.ts +2 -0
- package/dist/types/WebSocketStatus.d.ts +1 -0
- package/dist/types/createMyMembersObservable.d.ts +14 -0
- package/dist/types/currentUserObservable.d.ts +3 -0
- package/dist/types/db/entities/UserLogin.d.ts +0 -2
- package/dist/types/default-ui/Dialog.d.ts +2 -1
- package/dist/types/getInvitesObservable.d.ts +1 -23
- package/dist/types/helpers/BroadcastedLocalEvent.d.ts +8 -0
- package/dist/types/helpers/visibleState.d.ts +1 -0
- package/dist/types/permissionsLookup.d.ts +9 -0
- package/dist/types/permissionsLookupObservable.d.ts +14 -0
- package/dist/types/sync/globalizePrivateIds.d.ts +4 -0
- package/dist/types/sync/syncServerToClientOnly.d.ts +3 -0
- 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 +41 -0
- package/dist/types/types/SyncConnectionStatus.d.ts +1 -0
- package/dist/types/types/SyncFlowStatus.d.ts +6 -0
- package/dist/types/types/SyncStatus.d.ts +6 -0
- package/dist/umd/dexie-cloud-addon.js +598 -568
- 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 +45 -26
- 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 +38 -22
- package/dist/umd-modern/dexie-cloud-addon.js.map +1 -1
- package/package.json +3 -3
|
@@ -5204,16 +5204,19 @@
|
|
|
5204
5204
|
function _syncIfPossible() {
|
|
5205
5205
|
return __awaiter$1(this, void 0, void 0, function* () {
|
|
5206
5206
|
try {
|
|
5207
|
-
if (db.cloud.
|
|
5208
|
-
|
|
5209
|
-
|
|
5210
|
-
}
|
|
5207
|
+
if (db.cloud.isServiceWorkerDB) {
|
|
5208
|
+
// We are the dedicated sync SW:
|
|
5209
|
+
yield sync(db, cloudOptions, cloudSchema, options);
|
|
5211
5210
|
}
|
|
5212
|
-
else {
|
|
5211
|
+
else if (!db.cloud.usingServiceWorker) {
|
|
5213
5212
|
// We use a flow that is better suited for the case when multiple workers want to
|
|
5214
5213
|
// do the same thing.
|
|
5215
5214
|
yield performGuardedJob(db, CURRENT_SYNC_WORKER, '$jobs', () => sync(db, cloudOptions, cloudSchema, options));
|
|
5216
5215
|
}
|
|
5216
|
+
else {
|
|
5217
|
+
assert(false);
|
|
5218
|
+
throw new Error('Internal _syncIfPossible() - invalid precondition - should not have been called.');
|
|
5219
|
+
}
|
|
5217
5220
|
ongoingSyncs.delete(db);
|
|
5218
5221
|
console.debug('Done sync');
|
|
5219
5222
|
}
|
|
@@ -5375,8 +5378,8 @@
|
|
|
5375
5378
|
}
|
|
5376
5379
|
};
|
|
5377
5380
|
|
|
5378
|
-
function Dialog({ children }) {
|
|
5379
|
-
return (a$1("div",
|
|
5381
|
+
function Dialog({ children, className }) {
|
|
5382
|
+
return (a$1("div", { className: className },
|
|
5380
5383
|
a$1("div", { style: Styles.Darken }),
|
|
5381
5384
|
a$1("div", { style: Styles.DialogOuter },
|
|
5382
5385
|
a$1("div", { style: Styles.DialogInner }, children))));
|
|
@@ -5392,7 +5395,7 @@
|
|
|
5392
5395
|
const [params, setParams] = l({});
|
|
5393
5396
|
const firstFieldRef = s();
|
|
5394
5397
|
h(() => { var _a; return (_a = firstFieldRef.current) === null || _a === void 0 ? void 0 : _a.focus(); }, []);
|
|
5395
|
-
return (a$1(Dialog,
|
|
5398
|
+
return (a$1(Dialog, { className: "dxc-login-dlg" },
|
|
5396
5399
|
a$1(y, null,
|
|
5397
5400
|
a$1("h3", { style: Styles.WindowHeader }, title),
|
|
5398
5401
|
alerts.map((alert) => (a$1("p", { style: Styles.Alert[alert.type] }, resolveText(alert)))),
|
|
@@ -5806,7 +5809,18 @@
|
|
|
5806
5809
|
const reducer = (result, m) => (Object.assign(Object.assign({}, result), { [m.id]: Object.assign(Object.assign({}, m), { realm: realmLookup[m.realmId] }) }));
|
|
5807
5810
|
const emailMembersById = membersByEmail.reduce(reducer, {});
|
|
5808
5811
|
const membersById = accessControl.selfMembers.reduce(reducer, emailMembersById);
|
|
5809
|
-
return Object.values(membersById)
|
|
5812
|
+
return Object.values(membersById)
|
|
5813
|
+
.filter((invite) => !invite.accepted && !invite.rejected)
|
|
5814
|
+
.map((invite) => (Object.assign(Object.assign({}, invite), { accept() {
|
|
5815
|
+
return __awaiter$1(this, void 0, void 0, function* () {
|
|
5816
|
+
yield db.members.update(invite.id, { accepted: new Date() });
|
|
5817
|
+
});
|
|
5818
|
+
},
|
|
5819
|
+
reject() {
|
|
5820
|
+
return __awaiter$1(this, void 0, void 0, function* () {
|
|
5821
|
+
yield db.members.update(invite.id, { rejected: new Date() });
|
|
5822
|
+
});
|
|
5823
|
+
} })));
|
|
5810
5824
|
})), []);
|
|
5811
5825
|
});
|
|
5812
5826
|
|
|
@@ -5857,7 +5871,6 @@
|
|
|
5857
5871
|
version: '{version}',
|
|
5858
5872
|
options: Object.assign({}, DEFAULT_OPTIONS),
|
|
5859
5873
|
schema: null,
|
|
5860
|
-
serverState: null,
|
|
5861
5874
|
get currentUserId() {
|
|
5862
5875
|
return currentUserEmitter.value.userId || UNAUTHORIZED_USER.userId;
|
|
5863
5876
|
},
|
|
@@ -5946,15 +5959,17 @@
|
|
|
5946
5959
|
dexie.use(createImplicitPropSetterMiddleware(DexieCloudDB(dexie)));
|
|
5947
5960
|
dexie.use(createIdGenerationMiddleware(DexieCloudDB(dexie)));
|
|
5948
5961
|
function onDbReady(dexie) {
|
|
5949
|
-
var _a, _b, _c, _d, _e, _f;
|
|
5962
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
5950
5963
|
return __awaiter$1(this, void 0, void 0, function* () {
|
|
5951
5964
|
closed = false; // As Dexie calls us, we are not closed anymore. Maybe reopened? Remember db.ready event is registered with sticky flag!
|
|
5952
5965
|
const db = DexieCloudDB(dexie);
|
|
5953
5966
|
// Setup default GUI:
|
|
5954
|
-
if (
|
|
5967
|
+
if (typeof window !== 'undefined' && typeof document !== 'undefined') {
|
|
5955
5968
|
if (!((_a = db.cloud.options) === null || _a === void 0 ? void 0 : _a.customLoginGui)) {
|
|
5956
5969
|
subscriptions.push(setupDefaultGUI(dexie));
|
|
5957
5970
|
}
|
|
5971
|
+
}
|
|
5972
|
+
if (!db.cloud.isServiceWorkerDB) {
|
|
5958
5973
|
subscriptions.push(computeSyncState(db).subscribe(dexie.cloud.syncState));
|
|
5959
5974
|
}
|
|
5960
5975
|
//verifyConfig(db.cloud.options); Not needed (yet at least!)
|
|
@@ -5966,7 +5981,7 @@
|
|
|
5966
5981
|
? yield navigator.serviceWorker.getRegistrations()
|
|
5967
5982
|
: [];
|
|
5968
5983
|
const initiallySynced = yield db.transaction('rw', db.$syncState, () => __awaiter$1(this, void 0, void 0, function* () {
|
|
5969
|
-
var
|
|
5984
|
+
var _h, _j;
|
|
5970
5985
|
const { options, schema } = db.cloud;
|
|
5971
5986
|
const [persistedOptions, persistedSchema, persistedSyncState] = yield Promise.all([
|
|
5972
5987
|
db.getOptions(),
|
|
@@ -5985,7 +6000,7 @@
|
|
|
5985
6000
|
throw new Error(`Internal error`); // options cannot be null if configuredProgramatically is set.
|
|
5986
6001
|
yield db.$syncState.put(options, 'options');
|
|
5987
6002
|
}
|
|
5988
|
-
if (((
|
|
6003
|
+
if (((_h = db.cloud.options) === null || _h === void 0 ? void 0 : _h.tryUseServiceWorker) &&
|
|
5989
6004
|
'serviceWorker' in navigator &&
|
|
5990
6005
|
swRegistrations.length > 0 &&
|
|
5991
6006
|
!DISABLE_SERVICEWORKER_STRATEGY) {
|
|
@@ -5999,7 +6014,8 @@
|
|
|
5999
6014
|
// Not configured for using service worker or no service worker
|
|
6000
6015
|
// registration exists. Don't rely on service worker to do any job.
|
|
6001
6016
|
// Use LocalSyncWorker instead.
|
|
6002
|
-
if (((
|
|
6017
|
+
if (((_j = db.cloud.options) === null || _j === void 0 ? void 0 : _j.tryUseServiceWorker) &&
|
|
6018
|
+
!db.cloud.isServiceWorkerDB) {
|
|
6003
6019
|
console.debug('dexie-cloud-addon: Not using service worker.', swRegistrations.length === 0
|
|
6004
6020
|
? 'No SW registrations found.'
|
|
6005
6021
|
: 'serviceWorker' in navigator && DISABLE_SERVICEWORKER_STRATEGY
|
|
@@ -6047,7 +6063,7 @@
|
|
|
6047
6063
|
}
|
|
6048
6064
|
// Manage CurrentUser observable:
|
|
6049
6065
|
throwIfClosed();
|
|
6050
|
-
if (!
|
|
6066
|
+
if (!db.cloud.isServiceWorkerDB) {
|
|
6051
6067
|
subscriptions.push(Dexie.liveQuery(() => db.getCurrentUser()).subscribe(currentUserEmitter));
|
|
6052
6068
|
// Manage PersistendSyncState observable:
|
|
6053
6069
|
subscriptions.push(Dexie.liveQuery(() => db.getPersistedSyncState()).subscribe(db.cloud.persistedSyncState));
|
|
@@ -6074,7 +6090,7 @@
|
|
|
6074
6090
|
}
|
|
6075
6091
|
else if (((_e = db.cloud.options) === null || _e === void 0 ? void 0 : _e.databaseUrl) &&
|
|
6076
6092
|
db.cloud.schema &&
|
|
6077
|
-
!
|
|
6093
|
+
!db.cloud.isServiceWorkerDB) {
|
|
6078
6094
|
// There's no SW. Start SyncWorker instead.
|
|
6079
6095
|
localSyncWorker = LocalSyncWorker(db, db.cloud.options, db.cloud.schema);
|
|
6080
6096
|
localSyncWorker.start();
|
|
@@ -6082,7 +6098,7 @@
|
|
|
6082
6098
|
}
|
|
6083
6099
|
// Listen to online event and do sync.
|
|
6084
6100
|
throwIfClosed();
|
|
6085
|
-
if (!
|
|
6101
|
+
if (!db.cloud.isServiceWorkerDB) {
|
|
6086
6102
|
subscriptions.push(rxjs.fromEvent(self, 'online').subscribe(() => {
|
|
6087
6103
|
console.debug('online!');
|
|
6088
6104
|
db.syncStateChangedEvent.next({
|
|
@@ -6096,10 +6112,10 @@
|
|
|
6096
6112
|
});
|
|
6097
6113
|
}));
|
|
6098
6114
|
}
|
|
6099
|
-
// Connect WebSocket
|
|
6100
|
-
if (
|
|
6101
|
-
!
|
|
6102
|
-
|
|
6115
|
+
// Connect WebSocket unless we
|
|
6116
|
+
if (((_f = db.cloud.options) === null || _f === void 0 ? void 0 : _f.databaseUrl) &&
|
|
6117
|
+
!((_g = db.cloud.options) === null || _g === void 0 ? void 0 : _g.disableWebSocket) &&
|
|
6118
|
+
!IS_SERVICE_WORKER) {
|
|
6103
6119
|
subscriptions.push(connectWebSocket(db));
|
|
6104
6120
|
}
|
|
6105
6121
|
});
|