@aiao/rxdb 0.0.5 → 0.0.7

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 (187) hide show
  1. package/dist/RxDB.d.ts +118 -21
  2. package/dist/RxDB.d.ts.map +1 -1
  3. package/dist/RxDBError.d.ts.map +1 -1
  4. package/dist/entity/@Entity.d.ts +1 -1
  5. package/dist/entity/@Entity.d.ts.map +1 -1
  6. package/dist/entity/@TreeEntity.d.ts +2 -21
  7. package/dist/entity/@TreeEntity.d.ts.map +1 -1
  8. package/dist/entity/EntityBase.d.ts +59 -11
  9. package/dist/entity/EntityBase.d.ts.map +1 -1
  10. package/dist/entity/EntityManager.d.ts +18 -25
  11. package/dist/entity/EntityManager.d.ts.map +1 -1
  12. package/dist/entity/EntityStatus.d.ts +149 -107
  13. package/dist/entity/EntityStatus.d.ts.map +1 -1
  14. package/dist/entity/EntityStatus.interface.d.ts +59 -0
  15. package/dist/entity/EntityStatus.interface.d.ts.map +1 -0
  16. package/dist/entity/TreeEntityBase.d.ts +32 -5
  17. package/dist/entity/TreeEntityBase.d.ts.map +1 -1
  18. package/dist/entity/entity.interface.d.ts +23 -34
  19. package/dist/entity/entity.interface.d.ts.map +1 -1
  20. package/dist/entity/entity.utils.d.ts +23 -2
  21. package/dist/entity/entity.utils.d.ts.map +1 -1
  22. package/dist/entity/{generate_many_to_many_entity.d.ts → many_to_many_entity.d.ts} +3 -3
  23. package/dist/entity/many_to_many_entity.d.ts.map +1 -0
  24. package/dist/entity/{entity-metadata-options.interface.d.ts → metadata-options.interface.d.ts} +312 -35
  25. package/dist/entity/metadata-options.interface.d.ts.map +1 -0
  26. package/dist/entity/{transition-metadata.d.ts → metadata-transition.d.ts} +3 -3
  27. package/dist/entity/metadata-transition.d.ts.map +1 -0
  28. package/dist/entity/{entity-metadata.interface.d.ts → metadata.interface.d.ts} +8 -2
  29. package/dist/entity/metadata.interface.d.ts.map +1 -0
  30. package/dist/entity/metadata_cascade_default.d.ts +54 -0
  31. package/dist/entity/metadata_cascade_default.d.ts.map +1 -0
  32. package/dist/entity/proxy.d.ts +7 -0
  33. package/dist/entity/proxy.d.ts.map +1 -0
  34. package/dist/entity/{entity_relation_helper.d.ts → relation_helper.d.ts} +2 -2
  35. package/dist/entity/relation_helper.d.ts.map +1 -0
  36. package/dist/entity/tree-entity.interface.d.ts +5 -0
  37. package/dist/entity/tree-entity.interface.d.ts.map +1 -0
  38. package/dist/gateway/RxDBTabsGateway.d.ts +52 -0
  39. package/dist/gateway/RxDBTabsGateway.d.ts.map +1 -0
  40. package/dist/gateway/gateway.interface.d.ts +43 -0
  41. package/dist/gateway/gateway.interface.d.ts.map +1 -0
  42. package/dist/index.d.ts +19 -13
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +6579 -2876
  45. package/dist/query/entity_type_dependencies.d.ts +22 -0
  46. package/dist/query/entity_type_dependencies.d.ts.map +1 -0
  47. package/dist/query/merge-update-basic.d.ts +30 -0
  48. package/dist/query/merge-update-basic.d.ts.map +1 -0
  49. package/dist/query/merge-update-tree.d.ts +86 -0
  50. package/dist/query/merge-update-tree.d.ts.map +1 -0
  51. package/dist/query/merge-update.utils.d.ts +52 -0
  52. package/dist/query/merge-update.utils.d.ts.map +1 -0
  53. package/dist/query/merge_create.d.ts +19 -0
  54. package/dist/query/merge_create.d.ts.map +1 -0
  55. package/dist/query/merge_remove.d.ts +6 -0
  56. package/dist/query/merge_remove.d.ts.map +1 -0
  57. package/dist/query/merge_update.d.ts +24 -0
  58. package/dist/query/merge_update.d.ts.map +1 -0
  59. package/dist/query/need_refresh_create.d.ts +11 -0
  60. package/dist/query/need_refresh_create.d.ts.map +1 -0
  61. package/dist/query/need_refresh_remove.d.ts +6 -0
  62. package/dist/query/need_refresh_remove.d.ts.map +1 -0
  63. package/dist/query/need_refresh_update.d.ts +11 -0
  64. package/dist/query/need_refresh_update.d.ts.map +1 -0
  65. package/dist/query/query-matching.utils.d.ts +60 -0
  66. package/dist/query/query-matching.utils.d.ts.map +1 -0
  67. package/dist/query/query-relation.utils.d.ts +44 -0
  68. package/dist/query/query-relation.utils.d.ts.map +1 -0
  69. package/dist/query/query-rules-builder.d.ts +68 -0
  70. package/dist/query/query-rules-builder.d.ts.map +1 -0
  71. package/dist/query/query-tree.utils.d.ts +54 -0
  72. package/dist/query/query-tree.utils.d.ts.map +1 -0
  73. package/dist/repository/QueryManager.d.ts +69 -0
  74. package/dist/repository/QueryManager.d.ts.map +1 -0
  75. package/dist/repository/QueryManager.interface.d.ts +106 -0
  76. package/dist/repository/QueryManager.interface.d.ts.map +1 -0
  77. package/dist/repository/QueryTask.d.ts +150 -0
  78. package/dist/repository/QueryTask.d.ts.map +1 -0
  79. package/dist/repository/Repository.d.ts +38 -44
  80. package/dist/repository/Repository.d.ts.map +1 -1
  81. package/dist/repository/RepositoryBase.d.ts +8 -8
  82. package/dist/repository/RepositoryBase.d.ts.map +1 -1
  83. package/dist/repository/TreeRepository.d.ts +29 -4
  84. package/dist/repository/TreeRepository.d.ts.map +1 -1
  85. package/dist/repository/fingerprint.utils.d.ts +28 -0
  86. package/dist/repository/fingerprint.utils.d.ts.map +1 -0
  87. package/dist/repository/query-options.interface.d.ts +88 -16
  88. package/dist/repository/query-options.interface.d.ts.map +1 -1
  89. package/dist/repository/query.interface.d.ts +107 -37
  90. package/dist/repository/query.interface.d.ts.map +1 -1
  91. package/dist/repository/relation-query.interface.d.ts +20 -1
  92. package/dist/repository/relation-query.interface.d.ts.map +1 -1
  93. package/dist/repository/repository.interface.d.ts +4 -29
  94. package/dist/repository/repository.interface.d.ts.map +1 -1
  95. package/dist/repository/tree-repository.interface.d.ts +34 -30
  96. package/dist/repository/tree-repository.interface.d.ts.map +1 -1
  97. package/dist/rxdb-adapter.d.ts +100 -16
  98. package/dist/rxdb-adapter.d.ts.map +1 -1
  99. package/dist/rxdb-events.d.ts +335 -66
  100. package/dist/rxdb-events.d.ts.map +1 -1
  101. package/dist/rxdb-plugin.d.ts +2 -2
  102. package/dist/rxdb-plugin.d.ts.map +1 -1
  103. package/dist/rxdb-utils.d.ts +20 -9
  104. package/dist/rxdb-utils.d.ts.map +1 -1
  105. package/dist/rxdb.interface.d.ts +5 -9
  106. package/dist/rxdb.interface.d.ts.map +1 -1
  107. package/dist/rxdb.private.d.ts +7 -36
  108. package/dist/rxdb.private.d.ts.map +1 -1
  109. package/dist/schema/SchemaManager.d.ts +5 -4
  110. package/dist/schema/SchemaManager.d.ts.map +1 -1
  111. package/dist/system/branch.d.ts +124 -7
  112. package/dist/system/branch.d.ts.map +1 -1
  113. package/dist/system/change.d.ts +605 -33
  114. package/dist/system/change.d.ts.map +1 -1
  115. package/dist/system/migration.d.ts +61 -11
  116. package/dist/system/migration.d.ts.map +1 -1
  117. package/dist/system/repository-sync.d.ts +95 -0
  118. package/dist/system/repository-sync.d.ts.map +1 -0
  119. package/dist/system/system.interface.d.ts +25 -0
  120. package/dist/system/system.interface.d.ts.map +1 -0
  121. package/dist/system/types.d.ts +234 -139
  122. package/dist/system/types.d.ts.map +1 -1
  123. package/dist/system/types.local.d.ts +156 -0
  124. package/dist/system/types.local.d.ts.map +1 -0
  125. package/dist/system/types.remote.d.ts +103 -0
  126. package/dist/system/types.remote.d.ts.map +1 -0
  127. package/dist/version/HistoryManager.d.ts +238 -0
  128. package/dist/version/HistoryManager.d.ts.map +1 -0
  129. package/dist/version/LWWConflictResolver.d.ts +41 -0
  130. package/dist/version/LWWConflictResolver.d.ts.map +1 -0
  131. package/dist/version/VersionManager.d.ts +407 -0
  132. package/dist/version/VersionManager.d.ts.map +1 -0
  133. package/dist/version/VersionManager.interface.d.ts +428 -0
  134. package/dist/version/VersionManager.interface.d.ts.map +1 -0
  135. package/dist/version/VersionManager.utils.d.ts +14 -0
  136. package/dist/version/VersionManager.utils.d.ts.map +1 -0
  137. package/dist/version/bulk-sync.d.ts +97 -0
  138. package/dist/version/bulk-sync.d.ts.map +1 -0
  139. package/dist/version/check-repository-updates.d.ts +53 -0
  140. package/dist/version/check-repository-updates.d.ts.map +1 -0
  141. package/dist/version/compact-changes.d.ts +45 -0
  142. package/dist/version/compact-changes.d.ts.map +1 -0
  143. package/dist/version/conflict.d.ts +75 -0
  144. package/dist/version/conflict.d.ts.map +1 -0
  145. package/dist/version/create_branch.d.ts +13 -0
  146. package/dist/version/create_branch.d.ts.map +1 -0
  147. package/dist/version/dependency-graph.d.ts +132 -0
  148. package/dist/version/dependency-graph.d.ts.map +1 -0
  149. package/dist/version/find_switch_branch_step.d.ts +53 -0
  150. package/dist/version/find_switch_branch_step.d.ts.map +1 -0
  151. package/dist/version/get-all-repository-sync-status.d.ts +58 -0
  152. package/dist/version/get-all-repository-sync-status.d.ts.map +1 -0
  153. package/dist/version/get-repository-sync-status.d.ts +74 -0
  154. package/dist/version/get-repository-sync-status.d.ts.map +1 -0
  155. package/dist/version/pull-repository.d.ts +99 -0
  156. package/dist/version/pull-repository.d.ts.map +1 -0
  157. package/dist/version/pull.d.ts +11 -0
  158. package/dist/version/pull.d.ts.map +1 -0
  159. package/dist/version/push-repository.d.ts +93 -0
  160. package/dist/version/push-repository.d.ts.map +1 -0
  161. package/dist/version/push.d.ts +11 -0
  162. package/dist/version/push.d.ts.map +1 -0
  163. package/dist/version/remove_branch.d.ts +8 -0
  164. package/dist/version/remove_branch.d.ts.map +1 -0
  165. package/dist/version/switch_branch_actions.d.ts +17 -0
  166. package/dist/version/switch_branch_actions.d.ts.map +1 -0
  167. package/dist/version/sync-repository.d.ts +57 -0
  168. package/dist/version/sync-repository.d.ts.map +1 -0
  169. package/dist/version/sync-type-utils.d.ts +145 -0
  170. package/dist/version/sync-type-utils.d.ts.map +1 -0
  171. package/dist/version/topological-sort.d.ts +70 -0
  172. package/dist/version/topological-sort.d.ts.map +1 -0
  173. package/dist/version/version.utils.d.ts +4 -0
  174. package/dist/version/version.utils.d.ts.map +1 -0
  175. package/package.json +4 -3
  176. package/README.md +0 -1
  177. package/dist/entity/entity-metadata-options.interface.d.ts.map +0 -1
  178. package/dist/entity/entity-metadata.interface.d.ts.map +0 -1
  179. package/dist/entity/entity_proxy_helper.d.ts +0 -49
  180. package/dist/entity/entity_proxy_helper.d.ts.map +0 -1
  181. package/dist/entity/entity_relation_helper.d.ts.map +0 -1
  182. package/dist/entity/generate_many_to_many_entity.d.ts.map +0 -1
  183. package/dist/entity/transition-metadata.d.ts.map +0 -1
  184. package/dist/repository/query.utils.d.ts +0 -27
  185. package/dist/repository/query.utils.d.ts.map +0 -1
  186. package/dist/system/VersionManager.d.ts +0 -35
  187. package/dist/system/VersionManager.d.ts.map +0 -1
@@ -0,0 +1,407 @@
1
+ import { EntityType } from '../entity/entity.interface.js';
2
+ import { RestoreEntityOptions } from '../rxdb-adapter.js';
3
+ import { RxDB } from '../RxDB.js';
4
+ import { RxDBBranch } from '../system/branch.js';
5
+ import { LocalRxDBBranchRepository, LocalRxDBChangeRepository } from '../system/types.local.js';
6
+ import { RemoteRxDBBranchRepository, RemoteRxDBChangeRepository } from '../system/types.remote.js';
7
+ import { BulkSyncOptions, BulkSyncResult } from './bulk-sync.js';
8
+ import { CheckRepositoryUpdatesResult } from './check-repository-updates.js';
9
+ import { DependencyGraph, RepositoryIdentifier } from './dependency-graph.js';
10
+ import { GetAllRepositorySyncStatusFilter } from './get-all-repository-sync-status.js';
11
+ import { RepositorySyncStatus } from './get-repository-sync-status.js';
12
+ import { PullRepositoryOptions, PullRepositoryResult } from './pull-repository.js';
13
+ import { PushRepositoryOptions, PushRepositoryResult } from './push-repository.js';
14
+ import { SyncRepositoryOptions, SyncRepositoryResult } from './sync-repository.js';
15
+ import { SortDirection } from './topological-sort.js';
16
+ import { HistoryScopeAPI, PullOptions, PullResult, PushOptions, PushResult, SyncResult } from './VersionManager.interface.js';
17
+ /**
18
+ * 版本管理器
19
+ *
20
+ * 负责管理数据库的分支、撤销/重做功能和版本历史
21
+ * 核心功能包括:
22
+ * - 分支管理(创建、删除、切换)
23
+ * - 撤销/重做操作(数据库级别)
24
+ * - Redo 栈的自动失效(当有新操作时)
25
+ * - pull/push 同步到本地缓存
26
+ */
27
+ export declare class VersionManager {
28
+ #private;
29
+ readonly rxdb: RxDB;
30
+ /**
31
+ * 撤销/重做辅助类
32
+ * 管理历史记录和内存 redo 栈
33
+ */
34
+ private historyManager;
35
+ /**
36
+ * 可 push 的变更数量流
37
+ *
38
+ * 实时追踪本地未推送的有效变更数量:
39
+ * - 排除已撤销的变更(revertChangeId != null)
40
+ * - 排除从远程 pull 来的变更(remoteId != null)
41
+ */
42
+ get pushableCount$(): import('rxjs').Observable<number>;
43
+ /**
44
+ * 远程待 pull 的变更数量流
45
+ *
46
+ * 通过监听远程事件(INSERT/UPDATE/DELETE)累计:
47
+ * - 收到远程变更事件时计数+1
48
+ * - pull 完成后计数重置为 0
49
+ *
50
+ * 用于 UI 显示"有 N 条远程更新可拉取"
51
+ */
52
+ get pullableCount$(): import('rxjs').Observable<number>;
53
+ constructor(rxdb: RxDB);
54
+ init(): void;
55
+ /**
56
+ * 创建新分支
57
+ * @param branchId 分支 id
58
+ * @param fromChangeId 从哪个 changeId 创建新分支
59
+ */
60
+ createBranch(branchId: string, fromChangeId?: number): Promise<InstanceType<typeof RxDBBranch>>;
61
+ /**
62
+ * 删除分支
63
+ * @param branchId 分支 id
64
+ */
65
+ removeBranch(branchId: string): Promise<void>;
66
+ /**
67
+ * 从远程拉取变更并应用到本地数据库
68
+ *
69
+ * 当 autoSync=false 时,会先应用 Realtime 缓存的变更,再拉取远程变更。
70
+ *
71
+ * @param options - 可选配置
72
+ * @returns 拉取结果
73
+ *
74
+ * @example
75
+ * ```typescript
76
+ * // 基本用法
77
+ * const result = await rxdb.versionManager.pull();
78
+ * console.log(`Pulled ${result.pulled} changes`);
79
+ *
80
+ * // 拉取所有数据
81
+ * const result = await rxdb.versionManager.pull({ fetchAll: true });
82
+ * ```
83
+ */
84
+ pull(options?: PullOptions): Promise<PullResult>;
85
+ /**
86
+ * 将本地未同步的变更推送到远程数据库
87
+ *
88
+ * 推送时会自动:
89
+ * 1. 查询 lastPushedChangeId 之后的新变更
90
+ * 2. 过滤已撤销的变更(revertChangeId != null)
91
+ * 3. 压缩变更(INSERT→DELETE 丢弃,INSERT→UPDATE* 合并为 INSERT)
92
+ * 4. 批量推送到远程
93
+ * 5. 更新 lastPushedChangeId 和 lastPushedAt
94
+ *
95
+ * @param options - 可选配置
96
+ * @returns 推送结果
97
+ *
98
+ * @example
99
+ * ```typescript
100
+ * // 基本用法
101
+ * const result = await rxdb.versionManager.push();
102
+ * console.log(`Pushed ${result.pushed} changes`);
103
+ *
104
+ * // 自定义批量大小
105
+ * const result = await rxdb.versionManager.push({ batchSize: 500 });
106
+ * ```
107
+ */
108
+ push(options?: PushOptions): Promise<PushResult>;
109
+ /**
110
+ * 执行完整的同步操作(先 pull 再 push)
111
+ *
112
+ * 推荐在重连后使用此方法,确保:
113
+ * 1. 先获取远程最新变更(避免覆盖他人数据)
114
+ * 2. 再推送本地变更
115
+ *
116
+ * @param options - 可选配置
117
+ * @returns 同步结果(包含 pull 和 push 结果)
118
+ *
119
+ * @example
120
+ * ```typescript
121
+ * // 基本用法
122
+ * const result = await rxdb.versionManager.sync();
123
+ * console.log(`Pulled ${result.pullResult.pulled}, Pushed ${result.pushResult.pushed}`);
124
+ * ```
125
+ */
126
+ sync(options?: {
127
+ pull?: PullOptions;
128
+ push?: PushOptions;
129
+ }): Promise<SyncResult>;
130
+ /**
131
+ * Pull changes for a specific repository
132
+ *
133
+ * Provides fine-grained control over synchronization at the entity type level.
134
+ * Supports cascade synchronization to automatically pull related entities.
135
+ *
136
+ * @param namespace - Entity namespace (e.g., "public")
137
+ * @param entity - Entity name (e.g., "Todo")
138
+ * @param options - Pull options
139
+ * @returns Pull result
140
+ *
141
+ * @example
142
+ * ```typescript
143
+ * // Pull Todo repository with cascading dependencies
144
+ * const result = await rxdb.versionManager.pullRepository('public', 'Todo', {
145
+ * includeRelated: true // Default: automatically pulls User if Todo has foreign key
146
+ * });
147
+ *
148
+ * // Pull without cascading
149
+ * const result = await rxdb.versionManager.pullRepository('public', 'Todo', {
150
+ * includeRelated: false // Only pull Todo, may cause foreign key errors
151
+ * });
152
+ * ```
153
+ */
154
+ pullRepository(namespace: string, entity: string, options?: PullRepositoryOptions): Promise<PullRepositoryResult>;
155
+ /**
156
+ * Push changes for a specific repository
157
+ *
158
+ * Provides fine-grained control over synchronization at the entity type level.
159
+ * Supports cascade synchronization to automatically push dependent entities.
160
+ *
161
+ * @param namespace - Entity namespace (e.g., "public")
162
+ * @param entity - Entity name (e.g., "User")
163
+ * @param options - Push options
164
+ * @returns Push result
165
+ *
166
+ * @example
167
+ * ```typescript
168
+ * // Push User repository with cascading dependents
169
+ * const result = await rxdb.versionManager.pushRepository('public', 'User', {
170
+ * includeRelated: true // Default: automatically pushes Post if Post references User
171
+ * });
172
+ *
173
+ * // Push without cascading
174
+ * const result = await rxdb.versionManager.pushRepository('public', 'User', {
175
+ * includeRelated: false // Only push User, dependent data may be incomplete
176
+ * });
177
+ * ```
178
+ */
179
+ pushRepository(namespace: string, entity: string, options?: PushRepositoryOptions): Promise<PushRepositoryResult>;
180
+ /**
181
+ * Sync a specific repository (pull then push)
182
+ *
183
+ * Combines pull and push operations for a single repository, ensuring proper execution order.
184
+ * Recommended for ensuring data consistency when syncing a specific entity type.
185
+ *
186
+ * @param namespace - Entity namespace (e.g., "public")
187
+ * @param entity - Entity name (e.g., "Todo")
188
+ * @param options - Sync options (separate pull and push options)
189
+ * @returns Sync result (contains both pull and push results)
190
+ *
191
+ * @example
192
+ * ```typescript
193
+ * // Basic usage
194
+ * const result = await rxdb.versionManager.syncRepository('public', 'Todo');
195
+ * console.log(`Pulled ${result.pullResult.pulled}, Pushed ${result.pushResult.pushed}`);
196
+ *
197
+ * // Custom options for pull and push
198
+ * const result = await rxdb.versionManager.syncRepository('public', 'Todo', {
199
+ * pull: { limit: 500, fetchAll: true },
200
+ * push: { batchSize: 100 }
201
+ * });
202
+ * ```
203
+ */
204
+ syncRepository(namespace: string, entity: string, options?: SyncRepositoryOptions): Promise<SyncRepositoryResult>;
205
+ /**
206
+ * Check for remote updates without downloading data (T040, US2)
207
+ *
208
+ * This method only queries how many new changes exist remotely,
209
+ * without actually pulling the data. Useful for showing
210
+ * "N updates available" messages to save bandwidth and time.
211
+ *
212
+ * @param namespace - Entity namespace (e.g., "public")
213
+ * @param entity - Entity name (e.g., "Todo")
214
+ * @returns Update check result
215
+ *
216
+ * @example
217
+ * ```typescript
218
+ * // Check if Todo has remote updates
219
+ * const result = await rxdb.versionManager.checkRepositoryUpdates('public', 'Todo');
220
+ * if (result.hasUpdates) {
221
+ * console.log(`${result.pendingCount} updates available`);
222
+ * // User clicks "Update" button, then call pullRepository()
223
+ * }
224
+ * ```
225
+ */
226
+ checkRepositoryUpdates(namespace: string, entity: string): Promise<CheckRepositoryUpdatesResult>;
227
+ /**
228
+ * Get sync status for a single repository (T052, US3)
229
+ *
230
+ * Returns comprehensive sync status including:
231
+ * - syncType (full/remote/local/disabled)
232
+ * - pushableCount (number of local changes pending push)
233
+ * - pullableCount (number of remote changes available to pull)
234
+ * - Last sync timestamps
235
+ *
236
+ * @param namespace - Entity namespace (e.g., "public")
237
+ * @param entity - Entity name (e.g., "Todo")
238
+ * @returns Repository sync status
239
+ *
240
+ * @example
241
+ * ```typescript
242
+ * const status = await rxdb.versionManager.getRepositorySyncStatus('public', 'Todo');
243
+ * console.log(`Sync type: ${status.syncType}`);
244
+ * console.log(`Pushable: ${status.pushableCount}, Pullable: ${status.pullableCount}`);
245
+ * ```
246
+ */
247
+ getRepositorySyncStatus(namespace: string, entity: string): Promise<RepositorySyncStatus>;
248
+ /**
249
+ * Get sync status for all repositories (T053, US3)
250
+ *
251
+ * Returns status for all registered entities, with optional filtering.
252
+ *
253
+ * @param filter - Optional filter conditions
254
+ * @returns Array of repository sync statuses
255
+ *
256
+ * @example
257
+ * ```typescript
258
+ * // Get all statuses
259
+ * const statuses = await rxdb.versionManager.getAllRepositorySyncStatus();
260
+ *
261
+ * // Only get repositories with pending changes
262
+ * const pending = await rxdb.versionManager.getAllRepositorySyncStatus({
263
+ * hasPendingChanges: true
264
+ * });
265
+ *
266
+ * // Only get enabled full-sync repositories
267
+ * const fullSync = await rxdb.versionManager.getAllRepositorySyncStatus({
268
+ * syncType: ['full'],
269
+ * enabled: true
270
+ * });
271
+ * ```
272
+ */
273
+ getAllRepositorySyncStatus(filter?: GetAllRepositorySyncStatusFilter): Promise<RepositorySyncStatus[]>;
274
+ /**
275
+ * Bulk sync multiple repositories
276
+ *
277
+ * Syncs multiple repositories in a single operation with support for
278
+ * sequential or concurrent execution.
279
+ *
280
+ * @param options - Bulk sync options
281
+ * @returns Bulk sync result with success/failure counts
282
+ *
283
+ * @example
284
+ * ```typescript
285
+ * // Sync all enabled repositories sequentially
286
+ * const result = await rxdb.versionManager.bulkSync();
287
+ * console.log(`Succeeded: ${result.succeeded}, Failed: ${result.failed}`);
288
+ *
289
+ * // Sync specific repositories
290
+ * const result = await rxdb.versionManager.bulkSync({
291
+ * repositories: [
292
+ * { namespace: 'public', entity: 'Todo' },
293
+ * { namespace: 'public', entity: 'User' }
294
+ * ]
295
+ * });
296
+ *
297
+ * // Concurrent sync with pull only
298
+ * const result = await rxdb.versionManager.bulkSync({
299
+ * concurrent: true,
300
+ * concurrency: 3,
301
+ * push: false
302
+ * });
303
+ *
304
+ * // Inspect results
305
+ * for (const item of result.results) {
306
+ * if (item.success) {
307
+ * console.log(`${item.repository.entity}: pulled ${item.result.pull?.pulled || 0}`);
308
+ * } else {
309
+ * console.error(`${item.repository.entity}: ${item.error.message}`);
310
+ * }
311
+ * }
312
+ * ```
313
+ */
314
+ bulkSync(options?: BulkSyncOptions): Promise<BulkSyncResult>;
315
+ /**
316
+ * Get dependency graph for all repositories
317
+ *
318
+ * Analyzes entity relationships (MANY_TO_ONE, ONE_TO_ONE) to build
319
+ * a dependency graph showing which repositories depend on others.
320
+ *
321
+ * @returns Dependency graph with repository dependencies
322
+ *
323
+ * @example
324
+ * ```typescript
325
+ * const graph = rxdb.versionManager.getRepositoryDependencyGraph();
326
+ *
327
+ * // Iterate through dependencies
328
+ * for (const [key, dep] of graph) {
329
+ * console.log(`${key} depends on:`, dep.dependsOn);
330
+ * console.log(`${key} is required by:`, dep.requiredBy);
331
+ * }
332
+ * ```
333
+ */
334
+ getRepositoryDependencyGraph(): DependencyGraph;
335
+ /**
336
+ * Get sync order for repositories based on dependencies
337
+ *
338
+ * Uses topological sort to determine the correct order for syncing
339
+ * repositories based on their dependencies.
340
+ *
341
+ * @param direction - Sort direction: 'pull' (parent first) or 'push' (child first)
342
+ * @returns Ordered list of repositories
343
+ *
344
+ * @example
345
+ * ```typescript
346
+ * // Get pull order (parents before children)
347
+ * const pullOrder = rxdb.versionManager.getRepositorySyncOrder('pull');
348
+ * // [User, Todo, Comment]
349
+ *
350
+ * // Get push order (children before parents)
351
+ * const pushOrder = rxdb.versionManager.getRepositorySyncOrder('push');
352
+ * // [Comment, Todo, User]
353
+ * ```
354
+ */
355
+ getRepositorySyncOrder(direction: SortDirection): RepositoryIdentifier[];
356
+ /**
357
+ * 切换到指定分支
358
+ *
359
+ * @param branchId - 目标分支 ID
360
+ *
361
+ * @remarks
362
+ * 切换分支后会自动清空 redo 栈,因为 redo 历史在新分支中不再有效。
363
+ * 如果目标分支与当前分支相同,则直接返回,避免不必要的操作。
364
+ */
365
+ switchBranch(branchId: string): Promise<void>;
366
+ /**
367
+ * 获取特定作用域的历史记录 API
368
+ *
369
+ * @param options - 作用域选项:
370
+ * - 不传参数 → database 作用域(整个数据库)
371
+ * - EntityType 类 → repository 作用域(该实体的所有记录)
372
+ * - 实体实例 → entity 作用域(该实例的历史)
373
+ * @returns 统一的历史记录 API 接口
374
+ *
375
+ * @example
376
+ * ```ts
377
+ * // 数据库级别
378
+ * const dbHistory = versionManager.history();
379
+ *
380
+ * // 仓库级别(所有 User 记录)
381
+ * const userHistory = versionManager.history(User);
382
+ *
383
+ * // 实体级别(单个用户)
384
+ * const entityHistory = versionManager.history(userInstance);
385
+ * ```
386
+ */
387
+ history<T extends EntityType>(options?: T | InstanceType<T>): HistoryScopeAPI;
388
+ /**
389
+ * 恢复某个实体
390
+ * 复制实体的某个历史版本
391
+ * @param entity
392
+ * @param options
393
+ */
394
+ restoreEntity<T extends EntityType>(entity: InstanceType<T>, options: RestoreEntityOptions): Promise<InstanceType<T>>;
395
+ getLocalRepositories(): Promise<{
396
+ branchRepository: LocalRxDBBranchRepository;
397
+ changeRepository: LocalRxDBChangeRepository;
398
+ adapter: import('../rxdb-adapter.js').IRxDBAdapter & import('../rxdb-adapter.js').RxDBAdapterLocalBase;
399
+ }>;
400
+ getRemoteRepositories(): Promise<{
401
+ branchRepository: RemoteRxDBBranchRepository;
402
+ changeRepository: RemoteRxDBChangeRepository;
403
+ adapter: import('../rxdb-adapter.js').IRxDBAdapter & import('../rxdb-adapter.js').RxDBAdapterRemoteBase;
404
+ }>;
405
+ getCurrentBranch(): Promise<RxDBBranch>;
406
+ }
407
+ //# sourceMappingURL=VersionManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VersionManager.d.ts","sourceRoot":"","sources":["../../src/version/VersionManager.ts"],"names":[],"mappings":"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"}