@aiao/rxdb 0.0.7 → 0.0.9
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 +5 -0
- package/dist/RxDB.d.ts.map +1 -1
- package/dist/RxDBError.d.ts +7 -0
- package/dist/RxDBError.d.ts.map +1 -1
- package/dist/entity/@Entity.d.ts +1 -1
- package/dist/entity/@Entity.d.ts.map +1 -1
- package/dist/entity/@TreeEntity.d.ts +1 -1
- package/dist/entity/@TreeEntity.d.ts.map +1 -1
- package/dist/entity/EntityStatus.d.ts.map +1 -1
- package/dist/entity/EntityStatus.interface.d.ts +2 -2
- package/dist/entity/EntityStatus.interface.d.ts.map +1 -1
- package/dist/entity/entity.interface.d.ts +5 -0
- package/dist/entity/entity.interface.d.ts.map +1 -1
- package/dist/entity/entity.utils.d.ts +3 -3
- package/dist/entity/entity.utils.d.ts.map +1 -1
- package/dist/entity/metadata-options.interface.d.ts +62 -11
- package/dist/entity/metadata-options.interface.d.ts.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3375 -1904
- package/dist/repository/QueryCacheRepository.d.ts +222 -0
- package/dist/repository/QueryCacheRepository.d.ts.map +1 -0
- package/dist/repository/QueryManager.d.ts +6 -5
- package/dist/repository/QueryManager.d.ts.map +1 -1
- package/dist/repository/QueryTask.d.ts +8 -7
- package/dist/repository/QueryTask.d.ts.map +1 -1
- package/dist/repository/diff-metadata.d.ts +41 -0
- package/dist/repository/diff-metadata.d.ts.map +1 -0
- package/dist/repository/query-options.interface.d.ts +6 -6
- package/dist/repository/query-options.interface.d.ts.map +1 -1
- package/dist/repository/query.interface.d.ts +2 -2
- package/dist/repository/query.interface.d.ts.map +1 -1
- package/dist/repository/tree-repository.interface.d.ts +1 -1
- package/dist/repository/tree-repository.interface.d.ts.map +1 -1
- package/dist/rxdb-adapter.d.ts +97 -2
- package/dist/rxdb-adapter.d.ts.map +1 -1
- package/dist/rxdb-events.d.ts +10 -3
- package/dist/rxdb-events.d.ts.map +1 -1
- package/dist/system/branch.d.ts +4 -3
- package/dist/system/branch.d.ts.map +1 -1
- package/dist/system/change.d.ts +2 -2
- package/dist/system/change.d.ts.map +1 -1
- package/dist/system/{repository-sync.d.ts → sync.d.ts} +15 -13
- package/dist/system/sync.d.ts.map +1 -0
- package/dist/system/system.interface.d.ts +2 -2
- package/dist/system/system.interface.d.ts.map +1 -1
- package/dist/system/types.d.ts +19 -19
- package/dist/system/types.d.ts.map +1 -1
- package/dist/system/types.local.d.ts +17 -17
- package/dist/system/types.local.d.ts.map +1 -1
- package/dist/version/HistoryManager.d.ts.map +1 -1
- package/dist/version/VersionManager.d.ts +25 -0
- package/dist/version/VersionManager.d.ts.map +1 -1
- package/dist/version/VersionManager.interface.d.ts +1 -2
- package/dist/version/VersionManager.interface.d.ts.map +1 -1
- package/dist/version/check-repository-updates.d.ts.map +1 -1
- package/dist/version/cleanup-expired.d.ts +56 -0
- package/dist/version/cleanup-expired.d.ts.map +1 -0
- package/dist/version/pull-repository.d.ts +17 -0
- package/dist/version/pull-repository.d.ts.map +1 -1
- package/dist/version/push-repository.d.ts.map +1 -1
- package/dist/version/sync-type-utils.d.ts +11 -1
- package/dist/version/sync-type-utils.d.ts.map +1 -1
- package/package.json +5 -2
- package/dist/system/repository-sync.d.ts.map +0 -1
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import { EntityType } from '../entity/entity.interface.js';
|
|
3
|
+
import { QueryCacheEntityMetadata } from '../entity/metadata-options.interface.js';
|
|
4
|
+
import { RuleGroup } from './query.interface.js';
|
|
5
|
+
/**
|
|
6
|
+
* QueryCache 实体约束接口
|
|
7
|
+
*
|
|
8
|
+
* 所有使用 QueryCache 同步策略的实体必须包含这两个字段
|
|
9
|
+
*/
|
|
10
|
+
export interface QueryCacheEntity {
|
|
11
|
+
/** 实体唯一标识 */
|
|
12
|
+
id: string;
|
|
13
|
+
/** 最后更新时间 (ISO 8601 格式) */
|
|
14
|
+
updatedAt: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* QueryCache 适配器接口(远程)
|
|
18
|
+
*/
|
|
19
|
+
export interface QueryCacheRemoteAdapter {
|
|
20
|
+
/** 获取满足查询条件的实体元数据 */
|
|
21
|
+
fetchMetadata(entityName: string, query: RuleGroup<any>): Observable<QueryCacheEntityMetadata[]>;
|
|
22
|
+
/** 按 ID 批量获取完整数据 */
|
|
23
|
+
findByIds<T>(entityName: string, ids: string[]): Observable<T[]>;
|
|
24
|
+
/** 创建实体(可选 - 写操作需要) */
|
|
25
|
+
create?<T>(entityName: string, data: T): Observable<T>;
|
|
26
|
+
/** 更新实体(可选 - 写操作需要) */
|
|
27
|
+
update?<T>(entityName: string, id: string, data: Partial<T>): Observable<T>;
|
|
28
|
+
/** 删除实体(可选 - 写操作需要) */
|
|
29
|
+
delete?(entityName: string, ids: string | string[]): Observable<void>;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* QueryCache 适配器接口(本地)
|
|
33
|
+
*/
|
|
34
|
+
export interface QueryCacheLocalAdapter {
|
|
35
|
+
/** 获取指定 ID 的本地元数据 */
|
|
36
|
+
getMetadataByIds(entityName: string, ids: string[]): Observable<Map<string, string>>;
|
|
37
|
+
/** 批量写入/更新数据 */
|
|
38
|
+
upsertMany<T>(entityName: string, data: T[]): Observable<void>;
|
|
39
|
+
/** 批量删除数据 */
|
|
40
|
+
deleteByIds(entityName: string, ids: string[]): Observable<void>;
|
|
41
|
+
/** 按 ID 获取完整数据 */
|
|
42
|
+
findByIds?<T>(entityName: string, ids: string[]): Observable<T[]>;
|
|
43
|
+
/** 获取所有本地缓存数据(SWR 模式需要) */
|
|
44
|
+
findAll?<T>(entityName: string): Observable<T[]>;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* 查询选项
|
|
48
|
+
*/
|
|
49
|
+
export interface QueryCacheFindOptions<T> {
|
|
50
|
+
/** 查询条件 */
|
|
51
|
+
where: RuleGroup<T>;
|
|
52
|
+
/** 同步完成回调,用于获取性能统计信息 */
|
|
53
|
+
onSyncStats?: (stats: SyncStats) => void;
|
|
54
|
+
/**
|
|
55
|
+
* 本地缓存优先模式 (Stale-While-Revalidate)
|
|
56
|
+
*
|
|
57
|
+
* 当设置为 true 时:
|
|
58
|
+
* 1. 立即返回本地缓存数据(如果存在)
|
|
59
|
+
* 2. 后台异步验证并更新
|
|
60
|
+
* 3. 如果数据有变化,发射更新后的数据
|
|
61
|
+
*
|
|
62
|
+
* @default false
|
|
63
|
+
*/
|
|
64
|
+
localCacheFirst?: boolean;
|
|
65
|
+
/**
|
|
66
|
+
* 离线降级模式
|
|
67
|
+
*
|
|
68
|
+
* 当设置为 true 时:
|
|
69
|
+
* - 网络错误时返回本地缓存数据
|
|
70
|
+
* - 如果没有本地缓存,抛出 NetworkOfflineError
|
|
71
|
+
*
|
|
72
|
+
* @default false
|
|
73
|
+
*/
|
|
74
|
+
offlineFallback?: boolean;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* 同步统计信息
|
|
78
|
+
*/
|
|
79
|
+
export interface SyncStats {
|
|
80
|
+
/** 远程元数据数量 */
|
|
81
|
+
remoteCount: number;
|
|
82
|
+
/** 缺失数量(需要拉取) */
|
|
83
|
+
missingCount: number;
|
|
84
|
+
/** 过时数量(需要更新) */
|
|
85
|
+
staleCount: number;
|
|
86
|
+
/** 新鲜数量(无需同步) */
|
|
87
|
+
freshCount: number;
|
|
88
|
+
/** 孤儿数量(本地有远程无) */
|
|
89
|
+
orphanCount: number;
|
|
90
|
+
/** 实际拉取数量 */
|
|
91
|
+
pulledCount: number;
|
|
92
|
+
/** 耗时(毫秒) */
|
|
93
|
+
durationMs: number;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* QueryCache 同步策略仓库
|
|
97
|
+
*
|
|
98
|
+
* @typeParam T - 实体类型
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ```typescript
|
|
102
|
+
* const repo = new QueryCacheRepository('Product', remoteAdapter, localAdapter);
|
|
103
|
+
*
|
|
104
|
+
* // 查询 - 自动增量同步
|
|
105
|
+
* const products = await firstValueFrom(repo.find({ where: { combinator: 'and', rules: [] } }));
|
|
106
|
+
*
|
|
107
|
+
* // 单个查询
|
|
108
|
+
* const product = await firstValueFrom(repo.findById('product-123'));
|
|
109
|
+
* ```
|
|
110
|
+
*/
|
|
111
|
+
export declare class QueryCacheRepository<T extends EntityType = EntityType> {
|
|
112
|
+
#private;
|
|
113
|
+
private readonly remoteAdapter;
|
|
114
|
+
private readonly localAdapter;
|
|
115
|
+
/** 实体名称 */
|
|
116
|
+
readonly entityName: string;
|
|
117
|
+
constructor(entityName: string, remoteAdapter: QueryCacheRemoteAdapter, localAdapter: QueryCacheLocalAdapter);
|
|
118
|
+
/**
|
|
119
|
+
* 查询实体列表
|
|
120
|
+
*
|
|
121
|
+
* 执行 QueryCache 同步流程:
|
|
122
|
+
* 1. fetchMetadata → 获取远程元数据
|
|
123
|
+
* 2. getMetadataByIds → 获取本地元数据
|
|
124
|
+
* 3. diffMetadata → 对比得出需要拉取的 ID
|
|
125
|
+
* 4. findByIds → 只拉取 missing + stale
|
|
126
|
+
* 5. upsertMany → 写入本地缓存
|
|
127
|
+
* 6. 返回合并结果
|
|
128
|
+
*
|
|
129
|
+
* 当 `localCacheFirst: true` 时 (SWR 模式):
|
|
130
|
+
* 1. 立即返回本地缓存(如果有)
|
|
131
|
+
* 2. 后台执行上述同步流程
|
|
132
|
+
* 3. 如果数据有变化,发射更新后的结果
|
|
133
|
+
*
|
|
134
|
+
* @param options - 查询选项
|
|
135
|
+
* @returns Observable<InstanceType<T>[]>
|
|
136
|
+
*
|
|
137
|
+
* @example
|
|
138
|
+
* ```typescript
|
|
139
|
+
* repo.find({ where: { combinator: 'and', rules: [{ field: 'status', operator: 'eq', value: 'active' }] } })
|
|
140
|
+
* .subscribe(products => console.log(products));
|
|
141
|
+
*
|
|
142
|
+
* // SWR 模式
|
|
143
|
+
* repo.find({ where: { ... }, localCacheFirst: true })
|
|
144
|
+
* .subscribe(products => {
|
|
145
|
+
* // 第一次发射:本地缓存(立即)
|
|
146
|
+
* // 第二次发射:远程更新后数据(如果有变化)
|
|
147
|
+
* });
|
|
148
|
+
* ```
|
|
149
|
+
*/
|
|
150
|
+
find(options: QueryCacheFindOptions<T>): Observable<InstanceType<T>[]>;
|
|
151
|
+
/**
|
|
152
|
+
* 按 ID 查询单个实体
|
|
153
|
+
*
|
|
154
|
+
* @param id - 实体 ID
|
|
155
|
+
* @returns Observable<InstanceType<T> | null>
|
|
156
|
+
*
|
|
157
|
+
* @example
|
|
158
|
+
* ```typescript
|
|
159
|
+
* repo.findById('product-123')
|
|
160
|
+
* .subscribe(product => console.log(product));
|
|
161
|
+
* ```
|
|
162
|
+
*/
|
|
163
|
+
findById(id: string): Observable<InstanceType<T> | null>;
|
|
164
|
+
/**
|
|
165
|
+
* 创建实体
|
|
166
|
+
*
|
|
167
|
+
* 执行远程优先写入策略:
|
|
168
|
+
* 1. 写入远程数据库
|
|
169
|
+
* 2. 远程成功后,将返回数据缓存到本地
|
|
170
|
+
* 3. 返回服务器生成的完整实体(可能包含服务器生成的 id/updatedAt)
|
|
171
|
+
*
|
|
172
|
+
* @param data - 要创建的实体数据
|
|
173
|
+
* @returns Observable<InstanceType<T>> - 创建成功的实体
|
|
174
|
+
* @throws 远程写入失败时抛出错误,本地不写入
|
|
175
|
+
*
|
|
176
|
+
* @example
|
|
177
|
+
* ```typescript
|
|
178
|
+
* repo.create({ name: 'New Product', price: 99 })
|
|
179
|
+
* .subscribe(product => console.log('Created:', product.id));
|
|
180
|
+
* ```
|
|
181
|
+
*/
|
|
182
|
+
create(data: Partial<InstanceType<T>>): Observable<InstanceType<T>>;
|
|
183
|
+
/**
|
|
184
|
+
* 更新实体
|
|
185
|
+
*
|
|
186
|
+
* 执行远程优先写入策略:
|
|
187
|
+
* 1. 更新远程数据库
|
|
188
|
+
* 2. 远程成功后,将返回数据缓存到本地(使用服务器返回的最新 updatedAt)
|
|
189
|
+
* 3. 返回更新后的完整实体
|
|
190
|
+
*
|
|
191
|
+
* @param id - 实体 ID
|
|
192
|
+
* @param data - 要更新的字段
|
|
193
|
+
* @returns Observable<InstanceType<T>> - 更新成功的实体
|
|
194
|
+
* @throws 远程更新失败时抛出错误,本地不更新
|
|
195
|
+
*
|
|
196
|
+
* @example
|
|
197
|
+
* ```typescript
|
|
198
|
+
* repo.update('product-123', { price: 199 })
|
|
199
|
+
* .subscribe(product => console.log('Updated:', product.updatedAt));
|
|
200
|
+
* ```
|
|
201
|
+
*/
|
|
202
|
+
update(id: string, data: Partial<InstanceType<T>>): Observable<InstanceType<T>>;
|
|
203
|
+
/**
|
|
204
|
+
* 删除实体
|
|
205
|
+
*
|
|
206
|
+
* 执行远程优先写入策略:
|
|
207
|
+
* 1. 从远程数据库删除
|
|
208
|
+
* 2. 远程成功后,从本地缓存删除
|
|
209
|
+
*
|
|
210
|
+
* @param ids - 要删除的实体 ID 或 ID 数组
|
|
211
|
+
* @returns Observable<void>
|
|
212
|
+
* @throws 远程删除失败时抛出错误,本地不删除
|
|
213
|
+
*
|
|
214
|
+
* @example
|
|
215
|
+
* ```typescript
|
|
216
|
+
* repo.delete('product-123').subscribe(() => console.log('Deleted'));
|
|
217
|
+
* repo.delete(['p1', 'p2', 'p3']).subscribe(() => console.log('Batch deleted'));
|
|
218
|
+
* ```
|
|
219
|
+
*/
|
|
220
|
+
delete(ids: string | string[]): Observable<void>;
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=QueryCacheRepository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryCacheRepository.d.ts","sourceRoot":"","sources":["../../src/repository/QueryCacheRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,12 +2,13 @@ import { Observable } from 'rxjs';
|
|
|
2
2
|
import { EntityType } from '../entity/entity.interface.js';
|
|
3
3
|
import { RxDBEntityLocalCreatedEventData, RxDBEntityLocalRemovedEventData, RxDBEntityLocalUpdatedEventData } from '../rxdb-events.js';
|
|
4
4
|
import { RxDB } from '../RxDB.js';
|
|
5
|
+
import { Fingerprint } from './fingerprint.utils.js';
|
|
5
6
|
import { QueryOptions } from './QueryManager.interface.js';
|
|
6
7
|
import { QueryTask } from './QueryTask.js';
|
|
7
8
|
import { Repository } from './Repository.js';
|
|
8
|
-
export type MergeQueryTaskCreateFn<T extends EntityType =
|
|
9
|
-
export type MergeQueryTaskUpdateFn<T extends EntityType =
|
|
10
|
-
export type MergeQueryTaskRemoveFn<T extends EntityType =
|
|
9
|
+
export type MergeQueryTaskCreateFn<T extends EntityType = EntityType> = (task: QueryTask<T>, entities: RxDBEntityLocalCreatedEventData<T>[]) => void;
|
|
10
|
+
export type MergeQueryTaskUpdateFn<T extends EntityType = EntityType> = (task: QueryTask<T>, entities: RxDBEntityLocalUpdatedEventData<T>[]) => void;
|
|
11
|
+
export type MergeQueryTaskRemoveFn<T extends EntityType = EntityType> = (task: QueryTask<T>, entities: RxDBEntityLocalRemovedEventData<T>[]) => void;
|
|
11
12
|
interface CreateTaskOptions<T extends EntityType, RT> {
|
|
12
13
|
/**
|
|
13
14
|
* 查询选项
|
|
@@ -20,7 +21,7 @@ interface CreateTaskOptions<T extends EntityType, RT> {
|
|
|
20
21
|
/**
|
|
21
22
|
* 结果指纹计算方法
|
|
22
23
|
*/
|
|
23
|
-
getFingerprint: (result:
|
|
24
|
+
getFingerprint: (result: RT) => Fingerprint[];
|
|
24
25
|
}
|
|
25
26
|
/**
|
|
26
27
|
* 查询缓存管理器
|
|
@@ -60,7 +61,7 @@ export declare class QueryManager<T extends EntityType> {
|
|
|
60
61
|
* @param taskOptions 查询任务选项
|
|
61
62
|
* @returns 查询任务对象,包含 result$ 用于订阅查询结果
|
|
62
63
|
*/
|
|
63
|
-
createTask<RT =
|
|
64
|
+
createTask<RT = unknown>(taskOptions: CreateTaskOptions<T, RT>): QueryTask<T, RT>;
|
|
64
65
|
registerMergeCreateFn(taskType: string, fn: MergeQueryTaskCreateFn<T>): void;
|
|
65
66
|
registerMergeUpdateFn(taskType: string, fn: MergeQueryTaskUpdateFn<T>): void;
|
|
66
67
|
registerMergeRemoveFn(taskType: string, fn: MergeQueryTaskRemoveFn<T>): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryManager.d.ts","sourceRoot":"","sources":["../../src/repository/QueryManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAIhE,OAAO,EAOL,+BAA+B,EAE/B,+BAA+B,EAC/B,+BAA+B,EAChC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,UAAU,GAAG,
|
|
1
|
+
{"version":3,"file":"QueryManager.d.ts","sourceRoot":"","sources":["../../src/repository/QueryManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAIhE,OAAO,EAOL,+BAA+B,EAE/B,+BAA+B,EAC/B,+BAA+B,EAChC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,IAAI,CACtE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAClB,QAAQ,EAAE,+BAA+B,CAAC,CAAC,CAAC,EAAE,KAC3C,IAAI,CAAC;AAEV,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,IAAI,CACtE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAClB,QAAQ,EAAE,+BAA+B,CAAC,CAAC,CAAC,EAAE,KAC3C,IAAI,CAAC;AAEV,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,IAAI,CACtE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAClB,QAAQ,EAAE,+BAA+B,CAAC,CAAC,CAAC,EAAE,KAC3C,IAAI,CAAC;AAEV,UAAU,iBAAiB,CAAC,CAAC,SAAS,UAAU,EAAE,EAAE;IAClD;;OAEG;IACH,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IACzB;;OAEG;IACH,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,EAAE,CAAC,CAAC;IACtD;;OAEG;IACH,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,KAAK,WAAW,EAAE,CAAC;CAC/C;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,YAAY,CAAC,CAAC,SAAS,UAAU;;IAkB1C,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI;IAC7B,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IAChC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;IAV9C;;;;;;OAMG;gBAEkB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,CAAC,EACb,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;IAQ9C;;;;;;;;;;OAUG;IACI,UAAU,CAAC,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;IAexF,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAIrE,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAIrE,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,sBAAsB,CAAC,CAAC,CAAC;CAkKtE"}
|
|
@@ -2,11 +2,12 @@ import { Observable, Observer } from 'rxjs';
|
|
|
2
2
|
import { EntityStaticType, EntityType } from '../entity/entity.interface.js';
|
|
3
3
|
import { RxDBEntityLocalEventData } from '../rxdb-events.js';
|
|
4
4
|
import { RxDB } from '../RxDB.js';
|
|
5
|
+
import { Fingerprint } from './fingerprint.utils.js';
|
|
5
6
|
import { QueryOptions } from './QueryManager.interface.js';
|
|
6
7
|
/**
|
|
7
8
|
* 查询任务选项接口
|
|
8
9
|
*/
|
|
9
|
-
export interface QueryTaskOptions<T extends EntityType> {
|
|
10
|
+
export interface QueryTaskOptions<T extends EntityType, RT> {
|
|
10
11
|
/**
|
|
11
12
|
* 缓存键
|
|
12
13
|
*/
|
|
@@ -18,7 +19,7 @@ export interface QueryTaskOptions<T extends EntityType> {
|
|
|
18
19
|
/**
|
|
19
20
|
* 查询执行函数
|
|
20
21
|
*/
|
|
21
|
-
runner: () => Observable<
|
|
22
|
+
runner: () => Observable<RT>;
|
|
22
23
|
/**
|
|
23
24
|
* 实体类型
|
|
24
25
|
*/
|
|
@@ -42,7 +43,7 @@ export interface QueryTaskOptions<T extends EntityType> {
|
|
|
42
43
|
/**
|
|
43
44
|
* 结果指纹计算方法
|
|
44
45
|
*/
|
|
45
|
-
getFingerprint: (result:
|
|
46
|
+
getFingerprint: (result: RT) => Fingerprint[];
|
|
46
47
|
}
|
|
47
48
|
/**
|
|
48
49
|
* 查询任务实现
|
|
@@ -53,7 +54,7 @@ export interface QueryTaskOptions<T extends EntityType> {
|
|
|
53
54
|
* - 维护实体类型依赖关系
|
|
54
55
|
* - 提供任务的首次运行和清理机制
|
|
55
56
|
*/
|
|
56
|
-
export declare class QueryTask<T extends EntityType, RT =
|
|
57
|
+
export declare class QueryTask<T extends EntityType, RT = unknown> {
|
|
57
58
|
#private;
|
|
58
59
|
private readonly runner;
|
|
59
60
|
private readonly onClean;
|
|
@@ -61,7 +62,7 @@ export declare class QueryTask<T extends EntityType, RT = any> {
|
|
|
61
62
|
* 观察者集合
|
|
62
63
|
* 存储所有订阅此查询结果的观察者
|
|
63
64
|
*/
|
|
64
|
-
readonly observers: Set<Observer<
|
|
65
|
+
readonly observers: Set<Observer<RT>>;
|
|
65
66
|
readonly serialize: (data: RxDBEntityLocalEventData<T>) => InstanceType<T>;
|
|
66
67
|
readonly cacheKey: string;
|
|
67
68
|
readonly entityType: T;
|
|
@@ -117,13 +118,13 @@ export declare class QueryTask<T extends EntityType, RT = any> {
|
|
|
117
118
|
/**
|
|
118
119
|
* 结果指纹计算方法
|
|
119
120
|
*/
|
|
120
|
-
getFingerprint: (result:
|
|
121
|
+
getFingerprint: (result: RT) => Fingerprint[];
|
|
121
122
|
/**
|
|
122
123
|
* 查询结果流
|
|
123
124
|
* 通过 Observable 发送查询结果的响应式流
|
|
124
125
|
*/
|
|
125
126
|
result$: Observable<RT>;
|
|
126
|
-
constructor(opt: QueryTaskOptions<T>);
|
|
127
|
+
constructor(opt: QueryTaskOptions<T, RT>);
|
|
127
128
|
/**
|
|
128
129
|
* 清理任务资源
|
|
129
130
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryTask.d.ts","sourceRoot":"","sources":["../../src/repository/QueryTask.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,UAAU,EACV,QAAQ,EAKT,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAElF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,UAAU;
|
|
1
|
+
{"version":3,"file":"QueryTask.d.ts","sourceRoot":"","sources":["../../src/repository/QueryTask.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { QueryCacheEntityMetadata } from '../entity/metadata-options.interface.js';
|
|
2
|
+
/**
|
|
3
|
+
* Diff result containing categorized entity IDs
|
|
4
|
+
*/
|
|
5
|
+
export interface DiffResult {
|
|
6
|
+
/** IDs that exist in remote but not in local - need to fetch */
|
|
7
|
+
missingIds: string[];
|
|
8
|
+
/** IDs that exist in both but local is outdated - need to update */
|
|
9
|
+
staleIds: string[];
|
|
10
|
+
/** IDs that exist in both and local is up-to-date - skip fetch */
|
|
11
|
+
freshIds: string[];
|
|
12
|
+
/** IDs that exist in local but not in remote result set - may be deleted or out of filter */
|
|
13
|
+
orphanIds: string[];
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Compare remote metadata with local metadata to determine sync actions
|
|
17
|
+
*
|
|
18
|
+
* Uses ISO 8601 timestamp comparison for freshness detection.
|
|
19
|
+
* All updatedAt values MUST be ISO 8601 strings (e.g., "2024-01-12T08:30:00.000Z").
|
|
20
|
+
* Time complexity: O(n) where n = max(remote.length, local.size)
|
|
21
|
+
*
|
|
22
|
+
* @param remoteMetadata - Metadata from remote adapter (id + updatedAt as ISO 8601)
|
|
23
|
+
* @param localMetadata - Map of id → updatedAt (ISO 8601) from local adapter
|
|
24
|
+
* @returns DiffResult with categorized IDs
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* const diff = diffMetadata(
|
|
29
|
+
* [{ id: '1', updatedAt: '2024-01-02T00:00:00Z' }],
|
|
30
|
+
* new Map([['1', '2024-01-01T00:00:00Z']])
|
|
31
|
+
* );
|
|
32
|
+
* // diff.staleIds = ['1'] - remote is newer
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* @remarks
|
|
36
|
+
* - ISO 8601 strings are lexicographically comparable ("2024-01-02" > "2024-01-01")
|
|
37
|
+
* - For non-ISO timestamps, convert to Date objects before calling this function
|
|
38
|
+
* - Timezone information is preserved in ISO 8601 format
|
|
39
|
+
*/
|
|
40
|
+
export declare function diffMetadata(remoteMetadata: QueryCacheEntityMetadata[], localMetadata: Map<string, string>): DiffResult;
|
|
41
|
+
//# sourceMappingURL=diff-metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff-metadata.d.ts","sourceRoot":"","sources":["../../src/repository/diff-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AAExF;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,gEAAgE;IAChE,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,oEAAoE;IACpE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,kEAAkE;IAClE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,6FAA6F;IAC7F,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,YAAY,CAC1B,cAAc,EAAE,wBAAwB,EAAE,EAC1C,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,UAAU,CAwCZ"}
|
|
@@ -16,21 +16,21 @@ export interface OrderBy<T extends string = string> {
|
|
|
16
16
|
/**
|
|
17
17
|
* FindOne 查询选项
|
|
18
18
|
*/
|
|
19
|
-
export interface FindOneOptions<T extends EntityType =
|
|
19
|
+
export interface FindOneOptions<T extends EntityType = EntityType, U = RuleGroup<InstanceType<T>>, W extends string = string> {
|
|
20
20
|
where: U;
|
|
21
21
|
orderBy?: OrderBy<W>[];
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
24
|
* FindOneOrFail 查询选项
|
|
25
25
|
*/
|
|
26
|
-
export interface FindOneOrFailOptions<T extends EntityType =
|
|
26
|
+
export interface FindOneOrFailOptions<T extends EntityType = EntityType, U = RuleGroup<InstanceType<T>>, W extends string = string> {
|
|
27
27
|
where: U;
|
|
28
28
|
orderBy?: OrderBy<W>[];
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
31
|
* Find 查询选项
|
|
32
32
|
*/
|
|
33
|
-
export interface FindOptions<T extends EntityType =
|
|
33
|
+
export interface FindOptions<T extends EntityType = EntityType, U = RuleGroup<InstanceType<T>>, W extends string = string> {
|
|
34
34
|
where: U;
|
|
35
35
|
orderBy?: OrderBy<W>[];
|
|
36
36
|
/**
|
|
@@ -47,7 +47,7 @@ export interface FindOptions<T extends EntityType = any, U = RuleGroup<InstanceT
|
|
|
47
47
|
/**
|
|
48
48
|
* FindByCursor 查询选项
|
|
49
49
|
*/
|
|
50
|
-
export interface FindByCursorOptions<T extends EntityType =
|
|
50
|
+
export interface FindByCursorOptions<T extends EntityType = EntityType, U = RuleGroup<InstanceType<T>>, W extends string = string> {
|
|
51
51
|
where: U;
|
|
52
52
|
/**
|
|
53
53
|
* 排序条件
|
|
@@ -81,7 +81,7 @@ export interface FindByCursorOptions<T extends EntityType = any, U = RuleGroup<I
|
|
|
81
81
|
/**
|
|
82
82
|
* FindAll 查询选项
|
|
83
83
|
*/
|
|
84
|
-
export interface FindAllOptions<T extends EntityType =
|
|
84
|
+
export interface FindAllOptions<T extends EntityType = EntityType, U = RuleGroup<InstanceType<T>>, W extends string = string> {
|
|
85
85
|
/**
|
|
86
86
|
* 查询条件
|
|
87
87
|
* 用于过滤查询结果
|
|
@@ -112,7 +112,7 @@ export interface FindAllOptions<T extends EntityType = any, U = RuleGroup<Instan
|
|
|
112
112
|
/**
|
|
113
113
|
* Count 查询选项
|
|
114
114
|
*/
|
|
115
|
-
export interface CountOptions<T extends EntityType =
|
|
115
|
+
export interface CountOptions<T extends EntityType = EntityType, U = RuleGroup<InstanceType<T>>> {
|
|
116
116
|
where: U;
|
|
117
117
|
groupBy?: string[];
|
|
118
118
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-options.interface.d.ts","sourceRoot":"","sources":["../../src/repository/query-options.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAChD;;OAEG;IACH,KAAK,EAAE,CAAC,CAAC;IAET;;OAEG;IACH,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,
|
|
1
|
+
{"version":3,"file":"query-options.interface.d.ts","sourceRoot":"","sources":["../../src/repository/query-options.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAChD;;OAEG;IACH,KAAK,EAAE,CAAC,CAAC;IAET;;OAEG;IACH,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,CAC7B,CAAC,SAAS,UAAU,GAAG,UAAU,EACjC,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAC9B,CAAC,SAAS,MAAM,GAAG,MAAM;IAEzB,KAAK,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB,CACnC,CAAC,SAAS,UAAU,GAAG,UAAU,EACjC,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAC9B,CAAC,SAAS,MAAM,GAAG,MAAM;IAEzB,KAAK,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW,CAC1B,CAAC,SAAS,UAAU,GAAG,UAAU,EACjC,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAC9B,CAAC,SAAS,MAAM,GAAG,MAAM;IAEzB,KAAK,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAEvB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB,CAClC,CAAC,SAAS,UAAU,GAAG,UAAU,EACjC,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAC9B,CAAC,SAAS,MAAM,GAAG,MAAM;IAEzB,KAAK,EAAE,CAAC,CAAC;IAET;;;;;;;;;;OAUG;IACH,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAEtB;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IAEzB;;OAEG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IAExB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,CAC7B,CAAC,SAAS,UAAU,GAAG,UAAU,EACjC,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAC9B,CAAC,SAAS,MAAM,GAAG,MAAM;IAEzB;;;;;;;;;;;;;;OAcG;IACH,KAAK,EAAE,CAAC,CAAC;IAET;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAAE,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC7F,KAAK,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB"}
|
|
@@ -95,7 +95,7 @@ interface RuleExists<T, K extends StringKey<T> = StringKey<T>> {
|
|
|
95
95
|
/**
|
|
96
96
|
* 查询规则
|
|
97
97
|
*/
|
|
98
|
-
export type Rule<T =
|
|
98
|
+
export type Rule<T = Record<string, any>, K extends StringKey<T> = StringKey<T>, VT = T[K]> = RuleEqualNullable<T, K, VT> | RuleStringNonNullable<T, K, VT> | RuleNumberNonNullable<T, K, VT> | RuleIn<T, K, VT> | RuleBetween<T, K, VT> | RuleJSONSimple<T, K, VT> | RuleExists<T, K>;
|
|
99
99
|
/**
|
|
100
100
|
* 查询规则组(基础)
|
|
101
101
|
* 用于生成的类型文件,可以组合出更多复杂的类型
|
|
@@ -107,7 +107,7 @@ export interface RuleGroupBase<T, K, RT> {
|
|
|
107
107
|
/**
|
|
108
108
|
* 查询规则组(自动计算类型)
|
|
109
109
|
*/
|
|
110
|
-
export type RuleGroup<T =
|
|
110
|
+
export type RuleGroup<T = Record<string, any>, K extends StringKey<T> = StringKey<T>, RT = Rule<T, K, T[K]>> = RuleGroupBase<T, K, RT>;
|
|
111
111
|
/**
|
|
112
112
|
* 所有操作符
|
|
113
113
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.interface.d.ts","sourceRoot":"","sources":["../../src/repository/query.interface.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"query.interface.d.ts","sourceRoot":"","sources":["../../src/repository/query.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD;;GAEG;AACH,KAAK,SAAS,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC;AAErC;;GAEG;AACH,UAAU,iBAAiB,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7E,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,UAAU,qBAAqB,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACjF,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EACJ,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,UAAU,GACV,aAAa,GACb,YAAY,GACZ,eAAe,GACf,UAAU,GACV,aAAa,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAAC,CAAC;CACtC;AAED;;GAEG;AACH,UAAU,qBAAqB,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACjF,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;IAClC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAAC,CAAC;CACtC;AAED;;GAEG;AACH,UAAU,MAAM,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAClE,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,IAAI,GAAG,OAAO,CAAC;IACzB,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC;CACxC;AAED;;GAEG;AACH,UAAU,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACvE,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,SAAS,GAAG,YAAY,CAAC;IACnC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC;CACvE;AAED;;GAEG;AACH,UAAU,cAAc,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1E,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,UAAU,GAAG,aAAa,CAAC;IACrC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAAC,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,UAAU,UAAU,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IAC3D;;;OAGG;IACH,KAAK,EAAE,CAAC,CAAC;IAET;;OAEG;IACH,QAAQ,EAAE,QAAQ,GAAG,WAAW,CAAC;IAEjC;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC3D;AAED;;GAEG;AACH,MAAM,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IACtF,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAC3B,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAC/B,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAC/B,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAChB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GACrB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GACxB,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAErB;;;GAGG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;IACrC,UAAU,EAAE,KAAK,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,CACnB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACvB,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EACrC,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IACnB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAE5B;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB,GAAG,GACH,IAAI,GACJ,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,UAAU,GACV,aAAa,GACb,YAAY,GACZ,eAAe,GACf,UAAU,GACV,aAAa,GACb,MAAM,GACN,SAAS,GACT,IAAI,GACJ,OAAO,GACP,SAAS,GACT,YAAY,GACZ,QAAQ,GACR,WAAW,CAAC;AAEhB;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC;AAExC;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD;;OAEG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC;IAElB;;OAEG;IACH,SAAS,CAAC,EAAE,IAAI,CAAC;IAEjB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAID;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IACrE,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAC3B,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAErB;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IACvE,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAC3B,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAC/B,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAChB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAE1B;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IACvE,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAC3B,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAC/B,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAChB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAE1B;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IACxE,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAC3B,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAC/B,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAChB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAE1B;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAE5G;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IACrE,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAC3B,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAC/B,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAChB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAE1B;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAErG;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAErG;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC"}
|
|
@@ -4,7 +4,7 @@ import { IRepository } from './repository.interface.js';
|
|
|
4
4
|
/**
|
|
5
5
|
* 树结构查询配置
|
|
6
6
|
*/
|
|
7
|
-
export interface FindTreeOptions<T extends EntityType =
|
|
7
|
+
export interface FindTreeOptions<T extends EntityType = EntityType, WhereType = RuleGroup<InstanceType<T>>> {
|
|
8
8
|
/**
|
|
9
9
|
* 查询的根实体 ID
|
|
10
10
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-repository.interface.d.ts","sourceRoot":"","sources":["../../src/repository/tree-repository.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,UAAU,GAAG,
|
|
1
|
+
{"version":3,"file":"tree-repository.interface.d.ts","sourceRoot":"","sources":["../../src/repository/tree-repository.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAAE,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACxG;;OAEG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;IAEhD;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,UAAU,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IAC3E;;;;;;OAMG;IACH,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAEzE;;;;;;OAMG;IACH,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE/D;;;;;OAKG;IACH,aAAa,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAEvE;;;;;OAKG;IACH,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9D"}
|