oak-domain 3.0.3 → 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 (203) 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 -38
  5. package/lib/base-app-domain/ActionAuth/Schema.d.ts +186 -160
  6. package/lib/base-app-domain/ActionAuth/Storage.js +39 -42
  7. package/lib/base-app-domain/ActionDefDict.d.ts +8 -9
  8. package/lib/base-app-domain/ActionDefDict.js +9 -11
  9. package/lib/base-app-domain/EntityDict.d.ts +28 -24
  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 -311
  19. package/lib/base-app-domain/ModiEntity/Storage.js +30 -30
  20. package/lib/base-app-domain/Oper/Schema.d.ts +153 -152
  21. package/lib/base-app-domain/Oper/Storage.js +38 -38
  22. package/lib/base-app-domain/OperEntity/Schema.d.ts +373 -300
  23. package/lib/base-app-domain/OperEntity/Storage.js +30 -30
  24. package/lib/base-app-domain/Path/Schema.d.ts +149 -0
  25. package/lib/base-app-domain/Path/Schema.js +2 -0
  26. package/lib/base-app-domain/Path/Storage.d.ts +3 -0
  27. package/lib/base-app-domain/Path/Storage.js +54 -0
  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 -10
  31. package/lib/base-app-domain/Relation.js +4 -10
  32. package/lib/base-app-domain/RelationAuth/Schema.d.ts +214 -180
  33. package/lib/base-app-domain/RelationAuth/Storage.js +44 -46
  34. package/lib/base-app-domain/Storage.js +31 -27
  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 -197
  38. package/lib/base-app-domain/User/Storage.js +33 -33
  39. package/lib/base-app-domain/UserEntityClaim/Schema.d.ts +264 -0
  40. package/lib/base-app-domain/UserEntityClaim/Schema.js +2 -0
  41. package/lib/base-app-domain/UserEntityClaim/Storage.d.ts +3 -0
  42. package/lib/base-app-domain/UserEntityClaim/Storage.js +37 -0
  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 -157
  46. package/lib/base-app-domain/UserEntityGrant/Storage.js +25 -29
  47. package/lib/base-app-domain/UserRelation/Schema.d.ts +208 -194
  48. package/lib/base-app-domain/UserRelation/Storage.js +56 -56
  49. package/lib/base-app-domain/_SubQuery.d.ts +142 -112
  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 -14
  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 -50
  58. package/lib/compiler/localeBuilder.d.ts +27 -22
  59. package/lib/compiler/localeBuilder.js +184 -169
  60. package/lib/compiler/schemalBuilder.d.ts +27 -11
  61. package/lib/compiler/schemalBuilder.js +3569 -3787
  62. package/lib/entities/ActionAuth.d.ts +10 -12
  63. package/lib/entities/ActionAuth.js +31 -29
  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 -0
  71. package/lib/entities/Path.js +35 -0
  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 -0
  78. package/lib/entities/UserEntityClaim.js +17 -0
  79. package/lib/entities/UserEntityGrant.d.ts +9 -8
  80. package/lib/entities/UserEntityGrant.js +15 -18
  81. package/lib/entities/UserRelation.d.ts +10 -10
  82. package/lib/entities/UserRelation.js +38 -38
  83. package/lib/index.d.ts +23 -0
  84. package/lib/index.js +37 -0
  85. package/lib/store/AsyncRowStore.d.ts +60 -58
  86. package/lib/store/AsyncRowStore.js +118 -190
  87. package/lib/store/CascadeStore.d.ts +104 -103
  88. package/lib/store/CascadeStore.js +1688 -2036
  89. package/lib/store/RelationAuth.d.ts +96 -103
  90. package/lib/store/RelationAuth.js +1336 -1492
  91. package/lib/store/SyncRowStore.d.ts +29 -29
  92. package/lib/store/SyncRowStore.js +50 -49
  93. package/lib/store/TriggerExecutor.d.ts +38 -31
  94. package/lib/store/TriggerExecutor.js +459 -532
  95. package/lib/store/actionAuth.d.ts +4 -4
  96. package/lib/store/actionAuth.js +25 -40
  97. package/lib/store/actionDef.d.ts +10 -10
  98. package/lib/store/actionDef.js +278 -353
  99. package/lib/store/checker.d.ts +26 -26
  100. package/lib/store/checker.js +487 -623
  101. package/lib/store/filter.d.ts +85 -123
  102. package/lib/store/filter.js +1651 -1761
  103. package/lib/store/modi.d.ts +13 -13
  104. package/lib/store/modi.js +254 -315
  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 -60
  109. package/lib/timers/vaccum.d.ts +20 -20
  110. package/lib/timers/vaccum.js +111 -176
  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 -11
  115. package/lib/types/AppLoader.js +10 -10
  116. package/lib/types/Aspect.d.ts +1 -3
  117. package/lib/types/Auth.d.ts +70 -74
  118. package/lib/types/Cluster.d.ts +5 -0
  119. package/lib/types/Cluster.js +2 -0
  120. package/lib/types/Connector.d.ts +38 -34
  121. package/lib/types/Connector.js +2 -9
  122. package/lib/types/DataType.d.ts +25 -24
  123. package/lib/types/DataType.js +6 -6
  124. package/lib/types/Demand.d.ts +88 -88
  125. package/lib/types/Demand.js +10 -10
  126. package/lib/types/Endpoint.d.ts +11 -11
  127. package/lib/types/Entity.d.ts +203 -198
  128. package/lib/types/Entity.js +15 -15
  129. package/lib/types/EntityDesc.d.ts +9 -8
  130. package/lib/types/EntityDesc.js +2 -2
  131. package/lib/types/Environment.d.ts +88 -57
  132. package/lib/types/Environment.js +2 -2
  133. package/lib/types/Exception.d.ts +147 -120
  134. package/lib/types/Exception.js +406 -406
  135. package/lib/types/Expression.d.ts +163 -163
  136. package/lib/types/Expression.js +397 -427
  137. package/lib/types/Geo.d.ts +18 -18
  138. package/lib/types/Locale.d.ts +25 -25
  139. package/lib/types/Logger.d.ts +6 -6
  140. package/lib/types/Polyfill.d.ts +24 -24
  141. package/lib/types/Port.d.ts +18 -18
  142. package/lib/types/RowStore.d.ts +18 -18
  143. package/lib/types/RowStore.js +33 -34
  144. package/lib/types/Storage.d.ts +58 -57
  145. package/lib/types/Style.d.ts +11 -11
  146. package/lib/types/Timer.d.ts +14 -14
  147. package/lib/types/Trigger.d.ts +124 -108
  148. package/lib/types/Trigger.js +58 -54
  149. package/lib/types/Watcher.d.ts +19 -19
  150. package/lib/types/index.d.ts +26 -24
  151. package/lib/types/index.js +29 -27
  152. package/lib/types/schema/DataTypes.d.ts +34 -34
  153. package/lib/utils/SimpleConnector.d.ts +64 -50
  154. package/lib/utils/SimpleConnector.js +206 -184
  155. package/lib/utils/assert.d.ts +5 -5
  156. package/lib/utils/assert.js +9 -9
  157. package/lib/utils/concurrent.d.ts +15 -15
  158. package/lib/utils/concurrent.js +63 -89
  159. package/lib/utils/date.js +18 -18
  160. package/lib/utils/{url.d.ts → domain.d.ts} +1 -1
  161. package/lib/utils/{url.js → domain.js} +11 -12
  162. package/lib/utils/geo.js +24 -24
  163. package/lib/utils/lodash.d.ts +24 -20
  164. package/lib/utils/lodash.js +46 -55
  165. package/lib/utils/mask.js +34 -35
  166. package/lib/utils/money.d.ts +6 -6
  167. package/lib/utils/money.js +51 -40
  168. package/lib/utils/projection.d.ts +4 -0
  169. package/lib/utils/projection.js +15 -0
  170. package/lib/utils/random/random.js +19 -24
  171. package/lib/utils/random/random.mp.js +14 -25
  172. package/lib/utils/random/random.native.d.ts +1 -0
  173. package/lib/utils/random/random.native.js +14 -0
  174. package/lib/utils/random/random.web.js +11 -17
  175. package/lib/utils/string.d.ts +28 -28
  176. package/lib/utils/string.js +69 -82
  177. package/lib/utils/url/index.d.ts +7 -0
  178. package/lib/utils/url/index.js +8 -0
  179. package/lib/utils/url/index.mp.d.ts +4 -0
  180. package/lib/utils/url/index.mp.js +8 -0
  181. package/lib/utils/url/index.native.d.ts +12 -0
  182. package/lib/utils/url/index.native.js +7 -0
  183. package/lib/utils/url/index.web.d.ts +12 -0
  184. package/lib/utils/url/index.web.js +7 -0
  185. package/lib/utils/uuid.d.ts +17 -17
  186. package/lib/utils/uuid.js +218 -257
  187. package/lib/utils/validator.d.ts +26 -25
  188. package/lib/utils/validator.js +131 -128
  189. package/lib/utils/version.js +21 -21
  190. package/package.json +51 -49
  191. package/src/entities/ActionAuth.ts +41 -41
  192. package/src/entities/I18n.ts +45 -46
  193. package/src/entities/Modi.ts +69 -69
  194. package/src/entities/ModiEntity.ts +26 -26
  195. package/src/entities/Oper.ts +32 -32
  196. package/src/entities/OperEntity.ts +27 -27
  197. package/src/entities/Path.ts +43 -0
  198. package/src/entities/Relation.ts +43 -43
  199. package/src/entities/RelationAuth.ts +44 -43
  200. package/src/entities/User.ts +48 -48
  201. package/src/entities/UserEntityClaim.ts +30 -0
  202. package/src/entities/UserEntityGrant.ts +24 -27
  203. package/src/entities/UserRelation.ts +50 -50
@@ -1,89 +1,63 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RWLock = void 0;
4
- var tslib_1 = require("tslib");
5
- var assert_1 = tslib_1.__importDefault(require("assert"));
6
- /**
7
- * 模拟一个读写锁,用于同步。
8
- * 注意,千万不要发生自己等自己
9
- */
10
- var RWLock = /** @class */ (function () {
11
- function RWLock() {
12
- this.readNumber = 0;
13
- this.writeNumber = 0;
14
- this.readWaiter = [];
15
- this.writeWaiter = [];
16
- }
17
- RWLock.prototype.acquire = function (mode) {
18
- return tslib_1.__awaiter(this, void 0, void 0, function () {
19
- var p, p;
20
- var _this = this;
21
- return tslib_1.__generator(this, function (_a) {
22
- switch (_a.label) {
23
- case 0:
24
- if (!(mode === 'S')) return [3 /*break*/, 4];
25
- _a.label = 1;
26
- case 1:
27
- if (!(this.writeNumber > 0)) return [3 /*break*/, 3];
28
- p = new Promise(function (resolve) { return _this.readWaiter.push(resolve); });
29
- return [4 /*yield*/, p];
30
- case 2:
31
- _a.sent();
32
- return [3 /*break*/, 1];
33
- case 3:
34
- this.readNumber++;
35
- return [3 /*break*/, 7];
36
- case 4:
37
- if (!(this.writeNumber || this.readNumber)) return [3 /*break*/, 6];
38
- p = new Promise(function (resolve) { return _this.writeWaiter.push(resolve); });
39
- return [4 /*yield*/, p];
40
- case 5:
41
- _a.sent();
42
- return [3 /*break*/, 4];
43
- case 6:
44
- this.writeNumber++;
45
- _a.label = 7;
46
- case 7: return [2 /*return*/];
47
- }
48
- });
49
- });
50
- };
51
- RWLock.prototype.release = function () {
52
- var e_1, _a;
53
- if (this.writeNumber) {
54
- (0, assert_1.default)(this.writeNumber === 1);
55
- this.writeNumber = 0;
56
- if (this.readWaiter.length > 0) {
57
- try {
58
- for (var _b = tslib_1.__values(this.readWaiter), _c = _b.next(); !_c.done; _c = _b.next()) {
59
- var f = _c.value;
60
- f(undefined);
61
- }
62
- }
63
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
64
- finally {
65
- try {
66
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
67
- }
68
- finally { if (e_1) throw e_1.error; }
69
- }
70
- this.readWaiter = [];
71
- }
72
- else if (this.writeWaiter.length > 0) {
73
- var f = this.writeWaiter.pop();
74
- f(undefined);
75
- }
76
- }
77
- else {
78
- (0, assert_1.default)(this.readNumber > 0);
79
- (0, assert_1.default)(this.readWaiter.length === 0);
80
- this.readNumber--;
81
- if (this.readNumber === 0) {
82
- var f = this.writeWaiter.pop();
83
- f && f(undefined);
84
- }
85
- }
86
- };
87
- return RWLock;
88
- }());
89
- exports.RWLock = RWLock;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RWLock = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const assert_1 = tslib_1.__importDefault(require("assert"));
6
+ /**
7
+ * 模拟一个读写锁,用于同步。
8
+ * 注意,千万不要发生自己等自己
9
+ */
10
+ class RWLock {
11
+ readNumber;
12
+ writeNumber;
13
+ readWaiter;
14
+ writeWaiter;
15
+ constructor() {
16
+ this.readNumber = 0;
17
+ this.writeNumber = 0;
18
+ this.readWaiter = [];
19
+ this.writeWaiter = [];
20
+ }
21
+ async acquire(mode) {
22
+ if (mode === 'S') {
23
+ while (this.writeNumber > 0) {
24
+ const p = new Promise((resolve) => this.readWaiter.push(resolve));
25
+ await p;
26
+ }
27
+ this.readNumber++;
28
+ }
29
+ else {
30
+ while (this.writeNumber || this.readNumber) {
31
+ const p = new Promise((resolve) => this.writeWaiter.push(resolve));
32
+ await p;
33
+ }
34
+ this.writeNumber++;
35
+ }
36
+ }
37
+ release() {
38
+ if (this.writeNumber) {
39
+ (0, assert_1.default)(this.writeNumber === 1);
40
+ this.writeNumber = 0;
41
+ if (this.readWaiter.length > 0) {
42
+ for (const f of this.readWaiter) {
43
+ f(undefined);
44
+ }
45
+ this.readWaiter = [];
46
+ }
47
+ else if (this.writeWaiter.length > 0) {
48
+ const f = this.writeWaiter.pop();
49
+ f(undefined);
50
+ }
51
+ }
52
+ else {
53
+ (0, assert_1.default)(this.readNumber > 0);
54
+ (0, assert_1.default)(this.readWaiter.length === 0);
55
+ this.readNumber--;
56
+ if (this.readNumber === 0) {
57
+ const f = this.writeWaiter.pop();
58
+ f && f(undefined);
59
+ }
60
+ }
61
+ }
62
+ }
63
+ exports.RWLock = RWLock;
package/lib/utils/date.js CHANGED
@@ -1,18 +1,18 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.excelStringToDate = void 0;
4
- var tslib_1 = require("tslib");
5
- var dayjs_1 = tslib_1.__importDefault(require("dayjs"));
6
- function excelStringToDate(str) {
7
- if (!str) {
8
- return undefined;
9
- }
10
- if (typeof str === 'number') {
11
- if (str < 100000) {
12
- return (0, dayjs_1.default)((((str - 25569) * 24 - 8) * 3600) * 1000).valueOf(); // excel日期可能为1900-1-1至今的天数
13
- }
14
- return (0, dayjs_1.default)(str).valueOf();
15
- }
16
- return Date.parse(str);
17
- }
18
- exports.excelStringToDate = excelStringToDate;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.excelStringToDate = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
6
+ function excelStringToDate(str) {
7
+ if (!str) {
8
+ return undefined;
9
+ }
10
+ if (typeof str === 'number') {
11
+ if (str < 100000) {
12
+ return (0, dayjs_1.default)((((str - 25569) * 24 - 8) * 3600) * 1000).valueOf(); // excel日期可能为1900-1-1至今的天数
13
+ }
14
+ return (0, dayjs_1.default)(str).valueOf();
15
+ }
16
+ return Date.parse(str);
17
+ }
18
+ exports.excelStringToDate = excelStringToDate;
@@ -1 +1 @@
1
- export declare function composeUrl(url: string, params: Record<string, any>): string;
1
+ export declare function composeUrl(url: string, params: Record<string, any>): string;
@@ -1,12 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.composeUrl = void 0;
4
- var url_1 = require("url");
5
- function composeUrl(url, params) {
6
- var urlSp = new url_1.URLSearchParams(params);
7
- if (url.includes('?')) {
8
- return "".concat(url, "&").concat(urlSp);
9
- }
10
- return "".concat(url, "?").concat(urlSp);
11
- }
12
- exports.composeUrl = composeUrl;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.composeUrl = void 0;
4
+ function composeUrl(url, params) {
5
+ const urlSp = new URLSearchParams(params);
6
+ if (url.includes('?')) {
7
+ return `${url}&${urlSp}`;
8
+ }
9
+ return `${url}?${urlSp}`;
10
+ }
11
+ exports.composeUrl = composeUrl;
package/lib/utils/geo.js CHANGED
@@ -1,24 +1,24 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getDistanceBetweenPoints = void 0;
4
- /**
5
- * 计算地球上两点之间的球面距离
6
- */
7
- function getDistanceBetweenPoints(lat1, lon1, lat2, lon2) {
8
- // 转为弧度
9
- function toRadians(d) {
10
- return d * Math.PI / 180;
11
- }
12
- var R = 6378137; // 地球长半径
13
- var φ1 = toRadians(lat1);
14
- var φ2 = toRadians(lat2);
15
- var Δφ = toRadians(lat2 - lat1);
16
- var Δλ = toRadians(lon2 - lon1);
17
- var a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) +
18
- Math.cos(φ1) * Math.cos(φ2) *
19
- Math.sin(Δλ / 2) * Math.sin(Δλ / 2);
20
- var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
21
- var d = R * c;
22
- return d * 1000;
23
- }
24
- exports.getDistanceBetweenPoints = getDistanceBetweenPoints;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDistanceBetweenPoints = void 0;
4
+ /**
5
+ * 计算地球上两点之间的球面距离
6
+ */
7
+ function getDistanceBetweenPoints(lat1, lon1, lat2, lon2) {
8
+ // 转为弧度
9
+ function toRadians(d) {
10
+ return d * Math.PI / 180;
11
+ }
12
+ const R = 6378137; // 地球长半径
13
+ const φ1 = toRadians(lat1);
14
+ const φ2 = toRadians(lat2);
15
+ const Δφ = toRadians(lat2 - lat1);
16
+ const Δλ = toRadians(lon2 - lon1);
17
+ const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) +
18
+ Math.cos(φ1) * Math.cos(φ2) *
19
+ Math.sin(Δλ / 2) * Math.sin(Δλ / 2);
20
+ const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
21
+ const d = R * c;
22
+ return d * 1000;
23
+ }
24
+ exports.getDistanceBetweenPoints = getDistanceBetweenPoints;
@@ -1,20 +1,24 @@
1
- /**
2
- * 避免lodash打包体积过大
3
- * 像assign, keys尽量使用Object的函数
4
- */
5
- import unset from 'lodash/unset';
6
- import uniqBy from 'lodash/uniqBy';
7
- import pull from 'lodash/pull';
8
- import uniq from 'lodash/uniq';
9
- import get from 'lodash/get';
10
- import set from 'lodash/set';
11
- import intersection from 'lodash/intersection';
12
- import omit from 'lodash/omit';
13
- import merge from 'lodash/merge';
14
- import cloneDeep from 'lodash/cloneDeep';
15
- import pick from 'lodash/pick';
16
- import isEqual from 'lodash/isEqual';
17
- import union from 'lodash/union';
18
- import difference from 'lodash/difference';
19
- import groupBy from 'lodash/groupBy';
20
- export { unset, pull, uniq, uniqBy, get, set, intersection, omit, merge, cloneDeep, pick, isEqual, union, difference, groupBy, };
1
+ /**
2
+ * 避免lodash打包体积过大
3
+ * 像assign, keys尽量使用Object的函数
4
+ */
5
+ import unset from 'lodash/unset';
6
+ import uniqBy from 'lodash/uniqBy';
7
+ import pull from 'lodash/pull';
8
+ import uniq from 'lodash/uniq';
9
+ import get from 'lodash/get';
10
+ import set from 'lodash/set';
11
+ import intersection from 'lodash/intersection';
12
+ import intersectionBy from 'lodash/intersectionBy';
13
+ import omit from 'lodash/omit';
14
+ import merge from 'lodash/merge';
15
+ import cloneDeep from 'lodash/cloneDeep';
16
+ import pick from 'lodash/pick';
17
+ import isEqual from 'lodash/isEqual';
18
+ import union from 'lodash/union';
19
+ import difference from 'lodash/difference';
20
+ import differenceBy from 'lodash/differenceBy';
21
+ import groupBy from 'lodash/groupBy';
22
+ import unionBy from 'lodash/unionBy';
23
+ import pullAll from 'lodash/pullAll';
24
+ export { unset, pull, uniq, uniqBy, get, set, intersection, intersectionBy, omit, merge, cloneDeep, pick, isEqual, union, difference, differenceBy, groupBy, unionBy, pullAll, };
@@ -1,55 +1,46 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.groupBy = exports.difference = exports.union = exports.isEqual = exports.pick = exports.cloneDeep = exports.merge = exports.omit = exports.intersection = exports.set = exports.get = exports.uniqBy = exports.uniq = exports.pull = exports.unset = void 0;
4
- var tslib_1 = require("tslib");
5
- /**
6
- * 避免lodash打包体积过大
7
- * 像assign, keys尽量使用Object的函数
8
- */
9
- var unset_1 = tslib_1.__importDefault(require("lodash/unset"));
10
- exports.unset = unset_1.default;
11
- var uniqBy_1 = tslib_1.__importDefault(require("lodash/uniqBy"));
12
- exports.uniqBy = uniqBy_1.default;
13
- var pull_1 = tslib_1.__importDefault(require("lodash/pull"));
14
- exports.pull = pull_1.default;
15
- var uniq_1 = tslib_1.__importDefault(require("lodash/uniq"));
16
- exports.uniq = uniq_1.default;
17
- var get_1 = tslib_1.__importDefault(require("lodash/get"));
18
- exports.get = get_1.default;
19
- var set_1 = tslib_1.__importDefault(require("lodash/set"));
20
- exports.set = set_1.default;
21
- var intersection_1 = tslib_1.__importDefault(require("lodash/intersection"));
22
- exports.intersection = intersection_1.default;
23
- var omit_1 = tslib_1.__importDefault(require("lodash/omit"));
24
- exports.omit = omit_1.default;
25
- var merge_1 = tslib_1.__importDefault(require("lodash/merge"));
26
- exports.merge = merge_1.default;
27
- var cloneDeep_1 = tslib_1.__importDefault(require("lodash/cloneDeep"));
28
- exports.cloneDeep = cloneDeep_1.default;
29
- var pick_1 = tslib_1.__importDefault(require("lodash/pick"));
30
- exports.pick = pick_1.default;
31
- var isEqual_1 = tslib_1.__importDefault(require("lodash/isEqual"));
32
- exports.isEqual = isEqual_1.default;
33
- var union_1 = tslib_1.__importDefault(require("lodash/union"));
34
- exports.union = union_1.default;
35
- var difference_1 = tslib_1.__importDefault(require("lodash/difference"));
36
- exports.difference = difference_1.default;
37
- var groupBy_1 = tslib_1.__importDefault(require("lodash/groupBy"));
38
- exports.groupBy = groupBy_1.default;
39
- // export {
40
- // unset,
41
- // pull,
42
- // uniq,
43
- // uniqBy,
44
- // get,
45
- // set,
46
- // intersection,
47
- // omit,
48
- // merge,
49
- // cloneDeep,
50
- // pick,
51
- // isEqual,
52
- // union,
53
- // difference,
54
- // groupBy,
55
- // } from 'lodash';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pullAll = exports.unionBy = exports.groupBy = exports.differenceBy = exports.difference = exports.union = exports.isEqual = exports.pick = exports.cloneDeep = exports.merge = exports.omit = exports.intersectionBy = exports.intersection = exports.set = exports.get = exports.uniqBy = exports.uniq = exports.pull = exports.unset = void 0;
4
+ const tslib_1 = require("tslib");
5
+ /**
6
+ * 避免lodash打包体积过大
7
+ * 像assign, keys尽量使用Object的函数
8
+ */
9
+ const unset_1 = tslib_1.__importDefault(require("lodash/unset"));
10
+ exports.unset = unset_1.default;
11
+ const uniqBy_1 = tslib_1.__importDefault(require("lodash/uniqBy"));
12
+ exports.uniqBy = uniqBy_1.default;
13
+ const pull_1 = tslib_1.__importDefault(require("lodash/pull"));
14
+ exports.pull = pull_1.default;
15
+ const uniq_1 = tslib_1.__importDefault(require("lodash/uniq"));
16
+ exports.uniq = uniq_1.default;
17
+ const get_1 = tslib_1.__importDefault(require("lodash/get"));
18
+ exports.get = get_1.default;
19
+ const set_1 = tslib_1.__importDefault(require("lodash/set"));
20
+ exports.set = set_1.default;
21
+ const intersection_1 = tslib_1.__importDefault(require("lodash/intersection"));
22
+ exports.intersection = intersection_1.default;
23
+ const intersectionBy_1 = tslib_1.__importDefault(require("lodash/intersectionBy"));
24
+ exports.intersectionBy = intersectionBy_1.default;
25
+ const omit_1 = tslib_1.__importDefault(require("lodash/omit"));
26
+ exports.omit = omit_1.default;
27
+ const merge_1 = tslib_1.__importDefault(require("lodash/merge"));
28
+ exports.merge = merge_1.default;
29
+ const cloneDeep_1 = tslib_1.__importDefault(require("lodash/cloneDeep"));
30
+ exports.cloneDeep = cloneDeep_1.default;
31
+ const pick_1 = tslib_1.__importDefault(require("lodash/pick"));
32
+ exports.pick = pick_1.default;
33
+ const isEqual_1 = tslib_1.__importDefault(require("lodash/isEqual"));
34
+ exports.isEqual = isEqual_1.default;
35
+ const union_1 = tslib_1.__importDefault(require("lodash/union"));
36
+ exports.union = union_1.default;
37
+ const difference_1 = tslib_1.__importDefault(require("lodash/difference"));
38
+ exports.difference = difference_1.default;
39
+ const differenceBy_1 = tslib_1.__importDefault(require("lodash/differenceBy"));
40
+ exports.differenceBy = differenceBy_1.default;
41
+ const groupBy_1 = tslib_1.__importDefault(require("lodash/groupBy"));
42
+ exports.groupBy = groupBy_1.default;
43
+ const unionBy_1 = tslib_1.__importDefault(require("lodash/unionBy"));
44
+ exports.unionBy = unionBy_1.default;
45
+ const pullAll_1 = tslib_1.__importDefault(require("lodash/pullAll"));
46
+ exports.pullAll = pullAll_1.default;
package/lib/utils/mask.js CHANGED
@@ -1,35 +1,34 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.maskStar = exports.maskName = exports.maskMobile = exports.maskIdCard = void 0;
4
- var maskIdCard = function (idCardNumber) {
5
- if (!idCardNumber instanceof String) {
6
- throw new Error("身份证号码必须是String类型");
7
- }
8
- var begin = idCardNumber.slice(0, 4);
9
- var end = idCardNumber.slice(idCardNumber.length - 4, 4);
10
- for (var i = 0; i < idCardNumber.length - 8; i++) {
11
- begin = begin.concat("*");
12
- }
13
- return begin.concat(end);
14
- };
15
- exports.maskIdCard = maskIdCard;
16
- var maskMobile = function (mobile) {
17
- var begin = mobile.slice(0, 3);
18
- var end = mobile.slice(7, 11);
19
- return begin.concat("****").concat(end);
20
- };
21
- exports.maskMobile = maskMobile;
22
- var maskName = function (name) {
23
- return name.slice(0, name.length - 1).concat("*");
24
- };
25
- exports.maskName = maskName;
26
- var maskStar = function (str, frontLen, endLen, star) {
27
- if (star === void 0) { star = '*'; }
28
- var len = str.length - frontLen - endLen;
29
- var xing = '';
30
- for (var i = 0; i < len; i++) {
31
- xing += star;
32
- }
33
- return str.substring(0, frontLen) + xing + str.substring(str.length - endLen);
34
- };
35
- exports.maskStar = maskStar;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.maskStar = exports.maskName = exports.maskMobile = exports.maskIdCard = void 0;
4
+ const maskIdCard = (idCardNumber) => {
5
+ if (!idCardNumber instanceof String) {
6
+ throw new Error("身份证号码必须是String类型");
7
+ }
8
+ let begin = idCardNumber.slice(0, 4);
9
+ let end = idCardNumber.slice(idCardNumber.length - 4, 4);
10
+ for (let i = 0; i < idCardNumber.length - 8; i++) {
11
+ begin = begin.concat("*");
12
+ }
13
+ return begin.concat(end);
14
+ };
15
+ exports.maskIdCard = maskIdCard;
16
+ const maskMobile = (mobile) => {
17
+ let begin = mobile.slice(0, 3);
18
+ let end = mobile.slice(7, 11);
19
+ return begin.concat("****").concat(end);
20
+ };
21
+ exports.maskMobile = maskMobile;
22
+ const maskName = (name) => {
23
+ return name.slice(0, name.length - 1).concat("*");
24
+ };
25
+ exports.maskName = maskName;
26
+ const maskStar = (str, frontLen, endLen, star = '*') => {
27
+ const len = str.length - frontLen - endLen;
28
+ let xing = '';
29
+ for (let i = 0; i < len; i++) {
30
+ xing += star;
31
+ }
32
+ return str.substring(0, frontLen) + xing + str.substring(str.length - endLen);
33
+ };
34
+ exports.maskStar = maskStar;
@@ -1,6 +1,6 @@
1
- declare const ToCent: (float: number) => number;
2
- declare const ToYuan: (int: number) => number;
3
- declare const StringToCent: (value: string, allowNegative?: true) => number | undefined;
4
- declare const CentToString: (value: number) => string | undefined;
5
- declare const ThousandCont: (value: number) => string | undefined;
6
- export { ToCent, ToYuan, StringToCent, CentToString, ThousandCont };
1
+ declare const ToCent: (float: number) => number;
2
+ declare const ToYuan: (int: number) => number;
3
+ declare const StringToCent: (value: string, allowNegative?: true) => number | undefined;
4
+ declare const CentToString: (value: number) => string | undefined;
5
+ declare const ThousandCont: (value: number, decimalPlaces?: number) => string | undefined;
6
+ export { ToCent, ToYuan, StringToCent, CentToString, ThousandCont };
@@ -1,40 +1,51 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ThousandCont = exports.CentToString = exports.StringToCent = exports.ToYuan = exports.ToCent = void 0;
4
- var ToCent = function (float) {
5
- return Math.round(float * 100);
6
- };
7
- exports.ToCent = ToCent;
8
- var ToYuan = function (int) {
9
- return Math.round(int) / 100;
10
- };
11
- exports.ToYuan = ToYuan;
12
- var StringToCent = function (value, allowNegative) {
13
- var numValue = parseInt(value, 10);
14
- if (typeof numValue === 'number' && (numValue >= 0 || allowNegative)) {
15
- return ToCent(numValue);
16
- }
17
- };
18
- exports.StringToCent = StringToCent;
19
- var CentToString = function (value) {
20
- if (typeof value === 'number') {
21
- return "".concat(ToYuan(value));
22
- }
23
- };
24
- exports.CentToString = CentToString;
25
- var ThousandCont = function (value) {
26
- var value1 = "".concat(value);
27
- var numArr = value1.split('.');
28
- value1 = numArr[0];
29
- var result = '';
30
- while (value1.length > 3) {
31
- result = ',' + value1.slice(-3) + result;
32
- value1 = value1.slice(0, value1.length - 3);
33
- }
34
- if (value1) {
35
- result = value1 + result;
36
- }
37
- result = numArr[1] ? result + '.' + numArr[1] : result;
38
- return result;
39
- };
40
- exports.ThousandCont = ThousandCont;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ThousandCont = exports.CentToString = exports.StringToCent = exports.ToYuan = exports.ToCent = void 0;
4
+ const ToCent = (float) => {
5
+ return Math.round(float * 100);
6
+ };
7
+ exports.ToCent = ToCent;
8
+ const ToYuan = (int) => {
9
+ return Math.round(int) / 100;
10
+ };
11
+ exports.ToYuan = ToYuan;
12
+ const StringToCent = (value, allowNegative) => {
13
+ const numValue = parseInt(value, 10);
14
+ if (typeof numValue === 'number' && (numValue >= 0 || allowNegative)) {
15
+ return ToCent(numValue);
16
+ }
17
+ };
18
+ exports.StringToCent = StringToCent;
19
+ const CentToString = (value) => {
20
+ if (typeof value === 'number') {
21
+ return `${ToYuan(value)}`;
22
+ }
23
+ };
24
+ exports.CentToString = CentToString;
25
+ const ThousandCont = (value, decimalPlaces) => {
26
+ let value1 = `${value}`;
27
+ const numArr = value1.split('.');
28
+ value1 = numArr[0];
29
+ let result = '';
30
+ while (value1.length > 3) {
31
+ result = ',' + value1.slice(-3) + result;
32
+ value1 = value1.slice(0, value1.length - 3);
33
+ }
34
+ if (value1) {
35
+ result = value1 + result;
36
+ }
37
+ if (decimalPlaces && decimalPlaces > 0) {
38
+ if (numArr[1]) {
39
+ const decimalPart = numArr[1].padEnd(decimalPlaces, '0').slice(0, decimalPlaces);
40
+ result = result + '.' + decimalPart;
41
+ }
42
+ else {
43
+ result = result + '.' + '0'.repeat(decimalPlaces);
44
+ }
45
+ }
46
+ else {
47
+ result = numArr[1] ? result + '.' + numArr[1] : result;
48
+ }
49
+ return result;
50
+ };
51
+ exports.ThousandCont = ThousandCont;
@@ -0,0 +1,4 @@
1
+ import { EntityDict } from '../types/Entity';
2
+ import { EntityDict as BaseEntityDict } from '../base-app-domain';
3
+ import { StorageSchema } from '..';
4
+ export declare function makeProjection<ED extends BaseEntityDict & EntityDict, T extends keyof ED>(entity: T, schema: StorageSchema<ED>): ED[T]["Selection"]["data"];
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeProjection = void 0;
4
+ const Entity_1 = require("../types/Entity");
5
+ function makeProjection(entity, schema) {
6
+ const { attributes } = schema[entity];
7
+ const attrs = Object.keys(attributes);
8
+ attrs.push(Entity_1.PrimaryKeyAttribute, Entity_1.CreateAtAttribute, Entity_1.UpdateAtAttribute, Entity_1.DeleteAtAttribute);
9
+ const projection = {};
10
+ attrs.forEach((attr) => Object.assign(projection, {
11
+ [attr]: 1,
12
+ }));
13
+ return projection;
14
+ }
15
+ exports.makeProjection = makeProjection;