oak-domain 3.0.4 → 4.0.1

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 (220) 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 +65 -59
  86. package/lib/store/AsyncRowStore.js +176 -116
  87. package/lib/store/CascadeStore.d.ts +106 -103
  88. package/lib/store/CascadeStore.js +1740 -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 +41 -38
  94. package/lib/store/TriggerExecutor.js +468 -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 +1652 -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 +89 -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 +209 -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 +90 -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 +19 -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 +20 -14
  146. package/lib/types/Trigger.d.ts +118 -124
  147. package/lib/types/Trigger.js +35 -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 +3 -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/url/whatwg-url/index.d.ts +3 -0
  185. package/lib/utils/url/whatwg-url/index.js +16 -0
  186. package/lib/utils/url/whatwg-url/lib/URL-impl.d.ts +20 -0
  187. package/lib/utils/url/whatwg-url/lib/URL-impl.js +175 -0
  188. package/lib/utils/url/whatwg-url/lib/URL.d.ts +1 -0
  189. package/lib/utils/url/whatwg-url/lib/URL.js +298 -0
  190. package/lib/utils/url/whatwg-url/lib/URLSearchParams-impl.d.ts +19 -0
  191. package/lib/utils/url/whatwg-url/lib/URLSearchParams-impl.js +126 -0
  192. package/lib/utils/url/whatwg-url/lib/URLSearchParams.d.ts +1 -0
  193. package/lib/utils/url/whatwg-url/lib/URLSearchParams.js +426 -0
  194. package/lib/utils/url/whatwg-url/lib/infra.d.ts +12 -0
  195. package/lib/utils/url/whatwg-url/lib/infra.js +25 -0
  196. package/lib/utils/url/whatwg-url/lib/url-state-machine.d.ts +24 -0
  197. package/lib/utils/url/whatwg-url/lib/url-state-machine.js +1238 -0
  198. package/lib/utils/url/whatwg-url/lib/urlencoded.d.ts +15 -0
  199. package/lib/utils/url/whatwg-url/lib/urlencoded.js +162 -0
  200. package/lib/utils/url/whatwg-url/lib/utils.d.ts +37 -0
  201. package/lib/utils/url/whatwg-url/lib/utils.js +101 -0
  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 +50 -49
  208. package/src/entities/ActionAuth.ts +41 -41
  209. package/src/entities/I18n.ts +45 -46
  210. package/src/entities/Modi.ts +69 -69
  211. package/src/entities/ModiEntity.ts +26 -26
  212. package/src/entities/Oper.ts +32 -32
  213. package/src/entities/OperEntity.ts +27 -27
  214. package/src/entities/Path.ts +43 -43
  215. package/src/entities/Relation.ts +43 -43
  216. package/src/entities/RelationAuth.ts +44 -44
  217. package/src/entities/User.ts +48 -48
  218. package/src/entities/UserEntityClaim.ts +29 -29
  219. package/src/entities/UserEntityGrant.ts +24 -24
  220. package/src/entities/UserRelation.ts +50 -50
@@ -1,96 +1,96 @@
1
- import { EntityDict } from "../base-app-domain";
2
- import { StorageSchema } from "../types";
3
- import { EntityDict as BaseEntityDict, AuthDeduceRelationMap } from "../types/Entity";
4
- import { AsyncContext } from "./AsyncRowStore";
5
- import { SyncContext } from "./SyncRowStore";
6
- export declare class RelationAuth<ED extends EntityDict & BaseEntityDict> {
7
- private authDeduceRelationMap;
8
- private schema;
9
- static SPECIAL_ENTITIES: string[];
10
- private selectFreeEntities;
11
- private updateFreeDict;
12
- constructor(schema: StorageSchema<ED>, authDeduceRelationMap: AuthDeduceRelationMap<ED>, selectFreeEntities?: (keyof ED)[], updateFreeDict?: {
13
- [A in keyof ED]?: string[];
14
- });
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
- 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
- private checkUserRelation;
18
- private checkOperateSpecialEntities2;
19
- private getDeducedEntityFilters;
20
- /**
21
- * 对于selection,解构出最底层的对象,如果最底层的对象可以被访问,则父对象一定可以
22
- * 但对于deduce的子对象,不必再向底层查看(假设deduce对象一般都位于树的最底层附近)
23
- * @param entity
24
- * @param operation
25
- */
26
- private destructSelection;
27
- /**
28
- * 对于operation,解构出一个树形结构,以方便自顶向下的进行访问
29
- * 但对于deduce的子对象,不必再向底层查看
30
- * @param entity
31
- * @param selection
32
- */
33
- private destructOperation;
34
- private makePathFilter;
35
- /**
36
- * 对所有满足操作要求的actionAuth加以判断,找到可以满足当前用户身份的actionAuth
37
- * @param entity
38
- * @param filter
39
- * @param actionAuths
40
- * @param context
41
- * @return
42
- */
43
- private filterActionAuths;
44
- /**
45
- * 对于有些特殊的查询(带很多$or的查询,多发生在系统级别),单个actionAuth无法满足,需要共同加以判定
46
- * @param entity
47
- * @param filter
48
- * @param actionAuths
49
- * @param context
50
- * @param actions
51
- */
52
- private checkActionAuthInGroup;
53
- private checkSelection;
54
- /**
55
- * 此函数判定一个结点是否能通过权限检测,同时寻找该结点本身对象上成立的actionAuth,用于本结点子孙结点的快速检测
56
- * 如果结点因其deduce的对象通过了检测,其被推断对象的actionAuth无法用于更低对象的权限检测
57
- * @param node
58
- * @param context
59
- * @returns
60
- */
61
- private findActionAuthsOnNode;
62
- private checkOperationTree2;
63
- private checkOperation;
64
- /**
65
- * 检查一个operation是否能被通过权限测试
66
- * 一个cascadeOperation是一棵树形结构:
67
- * * 对于select,只要叶子通过其父结点必然通过;
68
- * * 对于update,自顶向下进行检查,若父亲被权限S通过,则只需要检查子对于S有没有相对路径上的actionAuth
69
- * 另外在update中,还需要考虑自建userRelation的case(例如在电子商务网站上购买商品,创建订单同时创建用户和订单的关系)
70
- * @param entity
71
- * @param operation
72
- * @param context
73
- * @param actions
74
- * @returns
75
- */
76
- private checkActions2;
77
- }
78
- /**
79
- * 获取有对entity进行actions操作权限的userRelation关系
80
- * @param params
81
- * @param context
82
- * todo paths改成复数以后这里还未充分测试过
83
- */
84
- export declare function getUserRelationsByActions<ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>>(params: {
85
- entity: T;
86
- filter: ED[T]['Selection']['filter'];
87
- actions: ED[T]['Action'][];
88
- overlap?: boolean;
89
- }, context: Cxt): Promise<{
90
- userRelations: ED["userRelation"]["Schema"][];
91
- userEntities: {
92
- entity: keyof ED;
93
- entityId: string;
94
- userId: string;
95
- }[];
96
- }>;
1
+ import { EntityDict } from "../base-app-domain";
2
+ import { StorageSchema } from "../types";
3
+ import { EntityDict as BaseEntityDict, AuthDeduceRelationMap } from "../types/Entity";
4
+ import { AsyncContext } from "./AsyncRowStore";
5
+ import { SyncContext } from "./SyncRowStore";
6
+ export declare class RelationAuth<ED extends EntityDict & BaseEntityDict> {
7
+ private authDeduceRelationMap;
8
+ private schema;
9
+ static SPECIAL_ENTITIES: string[];
10
+ private selectFreeEntities;
11
+ private updateFreeDict;
12
+ constructor(schema: StorageSchema<ED>, authDeduceRelationMap: AuthDeduceRelationMap<ED>, selectFreeEntities?: (keyof ED)[], updateFreeDict?: {
13
+ [A in keyof ED]?: string[];
14
+ });
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
+ 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
+ private checkUserRelation;
18
+ private checkOperateSpecialEntities2;
19
+ private getDeducedEntityFilters;
20
+ /**
21
+ * 对于selection,解构出最底层的对象,如果最底层的对象可以被访问,则父对象一定可以
22
+ * 但对于deduce的子对象,不必再向底层查看(假设deduce对象一般都位于树的最底层附近)
23
+ * @param entity
24
+ * @param operation
25
+ */
26
+ private destructSelection;
27
+ /**
28
+ * 对于operation,解构出一个树形结构,以方便自顶向下的进行访问
29
+ * 但对于deduce的子对象,不必再向底层查看
30
+ * @param entity
31
+ * @param selection
32
+ */
33
+ private destructOperation;
34
+ private makePathFilter;
35
+ /**
36
+ * 对所有满足操作要求的actionAuth加以判断,找到可以满足当前用户身份的actionAuth
37
+ * @param entity
38
+ * @param filter
39
+ * @param actionAuths
40
+ * @param context
41
+ * @return
42
+ */
43
+ private filterActionAuths;
44
+ /**
45
+ * 对于有些特殊的查询(带很多$or的查询,多发生在系统级别),单个actionAuth无法满足,需要共同加以判定
46
+ * @param entity
47
+ * @param filter
48
+ * @param actionAuths
49
+ * @param context
50
+ * @param actions
51
+ */
52
+ private checkActionAuthInGroup;
53
+ private checkSelection;
54
+ /**
55
+ * 此函数判定一个结点是否能通过权限检测,同时寻找该结点本身对象上成立的actionAuth,用于本结点子孙结点的快速检测
56
+ * 如果结点因其deduce的对象通过了检测,其被推断对象的actionAuth无法用于更低对象的权限检测
57
+ * @param node
58
+ * @param context
59
+ * @returns
60
+ */
61
+ private findActionAuthsOnNode;
62
+ private checkOperationTree2;
63
+ private checkOperation;
64
+ /**
65
+ * 检查一个operation是否能被通过权限测试
66
+ * 一个cascadeOperation是一棵树形结构:
67
+ * * 对于select,只要叶子通过其父结点必然通过;
68
+ * * 对于update,自顶向下进行检查,若父亲被权限S通过,则只需要检查子对于S有没有相对路径上的actionAuth
69
+ * 另外在update中,还需要考虑自建userRelation的case(例如在电子商务网站上购买商品,创建订单同时创建用户和订单的关系)
70
+ * @param entity
71
+ * @param operation
72
+ * @param context
73
+ * @param actions
74
+ * @returns
75
+ */
76
+ private checkActions2;
77
+ }
78
+ /**
79
+ * 获取有对entity进行actions操作权限的userRelation关系
80
+ * @param params
81
+ * @param context
82
+ * todo paths改成复数以后这里还未充分测试过
83
+ */
84
+ export declare function getUserRelationsByActions<ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>>(params: {
85
+ entity: T;
86
+ filter: ED[T]['Selection']['filter'];
87
+ actions: ED[T]['Action'][];
88
+ overlap?: boolean;
89
+ }, context: Cxt): Promise<{
90
+ userRelations: ED["userRelation"]["Schema"][];
91
+ userEntities: {
92
+ entity: keyof ED;
93
+ entityId: string;
94
+ userId: string;
95
+ }[];
96
+ }>;