dexie-cloud-addon 4.4.1 → 4.4.2

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 (158) hide show
  1. package/dist/modern/DexieCloudOptions.d.ts +2 -0
  2. package/dist/modern/default-ui/AuthProviderButton.d.ts +21 -0
  3. package/dist/modern/default-ui/ProviderSelectionDialog.d.ts +7 -0
  4. package/dist/modern/default-ui/SelectDialog.d.ts +10 -0
  5. package/dist/modern/dexie-cloud-addon.js +23 -12
  6. package/dist/modern/dexie-cloud-addon.js.map +1 -1
  7. package/dist/modern/dexie-cloud-addon.min.js +1 -1
  8. package/dist/modern/dexie-cloud-addon.min.js.gz +0 -0
  9. package/dist/modern/dexie-cloud-addon.min.js.map +1 -1
  10. package/dist/modern/service-worker.js +23 -12
  11. package/dist/modern/service-worker.js.map +1 -1
  12. package/dist/modern/service-worker.min.js +1 -1
  13. package/dist/modern/service-worker.min.js.map +1 -1
  14. package/dist/umd/DISABLE_SERVICEWORKER_STRATEGY.d.ts +1 -0
  15. package/dist/umd/DXCWebSocketStatus.d.ts +1 -0
  16. package/dist/umd/DexieCloudAPI.d.ts +75 -0
  17. package/dist/umd/DexieCloudOptions.d.ts +27 -0
  18. package/dist/umd/DexieCloudSyncOptions.d.ts +4 -0
  19. package/dist/umd/DexieCloudTable.d.ts +18 -0
  20. package/dist/umd/InvalidLicenseError.d.ts +5 -0
  21. package/dist/umd/Invite.d.ts +8 -0
  22. package/dist/umd/PermissionChecker.d.ts +15 -0
  23. package/dist/umd/TSON.d.ts +17 -0
  24. package/dist/umd/WSObservable.d.ts +72 -0
  25. package/dist/umd/associate.d.ts +1 -0
  26. package/dist/umd/authentication/AuthPersistedContext.d.ts +9 -0
  27. package/dist/umd/authentication/TokenErrorResponseError.d.ts +10 -0
  28. package/dist/umd/authentication/TokenExpiredError.d.ts +3 -0
  29. package/dist/umd/authentication/UNAUTHORIZED_USER.d.ts +2 -0
  30. package/dist/umd/authentication/authenticate.d.ts +13 -0
  31. package/dist/umd/authentication/currentUserObservable.d.ts +1 -0
  32. package/dist/umd/authentication/interactWithUser.d.ts +21 -0
  33. package/dist/umd/authentication/login.d.ts +3 -0
  34. package/dist/umd/authentication/logout.d.ts +5 -0
  35. package/dist/umd/authentication/otpFetchTokenCallback.d.ts +3 -0
  36. package/dist/umd/authentication/setCurrentUser.d.ts +14 -0
  37. package/dist/umd/authentication/waitUntil.d.ts +3 -0
  38. package/dist/umd/computeSyncState.d.ts +4 -0
  39. package/dist/umd/createSharedValueObservable.d.ts +3 -0
  40. package/dist/umd/currentUserEmitter.d.ts +3 -0
  41. package/dist/umd/db/DexieCloudDB.d.ts +61 -0
  42. package/dist/umd/db/entities/BaseRevisionMapEntry.d.ts +5 -0
  43. package/dist/umd/db/entities/EntityCommon.d.ts +5 -0
  44. package/dist/umd/db/entities/GuardedJob.d.ts +5 -0
  45. package/dist/umd/db/entities/Member.d.ts +19 -0
  46. package/dist/umd/db/entities/PersistedSyncState.d.ts +22 -0
  47. package/dist/umd/db/entities/Realm.d.ts +14 -0
  48. package/dist/umd/db/entities/Role.d.ts +11 -0
  49. package/dist/umd/db/entities/UserLogin.d.ts +23 -0
  50. package/dist/umd/default-ui/Dialog.d.ts +5 -0
  51. package/dist/umd/default-ui/LoginDialog.d.ts +3 -0
  52. package/dist/umd/default-ui/Styles.d.ts +3 -0
  53. package/dist/umd/default-ui/index.d.ts +24 -0
  54. package/dist/umd/define-ydoc-trigger.d.ts +3 -0
  55. package/dist/umd/dexie-cloud-addon.d.ts +3 -0
  56. package/dist/umd/dexie-cloud-addon.js +23 -12
  57. package/dist/umd/dexie-cloud-addon.js.gz +0 -0
  58. package/dist/umd/dexie-cloud-addon.js.map +1 -1
  59. package/dist/umd/dexie-cloud-addon.min.js +1 -1
  60. package/dist/umd/dexie-cloud-addon.min.js.gz +0 -0
  61. package/dist/umd/dexie-cloud-addon.min.js.map +1 -1
  62. package/dist/umd/dexie-cloud-client.d.ts +23 -0
  63. package/dist/umd/errors/HttpError.d.ts +5 -0
  64. package/dist/umd/extend-dexie-interface.d.ts +23 -0
  65. package/dist/umd/getGlobalRolesObservable.d.ts +5 -0
  66. package/dist/umd/getInternalAccessControlObservable.d.ts +12 -0
  67. package/dist/umd/getInvitesObservable.d.ts +23 -0
  68. package/dist/umd/getPermissionsLookupObservable.d.ts +16 -0
  69. package/dist/umd/getTiedRealmId.d.ts +2 -0
  70. package/dist/umd/helpers/BroadcastedAndLocalEvent.d.ts +8 -0
  71. package/dist/umd/helpers/CancelToken.d.ts +4 -0
  72. package/dist/umd/helpers/IS_SERVICE_WORKER.d.ts +1 -0
  73. package/dist/umd/helpers/SWBroadcastChannel.d.ts +12 -0
  74. package/dist/umd/helpers/allSettled.d.ts +1 -0
  75. package/dist/umd/helpers/bulkUpdate.d.ts +4 -0
  76. package/dist/umd/helpers/computeRealmSetHash.d.ts +2 -0
  77. package/dist/umd/helpers/date-constants.d.ts +5 -0
  78. package/dist/umd/helpers/flatten.d.ts +1 -0
  79. package/dist/umd/helpers/getMutationTable.d.ts +1 -0
  80. package/dist/umd/helpers/getSyncableTables.d.ts +4 -0
  81. package/dist/umd/helpers/getTableFromMutationTable.d.ts +1 -0
  82. package/dist/umd/helpers/makeArray.d.ts +1 -0
  83. package/dist/umd/helpers/randomString.d.ts +1 -0
  84. package/dist/umd/helpers/resolveText.d.ts +16 -0
  85. package/dist/umd/helpers/throwVersionIncrementNeeded.d.ts +1 -0
  86. package/dist/umd/helpers/visibilityState.d.ts +1 -0
  87. package/dist/umd/isEagerSyncDisabled.d.ts +2 -0
  88. package/dist/umd/isFirefox.d.ts +1 -0
  89. package/dist/umd/isSafari.d.ts +2 -0
  90. package/dist/umd/mapValueObservable.d.ts +5 -0
  91. package/dist/umd/mergePermissions.d.ts +2 -0
  92. package/dist/umd/middleware-helpers/guardedTable.d.ts +11 -0
  93. package/dist/umd/middleware-helpers/idGenerationHelpers.d.ts +18 -0
  94. package/dist/umd/middlewares/createIdGenerationMiddleware.d.ts +3 -0
  95. package/dist/umd/middlewares/createImplicitPropSetterMiddleware.d.ts +3 -0
  96. package/dist/umd/middlewares/createMutationTrackingMiddleware.d.ts +17 -0
  97. package/dist/umd/middlewares/outstandingTransaction.d.ts +4 -0
  98. package/dist/umd/overrideParseStoresSpec.d.ts +4 -0
  99. package/dist/umd/performInitialSync.d.ts +4 -0
  100. package/dist/umd/permissions.d.ts +9 -0
  101. package/dist/umd/prodLog.d.ts +9 -0
  102. package/dist/umd/service-worker.d.ts +1 -0
  103. package/dist/umd/service-worker.js +23 -12
  104. package/dist/umd/service-worker.js.map +1 -1
  105. package/dist/umd/service-worker.min.js +1 -1
  106. package/dist/umd/service-worker.min.js.map +1 -1
  107. package/dist/umd/sync/DEXIE_CLOUD_SYNCER_ID.d.ts +1 -0
  108. package/dist/umd/sync/LocalSyncWorker.d.ts +7 -0
  109. package/dist/umd/sync/SyncRequiredError.d.ts +3 -0
  110. package/dist/umd/sync/applyServerChanges.d.ts +3 -0
  111. package/dist/umd/sync/connectWebSocket.d.ts +2 -0
  112. package/dist/umd/sync/encodeIdsForServer.d.ts +4 -0
  113. package/dist/umd/sync/extractRealm.d.ts +2 -0
  114. package/dist/umd/sync/getLatestRevisionsPerTable.d.ts +6 -0
  115. package/dist/umd/sync/getTablesToSyncify.d.ts +3 -0
  116. package/dist/umd/sync/isOnline.d.ts +1 -0
  117. package/dist/umd/sync/isSyncNeeded.d.ts +2 -0
  118. package/dist/umd/sync/listClientChanges.d.ts +9 -0
  119. package/dist/umd/sync/listSyncifiedChanges.d.ts +5 -0
  120. package/dist/umd/sync/messageConsumerIsReady.d.ts +2 -0
  121. package/dist/umd/sync/messagesFromServerQueue.d.ts +8 -0
  122. package/dist/umd/sync/modifyLocalObjectsWithNewUserId.d.ts +4 -0
  123. package/dist/umd/sync/myId.d.ts +1 -0
  124. package/dist/umd/sync/numUnsyncedMutations.d.ts +2 -0
  125. package/dist/umd/sync/old_startSyncingClientChanges.d.ts +39 -0
  126. package/dist/umd/sync/performGuardedJob.d.ts +2 -0
  127. package/dist/umd/sync/ratelimit.d.ts +3 -0
  128. package/dist/umd/sync/registerSyncEvent.d.ts +3 -0
  129. package/dist/umd/sync/sync.d.ts +15 -0
  130. package/dist/umd/sync/syncIfPossible.d.ts +5 -0
  131. package/dist/umd/sync/syncWithServer.d.ts +6 -0
  132. package/dist/umd/sync/triggerSync.d.ts +2 -0
  133. package/dist/umd/sync/updateBaseRevs.d.ts +5 -0
  134. package/dist/umd/types/DXCAlert.d.ts +25 -0
  135. package/dist/umd/types/DXCInputField.d.ts +11 -0
  136. package/dist/umd/types/DXCUserInteraction.d.ts +93 -0
  137. package/dist/umd/types/NewIdOptions.d.ts +3 -0
  138. package/dist/umd/types/SWMessageEvent.d.ts +3 -0
  139. package/dist/umd/types/SWSyncEvent.d.ts +4 -0
  140. package/dist/umd/types/SyncState.d.ts +9 -0
  141. package/dist/umd/types/TXExpandos.d.ts +11 -0
  142. package/dist/umd/updateSchemaFromOptions.d.ts +3 -0
  143. package/dist/umd/userIsActive.d.ts +7 -0
  144. package/dist/umd/verifyConfig.d.ts +2 -0
  145. package/dist/umd/verifySchema.d.ts +2 -0
  146. package/dist/umd/yjs/YDexieCloudSyncState.d.ts +3 -0
  147. package/dist/umd/yjs/YTable.d.ts +3 -0
  148. package/dist/umd/yjs/applyYMessages.d.ts +9 -0
  149. package/dist/umd/yjs/awareness.d.ts +3 -0
  150. package/dist/umd/yjs/createYClientUpdateObservable.d.ts +4 -0
  151. package/dist/umd/yjs/createYHandler.d.ts +2 -0
  152. package/dist/umd/yjs/downloadYDocsFromServer.d.ts +3 -0
  153. package/dist/umd/yjs/getUpdatesTable.d.ts +3 -0
  154. package/dist/umd/yjs/listUpdatesSince.d.ts +3 -0
  155. package/dist/umd/yjs/listYClientMessagesAndStateVector.d.ts +26 -0
  156. package/dist/umd/yjs/reopenDocSignal.d.ts +10 -0
  157. package/dist/umd/yjs/updateYSyncStates.d.ts +6 -0
  158. package/package.json +1 -1
@@ -8,7 +8,7 @@
8
8
  *
9
9
  * ==========================================================================
10
10
  *
11
- * Version 4.4.1, Thu Mar 19 2026
11
+ * Version 4.4.2, Thu Mar 19 2026
12
12
  *
13
13
  * https://dexie.org
14
14
  *
@@ -15829,13 +15829,13 @@
15829
15829
  //triggerSync(db, 'pull');
15830
15830
  yield db.cloud.sync({ purpose: 'pull', wait: true });
15831
15831
  break;
15832
- case 'changes':
15832
+ case 'changes': {
15833
15833
  console.debug('changes');
15834
15834
  if (((_f = db.cloud.syncState.value) === null || _f === void 0 ? void 0 : _f.phase) === 'error') {
15835
15835
  triggerSync(db, 'pull');
15836
15836
  break;
15837
15837
  }
15838
- yield db.transaction('rw', db.dx.tables, (tx) => __awaiter(this, void 0, void 0, function* () {
15838
+ const didApplyChanges = yield db.transaction('rw', db.dx.tables, (tx) => __awaiter(this, void 0, void 0, function* () {
15839
15839
  // @ts-ignore
15840
15840
  tx.idbtrans.disableChangeTracking = true;
15841
15841
  // @ts-ignore
@@ -15852,7 +15852,7 @@
15852
15852
  schema,
15853
15853
  currentUser,
15854
15854
  });
15855
- return; // Initial sync must have taken place - otherwise, ignore this.
15855
+ return false; // Initial sync must have taken place - otherwise, ignore this.
15856
15856
  }
15857
15857
  // Verify again in ACID tx that we're on same server revision.
15858
15858
  if (msg.baseRev !== syncState.serverRevision) {
@@ -15873,7 +15873,7 @@
15873
15873
  // If we don't do a sync request now, we could stuck in an endless loop.
15874
15874
  triggerSync(db, 'pull');
15875
15875
  }
15876
- return; // Ignore message
15876
+ return false; // Ignore message
15877
15877
  }
15878
15878
  // Verify also that the message is based on the exact same set of realms
15879
15879
  const ourRealmSetHash = yield Dexie.waitFor(
@@ -15885,7 +15885,7 @@
15885
15885
  triggerSync(db, 'pull');
15886
15886
  // The message isn't based on the same realms.
15887
15887
  // Trigger a sync instead to resolve all things up.
15888
- return;
15888
+ return false;
15889
15889
  }
15890
15890
  // Get clientChanges
15891
15891
  let clientChanges = [];
@@ -15915,9 +15915,17 @@
15915
15915
  //
15916
15916
  console.debug('Updating syncState', syncState);
15917
15917
  yield db.$syncState.put(syncState, 'syncState');
15918
+ return true;
15918
15919
  }));
15919
15920
  console.debug('msg queue: done with rw transaction');
15921
+ // Trigger eager blob download for any BlobRefs received via WebSocket.
15922
+ // This mirrors the behavior after normal HTTP sync (syncCompleteEvent).
15923
+ // Only emit if changes were actually applied (not on early returns).
15924
+ if (didApplyChanges && msg.changes.length > 0) {
15925
+ db.syncCompleteEvent.next();
15926
+ }
15920
15927
  break;
15928
+ }
15921
15929
  }
15922
15930
  }
15923
15931
  catch (error) {
@@ -16888,7 +16896,7 @@
16888
16896
  return {
16889
16897
  stack: 'dbcore',
16890
16898
  name: 'blobResolve',
16891
- level: -2, // Run below other middlewares and after sync and caching middlewares
16899
+ level: 2, // Run above cache (0) and other middlewares (1) to resolve BlobRefs from cached data
16892
16900
  create(downlevelDatabase) {
16893
16901
  // Create a single queue instance for this database
16894
16902
  const blobSavingQueue = new BlobSavingQueue(db);
@@ -19495,7 +19503,7 @@
19495
19503
  const downloading$ = createDownloadingState();
19496
19504
  dexie.cloud = {
19497
19505
  // @ts-ignore
19498
- version: "4.4.1",
19506
+ version: "4.4.2",
19499
19507
  options: Object.assign({}, DEFAULT_OPTIONS),
19500
19508
  schema: null,
19501
19509
  get currentUserId() {
@@ -19524,14 +19532,17 @@
19524
19532
  roles: getGlobalRolesObservable(dexie),
19525
19533
  configure(options) {
19526
19534
  // Validate maxStringLength — Infinity disables offloading, otherwise must be
19527
- // a finite positive number not exceeding the server limit (32768).
19535
+ // a finite number between 100 and the server limit (32768).
19536
+ // Minimum 100 prevents accidental offloading of primary keys and short strings
19537
+ // that would break sync.
19538
+ const MIN_STRING_LENGTH = 100;
19528
19539
  const MAX_SERVER_STRING_LENGTH = 32768;
19529
19540
  if (options.maxStringLength !== undefined &&
19530
19541
  options.maxStringLength !== Infinity &&
19531
19542
  (!Number.isFinite(options.maxStringLength) ||
19532
- options.maxStringLength < 0 ||
19543
+ options.maxStringLength < MIN_STRING_LENGTH ||
19533
19544
  options.maxStringLength > MAX_SERVER_STRING_LENGTH)) {
19534
- throw new Error(`maxStringLength must be Infinity or a finite number in [0, ${MAX_SERVER_STRING_LENGTH}]. Got: ${options.maxStringLength}`);
19545
+ throw new Error(`maxStringLength must be Infinity or a finite number in [${MIN_STRING_LENGTH}, ${MAX_SERVER_STRING_LENGTH}]. Got: ${options.maxStringLength}`);
19535
19546
  }
19536
19547
  options = dexie.cloud.options = Object.assign(Object.assign({}, dexie.cloud.options), options);
19537
19548
  configuredProgramatically = true;
@@ -19919,7 +19930,7 @@
19919
19930
  }
19920
19931
  }
19921
19932
  // @ts-ignore
19922
- dexieCloud.version = "4.4.1";
19933
+ dexieCloud.version = "4.4.2";
19923
19934
  Dexie.Cloud = dexieCloud;
19924
19935
 
19925
19936
  exports.default = dexieCloud;
Binary file