oak-domain 3.0.4 → 4.0.0

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 (202) 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/Action.d.ts +5 -5
  44. package/lib/base-app-domain/UserEntityGrant/Action.js +5 -5
  45. package/lib/base-app-domain/UserEntityGrant/Schema.d.ts +131 -131
  46. package/lib/base-app-domain/UserEntityGrant/Storage.js +25 -25
  47. package/lib/base-app-domain/UserRelation/Schema.d.ts +208 -208
  48. package/lib/base-app-domain/UserRelation/Storage.js +56 -56
  49. package/lib/base-app-domain/_SubQuery.d.ts +142 -142
  50. package/lib/base-app-domain/index.d.ts +4 -4
  51. package/lib/base-app-domain/index.js +7 -7
  52. package/lib/checkers/index.d.ts +5 -5
  53. package/lib/checkers/index.js +13 -13
  54. package/lib/compiler/entities.d.ts +2 -0
  55. package/lib/compiler/entities.js +7 -0
  56. package/lib/compiler/env.d.ts +13 -14
  57. package/lib/compiler/env.js +45 -48
  58. package/lib/compiler/localeBuilder.d.ts +27 -22
  59. package/lib/compiler/localeBuilder.js +184 -173
  60. package/lib/compiler/schemalBuilder.d.ts +27 -27
  61. package/lib/compiler/schemalBuilder.js +3569 -3569
  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 -37
  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 +60 -59
  86. package/lib/store/AsyncRowStore.js +118 -116
  87. package/lib/store/CascadeStore.d.ts +104 -103
  88. package/lib/store/CascadeStore.js +1688 -1662
  89. package/lib/store/RelationAuth.d.ts +96 -96
  90. package/lib/store/RelationAuth.js +1336 -1334
  91. package/lib/store/SyncRowStore.d.ts +29 -29
  92. package/lib/store/SyncRowStore.js +50 -50
  93. package/lib/store/TriggerExecutor.d.ts +38 -38
  94. package/lib/store/TriggerExecutor.js +459 -459
  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 +487 -487
  101. package/lib/store/filter.d.ts +85 -122
  102. package/lib/store/filter.js +1651 -1623
  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 -0
  118. package/lib/types/Cluster.js +2 -0
  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 +88 -88
  124. package/lib/types/Demand.js +10 -10
  125. package/lib/types/Endpoint.d.ts +11 -11
  126. package/lib/types/Entity.d.ts +203 -202
  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 +88 -57
  131. package/lib/types/Environment.js +2 -2
  132. package/lib/types/Exception.d.ts +147 -147
  133. package/lib/types/Exception.js +406 -406
  134. package/lib/types/Expression.d.ts +163 -163
  135. package/lib/types/Expression.js +397 -394
  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 +18 -18
  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 +14 -14
  146. package/lib/types/Trigger.d.ts +124 -124
  147. package/lib/types/Trigger.js +58 -58
  148. package/lib/types/Watcher.d.ts +19 -19
  149. package/lib/types/index.d.ts +26 -25
  150. package/lib/types/index.js +29 -28
  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 +5 -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/{url.d.ts → domain.d.ts} +1 -1
  160. package/lib/utils/{url.js → domain.js} +11 -13
  161. package/lib/utils/geo.js +24 -24
  162. package/lib/utils/lodash.d.ts +24 -22
  163. package/lib/utils/lodash.js +46 -42
  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 -0
  172. package/lib/utils/random/random.native.js +14 -0
  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 -0
  177. package/lib/utils/url/index.js +8 -0
  178. package/lib/utils/url/index.mp.d.ts +4 -0
  179. package/lib/utils/url/index.mp.js +8 -0
  180. package/lib/utils/url/index.native.d.ts +12 -0
  181. package/lib/utils/url/index.native.js +7 -0
  182. package/lib/utils/url/index.web.d.ts +12 -0
  183. package/lib/utils/url/index.web.js +7 -0
  184. package/lib/utils/uuid.d.ts +17 -17
  185. package/lib/utils/uuid.js +218 -218
  186. package/lib/utils/validator.d.ts +26 -26
  187. package/lib/utils/validator.js +131 -131
  188. package/lib/utils/version.js +21 -21
  189. package/package.json +51 -49
  190. package/src/entities/ActionAuth.ts +41 -41
  191. package/src/entities/I18n.ts +45 -46
  192. package/src/entities/Modi.ts +69 -69
  193. package/src/entities/ModiEntity.ts +26 -26
  194. package/src/entities/Oper.ts +32 -32
  195. package/src/entities/OperEntity.ts +27 -27
  196. package/src/entities/Path.ts +43 -43
  197. package/src/entities/Relation.ts +43 -43
  198. package/src/entities/RelationAuth.ts +44 -44
  199. package/src/entities/User.ts +48 -48
  200. package/src/entities/UserEntityClaim.ts +29 -29
  201. package/src/entities/UserEntityGrant.ts +24 -24
  202. package/src/entities/UserRelation.ts +50 -50
@@ -1,17 +1,17 @@
1
- /// <reference types="node" />
2
- import { IncomingHttpHeaders } from "http";
3
- import { AsyncContext, AsyncRowStore } from "../store/AsyncRowStore";
4
- import { EntityDict, OpRecord } from "./Entity";
5
- export declare abstract class AppLoader<ED extends EntityDict, Cxt extends AsyncContext<ED>> {
6
- protected path: string;
7
- constructor(path: string);
8
- abstract execAspect(name: string, header?: IncomingHttpHeaders, contextString?: string, params?: any): Promise<{
9
- opRecords?: OpRecord<ED>[];
10
- message?: string;
11
- result: any;
12
- }>;
13
- abstract initialize(dropIfExists?: boolean): Promise<void>;
14
- abstract mount(): Promise<void>;
15
- abstract unmount(): Promise<void>;
16
- abstract getStore(): AsyncRowStore<ED, Cxt>;
17
- }
1
+ /// <reference types="node" />
2
+ import { IncomingHttpHeaders } from "http";
3
+ import { AsyncContext, AsyncRowStore } from "../store/AsyncRowStore";
4
+ import { EntityDict, OpRecord } from "./Entity";
5
+ export declare abstract class AppLoader<ED extends EntityDict, Cxt extends AsyncContext<ED>> {
6
+ protected path: string;
7
+ constructor(path: string);
8
+ abstract execAspect(name: string, header?: IncomingHttpHeaders, contextString?: string, params?: any): Promise<{
9
+ opRecords?: OpRecord<ED>[];
10
+ message?: string;
11
+ result: any;
12
+ }>;
13
+ abstract initialize(dropIfExists?: boolean): Promise<void>;
14
+ abstract mount(): Promise<void>;
15
+ abstract unmount(): Promise<void>;
16
+ abstract getStore(): AsyncRowStore<ED, Cxt>;
17
+ }
@@ -1,10 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AppLoader = void 0;
4
- class AppLoader {
5
- path;
6
- constructor(path) {
7
- this.path = path;
8
- }
9
- }
10
- exports.AppLoader = AppLoader;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AppLoader = void 0;
4
+ class AppLoader {
5
+ path;
6
+ constructor(path) {
7
+ this.path = path;
8
+ }
9
+ }
10
+ exports.AppLoader = AppLoader;
@@ -1,70 +1,70 @@
1
- import { CascadeActionAuth, CascadeRelationAuth, ActionOnRemove, SyncOrAsync } from ".";
2
- import { AsyncContext } from "../store/AsyncRowStore";
3
- import { SyncContext } from "../store/SyncRowStore";
4
- import { EntityDict, OperateOption, SelectOption } from "../types/Entity";
5
- import { ModiTurn } from './Trigger';
6
- export type CheckerType = 'relation' | 'row' | 'data' | 'logical' | 'logicalRelation' | 'logicalData';
7
- /**
8
- * conditionalFilter是指该action发生时,operation所操作的行中有满足conditionalFilter的行
9
- * 被转化成trigger的filter条件,详细可看trigger中的说明
10
- */
11
- export type DataChecker<ED extends EntityDict, T extends keyof ED, Cxt extends AsyncContext<ED> | SyncContext<ED>> = {
12
- priority?: number;
13
- type: 'data';
14
- entity: T;
15
- mt?: ModiTurn;
16
- action: Omit<ED[T]['Action'], 'remove'> | Array<Omit<ED[T]['Action'], 'remove'>>;
17
- checker: (data: ED[T]['Create']['data'] | ED[T]['Update']['data'], context: Cxt) => SyncOrAsync<any>;
18
- conditionalFilter?: ED[T]['Update']['filter'] | ((operation: ED[T]['Operation'], context: Cxt, option: OperateOption) => SyncOrAsync<ED[T]['Selection']['filter']>);
19
- };
20
- export type RowChecker<ED extends EntityDict, T extends keyof ED, Cxt extends AsyncContext<ED> | SyncContext<ED>> = {
21
- priority?: number;
22
- type: 'row';
23
- entity: T;
24
- mt?: ModiTurn;
25
- action: Omit<ED[T]['Action'], 'create'> | Array<Omit<ED[T]['Action'], 'create'>>;
26
- filter: ED[T]['Selection']['filter'] | ((operation: ED[T]['Operation'] | ED[T]['Selection'], context: Cxt, option: OperateOption | SelectOption) => SyncOrAsync<ED[T]['Selection']['filter']>);
27
- errMsg?: string;
28
- inconsistentRows?: {
29
- entity: keyof ED;
30
- selection: (filter?: ED[T]['Selection']['filter']) => ED[keyof ED]['Selection'];
31
- };
32
- conditionalFilter?: ED[T]['Update']['filter'] | ((operation: ED[T]['Operation'], context: Cxt, option: OperateOption) => SyncOrAsync<ED[T]['Update']['filter']>);
33
- };
34
- export type RelationChecker<ED extends EntityDict, T extends keyof ED, Cxt extends AsyncContext<ED> | SyncContext<ED>> = {
35
- priority?: number;
36
- type: 'relation';
37
- entity: T;
38
- mt?: ModiTurn;
39
- when?: 'after';
40
- action: ED[T]['Action'] | Array<ED[T]['Action']>;
41
- relationFilter: (operation: ED[T]['Operation'] | ED[T]['Selection'], context: Cxt, option: OperateOption | SelectOption) => SyncOrAsync<ED[T]['Selection']['filter']>;
42
- errMsg: string | ((operation: ED[T]['Operation'] | ED[T]['Selection'], context: Cxt, option?: OperateOption | SelectOption) => string);
43
- conditionalFilter?: ED[T]['Update']['filter'] | ((operation: ED[T]['Operation'], context: Cxt, option: OperateOption) => SyncOrAsync<ED[T]['Selection']['filter']>);
44
- };
45
- export type LogicalChecker<ED extends EntityDict, T extends keyof ED, Cxt extends AsyncContext<ED> | SyncContext<ED>> = {
46
- priority?: number;
47
- type: 'logical' | 'logicalData' | 'logicalRelation';
48
- when?: 'after';
49
- mt?: ModiTurn;
50
- entity: T;
51
- action: ED[T]['Action'] | Array<ED[T]['Action']>;
52
- checker: (operation: ED[T]['Operation'] | ED[T]['Selection'], context: Cxt, option: OperateOption | SelectOption) => SyncOrAsync<any>;
53
- conditionalFilter?: ED[T]['Update']['filter'] | ((operation: ED[T]['Operation'], context: Cxt, option: OperateOption) => SyncOrAsync<ED[T]['Update']['filter']>);
54
- };
55
- export type Checker<ED extends EntityDict, T extends keyof ED, Cxt extends AsyncContext<ED> | SyncContext<ED>> = DataChecker<ED, T, Cxt> | RowChecker<ED, T, Cxt> | RelationChecker<ED, T, Cxt> | LogicalChecker<ED, T, Cxt>;
56
- export type AuthDef<ED extends EntityDict, T extends keyof ED> = {
57
- relationAuth?: CascadeRelationAuth<NonNullable<ED[T]['Relation']>>;
58
- actionAuth?: CascadeActionAuth<ED[T]['Action']>;
59
- cascadeRemove?: {
60
- [E in (keyof ED | keyof ED[T]['Schema'] | '@entity')]?: ActionOnRemove;
61
- };
62
- };
63
- export type CascadeRemoveDefDict<ED extends EntityDict> = {
64
- [T in keyof ED]?: {
65
- [E in (keyof ED | keyof ED[T]['Schema'] | '@entity')]?: ActionOnRemove;
66
- };
67
- };
68
- export type AuthDefDict<ED extends EntityDict> = {
69
- [K in keyof ED]?: AuthDef<ED, K>;
70
- };
1
+ import { CascadeActionAuth, CascadeRelationAuth, ActionOnRemove, SyncOrAsync } from ".";
2
+ import { AsyncContext } from "../store/AsyncRowStore";
3
+ import { SyncContext } from "../store/SyncRowStore";
4
+ import { EntityDict, OperateOption, SelectOption } from "../types/Entity";
5
+ import { ModiTurn } from './Trigger';
6
+ export type CheckerType = 'relation' | 'row' | 'data' | 'logical' | 'logicalRelation' | 'logicalData';
7
+ /**
8
+ * conditionalFilter是指该action发生时,operation所操作的行中有满足conditionalFilter的行
9
+ * 被转化成trigger的filter条件,详细可看trigger中的说明
10
+ */
11
+ export type DataChecker<ED extends EntityDict, T extends keyof ED, Cxt extends AsyncContext<ED> | SyncContext<ED>> = {
12
+ priority?: number;
13
+ type: 'data';
14
+ entity: T;
15
+ mt?: ModiTurn;
16
+ action: Omit<ED[T]['Action'], 'remove'> | Array<Omit<ED[T]['Action'], 'remove'>>;
17
+ checker: (data: ED[T]['Create']['data'] | ED[T]['Update']['data'], context: Cxt) => SyncOrAsync<any>;
18
+ conditionalFilter?: ED[T]['Update']['filter'] | ((operation: ED[T]['Operation'], context: Cxt, option: OperateOption) => SyncOrAsync<ED[T]['Selection']['filter']>);
19
+ };
20
+ export type RowChecker<ED extends EntityDict, T extends keyof ED, Cxt extends AsyncContext<ED> | SyncContext<ED>> = {
21
+ priority?: number;
22
+ type: 'row';
23
+ entity: T;
24
+ mt?: ModiTurn;
25
+ action: Omit<ED[T]['Action'], 'create'> | Array<Omit<ED[T]['Action'], 'create'>>;
26
+ filter: ED[T]['Selection']['filter'] | ((operation: ED[T]['Operation'] | ED[T]['Selection'], context: Cxt, option: OperateOption | SelectOption) => SyncOrAsync<ED[T]['Selection']['filter']>);
27
+ errMsg?: string;
28
+ inconsistentRows?: {
29
+ entity: keyof ED;
30
+ selection: (filter?: ED[T]['Selection']['filter']) => ED[keyof ED]['Selection'];
31
+ };
32
+ conditionalFilter?: ED[T]['Update']['filter'] | ((operation: ED[T]['Operation'], context: Cxt, option: OperateOption) => SyncOrAsync<ED[T]['Update']['filter']>);
33
+ };
34
+ export type RelationChecker<ED extends EntityDict, T extends keyof ED, Cxt extends AsyncContext<ED> | SyncContext<ED>> = {
35
+ priority?: number;
36
+ type: 'relation';
37
+ entity: T;
38
+ mt?: ModiTurn;
39
+ when?: 'after';
40
+ action: ED[T]['Action'] | Array<ED[T]['Action']>;
41
+ relationFilter: (operation: ED[T]['Operation'] | ED[T]['Selection'], context: Cxt, option: OperateOption | SelectOption) => SyncOrAsync<ED[T]['Selection']['filter']>;
42
+ errMsg: string | ((operation: ED[T]['Operation'] | ED[T]['Selection'], context: Cxt, option?: OperateOption | SelectOption) => string);
43
+ conditionalFilter?: ED[T]['Update']['filter'] | ((operation: ED[T]['Operation'], context: Cxt, option: OperateOption) => SyncOrAsync<ED[T]['Selection']['filter']>);
44
+ };
45
+ export type LogicalChecker<ED extends EntityDict, T extends keyof ED, Cxt extends AsyncContext<ED> | SyncContext<ED>> = {
46
+ priority?: number;
47
+ type: 'logical' | 'logicalData' | 'logicalRelation';
48
+ when?: 'after';
49
+ mt?: ModiTurn;
50
+ entity: T;
51
+ action: ED[T]['Action'] | Array<ED[T]['Action']>;
52
+ checker: (operation: ED[T]['Operation'] | ED[T]['Selection'], context: Cxt, option: OperateOption | SelectOption) => SyncOrAsync<any>;
53
+ conditionalFilter?: ED[T]['Update']['filter'] | ((operation: ED[T]['Operation'], context: Cxt, option: OperateOption) => SyncOrAsync<ED[T]['Update']['filter']>);
54
+ };
55
+ export type Checker<ED extends EntityDict, T extends keyof ED, Cxt extends AsyncContext<ED> | SyncContext<ED>> = DataChecker<ED, T, Cxt> | RowChecker<ED, T, Cxt> | RelationChecker<ED, T, Cxt> | LogicalChecker<ED, T, Cxt>;
56
+ export type AuthDef<ED extends EntityDict, T extends keyof ED> = {
57
+ relationAuth?: CascadeRelationAuth<NonNullable<ED[T]['Relation']>>;
58
+ actionAuth?: CascadeActionAuth<ED[T]['Action']>;
59
+ cascadeRemove?: {
60
+ [E in (keyof ED | keyof ED[T]['Schema'] | '@entity')]?: ActionOnRemove;
61
+ };
62
+ };
63
+ export type CascadeRemoveDefDict<ED extends EntityDict> = {
64
+ [T in keyof ED]?: {
65
+ [E in (keyof ED | keyof ED[T]['Schema'] | '@entity')]?: ActionOnRemove;
66
+ };
67
+ };
68
+ export type AuthDefDict<ED extends EntityDict> = {
69
+ [K in keyof ED]?: AuthDef<ED, K>;
70
+ };
@@ -0,0 +1,5 @@
1
+ export type ClusterInfo = {
2
+ usingCluster: boolean;
3
+ instanceId?: number;
4
+ instanceCount?: number;
5
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,38 +1,38 @@
1
- /// <reference types="node" />
2
- import { IncomingHttpHeaders } from "http";
3
- import { SyncContext } from "../store/SyncRowStore";
4
- import { EntityDict, OpRecord } from "./Entity";
5
- import { OakException } from "./Exception";
6
- export interface Connector<ED extends EntityDict, FrontCxt extends SyncContext<ED>> {
7
- callAspect: (name: string, params: any, context: FrontCxt) => Promise<{
8
- result: any;
9
- opRecords?: OpRecord<ED>[];
10
- message?: string | null;
11
- }>;
12
- getRouter: () => string;
13
- parseRequestHeaders: (headers: IncomingHttpHeaders) => {
14
- contextString?: string;
15
- aspectName: string;
16
- };
17
- serializeResult: (result: any, opRecords: OpRecord<ED>[], headers: IncomingHttpHeaders, body: any, message?: string) => Promise<{
18
- body: any;
19
- headers?: Record<string, any>;
20
- }>;
21
- serializeException: (exception: OakException<ED>, headers: IncomingHttpHeaders, body: any) => {
22
- body: any;
23
- headers?: Record<string, any>;
24
- };
25
- getSubscribeRouter: () => string;
26
- getSubscribePointRouter: () => string;
27
- getSubscribePoint: () => Promise<{
28
- url: string;
29
- path: string;
30
- }>;
31
- getBridgeRouter: () => string;
32
- makeBridgeUrl: (url: string, headers?: Record<string, string>) => string;
33
- getEndpointRouter: () => string;
34
- parseBridgeRequestQuery: (urlParams: string) => {
35
- url: string;
36
- headers?: Record<string, string>;
37
- };
38
- }
1
+ /// <reference types="node" />
2
+ import { IncomingHttpHeaders } from "http";
3
+ import { SyncContext } from "../store/SyncRowStore";
4
+ import { EntityDict, OpRecord } from "./Entity";
5
+ import { OakException } from "./Exception";
6
+ export interface Connector<ED extends EntityDict, FrontCxt extends SyncContext<ED>> {
7
+ callAspect: (name: string, params: any, context: FrontCxt) => Promise<{
8
+ result: any;
9
+ opRecords?: OpRecord<ED>[];
10
+ message?: string | null;
11
+ }>;
12
+ getRouter: () => string;
13
+ parseRequestHeaders: (headers: IncomingHttpHeaders) => {
14
+ contextString?: string;
15
+ aspectName: string;
16
+ };
17
+ serializeResult: (result: any, opRecords: OpRecord<ED>[], headers: IncomingHttpHeaders, body: any, message?: string) => Promise<{
18
+ body: any;
19
+ headers?: Record<string, any>;
20
+ }>;
21
+ serializeException: (exception: OakException<ED>, headers: IncomingHttpHeaders, body: any) => {
22
+ body: any;
23
+ headers?: Record<string, any>;
24
+ };
25
+ getSubscribeRouter: () => string;
26
+ getSubscribePointRouter: () => string;
27
+ getSubscribePoint: () => Promise<{
28
+ url: string;
29
+ path: string;
30
+ }>;
31
+ getBridgeRouter: () => string;
32
+ makeBridgeUrl: (url: string, headers?: Record<string, string>) => string;
33
+ getEndpointRouter: () => string;
34
+ parseBridgeRequestQuery: (urlParams: string) => {
35
+ url: string;
36
+ headers?: Record<string, string>;
37
+ };
38
+ }
@@ -1,2 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,25 +1,25 @@
1
- import { Geo, SingleGeo } from "./Geo";
2
- export type Int<L extends 1 | 2 | 4 | 8> = number;
3
- export type Uint<L extends 1 | 2 | 4 | 8> = number;
4
- export type Double<P extends number, S extends number> = number;
5
- export type Float<P extends number, S extends number> = number;
6
- export type Decimal<P extends number, S extends number> = number;
7
- export type String<L extends number> = string;
8
- export type Text = string;
9
- export type Image = string;
10
- export type File = string;
11
- export type Datetime = number | Date;
12
- export type Day = number | Date;
13
- export type Time = number | Date;
14
- export type Boolean = boolean;
15
- export type Price = number;
16
- export type PrimaryKey = string;
17
- export type ForeignKey<E extends string> = string;
18
- export type Sequence = string;
19
- export { Geo, SingleGeo } from './Geo';
20
- export type DataTypes = number | string | Datetime | Day | Time | Geo | Object | SingleGeo;
21
- export declare const types: string[];
22
- export declare const unIndexedTypes: string[];
23
- export type JsonProjection<O extends object> = {
24
- [k in keyof O]?: NonNullable<O[k]> extends object ? JsonProjection<NonNullable<O[k]>> | number : number;
25
- };
1
+ import { Geo, SingleGeo } from "./Geo";
2
+ export type Int<L extends 1 | 2 | 4 | 8> = number;
3
+ export type Uint<L extends 1 | 2 | 4 | 8> = number;
4
+ export type Double<P extends number, S extends number> = number;
5
+ export type Float<P extends number, S extends number> = number;
6
+ export type Decimal<P extends number, S extends number> = number;
7
+ export type String<L extends number> = string;
8
+ export type Text = string;
9
+ export type Image = string;
10
+ export type File = string;
11
+ export type Datetime = number | Date;
12
+ export type Day = number | Date;
13
+ export type Time = number | Date;
14
+ export type Boolean = boolean;
15
+ export type Price = number;
16
+ export type PrimaryKey = string;
17
+ export type ForeignKey<E extends string> = string;
18
+ export type Sequence = number;
19
+ export { Geo, SingleGeo } from './Geo';
20
+ export type DataTypes = number | string | Datetime | Day | Time | Geo | Object | SingleGeo;
21
+ export declare const types: string[];
22
+ export declare const unIndexedTypes: string[];
23
+ export type JsonProjection<O extends object> = {
24
+ [k in keyof O]?: NonNullable<O[k]> extends object ? JsonProjection<NonNullable<O[k]>> | number : number;
25
+ };
@@ -1,6 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.unIndexedTypes = exports.types = void 0;
4
- exports.types = ['Int', 'Uint', 'Double', 'Float', 'String', 'Text', 'Datetime', 'Day', 'Time',
5
- 'Boolean', 'Image', 'File', 'Geo', 'SingleGeo', 'Price', 'Decimal'];
6
- exports.unIndexedTypes = ['Text', 'Image', 'File', 'Object'];
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.unIndexedTypes = exports.types = void 0;
4
+ exports.types = ['Int', 'Uint', 'Double', 'Float', 'String', 'Text', 'Datetime', 'Day', 'Time',
5
+ 'Boolean', 'Image', 'File', 'Geo', 'SingleGeo', 'Price', 'Decimal'];
6
+ exports.unIndexedTypes = ['Text', 'Image', 'File', 'Object'];
@@ -1,88 +1,88 @@
1
- import { RefOrExpression } from "./Expression";
2
- import { OneOf } from "./Polyfill";
3
- export declare const EXPRESSION_PREFIX = "$expr";
4
- export type NodeId = `node-${number}`;
5
- export type ExpressionKey = '$expr' | '$expr1' | '$expr2' | '$expr3' | '$expr4' | '$expr5' | '$expr6' | '$expr7' | '$expr8' | '$expr9' | '$expr10' | '$expr11' | '$expr12' | '$expr13' | '$expr14' | '$expr15' | '$expr16' | '$expr17' | '$expr18' | '$expr19' | '$expr20';
6
- export type ExprOp<A> = {
7
- [K in ExpressionKey]: RefOrExpression<A>;
8
- };
9
- export type Q_NumberComparisonValue = number | OneOf<{
10
- $gt: number;
11
- $lt: number;
12
- $gte: number;
13
- $lte: number;
14
- $eq: number;
15
- $ne: number;
16
- $in: number[];
17
- $nin: number[];
18
- $between: [number, number];
19
- }>;
20
- export type Q_StringComparisonValue = string | OneOf<{
21
- $gt: string;
22
- $lt: string;
23
- $gte: string;
24
- $lte: string;
25
- $eq: string;
26
- $ne: string;
27
- $startsWith: string;
28
- $endsWith: string;
29
- $includes: string;
30
- $in: string[];
31
- $nin: string[];
32
- }>;
33
- export type Q_BooleanComparisonValue = boolean;
34
- export type Q_DateComparisonValue = Q_NumberComparisonValue;
35
- export type Q_EnumComparisonValue<E> = E | OneOf<{
36
- $in: E[];
37
- $nin: E[];
38
- $ne: E;
39
- }>;
40
- export type Q_ExistsValue = {
41
- $exists: boolean;
42
- };
43
- export type Q_NumberValue = Q_NumberComparisonValue | Q_ExistsValue;
44
- export type Q_StringValue = Q_StringComparisonValue | Q_ExistsValue;
45
- export type Q_BooleanValue = Q_BooleanComparisonValue | Q_ExistsValue;
46
- export type Q_DateValue = Q_DateComparisonValue | Q_ExistsValue;
47
- export type Q_EnumValue<E> = Q_EnumComparisonValue<E> | Q_ExistsValue;
48
- export type Q_State<S> = S | {
49
- $in: S[];
50
- } | {
51
- $nin: S[];
52
- } | Q_ExistsValue;
53
- export type Q_FullTextValue = {
54
- $search: string;
55
- $language?: 'zh_CN' | 'en_US';
56
- };
57
- export type Q_FullTextKey = '$text';
58
- export type FulltextFilter = {
59
- [F in Q_FullTextKey]?: Q_FullTextValue;
60
- };
61
- type Q_LogicKey = '$and' | '$or';
62
- type Q_LinearLogicKey = '$not';
63
- export type MakeFilterWrapper<F extends Object> = {
64
- [Q in Q_LogicKey]?: Array<MakeFilterWrapper<F>>;
65
- } & {
66
- [Q in Q_LinearLogicKey]?: MakeFilterWrapper<F>;
67
- } & Partial<F>;
68
- export type MakeFilter<F extends Object> = {
69
- '#id'?: NodeId;
70
- } & MakeFilterWrapper<F>;
71
- export type RefAttr<A> = {
72
- '#attr': A;
73
- } | {
74
- '#refId': NodeId;
75
- '#refAttr': string;
76
- };
77
- export declare function isRefAttrNode<A>(node: any): node is RefAttr<A>;
78
- export type JsonFilter<O extends any> = O extends Array<infer P> ? (JsonFilter<P> | undefined)[] | {
79
- $contains?: P | P[];
80
- $overlaps?: P | P[];
81
- } : O extends number ? Q_NumberValue : O extends string ? Q_StringValue : O extends boolean ? Q_BooleanValue : O extends Record<string, any> ? {
82
- [A in keyof O]?: JsonFilter<O[A]>;
83
- } : never;
84
- export type SubQueryPredicateMetadata = {
85
- '#sqp'?: 'in' | 'not in' | 'all' | 'not all';
86
- };
87
- export declare const SUB_QUERY_PREDICATE_KEYWORD = "#sqp";
88
- export {};
1
+ import { RefOrExpression } from "./Expression";
2
+ import { OneOf } from "./Polyfill";
3
+ export declare const EXPRESSION_PREFIX = "$expr";
4
+ export type NodeId = `node-${number}`;
5
+ export type ExpressionKey = '$expr' | '$expr1' | '$expr2' | '$expr3' | '$expr4' | '$expr5' | '$expr6' | '$expr7' | '$expr8' | '$expr9' | '$expr10' | '$expr11' | '$expr12' | '$expr13' | '$expr14' | '$expr15' | '$expr16' | '$expr17' | '$expr18' | '$expr19' | '$expr20';
6
+ export type ExprOp<A> = {
7
+ [K in ExpressionKey]: RefOrExpression<A>;
8
+ };
9
+ export type Q_NumberComparisonValue = number | OneOf<{
10
+ $gt: number;
11
+ $lt: number;
12
+ $gte: number;
13
+ $lte: number;
14
+ $eq: number;
15
+ $ne: number;
16
+ $in: number[];
17
+ $nin: number[];
18
+ $between: [number, number];
19
+ }>;
20
+ export type Q_StringComparisonValue = string | OneOf<{
21
+ $gt: string;
22
+ $lt: string;
23
+ $gte: string;
24
+ $lte: string;
25
+ $eq: string;
26
+ $ne: string;
27
+ $startsWith: string;
28
+ $endsWith: string;
29
+ $includes: string;
30
+ $in: string[];
31
+ $nin: string[];
32
+ }>;
33
+ export type Q_BooleanComparisonValue = boolean;
34
+ export type Q_DateComparisonValue = Q_NumberComparisonValue;
35
+ export type Q_EnumComparisonValue<E> = E | OneOf<{
36
+ $in: E[];
37
+ $nin: E[];
38
+ $ne: E;
39
+ }>;
40
+ export type Q_ExistsValue = {
41
+ $exists: boolean;
42
+ };
43
+ export type Q_NumberValue = Q_NumberComparisonValue | Q_ExistsValue;
44
+ export type Q_StringValue = Q_StringComparisonValue | Q_ExistsValue;
45
+ export type Q_BooleanValue = Q_BooleanComparisonValue | Q_ExistsValue;
46
+ export type Q_DateValue = Q_DateComparisonValue | Q_ExistsValue;
47
+ export type Q_EnumValue<E> = Q_EnumComparisonValue<E> | Q_ExistsValue;
48
+ export type Q_State<S> = S | {
49
+ $in: S[];
50
+ } | {
51
+ $nin: S[];
52
+ } | Q_ExistsValue;
53
+ export type Q_FullTextValue = {
54
+ $search: string;
55
+ $language?: 'zh_CN' | 'en_US';
56
+ };
57
+ export type Q_FullTextKey = '$text';
58
+ export type FulltextFilter = {
59
+ [F in Q_FullTextKey]?: Q_FullTextValue;
60
+ };
61
+ type Q_LogicKey = '$and' | '$or';
62
+ type Q_LinearLogicKey = '$not';
63
+ export type MakeFilterWrapper<F extends Object> = {
64
+ [Q in Q_LogicKey]?: Array<MakeFilterWrapper<F>>;
65
+ } & {
66
+ [Q in Q_LinearLogicKey]?: MakeFilterWrapper<F>;
67
+ } & Partial<F>;
68
+ export type MakeFilter<F extends Object> = {
69
+ '#id'?: NodeId;
70
+ } & MakeFilterWrapper<F>;
71
+ export type RefAttr<A> = {
72
+ '#attr': A;
73
+ } | {
74
+ '#refId': NodeId;
75
+ '#refAttr': string;
76
+ };
77
+ export declare function isRefAttrNode<A>(node: any): node is RefAttr<A>;
78
+ export type JsonFilter<O extends any> = O extends Array<infer P> ? (JsonFilter<P> | undefined)[] | {
79
+ $contains?: P | P[];
80
+ $overlaps?: P | P[];
81
+ } : O extends number ? Q_NumberValue : O extends string ? Q_StringValue : O extends boolean ? Q_BooleanValue : O extends Record<string, any> ? {
82
+ [A in keyof O]?: JsonFilter<O[A]>;
83
+ } : never;
84
+ export type SubQueryPredicateMetadata = {
85
+ '#sqp'?: 'in' | 'not in' | 'all' | 'not all';
86
+ };
87
+ export declare const SUB_QUERY_PREDICATE_KEYWORD = "#sqp";
88
+ export {};
@@ -1,10 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SUB_QUERY_PREDICATE_KEYWORD = exports.isRefAttrNode = exports.EXPRESSION_PREFIX = void 0;
4
- exports.EXPRESSION_PREFIX = '$expr';
5
- function isRefAttrNode(node) {
6
- return node.hasOwnProperty('#attr') || (node.hasOwnProperty('#refId') && node.hasOwnProperty('#refAttr'));
7
- }
8
- exports.isRefAttrNode = isRefAttrNode;
9
- ;
10
- exports.SUB_QUERY_PREDICATE_KEYWORD = '#sqp';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SUB_QUERY_PREDICATE_KEYWORD = exports.isRefAttrNode = exports.EXPRESSION_PREFIX = void 0;
4
+ exports.EXPRESSION_PREFIX = '$expr';
5
+ function isRefAttrNode(node) {
6
+ return node.hasOwnProperty('#attr') || (node.hasOwnProperty('#refId') && node.hasOwnProperty('#refAttr'));
7
+ }
8
+ exports.isRefAttrNode = isRefAttrNode;
9
+ ;
10
+ exports.SUB_QUERY_PREDICATE_KEYWORD = '#sqp';
@@ -1,11 +1,11 @@
1
- /// <reference types="node" />
2
- import { IncomingHttpHeaders, IncomingMessage } from "http";
3
- import { AsyncContext } from "../store/AsyncRowStore";
4
- import { EntityDict } from "./Entity";
5
- export interface EndpointItem<ED extends EntityDict, BackCxt extends AsyncContext<ED>> {
6
- name: string;
7
- params?: string[];
8
- method: 'get' | 'post' | 'put' | 'delete';
9
- fn: (context: BackCxt, params: Record<string, string>, headers: IncomingHttpHeaders, req: IncomingMessage, body?: any) => Promise<any>;
10
- }
11
- export type Endpoint<ED extends EntityDict, BackCxt extends AsyncContext<ED>> = EndpointItem<ED, BackCxt> | EndpointItem<ED, BackCxt>[];
1
+ /// <reference types="node" />
2
+ import { IncomingHttpHeaders, IncomingMessage } from "http";
3
+ import { AsyncContext } from "../store/AsyncRowStore";
4
+ import { EntityDict } from "./Entity";
5
+ export interface EndpointItem<ED extends EntityDict, BackCxt extends AsyncContext<ED>> {
6
+ name: string;
7
+ params?: string[];
8
+ method: 'get' | 'post' | 'put' | 'delete';
9
+ fn: (context: BackCxt, params: Record<string, string>, headers: IncomingHttpHeaders, req: IncomingMessage, body?: any) => Promise<any>;
10
+ }
11
+ export type Endpoint<ED extends EntityDict, BackCxt extends AsyncContext<ED>> = EndpointItem<ED, BackCxt> | EndpointItem<ED, BackCxt>[];