@vlian/framework 1.2.25 → 1.2.38

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 (319) hide show
  1. package/dist/analytics.umd.js +208 -2395
  2. package/dist/analytics.umd.js.map +1 -1
  3. package/dist/core/Test.cjs +2 -2
  4. package/dist/core/Test.cjs.map +1 -1
  5. package/dist/core/Test.js +1 -1
  6. package/dist/core/Test.js.map +1 -1
  7. package/dist/core/config/ConfigLoader.cjs +7 -7
  8. package/dist/core/config/ConfigLoader.cjs.map +1 -1
  9. package/dist/core/config/ConfigLoader.js +1 -1
  10. package/dist/core/config/ConfigLoader.js.map +1 -1
  11. package/dist/core/error/ErrorBoundary.cjs +6 -6
  12. package/dist/core/error/ErrorBoundary.cjs.map +1 -1
  13. package/dist/core/error/ErrorBoundary.d.ts +1 -1
  14. package/dist/core/error/ErrorBoundary.js +2 -2
  15. package/dist/core/error/ErrorBoundary.js.map +1 -1
  16. package/dist/core/error/ErrorHandler.cjs +19 -19
  17. package/dist/core/error/ErrorHandler.cjs.map +1 -1
  18. package/dist/core/error/ErrorHandler.d.ts +2 -2
  19. package/dist/core/error/ErrorHandler.js +2 -2
  20. package/dist/core/error/ErrorHandler.js.map +1 -1
  21. package/dist/core/event/AppEventBus.cjs +5 -5
  22. package/dist/core/event/AppEventBus.cjs.map +1 -1
  23. package/dist/core/event/AppEventBus.js +1 -1
  24. package/dist/core/event/AppEventBus.js.map +1 -1
  25. package/dist/core/initialization/InitializationErrorThrower.cjs.map +1 -1
  26. package/dist/core/initialization/InitializationErrorThrower.js.map +1 -1
  27. package/dist/core/initialization/initialization.cjs +3 -3
  28. package/dist/core/initialization/initialization.cjs.map +1 -1
  29. package/dist/core/initialization/initialization.d.ts +1 -1
  30. package/dist/core/initialization/initialization.js +1 -1
  31. package/dist/core/initialization/initialization.js.map +1 -1
  32. package/dist/core/initialization/initializationErrorState.cjs +2 -2
  33. package/dist/core/initialization/initializationErrorState.cjs.map +1 -1
  34. package/dist/core/initialization/initializationErrorState.d.ts +1 -1
  35. package/dist/core/initialization/initializationErrorState.js +1 -1
  36. package/dist/core/initialization/initializationErrorState.js.map +1 -1
  37. package/dist/core/kernel/defaultAdapters.cjs +14 -13
  38. package/dist/core/kernel/defaultAdapters.cjs.map +1 -1
  39. package/dist/core/kernel/defaultAdapters.js +2 -1
  40. package/dist/core/kernel/defaultAdapters.js.map +1 -1
  41. package/dist/core/kernel/types.d.ts +1 -1
  42. package/dist/core/kernel/types.js.map +1 -1
  43. package/dist/core/router/RouterManager.cjs +9 -9
  44. package/dist/core/router/RouterManager.cjs.map +1 -1
  45. package/dist/core/router/RouterManager.js +1 -1
  46. package/dist/core/router/RouterManager.js.map +1 -1
  47. package/dist/core/router/adapter/AdapterManager.cjs +10 -10
  48. package/dist/core/router/adapter/AdapterManager.cjs.map +1 -1
  49. package/dist/core/router/adapter/AdapterManager.js +1 -1
  50. package/dist/core/router/adapter/AdapterManager.js.map +1 -1
  51. package/dist/core/router/adapter/react-router/ReactRouterAdapter.cjs +4 -4
  52. package/dist/core/router/adapter/react-router/ReactRouterAdapter.cjs.map +1 -1
  53. package/dist/core/router/adapter/react-router/ReactRouterAdapter.js +1 -1
  54. package/dist/core/router/adapter/react-router/ReactRouterAdapter.js.map +1 -1
  55. package/dist/core/router/dynamic/DynamicRouteManager.cjs +8 -8
  56. package/dist/core/router/dynamic/DynamicRouteManager.cjs.map +1 -1
  57. package/dist/core/router/dynamic/DynamicRouteManager.js +1 -1
  58. package/dist/core/router/dynamic/DynamicRouteManager.js.map +1 -1
  59. package/dist/core/router/errors/RouterError.cjs +4 -4
  60. package/dist/core/router/errors/RouterError.cjs.map +1 -1
  61. package/dist/core/router/errors/RouterError.d.ts +1 -1
  62. package/dist/core/router/errors/RouterError.js +1 -1
  63. package/dist/core/router/errors/RouterError.js.map +1 -1
  64. package/dist/core/router/lifecycle/RouterLifecycleManager.cjs +8 -8
  65. package/dist/core/router/lifecycle/RouterLifecycleManager.cjs.map +1 -1
  66. package/dist/core/router/lifecycle/RouterLifecycleManager.js +1 -1
  67. package/dist/core/router/lifecycle/RouterLifecycleManager.js.map +1 -1
  68. package/dist/core/router/middleware/RouterMiddlewareManager.cjs +11 -11
  69. package/dist/core/router/middleware/RouterMiddlewareManager.cjs.map +1 -1
  70. package/dist/core/router/middleware/RouterMiddlewareManager.js +1 -1
  71. package/dist/core/router/middleware/RouterMiddlewareManager.js.map +1 -1
  72. package/dist/core/router/middleware/auth.cjs +4 -4
  73. package/dist/core/router/middleware/auth.cjs.map +1 -1
  74. package/dist/core/router/middleware/auth.js +1 -1
  75. package/dist/core/router/middleware/auth.js.map +1 -1
  76. package/dist/core/router/monitoring/RouterMonitoring.cjs +2 -2
  77. package/dist/core/router/monitoring/RouterMonitoring.cjs.map +1 -1
  78. package/dist/core/router/monitoring/RouterMonitoring.js +2 -2
  79. package/dist/core/router/monitoring/RouterMonitoring.js.map +1 -1
  80. package/dist/core/router/navigation/RouterNavigation.cjs +7 -7
  81. package/dist/core/router/navigation/RouterNavigation.cjs.map +1 -1
  82. package/dist/core/router/navigation/RouterNavigation.js +1 -1
  83. package/dist/core/router/navigation/RouterNavigation.js.map +1 -1
  84. package/dist/core/router/performance/RouteCache.cjs +7 -7
  85. package/dist/core/router/performance/RouteCache.cjs.map +1 -1
  86. package/dist/core/router/performance/RouteCache.js +1 -1
  87. package/dist/core/router/performance/RouteCache.js.map +1 -1
  88. package/dist/core/router/performance/RoutePreloader.cjs +6 -6
  89. package/dist/core/router/performance/RoutePreloader.cjs.map +1 -1
  90. package/dist/core/router/performance/RoutePreloader.js +1 -1
  91. package/dist/core/router/performance/RoutePreloader.js.map +1 -1
  92. package/dist/core/router/plugin/RouterPluginManager.cjs +8 -8
  93. package/dist/core/router/plugin/RouterPluginManager.cjs.map +1 -1
  94. package/dist/core/router/plugin/RouterPluginManager.js +1 -1
  95. package/dist/core/router/plugin/RouterPluginManager.js.map +1 -1
  96. package/dist/core/router/utils/adapters/react-router/transform.cjs +6 -2
  97. package/dist/core/router/utils/adapters/react-router/transform.cjs.map +1 -1
  98. package/dist/core/router/utils/adapters/react-router/transform.js +5 -1
  99. package/dist/core/router/utils/adapters/react-router/transform.js.map +1 -1
  100. package/dist/core/router/utils/transform.cjs +13 -12
  101. package/dist/core/router/utils/transform.cjs.map +1 -1
  102. package/dist/core/router/utils/transform.js +2 -1
  103. package/dist/core/router/utils/transform.js.map +1 -1
  104. package/dist/core/router/validation/RouterConfigValidator.cjs +2 -2
  105. package/dist/core/router/validation/RouterConfigValidator.cjs.map +1 -1
  106. package/dist/core/router/validation/RouterConfigValidator.js +1 -1
  107. package/dist/core/router/validation/RouterConfigValidator.js.map +1 -1
  108. package/dist/core/router/version/RouteVersionManager.cjs +6 -6
  109. package/dist/core/router/version/RouteVersionManager.cjs.map +1 -1
  110. package/dist/core/router/version/RouteVersionManager.js +1 -1
  111. package/dist/core/router/version/RouteVersionManager.js.map +1 -1
  112. package/dist/core/splash/SplashScreen.cjs +4 -4
  113. package/dist/core/splash/SplashScreen.cjs.map +1 -1
  114. package/dist/core/splash/SplashScreen.js +1 -1
  115. package/dist/core/splash/SplashScreen.js.map +1 -1
  116. package/dist/core/startup/initializeServices.cjs +15 -15
  117. package/dist/core/startup/initializeServices.cjs.map +1 -1
  118. package/dist/core/startup/initializeServices.d.ts +2 -2
  119. package/dist/core/startup/initializeServices.js +3 -3
  120. package/dist/core/startup/initializeServices.js.map +1 -1
  121. package/dist/core/startup/performanceTracker.cjs.map +1 -1
  122. package/dist/core/startup/performanceTracker.d.ts +1 -1
  123. package/dist/core/startup/performanceTracker.js.map +1 -1
  124. package/dist/core/startup/renderApp.cjs +3 -3
  125. package/dist/core/startup/renderApp.cjs.map +1 -1
  126. package/dist/core/startup/renderApp.d.ts +1 -1
  127. package/dist/core/startup/renderApp.js +2 -2
  128. package/dist/core/startup/renderApp.js.map +1 -1
  129. package/dist/core/startup/startApp.cjs +24 -24
  130. package/dist/core/startup/startApp.cjs.map +1 -1
  131. package/dist/core/startup/startApp.js +5 -5
  132. package/dist/core/startup/startApp.js.map +1 -1
  133. package/dist/core/types.d.ts +3 -3
  134. package/dist/core/types.js.map +1 -1
  135. package/dist/index.cjs +15 -2
  136. package/dist/index.cjs.map +1 -1
  137. package/dist/index.d.ts +6 -4
  138. package/dist/index.js +5 -4
  139. package/dist/index.js.map +1 -1
  140. package/dist/index.umd.js +2150 -23125
  141. package/dist/index.umd.js.map +1 -1
  142. package/dist/kernel/constants.cjs +67 -0
  143. package/dist/kernel/constants.cjs.map +1 -0
  144. package/dist/kernel/constants.d.ts +5 -0
  145. package/dist/kernel/constants.js +43 -0
  146. package/dist/kernel/constants.js.map +1 -0
  147. package/dist/kernel/index.cjs +40 -0
  148. package/dist/kernel/index.cjs.map +1 -0
  149. package/dist/kernel/index.d.ts +3 -0
  150. package/dist/kernel/index.js +4 -0
  151. package/dist/kernel/index.js.map +1 -0
  152. package/dist/kernel/kernel.cjs +296 -0
  153. package/dist/kernel/kernel.cjs.map +1 -0
  154. package/dist/kernel/kernel.d.ts +40 -0
  155. package/dist/kernel/kernel.js +272 -0
  156. package/dist/kernel/kernel.js.map +1 -0
  157. package/dist/kernel/manager/cacheManager.cjs +46 -0
  158. package/dist/kernel/manager/cacheManager.cjs.map +1 -0
  159. package/dist/kernel/manager/cacheManager.d.ts +6 -0
  160. package/dist/kernel/manager/cacheManager.js +36 -0
  161. package/dist/kernel/manager/cacheManager.js.map +1 -0
  162. package/dist/kernel/manager/i18nManager.cjs +68 -0
  163. package/dist/kernel/manager/i18nManager.cjs.map +1 -0
  164. package/dist/kernel/manager/i18nManager.d.ts +8 -0
  165. package/dist/kernel/manager/i18nManager.js +58 -0
  166. package/dist/kernel/manager/i18nManager.js.map +1 -0
  167. package/dist/kernel/manager/index.cjs +30 -0
  168. package/dist/kernel/manager/index.cjs.map +1 -0
  169. package/dist/kernel/manager/index.d.ts +4 -0
  170. package/dist/kernel/manager/index.js +6 -0
  171. package/dist/kernel/manager/index.js.map +1 -0
  172. package/dist/kernel/manager/loggerManager.cjs +70 -0
  173. package/dist/kernel/manager/loggerManager.cjs.map +1 -0
  174. package/dist/kernel/manager/loggerManager.d.ts +14 -0
  175. package/dist/kernel/manager/loggerManager.js +60 -0
  176. package/dist/kernel/manager/loggerManager.js.map +1 -0
  177. package/dist/kernel/manager/persistence.cjs +93 -0
  178. package/dist/kernel/manager/persistence.cjs.map +1 -0
  179. package/dist/kernel/manager/persistence.d.ts +3 -0
  180. package/dist/kernel/manager/persistence.js +75 -0
  181. package/dist/kernel/manager/persistence.js.map +1 -0
  182. package/dist/kernel/manager/themeManager.cjs +85 -0
  183. package/dist/kernel/manager/themeManager.cjs.map +1 -0
  184. package/dist/kernel/manager/themeManager.d.ts +9 -0
  185. package/dist/kernel/manager/themeManager.js +75 -0
  186. package/dist/kernel/manager/themeManager.js.map +1 -0
  187. package/dist/kernel/types.cjs +6 -0
  188. package/dist/kernel/types.cjs.map +1 -0
  189. package/dist/kernel/types.d.ts +72 -0
  190. package/dist/kernel/types.js +3 -0
  191. package/dist/kernel/types.js.map +1 -0
  192. package/dist/library/storage/encryption.cjs +12 -13
  193. package/dist/library/storage/encryption.cjs.map +1 -1
  194. package/dist/library/storage/encryption.js +1 -2
  195. package/dist/library/storage/encryption.js.map +1 -1
  196. package/dist/request/adapter.d.ts +1 -0
  197. package/dist/request/core.d.ts +1 -0
  198. package/dist/request/index.d.ts +1 -42
  199. package/dist/request/plugin/csrfPlugin.d.ts +2 -2
  200. package/dist/request/plugin/queue.d.ts +2 -2
  201. package/dist/request/plugin.d.ts +1 -0
  202. package/dist/request/runtime.d.ts +1 -0
  203. package/dist/request/types.d.ts +1 -394
  204. package/dist/request/utils.d.ts +1 -0
  205. package/dist/state.umd.js +1 -1
  206. package/dist/utils/csrf.cjs +13 -152
  207. package/dist/utils/csrf.cjs.map +1 -1
  208. package/dist/utils/csrf.d.ts +1 -72
  209. package/dist/utils/csrf.js +1 -142
  210. package/dist/utils/csrf.js.map +1 -1
  211. package/dist/utils/errors/ErrorCodes.cjs +6 -76
  212. package/dist/utils/errors/ErrorCodes.cjs.map +1 -1
  213. package/dist/utils/errors/ErrorCodes.d.ts +1 -45
  214. package/dist/utils/errors/ErrorCodes.js +1 -84
  215. package/dist/utils/errors/ErrorCodes.js.map +1 -1
  216. package/dist/utils/errors.cjs +53 -326
  217. package/dist/utils/errors.cjs.map +1 -1
  218. package/dist/utils/errors.d.ts +19 -172
  219. package/dist/utils/errors.js +16 -352
  220. package/dist/utils/errors.js.map +1 -1
  221. package/dist/utils/logger.cjs +5 -374
  222. package/dist/utils/logger.cjs.map +1 -1
  223. package/dist/utils/logger.d.ts +2 -189
  224. package/dist/utils/logger.js +1 -379
  225. package/dist/utils/logger.js.map +1 -1
  226. package/dist/utils/logger.types.cjs +3 -12
  227. package/dist/utils/logger.types.cjs.map +1 -1
  228. package/dist/utils/logger.types.d.ts +2 -57
  229. package/dist/utils/logger.types.js +1 -10
  230. package/dist/utils/logger.types.js.map +1 -1
  231. package/dist/utils/monitoring.cjs +11 -302
  232. package/dist/utils/monitoring.cjs.map +1 -1
  233. package/dist/utils/monitoring.d.ts +1 -163
  234. package/dist/utils/monitoring.js +1 -294
  235. package/dist/utils/monitoring.js.map +1 -1
  236. package/dist/utils/performance.cjs +5 -352
  237. package/dist/utils/performance.cjs.map +1 -1
  238. package/dist/utils/performance.d.ts +2 -246
  239. package/dist/utils/performance.js +1 -354
  240. package/dist/utils/performance.js.map +1 -1
  241. package/dist/utils/resourceLoader.cjs +5 -303
  242. package/dist/utils/resourceLoader.cjs.map +1 -1
  243. package/dist/utils/resourceLoader.d.ts +2 -130
  244. package/dist/utils/resourceLoader.js +1 -305
  245. package/dist/utils/resourceLoader.js.map +1 -1
  246. package/dist/utils/runtimeSecurity.cjs +2 -140
  247. package/dist/utils/runtimeSecurity.cjs.map +1 -1
  248. package/dist/utils/runtimeSecurity.d.ts +2 -104
  249. package/dist/utils/runtimeSecurity.js +1 -141
  250. package/dist/utils/runtimeSecurity.js.map +1 -1
  251. package/dist/utils/security.cjs +3 -314
  252. package/dist/utils/security.cjs.map +1 -1
  253. package/dist/utils/security.d.ts +2 -80
  254. package/dist/utils/security.js +1 -311
  255. package/dist/utils/security.js.map +1 -1
  256. package/dist/utils/traceId.cjs +10 -111
  257. package/dist/utils/traceId.cjs.map +1 -1
  258. package/dist/utils/traceId.d.ts +1 -63
  259. package/dist/utils/traceId.js +1 -116
  260. package/dist/utils/traceId.js.map +1 -1
  261. package/dist/utils/validation.cjs +3 -173
  262. package/dist/utils/validation.cjs.map +1 -1
  263. package/dist/utils/validation.d.ts +2 -110
  264. package/dist/utils/validation.js +1 -175
  265. package/dist/utils/validation.js.map +1 -1
  266. package/package.json +15 -24
  267. package/dist/lazy/index.cjs +0 -104
  268. package/dist/lazy/index.cjs.map +0 -1
  269. package/dist/lazy/index.d.ts +0 -19
  270. package/dist/lazy/index.js +0 -24
  271. package/dist/lazy/index.js.map +0 -1
  272. package/dist/request/adapter/RequestAdapter.cjs +0 -78
  273. package/dist/request/adapter/RequestAdapter.cjs.map +0 -1
  274. package/dist/request/adapter/axiosAdapter.cjs +0 -164
  275. package/dist/request/adapter/axiosAdapter.cjs.map +0 -1
  276. package/dist/request/adapter/fetchAdapter.cjs +0 -134
  277. package/dist/request/adapter/fetchAdapter.cjs.map +0 -1
  278. package/dist/request/adapter/index.cjs +0 -80
  279. package/dist/request/adapter/index.cjs.map +0 -1
  280. package/dist/request/adapter/kyAdapter.cjs +0 -191
  281. package/dist/request/adapter/kyAdapter.cjs.map +0 -1
  282. package/dist/request/adapter/undiciAdapter.cjs +0 -213
  283. package/dist/request/adapter/undiciAdapter.cjs.map +0 -1
  284. package/dist/request/core/RequestClient.cjs +0 -558
  285. package/dist/request/core/RequestClient.cjs.map +0 -1
  286. package/dist/request/core/index.cjs +0 -15
  287. package/dist/request/core/index.cjs.map +0 -1
  288. package/dist/request/index.cjs +0 -149
  289. package/dist/request/index.cjs.map +0 -1
  290. package/dist/request/plugin/RequestPlugin.cjs +0 -218
  291. package/dist/request/plugin/RequestPlugin.cjs.map +0 -1
  292. package/dist/request/plugin/cache.cjs +0 -269
  293. package/dist/request/plugin/cache.cjs.map +0 -1
  294. package/dist/request/plugin/csrfPlugin.cjs +0 -40
  295. package/dist/request/plugin/csrfPlugin.cjs.map +0 -1
  296. package/dist/request/plugin/index.cjs +0 -53
  297. package/dist/request/plugin/index.cjs.map +0 -1
  298. package/dist/request/plugin/monitoring.cjs +0 -216
  299. package/dist/request/plugin/monitoring.cjs.map +0 -1
  300. package/dist/request/plugin/queue.cjs +0 -140
  301. package/dist/request/plugin/queue.cjs.map +0 -1
  302. package/dist/request/plugin/retry.cjs +0 -98
  303. package/dist/request/plugin/retry.cjs.map +0 -1
  304. package/dist/request/plugin/validation.cjs +0 -121
  305. package/dist/request/plugin/validation.cjs.map +0 -1
  306. package/dist/request/runtime/RequestContext.cjs +0 -77
  307. package/dist/request/runtime/RequestContext.cjs.map +0 -1
  308. package/dist/request/runtime/index.cjs +0 -32
  309. package/dist/request/runtime/index.cjs.map +0 -1
  310. package/dist/request/types.cjs +0 -112
  311. package/dist/request/types.cjs.map +0 -1
  312. package/dist/request/utils/RequestQueueManager.cjs +0 -168
  313. package/dist/request/utils/RequestQueueManager.cjs.map +0 -1
  314. package/dist/request/utils/dependencyCheck.cjs +0 -237
  315. package/dist/request/utils/dependencyCheck.cjs.map +0 -1
  316. package/dist/request/utils/index.cjs +0 -30
  317. package/dist/request/utils/index.cjs.map +0 -1
  318. package/dist/request.umd.js +0 -5392
  319. package/dist/request.umd.js.map +0 -1
@@ -1,118 +1,3 @@
1
- function _define_property(obj, key, value) {
2
- if (key in obj) {
3
- Object.defineProperty(obj, key, {
4
- value: value,
5
- enumerable: true,
6
- configurable: true,
7
- writable: true
8
- });
9
- } else {
10
- obj[key] = value;
11
- }
12
- return obj;
13
- }
14
- /**
15
- * 日志追踪 ID 生成器
16
- * 用于生成唯一的请求追踪 ID,便于日志关联和问题排查
17
- */ /**
18
- * 追踪 ID 生成器
19
- */ export class TraceIdGenerator {
20
- /**
21
- * 获取单例实例
22
- */ static getInstance(prefix) {
23
- if (!TraceIdGenerator.instance) {
24
- TraceIdGenerator.instance = new TraceIdGenerator(prefix);
25
- }
26
- return TraceIdGenerator.instance;
27
- }
28
- /**
29
- * 生成追踪 ID
30
- */ generate() {
31
- const timestamp = Date.now();
32
- const random = Math.random().toString(36).substring(2, 9);
33
- const counter = (this.counter++).toString(36).padStart(4, '0');
34
- const parts = [
35
- timestamp.toString(36),
36
- random,
37
- counter
38
- ];
39
- if (this.prefix) {
40
- parts.unshift(this.prefix);
41
- }
42
- return parts.join('-');
43
- }
44
- /**
45
- * 从字符串解析追踪 ID(用于验证)
46
- */ static parse(traceId) {
47
- const parts = traceId.split('-');
48
- if (parts.length < 3) {
49
- return null;
50
- }
51
- try {
52
- const timestamp = parseInt(parts[parts.length - 3], 36);
53
- const random = parts[parts.length - 2];
54
- const counter = parseInt(parts[parts.length - 1], 36);
55
- return {
56
- prefix: parts.length > 3 ? parts.slice(0, -3).join('-') : undefined,
57
- timestamp,
58
- random,
59
- counter
60
- };
61
- } catch {
62
- return null;
63
- }
64
- }
65
- constructor(prefix = ''){
66
- _define_property(this, "counter", 0);
67
- _define_property(this, "prefix", void 0);
68
- this.prefix = prefix;
69
- }
70
- }
71
- _define_property(TraceIdGenerator, "instance", null);
72
- /**
73
- * 全局追踪 ID 生成器实例
74
- */ let globalTraceIdGenerator = null;
75
- /**
76
- * 初始化追踪 ID 生成器
77
- */ export function initTraceIdGenerator(prefix) {
78
- globalTraceIdGenerator = TraceIdGenerator.getInstance(prefix);
79
- return globalTraceIdGenerator;
80
- }
81
- /**
82
- * 获取全局追踪 ID 生成器
83
- */ export function getTraceIdGenerator() {
84
- if (!globalTraceIdGenerator) {
85
- globalTraceIdGenerator = TraceIdGenerator.getInstance();
86
- }
87
- return globalTraceIdGenerator;
88
- }
89
- /**
90
- * 生成追踪 ID
91
- */ export function generateTraceId() {
92
- return getTraceIdGenerator().generate();
93
- }
94
- /**
95
- * 解析追踪 ID
96
- */ export function parseTraceId(traceId) {
97
- return TraceIdGenerator.parse(traceId);
98
- }
99
- /**
100
- * 当前请求的追踪 ID(使用 AsyncLocalStorage 或全局变量)
101
- */ let currentTraceId = null;
102
- /**
103
- * 设置当前请求的追踪 ID
104
- */ export function setCurrentTraceId(traceId) {
105
- currentTraceId = traceId;
106
- }
107
- /**
108
- * 获取当前请求的追踪 ID
109
- */ export function getCurrentTraceId() {
110
- return currentTraceId;
111
- }
112
- /**
113
- * 清除当前请求的追踪 ID
114
- */ export function clearCurrentTraceId() {
115
- currentTraceId = null;
116
- }
1
+ export { TraceIdGenerator, initTraceIdGenerator, getTraceIdGenerator, generateTraceId, parseTraceId, setCurrentTraceId, getCurrentTraceId, clearCurrentTraceId } from "@vlian/logger";
117
2
 
118
3
  //# sourceMappingURL=traceId.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/traceId.ts"],"sourcesContent":["/**\n * 日志追踪 ID 生成器\n * 用于生成唯一的请求追踪 ID,便于日志关联和问题排查\n */\n\n/**\n * 追踪 ID 生成器\n */\nexport class TraceIdGenerator {\n private static instance: TraceIdGenerator | null = null;\n private counter: number = 0;\n private readonly prefix: string;\n\n private constructor(prefix: string = '') {\n this.prefix = prefix;\n }\n\n /**\n * 获取单例实例\n */\n static getInstance(prefix?: string): TraceIdGenerator {\n if (!TraceIdGenerator.instance) {\n TraceIdGenerator.instance = new TraceIdGenerator(prefix);\n }\n return TraceIdGenerator.instance;\n }\n\n /**\n * 生成追踪 ID\n */\n generate(): string {\n const timestamp = Date.now();\n const random = Math.random().toString(36).substring(2, 9);\n const counter = (this.counter++).toString(36).padStart(4, '0');\n \n const parts = [timestamp.toString(36), random, counter];\n if (this.prefix) {\n parts.unshift(this.prefix);\n }\n \n return parts.join('-');\n }\n\n /**\n * 从字符串解析追踪 ID(用于验证)\n */\n static parse(traceId: string): {\n prefix?: string;\n timestamp: number;\n random: string;\n counter: number;\n } | null {\n const parts = traceId.split('-');\n if (parts.length < 3) {\n return null;\n }\n\n try {\n const timestamp = parseInt(parts[parts.length - 3], 36);\n const random = parts[parts.length - 2];\n const counter = parseInt(parts[parts.length - 1], 36);\n\n return {\n prefix: parts.length > 3 ? parts.slice(0, -3).join('-') : undefined,\n timestamp,\n random,\n counter,\n };\n } catch {\n return null;\n }\n }\n}\n\n/**\n * 全局追踪 ID 生成器实例\n */\nlet globalTraceIdGenerator: TraceIdGenerator | null = null;\n\n/**\n * 初始化追踪 ID 生成器\n */\nexport function initTraceIdGenerator(prefix?: string): TraceIdGenerator {\n globalTraceIdGenerator = TraceIdGenerator.getInstance(prefix);\n return globalTraceIdGenerator;\n}\n\n/**\n * 获取全局追踪 ID 生成器\n */\nexport function getTraceIdGenerator(): TraceIdGenerator {\n if (!globalTraceIdGenerator) {\n globalTraceIdGenerator = TraceIdGenerator.getInstance();\n }\n return globalTraceIdGenerator;\n}\n\n/**\n * 生成追踪 ID\n */\nexport function generateTraceId(): string {\n return getTraceIdGenerator().generate();\n}\n\n/**\n * 解析追踪 ID\n */\nexport function parseTraceId(traceId: string): {\n prefix?: string;\n timestamp: number;\n random: string;\n counter: number;\n} | null {\n return TraceIdGenerator.parse(traceId);\n}\n\n/**\n * 当前请求的追踪 ID(使用 AsyncLocalStorage 或全局变量)\n */\nlet currentTraceId: string | null = null;\n\n/**\n * 设置当前请求的追踪 ID\n */\nexport function setCurrentTraceId(traceId: string | null): void {\n currentTraceId = traceId;\n}\n\n/**\n * 获取当前请求的追踪 ID\n */\nexport function getCurrentTraceId(): string | null {\n return currentTraceId;\n}\n\n/**\n * 清除当前请求的追踪 ID\n */\nexport function clearCurrentTraceId(): void {\n currentTraceId = null;\n}\n"],"names":["TraceIdGenerator","getInstance","prefix","instance","generate","timestamp","Date","now","random","Math","toString","substring","counter","padStart","parts","unshift","join","parse","traceId","split","length","parseInt","slice","undefined","globalTraceIdGenerator","initTraceIdGenerator","getTraceIdGenerator","generateTraceId","parseTraceId","currentTraceId","setCurrentTraceId","getCurrentTraceId","clearCurrentTraceId"],"mappings":";;;;;;;;;;;;;AAAA;;;CAGC,GAED;;CAEC,GACD,OAAO,MAAMA;IASX;;GAEC,GACD,OAAOC,YAAYC,MAAe,EAAoB;QACpD,IAAI,CAACF,iBAAiBG,QAAQ,EAAE;YAC9BH,iBAAiBG,QAAQ,GAAG,IAAIH,iBAAiBE;QACnD;QACA,OAAOF,iBAAiBG,QAAQ;IAClC;IAEA;;GAEC,GACDC,WAAmB;QACjB,MAAMC,YAAYC,KAAKC,GAAG;QAC1B,MAAMC,SAASC,KAAKD,MAAM,GAAGE,QAAQ,CAAC,IAAIC,SAAS,CAAC,GAAG;QACvD,MAAMC,UAAU,AAAC,CAAA,IAAI,CAACA,OAAO,EAAC,EAAGF,QAAQ,CAAC,IAAIG,QAAQ,CAAC,GAAG;QAE1D,MAAMC,QAAQ;YAACT,UAAUK,QAAQ,CAAC;YAAKF;YAAQI;SAAQ;QACvD,IAAI,IAAI,CAACV,MAAM,EAAE;YACfY,MAAMC,OAAO,CAAC,IAAI,CAACb,MAAM;QAC3B;QAEA,OAAOY,MAAME,IAAI,CAAC;IACpB;IAEA;;GAEC,GACD,OAAOC,MAAMC,OAAe,EAKnB;QACP,MAAMJ,QAAQI,QAAQC,KAAK,CAAC;QAC5B,IAAIL,MAAMM,MAAM,GAAG,GAAG;YACpB,OAAO;QACT;QAEA,IAAI;YACF,MAAMf,YAAYgB,SAASP,KAAK,CAACA,MAAMM,MAAM,GAAG,EAAE,EAAE;YACpD,MAAMZ,SAASM,KAAK,CAACA,MAAMM,MAAM,GAAG,EAAE;YACtC,MAAMR,UAAUS,SAASP,KAAK,CAACA,MAAMM,MAAM,GAAG,EAAE,EAAE;YAElD,OAAO;gBACLlB,QAAQY,MAAMM,MAAM,GAAG,IAAIN,MAAMQ,KAAK,CAAC,GAAG,CAAC,GAAGN,IAAI,CAAC,OAAOO;gBAC1DlB;gBACAG;gBACAI;YACF;QACF,EAAE,OAAM;YACN,OAAO;QACT;IACF;IA1DA,YAAoBV,SAAiB,EAAE,CAAE;QAHzC,uBAAQU,WAAkB;QAC1B,uBAAiBV,UAAjB,KAAA;QAGE,IAAI,CAACA,MAAM,GAAGA;IAChB;AAyDF;AA/DE,iBADWF,kBACIG,YAAoC;AAiErD;;CAEC,GACD,IAAIqB,yBAAkD;AAEtD;;CAEC,GACD,OAAO,SAASC,qBAAqBvB,MAAe;IAClDsB,yBAAyBxB,iBAAiBC,WAAW,CAACC;IACtD,OAAOsB;AACT;AAEA;;CAEC,GACD,OAAO,SAASE;IACd,IAAI,CAACF,wBAAwB;QAC3BA,yBAAyBxB,iBAAiBC,WAAW;IACvD;IACA,OAAOuB;AACT;AAEA;;CAEC,GACD,OAAO,SAASG;IACd,OAAOD,sBAAsBtB,QAAQ;AACvC;AAEA;;CAEC,GACD,OAAO,SAASwB,aAAaV,OAAe;IAM1C,OAAOlB,iBAAiBiB,KAAK,CAACC;AAChC;AAEA;;CAEC,GACD,IAAIW,iBAAgC;AAEpC;;CAEC,GACD,OAAO,SAASC,kBAAkBZ,OAAsB;IACtDW,iBAAiBX;AACnB;AAEA;;CAEC,GACD,OAAO,SAASa;IACd,OAAOF;AACT;AAEA;;CAEC,GACD,OAAO,SAASG;IACdH,iBAAiB;AACnB"}
1
+ {"version":3,"sources":["../../src/utils/traceId.ts"],"sourcesContent":["export {\n TraceIdGenerator,\n initTraceIdGenerator,\n getTraceIdGenerator,\n generateTraceId,\n parseTraceId,\n setCurrentTraceId,\n getCurrentTraceId,\n clearCurrentTraceId,\n} from '@vlian/logger';\n"],"names":["TraceIdGenerator","initTraceIdGenerator","getTraceIdGenerator","generateTraceId","parseTraceId","setCurrentTraceId","getCurrentTraceId","clearCurrentTraceId"],"mappings":"AAAA,SACEA,gBAAgB,EAChBC,oBAAoB,EACpBC,mBAAmB,EACnBC,eAAe,EACfC,YAAY,EACZC,iBAAiB,EACjBC,iBAAiB,EACjBC,mBAAmB,QACd,gBAAgB"}
@@ -10,182 +10,12 @@ function _export(target, all) {
10
10
  }
11
11
  _export(exports, {
12
12
  get Validator () {
13
- return Validator;
13
+ return _utils.Validator;
14
14
  },
15
15
  get commonSchemas () {
16
- return commonSchemas;
16
+ return _utils.commonSchemas;
17
17
  }
18
18
  });
19
- const _zod = require("zod");
20
- const _errors = require("./errors");
21
- let Validator = class Validator {
22
- /**
23
- * 验证字符串
24
- */ static validateString(value, rule, fieldName = '字段') {
25
- const errors = [];
26
- // 类型检查
27
- if (rule.required && (value === undefined || value === null || value === '')) {
28
- errors.push(`${fieldName} 是必填项`);
29
- return {
30
- valid: false,
31
- errors
32
- };
33
- }
34
- if (value === undefined || value === null || value === '') {
35
- return {
36
- valid: true,
37
- errors: []
38
- };
39
- }
40
- if (typeof value !== 'string') {
41
- errors.push(`${fieldName} 必须是字符串类型`);
42
- return {
43
- valid: false,
44
- errors
45
- };
46
- }
47
- // 长度检查
48
- if (rule.minLength !== undefined && value.length < rule.minLength) {
49
- errors.push(`${fieldName} 长度不能少于 ${rule.minLength} 个字符`);
50
- }
51
- if (rule.maxLength !== undefined && value.length > rule.maxLength) {
52
- errors.push(`${fieldName} 长度不能超过 ${rule.maxLength} 个字符`);
53
- }
54
- // 正则表达式检查
55
- if (rule.pattern && !rule.pattern.test(value)) {
56
- errors.push(`${fieldName} 格式不正确`);
57
- }
58
- return {
59
- valid: errors.length === 0,
60
- errors
61
- };
62
- }
63
- /**
64
- * 验证数字
65
- */ static validateNumber(value, rule, fieldName = '字段') {
66
- const errors = [];
67
- // 类型检查
68
- if (rule.required && (value === undefined || value === null)) {
69
- errors.push(`${fieldName} 是必填项`);
70
- return {
71
- valid: false,
72
- errors
73
- };
74
- }
75
- if (value === undefined || value === null) {
76
- return {
77
- valid: true,
78
- errors: []
79
- };
80
- }
81
- if (typeof value !== 'number' || isNaN(value)) {
82
- errors.push(`${fieldName} 必须是数字类型`);
83
- return {
84
- valid: false,
85
- errors
86
- };
87
- }
88
- // 范围检查
89
- if (rule.min !== undefined && value < rule.min) {
90
- errors.push(`${fieldName} 不能小于 ${rule.min}`);
91
- }
92
- if (rule.max !== undefined && value > rule.max) {
93
- errors.push(`${fieldName} 不能大于 ${rule.max}`);
94
- }
95
- return {
96
- valid: errors.length === 0,
97
- errors
98
- };
99
- }
100
- /**
101
- * 验证对象(使用 Zod Schema)
102
- */ static validateObject(schema, data) {
103
- try {
104
- const result = schema.safeParse(data);
105
- if (result.success) {
106
- return {
107
- valid: true,
108
- data: result.data,
109
- errors: []
110
- };
111
- } else {
112
- return {
113
- valid: false,
114
- errors: result.error.issues.map((err)=>`${err.path.join('.')}: ${err.message}`)
115
- };
116
- }
117
- } catch (error) {
118
- return {
119
- valid: false,
120
- errors: [
121
- error instanceof Error ? error.message : '验证失败'
122
- ]
123
- };
124
- }
125
- }
126
- /**
127
- * 验证并抛出错误
128
- */ static validateOrThrow(schema, data, context) {
129
- const result = this.validateObject(schema, data);
130
- if (!result.valid) {
131
- throw new _errors.ValidationError(result.errors.join('; '), context);
132
- }
133
- return result.data;
134
- }
135
- /**
136
- * 验证 URL
137
- */ static validateUrl(value, fieldName = 'URL') {
138
- const errors = [];
139
- if (value === undefined || value === null || value === '') {
140
- errors.push(`${fieldName} 是必填项`);
141
- return {
142
- valid: false,
143
- errors
144
- };
145
- }
146
- if (typeof value !== 'string') {
147
- errors.push(`${fieldName} 必须是字符串类型`);
148
- return {
149
- valid: false,
150
- errors
151
- };
152
- }
153
- try {
154
- new URL(value);
155
- } catch {
156
- errors.push(`${fieldName} 格式不正确`);
157
- }
158
- return {
159
- valid: errors.length === 0,
160
- errors
161
- };
162
- }
163
- /**
164
- * 验证邮箱
165
- */ static validateEmail(value, fieldName = '邮箱') {
166
- const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
167
- return this.validateString(value, {
168
- required: true,
169
- pattern: emailPattern
170
- }, fieldName);
171
- }
172
- };
173
- const commonSchemas = {
174
- /**
175
- * 非空字符串
176
- */ nonEmptyString: _zod.z.string().min(1, '不能为空'),
177
- /**
178
- * 正整数
179
- */ positiveInteger: _zod.z.number().int().positive(),
180
- /**
181
- * 非负整数
182
- */ nonNegativeInteger: _zod.z.number().int().nonnegative(),
183
- /**
184
- * URL
185
- */ url: _zod.z.string().url('URL 格式不正确'),
186
- /**
187
- * 邮箱
188
- */ email: _zod.z.string().email('邮箱格式不正确')
189
- };
19
+ const _utils = require("@vlian/utils");
190
20
 
191
21
  //# sourceMappingURL=validation.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/validation.ts"],"sourcesContent":["import { z } from 'zod';\nimport { ValidationError } from './errors';\n\n/**\n * 字符串验证规则\n */\nexport interface StringValidationRule {\n /**\n * 最小长度\n */\n minLength?: number;\n /**\n * 最大长度\n */\n maxLength?: number;\n /**\n * 正则表达式\n */\n pattern?: RegExp;\n /**\n * 是否必填\n */\n required?: boolean;\n}\n\n/**\n * 数字验证规则\n */\nexport interface NumberValidationRule {\n /**\n * 最小值\n */\n min?: number;\n /**\n * 最大值\n */\n max?: number;\n /**\n * 是否必填\n */\n required?: boolean;\n}\n\n/**\n * 验证结果\n */\nexport interface ValidationResult {\n /**\n * 是否有效\n */\n valid: boolean;\n /**\n * 错误信息\n */\n errors: string[];\n}\n\n/**\n * 验证工具类\n */\nexport class Validator {\n /**\n * 验证字符串\n */\n static validateString(\n value: unknown,\n rule: StringValidationRule,\n fieldName = '字段'\n ): ValidationResult {\n const errors: string[] = [];\n\n // 类型检查\n if (rule.required && (value === undefined || value === null || value === '')) {\n errors.push(`${fieldName} 是必填项`);\n return { valid: false, errors };\n }\n\n if (value === undefined || value === null || value === '') {\n return { valid: true, errors: [] };\n }\n\n if (typeof value !== 'string') {\n errors.push(`${fieldName} 必须是字符串类型`);\n return { valid: false, errors };\n }\n\n // 长度检查\n if (rule.minLength !== undefined && value.length < rule.minLength) {\n errors.push(`${fieldName} 长度不能少于 ${rule.minLength} 个字符`);\n }\n\n if (rule.maxLength !== undefined && value.length > rule.maxLength) {\n errors.push(`${fieldName} 长度不能超过 ${rule.maxLength} 个字符`);\n }\n\n // 正则表达式检查\n if (rule.pattern && !rule.pattern.test(value)) {\n errors.push(`${fieldName} 格式不正确`);\n }\n\n return {\n valid: errors.length === 0,\n errors,\n };\n }\n\n /**\n * 验证数字\n */\n static validateNumber(\n value: unknown,\n rule: NumberValidationRule,\n fieldName = '字段'\n ): ValidationResult {\n const errors: string[] = [];\n\n // 类型检查\n if (rule.required && (value === undefined || value === null)) {\n errors.push(`${fieldName} 是必填项`);\n return { valid: false, errors };\n }\n\n if (value === undefined || value === null) {\n return { valid: true, errors: [] };\n }\n\n if (typeof value !== 'number' || isNaN(value)) {\n errors.push(`${fieldName} 必须是数字类型`);\n return { valid: false, errors };\n }\n\n // 范围检查\n if (rule.min !== undefined && value < rule.min) {\n errors.push(`${fieldName} 不能小于 ${rule.min}`);\n }\n\n if (rule.max !== undefined && value > rule.max) {\n errors.push(`${fieldName} 不能大于 ${rule.max}`);\n }\n\n return {\n valid: errors.length === 0,\n errors,\n };\n }\n\n /**\n * 验证对象(使用 Zod Schema)\n */\n static validateObject<T>(schema: z.ZodSchema<T>, data: unknown): {\n valid: boolean;\n data?: T;\n errors: string[];\n } {\n try {\n const result = schema.safeParse(data);\n if (result.success) {\n return {\n valid: true,\n data: result.data,\n errors: [],\n };\n } else {\n return {\n valid: false,\n errors: result.error.issues.map((err) => `${err.path.join('.')}: ${err.message}`),\n };\n }\n } catch (error) {\n return {\n valid: false,\n errors: [error instanceof Error ? error.message : '验证失败'],\n };\n }\n }\n\n /**\n * 验证并抛出错误\n */\n static validateOrThrow<T>(schema: z.ZodSchema<T>, data: unknown, context?: Record<string, unknown>): T {\n const result = this.validateObject(schema, data);\n if (!result.valid) {\n throw new ValidationError(result.errors.join('; '), context);\n }\n return result.data!;\n }\n\n /**\n * 验证 URL\n */\n static validateUrl(value: unknown, fieldName = 'URL'): ValidationResult {\n const errors: string[] = [];\n\n if (value === undefined || value === null || value === '') {\n errors.push(`${fieldName} 是必填项`);\n return { valid: false, errors };\n }\n\n if (typeof value !== 'string') {\n errors.push(`${fieldName} 必须是字符串类型`);\n return { valid: false, errors };\n }\n\n try {\n new URL(value);\n } catch {\n errors.push(`${fieldName} 格式不正确`);\n }\n\n return {\n valid: errors.length === 0,\n errors,\n };\n }\n\n /**\n * 验证邮箱\n */\n static validateEmail(value: unknown, fieldName = '邮箱'): ValidationResult {\n const emailPattern = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n return this.validateString(value, {\n required: true,\n pattern: emailPattern,\n }, fieldName);\n }\n}\n\n/**\n * 常用验证 Schema\n */\nexport const commonSchemas = {\n /**\n * 非空字符串\n */\n nonEmptyString: z.string().min(1, '不能为空'),\n\n /**\n * 正整数\n */\n positiveInteger: z.number().int().positive(),\n\n /**\n * 非负整数\n */\n nonNegativeInteger: z.number().int().nonnegative(),\n\n /**\n * URL\n */\n url: z.string().url('URL 格式不正确'),\n\n /**\n * 邮箱\n */\n email: z.string().email('邮箱格式不正确'),\n};\n"],"names":["Validator","commonSchemas","validateString","value","rule","fieldName","errors","required","undefined","push","valid","minLength","length","maxLength","pattern","test","validateNumber","isNaN","min","max","validateObject","schema","data","result","safeParse","success","error","issues","map","err","path","join","message","Error","validateOrThrow","context","ValidationError","validateUrl","URL","validateEmail","emailPattern","nonEmptyString","z","string","positiveInteger","number","int","positive","nonNegativeInteger","nonnegative","url","email"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/utils/validation.ts"],"sourcesContent":["export { Validator, commonSchemas } from '@vlian/utils';\nexport type { StringValidationRule, NumberValidationRule, ValidationResult } from '@vlian/utils';\n"],"names":["Validator","commonSchemas"],"mappings":";;;;;;;;;;;QAASA;eAAAA,gBAAS;;QAAEC;eAAAA,oBAAa;;;uBAAQ"}
@@ -1,110 +1,2 @@
1
- import { z } from 'zod';
2
- /**
3
- * 字符串验证规则
4
- */
5
- export interface StringValidationRule {
6
- /**
7
- * 最小长度
8
- */
9
- minLength?: number;
10
- /**
11
- * 最大长度
12
- */
13
- maxLength?: number;
14
- /**
15
- * 正则表达式
16
- */
17
- pattern?: RegExp;
18
- /**
19
- * 是否必填
20
- */
21
- required?: boolean;
22
- }
23
- /**
24
- * 数字验证规则
25
- */
26
- export interface NumberValidationRule {
27
- /**
28
- * 最小值
29
- */
30
- min?: number;
31
- /**
32
- * 最大值
33
- */
34
- max?: number;
35
- /**
36
- * 是否必填
37
- */
38
- required?: boolean;
39
- }
40
- /**
41
- * 验证结果
42
- */
43
- export interface ValidationResult {
44
- /**
45
- * 是否有效
46
- */
47
- valid: boolean;
48
- /**
49
- * 错误信息
50
- */
51
- errors: string[];
52
- }
53
- /**
54
- * 验证工具类
55
- */
56
- export declare class Validator {
57
- /**
58
- * 验证字符串
59
- */
60
- static validateString(value: unknown, rule: StringValidationRule, fieldName?: string): ValidationResult;
61
- /**
62
- * 验证数字
63
- */
64
- static validateNumber(value: unknown, rule: NumberValidationRule, fieldName?: string): ValidationResult;
65
- /**
66
- * 验证对象(使用 Zod Schema)
67
- */
68
- static validateObject<T>(schema: z.ZodSchema<T>, data: unknown): {
69
- valid: boolean;
70
- data?: T;
71
- errors: string[];
72
- };
73
- /**
74
- * 验证并抛出错误
75
- */
76
- static validateOrThrow<T>(schema: z.ZodSchema<T>, data: unknown, context?: Record<string, unknown>): T;
77
- /**
78
- * 验证 URL
79
- */
80
- static validateUrl(value: unknown, fieldName?: string): ValidationResult;
81
- /**
82
- * 验证邮箱
83
- */
84
- static validateEmail(value: unknown, fieldName?: string): ValidationResult;
85
- }
86
- /**
87
- * 常用验证 Schema
88
- */
89
- export declare const commonSchemas: {
90
- /**
91
- * 非空字符串
92
- */
93
- nonEmptyString: z.ZodString;
94
- /**
95
- * 正整数
96
- */
97
- positiveInteger: z.ZodNumber;
98
- /**
99
- * 非负整数
100
- */
101
- nonNegativeInteger: z.ZodNumber;
102
- /**
103
- * URL
104
- */
105
- url: z.ZodString;
106
- /**
107
- * 邮箱
108
- */
109
- email: z.ZodString;
110
- };
1
+ export { Validator, commonSchemas } from '@vlian/utils';
2
+ export type { StringValidationRule, NumberValidationRule, ValidationResult } from '@vlian/utils';
@@ -1,177 +1,3 @@
1
- import { z } from "zod";
2
- import { ValidationError } from "./errors";
3
- /**
4
- * 验证工具类
5
- */ export class Validator {
6
- /**
7
- * 验证字符串
8
- */ static validateString(value, rule, fieldName = '字段') {
9
- const errors = [];
10
- // 类型检查
11
- if (rule.required && (value === undefined || value === null || value === '')) {
12
- errors.push(`${fieldName} 是必填项`);
13
- return {
14
- valid: false,
15
- errors
16
- };
17
- }
18
- if (value === undefined || value === null || value === '') {
19
- return {
20
- valid: true,
21
- errors: []
22
- };
23
- }
24
- if (typeof value !== 'string') {
25
- errors.push(`${fieldName} 必须是字符串类型`);
26
- return {
27
- valid: false,
28
- errors
29
- };
30
- }
31
- // 长度检查
32
- if (rule.minLength !== undefined && value.length < rule.minLength) {
33
- errors.push(`${fieldName} 长度不能少于 ${rule.minLength} 个字符`);
34
- }
35
- if (rule.maxLength !== undefined && value.length > rule.maxLength) {
36
- errors.push(`${fieldName} 长度不能超过 ${rule.maxLength} 个字符`);
37
- }
38
- // 正则表达式检查
39
- if (rule.pattern && !rule.pattern.test(value)) {
40
- errors.push(`${fieldName} 格式不正确`);
41
- }
42
- return {
43
- valid: errors.length === 0,
44
- errors
45
- };
46
- }
47
- /**
48
- * 验证数字
49
- */ static validateNumber(value, rule, fieldName = '字段') {
50
- const errors = [];
51
- // 类型检查
52
- if (rule.required && (value === undefined || value === null)) {
53
- errors.push(`${fieldName} 是必填项`);
54
- return {
55
- valid: false,
56
- errors
57
- };
58
- }
59
- if (value === undefined || value === null) {
60
- return {
61
- valid: true,
62
- errors: []
63
- };
64
- }
65
- if (typeof value !== 'number' || isNaN(value)) {
66
- errors.push(`${fieldName} 必须是数字类型`);
67
- return {
68
- valid: false,
69
- errors
70
- };
71
- }
72
- // 范围检查
73
- if (rule.min !== undefined && value < rule.min) {
74
- errors.push(`${fieldName} 不能小于 ${rule.min}`);
75
- }
76
- if (rule.max !== undefined && value > rule.max) {
77
- errors.push(`${fieldName} 不能大于 ${rule.max}`);
78
- }
79
- return {
80
- valid: errors.length === 0,
81
- errors
82
- };
83
- }
84
- /**
85
- * 验证对象(使用 Zod Schema)
86
- */ static validateObject(schema, data) {
87
- try {
88
- const result = schema.safeParse(data);
89
- if (result.success) {
90
- return {
91
- valid: true,
92
- data: result.data,
93
- errors: []
94
- };
95
- } else {
96
- return {
97
- valid: false,
98
- errors: result.error.issues.map((err)=>`${err.path.join('.')}: ${err.message}`)
99
- };
100
- }
101
- } catch (error) {
102
- return {
103
- valid: false,
104
- errors: [
105
- error instanceof Error ? error.message : '验证失败'
106
- ]
107
- };
108
- }
109
- }
110
- /**
111
- * 验证并抛出错误
112
- */ static validateOrThrow(schema, data, context) {
113
- const result = this.validateObject(schema, data);
114
- if (!result.valid) {
115
- throw new ValidationError(result.errors.join('; '), context);
116
- }
117
- return result.data;
118
- }
119
- /**
120
- * 验证 URL
121
- */ static validateUrl(value, fieldName = 'URL') {
122
- const errors = [];
123
- if (value === undefined || value === null || value === '') {
124
- errors.push(`${fieldName} 是必填项`);
125
- return {
126
- valid: false,
127
- errors
128
- };
129
- }
130
- if (typeof value !== 'string') {
131
- errors.push(`${fieldName} 必须是字符串类型`);
132
- return {
133
- valid: false,
134
- errors
135
- };
136
- }
137
- try {
138
- new URL(value);
139
- } catch {
140
- errors.push(`${fieldName} 格式不正确`);
141
- }
142
- return {
143
- valid: errors.length === 0,
144
- errors
145
- };
146
- }
147
- /**
148
- * 验证邮箱
149
- */ static validateEmail(value, fieldName = '邮箱') {
150
- const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
151
- return this.validateString(value, {
152
- required: true,
153
- pattern: emailPattern
154
- }, fieldName);
155
- }
156
- }
157
- /**
158
- * 常用验证 Schema
159
- */ export const commonSchemas = {
160
- /**
161
- * 非空字符串
162
- */ nonEmptyString: z.string().min(1, '不能为空'),
163
- /**
164
- * 正整数
165
- */ positiveInteger: z.number().int().positive(),
166
- /**
167
- * 非负整数
168
- */ nonNegativeInteger: z.number().int().nonnegative(),
169
- /**
170
- * URL
171
- */ url: z.string().url('URL 格式不正确'),
172
- /**
173
- * 邮箱
174
- */ email: z.string().email('邮箱格式不正确')
175
- };
1
+ export { Validator, commonSchemas } from "@vlian/utils";
176
2
 
177
3
  //# sourceMappingURL=validation.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/validation.ts"],"sourcesContent":["import { z } from 'zod';\nimport { ValidationError } from './errors';\n\n/**\n * 字符串验证规则\n */\nexport interface StringValidationRule {\n /**\n * 最小长度\n */\n minLength?: number;\n /**\n * 最大长度\n */\n maxLength?: number;\n /**\n * 正则表达式\n */\n pattern?: RegExp;\n /**\n * 是否必填\n */\n required?: boolean;\n}\n\n/**\n * 数字验证规则\n */\nexport interface NumberValidationRule {\n /**\n * 最小值\n */\n min?: number;\n /**\n * 最大值\n */\n max?: number;\n /**\n * 是否必填\n */\n required?: boolean;\n}\n\n/**\n * 验证结果\n */\nexport interface ValidationResult {\n /**\n * 是否有效\n */\n valid: boolean;\n /**\n * 错误信息\n */\n errors: string[];\n}\n\n/**\n * 验证工具类\n */\nexport class Validator {\n /**\n * 验证字符串\n */\n static validateString(\n value: unknown,\n rule: StringValidationRule,\n fieldName = '字段'\n ): ValidationResult {\n const errors: string[] = [];\n\n // 类型检查\n if (rule.required && (value === undefined || value === null || value === '')) {\n errors.push(`${fieldName} 是必填项`);\n return { valid: false, errors };\n }\n\n if (value === undefined || value === null || value === '') {\n return { valid: true, errors: [] };\n }\n\n if (typeof value !== 'string') {\n errors.push(`${fieldName} 必须是字符串类型`);\n return { valid: false, errors };\n }\n\n // 长度检查\n if (rule.minLength !== undefined && value.length < rule.minLength) {\n errors.push(`${fieldName} 长度不能少于 ${rule.minLength} 个字符`);\n }\n\n if (rule.maxLength !== undefined && value.length > rule.maxLength) {\n errors.push(`${fieldName} 长度不能超过 ${rule.maxLength} 个字符`);\n }\n\n // 正则表达式检查\n if (rule.pattern && !rule.pattern.test(value)) {\n errors.push(`${fieldName} 格式不正确`);\n }\n\n return {\n valid: errors.length === 0,\n errors,\n };\n }\n\n /**\n * 验证数字\n */\n static validateNumber(\n value: unknown,\n rule: NumberValidationRule,\n fieldName = '字段'\n ): ValidationResult {\n const errors: string[] = [];\n\n // 类型检查\n if (rule.required && (value === undefined || value === null)) {\n errors.push(`${fieldName} 是必填项`);\n return { valid: false, errors };\n }\n\n if (value === undefined || value === null) {\n return { valid: true, errors: [] };\n }\n\n if (typeof value !== 'number' || isNaN(value)) {\n errors.push(`${fieldName} 必须是数字类型`);\n return { valid: false, errors };\n }\n\n // 范围检查\n if (rule.min !== undefined && value < rule.min) {\n errors.push(`${fieldName} 不能小于 ${rule.min}`);\n }\n\n if (rule.max !== undefined && value > rule.max) {\n errors.push(`${fieldName} 不能大于 ${rule.max}`);\n }\n\n return {\n valid: errors.length === 0,\n errors,\n };\n }\n\n /**\n * 验证对象(使用 Zod Schema)\n */\n static validateObject<T>(schema: z.ZodSchema<T>, data: unknown): {\n valid: boolean;\n data?: T;\n errors: string[];\n } {\n try {\n const result = schema.safeParse(data);\n if (result.success) {\n return {\n valid: true,\n data: result.data,\n errors: [],\n };\n } else {\n return {\n valid: false,\n errors: result.error.issues.map((err) => `${err.path.join('.')}: ${err.message}`),\n };\n }\n } catch (error) {\n return {\n valid: false,\n errors: [error instanceof Error ? error.message : '验证失败'],\n };\n }\n }\n\n /**\n * 验证并抛出错误\n */\n static validateOrThrow<T>(schema: z.ZodSchema<T>, data: unknown, context?: Record<string, unknown>): T {\n const result = this.validateObject(schema, data);\n if (!result.valid) {\n throw new ValidationError(result.errors.join('; '), context);\n }\n return result.data!;\n }\n\n /**\n * 验证 URL\n */\n static validateUrl(value: unknown, fieldName = 'URL'): ValidationResult {\n const errors: string[] = [];\n\n if (value === undefined || value === null || value === '') {\n errors.push(`${fieldName} 是必填项`);\n return { valid: false, errors };\n }\n\n if (typeof value !== 'string') {\n errors.push(`${fieldName} 必须是字符串类型`);\n return { valid: false, errors };\n }\n\n try {\n new URL(value);\n } catch {\n errors.push(`${fieldName} 格式不正确`);\n }\n\n return {\n valid: errors.length === 0,\n errors,\n };\n }\n\n /**\n * 验证邮箱\n */\n static validateEmail(value: unknown, fieldName = '邮箱'): ValidationResult {\n const emailPattern = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n return this.validateString(value, {\n required: true,\n pattern: emailPattern,\n }, fieldName);\n }\n}\n\n/**\n * 常用验证 Schema\n */\nexport const commonSchemas = {\n /**\n * 非空字符串\n */\n nonEmptyString: z.string().min(1, '不能为空'),\n\n /**\n * 正整数\n */\n positiveInteger: z.number().int().positive(),\n\n /**\n * 非负整数\n */\n nonNegativeInteger: z.number().int().nonnegative(),\n\n /**\n * URL\n */\n url: z.string().url('URL 格式不正确'),\n\n /**\n * 邮箱\n */\n email: z.string().email('邮箱格式不正确'),\n};\n"],"names":["z","ValidationError","Validator","validateString","value","rule","fieldName","errors","required","undefined","push","valid","minLength","length","maxLength","pattern","test","validateNumber","isNaN","min","max","validateObject","schema","data","result","safeParse","success","error","issues","map","err","path","join","message","Error","validateOrThrow","context","validateUrl","URL","validateEmail","emailPattern","commonSchemas","nonEmptyString","string","positiveInteger","number","int","positive","nonNegativeInteger","nonnegative","url","email"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/utils/validation.ts"],"sourcesContent":["export { Validator, commonSchemas } from '@vlian/utils';\nexport type { StringValidationRule, NumberValidationRule, ValidationResult } from '@vlian/utils';\n"],"names":["Validator","commonSchemas"],"mappings":"AAAA,SAASA,SAAS,EAAEC,aAAa,QAAQ,eAAe"}