dexie-cloud-addon 4.3.9 → 4.4.1

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 (172) hide show
  1. package/dist/modern/DexieCloudAPI.d.ts +17 -0
  2. package/dist/modern/DexieCloudOptions.d.ts +19 -0
  3. package/dist/modern/TSON.d.ts +0 -6
  4. package/dist/modern/db/DexieCloudDB.d.ts +2 -0
  5. package/dist/modern/db/entities/EntityCommon.d.ts +1 -0
  6. package/dist/modern/dexie-cloud-addon.js +3776 -2354
  7. package/dist/modern/dexie-cloud-addon.js.map +1 -1
  8. package/dist/modern/dexie-cloud-addon.min.js +1 -1
  9. package/dist/modern/dexie-cloud-addon.min.js.map +1 -1
  10. package/dist/modern/middlewares/blobResolveMiddleware.d.ts +21 -0
  11. package/dist/modern/service-worker.js +2195 -773
  12. package/dist/modern/service-worker.js.map +1 -1
  13. package/dist/modern/service-worker.min.js +1 -1
  14. package/dist/modern/service-worker.min.js.map +1 -1
  15. package/dist/modern/sync/BlobDownloadTracker.d.ts +33 -0
  16. package/dist/modern/sync/BlobSavingQueue.d.ts +35 -0
  17. package/dist/modern/sync/blobOffloading.d.ts +38 -0
  18. package/dist/modern/sync/blobProgress.d.ts +25 -0
  19. package/dist/modern/sync/blobResolve.d.ts +85 -0
  20. package/dist/modern/sync/eagerBlobDownloader.d.ts +20 -0
  21. package/dist/modern/sync/loadCachedAccessToken.d.ts +2 -0
  22. package/dist/modern/types/DXCAlert.d.ts +6 -0
  23. package/dist/modern/types/TXExpandos.d.ts +1 -0
  24. package/dist/umd/dexie-cloud-addon.js +3867 -2445
  25. package/dist/umd/dexie-cloud-addon.js.map +1 -1
  26. package/dist/umd/dexie-cloud-addon.min.js +1 -1
  27. package/dist/umd/dexie-cloud-addon.min.js.map +1 -1
  28. package/dist/umd/service-worker.js +2330 -908
  29. package/dist/umd/service-worker.js.map +1 -1
  30. package/dist/umd/service-worker.min.js +1 -1
  31. package/dist/umd/service-worker.min.js.map +1 -1
  32. package/package.json +5 -6
  33. package/dist/modern/default-ui/AuthProviderButton.d.ts +0 -21
  34. package/dist/modern/default-ui/ProviderSelectionDialog.d.ts +0 -7
  35. package/dist/modern/default-ui/SelectDialog.d.ts +0 -10
  36. package/dist/modern/dexie-cloud-addon.min.js.gz +0 -0
  37. package/dist/umd/DISABLE_SERVICEWORKER_STRATEGY.d.ts +0 -1
  38. package/dist/umd/DXCWebSocketStatus.d.ts +0 -1
  39. package/dist/umd/DexieCloudAPI.d.ts +0 -75
  40. package/dist/umd/DexieCloudOptions.d.ts +0 -27
  41. package/dist/umd/DexieCloudSyncOptions.d.ts +0 -4
  42. package/dist/umd/DexieCloudTable.d.ts +0 -18
  43. package/dist/umd/InvalidLicenseError.d.ts +0 -5
  44. package/dist/umd/Invite.d.ts +0 -8
  45. package/dist/umd/PermissionChecker.d.ts +0 -15
  46. package/dist/umd/TSON.d.ts +0 -17
  47. package/dist/umd/WSObservable.d.ts +0 -72
  48. package/dist/umd/associate.d.ts +0 -1
  49. package/dist/umd/authentication/AuthPersistedContext.d.ts +0 -9
  50. package/dist/umd/authentication/TokenErrorResponseError.d.ts +0 -10
  51. package/dist/umd/authentication/TokenExpiredError.d.ts +0 -3
  52. package/dist/umd/authentication/UNAUTHORIZED_USER.d.ts +0 -2
  53. package/dist/umd/authentication/authenticate.d.ts +0 -13
  54. package/dist/umd/authentication/interactWithUser.d.ts +0 -21
  55. package/dist/umd/authentication/login.d.ts +0 -3
  56. package/dist/umd/authentication/logout.d.ts +0 -5
  57. package/dist/umd/authentication/otpFetchTokenCallback.d.ts +0 -3
  58. package/dist/umd/authentication/setCurrentUser.d.ts +0 -14
  59. package/dist/umd/authentication/waitUntil.d.ts +0 -3
  60. package/dist/umd/computeSyncState.d.ts +0 -4
  61. package/dist/umd/createSharedValueObservable.d.ts +0 -3
  62. package/dist/umd/currentUserEmitter.d.ts +0 -3
  63. package/dist/umd/db/DexieCloudDB.d.ts +0 -61
  64. package/dist/umd/db/entities/BaseRevisionMapEntry.d.ts +0 -5
  65. package/dist/umd/db/entities/EntityCommon.d.ts +0 -5
  66. package/dist/umd/db/entities/GuardedJob.d.ts +0 -5
  67. package/dist/umd/db/entities/Member.d.ts +0 -19
  68. package/dist/umd/db/entities/PersistedSyncState.d.ts +0 -22
  69. package/dist/umd/db/entities/Realm.d.ts +0 -14
  70. package/dist/umd/db/entities/Role.d.ts +0 -11
  71. package/dist/umd/db/entities/UserLogin.d.ts +0 -23
  72. package/dist/umd/default-ui/Dialog.d.ts +0 -5
  73. package/dist/umd/default-ui/LoginDialog.d.ts +0 -3
  74. package/dist/umd/default-ui/Styles.d.ts +0 -3
  75. package/dist/umd/default-ui/index.d.ts +0 -24
  76. package/dist/umd/define-ydoc-trigger.d.ts +0 -3
  77. package/dist/umd/dexie-cloud-addon.d.ts +0 -3
  78. package/dist/umd/dexie-cloud-addon.js.gz +0 -0
  79. package/dist/umd/dexie-cloud-addon.min.js.gz +0 -0
  80. package/dist/umd/dexie-cloud-client.d.ts +0 -23
  81. package/dist/umd/errors/HttpError.d.ts +0 -5
  82. package/dist/umd/extend-dexie-interface.d.ts +0 -23
  83. package/dist/umd/getGlobalRolesObservable.d.ts +0 -5
  84. package/dist/umd/getInternalAccessControlObservable.d.ts +0 -12
  85. package/dist/umd/getInvitesObservable.d.ts +0 -23
  86. package/dist/umd/getPermissionsLookupObservable.d.ts +0 -16
  87. package/dist/umd/getTiedRealmId.d.ts +0 -2
  88. package/dist/umd/helpers/BroadcastedAndLocalEvent.d.ts +0 -8
  89. package/dist/umd/helpers/CancelToken.d.ts +0 -4
  90. package/dist/umd/helpers/IS_SERVICE_WORKER.d.ts +0 -1
  91. package/dist/umd/helpers/SWBroadcastChannel.d.ts +0 -12
  92. package/dist/umd/helpers/allSettled.d.ts +0 -1
  93. package/dist/umd/helpers/bulkUpdate.d.ts +0 -4
  94. package/dist/umd/helpers/computeRealmSetHash.d.ts +0 -2
  95. package/dist/umd/helpers/date-constants.d.ts +0 -5
  96. package/dist/umd/helpers/flatten.d.ts +0 -1
  97. package/dist/umd/helpers/getMutationTable.d.ts +0 -1
  98. package/dist/umd/helpers/getSyncableTables.d.ts +0 -4
  99. package/dist/umd/helpers/getTableFromMutationTable.d.ts +0 -1
  100. package/dist/umd/helpers/makeArray.d.ts +0 -1
  101. package/dist/umd/helpers/randomString.d.ts +0 -1
  102. package/dist/umd/helpers/resolveText.d.ts +0 -16
  103. package/dist/umd/helpers/throwVersionIncrementNeeded.d.ts +0 -1
  104. package/dist/umd/helpers/visibilityState.d.ts +0 -1
  105. package/dist/umd/isEagerSyncDisabled.d.ts +0 -2
  106. package/dist/umd/isFirefox.d.ts +0 -1
  107. package/dist/umd/isSafari.d.ts +0 -2
  108. package/dist/umd/mapValueObservable.d.ts +0 -5
  109. package/dist/umd/mergePermissions.d.ts +0 -2
  110. package/dist/umd/middleware-helpers/guardedTable.d.ts +0 -11
  111. package/dist/umd/middleware-helpers/idGenerationHelpers.d.ts +0 -18
  112. package/dist/umd/middlewares/createIdGenerationMiddleware.d.ts +0 -3
  113. package/dist/umd/middlewares/createImplicitPropSetterMiddleware.d.ts +0 -3
  114. package/dist/umd/middlewares/createMutationTrackingMiddleware.d.ts +0 -17
  115. package/dist/umd/middlewares/outstandingTransaction.d.ts +0 -4
  116. package/dist/umd/overrideParseStoresSpec.d.ts +0 -4
  117. package/dist/umd/performInitialSync.d.ts +0 -4
  118. package/dist/umd/permissions.d.ts +0 -9
  119. package/dist/umd/prodLog.d.ts +0 -9
  120. package/dist/umd/service-worker.d.ts +0 -1
  121. package/dist/umd/sync/DEXIE_CLOUD_SYNCER_ID.d.ts +0 -1
  122. package/dist/umd/sync/LocalSyncWorker.d.ts +0 -7
  123. package/dist/umd/sync/SyncRequiredError.d.ts +0 -3
  124. package/dist/umd/sync/applyServerChanges.d.ts +0 -3
  125. package/dist/umd/sync/connectWebSocket.d.ts +0 -2
  126. package/dist/umd/sync/encodeIdsForServer.d.ts +0 -4
  127. package/dist/umd/sync/extractRealm.d.ts +0 -2
  128. package/dist/umd/sync/getLatestRevisionsPerTable.d.ts +0 -6
  129. package/dist/umd/sync/getTablesToSyncify.d.ts +0 -3
  130. package/dist/umd/sync/isOnline.d.ts +0 -1
  131. package/dist/umd/sync/isSyncNeeded.d.ts +0 -2
  132. package/dist/umd/sync/listClientChanges.d.ts +0 -9
  133. package/dist/umd/sync/listSyncifiedChanges.d.ts +0 -5
  134. package/dist/umd/sync/messageConsumerIsReady.d.ts +0 -2
  135. package/dist/umd/sync/messagesFromServerQueue.d.ts +0 -8
  136. package/dist/umd/sync/modifyLocalObjectsWithNewUserId.d.ts +0 -4
  137. package/dist/umd/sync/myId.d.ts +0 -1
  138. package/dist/umd/sync/numUnsyncedMutations.d.ts +0 -2
  139. package/dist/umd/sync/old_startSyncingClientChanges.d.ts +0 -39
  140. package/dist/umd/sync/performGuardedJob.d.ts +0 -2
  141. package/dist/umd/sync/ratelimit.d.ts +0 -3
  142. package/dist/umd/sync/registerSyncEvent.d.ts +0 -3
  143. package/dist/umd/sync/sync.d.ts +0 -15
  144. package/dist/umd/sync/syncIfPossible.d.ts +0 -5
  145. package/dist/umd/sync/syncWithServer.d.ts +0 -6
  146. package/dist/umd/sync/triggerSync.d.ts +0 -2
  147. package/dist/umd/sync/updateBaseRevs.d.ts +0 -5
  148. package/dist/umd/types/DXCAlert.d.ts +0 -25
  149. package/dist/umd/types/DXCInputField.d.ts +0 -11
  150. package/dist/umd/types/DXCUserInteraction.d.ts +0 -93
  151. package/dist/umd/types/NewIdOptions.d.ts +0 -3
  152. package/dist/umd/types/SWMessageEvent.d.ts +0 -3
  153. package/dist/umd/types/SWSyncEvent.d.ts +0 -4
  154. package/dist/umd/types/SyncState.d.ts +0 -9
  155. package/dist/umd/types/TXExpandos.d.ts +0 -11
  156. package/dist/umd/updateSchemaFromOptions.d.ts +0 -3
  157. package/dist/umd/userIsActive.d.ts +0 -7
  158. package/dist/umd/verifyConfig.d.ts +0 -2
  159. package/dist/umd/verifySchema.d.ts +0 -2
  160. package/dist/umd/yjs/YDexieCloudSyncState.d.ts +0 -3
  161. package/dist/umd/yjs/YTable.d.ts +0 -3
  162. package/dist/umd/yjs/applyYMessages.d.ts +0 -9
  163. package/dist/umd/yjs/awareness.d.ts +0 -3
  164. package/dist/umd/yjs/createYClientUpdateObservable.d.ts +0 -4
  165. package/dist/umd/yjs/createYHandler.d.ts +0 -2
  166. package/dist/umd/yjs/downloadYDocsFromServer.d.ts +0 -3
  167. package/dist/umd/yjs/getUpdatesTable.d.ts +0 -3
  168. package/dist/umd/yjs/listUpdatesSince.d.ts +0 -3
  169. package/dist/umd/yjs/listYClientMessagesAndStateVector.d.ts +0 -26
  170. package/dist/umd/yjs/reopenDocSignal.d.ts +0 -10
  171. package/dist/umd/yjs/updateYSyncStates.d.ts +0 -6
  172. /package/dist/{umd/authentication/currentUserObservable.d.ts → modern/sync/blobOffloading.test.d.ts} +0 -0
@@ -9,6 +9,15 @@ import { PermissionChecker } from './PermissionChecker';
9
9
  import { DexieCloudSyncOptions } from "./DexieCloudSyncOptions";
10
10
  import { Invite } from './Invite';
11
11
  import { BehaviorSubject, Observable } from 'rxjs';
12
+ /** Progress state for blob downloads */
13
+ export interface BlobProgress {
14
+ /** Whether blob downloads are currently in progress */
15
+ isDownloading: boolean;
16
+ /** Number of blobs remaining to download */
17
+ blobsRemaining: number;
18
+ /** Total bytes remaining to download (estimated from BlobRef.$size) */
19
+ bytesRemaining: number;
20
+ }
12
21
  /** The API of db.cloud, where `db` is an instance of Dexie with dexie-cloud-addon active.
13
22
  */
14
23
  export interface LoginHints {
@@ -33,6 +42,14 @@ export interface DexieCloudAPI {
33
42
  webSocketStatus: BehaviorSubject<DXCWebSocketStatus>;
34
43
  syncState: BehaviorSubject<SyncState>;
35
44
  persistedSyncState: BehaviorSubject<PersistedSyncState | undefined>;
45
+ /** Observable of blob download progress.
46
+ *
47
+ * Shows the current state of background blob downloads (when blobMode='eager')
48
+ * or provides insight into unresolved blobs (when blobMode='lazy').
49
+ *
50
+ * Use this to show progress indicators or "downloading for offline" status.
51
+ */
52
+ blobProgress: Observable<BlobProgress>;
36
53
  events: {
37
54
  syncComplete: Observable<void>;
38
55
  };
@@ -41,4 +41,23 @@ export interface DexieCloudOptions {
41
41
  * ```
42
42
  */
43
43
  oauthRedirectUri?: string;
44
+ /** How to handle blob downloads from cloud storage.
45
+ *
46
+ * - 'eager' (default): Download blobs in background immediately after sync.
47
+ * Best for offline-first apps that need all data available offline ASAP.
48
+ *
49
+ * - 'lazy': Download blobs on-demand when accessed.
50
+ * Best for apps with large media that may not all be needed offline.
51
+ */
52
+ blobMode?: 'eager' | 'lazy';
53
+ /** Maximum string length (in characters) before offloading to blob storage during sync.
54
+ *
55
+ * Strings longer than this threshold are uploaded as blobs during sync,
56
+ * reducing sync payload size. The original string is kept intact in IndexedDB.
57
+ *
58
+ * Set to `Infinity` to disable string offloading.
59
+ *
60
+ * @default 32768
61
+ */
62
+ maxStringLength?: number;
44
63
  }
@@ -9,9 +9,3 @@ export declare const TSON: {
9
9
  stringify(value: any, alternateChannel?: any, space?: number): string;
10
10
  parse(tson: string, alternateChannel?: any): any;
11
11
  };
12
- export declare const BISON: {
13
- toBinary(value: any): Blob;
14
- stringify(value: any): [Blob, string];
15
- parse<T = any>(json: string, binData: Blob): Promise<T>;
16
- fromBinary<T_1 = any>(blob: Blob): Promise<T_1>;
17
- };
@@ -10,6 +10,7 @@ import { BroadcastedAndLocalEvent } from '../helpers/BroadcastedAndLocalEvent';
10
10
  import { SyncStatePhase } from '../types/SyncState';
11
11
  import { MessagesFromServerConsumer } from '../sync/messagesFromServerQueue';
12
12
  import { YClientMessage } from 'dexie-cloud-common';
13
+ import { BlobDownloadTracker } from '../sync/BlobDownloadTracker';
13
14
  export interface SyncStateChangedEventData {
14
15
  phase: SyncStatePhase;
15
16
  error?: Error;
@@ -47,6 +48,7 @@ export interface DexieCloudDB extends DexieCloudDBBase {
47
48
  reconfigure(): void;
48
49
  messageConsumer: MessagesFromServerConsumer;
49
50
  messageProducer: Subject<YClientMessage>;
51
+ blobDownloadTracker: BlobDownloadTracker;
50
52
  }
51
53
  export declare const DEXIE_CLOUD_SCHEMA: {
52
54
  members: string;
@@ -2,4 +2,5 @@ export interface EntityCommon {
2
2
  realmId?: string;
3
3
  owner?: string;
4
4
  $ts?: string;
5
+ _hasBlobRefs?: 1;
5
6
  }