@vlian/framework 1.2.19 → 1.2.37

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 (252) hide show
  1. package/dist/analytics.umd.js +208 -2395
  2. package/dist/analytics.umd.js.map +1 -1
  3. package/dist/core/error/ErrorHandler.cjs.map +1 -1
  4. package/dist/core/error/ErrorHandler.d.ts +1 -1
  5. package/dist/core/error/ErrorHandler.js.map +1 -1
  6. package/dist/core/index.cjs +0 -1
  7. package/dist/core/index.cjs.map +1 -1
  8. package/dist/core/index.d.ts +1 -2
  9. package/dist/core/index.js +0 -1
  10. package/dist/core/index.js.map +1 -1
  11. package/dist/core/initialization/index.cjs.map +1 -1
  12. package/dist/core/initialization/index.d.ts +1 -1
  13. package/dist/core/initialization/index.js.map +1 -1
  14. package/dist/core/initialization/initialization.cjs +2 -147
  15. package/dist/core/initialization/initialization.cjs.map +1 -1
  16. package/dist/core/initialization/initialization.d.ts +0 -57
  17. package/dist/core/initialization/initialization.js +2 -148
  18. package/dist/core/initialization/initialization.js.map +1 -1
  19. package/dist/core/kernel/startKernel.cjs +1 -2
  20. package/dist/core/kernel/startKernel.cjs.map +1 -1
  21. package/dist/core/kernel/startKernel.js +1 -2
  22. package/dist/core/kernel/startKernel.js.map +1 -1
  23. package/dist/core/plugin.cjs +16 -16
  24. package/dist/core/plugin.cjs.map +1 -1
  25. package/dist/core/plugin.d.ts +5 -1
  26. package/dist/core/plugin.js +17 -17
  27. package/dist/core/plugin.js.map +1 -1
  28. package/dist/core/router/monitoring/RouterMonitoring.cjs +1 -1
  29. package/dist/core/router/monitoring/RouterMonitoring.cjs.map +1 -1
  30. package/dist/core/router/monitoring/RouterMonitoring.js +1 -1
  31. package/dist/core/router/monitoring/RouterMonitoring.js.map +1 -1
  32. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.cjs +13 -8
  33. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.cjs.map +1 -1
  34. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.js +13 -8
  35. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.js.map +1 -1
  36. package/dist/core/router/utils/adapters/react-router/transform.cjs +4 -0
  37. package/dist/core/router/utils/adapters/react-router/transform.cjs.map +1 -1
  38. package/dist/core/router/utils/adapters/react-router/transform.js +4 -0
  39. package/dist/core/router/utils/adapters/react-router/transform.js.map +1 -1
  40. package/dist/core/startup/initializeServices.cjs +1 -1
  41. package/dist/core/startup/initializeServices.cjs.map +1 -1
  42. package/dist/core/startup/initializeServices.d.ts +1 -1
  43. package/dist/core/startup/initializeServices.js +1 -1
  44. package/dist/core/startup/initializeServices.js.map +1 -1
  45. package/dist/core/startup/performanceTracker.cjs.map +1 -1
  46. package/dist/core/startup/performanceTracker.d.ts +1 -1
  47. package/dist/core/startup/performanceTracker.js.map +1 -1
  48. package/dist/core/startup/renderApp.cjs +1 -1
  49. package/dist/core/startup/renderApp.cjs.map +1 -1
  50. package/dist/core/startup/renderApp.d.ts +1 -1
  51. package/dist/core/startup/renderApp.js +1 -1
  52. package/dist/core/startup/renderApp.js.map +1 -1
  53. package/dist/core/startup/startApp.cjs +2 -4
  54. package/dist/core/startup/startApp.cjs.map +1 -1
  55. package/dist/core/startup/startApp.js +3 -5
  56. package/dist/core/startup/startApp.js.map +1 -1
  57. package/dist/core/types.d.ts +2 -6
  58. package/dist/core/types.js.map +1 -1
  59. package/dist/index.cjs +15 -2
  60. package/dist/index.cjs.map +1 -1
  61. package/dist/index.d.ts +6 -4
  62. package/dist/index.js +5 -4
  63. package/dist/index.js.map +1 -1
  64. package/dist/index.umd.js +11758 -32895
  65. package/dist/index.umd.js.map +1 -1
  66. package/dist/kernel/constants.cjs +67 -0
  67. package/dist/kernel/constants.cjs.map +1 -0
  68. package/dist/kernel/constants.d.ts +5 -0
  69. package/dist/kernel/constants.js +43 -0
  70. package/dist/kernel/constants.js.map +1 -0
  71. package/dist/kernel/index.cjs +40 -0
  72. package/dist/kernel/index.cjs.map +1 -0
  73. package/dist/kernel/index.d.ts +3 -0
  74. package/dist/kernel/index.js +4 -0
  75. package/dist/kernel/index.js.map +1 -0
  76. package/dist/kernel/kernel.cjs +296 -0
  77. package/dist/kernel/kernel.cjs.map +1 -0
  78. package/dist/kernel/kernel.d.ts +40 -0
  79. package/dist/kernel/kernel.js +272 -0
  80. package/dist/kernel/kernel.js.map +1 -0
  81. package/dist/kernel/manager/cacheManager.cjs +46 -0
  82. package/dist/kernel/manager/cacheManager.cjs.map +1 -0
  83. package/dist/kernel/manager/cacheManager.d.ts +6 -0
  84. package/dist/kernel/manager/cacheManager.js +36 -0
  85. package/dist/kernel/manager/cacheManager.js.map +1 -0
  86. package/dist/kernel/manager/i18nManager.cjs +68 -0
  87. package/dist/kernel/manager/i18nManager.cjs.map +1 -0
  88. package/dist/kernel/manager/i18nManager.d.ts +8 -0
  89. package/dist/kernel/manager/i18nManager.js +58 -0
  90. package/dist/kernel/manager/i18nManager.js.map +1 -0
  91. package/dist/kernel/manager/index.cjs +30 -0
  92. package/dist/kernel/manager/index.cjs.map +1 -0
  93. package/dist/kernel/manager/index.d.ts +4 -0
  94. package/dist/kernel/manager/index.js +6 -0
  95. package/dist/kernel/manager/index.js.map +1 -0
  96. package/dist/kernel/manager/loggerManager.cjs +70 -0
  97. package/dist/kernel/manager/loggerManager.cjs.map +1 -0
  98. package/dist/kernel/manager/loggerManager.d.ts +14 -0
  99. package/dist/kernel/manager/loggerManager.js +60 -0
  100. package/dist/kernel/manager/loggerManager.js.map +1 -0
  101. package/dist/kernel/manager/persistence.cjs +93 -0
  102. package/dist/kernel/manager/persistence.cjs.map +1 -0
  103. package/dist/kernel/manager/persistence.d.ts +3 -0
  104. package/dist/kernel/manager/persistence.js +75 -0
  105. package/dist/kernel/manager/persistence.js.map +1 -0
  106. package/dist/kernel/manager/themeManager.cjs +85 -0
  107. package/dist/kernel/manager/themeManager.cjs.map +1 -0
  108. package/dist/kernel/manager/themeManager.d.ts +9 -0
  109. package/dist/kernel/manager/themeManager.js +75 -0
  110. package/dist/kernel/manager/themeManager.js.map +1 -0
  111. package/dist/kernel/types.cjs.map +1 -0
  112. package/dist/kernel/types.d.ts +72 -0
  113. package/dist/kernel/types.js.map +1 -0
  114. package/dist/library/storage/index.cjs +1 -1
  115. package/dist/library/storage/index.cjs.map +1 -1
  116. package/dist/library/storage/index.d.ts +1 -0
  117. package/dist/library/storage/index.js +1 -1
  118. package/dist/library/storage/index.js.map +1 -1
  119. package/dist/request/adapter.d.ts +1 -0
  120. package/dist/request/core.d.ts +1 -0
  121. package/dist/request/index.d.ts +1 -42
  122. package/dist/request/plugin/csrfPlugin.d.ts +2 -2
  123. package/dist/request/plugin/queue.d.ts +2 -2
  124. package/dist/request/plugin.d.ts +1 -0
  125. package/dist/request/runtime.d.ts +1 -0
  126. package/dist/request/types.d.ts +1 -394
  127. package/dist/request/utils.d.ts +1 -0
  128. package/dist/state.umd.js +1 -1
  129. package/dist/utils/csrf.cjs +13 -152
  130. package/dist/utils/csrf.cjs.map +1 -1
  131. package/dist/utils/csrf.d.ts +1 -72
  132. package/dist/utils/csrf.js +1 -142
  133. package/dist/utils/csrf.js.map +1 -1
  134. package/dist/utils/errors/ErrorCodes.cjs +6 -76
  135. package/dist/utils/errors/ErrorCodes.cjs.map +1 -1
  136. package/dist/utils/errors/ErrorCodes.d.ts +1 -45
  137. package/dist/utils/errors/ErrorCodes.js +1 -84
  138. package/dist/utils/errors/ErrorCodes.js.map +1 -1
  139. package/dist/utils/errors.cjs +15 -344
  140. package/dist/utils/errors.cjs.map +1 -1
  141. package/dist/utils/errors.d.ts +1 -183
  142. package/dist/utils/errors.js +1 -352
  143. package/dist/utils/errors.js.map +1 -1
  144. package/dist/utils/logger.cjs +5 -374
  145. package/dist/utils/logger.cjs.map +1 -1
  146. package/dist/utils/logger.d.ts +2 -189
  147. package/dist/utils/logger.js +1 -379
  148. package/dist/utils/logger.js.map +1 -1
  149. package/dist/utils/logger.types.cjs +3 -12
  150. package/dist/utils/logger.types.cjs.map +1 -1
  151. package/dist/utils/logger.types.d.ts +2 -57
  152. package/dist/utils/logger.types.js +1 -10
  153. package/dist/utils/logger.types.js.map +1 -1
  154. package/dist/utils/monitoring.cjs +11 -302
  155. package/dist/utils/monitoring.cjs.map +1 -1
  156. package/dist/utils/monitoring.d.ts +1 -163
  157. package/dist/utils/monitoring.js +1 -294
  158. package/dist/utils/monitoring.js.map +1 -1
  159. package/dist/utils/performance.cjs +5 -352
  160. package/dist/utils/performance.cjs.map +1 -1
  161. package/dist/utils/performance.d.ts +2 -246
  162. package/dist/utils/performance.js +1 -354
  163. package/dist/utils/performance.js.map +1 -1
  164. package/dist/utils/resourceLoader.cjs +5 -303
  165. package/dist/utils/resourceLoader.cjs.map +1 -1
  166. package/dist/utils/resourceLoader.d.ts +2 -130
  167. package/dist/utils/resourceLoader.js +1 -305
  168. package/dist/utils/resourceLoader.js.map +1 -1
  169. package/dist/utils/runtimeSecurity.cjs +2 -140
  170. package/dist/utils/runtimeSecurity.cjs.map +1 -1
  171. package/dist/utils/runtimeSecurity.d.ts +2 -104
  172. package/dist/utils/runtimeSecurity.js +1 -141
  173. package/dist/utils/runtimeSecurity.js.map +1 -1
  174. package/dist/utils/security.cjs +3 -314
  175. package/dist/utils/security.cjs.map +1 -1
  176. package/dist/utils/security.d.ts +2 -80
  177. package/dist/utils/security.js +1 -311
  178. package/dist/utils/security.js.map +1 -1
  179. package/dist/utils/traceId.cjs +10 -111
  180. package/dist/utils/traceId.cjs.map +1 -1
  181. package/dist/utils/traceId.d.ts +1 -63
  182. package/dist/utils/traceId.js +1 -116
  183. package/dist/utils/traceId.js.map +1 -1
  184. package/dist/utils/validation.cjs +3 -173
  185. package/dist/utils/validation.cjs.map +1 -1
  186. package/dist/utils/validation.d.ts +2 -110
  187. package/dist/utils/validation.js +1 -175
  188. package/dist/utils/validation.js.map +1 -1
  189. package/package.json +98 -13
  190. package/dist/core/ui-adapter/adapters.cjs +0 -45
  191. package/dist/core/ui-adapter/adapters.cjs.map +0 -1
  192. package/dist/core/ui-adapter/adapters.d.ts +0 -4
  193. package/dist/core/ui-adapter/adapters.js +0 -27
  194. package/dist/core/ui-adapter/adapters.js.map +0 -1
  195. package/dist/core/ui-adapter/index.cjs +0 -21
  196. package/dist/core/ui-adapter/index.cjs.map +0 -1
  197. package/dist/core/ui-adapter/index.d.ts +0 -2
  198. package/dist/core/ui-adapter/index.js +0 -3
  199. package/dist/core/ui-adapter/index.js.map +0 -1
  200. package/dist/core/ui-adapter/types.cjs.map +0 -1
  201. package/dist/core/ui-adapter/types.d.ts +0 -24
  202. package/dist/core/ui-adapter/types.js.map +0 -1
  203. package/dist/request/adapter/RequestAdapter.cjs +0 -78
  204. package/dist/request/adapter/RequestAdapter.cjs.map +0 -1
  205. package/dist/request/adapter/axiosAdapter.cjs +0 -164
  206. package/dist/request/adapter/axiosAdapter.cjs.map +0 -1
  207. package/dist/request/adapter/fetchAdapter.cjs +0 -134
  208. package/dist/request/adapter/fetchAdapter.cjs.map +0 -1
  209. package/dist/request/adapter/index.cjs +0 -80
  210. package/dist/request/adapter/index.cjs.map +0 -1
  211. package/dist/request/adapter/kyAdapter.cjs +0 -191
  212. package/dist/request/adapter/kyAdapter.cjs.map +0 -1
  213. package/dist/request/adapter/undiciAdapter.cjs +0 -213
  214. package/dist/request/adapter/undiciAdapter.cjs.map +0 -1
  215. package/dist/request/core/RequestClient.cjs +0 -558
  216. package/dist/request/core/RequestClient.cjs.map +0 -1
  217. package/dist/request/core/index.cjs +0 -15
  218. package/dist/request/core/index.cjs.map +0 -1
  219. package/dist/request/index.cjs +0 -149
  220. package/dist/request/index.cjs.map +0 -1
  221. package/dist/request/plugin/RequestPlugin.cjs +0 -218
  222. package/dist/request/plugin/RequestPlugin.cjs.map +0 -1
  223. package/dist/request/plugin/cache.cjs +0 -269
  224. package/dist/request/plugin/cache.cjs.map +0 -1
  225. package/dist/request/plugin/csrfPlugin.cjs +0 -40
  226. package/dist/request/plugin/csrfPlugin.cjs.map +0 -1
  227. package/dist/request/plugin/index.cjs +0 -53
  228. package/dist/request/plugin/index.cjs.map +0 -1
  229. package/dist/request/plugin/monitoring.cjs +0 -216
  230. package/dist/request/plugin/monitoring.cjs.map +0 -1
  231. package/dist/request/plugin/queue.cjs +0 -140
  232. package/dist/request/plugin/queue.cjs.map +0 -1
  233. package/dist/request/plugin/retry.cjs +0 -98
  234. package/dist/request/plugin/retry.cjs.map +0 -1
  235. package/dist/request/plugin/validation.cjs +0 -121
  236. package/dist/request/plugin/validation.cjs.map +0 -1
  237. package/dist/request/runtime/RequestContext.cjs +0 -77
  238. package/dist/request/runtime/RequestContext.cjs.map +0 -1
  239. package/dist/request/runtime/index.cjs +0 -32
  240. package/dist/request/runtime/index.cjs.map +0 -1
  241. package/dist/request/types.cjs +0 -112
  242. package/dist/request/types.cjs.map +0 -1
  243. package/dist/request/utils/RequestQueueManager.cjs +0 -168
  244. package/dist/request/utils/RequestQueueManager.cjs.map +0 -1
  245. package/dist/request/utils/dependencyCheck.cjs +0 -237
  246. package/dist/request/utils/dependencyCheck.cjs.map +0 -1
  247. package/dist/request/utils/index.cjs +0 -30
  248. package/dist/request/utils/index.cjs.map +0 -1
  249. package/dist/request.umd.js +0 -5392
  250. package/dist/request.umd.js.map +0 -1
  251. /package/dist/{core/ui-adapter → kernel}/types.cjs +0 -0
  252. /package/dist/{core/ui-adapter → kernel}/types.js +0 -0
@@ -1,86 +1,3 @@
1
- /**
2
- * 错误码定义
3
- * 提供统一的错误码和错误信息映射
4
- */ /**
5
- * 错误码枚举
6
- */ export var ErrorCode = /*#__PURE__*/ function(ErrorCode) {
7
- // 框架启动错误 (1000-1999)
8
- ErrorCode[ErrorCode["CONTAINER_NOT_FOUND"] = 1001] = "CONTAINER_NOT_FOUND";
9
- ErrorCode[ErrorCode["STARTUP_FAILED"] = 1002] = "STARTUP_FAILED";
10
- ErrorCode[ErrorCode["INITIALIZATION_FAILED"] = 1003] = "INITIALIZATION_FAILED";
11
- // 配置错误 (2000-2999)
12
- ErrorCode[ErrorCode["CONFIG_LOAD_FAILED"] = 2001] = "CONFIG_LOAD_FAILED";
13
- ErrorCode[ErrorCode["CONFIG_VALIDATION_FAILED"] = 2002] = "CONFIG_VALIDATION_FAILED";
14
- ErrorCode[ErrorCode["CONFIG_FILE_NOT_FOUND"] = 2003] = "CONFIG_FILE_NOT_FOUND";
15
- // 插件错误 (3000-3999)
16
- ErrorCode[ErrorCode["PLUGIN_REGISTER_FAILED"] = 3001] = "PLUGIN_REGISTER_FAILED";
17
- ErrorCode[ErrorCode["PLUGIN_EXECUTION_FAILED"] = 3002] = "PLUGIN_EXECUTION_FAILED";
18
- ErrorCode[ErrorCode["PLUGIN_PERMISSION_DENIED"] = 3003] = "PLUGIN_PERMISSION_DENIED";
19
- // 状态管理错误 (4000-4999)
20
- ErrorCode[ErrorCode["STATE_MANAGER_NOT_INITIALIZED"] = 4001] = "STATE_MANAGER_NOT_INITIALIZED";
21
- ErrorCode[ErrorCode["STATE_INSTANCE_NOT_FOUND"] = 4002] = "STATE_INSTANCE_NOT_FOUND";
22
- ErrorCode[ErrorCode["STATE_SCOPE_NOT_FOUND"] = 4003] = "STATE_SCOPE_NOT_FOUND";
23
- // 存储错误 (5000-5999)
24
- ErrorCode[ErrorCode["STORAGE_INITIALIZATION_FAILED"] = 5001] = "STORAGE_INITIALIZATION_FAILED";
25
- ErrorCode[ErrorCode["STORAGE_OPERATION_FAILED"] = 5002] = "STORAGE_OPERATION_FAILED";
26
- // 网络错误 (6000-6999)
27
- ErrorCode[ErrorCode["NETWORK_ERROR"] = 6001] = "NETWORK_ERROR";
28
- ErrorCode[ErrorCode["NETWORK_TIMEOUT"] = 6002] = "NETWORK_TIMEOUT";
29
- // 未知错误 (9999)
30
- ErrorCode[ErrorCode["UNKNOWN_ERROR"] = 9999] = "UNKNOWN_ERROR";
31
- return ErrorCode;
32
- }({});
33
- /**
34
- * 错误信息映射
35
- */ export const ErrorMessages = {
36
- [1001]: '未找到挂载容器,请确保页面中存在 id="root" 的元素或通过 container 选项指定容器',
37
- [1002]: '框架启动失败',
38
- [1003]: '初始化失败',
39
- [2001]: '配置加载失败',
40
- [2002]: '配置验证失败',
41
- [2003]: '配置文件未找到',
42
- [3001]: '插件注册失败',
43
- [3002]: '插件执行失败',
44
- [3003]: '插件权限不足',
45
- [4001]: '状态管理器未初始化',
46
- [4002]: '状态实例未找到',
47
- [4003]: '状态作用域未找到',
48
- [5001]: '存储初始化失败',
49
- [5002]: '存储操作失败',
50
- [6001]: '网络错误',
51
- [6002]: '网络请求超时',
52
- [9999]: '未知错误'
53
- };
54
- /**
55
- * 获取错误信息
56
- *
57
- * @param code - 错误码
58
- * @returns 错误信息
59
- */ export function getErrorMessage(code) {
60
- return ErrorMessages[code] || ErrorMessages[9999];
61
- }
62
- /**
63
- * 获取用户友好的错误提示
64
- *
65
- * @param code - 错误码
66
- * @param details - 详细信息
67
- * @returns 用户友好的错误提示
68
- */ export function getUserFriendlyMessage(code, details) {
69
- const baseMessage = getErrorMessage(code);
70
- if (details) {
71
- return `${baseMessage}: ${details}`;
72
- }
73
- // 根据错误码提供修复建议
74
- const suggestions = {
75
- [1001]: '请检查HTML中是否存在id="root"的元素,或通过container选项指定容器',
76
- [2002]: '请检查配置文件格式是否正确,参考文档进行配置',
77
- [3003]: '请检查插件权限配置,确保插件有足够的权限'
78
- };
79
- const suggestion = suggestions[code];
80
- if (suggestion) {
81
- return `${baseMessage}\n建议: ${suggestion}`;
82
- }
83
- return baseMessage;
84
- }
1
+ export { ErrorCode, ErrorMessages, getErrorMessage, getUserFriendlyMessage } from "@vlian/utils";
85
2
 
86
3
  //# sourceMappingURL=ErrorCodes.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/errors/ErrorCodes.ts"],"sourcesContent":["/**\n * 错误码定义\n * 提供统一的错误码和错误信息映射\n */\n\n/**\n * 错误码枚举\n */\nexport enum ErrorCode {\n // 框架启动错误 (1000-1999)\n CONTAINER_NOT_FOUND = 1001,\n STARTUP_FAILED = 1002,\n INITIALIZATION_FAILED = 1003,\n\n // 配置错误 (2000-2999)\n CONFIG_LOAD_FAILED = 2001,\n CONFIG_VALIDATION_FAILED = 2002,\n CONFIG_FILE_NOT_FOUND = 2003,\n\n // 插件错误 (3000-3999)\n PLUGIN_REGISTER_FAILED = 3001,\n PLUGIN_EXECUTION_FAILED = 3002,\n PLUGIN_PERMISSION_DENIED = 3003,\n\n // 状态管理错误 (4000-4999)\n STATE_MANAGER_NOT_INITIALIZED = 4001,\n STATE_INSTANCE_NOT_FOUND = 4002,\n STATE_SCOPE_NOT_FOUND = 4003,\n\n // 存储错误 (5000-5999)\n STORAGE_INITIALIZATION_FAILED = 5001,\n STORAGE_OPERATION_FAILED = 5002,\n\n // 网络错误 (6000-6999)\n NETWORK_ERROR = 6001,\n NETWORK_TIMEOUT = 6002,\n\n // 未知错误 (9999)\n UNKNOWN_ERROR = 9999,\n}\n\n/**\n * 错误信息映射\n */\nexport const ErrorMessages: Record<ErrorCode, string> = {\n [ErrorCode.CONTAINER_NOT_FOUND]: '未找到挂载容器,请确保页面中存在 id=\"root\" 的元素或通过 container 选项指定容器',\n [ErrorCode.STARTUP_FAILED]: '框架启动失败',\n [ErrorCode.INITIALIZATION_FAILED]: '初始化失败',\n\n [ErrorCode.CONFIG_LOAD_FAILED]: '配置加载失败',\n [ErrorCode.CONFIG_VALIDATION_FAILED]: '配置验证失败',\n [ErrorCode.CONFIG_FILE_NOT_FOUND]: '配置文件未找到',\n\n [ErrorCode.PLUGIN_REGISTER_FAILED]: '插件注册失败',\n [ErrorCode.PLUGIN_EXECUTION_FAILED]: '插件执行失败',\n [ErrorCode.PLUGIN_PERMISSION_DENIED]: '插件权限不足',\n\n [ErrorCode.STATE_MANAGER_NOT_INITIALIZED]: '状态管理器未初始化',\n [ErrorCode.STATE_INSTANCE_NOT_FOUND]: '状态实例未找到',\n [ErrorCode.STATE_SCOPE_NOT_FOUND]: '状态作用域未找到',\n\n [ErrorCode.STORAGE_INITIALIZATION_FAILED]: '存储初始化失败',\n [ErrorCode.STORAGE_OPERATION_FAILED]: '存储操作失败',\n\n [ErrorCode.NETWORK_ERROR]: '网络错误',\n [ErrorCode.NETWORK_TIMEOUT]: '网络请求超时',\n\n [ErrorCode.UNKNOWN_ERROR]: '未知错误',\n};\n\n/**\n * 获取错误信息\n * \n * @param code - 错误码\n * @returns 错误信息\n */\nexport function getErrorMessage(code: ErrorCode): string {\n return ErrorMessages[code] || ErrorMessages[ErrorCode.UNKNOWN_ERROR];\n}\n\n/**\n * 获取用户友好的错误提示\n * \n * @param code - 错误码\n * @param details - 详细信息\n * @returns 用户友好的错误提示\n */\nexport function getUserFriendlyMessage(code: ErrorCode, details?: string): string {\n const baseMessage = getErrorMessage(code);\n \n if (details) {\n return `${baseMessage}: ${details}`;\n }\n\n // 根据错误码提供修复建议\n const suggestions: Partial<Record<ErrorCode, string>> = {\n [ErrorCode.CONTAINER_NOT_FOUND]: '请检查HTML中是否存在id=\"root\"的元素,或通过container选项指定容器',\n [ErrorCode.CONFIG_VALIDATION_FAILED]: '请检查配置文件格式是否正确,参考文档进行配置',\n [ErrorCode.PLUGIN_PERMISSION_DENIED]: '请检查插件权限配置,确保插件有足够的权限',\n };\n\n const suggestion = suggestions[code];\n if (suggestion) {\n return `${baseMessage}\\n建议: ${suggestion}`;\n }\n\n return baseMessage;\n}\n"],"names":["ErrorCode","ErrorMessages","getErrorMessage","code","getUserFriendlyMessage","details","baseMessage","suggestions","suggestion"],"mappings":"AAAA;;;CAGC,GAED;;CAEC,GACD,OAAO,IAAA,AAAKA,mCAAAA;IACV,qBAAqB;;;;IAKrB,mBAAmB;;;;IAKnB,mBAAmB;;;;IAKnB,qBAAqB;;;;IAKrB,mBAAmB;;;IAInB,mBAAmB;;;IAInB,cAAc;;WA7BJA;MA+BX;AAED;;CAEC,GACD,OAAO,MAAMC,gBAA2C;IACtD,MAA+B,EAAE;IACjC,MAA0B,EAAE;IAC5B,MAAiC,EAAE;IAEnC,MAA8B,EAAE;IAChC,MAAoC,EAAE;IACtC,MAAiC,EAAE;IAEnC,MAAkC,EAAE;IACpC,MAAmC,EAAE;IACrC,MAAoC,EAAE;IAEtC,MAAyC,EAAE;IAC3C,MAAoC,EAAE;IACtC,MAAiC,EAAE;IAEnC,MAAyC,EAAE;IAC3C,MAAoC,EAAE;IAEtC,MAAyB,EAAE;IAC3B,MAA2B,EAAE;IAE7B,MAAyB,EAAE;AAC7B,EAAE;AAEF;;;;;CAKC,GACD,OAAO,SAASC,gBAAgBC,IAAe;IAC7C,OAAOF,aAAa,CAACE,KAAK,IAAIF,aAAa,MAAyB;AACtE;AAEA;;;;;;CAMC,GACD,OAAO,SAASG,uBAAuBD,IAAe,EAAEE,OAAgB;IACtE,MAAMC,cAAcJ,gBAAgBC;IAEpC,IAAIE,SAAS;QACX,OAAO,GAAGC,YAAY,EAAE,EAAED,SAAS;IACrC;IAEA,cAAc;IACd,MAAME,cAAkD;QACtD,MAA+B,EAAE;QACjC,MAAoC,EAAE;QACtC,MAAoC,EAAE;IACxC;IAEA,MAAMC,aAAaD,WAAW,CAACJ,KAAK;IACpC,IAAIK,YAAY;QACd,OAAO,GAAGF,YAAY,MAAM,EAAEE,YAAY;IAC5C;IAEA,OAAOF;AACT"}
1
+ {"version":3,"sources":["../../../src/utils/errors/ErrorCodes.ts"],"sourcesContent":["export { ErrorCode, ErrorMessages, getErrorMessage, getUserFriendlyMessage } from '@vlian/utils';\n"],"names":["ErrorCode","ErrorMessages","getErrorMessage","getUserFriendlyMessage"],"mappings":"AAAA,SAASA,SAAS,EAAEC,aAAa,EAAEC,eAAe,EAAEC,sBAAsB,QAAQ,eAAe"}
@@ -10,377 +10,48 @@ function _export(target, all) {
10
10
  }
11
11
  _export(exports, {
12
12
  get ConfigError () {
13
- return ConfigError;
13
+ return _utils.ConfigError;
14
14
  },
15
15
  get ErrorCode () {
16
- return _ErrorCodes.ErrorCode;
16
+ return _utils.ErrorCode;
17
17
  },
18
18
  get ErrorMessages () {
19
- return _ErrorCodes.ErrorMessages;
19
+ return _utils.ErrorMessages;
20
20
  },
21
21
  get ErrorSeverity () {
22
- return ErrorSeverity;
22
+ return _utils.ErrorSeverity;
23
23
  },
24
24
  get ErrorType () {
25
- return ErrorType;
25
+ return _utils.ErrorType;
26
26
  },
27
27
  get FrameworkError () {
28
- return FrameworkError;
28
+ return _utils.FrameworkError;
29
29
  },
30
30
  get InitializationError () {
31
- return InitializationError;
31
+ return _utils.InitializationError;
32
32
  },
33
33
  get NetworkError () {
34
- return NetworkError;
34
+ return _utils.NetworkError;
35
35
  },
36
36
  get SecurityError () {
37
- return SecurityError;
37
+ return _utils.SecurityError;
38
38
  },
39
39
  get StorageError () {
40
- return StorageError;
40
+ return _utils.StorageError;
41
41
  },
42
42
  get ValidationError () {
43
- return ValidationError;
43
+ return _utils.ValidationError;
44
44
  },
45
45
  get errorUtils () {
46
- return errorUtils;
46
+ return _utils.errorUtils;
47
47
  },
48
48
  get getErrorMessage () {
49
- return _ErrorCodes.getErrorMessage;
49
+ return _utils.getErrorMessage;
50
50
  },
51
51
  get getUserFriendlyMessage () {
52
- return _ErrorCodes.getUserFriendlyMessage;
52
+ return _utils.getUserFriendlyMessage;
53
53
  }
54
54
  });
55
- const _ErrorCodes = require("./errors/ErrorCodes");
56
- function _define_property(obj, key, value) {
57
- if (key in obj) {
58
- Object.defineProperty(obj, key, {
59
- value: value,
60
- enumerable: true,
61
- configurable: true,
62
- writable: true
63
- });
64
- } else {
65
- obj[key] = value;
66
- }
67
- return obj;
68
- }
69
- var ErrorType = /*#__PURE__*/ function(ErrorType) {
70
- /**
71
- * 初始化错误
72
- */ ErrorType["INITIALIZATION"] = "INITIALIZATION";
73
- /**
74
- * 配置错误
75
- */ ErrorType["CONFIG"] = "CONFIG";
76
- /**
77
- * 存储错误
78
- */ ErrorType["STORAGE"] = "STORAGE";
79
- /**
80
- * 网络错误
81
- */ ErrorType["NETWORK"] = "NETWORK";
82
- /**
83
- * 验证错误
84
- */ ErrorType["VALIDATION"] = "VALIDATION";
85
- /**
86
- * 安全错误
87
- */ ErrorType["SECURITY"] = "SECURITY";
88
- /**
89
- * 运行时错误
90
- */ ErrorType["RUNTIME"] = "RUNTIME";
91
- /**
92
- * 未知错误
93
- */ ErrorType["UNKNOWN"] = "UNKNOWN";
94
- return ErrorType;
95
- }({});
96
- var ErrorSeverity = /*#__PURE__*/ function(ErrorSeverity) {
97
- /**
98
- * 低 - 不影响核心功能
99
- */ ErrorSeverity["LOW"] = "LOW";
100
- /**
101
- * 中 - 影响部分功能
102
- */ ErrorSeverity["MEDIUM"] = "MEDIUM";
103
- /**
104
- * 高 - 影响核心功能
105
- */ ErrorSeverity["HIGH"] = "HIGH";
106
- /**
107
- * 严重 - 导致应用无法使用
108
- */ ErrorSeverity["CRITICAL"] = "CRITICAL";
109
- return ErrorSeverity;
110
- }({});
111
- let FrameworkError = class FrameworkError extends Error {
112
- /**
113
- * 转换为 JSON
114
- */ toJSON() {
115
- return {
116
- name: this.name,
117
- message: this.message,
118
- type: this.type,
119
- severity: this.severity,
120
- code: this.code,
121
- recoverable: this.recoverable,
122
- context: this.context,
123
- stack: this.stack,
124
- originalError: this.originalError ? {
125
- name: this.originalError.name,
126
- message: this.originalError.message,
127
- stack: this.originalError.stack
128
- } : undefined
129
- };
130
- }
131
- constructor(message, type = "UNKNOWN", severity = "MEDIUM", options){
132
- super(message), /**
133
- * 错误类型
134
- */ _define_property(this, "type", void 0), /**
135
- * 错误严重程度
136
- */ _define_property(this, "severity", void 0), /**
137
- * 错误代码
138
- */ _define_property(this, "code", void 0), /**
139
- * 原始错误
140
- */ _define_property(this, "originalError", void 0), /**
141
- * 错误上下文
142
- */ _define_property(this, "context", void 0), /**
143
- * 是否可恢复
144
- */ _define_property(this, "recoverable", void 0);
145
- this.name = 'FrameworkError';
146
- this.type = type;
147
- this.severity = severity;
148
- this.code = options?.code || `${type}_ERROR`;
149
- this.originalError = options?.originalError;
150
- this.context = options?.context;
151
- this.recoverable = options?.recoverable ?? false;
152
- // 保持正确的堆栈跟踪
153
- if (Error.captureStackTrace) {
154
- Error.captureStackTrace(this, FrameworkError);
155
- }
156
- }
157
- };
158
- let InitializationError = class InitializationError extends FrameworkError {
159
- constructor(message, originalError, context, errorCode){
160
- const code = errorCode || _ErrorCodes.ErrorCode.INITIALIZATION_FAILED;
161
- super((0, _ErrorCodes.getUserFriendlyMessage)(code, message), "INITIALIZATION", "CRITICAL", {
162
- code: _ErrorCodes.ErrorCode[code],
163
- originalError,
164
- context,
165
- recoverable: false
166
- });
167
- this.name = 'InitializationError';
168
- }
169
- };
170
- let ConfigError = class ConfigError extends FrameworkError {
171
- constructor(message, originalError, context, errorCode){
172
- const code = errorCode || _ErrorCodes.ErrorCode.CONFIG_LOAD_FAILED;
173
- super((0, _ErrorCodes.getUserFriendlyMessage)(code, message), "CONFIG", "HIGH", {
174
- code: _ErrorCodes.ErrorCode[code],
175
- originalError,
176
- context,
177
- recoverable: true
178
- });
179
- this.name = 'ConfigError';
180
- }
181
- };
182
- let StorageError = class StorageError extends FrameworkError {
183
- constructor(message, originalError, context){
184
- super(message, "STORAGE", "MEDIUM", {
185
- code: 'STORAGE_ERROR',
186
- originalError,
187
- context,
188
- recoverable: true
189
- });
190
- this.name = 'StorageError';
191
- }
192
- };
193
- let NetworkError = class NetworkError extends FrameworkError {
194
- constructor(message, originalError, context, errorCode){
195
- const code = errorCode || _ErrorCodes.ErrorCode.NETWORK_ERROR;
196
- super((0, _ErrorCodes.getUserFriendlyMessage)(code, message), "NETWORK", "MEDIUM", {
197
- code: _ErrorCodes.ErrorCode[code],
198
- originalError,
199
- context,
200
- recoverable: true
201
- });
202
- this.name = 'NetworkError';
203
- }
204
- };
205
- let ValidationError = class ValidationError extends FrameworkError {
206
- constructor(message, context){
207
- super(message, "VALIDATION", "LOW", {
208
- code: 'VALIDATION_ERROR',
209
- context,
210
- recoverable: true
211
- });
212
- this.name = 'ValidationError';
213
- }
214
- };
215
- let SecurityError = class SecurityError extends FrameworkError {
216
- constructor(message, originalError, context){
217
- super(message, "SECURITY", "HIGH", {
218
- code: 'SECURITY_ERROR',
219
- originalError,
220
- context,
221
- recoverable: false
222
- });
223
- this.name = 'SecurityError';
224
- }
225
- };
226
- const errorUtils = {
227
- /**
228
- * 安全地将未知错误转换为可展示的消息
229
- * 避免 String(error) 对 null-prototype 对象再次抛错
230
- */ getSafeErrorMessage (error) {
231
- if (typeof error === 'string') {
232
- return error;
233
- }
234
- if (typeof error === 'number' || typeof error === 'boolean' || typeof error === 'bigint' || typeof error === 'symbol' || error === null || error === undefined) {
235
- try {
236
- return String(error);
237
- } catch {
238
- return 'Unknown error';
239
- }
240
- }
241
- if (typeof error === 'object') {
242
- try {
243
- const maybeMessage = error.message;
244
- if (typeof maybeMessage === 'string' && maybeMessage.trim()) {
245
- return maybeMessage;
246
- }
247
- } catch {
248
- // ignore
249
- }
250
- try {
251
- const json = JSON.stringify(error);
252
- if (json) {
253
- return json;
254
- }
255
- } catch {
256
- // ignore
257
- }
258
- try {
259
- return `Non-Error throwable: ${Object.prototype.toString.call(error)}`;
260
- } catch {
261
- return 'Non-Error throwable';
262
- }
263
- }
264
- try {
265
- return String(error);
266
- } catch {
267
- return 'Unknown error';
268
- }
269
- },
270
- /**
271
- * 判断错误是否可恢复
272
- */ isRecoverable (error) {
273
- if (error instanceof FrameworkError) {
274
- return error.recoverable;
275
- }
276
- return false;
277
- },
278
- /**
279
- * 获取错误类型
280
- */ getErrorType (error) {
281
- if (error instanceof FrameworkError) {
282
- return error.type;
283
- }
284
- return "UNKNOWN";
285
- },
286
- /**
287
- * 获取错误严重程度
288
- */ getErrorSeverity (error) {
289
- if (error instanceof FrameworkError) {
290
- return error.severity;
291
- }
292
- return "MEDIUM";
293
- },
294
- /**
295
- * 标准化错误对象
296
- */ normalizeError (error) {
297
- if (error instanceof FrameworkError) {
298
- return error;
299
- }
300
- if (error instanceof Error) {
301
- return new FrameworkError(error.message, "UNKNOWN", "MEDIUM", {
302
- originalError: error
303
- });
304
- }
305
- return new FrameworkError(errorUtils.getSafeErrorMessage(error), "UNKNOWN", "MEDIUM");
306
- },
307
- /**
308
- * 提取错误信息
309
- */ extractErrorInfo (error) {
310
- const normalized = errorUtils.normalizeError(error);
311
- return {
312
- message: normalized.message,
313
- type: normalized.type,
314
- severity: normalized.severity,
315
- code: normalized.code,
316
- stack: normalized.stack
317
- };
318
- },
319
- /**
320
- * 获取错误修复建议
321
- *
322
- * 优化:根据错误类型和代码提供修复建议
323
- */ getErrorSuggestions (error) {
324
- const normalized = errorUtils.normalizeError(error);
325
- const suggestions = [];
326
- // 根据错误代码提供建议
327
- switch(normalized.code){
328
- case 'CONTAINER_NOT_FOUND':
329
- suggestions.push('请确保页面中存在 id="root" 的元素,或通过 container 选项指定挂载容器');
330
- suggestions.push('检查 DOM 是否已加载完成,确保在 DOMContentLoaded 事件后调用 start()');
331
- break;
332
- case 'NETWORK_ERROR':
333
- suggestions.push('检查网络连接是否正常');
334
- suggestions.push('检查服务器是否正常运行');
335
- suggestions.push('检查 CORS 配置是否正确');
336
- break;
337
- case 'TIMEOUT_ERROR':
338
- suggestions.push('增加超时时间配置');
339
- suggestions.push('检查网络连接是否稳定');
340
- suggestions.push('检查服务器响应速度');
341
- break;
342
- case 'VALIDATION_ERROR':
343
- suggestions.push('检查配置项是否符合要求');
344
- suggestions.push('查看配置验证错误详情');
345
- suggestions.push('参考配置文档确认配置格式');
346
- break;
347
- case 'INITIALIZATION_ERROR':
348
- suggestions.push('检查初始化配置是否正确');
349
- suggestions.push('查看初始化日志了解详细错误');
350
- suggestions.push('尝试简化配置,逐步排查问题');
351
- break;
352
- default:
353
- if (normalized.type === "SECURITY") {
354
- suggestions.push('检查输入内容是否包含不安全字符');
355
- suggestions.push('确保配置项来源可信');
356
- suggestions.push('查看安全配置文档');
357
- }
358
- }
359
- // 如果是可恢复的错误,提供恢复建议
360
- if (normalized.recoverable) {
361
- suggestions.push('此错误可以自动恢复,请稍后重试');
362
- }
363
- return suggestions;
364
- },
365
- /**
366
- * 格式化错误信息(用于开发环境)
367
- *
368
- * 优化:提供更详细的错误信息,包括修复建议
369
- */ formatErrorForDev (error) {
370
- const normalized = errorUtils.normalizeError(error);
371
- const suggestions = errorUtils.getErrorSuggestions(error);
372
- let message = `[${normalized.code}] ${normalized.message}`;
373
- if (normalized.stack) {
374
- message += `\n\n堆栈信息:\n${normalized.stack}`;
375
- }
376
- if (suggestions.length > 0) {
377
- message += `\n\n修复建议:\n${suggestions.map((s, i)=>`${i + 1}. ${s}`).join('\n')}`;
378
- }
379
- if (normalized.context) {
380
- message += `\n\n上下文信息:\n${JSON.stringify(normalized.context, null, 2)}`;
381
- }
382
- return message;
383
- }
384
- };
55
+ const _utils = require("@vlian/utils");
385
56
 
386
57
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/errors.ts"],"sourcesContent":["import { ErrorCode, getUserFriendlyMessage } from './errors/ErrorCodes';\n\n// 导出错误码相关类型和函数\nexport { ErrorCode, ErrorMessages, getErrorMessage, getUserFriendlyMessage } from './errors/ErrorCodes';\n\n/**\n * 错误类型枚举\n */\nexport enum ErrorType {\n /**\n * 初始化错误\n */\n INITIALIZATION = 'INITIALIZATION',\n /**\n * 配置错误\n */\n CONFIG = 'CONFIG',\n /**\n * 存储错误\n */\n STORAGE = 'STORAGE',\n /**\n * 网络错误\n */\n NETWORK = 'NETWORK',\n /**\n * 验证错误\n */\n VALIDATION = 'VALIDATION',\n /**\n * 安全错误\n */\n SECURITY = 'SECURITY',\n /**\n * 运行时错误\n */\n RUNTIME = 'RUNTIME',\n /**\n * 未知错误\n */\n UNKNOWN = 'UNKNOWN',\n}\n\n/**\n * 错误严重程度\n */\nexport enum ErrorSeverity {\n /**\n * 低 - 不影响核心功能\n */\n LOW = 'LOW',\n /**\n * 中 - 影响部分功能\n */\n MEDIUM = 'MEDIUM',\n /**\n * 高 - 影响核心功能\n */\n HIGH = 'HIGH',\n /**\n * 严重 - 导致应用无法使用\n */\n CRITICAL = 'CRITICAL',\n}\n\n/**\n * 框架错误基类\n */\nexport class FrameworkError extends Error {\n /**\n * 错误类型\n */\n public readonly type: ErrorType;\n\n /**\n * 错误严重程度\n */\n public readonly severity: ErrorSeverity;\n\n /**\n * 错误代码\n */\n public readonly code: string;\n\n /**\n * 原始错误\n */\n public readonly originalError?: Error;\n\n /**\n * 错误上下文\n */\n public readonly context?: Record<string, unknown>;\n\n /**\n * 是否可恢复\n */\n public readonly recoverable: boolean;\n\n constructor(\n message: string,\n type: ErrorType = ErrorType.UNKNOWN,\n severity: ErrorSeverity = ErrorSeverity.MEDIUM,\n options?: {\n code?: string;\n originalError?: Error;\n context?: Record<string, unknown>;\n recoverable?: boolean;\n }\n ) {\n super(message);\n this.name = 'FrameworkError';\n this.type = type;\n this.severity = severity;\n this.code = options?.code || `${type}_ERROR`;\n this.originalError = options?.originalError;\n this.context = options?.context;\n this.recoverable = options?.recoverable ?? false;\n\n // 保持正确的堆栈跟踪\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, FrameworkError);\n }\n }\n\n /**\n * 转换为 JSON\n */\n toJSON(): Record<string, unknown> {\n return {\n name: this.name,\n message: this.message,\n type: this.type,\n severity: this.severity,\n code: this.code,\n recoverable: this.recoverable,\n context: this.context,\n stack: this.stack,\n originalError: this.originalError\n ? {\n name: this.originalError.name,\n message: this.originalError.message,\n stack: this.originalError.stack,\n }\n : undefined,\n };\n }\n}\n\n/**\n * 初始化错误\n */\nexport class InitializationError extends FrameworkError {\n constructor(\n message: string,\n originalError?: Error,\n context?: Record<string, unknown>,\n errorCode?: ErrorCode\n ) {\n const code = errorCode || ErrorCode.INITIALIZATION_FAILED;\n super(getUserFriendlyMessage(code, message), ErrorType.INITIALIZATION, ErrorSeverity.CRITICAL, {\n code: ErrorCode[code],\n originalError,\n context,\n recoverable: false,\n });\n this.name = 'InitializationError';\n }\n}\n\n/**\n * 配置错误\n */\nexport class ConfigError extends FrameworkError {\n constructor(\n message: string,\n originalError?: Error,\n context?: Record<string, unknown>,\n errorCode?: ErrorCode\n ) {\n const code = errorCode || ErrorCode.CONFIG_LOAD_FAILED;\n super(getUserFriendlyMessage(code, message), ErrorType.CONFIG, ErrorSeverity.HIGH, {\n code: ErrorCode[code],\n originalError,\n context,\n recoverable: true,\n });\n this.name = 'ConfigError';\n }\n}\n\n/**\n * 存储错误\n */\nexport class StorageError extends FrameworkError {\n constructor(message: string, originalError?: Error, context?: Record<string, unknown>) {\n super(message, ErrorType.STORAGE, ErrorSeverity.MEDIUM, {\n code: 'STORAGE_ERROR',\n originalError,\n context,\n recoverable: true,\n });\n this.name = 'StorageError';\n }\n}\n\n/**\n * 网络错误\n */\nexport class NetworkError extends FrameworkError {\n constructor(\n message: string,\n originalError?: Error,\n context?: Record<string, unknown>,\n errorCode?: ErrorCode\n ) {\n const code = errorCode || ErrorCode.NETWORK_ERROR;\n super(getUserFriendlyMessage(code, message), ErrorType.NETWORK, ErrorSeverity.MEDIUM, {\n code: ErrorCode[code],\n originalError,\n context,\n recoverable: true,\n });\n this.name = 'NetworkError';\n }\n}\n\n/**\n * 验证错误\n */\nexport class ValidationError extends FrameworkError {\n constructor(message: string, context?: Record<string, unknown>) {\n super(message, ErrorType.VALIDATION, ErrorSeverity.LOW, {\n code: 'VALIDATION_ERROR',\n context,\n recoverable: true,\n });\n this.name = 'ValidationError';\n }\n}\n\n/**\n * 安全错误\n */\nexport class SecurityError extends FrameworkError {\n constructor(message: string, originalError?: Error, context?: Record<string, unknown>) {\n super(message, ErrorType.SECURITY, ErrorSeverity.HIGH, {\n code: 'SECURITY_ERROR',\n originalError,\n context,\n recoverable: false,\n });\n this.name = 'SecurityError';\n }\n}\n\n/**\n * 错误处理工具函数\n */\nexport const errorUtils = {\n /**\n * 安全地将未知错误转换为可展示的消息\n * 避免 String(error) 对 null-prototype 对象再次抛错\n */\n getSafeErrorMessage(error: unknown): string {\n if (typeof error === 'string') {\n return error;\n }\n\n if (\n typeof error === 'number' ||\n typeof error === 'boolean' ||\n typeof error === 'bigint' ||\n typeof error === 'symbol' ||\n error === null ||\n error === undefined\n ) {\n try {\n return String(error);\n } catch {\n return 'Unknown error';\n }\n }\n\n if (typeof error === 'object') {\n try {\n const maybeMessage = (error as { message?: unknown }).message;\n if (typeof maybeMessage === 'string' && maybeMessage.trim()) {\n return maybeMessage;\n }\n } catch {\n // ignore\n }\n\n try {\n const json = JSON.stringify(error);\n if (json) {\n return json;\n }\n } catch {\n // ignore\n }\n\n try {\n return `Non-Error throwable: ${Object.prototype.toString.call(error)}`;\n } catch {\n return 'Non-Error throwable';\n }\n }\n\n try {\n return String(error);\n } catch {\n return 'Unknown error';\n }\n },\n\n /**\n * 判断错误是否可恢复\n */\n isRecoverable(error: unknown): boolean {\n if (error instanceof FrameworkError) {\n return error.recoverable;\n }\n return false;\n },\n\n /**\n * 获取错误类型\n */\n getErrorType(error: unknown): ErrorType {\n if (error instanceof FrameworkError) {\n return error.type;\n }\n return ErrorType.UNKNOWN;\n },\n\n /**\n * 获取错误严重程度\n */\n getErrorSeverity(error: unknown): ErrorSeverity {\n if (error instanceof FrameworkError) {\n return error.severity;\n }\n return ErrorSeverity.MEDIUM;\n },\n\n /**\n * 标准化错误对象\n */\n normalizeError(error: unknown): FrameworkError {\n if (error instanceof FrameworkError) {\n return error;\n }\n\n if (error instanceof Error) {\n return new FrameworkError(error.message, ErrorType.UNKNOWN, ErrorSeverity.MEDIUM, {\n originalError: error,\n });\n }\n\n return new FrameworkError(errorUtils.getSafeErrorMessage(error), ErrorType.UNKNOWN, ErrorSeverity.MEDIUM);\n },\n\n /**\n * 提取错误信息\n */\n extractErrorInfo(error: unknown): {\n message: string;\n type: ErrorType;\n severity: ErrorSeverity;\n code: string;\n stack?: string;\n } {\n const normalized = errorUtils.normalizeError(error);\n return {\n message: normalized.message,\n type: normalized.type,\n severity: normalized.severity,\n code: normalized.code,\n stack: normalized.stack,\n };\n },\n\n /**\n * 获取错误修复建议\n * \n * 优化:根据错误类型和代码提供修复建议\n */\n getErrorSuggestions(error: unknown): string[] {\n const normalized = errorUtils.normalizeError(error);\n const suggestions: string[] = [];\n\n // 根据错误代码提供建议\n switch (normalized.code) {\n case 'CONTAINER_NOT_FOUND':\n suggestions.push('请确保页面中存在 id=\"root\" 的元素,或通过 container 选项指定挂载容器');\n suggestions.push('检查 DOM 是否已加载完成,确保在 DOMContentLoaded 事件后调用 start()');\n break;\n case 'NETWORK_ERROR':\n suggestions.push('检查网络连接是否正常');\n suggestions.push('检查服务器是否正常运行');\n suggestions.push('检查 CORS 配置是否正确');\n break;\n case 'TIMEOUT_ERROR':\n suggestions.push('增加超时时间配置');\n suggestions.push('检查网络连接是否稳定');\n suggestions.push('检查服务器响应速度');\n break;\n case 'VALIDATION_ERROR':\n suggestions.push('检查配置项是否符合要求');\n suggestions.push('查看配置验证错误详情');\n suggestions.push('参考配置文档确认配置格式');\n break;\n case 'INITIALIZATION_ERROR':\n suggestions.push('检查初始化配置是否正确');\n suggestions.push('查看初始化日志了解详细错误');\n suggestions.push('尝试简化配置,逐步排查问题');\n break;\n default:\n if (normalized.type === ErrorType.SECURITY) {\n suggestions.push('检查输入内容是否包含不安全字符');\n suggestions.push('确保配置项来源可信');\n suggestions.push('查看安全配置文档');\n }\n }\n\n // 如果是可恢复的错误,提供恢复建议\n if (normalized.recoverable) {\n suggestions.push('此错误可以自动恢复,请稍后重试');\n }\n\n return suggestions;\n },\n\n /**\n * 格式化错误信息(用于开发环境)\n * \n * 优化:提供更详细的错误信息,包括修复建议\n */\n formatErrorForDev(error: unknown): string {\n const normalized = errorUtils.normalizeError(error);\n const suggestions = errorUtils.getErrorSuggestions(error);\n \n let message = `[${normalized.code}] ${normalized.message}`;\n \n if (normalized.stack) {\n message += `\\n\\n堆栈信息:\\n${normalized.stack}`;\n }\n \n if (suggestions.length > 0) {\n message += `\\n\\n修复建议:\\n${suggestions.map((s, i) => `${i + 1}. ${s}`).join('\\n')}`;\n }\n \n if (normalized.context) {\n message += `\\n\\n上下文信息:\\n${JSON.stringify(normalized.context, null, 2)}`;\n }\n \n return message;\n },\n};\n"],"names":["ConfigError","ErrorCode","ErrorMessages","ErrorSeverity","ErrorType","FrameworkError","InitializationError","NetworkError","SecurityError","StorageError","ValidationError","errorUtils","getErrorMessage","getUserFriendlyMessage","Error","toJSON","name","message","type","severity","code","recoverable","context","stack","originalError","undefined","options","captureStackTrace","errorCode","INITIALIZATION_FAILED","CONFIG_LOAD_FAILED","NETWORK_ERROR","getSafeErrorMessage","error","String","maybeMessage","trim","json","JSON","stringify","Object","prototype","toString","call","isRecoverable","getErrorType","getErrorSeverity","normalizeError","extractErrorInfo","normalized","getErrorSuggestions","suggestions","push","formatErrorForDev","length","map","s","i","join"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/utils/errors.ts"],"sourcesContent":["export {\n ErrorCode,\n ErrorMessages,\n getErrorMessage,\n getUserFriendlyMessage,\n ErrorType,\n ErrorSeverity,\n FrameworkError,\n InitializationError,\n ConfigError,\n StorageError,\n NetworkError,\n ValidationError,\n SecurityError,\n errorUtils,\n} from '@vlian/utils';\n"],"names":["ConfigError","ErrorCode","ErrorMessages","ErrorSeverity","ErrorType","FrameworkError","InitializationError","NetworkError","SecurityError","StorageError","ValidationError","errorUtils","getErrorMessage","getUserFriendlyMessage"],"mappings":";;;;;;;;;;;QASEA;eAAAA,kBAAW;;QARXC;eAAAA,gBAAS;;QACTC;eAAAA,oBAAa;;QAIbC;eAAAA,oBAAa;;QADbC;eAAAA,gBAAS;;QAETC;eAAAA,qBAAc;;QACdC;eAAAA,0BAAmB;;QAGnBC;eAAAA,mBAAY;;QAEZC;eAAAA,oBAAa;;QAHbC;eAAAA,mBAAY;;QAEZC;eAAAA,sBAAe;;QAEfC;eAAAA,iBAAU;;QAXVC;eAAAA,sBAAe;;QACfC;eAAAA,6BAAsB;;;uBAWjB"}