dexie-cloud-addon 4.0.0-beta.18 → 4.0.0-beta.19
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 +26 -20
- 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 +30 -21
- 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 +571 -564
- 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 +1 -0
- package/dist/types/DexieCloudEntity.d.ts +8 -0
- package/dist/types/DexieCloudOptions.d.ts +1 -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/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 +571 -564
- 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 +30 -21
- 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 +23 -17
- package/dist/umd-modern/dexie-cloud-addon.js.map +1 -1
- package/package.json +1 -1
|
@@ -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
|
}
|
|
@@ -5946,15 +5949,17 @@
|
|
|
5946
5949
|
dexie.use(createImplicitPropSetterMiddleware(DexieCloudDB(dexie)));
|
|
5947
5950
|
dexie.use(createIdGenerationMiddleware(DexieCloudDB(dexie)));
|
|
5948
5951
|
function onDbReady(dexie) {
|
|
5949
|
-
var _a, _b, _c, _d, _e, _f;
|
|
5952
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
5950
5953
|
return __awaiter$1(this, void 0, void 0, function* () {
|
|
5951
5954
|
closed = false; // As Dexie calls us, we are not closed anymore. Maybe reopened? Remember db.ready event is registered with sticky flag!
|
|
5952
5955
|
const db = DexieCloudDB(dexie);
|
|
5953
5956
|
// Setup default GUI:
|
|
5954
|
-
if (
|
|
5957
|
+
if (typeof window !== 'undefined' && typeof document !== 'undefined') {
|
|
5955
5958
|
if (!((_a = db.cloud.options) === null || _a === void 0 ? void 0 : _a.customLoginGui)) {
|
|
5956
5959
|
subscriptions.push(setupDefaultGUI(dexie));
|
|
5957
5960
|
}
|
|
5961
|
+
}
|
|
5962
|
+
if (!db.cloud.isServiceWorkerDB) {
|
|
5958
5963
|
subscriptions.push(computeSyncState(db).subscribe(dexie.cloud.syncState));
|
|
5959
5964
|
}
|
|
5960
5965
|
//verifyConfig(db.cloud.options); Not needed (yet at least!)
|
|
@@ -5966,7 +5971,7 @@
|
|
|
5966
5971
|
? yield navigator.serviceWorker.getRegistrations()
|
|
5967
5972
|
: [];
|
|
5968
5973
|
const initiallySynced = yield db.transaction('rw', db.$syncState, () => __awaiter$1(this, void 0, void 0, function* () {
|
|
5969
|
-
var
|
|
5974
|
+
var _h, _j;
|
|
5970
5975
|
const { options, schema } = db.cloud;
|
|
5971
5976
|
const [persistedOptions, persistedSchema, persistedSyncState] = yield Promise.all([
|
|
5972
5977
|
db.getOptions(),
|
|
@@ -5985,7 +5990,7 @@
|
|
|
5985
5990
|
throw new Error(`Internal error`); // options cannot be null if configuredProgramatically is set.
|
|
5986
5991
|
yield db.$syncState.put(options, 'options');
|
|
5987
5992
|
}
|
|
5988
|
-
if (((
|
|
5993
|
+
if (((_h = db.cloud.options) === null || _h === void 0 ? void 0 : _h.tryUseServiceWorker) &&
|
|
5989
5994
|
'serviceWorker' in navigator &&
|
|
5990
5995
|
swRegistrations.length > 0 &&
|
|
5991
5996
|
!DISABLE_SERVICEWORKER_STRATEGY) {
|
|
@@ -5999,7 +6004,8 @@
|
|
|
5999
6004
|
// Not configured for using service worker or no service worker
|
|
6000
6005
|
// registration exists. Don't rely on service worker to do any job.
|
|
6001
6006
|
// Use LocalSyncWorker instead.
|
|
6002
|
-
if (((
|
|
6007
|
+
if (((_j = db.cloud.options) === null || _j === void 0 ? void 0 : _j.tryUseServiceWorker) &&
|
|
6008
|
+
!db.cloud.isServiceWorkerDB) {
|
|
6003
6009
|
console.debug('dexie-cloud-addon: Not using service worker.', swRegistrations.length === 0
|
|
6004
6010
|
? 'No SW registrations found.'
|
|
6005
6011
|
: 'serviceWorker' in navigator && DISABLE_SERVICEWORKER_STRATEGY
|
|
@@ -6047,7 +6053,7 @@
|
|
|
6047
6053
|
}
|
|
6048
6054
|
// Manage CurrentUser observable:
|
|
6049
6055
|
throwIfClosed();
|
|
6050
|
-
if (!
|
|
6056
|
+
if (!db.cloud.isServiceWorkerDB) {
|
|
6051
6057
|
subscriptions.push(Dexie.liveQuery(() => db.getCurrentUser()).subscribe(currentUserEmitter));
|
|
6052
6058
|
// Manage PersistendSyncState observable:
|
|
6053
6059
|
subscriptions.push(Dexie.liveQuery(() => db.getPersistedSyncState()).subscribe(db.cloud.persistedSyncState));
|
|
@@ -6074,7 +6080,7 @@
|
|
|
6074
6080
|
}
|
|
6075
6081
|
else if (((_e = db.cloud.options) === null || _e === void 0 ? void 0 : _e.databaseUrl) &&
|
|
6076
6082
|
db.cloud.schema &&
|
|
6077
|
-
!
|
|
6083
|
+
!db.cloud.isServiceWorkerDB) {
|
|
6078
6084
|
// There's no SW. Start SyncWorker instead.
|
|
6079
6085
|
localSyncWorker = LocalSyncWorker(db, db.cloud.options, db.cloud.schema);
|
|
6080
6086
|
localSyncWorker.start();
|
|
@@ -6082,7 +6088,7 @@
|
|
|
6082
6088
|
}
|
|
6083
6089
|
// Listen to online event and do sync.
|
|
6084
6090
|
throwIfClosed();
|
|
6085
|
-
if (!
|
|
6091
|
+
if (!db.cloud.isServiceWorkerDB) {
|
|
6086
6092
|
subscriptions.push(rxjs.fromEvent(self, 'online').subscribe(() => {
|
|
6087
6093
|
console.debug('online!');
|
|
6088
6094
|
db.syncStateChangedEvent.next({
|
|
@@ -6096,10 +6102,10 @@
|
|
|
6096
6102
|
});
|
|
6097
6103
|
}));
|
|
6098
6104
|
}
|
|
6099
|
-
// Connect WebSocket
|
|
6100
|
-
if (
|
|
6101
|
-
!
|
|
6102
|
-
|
|
6105
|
+
// Connect WebSocket unless we
|
|
6106
|
+
if (((_f = db.cloud.options) === null || _f === void 0 ? void 0 : _f.databaseUrl) &&
|
|
6107
|
+
!((_g = db.cloud.options) === null || _g === void 0 ? void 0 : _g.disableWebSocket) &&
|
|
6108
|
+
!IS_SERVICE_WORKER) {
|
|
6103
6109
|
subscriptions.push(connectWebSocket(db));
|
|
6104
6110
|
}
|
|
6105
6111
|
});
|