midway-fatcms 0.0.1-beta.1 → 0.0.1-beta.10
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.
- package/dist/config/config.default.js +52 -15
- package/dist/controller/base/BaseApiController.js +9 -6
- package/dist/controller/gateway/CrudMtdGatewayController.js +3 -0
- package/dist/controller/gateway/DocGatewayController.js +13 -8
- package/dist/controller/gateway/StaticController.d.ts +3 -0
- package/dist/controller/gateway/StaticController.js +41 -21
- package/dist/controller/home.controller.js +2 -2
- package/dist/controller/manage/CrudStandardDesignApi.js +83 -68
- package/dist/controller/manage/DeployManageApi.js +6 -4
- package/dist/controller/manage/SuperAdminManageApi.js +12 -8
- package/dist/controller/manage/SysConfigMangeApi.js +3 -1
- package/dist/controller/manage/UserAccountManageApi.d.ts +1 -1
- package/dist/controller/manage/UserAccountManageApi.js +5 -0
- package/dist/controller/myinfo/AuthController.d.ts +0 -4
- package/dist/controller/myinfo/AuthController.js +0 -53
- package/dist/controller/render/AppRenderController.js +4 -2
- package/dist/index.d.ts +28 -4
- package/dist/index.js +28 -4
- package/dist/libs/global-config/global-config.d.ts +39 -0
- package/dist/libs/global-config/global-config.js +32 -0
- package/dist/models/SystemTables.d.ts +0 -3
- package/dist/models/SystemTables.js +1 -4
- package/dist/service/AuthService.js +8 -5
- package/dist/service/EnumInfoService.js +7 -4
- package/dist/service/FileCenterService.js +13 -9
- package/dist/service/SysConfigService.js +4 -2
- package/dist/service/UserAccountService.js +10 -6
- package/dist/service/VisitStatService.js +4 -2
- package/dist/service/WorkbenchService.js +4 -2
- package/dist/service/anyapi/AnyApiService.js +4 -2
- package/dist/service/crudstd/CrudStdService.js +6 -2
- package/dist/service/curd/CurdMixByAccountService.js +12 -6
- package/dist/service/curd/CurdMixByDictService.js +4 -2
- package/dist/service/curd/CurdMixBySysConfigService.js +4 -2
- package/dist/service/curd/CurdMixByWorkbenchService.js +4 -2
- package/dist/service/curd/CurdMixUtils.d.ts +7 -0
- package/dist/service/curd/CurdMixUtils.js +31 -1
- package/dist/service/proxyapi/ProxyApiLoadService.js +7 -4
- package/dist/views/404_app.html +31 -0
- package/dist/views/404_workbench.html +34 -0
- package/dist/views/static/favicon.ico +0 -0
- package/package.json +5 -1
- package/src/config/config.default.ts +58 -27
- package/src/controller/base/BaseApiController.ts +13 -13
- package/src/controller/gateway/CrudMtdGatewayController.ts +5 -1
- package/src/controller/gateway/DocGatewayController.ts +9 -1
- package/src/controller/gateway/StaticController.ts +50 -25
- package/src/controller/home.controller.ts +8 -10
- package/src/controller/manage/CrudStandardDesignApi.ts +139 -94
- package/src/controller/manage/DeployManageApi.ts +4 -1
- package/src/controller/manage/SuperAdminManageApi.ts +11 -2
- package/src/controller/manage/SysConfigMangeApi.ts +4 -1
- package/src/controller/manage/UserAccountManageApi.ts +6 -0
- package/src/controller/myinfo/AuthController.ts +4 -66
- package/src/controller/render/AppRenderController.ts +17 -14
- package/src/index.ts +33 -4
- package/src/libs/global-config/global-config.ts +72 -0
- package/src/models/SystemTables.ts +0 -4
- package/src/service/AuthService.ts +11 -6
- package/src/service/EnumInfoService.ts +6 -1
- package/src/service/FileCenterService.ts +8 -2
- package/src/service/SysConfigService.ts +9 -5
- package/src/service/UserAccountService.ts +11 -1
- package/src/service/VisitStatService.ts +5 -1
- package/src/service/WorkbenchService.ts +6 -1
- package/src/service/anyapi/AnyApiService.ts +4 -1
- package/src/service/crudstd/CrudStdService.ts +11 -1
- package/src/service/curd/CurdMixByAccountService.ts +13 -5
- package/src/service/curd/CurdMixByDictService.ts +7 -1
- package/src/service/curd/CurdMixBySysConfigService.ts +6 -1
- package/src/service/curd/CurdMixByWorkbenchService.ts +5 -1
- package/src/service/curd/CurdMixUtils.ts +42 -12
- package/src/service/proxyapi/ProxyApiLoadService.ts +9 -1
- package/src/views/404_app.html +31 -0
- package/src/views/404_workbench.html +34 -0
- package/src/views/static/favicon.ico +0 -0
- package/dist/controller/medstatistic/MedAdminController.d.ts +0 -35
- package/dist/controller/medstatistic/MedAdminController.js +0 -205
- package/dist/controller/medstatistic/MedClientController.d.ts +0 -28
- package/dist/controller/medstatistic/MedClientController.js +0 -188
- package/dist/controller/medstatistic/MedMessageService.d.ts +0 -19
- package/dist/controller/medstatistic/MedMessageService.js +0 -95
- package/dist/controller/medstatistic/MedScoreService.d.ts +0 -21
- package/dist/controller/medstatistic/MedScoreService.js +0 -107
- package/dist/controller/medstatistic/constants.d.ts +0 -32
- package/dist/controller/medstatistic/constants.js +0 -43
- package/src/controller/medstatistic/MedAdminController.ts +0 -221
- package/src/controller/medstatistic/MedClientController.ts +0 -188
- package/src/controller/medstatistic/MedMessageService.ts +0 -89
- package/src/controller/medstatistic/MedScoreService.ts +0 -108
- package/src/controller/medstatistic/constants.ts +0 -63
|
@@ -24,6 +24,7 @@ const FileCenterService_1 = require("../../service/FileCenterService");
|
|
|
24
24
|
const SystemTables_1 = require("../../models/SystemTables");
|
|
25
25
|
const keys_1 = require("../../libs/crud-pro/models/keys");
|
|
26
26
|
const WorkbenchService_1 = require("../../service/WorkbenchService");
|
|
27
|
+
const global_config_1 = require("../../libs/global-config/global-config");
|
|
27
28
|
function toAssetsSchema(fileList) {
|
|
28
29
|
for (let i = 0; i < fileList.length; i++) {
|
|
29
30
|
const fileListElement = fileList[i];
|
|
@@ -109,6 +110,7 @@ let DeployManageApi = class DeployManageApi extends BaseApiController_1.BaseApiC
|
|
|
109
110
|
if (!Array.isArray(cdnResources) || cdnResources.length === 0) {
|
|
110
111
|
throw new devops_1.BizException('cdnResources参数不存在');
|
|
111
112
|
}
|
|
113
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
112
114
|
const workbench = await this.curdMixService.executeCrudByCfg({
|
|
113
115
|
data: {
|
|
114
116
|
package_assets: JSON.stringify(toAssetsSchema(cdnResources)),
|
|
@@ -118,8 +120,8 @@ let DeployManageApi = class DeployManageApi extends BaseApiController_1.BaseApiC
|
|
|
118
120
|
}
|
|
119
121
|
}, {
|
|
120
122
|
sqlTable: SystemTables_1.SystemTables.sys_workbench,
|
|
121
|
-
sqlDatabase:
|
|
122
|
-
sqlDdType:
|
|
123
|
+
sqlDatabase: SystemDbName,
|
|
124
|
+
sqlDdType: SystemDbType,
|
|
123
125
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_UPDATE
|
|
124
126
|
});
|
|
125
127
|
const app = await this.curdMixService.executeCrudByCfg({
|
|
@@ -131,8 +133,8 @@ let DeployManageApi = class DeployManageApi extends BaseApiController_1.BaseApiC
|
|
|
131
133
|
}
|
|
132
134
|
}, {
|
|
133
135
|
sqlTable: SystemTables_1.SystemTables.sys_app,
|
|
134
|
-
sqlDatabase:
|
|
135
|
-
sqlDdType:
|
|
136
|
+
sqlDatabase: SystemDbName,
|
|
137
|
+
sqlDdType: SystemDbType,
|
|
136
138
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_UPDATE
|
|
137
139
|
});
|
|
138
140
|
this.workbenchService.clearCache();
|
|
@@ -18,11 +18,13 @@ const permission_middleware_1 = require("../../middleware/permission.middleware"
|
|
|
18
18
|
const SystemPerm_1 = require("../../models/SystemPerm");
|
|
19
19
|
const SystemTables_1 = require("../../models/SystemTables");
|
|
20
20
|
const common_dto_1 = require("../../libs/utils/common-dto");
|
|
21
|
+
const global_config_1 = require("../../libs/global-config/global-config");
|
|
21
22
|
let SuperAdminManageApi = class SuperAdminManageApi extends BaseApiController_1.BaseApiController {
|
|
22
23
|
/**
|
|
23
24
|
* 预设系统内置功能点数据
|
|
24
25
|
*/
|
|
25
26
|
async presetsFuncCode() {
|
|
27
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
26
28
|
const funcCodeList = Object.keys(SystemPerm_1.SystemFuncCodeNameMap);
|
|
27
29
|
for (let i = 0; i < funcCodeList.length; i++) {
|
|
28
30
|
const funcCode = funcCodeList[i];
|
|
@@ -36,8 +38,8 @@ let SuperAdminManageApi = class SuperAdminManageApi extends BaseApiController_1.
|
|
|
36
38
|
}, {
|
|
37
39
|
sqlTable: SystemTables_1.SystemTables.sys_perm_func,
|
|
38
40
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_INSERT,
|
|
39
|
-
sqlDatabase:
|
|
40
|
-
sqlDdType:
|
|
41
|
+
sqlDatabase: SystemDbName,
|
|
42
|
+
sqlDdType: SystemDbType,
|
|
41
43
|
});
|
|
42
44
|
}
|
|
43
45
|
return common_dto_1.CommonResult.successRes();
|
|
@@ -46,6 +48,7 @@ let SuperAdminManageApi = class SuperAdminManageApi extends BaseApiController_1.
|
|
|
46
48
|
* 预设系统内置角色数据
|
|
47
49
|
*/
|
|
48
50
|
async presetsRoleCode() {
|
|
51
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
49
52
|
const roleCodeList = [SystemPerm_1.SystemRoleCode.DevOpsViewer, SystemPerm_1.SystemRoleCode.DevOpsWriter];
|
|
50
53
|
for (let i = 0; i < roleCodeList.length; i++) {
|
|
51
54
|
const roleCode = roleCodeList[i];
|
|
@@ -59,8 +62,8 @@ let SuperAdminManageApi = class SuperAdminManageApi extends BaseApiController_1.
|
|
|
59
62
|
}, {
|
|
60
63
|
sqlTable: SystemTables_1.SystemTables.sys_perm_role,
|
|
61
64
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_INSERT,
|
|
62
|
-
sqlDatabase:
|
|
63
|
-
sqlDdType:
|
|
65
|
+
sqlDatabase: SystemDbName,
|
|
66
|
+
sqlDdType: SystemDbType,
|
|
64
67
|
});
|
|
65
68
|
}
|
|
66
69
|
return common_dto_1.CommonResult.successRes();
|
|
@@ -69,6 +72,7 @@ let SuperAdminManageApi = class SuperAdminManageApi extends BaseApiController_1.
|
|
|
69
72
|
* 预设系统内置:角色和功能点的关系
|
|
70
73
|
*/
|
|
71
74
|
async presetsRoleFuncList() {
|
|
75
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
72
76
|
const funcCodeList = Object.keys(SystemPerm_1.SystemFuncCodeNameMap);
|
|
73
77
|
for (let i = 0; i < funcCodeList.length; i++) {
|
|
74
78
|
const funcCode = funcCodeList[i];
|
|
@@ -81,8 +85,8 @@ let SuperAdminManageApi = class SuperAdminManageApi extends BaseApiController_1.
|
|
|
81
85
|
}, {
|
|
82
86
|
sqlTable: SystemTables_1.SystemTables.sys_perm_role_func,
|
|
83
87
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_INSERT,
|
|
84
|
-
sqlDatabase:
|
|
85
|
-
sqlDdType:
|
|
88
|
+
sqlDatabase: SystemDbName,
|
|
89
|
+
sqlDdType: SystemDbType,
|
|
86
90
|
});
|
|
87
91
|
}
|
|
88
92
|
for (let i = 0; i < funcCodeList.length; i++) {
|
|
@@ -97,8 +101,8 @@ let SuperAdminManageApi = class SuperAdminManageApi extends BaseApiController_1.
|
|
|
97
101
|
}, {
|
|
98
102
|
sqlTable: SystemTables_1.SystemTables.sys_perm_role_func,
|
|
99
103
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_INSERT,
|
|
100
|
-
sqlDatabase:
|
|
101
|
-
sqlDdType:
|
|
104
|
+
sqlDatabase: SystemDbName,
|
|
105
|
+
sqlDdType: SystemDbType,
|
|
102
106
|
});
|
|
103
107
|
}
|
|
104
108
|
}
|
|
@@ -18,6 +18,7 @@ const SystemPerm_1 = require("../../models/SystemPerm");
|
|
|
18
18
|
const bizmodels_1 = require("../../models/bizmodels");
|
|
19
19
|
const SystemTables_1 = require("../../models/SystemTables");
|
|
20
20
|
const common_dto_1 = require("../../libs/utils/common-dto");
|
|
21
|
+
const global_config_1 = require("../../libs/global-config/global-config");
|
|
21
22
|
let SysConfigMangeApi = class SysConfigMangeApi extends BaseApiController_1.BaseApiController {
|
|
22
23
|
async getSysConfigList() {
|
|
23
24
|
return this.executeSysSimpleSQL('sys_configs', keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_PAGE, {
|
|
@@ -47,12 +48,13 @@ let SysConfigMangeApi = class SysConfigMangeApi extends BaseApiController_1.Base
|
|
|
47
48
|
});
|
|
48
49
|
}
|
|
49
50
|
async updateSysConfig() {
|
|
51
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
50
52
|
const body = this.ctx.request.body;
|
|
51
53
|
const id = body.condition.id;
|
|
52
54
|
if (!id) {
|
|
53
55
|
return common_dto_1.CommonResult.errorRes("id不能为空");
|
|
54
56
|
}
|
|
55
|
-
const sysConfig = await this.curdMixService.getBbUtil(
|
|
57
|
+
const sysConfig = await this.curdMixService.getBbUtil(SystemDbName, SystemDbType).getOne({ condition: body.condition }, SystemTables_1.SystemTables.sys_configs);
|
|
56
58
|
if (!sysConfig) {
|
|
57
59
|
return common_dto_1.CommonResult.errorRes("配置项不存在");
|
|
58
60
|
}
|
|
@@ -18,6 +18,7 @@ const permission_middleware_1 = require("../../middleware/permission.middleware"
|
|
|
18
18
|
const SystemPerm_1 = require("../../models/SystemPerm");
|
|
19
19
|
const exceptions_1 = require("../../libs/crud-pro/exceptions");
|
|
20
20
|
const SystemTables_1 = require("../../models/SystemTables");
|
|
21
|
+
const global_config_1 = require("../../libs/global-config/global-config");
|
|
21
22
|
const accountNameBlacklist = new Set(['sa', 'root', 'admin', 'superadmin', 'administrator', 'sys', 'sysop', 'schedule_user']);
|
|
22
23
|
function checkAccountCreateBlacklist(value) {
|
|
23
24
|
if (!value) {
|
|
@@ -54,6 +55,10 @@ let UserAccountManageApi = class UserAccountManageApi extends BaseApiController_
|
|
|
54
55
|
async createUserAccount() {
|
|
55
56
|
const body = this.ctx.request.body;
|
|
56
57
|
body.data.account_id = (0, functions_1.createUniqueId)();
|
|
58
|
+
const { generateUserAccountId } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
59
|
+
if (typeof generateUserAccountId === 'function') {
|
|
60
|
+
body.data.account_id = await generateUserAccountId(body.data);
|
|
61
|
+
}
|
|
57
62
|
return this.executeSysSimpleSQL(SystemTables_1.SystemTables.sys_user_account, keys_1.KeysOfSimpleSQL.SIMPLE_INSERT, {
|
|
58
63
|
validateCfg: {
|
|
59
64
|
'data.login_name': LOGIN_NAME_VALIDATE,
|
|
@@ -11,7 +11,6 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.AuthController = void 0;
|
|
13
13
|
const core_1 = require("@midwayjs/core");
|
|
14
|
-
const axios_1 = require("axios");
|
|
15
14
|
const BaseApiController_1 = require("../base/BaseApiController");
|
|
16
15
|
const AuthService_1 = require("../../service/AuthService");
|
|
17
16
|
const userSession_1 = require("../../models/userSession");
|
|
@@ -51,52 +50,6 @@ let AuthController = class AuthController extends BaseApiController_1.BaseApiCon
|
|
|
51
50
|
this.ctx.cookies.set(userSession_1.SESSION_ID_KEY, userSessionInfo.sessionId, userSession_1.sessionCookieCfg);
|
|
52
51
|
return common_dto_1.CommonResult.successMsg('登录成功', userSessionInfo);
|
|
53
52
|
}
|
|
54
|
-
/**
|
|
55
|
-
* 使用https://medstatistic.com/账号登录
|
|
56
|
-
*/
|
|
57
|
-
async loginByMedStatistic() {
|
|
58
|
-
var _a;
|
|
59
|
-
const { medStatisticToken } = this.ctx.request.body;
|
|
60
|
-
if (!medStatisticToken) {
|
|
61
|
-
return common_dto_1.CommonResult.errorRes("medStatisticToken is null");
|
|
62
|
-
}
|
|
63
|
-
const workbench = await this.workbenchService.getCurrentHostWorkbenchInfo();
|
|
64
|
-
if (!workbench) {
|
|
65
|
-
throw new exceptions_1.CommonException('WORKBENCH_IS_NOT_FOUND', '站点未找到');
|
|
66
|
-
}
|
|
67
|
-
// 先删除之前的cookie
|
|
68
|
-
const sessionId = this.ctx.cookies.get(userSession_1.SESSION_ID_KEY, userSession_1.sessionCookieCfg);
|
|
69
|
-
await this.authService.removeUserSession(sessionId);
|
|
70
|
-
let userInfoRes = null;
|
|
71
|
-
try {
|
|
72
|
-
userInfoRes = await axios_1.default.get("https://console.medstatistic.com/api/user/index?lang=zh-cn", {
|
|
73
|
-
headers: {
|
|
74
|
-
host: "console.medstatistic.com",
|
|
75
|
-
origin: "https://console.medstatistic.com",
|
|
76
|
-
token: medStatisticToken
|
|
77
|
-
},
|
|
78
|
-
responseType: 'json'
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
catch (e) {
|
|
82
|
-
return common_dto_1.CommonResult.errorRes((e === null || e === void 0 ? void 0 : e.message) || '');
|
|
83
|
-
}
|
|
84
|
-
const userInfo = (_a = userInfoRes === null || userInfoRes === void 0 ? void 0 : userInfoRes.data) === null || _a === void 0 ? void 0 : _a.data;
|
|
85
|
-
if (!userInfo || !userInfo.id) {
|
|
86
|
-
return common_dto_1.CommonResult.errorRes("USER_NOT_EXIST");
|
|
87
|
-
}
|
|
88
|
-
const consumerUserInfo = {
|
|
89
|
-
workbenchCode: workbench.workbench_code,
|
|
90
|
-
accountType: 'medstatistic',
|
|
91
|
-
accountId: userInfo.id,
|
|
92
|
-
nickName: userInfo.nickname,
|
|
93
|
-
loginName: `${userInfo.id}_${userInfo.username}`,
|
|
94
|
-
avatar: userInfo.avatar,
|
|
95
|
-
};
|
|
96
|
-
const userSessionInfo = await this.authService.createUserSessionForConsumer(consumerUserInfo);
|
|
97
|
-
this.ctx.cookies.set(userSession_1.SESSION_ID_KEY, userSessionInfo.sessionId, userSession_1.sessionCookieCfg);
|
|
98
|
-
return common_dto_1.CommonResult.successMsg('登录成功', userSessionInfo);
|
|
99
|
-
}
|
|
100
53
|
/**
|
|
101
54
|
* 退出
|
|
102
55
|
*/
|
|
@@ -153,12 +106,6 @@ __decorate([
|
|
|
153
106
|
__metadata("design:paramtypes", []),
|
|
154
107
|
__metadata("design:returntype", Promise)
|
|
155
108
|
], AuthController.prototype, "login", null);
|
|
156
|
-
__decorate([
|
|
157
|
-
(0, core_1.Post)('/loginByMedStatistic'),
|
|
158
|
-
__metadata("design:type", Function),
|
|
159
|
-
__metadata("design:paramtypes", []),
|
|
160
|
-
__metadata("design:returntype", Promise)
|
|
161
|
-
], AuthController.prototype, "loginByMedStatistic", null);
|
|
162
109
|
__decorate([
|
|
163
110
|
(0, core_1.Post)('/logout'),
|
|
164
111
|
__metadata("design:type", Function),
|
|
@@ -20,18 +20,20 @@ const SystemTables_1 = require("../../models/SystemTables");
|
|
|
20
20
|
const WorkbenchService_1 = require("../../service/WorkbenchService");
|
|
21
21
|
const render_utils_1 = require("../../libs/utils/render-utils");
|
|
22
22
|
const crypto_utils_1 = require("../../libs/utils/crypto-utils");
|
|
23
|
+
const global_config_1 = require("../../libs/global-config/global-config");
|
|
23
24
|
/**
|
|
24
25
|
* 渲染独立外部应用
|
|
25
26
|
*/
|
|
26
27
|
let AppRenderController = class AppRenderController extends BaseApiController_1.BaseApiController {
|
|
27
28
|
async home(appPath) {
|
|
29
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
28
30
|
const appPathArr = appPath.split('/');
|
|
29
31
|
const appCode = appPathArr[0];
|
|
30
32
|
const res = await this.curdMixService.executeCrudByCfg({ condition: { app_code: appCode } }, {
|
|
31
33
|
sqlTable: SystemTables_1.SystemTables.sys_app,
|
|
32
34
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_ONE,
|
|
33
|
-
sqlDatabase:
|
|
34
|
-
sqlDdType:
|
|
35
|
+
sqlDatabase: SystemDbName,
|
|
36
|
+
sqlDdType: SystemDbType,
|
|
35
37
|
});
|
|
36
38
|
const { row: appInfo } = res.getResModel();
|
|
37
39
|
if (!appInfo) {
|
package/dist/index.d.ts
CHANGED
|
@@ -30,10 +30,6 @@ export * from './controller/manage/SysConfigMangeApi';
|
|
|
30
30
|
export * from './controller/manage/SystemInfoManageApi';
|
|
31
31
|
export * from './controller/manage/UserAccountManageApi';
|
|
32
32
|
export * from './controller/manage/WorkbenchMangeApi';
|
|
33
|
-
export * from './controller/medstatistic/MedAdminController';
|
|
34
|
-
export * from './controller/medstatistic/MedClientController';
|
|
35
|
-
export * from './controller/medstatistic/MedMessageService';
|
|
36
|
-
export * from './controller/medstatistic/MedScoreService';
|
|
37
33
|
export * from './controller/myinfo/AuthController';
|
|
38
34
|
export * from './controller/myinfo/MyInfoController';
|
|
39
35
|
export * from './controller/render/AppRenderController';
|
|
@@ -43,6 +39,7 @@ export * from './filter/notfound.filter';
|
|
|
43
39
|
export * from './middleware/forbidden.middleware';
|
|
44
40
|
export * from './middleware/global.middleware';
|
|
45
41
|
export * from './middleware/tx.middleware';
|
|
42
|
+
export * from './middleware/permission.middleware';
|
|
46
43
|
export * from './service/AuthService';
|
|
47
44
|
export * from './service/EnumInfoService';
|
|
48
45
|
export * from './service/FileCenterService';
|
|
@@ -68,3 +65,30 @@ export * from './service/curd/CurdMixService';
|
|
|
68
65
|
export * from './service/curd/CurdProService';
|
|
69
66
|
export * from './service/proxyapi/ProxyApiLoadService';
|
|
70
67
|
export * from './service/proxyapi/ProxyApiService';
|
|
68
|
+
export * from './models/userSession';
|
|
69
|
+
export * from './models/bizmodels';
|
|
70
|
+
export * from './models/SystemEntities';
|
|
71
|
+
export * from './models/SystemPerm';
|
|
72
|
+
export * from './models/contextLogger';
|
|
73
|
+
export * from './models/devops';
|
|
74
|
+
export * from './models/SystemTables';
|
|
75
|
+
export * from './libs/utils/common-dto';
|
|
76
|
+
export * from './libs/utils/crypto-utils';
|
|
77
|
+
export * from './libs/utils/fatcms-request';
|
|
78
|
+
export * from './libs/utils/functions';
|
|
79
|
+
export * from './libs/utils/ordernum-utils';
|
|
80
|
+
export * from './libs/utils/parseConfig';
|
|
81
|
+
export * from './libs/crud-pro/CrudPro';
|
|
82
|
+
export * from './libs/crud-pro/defaultConfigs';
|
|
83
|
+
export * from './libs/crud-pro/exceptions';
|
|
84
|
+
export * from './libs/crud-pro/interfaces';
|
|
85
|
+
export * from './libs/crud-pro/models/ExecuteContext';
|
|
86
|
+
export * from './libs/crud-pro/models/FuncContext';
|
|
87
|
+
export * from './libs/crud-pro/models/RequestModel';
|
|
88
|
+
export * from './libs/crud-pro/models/SqlCfgModel';
|
|
89
|
+
export * from './libs/crud-pro/models/Transaction';
|
|
90
|
+
export * from './libs/crud-pro/models/keys';
|
|
91
|
+
export * from './libs/crud-pro/models/ExecuteContextFunc';
|
|
92
|
+
export * from './libs/crud-pro/models/RequestCfgModel';
|
|
93
|
+
export * from './libs/crud-pro/models/SqlSegArg';
|
|
94
|
+
export * from './libs/global-config/global-config';
|
package/dist/index.js
CHANGED
|
@@ -48,10 +48,6 @@ __exportStar(require("./controller/manage/SysConfigMangeApi"), exports);
|
|
|
48
48
|
__exportStar(require("./controller/manage/SystemInfoManageApi"), exports);
|
|
49
49
|
__exportStar(require("./controller/manage/UserAccountManageApi"), exports);
|
|
50
50
|
__exportStar(require("./controller/manage/WorkbenchMangeApi"), exports);
|
|
51
|
-
__exportStar(require("./controller/medstatistic/MedAdminController"), exports);
|
|
52
|
-
__exportStar(require("./controller/medstatistic/MedClientController"), exports);
|
|
53
|
-
__exportStar(require("./controller/medstatistic/MedMessageService"), exports);
|
|
54
|
-
__exportStar(require("./controller/medstatistic/MedScoreService"), exports);
|
|
55
51
|
__exportStar(require("./controller/myinfo/AuthController"), exports);
|
|
56
52
|
__exportStar(require("./controller/myinfo/MyInfoController"), exports);
|
|
57
53
|
__exportStar(require("./controller/render/AppRenderController"), exports);
|
|
@@ -61,6 +57,7 @@ __exportStar(require("./filter/notfound.filter"), exports);
|
|
|
61
57
|
__exportStar(require("./middleware/forbidden.middleware"), exports);
|
|
62
58
|
__exportStar(require("./middleware/global.middleware"), exports);
|
|
63
59
|
__exportStar(require("./middleware/tx.middleware"), exports);
|
|
60
|
+
__exportStar(require("./middleware/permission.middleware"), exports);
|
|
64
61
|
__exportStar(require("./service/AuthService"), exports);
|
|
65
62
|
__exportStar(require("./service/EnumInfoService"), exports);
|
|
66
63
|
__exportStar(require("./service/FileCenterService"), exports);
|
|
@@ -86,3 +83,30 @@ __exportStar(require("./service/curd/CurdMixService"), exports);
|
|
|
86
83
|
__exportStar(require("./service/curd/CurdProService"), exports);
|
|
87
84
|
__exportStar(require("./service/proxyapi/ProxyApiLoadService"), exports);
|
|
88
85
|
__exportStar(require("./service/proxyapi/ProxyApiService"), exports);
|
|
86
|
+
__exportStar(require("./models/userSession"), exports);
|
|
87
|
+
__exportStar(require("./models/bizmodels"), exports);
|
|
88
|
+
__exportStar(require("./models/SystemEntities"), exports);
|
|
89
|
+
__exportStar(require("./models/SystemPerm"), exports);
|
|
90
|
+
__exportStar(require("./models/contextLogger"), exports);
|
|
91
|
+
__exportStar(require("./models/devops"), exports);
|
|
92
|
+
__exportStar(require("./models/SystemTables"), exports);
|
|
93
|
+
__exportStar(require("./libs/utils/common-dto"), exports);
|
|
94
|
+
__exportStar(require("./libs/utils/crypto-utils"), exports);
|
|
95
|
+
__exportStar(require("./libs/utils/fatcms-request"), exports);
|
|
96
|
+
__exportStar(require("./libs/utils/functions"), exports);
|
|
97
|
+
__exportStar(require("./libs/utils/ordernum-utils"), exports);
|
|
98
|
+
__exportStar(require("./libs/utils/parseConfig"), exports);
|
|
99
|
+
__exportStar(require("./libs/crud-pro/CrudPro"), exports);
|
|
100
|
+
__exportStar(require("./libs/crud-pro/defaultConfigs"), exports);
|
|
101
|
+
__exportStar(require("./libs/crud-pro/exceptions"), exports);
|
|
102
|
+
__exportStar(require("./libs/crud-pro/interfaces"), exports);
|
|
103
|
+
__exportStar(require("./libs/crud-pro/models/ExecuteContext"), exports);
|
|
104
|
+
__exportStar(require("./libs/crud-pro/models/FuncContext"), exports);
|
|
105
|
+
__exportStar(require("./libs/crud-pro/models/RequestModel"), exports);
|
|
106
|
+
__exportStar(require("./libs/crud-pro/models/SqlCfgModel"), exports);
|
|
107
|
+
__exportStar(require("./libs/crud-pro/models/Transaction"), exports);
|
|
108
|
+
__exportStar(require("./libs/crud-pro/models/keys"), exports);
|
|
109
|
+
__exportStar(require("./libs/crud-pro/models/ExecuteContextFunc"), exports);
|
|
110
|
+
__exportStar(require("./libs/crud-pro/models/RequestCfgModel"), exports);
|
|
111
|
+
__exportStar(require("./libs/crud-pro/models/SqlSegArg"), exports);
|
|
112
|
+
__exportStar(require("./libs/global-config/global-config"), exports);
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { SqlDbType } from '../crud-pro/models/keys';
|
|
2
|
+
interface IGlobalStaticConfig {
|
|
3
|
+
/**
|
|
4
|
+
* CrudStd: 业务系统自定义的修改cfgModel
|
|
5
|
+
* @param reqJson
|
|
6
|
+
* @param cfgModel
|
|
7
|
+
* @param appInfo
|
|
8
|
+
* @param ctx
|
|
9
|
+
*/
|
|
10
|
+
bizUpdateCfgModelForCrudStd(reqJson: any, cfgModel: any, appInfo: any, ctx: any): Promise<any>;
|
|
11
|
+
/**
|
|
12
|
+
* CrudMtd: 业务系统自定义的修改cfgModel
|
|
13
|
+
* @param reqJson
|
|
14
|
+
* @param cfgModel
|
|
15
|
+
* @param methodInfo
|
|
16
|
+
* @param ctx
|
|
17
|
+
*/
|
|
18
|
+
bizUpdateCfgModelForCrudMtd(reqJson: any, cfgModel: any, methodInfo: any, ctx: any): Promise<any>;
|
|
19
|
+
/**
|
|
20
|
+
* 生成用户的账号ID,业务系统可以生成类似工号的ID
|
|
21
|
+
* @param userSubmitData
|
|
22
|
+
*/
|
|
23
|
+
generateUserAccountId(userSubmitData: any): Promise<string>;
|
|
24
|
+
/**
|
|
25
|
+
* 将业务系统表中的userId映射为fatcms的UserAccountId
|
|
26
|
+
* @param bizTableUserId 业余系统表中的UserId
|
|
27
|
+
*/
|
|
28
|
+
toFatcmsUserAccountId(bizTableUserId: any): string;
|
|
29
|
+
SystemDbName: string;
|
|
30
|
+
SystemDbType: SqlDbType;
|
|
31
|
+
}
|
|
32
|
+
declare class GlobalStaticConfig {
|
|
33
|
+
private configObject;
|
|
34
|
+
constructor();
|
|
35
|
+
getConfig(): IGlobalStaticConfig;
|
|
36
|
+
setConfig(configObject: any): void;
|
|
37
|
+
}
|
|
38
|
+
declare const GLOBAL_STATIC_CONFIG: GlobalStaticConfig;
|
|
39
|
+
export { GLOBAL_STATIC_CONFIG };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GLOBAL_STATIC_CONFIG = void 0;
|
|
4
|
+
const keys_1 = require("../crud-pro/models/keys");
|
|
5
|
+
const noop = () => {
|
|
6
|
+
return Promise.resolve();
|
|
7
|
+
};
|
|
8
|
+
class GlobalStaticConfig {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.configObject = {
|
|
11
|
+
bizUpdateCfgModelForCrudStd: noop,
|
|
12
|
+
bizUpdateCfgModelForCrudMtd: noop,
|
|
13
|
+
generateUserAccountId: null,
|
|
14
|
+
toFatcmsUserAccountId: (bizTableUserId) => {
|
|
15
|
+
return bizTableUserId;
|
|
16
|
+
},
|
|
17
|
+
SystemDbName: 'fatcms',
|
|
18
|
+
SystemDbType: keys_1.SqlDbType.mysql,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
getConfig() {
|
|
22
|
+
return this.configObject;
|
|
23
|
+
}
|
|
24
|
+
setConfig(configObject) {
|
|
25
|
+
if (!configObject || typeof configObject !== 'object') {
|
|
26
|
+
throw new Error('参数configObject不能为空');
|
|
27
|
+
}
|
|
28
|
+
Object.assign(this.configObject, configObject);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
const GLOBAL_STATIC_CONFIG = new GlobalStaticConfig();
|
|
32
|
+
exports.GLOBAL_STATIC_CONFIG = GLOBAL_STATIC_CONFIG;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { SqlDbType } from "../libs/crud-pro/models/keys";
|
|
2
1
|
export declare const SystemTables: {
|
|
3
2
|
sys_workbench: string;
|
|
4
3
|
sys_user_account: string;
|
|
@@ -22,6 +21,4 @@ export declare const SystemTables: {
|
|
|
22
21
|
sys_proxyapi: string;
|
|
23
22
|
sys_visit_stats: string;
|
|
24
23
|
};
|
|
25
|
-
export declare const SystemDbName = "fatcms";
|
|
26
|
-
export declare const SystemDbType = SqlDbType.mysql;
|
|
27
24
|
export declare const SystemDevOpsWorkbench = "devops";
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SystemDevOpsWorkbench = exports.
|
|
4
|
-
const keys_1 = require("../libs/crud-pro/models/keys");
|
|
3
|
+
exports.SystemDevOpsWorkbench = exports.SystemTables = void 0;
|
|
5
4
|
exports.SystemTables = {
|
|
6
5
|
sys_workbench: 'sys_workbench',
|
|
7
6
|
sys_user_account: 'sys_user_account',
|
|
@@ -25,6 +24,4 @@ exports.SystemTables = {
|
|
|
25
24
|
sys_proxyapi: 'sys_proxyapi',
|
|
26
25
|
sys_visit_stats: 'sys_visit_stats',
|
|
27
26
|
};
|
|
28
|
-
exports.SystemDbName = 'fatcms';
|
|
29
|
-
exports.SystemDbType = keys_1.SqlDbType.mysql;
|
|
30
27
|
exports.SystemDevOpsWorkbench = 'devops';
|
|
@@ -22,6 +22,7 @@ const UserSessionService_1 = require("./UserSessionService");
|
|
|
22
22
|
const common_dto_1 = require("../libs/utils/common-dto");
|
|
23
23
|
const fatcms_request_1 = require("../libs/utils/fatcms-request");
|
|
24
24
|
const exceptions_1 = require("../libs/crud-pro/exceptions");
|
|
25
|
+
const global_config_1 = require("../libs/global-config/global-config");
|
|
25
26
|
let AuthService = class AuthService {
|
|
26
27
|
/**
|
|
27
28
|
* 明文密码转unsaltedPwd密码
|
|
@@ -116,7 +117,7 @@ let AuthService = class AuthService {
|
|
|
116
117
|
sessionId,
|
|
117
118
|
accountId,
|
|
118
119
|
workbenchCode,
|
|
119
|
-
accountType: userSession_1.SYS_ACCOUNT_TYPE
|
|
120
|
+
accountType: userSession_1.SYS_ACCOUNT_TYPE,
|
|
120
121
|
};
|
|
121
122
|
await this.userSessionService.saveUserSession(sessionInfo);
|
|
122
123
|
return {
|
|
@@ -171,14 +172,15 @@ let AuthService = class AuthService {
|
|
|
171
172
|
* @private
|
|
172
173
|
*/
|
|
173
174
|
async queryUserRoleCodeList(accountId) {
|
|
175
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
174
176
|
const res = await this.curdMixService.executeCrudByCfg({
|
|
175
177
|
condition: { account_id: accountId },
|
|
176
178
|
limit: 10000,
|
|
177
179
|
}, {
|
|
178
180
|
sqlTable: SystemTables_1.SystemTables.sys_perm_user_role,
|
|
179
181
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
|
|
180
|
-
sqlDatabase:
|
|
181
|
-
sqlDdType:
|
|
182
|
+
sqlDatabase: SystemDbName,
|
|
183
|
+
sqlDdType: SystemDbType,
|
|
182
184
|
});
|
|
183
185
|
const rows = res.getResModel().rows || [];
|
|
184
186
|
const roleCodes = rows.map(({ role_code }) => {
|
|
@@ -195,14 +197,15 @@ let AuthService = class AuthService {
|
|
|
195
197
|
if (!roleCodeList || roleCodeList.length === 0) {
|
|
196
198
|
return [];
|
|
197
199
|
}
|
|
200
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
198
201
|
const res = await this.curdMixService.executeCrudByCfg({
|
|
199
202
|
condition: { role_code: { $in: roleCodeList } },
|
|
200
203
|
limit: 10000,
|
|
201
204
|
}, {
|
|
202
205
|
sqlTable: SystemTables_1.SystemTables.sys_perm_role_func,
|
|
203
206
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
|
|
204
|
-
sqlDatabase:
|
|
205
|
-
sqlDdType:
|
|
207
|
+
sqlDatabase: SystemDbName,
|
|
208
|
+
sqlDdType: SystemDbType,
|
|
206
209
|
});
|
|
207
210
|
const rows = res.getResModel().rows || [];
|
|
208
211
|
const funcCodes = rows.map(({ func_code }) => {
|
|
@@ -18,6 +18,7 @@ const SystemTables_1 = require("../models/SystemTables");
|
|
|
18
18
|
const parseConfig_1 = require("../libs/utils/parseConfig");
|
|
19
19
|
const RedisCacheService_1 = require("./base/RedisCacheService");
|
|
20
20
|
const CurdMixByLinkToCustomService_1 = require("./curd/CurdMixByLinkToCustomService");
|
|
21
|
+
const global_config_1 = require("../libs/global-config/global-config");
|
|
21
22
|
function filterEmpty(e) {
|
|
22
23
|
return e.label && typeof e.value !== 'undefined';
|
|
23
24
|
}
|
|
@@ -70,13 +71,14 @@ let EnumInfoService = class EnumInfoService {
|
|
|
70
71
|
});
|
|
71
72
|
}
|
|
72
73
|
async queryEnumInfoBySysCfgEnum(code) {
|
|
74
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
73
75
|
const res1 = await this.curdProService.executeCrudByCfg({
|
|
74
76
|
condition: { config_code: code },
|
|
75
77
|
}, {
|
|
76
78
|
sqlTable: SystemTables_1.SystemTables.sys_configs,
|
|
77
79
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_ONE,
|
|
78
|
-
sqlDatabase:
|
|
79
|
-
sqlDdType:
|
|
80
|
+
sqlDatabase: SystemDbName,
|
|
81
|
+
sqlDdType: SystemDbType,
|
|
80
82
|
});
|
|
81
83
|
const obj = res1.getOneObj();
|
|
82
84
|
if (!obj) {
|
|
@@ -86,13 +88,14 @@ let EnumInfoService = class EnumInfoService {
|
|
|
86
88
|
return rows.map(e => ({ label: e.label, value: e.value, children: e.children })).filter(filterEmpty);
|
|
87
89
|
}
|
|
88
90
|
async queryEnumInfoItemByDict(code) {
|
|
91
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
89
92
|
const res1 = await this.curdProService.executeCrudByCfg({
|
|
90
93
|
condition: { dict_code: code },
|
|
91
94
|
}, {
|
|
92
95
|
sqlTable: SystemTables_1.SystemTables.sys_data_dict_item,
|
|
93
96
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
|
|
94
|
-
sqlDatabase:
|
|
95
|
-
sqlDdType:
|
|
97
|
+
sqlDatabase: SystemDbName,
|
|
98
|
+
sqlDdType: SystemDbType,
|
|
96
99
|
});
|
|
97
100
|
const obj = res1.getResRows();
|
|
98
101
|
if (!obj) {
|
|
@@ -20,7 +20,7 @@ const CurdMixService_1 = require("./curd/CurdMixService");
|
|
|
20
20
|
const keys_1 = require("../libs/crud-pro/models/keys");
|
|
21
21
|
const bizmodels_1 = require("../models/bizmodels");
|
|
22
22
|
const BaseService_1 = require("./base/BaseService");
|
|
23
|
-
const
|
|
23
|
+
const global_config_1 = require("../libs/global-config/global-config");
|
|
24
24
|
function getSuffix(s) {
|
|
25
25
|
if (s) {
|
|
26
26
|
const indexOf = s.lastIndexOf('.');
|
|
@@ -93,12 +93,13 @@ class FileDB {
|
|
|
93
93
|
this.curdMixService = curdMixService;
|
|
94
94
|
}
|
|
95
95
|
async getFileInfo(fileKey) {
|
|
96
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
96
97
|
const condition = { file_key: fileKey };
|
|
97
98
|
const cfgModel = {
|
|
98
99
|
sqlTable: 'sys_file',
|
|
99
100
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_ONE,
|
|
100
|
-
sqlDatabase:
|
|
101
|
-
sqlDdType:
|
|
101
|
+
sqlDatabase: SystemDbName,
|
|
102
|
+
sqlDdType: SystemDbType,
|
|
102
103
|
validateCfg: {
|
|
103
104
|
'condition.file_key': [keys_1.KeysOfValidators.REQUIRED, keys_1.KeysOfValidators.STRING],
|
|
104
105
|
},
|
|
@@ -107,11 +108,12 @@ class FileDB {
|
|
|
107
108
|
return res.getOneObj();
|
|
108
109
|
}
|
|
109
110
|
async saveFileInfo(fileInfo) {
|
|
111
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
110
112
|
const cfgModel = {
|
|
111
113
|
sqlTable: 'sys_file',
|
|
112
114
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_INSERT,
|
|
113
|
-
sqlDatabase:
|
|
114
|
-
sqlDdType:
|
|
115
|
+
sqlDatabase: SystemDbName,
|
|
116
|
+
sqlDdType: SystemDbType,
|
|
115
117
|
};
|
|
116
118
|
return await this.curdMixService.executeCrudByCfg({
|
|
117
119
|
data: fileInfo,
|
|
@@ -121,20 +123,22 @@ class FileDB {
|
|
|
121
123
|
}, cfgModel);
|
|
122
124
|
}
|
|
123
125
|
async saveAssetsLog(fileInfo) {
|
|
126
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
124
127
|
const cfgModel = {
|
|
125
128
|
sqlTable: 'sys_assets_log',
|
|
126
129
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_INSERT,
|
|
127
|
-
sqlDatabase:
|
|
128
|
-
sqlDdType:
|
|
130
|
+
sqlDatabase: SystemDbName,
|
|
131
|
+
sqlDdType: SystemDbType,
|
|
129
132
|
};
|
|
130
133
|
return await this.curdMixService.executeCrudByCfg({ data: fileInfo }, cfgModel);
|
|
131
134
|
}
|
|
132
135
|
async deleteFileInfo(id) {
|
|
136
|
+
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
133
137
|
const cfgModel = {
|
|
134
138
|
sqlTable: 'sys_file',
|
|
135
139
|
sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_DELETE,
|
|
136
|
-
sqlDatabase:
|
|
137
|
-
sqlDdType:
|
|
140
|
+
sqlDatabase: SystemDbName,
|
|
141
|
+
sqlDdType: SystemDbType,
|
|
138
142
|
validateCfg: {
|
|
139
143
|
'condition.id': [keys_1.KeysOfValidators.REQUIRED, keys_1.KeysOfValidators.NUMBER],
|
|
140
144
|
},
|