oak-domain 3.0.1 → 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 -2035
  103. package/lib/store/RelationAuth.d.ts +103 -103
  104. package/lib/store/RelationAuth.js +1492 -1492
  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 -1761
  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 -193
  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,8 +1,8 @@
1
- import { String, Text } from '../types/DataType';
2
- import { EntityShape } from '../types/Entity';
3
- export interface Schema extends EntityShape {
4
- name?: String<16>;
5
- nickname?: String<64>;
6
- password?: Text;
7
- ref?: Schema;
8
- }
1
+ import { String, Text } from '../types/DataType';
2
+ import { EntityShape } from '../types/Entity';
3
+ export interface Schema extends EntityShape {
4
+ name?: String<16>;
5
+ nickname?: String<64>;
6
+ password?: Text;
7
+ ref?: Schema;
8
+ }
@@ -1,31 +1,31 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- ;
4
- var UserActionDef = {
5
- stm: {
6
- mergeTo: ['normal', 'merged'],
7
- },
8
- };
9
- var entityDesc = {
10
- locales: {
11
- zh_CN: {
12
- name: '用户',
13
- attr: {
14
- name: '姓名',
15
- nickname: '昵称',
16
- password: '密码',
17
- ref: '指向用户',
18
- userState: '状态',
19
- },
20
- action: {
21
- mergeTo: '合并',
22
- },
23
- v: {
24
- userState: {
25
- normal: '正常',
26
- merged: '已被合并',
27
- },
28
- }
29
- },
30
- },
31
- };
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ ;
4
+ var UserActionDef = {
5
+ stm: {
6
+ mergeTo: ['normal', 'merged'],
7
+ },
8
+ };
9
+ var entityDesc = {
10
+ locales: {
11
+ zh_CN: {
12
+ name: '用户',
13
+ attr: {
14
+ name: '姓名',
15
+ nickname: '昵称',
16
+ password: '密码',
17
+ ref: '指向用户',
18
+ userState: '状态',
19
+ },
20
+ action: {
21
+ mergeTo: '合并',
22
+ },
23
+ v: {
24
+ userState: {
25
+ normal: '正常',
26
+ merged: '已被合并',
27
+ },
28
+ }
29
+ },
30
+ },
31
+ };
@@ -1,8 +1,8 @@
1
- import { String } from '../types/DataType';
2
- import { EntityShape } from '../types/Entity';
3
- import { Schema as Relation } from './Relation';
4
- export interface Schema extends EntityShape {
5
- entity: String<32>;
6
- entityId: String<64>;
7
- relation: Relation;
8
- }
1
+ import { String } from '../types/DataType';
2
+ import { EntityShape } from '../types/Entity';
3
+ import { Schema as Relation } from './Relation';
4
+ export interface Schema extends EntityShape {
5
+ entity: String<32>;
6
+ entityId: String<64>;
7
+ relation: Relation;
8
+ }
@@ -1,18 +1,18 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- ;
4
- var entityDesc = {
5
- locales: {
6
- zh_CN: {
7
- name: '用户授权',
8
- attr: {
9
- relation: '关系',
10
- entity: '关联对象',
11
- entityId: '关联对象id',
12
- },
13
- action: {
14
- confirm: '领取',
15
- },
16
- },
17
- },
18
- };
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ ;
4
+ var entityDesc = {
5
+ locales: {
6
+ zh_CN: {
7
+ name: '用户授权',
8
+ attr: {
9
+ relation: '关系',
10
+ entity: '关联对象',
11
+ entityId: '关联对象id',
12
+ },
13
+ action: {
14
+ confirm: '领取',
15
+ },
16
+ },
17
+ },
18
+ };
@@ -1,10 +1,10 @@
1
- import { String } from '../types/DataType';
2
- import { EntityShape } from '../types/Entity';
3
- import { Schema as User } from './User';
4
- import { Schema as Relation } from './Relation';
5
- export interface Schema extends EntityShape {
6
- user: User;
7
- relation: Relation;
8
- entity: String<32>;
9
- entityId: String<64>;
10
- }
1
+ import { String } from '../types/DataType';
2
+ import { EntityShape } from '../types/Entity';
3
+ import { Schema as User } from './User';
4
+ import { Schema as Relation } from './Relation';
5
+ export interface Schema extends EntityShape {
6
+ user: User;
7
+ relation: Relation;
8
+ entity: String<32>;
9
+ entityId: String<64>;
10
+ }
@@ -1,38 +1,38 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- ;
4
- var entityDesc = {
5
- locales: {
6
- zh_CN: {
7
- name: '用户对象关系',
8
- attr: {
9
- user: '关系',
10
- relation: '目标关系',
11
- entity: '目标对象',
12
- entityId: '目标对象ID',
13
- },
14
- },
15
- },
16
- indexes: [
17
- {
18
- name: 'index_user_entity_entityId_relation',
19
- attributes: [
20
- {
21
- name: 'user',
22
- },
23
- {
24
- name: 'entity',
25
- },
26
- {
27
- name: 'entityId',
28
- },
29
- {
30
- name: 'relation',
31
- },
32
- ],
33
- config: {
34
- unique: true,
35
- },
36
- },
37
- ]
38
- };
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ ;
4
+ var entityDesc = {
5
+ locales: {
6
+ zh_CN: {
7
+ name: '用户对象关系',
8
+ attr: {
9
+ user: '关系',
10
+ relation: '目标关系',
11
+ entity: '目标对象',
12
+ entityId: '目标对象ID',
13
+ },
14
+ },
15
+ },
16
+ indexes: [
17
+ {
18
+ name: 'index_user_entity_entityId_relation',
19
+ attributes: [
20
+ {
21
+ name: 'user',
22
+ },
23
+ {
24
+ name: 'entity',
25
+ },
26
+ {
27
+ name: 'entityId',
28
+ },
29
+ {
30
+ name: 'relation',
31
+ },
32
+ ],
33
+ config: {
34
+ unique: true,
35
+ },
36
+ },
37
+ ]
38
+ };
@@ -1,58 +1,58 @@
1
- /// <reference types="node" />
2
- import { EntityDict, RowStore, OperateOption, OperationResult, SelectOption, Context, TxnOption, OpRecord, AggregationResult } from "../types";
3
- import { IncomingHttpHeaders } from "http";
4
- export declare abstract class AsyncContext<ED extends EntityDict> implements Context {
5
- rowStore: AsyncRowStore<ED, this>;
6
- private uuid?;
7
- opRecords: OpRecord<ED>[];
8
- private scene?;
9
- private headers?;
10
- private message?;
11
- events: {
12
- commit: Array<() => Promise<void>>;
13
- rollback: Array<() => Promise<void>>;
14
- };
15
- /**
16
- * 在返回结果前调用,对数据行进行一些预处理,比如将一些敏感的列隐藏
17
- */
18
- abstract refineOpRecords(): Promise<void>;
19
- constructor(store: AsyncRowStore<ED, AsyncContext<ED>>, headers?: IncomingHttpHeaders);
20
- setHeaders(headers: IncomingHttpHeaders): void;
21
- getHeader(key: string): string | string[] | undefined;
22
- getScene(): string | undefined;
23
- setScene(scene?: string): void;
24
- private resetEvents;
25
- on(event: 'commit' | 'rollback', callback: () => Promise<void>): void;
26
- /**
27
- * 一个context中不应该有并发的事务,这里将事务串行化,使用的时候千万要注意不要自己等自己
28
- * @param options
29
- */
30
- begin(options?: TxnOption): Promise<void>;
31
- commit(): Promise<void>;
32
- rollback(): Promise<void>;
33
- operate<T extends keyof ED, OP extends OperateOption>(entity: T, operation: ED[T]['Operation'], option: OP): Promise<OperationResult<ED>>;
34
- select<T extends keyof ED, OP extends SelectOption>(entity: T, selection: ED[T]['Selection'], option: OP): Promise<Partial<ED[T]["Schema"]>[]>;
35
- aggregate<T extends keyof ED, OP extends SelectOption>(entity: T, aggregation: ED[T]['Aggregation'], option: OP): Promise<AggregationResult<ED[T]["Schema"]>>;
36
- count<T extends keyof ED, OP extends SelectOption>(entity: T, selection: Pick<ED[T]['Selection'], 'filter' | 'count'>, option: OP): Promise<number>;
37
- exec(script: string, txnId?: string): Promise<void>;
38
- mergeMultipleResults(toBeMerged: OperationResult<ED>[]): OperationResult<ED>;
39
- getCurrentTxnId(): string | undefined;
40
- getSchema(): import("../types").StorageSchema<ED>;
41
- setMessage(message: string): void;
42
- getMessage(): string | undefined;
43
- abstract isRoot(): boolean;
44
- abstract getCurrentUserId(allowUnloggedIn?: boolean): string | undefined;
45
- abstract toString(): string;
46
- abstract allowUserUpdate(): boolean;
47
- abstract openRootMode(): () => void;
48
- }
49
- export interface AsyncRowStore<ED extends EntityDict, Cxt extends Context> extends RowStore<ED> {
50
- operate<T extends keyof ED, OP extends OperateOption>(entity: T, operation: ED[T]['Operation'], context: Cxt, option: OP): Promise<OperationResult<ED>>;
51
- select<T extends keyof ED, OP extends SelectOption>(entity: T, selection: ED[T]['Selection'], context: Cxt, option: OP): Promise<Partial<ED[T]['Schema']>[]>;
52
- aggregate<T extends keyof ED, OP extends SelectOption>(entity: T, aggregation: ED[T]['Aggregation'], context: Cxt, option: OP): Promise<AggregationResult<ED[T]['Schema']>>;
53
- count<T extends keyof ED, OP extends SelectOption>(entity: T, selection: Pick<ED[T]['Selection'], 'filter' | 'count'>, context: Cxt, option: OP): Promise<number>;
54
- begin(option?: TxnOption): Promise<string>;
55
- commit(txnId: string): Promise<void>;
56
- rollback(txnId: string): Promise<void>;
57
- exec(script: string, txnId?: string): Promise<void>;
58
- }
1
+ /// <reference types="node" />
2
+ import { EntityDict, RowStore, OperateOption, OperationResult, SelectOption, Context, TxnOption, OpRecord, AggregationResult } from "../types";
3
+ import { IncomingHttpHeaders } from "http";
4
+ export declare abstract class AsyncContext<ED extends EntityDict> implements Context {
5
+ rowStore: AsyncRowStore<ED, this>;
6
+ private uuid?;
7
+ opRecords: OpRecord<ED>[];
8
+ private scene?;
9
+ private headers?;
10
+ private message?;
11
+ events: {
12
+ commit: Array<() => Promise<void>>;
13
+ rollback: Array<() => Promise<void>>;
14
+ };
15
+ /**
16
+ * 在返回结果前调用,对数据行进行一些预处理,比如将一些敏感的列隐藏
17
+ */
18
+ abstract refineOpRecords(): Promise<void>;
19
+ constructor(store: AsyncRowStore<ED, AsyncContext<ED>>, headers?: IncomingHttpHeaders);
20
+ setHeaders(headers: IncomingHttpHeaders): void;
21
+ getHeader(key: string): string | string[] | undefined;
22
+ getScene(): string | undefined;
23
+ setScene(scene?: string): void;
24
+ private resetEvents;
25
+ on(event: 'commit' | 'rollback', callback: () => Promise<void>): void;
26
+ /**
27
+ * 一个context中不应该有并发的事务,这里将事务串行化,使用的时候千万要注意不要自己等自己
28
+ * @param options
29
+ */
30
+ begin(options?: TxnOption): Promise<void>;
31
+ commit(): Promise<void>;
32
+ rollback(): Promise<void>;
33
+ operate<T extends keyof ED, OP extends OperateOption>(entity: T, operation: ED[T]['Operation'], option: OP): Promise<OperationResult<ED>>;
34
+ select<T extends keyof ED, OP extends SelectOption>(entity: T, selection: ED[T]['Selection'], option: OP): Promise<Partial<ED[T]["Schema"]>[]>;
35
+ aggregate<T extends keyof ED, OP extends SelectOption>(entity: T, aggregation: ED[T]['Aggregation'], option: OP): Promise<AggregationResult<ED[T]["Schema"]>>;
36
+ count<T extends keyof ED, OP extends SelectOption>(entity: T, selection: Pick<ED[T]['Selection'], 'filter' | 'count'>, option: OP): Promise<number>;
37
+ exec(script: string, txnId?: string): Promise<void>;
38
+ mergeMultipleResults(toBeMerged: OperationResult<ED>[]): OperationResult<ED>;
39
+ getCurrentTxnId(): string | undefined;
40
+ getSchema(): import("../types").StorageSchema<ED>;
41
+ setMessage(message: string): void;
42
+ getMessage(): string | undefined;
43
+ abstract isRoot(): boolean;
44
+ abstract getCurrentUserId(allowUnloggedIn?: boolean): string | undefined;
45
+ abstract toString(): string;
46
+ abstract allowUserUpdate(): boolean;
47
+ abstract openRootMode(): () => void;
48
+ }
49
+ export interface AsyncRowStore<ED extends EntityDict, Cxt extends Context> extends RowStore<ED> {
50
+ operate<T extends keyof ED, OP extends OperateOption>(entity: T, operation: ED[T]['Operation'], context: Cxt, option: OP): Promise<OperationResult<ED>>;
51
+ select<T extends keyof ED, OP extends SelectOption>(entity: T, selection: ED[T]['Selection'], context: Cxt, option: OP): Promise<Partial<ED[T]['Schema']>[]>;
52
+ aggregate<T extends keyof ED, OP extends SelectOption>(entity: T, aggregation: ED[T]['Aggregation'], context: Cxt, option: OP): Promise<AggregationResult<ED[T]['Schema']>>;
53
+ count<T extends keyof ED, OP extends SelectOption>(entity: T, selection: Pick<ED[T]['Selection'], 'filter' | 'count'>, context: Cxt, option: OP): Promise<number>;
54
+ begin(option?: TxnOption): Promise<string>;
55
+ commit(txnId: string): Promise<void>;
56
+ rollback(txnId: string): Promise<void>;
57
+ exec(script: string, txnId?: string): Promise<void>;
58
+ }