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.
Files changed (41) hide show
  1. package/dist/modern/dexie-cloud-addon.js +26 -20
  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 +30 -21
  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 +571 -564
  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/DexieCloudAPI.d.ts +1 -0
  14. package/dist/types/DexieCloudEntity.d.ts +8 -0
  15. package/dist/types/DexieCloudOptions.d.ts +1 -0
  16. package/dist/types/WebSocketStatus.d.ts +1 -0
  17. package/dist/types/createMyMembersObservable.d.ts +14 -0
  18. package/dist/types/currentUserObservable.d.ts +3 -0
  19. package/dist/types/helpers/BroadcastedLocalEvent.d.ts +8 -0
  20. package/dist/types/helpers/visibleState.d.ts +1 -0
  21. package/dist/types/permissionsLookup.d.ts +9 -0
  22. package/dist/types/permissionsLookupObservable.d.ts +14 -0
  23. package/dist/types/sync/globalizePrivateIds.d.ts +4 -0
  24. package/dist/types/sync/syncServerToClientOnly.d.ts +3 -0
  25. package/dist/types/types/CloudConnectionStatus.d.ts +0 -0
  26. package/dist/types/types/ConnectionStatus.d.ts +0 -0
  27. package/dist/types/types/LoginState.d.ts +41 -0
  28. package/dist/types/types/SyncConnectionStatus.d.ts +1 -0
  29. package/dist/types/types/SyncFlowStatus.d.ts +6 -0
  30. package/dist/types/types/SyncStatus.d.ts +6 -0
  31. package/dist/umd/dexie-cloud-addon.js +571 -564
  32. package/dist/umd/dexie-cloud-addon.js.map +1 -1
  33. package/dist/umd/dexie-cloud-addon.min.js +1 -1
  34. package/dist/umd/dexie-cloud-addon.min.js.map +1 -1
  35. package/dist/umd/service-worker.js +30 -21
  36. package/dist/umd/service-worker.js.map +1 -1
  37. package/dist/umd/service-worker.min.js +1 -1
  38. package/dist/umd/service-worker.min.js.map +1 -1
  39. package/dist/umd-modern/dexie-cloud-addon.js +23 -17
  40. package/dist/umd-modern/dexie-cloud-addon.js.map +1 -1
  41. 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.usingServiceWorker) {
5208
- if (IS_SERVICE_WORKER) {
5209
- yield sync(db, cloudOptions, cloudSchema, options);
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 (!IS_SERVICE_WORKER) {
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 _g, _h;
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 (((_g = db.cloud.options) === null || _g === void 0 ? void 0 : _g.tryUseServiceWorker) &&
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 (((_h = db.cloud.options) === null || _h === void 0 ? void 0 : _h.tryUseServiceWorker) && !IS_SERVICE_WORKER) {
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 (!IS_SERVICE_WORKER) {
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
- !IS_SERVICE_WORKER) {
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 (!IS_SERVICE_WORKER) {
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 only if we're a browser window
6100
- if (typeof window !== 'undefined' &&
6101
- !IS_SERVICE_WORKER &&
6102
- ((_f = db.cloud.options) === null || _f === void 0 ? void 0 : _f.databaseUrl)) {
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
  });