@aiao/rxdb 0.0.6 → 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.
- package/dist/RxDB.d.ts +116 -18
- package/dist/RxDB.d.ts.map +1 -1
- package/dist/entity/@TreeEntity.d.ts.map +1 -1
- package/dist/entity/EntityBase.d.ts +58 -10
- package/dist/entity/EntityBase.d.ts.map +1 -1
- package/dist/entity/EntityManager.d.ts +16 -5
- package/dist/entity/EntityManager.d.ts.map +1 -1
- package/dist/entity/EntityStatus.d.ts +145 -87
- package/dist/entity/EntityStatus.d.ts.map +1 -1
- package/dist/entity/EntityStatus.interface.d.ts +59 -0
- package/dist/entity/EntityStatus.interface.d.ts.map +1 -0
- package/dist/entity/TreeEntityBase.d.ts +31 -4
- package/dist/entity/TreeEntityBase.d.ts.map +1 -1
- package/dist/entity/entity.interface.d.ts +16 -15
- package/dist/entity/entity.interface.d.ts.map +1 -1
- package/dist/entity/entity.utils.d.ts +21 -0
- package/dist/entity/entity.utils.d.ts.map +1 -1
- package/dist/entity/many_to_many_entity.d.ts.map +1 -1
- package/dist/entity/metadata-options.interface.d.ts +276 -39
- package/dist/entity/metadata-options.interface.d.ts.map +1 -1
- package/dist/entity/{transition-metadata.d.ts → metadata-transition.d.ts} +1 -1
- package/dist/entity/metadata-transition.d.ts.map +1 -0
- package/dist/entity/metadata.interface.d.ts +6 -0
- package/dist/entity/metadata.interface.d.ts.map +1 -1
- package/dist/entity/metadata_cascade_default.d.ts +54 -0
- package/dist/entity/metadata_cascade_default.d.ts.map +1 -0
- package/dist/entity/proxy.d.ts.map +1 -1
- package/dist/entity/relation_helper.d.ts.map +1 -1
- package/dist/entity/tree-entity.interface.d.ts +5 -0
- package/dist/entity/tree-entity.interface.d.ts.map +1 -0
- package/dist/gateway/RxDBTabsGateway.d.ts +52 -0
- package/dist/gateway/RxDBTabsGateway.d.ts.map +1 -0
- package/dist/gateway/gateway.interface.d.ts +43 -0
- package/dist/gateway/gateway.interface.d.ts.map +1 -0
- package/dist/index.d.ts +17 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5786 -1897
- package/dist/query/entity_type_dependencies.d.ts +3 -2
- package/dist/query/entity_type_dependencies.d.ts.map +1 -1
- package/dist/query/merge-update-basic.d.ts +30 -0
- package/dist/query/merge-update-basic.d.ts.map +1 -0
- package/dist/query/merge-update-tree.d.ts +86 -0
- package/dist/query/merge-update-tree.d.ts.map +1 -0
- package/dist/query/merge-update.utils.d.ts +52 -0
- package/dist/query/merge-update.utils.d.ts.map +1 -0
- package/dist/query/merge_create.d.ts +2 -2
- package/dist/query/merge_create.d.ts.map +1 -1
- package/dist/query/merge_remove.d.ts +2 -15
- package/dist/query/merge_remove.d.ts.map +1 -1
- package/dist/query/merge_update.d.ts +2 -2
- package/dist/query/merge_update.d.ts.map +1 -1
- package/dist/query/need_refresh_create.d.ts +4 -4
- package/dist/query/need_refresh_create.d.ts.map +1 -1
- package/dist/query/need_refresh_remove.d.ts +2 -2
- package/dist/query/need_refresh_remove.d.ts.map +1 -1
- package/dist/query/need_refresh_update.d.ts +4 -4
- package/dist/query/need_refresh_update.d.ts.map +1 -1
- package/dist/query/query-matching.utils.d.ts +18 -2
- package/dist/query/query-matching.utils.d.ts.map +1 -1
- package/dist/query/query-relation.utils.d.ts +44 -0
- package/dist/query/query-relation.utils.d.ts.map +1 -0
- package/dist/query/query-rules-builder.d.ts +68 -0
- package/dist/query/query-rules-builder.d.ts.map +1 -0
- package/dist/query/query-tree.utils.d.ts +54 -0
- package/dist/query/query-tree.utils.d.ts.map +1 -0
- package/dist/repository/QueryManager.d.ts +23 -1
- package/dist/repository/QueryManager.d.ts.map +1 -1
- package/dist/repository/QueryTask.d.ts +42 -5
- package/dist/repository/QueryTask.d.ts.map +1 -1
- package/dist/repository/Repository.d.ts +24 -35
- package/dist/repository/Repository.d.ts.map +1 -1
- package/dist/repository/RepositoryBase.d.ts +5 -3
- package/dist/repository/RepositoryBase.d.ts.map +1 -1
- package/dist/repository/TreeRepository.d.ts +28 -1
- package/dist/repository/TreeRepository.d.ts.map +1 -1
- package/dist/repository/fingerprint.utils.d.ts +28 -0
- package/dist/repository/fingerprint.utils.d.ts.map +1 -0
- package/dist/repository/query-options.interface.d.ts +50 -19
- package/dist/repository/query-options.interface.d.ts.map +1 -1
- package/dist/repository/query.interface.d.ts +70 -25
- package/dist/repository/query.interface.d.ts.map +1 -1
- package/dist/repository/relation-query.interface.d.ts +19 -0
- package/dist/repository/relation-query.interface.d.ts.map +1 -1
- package/dist/repository/repository.interface.d.ts +5 -8
- package/dist/repository/repository.interface.d.ts.map +1 -1
- package/dist/repository/tree-repository.interface.d.ts +29 -2
- package/dist/repository/tree-repository.interface.d.ts.map +1 -1
- package/dist/rxdb-adapter.d.ts +96 -14
- package/dist/rxdb-adapter.d.ts.map +1 -1
- package/dist/rxdb-events.d.ts +309 -172
- package/dist/rxdb-events.d.ts.map +1 -1
- package/dist/rxdb-plugin.d.ts +2 -2
- package/dist/rxdb-plugin.d.ts.map +1 -1
- package/dist/rxdb-utils.d.ts +15 -8
- package/dist/rxdb-utils.d.ts.map +1 -1
- package/dist/rxdb.interface.d.ts +4 -0
- package/dist/rxdb.interface.d.ts.map +1 -1
- package/dist/rxdb.private.d.ts +5 -0
- package/dist/rxdb.private.d.ts.map +1 -1
- package/dist/schema/SchemaManager.d.ts +1 -0
- package/dist/schema/SchemaManager.d.ts.map +1 -1
- package/dist/system/branch.d.ts +124 -7
- package/dist/system/branch.d.ts.map +1 -1
- package/dist/system/change.d.ts +605 -30
- package/dist/system/change.d.ts.map +1 -1
- package/dist/system/migration.d.ts +61 -11
- package/dist/system/migration.d.ts.map +1 -1
- package/dist/system/repository-sync.d.ts +95 -0
- package/dist/system/repository-sync.d.ts.map +1 -0
- package/dist/system/system.interface.d.ts +25 -0
- package/dist/system/system.interface.d.ts.map +1 -0
- package/dist/system/types.d.ts +233 -120
- package/dist/system/types.d.ts.map +1 -1
- package/dist/system/types.local.d.ts +156 -0
- package/dist/system/types.local.d.ts.map +1 -0
- package/dist/system/types.remote.d.ts +103 -0
- package/dist/system/types.remote.d.ts.map +1 -0
- package/dist/version/HistoryManager.d.ts +238 -0
- package/dist/version/HistoryManager.d.ts.map +1 -0
- package/dist/version/LWWConflictResolver.d.ts +41 -0
- package/dist/version/LWWConflictResolver.d.ts.map +1 -0
- package/dist/version/VersionManager.d.ts +407 -0
- package/dist/version/VersionManager.d.ts.map +1 -0
- package/dist/version/VersionManager.interface.d.ts +428 -0
- package/dist/version/VersionManager.interface.d.ts.map +1 -0
- package/dist/version/VersionManager.utils.d.ts +14 -0
- package/dist/version/VersionManager.utils.d.ts.map +1 -0
- package/dist/version/bulk-sync.d.ts +97 -0
- package/dist/version/bulk-sync.d.ts.map +1 -0
- package/dist/version/check-repository-updates.d.ts +53 -0
- package/dist/version/check-repository-updates.d.ts.map +1 -0
- package/dist/version/compact-changes.d.ts +45 -0
- package/dist/version/compact-changes.d.ts.map +1 -0
- package/dist/version/conflict.d.ts +75 -0
- package/dist/version/conflict.d.ts.map +1 -0
- package/dist/version/create_branch.d.ts +13 -0
- package/dist/version/create_branch.d.ts.map +1 -0
- package/dist/version/dependency-graph.d.ts +132 -0
- package/dist/version/dependency-graph.d.ts.map +1 -0
- package/dist/version/find_switch_branch_step.d.ts +53 -0
- package/dist/version/find_switch_branch_step.d.ts.map +1 -0
- package/dist/version/get-all-repository-sync-status.d.ts +58 -0
- package/dist/version/get-all-repository-sync-status.d.ts.map +1 -0
- package/dist/version/get-repository-sync-status.d.ts +74 -0
- package/dist/version/get-repository-sync-status.d.ts.map +1 -0
- package/dist/version/pull-repository.d.ts +99 -0
- package/dist/version/pull-repository.d.ts.map +1 -0
- package/dist/version/pull.d.ts +11 -0
- package/dist/version/pull.d.ts.map +1 -0
- package/dist/version/push-repository.d.ts +93 -0
- package/dist/version/push-repository.d.ts.map +1 -0
- package/dist/version/push.d.ts +11 -0
- package/dist/version/push.d.ts.map +1 -0
- package/dist/version/remove_branch.d.ts +8 -0
- package/dist/version/remove_branch.d.ts.map +1 -0
- package/dist/version/switch_branch_actions.d.ts +17 -0
- package/dist/version/switch_branch_actions.d.ts.map +1 -0
- package/dist/version/sync-repository.d.ts +57 -0
- package/dist/version/sync-repository.d.ts.map +1 -0
- package/dist/version/sync-type-utils.d.ts +145 -0
- package/dist/version/sync-type-utils.d.ts.map +1 -0
- package/dist/version/topological-sort.d.ts +70 -0
- package/dist/version/topological-sort.d.ts.map +1 -0
- package/dist/version/version.utils.d.ts +4 -0
- package/dist/version/version.utils.d.ts.map +1 -0
- package/package.json +4 -4
- package/README.md +0 -1
- package/dist/entity/@GraphEntity.d.ts +0 -8
- package/dist/entity/@GraphEntity.d.ts.map +0 -1
- package/dist/entity/GraphEntityBase.d.ts +0 -10
- package/dist/entity/GraphEntityBase.d.ts.map +0 -1
- package/dist/entity/graph_edge_entity.d.ts +0 -5
- package/dist/entity/graph_edge_entity.d.ts.map +0 -1
- package/dist/entity/transition-metadata.d.ts.map +0 -1
- package/dist/system/VersionManager.d.ts +0 -35
- 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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"}
|