midway-fatcms 0.0.1-beta.74 → 0.0.1-beta.76
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/.eslintrc.json +14 -14
- package/.prettierrc.js +4 -4
- package/README.md +8 -8
- package/dist/config/config.default.d.ts +3 -3
- package/dist/config/config.default.js +177 -177
- package/dist/config/utils.d.ts +1 -1
- package/dist/config/utils.js +23 -23
- package/dist/configuration.d.ts +7 -7
- package/dist/configuration.js +113 -113
- package/dist/controller/base/BaseApiController.d.ts +48 -48
- package/dist/controller/base/BaseApiController.js +197 -193
- package/dist/controller/gateway/AnyApiGatewayController.d.ts +13 -13
- package/dist/controller/gateway/AnyApiGatewayController.js +55 -55
- package/dist/controller/gateway/AsyncTaskController.d.ts +20 -20
- package/dist/controller/gateway/AsyncTaskController.js +181 -181
- package/dist/controller/gateway/CrudMtdGatewayController.d.ts +21 -21
- package/dist/controller/gateway/CrudMtdGatewayController.js +122 -122
- package/dist/controller/gateway/CrudStdGatewayController.d.ts +39 -39
- package/dist/controller/gateway/CrudStdGatewayController.js +149 -149
- package/dist/controller/gateway/DocGatewayController.d.ts +27 -27
- package/dist/controller/gateway/DocGatewayController.js +179 -179
- package/dist/controller/gateway/FileController.d.ts +32 -32
- package/dist/controller/gateway/FileController.js +160 -160
- package/dist/controller/gateway/ProxyApiGatewayController.d.ts +18 -18
- package/dist/controller/gateway/ProxyApiGatewayController.js +78 -78
- package/dist/controller/gateway/PublicApiController.d.ts +33 -33
- package/dist/controller/gateway/PublicApiController.js +201 -201
- package/dist/controller/gateway/StaticController.d.ts +23 -23
- package/dist/controller/gateway/StaticController.js +286 -286
- package/dist/controller/helpers.controller.d.ts +39 -39
- package/dist/controller/helpers.controller.js +188 -188
- package/dist/controller/home.controller.d.ts +9 -9
- package/dist/controller/home.controller.js +72 -72
- package/dist/controller/manage/AnyApiMangeApi.d.ts +10 -10
- package/dist/controller/manage/AnyApiMangeApi.js +98 -98
- package/dist/controller/manage/AppLogMangeApi.d.ts +10 -10
- package/dist/controller/manage/AppLogMangeApi.js +88 -88
- package/dist/controller/manage/AppMangeApi.d.ts +12 -12
- package/dist/controller/manage/AppMangeApi.js +101 -101
- package/dist/controller/manage/AppPageMangeApi.d.ts +10 -10
- package/dist/controller/manage/AppPageMangeApi.js +87 -87
- package/dist/controller/manage/AppSchemaHistoryApi.d.ts +10 -10
- package/dist/controller/manage/AppSchemaHistoryApi.js +83 -83
- package/dist/controller/manage/CrudMethodsMangeApi.d.ts +10 -10
- package/dist/controller/manage/CrudMethodsMangeApi.js +84 -84
- package/dist/controller/manage/CrudStandardDesignApi.d.ts +46 -46
- package/dist/controller/manage/CrudStandardDesignApi.js +367 -367
- package/dist/controller/manage/DataDictManageApi.d.ts +17 -17
- package/dist/controller/manage/DataDictManageApi.js +165 -165
- package/dist/controller/manage/DeployManageApi.d.ts +19 -19
- package/dist/controller/manage/DeployManageApi.js +180 -180
- package/dist/controller/manage/DocLibManageApi.d.ts +10 -10
- package/dist/controller/manage/DocLibManageApi.js +104 -104
- package/dist/controller/manage/DocManageApi.d.ts +11 -11
- package/dist/controller/manage/DocManageApi.js +130 -130
- package/dist/controller/manage/FileManageApi.d.ts +13 -13
- package/dist/controller/manage/FileManageApi.js +77 -77
- package/dist/controller/manage/LowCodeTplManageApi.d.ts +13 -13
- package/dist/controller/manage/LowCodeTplManageApi.js +86 -86
- package/dist/controller/manage/MenuManageApi.d.ts +10 -10
- package/dist/controller/manage/MenuManageApi.js +93 -93
- package/dist/controller/manage/ProxyApiMangeApi.d.ts +10 -10
- package/dist/controller/manage/ProxyApiMangeApi.js +87 -87
- package/dist/controller/manage/SuperAdminManageApi.d.ts +24 -24
- package/dist/controller/manage/SuperAdminManageApi.js +153 -153
- package/dist/controller/manage/SysConfigMangeApi.d.ts +12 -12
- package/dist/controller/manage/SysConfigMangeApi.js +133 -133
- package/dist/controller/manage/SystemInfoManageApi.d.ts +12 -12
- package/dist/controller/manage/SystemInfoManageApi.js +74 -72
- package/dist/controller/manage/UserAccountManageApi.d.ts +16 -16
- package/dist/controller/manage/UserAccountManageApi.js +153 -153
- package/dist/controller/manage/WorkbenchMangeApi.d.ts +11 -11
- package/dist/controller/manage/WorkbenchMangeApi.js +103 -103
- package/dist/controller/myinfo/AuthController.d.ts +37 -37
- package/dist/controller/myinfo/AuthController.js +157 -157
- package/dist/controller/myinfo/MyInfoController.d.ts +13 -13
- package/dist/controller/myinfo/MyInfoController.js +51 -51
- package/dist/controller/render/AppRenderController.d.ts +12 -12
- package/dist/controller/render/AppRenderController.js +87 -87
- package/dist/controller/test.controller.d.ts +8 -8
- package/dist/controller/test.controller.js +51 -51
- package/dist/filter/default.filter.d.ts +7 -7
- package/dist/filter/default.filter.js +23 -23
- package/dist/filter/notfound.filter.d.ts +5 -5
- package/dist/filter/notfound.filter.js +20 -20
- package/dist/index.d.ts +106 -106
- package/dist/index.js +124 -124
- package/dist/interface.d.ts +29 -29
- package/dist/interface.js +3 -3
- package/dist/libs/crud-pro/CrudPro.d.ts +37 -37
- package/dist/libs/crud-pro/CrudPro.js +136 -136
- package/dist/libs/crud-pro/defaultConfigs.d.ts +4 -4
- package/dist/libs/crud-pro/defaultConfigs.js +15 -15
- package/dist/libs/crud-pro/exceptions.d.ts +106 -106
- package/dist/libs/crud-pro/exceptions.js +119 -119
- package/dist/libs/crud-pro/interfaces.d.ts +166 -166
- package/dist/libs/crud-pro/interfaces.js +12 -12
- package/dist/libs/crud-pro/models/ExecuteContext.d.ts +50 -50
- package/dist/libs/crud-pro/models/ExecuteContext.js +87 -87
- package/dist/libs/crud-pro/models/ExecuteContextFunc.d.ts +38 -38
- package/dist/libs/crud-pro/models/ExecuteContextFunc.js +72 -72
- package/dist/libs/crud-pro/models/FuncContext.d.ts +18 -18
- package/dist/libs/crud-pro/models/FuncContext.js +6 -6
- package/dist/libs/crud-pro/models/RequestCfgModel.d.ts +65 -65
- package/dist/libs/crud-pro/models/RequestCfgModel.js +81 -81
- package/dist/libs/crud-pro/models/RequestModel.d.ts +25 -25
- package/dist/libs/crud-pro/models/RequestModel.js +113 -113
- package/dist/libs/crud-pro/models/ResModel.d.ts +20 -20
- package/dist/libs/crud-pro/models/ResModel.js +2 -2
- package/dist/libs/crud-pro/models/ServiceHub.d.ts +20 -20
- package/dist/libs/crud-pro/models/ServiceHub.js +2 -2
- package/dist/libs/crud-pro/models/SqlCfgModel.d.ts +23 -23
- package/dist/libs/crud-pro/models/SqlCfgModel.js +40 -40
- package/dist/libs/crud-pro/models/SqlSegArg.d.ts +6 -6
- package/dist/libs/crud-pro/models/SqlSegArg.js +12 -12
- package/dist/libs/crud-pro/models/Transaction.d.ts +30 -30
- package/dist/libs/crud-pro/models/Transaction.js +74 -74
- package/dist/libs/crud-pro/models/TransactionMySQL.d.ts +29 -28
- package/dist/libs/crud-pro/models/TransactionMySQL.js +83 -76
- package/dist/libs/crud-pro/models/TransactionPostgres.d.ts +29 -28
- package/dist/libs/crud-pro/models/TransactionPostgres.js +91 -85
- package/dist/libs/crud-pro/models/TransactionSqlServer.d.ts +35 -34
- package/dist/libs/crud-pro/models/TransactionSqlServer.js +100 -92
- package/dist/libs/crud-pro/models/keys.d.ts +110 -110
- package/dist/libs/crud-pro/models/keys.js +154 -154
- package/dist/libs/crud-pro/services/CrudProCachedCfgService.d.ts +11 -11
- package/dist/libs/crud-pro/services/CrudProCachedCfgService.js +73 -73
- package/dist/libs/crud-pro/services/CrudProExecuteFuncService.d.ts +9 -9
- package/dist/libs/crud-pro/services/CrudProExecuteFuncService.js +125 -125
- package/dist/libs/crud-pro/services/CrudProExecuteSqlService.d.ts +17 -17
- package/dist/libs/crud-pro/services/CrudProExecuteSqlService.js +225 -225
- package/dist/libs/crud-pro/services/CrudProFieldUpdateService.d.ts +9 -9
- package/dist/libs/crud-pro/services/CrudProFieldUpdateService.js +51 -51
- package/dist/libs/crud-pro/services/CrudProFieldValidateService.d.ts +13 -13
- package/dist/libs/crud-pro/services/CrudProFieldValidateService.js +148 -148
- package/dist/libs/crud-pro/services/CrudProGenSqlCondition.d.ts +24 -24
- package/dist/libs/crud-pro/services/CrudProGenSqlCondition.js +355 -355
- package/dist/libs/crud-pro/services/CrudProGenSqlService.d.ts +25 -25
- package/dist/libs/crud-pro/services/CrudProGenSqlService.js +165 -165
- package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.d.ts +32 -32
- package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.js +339 -339
- package/dist/libs/crud-pro/services/CrudProServiceBase.d.ts +24 -24
- package/dist/libs/crud-pro/services/CrudProServiceBase.js +88 -88
- package/dist/libs/crud-pro/services/CrudProTableMetaService.d.ts +9 -9
- package/dist/libs/crud-pro/services/CrudProTableMetaService.js +72 -72
- package/dist/libs/crud-pro/services/CurdProServiceHub.d.ts +32 -32
- package/dist/libs/crud-pro/services/CurdProServiceHub.js +64 -64
- package/dist/libs/crud-pro/utils/CompareUtils.d.ts +9 -9
- package/dist/libs/crud-pro/utils/CompareUtils.js +25 -25
- package/dist/libs/crud-pro/utils/CrudMonitor.d.ts +9 -0
- package/dist/libs/crud-pro/utils/CrudMonitor.js +12 -0
- package/dist/libs/crud-pro/utils/DatabaseName.d.ts +9 -9
- package/dist/libs/crud-pro/utils/DatabaseName.js +50 -50
- package/dist/libs/crud-pro/utils/DateTimeUtils.d.ts +7 -7
- package/dist/libs/crud-pro/utils/DateTimeUtils.js +21 -21
- package/dist/libs/crud-pro/utils/MemoryRefreshCache.d.ts +19 -19
- package/dist/libs/crud-pro/utils/MemoryRefreshCache.js +47 -47
- package/dist/libs/crud-pro/utils/MessageParseUtils.d.ts +5 -5
- package/dist/libs/crud-pro/utils/MessageParseUtils.js +33 -33
- package/dist/libs/crud-pro/utils/MixinUtils.d.ts +39 -39
- package/dist/libs/crud-pro/utils/MixinUtils.js +255 -255
- package/dist/libs/crud-pro/utils/ModelUtils.d.ts +11 -11
- package/dist/libs/crud-pro/utils/ModelUtils.js +54 -54
- package/dist/libs/crud-pro/utils/MultiKeyMap.d.ts +11 -11
- package/dist/libs/crud-pro/utils/MultiKeyMap.js +63 -63
- package/dist/libs/crud-pro/utils/SqlFuncUtils.d.ts +5 -5
- package/dist/libs/crud-pro/utils/SqlFuncUtils.js +29 -29
- package/dist/libs/crud-pro/utils/TypeUtils.d.ts +40 -40
- package/dist/libs/crud-pro/utils/TypeUtils.js +166 -166
- package/dist/libs/crud-pro/utils/ValidateUtils.d.ts +3 -3
- package/dist/libs/crud-pro/utils/ValidateUtils.js +165 -165
- package/dist/libs/crud-pro/utils/pool/MySQLUtils.d.ts +3 -3
- package/dist/libs/crud-pro/utils/pool/MySQLUtils.js +19 -19
- package/dist/libs/crud-pro/utils/pool/PostgresUtils.d.ts +3 -3
- package/dist/libs/crud-pro/utils/pool/PostgresUtils.js +20 -20
- package/dist/libs/crud-pro/utils/pool/SqlServerUtils.d.ts +3 -3
- package/dist/libs/crud-pro/utils/pool/SqlServerUtils.js +20 -20
- package/dist/libs/crud-pro/utils/sqlConvert/convertColumnName.d.ts +4 -4
- package/dist/libs/crud-pro/utils/sqlConvert/convertColumnName.js +35 -35
- package/dist/libs/crud-pro/utils/sqlConvert/convertMix.d.ts +3 -3
- package/dist/libs/crud-pro/utils/sqlConvert/convertMix.js +22 -22
- package/dist/libs/crud-pro/utils/sqlConvert/convertMsSql.d.ts +2 -2
- package/dist/libs/crud-pro/utils/sqlConvert/convertMsSql.js +14 -14
- package/dist/libs/crud-pro/utils/sqlConvert/convertPgSql.d.ts +2 -2
- package/dist/libs/crud-pro/utils/sqlConvert/convertPgSql.js +14 -14
- package/dist/libs/crud-pro/utils/sqlConvert/convertPgType.d.ts +2 -2
- package/dist/libs/crud-pro/utils/sqlConvert/convertPgType.js +128 -128
- package/dist/libs/global-config/global-config.d.ts +69 -69
- package/dist/libs/global-config/global-config.js +36 -36
- package/dist/libs/utils/AsymmetricCrypto.d.ts +76 -76
- package/dist/libs/utils/AsymmetricCrypto.js +261 -261
- package/dist/libs/utils/base64.d.ts +9 -9
- package/dist/libs/utils/base64.js +42 -42
- package/dist/libs/utils/common-dto.d.ts +18 -18
- package/dist/libs/utils/common-dto.js +40 -40
- package/dist/libs/utils/crypto-utils.d.ts +3 -3
- package/dist/libs/utils/crypto-utils.js +46 -46
- package/dist/libs/utils/errorToString.d.ts +2 -2
- package/dist/libs/utils/errorToString.js +57 -57
- package/dist/libs/utils/fatcms-request.d.ts +30 -30
- package/dist/libs/utils/fatcms-request.js +104 -104
- package/dist/libs/utils/format-url.d.ts +2 -2
- package/dist/libs/utils/format-url.js +13 -13
- package/dist/libs/utils/functions.d.ts +5 -5
- package/dist/libs/utils/functions.js +76 -76
- package/dist/libs/utils/ordernum-utils.d.ts +2 -2
- package/dist/libs/utils/ordernum-utils.js +13 -13
- package/dist/libs/utils/parseConfig.d.ts +8 -8
- package/dist/libs/utils/parseConfig.js +47 -47
- package/dist/libs/utils/parseCreateSql.d.ts +10 -10
- package/dist/libs/utils/parseCreateSql.js +87 -87
- package/dist/libs/utils/render-utils.d.ts +37 -37
- package/dist/libs/utils/render-utils.js +154 -154
- package/dist/middleware/forbidden.middleware.d.ts +10 -10
- package/dist/middleware/forbidden.middleware.js +54 -54
- package/dist/middleware/global.middleware.d.ts +10 -10
- package/dist/middleware/global.middleware.js +273 -273
- package/dist/middleware/permission.middleware.d.ts +18 -18
- package/dist/middleware/permission.middleware.js +74 -74
- package/dist/middleware/rediscache.middleware.d.ts +3 -3
- package/dist/middleware/rediscache.middleware.js +77 -77
- package/dist/middleware/redislock.middleware.d.ts +7 -7
- package/dist/middleware/redislock.middleware.js +72 -72
- package/dist/middleware/tx.middleware.d.ts +9 -9
- package/dist/middleware/tx.middleware.js +40 -40
- package/dist/models/AsyncTaskModel.d.ts +74 -74
- package/dist/models/AsyncTaskModel.js +31 -31
- package/dist/models/RedisKeys.d.ts +15 -15
- package/dist/models/RedisKeys.js +18 -18
- package/dist/models/SystemEntities.d.ts +117 -117
- package/dist/models/SystemEntities.js +17 -17
- package/dist/models/SystemPerm.d.ts +95 -95
- package/dist/models/SystemPerm.js +100 -100
- package/dist/models/SystemTables.d.ts +25 -25
- package/dist/models/SystemTables.js +28 -28
- package/dist/models/WorkbenchInfoTools.d.ts +7 -7
- package/dist/models/WorkbenchInfoTools.js +20 -20
- package/dist/models/bizmodels.d.ts +138 -138
- package/dist/models/bizmodels.js +61 -61
- package/dist/models/contextLogger.d.ts +27 -27
- package/dist/models/contextLogger.js +119 -119
- package/dist/models/devops.d.ts +12 -12
- package/dist/models/devops.js +19 -19
- package/dist/models/userSession.d.ts +65 -65
- package/dist/models/userSession.js +168 -168
- package/dist/schedule/anonymousContext.d.ts +15 -16
- package/dist/schedule/anonymousContext.js +73 -72
- package/dist/schedule/index.d.ts +4 -4
- package/dist/schedule/index.js +10 -10
- package/dist/schedule/runSchedule.d.ts +12 -12
- package/dist/schedule/runSchedule.js +68 -68
- package/dist/schedule/scheduleNames.d.ts +15 -15
- package/dist/schedule/scheduleNames.js +19 -19
- package/dist/service/AuthService.d.ts +57 -57
- package/dist/service/AuthService.js +265 -265
- package/dist/service/EnumInfoService.d.ts +30 -30
- package/dist/service/EnumInfoService.js +97 -97
- package/dist/service/FileCenterService.d.ts +64 -64
- package/dist/service/FileCenterService.js +422 -422
- package/dist/service/SysAppService.d.ts +14 -14
- package/dist/service/SysAppService.js +96 -96
- package/dist/service/SysConfigService.d.ts +10 -10
- package/dist/service/SysConfigService.js +64 -64
- package/dist/service/SysDictDataService.d.ts +9 -9
- package/dist/service/SysDictDataService.js +72 -72
- package/dist/service/UserAccountService.d.ts +23 -23
- package/dist/service/UserAccountService.js +107 -107
- package/dist/service/UserSessionService.d.ts +43 -43
- package/dist/service/UserSessionService.js +163 -163
- package/dist/service/VisitStatService.d.ts +14 -14
- package/dist/service/VisitStatService.js +158 -158
- package/dist/service/WorkbenchService.d.ts +59 -59
- package/dist/service/WorkbenchService.js +249 -249
- package/dist/service/anyapi/AnyApiSandboxService.d.ts +15 -15
- package/dist/service/anyapi/AnyApiSandboxService.js +110 -110
- package/dist/service/anyapi/AnyApiService.d.ts +27 -27
- package/dist/service/anyapi/AnyApiService.js +181 -181
- package/dist/service/asyncTask/AsyncTaskRunnerService.d.ts +50 -50
- package/dist/service/asyncTask/AsyncTaskRunnerService.js +287 -287
- package/dist/service/asyncTask/AsyncTaskService.d.ts +7 -7
- package/dist/service/asyncTask/AsyncTaskService.js +34 -34
- package/dist/service/asyncTask/handler/ExcelInfoModel.d.ts +10 -10
- package/dist/service/asyncTask/handler/ExcelInfoModel.js +2 -2
- package/dist/service/asyncTask/handler/ExportExcelAsyncTaskHandler.d.ts +7 -7
- package/dist/service/asyncTask/handler/ExportExcelAsyncTaskHandler.js +216 -216
- package/dist/service/asyncTask/handler/ExportExcelByInnerHttpHandler.d.ts +36 -36
- package/dist/service/asyncTask/handler/ExportExcelByInnerHttpHandler.js +141 -141
- package/dist/service/asyncTask/handler/ExportExcelByStdCrudHandler.d.ts +46 -46
- package/dist/service/asyncTask/handler/ExportExcelByStdCrudHandler.js +135 -135
- package/dist/service/base/ApiBaseService.d.ts +15 -15
- package/dist/service/base/ApiBaseService.js +50 -50
- package/dist/service/base/ApiRateLimiter.d.ts +10 -10
- package/dist/service/base/ApiRateLimiter.js +51 -51
- package/dist/service/base/BaseService.d.ts +41 -41
- package/dist/service/base/BaseService.js +101 -101
- package/dist/service/base/cache/CacheServiceFactory.d.ts +26 -26
- package/dist/service/base/cache/CacheServiceFactory.js +122 -122
- package/dist/service/base/cache/CtxCache.d.ts +18 -18
- package/dist/service/base/cache/CtxCache.js +37 -37
- package/dist/service/base/cache/DiskCache.d.ts +19 -19
- package/dist/service/base/cache/DiskCache.js +74 -74
- package/dist/service/base/cache/MemoryCache.d.ts +12 -12
- package/dist/service/base/cache/MemoryCache.js +58 -58
- package/dist/service/base/cache/NoneCache.d.ts +10 -10
- package/dist/service/base/cache/NoneCache.js +19 -19
- package/dist/service/base/cache/RedisCache.d.ts +14 -14
- package/dist/service/base/cache/RedisCache.js +31 -31
- package/dist/service/crudstd/CrudStdActionService.d.ts +17 -17
- package/dist/service/crudstd/CrudStdActionService.js +32 -32
- package/dist/service/crudstd/CrudStdConstant.d.ts +58 -58
- package/dist/service/crudstd/CrudStdConstant.js +64 -64
- package/dist/service/crudstd/CrudStdRelationService.d.ts +10 -10
- package/dist/service/crudstd/CrudStdRelationService.js +121 -121
- package/dist/service/crudstd/CrudStdService.d.ts +60 -60
- package/dist/service/crudstd/CrudStdService.js +376 -376
- package/dist/service/curd/CrudProQuick.d.ts +50 -50
- package/dist/service/curd/CrudProQuick.js +163 -163
- package/dist/service/curd/CurdMixByAccountService.d.ts +13 -13
- package/dist/service/curd/CurdMixByAccountService.js +151 -151
- package/dist/service/curd/CurdMixByDictService.d.ts +12 -12
- package/dist/service/curd/CurdMixByDictService.js +114 -114
- package/dist/service/curd/CurdMixByLinkToCustomService.d.ts +30 -30
- package/dist/service/curd/CurdMixByLinkToCustomService.js +209 -206
- package/dist/service/curd/CurdMixBySysConfigService.d.ts +13 -13
- package/dist/service/curd/CurdMixBySysConfigService.js +116 -116
- package/dist/service/curd/CurdMixByWorkbenchService.d.ts +11 -11
- package/dist/service/curd/CurdMixByWorkbenchService.js +80 -80
- package/dist/service/curd/CurdMixService.d.ts +28 -28
- package/dist/service/curd/CurdMixService.js +100 -100
- package/dist/service/curd/CurdMixUtils.d.ts +57 -57
- package/dist/service/curd/CurdMixUtils.js +331 -331
- package/dist/service/curd/CurdProService.d.ts +32 -32
- package/dist/service/curd/CurdProService.js +212 -212
- package/dist/service/curd/fixCfgModel.d.ts +3 -3
- package/dist/service/curd/fixCfgModel.js +104 -104
- package/dist/service/proxyapi/ProxyApiLoadService.d.ts +21 -21
- package/dist/service/proxyapi/ProxyApiLoadService.js +167 -167
- package/dist/service/proxyapi/ProxyApiService.d.ts +61 -61
- package/dist/service/proxyapi/ProxyApiService.js +294 -294
- package/dist/service/proxyapi/ProxyApiUtils.d.ts +15 -15
- package/dist/service/proxyapi/ProxyApiUtils.js +34 -34
- package/dist/service/proxyapi/RouteHandler.d.ts +5 -5
- package/dist/service/proxyapi/RouteHandler.js +9 -9
- package/dist/service/proxyapi/RouteTrie.d.ts +12 -12
- package/dist/service/proxyapi/RouteTrie.js +63 -63
- package/dist/service/proxyapi/WeightedRandom.d.ts +9 -9
- package/dist/service/proxyapi/WeightedRandom.js +31 -31
- package/dist/service/proxyapi/WeightedRoundRobin.d.ts +8 -8
- package/dist/service/proxyapi/WeightedRoundRobin.js +32 -32
- package/index.d.ts +10 -10
- package/package.json +87 -87
- package/src/controller/base/BaseApiController.ts +7 -2
- package/src/controller/manage/SuperAdminManageApi.ts +6 -6
- package/src/controller/manage/SystemInfoManageApi.ts +2 -0
- package/src/libs/crud-pro/models/TransactionMySQL.ts +13 -3
- package/src/libs/crud-pro/models/TransactionPostgres.ts +9 -3
- package/src/libs/crud-pro/models/TransactionSqlServer.ts +19 -8
- package/src/libs/crud-pro/utils/CrudMonitor.ts +13 -0
- package/src/libs/utils/AsymmetricCrypto.ts +307 -307
- package/src/libs/utils/format-url.ts +15 -15
- package/src/libs/utils/render-utils.ts +216 -216
- package/src/models/WorkbenchInfoTools.ts +19 -19
- package/src/schedule/anonymousContext.ts +6 -6
- package/src/service/SysAppService.ts +88 -88
- package/src/service/SysDictDataService.ts +63 -63
- package/src/service/WorkbenchService.ts +277 -277
- package/src/service/base/cache/CacheServiceFactory.ts +135 -135
- package/src/service/base/cache/CtxCache.ts +45 -45
- package/src/service/base/cache/DiskCache.ts +82 -82
- package/src/service/base/cache/MemoryCache.ts +68 -68
- package/src/service/base/cache/NoneCache.ts +24 -24
- package/src/service/base/cache/RedisCache.ts +41 -41
- package/src/service/curd/CurdMixByLinkToCustomService.ts +6 -2
- package/tsconfig.json +32 -32
|
@@ -1,216 +1,216 @@
|
|
|
1
|
-
import * as _ from 'lodash';
|
|
2
|
-
import * as moment from 'moment';
|
|
3
|
-
import { Context } from '@midwayjs/koa';
|
|
4
|
-
import { parseJsonObject } from './functions';
|
|
5
|
-
import { getExtLocalLoaderPort } from './fatcms-request';
|
|
6
|
-
import { TypeUtils } from '../crud-pro/utils/TypeUtils';
|
|
7
|
-
import { ISessionInfo } from '@/models/userSession';
|
|
8
|
-
|
|
9
|
-
// const demo = {"schema":[
|
|
10
|
-
// {"title":"资源配置","name":"fileList","type":"array","properties":{"fileUrl":{"label":"文件URL","component":"Input","xProps":{"hasClear":true},"width":500}}}],
|
|
11
|
-
// "data":{"fileList":[{"settingKey":"n1iqmu8qnc_1","fileUrl":"aa"},{"settingKey":"n1iqmu8rml_2","fileUrl":"aa"}]
|
|
12
|
-
// }}
|
|
13
|
-
|
|
14
|
-
interface IFileElement {
|
|
15
|
-
fileUrl: string;
|
|
16
|
-
fileType?: string;
|
|
17
|
-
isModule?: boolean;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
interface IRenderUtilsProps {
|
|
21
|
-
ctx: Context;
|
|
22
|
-
package_assets: any;
|
|
23
|
-
workbenchInfo: any;
|
|
24
|
-
userInfo?: ISessionInfo;
|
|
25
|
-
appInfo?: any;
|
|
26
|
-
fatcmscsrftoken: string;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
function parseCookie(cookieStr: string): any {
|
|
30
|
-
const cookies = {};
|
|
31
|
-
|
|
32
|
-
if (!cookieStr) {
|
|
33
|
-
return cookies;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
// 分割每个 cookie 项
|
|
37
|
-
const cookieItems = cookieStr.split(';');
|
|
38
|
-
|
|
39
|
-
for (const item of cookieItems) {
|
|
40
|
-
// 去除空白字符
|
|
41
|
-
const trimmedItem = item.trim();
|
|
42
|
-
if (!trimmedItem) {
|
|
43
|
-
continue;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
// 找到第一个等号的位置
|
|
47
|
-
const eqIndex = trimmedItem.indexOf('=');
|
|
48
|
-
if (eqIndex === -1) {
|
|
49
|
-
continue;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
// 提取 key 和 value
|
|
53
|
-
const key = trimmedItem.substring(0, eqIndex).trim();
|
|
54
|
-
const value = trimmedItem.substring(eqIndex + 1).trim();
|
|
55
|
-
|
|
56
|
-
// 处理可能的引号
|
|
57
|
-
if (value.startsWith('"') && value.endsWith('"')) {
|
|
58
|
-
cookies[key] = value.slice(1, -1);
|
|
59
|
-
} else {
|
|
60
|
-
cookies[key] = value;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
return cookies;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
function isMobileUserAgent(userAgent = '') {
|
|
69
|
-
// 空值处理
|
|
70
|
-
if (!userAgent) return false;
|
|
71
|
-
|
|
72
|
-
// 转为小写统一匹配
|
|
73
|
-
const ua = userAgent.toLowerCase();
|
|
74
|
-
|
|
75
|
-
// 【核心】移动端关键词(覆盖主流系统)
|
|
76
|
-
const mobileKeywords = /android|iphone|ipod|ios|mobile|blackberry|iemobile|opera mini|windows phone|harmonyos/i;
|
|
77
|
-
// 【排除项】平板/PC关键词(避免误判)
|
|
78
|
-
const excludeKeywords = /ipad|tablet|playbook|kindle|pc|windows nt|macintosh|linux x86_64/i;
|
|
79
|
-
|
|
80
|
-
// 判断规则:包含移动端关键词 + 不包含排除项关键词
|
|
81
|
-
const isMatchMobile = mobileKeywords.test(ua);
|
|
82
|
-
const isExclude = excludeKeywords.test(ua);
|
|
83
|
-
|
|
84
|
-
return isMatchMobile && !isExclude;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
class RenderUtils {
|
|
88
|
-
public readonly ctx: Context;
|
|
89
|
-
public readonly fileList: IFileElement[];
|
|
90
|
-
public readonly workbenchInfo: any;
|
|
91
|
-
public readonly userInfo: ISessionInfo;
|
|
92
|
-
public readonly appInfo: any;
|
|
93
|
-
public readonly cookieInfo: any;
|
|
94
|
-
public readonly fatcmscsrftoken: string;
|
|
95
|
-
public readonly isMobileUserAgent: boolean;
|
|
96
|
-
public readonly isMobileByQuery: boolean;
|
|
97
|
-
|
|
98
|
-
constructor(props: IRenderUtilsProps) {
|
|
99
|
-
this.ctx = props.ctx;
|
|
100
|
-
const query = props.ctx?.query || {};
|
|
101
|
-
const headers = props.ctx?.headers || {};
|
|
102
|
-
this.workbenchInfo = props.workbenchInfo || {};
|
|
103
|
-
this.userInfo = props.userInfo || ({} as ISessionInfo);
|
|
104
|
-
this.appInfo = props.appInfo || {};
|
|
105
|
-
this.fatcmscsrftoken = props.fatcmscsrftoken;
|
|
106
|
-
this.cookieInfo = parseCookie(headers?.cookie);
|
|
107
|
-
this.isMobileUserAgent = isMobileUserAgent(headers['user-agent'] || '');
|
|
108
|
-
this.isMobileByQuery = `${query['__is_mobile_request__']}` === 'true'
|
|
109
|
-
|
|
110
|
-
const packageAssets = parseJsonObject(props.package_assets) || {};
|
|
111
|
-
const fileList = _.get(packageAssets, 'data.fileList');
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
if (Array.isArray(fileList)) {
|
|
115
|
-
this.fileList = fileList.filter(f => {
|
|
116
|
-
return f && f.fileUrl && typeof f.fileUrl === 'string' && f.fileUrl.length > 5; // 至少五个字符。
|
|
117
|
-
});
|
|
118
|
-
} else {
|
|
119
|
-
this.fileList = [];
|
|
120
|
-
const time = moment().format('YYYY-MM-DD HH:mm:ss.SSS');
|
|
121
|
-
console.info(
|
|
122
|
-
time +
|
|
123
|
-
' 解析fileList为空==>' +
|
|
124
|
-
JSON.stringify({
|
|
125
|
-
workbench_code: this.workbenchInfo?.workbench_code,
|
|
126
|
-
app_code: this.appInfo?.app_code,
|
|
127
|
-
})
|
|
128
|
-
);
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
renderCsrfToken() {
|
|
133
|
-
return `<script>window.__fatcmscsrftoken = "${this.fatcmscsrftoken}";</script>`;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
renderUserInfo() {
|
|
137
|
-
const userInfoClone = { ...this.userInfo };
|
|
138
|
-
delete userInfoClone.privateKey;
|
|
139
|
-
return `<script>window.__user_info = ${JSON.stringify(userInfoClone)} </script>`;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
renderWorkbenchInfo() {
|
|
143
|
-
const infoPick = _.pick(this.workbenchInfo, ['id', 'workbench_code', 'workbench_name', 'workbench_domain', 'workbench_desc', 'config_type', 'config_content']);
|
|
144
|
-
return `<script>window.__workbench_info = ${JSON.stringify(infoPick)}</script>`;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
renderAppInfo() {
|
|
148
|
-
const infoPick = _.pick(this.appInfo, ['id', 'app_code', 'app_name', 'app_type', 'app_desc', 'config_type', 'config_content']);
|
|
149
|
-
return `<script>window.__app_info = ${JSON.stringify(infoPick)}</script>`;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
renderCookieInfo(keys: string) {
|
|
157
|
-
try {
|
|
158
|
-
const cookies = this.cookieInfo;
|
|
159
|
-
const cookieObj = {};
|
|
160
|
-
if (typeof keys === 'string') {
|
|
161
|
-
const keyArr = keys.split(',');
|
|
162
|
-
for (let i = 0; i < keyArr.length; i++) {
|
|
163
|
-
const keyName = keyArr[i];
|
|
164
|
-
cookieObj[keyName] = cookies[keyName];
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
return `<script>window.__cookie_info = ${JSON.stringify(cookieObj)}</script>`;
|
|
168
|
-
} catch (e) {
|
|
169
|
-
return `<script>window.__cookie_info_error = ${e}; </script>`;
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
renderJsAssets() {
|
|
177
|
-
const fileList = this.fileList.filter(s => {
|
|
178
|
-
return s.fileType === 'js' || s.fileUrl.endsWith('.js');
|
|
179
|
-
});
|
|
180
|
-
const arr = fileList.map(f => {
|
|
181
|
-
if (f.isModule) {
|
|
182
|
-
return `<script type="module" crossorigin src="${f.fileUrl}" ></script>`;
|
|
183
|
-
}
|
|
184
|
-
return `<script src="${f.fileUrl}" ></script>`;
|
|
185
|
-
});
|
|
186
|
-
return arr.join('\n');
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
renderCssAssets() {
|
|
190
|
-
const fileList = this.fileList.filter(s => {
|
|
191
|
-
return s.fileType === 'css' || s.fileUrl.endsWith('.css');
|
|
192
|
-
});
|
|
193
|
-
const fileUrlList = fileList.map(f => {
|
|
194
|
-
return f.fileUrl;
|
|
195
|
-
});
|
|
196
|
-
|
|
197
|
-
const arr = fileUrlList.map(url => {
|
|
198
|
-
return `<link href="${url}" rel="stylesheet" />`;
|
|
199
|
-
});
|
|
200
|
-
return arr.join('\n');
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
renderExtLocalLoaderPortByDevHeader() {
|
|
204
|
-
const loaderPort = getExtLocalLoaderPort(this.ctx);
|
|
205
|
-
if (loaderPort && TypeUtils.isNumeric(loaderPort)) {
|
|
206
|
-
return `<script>window.__local_loader_port_from_dev_header = ${loaderPort}</script>`;
|
|
207
|
-
}
|
|
208
|
-
return '';
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
function createRenderUtils(props: IRenderUtilsProps) {
|
|
213
|
-
return new RenderUtils(props);
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
export { createRenderUtils };
|
|
1
|
+
import * as _ from 'lodash';
|
|
2
|
+
import * as moment from 'moment';
|
|
3
|
+
import { Context } from '@midwayjs/koa';
|
|
4
|
+
import { parseJsonObject } from './functions';
|
|
5
|
+
import { getExtLocalLoaderPort } from './fatcms-request';
|
|
6
|
+
import { TypeUtils } from '../crud-pro/utils/TypeUtils';
|
|
7
|
+
import { ISessionInfo } from '@/models/userSession';
|
|
8
|
+
|
|
9
|
+
// const demo = {"schema":[
|
|
10
|
+
// {"title":"资源配置","name":"fileList","type":"array","properties":{"fileUrl":{"label":"文件URL","component":"Input","xProps":{"hasClear":true},"width":500}}}],
|
|
11
|
+
// "data":{"fileList":[{"settingKey":"n1iqmu8qnc_1","fileUrl":"aa"},{"settingKey":"n1iqmu8rml_2","fileUrl":"aa"}]
|
|
12
|
+
// }}
|
|
13
|
+
|
|
14
|
+
interface IFileElement {
|
|
15
|
+
fileUrl: string;
|
|
16
|
+
fileType?: string;
|
|
17
|
+
isModule?: boolean;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
interface IRenderUtilsProps {
|
|
21
|
+
ctx: Context;
|
|
22
|
+
package_assets: any;
|
|
23
|
+
workbenchInfo: any;
|
|
24
|
+
userInfo?: ISessionInfo;
|
|
25
|
+
appInfo?: any;
|
|
26
|
+
fatcmscsrftoken: string;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function parseCookie(cookieStr: string): any {
|
|
30
|
+
const cookies = {};
|
|
31
|
+
|
|
32
|
+
if (!cookieStr) {
|
|
33
|
+
return cookies;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// 分割每个 cookie 项
|
|
37
|
+
const cookieItems = cookieStr.split(';');
|
|
38
|
+
|
|
39
|
+
for (const item of cookieItems) {
|
|
40
|
+
// 去除空白字符
|
|
41
|
+
const trimmedItem = item.trim();
|
|
42
|
+
if (!trimmedItem) {
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// 找到第一个等号的位置
|
|
47
|
+
const eqIndex = trimmedItem.indexOf('=');
|
|
48
|
+
if (eqIndex === -1) {
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// 提取 key 和 value
|
|
53
|
+
const key = trimmedItem.substring(0, eqIndex).trim();
|
|
54
|
+
const value = trimmedItem.substring(eqIndex + 1).trim();
|
|
55
|
+
|
|
56
|
+
// 处理可能的引号
|
|
57
|
+
if (value.startsWith('"') && value.endsWith('"')) {
|
|
58
|
+
cookies[key] = value.slice(1, -1);
|
|
59
|
+
} else {
|
|
60
|
+
cookies[key] = value;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return cookies;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
function isMobileUserAgent(userAgent = '') {
|
|
69
|
+
// 空值处理
|
|
70
|
+
if (!userAgent) return false;
|
|
71
|
+
|
|
72
|
+
// 转为小写统一匹配
|
|
73
|
+
const ua = userAgent.toLowerCase();
|
|
74
|
+
|
|
75
|
+
// 【核心】移动端关键词(覆盖主流系统)
|
|
76
|
+
const mobileKeywords = /android|iphone|ipod|ios|mobile|blackberry|iemobile|opera mini|windows phone|harmonyos/i;
|
|
77
|
+
// 【排除项】平板/PC关键词(避免误判)
|
|
78
|
+
const excludeKeywords = /ipad|tablet|playbook|kindle|pc|windows nt|macintosh|linux x86_64/i;
|
|
79
|
+
|
|
80
|
+
// 判断规则:包含移动端关键词 + 不包含排除项关键词
|
|
81
|
+
const isMatchMobile = mobileKeywords.test(ua);
|
|
82
|
+
const isExclude = excludeKeywords.test(ua);
|
|
83
|
+
|
|
84
|
+
return isMatchMobile && !isExclude;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
class RenderUtils {
|
|
88
|
+
public readonly ctx: Context;
|
|
89
|
+
public readonly fileList: IFileElement[];
|
|
90
|
+
public readonly workbenchInfo: any;
|
|
91
|
+
public readonly userInfo: ISessionInfo;
|
|
92
|
+
public readonly appInfo: any;
|
|
93
|
+
public readonly cookieInfo: any;
|
|
94
|
+
public readonly fatcmscsrftoken: string;
|
|
95
|
+
public readonly isMobileUserAgent: boolean;
|
|
96
|
+
public readonly isMobileByQuery: boolean;
|
|
97
|
+
|
|
98
|
+
constructor(props: IRenderUtilsProps) {
|
|
99
|
+
this.ctx = props.ctx;
|
|
100
|
+
const query = props.ctx?.query || {};
|
|
101
|
+
const headers = props.ctx?.headers || {};
|
|
102
|
+
this.workbenchInfo = props.workbenchInfo || {};
|
|
103
|
+
this.userInfo = props.userInfo || ({} as ISessionInfo);
|
|
104
|
+
this.appInfo = props.appInfo || {};
|
|
105
|
+
this.fatcmscsrftoken = props.fatcmscsrftoken;
|
|
106
|
+
this.cookieInfo = parseCookie(headers?.cookie);
|
|
107
|
+
this.isMobileUserAgent = isMobileUserAgent(headers['user-agent'] || '');
|
|
108
|
+
this.isMobileByQuery = `${query['__is_mobile_request__']}` === 'true'
|
|
109
|
+
|
|
110
|
+
const packageAssets = parseJsonObject(props.package_assets) || {};
|
|
111
|
+
const fileList = _.get(packageAssets, 'data.fileList');
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
if (Array.isArray(fileList)) {
|
|
115
|
+
this.fileList = fileList.filter(f => {
|
|
116
|
+
return f && f.fileUrl && typeof f.fileUrl === 'string' && f.fileUrl.length > 5; // 至少五个字符。
|
|
117
|
+
});
|
|
118
|
+
} else {
|
|
119
|
+
this.fileList = [];
|
|
120
|
+
const time = moment().format('YYYY-MM-DD HH:mm:ss.SSS');
|
|
121
|
+
console.info(
|
|
122
|
+
time +
|
|
123
|
+
' 解析fileList为空==>' +
|
|
124
|
+
JSON.stringify({
|
|
125
|
+
workbench_code: this.workbenchInfo?.workbench_code,
|
|
126
|
+
app_code: this.appInfo?.app_code,
|
|
127
|
+
})
|
|
128
|
+
);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
renderCsrfToken() {
|
|
133
|
+
return `<script>window.__fatcmscsrftoken = "${this.fatcmscsrftoken}";</script>`;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
renderUserInfo() {
|
|
137
|
+
const userInfoClone = { ...this.userInfo };
|
|
138
|
+
delete userInfoClone.privateKey;
|
|
139
|
+
return `<script>window.__user_info = ${JSON.stringify(userInfoClone)} </script>`;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
renderWorkbenchInfo() {
|
|
143
|
+
const infoPick = _.pick(this.workbenchInfo, ['id', 'workbench_code', 'workbench_name', 'workbench_domain', 'workbench_desc', 'config_type', 'config_content']);
|
|
144
|
+
return `<script>window.__workbench_info = ${JSON.stringify(infoPick)}</script>`;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
renderAppInfo() {
|
|
148
|
+
const infoPick = _.pick(this.appInfo, ['id', 'app_code', 'app_name', 'app_type', 'app_desc', 'config_type', 'config_content']);
|
|
149
|
+
return `<script>window.__app_info = ${JSON.stringify(infoPick)}</script>`;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
renderCookieInfo(keys: string) {
|
|
157
|
+
try {
|
|
158
|
+
const cookies = this.cookieInfo;
|
|
159
|
+
const cookieObj = {};
|
|
160
|
+
if (typeof keys === 'string') {
|
|
161
|
+
const keyArr = keys.split(',');
|
|
162
|
+
for (let i = 0; i < keyArr.length; i++) {
|
|
163
|
+
const keyName = keyArr[i];
|
|
164
|
+
cookieObj[keyName] = cookies[keyName];
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return `<script>window.__cookie_info = ${JSON.stringify(cookieObj)}</script>`;
|
|
168
|
+
} catch (e) {
|
|
169
|
+
return `<script>window.__cookie_info_error = ${e}; </script>`;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
renderJsAssets() {
|
|
177
|
+
const fileList = this.fileList.filter(s => {
|
|
178
|
+
return s.fileType === 'js' || s.fileUrl.endsWith('.js');
|
|
179
|
+
});
|
|
180
|
+
const arr = fileList.map(f => {
|
|
181
|
+
if (f.isModule) {
|
|
182
|
+
return `<script type="module" crossorigin src="${f.fileUrl}" ></script>`;
|
|
183
|
+
}
|
|
184
|
+
return `<script src="${f.fileUrl}" ></script>`;
|
|
185
|
+
});
|
|
186
|
+
return arr.join('\n');
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
renderCssAssets() {
|
|
190
|
+
const fileList = this.fileList.filter(s => {
|
|
191
|
+
return s.fileType === 'css' || s.fileUrl.endsWith('.css');
|
|
192
|
+
});
|
|
193
|
+
const fileUrlList = fileList.map(f => {
|
|
194
|
+
return f.fileUrl;
|
|
195
|
+
});
|
|
196
|
+
|
|
197
|
+
const arr = fileUrlList.map(url => {
|
|
198
|
+
return `<link href="${url}" rel="stylesheet" />`;
|
|
199
|
+
});
|
|
200
|
+
return arr.join('\n');
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
renderExtLocalLoaderPortByDevHeader() {
|
|
204
|
+
const loaderPort = getExtLocalLoaderPort(this.ctx);
|
|
205
|
+
if (loaderPort && TypeUtils.isNumeric(loaderPort)) {
|
|
206
|
+
return `<script>window.__local_loader_port_from_dev_header = ${loaderPort}</script>`;
|
|
207
|
+
}
|
|
208
|
+
return '';
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
function createRenderUtils(props: IRenderUtilsProps) {
|
|
213
|
+
return new RenderUtils(props);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
export { createRenderUtils };
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { parseJsonObject } from "@/libs/utils/functions";
|
|
2
|
-
import { IWorkbenchConfig, IWorkbenchEntity} from "./SystemEntities";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export class WorkbenchInfoTools {
|
|
7
|
-
private parsedConfigContent: IWorkbenchConfig = null;
|
|
8
|
-
constructor(private readonly workbenchInfo: IWorkbenchEntity) {
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
public getWorkbenchConfig(): IWorkbenchConfig {
|
|
12
|
-
if (this.parsedConfigContent) {
|
|
13
|
-
return this.parsedConfigContent;
|
|
14
|
-
}
|
|
15
|
-
const configObj: IWorkbenchConfig = parseJsonObject(this.workbenchInfo?.config_content);
|
|
16
|
-
this.parsedConfigContent = configObj || {};
|
|
17
|
-
return this.parsedConfigContent;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
1
|
+
import { parseJsonObject } from "@/libs/utils/functions";
|
|
2
|
+
import { IWorkbenchConfig, IWorkbenchEntity} from "./SystemEntities";
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
export class WorkbenchInfoTools {
|
|
7
|
+
private parsedConfigContent: IWorkbenchConfig = null;
|
|
8
|
+
constructor(private readonly workbenchInfo: IWorkbenchEntity) {
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
public getWorkbenchConfig(): IWorkbenchConfig {
|
|
12
|
+
if (this.parsedConfigContent) {
|
|
13
|
+
return this.parsedConfigContent;
|
|
14
|
+
}
|
|
15
|
+
const configObj: IWorkbenchConfig = parseJsonObject(this.workbenchInfo?.config_content);
|
|
16
|
+
this.parsedConfigContent = configObj || {};
|
|
17
|
+
return this.parsedConfigContent;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -49,13 +49,13 @@ class AnonymousContext {
|
|
|
49
49
|
return this.app;
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
+
//
|
|
53
|
+
// async getAsyncService(identifier: any): Promise<any> {
|
|
54
|
+
// const ctx: koa.IMidwayKoaContext = this.createAnonymousContext();
|
|
55
|
+
// return ctx.requestContext.getAsync(identifier);
|
|
56
|
+
// }
|
|
52
57
|
|
|
53
|
-
|
|
54
|
-
const ctx: koa.IMidwayKoaContext = this.createAnonymousContext();
|
|
55
|
-
return ctx.requestContext.getAsync(identifier);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
createAnonymousContext() {
|
|
58
|
+
private createAnonymousContext() {
|
|
59
59
|
const app = this.app;
|
|
60
60
|
const ctx: koa.IMidwayKoaContext = app.createAnonymousContext();
|
|
61
61
|
ctx.app = app;
|
|
@@ -1,88 +1,88 @@
|
|
|
1
|
-
import {Inject, Provide} from '@midwayjs/core';
|
|
2
|
-
import {SystemTables} from '@/models/SystemTables';
|
|
3
|
-
import {BaseService} from './base/BaseService';
|
|
4
|
-
import {CurdProService} from './curd/CurdProService';
|
|
5
|
-
import {GLOBAL_STATIC_CONFIG} from '@/libs/global-config/global-config';
|
|
6
|
-
import {CacheServiceFactory} from "@/service/base/cache/CacheServiceFactory";
|
|
7
|
-
import {CacheNameEnum} from "@/models/bizmodels";
|
|
8
|
-
|
|
9
|
-
@Provide()
|
|
10
|
-
export class SysAppService extends BaseService {
|
|
11
|
-
|
|
12
|
-
@Inject()
|
|
13
|
-
private curdProService: CurdProService;
|
|
14
|
-
|
|
15
|
-
@Inject()
|
|
16
|
-
private cacheServiceFactory: CacheServiceFactory;
|
|
17
|
-
|
|
18
|
-
private get sysAppDao(){
|
|
19
|
-
const { SystemDbName, SystemDbType } = GLOBAL_STATIC_CONFIG.getConfig();
|
|
20
|
-
return this.curdProService.getBbUtil(SystemDbName, SystemDbType, SystemTables.sys_app)
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
private get sysAppPageDao(){
|
|
24
|
-
const { SystemDbName, SystemDbType } = GLOBAL_STATIC_CONFIG.getConfig();
|
|
25
|
-
return this.curdProService.getBbUtil(SystemDbName, SystemDbType, SystemTables.sys_app_page)
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
async getSysAppPageOne({page_path,workbench_code}:{page_path: string,workbench_code: string}): Promise<any> {
|
|
30
|
-
if (!page_path || typeof page_path !== 'string') {
|
|
31
|
-
throw new Error('[getSysAppPageOne] page_path required');
|
|
32
|
-
}
|
|
33
|
-
if (!workbench_code || typeof workbench_code !== 'string') {
|
|
34
|
-
throw new Error('[getSysAppPageOne] workbench_code required');
|
|
35
|
-
}
|
|
36
|
-
return await this.cacheServiceFactory.getJsonObjectCache({
|
|
37
|
-
cacheKey: `${workbench_code}#${page_path}`,
|
|
38
|
-
cacheName: CacheNameEnum.GetSysAppPageOne,
|
|
39
|
-
getter: async () => {
|
|
40
|
-
return await this.sysAppPageDao.getUniqueOne({
|
|
41
|
-
condition: {page_path, workbench_code, deleted_at: 0}
|
|
42
|
-
});
|
|
43
|
-
},
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
async getSysAppOne(app_code: string): Promise<any> {
|
|
49
|
-
if (!app_code || typeof app_code !== 'string') {
|
|
50
|
-
throw new Error('[getSysAppOne] app_code required');
|
|
51
|
-
}
|
|
52
|
-
return await this.cacheServiceFactory.getJsonObjectCache({
|
|
53
|
-
cacheKey: app_code,
|
|
54
|
-
cacheName: CacheNameEnum.GetSysAppOne,
|
|
55
|
-
getter: async () => {
|
|
56
|
-
return await this.sysAppDao.getUniqueOne({
|
|
57
|
-
condition: {app_code, deleted_at: 0}
|
|
58
|
-
});
|
|
59
|
-
},
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
public deletePrivateField(parsedAppInfo: any){
|
|
64
|
-
if (!parsedAppInfo) {
|
|
65
|
-
return null;
|
|
66
|
-
}
|
|
67
|
-
const parsedAppInfo2: any = { ...parsedAppInfo };
|
|
68
|
-
delete parsedAppInfo2.created_at;
|
|
69
|
-
delete parsedAppInfo2.created_by;
|
|
70
|
-
delete parsedAppInfo2.workbench_code_array;
|
|
71
|
-
delete parsedAppInfo2.modified_at;
|
|
72
|
-
delete parsedAppInfo2.modified_by;
|
|
73
|
-
delete parsedAppInfo2.modified_desc;
|
|
74
|
-
delete parsedAppInfo2.std_crud_db;
|
|
75
|
-
delete parsedAppInfo2.std_crud_tbl;
|
|
76
|
-
return parsedAppInfo2;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
async removeSysAppOneCache(app_code: string) {
|
|
80
|
-
if (!app_code || typeof app_code !== 'string') {
|
|
81
|
-
throw new Error('[removeSysAppOneCache] app_code required');
|
|
82
|
-
}
|
|
83
|
-
return await this.cacheServiceFactory.removeItemCache({
|
|
84
|
-
cacheKey: app_code,
|
|
85
|
-
cacheName: CacheNameEnum.GetSysAppOne
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
}
|
|
1
|
+
import {Inject, Provide} from '@midwayjs/core';
|
|
2
|
+
import {SystemTables} from '@/models/SystemTables';
|
|
3
|
+
import {BaseService} from './base/BaseService';
|
|
4
|
+
import {CurdProService} from './curd/CurdProService';
|
|
5
|
+
import {GLOBAL_STATIC_CONFIG} from '@/libs/global-config/global-config';
|
|
6
|
+
import {CacheServiceFactory} from "@/service/base/cache/CacheServiceFactory";
|
|
7
|
+
import {CacheNameEnum} from "@/models/bizmodels";
|
|
8
|
+
|
|
9
|
+
@Provide()
|
|
10
|
+
export class SysAppService extends BaseService {
|
|
11
|
+
|
|
12
|
+
@Inject()
|
|
13
|
+
private curdProService: CurdProService;
|
|
14
|
+
|
|
15
|
+
@Inject()
|
|
16
|
+
private cacheServiceFactory: CacheServiceFactory;
|
|
17
|
+
|
|
18
|
+
private get sysAppDao(){
|
|
19
|
+
const { SystemDbName, SystemDbType } = GLOBAL_STATIC_CONFIG.getConfig();
|
|
20
|
+
return this.curdProService.getBbUtil(SystemDbName, SystemDbType, SystemTables.sys_app)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
private get sysAppPageDao(){
|
|
24
|
+
const { SystemDbName, SystemDbType } = GLOBAL_STATIC_CONFIG.getConfig();
|
|
25
|
+
return this.curdProService.getBbUtil(SystemDbName, SystemDbType, SystemTables.sys_app_page)
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
async getSysAppPageOne({page_path,workbench_code}:{page_path: string,workbench_code: string}): Promise<any> {
|
|
30
|
+
if (!page_path || typeof page_path !== 'string') {
|
|
31
|
+
throw new Error('[getSysAppPageOne] page_path required');
|
|
32
|
+
}
|
|
33
|
+
if (!workbench_code || typeof workbench_code !== 'string') {
|
|
34
|
+
throw new Error('[getSysAppPageOne] workbench_code required');
|
|
35
|
+
}
|
|
36
|
+
return await this.cacheServiceFactory.getJsonObjectCache({
|
|
37
|
+
cacheKey: `${workbench_code}#${page_path}`,
|
|
38
|
+
cacheName: CacheNameEnum.GetSysAppPageOne,
|
|
39
|
+
getter: async () => {
|
|
40
|
+
return await this.sysAppPageDao.getUniqueOne({
|
|
41
|
+
condition: {page_path, workbench_code, deleted_at: 0}
|
|
42
|
+
});
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
async getSysAppOne(app_code: string): Promise<any> {
|
|
49
|
+
if (!app_code || typeof app_code !== 'string') {
|
|
50
|
+
throw new Error('[getSysAppOne] app_code required');
|
|
51
|
+
}
|
|
52
|
+
return await this.cacheServiceFactory.getJsonObjectCache({
|
|
53
|
+
cacheKey: app_code,
|
|
54
|
+
cacheName: CacheNameEnum.GetSysAppOne,
|
|
55
|
+
getter: async () => {
|
|
56
|
+
return await this.sysAppDao.getUniqueOne({
|
|
57
|
+
condition: {app_code, deleted_at: 0}
|
|
58
|
+
});
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
public deletePrivateField(parsedAppInfo: any){
|
|
64
|
+
if (!parsedAppInfo) {
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
const parsedAppInfo2: any = { ...parsedAppInfo };
|
|
68
|
+
delete parsedAppInfo2.created_at;
|
|
69
|
+
delete parsedAppInfo2.created_by;
|
|
70
|
+
delete parsedAppInfo2.workbench_code_array;
|
|
71
|
+
delete parsedAppInfo2.modified_at;
|
|
72
|
+
delete parsedAppInfo2.modified_by;
|
|
73
|
+
delete parsedAppInfo2.modified_desc;
|
|
74
|
+
delete parsedAppInfo2.std_crud_db;
|
|
75
|
+
delete parsedAppInfo2.std_crud_tbl;
|
|
76
|
+
return parsedAppInfo2;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
async removeSysAppOneCache(app_code: string) {
|
|
80
|
+
if (!app_code || typeof app_code !== 'string') {
|
|
81
|
+
throw new Error('[removeSysAppOneCache] app_code required');
|
|
82
|
+
}
|
|
83
|
+
return await this.cacheServiceFactory.removeItemCache({
|
|
84
|
+
cacheKey: app_code,
|
|
85
|
+
cacheName: CacheNameEnum.GetSysAppOne
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}
|