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.
Files changed (226) hide show
  1. package/lib/actions/action.d.ts +16 -16
  2. package/lib/actions/action.js +17 -17
  3. package/lib/actions/relation.d.ts +5 -5
  4. package/lib/actions/relation.js +38 -38
  5. package/lib/base-app-domain/ActionAuth/Schema.d.ts +160 -160
  6. package/lib/base-app-domain/ActionAuth/Schema.js +2 -2
  7. package/lib/base-app-domain/ActionAuth/Storage.d.ts +3 -3
  8. package/lib/base-app-domain/ActionAuth/Storage.js +42 -42
  9. package/lib/base-app-domain/ActionDefDict.d.ts +9 -9
  10. package/lib/base-app-domain/ActionDefDict.js +11 -11
  11. package/lib/base-app-domain/EntityDict.d.ts +24 -24
  12. package/lib/base-app-domain/EntityDict.js +2 -2
  13. package/lib/base-app-domain/I18n/Schema.d.ts +129 -129
  14. package/lib/base-app-domain/I18n/Schema.js +2 -2
  15. package/lib/base-app-domain/I18n/Storage.d.ts +3 -3
  16. package/lib/base-app-domain/I18n/Storage.js +59 -59
  17. package/lib/base-app-domain/Modi/Action.d.ts +10 -10
  18. package/lib/base-app-domain/Modi/Action.js +14 -14
  19. package/lib/base-app-domain/Modi/Schema.d.ts +136 -136
  20. package/lib/base-app-domain/Modi/Schema.js +2 -2
  21. package/lib/base-app-domain/Modi/Storage.d.ts +3 -3
  22. package/lib/base-app-domain/Modi/Storage.js +63 -63
  23. package/lib/base-app-domain/ModiEntity/Schema.d.ts +311 -311
  24. package/lib/base-app-domain/ModiEntity/Schema.js +2 -2
  25. package/lib/base-app-domain/ModiEntity/Storage.d.ts +3 -3
  26. package/lib/base-app-domain/ModiEntity/Storage.js +30 -30
  27. package/lib/base-app-domain/Oper/Schema.d.ts +152 -152
  28. package/lib/base-app-domain/Oper/Schema.js +2 -2
  29. package/lib/base-app-domain/Oper/Storage.d.ts +3 -3
  30. package/lib/base-app-domain/Oper/Storage.js +38 -38
  31. package/lib/base-app-domain/OperEntity/Schema.d.ts +300 -300
  32. package/lib/base-app-domain/OperEntity/Schema.js +2 -2
  33. package/lib/base-app-domain/OperEntity/Storage.d.ts +3 -3
  34. package/lib/base-app-domain/OperEntity/Storage.js +30 -30
  35. package/lib/base-app-domain/Relation/Schema.d.ts +188 -188
  36. package/lib/base-app-domain/Relation/Schema.js +2 -2
  37. package/lib/base-app-domain/Relation/Storage.d.ts +3 -3
  38. package/lib/base-app-domain/Relation/Storage.js +54 -54
  39. package/lib/base-app-domain/Relation.d.ts +10 -10
  40. package/lib/base-app-domain/Relation.js +10 -10
  41. package/lib/base-app-domain/RelationAuth/Schema.d.ts +180 -180
  42. package/lib/base-app-domain/RelationAuth/Schema.js +2 -2
  43. package/lib/base-app-domain/RelationAuth/Storage.d.ts +3 -3
  44. package/lib/base-app-domain/RelationAuth/Storage.js +46 -46
  45. package/lib/base-app-domain/Storage.d.ts +3 -3
  46. package/lib/base-app-domain/Storage.js +27 -27
  47. package/lib/base-app-domain/User/Action.d.ts +10 -10
  48. package/lib/base-app-domain/User/Action.js +12 -12
  49. package/lib/base-app-domain/User/Schema.d.ts +197 -197
  50. package/lib/base-app-domain/User/Schema.js +2 -2
  51. package/lib/base-app-domain/User/Storage.d.ts +3 -3
  52. package/lib/base-app-domain/User/Storage.js +33 -33
  53. package/lib/base-app-domain/UserEntityGrant/Action.d.ts +5 -5
  54. package/lib/base-app-domain/UserEntityGrant/Action.js +5 -5
  55. package/lib/base-app-domain/UserEntityGrant/Schema.d.ts +157 -157
  56. package/lib/base-app-domain/UserEntityGrant/Schema.js +2 -2
  57. package/lib/base-app-domain/UserEntityGrant/Storage.d.ts +3 -3
  58. package/lib/base-app-domain/UserEntityGrant/Storage.js +29 -29
  59. package/lib/base-app-domain/UserRelation/Schema.d.ts +194 -194
  60. package/lib/base-app-domain/UserRelation/Schema.js +2 -2
  61. package/lib/base-app-domain/UserRelation/Storage.d.ts +3 -3
  62. package/lib/base-app-domain/UserRelation/Storage.js +56 -56
  63. package/lib/base-app-domain/_SubQuery.d.ts +112 -112
  64. package/lib/base-app-domain/_SubQuery.js +2 -2
  65. package/lib/base-app-domain/index.d.ts +4 -4
  66. package/lib/base-app-domain/index.js +7 -7
  67. package/lib/checkers/index.d.ts +5 -5
  68. package/lib/checkers/index.js +14 -14
  69. package/lib/compiler/env.d.ts +14 -14
  70. package/lib/compiler/env.js +50 -50
  71. package/lib/compiler/localeBuilder.d.ts +22 -22
  72. package/lib/compiler/localeBuilder.js +169 -169
  73. package/lib/compiler/schemalBuilder.d.ts +11 -11
  74. package/lib/compiler/schemalBuilder.js +3787 -3787
  75. package/lib/compiler/uiBuilder.d.ts +1 -1
  76. package/lib/compiler/uiBuilder.js +3 -3
  77. package/lib/entities/ActionAuth.d.ts +12 -12
  78. package/lib/entities/ActionAuth.js +29 -29
  79. package/lib/entities/I18n.d.ts +9 -9
  80. package/lib/entities/I18n.js +37 -37
  81. package/lib/entities/Modi.d.ts +11 -11
  82. package/lib/entities/Modi.js +49 -49
  83. package/lib/entities/ModiEntity.d.ts +8 -8
  84. package/lib/entities/ModiEntity.js +18 -18
  85. package/lib/entities/Oper.d.ts +11 -11
  86. package/lib/entities/Oper.js +21 -21
  87. package/lib/entities/OperEntity.d.ts +8 -8
  88. package/lib/entities/OperEntity.js +18 -18
  89. package/lib/entities/Relation.d.ts +8 -8
  90. package/lib/entities/Relation.js +35 -35
  91. package/lib/entities/RelationAuth.d.ts +8 -8
  92. package/lib/entities/RelationAuth.js +34 -34
  93. package/lib/entities/User.d.ts +8 -8
  94. package/lib/entities/User.js +31 -31
  95. package/lib/entities/UserEntityGrant.d.ts +8 -8
  96. package/lib/entities/UserEntityGrant.js +18 -18
  97. package/lib/entities/UserRelation.d.ts +10 -10
  98. package/lib/entities/UserRelation.js +38 -38
  99. package/lib/store/AsyncRowStore.d.ts +58 -58
  100. package/lib/store/AsyncRowStore.js +190 -190
  101. package/lib/store/CascadeStore.d.ts +103 -103
  102. package/lib/store/CascadeStore.js +2035 -2031
  103. package/lib/store/RelationAuth.d.ts +103 -96
  104. package/lib/store/RelationAuth.js +1492 -1307
  105. package/lib/store/SyncRowStore.d.ts +29 -29
  106. package/lib/store/SyncRowStore.js +49 -48
  107. package/lib/store/TriggerExecutor.d.ts +31 -31
  108. package/lib/store/TriggerExecutor.js +532 -532
  109. package/lib/store/actionAuth.d.ts +4 -4
  110. package/lib/store/actionAuth.js +40 -40
  111. package/lib/store/actionDef.d.ts +10 -10
  112. package/lib/store/actionDef.js +351 -351
  113. package/lib/store/checker.d.ts +26 -26
  114. package/lib/store/checker.js +623 -623
  115. package/lib/store/filter.d.ts +123 -123
  116. package/lib/store/filter.js +1761 -1739
  117. package/lib/store/modi.d.ts +13 -13
  118. package/lib/store/modi.js +315 -315
  119. package/lib/store/relation.d.ts +12 -12
  120. package/lib/store/relation.js +67 -67
  121. package/lib/timers/oper.d.ts +18 -18
  122. package/lib/timers/oper.js +60 -60
  123. package/lib/timers/vaccum.d.ts +20 -20
  124. package/lib/timers/vaccum.js +176 -176
  125. package/lib/triggers/index.d.ts +5 -5
  126. package/lib/triggers/index.js +8 -8
  127. package/lib/types/Action.d.ts +20 -20
  128. package/lib/types/Action.js +2 -2
  129. package/lib/types/AppLoader.d.ts +11 -11
  130. package/lib/types/AppLoader.js +10 -10
  131. package/lib/types/Aspect.d.ts +13 -13
  132. package/lib/types/Aspect.js +4 -4
  133. package/lib/types/Auth.d.ts +74 -74
  134. package/lib/types/Auth.js +2 -2
  135. package/lib/types/Connector.d.ts +33 -33
  136. package/lib/types/Connector.js +9 -9
  137. package/lib/types/Context.d.ts +7 -7
  138. package/lib/types/Context.js +3 -3
  139. package/lib/types/DataType.d.ts +24 -24
  140. package/lib/types/DataType.js +6 -6
  141. package/lib/types/Demand.d.ts +88 -88
  142. package/lib/types/Demand.js +10 -10
  143. package/lib/types/Endpoint.d.ts +11 -11
  144. package/lib/types/Endpoint.js +3 -3
  145. package/lib/types/Entity.d.ts +193 -192
  146. package/lib/types/Entity.js +14 -14
  147. package/lib/types/EntityDesc.d.ts +8 -8
  148. package/lib/types/EntityDesc.js +2 -2
  149. package/lib/types/Environment.d.ts +57 -57
  150. package/lib/types/Environment.js +2 -2
  151. package/lib/types/Exception.d.ts +115 -115
  152. package/lib/types/Exception.js +389 -389
  153. package/lib/types/Expression.d.ts +163 -163
  154. package/lib/types/Expression.js +427 -427
  155. package/lib/types/Geo.d.ts +18 -18
  156. package/lib/types/Geo.js +2 -2
  157. package/lib/types/Locale.d.ts +25 -25
  158. package/lib/types/Locale.js +2 -2
  159. package/lib/types/Logger.d.ts +6 -6
  160. package/lib/types/Logger.js +3 -3
  161. package/lib/types/Polyfill.d.ts +24 -24
  162. package/lib/types/Polyfill.js +2 -2
  163. package/lib/types/Port.d.ts +18 -18
  164. package/lib/types/Port.js +2 -2
  165. package/lib/types/RowStore.d.ts +18 -18
  166. package/lib/types/RowStore.js +34 -34
  167. package/lib/types/Storage.d.ts +57 -57
  168. package/lib/types/Storage.js +2 -2
  169. package/lib/types/Style.d.ts +11 -11
  170. package/lib/types/Style.js +2 -2
  171. package/lib/types/Timer.d.ts +14 -14
  172. package/lib/types/Timer.js +2 -2
  173. package/lib/types/Trigger.d.ts +108 -108
  174. package/lib/types/Trigger.js +54 -54
  175. package/lib/types/Txn.d.ts +2 -2
  176. package/lib/types/Txn.js +3 -3
  177. package/lib/types/Watcher.d.ts +19 -19
  178. package/lib/types/Watcher.js +4 -4
  179. package/lib/types/index.d.ts +24 -24
  180. package/lib/types/index.js +27 -27
  181. package/lib/types/schema/DataTypes.d.ts +34 -34
  182. package/lib/types/schema/DataTypes.js +3 -3
  183. package/lib/utils/SimpleConnector.d.ts +48 -48
  184. package/lib/utils/SimpleConnector.js +180 -180
  185. package/lib/utils/assert.d.ts +5 -5
  186. package/lib/utils/assert.js +9 -9
  187. package/lib/utils/concurrent.d.ts +15 -15
  188. package/lib/utils/concurrent.js +89 -89
  189. package/lib/utils/date.d.ts +1 -1
  190. package/lib/utils/date.js +18 -18
  191. package/lib/utils/geo.d.ts +4 -4
  192. package/lib/utils/geo.js +24 -24
  193. package/lib/utils/lodash.d.ts +20 -20
  194. package/lib/utils/lodash.js +55 -55
  195. package/lib/utils/mask.d.ts +5 -5
  196. package/lib/utils/mask.js +35 -35
  197. package/lib/utils/money.d.ts +6 -6
  198. package/lib/utils/money.js +40 -40
  199. package/lib/utils/random/random.d.ts +1 -1
  200. package/lib/utils/random/random.js +24 -24
  201. package/lib/utils/random/random.mp.d.ts +1 -1
  202. package/lib/utils/random/random.mp.js +25 -25
  203. package/lib/utils/random/random.web.d.ts +1 -1
  204. package/lib/utils/random/random.web.js +17 -17
  205. package/lib/utils/string.d.ts +28 -28
  206. package/lib/utils/string.js +82 -82
  207. package/lib/utils/url.d.ts +1 -1
  208. package/lib/utils/url.js +12 -12
  209. package/lib/utils/uuid.d.ts +17 -17
  210. package/lib/utils/uuid.js +257 -257
  211. package/lib/utils/validator.d.ts +25 -25
  212. package/lib/utils/validator.js +128 -128
  213. package/lib/utils/version.d.ts +7 -7
  214. package/lib/utils/version.js +21 -21
  215. package/package.json +49 -49
  216. package/src/entities/ActionAuth.ts +41 -41
  217. package/src/entities/I18n.ts +46 -46
  218. package/src/entities/Modi.ts +69 -69
  219. package/src/entities/ModiEntity.ts +26 -26
  220. package/src/entities/Oper.ts +32 -32
  221. package/src/entities/OperEntity.ts +27 -27
  222. package/src/entities/Relation.ts +43 -43
  223. package/src/entities/RelationAuth.ts +43 -43
  224. package/src/entities/User.ts +48 -48
  225. package/src/entities/UserEntityGrant.ts +27 -27
  226. package/src/entities/UserRelation.ts +50 -50
@@ -1,163 +1,163 @@
1
- import { RefAttr } from "./Demand";
2
- import { Geo } from "./Geo";
3
- export declare type RefOrExpression<A> = RefAttr<A> | Expression<A>;
4
- declare type MathType<A> = RefOrExpression<A> | number;
5
- declare type StringType<A> = RefOrExpression<A> | string;
6
- interface Add<A> {
7
- $add: (MathType<A>)[];
8
- }
9
- interface Subtract<A> {
10
- $subtract: [MathType<A>, MathType<A>];
11
- }
12
- interface Multiply<A> {
13
- $multiply: (MathType<A>)[];
14
- }
15
- interface Divide<A> {
16
- $divide: [MathType<A>, MathType<A>];
17
- }
18
- interface Abs<A> {
19
- $abs: MathType<A>;
20
- }
21
- interface Round<A> {
22
- $round: [MathType<A>, MathType<A>];
23
- }
24
- interface Floor<A> {
25
- $floor: MathType<A>;
26
- }
27
- interface Ceil<A> {
28
- $ceil: MathType<A>;
29
- }
30
- interface Pow<A> {
31
- $pow: [MathType<A>, MathType<A>];
32
- }
33
- declare type MathExpression<A> = Add<A> | Subtract<A> | Multiply<A> | Divide<A> | Abs<A> | Round<A> | Floor<A> | Ceil<A> | Pow<A>;
34
- declare type CmpType<A> = RefOrExpression<A> | string | number;
35
- interface Gt<A> {
36
- $gt: [CmpType<A>, CmpType<A>];
37
- }
38
- interface Lt<A> {
39
- $lt: [CmpType<A>, CmpType<A>];
40
- }
41
- interface Eq<A> {
42
- $eq: [CmpType<A>, CmpType<A>];
43
- }
44
- interface Gte<A> {
45
- $gte: [CmpType<A>, CmpType<A>];
46
- }
47
- interface Lte<A> {
48
- $lte: [CmpType<A>, CmpType<A>];
49
- }
50
- interface Ne<A> {
51
- $ne: [CmpType<A>, CmpType<A>];
52
- }
53
- interface StartsWith<A> {
54
- $startsWith: [RefOrExpression<A> | string, RefOrExpression<A> | string];
55
- }
56
- interface EndsWith<A> {
57
- $endsWith: [RefOrExpression<A> | string, RefOrExpression<A> | string];
58
- }
59
- interface Includes<A> {
60
- $includes: [RefOrExpression<A> | string, RefOrExpression<A> | string];
61
- }
62
- declare type CompareExpression<A> = Lt<A> | Gt<A> | Lte<A> | Gte<A> | Eq<A> | Ne<A> | StartsWith<A> | EndsWith<A> | Includes<A>;
63
- interface BoolTrue<A> {
64
- $true: Expression<A>;
65
- }
66
- interface BoolFalse<A> {
67
- $false: Expression<A>;
68
- }
69
- declare type BoolExpression<A> = BoolTrue<A> | BoolFalse<A>;
70
- interface LogicAnd<A> {
71
- $and: Expression<A>[];
72
- }
73
- interface LogicOr<A> {
74
- $or: Expression<A>[];
75
- }
76
- interface LogicNot<A> {
77
- $not: Expression<A>;
78
- }
79
- declare type LogicExpression<A> = LogicAnd<A> | LogicOr<A> | LogicNot<A>;
80
- interface DateYear<A> {
81
- $year: RefOrExpression<A> | Date | number;
82
- }
83
- interface DateMonth<A> {
84
- $month: RefOrExpression<A> | Date | number;
85
- }
86
- interface DateWeekday<A> {
87
- $weekday: RefOrExpression<A> | Date | number;
88
- }
89
- interface DateWeekOfYear<A> {
90
- $weekOfYear: RefOrExpression<A> | Date | number;
91
- }
92
- interface DateDay<A> {
93
- $day: RefOrExpression<A> | Date | number;
94
- }
95
- interface DateDayOfMonth<A> {
96
- $dayOfMonth: RefOrExpression<A> | Date | number;
97
- }
98
- interface DateDayOfWeek<A> {
99
- $dayOfWeek: RefOrExpression<A> | Date | number;
100
- }
101
- interface DateDayOfYear<A> {
102
- $dayOfYear: RefOrExpression<A> | Date | number;
103
- }
104
- interface DateDiff<A> {
105
- $dateDiff: [RefOrExpression<A> | Date | number, RefOrExpression<A> | Date | number, 'y' | 'M' | 'd' | 'h' | 'm' | 's'];
106
- }
107
- interface DateCeiling<A> {
108
- $dateCeil: [RefOrExpression<A> | Date | number, 'y' | 'M' | 'd' | 'h' | 'm' | 's'];
109
- }
110
- interface DateFloor<A> {
111
- $dateFloor: [RefOrExpression<A> | Date | number, 'y' | 'M' | 'd' | 'h' | 'm' | 's'];
112
- }
113
- declare type DateExpression<A> = DateYear<A> | DateMonth<A> | DateWeekday<A> | DateWeekOfYear<A> | DateDay<A> | DateDayOfYear<A> | DateDayOfMonth<A> | DateDayOfWeek<A> | DateDiff<A> | DateCeiling<A> | DateFloor<A>;
114
- interface StringConcat<A> {
115
- $concat: StringType<A>[];
116
- }
117
- declare type StringExpression<A> = StringConcat<A>;
118
- interface GeoContains<A> {
119
- $contains: [RefOrExpression<A> | Geo, RefOrExpression<A> | Geo];
120
- }
121
- interface GeoDistance<A> {
122
- $distance: [RefOrExpression<A> | Geo, RefOrExpression<A> | Geo];
123
- }
124
- declare type GeoExpression<A> = GeoContains<A> | GeoDistance<A>;
125
- interface AggrCountExpression<A> {
126
- $$count: RefOrExpression<A>;
127
- }
128
- interface AggrSumExpression<A> {
129
- $$sum: RefOrExpression<A>;
130
- }
131
- interface AggrMaxExpression<A> {
132
- $$max: RefOrExpression<A>;
133
- }
134
- interface AggrMinExpression<A> {
135
- $$min: RefOrExpression<A>;
136
- }
137
- interface AggrAvgExpression<A> {
138
- $$avg: RefOrExpression<A>;
139
- }
140
- export declare type AggrExpression<A> = AggrAvgExpression<A> | AggrCountExpression<A> | AggrSumExpression<A> | AggrMaxExpression<A> | AggrMinExpression<A>;
141
- export declare type Expression<A> = GeoExpression<A> | DateExpression<A> | LogicExpression<A> | BoolExpression<A> | CompareExpression<A> | MathExpression<A> | StringExpression<A> | AggrExpression<A>;
142
- export declare type ExpressionConstant = Geo | number | Date | string | boolean;
143
- export declare function isGeoExpression<A>(expression: any): expression is GeoExpression<A>;
144
- export declare function isDateExpression<A>(expression: any): expression is DateExpression<A>;
145
- export declare function isLogicExpression<A>(expression: any): expression is LogicExpression<A>;
146
- export declare function isBoolExpression<A>(expression: any): expression is BoolExpression<A>;
147
- export declare function isCompareExpression<A>(expression: any): expression is CompareExpression<A>;
148
- export declare function isMathExpression<A>(expression: any): expression is MathExpression<A>;
149
- export declare function isStringExpression<A>(expression: any): expression is StringExpression<A>;
150
- export declare function isAggrExpression<A>(expression: any): expression is AggrExpression<A>;
151
- export declare function isExpression<A>(expression: any): expression is Expression<A>;
152
- export declare function opMultipleParams(op: string): boolean;
153
- export declare function execOp(op: string, params: any, obscure?: boolean): ExpressionConstant;
154
- /**
155
- * 检查一个表达式,并分析其涉及到的属性
156
- * @param expression
157
- * @returns {
158
- * '#current': [当前结点涉及的属性]
159
- * 'node-1': [node-1结点上涉及的属性]
160
- * }
161
- */
162
- export declare function getAttrRefInExpression(expression: Expression<any>): Record<string, string[]>;
163
- export {};
1
+ import { RefAttr } from "./Demand";
2
+ import { Geo } from "./Geo";
3
+ export declare type RefOrExpression<A> = RefAttr<A> | Expression<A>;
4
+ declare type MathType<A> = RefOrExpression<A> | number;
5
+ declare type StringType<A> = RefOrExpression<A> | string;
6
+ interface Add<A> {
7
+ $add: (MathType<A>)[];
8
+ }
9
+ interface Subtract<A> {
10
+ $subtract: [MathType<A>, MathType<A>];
11
+ }
12
+ interface Multiply<A> {
13
+ $multiply: (MathType<A>)[];
14
+ }
15
+ interface Divide<A> {
16
+ $divide: [MathType<A>, MathType<A>];
17
+ }
18
+ interface Abs<A> {
19
+ $abs: MathType<A>;
20
+ }
21
+ interface Round<A> {
22
+ $round: [MathType<A>, MathType<A>];
23
+ }
24
+ interface Floor<A> {
25
+ $floor: MathType<A>;
26
+ }
27
+ interface Ceil<A> {
28
+ $ceil: MathType<A>;
29
+ }
30
+ interface Pow<A> {
31
+ $pow: [MathType<A>, MathType<A>];
32
+ }
33
+ declare type MathExpression<A> = Add<A> | Subtract<A> | Multiply<A> | Divide<A> | Abs<A> | Round<A> | Floor<A> | Ceil<A> | Pow<A>;
34
+ declare type CmpType<A> = RefOrExpression<A> | string | number;
35
+ interface Gt<A> {
36
+ $gt: [CmpType<A>, CmpType<A>];
37
+ }
38
+ interface Lt<A> {
39
+ $lt: [CmpType<A>, CmpType<A>];
40
+ }
41
+ interface Eq<A> {
42
+ $eq: [CmpType<A>, CmpType<A>];
43
+ }
44
+ interface Gte<A> {
45
+ $gte: [CmpType<A>, CmpType<A>];
46
+ }
47
+ interface Lte<A> {
48
+ $lte: [CmpType<A>, CmpType<A>];
49
+ }
50
+ interface Ne<A> {
51
+ $ne: [CmpType<A>, CmpType<A>];
52
+ }
53
+ interface StartsWith<A> {
54
+ $startsWith: [RefOrExpression<A> | string, RefOrExpression<A> | string];
55
+ }
56
+ interface EndsWith<A> {
57
+ $endsWith: [RefOrExpression<A> | string, RefOrExpression<A> | string];
58
+ }
59
+ interface Includes<A> {
60
+ $includes: [RefOrExpression<A> | string, RefOrExpression<A> | string];
61
+ }
62
+ declare type CompareExpression<A> = Lt<A> | Gt<A> | Lte<A> | Gte<A> | Eq<A> | Ne<A> | StartsWith<A> | EndsWith<A> | Includes<A>;
63
+ interface BoolTrue<A> {
64
+ $true: Expression<A>;
65
+ }
66
+ interface BoolFalse<A> {
67
+ $false: Expression<A>;
68
+ }
69
+ declare type BoolExpression<A> = BoolTrue<A> | BoolFalse<A>;
70
+ interface LogicAnd<A> {
71
+ $and: Expression<A>[];
72
+ }
73
+ interface LogicOr<A> {
74
+ $or: Expression<A>[];
75
+ }
76
+ interface LogicNot<A> {
77
+ $not: Expression<A>;
78
+ }
79
+ declare type LogicExpression<A> = LogicAnd<A> | LogicOr<A> | LogicNot<A>;
80
+ interface DateYear<A> {
81
+ $year: RefOrExpression<A> | Date | number;
82
+ }
83
+ interface DateMonth<A> {
84
+ $month: RefOrExpression<A> | Date | number;
85
+ }
86
+ interface DateWeekday<A> {
87
+ $weekday: RefOrExpression<A> | Date | number;
88
+ }
89
+ interface DateWeekOfYear<A> {
90
+ $weekOfYear: RefOrExpression<A> | Date | number;
91
+ }
92
+ interface DateDay<A> {
93
+ $day: RefOrExpression<A> | Date | number;
94
+ }
95
+ interface DateDayOfMonth<A> {
96
+ $dayOfMonth: RefOrExpression<A> | Date | number;
97
+ }
98
+ interface DateDayOfWeek<A> {
99
+ $dayOfWeek: RefOrExpression<A> | Date | number;
100
+ }
101
+ interface DateDayOfYear<A> {
102
+ $dayOfYear: RefOrExpression<A> | Date | number;
103
+ }
104
+ interface DateDiff<A> {
105
+ $dateDiff: [RefOrExpression<A> | Date | number, RefOrExpression<A> | Date | number, 'y' | 'M' | 'd' | 'h' | 'm' | 's'];
106
+ }
107
+ interface DateCeiling<A> {
108
+ $dateCeil: [RefOrExpression<A> | Date | number, 'y' | 'M' | 'd' | 'h' | 'm' | 's'];
109
+ }
110
+ interface DateFloor<A> {
111
+ $dateFloor: [RefOrExpression<A> | Date | number, 'y' | 'M' | 'd' | 'h' | 'm' | 's'];
112
+ }
113
+ declare type DateExpression<A> = DateYear<A> | DateMonth<A> | DateWeekday<A> | DateWeekOfYear<A> | DateDay<A> | DateDayOfYear<A> | DateDayOfMonth<A> | DateDayOfWeek<A> | DateDiff<A> | DateCeiling<A> | DateFloor<A>;
114
+ interface StringConcat<A> {
115
+ $concat: StringType<A>[];
116
+ }
117
+ declare type StringExpression<A> = StringConcat<A>;
118
+ interface GeoContains<A> {
119
+ $contains: [RefOrExpression<A> | Geo, RefOrExpression<A> | Geo];
120
+ }
121
+ interface GeoDistance<A> {
122
+ $distance: [RefOrExpression<A> | Geo, RefOrExpression<A> | Geo];
123
+ }
124
+ declare type GeoExpression<A> = GeoContains<A> | GeoDistance<A>;
125
+ interface AggrCountExpression<A> {
126
+ $$count: RefOrExpression<A>;
127
+ }
128
+ interface AggrSumExpression<A> {
129
+ $$sum: RefOrExpression<A>;
130
+ }
131
+ interface AggrMaxExpression<A> {
132
+ $$max: RefOrExpression<A>;
133
+ }
134
+ interface AggrMinExpression<A> {
135
+ $$min: RefOrExpression<A>;
136
+ }
137
+ interface AggrAvgExpression<A> {
138
+ $$avg: RefOrExpression<A>;
139
+ }
140
+ export declare type AggrExpression<A> = AggrAvgExpression<A> | AggrCountExpression<A> | AggrSumExpression<A> | AggrMaxExpression<A> | AggrMinExpression<A>;
141
+ export declare type Expression<A> = GeoExpression<A> | DateExpression<A> | LogicExpression<A> | BoolExpression<A> | CompareExpression<A> | MathExpression<A> | StringExpression<A> | AggrExpression<A>;
142
+ export declare type ExpressionConstant = Geo | number | Date | string | boolean;
143
+ export declare function isGeoExpression<A>(expression: any): expression is GeoExpression<A>;
144
+ export declare function isDateExpression<A>(expression: any): expression is DateExpression<A>;
145
+ export declare function isLogicExpression<A>(expression: any): expression is LogicExpression<A>;
146
+ export declare function isBoolExpression<A>(expression: any): expression is BoolExpression<A>;
147
+ export declare function isCompareExpression<A>(expression: any): expression is CompareExpression<A>;
148
+ export declare function isMathExpression<A>(expression: any): expression is MathExpression<A>;
149
+ export declare function isStringExpression<A>(expression: any): expression is StringExpression<A>;
150
+ export declare function isAggrExpression<A>(expression: any): expression is AggrExpression<A>;
151
+ export declare function isExpression<A>(expression: any): expression is Expression<A>;
152
+ export declare function opMultipleParams(op: string): boolean;
153
+ export declare function execOp(op: string, params: any, obscure?: boolean): ExpressionConstant;
154
+ /**
155
+ * 检查一个表达式,并分析其涉及到的属性
156
+ * @param expression
157
+ * @returns {
158
+ * '#current': [当前结点涉及的属性]
159
+ * 'node-1': [node-1结点上涉及的属性]
160
+ * }
161
+ */
162
+ export declare function getAttrRefInExpression(expression: Expression<any>): Record<string, string[]>;
163
+ export {};