@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,17 @@
|
|
|
1
|
+
import { RxDBChange } from '../system/change.js';
|
|
2
|
+
import { SwitchVersionActions } from './VersionManager.interface.js';
|
|
3
|
+
import { VersionManager } from './VersionManager.js';
|
|
4
|
+
/**
|
|
5
|
+
* 计算切换分支所需的操作
|
|
6
|
+
* @param version
|
|
7
|
+
* @param branchId 要切换到的分支ID
|
|
8
|
+
* @returns 返回切换分支所需的操作序列
|
|
9
|
+
*/
|
|
10
|
+
export declare const switch_branch_actions: (version: VersionManager, branchId: string) => Promise<SwitchVersionActions<import('../entity/entity.interface.js').EntityType>>;
|
|
11
|
+
/**
|
|
12
|
+
* 计算切换版本所需的操作
|
|
13
|
+
* @param changes 需要计算的 changes
|
|
14
|
+
* @param options
|
|
15
|
+
*/
|
|
16
|
+
export declare const get_switch_version_actions: (changes: RxDBChange[], isPatch: boolean, actions?: SwitchVersionActions) => SwitchVersionActions;
|
|
17
|
+
//# sourceMappingURL=switch_branch_actions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switch_branch_actions.d.ts","sourceRoot":"","sources":["../../src/version/switch_branch_actions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAU,SAAS,cAAc,EAAE,UAAU,MAAM,sFA4EpF,CAAC;AAkBF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,GACrC,SAAS,UAAU,EAAE,EACrB,SAAS,OAAO,EAChB,UAAS,oBAIR,KACA,oBAqFF,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { VersionManager } from './VersionManager.js';
|
|
2
|
+
import { PullRepositoryOptions, PullRepositoryResult } from './pull-repository.js';
|
|
3
|
+
import { PushRepositoryOptions, PushRepositoryResult } from './push-repository.js';
|
|
4
|
+
/**
|
|
5
|
+
* 仓库同步选项
|
|
6
|
+
*/
|
|
7
|
+
export interface SyncRepositoryOptions {
|
|
8
|
+
/**
|
|
9
|
+
* 同步方向
|
|
10
|
+
* @default 'sync'
|
|
11
|
+
*/
|
|
12
|
+
direction?: 'pull' | 'push' | 'sync';
|
|
13
|
+
/**
|
|
14
|
+
* 拉取(pull)选项
|
|
15
|
+
*/
|
|
16
|
+
pull?: PullRepositoryOptions;
|
|
17
|
+
/**
|
|
18
|
+
* 推送(push)选项
|
|
19
|
+
*/
|
|
20
|
+
push?: PushRepositoryOptions;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* 仓库同步结果
|
|
24
|
+
*/
|
|
25
|
+
export interface SyncRepositoryResult {
|
|
26
|
+
/**
|
|
27
|
+
* Pull result
|
|
28
|
+
*/
|
|
29
|
+
pullResult: PullRepositoryResult;
|
|
30
|
+
/**
|
|
31
|
+
* Push result
|
|
32
|
+
*/
|
|
33
|
+
pushResult: PushRepositoryResult;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* 同步一个仓库(先拉取再推送)
|
|
37
|
+
*
|
|
38
|
+
* @param vm - VersionManager 实例
|
|
39
|
+
* @param namespace - 实体命名空间
|
|
40
|
+
* @param entity - 实体名称
|
|
41
|
+
* @param options - 同步选项
|
|
42
|
+
* @returns 同步结果
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```ts
|
|
46
|
+
* // 同步 Todo 仓库(pull + push)
|
|
47
|
+
* const result = await syncRepository(vm, 'public', 'Todo');
|
|
48
|
+
*
|
|
49
|
+
* // 使用自定义选项同步
|
|
50
|
+
* const result = await syncRepository(vm, 'public', 'Todo', {
|
|
51
|
+
* pull: { limit: 500, fetchAll: true },
|
|
52
|
+
* push: { batchSize: 100 }
|
|
53
|
+
* });
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
export declare function syncRepository(vm: VersionManager, namespace: string, entity: string, options?: SyncRepositoryOptions): Promise<SyncRepositoryResult>;
|
|
57
|
+
//# sourceMappingURL=sync-repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-repository.d.ts","sourceRoot":"","sources":["../../src/version/sync-repository.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAkB,KAAK,qBAAqB,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC7G,OAAO,EAAkB,KAAK,qBAAqB,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG7G;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAErC;;OAEG;IACH,IAAI,CAAC,EAAE,qBAAqB,CAAC;IAE7B;;OAEG;IACH,IAAI,CAAC,EAAE,qBAAqB,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,UAAU,EAAE,oBAAoB,CAAC;IAEjC;;OAEG;IACH,UAAU,EAAE,oBAAoB,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,cAAc,CAClC,EAAE,EAAE,cAAc,EAClB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,oBAAoB,CAAC,CAyB/B"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { SyncOptions } from '../entity/metadata-options.interface.js';
|
|
2
|
+
import { EntityMetadata } from '../entity/metadata.interface.js';
|
|
3
|
+
/**
|
|
4
|
+
* Repository 同步类型
|
|
5
|
+
*/
|
|
6
|
+
export type RepositorySyncType = 'full' | 'remote' | 'local' | 'none';
|
|
7
|
+
/**
|
|
8
|
+
* 获取实体的有效同步配置(支持全局配置回退)
|
|
9
|
+
*
|
|
10
|
+
* @param metadata - 实体元数据
|
|
11
|
+
* @param globalSync - 全局同步配置(可选)
|
|
12
|
+
* @returns 实体的有效同步配置,如果没有任何配置则返回 undefined
|
|
13
|
+
*/
|
|
14
|
+
export declare function getSyncConfig(metadata: EntityMetadata, globalSync?: SyncOptions): SyncOptions | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* 从 EntityMetadata 获取同步类型
|
|
17
|
+
*
|
|
18
|
+
* @param metadata - 实体元数据
|
|
19
|
+
* @param globalSync - 全局同步配置(可选,作为回退)
|
|
20
|
+
* @returns 同步类型
|
|
21
|
+
* @throws {RxDBError} 如果 sync.type === 'filter'(不支持)
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```ts
|
|
25
|
+
* // Full sync (双向同步)
|
|
26
|
+
* const metadata = {
|
|
27
|
+
* sync: {
|
|
28
|
+
* type: SyncType.Full,
|
|
29
|
+
* local: { adapter: 'sqlite' },
|
|
30
|
+
* remote: { adapter: 'supabase' }
|
|
31
|
+
* }
|
|
32
|
+
* };
|
|
33
|
+
* getSyncType(metadata); // 'full'
|
|
34
|
+
*
|
|
35
|
+
* // Remote only (只读远程)
|
|
36
|
+
* const metadata = {
|
|
37
|
+
* sync: {
|
|
38
|
+
* type: SyncType.None,
|
|
39
|
+
* remote: { adapter: 'supabase' }
|
|
40
|
+
* }
|
|
41
|
+
* };
|
|
42
|
+
* getSyncType(metadata); // 'remote'
|
|
43
|
+
*
|
|
44
|
+
* // Local only (只本地)
|
|
45
|
+
* const metadata = {
|
|
46
|
+
* sync: {
|
|
47
|
+
* type: SyncType.None,
|
|
48
|
+
* local: { adapter: 'sqlite' }
|
|
49
|
+
* }
|
|
50
|
+
* };
|
|
51
|
+
* getSyncType(metadata); // 'local'
|
|
52
|
+
*
|
|
53
|
+
* // No sync (系统表)
|
|
54
|
+
* const metadata = { sync: undefined };
|
|
55
|
+
* getSyncType(metadata); // 'none'
|
|
56
|
+
*
|
|
57
|
+
* // 使用全局配置回退
|
|
58
|
+
* const metadata = { sync: undefined };
|
|
59
|
+
* const globalSync = { type: SyncType.Full, local: {...}, remote: {...} };
|
|
60
|
+
* getSyncType(metadata, globalSync); // 'full'
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
export declare function getSyncType(metadata: EntityMetadata, globalSync?: SyncOptions): RepositorySyncType; /**
|
|
64
|
+
* 检查 repository 是否需要 pull
|
|
65
|
+
*
|
|
66
|
+
* @param metadata - 实体元数据
|
|
67
|
+
* @param globalSync - 全局同步配置(可选)
|
|
68
|
+
* @returns 是否需要 pull
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```ts
|
|
72
|
+
* needsPull(metadataFull); // true (full)
|
|
73
|
+
* needsPull(metadataRemote); // true (remote)
|
|
74
|
+
* needsPull(metadataLocal); // false (local)
|
|
75
|
+
* needsPull(metadataNone); // false (none)
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
export declare function needsPull(metadata: EntityMetadata, globalSync?: SyncOptions): boolean;
|
|
79
|
+
/**
|
|
80
|
+
* 检查 repository 是否需要 push
|
|
81
|
+
*
|
|
82
|
+
* @param metadata - 实体元数据
|
|
83
|
+
* @param globalSync - 全局同步配置(可选)
|
|
84
|
+
* @returns 是否需要 push
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```ts
|
|
88
|
+
* needsPush(metadataFull); // true (full)
|
|
89
|
+
* needsPush(metadataRemote); // false (remote)
|
|
90
|
+
* needsPush(metadataLocal); // true (local)
|
|
91
|
+
* needsPush(metadataNone); // false (none)
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
94
|
+
export declare function needsPush(metadata: EntityMetadata, globalSync?: SyncOptions): boolean;
|
|
95
|
+
/**
|
|
96
|
+
* 检查 repository 是否完全不同步
|
|
97
|
+
*
|
|
98
|
+
* @param metadata - 实体元数据
|
|
99
|
+
* @param globalSync - 全局同步配置(可选)
|
|
100
|
+
* @returns 是否不同步
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```ts
|
|
104
|
+
* isNoSync(metadataFull); // false
|
|
105
|
+
* isNoSync(metadataRemote); // false
|
|
106
|
+
* isNoSync(metadataLocal); // false
|
|
107
|
+
* isNoSync(metadataNone); // true (系统表)
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
export declare function isNoSync(metadata: EntityMetadata, globalSync?: SyncOptions): boolean;
|
|
111
|
+
/**
|
|
112
|
+
* 获取需要同步的 repository 列表
|
|
113
|
+
*
|
|
114
|
+
* @param entities - 实体元数据数组
|
|
115
|
+
* @param globalSync - 全局同步配置(可选)
|
|
116
|
+
* @returns 需要同步的实体列表
|
|
117
|
+
*
|
|
118
|
+
* @example
|
|
119
|
+
* ```ts
|
|
120
|
+
* const entities = [todoMetadata, userMetadata, systemMetadata];
|
|
121
|
+
* const syncable = getSyncableRepositories(entities);
|
|
122
|
+
* // 返回: [todoMetadata, userMetadata] (排除 systemMetadata)
|
|
123
|
+
* ```
|
|
124
|
+
*/
|
|
125
|
+
export declare function getSyncableRepositories(entities: EntityMetadata[], globalSync?: SyncOptions): EntityMetadata[];
|
|
126
|
+
/**
|
|
127
|
+
* 按同步类型分组 repositories
|
|
128
|
+
*
|
|
129
|
+
* @param entities - 实体元数据数组
|
|
130
|
+
* @param globalSync - 全局同步配置(可选)
|
|
131
|
+
* @returns 按同步类型分组的实体
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* ```ts
|
|
135
|
+
* const grouped = groupBySyncType(entities);
|
|
136
|
+
* // 返回: {
|
|
137
|
+
* // full: [todoMetadata, commentMetadata],
|
|
138
|
+
* // remote: [userMetadata],
|
|
139
|
+
* // local: [draftMetadata],
|
|
140
|
+
* // none: [systemMetadata]
|
|
141
|
+
* // }
|
|
142
|
+
* ```
|
|
143
|
+
*/
|
|
144
|
+
export declare function groupBySyncType(entities: EntityMetadata[], globalSync?: SyncOptions): Record<RepositorySyncType, EntityMetadata[]>;
|
|
145
|
+
//# sourceMappingURL=sync-type-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-type-utils.d.ts","sourceRoot":"","sources":["../../src/version/sync-type-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAY,MAAM,yCAAyC,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAGtE;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAEtE;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,cAAc,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS,CAEzG;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,cAAc,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,kBAAkB,CAsDlG,CAAC;;;;;;;;;;;;;;GAcC;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,cAAc,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,OAAO,CAGrF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,cAAc,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,OAAO,CAGrF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,OAAO,CAGpF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,cAAc,EAAE,CAE9G;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,cAAc,EAAE,EAC1B,UAAU,CAAC,EAAE,WAAW,GACvB,MAAM,CAAC,kBAAkB,EAAE,cAAc,EAAE,CAAC,CAc9C"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { DependencyGraph, RepositoryIdentifier } from './dependency-graph.js';
|
|
2
|
+
/**
|
|
3
|
+
* 排序方向
|
|
4
|
+
*/
|
|
5
|
+
export type SortDirection = 'pull' | 'push';
|
|
6
|
+
/**
|
|
7
|
+
* 拓扑排序
|
|
8
|
+
*
|
|
9
|
+
* @param graph - 依赖图
|
|
10
|
+
* @param direction - 排序方向
|
|
11
|
+
* - 'pull': 父实体在前(User -> Todo -> Comment)
|
|
12
|
+
* - 'push': 子实体在前(Comment -> Todo -> User)
|
|
13
|
+
* @returns 排序后的 repository 列表
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* // Pull 顺序(父在前)
|
|
18
|
+
* const pullOrder = topologicalSort(graph, 'pull');
|
|
19
|
+
* // 返回: [User, Todo, Comment]
|
|
20
|
+
*
|
|
21
|
+
* // Push 顺序(子在前)
|
|
22
|
+
* const pushOrder = topologicalSort(graph, 'push');
|
|
23
|
+
* // 返回: [Comment, Todo, User]
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare function topologicalSort(graph: DependencyGraph, direction: SortDirection): RepositoryIdentifier[];
|
|
27
|
+
/**
|
|
28
|
+
* 拓扑排序(Pull 方向)
|
|
29
|
+
*
|
|
30
|
+
* 确保父实体在前,适用于 Pull 同步
|
|
31
|
+
*
|
|
32
|
+
* @param graph - 依赖图
|
|
33
|
+
* @returns 排序后的 repository 列表
|
|
34
|
+
*/
|
|
35
|
+
export declare function topologicalSortForPull(graph: DependencyGraph): RepositoryIdentifier[];
|
|
36
|
+
/**
|
|
37
|
+
* 拓扑排序(Push 方向)
|
|
38
|
+
*
|
|
39
|
+
* 确保子实体在前,适用于 Push 同步
|
|
40
|
+
*
|
|
41
|
+
* @param graph - 依赖图
|
|
42
|
+
* @returns 排序后的 repository 列表
|
|
43
|
+
*/
|
|
44
|
+
export declare function topologicalSortForPush(graph: DependencyGraph): RepositoryIdentifier[];
|
|
45
|
+
/**
|
|
46
|
+
* 过滤并排序指定的 repository 列表
|
|
47
|
+
*
|
|
48
|
+
* 从依赖图中只选择指定的 repositories,并按拓扑顺序排序
|
|
49
|
+
*
|
|
50
|
+
* @param graph - 完整依赖图
|
|
51
|
+
* @param repositories - 要排序的 repository 列表
|
|
52
|
+
* @param direction - 排序方向
|
|
53
|
+
* @returns 排序后的 repository 列表
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```ts
|
|
57
|
+
* // 只同步 Todo 和 Comment
|
|
58
|
+
* const filtered = filterAndSort(
|
|
59
|
+
* graph,
|
|
60
|
+
* [
|
|
61
|
+
* { namespace: 'public', entity: 'Todo' },
|
|
62
|
+
* { namespace: 'public', entity: 'Comment' }
|
|
63
|
+
* ],
|
|
64
|
+
* 'pull'
|
|
65
|
+
* );
|
|
66
|
+
* // 返回: [Todo, Comment](按依赖顺序)
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
export declare function filterAndSort(graph: DependencyGraph, repositories: RepositoryIdentifier[], direction: SortDirection): RepositoryIdentifier[];
|
|
70
|
+
//# sourceMappingURL=topological-sort.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"topological-sort.d.ts","sourceRoot":"","sources":["../../src/version/topological-sort.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAEnF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,aAAa,GAAG,oBAAoB,EAAE,CA6CxG;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,GAAG,oBAAoB,EAAE,CAErF;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,GAAG,oBAAoB,EAAE,CAErF;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,eAAe,EACtB,YAAY,EAAE,oBAAoB,EAAE,EACpC,SAAS,EAAE,aAAa,GACvB,oBAAoB,EAAE,CA8BxB"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { RxDBChange } from '../system/change.js';
|
|
2
|
+
import { RemoteChange } from '../system/system.interface.js';
|
|
3
|
+
export declare const remote_change_to_local: (remoteChange: RemoteChange[], base: Partial<RxDBChange>) => Omit<RxDBChange, "id" | "branch$">[];
|
|
4
|
+
//# sourceMappingURL=version.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.utils.d.ts","sourceRoot":"","sources":["../../src/version/version.utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,eAAO,MAAM,sBAAsB,GACjC,cAAc,YAAY,EAAE,EAC5B,MAAM,OAAO,CAAC,UAAU,CAAC,KACxB,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,SAAS,CAAC,EAUjC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aiao/rxdb",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.7",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -25,10 +25,10 @@
|
|
|
25
25
|
]
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
+
"object-hash": "^3.0.0",
|
|
28
29
|
"rxjs": "^7.8.2",
|
|
29
|
-
"type-fest": "^
|
|
30
|
+
"type-fest": "^5.3.1",
|
|
30
31
|
"uuid": "^13.0.0",
|
|
31
|
-
"
|
|
32
|
-
"@aiao/utils": "0.0.6"
|
|
32
|
+
"@aiao/utils": "0.0.7"
|
|
33
33
|
}
|
|
34
34
|
}
|
package/README.md
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
# rxdb
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { EntityMetadataOptions } from './metadata-options.interface.js';
|
|
2
|
-
/**
|
|
3
|
-
* 图实体装饰器
|
|
4
|
-
* 用于将类标记为图结构实体,并处理图特定的元数据, 生成 edges 表等
|
|
5
|
-
* https://chat.deepseek.com/a/chat/s/55a80c8a-2415-4ead-a6e2-31e1bac85567
|
|
6
|
-
*/
|
|
7
|
-
export declare const GraphEntity: (metadataOptions: EntityMetadataOptions) => <T extends import('../../packages/rxdb/src/index.ts').EntityType | import('../../packages/rxdb/src/index.ts').AbstractEntityType>(target: T) => any;
|
|
8
|
-
//# sourceMappingURL=@GraphEntity.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"@GraphEntity.d.ts","sourceRoot":"","sources":["../../src/entity/@GraphEntity.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,iBAAiB,qBAAqB,4GAYjE,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { EntityBase } from './EntityBase.js';
|
|
2
|
-
import { EntityMetadataOptions } from './metadata-options.interface.js';
|
|
3
|
-
export declare const GRAPH_ENTITY_BASE_OPTIONS: EntityMetadataOptions;
|
|
4
|
-
/**
|
|
5
|
-
* 树形实体装饰器配置
|
|
6
|
-
* 定义了树形结构所需的父子关系
|
|
7
|
-
*/
|
|
8
|
-
export declare abstract class GraphEntityBase extends EntityBase {
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=GraphEntityBase.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GraphEntityBase.d.ts","sourceRoot":"","sources":["../../src/entity/GraphEntityBase.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,eAAO,MAAM,yBAAyB,EAAE,qBAG9B,CAAC;AAEX;;;GAGG;AACH,8BACsB,eAAgB,SAAQ,UAAU;CAAG"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { EntityMetadataOptions } from './metadata-options.interface.js';
|
|
2
|
-
import { EntityMetadata } from './metadata.interface.js';
|
|
3
|
-
declare const _default: (meta: EntityMetadata) => EntityMetadataOptions;
|
|
4
|
-
export default _default;
|
|
5
|
-
//# sourceMappingURL=graph_edge_entity.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"graph_edge_entity.d.ts","sourceRoot":"","sources":["../../src/entity/graph_edge_entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAgB,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;yBAEzC,MAAM,cAAc,KAAG,qBAAqB;AAA5D,wBAuBE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transition-metadata.d.ts","sourceRoot":"","sources":["../../src/entity/transition-metadata.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEvE,OAAO,EACL,qBAAqB,EAItB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAuB,cAAc,EAAsB,MAAM,yBAAyB,CAAC;AAElG;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,kBAAkB,GAC7B,iBAAiB,qBAAqB,EACtC,UAAU,UAAU,GAAG,kBAAkB,GAAG,qBAAqB,GAAG,qBAAqB,EAAE,KAC1F,cA8GF,CAAC"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { BehaviorSubject, Observable } from 'rxjs';
|
|
2
|
-
import { RxDB } from '../RxDB.js';
|
|
3
|
-
import { EntityType } from '../entity/entity.interface.js';
|
|
4
|
-
import { IRxDBAdapter, RestoreEntityOptions, RxDBAdapterLocalBase } from '../rxdb-adapter.js';
|
|
5
|
-
/**
|
|
6
|
-
* 版本管理
|
|
7
|
-
*/
|
|
8
|
-
export declare class VersionManager {
|
|
9
|
-
#private;
|
|
10
|
-
readonly rxdb: RxDB;
|
|
11
|
-
/**
|
|
12
|
-
* 本地适配器
|
|
13
|
-
*/
|
|
14
|
-
protected localAdapterSub: BehaviorSubject<string>;
|
|
15
|
-
protected localAdapter$: Observable<IRxDBAdapter & RxDBAdapterLocalBase>;
|
|
16
|
-
constructor(rxdb: RxDB);
|
|
17
|
-
/**
|
|
18
|
-
* 创建新分支
|
|
19
|
-
* @param branchId 分支 id
|
|
20
|
-
* @param fromChangeId 从哪个 changeId 创建新分支
|
|
21
|
-
*/
|
|
22
|
-
createBranch(branchId: string, fromChangeId?: number): Promise<void>;
|
|
23
|
-
/**
|
|
24
|
-
* 切换分支
|
|
25
|
-
* @param branchId
|
|
26
|
-
*/
|
|
27
|
-
switchBranch(branchId: string): Promise<void>;
|
|
28
|
-
/**
|
|
29
|
-
* 恢复某个实体
|
|
30
|
-
* @param entity
|
|
31
|
-
* @param options
|
|
32
|
-
*/
|
|
33
|
-
restoreEntity<T extends EntityType>(_entity: InstanceType<T>, _options: RestoreEntityOptions): Promise<InstanceType<T>>;
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=VersionManager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VersionManager.d.ts","sourceRoot":"","sources":["../../src/system/VersionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAIf,UAAU,EAIX,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE9F;;GAEG;AACH,qBAAa,cAAc;;aAeG,IAAI,EAAE,IAAI;IAXtC;;OAEG;IACH,SAAS,CAAC,eAAe,0BAAmC;IAC5D,SAAS,CAAC,aAAa,EAAE,UAAU,CAAC,YAAY,GAAG,oBAAoB,CAAC,CAK/D;gBAEmB,IAAI,EAAE,IAAI;IAOtC;;;;OAIG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYpE;;;OAGG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY7C;;;;OAIG;IACH,aAAa,CAAC,CAAC,SAAS,UAAU,EAChC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EACxB,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;CAG5B"}
|