midway-fatcms 0.0.2 → 0.0.3
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 +406 -406
- 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 +49 -49
- package/dist/controller/base/BaseApiController.js +198 -198
- 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 +181 -181
- package/dist/controller/gateway/FileController.d.ts +32 -32
- package/dist/controller/gateway/FileController.js +160 -160
- package/dist/controller/gateway/FlowInstanceController.d.ts +16 -16
- package/dist/controller/gateway/FlowInstanceController.js +48 -48
- 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 +194 -194
- package/dist/controller/gateway/StaticController.d.ts +23 -23
- package/dist/controller/gateway/StaticController.js +280 -280
- package/dist/controller/helpers.controller.d.ts +36 -36
- package/dist/controller/helpers.controller.js +187 -187
- package/dist/controller/home.controller.d.ts +9 -9
- package/dist/controller/home.controller.js +78 -78
- 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 +21 -21
- package/dist/controller/manage/DeployManageApi.js +203 -203
- 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/FlowConfigManageApi.d.ts +12 -12
- package/dist/controller/manage/FlowConfigManageApi.js +109 -109
- package/dist/controller/manage/LowCodeTplManageApi.d.ts +13 -13
- package/dist/controller/manage/LowCodeTplManageApi.js +86 -86
- package/dist/controller/manage/MenuManageApi.d.ts +11 -11
- package/dist/controller/manage/MenuManageApi.js +104 -104
- 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 +82 -82
- 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 +106 -106
- 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 +93 -93
- 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 +111 -111
- package/dist/index.js +129 -129
- package/dist/interface.d.ts +30 -30
- package/dist/interface.js +3 -3
- package/dist/libs/crud-pro/CrudPro.d.ts +37 -37
- package/dist/libs/crud-pro/CrudPro.js +146 -146
- 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 +175 -175
- 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 +50 -50
- package/dist/libs/crud-pro/models/Transaction.js +184 -179
- package/dist/libs/crud-pro/models/TransactionMySQL.d.ts +19 -19
- package/dist/libs/crud-pro/models/TransactionMySQL.js +48 -48
- package/dist/libs/crud-pro/models/TransactionPostgres.d.ts +19 -19
- package/dist/libs/crud-pro/models/TransactionPostgres.js +64 -64
- package/dist/libs/crud-pro/models/TransactionSqlServer.d.ts +9 -9
- package/dist/libs/crud-pro/models/TransactionSqlServer.js +61 -61
- package/dist/libs/crud-pro/models/keys.d.ts +111 -110
- package/dist/libs/crud-pro/models/keys.js +156 -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 +224 -224
- 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 +25 -24
- package/dist/libs/crud-pro/services/CrudProGenSqlCondition.js +385 -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 -9
- package/dist/libs/crud-pro/utils/CrudMonitor.js +12 -12
- 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 +40 -40
- package/dist/libs/crud-pro/utils/MixinUtils.js +259 -258
- 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.js +24 -24
- 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/global-config/global-config.d.ts +71 -71
- package/dist/libs/global-config/global-config.js +38 -38
- 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 +55 -55
- package/dist/libs/utils/errorToString.d.ts +20 -20
- package/dist/libs/utils/errorToString.js +79 -79
- package/dist/libs/utils/fatcms-request.d.ts +45 -45
- package/dist/libs/utils/fatcms-request.js +161 -161
- package/dist/libs/utils/format-url.d.ts +17 -17
- package/dist/libs/utils/format-url.js +30 -30
- package/dist/libs/utils/functions.d.ts +11 -11
- package/dist/libs/utils/functions.js +99 -99
- package/dist/libs/utils/ordernum-utils.d.ts +22 -22
- package/dist/libs/utils/ordernum-utils.js +35 -35
- 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 +40 -40
- package/dist/libs/utils/render-utils.js +158 -158
- package/dist/middleware/forbidden.middleware.d.ts +74 -74
- package/dist/middleware/forbidden.middleware.js +318 -307
- package/dist/middleware/global.middleware.d.ts +40 -40
- package/dist/middleware/global.middleware.js +310 -310
- package/dist/middleware/permission.middleware.d.ts +88 -88
- package/dist/middleware/permission.middleware.js +145 -145
- package/dist/middleware/rediscache.middleware.d.ts +28 -28
- package/dist/middleware/rediscache.middleware.js +114 -114
- package/dist/middleware/redislock.middleware.d.ts +29 -29
- package/dist/middleware/redislock.middleware.js +106 -106
- package/dist/middleware/tx.middleware.d.ts +55 -55
- package/dist/middleware/tx.middleware.js +83 -83
- package/dist/models/AsyncTaskModel.d.ts +74 -74
- package/dist/models/AsyncTaskModel.js +31 -31
- package/dist/models/FlowModel.d.ts +227 -227
- package/dist/models/FlowModel.js +53 -53
- package/dist/models/RedisKeys.d.ts +15 -15
- package/dist/models/RedisKeys.js +18 -18
- package/dist/models/SystemEntities.d.ts +118 -117
- package/dist/models/SystemEntities.js +18 -17
- package/dist/models/SystemPerm.d.ts +96 -96
- package/dist/models/SystemPerm.js +101 -101
- 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 +150 -150
- package/dist/models/bizmodels.js +62 -62
- 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 +67 -67
- package/dist/models/userSession.js +179 -179
- package/dist/schedule/anonymousContext.d.ts +15 -15
- package/dist/schedule/anonymousContext.js +74 -74
- 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 +56 -56
- package/dist/service/AuthService.js +251 -248
- 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 +15 -15
- package/dist/service/SysAppService.js +108 -108
- 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/SysMenuService.d.ts +51 -51
- package/dist/service/SysMenuService.js +58 -58
- 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 +161 -161
- 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 +22 -22
- package/dist/service/base/ApiBaseService.js +60 -60
- package/dist/service/base/ApiRateLimiter.d.ts +10 -10
- package/dist/service/base/ApiRateLimiter.js +51 -51
- package/dist/service/base/BaseService.d.ts +46 -45
- package/dist/service/base/BaseService.js +131 -127
- 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 +81 -81
- 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 +11 -11
- package/dist/service/crudstd/CrudStdRelationService.js +179 -179
- package/dist/service/crudstd/CrudStdService.d.ts +59 -59
- package/dist/service/crudstd/CrudStdService.js +348 -348
- package/dist/service/curd/CrudProQuick.d.ts +60 -60
- package/dist/service/curd/CrudProQuick.js +167 -167
- package/dist/service/curd/CurdMixByAccountService.d.ts +14 -14
- package/dist/service/curd/CurdMixByAccountService.js +166 -166
- 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 -209
- 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 +215 -215
- package/dist/service/curd/fixCfgModel.d.ts +3 -3
- package/dist/service/curd/fixCfgModel.js +104 -104
- package/dist/service/curd/fixSoftDelete.d.ts +6 -6
- package/dist/service/curd/fixSoftDelete.js +43 -43
- package/dist/service/flow/FlowConfigService.d.ts +41 -41
- package/dist/service/flow/FlowConfigService.js +95 -95
- package/dist/service/flow/FlowInstanceCrudService.d.ts +35 -35
- package/dist/service/flow/FlowInstanceCrudService.js +257 -257
- package/dist/service/flow/FlowInstanceService.d.ts +88 -88
- package/dist/service/flow/FlowInstanceService.js +451 -451
- 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 +317 -297
- package/dist/service/proxyapi/ProxyApiUtils.d.ts +15 -15
- package/dist/service/proxyapi/ProxyApiUtils.js +34 -34
- package/dist/service/proxyapi/RouteHandler.d.ts +6 -5
- package/dist/service/proxyapi/RouteHandler.js +9 -9
- package/dist/service/proxyapi/RouteTrie.d.ts +12 -12
- package/dist/service/proxyapi/RouteTrie.js +64 -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 +33 -32
- package/index.d.ts +10 -10
- package/package.json +87 -87
- package/src/libs/crud-pro/models/Transaction.ts +5 -1
- package/src/libs/crud-pro/models/keys.ts +6 -2
- package/src/libs/crud-pro/services/CrudProGenSqlCondition.ts +37 -0
- package/src/libs/crud-pro/utils/CrudMonitor.ts +13 -13
- package/src/libs/crud-pro/utils/MixinUtils.ts +11 -10
- package/src/libs/utils/AsymmetricCrypto.ts +307 -307
- package/src/libs/utils/format-url.ts +29 -29
- package/src/libs/utils/render-utils.ts +223 -223
- package/src/middleware/forbidden.middleware.ts +17 -7
- package/src/middleware/global.middleware.ts +1 -1
- package/src/models/SystemEntities.ts +1 -0
- package/src/models/WorkbenchInfoTools.ts +19 -19
- package/src/service/AuthService.ts +3 -0
- package/src/service/SysAppService.ts +103 -103
- package/src/service/SysDictDataService.ts +63 -63
- package/src/service/SysMenuService.ts +87 -87
- package/src/service/WorkbenchService.ts +279 -279
- package/src/service/base/BaseService.ts +5 -0
- 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 +90 -90
- 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/crudstd/CrudStdService.ts +2 -1
- package/src/service/curd/CurdMixByAccountService.ts +177 -177
- package/src/service/curd/fixSoftDelete.ts +58 -58
- package/src/service/proxyapi/ProxyApiService.ts +22 -1
- package/src/service/proxyapi/RouteHandler.ts +4 -2
- package/src/service/proxyapi/RouteTrie.ts +1 -1
- package/src/service/proxyapi/WeightedRoundRobin.ts +2 -1
- package/tsconfig.json +32 -32
|
@@ -1,161 +1,161 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getRealIpSafe = exports.assertCsrfToken = exports.isCsrfTokenValid = exports.getExtLocalLoaderPort = exports.getCsrfToken = exports.getDebugProxyTarget = exports.getDebugWorkbenchCode = exports.isLocalEnv = exports.isEnableSuperAdmin = exports.isEnableDebug = void 0;
|
|
4
|
-
const _ = require("lodash");
|
|
5
|
-
const crypto_utils_1 = require("./crypto-utils");
|
|
6
|
-
const exceptions_1 = require("../crud-pro/exceptions");
|
|
7
|
-
function isEnableByHeaderKey(ctx, configName) {
|
|
8
|
-
const fatcmsDebug = ctx.app.getConfig(configName);
|
|
9
|
-
const headerKey = _.get(fatcmsDebug, 'headerKey');
|
|
10
|
-
const headerSecret = _.get(fatcmsDebug, 'headerSecret');
|
|
11
|
-
if (!headerSecret || !headerKey) {
|
|
12
|
-
return false;
|
|
13
|
-
}
|
|
14
|
-
const headers = _.get(ctx, 'request.headers') || {};
|
|
15
|
-
return headers[headerKey] === headerSecret;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* 是否开启调试能力
|
|
19
|
-
* @param ctx
|
|
20
|
-
*/
|
|
21
|
-
function isEnableDebug(ctx) {
|
|
22
|
-
return isEnableByHeaderKey(ctx, 'fatcmsDebug');
|
|
23
|
-
}
|
|
24
|
-
exports.isEnableDebug = isEnableDebug;
|
|
25
|
-
/**
|
|
26
|
-
* 是否开启SA账号。只有账号密码没有用,必须通过ModHeader插件设置如下字段
|
|
27
|
-
* @param ctx
|
|
28
|
-
*/
|
|
29
|
-
function isEnableSuperAdmin(ctx) {
|
|
30
|
-
return isEnableByHeaderKey(ctx, 'fatcmsSAEnable');
|
|
31
|
-
}
|
|
32
|
-
exports.isEnableSuperAdmin = isEnableSuperAdmin;
|
|
33
|
-
function isLocalEnv(ctx) {
|
|
34
|
-
// 系统内部调用。如定时任务,没有request对象。
|
|
35
|
-
if (!ctx.request) {
|
|
36
|
-
return true;
|
|
37
|
-
}
|
|
38
|
-
const host = ctx.request.host;
|
|
39
|
-
return host.startsWith('127.0.0.1') || host.startsWith('localhost:');
|
|
40
|
-
}
|
|
41
|
-
exports.isLocalEnv = isLocalEnv;
|
|
42
|
-
/**
|
|
43
|
-
* 获取调试时专用的站点code
|
|
44
|
-
* @param ctx
|
|
45
|
-
*/
|
|
46
|
-
function getDebugWorkbenchCode(ctx) {
|
|
47
|
-
const headers = _.get(ctx, 'request.headers') || {};
|
|
48
|
-
return headers['fatcmsworkbench'];
|
|
49
|
-
}
|
|
50
|
-
exports.getDebugWorkbenchCode = getDebugWorkbenchCode;
|
|
51
|
-
/**
|
|
52
|
-
* 代理转发服务专用
|
|
53
|
-
* @param ctx
|
|
54
|
-
*/
|
|
55
|
-
function getDebugProxyTarget(ctx) {
|
|
56
|
-
const headers = _.get(ctx, 'request.headers') || {};
|
|
57
|
-
return headers['fatcmsdebugproxytarget'];
|
|
58
|
-
}
|
|
59
|
-
exports.getDebugProxyTarget = getDebugProxyTarget;
|
|
60
|
-
function getCsrfToken(ctx) {
|
|
61
|
-
const headers = _.get(ctx, 'request.headers') || {};
|
|
62
|
-
return headers['fatcmscsrftoken'];
|
|
63
|
-
}
|
|
64
|
-
exports.getCsrfToken = getCsrfToken;
|
|
65
|
-
/**
|
|
66
|
-
* 扩展的源码应用:本地开发调试时加载本地的js脚本
|
|
67
|
-
* @param ctx
|
|
68
|
-
*/
|
|
69
|
-
function getExtLocalLoaderPort(ctx) {
|
|
70
|
-
const headers = _.get(ctx, 'request.headers') || {};
|
|
71
|
-
return headers['fatcmsextlocalloaderport'];
|
|
72
|
-
}
|
|
73
|
-
exports.getExtLocalLoaderPort = getExtLocalLoaderPort;
|
|
74
|
-
async function isCsrfTokenValid(ctx) {
|
|
75
|
-
// 本地开发,不需要校验
|
|
76
|
-
if (isLocalEnv(ctx) || isEnableDebug(ctx)) {
|
|
77
|
-
return true;
|
|
78
|
-
}
|
|
79
|
-
const fatcmscsrftoken = getCsrfToken(ctx);
|
|
80
|
-
if (!fatcmscsrftoken) {
|
|
81
|
-
return false;
|
|
82
|
-
}
|
|
83
|
-
try {
|
|
84
|
-
const depryptToken = await crypto_utils_1.privateAES.time_decrypt_base64_utf8(fatcmscsrftoken);
|
|
85
|
-
if (depryptToken) {
|
|
86
|
-
const num = Number(depryptToken);
|
|
87
|
-
if (num && num + 6 * 3600 * 1000 > Date.now()) {
|
|
88
|
-
return true;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
catch (e) {
|
|
93
|
-
console.info('isCsrfTokenValid验证失败');
|
|
94
|
-
}
|
|
95
|
-
return false;
|
|
96
|
-
}
|
|
97
|
-
exports.isCsrfTokenValid = isCsrfTokenValid;
|
|
98
|
-
async function assertCsrfToken(ctx) {
|
|
99
|
-
const isOK = await isCsrfTokenValid(ctx);
|
|
100
|
-
if (!isOK) {
|
|
101
|
-
throw new exceptions_1.CommonException('ASSERT_CSRF_TOKEN_ERROR', 'CSRF_TOKEN 验证失败');
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
exports.assertCsrfToken = assertCsrfToken;
|
|
105
|
-
/**
|
|
106
|
-
* 获取客户端真实IP地址
|
|
107
|
-
*
|
|
108
|
-
* 优先级顺序:
|
|
109
|
-
* 1. x-real-ip:Nginx等反向代理设置的真实IP
|
|
110
|
-
* 2. x-forwarded-for:代理链中的第一个IP(最原始的客户端IP)
|
|
111
|
-
* 3. ctx.ip:Koa框架提供的IP(会自动处理代理情况)
|
|
112
|
-
*
|
|
113
|
-
* @param ctx Koa上下文
|
|
114
|
-
* @returns 客户端真实IP地址
|
|
115
|
-
*
|
|
116
|
-
* @example
|
|
117
|
-
* const ip = getRealIp(ctx); // '192.168.1.100'
|
|
118
|
-
*/
|
|
119
|
-
function getRealIp(ctx) {
|
|
120
|
-
const headers = ctx.headers;
|
|
121
|
-
// 1. 优先使用 x-real-ip(Nginx proxy_set_header X-Real-IP)
|
|
122
|
-
const xRealIp = headers['x-real-ip'];
|
|
123
|
-
if (xRealIp && typeof xRealIp === 'string') {
|
|
124
|
-
return xRealIp.trim();
|
|
125
|
-
}
|
|
126
|
-
// 2. 使用 x-forwarded-for 的第一个IP(最原始的客户端IP)
|
|
127
|
-
const xForwardedFor = headers['x-forwarded-for'];
|
|
128
|
-
if (xForwardedFor && typeof xForwardedFor === 'string') {
|
|
129
|
-
const firstIp = xForwardedFor.split(',')[0].trim();
|
|
130
|
-
if (firstIp) {
|
|
131
|
-
return firstIp;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
// 3. 使用 Koa 提供的 ctx.ip(已处理代理情况)
|
|
135
|
-
return ctx.ip || 'unknown';
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* 安全获取客户端真实IP地址(优先从 userSession 获取)
|
|
139
|
-
*
|
|
140
|
-
* 推荐在业务代码中使用此方法,因为:
|
|
141
|
-
* 1. userSession 中的 IP 在全局中间件初始化时已解析,性能更好
|
|
142
|
-
* 2. 自动处理 userSession 不存在的边界情况
|
|
143
|
-
*
|
|
144
|
-
* @param ctx Koa上下文
|
|
145
|
-
* @returns 客户端真实IP地址
|
|
146
|
-
*
|
|
147
|
-
* @example
|
|
148
|
-
* // 在 Controller/Service 中推荐使用
|
|
149
|
-
* const ip = getRealIpSafe(this.ctx);
|
|
150
|
-
*/
|
|
151
|
-
function getRealIpSafe(ctx) {
|
|
152
|
-
// 优先从 userSession 获取(已在全局中间件中初始化)
|
|
153
|
-
if (ctx.fatcmsRealIp && typeof ctx.fatcmsRealIp === 'string') {
|
|
154
|
-
return ctx.fatcmsRealIp;
|
|
155
|
-
}
|
|
156
|
-
// 降级方案:直接解析
|
|
157
|
-
const ip = getRealIp(ctx);
|
|
158
|
-
ctx.fatcmsRealIp = ip;
|
|
159
|
-
return ip;
|
|
160
|
-
}
|
|
161
|
-
exports.getRealIpSafe = getRealIpSafe;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getRealIpSafe = exports.assertCsrfToken = exports.isCsrfTokenValid = exports.getExtLocalLoaderPort = exports.getCsrfToken = exports.getDebugProxyTarget = exports.getDebugWorkbenchCode = exports.isLocalEnv = exports.isEnableSuperAdmin = exports.isEnableDebug = void 0;
|
|
4
|
+
const _ = require("lodash");
|
|
5
|
+
const crypto_utils_1 = require("./crypto-utils");
|
|
6
|
+
const exceptions_1 = require("../crud-pro/exceptions");
|
|
7
|
+
function isEnableByHeaderKey(ctx, configName) {
|
|
8
|
+
const fatcmsDebug = ctx.app.getConfig(configName);
|
|
9
|
+
const headerKey = _.get(fatcmsDebug, 'headerKey');
|
|
10
|
+
const headerSecret = _.get(fatcmsDebug, 'headerSecret');
|
|
11
|
+
if (!headerSecret || !headerKey) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
const headers = _.get(ctx, 'request.headers') || {};
|
|
15
|
+
return headers[headerKey] === headerSecret;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* 是否开启调试能力
|
|
19
|
+
* @param ctx
|
|
20
|
+
*/
|
|
21
|
+
function isEnableDebug(ctx) {
|
|
22
|
+
return isEnableByHeaderKey(ctx, 'fatcmsDebug');
|
|
23
|
+
}
|
|
24
|
+
exports.isEnableDebug = isEnableDebug;
|
|
25
|
+
/**
|
|
26
|
+
* 是否开启SA账号。只有账号密码没有用,必须通过ModHeader插件设置如下字段
|
|
27
|
+
* @param ctx
|
|
28
|
+
*/
|
|
29
|
+
function isEnableSuperAdmin(ctx) {
|
|
30
|
+
return isEnableByHeaderKey(ctx, 'fatcmsSAEnable');
|
|
31
|
+
}
|
|
32
|
+
exports.isEnableSuperAdmin = isEnableSuperAdmin;
|
|
33
|
+
function isLocalEnv(ctx) {
|
|
34
|
+
// 系统内部调用。如定时任务,没有request对象。
|
|
35
|
+
if (!ctx.request) {
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
const host = ctx.request.host;
|
|
39
|
+
return host.startsWith('127.0.0.1') || host.startsWith('localhost:');
|
|
40
|
+
}
|
|
41
|
+
exports.isLocalEnv = isLocalEnv;
|
|
42
|
+
/**
|
|
43
|
+
* 获取调试时专用的站点code
|
|
44
|
+
* @param ctx
|
|
45
|
+
*/
|
|
46
|
+
function getDebugWorkbenchCode(ctx) {
|
|
47
|
+
const headers = _.get(ctx, 'request.headers') || {};
|
|
48
|
+
return headers['fatcmsworkbench'];
|
|
49
|
+
}
|
|
50
|
+
exports.getDebugWorkbenchCode = getDebugWorkbenchCode;
|
|
51
|
+
/**
|
|
52
|
+
* 代理转发服务专用
|
|
53
|
+
* @param ctx
|
|
54
|
+
*/
|
|
55
|
+
function getDebugProxyTarget(ctx) {
|
|
56
|
+
const headers = _.get(ctx, 'request.headers') || {};
|
|
57
|
+
return headers['fatcmsdebugproxytarget'];
|
|
58
|
+
}
|
|
59
|
+
exports.getDebugProxyTarget = getDebugProxyTarget;
|
|
60
|
+
function getCsrfToken(ctx) {
|
|
61
|
+
const headers = _.get(ctx, 'request.headers') || {};
|
|
62
|
+
return headers['fatcmscsrftoken'];
|
|
63
|
+
}
|
|
64
|
+
exports.getCsrfToken = getCsrfToken;
|
|
65
|
+
/**
|
|
66
|
+
* 扩展的源码应用:本地开发调试时加载本地的js脚本
|
|
67
|
+
* @param ctx
|
|
68
|
+
*/
|
|
69
|
+
function getExtLocalLoaderPort(ctx) {
|
|
70
|
+
const headers = _.get(ctx, 'request.headers') || {};
|
|
71
|
+
return headers['fatcmsextlocalloaderport'];
|
|
72
|
+
}
|
|
73
|
+
exports.getExtLocalLoaderPort = getExtLocalLoaderPort;
|
|
74
|
+
async function isCsrfTokenValid(ctx) {
|
|
75
|
+
// 本地开发,不需要校验
|
|
76
|
+
if (isLocalEnv(ctx) || isEnableDebug(ctx)) {
|
|
77
|
+
return true;
|
|
78
|
+
}
|
|
79
|
+
const fatcmscsrftoken = getCsrfToken(ctx);
|
|
80
|
+
if (!fatcmscsrftoken) {
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
try {
|
|
84
|
+
const depryptToken = await crypto_utils_1.privateAES.time_decrypt_base64_utf8(fatcmscsrftoken);
|
|
85
|
+
if (depryptToken) {
|
|
86
|
+
const num = Number(depryptToken);
|
|
87
|
+
if (num && num + 6 * 3600 * 1000 > Date.now()) {
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
catch (e) {
|
|
93
|
+
console.info('isCsrfTokenValid验证失败');
|
|
94
|
+
}
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
exports.isCsrfTokenValid = isCsrfTokenValid;
|
|
98
|
+
async function assertCsrfToken(ctx) {
|
|
99
|
+
const isOK = await isCsrfTokenValid(ctx);
|
|
100
|
+
if (!isOK) {
|
|
101
|
+
throw new exceptions_1.CommonException('ASSERT_CSRF_TOKEN_ERROR', 'CSRF_TOKEN 验证失败');
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
exports.assertCsrfToken = assertCsrfToken;
|
|
105
|
+
/**
|
|
106
|
+
* 获取客户端真实IP地址
|
|
107
|
+
*
|
|
108
|
+
* 优先级顺序:
|
|
109
|
+
* 1. x-real-ip:Nginx等反向代理设置的真实IP
|
|
110
|
+
* 2. x-forwarded-for:代理链中的第一个IP(最原始的客户端IP)
|
|
111
|
+
* 3. ctx.ip:Koa框架提供的IP(会自动处理代理情况)
|
|
112
|
+
*
|
|
113
|
+
* @param ctx Koa上下文
|
|
114
|
+
* @returns 客户端真实IP地址
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* const ip = getRealIp(ctx); // '192.168.1.100'
|
|
118
|
+
*/
|
|
119
|
+
function getRealIp(ctx) {
|
|
120
|
+
const headers = ctx.headers;
|
|
121
|
+
// 1. 优先使用 x-real-ip(Nginx proxy_set_header X-Real-IP)
|
|
122
|
+
const xRealIp = headers['x-real-ip'];
|
|
123
|
+
if (xRealIp && typeof xRealIp === 'string') {
|
|
124
|
+
return xRealIp.trim();
|
|
125
|
+
}
|
|
126
|
+
// 2. 使用 x-forwarded-for 的第一个IP(最原始的客户端IP)
|
|
127
|
+
const xForwardedFor = headers['x-forwarded-for'];
|
|
128
|
+
if (xForwardedFor && typeof xForwardedFor === 'string') {
|
|
129
|
+
const firstIp = xForwardedFor.split(',')[0].trim();
|
|
130
|
+
if (firstIp) {
|
|
131
|
+
return firstIp;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
// 3. 使用 Koa 提供的 ctx.ip(已处理代理情况)
|
|
135
|
+
return ctx.ip || 'unknown';
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* 安全获取客户端真实IP地址(优先从 userSession 获取)
|
|
139
|
+
*
|
|
140
|
+
* 推荐在业务代码中使用此方法,因为:
|
|
141
|
+
* 1. userSession 中的 IP 在全局中间件初始化时已解析,性能更好
|
|
142
|
+
* 2. 自动处理 userSession 不存在的边界情况
|
|
143
|
+
*
|
|
144
|
+
* @param ctx Koa上下文
|
|
145
|
+
* @returns 客户端真实IP地址
|
|
146
|
+
*
|
|
147
|
+
* @example
|
|
148
|
+
* // 在 Controller/Service 中推荐使用
|
|
149
|
+
* const ip = getRealIpSafe(this.ctx);
|
|
150
|
+
*/
|
|
151
|
+
function getRealIpSafe(ctx) {
|
|
152
|
+
// 优先从 userSession 获取(已在全局中间件中初始化)
|
|
153
|
+
if (ctx.fatcmsRealIp && typeof ctx.fatcmsRealIp === 'string') {
|
|
154
|
+
return ctx.fatcmsRealIp;
|
|
155
|
+
}
|
|
156
|
+
// 降级方案:直接解析
|
|
157
|
+
const ip = getRealIp(ctx);
|
|
158
|
+
ctx.fatcmsRealIp = ip;
|
|
159
|
+
return ip;
|
|
160
|
+
}
|
|
161
|
+
exports.getRealIpSafe = getRealIpSafe;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 格式化主机名,移除默认端口号
|
|
3
|
-
*
|
|
4
|
-
* HTTP默认端口80,HTTPS默认端口443在URL中通常被省略
|
|
5
|
-
* 此函数用于标准化主机名,去除这些默认端口
|
|
6
|
-
*
|
|
7
|
-
* @param host 主机名(可能包含端口号),如 'example.com:80'
|
|
8
|
-
* @returns 格式化后的主机名,如 'example.com'
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* formatHost('example.com:80') // 'example.com'
|
|
12
|
-
* formatHost('example.com:443') // 'example.com'
|
|
13
|
-
* formatHost('example.com:8080') // 'example.com:8080' (保留非默认端口)
|
|
14
|
-
* formatHost('example.com') // 'example.com'
|
|
15
|
-
*/
|
|
16
|
-
declare function formatHost(host: string): string;
|
|
17
|
-
export { formatHost };
|
|
1
|
+
/**
|
|
2
|
+
* 格式化主机名,移除默认端口号
|
|
3
|
+
*
|
|
4
|
+
* HTTP默认端口80,HTTPS默认端口443在URL中通常被省略
|
|
5
|
+
* 此函数用于标准化主机名,去除这些默认端口
|
|
6
|
+
*
|
|
7
|
+
* @param host 主机名(可能包含端口号),如 'example.com:80'
|
|
8
|
+
* @returns 格式化后的主机名,如 'example.com'
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* formatHost('example.com:80') // 'example.com'
|
|
12
|
+
* formatHost('example.com:443') // 'example.com'
|
|
13
|
+
* formatHost('example.com:8080') // 'example.com:8080' (保留非默认端口)
|
|
14
|
+
* formatHost('example.com') // 'example.com'
|
|
15
|
+
*/
|
|
16
|
+
declare function formatHost(host: string): string;
|
|
17
|
+
export { formatHost };
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.formatHost = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* 格式化主机名,移除默认端口号
|
|
6
|
-
*
|
|
7
|
-
* HTTP默认端口80,HTTPS默认端口443在URL中通常被省略
|
|
8
|
-
* 此函数用于标准化主机名,去除这些默认端口
|
|
9
|
-
*
|
|
10
|
-
* @param host 主机名(可能包含端口号),如 'example.com:80'
|
|
11
|
-
* @returns 格式化后的主机名,如 'example.com'
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* formatHost('example.com:80') // 'example.com'
|
|
15
|
-
* formatHost('example.com:443') // 'example.com'
|
|
16
|
-
* formatHost('example.com:8080') // 'example.com:8080' (保留非默认端口)
|
|
17
|
-
* formatHost('example.com') // 'example.com'
|
|
18
|
-
*/
|
|
19
|
-
function formatHost(host) {
|
|
20
|
-
// 移除HTTP默认端口
|
|
21
|
-
if (host.endsWith(':80')) {
|
|
22
|
-
return host.slice(0, -3);
|
|
23
|
-
}
|
|
24
|
-
// 移除HTTPS默认端口
|
|
25
|
-
if (host.endsWith(':443')) {
|
|
26
|
-
return host.slice(0, -4);
|
|
27
|
-
}
|
|
28
|
-
return host;
|
|
29
|
-
}
|
|
30
|
-
exports.formatHost = formatHost;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatHost = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* 格式化主机名,移除默认端口号
|
|
6
|
+
*
|
|
7
|
+
* HTTP默认端口80,HTTPS默认端口443在URL中通常被省略
|
|
8
|
+
* 此函数用于标准化主机名,去除这些默认端口
|
|
9
|
+
*
|
|
10
|
+
* @param host 主机名(可能包含端口号),如 'example.com:80'
|
|
11
|
+
* @returns 格式化后的主机名,如 'example.com'
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* formatHost('example.com:80') // 'example.com'
|
|
15
|
+
* formatHost('example.com:443') // 'example.com'
|
|
16
|
+
* formatHost('example.com:8080') // 'example.com:8080' (保留非默认端口)
|
|
17
|
+
* formatHost('example.com') // 'example.com'
|
|
18
|
+
*/
|
|
19
|
+
function formatHost(host) {
|
|
20
|
+
// 移除HTTP默认端口
|
|
21
|
+
if (host.endsWith(':80')) {
|
|
22
|
+
return host.slice(0, -3);
|
|
23
|
+
}
|
|
24
|
+
// 移除HTTPS默认端口
|
|
25
|
+
if (host.endsWith(':443')) {
|
|
26
|
+
return host.slice(0, -4);
|
|
27
|
+
}
|
|
28
|
+
return host;
|
|
29
|
+
}
|
|
30
|
+
exports.formatHost = formatHost;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
declare function createUniqueId(): string;
|
|
2
|
-
declare function parseJsonObject(str: any): any;
|
|
3
|
-
declare function parseStringTrimArray(obj: any, separator?: string): string[];
|
|
4
|
-
declare function getCurrentFullMoment(): string;
|
|
5
|
-
/**
|
|
6
|
-
* 判断字符串是否仅包含 ASCII 字符(ASCII 码范围:0-127)
|
|
7
|
-
* @param str 待检测的字符串
|
|
8
|
-
* @returns 仅包含 ASCII 字符返回 true,否则返回 false;非字符串输入返回 false
|
|
9
|
-
*/
|
|
10
|
-
declare function isOnlyAscii(str: string): boolean;
|
|
11
|
-
export { createUniqueId, parseJsonObject, parseStringTrimArray, getCurrentFullMoment, isOnlyAscii };
|
|
1
|
+
declare function createUniqueId(): string;
|
|
2
|
+
declare function parseJsonObject(str: any): any;
|
|
3
|
+
declare function parseStringTrimArray(obj: any, separator?: string): string[];
|
|
4
|
+
declare function getCurrentFullMoment(): string;
|
|
5
|
+
/**
|
|
6
|
+
* 判断字符串是否仅包含 ASCII 字符(ASCII 码范围:0-127)
|
|
7
|
+
* @param str 待检测的字符串
|
|
8
|
+
* @returns 仅包含 ASCII 字符返回 true,否则返回 false;非字符串输入返回 false
|
|
9
|
+
*/
|
|
10
|
+
declare function isOnlyAscii(str: string): boolean;
|
|
11
|
+
export { createUniqueId, parseJsonObject, parseStringTrimArray, getCurrentFullMoment, isOnlyAscii };
|
|
@@ -1,99 +1,99 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isOnlyAscii = exports.getCurrentFullMoment = exports.parseStringTrimArray = exports.parseJsonObject = exports.createUniqueId = void 0;
|
|
4
|
-
const md5 = require("md5");
|
|
5
|
-
const moment = require("moment");
|
|
6
|
-
let createUniqueIdIndex = 0;
|
|
7
|
-
function createUniqueId() {
|
|
8
|
-
createUniqueIdIndex++;
|
|
9
|
-
if (createUniqueIdIndex > Date.now()) {
|
|
10
|
-
createUniqueIdIndex = 0;
|
|
11
|
-
}
|
|
12
|
-
const p1 = md5(Date.now() + '' + Math.random() + '_' + createUniqueIdIndex + '_' + Math.random());
|
|
13
|
-
const p2 = `${Date.now().toString(32)}`.padStart(10, '0');
|
|
14
|
-
const p3 = `${createUniqueIdIndex.toString(32)}`.padStart(10, '0');
|
|
15
|
-
return p1 + p2 + p3;
|
|
16
|
-
}
|
|
17
|
-
exports.createUniqueId = createUniqueId;
|
|
18
|
-
function parseJsonObject(str) {
|
|
19
|
-
const typeofStr = typeof str;
|
|
20
|
-
if (str === null || typeofStr === 'undefined') {
|
|
21
|
-
return null;
|
|
22
|
-
}
|
|
23
|
-
if (typeofStr === 'object') {
|
|
24
|
-
return str;
|
|
25
|
-
}
|
|
26
|
-
if (typeofStr === 'string') {
|
|
27
|
-
str = str.trim();
|
|
28
|
-
if (str.startsWith('{') || str.startsWith('[')) {
|
|
29
|
-
try {
|
|
30
|
-
return JSON.parse(str);
|
|
31
|
-
}
|
|
32
|
-
catch (e) {
|
|
33
|
-
return null;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
return null;
|
|
38
|
-
}
|
|
39
|
-
exports.parseJsonObject = parseJsonObject;
|
|
40
|
-
function trimStringArray(obj) {
|
|
41
|
-
return obj
|
|
42
|
-
.map(s => {
|
|
43
|
-
if (typeof s === 'string') {
|
|
44
|
-
return s.trim();
|
|
45
|
-
}
|
|
46
|
-
return null;
|
|
47
|
-
})
|
|
48
|
-
.filter(Boolean);
|
|
49
|
-
}
|
|
50
|
-
function parseStringTrimArray(obj, separator = ',') {
|
|
51
|
-
if (Array.isArray(obj)) {
|
|
52
|
-
return trimStringArray(obj);
|
|
53
|
-
}
|
|
54
|
-
if (typeof obj === 'string') {
|
|
55
|
-
const str = obj.trim();
|
|
56
|
-
if (str.length > 0) {
|
|
57
|
-
// 可能是一个JSON数组
|
|
58
|
-
if (str.startsWith('[') && str.endsWith(']')) {
|
|
59
|
-
const arr = parseJsonObject(str);
|
|
60
|
-
return trimStringArray(arr);
|
|
61
|
-
}
|
|
62
|
-
// 使用分隔符分隔
|
|
63
|
-
if (str.includes(separator)) {
|
|
64
|
-
const arr = str.split(separator);
|
|
65
|
-
return trimStringArray(arr);
|
|
66
|
-
}
|
|
67
|
-
return [str];
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
return null;
|
|
71
|
-
}
|
|
72
|
-
exports.parseStringTrimArray = parseStringTrimArray;
|
|
73
|
-
function getCurrentFullMoment() {
|
|
74
|
-
return moment(Date.now()).format('YYYY-MM-DD HH:mm:ss.SSS');
|
|
75
|
-
}
|
|
76
|
-
exports.getCurrentFullMoment = getCurrentFullMoment;
|
|
77
|
-
/**
|
|
78
|
-
* 判断字符串是否仅包含 ASCII 字符(ASCII 码范围:0-127)
|
|
79
|
-
* @param str 待检测的字符串
|
|
80
|
-
* @returns 仅包含 ASCII 字符返回 true,否则返回 false;非字符串输入返回 false
|
|
81
|
-
*/
|
|
82
|
-
function isOnlyAscii(str) {
|
|
83
|
-
// 首先校验输入类型,确保是字符串
|
|
84
|
-
if (typeof str !== 'string') {
|
|
85
|
-
return false;
|
|
86
|
-
}
|
|
87
|
-
// 遍历字符串的每个字符
|
|
88
|
-
for (let i = 0; i < str.length; i++) {
|
|
89
|
-
// 获取字符的 Unicode 编码值
|
|
90
|
-
const charCode = str.charCodeAt(i);
|
|
91
|
-
// ASCII 码范围是 0-127,超出则返回 false
|
|
92
|
-
if (charCode > 127 || charCode < 0) {
|
|
93
|
-
return false;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
// 所有字符都符合 ASCII 范围,返回 true
|
|
97
|
-
return true;
|
|
98
|
-
}
|
|
99
|
-
exports.isOnlyAscii = isOnlyAscii;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isOnlyAscii = exports.getCurrentFullMoment = exports.parseStringTrimArray = exports.parseJsonObject = exports.createUniqueId = void 0;
|
|
4
|
+
const md5 = require("md5");
|
|
5
|
+
const moment = require("moment");
|
|
6
|
+
let createUniqueIdIndex = 0;
|
|
7
|
+
function createUniqueId() {
|
|
8
|
+
createUniqueIdIndex++;
|
|
9
|
+
if (createUniqueIdIndex > Date.now()) {
|
|
10
|
+
createUniqueIdIndex = 0;
|
|
11
|
+
}
|
|
12
|
+
const p1 = md5(Date.now() + '' + Math.random() + '_' + createUniqueIdIndex + '_' + Math.random());
|
|
13
|
+
const p2 = `${Date.now().toString(32)}`.padStart(10, '0');
|
|
14
|
+
const p3 = `${createUniqueIdIndex.toString(32)}`.padStart(10, '0');
|
|
15
|
+
return p1 + p2 + p3;
|
|
16
|
+
}
|
|
17
|
+
exports.createUniqueId = createUniqueId;
|
|
18
|
+
function parseJsonObject(str) {
|
|
19
|
+
const typeofStr = typeof str;
|
|
20
|
+
if (str === null || typeofStr === 'undefined') {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
if (typeofStr === 'object') {
|
|
24
|
+
return str;
|
|
25
|
+
}
|
|
26
|
+
if (typeofStr === 'string') {
|
|
27
|
+
str = str.trim();
|
|
28
|
+
if (str.startsWith('{') || str.startsWith('[')) {
|
|
29
|
+
try {
|
|
30
|
+
return JSON.parse(str);
|
|
31
|
+
}
|
|
32
|
+
catch (e) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
exports.parseJsonObject = parseJsonObject;
|
|
40
|
+
function trimStringArray(obj) {
|
|
41
|
+
return obj
|
|
42
|
+
.map(s => {
|
|
43
|
+
if (typeof s === 'string') {
|
|
44
|
+
return s.trim();
|
|
45
|
+
}
|
|
46
|
+
return null;
|
|
47
|
+
})
|
|
48
|
+
.filter(Boolean);
|
|
49
|
+
}
|
|
50
|
+
function parseStringTrimArray(obj, separator = ',') {
|
|
51
|
+
if (Array.isArray(obj)) {
|
|
52
|
+
return trimStringArray(obj);
|
|
53
|
+
}
|
|
54
|
+
if (typeof obj === 'string') {
|
|
55
|
+
const str = obj.trim();
|
|
56
|
+
if (str.length > 0) {
|
|
57
|
+
// 可能是一个JSON数组
|
|
58
|
+
if (str.startsWith('[') && str.endsWith(']')) {
|
|
59
|
+
const arr = parseJsonObject(str);
|
|
60
|
+
return trimStringArray(arr);
|
|
61
|
+
}
|
|
62
|
+
// 使用分隔符分隔
|
|
63
|
+
if (str.includes(separator)) {
|
|
64
|
+
const arr = str.split(separator);
|
|
65
|
+
return trimStringArray(arr);
|
|
66
|
+
}
|
|
67
|
+
return [str];
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
exports.parseStringTrimArray = parseStringTrimArray;
|
|
73
|
+
function getCurrentFullMoment() {
|
|
74
|
+
return moment(Date.now()).format('YYYY-MM-DD HH:mm:ss.SSS');
|
|
75
|
+
}
|
|
76
|
+
exports.getCurrentFullMoment = getCurrentFullMoment;
|
|
77
|
+
/**
|
|
78
|
+
* 判断字符串是否仅包含 ASCII 字符(ASCII 码范围:0-127)
|
|
79
|
+
* @param str 待检测的字符串
|
|
80
|
+
* @returns 仅包含 ASCII 字符返回 true,否则返回 false;非字符串输入返回 false
|
|
81
|
+
*/
|
|
82
|
+
function isOnlyAscii(str) {
|
|
83
|
+
// 首先校验输入类型,确保是字符串
|
|
84
|
+
if (typeof str !== 'string') {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
// 遍历字符串的每个字符
|
|
88
|
+
for (let i = 0; i < str.length; i++) {
|
|
89
|
+
// 获取字符的 Unicode 编码值
|
|
90
|
+
const charCode = str.charCodeAt(i);
|
|
91
|
+
// ASCII 码范围是 0-127,超出则返回 false
|
|
92
|
+
if (charCode > 127 || charCode < 0) {
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
// 所有字符都符合 ASCII 范围,返回 true
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
exports.isOnlyAscii = isOnlyAscii;
|