oak-domain 3.0.0 → 3.0.2
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/lib/actions/action.d.ts +16 -16
- package/lib/actions/action.js +17 -17
- package/lib/actions/relation.d.ts +5 -5
- package/lib/actions/relation.js +38 -38
- package/lib/base-app-domain/ActionAuth/Schema.d.ts +160 -160
- package/lib/base-app-domain/ActionAuth/Schema.js +2 -2
- package/lib/base-app-domain/ActionAuth/Storage.d.ts +3 -3
- package/lib/base-app-domain/ActionAuth/Storage.js +42 -42
- package/lib/base-app-domain/ActionDefDict.d.ts +9 -9
- package/lib/base-app-domain/ActionDefDict.js +11 -11
- package/lib/base-app-domain/EntityDict.d.ts +24 -24
- package/lib/base-app-domain/EntityDict.js +2 -2
- package/lib/base-app-domain/I18n/Schema.d.ts +129 -129
- package/lib/base-app-domain/I18n/Schema.js +2 -2
- package/lib/base-app-domain/I18n/Storage.d.ts +3 -3
- package/lib/base-app-domain/I18n/Storage.js +59 -59
- package/lib/base-app-domain/Modi/Action.d.ts +10 -10
- package/lib/base-app-domain/Modi/Action.js +14 -14
- package/lib/base-app-domain/Modi/Schema.d.ts +136 -136
- package/lib/base-app-domain/Modi/Schema.js +2 -2
- package/lib/base-app-domain/Modi/Storage.d.ts +3 -3
- package/lib/base-app-domain/Modi/Storage.js +63 -63
- package/lib/base-app-domain/ModiEntity/Schema.d.ts +311 -311
- package/lib/base-app-domain/ModiEntity/Schema.js +2 -2
- package/lib/base-app-domain/ModiEntity/Storage.d.ts +3 -3
- package/lib/base-app-domain/ModiEntity/Storage.js +30 -30
- package/lib/base-app-domain/Oper/Schema.d.ts +152 -152
- package/lib/base-app-domain/Oper/Schema.js +2 -2
- package/lib/base-app-domain/Oper/Storage.d.ts +3 -3
- package/lib/base-app-domain/Oper/Storage.js +38 -38
- package/lib/base-app-domain/OperEntity/Schema.d.ts +300 -300
- package/lib/base-app-domain/OperEntity/Schema.js +2 -2
- package/lib/base-app-domain/OperEntity/Storage.d.ts +3 -3
- package/lib/base-app-domain/OperEntity/Storage.js +30 -30
- package/lib/base-app-domain/Relation/Schema.d.ts +188 -188
- package/lib/base-app-domain/Relation/Schema.js +2 -2
- package/lib/base-app-domain/Relation/Storage.d.ts +3 -3
- package/lib/base-app-domain/Relation/Storage.js +54 -54
- package/lib/base-app-domain/Relation.d.ts +10 -10
- package/lib/base-app-domain/Relation.js +10 -10
- package/lib/base-app-domain/RelationAuth/Schema.d.ts +180 -180
- package/lib/base-app-domain/RelationAuth/Schema.js +2 -2
- package/lib/base-app-domain/RelationAuth/Storage.d.ts +3 -3
- package/lib/base-app-domain/RelationAuth/Storage.js +46 -46
- package/lib/base-app-domain/Storage.d.ts +3 -3
- package/lib/base-app-domain/Storage.js +27 -27
- package/lib/base-app-domain/User/Action.d.ts +10 -10
- package/lib/base-app-domain/User/Action.js +12 -12
- package/lib/base-app-domain/User/Schema.d.ts +197 -197
- package/lib/base-app-domain/User/Schema.js +2 -2
- package/lib/base-app-domain/User/Storage.d.ts +3 -3
- package/lib/base-app-domain/User/Storage.js +33 -33
- package/lib/base-app-domain/UserEntityGrant/Action.d.ts +5 -5
- package/lib/base-app-domain/UserEntityGrant/Action.js +5 -5
- package/lib/base-app-domain/UserEntityGrant/Schema.d.ts +157 -157
- package/lib/base-app-domain/UserEntityGrant/Schema.js +2 -2
- package/lib/base-app-domain/UserEntityGrant/Storage.d.ts +3 -3
- package/lib/base-app-domain/UserEntityGrant/Storage.js +29 -29
- package/lib/base-app-domain/UserRelation/Schema.d.ts +194 -194
- package/lib/base-app-domain/UserRelation/Schema.js +2 -2
- package/lib/base-app-domain/UserRelation/Storage.d.ts +3 -3
- package/lib/base-app-domain/UserRelation/Storage.js +56 -56
- package/lib/base-app-domain/_SubQuery.d.ts +112 -112
- package/lib/base-app-domain/_SubQuery.js +2 -2
- package/lib/base-app-domain/index.d.ts +4 -4
- package/lib/base-app-domain/index.js +7 -7
- package/lib/checkers/index.d.ts +5 -5
- package/lib/checkers/index.js +14 -14
- package/lib/compiler/env.d.ts +14 -14
- package/lib/compiler/env.js +50 -50
- package/lib/compiler/localeBuilder.d.ts +22 -22
- package/lib/compiler/localeBuilder.js +169 -169
- package/lib/compiler/schemalBuilder.d.ts +11 -11
- package/lib/compiler/schemalBuilder.js +3787 -3787
- package/lib/compiler/uiBuilder.d.ts +1 -1
- package/lib/compiler/uiBuilder.js +3 -3
- package/lib/entities/ActionAuth.d.ts +12 -12
- package/lib/entities/ActionAuth.js +29 -29
- package/lib/entities/I18n.d.ts +9 -9
- package/lib/entities/I18n.js +37 -37
- package/lib/entities/Modi.d.ts +11 -11
- package/lib/entities/Modi.js +49 -49
- package/lib/entities/ModiEntity.d.ts +8 -8
- package/lib/entities/ModiEntity.js +18 -18
- package/lib/entities/Oper.d.ts +11 -11
- package/lib/entities/Oper.js +21 -21
- package/lib/entities/OperEntity.d.ts +8 -8
- package/lib/entities/OperEntity.js +18 -18
- package/lib/entities/Relation.d.ts +8 -8
- package/lib/entities/Relation.js +35 -35
- package/lib/entities/RelationAuth.d.ts +8 -8
- package/lib/entities/RelationAuth.js +34 -34
- package/lib/entities/User.d.ts +8 -8
- package/lib/entities/User.js +31 -31
- package/lib/entities/UserEntityGrant.d.ts +8 -8
- package/lib/entities/UserEntityGrant.js +18 -18
- package/lib/entities/UserRelation.d.ts +10 -10
- package/lib/entities/UserRelation.js +38 -38
- package/lib/store/AsyncRowStore.d.ts +58 -58
- package/lib/store/AsyncRowStore.js +190 -190
- package/lib/store/CascadeStore.d.ts +103 -103
- package/lib/store/CascadeStore.js +2035 -2031
- package/lib/store/RelationAuth.d.ts +103 -96
- package/lib/store/RelationAuth.js +1492 -1307
- package/lib/store/SyncRowStore.d.ts +29 -29
- package/lib/store/SyncRowStore.js +49 -48
- package/lib/store/TriggerExecutor.d.ts +31 -31
- package/lib/store/TriggerExecutor.js +532 -532
- package/lib/store/actionAuth.d.ts +4 -4
- package/lib/store/actionAuth.js +40 -40
- package/lib/store/actionDef.d.ts +10 -10
- package/lib/store/actionDef.js +351 -351
- package/lib/store/checker.d.ts +26 -26
- package/lib/store/checker.js +623 -623
- package/lib/store/filter.d.ts +123 -123
- package/lib/store/filter.js +1761 -1739
- package/lib/store/modi.d.ts +13 -13
- package/lib/store/modi.js +315 -315
- package/lib/store/relation.d.ts +12 -12
- package/lib/store/relation.js +67 -67
- package/lib/timers/oper.d.ts +18 -18
- package/lib/timers/oper.js +60 -60
- package/lib/timers/vaccum.d.ts +20 -20
- package/lib/timers/vaccum.js +176 -176
- package/lib/triggers/index.d.ts +5 -5
- package/lib/triggers/index.js +8 -8
- package/lib/types/Action.d.ts +20 -20
- package/lib/types/Action.js +2 -2
- package/lib/types/AppLoader.d.ts +11 -11
- package/lib/types/AppLoader.js +10 -10
- package/lib/types/Aspect.d.ts +13 -13
- package/lib/types/Aspect.js +4 -4
- package/lib/types/Auth.d.ts +74 -74
- package/lib/types/Auth.js +2 -2
- package/lib/types/Connector.d.ts +33 -33
- package/lib/types/Connector.js +9 -9
- package/lib/types/Context.d.ts +7 -7
- package/lib/types/Context.js +3 -3
- package/lib/types/DataType.d.ts +24 -24
- package/lib/types/DataType.js +6 -6
- package/lib/types/Demand.d.ts +88 -88
- package/lib/types/Demand.js +10 -10
- package/lib/types/Endpoint.d.ts +11 -11
- package/lib/types/Endpoint.js +3 -3
- package/lib/types/Entity.d.ts +193 -192
- package/lib/types/Entity.js +14 -14
- package/lib/types/EntityDesc.d.ts +8 -8
- package/lib/types/EntityDesc.js +2 -2
- package/lib/types/Environment.d.ts +57 -57
- package/lib/types/Environment.js +2 -2
- package/lib/types/Exception.d.ts +115 -115
- package/lib/types/Exception.js +389 -389
- package/lib/types/Expression.d.ts +163 -163
- package/lib/types/Expression.js +427 -427
- package/lib/types/Geo.d.ts +18 -18
- package/lib/types/Geo.js +2 -2
- package/lib/types/Locale.d.ts +25 -25
- package/lib/types/Locale.js +2 -2
- package/lib/types/Logger.d.ts +6 -6
- package/lib/types/Logger.js +3 -3
- package/lib/types/Polyfill.d.ts +24 -24
- package/lib/types/Polyfill.js +2 -2
- package/lib/types/Port.d.ts +18 -18
- package/lib/types/Port.js +2 -2
- package/lib/types/RowStore.d.ts +18 -18
- package/lib/types/RowStore.js +34 -34
- package/lib/types/Storage.d.ts +57 -57
- package/lib/types/Storage.js +2 -2
- package/lib/types/Style.d.ts +11 -11
- package/lib/types/Style.js +2 -2
- package/lib/types/Timer.d.ts +14 -14
- package/lib/types/Timer.js +2 -2
- package/lib/types/Trigger.d.ts +108 -108
- package/lib/types/Trigger.js +54 -54
- package/lib/types/Txn.d.ts +2 -2
- package/lib/types/Txn.js +3 -3
- package/lib/types/Watcher.d.ts +19 -19
- package/lib/types/Watcher.js +4 -4
- package/lib/types/index.d.ts +24 -24
- package/lib/types/index.js +27 -27
- package/lib/types/schema/DataTypes.d.ts +34 -34
- package/lib/types/schema/DataTypes.js +3 -3
- package/lib/utils/SimpleConnector.d.ts +48 -48
- package/lib/utils/SimpleConnector.js +180 -180
- package/lib/utils/assert.d.ts +5 -5
- package/lib/utils/assert.js +9 -9
- package/lib/utils/concurrent.d.ts +15 -15
- package/lib/utils/concurrent.js +89 -89
- package/lib/utils/date.d.ts +1 -1
- package/lib/utils/date.js +18 -18
- package/lib/utils/geo.d.ts +4 -4
- package/lib/utils/geo.js +24 -24
- package/lib/utils/lodash.d.ts +20 -20
- package/lib/utils/lodash.js +55 -55
- package/lib/utils/mask.d.ts +5 -5
- package/lib/utils/mask.js +35 -35
- package/lib/utils/money.d.ts +6 -6
- package/lib/utils/money.js +40 -40
- package/lib/utils/random/random.d.ts +1 -1
- package/lib/utils/random/random.js +24 -24
- package/lib/utils/random/random.mp.d.ts +1 -1
- package/lib/utils/random/random.mp.js +25 -25
- package/lib/utils/random/random.web.d.ts +1 -1
- package/lib/utils/random/random.web.js +17 -17
- package/lib/utils/string.d.ts +28 -28
- package/lib/utils/string.js +82 -82
- package/lib/utils/url.d.ts +1 -1
- package/lib/utils/url.js +12 -12
- package/lib/utils/uuid.d.ts +17 -17
- package/lib/utils/uuid.js +257 -257
- package/lib/utils/validator.d.ts +25 -25
- package/lib/utils/validator.js +128 -128
- package/lib/utils/version.d.ts +7 -7
- package/lib/utils/version.js +21 -21
- package/package.json +49 -49
- package/src/entities/ActionAuth.ts +41 -41
- package/src/entities/I18n.ts +46 -46
- package/src/entities/Modi.ts +69 -69
- package/src/entities/ModiEntity.ts +26 -26
- package/src/entities/Oper.ts +32 -32
- package/src/entities/OperEntity.ts +27 -27
- package/src/entities/Relation.ts +43 -43
- package/src/entities/RelationAuth.ts +43 -43
- package/src/entities/User.ts +48 -48
- package/src/entities/UserEntityGrant.ts +27 -27
- package/src/entities/UserRelation.ts +50 -50
package/lib/store/filter.d.ts
CHANGED
|
@@ -1,123 +1,123 @@
|
|
|
1
|
-
import { EntityDict as BaseEntityDict, StorageSchema } from '../types';
|
|
2
|
-
import { EntityDict } from "../base-app-domain";
|
|
3
|
-
import { AsyncContext } from './AsyncRowStore';
|
|
4
|
-
import { SyncContext } from './SyncRowStore';
|
|
5
|
-
export declare function combineFilters<ED extends EntityDict & BaseEntityDict, T extends keyof ED>(entity: T, schema: StorageSchema<ED>, filters: Array<ED[T]['Selection']['filter']>, union?: true): ED[T]["Selection"]["filter"] | undefined;
|
|
6
|
-
declare type DeducedFilter<ED extends EntityDict & BaseEntityDict, T extends keyof ED> = {
|
|
7
|
-
entity: T;
|
|
8
|
-
filter: ED[T]['Selection']['filter'];
|
|
9
|
-
};
|
|
10
|
-
declare type DeducedFilterCombination<ED extends EntityDict & BaseEntityDict> = {
|
|
11
|
-
$or?: (DeducedFilterCombination<ED> | DeducedFilter<ED, keyof ED>)[];
|
|
12
|
-
$and?: (DeducedFilterCombination<ED> | DeducedFilter<ED, keyof ED>)[];
|
|
13
|
-
};
|
|
14
|
-
/**
|
|
15
|
-
* 在以下判断相容或相斥的过程中,相容/相斥的事实标准是:满足两个条件的查询集合是否被包容/互斥,但如果两个filter在逻辑上相容或者相斥,在事实上不一定相容或者相斥
|
|
16
|
-
* 例如:{ a: 1 } 和 { a: { $ne: 1 } } 是明显不相容的查询,但如果数据为空集,则这两个查询并不能否定其相容
|
|
17
|
-
* 我们在处理这类数据时,优先使用逻辑判定的结果(更符合查询本身的期望而非真实数据集),同时也可减少对真实数据集不必要的查询访问
|
|
18
|
-
*/
|
|
19
|
-
/**
|
|
20
|
-
* 判断value1表达的单个属性查询与同属性上value2表达的查询是包容还是相斥
|
|
21
|
-
* 相容即value1所表达的查询结果一定被value2表达的查询结果所包含,例如:
|
|
22
|
-
* value1: {
|
|
23
|
-
* $eq: 12
|
|
24
|
-
* }
|
|
25
|
-
* value2: {
|
|
26
|
-
* $gt: 8,
|
|
27
|
-
* }
|
|
28
|
-
* 此时value1相容value2
|
|
29
|
-
*
|
|
30
|
-
* 相斥即value1所表达的查询结果与value2一定毫无联系,例如:
|
|
31
|
-
* value1: {
|
|
32
|
-
* $gt: 8,
|
|
33
|
-
* }
|
|
34
|
-
* value2: {
|
|
35
|
-
* $lt: 2,
|
|
36
|
-
* }
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
* @param value1
|
|
40
|
-
* @param value2
|
|
41
|
-
* @return true代表肯定相容/相斥,false代表肯定不相容/不相斥,undefined代表不能确定
|
|
42
|
-
* @attention: 1)这里的测试不够充分,有些算子之间的相容或相斥可能有遗漏, 2)有新的算子加入需要修改代码
|
|
43
|
-
*/
|
|
44
|
-
export declare function judgeValueRelation(value1: any, value2: any, contained: boolean): boolean | undefined;
|
|
45
|
-
/**
|
|
46
|
-
*
|
|
47
|
-
* 判断filter是否包含contained中的查询条件,即filter查询的结果一定是contained查询结果的子集
|
|
48
|
-
* filter = {
|
|
49
|
-
* a: 1
|
|
50
|
-
* b: 2,
|
|
51
|
-
* c: 3,
|
|
52
|
-
* },
|
|
53
|
-
* conditionalFilter = {
|
|
54
|
-
* a: 1
|
|
55
|
-
* }
|
|
56
|
-
* 则包含
|
|
57
|
-
* @param entity
|
|
58
|
-
* @param schema
|
|
59
|
-
* @param filter
|
|
60
|
-
* @param contained
|
|
61
|
-
* @returns
|
|
62
|
-
*/
|
|
63
|
-
export declare function contains<ED extends EntityDict & BaseEntityDict, T extends keyof ED>(entity: T, schema: StorageSchema<ED>, filter: ED[T]['Selection']['filter'], contained: ED[T]['Selection']['filter']): boolean | DeducedFilterCombination<ED>;
|
|
64
|
-
/**
|
|
65
|
-
* 判断filter1和filter2是否相斥,即filter1和filter2查询的结果一定没有交集
|
|
66
|
-
* filter1 = {
|
|
67
|
-
* a: 2
|
|
68
|
-
* },
|
|
69
|
-
* filter2 = {
|
|
70
|
-
* a: 1
|
|
71
|
-
* }
|
|
72
|
-
* 则包含
|
|
73
|
-
* @param entity
|
|
74
|
-
* @param schema
|
|
75
|
-
* @param filter
|
|
76
|
-
* @param conditionalFilter
|
|
77
|
-
*/
|
|
78
|
-
export declare function repel<ED extends EntityDict & BaseEntityDict, T extends keyof ED>(entity: T, schema: StorageSchema<ED>, filter1: ED[T]['Selection']['filter'], filter2: ED[T]['Selection']['filter']): boolean | DeducedFilterCombination<ED>;
|
|
79
|
-
/**
|
|
80
|
-
* 从filter中判断是否有确定的id对象,如果有则返回这些id,没有返回空数组
|
|
81
|
-
* @param filter
|
|
82
|
-
* @returns
|
|
83
|
-
*/
|
|
84
|
-
export declare function getRelevantIds<ED extends EntityDict & BaseEntityDict, T extends keyof ED>(filter: ED[T]['Selection']['filter']): string[];
|
|
85
|
-
/**
|
|
86
|
-
* 判断两个过滤条件是否完全一致
|
|
87
|
-
* @param entity
|
|
88
|
-
* @param schema
|
|
89
|
-
* @param filter1
|
|
90
|
-
* @param filter2
|
|
91
|
-
*/
|
|
92
|
-
export declare function same<ED extends EntityDict & BaseEntityDict, T extends keyof ED>(entity: T, schema: StorageSchema<ED>, filter1: ED[T]['Selection']['filter'], filter2: ED[T]['Selection']['filter']): boolean;
|
|
93
|
-
/**
|
|
94
|
-
* 寻找在树形结构中满足条件的数据行的上层数据
|
|
95
|
-
* 例如在area表中,如果“杭州市”满足这一条件,则希望查到更高层的“浙江省”和“中国”,即可构造出满足条件的filter
|
|
96
|
-
* @param entity
|
|
97
|
-
* @param parentKey parentId属性名
|
|
98
|
-
* @param filter 查询当前行的条件
|
|
99
|
-
* @param level
|
|
100
|
-
*/
|
|
101
|
-
export declare function makeTreeAncestorFilter<ED extends EntityDict & BaseEntityDict, T extends keyof ED>(entity: T, parentKey: string, filter: ED[T]['Selection']['filter'], level?: number, includeAll?: boolean, includeSelf?: boolean): ED[T]['Selection']['filter'];
|
|
102
|
-
/**
|
|
103
|
-
* 寻找在树形结构中满足条件的数据行的下层数据
|
|
104
|
-
* 例如在area表中,如果“杭州市”满足这一条件,则希望查到更低层的“西湖区”,即可构造出满足条件的filter
|
|
105
|
-
* @param entity
|
|
106
|
-
* @param parentKey parentId属性名
|
|
107
|
-
* @param filter 查询当前行的条件
|
|
108
|
-
* @param level
|
|
109
|
-
*/
|
|
110
|
-
export declare function makeTreeDescendantFilter<ED extends EntityDict & BaseEntityDict, T extends keyof ED>(entity: T, parentKey: string, filter: ED[T]['Selection']['filter'], level?: number, includeAll?: boolean, includeSelf?: boolean): ED[T]['Selection']['filter'];
|
|
111
|
-
export declare function checkDeduceFilters<ED extends EntityDict & BaseEntityDict, Cxt extends SyncContext<ED> | AsyncContext<ED>>(dfc: DeducedFilterCombination<ED>, context: Cxt): boolean | Promise<boolean>;
|
|
112
|
-
/**
|
|
113
|
-
* 检查filter是否包含contained(filter查询的数据是contained查询数据的子集)
|
|
114
|
-
* @param entity
|
|
115
|
-
* @param context
|
|
116
|
-
* @param contained
|
|
117
|
-
* @param filter
|
|
118
|
-
* @param dataCompare
|
|
119
|
-
* @returns
|
|
120
|
-
*/
|
|
121
|
-
export declare function checkFilterContains<ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends SyncContext<ED> | AsyncContext<ED>>(entity: T, context: Cxt, contained: ED[T]['Selection']['filter'], filter?: ED[T]['Selection']['filter'], dataCompare?: true): boolean | Promise<boolean>;
|
|
122
|
-
export declare function checkFilterRepel<ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends SyncContext<ED> | AsyncContext<ED>>(entity: T, context: Cxt, filter1: ED[T]['Selection']['filter'], filter2: ED[T]['Selection']['filter'], dataCompare?: true): boolean | Promise<boolean>;
|
|
123
|
-
export {};
|
|
1
|
+
import { EntityDict as BaseEntityDict, StorageSchema } from '../types';
|
|
2
|
+
import { EntityDict } from "../base-app-domain";
|
|
3
|
+
import { AsyncContext } from './AsyncRowStore';
|
|
4
|
+
import { SyncContext } from './SyncRowStore';
|
|
5
|
+
export declare function combineFilters<ED extends EntityDict & BaseEntityDict, T extends keyof ED>(entity: T, schema: StorageSchema<ED>, filters: Array<ED[T]['Selection']['filter']>, union?: true): ED[T]["Selection"]["filter"] | undefined;
|
|
6
|
+
declare type DeducedFilter<ED extends EntityDict & BaseEntityDict, T extends keyof ED> = {
|
|
7
|
+
entity: T;
|
|
8
|
+
filter: ED[T]['Selection']['filter'];
|
|
9
|
+
};
|
|
10
|
+
declare type DeducedFilterCombination<ED extends EntityDict & BaseEntityDict> = {
|
|
11
|
+
$or?: (DeducedFilterCombination<ED> | DeducedFilter<ED, keyof ED>)[];
|
|
12
|
+
$and?: (DeducedFilterCombination<ED> | DeducedFilter<ED, keyof ED>)[];
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* 在以下判断相容或相斥的过程中,相容/相斥的事实标准是:满足两个条件的查询集合是否被包容/互斥,但如果两个filter在逻辑上相容或者相斥,在事实上不一定相容或者相斥
|
|
16
|
+
* 例如:{ a: 1 } 和 { a: { $ne: 1 } } 是明显不相容的查询,但如果数据为空集,则这两个查询并不能否定其相容
|
|
17
|
+
* 我们在处理这类数据时,优先使用逻辑判定的结果(更符合查询本身的期望而非真实数据集),同时也可减少对真实数据集不必要的查询访问
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* 判断value1表达的单个属性查询与同属性上value2表达的查询是包容还是相斥
|
|
21
|
+
* 相容即value1所表达的查询结果一定被value2表达的查询结果所包含,例如:
|
|
22
|
+
* value1: {
|
|
23
|
+
* $eq: 12
|
|
24
|
+
* }
|
|
25
|
+
* value2: {
|
|
26
|
+
* $gt: 8,
|
|
27
|
+
* }
|
|
28
|
+
* 此时value1相容value2
|
|
29
|
+
*
|
|
30
|
+
* 相斥即value1所表达的查询结果与value2一定毫无联系,例如:
|
|
31
|
+
* value1: {
|
|
32
|
+
* $gt: 8,
|
|
33
|
+
* }
|
|
34
|
+
* value2: {
|
|
35
|
+
* $lt: 2,
|
|
36
|
+
* }
|
|
37
|
+
*
|
|
38
|
+
*
|
|
39
|
+
* @param value1
|
|
40
|
+
* @param value2
|
|
41
|
+
* @return true代表肯定相容/相斥,false代表肯定不相容/不相斥,undefined代表不能确定
|
|
42
|
+
* @attention: 1)这里的测试不够充分,有些算子之间的相容或相斥可能有遗漏, 2)有新的算子加入需要修改代码
|
|
43
|
+
*/
|
|
44
|
+
export declare function judgeValueRelation(value1: any, value2: any, contained: boolean): boolean | undefined;
|
|
45
|
+
/**
|
|
46
|
+
*
|
|
47
|
+
* 判断filter是否包含contained中的查询条件,即filter查询的结果一定是contained查询结果的子集
|
|
48
|
+
* filter = {
|
|
49
|
+
* a: 1
|
|
50
|
+
* b: 2,
|
|
51
|
+
* c: 3,
|
|
52
|
+
* },
|
|
53
|
+
* conditionalFilter = {
|
|
54
|
+
* a: 1
|
|
55
|
+
* }
|
|
56
|
+
* 则包含
|
|
57
|
+
* @param entity
|
|
58
|
+
* @param schema
|
|
59
|
+
* @param filter
|
|
60
|
+
* @param contained
|
|
61
|
+
* @returns
|
|
62
|
+
*/
|
|
63
|
+
export declare function contains<ED extends EntityDict & BaseEntityDict, T extends keyof ED>(entity: T, schema: StorageSchema<ED>, filter: ED[T]['Selection']['filter'], contained: ED[T]['Selection']['filter']): boolean | DeducedFilterCombination<ED>;
|
|
64
|
+
/**
|
|
65
|
+
* 判断filter1和filter2是否相斥,即filter1和filter2查询的结果一定没有交集
|
|
66
|
+
* filter1 = {
|
|
67
|
+
* a: 2
|
|
68
|
+
* },
|
|
69
|
+
* filter2 = {
|
|
70
|
+
* a: 1
|
|
71
|
+
* }
|
|
72
|
+
* 则包含
|
|
73
|
+
* @param entity
|
|
74
|
+
* @param schema
|
|
75
|
+
* @param filter
|
|
76
|
+
* @param conditionalFilter
|
|
77
|
+
*/
|
|
78
|
+
export declare function repel<ED extends EntityDict & BaseEntityDict, T extends keyof ED>(entity: T, schema: StorageSchema<ED>, filter1: ED[T]['Selection']['filter'], filter2: ED[T]['Selection']['filter']): boolean | DeducedFilterCombination<ED>;
|
|
79
|
+
/**
|
|
80
|
+
* 从filter中判断是否有确定的id对象,如果有则返回这些id,没有返回空数组
|
|
81
|
+
* @param filter
|
|
82
|
+
* @returns
|
|
83
|
+
*/
|
|
84
|
+
export declare function getRelevantIds<ED extends EntityDict & BaseEntityDict, T extends keyof ED>(filter: ED[T]['Selection']['filter']): string[];
|
|
85
|
+
/**
|
|
86
|
+
* 判断两个过滤条件是否完全一致
|
|
87
|
+
* @param entity
|
|
88
|
+
* @param schema
|
|
89
|
+
* @param filter1
|
|
90
|
+
* @param filter2
|
|
91
|
+
*/
|
|
92
|
+
export declare function same<ED extends EntityDict & BaseEntityDict, T extends keyof ED>(entity: T, schema: StorageSchema<ED>, filter1: ED[T]['Selection']['filter'], filter2: ED[T]['Selection']['filter']): boolean;
|
|
93
|
+
/**
|
|
94
|
+
* 寻找在树形结构中满足条件的数据行的上层数据
|
|
95
|
+
* 例如在area表中,如果“杭州市”满足这一条件,则希望查到更高层的“浙江省”和“中国”,即可构造出满足条件的filter
|
|
96
|
+
* @param entity
|
|
97
|
+
* @param parentKey parentId属性名
|
|
98
|
+
* @param filter 查询当前行的条件
|
|
99
|
+
* @param level
|
|
100
|
+
*/
|
|
101
|
+
export declare function makeTreeAncestorFilter<ED extends EntityDict & BaseEntityDict, T extends keyof ED>(entity: T, parentKey: string, filter: ED[T]['Selection']['filter'], level?: number, includeAll?: boolean, includeSelf?: boolean): ED[T]['Selection']['filter'];
|
|
102
|
+
/**
|
|
103
|
+
* 寻找在树形结构中满足条件的数据行的下层数据
|
|
104
|
+
* 例如在area表中,如果“杭州市”满足这一条件,则希望查到更低层的“西湖区”,即可构造出满足条件的filter
|
|
105
|
+
* @param entity
|
|
106
|
+
* @param parentKey parentId属性名
|
|
107
|
+
* @param filter 查询当前行的条件
|
|
108
|
+
* @param level
|
|
109
|
+
*/
|
|
110
|
+
export declare function makeTreeDescendantFilter<ED extends EntityDict & BaseEntityDict, T extends keyof ED>(entity: T, parentKey: string, filter: ED[T]['Selection']['filter'], level?: number, includeAll?: boolean, includeSelf?: boolean): ED[T]['Selection']['filter'];
|
|
111
|
+
export declare function checkDeduceFilters<ED extends EntityDict & BaseEntityDict, Cxt extends SyncContext<ED> | AsyncContext<ED>>(dfc: DeducedFilterCombination<ED>, context: Cxt): boolean | Promise<boolean>;
|
|
112
|
+
/**
|
|
113
|
+
* 检查filter是否包含contained(filter查询的数据是contained查询数据的子集)
|
|
114
|
+
* @param entity
|
|
115
|
+
* @param context
|
|
116
|
+
* @param contained
|
|
117
|
+
* @param filter
|
|
118
|
+
* @param dataCompare
|
|
119
|
+
* @returns
|
|
120
|
+
*/
|
|
121
|
+
export declare function checkFilterContains<ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends SyncContext<ED> | AsyncContext<ED>>(entity: T, context: Cxt, contained: ED[T]['Selection']['filter'], filter?: ED[T]['Selection']['filter'], dataCompare?: true): boolean | Promise<boolean>;
|
|
122
|
+
export declare function checkFilterRepel<ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends SyncContext<ED> | AsyncContext<ED>>(entity: T, context: Cxt, filter1: ED[T]['Selection']['filter'], filter2: ED[T]['Selection']['filter'], dataCompare?: true): boolean | Promise<boolean>;
|
|
123
|
+
export {};
|