midway-fatcms 0.0.1-beta.65 → 0.0.1-beta.67

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 (385) hide show
  1. package/.eslintrc.json +14 -14
  2. package/.prettierrc.js +4 -4
  3. package/README.md +8 -8
  4. package/dist/config/config.default.d.ts +3 -3
  5. package/dist/config/config.default.js +167 -160
  6. package/dist/config/utils.d.ts +1 -1
  7. package/dist/config/utils.js +23 -23
  8. package/dist/configuration.d.ts +7 -7
  9. package/dist/configuration.js +113 -113
  10. package/dist/controller/base/BaseApiController.d.ts +42 -37
  11. package/dist/controller/base/BaseApiController.js +189 -164
  12. package/dist/controller/gateway/AnyApiGatewayController.d.ts +13 -13
  13. package/dist/controller/gateway/AnyApiGatewayController.js +55 -55
  14. package/dist/controller/gateway/AsyncTaskController.d.ts +20 -20
  15. package/dist/controller/gateway/AsyncTaskController.js +181 -181
  16. package/dist/controller/gateway/CrudMtdGatewayController.d.ts +21 -21
  17. package/dist/controller/gateway/CrudMtdGatewayController.js +122 -122
  18. package/dist/controller/gateway/CrudStdGatewayController.d.ts +38 -38
  19. package/dist/controller/gateway/CrudStdGatewayController.js +155 -129
  20. package/dist/controller/gateway/DocGatewayController.d.ts +27 -27
  21. package/dist/controller/gateway/DocGatewayController.js +179 -179
  22. package/dist/controller/gateway/FileController.d.ts +28 -28
  23. package/dist/controller/gateway/FileController.js +145 -144
  24. package/dist/controller/gateway/ProxyApiGatewayController.d.ts +18 -18
  25. package/dist/controller/gateway/ProxyApiGatewayController.js +78 -78
  26. package/dist/controller/gateway/PublicApiController.d.ts +32 -31
  27. package/dist/controller/gateway/PublicApiController.js +215 -179
  28. package/dist/controller/gateway/StaticController.d.ts +23 -23
  29. package/dist/controller/gateway/StaticController.js +286 -286
  30. package/dist/controller/helpers.controller.d.ts +39 -39
  31. package/dist/controller/helpers.controller.js +188 -188
  32. package/dist/controller/home.controller.d.ts +9 -9
  33. package/dist/controller/home.controller.js +72 -72
  34. package/dist/controller/manage/AnyApiMangeApi.d.ts +10 -10
  35. package/dist/controller/manage/AnyApiMangeApi.js +98 -98
  36. package/dist/controller/manage/AppLogMangeApi.d.ts +10 -10
  37. package/dist/controller/manage/AppLogMangeApi.js +88 -88
  38. package/dist/controller/manage/AppMangeApi.d.ts +10 -10
  39. package/dist/controller/manage/AppMangeApi.js +88 -88
  40. package/dist/controller/manage/AppPageMangeApi.d.ts +10 -10
  41. package/dist/controller/manage/AppPageMangeApi.js +87 -87
  42. package/dist/controller/manage/AppSchemaHistoryApi.d.ts +10 -10
  43. package/dist/controller/manage/AppSchemaHistoryApi.js +83 -83
  44. package/dist/controller/manage/CrudMethodsMangeApi.d.ts +10 -10
  45. package/dist/controller/manage/CrudMethodsMangeApi.js +84 -84
  46. package/dist/controller/manage/CrudStandardDesignApi.d.ts +46 -46
  47. package/dist/controller/manage/CrudStandardDesignApi.js +367 -367
  48. package/dist/controller/manage/DataDictManageApi.d.ts +15 -15
  49. package/dist/controller/manage/DataDictManageApi.js +133 -133
  50. package/dist/controller/manage/DeployManageApi.d.ts +19 -19
  51. package/dist/controller/manage/DeployManageApi.js +180 -180
  52. package/dist/controller/manage/DocLibManageApi.d.ts +10 -10
  53. package/dist/controller/manage/DocLibManageApi.js +104 -104
  54. package/dist/controller/manage/DocManageApi.d.ts +11 -11
  55. package/dist/controller/manage/DocManageApi.js +130 -130
  56. package/dist/controller/manage/FileManageApi.d.ts +13 -13
  57. package/dist/controller/manage/FileManageApi.js +77 -77
  58. package/dist/controller/manage/LowCodeTplManageApi.d.ts +13 -13
  59. package/dist/controller/manage/LowCodeTplManageApi.js +86 -86
  60. package/dist/controller/manage/MenuManageApi.d.ts +10 -10
  61. package/dist/controller/manage/MenuManageApi.js +93 -93
  62. package/dist/controller/manage/ProxyApiMangeApi.d.ts +10 -10
  63. package/dist/controller/manage/ProxyApiMangeApi.js +87 -87
  64. package/dist/controller/manage/SuperAdminManageApi.d.ts +24 -24
  65. package/dist/controller/manage/SuperAdminManageApi.js +153 -153
  66. package/dist/controller/manage/SysConfigMangeApi.d.ts +11 -11
  67. package/dist/controller/manage/SysConfigMangeApi.js +126 -126
  68. package/dist/controller/manage/SystemInfoManageApi.d.ts +12 -12
  69. package/dist/controller/manage/SystemInfoManageApi.js +72 -72
  70. package/dist/controller/manage/UserAccountManageApi.d.ts +14 -14
  71. package/dist/controller/manage/UserAccountManageApi.js +129 -129
  72. package/dist/controller/manage/WorkbenchMangeApi.d.ts +11 -11
  73. package/dist/controller/manage/WorkbenchMangeApi.js +103 -103
  74. package/dist/controller/myinfo/AuthController.d.ts +33 -33
  75. package/dist/controller/myinfo/AuthController.js +136 -136
  76. package/dist/controller/myinfo/MyInfoController.d.ts +13 -13
  77. package/dist/controller/myinfo/MyInfoController.js +51 -51
  78. package/dist/controller/render/AppRenderController.d.ts +11 -11
  79. package/dist/controller/render/AppRenderController.js +92 -92
  80. package/dist/controller/test.controller.d.ts +8 -8
  81. package/dist/controller/test.controller.js +51 -51
  82. package/dist/filter/default.filter.d.ts +7 -7
  83. package/dist/filter/default.filter.js +23 -23
  84. package/dist/filter/notfound.filter.d.ts +5 -5
  85. package/dist/filter/notfound.filter.js +20 -20
  86. package/dist/index.d.ts +103 -103
  87. package/dist/index.js +121 -121
  88. package/dist/interface.d.ts +29 -27
  89. package/dist/interface.js +3 -3
  90. package/dist/libs/crud-pro/CrudPro.d.ts +37 -37
  91. package/dist/libs/crud-pro/CrudPro.js +136 -136
  92. package/dist/libs/crud-pro/defaultConfigs.d.ts +4 -4
  93. package/dist/libs/crud-pro/defaultConfigs.js +15 -15
  94. package/dist/libs/crud-pro/exceptions.d.ts +106 -104
  95. package/dist/libs/crud-pro/exceptions.js +119 -117
  96. package/dist/libs/crud-pro/interfaces.d.ts +165 -165
  97. package/dist/libs/crud-pro/interfaces.js +12 -12
  98. package/dist/libs/crud-pro/models/ExecuteContext.d.ts +49 -49
  99. package/dist/libs/crud-pro/models/ExecuteContext.js +79 -79
  100. package/dist/libs/crud-pro/models/ExecuteContextFunc.d.ts +38 -38
  101. package/dist/libs/crud-pro/models/ExecuteContextFunc.js +72 -72
  102. package/dist/libs/crud-pro/models/FuncContext.d.ts +18 -18
  103. package/dist/libs/crud-pro/models/FuncContext.js +6 -6
  104. package/dist/libs/crud-pro/models/RequestCfgModel.d.ts +65 -65
  105. package/dist/libs/crud-pro/models/RequestCfgModel.js +81 -81
  106. package/dist/libs/crud-pro/models/RequestModel.d.ts +25 -25
  107. package/dist/libs/crud-pro/models/RequestModel.js +113 -113
  108. package/dist/libs/crud-pro/models/ResModel.d.ts +16 -16
  109. package/dist/libs/crud-pro/models/ResModel.js +2 -2
  110. package/dist/libs/crud-pro/models/ServiceHub.d.ts +20 -20
  111. package/dist/libs/crud-pro/models/ServiceHub.js +2 -2
  112. package/dist/libs/crud-pro/models/SqlCfgModel.d.ts +22 -22
  113. package/dist/libs/crud-pro/models/SqlCfgModel.js +40 -40
  114. package/dist/libs/crud-pro/models/SqlSegArg.d.ts +6 -6
  115. package/dist/libs/crud-pro/models/SqlSegArg.js +12 -12
  116. package/dist/libs/crud-pro/models/Transaction.d.ts +30 -30
  117. package/dist/libs/crud-pro/models/Transaction.js +74 -74
  118. package/dist/libs/crud-pro/models/TransactionMySQL.d.ts +28 -28
  119. package/dist/libs/crud-pro/models/TransactionMySQL.js +76 -76
  120. package/dist/libs/crud-pro/models/TransactionPostgres.d.ts +28 -28
  121. package/dist/libs/crud-pro/models/TransactionPostgres.js +85 -85
  122. package/dist/libs/crud-pro/models/TransactionSqlServer.d.ts +34 -34
  123. package/dist/libs/crud-pro/models/TransactionSqlServer.js +92 -92
  124. package/dist/libs/crud-pro/models/keys.d.ts +110 -110
  125. package/dist/libs/crud-pro/models/keys.js +154 -154
  126. package/dist/libs/crud-pro/services/CrudProCachedCfgService.d.ts +11 -11
  127. package/dist/libs/crud-pro/services/CrudProCachedCfgService.js +73 -73
  128. package/dist/libs/crud-pro/services/CrudProExecuteFuncService.d.ts +9 -9
  129. package/dist/libs/crud-pro/services/CrudProExecuteFuncService.js +125 -125
  130. package/dist/libs/crud-pro/services/CrudProExecuteSqlService.d.ts +17 -17
  131. package/dist/libs/crud-pro/services/CrudProExecuteSqlService.js +225 -225
  132. package/dist/libs/crud-pro/services/CrudProFieldUpdateService.d.ts +9 -9
  133. package/dist/libs/crud-pro/services/CrudProFieldUpdateService.js +51 -51
  134. package/dist/libs/crud-pro/services/CrudProFieldValidateService.d.ts +13 -13
  135. package/dist/libs/crud-pro/services/CrudProFieldValidateService.js +148 -148
  136. package/dist/libs/crud-pro/services/CrudProGenSqlCondition.d.ts +24 -24
  137. package/dist/libs/crud-pro/services/CrudProGenSqlCondition.js +355 -355
  138. package/dist/libs/crud-pro/services/CrudProGenSqlService.d.ts +25 -25
  139. package/dist/libs/crud-pro/services/CrudProGenSqlService.js +165 -165
  140. package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.d.ts +32 -32
  141. package/dist/libs/crud-pro/services/CrudProOriginToExecuteSql.js +339 -334
  142. package/dist/libs/crud-pro/services/CrudProServiceBase.d.ts +24 -24
  143. package/dist/libs/crud-pro/services/CrudProServiceBase.js +90 -90
  144. package/dist/libs/crud-pro/services/CrudProTableMetaService.d.ts +9 -9
  145. package/dist/libs/crud-pro/services/CrudProTableMetaService.js +72 -72
  146. package/dist/libs/crud-pro/services/CurdProServiceHub.d.ts +32 -32
  147. package/dist/libs/crud-pro/services/CurdProServiceHub.js +64 -64
  148. package/dist/libs/crud-pro/utils/CompareUtils.d.ts +9 -9
  149. package/dist/libs/crud-pro/utils/CompareUtils.js +25 -25
  150. package/dist/libs/crud-pro/utils/DatabaseName.d.ts +9 -9
  151. package/dist/libs/crud-pro/utils/DatabaseName.js +50 -50
  152. package/dist/libs/crud-pro/utils/DateTimeUtils.d.ts +7 -7
  153. package/dist/libs/crud-pro/utils/DateTimeUtils.js +21 -21
  154. package/dist/libs/crud-pro/utils/MemoryRefreshCache.d.ts +19 -19
  155. package/dist/libs/crud-pro/utils/MemoryRefreshCache.js +47 -47
  156. package/dist/libs/crud-pro/utils/MessageParseUtils.d.ts +5 -5
  157. package/dist/libs/crud-pro/utils/MessageParseUtils.js +33 -33
  158. package/dist/libs/crud-pro/utils/MixinUtils.d.ts +39 -39
  159. package/dist/libs/crud-pro/utils/MixinUtils.js +255 -255
  160. package/dist/libs/crud-pro/utils/ModelUtils.d.ts +11 -11
  161. package/dist/libs/crud-pro/utils/ModelUtils.js +54 -54
  162. package/dist/libs/crud-pro/utils/MultiKeyMap.d.ts +11 -11
  163. package/dist/libs/crud-pro/utils/MultiKeyMap.js +63 -63
  164. package/dist/libs/crud-pro/utils/SqlFuncUtils.d.ts +5 -5
  165. package/dist/libs/crud-pro/utils/SqlFuncUtils.js +29 -29
  166. package/dist/libs/crud-pro/utils/TypeUtils.d.ts +40 -40
  167. package/dist/libs/crud-pro/utils/TypeUtils.js +166 -166
  168. package/dist/libs/crud-pro/utils/ValidateUtils.d.ts +3 -3
  169. package/dist/libs/crud-pro/utils/ValidateUtils.js +165 -165
  170. package/dist/libs/crud-pro/utils/pool/MySQLUtils.d.ts +3 -3
  171. package/dist/libs/crud-pro/utils/pool/MySQLUtils.js +19 -19
  172. package/dist/libs/crud-pro/utils/pool/PostgresUtils.d.ts +3 -3
  173. package/dist/libs/crud-pro/utils/pool/PostgresUtils.js +20 -20
  174. package/dist/libs/crud-pro/utils/pool/SqlServerUtils.d.ts +3 -3
  175. package/dist/libs/crud-pro/utils/pool/SqlServerUtils.js +20 -20
  176. package/dist/libs/crud-pro/utils/sqlConvert/convertColumnName.d.ts +4 -4
  177. package/dist/libs/crud-pro/utils/sqlConvert/convertColumnName.js +35 -21
  178. package/dist/libs/crud-pro/utils/sqlConvert/convertMix.d.ts +3 -3
  179. package/dist/libs/crud-pro/utils/sqlConvert/convertMix.js +22 -22
  180. package/dist/libs/crud-pro/utils/sqlConvert/convertMsSql.d.ts +2 -2
  181. package/dist/libs/crud-pro/utils/sqlConvert/convertMsSql.js +11 -11
  182. package/dist/libs/crud-pro/utils/sqlConvert/convertPgSql.d.ts +2 -2
  183. package/dist/libs/crud-pro/utils/sqlConvert/convertPgSql.js +11 -11
  184. package/dist/libs/crud-pro/utils/sqlConvert/convertPgType.d.ts +2 -2
  185. package/dist/libs/crud-pro/utils/sqlConvert/convertPgType.js +128 -128
  186. package/dist/libs/global-config/global-config.d.ts +69 -69
  187. package/dist/libs/global-config/global-config.js +36 -36
  188. package/dist/libs/utils/AsymmetricCrypto.d.ts +76 -0
  189. package/dist/libs/utils/AsymmetricCrypto.js +261 -0
  190. package/dist/libs/utils/base64.d.ts +9 -9
  191. package/dist/libs/utils/base64.js +42 -42
  192. package/dist/libs/utils/common-dto.d.ts +18 -18
  193. package/dist/libs/utils/common-dto.js +40 -40
  194. package/dist/libs/utils/crypto-utils.d.ts +3 -3
  195. package/dist/libs/utils/crypto-utils.js +46 -46
  196. package/dist/libs/utils/errorToString.d.ts +2 -2
  197. package/dist/libs/utils/errorToString.js +57 -57
  198. package/dist/libs/utils/fatcms-request.d.ts +30 -30
  199. package/dist/libs/utils/fatcms-request.js +104 -104
  200. package/dist/libs/utils/format-url.d.ts +2 -0
  201. package/dist/libs/utils/format-url.js +13 -0
  202. package/dist/libs/utils/functions.d.ts +5 -5
  203. package/dist/libs/utils/functions.js +72 -72
  204. package/dist/libs/utils/ordernum-utils.d.ts +2 -2
  205. package/dist/libs/utils/ordernum-utils.js +13 -13
  206. package/dist/libs/utils/parseConfig.d.ts +8 -8
  207. package/dist/libs/utils/parseConfig.js +47 -47
  208. package/dist/libs/utils/parseCreateSql.d.ts +10 -10
  209. package/dist/libs/utils/parseCreateSql.js +87 -87
  210. package/dist/libs/utils/render-utils.d.ts +37 -28
  211. package/dist/libs/utils/render-utils.js +154 -133
  212. package/dist/middleware/forbidden.middleware.d.ts +10 -10
  213. package/dist/middleware/forbidden.middleware.js +54 -54
  214. package/dist/middleware/global.middleware.d.ts +10 -10
  215. package/dist/middleware/global.middleware.js +273 -266
  216. package/dist/middleware/permission.middleware.d.ts +18 -18
  217. package/dist/middleware/permission.middleware.js +74 -74
  218. package/dist/middleware/rediscache.middleware.d.ts +3 -3
  219. package/dist/middleware/rediscache.middleware.js +77 -77
  220. package/dist/middleware/redislock.middleware.d.ts +7 -7
  221. package/dist/middleware/redislock.middleware.js +72 -72
  222. package/dist/middleware/tx.middleware.d.ts +9 -9
  223. package/dist/middleware/tx.middleware.js +40 -40
  224. package/dist/models/AsyncTaskModel.d.ts +74 -74
  225. package/dist/models/AsyncTaskModel.js +31 -31
  226. package/dist/models/RedisKeys.d.ts +15 -15
  227. package/dist/models/RedisKeys.js +18 -18
  228. package/dist/models/SystemEntities.d.ts +139 -105
  229. package/dist/models/SystemEntities.js +30 -9
  230. package/dist/models/SystemPerm.d.ts +95 -95
  231. package/dist/models/SystemPerm.js +100 -100
  232. package/dist/models/SystemTables.d.ts +25 -25
  233. package/dist/models/SystemTables.js +28 -28
  234. package/dist/models/WorkbenchInfoTools.d.ts +7 -0
  235. package/dist/models/WorkbenchInfoTools.js +20 -0
  236. package/dist/models/bizmodels.d.ts +113 -104
  237. package/dist/models/bizmodels.js +39 -39
  238. package/dist/models/contextLogger.d.ts +27 -25
  239. package/dist/models/contextLogger.js +119 -112
  240. package/dist/models/devops.d.ts +12 -12
  241. package/dist/models/devops.js +19 -19
  242. package/dist/models/userSession.d.ts +64 -62
  243. package/dist/models/userSession.js +167 -165
  244. package/dist/schedule/anonymousContext.d.ts +14 -14
  245. package/dist/schedule/anonymousContext.js +61 -59
  246. package/dist/schedule/index.d.ts +4 -4
  247. package/dist/schedule/index.js +10 -10
  248. package/dist/schedule/runSchedule.d.ts +12 -12
  249. package/dist/schedule/runSchedule.js +68 -68
  250. package/dist/schedule/scheduleNames.d.ts +13 -13
  251. package/dist/schedule/scheduleNames.js +17 -17
  252. package/dist/service/AuthService.d.ts +71 -71
  253. package/dist/service/AuthService.js +270 -263
  254. package/dist/service/EnumInfoService.d.ts +30 -30
  255. package/dist/service/EnumInfoService.js +133 -127
  256. package/dist/service/FileCenterService.d.ts +43 -43
  257. package/dist/service/FileCenterService.js +351 -351
  258. package/dist/service/SysConfigService.d.ts +7 -7
  259. package/dist/service/SysConfigService.js +47 -47
  260. package/dist/service/UserAccountService.d.ts +23 -23
  261. package/dist/service/UserAccountService.js +107 -107
  262. package/dist/service/UserSessionService.d.ts +43 -38
  263. package/dist/service/UserSessionService.js +166 -157
  264. package/dist/service/VisitStatService.d.ts +14 -14
  265. package/dist/service/VisitStatService.js +158 -158
  266. package/dist/service/WorkbenchService.d.ts +54 -53
  267. package/dist/service/WorkbenchService.js +237 -211
  268. package/dist/service/anyapi/AnyApiSandboxService.d.ts +15 -15
  269. package/dist/service/anyapi/AnyApiSandboxService.js +110 -110
  270. package/dist/service/anyapi/AnyApiService.d.ts +27 -27
  271. package/dist/service/anyapi/AnyApiService.js +181 -181
  272. package/dist/service/asyncTask/AsyncTaskRunnerService.d.ts +50 -50
  273. package/dist/service/asyncTask/AsyncTaskRunnerService.js +287 -287
  274. package/dist/service/asyncTask/AsyncTaskService.d.ts +7 -7
  275. package/dist/service/asyncTask/AsyncTaskService.js +34 -34
  276. package/dist/service/asyncTask/handler/ExcelInfoModel.d.ts +10 -10
  277. package/dist/service/asyncTask/handler/ExcelInfoModel.js +2 -2
  278. package/dist/service/asyncTask/handler/ExportExcelAsyncTaskHandler.d.ts +7 -7
  279. package/dist/service/asyncTask/handler/ExportExcelAsyncTaskHandler.js +216 -216
  280. package/dist/service/asyncTask/handler/ExportExcelByInnerHttpHandler.d.ts +36 -36
  281. package/dist/service/asyncTask/handler/ExportExcelByInnerHttpHandler.js +141 -141
  282. package/dist/service/asyncTask/handler/ExportExcelByStdCrudHandler.d.ts +46 -46
  283. package/dist/service/asyncTask/handler/ExportExcelByStdCrudHandler.js +135 -135
  284. package/dist/service/base/ApiBaseService.d.ts +15 -15
  285. package/dist/service/base/ApiBaseService.js +50 -50
  286. package/dist/service/base/ApiRateLimiter.d.ts +10 -10
  287. package/dist/service/base/ApiRateLimiter.js +51 -51
  288. package/dist/service/base/BaseService.d.ts +41 -41
  289. package/dist/service/base/BaseService.js +101 -101
  290. package/dist/service/base/cache/CacheServiceFactory.d.ts +20 -0
  291. package/dist/service/base/cache/CacheServiceFactory.js +67 -0
  292. package/dist/service/base/cache/CtxCache.d.ts +19 -0
  293. package/dist/service/base/cache/CtxCache.js +38 -0
  294. package/dist/service/base/cache/DiskCache.d.ts +24 -0
  295. package/dist/service/base/cache/DiskCache.js +81 -0
  296. package/dist/service/base/cache/MemoryCache.d.ts +18 -0
  297. package/dist/service/base/cache/MemoryCache.js +66 -0
  298. package/dist/service/base/cache/NoneCache.d.ts +10 -0
  299. package/dist/service/base/cache/NoneCache.js +19 -0
  300. package/dist/service/base/{RedisCacheService.d.ts → cache/RedisCache.d.ts} +20 -20
  301. package/dist/service/base/cache/RedisCache.js +39 -0
  302. package/dist/service/crudstd/CrudStdActionService.d.ts +17 -17
  303. package/dist/service/crudstd/CrudStdActionService.js +32 -32
  304. package/dist/service/crudstd/CrudStdConstant.d.ts +58 -58
  305. package/dist/service/crudstd/CrudStdConstant.js +64 -64
  306. package/dist/service/crudstd/CrudStdRelationService.d.ts +10 -10
  307. package/dist/service/crudstd/CrudStdRelationService.js +121 -121
  308. package/dist/service/crudstd/CrudStdService.d.ts +72 -70
  309. package/dist/service/crudstd/CrudStdService.js +417 -403
  310. package/dist/service/curd/CrudProQuick.d.ts +44 -44
  311. package/dist/service/curd/CrudProQuick.js +147 -147
  312. package/dist/service/curd/CurdMixByAccountService.d.ts +9 -9
  313. package/dist/service/curd/CurdMixByAccountService.js +113 -113
  314. package/dist/service/curd/CurdMixByDictService.d.ts +12 -13
  315. package/dist/service/curd/CurdMixByDictService.js +118 -114
  316. package/dist/service/curd/CurdMixByLinkToCustomService.d.ts +30 -31
  317. package/dist/service/curd/CurdMixByLinkToCustomService.js +207 -203
  318. package/dist/service/curd/CurdMixBySysConfigService.d.ts +13 -9
  319. package/dist/service/curd/CurdMixBySysConfigService.js +120 -80
  320. package/dist/service/curd/CurdMixByWorkbenchService.d.ts +11 -10
  321. package/dist/service/curd/CurdMixByWorkbenchService.js +86 -78
  322. package/dist/service/curd/CurdMixService.d.ts +28 -28
  323. package/dist/service/curd/CurdMixService.js +100 -100
  324. package/dist/service/curd/CurdMixUtils.d.ts +57 -57
  325. package/dist/service/curd/CurdMixUtils.js +331 -331
  326. package/dist/service/curd/CurdProService.d.ts +32 -32
  327. package/dist/service/curd/CurdProService.js +212 -212
  328. package/dist/service/curd/fixCfgModel.d.ts +3 -3
  329. package/dist/service/curd/fixCfgModel.js +104 -104
  330. package/dist/service/proxyapi/ProxyApiLoadService.d.ts +21 -21
  331. package/dist/service/proxyapi/ProxyApiLoadService.js +167 -167
  332. package/dist/service/proxyapi/ProxyApiService.d.ts +61 -61
  333. package/dist/service/proxyapi/ProxyApiService.js +294 -294
  334. package/dist/service/proxyapi/ProxyApiUtils.d.ts +15 -15
  335. package/dist/service/proxyapi/ProxyApiUtils.js +34 -34
  336. package/dist/service/proxyapi/RouteHandler.d.ts +5 -5
  337. package/dist/service/proxyapi/RouteHandler.js +9 -9
  338. package/dist/service/proxyapi/RouteTrie.d.ts +12 -12
  339. package/dist/service/proxyapi/RouteTrie.js +63 -63
  340. package/dist/service/proxyapi/WeightedRandom.d.ts +9 -9
  341. package/dist/service/proxyapi/WeightedRandom.js +31 -31
  342. package/dist/service/proxyapi/WeightedRoundRobin.d.ts +8 -8
  343. package/dist/service/proxyapi/WeightedRoundRobin.js +32 -32
  344. package/index.d.ts +10 -10
  345. package/package.json +87 -87
  346. package/src/config/config.default.ts +8 -0
  347. package/src/controller/base/BaseApiController.ts +39 -0
  348. package/src/controller/gateway/CrudStdGatewayController.ts +42 -10
  349. package/src/controller/gateway/FileController.ts +2 -2
  350. package/src/controller/gateway/PublicApiController.ts +72 -28
  351. package/src/index.ts +1 -1
  352. package/src/interface.ts +2 -0
  353. package/src/libs/crud-pro/exceptions.ts +2 -0
  354. package/src/libs/crud-pro/models/keys.ts +6 -6
  355. package/src/libs/crud-pro/services/CrudProOriginToExecuteSql.ts +7 -1
  356. package/src/libs/crud-pro/utils/sqlConvert/convertColumnName.ts +18 -0
  357. package/src/libs/utils/AsymmetricCrypto.ts +310 -0
  358. package/src/libs/utils/format-url.ts +16 -0
  359. package/src/libs/utils/render-utils.ts +56 -15
  360. package/src/middleware/global.middleware.ts +8 -0
  361. package/src/models/SystemEntities.ts +43 -0
  362. package/src/models/WorkbenchInfoTools.ts +18 -0
  363. package/src/models/bizmodels.ts +12 -0
  364. package/src/models/contextLogger.ts +10 -1
  365. package/src/models/userSession.ts +4 -0
  366. package/src/schedule/anonymousContext.ts +2 -0
  367. package/src/service/AuthService.ts +11 -0
  368. package/src/service/EnumInfoService.ts +35 -22
  369. package/src/service/UserSessionService.ts +29 -18
  370. package/src/service/WorkbenchService.ts +42 -2
  371. package/src/service/base/cache/CacheServiceFactory.ts +66 -0
  372. package/src/service/base/cache/CtxCache.ts +47 -0
  373. package/src/service/base/cache/DiskCache.ts +87 -0
  374. package/src/service/base/cache/MemoryCache.ts +74 -0
  375. package/src/service/base/cache/NoneCache.ts +24 -0
  376. package/src/service/base/cache/RedisCache.ts +48 -0
  377. package/src/service/crudstd/CrudStdService.ts +28 -12
  378. package/src/service/curd/CurdMixByAccountService.ts +1 -0
  379. package/src/service/curd/CurdMixByDictService.ts +14 -8
  380. package/src/service/curd/CurdMixByLinkToCustomService.ts +21 -12
  381. package/src/service/curd/CurdMixBySysConfigService.ts +60 -11
  382. package/src/service/curd/CurdMixByWorkbenchService.ts +31 -24
  383. package/tsconfig.json +32 -32
  384. package/dist/service/base/RedisCacheService.js +0 -57
  385. package/src/service/base/RedisCacheService.ts +0 -42
@@ -1,104 +1,104 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fixCfgModel = void 0;
4
- const _ = require("lodash");
5
- const bizmodels_1 = require("../../models/bizmodels");
6
- const keys_1 = require("../../libs/crud-pro/models/keys");
7
- function isSimpleQuery(sqlSimpleName) {
8
- return sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_QUERY || sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_COUNT || sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_PAGE || sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_ONE;
9
- }
10
- function fixCfgModel(cfgModel) {
11
- if (!cfgModel.method) {
12
- cfgModel.method = 'anonymous';
13
- }
14
- if (!cfgModel.updateCfg) {
15
- cfgModel.updateCfg = {};
16
- }
17
- const sqlSimpleName = cfgModel.sqlSimpleName;
18
- const enableStandardUpdateCfg = cfgModel.enableStandardUpdateCfg; // 用于设置data字段
19
- const enableStandardUpdateCfgCondition = cfgModel.enableStandardUpdateCfgCondition; // 用于设置condition字段
20
- // 彻底关闭
21
- if (enableStandardUpdateCfg === false) {
22
- return;
23
- }
24
- const getDataCfgArray = () => {
25
- // 明确有配置
26
- if (Array.isArray(enableStandardUpdateCfg)) {
27
- if (enableStandardUpdateCfg.includes('null')) {
28
- return [];
29
- }
30
- return enableStandardUpdateCfg;
31
- }
32
- // update 、insert 添加 by
33
- return ['by']; // 创建/修改语句默认添加by
34
- };
35
- const getConditionCfgArray = () => {
36
- // 明确有配置
37
- if (Array.isArray(enableStandardUpdateCfgCondition)) {
38
- if (enableStandardUpdateCfgCondition.includes('null')) {
39
- return [];
40
- }
41
- return enableStandardUpdateCfgCondition;
42
- }
43
- return [];
44
- };
45
- const dataCfgArray = getDataCfgArray();
46
- const conditionCfgArray = getConditionCfgArray();
47
- const mapping = {
48
- 'condition.created_by': { contextAsString: bizmodels_1.CTX_VISITOR_ID },
49
- 'condition.created_account_type': { contextAsString: bizmodels_1.CTX_VISITOR_ACCOUNT_TYPE },
50
- 'data.created_by': { contextAsString: bizmodels_1.CTX_VISITOR_ID },
51
- 'data.created_avatar': { contextAsString: bizmodels_1.CTX_VISITOR_AVATAR },
52
- 'data.created_nickname': { contextAsString: bizmodels_1.CTX_VISITOR_NICKNAME },
53
- 'data.created_account_type': { contextAsString: bizmodels_1.CTX_VISITOR_ACCOUNT_TYPE },
54
- 'data.modified_by': { contextAsString: bizmodels_1.CTX_VISITOR_ID },
55
- 'data.modified_avatar': { contextAsString: bizmodels_1.CTX_VISITOR_AVATAR },
56
- 'data.modified_nickname': { contextAsString: bizmodels_1.CTX_VISITOR_NICKNAME },
57
- 'data.modified_account_type': { contextAsString: bizmodels_1.CTX_VISITOR_ACCOUNT_TYPE },
58
- };
59
- const buildUpdateCfgBy = (cfgArray, prefix) => {
60
- const obj = {};
61
- if (Array.isArray(cfgArray)) {
62
- for (let i = 0; i < cfgArray.length; i++) {
63
- const suffix = cfgArray[i];
64
- if (suffix) {
65
- const key = `${prefix}_${suffix}`;
66
- obj[key] = mapping[key];
67
- }
68
- }
69
- }
70
- return obj;
71
- };
72
- // 查询语句
73
- if (isSimpleQuery(sqlSimpleName)) {
74
- const updateCfgObj = buildUpdateCfgBy(conditionCfgArray, 'condition.created'); // 查询用户本人创建的
75
- _.merge(cfgModel.updateCfg, updateCfgObj);
76
- }
77
- // 删除语句
78
- if (sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_DELETE) {
79
- const updateCfgObj = buildUpdateCfgBy(conditionCfgArray, 'condition.created'); // 删除用户本人创建的
80
- _.merge(cfgModel.updateCfg, updateCfgObj);
81
- }
82
- // 插入语句
83
- if (sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_INSERT) {
84
- const updateCfgObj1 = buildUpdateCfgBy(dataCfgArray, 'data.created');
85
- _.merge(cfgModel.updateCfg, updateCfgObj1);
86
- }
87
- // 更新语句
88
- if (sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_UPDATE) {
89
- const updateCfgObj1 = buildUpdateCfgBy(dataCfgArray, 'data.modified');
90
- const updateCfgObj2 = buildUpdateCfgBy(conditionCfgArray, 'condition.created'); // 更新用户本人创建的
91
- _.merge(cfgModel.updateCfg, updateCfgObj1);
92
- _.merge(cfgModel.updateCfg, updateCfgObj2);
93
- }
94
- // 插入或更新
95
- if (sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_INSERT_OR_UPDATE || sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_INSERT_ON_DUPLICATE_UPDATE) {
96
- const updateCfgObj1 = buildUpdateCfgBy(dataCfgArray, 'data.created');
97
- const updateCfgObj2 = buildUpdateCfgBy(dataCfgArray, 'data.modified');
98
- const updateCfgObj3 = buildUpdateCfgBy(conditionCfgArray, 'condition.created'); // 更新用户本人创建的
99
- _.merge(cfgModel.updateCfg, updateCfgObj1);
100
- _.merge(cfgModel.updateCfg, updateCfgObj2);
101
- _.merge(cfgModel.updateCfg, updateCfgObj3);
102
- }
103
- }
104
- exports.fixCfgModel = fixCfgModel;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fixCfgModel = void 0;
4
+ const _ = require("lodash");
5
+ const bizmodels_1 = require("../../models/bizmodels");
6
+ const keys_1 = require("../../libs/crud-pro/models/keys");
7
+ function isSimpleQuery(sqlSimpleName) {
8
+ return sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_QUERY || sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_COUNT || sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_PAGE || sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_QUERY_ONE;
9
+ }
10
+ function fixCfgModel(cfgModel) {
11
+ if (!cfgModel.method) {
12
+ cfgModel.method = 'anonymous';
13
+ }
14
+ if (!cfgModel.updateCfg) {
15
+ cfgModel.updateCfg = {};
16
+ }
17
+ const sqlSimpleName = cfgModel.sqlSimpleName;
18
+ const enableStandardUpdateCfg = cfgModel.enableStandardUpdateCfg; // 用于设置data字段
19
+ const enableStandardUpdateCfgCondition = cfgModel.enableStandardUpdateCfgCondition; // 用于设置condition字段
20
+ // 彻底关闭
21
+ if (enableStandardUpdateCfg === false) {
22
+ return;
23
+ }
24
+ const getDataCfgArray = () => {
25
+ // 明确有配置
26
+ if (Array.isArray(enableStandardUpdateCfg)) {
27
+ if (enableStandardUpdateCfg.includes('null')) {
28
+ return [];
29
+ }
30
+ return enableStandardUpdateCfg;
31
+ }
32
+ // update 、insert 添加 by
33
+ return ['by']; // 创建/修改语句默认添加by
34
+ };
35
+ const getConditionCfgArray = () => {
36
+ // 明确有配置
37
+ if (Array.isArray(enableStandardUpdateCfgCondition)) {
38
+ if (enableStandardUpdateCfgCondition.includes('null')) {
39
+ return [];
40
+ }
41
+ return enableStandardUpdateCfgCondition;
42
+ }
43
+ return [];
44
+ };
45
+ const dataCfgArray = getDataCfgArray();
46
+ const conditionCfgArray = getConditionCfgArray();
47
+ const mapping = {
48
+ 'condition.created_by': { contextAsString: bizmodels_1.CTX_VISITOR_ID },
49
+ 'condition.created_account_type': { contextAsString: bizmodels_1.CTX_VISITOR_ACCOUNT_TYPE },
50
+ 'data.created_by': { contextAsString: bizmodels_1.CTX_VISITOR_ID },
51
+ 'data.created_avatar': { contextAsString: bizmodels_1.CTX_VISITOR_AVATAR },
52
+ 'data.created_nickname': { contextAsString: bizmodels_1.CTX_VISITOR_NICKNAME },
53
+ 'data.created_account_type': { contextAsString: bizmodels_1.CTX_VISITOR_ACCOUNT_TYPE },
54
+ 'data.modified_by': { contextAsString: bizmodels_1.CTX_VISITOR_ID },
55
+ 'data.modified_avatar': { contextAsString: bizmodels_1.CTX_VISITOR_AVATAR },
56
+ 'data.modified_nickname': { contextAsString: bizmodels_1.CTX_VISITOR_NICKNAME },
57
+ 'data.modified_account_type': { contextAsString: bizmodels_1.CTX_VISITOR_ACCOUNT_TYPE },
58
+ };
59
+ const buildUpdateCfgBy = (cfgArray, prefix) => {
60
+ const obj = {};
61
+ if (Array.isArray(cfgArray)) {
62
+ for (let i = 0; i < cfgArray.length; i++) {
63
+ const suffix = cfgArray[i];
64
+ if (suffix) {
65
+ const key = `${prefix}_${suffix}`;
66
+ obj[key] = mapping[key];
67
+ }
68
+ }
69
+ }
70
+ return obj;
71
+ };
72
+ // 查询语句
73
+ if (isSimpleQuery(sqlSimpleName)) {
74
+ const updateCfgObj = buildUpdateCfgBy(conditionCfgArray, 'condition.created'); // 查询用户本人创建的
75
+ _.merge(cfgModel.updateCfg, updateCfgObj);
76
+ }
77
+ // 删除语句
78
+ if (sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_DELETE) {
79
+ const updateCfgObj = buildUpdateCfgBy(conditionCfgArray, 'condition.created'); // 删除用户本人创建的
80
+ _.merge(cfgModel.updateCfg, updateCfgObj);
81
+ }
82
+ // 插入语句
83
+ if (sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_INSERT) {
84
+ const updateCfgObj1 = buildUpdateCfgBy(dataCfgArray, 'data.created');
85
+ _.merge(cfgModel.updateCfg, updateCfgObj1);
86
+ }
87
+ // 更新语句
88
+ if (sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_UPDATE) {
89
+ const updateCfgObj1 = buildUpdateCfgBy(dataCfgArray, 'data.modified');
90
+ const updateCfgObj2 = buildUpdateCfgBy(conditionCfgArray, 'condition.created'); // 更新用户本人创建的
91
+ _.merge(cfgModel.updateCfg, updateCfgObj1);
92
+ _.merge(cfgModel.updateCfg, updateCfgObj2);
93
+ }
94
+ // 插入或更新
95
+ if (sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_INSERT_OR_UPDATE || sqlSimpleName === keys_1.KeysOfSimpleSQL.SIMPLE_INSERT_ON_DUPLICATE_UPDATE) {
96
+ const updateCfgObj1 = buildUpdateCfgBy(dataCfgArray, 'data.created');
97
+ const updateCfgObj2 = buildUpdateCfgBy(dataCfgArray, 'data.modified');
98
+ const updateCfgObj3 = buildUpdateCfgBy(conditionCfgArray, 'condition.created'); // 更新用户本人创建的
99
+ _.merge(cfgModel.updateCfg, updateCfgObj1);
100
+ _.merge(cfgModel.updateCfg, updateCfgObj2);
101
+ _.merge(cfgModel.updateCfg, updateCfgObj3);
102
+ }
103
+ }
104
+ exports.fixCfgModel = fixCfgModel;
@@ -1,21 +1,21 @@
1
- import { Context } from '@midwayjs/koa';
2
- import { BaseService } from '../base/BaseService';
3
- import { RouteTrie } from './RouteTrie';
4
- import { IScheduleService } from '../../interface';
5
- /**
6
- * 接口代理。 数据加载
7
- */
8
- export declare class ProxyApiLoadService extends BaseService implements IScheduleService {
9
- protected ctx: Context;
10
- private curdProService;
11
- private workbenchService;
12
- /**
13
- * 创建路由树。刷新路由缓存
14
- * @param workbench_code
15
- */
16
- buildRouteTrie(workbench_code: string): Promise<RouteTrie>;
17
- private buildUpstreamMap;
18
- private loadProxyApiEntity;
19
- private addUpstreamInfo;
20
- runBySchedule(): Promise<any>;
21
- }
1
+ import { Context } from '@midwayjs/koa';
2
+ import { BaseService } from '../base/BaseService';
3
+ import { RouteTrie } from './RouteTrie';
4
+ import { IScheduleService } from '../../interface';
5
+ /**
6
+ * 接口代理。 数据加载
7
+ */
8
+ export declare class ProxyApiLoadService extends BaseService implements IScheduleService {
9
+ protected ctx: Context;
10
+ private curdProService;
11
+ private workbenchService;
12
+ /**
13
+ * 创建路由树。刷新路由缓存
14
+ * @param workbench_code
15
+ */
16
+ buildRouteTrie(workbench_code: string): Promise<RouteTrie>;
17
+ private buildUpstreamMap;
18
+ private loadProxyApiEntity;
19
+ private addUpstreamInfo;
20
+ runBySchedule(): Promise<any>;
21
+ }
@@ -1,167 +1,167 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.ProxyApiLoadService = void 0;
13
- const core_1 = require("@midwayjs/core");
14
- const _ = require("lodash");
15
- const BaseService_1 = require("../base/BaseService");
16
- const RouteTrie_1 = require("./RouteTrie");
17
- const RouteHandler_1 = require("./RouteHandler");
18
- const CurdProService_1 = require("../curd/CurdProService");
19
- const SystemTables_1 = require("../../models/SystemTables");
20
- const keys_1 = require("../../libs/crud-pro/models/keys");
21
- const functions_1 = require("../../libs/utils/functions");
22
- const ProxyApiUtils_1 = require("./ProxyApiUtils");
23
- const WeightedRandom_1 = require("./WeightedRandom");
24
- const WeightedRoundRobin_1 = require("./WeightedRoundRobin");
25
- const WorkbenchService_1 = require("../WorkbenchService");
26
- const exceptions_1 = require("../../libs/crud-pro/exceptions");
27
- const global_config_1 = require("../../libs/global-config/global-config");
28
- function toUpstreamInfo(config_content) {
29
- const obj = (0, functions_1.parseJsonObject)(config_content);
30
- if (!obj) {
31
- return {
32
- balanceStrategy: ProxyApiUtils_1.BALANCE_STRATEGY.ROUND_ROBIN,
33
- targetList: [],
34
- };
35
- }
36
- const targetList = _.get(obj, 'data.targetList', []);
37
- const balanceStrategy = _.get(obj, 'data.baseInfo.balanceStrategy');
38
- if (Array.isArray(targetList)) {
39
- const targetListParsed = targetList
40
- .map((item) => {
41
- return {
42
- origin: item.origin,
43
- weight: item.weight || 1,
44
- };
45
- })
46
- .filter(item => {
47
- const origin = (item === null || item === void 0 ? void 0 : item.origin) || '';
48
- return origin.startsWith('http://') || origin.startsWith('https://');
49
- });
50
- return {
51
- balanceStrategy,
52
- targetList: targetListParsed,
53
- };
54
- }
55
- return {
56
- balanceStrategy: ProxyApiUtils_1.BALANCE_STRATEGY.ROUND_ROBIN,
57
- targetList: [],
58
- };
59
- }
60
- /**
61
- * 接口代理。 数据加载
62
- */
63
- let ProxyApiLoadService = class ProxyApiLoadService extends BaseService_1.BaseService {
64
- /**
65
- * 创建路由树。刷新路由缓存
66
- * @param workbench_code
67
- */
68
- async buildRouteTrie(workbench_code) {
69
- const upstreamMap = await this.buildUpstreamMap();
70
- const routeTrie = (0, RouteTrie_1.getRouteTrie)(workbench_code);
71
- routeTrie.clearRoute();
72
- const entities = await this.loadProxyApiEntity(workbench_code, upstreamMap);
73
- for (let i = 0; i < entities.length; i++) {
74
- const entity = entities[i];
75
- if (entity.status === 1) {
76
- const path_prefix2 = '/' + entity.upstream_code + entity.path_prefix;
77
- routeTrie.addRoute(path_prefix2, new RouteHandler_1.RouteHandler(entity));
78
- }
79
- }
80
- return routeTrie;
81
- }
82
- async buildUpstreamMap() {
83
- const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
84
- // biz_tag={'upstream'}
85
- const res = await this.curdProService.executeCrudByCfg({
86
- condition: {
87
- biz_tag: 'upstream',
88
- },
89
- }, {
90
- sqlTable: SystemTables_1.SystemTables.sys_configs,
91
- sqlDatabase: SystemDbName,
92
- sqlDbType: SystemDbType,
93
- sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
94
- });
95
- const upstreamMap = {};
96
- const rows = res.getResRows();
97
- for (let i = 0; i < rows.length; i++) {
98
- const row = rows[i];
99
- const { config_code, config_content } = row || {};
100
- upstreamMap[config_code] = toUpstreamInfo(config_content);
101
- }
102
- return upstreamMap;
103
- }
104
- async loadProxyApiEntity(workbench_code, upstreamMap) {
105
- const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
106
- const res = await this.curdProService.executeCrudByCfg({
107
- condition: {},
108
- }, {
109
- sqlTable: SystemTables_1.SystemTables.sys_proxyapi,
110
- sqlDatabase: SystemDbName,
111
- sqlDbType: SystemDbType,
112
- sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
113
- });
114
- const rows0 = res.getResRows();
115
- const rows = rows0.filter(s => {
116
- if (!s.workbench_code_array) {
117
- throw new exceptions_1.CommonException('IS_SUPPORT_CURRENT_WORKBENCH', '未配置支持的站点字段');
118
- }
119
- return this.workbenchService.isMatchWorkbenchCode(s.workbench_code_array, workbench_code);
120
- });
121
- for (let i = 0; i < rows.length; i++) {
122
- const row = rows[i];
123
- const upstream_code = row.upstream_code;
124
- this.addUpstreamInfo(row, upstream_code, upstreamMap);
125
- }
126
- return rows;
127
- }
128
- addUpstreamInfo(row, upstream_code, upstreamMap) {
129
- const upstreamInfo = upstreamMap[upstream_code];
130
- if (!upstreamInfo) {
131
- return;
132
- }
133
- row.targetIndex = 0;
134
- row.targetList = upstreamInfo.targetList || [];
135
- row.balanceStrategy = upstreamInfo.balanceStrategy || ProxyApiUtils_1.BALANCE_STRATEGY.ROUND_ROBIN;
136
- row.weightedRandom = new WeightedRandom_1.WeightedRandom(upstreamInfo.targetList || []);
137
- row.weightedRoundRobin = new WeightedRoundRobin_1.WeightedRoundRobin(upstreamInfo.targetList || []);
138
- }
139
- async runBySchedule() {
140
- const workbenchList = await this.workbenchService.getAllWorkbenchInfoList();
141
- for (let i = 0; i < workbenchList.length; i++) {
142
- const workbenchInfo = workbenchList[i];
143
- try {
144
- await this.buildRouteTrie(workbenchInfo.workbench_code);
145
- }
146
- catch (e) {
147
- this.logError('ProxyApiLoadService_runBySchedule', e);
148
- }
149
- }
150
- }
151
- };
152
- __decorate([
153
- (0, core_1.Inject)(),
154
- __metadata("design:type", Object)
155
- ], ProxyApiLoadService.prototype, "ctx", void 0);
156
- __decorate([
157
- (0, core_1.Inject)(),
158
- __metadata("design:type", CurdProService_1.CurdProService)
159
- ], ProxyApiLoadService.prototype, "curdProService", void 0);
160
- __decorate([
161
- (0, core_1.Inject)(),
162
- __metadata("design:type", WorkbenchService_1.WorkbenchService)
163
- ], ProxyApiLoadService.prototype, "workbenchService", void 0);
164
- ProxyApiLoadService = __decorate([
165
- (0, core_1.Provide)()
166
- ], ProxyApiLoadService);
167
- exports.ProxyApiLoadService = ProxyApiLoadService;
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ProxyApiLoadService = void 0;
13
+ const core_1 = require("@midwayjs/core");
14
+ const _ = require("lodash");
15
+ const BaseService_1 = require("../base/BaseService");
16
+ const RouteTrie_1 = require("./RouteTrie");
17
+ const RouteHandler_1 = require("./RouteHandler");
18
+ const CurdProService_1 = require("../curd/CurdProService");
19
+ const SystemTables_1 = require("../../models/SystemTables");
20
+ const keys_1 = require("../../libs/crud-pro/models/keys");
21
+ const functions_1 = require("../../libs/utils/functions");
22
+ const ProxyApiUtils_1 = require("./ProxyApiUtils");
23
+ const WeightedRandom_1 = require("./WeightedRandom");
24
+ const WeightedRoundRobin_1 = require("./WeightedRoundRobin");
25
+ const WorkbenchService_1 = require("../WorkbenchService");
26
+ const exceptions_1 = require("../../libs/crud-pro/exceptions");
27
+ const global_config_1 = require("../../libs/global-config/global-config");
28
+ function toUpstreamInfo(config_content) {
29
+ const obj = (0, functions_1.parseJsonObject)(config_content);
30
+ if (!obj) {
31
+ return {
32
+ balanceStrategy: ProxyApiUtils_1.BALANCE_STRATEGY.ROUND_ROBIN,
33
+ targetList: [],
34
+ };
35
+ }
36
+ const targetList = _.get(obj, 'data.targetList', []);
37
+ const balanceStrategy = _.get(obj, 'data.baseInfo.balanceStrategy');
38
+ if (Array.isArray(targetList)) {
39
+ const targetListParsed = targetList
40
+ .map((item) => {
41
+ return {
42
+ origin: item.origin,
43
+ weight: item.weight || 1,
44
+ };
45
+ })
46
+ .filter(item => {
47
+ const origin = (item === null || item === void 0 ? void 0 : item.origin) || '';
48
+ return origin.startsWith('http://') || origin.startsWith('https://');
49
+ });
50
+ return {
51
+ balanceStrategy,
52
+ targetList: targetListParsed,
53
+ };
54
+ }
55
+ return {
56
+ balanceStrategy: ProxyApiUtils_1.BALANCE_STRATEGY.ROUND_ROBIN,
57
+ targetList: [],
58
+ };
59
+ }
60
+ /**
61
+ * 接口代理。 数据加载
62
+ */
63
+ let ProxyApiLoadService = class ProxyApiLoadService extends BaseService_1.BaseService {
64
+ /**
65
+ * 创建路由树。刷新路由缓存
66
+ * @param workbench_code
67
+ */
68
+ async buildRouteTrie(workbench_code) {
69
+ const upstreamMap = await this.buildUpstreamMap();
70
+ const routeTrie = (0, RouteTrie_1.getRouteTrie)(workbench_code);
71
+ routeTrie.clearRoute();
72
+ const entities = await this.loadProxyApiEntity(workbench_code, upstreamMap);
73
+ for (let i = 0; i < entities.length; i++) {
74
+ const entity = entities[i];
75
+ if (entity.status === 1) {
76
+ const path_prefix2 = '/' + entity.upstream_code + entity.path_prefix;
77
+ routeTrie.addRoute(path_prefix2, new RouteHandler_1.RouteHandler(entity));
78
+ }
79
+ }
80
+ return routeTrie;
81
+ }
82
+ async buildUpstreamMap() {
83
+ const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
84
+ // biz_tag={'upstream'}
85
+ const res = await this.curdProService.executeCrudByCfg({
86
+ condition: {
87
+ biz_tag: 'upstream',
88
+ },
89
+ }, {
90
+ sqlTable: SystemTables_1.SystemTables.sys_configs,
91
+ sqlDatabase: SystemDbName,
92
+ sqlDbType: SystemDbType,
93
+ sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
94
+ });
95
+ const upstreamMap = {};
96
+ const rows = res.getResRows();
97
+ for (let i = 0; i < rows.length; i++) {
98
+ const row = rows[i];
99
+ const { config_code, config_content } = row || {};
100
+ upstreamMap[config_code] = toUpstreamInfo(config_content);
101
+ }
102
+ return upstreamMap;
103
+ }
104
+ async loadProxyApiEntity(workbench_code, upstreamMap) {
105
+ const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
106
+ const res = await this.curdProService.executeCrudByCfg({
107
+ condition: {},
108
+ }, {
109
+ sqlTable: SystemTables_1.SystemTables.sys_proxyapi,
110
+ sqlDatabase: SystemDbName,
111
+ sqlDbType: SystemDbType,
112
+ sqlSimpleName: keys_1.KeysOfSimpleSQL.SIMPLE_QUERY,
113
+ });
114
+ const rows0 = res.getResRows();
115
+ const rows = rows0.filter(s => {
116
+ if (!s.workbench_code_array) {
117
+ throw new exceptions_1.CommonException('IS_SUPPORT_CURRENT_WORKBENCH', '未配置支持的站点字段');
118
+ }
119
+ return this.workbenchService.isMatchWorkbenchCode(s.workbench_code_array, workbench_code);
120
+ });
121
+ for (let i = 0; i < rows.length; i++) {
122
+ const row = rows[i];
123
+ const upstream_code = row.upstream_code;
124
+ this.addUpstreamInfo(row, upstream_code, upstreamMap);
125
+ }
126
+ return rows;
127
+ }
128
+ addUpstreamInfo(row, upstream_code, upstreamMap) {
129
+ const upstreamInfo = upstreamMap[upstream_code];
130
+ if (!upstreamInfo) {
131
+ return;
132
+ }
133
+ row.targetIndex = 0;
134
+ row.targetList = upstreamInfo.targetList || [];
135
+ row.balanceStrategy = upstreamInfo.balanceStrategy || ProxyApiUtils_1.BALANCE_STRATEGY.ROUND_ROBIN;
136
+ row.weightedRandom = new WeightedRandom_1.WeightedRandom(upstreamInfo.targetList || []);
137
+ row.weightedRoundRobin = new WeightedRoundRobin_1.WeightedRoundRobin(upstreamInfo.targetList || []);
138
+ }
139
+ async runBySchedule() {
140
+ const workbenchList = await this.workbenchService.getAllWorkbenchInfoList();
141
+ for (let i = 0; i < workbenchList.length; i++) {
142
+ const workbenchInfo = workbenchList[i];
143
+ try {
144
+ await this.buildRouteTrie(workbenchInfo.workbench_code);
145
+ }
146
+ catch (e) {
147
+ this.logError('ProxyApiLoadService_runBySchedule', e);
148
+ }
149
+ }
150
+ }
151
+ };
152
+ __decorate([
153
+ (0, core_1.Inject)(),
154
+ __metadata("design:type", Object)
155
+ ], ProxyApiLoadService.prototype, "ctx", void 0);
156
+ __decorate([
157
+ (0, core_1.Inject)(),
158
+ __metadata("design:type", CurdProService_1.CurdProService)
159
+ ], ProxyApiLoadService.prototype, "curdProService", void 0);
160
+ __decorate([
161
+ (0, core_1.Inject)(),
162
+ __metadata("design:type", WorkbenchService_1.WorkbenchService)
163
+ ], ProxyApiLoadService.prototype, "workbenchService", void 0);
164
+ ProxyApiLoadService = __decorate([
165
+ (0, core_1.Provide)()
166
+ ], ProxyApiLoadService);
167
+ exports.ProxyApiLoadService = ProxyApiLoadService;