oak-domain 4.0.1 → 4.0.3

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 (207) 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 +25 -25
  5. package/lib/base-app-domain/ActionAuth/Schema.d.ts +186 -186
  6. package/lib/base-app-domain/ActionAuth/Storage.js +39 -39
  7. package/lib/base-app-domain/ActionDefDict.d.ts +8 -8
  8. package/lib/base-app-domain/ActionDefDict.js +9 -9
  9. package/lib/base-app-domain/EntityDict.d.ts +28 -28
  10. package/lib/base-app-domain/I18n/Schema.d.ts +129 -129
  11. package/lib/base-app-domain/I18n/Schema.js +2 -2
  12. package/lib/base-app-domain/I18n/Storage.d.ts +3 -3
  13. package/lib/base-app-domain/I18n/Storage.js +59 -59
  14. package/lib/base-app-domain/Modi/Action.d.ts +10 -10
  15. package/lib/base-app-domain/Modi/Action.js +14 -14
  16. package/lib/base-app-domain/Modi/Schema.d.ts +136 -136
  17. package/lib/base-app-domain/Modi/Storage.js +63 -63
  18. package/lib/base-app-domain/ModiEntity/Schema.d.ts +384 -384
  19. package/lib/base-app-domain/ModiEntity/Storage.js +30 -30
  20. package/lib/base-app-domain/Oper/Schema.d.ts +153 -153
  21. package/lib/base-app-domain/Oper/Storage.js +38 -38
  22. package/lib/base-app-domain/OperEntity/Schema.d.ts +373 -373
  23. package/lib/base-app-domain/OperEntity/Storage.js +30 -30
  24. package/lib/base-app-domain/Path/Schema.d.ts +149 -149
  25. package/lib/base-app-domain/Path/Schema.js +2 -2
  26. package/lib/base-app-domain/Path/Storage.d.ts +3 -3
  27. package/lib/base-app-domain/Path/Storage.js +54 -54
  28. package/lib/base-app-domain/Relation/Schema.d.ts +188 -188
  29. package/lib/base-app-domain/Relation/Storage.js +54 -54
  30. package/lib/base-app-domain/Relation.d.ts +2 -2
  31. package/lib/base-app-domain/Relation.js +4 -4
  32. package/lib/base-app-domain/RelationAuth/Schema.d.ts +214 -214
  33. package/lib/base-app-domain/RelationAuth/Storage.js +44 -44
  34. package/lib/base-app-domain/Storage.js +31 -31
  35. package/lib/base-app-domain/User/Action.d.ts +10 -10
  36. package/lib/base-app-domain/User/Action.js +12 -12
  37. package/lib/base-app-domain/User/Schema.d.ts +210 -210
  38. package/lib/base-app-domain/User/Storage.js +33 -33
  39. package/lib/base-app-domain/UserEntityClaim/Schema.d.ts +264 -264
  40. package/lib/base-app-domain/UserEntityClaim/Schema.js +2 -2
  41. package/lib/base-app-domain/UserEntityClaim/Storage.d.ts +3 -3
  42. package/lib/base-app-domain/UserEntityClaim/Storage.js +37 -37
  43. package/lib/base-app-domain/UserEntityGrant/Schema.d.ts +131 -131
  44. package/lib/base-app-domain/UserEntityGrant/Storage.js +25 -25
  45. package/lib/base-app-domain/UserRelation/Schema.d.ts +208 -208
  46. package/lib/base-app-domain/UserRelation/Storage.js +56 -56
  47. package/lib/base-app-domain/_SubQuery.d.ts +142 -142
  48. package/lib/base-app-domain/index.d.ts +4 -4
  49. package/lib/base-app-domain/index.js +7 -7
  50. package/lib/checkers/index.d.ts +5 -5
  51. package/lib/checkers/index.js +13 -13
  52. package/lib/compiler/entities.d.ts +2 -2
  53. package/lib/compiler/entities.js +7 -7
  54. package/lib/compiler/env.d.ts +13 -13
  55. package/lib/compiler/env.js +45 -45
  56. package/lib/compiler/localeBuilder.d.ts +1 -1
  57. package/lib/compiler/localeBuilder.js +49 -18
  58. package/lib/compiler/routerBuilder.d.ts +1 -0
  59. package/lib/compiler/routerBuilder.js +263 -0
  60. package/lib/compiler/schemalBuilder.d.ts +27 -27
  61. package/lib/compiler/schemalBuilder.js +3565 -3565
  62. package/lib/entities/ActionAuth.d.ts +10 -10
  63. package/lib/entities/ActionAuth.js +31 -31
  64. package/lib/entities/I18n.d.ts +9 -9
  65. package/lib/entities/I18n.js +36 -36
  66. package/lib/entities/Modi.js +49 -49
  67. package/lib/entities/ModiEntity.js +18 -18
  68. package/lib/entities/Oper.js +21 -21
  69. package/lib/entities/OperEntity.js +18 -18
  70. package/lib/entities/Path.d.ts +8 -8
  71. package/lib/entities/Path.js +35 -35
  72. package/lib/entities/Relation.d.ts +8 -8
  73. package/lib/entities/Relation.js +35 -35
  74. package/lib/entities/RelationAuth.d.ts +8 -8
  75. package/lib/entities/RelationAuth.js +34 -34
  76. package/lib/entities/User.js +31 -31
  77. package/lib/entities/UserEntityClaim.d.ts +13 -13
  78. package/lib/entities/UserEntityClaim.js +17 -17
  79. package/lib/entities/UserEntityGrant.d.ts +9 -9
  80. package/lib/entities/UserEntityGrant.js +15 -15
  81. package/lib/entities/UserRelation.d.ts +10 -10
  82. package/lib/entities/UserRelation.js +38 -38
  83. package/lib/index.d.ts +23 -23
  84. package/lib/index.js +37 -37
  85. package/lib/store/AsyncRowStore.d.ts +65 -65
  86. package/lib/store/AsyncRowStore.js +9 -5
  87. package/lib/store/CascadeStore.d.ts +109 -106
  88. package/lib/store/CascadeStore.js +1748 -1740
  89. package/lib/store/RelationAuth.d.ts +7 -0
  90. package/lib/store/RelationAuth.js +11 -4
  91. package/lib/store/SyncRowStore.d.ts +29 -29
  92. package/lib/store/SyncRowStore.js +50 -50
  93. package/lib/store/TriggerExecutor.d.ts +41 -41
  94. package/lib/store/TriggerExecutor.js +468 -468
  95. package/lib/store/actionAuth.d.ts +4 -4
  96. package/lib/store/actionAuth.js +25 -25
  97. package/lib/store/actionDef.d.ts +10 -10
  98. package/lib/store/actionDef.js +278 -278
  99. package/lib/store/checker.d.ts +26 -26
  100. package/lib/store/checker.js +2 -2
  101. package/lib/store/filter.d.ts +85 -85
  102. package/lib/store/filter.js +1652 -1652
  103. package/lib/store/modi.d.ts +13 -13
  104. package/lib/store/modi.js +254 -254
  105. package/lib/store/relation.d.ts +12 -12
  106. package/lib/store/relation.js +67 -67
  107. package/lib/timers/oper.d.ts +18 -18
  108. package/lib/timers/oper.js +57 -57
  109. package/lib/timers/vaccum.d.ts +20 -20
  110. package/lib/timers/vaccum.js +111 -111
  111. package/lib/triggers/index.d.ts +5 -5
  112. package/lib/triggers/index.js +8 -8
  113. package/lib/types/Action.d.ts +20 -20
  114. package/lib/types/AppLoader.d.ts +17 -17
  115. package/lib/types/AppLoader.js +10 -10
  116. package/lib/types/Auth.d.ts +70 -70
  117. package/lib/types/Cluster.d.ts +5 -5
  118. package/lib/types/Cluster.js +2 -2
  119. package/lib/types/Connector.d.ts +38 -38
  120. package/lib/types/Connector.js +2 -2
  121. package/lib/types/DataType.d.ts +25 -25
  122. package/lib/types/DataType.js +6 -6
  123. package/lib/types/Demand.d.ts +89 -89
  124. package/lib/types/Demand.js +10 -10
  125. package/lib/types/Endpoint.d.ts +11 -11
  126. package/lib/types/Entity.d.ts +209 -209
  127. package/lib/types/Entity.js +15 -15
  128. package/lib/types/EntityDesc.d.ts +9 -9
  129. package/lib/types/EntityDesc.js +2 -2
  130. package/lib/types/Environment.d.ts +90 -90
  131. package/lib/types/Environment.js +2 -2
  132. package/lib/types/Exception.d.ts +10 -2
  133. package/lib/types/Exception.js +32 -2
  134. package/lib/types/Expression.d.ts +163 -163
  135. package/lib/types/Expression.js +397 -397
  136. package/lib/types/Geo.d.ts +18 -18
  137. package/lib/types/Locale.d.ts +25 -25
  138. package/lib/types/Logger.d.ts +6 -6
  139. package/lib/types/Polyfill.d.ts +24 -24
  140. package/lib/types/Port.d.ts +18 -18
  141. package/lib/types/RowStore.d.ts +19 -19
  142. package/lib/types/RowStore.js +33 -33
  143. package/lib/types/Storage.d.ts +58 -58
  144. package/lib/types/Style.d.ts +11 -11
  145. package/lib/types/Timer.d.ts +20 -20
  146. package/lib/types/Trigger.d.ts +118 -118
  147. package/lib/types/Trigger.js +35 -35
  148. package/lib/types/Watcher.d.ts +19 -19
  149. package/lib/types/index.d.ts +26 -26
  150. package/lib/types/index.js +29 -29
  151. package/lib/types/schema/DataTypes.d.ts +34 -34
  152. package/lib/utils/SimpleConnector.d.ts +64 -64
  153. package/lib/utils/SimpleConnector.js +206 -206
  154. package/lib/utils/assert.d.ts +6 -5
  155. package/lib/utils/assert.js +9 -9
  156. package/lib/utils/concurrent.d.ts +15 -15
  157. package/lib/utils/concurrent.js +63 -63
  158. package/lib/utils/date.js +18 -18
  159. package/lib/utils/domain.d.ts +1 -1
  160. package/lib/utils/domain.js +11 -11
  161. package/lib/utils/geo.js +24 -24
  162. package/lib/utils/lodash.d.ts +24 -24
  163. package/lib/utils/lodash.js +46 -46
  164. package/lib/utils/mask.js +34 -34
  165. package/lib/utils/money.d.ts +6 -6
  166. package/lib/utils/money.js +51 -51
  167. package/lib/utils/projection.d.ts +4 -4
  168. package/lib/utils/projection.js +15 -15
  169. package/lib/utils/random/random.js +19 -19
  170. package/lib/utils/random/random.mp.js +14 -14
  171. package/lib/utils/random/random.native.d.ts +1 -1
  172. package/lib/utils/random/random.native.js +14 -14
  173. package/lib/utils/random/random.web.js +11 -11
  174. package/lib/utils/string.d.ts +28 -28
  175. package/lib/utils/string.js +69 -69
  176. package/lib/utils/url/index.d.ts +7 -7
  177. package/lib/utils/url/index.js +8 -8
  178. package/lib/utils/url/index.mp.d.ts +3 -3
  179. package/lib/utils/url/index.mp.js +8 -8
  180. package/lib/utils/url/index.native.d.ts +12 -12
  181. package/lib/utils/url/index.native.js +7 -7
  182. package/lib/utils/url/index.web.d.ts +12 -12
  183. package/lib/utils/url/index.web.js +7 -7
  184. package/lib/utils/url/whatwg-url/index.d.ts +3 -3
  185. package/lib/utils/url/whatwg-url/index.js +16 -16
  186. package/lib/utils/url/whatwg-url/lib/URL-impl.d.ts +20 -20
  187. package/lib/utils/url/whatwg-url/lib/URL-impl.js +175 -175
  188. package/lib/utils/url/whatwg-url/lib/URL.d.ts +1 -1
  189. package/lib/utils/url/whatwg-url/lib/URL.js +298 -298
  190. package/lib/utils/url/whatwg-url/lib/URLSearchParams-impl.d.ts +19 -19
  191. package/lib/utils/url/whatwg-url/lib/URLSearchParams-impl.js +126 -126
  192. package/lib/utils/url/whatwg-url/lib/URLSearchParams.d.ts +1 -1
  193. package/lib/utils/url/whatwg-url/lib/URLSearchParams.js +426 -426
  194. package/lib/utils/url/whatwg-url/lib/infra.d.ts +12 -12
  195. package/lib/utils/url/whatwg-url/lib/infra.js +25 -25
  196. package/lib/utils/url/whatwg-url/lib/url-state-machine.d.ts +24 -24
  197. package/lib/utils/url/whatwg-url/lib/url-state-machine.js +1238 -1238
  198. package/lib/utils/url/whatwg-url/lib/urlencoded.d.ts +15 -15
  199. package/lib/utils/url/whatwg-url/lib/urlencoded.js +162 -162
  200. package/lib/utils/url/whatwg-url/lib/utils.d.ts +37 -37
  201. package/lib/utils/url/whatwg-url/lib/utils.js +101 -101
  202. package/lib/utils/uuid.d.ts +17 -17
  203. package/lib/utils/uuid.js +218 -218
  204. package/lib/utils/validator.d.ts +26 -26
  205. package/lib/utils/validator.js +131 -131
  206. package/lib/utils/version.js +21 -21
  207. package/package.json +2 -1
@@ -14,6 +14,13 @@ export declare class RelationAuth<ED extends EntityDict & BaseEntityDict> {
14
14
  });
15
15
  checkRelationSync<T extends keyof ED, Cxt extends SyncContext<ED>>(entity: T, operation: Omit<ED[T]['Operation'] | ED[T]['Selection'], 'id'>, context: Cxt): void;
16
16
  checkRelationAsync<T extends keyof ED, Cxt extends AsyncContext<ED>>(entity: T, operation: Omit<ED[T]['Operation'] | ED[T]['Selection'], 'id'>, context: Cxt): Promise<void>;
17
+ /**
18
+ * 检查当前用户有无权限对filter约束的userRelation进行action操作
19
+ * @param context
20
+ * @param action
21
+ * @param filter
22
+ * @returns
23
+ */
17
24
  private checkUserRelation;
18
25
  private checkOperateSpecialEntities2;
19
26
  private getDeducedEntityFilters;
@@ -38,6 +38,13 @@ class RelationAuth {
38
38
  }
39
39
  await this.checkActions2(entity, operation, context);
40
40
  }
41
+ /**
42
+ * 检查当前用户有无权限对filter约束的userRelation进行action操作
43
+ * @param context
44
+ * @param action
45
+ * @param filter
46
+ * @returns
47
+ */
41
48
  checkUserRelation(context, action, filter) {
42
49
  const userId = context.getCurrentUserId();
43
50
  let filter2 = {
@@ -1030,12 +1037,12 @@ class RelationAuth {
1030
1037
  if (result instanceof Promise) {
1031
1038
  return result.then((r) => {
1032
1039
  if (!r) {
1033
- throw new types_1.OakUserInvisibleException();
1040
+ throw new types_1.OakUserInvisibleException(entity, operation);
1034
1041
  }
1035
1042
  });
1036
1043
  }
1037
1044
  if (!result) {
1038
- throw new types_1.OakUserInvisibleException();
1045
+ throw new types_1.OakUserInvisibleException(entity, operation);
1039
1046
  }
1040
1047
  }
1041
1048
  else {
@@ -1043,12 +1050,12 @@ class RelationAuth {
1043
1050
  if (result instanceof Promise) {
1044
1051
  return result.then((r) => {
1045
1052
  if (!r) {
1046
- throw new types_1.OakUserUnpermittedException();
1053
+ throw new types_1.OakUserUnpermittedException(entity, operation);
1047
1054
  }
1048
1055
  });
1049
1056
  }
1050
1057
  if (!result) {
1051
- throw new types_1.OakUserUnpermittedException();
1058
+ throw new types_1.OakUserUnpermittedException(entity, operation);
1052
1059
  }
1053
1060
  }
1054
1061
  }
@@ -1,29 +1,29 @@
1
- import { EntityDict, RowStore, OperateOption, OperationResult, SelectOption, TxnOption, Context, AggregationResult } from "../types";
2
- export declare abstract class SyncContext<ED extends EntityDict> implements Context {
3
- rowStore: SyncRowStore<ED, this>;
4
- private uuid?;
5
- constructor(rowStore: SyncRowStore<ED, SyncContext<ED>>);
6
- abstract getCurrentUserId(allowUnloggedIn?: boolean): string | undefined;
7
- abstract isRoot(): boolean;
8
- abstract toString(): string;
9
- begin(option?: TxnOption): void;
10
- commit(): void;
11
- rollback(): void;
12
- getCurrentTxnId(): string | undefined;
13
- getSchema(): import("../types").StorageSchema<ED>;
14
- operate<T extends keyof ED, OP extends OperateOption>(entity: T, operation: ED[T]['Operation'], option: OP): OperationResult<ED>;
15
- select<T extends keyof ED, OP extends SelectOption>(entity: T, selection: ED[T]['Selection'], option: OP): Partial<ED[T]["Schema"]>[];
16
- aggregate<T extends keyof ED, OP extends SelectOption>(entity: T, aggregation: ED[T]['Aggregation'], option: OP): AggregationResult<ED[T]["Schema"]>;
17
- count<T extends keyof ED, OP extends SelectOption>(entity: T, selection: Pick<ED[T]['Selection'], 'filter' | 'count'>, option: OP): number;
18
- mergeMultipleResults(toBeMerged: OperationResult<ED>[]): OperationResult<ED>;
19
- abstract allowUserUpdate(): boolean;
20
- }
21
- export interface SyncRowStore<ED extends EntityDict, Cxt extends SyncContext<ED>> extends RowStore<ED> {
22
- operate<T extends keyof ED, OP extends OperateOption>(entity: T, operation: ED[T]['Operation'], context: Cxt, option: OP): OperationResult<ED>;
23
- select<T extends keyof ED, OP extends SelectOption>(entity: T, selection: ED[T]['Selection'], context: Cxt, option: OP): Partial<ED[T]['Schema']>[];
24
- count<T extends keyof ED, OP extends SelectOption>(entity: T, selection: Pick<ED[T]['Selection'], 'filter' | 'count'>, context: Cxt, option: OP): number;
25
- aggregate<T extends keyof ED, OP extends SelectOption>(entity: T, aggregation: ED[T]['Aggregation'], context: Cxt, option: OP): AggregationResult<ED[T]['Schema']>;
26
- begin(option?: TxnOption): string;
27
- commit(txnId: string): void;
28
- rollback(txnId: string): void;
29
- }
1
+ import { EntityDict, RowStore, OperateOption, OperationResult, SelectOption, TxnOption, Context, AggregationResult } from "../types";
2
+ export declare abstract class SyncContext<ED extends EntityDict> implements Context {
3
+ rowStore: SyncRowStore<ED, this>;
4
+ private uuid?;
5
+ constructor(rowStore: SyncRowStore<ED, SyncContext<ED>>);
6
+ abstract getCurrentUserId(allowUnloggedIn?: boolean): string | undefined;
7
+ abstract isRoot(): boolean;
8
+ abstract toString(): string;
9
+ begin(option?: TxnOption): void;
10
+ commit(): void;
11
+ rollback(): void;
12
+ getCurrentTxnId(): string | undefined;
13
+ getSchema(): import("../types").StorageSchema<ED>;
14
+ operate<T extends keyof ED, OP extends OperateOption>(entity: T, operation: ED[T]['Operation'], option: OP): OperationResult<ED>;
15
+ select<T extends keyof ED, OP extends SelectOption>(entity: T, selection: ED[T]['Selection'], option: OP): Partial<ED[T]["Schema"]>[];
16
+ aggregate<T extends keyof ED, OP extends SelectOption>(entity: T, aggregation: ED[T]['Aggregation'], option: OP): AggregationResult<ED[T]["Schema"]>;
17
+ count<T extends keyof ED, OP extends SelectOption>(entity: T, selection: Pick<ED[T]['Selection'], 'filter' | 'count'>, option: OP): number;
18
+ mergeMultipleResults(toBeMerged: OperationResult<ED>[]): OperationResult<ED>;
19
+ abstract allowUserUpdate(): boolean;
20
+ }
21
+ export interface SyncRowStore<ED extends EntityDict, Cxt extends SyncContext<ED>> extends RowStore<ED> {
22
+ operate<T extends keyof ED, OP extends OperateOption>(entity: T, operation: ED[T]['Operation'], context: Cxt, option: OP): OperationResult<ED>;
23
+ select<T extends keyof ED, OP extends SelectOption>(entity: T, selection: ED[T]['Selection'], context: Cxt, option: OP): Partial<ED[T]['Schema']>[];
24
+ count<T extends keyof ED, OP extends SelectOption>(entity: T, selection: Pick<ED[T]['Selection'], 'filter' | 'count'>, context: Cxt, option: OP): number;
25
+ aggregate<T extends keyof ED, OP extends SelectOption>(entity: T, aggregation: ED[T]['Aggregation'], context: Cxt, option: OP): AggregationResult<ED[T]['Schema']>;
26
+ begin(option?: TxnOption): string;
27
+ commit(txnId: string): void;
28
+ rollback(txnId: string): void;
29
+ }
@@ -1,50 +1,50 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SyncContext = void 0;
4
- const tslib_1 = require("tslib");
5
- const assert_1 = tslib_1.__importDefault(require("assert"));
6
- class SyncContext {
7
- rowStore;
8
- uuid;
9
- constructor(rowStore) {
10
- this.rowStore = rowStore;
11
- }
12
- begin(option) {
13
- (0, assert_1.default)(!this.uuid, '事务不允许嵌套');
14
- this.uuid = this.rowStore.begin(option);
15
- }
16
- commit() {
17
- (0, assert_1.default)(this.uuid);
18
- this.rowStore.commit(this.uuid);
19
- this.uuid = undefined;
20
- }
21
- rollback() {
22
- (0, assert_1.default)(this.uuid);
23
- this.rowStore.rollback(this.uuid);
24
- this.uuid = undefined;
25
- }
26
- getCurrentTxnId() {
27
- return this.uuid;
28
- }
29
- getSchema() {
30
- return this.rowStore.getSchema();
31
- }
32
- operate(entity, operation, option) {
33
- return this.rowStore.operate(entity, operation, this, option);
34
- }
35
- select(entity, selection, option) {
36
- return this.rowStore.select(entity, selection, this, option);
37
- }
38
- aggregate(entity, aggregation, option) {
39
- return this.rowStore.aggregate(entity, aggregation, this, option);
40
- }
41
- count(entity, selection, option) {
42
- return this.rowStore.count(entity, selection, this, option);
43
- }
44
- mergeMultipleResults(toBeMerged) {
45
- return this.rowStore.mergeMultipleResults(toBeMerged);
46
- }
47
- }
48
- exports.SyncContext = SyncContext;
49
- ;
50
- ;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SyncContext = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const assert_1 = tslib_1.__importDefault(require("assert"));
6
+ class SyncContext {
7
+ rowStore;
8
+ uuid;
9
+ constructor(rowStore) {
10
+ this.rowStore = rowStore;
11
+ }
12
+ begin(option) {
13
+ (0, assert_1.default)(!this.uuid, '事务不允许嵌套');
14
+ this.uuid = this.rowStore.begin(option);
15
+ }
16
+ commit() {
17
+ (0, assert_1.default)(this.uuid);
18
+ this.rowStore.commit(this.uuid);
19
+ this.uuid = undefined;
20
+ }
21
+ rollback() {
22
+ (0, assert_1.default)(this.uuid);
23
+ this.rowStore.rollback(this.uuid);
24
+ this.uuid = undefined;
25
+ }
26
+ getCurrentTxnId() {
27
+ return this.uuid;
28
+ }
29
+ getSchema() {
30
+ return this.rowStore.getSchema();
31
+ }
32
+ operate(entity, operation, option) {
33
+ return this.rowStore.operate(entity, operation, this, option);
34
+ }
35
+ select(entity, selection, option) {
36
+ return this.rowStore.select(entity, selection, this, option);
37
+ }
38
+ aggregate(entity, aggregation, option) {
39
+ return this.rowStore.aggregate(entity, aggregation, this, option);
40
+ }
41
+ count(entity, selection, option) {
42
+ return this.rowStore.count(entity, selection, this, option);
43
+ }
44
+ mergeMultipleResults(toBeMerged) {
45
+ return this.rowStore.mergeMultipleResults(toBeMerged);
46
+ }
47
+ }
48
+ exports.SyncContext = SyncContext;
49
+ ;
50
+ ;
@@ -1,41 +1,41 @@
1
- import { EntityDict, OperateOption, SelectOption } from "../types/Entity";
2
- import { EntityDict as BaseEntityDict } from '../base-app-domain';
3
- import { Logger } from "../types/Logger";
4
- import { Checker } from '../types/Auth';
5
- import { Trigger, VolatileTrigger } from "../types/Trigger";
6
- import { AsyncContext } from './AsyncRowStore';
7
- /**
8
- * update可能会传入多种不同的action,此时都需要检查update trigger
9
- */
10
- export declare class TriggerExecutor<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>> {
11
- private counter;
12
- private triggerMap;
13
- private triggerNameMap;
14
- private volatileEntities;
15
- private logger;
16
- private contextBuilder;
17
- private onVolatileTrigger;
18
- constructor(contextBuilder: (cxtString?: string) => Promise<Cxt>, logger?: Logger, onVolatileTrigger?: <T extends keyof ED>(entity: T, trigger: VolatileTrigger<ED, T, Cxt>, ids: string[], cxtStr: string, option: OperateOption) => Promise<void>);
19
- setOnVolatileTrigger(onVolatileTrigger: <T extends keyof ED>(entity: T, trigger: VolatileTrigger<ED, T, Cxt>, ids: string[], cxtStr: string, option: OperateOption) => Promise<void>): void;
20
- registerChecker<T extends keyof ED>(checker: Checker<ED, T, Cxt>): void;
21
- registerTrigger<T extends keyof ED>(trigger: Trigger<ED, T, Cxt>): void;
22
- unregisterTrigger<T extends keyof ED>(trigger: Trigger<ED, T, Cxt>): void;
23
- private preCommitTrigger;
24
- private postCommitTrigger;
25
- preOperation<T extends keyof ED>(entity: T, operation: ED[T]['Operation'] | ED[T]['Selection'] & {
26
- action: 'select';
27
- }, context: Cxt, option: OperateOption | SelectOption): Promise<void> | void;
28
- execVolatileTrigger<T extends keyof ED>(entity: T, name: string, ids: string[], context: Cxt, option: OperateOption): Promise<void>;
29
- /**
30
- * 判断一个trigger和当前modi上下文是否符合
31
- * trigger的默认行为是:如果是commit时机的trigger,不显式声明则只能在modi apply时执行(create时不执行);非commit时机的trigger,不显式声明则只在modi create时执行
32
- * @param option
33
- * @param trigger
34
- * @returns
35
- */
36
- private judgeModiTurn;
37
- postOperation<T extends keyof ED>(entity: T, operation: ED[T]['Operation'] | ED[T]['Selection'] & {
38
- action: 'select';
39
- }, context: Cxt, option: OperateOption | SelectOption, result?: Partial<ED[T]['Schema']>[]): Promise<void> | void;
40
- checkpoint(timestamp: number): Promise<number>;
41
- }
1
+ import { EntityDict, OperateOption, SelectOption } from "../types/Entity";
2
+ import { EntityDict as BaseEntityDict } from '../base-app-domain';
3
+ import { Logger } from "../types/Logger";
4
+ import { Checker } from '../types/Auth';
5
+ import { Trigger, VolatileTrigger } from "../types/Trigger";
6
+ import { AsyncContext } from './AsyncRowStore';
7
+ /**
8
+ * update可能会传入多种不同的action,此时都需要检查update trigger
9
+ */
10
+ export declare class TriggerExecutor<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>> {
11
+ private counter;
12
+ private triggerMap;
13
+ private triggerNameMap;
14
+ private volatileEntities;
15
+ private logger;
16
+ private contextBuilder;
17
+ private onVolatileTrigger;
18
+ constructor(contextBuilder: (cxtString?: string) => Promise<Cxt>, logger?: Logger, onVolatileTrigger?: <T extends keyof ED>(entity: T, trigger: VolatileTrigger<ED, T, Cxt>, ids: string[], cxtStr: string, option: OperateOption) => Promise<void>);
19
+ setOnVolatileTrigger(onVolatileTrigger: <T extends keyof ED>(entity: T, trigger: VolatileTrigger<ED, T, Cxt>, ids: string[], cxtStr: string, option: OperateOption) => Promise<void>): void;
20
+ registerChecker<T extends keyof ED>(checker: Checker<ED, T, Cxt>): void;
21
+ registerTrigger<T extends keyof ED>(trigger: Trigger<ED, T, Cxt>): void;
22
+ unregisterTrigger<T extends keyof ED>(trigger: Trigger<ED, T, Cxt>): void;
23
+ private preCommitTrigger;
24
+ private postCommitTrigger;
25
+ preOperation<T extends keyof ED>(entity: T, operation: ED[T]['Operation'] | ED[T]['Selection'] & {
26
+ action: 'select';
27
+ }, context: Cxt, option: OperateOption | SelectOption): Promise<void> | void;
28
+ execVolatileTrigger<T extends keyof ED>(entity: T, name: string, ids: string[], context: Cxt, option: OperateOption): Promise<void>;
29
+ /**
30
+ * 判断一个trigger和当前modi上下文是否符合
31
+ * trigger的默认行为是:如果是commit时机的trigger,不显式声明则只能在modi apply时执行(create时不执行);非commit时机的trigger,不显式声明则只在modi create时执行
32
+ * @param option
33
+ * @param trigger
34
+ * @returns
35
+ */
36
+ private judgeModiTurn;
37
+ postOperation<T extends keyof ED>(entity: T, operation: ED[T]['Operation'] | ED[T]['Selection'] & {
38
+ action: 'select';
39
+ }, context: Cxt, option: OperateOption | SelectOption, result?: Partial<ED[T]['Schema']>[]): Promise<void> | void;
40
+ checkpoint(timestamp: number): Promise<number>;
41
+ }