oak-domain 2.3.2 → 2.4.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 (160) 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 -1
  4. package/lib/actions/relation.js +38 -2
  5. package/lib/base-app-domain/ActionDefDict.d.ts +5 -5
  6. package/lib/base-app-domain/ActionDefDict.js +7 -7
  7. package/lib/base-app-domain/EntityDict.d.ts +12 -12
  8. package/lib/base-app-domain/EntityDict.js +2 -2
  9. package/lib/base-app-domain/Modi/Action.d.ts +10 -10
  10. package/lib/base-app-domain/Modi/Action.js +14 -14
  11. package/lib/base-app-domain/Modi/Schema.d.ts +146 -148
  12. package/lib/base-app-domain/Modi/Schema.js +2 -2
  13. package/lib/base-app-domain/Modi/Storage.d.ts +3 -3
  14. package/lib/base-app-domain/Modi/Storage.js +60 -60
  15. package/lib/base-app-domain/ModiEntity/Schema.d.ts +162 -164
  16. package/lib/base-app-domain/ModiEntity/Schema.js +2 -2
  17. package/lib/base-app-domain/ModiEntity/Storage.d.ts +3 -3
  18. package/lib/base-app-domain/ModiEntity/Storage.js +26 -26
  19. package/lib/base-app-domain/Oper/Schema.d.ts +144 -146
  20. package/lib/base-app-domain/Oper/Schema.js +2 -2
  21. package/lib/base-app-domain/Oper/Storage.d.ts +3 -3
  22. package/lib/base-app-domain/Oper/Storage.js +29 -29
  23. package/lib/base-app-domain/OperEntity/Schema.d.ts +178 -180
  24. package/lib/base-app-domain/OperEntity/Schema.js +2 -2
  25. package/lib/base-app-domain/OperEntity/Storage.d.ts +3 -3
  26. package/lib/base-app-domain/OperEntity/Storage.js +26 -26
  27. package/lib/base-app-domain/Storage.d.ts +3 -3
  28. package/lib/base-app-domain/Storage.js +15 -15
  29. package/lib/base-app-domain/User/Schema.d.ts +128 -130
  30. package/lib/base-app-domain/User/Schema.js +2 -2
  31. package/lib/base-app-domain/User/Storage.d.ts +3 -3
  32. package/lib/base-app-domain/User/Storage.js +25 -25
  33. package/lib/base-app-domain/_SubQuery.d.ts +36 -36
  34. package/lib/base-app-domain/_SubQuery.js +2 -2
  35. package/lib/base-app-domain/index.d.ts +3 -3
  36. package/lib/base-app-domain/index.js +6 -6
  37. package/lib/checkers/index.d.ts +5 -5
  38. package/lib/checkers/index.js +15 -13
  39. package/lib/compiler/env.d.ts +11 -11
  40. package/lib/compiler/env.js +39 -39
  41. package/lib/compiler/schemalBuilder.d.ts +2 -2
  42. package/lib/compiler/schemalBuilder.js +3301 -3245
  43. package/lib/compiler/uiBuilder.d.ts +1 -1
  44. package/lib/compiler/uiBuilder.js +3 -3
  45. package/lib/entities/Modi.d.ts +11 -11
  46. package/lib/entities/Modi.js +46 -46
  47. package/lib/entities/ModiEntity.d.ts +8 -8
  48. package/lib/entities/ModiEntity.js +15 -15
  49. package/lib/entities/Oper.d.ts +10 -10
  50. package/lib/entities/Oper.js +17 -17
  51. package/lib/entities/OperEntity.d.ts +8 -8
  52. package/lib/entities/OperEntity.js +15 -15
  53. package/lib/entities/User.d.ts +7 -7
  54. package/lib/entities/User.js +12 -12
  55. package/lib/store/AsyncRowStore.d.ts +48 -48
  56. package/lib/store/AsyncRowStore.js +183 -183
  57. package/lib/store/CascadeStore.d.ts +91 -91
  58. package/lib/store/CascadeStore.js +1594 -1594
  59. package/lib/store/SyncRowStore.d.ts +29 -29
  60. package/lib/store/SyncRowStore.js +48 -48
  61. package/lib/store/TriggerExecutor.d.ts +32 -32
  62. package/lib/store/TriggerExecutor.js +527 -508
  63. package/lib/store/actionDef.d.ts +9 -9
  64. package/lib/store/actionDef.js +135 -135
  65. package/lib/store/checker.d.ts +13 -7
  66. package/lib/store/checker.js +498 -391
  67. package/lib/store/filter.d.ts +109 -100
  68. package/lib/store/filter.js +893 -878
  69. package/lib/store/modi.d.ts +13 -13
  70. package/lib/store/modi.js +198 -206
  71. package/lib/store/relation.d.ts +13 -13
  72. package/lib/store/relation.js +66 -66
  73. package/lib/store/selection.d.ts +7 -7
  74. package/lib/store/selection.js +235 -235
  75. package/lib/triggers/index.d.ts +6 -6
  76. package/lib/triggers/index.js +11 -11
  77. package/lib/triggers/modi.d.ts +5 -5
  78. package/lib/triggers/modi.js +72 -72
  79. package/lib/types/Action.d.ts +18 -14
  80. package/lib/types/Action.js +2 -2
  81. package/lib/types/AppLoader.d.ts +11 -11
  82. package/lib/types/AppLoader.js +10 -10
  83. package/lib/types/Aspect.d.ts +12 -12
  84. package/lib/types/Aspect.js +4 -4
  85. package/lib/types/Auth.d.ts +66 -66
  86. package/lib/types/Auth.js +2 -2
  87. package/lib/types/Connector.d.ts +26 -26
  88. package/lib/types/Connector.js +9 -9
  89. package/lib/types/Context.d.ts +7 -7
  90. package/lib/types/Context.js +3 -3
  91. package/lib/types/DataType.d.ts +18 -18
  92. package/lib/types/DataType.js +5 -5
  93. package/lib/types/Demand.d.ts +77 -77
  94. package/lib/types/Demand.js +9 -9
  95. package/lib/types/Endpoint.d.ts +11 -0
  96. package/lib/types/Endpoint.js +3 -0
  97. package/lib/types/Entity.d.ts +176 -190
  98. package/lib/types/Entity.js +14 -15
  99. package/lib/types/Exception.d.ts +88 -83
  100. package/lib/types/Exception.js +267 -252
  101. package/lib/types/Expression.d.ts +163 -141
  102. package/lib/types/Expression.js +427 -402
  103. package/lib/types/Geo.d.ts +18 -18
  104. package/lib/types/Geo.js +2 -2
  105. package/lib/types/Locale.d.ts +24 -24
  106. package/lib/types/Locale.js +2 -2
  107. package/lib/types/Logger.d.ts +5 -5
  108. package/lib/types/Logger.js +3 -3
  109. package/lib/types/Polyfill.d.ts +23 -23
  110. package/lib/types/Polyfill.js +2 -2
  111. package/lib/types/Port.d.ts +17 -0
  112. package/lib/types/Port.js +2 -0
  113. package/lib/types/RowStore.d.ts +12 -12
  114. package/lib/types/RowStore.js +34 -34
  115. package/lib/types/Storage.d.ts +56 -56
  116. package/lib/types/Storage.js +2 -2
  117. package/lib/types/Timer.d.ts +13 -13
  118. package/lib/types/Timer.js +2 -2
  119. package/lib/types/Trigger.d.ts +100 -100
  120. package/lib/types/Trigger.js +39 -39
  121. package/lib/types/Txn.d.ts +2 -2
  122. package/lib/types/Txn.js +3 -3
  123. package/lib/types/Watcher.d.ts +19 -19
  124. package/lib/types/Watcher.js +4 -4
  125. package/lib/types/index.d.ts +21 -19
  126. package/lib/types/index.js +24 -22
  127. package/lib/types/schema/DataTypes.d.ts +32 -32
  128. package/lib/types/schema/DataTypes.js +3 -3
  129. package/lib/utils/SimpleConnector.d.ts +30 -30
  130. package/lib/utils/SimpleConnector.js +117 -117
  131. package/lib/utils/assert.d.ts +5 -5
  132. package/lib/utils/assert.js +9 -9
  133. package/lib/utils/concurrent.d.ts +15 -15
  134. package/lib/utils/concurrent.js +89 -89
  135. package/lib/utils/cron.d.ts +1 -1
  136. package/lib/utils/cron.js +18 -18
  137. package/lib/utils/date.d.ts +1 -0
  138. package/lib/utils/date.js +18 -0
  139. package/lib/utils/geo.d.ts +4 -4
  140. package/lib/utils/geo.js +24 -24
  141. package/lib/utils/lodash.d.ts +20 -20
  142. package/lib/utils/lodash.js +55 -55
  143. package/lib/utils/random/random.d.ts +1 -1
  144. package/lib/utils/random/random.js +24 -24
  145. package/lib/utils/random/random.mp.d.ts +1 -1
  146. package/lib/utils/random/random.mp.js +25 -25
  147. package/lib/utils/random/random.web.d.ts +1 -1
  148. package/lib/utils/random/random.web.js +17 -17
  149. package/lib/utils/string.d.ts +22 -22
  150. package/lib/utils/string.js +70 -70
  151. package/lib/utils/uuid.d.ts +12 -12
  152. package/lib/utils/uuid.js +194 -194
  153. package/lib/utils/validator.d.ts +23 -23
  154. package/lib/utils/validator.js +123 -123
  155. package/package.json +48 -48
  156. package/src/entities/Modi.ts +68 -68
  157. package/src/entities/ModiEntity.ts +24 -24
  158. package/src/entities/Oper.ts +28 -28
  159. package/src/entities/OperEntity.ts +24 -24
  160. package/src/entities/User.ts +19 -19
@@ -1,9 +1,9 @@
1
- import { ActionDictOfEntityDict, BBWatcher, Checker, EntityDict, StorageSchema, Trigger } from "../types";
2
- import { SyncContext } from "./SyncRowStore";
3
- import { AsyncContext } from "./AsyncRowStore";
4
- export declare function getFullProjection<ED extends EntityDict, T extends keyof ED>(entity: T, schema: StorageSchema<ED>): ED[T]["Selection"]["data"];
5
- export declare function analyzeActionDefDict<ED extends EntityDict, Cxt extends SyncContext<ED> | AsyncContext<ED>>(schema: StorageSchema<ED>, actionDefDict: ActionDictOfEntityDict<ED>): {
6
- triggers: Trigger<ED, keyof ED, Cxt>[];
7
- checkers: Checker<ED, keyof ED, Cxt>[];
8
- watchers: BBWatcher<ED, keyof ED>[];
9
- };
1
+ import { ActionDictOfEntityDict, BBWatcher, Checker, EntityDict, StorageSchema, Trigger } from "../types";
2
+ import { SyncContext } from "./SyncRowStore";
3
+ import { AsyncContext } from "./AsyncRowStore";
4
+ export declare function getFullProjection<ED extends EntityDict, T extends keyof ED>(entity: T, schema: StorageSchema<ED>): ED[T]["Selection"]["data"];
5
+ export declare function analyzeActionDefDict<ED extends EntityDict, Cxt extends SyncContext<ED> | AsyncContext<ED>>(schema: StorageSchema<ED>, actionDefDict: ActionDictOfEntityDict<ED>): {
6
+ triggers: Trigger<ED, keyof ED, Cxt>[];
7
+ checkers: Checker<ED, keyof ED, Cxt>[];
8
+ watchers: BBWatcher<ED, keyof ED>[];
9
+ };
@@ -1,135 +1,135 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.analyzeActionDefDict = exports.getFullProjection = void 0;
4
- var tslib_1 = require("tslib");
5
- function getFullProjection(entity, schema) {
6
- var attributes = schema[entity].attributes;
7
- var projection = {
8
- id: 1,
9
- $$createAt$$: 1,
10
- $$updateAt$$: 1,
11
- $$deleteAt$$: 1,
12
- };
13
- Object.keys(attributes).forEach(function (k) {
14
- var _a;
15
- return Object.assign(projection, (_a = {},
16
- _a[k] = 1,
17
- _a));
18
- });
19
- return projection;
20
- }
21
- exports.getFullProjection = getFullProjection;
22
- function makeIntrinsicWatchers(schema) {
23
- var _this = this;
24
- var watchers = [];
25
- var _loop_1 = function (entity) {
26
- var attributes = schema[entity].attributes;
27
- var now = Date.now();
28
- var expiresAt = attributes.expiresAt, expired = attributes.expired;
29
- if (expiresAt && expiresAt.type === 'datetime' && expired && expired.type === 'boolean') {
30
- // 如果有定义expiresAt和expired,则自动生成一个检查的watcher
31
- watchers.push({
32
- entity: entity,
33
- name: "\u5BF9\u8C61".concat(entity, "\u4E0A\u7684\u8FC7\u671F\u81EA\u52A8watcher"),
34
- filter: function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
35
- return tslib_1.__generator(this, function (_a) {
36
- return [2 /*return*/, {
37
- expired: false,
38
- expiresAt: {
39
- $lte: now,
40
- },
41
- }];
42
- });
43
- }); },
44
- action: 'update',
45
- actionData: {
46
- expired: true,
47
- },
48
- });
49
- }
50
- };
51
- for (var entity in schema) {
52
- _loop_1(entity);
53
- }
54
- return watchers;
55
- }
56
- function analyzeActionDefDict(schema, actionDefDict) {
57
- var checkers = [];
58
- var triggers = [];
59
- for (var entity in actionDefDict) {
60
- var _loop_2 = function (attr) {
61
- var def = actionDefDict[entity][attr];
62
- var _a = def, stm = _a.stm, is = _a.is;
63
- var _loop_3 = function (action) {
64
- var _b, _c;
65
- var actionStm = stm[action];
66
- var conditionalFilter = typeof actionStm[0] === 'string' ? (_b = {},
67
- _b[attr] = actionStm[0],
68
- _b) : (_c = {},
69
- _c[attr] = {
70
- $in: actionStm[0],
71
- },
72
- _c);
73
- checkers.push({
74
- action: action,
75
- type: 'row',
76
- entity: entity,
77
- filter: conditionalFilter,
78
- errMsg: '',
79
- });
80
- checkers.push({
81
- action: action,
82
- type: 'data',
83
- entity: entity,
84
- priority: 10,
85
- checker: function (data) {
86
- var _a;
87
- Object.assign(data, (_a = {},
88
- _a[attr] = stm[action][1],
89
- _a));
90
- }
91
- });
92
- };
93
- for (var action in stm) {
94
- _loop_3(action);
95
- }
96
- if (is) {
97
- checkers.push({
98
- action: 'create',
99
- type: 'data',
100
- entity: entity,
101
- priority: 10,
102
- checker: function (data) {
103
- var _a;
104
- if (data instanceof Array) {
105
- data.forEach(function (ele) {
106
- var _a;
107
- if (!ele[attr]) {
108
- Object.assign(ele, (_a = {},
109
- _a[attr] = is,
110
- _a));
111
- }
112
- });
113
- }
114
- else {
115
- if (!data[attr]) {
116
- Object.assign(data, (_a = {},
117
- _a[attr] = is,
118
- _a));
119
- }
120
- }
121
- }
122
- });
123
- }
124
- };
125
- for (var attr in actionDefDict[entity]) {
126
- _loop_2(attr);
127
- }
128
- }
129
- return {
130
- triggers: triggers,
131
- checkers: checkers,
132
- watchers: makeIntrinsicWatchers(schema),
133
- };
134
- }
135
- exports.analyzeActionDefDict = analyzeActionDefDict;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.analyzeActionDefDict = exports.getFullProjection = void 0;
4
+ var tslib_1 = require("tslib");
5
+ function getFullProjection(entity, schema) {
6
+ var attributes = schema[entity].attributes;
7
+ var projection = {
8
+ id: 1,
9
+ $$createAt$$: 1,
10
+ $$updateAt$$: 1,
11
+ $$deleteAt$$: 1,
12
+ };
13
+ Object.keys(attributes).forEach(function (k) {
14
+ var _a;
15
+ return Object.assign(projection, (_a = {},
16
+ _a[k] = 1,
17
+ _a));
18
+ });
19
+ return projection;
20
+ }
21
+ exports.getFullProjection = getFullProjection;
22
+ function makeIntrinsicWatchers(schema) {
23
+ var _this = this;
24
+ var watchers = [];
25
+ var _loop_1 = function (entity) {
26
+ var attributes = schema[entity].attributes;
27
+ var now = Date.now();
28
+ var expiresAt = attributes.expiresAt, expired = attributes.expired;
29
+ if (expiresAt && expiresAt.type === 'datetime' && expired && expired.type === 'boolean') {
30
+ // 如果有定义expiresAt和expired,则自动生成一个检查的watcher
31
+ watchers.push({
32
+ entity: entity,
33
+ name: "\u5BF9\u8C61".concat(entity, "\u4E0A\u7684\u8FC7\u671F\u81EA\u52A8watcher"),
34
+ filter: function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
35
+ return tslib_1.__generator(this, function (_a) {
36
+ return [2 /*return*/, {
37
+ expired: false,
38
+ expiresAt: {
39
+ $lte: now,
40
+ },
41
+ }];
42
+ });
43
+ }); },
44
+ action: 'update',
45
+ actionData: {
46
+ expired: true,
47
+ },
48
+ });
49
+ }
50
+ };
51
+ for (var entity in schema) {
52
+ _loop_1(entity);
53
+ }
54
+ return watchers;
55
+ }
56
+ function analyzeActionDefDict(schema, actionDefDict) {
57
+ var checkers = [];
58
+ var triggers = [];
59
+ for (var entity in actionDefDict) {
60
+ var _loop_2 = function (attr) {
61
+ var def = actionDefDict[entity][attr];
62
+ var _a = def, stm = _a.stm, is = _a.is;
63
+ var _loop_3 = function (action) {
64
+ var _b, _c;
65
+ var actionStm = stm[action];
66
+ var conditionalFilter = typeof actionStm[0] === 'string' ? (_b = {},
67
+ _b[attr] = actionStm[0],
68
+ _b) : (_c = {},
69
+ _c[attr] = {
70
+ $in: actionStm[0],
71
+ },
72
+ _c);
73
+ checkers.push({
74
+ action: action,
75
+ type: 'row',
76
+ entity: entity,
77
+ filter: conditionalFilter,
78
+ errMsg: '',
79
+ });
80
+ checkers.push({
81
+ action: action,
82
+ type: 'data',
83
+ entity: entity,
84
+ priority: 10,
85
+ checker: function (data) {
86
+ var _a;
87
+ Object.assign(data, (_a = {},
88
+ _a[attr] = stm[action][1],
89
+ _a));
90
+ }
91
+ });
92
+ };
93
+ for (var action in stm) {
94
+ _loop_3(action);
95
+ }
96
+ if (is) {
97
+ checkers.push({
98
+ action: 'create',
99
+ type: 'data',
100
+ entity: entity,
101
+ priority: 10,
102
+ checker: function (data) {
103
+ var _a;
104
+ if (data instanceof Array) {
105
+ data.forEach(function (ele) {
106
+ var _a;
107
+ if (!ele[attr]) {
108
+ Object.assign(ele, (_a = {},
109
+ _a[attr] = is,
110
+ _a));
111
+ }
112
+ });
113
+ }
114
+ else {
115
+ if (!data[attr]) {
116
+ Object.assign(data, (_a = {},
117
+ _a[attr] = is,
118
+ _a));
119
+ }
120
+ }
121
+ }
122
+ });
123
+ }
124
+ };
125
+ for (var attr in actionDefDict[entity]) {
126
+ _loop_2(attr);
127
+ }
128
+ }
129
+ return {
130
+ triggers: triggers,
131
+ checkers: checkers,
132
+ watchers: makeIntrinsicWatchers(schema),
133
+ };
134
+ }
135
+ exports.analyzeActionDefDict = analyzeActionDefDict;
@@ -1,7 +1,13 @@
1
- import { Checker, EntityDict, OperateOption, SelectOption, StorageSchema, Trigger } from "../types";
2
- import { EntityDict as BaseEntityDict } from '../base-app-domain';
3
- import { AsyncContext } from "./AsyncRowStore";
4
- import { SyncContext } from './SyncRowStore';
5
- export declare function translateCheckerInAsyncContext<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>>(checker: Checker<ED, keyof ED, Cxt>): Trigger<ED, keyof ED, Cxt>['fn'];
6
- export declare function translateCheckerInSyncContext<ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends SyncContext<ED>>(checker: Checker<ED, T, Cxt>): (operation: ED[T]['Operation'], context: Cxt, option: OperateOption | SelectOption) => void;
7
- export declare function createRelationHierarchyCheckers<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED> | SyncContext<ED>>(schema: StorageSchema<ED>): Checker<ED, keyof ED, Cxt>[];
1
+ import { AuthDefDict, Checker, EntityDict, OperateOption, SelectOption, StorageSchema, Trigger } from "../types";
2
+ import { EntityDict as BaseEntityDict } from '../base-app-domain';
3
+ import { AsyncContext } from "./AsyncRowStore";
4
+ import { SyncContext } from './SyncRowStore';
5
+ export declare function translateCheckerInAsyncContext<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>>(checker: Checker<ED, keyof ED, Cxt>): {
6
+ fn: Trigger<ED, keyof ED, Cxt>['fn'];
7
+ when: 'before' | 'after';
8
+ };
9
+ export declare function translateCheckerInSyncContext<ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends SyncContext<ED>>(checker: Checker<ED, T, Cxt>): {
10
+ fn: (operation: ED[T]['Operation'], context: Cxt, option: OperateOption | SelectOption) => void;
11
+ when: 'before' | 'after';
12
+ };
13
+ export declare function createAuthCheckers<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED> | SyncContext<ED>>(schema: StorageSchema<ED>, authDict: AuthDefDict<ED>): Checker<ED, keyof ED, Cxt>[];