@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 +1 @@
1
- {"version":3,"sources":["../../../src/core/error/ErrorHandler.ts"],"sourcesContent":["/**\n * 统一错误处理器\n * \n * 优化:\n * 1. 统一错误处理策略:记录、上报、恢复、降级\n * 2. 错误分类:致命、可恢复、警告\n * 3. 错误恢复机制:自动重试、降级方案\n */\n\nimport { logger } from '../../utils';\nimport { errorUtils, ErrorSeverity, ErrorType, FrameworkError } from '../../utils/errors';\nimport type { MonitoringService } from '../../utils/monitoring';\n\n/**\n * 错误处理策略\n */\nexport enum ErrorHandlingStrategy {\n /**\n * 记录错误(日志)\n */\n LOG = 'LOG',\n /**\n * 上报错误(监控服务)\n */\n REPORT = 'REPORT',\n /**\n * 尝试恢复错误\n */\n RECOVER = 'RECOVER',\n /**\n * 降级处理\n */\n FALLBACK = 'FALLBACK',\n /**\n * 忽略错误\n */\n IGNORE = 'IGNORE',\n}\n\n/**\n * 错误恢复选项\n */\nexport interface ErrorRecoveryOptions {\n /**\n * 最大重试次数\n * @default 3\n */\n maxRetries?: number;\n /**\n * 重试延迟(毫秒)\n * @default 1000\n */\n retryDelay?: number;\n /**\n * 是否启用指数退避\n * @default true\n */\n exponentialBackoff?: boolean;\n /**\n * 重试条件函数\n */\n shouldRetry?: (error: unknown, attempt: number) => boolean;\n /**\n * 降级方案函数\n */\n fallback?: () => Promise<unknown> | unknown;\n}\n\n/**\n * 错误处理配置\n */\nexport interface ErrorHandlerConfig {\n /**\n * 监控服务实例(可选)\n */\n monitoring?: MonitoringService;\n /**\n * 默认错误处理策略\n * @default [ErrorHandlingStrategy.LOG, ErrorHandlingStrategy.REPORT]\n */\n defaultStrategies?: ErrorHandlingStrategy[];\n /**\n * 错误严重程度对应的处理策略\n */\n severityStrategies?: Partial<Record<ErrorSeverity, ErrorHandlingStrategy[]>>;\n /**\n * 错误类型对应的处理策略\n */\n typeStrategies?: Partial<Record<ErrorType, ErrorHandlingStrategy[]>>;\n /**\n * 错误恢复选项\n */\n recoveryOptions?: ErrorRecoveryOptions;\n /**\n * 是否在开发环境显示详细错误信息\n * @default true\n */\n showDetailedErrorsInDev?: boolean;\n}\n\n/**\n * 错误处理结果\n */\nexport interface ErrorHandleResult {\n /**\n * 是否已处理\n */\n handled: boolean;\n /**\n * 是否可恢复\n */\n recoverable: boolean;\n /**\n * 恢复后的结果(如果已恢复)\n */\n recoveredValue?: unknown;\n /**\n * 使用的处理策略\n */\n strategies: ErrorHandlingStrategy[];\n /**\n * 错误信息\n */\n error: FrameworkError;\n}\n\n/**\n * 统一错误处理器\n */\nexport class ErrorHandler {\n private config: Omit<Required<ErrorHandlerConfig>, 'monitoring'>;\n private monitoring?: MonitoringService;\n\n constructor(config: ErrorHandlerConfig = {}) {\n this.monitoring = config.monitoring;\n this.config = {\n defaultStrategies: config.defaultStrategies ?? [\n ErrorHandlingStrategy.LOG,\n ErrorHandlingStrategy.REPORT,\n ],\n severityStrategies: config.severityStrategies ?? {},\n typeStrategies: config.typeStrategies ?? {},\n recoveryOptions: config.recoveryOptions ?? {},\n showDetailedErrorsInDev: config.showDetailedErrorsInDev ?? true,\n };\n }\n\n /**\n * 设置监控服务\n */\n setMonitoring(monitoring: MonitoringService): void {\n this.monitoring = monitoring;\n }\n\n /**\n * 处理错误\n * \n * @param error - 错误对象\n * @param context - 错误上下文\n * @returns 错误处理结果\n */\n async handleError(\n error: unknown,\n context?: Record<string, unknown>\n ): Promise<ErrorHandleResult> {\n // 标准化错误对象\n const normalizedError = errorUtils.normalizeError(error);\n \n // 创建包含上下文信息的错误对象(由于 context 是只读的,需要创建新对象)\n const errorWithContext: FrameworkError = context\n ? new FrameworkError(\n normalizedError.message,\n normalizedError.type,\n normalizedError.severity,\n {\n code: normalizedError.code,\n originalError: normalizedError.originalError,\n context: {\n ...normalizedError.context,\n ...context,\n },\n recoverable: normalizedError.recoverable,\n }\n )\n : normalizedError;\n\n // 确定处理策略\n const strategies = this.determineStrategies(errorWithContext);\n \n // 执行处理策略\n const handled = await this.executeStrategies(errorWithContext, strategies);\n\n // 尝试恢复错误\n let recoveredValue: unknown | undefined;\n let recoverable = false;\n if (handled && errorWithContext.recoverable && this.config.recoveryOptions) {\n const recoveryResult = await this.attemptRecovery(errorWithContext);\n recoverable = recoveryResult.recoverable;\n recoveredValue = recoveryResult.value;\n }\n\n return {\n handled,\n recoverable,\n recoveredValue,\n strategies,\n error: errorWithContext,\n };\n }\n\n /**\n * 确定错误处理策略\n */\n private determineStrategies(error: FrameworkError): ErrorHandlingStrategy[] {\n // 1. 检查错误类型对应的策略\n if (this.config.typeStrategies[error.type]) {\n return this.config.typeStrategies[error.type]!;\n }\n\n // 2. 检查错误严重程度对应的策略\n if (this.config.severityStrategies[error.severity]) {\n return this.config.severityStrategies[error.severity]!;\n }\n\n // 3. 使用默认策略\n return this.config.defaultStrategies;\n }\n\n /**\n * 执行处理策略\n */\n private async executeStrategies(\n error: FrameworkError,\n strategies: ErrorHandlingStrategy[]\n ): Promise<boolean> {\n let handled = false;\n\n for (const strategy of strategies) {\n try {\n switch (strategy) {\n case ErrorHandlingStrategy.LOG:\n this.logError(error);\n handled = true;\n break;\n\n case ErrorHandlingStrategy.REPORT:\n await this.reportError(error);\n handled = true;\n break;\n\n case ErrorHandlingStrategy.RECOVER:\n // 恢复策略在 handleError 中统一处理\n handled = true;\n break;\n\n case ErrorHandlingStrategy.FALLBACK:\n // 降级策略在 attemptRecovery 中处理\n handled = true;\n break;\n\n case ErrorHandlingStrategy.IGNORE:\n // 忽略错误,不做任何处理\n handled = true;\n break;\n }\n } catch (strategyError) {\n logger.warn(`错误处理策略 ${strategy} 执行失败:`, strategyError);\n }\n }\n\n return handled;\n }\n\n /**\n * 记录错误\n */\n private logError(error: FrameworkError): void {\n const errorInfo = errorUtils.extractErrorInfo(error);\n \n // 根据错误严重程度选择日志级别\n switch (error.severity) {\n case ErrorSeverity.CRITICAL:\n case ErrorSeverity.HIGH:\n logger.error('错误:', errorInfo);\n break;\n case ErrorSeverity.MEDIUM:\n logger.warn('警告:', errorInfo);\n break;\n case ErrorSeverity.LOW:\n logger.info('信息:', errorInfo);\n break;\n }\n\n // 开发环境显示详细错误信息\n if (this.config.showDetailedErrorsInDev && process.env.NODE_ENV === 'development') {\n const detailedError = errorUtils.formatErrorForDev(error);\n console.error(detailedError);\n }\n }\n\n /**\n * 上报错误\n */\n private async reportError(error: FrameworkError): Promise<void> {\n if (!this.monitoring) {\n logger.debug('监控服务未配置,跳过错误上报');\n return;\n }\n\n try {\n this.monitoring.captureError(error, {\n severity: error.severity,\n type: error.type,\n code: error.code,\n context: error.context,\n });\n } catch (reportError) {\n logger.warn('错误上报失败:', reportError);\n }\n }\n\n /**\n * 尝试恢复错误\n */\n private async attemptRecovery(\n error: FrameworkError\n ): Promise<{ recoverable: boolean; value?: unknown }> {\n const options = this.config.recoveryOptions;\n if (!options) {\n return { recoverable: false };\n }\n\n const maxRetries = options.maxRetries ?? 3;\n const retryDelay = options.retryDelay ?? 1000;\n const exponentialBackoff = options.exponentialBackoff ?? true;\n const shouldRetry = options.shouldRetry ?? (() => true);\n\n // 如果有降级方案,先尝试降级\n if (options.fallback) {\n try {\n const fallbackValue = await Promise.resolve(options.fallback());\n logger.info('错误已通过降级方案恢复');\n return { recoverable: true, value: fallbackValue };\n } catch (fallbackError) {\n logger.warn('降级方案执行失败:', fallbackError);\n }\n }\n\n // 尝试重试(如果错误可恢复且满足重试条件)\n if (error.recoverable && shouldRetry(error, 0)) {\n for (let attempt = 0; attempt < maxRetries; attempt++) {\n if (!shouldRetry(error, attempt)) {\n break;\n }\n\n const delay = exponentialBackoff\n ? retryDelay * Math.pow(2, attempt)\n : retryDelay;\n\n logger.debug(`错误恢复重试 ${attempt + 1}/${maxRetries},${delay}ms 后重试...`);\n\n await new Promise(resolve => setTimeout(resolve, delay));\n\n // 这里应该调用原始操作的重试逻辑\n // 由于错误处理器不知道原始操作,这里只返回可恢复状态\n // 实际的重试应该在调用方实现\n }\n }\n\n return { recoverable: error.recoverable };\n }\n\n /**\n * 创建错误处理器的便捷方法\n */\n static create(config?: ErrorHandlerConfig): ErrorHandler {\n return new ErrorHandler(config);\n }\n}\n\n/**\n * 默认错误处理器实例(单例)\n */\nlet defaultErrorHandler: ErrorHandler | null = null;\n\n/**\n * 获取默认错误处理器\n */\nexport function getDefaultErrorHandler(): ErrorHandler {\n if (!defaultErrorHandler) {\n defaultErrorHandler = new ErrorHandler();\n }\n return defaultErrorHandler;\n}\n\n/**\n * 设置默认错误处理器\n */\nexport function setDefaultErrorHandler(handler: ErrorHandler): void {\n defaultErrorHandler = handler;\n}\n"],"names":["logger","errorUtils","ErrorSeverity","FrameworkError","ErrorHandlingStrategy","ErrorHandler","setMonitoring","monitoring","handleError","error","context","normalizedError","normalizeError","errorWithContext","message","type","severity","code","originalError","recoverable","strategies","determineStrategies","handled","executeStrategies","recoveredValue","config","recoveryOptions","recoveryResult","attemptRecovery","value","typeStrategies","severityStrategies","defaultStrategies","strategy","logError","reportError","strategyError","warn","errorInfo","extractErrorInfo","CRITICAL","HIGH","MEDIUM","LOW","info","showDetailedErrorsInDev","process","env","NODE_ENV","detailedError","formatErrorForDev","console","debug","captureError","options","maxRetries","retryDelay","exponentialBackoff","shouldRetry","fallback","fallbackValue","Promise","resolve","fallbackError","attempt","delay","Math","pow","setTimeout","create","defaultErrorHandler","getDefaultErrorHandler","setDefaultErrorHandler","handler"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/core/error/ErrorHandler.ts"],"sourcesContent":["/**\n * 统一错误处理器\n * \n * 优化:\n * 1. 统一错误处理策略:记录、上报、恢复、降级\n * 2. 错误分类:致命、可恢复、警告\n * 3. 错误恢复机制:自动重试、降级方案\n */\n\nimport { logger } from '../../utils';\nimport { errorUtils, ErrorSeverity, ErrorType, FrameworkError } from '../../utils/errors';\nimport type { MonitoringService } from '@vlian/monitoring';\n\n/**\n * 错误处理策略\n */\nexport enum ErrorHandlingStrategy {\n /**\n * 记录错误(日志)\n */\n LOG = 'LOG',\n /**\n * 上报错误(监控服务)\n */\n REPORT = 'REPORT',\n /**\n * 尝试恢复错误\n */\n RECOVER = 'RECOVER',\n /**\n * 降级处理\n */\n FALLBACK = 'FALLBACK',\n /**\n * 忽略错误\n */\n IGNORE = 'IGNORE',\n}\n\n/**\n * 错误恢复选项\n */\nexport interface ErrorRecoveryOptions {\n /**\n * 最大重试次数\n * @default 3\n */\n maxRetries?: number;\n /**\n * 重试延迟(毫秒)\n * @default 1000\n */\n retryDelay?: number;\n /**\n * 是否启用指数退避\n * @default true\n */\n exponentialBackoff?: boolean;\n /**\n * 重试条件函数\n */\n shouldRetry?: (error: unknown, attempt: number) => boolean;\n /**\n * 降级方案函数\n */\n fallback?: () => Promise<unknown> | unknown;\n}\n\n/**\n * 错误处理配置\n */\nexport interface ErrorHandlerConfig {\n /**\n * 监控服务实例(可选)\n */\n monitoring?: MonitoringService;\n /**\n * 默认错误处理策略\n * @default [ErrorHandlingStrategy.LOG, ErrorHandlingStrategy.REPORT]\n */\n defaultStrategies?: ErrorHandlingStrategy[];\n /**\n * 错误严重程度对应的处理策略\n */\n severityStrategies?: Partial<Record<ErrorSeverity, ErrorHandlingStrategy[]>>;\n /**\n * 错误类型对应的处理策略\n */\n typeStrategies?: Partial<Record<ErrorType, ErrorHandlingStrategy[]>>;\n /**\n * 错误恢复选项\n */\n recoveryOptions?: ErrorRecoveryOptions;\n /**\n * 是否在开发环境显示详细错误信息\n * @default true\n */\n showDetailedErrorsInDev?: boolean;\n}\n\n/**\n * 错误处理结果\n */\nexport interface ErrorHandleResult {\n /**\n * 是否已处理\n */\n handled: boolean;\n /**\n * 是否可恢复\n */\n recoverable: boolean;\n /**\n * 恢复后的结果(如果已恢复)\n */\n recoveredValue?: unknown;\n /**\n * 使用的处理策略\n */\n strategies: ErrorHandlingStrategy[];\n /**\n * 错误信息\n */\n error: FrameworkError;\n}\n\n/**\n * 统一错误处理器\n */\nexport class ErrorHandler {\n private config: Omit<Required<ErrorHandlerConfig>, 'monitoring'>;\n private monitoring?: MonitoringService;\n\n constructor(config: ErrorHandlerConfig = {}) {\n this.monitoring = config.monitoring;\n this.config = {\n defaultStrategies: config.defaultStrategies ?? [\n ErrorHandlingStrategy.LOG,\n ErrorHandlingStrategy.REPORT,\n ],\n severityStrategies: config.severityStrategies ?? {},\n typeStrategies: config.typeStrategies ?? {},\n recoveryOptions: config.recoveryOptions ?? {},\n showDetailedErrorsInDev: config.showDetailedErrorsInDev ?? true,\n };\n }\n\n /**\n * 设置监控服务\n */\n setMonitoring(monitoring: MonitoringService): void {\n this.monitoring = monitoring;\n }\n\n /**\n * 处理错误\n * \n * @param error - 错误对象\n * @param context - 错误上下文\n * @returns 错误处理结果\n */\n async handleError(\n error: unknown,\n context?: Record<string, unknown>\n ): Promise<ErrorHandleResult> {\n // 标准化错误对象\n const normalizedError = errorUtils.normalizeError(error);\n \n // 创建包含上下文信息的错误对象(由于 context 是只读的,需要创建新对象)\n const errorWithContext: FrameworkError = context\n ? new FrameworkError(\n normalizedError.message,\n normalizedError.type,\n normalizedError.severity,\n {\n code: normalizedError.code,\n originalError: normalizedError.originalError,\n context: {\n ...normalizedError.context,\n ...context,\n },\n recoverable: normalizedError.recoverable,\n }\n )\n : normalizedError;\n\n // 确定处理策略\n const strategies = this.determineStrategies(errorWithContext);\n \n // 执行处理策略\n const handled = await this.executeStrategies(errorWithContext, strategies);\n\n // 尝试恢复错误\n let recoveredValue: unknown | undefined;\n let recoverable = false;\n if (handled && errorWithContext.recoverable && this.config.recoveryOptions) {\n const recoveryResult = await this.attemptRecovery(errorWithContext);\n recoverable = recoveryResult.recoverable;\n recoveredValue = recoveryResult.value;\n }\n\n return {\n handled,\n recoverable,\n recoveredValue,\n strategies,\n error: errorWithContext,\n };\n }\n\n /**\n * 确定错误处理策略\n */\n private determineStrategies(error: FrameworkError): ErrorHandlingStrategy[] {\n // 1. 检查错误类型对应的策略\n if (this.config.typeStrategies[error.type]) {\n return this.config.typeStrategies[error.type]!;\n }\n\n // 2. 检查错误严重程度对应的策略\n if (this.config.severityStrategies[error.severity]) {\n return this.config.severityStrategies[error.severity]!;\n }\n\n // 3. 使用默认策略\n return this.config.defaultStrategies;\n }\n\n /**\n * 执行处理策略\n */\n private async executeStrategies(\n error: FrameworkError,\n strategies: ErrorHandlingStrategy[]\n ): Promise<boolean> {\n let handled = false;\n\n for (const strategy of strategies) {\n try {\n switch (strategy) {\n case ErrorHandlingStrategy.LOG:\n this.logError(error);\n handled = true;\n break;\n\n case ErrorHandlingStrategy.REPORT:\n await this.reportError(error);\n handled = true;\n break;\n\n case ErrorHandlingStrategy.RECOVER:\n // 恢复策略在 handleError 中统一处理\n handled = true;\n break;\n\n case ErrorHandlingStrategy.FALLBACK:\n // 降级策略在 attemptRecovery 中处理\n handled = true;\n break;\n\n case ErrorHandlingStrategy.IGNORE:\n // 忽略错误,不做任何处理\n handled = true;\n break;\n }\n } catch (strategyError) {\n logger.warn(`错误处理策略 ${strategy} 执行失败:`, strategyError);\n }\n }\n\n return handled;\n }\n\n /**\n * 记录错误\n */\n private logError(error: FrameworkError): void {\n const errorInfo = errorUtils.extractErrorInfo(error);\n \n // 根据错误严重程度选择日志级别\n switch (error.severity) {\n case ErrorSeverity.CRITICAL:\n case ErrorSeverity.HIGH:\n logger.error('错误:', errorInfo);\n break;\n case ErrorSeverity.MEDIUM:\n logger.warn('警告:', errorInfo);\n break;\n case ErrorSeverity.LOW:\n logger.info('信息:', errorInfo);\n break;\n }\n\n // 开发环境显示详细错误信息\n if (this.config.showDetailedErrorsInDev && process.env.NODE_ENV === 'development') {\n const detailedError = errorUtils.formatErrorForDev(error);\n console.error(detailedError);\n }\n }\n\n /**\n * 上报错误\n */\n private async reportError(error: FrameworkError): Promise<void> {\n if (!this.monitoring) {\n logger.debug('监控服务未配置,跳过错误上报');\n return;\n }\n\n try {\n this.monitoring.captureError(error, {\n severity: error.severity,\n type: error.type,\n code: error.code,\n context: error.context,\n });\n } catch (reportError) {\n logger.warn('错误上报失败:', reportError);\n }\n }\n\n /**\n * 尝试恢复错误\n */\n private async attemptRecovery(\n error: FrameworkError\n ): Promise<{ recoverable: boolean; value?: unknown }> {\n const options = this.config.recoveryOptions;\n if (!options) {\n return { recoverable: false };\n }\n\n const maxRetries = options.maxRetries ?? 3;\n const retryDelay = options.retryDelay ?? 1000;\n const exponentialBackoff = options.exponentialBackoff ?? true;\n const shouldRetry = options.shouldRetry ?? (() => true);\n\n // 如果有降级方案,先尝试降级\n if (options.fallback) {\n try {\n const fallbackValue = await Promise.resolve(options.fallback());\n logger.info('错误已通过降级方案恢复');\n return { recoverable: true, value: fallbackValue };\n } catch (fallbackError) {\n logger.warn('降级方案执行失败:', fallbackError);\n }\n }\n\n // 尝试重试(如果错误可恢复且满足重试条件)\n if (error.recoverable && shouldRetry(error, 0)) {\n for (let attempt = 0; attempt < maxRetries; attempt++) {\n if (!shouldRetry(error, attempt)) {\n break;\n }\n\n const delay = exponentialBackoff\n ? retryDelay * Math.pow(2, attempt)\n : retryDelay;\n\n logger.debug(`错误恢复重试 ${attempt + 1}/${maxRetries},${delay}ms 后重试...`);\n\n await new Promise(resolve => setTimeout(resolve, delay));\n\n // 这里应该调用原始操作的重试逻辑\n // 由于错误处理器不知道原始操作,这里只返回可恢复状态\n // 实际的重试应该在调用方实现\n }\n }\n\n return { recoverable: error.recoverable };\n }\n\n /**\n * 创建错误处理器的便捷方法\n */\n static create(config?: ErrorHandlerConfig): ErrorHandler {\n return new ErrorHandler(config);\n }\n}\n\n/**\n * 默认错误处理器实例(单例)\n */\nlet defaultErrorHandler: ErrorHandler | null = null;\n\n/**\n * 获取默认错误处理器\n */\nexport function getDefaultErrorHandler(): ErrorHandler {\n if (!defaultErrorHandler) {\n defaultErrorHandler = new ErrorHandler();\n }\n return defaultErrorHandler;\n}\n\n/**\n * 设置默认错误处理器\n */\nexport function setDefaultErrorHandler(handler: ErrorHandler): void {\n defaultErrorHandler = handler;\n}\n"],"names":["logger","errorUtils","ErrorSeverity","FrameworkError","ErrorHandlingStrategy","ErrorHandler","setMonitoring","monitoring","handleError","error","context","normalizedError","normalizeError","errorWithContext","message","type","severity","code","originalError","recoverable","strategies","determineStrategies","handled","executeStrategies","recoveredValue","config","recoveryOptions","recoveryResult","attemptRecovery","value","typeStrategies","severityStrategies","defaultStrategies","strategy","logError","reportError","strategyError","warn","errorInfo","extractErrorInfo","CRITICAL","HIGH","MEDIUM","LOW","info","showDetailedErrorsInDev","process","env","NODE_ENV","detailedError","formatErrorForDev","console","debug","captureError","options","maxRetries","retryDelay","exponentialBackoff","shouldRetry","fallback","fallbackValue","Promise","resolve","fallbackError","attempt","delay","Math","pow","setTimeout","create","defaultErrorHandler","getDefaultErrorHandler","setDefaultErrorHandler","handler"],"mappings":"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"}
@@ -84,7 +84,6 @@ const _plugin = require("./plugin");
84
84
  _export_star(require("./startup"), exports);
85
85
  _export_star(require("./config"), exports);
86
86
  _export_star(require("./kernel"), exports);
87
- _export_star(require("./ui-adapter"), exports);
88
87
  _export_star(require("./router"), exports);
89
88
  _export_star(require("./event"), exports);
90
89
  const _DevTools = require("./dev/DevTools");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/index.tsx"],"sourcesContent":["import type { StartOptions } from \"./types\";\nimport { storage } from '../library';\nimport { StateManager } from '../state';\nimport { startApp } from './startup/startApp';\nimport { getAppInstanceManager } from './startup/AppInstance';\n\n\n/**\n * 启动框架\n * \n * @param options - 启动配置选项\n * @returns Promise<void>\n * \n * @example\n * ```typescript\n * import { start } from '@vlian/framework';\n * \n * start({\n * loggerLevel: LogLevel.DEBUG,\n * lifecycle: {\n * beforeInitialization: async () => {\n * console.log('初始化前执行');\n * },\n * },\n * });\n * ```\n */\n/**\n * 启动框架(向后兼容的API)\n * \n * @param options - 启动配置选项\n * @returns Promise<void>\n * \n * @deprecated 建议使用 startApp 函数,支持多实例\n */\nconst start = async (options: StartOptions = {}): Promise<void> => {\n // 使用新的启动函数,保持向后兼容\n await startApp(options);\n};\n\n// 导出新的启动函数\nexport { startApp } from './startup/startApp';\nexport { getAppInstanceManager } from './startup/AppInstance';\nexport type { AppInstance } from './startup/AppInstance';\n\n// 导出向后兼容的start函数\nexport {\n start,\n storage,\n};\n\n// 导出getStateManager(向后兼容)\nexport const getStateManager = (): StateManager | null => {\n const instanceManager = getAppInstanceManager();\n const instance = instanceManager.getInstance();\n if (instance) {\n return instance.getServices().stateManager;\n }\n return null;\n};\n\n// 导出应用上下文相关功能\nexport {\n AppContextProvider,\n useAppContext,\n useTheme,\n useLocale,\n useConfig,\n useStateManager,\n} from './app';\n\n// 导出错误边界\nexport { ErrorBoundary, withErrorBoundary, useErrorHandler } from './error';\nexport type { ErrorBoundaryProps } from './error';\n\n// 导出应用配置单例\nexport { appConfig } from './config/AppConfig';\n\n// 导出初始化相关类型\nexport type {\n InitializationContext,\n ConfigStrategy,\n InitializationOptions,\n ProgressCallback,\n} from './initialization';\n\n// 导出中间件\nexport { MiddlewareManager, middlewareManager } from './middleware';\nexport type { Middleware } from './middleware';\n\n// 导出插件\nexport { PluginManager, pluginManager } from './plugin';\nexport type { Plugin } from './plugin';\n\n// 导出应用上下文相关类型\nexport type {\n AppContextValue,\n ThemeContextValue,\n LocaleContextValue,\n ConfigContextValue,\n StateManagerContextValue,\n ThemeConfig,\n AppConfig,\n AppContextProviderProps,\n} from './app';\n\n// 导出启动配置相关类型\nexport type { StartOptions, ManagerLifecycle, SplashScreenCustomProps } from './types';\n\n// 导出启动相关模块\nexport * from './startup';\nexport * from './config';\nexport * from './kernel';\nexport * from './ui-adapter';\n\n// 导出路由相关模块\nexport * from './router';\n\n// 导出事件系统\nexport * from './event';\n\n// 导出开发工具\nexport { DevTools, DevToolsTrigger } from './dev/DevTools';\n"],"names":["AppContextProvider","DevTools","DevToolsTrigger","ErrorBoundary","MiddlewareManager","PluginManager","appConfig","getAppInstanceManager","getStateManager","middlewareManager","pluginManager","start","startApp","storage","useAppContext","useConfig","useErrorHandler","useLocale","useStateManager","useTheme","withErrorBoundary","options","instanceManager","instance","getInstance","getServices","stateManager"],"mappings":";;;;;;;;;;;QA+DIA;eAAAA,uBAAkB;;QA2DbC;eAAAA,kBAAQ;;QAAEC;eAAAA,yBAAe;;QAlDzBC;eAAAA,oBAAa;;QAebC;eAAAA,6BAAiB;;QAIjBC;eAAAA,qBAAa;;QAfbC;eAAAA,oBAAS;;QAlCTC;eAAAA,kCAAqB;;QAUjBC;eAAAA;;QAmCeC;eAAAA,6BAAiB;;QAIrBC;eAAAA,qBAAa;;QA5CjCC;eAAAA;;QANKC;eAAAA,kBAAQ;;QAObC;eAAAA,gBAAO;;QAgBPC;eAAAA,kBAAa;;QAGbC;eAAAA,cAAS;;QAK8BC;eAAAA,sBAAe;;QANtDC;eAAAA,cAAS;;QAETC;eAAAA,oBAAe;;QAHfC;eAAAA,aAAQ;;QAOYC;eAAAA,wBAAiB;;;yBAvEjB;0BAEC;6BACa;qBAiE/B;uBAG2D;2BAIxC;4BAW2B;wBAIR;qBAmB/B;qBACA;qBACA;qBACA;qBAGA;qBAGA;0BAG4B;;;;;;;;;;;;;;AAnH1C;;;;;;;;;;;;;;;;;;;CAmBC,GACD;;;;;;;CAOC,GACD,MAAMT,QAAQ,OAAOU,UAAwB,CAAC,CAAC;IAC3C,kBAAkB;IAClB,MAAMT,IAAAA,kBAAQ,EAACS;AACnB;AAcO,MAAMb,kBAAkB;IAC3B,MAAMc,kBAAkBf,IAAAA,kCAAqB;IAC7C,MAAMgB,WAAWD,gBAAgBE,WAAW;IAC5C,IAAID,UAAU;QACV,OAAOA,SAASE,WAAW,GAAGC,YAAY;IAC9C;IACA,OAAO;AACX"}
1
+ {"version":3,"sources":["../../src/core/index.tsx"],"sourcesContent":["import type { StartOptions } from \"./types\";\nimport { storage } from '../library';\nimport { StateManager } from '../state';\nimport { startApp } from './startup/startApp';\nimport { getAppInstanceManager } from './startup/AppInstance';\n\n\n/**\n * 启动框架\n * \n * @param options - 启动配置选项\n * @returns Promise<void>\n * \n * @example\n * ```typescript\n * import { start } from '@vlian/framework';\n * \n * start({\n * loggerLevel: LogLevel.DEBUG,\n * lifecycle: {\n * beforeInitialization: async () => {\n * console.log('初始化前执行');\n * },\n * },\n * });\n * ```\n */\n/**\n * 启动框架(向后兼容的API)\n * \n * @param options - 启动配置选项\n * @returns Promise<void>\n * \n * @deprecated 建议使用 startApp 函数,支持多实例\n */\nconst start = async (options: StartOptions = {}): Promise<void> => {\n // 使用新的启动函数,保持向后兼容\n await startApp(options);\n};\n\n// 导出新的启动函数\nexport { startApp } from './startup/startApp';\nexport { getAppInstanceManager } from './startup/AppInstance';\nexport type { AppInstance } from './startup/AppInstance';\n\n// 导出向后兼容的start函数\nexport {\n start,\n storage,\n};\n\n// 导出getStateManager(向后兼容)\nexport const getStateManager = (): StateManager | null => {\n const instanceManager = getAppInstanceManager();\n const instance = instanceManager.getInstance();\n if (instance) {\n return instance.getServices().stateManager;\n }\n return null;\n};\n\n// 导出应用上下文相关功能\nexport {\n AppContextProvider,\n useAppContext,\n useTheme,\n useLocale,\n useConfig,\n useStateManager,\n} from './app';\n\n// 导出错误边界\nexport { ErrorBoundary, withErrorBoundary, useErrorHandler } from './error';\nexport type { ErrorBoundaryProps } from './error';\n\n// 导出应用配置单例\nexport { appConfig } from './config/AppConfig';\n\n// 导出初始化相关类型\nexport type {\n InitializationContext,\n InitializationOptions,\n ProgressCallback,\n} from './initialization';\n\n// 导出中间件\nexport { MiddlewareManager, middlewareManager } from './middleware';\nexport type { Middleware } from './middleware';\n\n// 导出插件\nexport { PluginManager, pluginManager } from './plugin';\nexport type { Plugin } from './plugin';\n\n// 导出应用上下文相关类型\nexport type {\n AppContextValue,\n ThemeContextValue,\n LocaleContextValue,\n ConfigContextValue,\n StateManagerContextValue,\n ThemeConfig,\n AppConfig,\n AppContextProviderProps,\n} from './app';\n\n// 导出启动配置相关类型\nexport type { StartOptions, ManagerLifecycle, SplashScreenCustomProps } from './types';\n\n// 导出启动相关模块\nexport * from './startup';\nexport * from './config';\nexport * from './kernel';\n\n// 导出路由相关模块\nexport * from './router';\n\n// 导出事件系统\nexport * from './event';\n\n// 导出开发工具\nexport { DevTools, DevToolsTrigger } from './dev/DevTools';\n"],"names":["AppContextProvider","DevTools","DevToolsTrigger","ErrorBoundary","MiddlewareManager","PluginManager","appConfig","getAppInstanceManager","getStateManager","middlewareManager","pluginManager","start","startApp","storage","useAppContext","useConfig","useErrorHandler","useLocale","useStateManager","useTheme","withErrorBoundary","options","instanceManager","instance","getInstance","getServices","stateManager"],"mappings":";;;;;;;;;;;QA+DIA;eAAAA,uBAAkB;;QAyDbC;eAAAA,kBAAQ;;QAAEC;eAAAA,yBAAe;;QAhDzBC;eAAAA,oBAAa;;QAcbC;eAAAA,6BAAiB;;QAIjBC;eAAAA,qBAAa;;QAdbC;eAAAA,oBAAS;;QAlCTC;eAAAA,kCAAqB;;QAUjBC;eAAAA;;QAkCeC;eAAAA,6BAAiB;;QAIrBC;eAAAA,qBAAa;;QA3CjCC;eAAAA;;QANKC;eAAAA,kBAAQ;;QAObC;eAAAA,gBAAO;;QAgBPC;eAAAA,kBAAa;;QAGbC;eAAAA,cAAS;;QAK8BC;eAAAA,sBAAe;;QANtDC;eAAAA,cAAS;;QAETC;eAAAA,oBAAe;;QAHfC;eAAAA,aAAQ;;QAOYC;eAAAA,wBAAiB;;;yBAvEjB;0BAEC;6BACa;qBAiE/B;uBAG2D;2BAIxC;4BAU2B;wBAIR;qBAmB/B;qBACA;qBACA;qBAGA;qBAGA;0BAG4B;;;;;;;;;;;;;;AAjH1C;;;;;;;;;;;;;;;;;;;CAmBC,GACD;;;;;;;CAOC,GACD,MAAMT,QAAQ,OAAOU,UAAwB,CAAC,CAAC;IAC3C,kBAAkB;IAClB,MAAMT,IAAAA,kBAAQ,EAACS;AACnB;AAcO,MAAMb,kBAAkB;IAC3B,MAAMc,kBAAkBf,IAAAA,kCAAqB;IAC7C,MAAMgB,WAAWD,gBAAgBE,WAAW;IAC5C,IAAID,UAAU;QACV,OAAOA,SAASE,WAAW,GAAGC,YAAY;IAC9C;IACA,OAAO;AACX"}
@@ -39,7 +39,7 @@ export { AppContextProvider, useAppContext, useTheme, useLocale, useConfig, useS
39
39
  export { ErrorBoundary, withErrorBoundary, useErrorHandler } from './error';
40
40
  export type { ErrorBoundaryProps } from './error';
41
41
  export { appConfig } from './config/AppConfig';
42
- export type { InitializationContext, ConfigStrategy, InitializationOptions, ProgressCallback, } from './initialization';
42
+ export type { InitializationContext, InitializationOptions, ProgressCallback, } from './initialization';
43
43
  export { MiddlewareManager, middlewareManager } from './middleware';
44
44
  export type { Middleware } from './middleware';
45
45
  export { PluginManager, pluginManager } from './plugin';
@@ -49,7 +49,6 @@ export type { StartOptions, ManagerLifecycle, SplashScreenCustomProps } from './
49
49
  export * from './startup';
50
50
  export * from './config';
51
51
  export * from './kernel';
52
- export * from './ui-adapter';
53
52
  export * from './router';
54
53
  export * from './event';
55
54
  export { DevTools, DevToolsTrigger } from './dev/DevTools';
@@ -59,7 +59,6 @@ export { PluginManager, pluginManager } from "./plugin";
59
59
  export * from "./startup";
60
60
  export * from "./config";
61
61
  export * from "./kernel";
62
- export * from "./ui-adapter";
63
62
  // 导出路由相关模块
64
63
  export * from "./router";
65
64
  // 导出事件系统
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/index.tsx"],"sourcesContent":["import type { StartOptions } from \"./types\";\nimport { storage } from '../library';\nimport { StateManager } from '../state';\nimport { startApp } from './startup/startApp';\nimport { getAppInstanceManager } from './startup/AppInstance';\n\n\n/**\n * 启动框架\n * \n * @param options - 启动配置选项\n * @returns Promise<void>\n * \n * @example\n * ```typescript\n * import { start } from '@vlian/framework';\n * \n * start({\n * loggerLevel: LogLevel.DEBUG,\n * lifecycle: {\n * beforeInitialization: async () => {\n * console.log('初始化前执行');\n * },\n * },\n * });\n * ```\n */\n/**\n * 启动框架(向后兼容的API)\n * \n * @param options - 启动配置选项\n * @returns Promise<void>\n * \n * @deprecated 建议使用 startApp 函数,支持多实例\n */\nconst start = async (options: StartOptions = {}): Promise<void> => {\n // 使用新的启动函数,保持向后兼容\n await startApp(options);\n};\n\n// 导出新的启动函数\nexport { startApp } from './startup/startApp';\nexport { getAppInstanceManager } from './startup/AppInstance';\nexport type { AppInstance } from './startup/AppInstance';\n\n// 导出向后兼容的start函数\nexport {\n start,\n storage,\n};\n\n// 导出getStateManager(向后兼容)\nexport const getStateManager = (): StateManager | null => {\n const instanceManager = getAppInstanceManager();\n const instance = instanceManager.getInstance();\n if (instance) {\n return instance.getServices().stateManager;\n }\n return null;\n};\n\n// 导出应用上下文相关功能\nexport {\n AppContextProvider,\n useAppContext,\n useTheme,\n useLocale,\n useConfig,\n useStateManager,\n} from './app';\n\n// 导出错误边界\nexport { ErrorBoundary, withErrorBoundary, useErrorHandler } from './error';\nexport type { ErrorBoundaryProps } from './error';\n\n// 导出应用配置单例\nexport { appConfig } from './config/AppConfig';\n\n// 导出初始化相关类型\nexport type {\n InitializationContext,\n ConfigStrategy,\n InitializationOptions,\n ProgressCallback,\n} from './initialization';\n\n// 导出中间件\nexport { MiddlewareManager, middlewareManager } from './middleware';\nexport type { Middleware } from './middleware';\n\n// 导出插件\nexport { PluginManager, pluginManager } from './plugin';\nexport type { Plugin } from './plugin';\n\n// 导出应用上下文相关类型\nexport type {\n AppContextValue,\n ThemeContextValue,\n LocaleContextValue,\n ConfigContextValue,\n StateManagerContextValue,\n ThemeConfig,\n AppConfig,\n AppContextProviderProps,\n} from './app';\n\n// 导出启动配置相关类型\nexport type { StartOptions, ManagerLifecycle, SplashScreenCustomProps } from './types';\n\n// 导出启动相关模块\nexport * from './startup';\nexport * from './config';\nexport * from './kernel';\nexport * from './ui-adapter';\n\n// 导出路由相关模块\nexport * from './router';\n\n// 导出事件系统\nexport * from './event';\n\n// 导出开发工具\nexport { DevTools, DevToolsTrigger } from './dev/DevTools';\n"],"names":["storage","startApp","getAppInstanceManager","start","options","getStateManager","instanceManager","instance","getInstance","getServices","stateManager","AppContextProvider","useAppContext","useTheme","useLocale","useConfig","useStateManager","ErrorBoundary","withErrorBoundary","useErrorHandler","appConfig","MiddlewareManager","middlewareManager","PluginManager","pluginManager","DevTools","DevToolsTrigger"],"mappings":"AACA,SAASA,OAAO,QAAQ,aAAa;AAErC,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,qBAAqB,QAAQ,wBAAwB;AAG9D;;;;;;;;;;;;;;;;;;;CAmBC,GACD;;;;;;;CAOC,GACD,MAAMC,QAAQ,OAAOC,UAAwB,CAAC,CAAC;IAC3C,kBAAkB;IAClB,MAAMH,SAASG;AACnB;AAEA,WAAW;AACX,SAASH,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,qBAAqB,QAAQ,wBAAwB;AAG9D,iBAAiB;AACjB,SACIC,KAAK,EACLH,OAAO,GACT;AAEF,0BAA0B;AAC1B,OAAO,MAAMK,kBAAkB;IAC3B,MAAMC,kBAAkBJ;IACxB,MAAMK,WAAWD,gBAAgBE,WAAW;IAC5C,IAAID,UAAU;QACV,OAAOA,SAASE,WAAW,GAAGC,YAAY;IAC9C;IACA,OAAO;AACX,EAAE;AAEF,cAAc;AACd,SACIC,kBAAkB,EAClBC,aAAa,EACbC,QAAQ,EACRC,SAAS,EACTC,SAAS,EACTC,eAAe,QACZ,QAAQ;AAEf,SAAS;AACT,SAASC,aAAa,EAAEC,iBAAiB,EAAEC,eAAe,QAAQ,UAAU;AAG5E,WAAW;AACX,SAASC,SAAS,QAAQ,qBAAqB;AAU/C,QAAQ;AACR,SAASC,iBAAiB,EAAEC,iBAAiB,QAAQ,eAAe;AAGpE,OAAO;AACP,SAASC,aAAa,EAAEC,aAAa,QAAQ,WAAW;AAkBxD,WAAW;AACX,cAAc,YAAY;AAC1B,cAAc,WAAW;AACzB,cAAc,WAAW;AACzB,cAAc,eAAe;AAE7B,WAAW;AACX,cAAc,WAAW;AAEzB,SAAS;AACT,cAAc,UAAU;AAExB,SAAS;AACT,SAASC,QAAQ,EAAEC,eAAe,QAAQ,iBAAiB"}
1
+ {"version":3,"sources":["../../src/core/index.tsx"],"sourcesContent":["import type { StartOptions } from \"./types\";\nimport { storage } from '../library';\nimport { StateManager } from '../state';\nimport { startApp } from './startup/startApp';\nimport { getAppInstanceManager } from './startup/AppInstance';\n\n\n/**\n * 启动框架\n * \n * @param options - 启动配置选项\n * @returns Promise<void>\n * \n * @example\n * ```typescript\n * import { start } from '@vlian/framework';\n * \n * start({\n * loggerLevel: LogLevel.DEBUG,\n * lifecycle: {\n * beforeInitialization: async () => {\n * console.log('初始化前执行');\n * },\n * },\n * });\n * ```\n */\n/**\n * 启动框架(向后兼容的API)\n * \n * @param options - 启动配置选项\n * @returns Promise<void>\n * \n * @deprecated 建议使用 startApp 函数,支持多实例\n */\nconst start = async (options: StartOptions = {}): Promise<void> => {\n // 使用新的启动函数,保持向后兼容\n await startApp(options);\n};\n\n// 导出新的启动函数\nexport { startApp } from './startup/startApp';\nexport { getAppInstanceManager } from './startup/AppInstance';\nexport type { AppInstance } from './startup/AppInstance';\n\n// 导出向后兼容的start函数\nexport {\n start,\n storage,\n};\n\n// 导出getStateManager(向后兼容)\nexport const getStateManager = (): StateManager | null => {\n const instanceManager = getAppInstanceManager();\n const instance = instanceManager.getInstance();\n if (instance) {\n return instance.getServices().stateManager;\n }\n return null;\n};\n\n// 导出应用上下文相关功能\nexport {\n AppContextProvider,\n useAppContext,\n useTheme,\n useLocale,\n useConfig,\n useStateManager,\n} from './app';\n\n// 导出错误边界\nexport { ErrorBoundary, withErrorBoundary, useErrorHandler } from './error';\nexport type { ErrorBoundaryProps } from './error';\n\n// 导出应用配置单例\nexport { appConfig } from './config/AppConfig';\n\n// 导出初始化相关类型\nexport type {\n InitializationContext,\n InitializationOptions,\n ProgressCallback,\n} from './initialization';\n\n// 导出中间件\nexport { MiddlewareManager, middlewareManager } from './middleware';\nexport type { Middleware } from './middleware';\n\n// 导出插件\nexport { PluginManager, pluginManager } from './plugin';\nexport type { Plugin } from './plugin';\n\n// 导出应用上下文相关类型\nexport type {\n AppContextValue,\n ThemeContextValue,\n LocaleContextValue,\n ConfigContextValue,\n StateManagerContextValue,\n ThemeConfig,\n AppConfig,\n AppContextProviderProps,\n} from './app';\n\n// 导出启动配置相关类型\nexport type { StartOptions, ManagerLifecycle, SplashScreenCustomProps } from './types';\n\n// 导出启动相关模块\nexport * from './startup';\nexport * from './config';\nexport * from './kernel';\n\n// 导出路由相关模块\nexport * from './router';\n\n// 导出事件系统\nexport * from './event';\n\n// 导出开发工具\nexport { DevTools, DevToolsTrigger } from './dev/DevTools';\n"],"names":["storage","startApp","getAppInstanceManager","start","options","getStateManager","instanceManager","instance","getInstance","getServices","stateManager","AppContextProvider","useAppContext","useTheme","useLocale","useConfig","useStateManager","ErrorBoundary","withErrorBoundary","useErrorHandler","appConfig","MiddlewareManager","middlewareManager","PluginManager","pluginManager","DevTools","DevToolsTrigger"],"mappings":"AACA,SAASA,OAAO,QAAQ,aAAa;AAErC,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,qBAAqB,QAAQ,wBAAwB;AAG9D;;;;;;;;;;;;;;;;;;;CAmBC,GACD;;;;;;;CAOC,GACD,MAAMC,QAAQ,OAAOC,UAAwB,CAAC,CAAC;IAC3C,kBAAkB;IAClB,MAAMH,SAASG;AACnB;AAEA,WAAW;AACX,SAASH,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,qBAAqB,QAAQ,wBAAwB;AAG9D,iBAAiB;AACjB,SACIC,KAAK,EACLH,OAAO,GACT;AAEF,0BAA0B;AAC1B,OAAO,MAAMK,kBAAkB;IAC3B,MAAMC,kBAAkBJ;IACxB,MAAMK,WAAWD,gBAAgBE,WAAW;IAC5C,IAAID,UAAU;QACV,OAAOA,SAASE,WAAW,GAAGC,YAAY;IAC9C;IACA,OAAO;AACX,EAAE;AAEF,cAAc;AACd,SACIC,kBAAkB,EAClBC,aAAa,EACbC,QAAQ,EACRC,SAAS,EACTC,SAAS,EACTC,eAAe,QACZ,QAAQ;AAEf,SAAS;AACT,SAASC,aAAa,EAAEC,iBAAiB,EAAEC,eAAe,QAAQ,UAAU;AAG5E,WAAW;AACX,SAASC,SAAS,QAAQ,qBAAqB;AAS/C,QAAQ;AACR,SAASC,iBAAiB,EAAEC,iBAAiB,QAAQ,eAAe;AAGpE,OAAO;AACP,SAASC,aAAa,EAAEC,aAAa,QAAQ,WAAW;AAkBxD,WAAW;AACX,cAAc,YAAY;AAC1B,cAAc,WAAW;AACzB,cAAc,WAAW;AAEzB,WAAW;AACX,cAAc,WAAW;AAEzB,SAAS;AACT,cAAc,UAAU;AAExB,SAAS;AACT,SAASC,QAAQ,EAAEC,eAAe,QAAQ,iBAAiB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/core/initialization/index.ts"],"sourcesContent":["/**\n * 初始化模块统一导出\n */\n\nexport { initialization } from './initialization';\nexport type {\n InitializationContext,\n ConfigStrategy,\n InitializationOptions,\n ProgressCallback,\n} from './initialization';\nexport { InitializationErrorThrower } from './InitializationErrorThrower';\nexport { initializationErrorState } from './initializationErrorState';\n"],"names":["InitializationErrorThrower","initialization","initializationErrorState"],"mappings":"AAAA;;CAEC;;;;;;;;;;;QASQA;eAAAA,sDAA0B;;QAP1BC;eAAAA,8BAAc;;QAQdC;eAAAA,kDAAwB;;;gCARF;4CAOY;0CACF"}
1
+ {"version":3,"sources":["../../../src/core/initialization/index.ts"],"sourcesContent":["/**\n * 初始化模块统一导出\n */\n\nexport { initialization } from './initialization';\nexport type {\n InitializationContext,\n InitializationOptions,\n ProgressCallback,\n} from './initialization';\nexport { InitializationErrorThrower } from './InitializationErrorThrower';\nexport { initializationErrorState } from './initializationErrorState';\n"],"names":["InitializationErrorThrower","initialization","initializationErrorState"],"mappings":"AAAA;;CAEC;;;;;;;;;;;QAQQA;eAAAA,sDAA0B;;QAN1BC;eAAAA,8BAAc;;QAOdC;eAAAA,kDAAwB;;;gCAPF;4CAMY;0CACF"}
@@ -2,6 +2,6 @@
2
2
  * 初始化模块统一导出
3
3
  */
4
4
  export { initialization } from './initialization';
5
- export type { InitializationContext, ConfigStrategy, InitializationOptions, ProgressCallback, } from './initialization';
5
+ export type { InitializationContext, InitializationOptions, ProgressCallback, } from './initialization';
6
6
  export { InitializationErrorThrower } from './InitializationErrorThrower';
7
7
  export { initializationErrorState } from './initializationErrorState';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/core/initialization/index.ts"],"sourcesContent":["/**\n * 初始化模块统一导出\n */\n\nexport { initialization } from './initialization';\nexport type {\n InitializationContext,\n ConfigStrategy,\n InitializationOptions,\n ProgressCallback,\n} from './initialization';\nexport { InitializationErrorThrower } from './InitializationErrorThrower';\nexport { initializationErrorState } from './initializationErrorState';\n"],"names":["initialization","InitializationErrorThrower","initializationErrorState"],"mappings":"AAAA;;CAEC,GAED,SAASA,cAAc,QAAQ,mBAAmB;AAOlD,SAASC,0BAA0B,QAAQ,+BAA+B;AAC1E,SAASC,wBAAwB,QAAQ,6BAA6B"}
1
+ {"version":3,"sources":["../../../src/core/initialization/index.ts"],"sourcesContent":["/**\n * 初始化模块统一导出\n */\n\nexport { initialization } from './initialization';\nexport type {\n InitializationContext,\n InitializationOptions,\n ProgressCallback,\n} from './initialization';\nexport { InitializationErrorThrower } from './InitializationErrorThrower';\nexport { initializationErrorState } from './initializationErrorState';\n"],"names":["initialization","InitializationErrorThrower","initializationErrorState"],"mappings":"AAAA;;CAEC,GAED,SAASA,cAAc,QAAQ,mBAAmB;AAMlD,SAASC,0BAA0B,QAAQ,+BAA+B;AAC1E,SAASC,wBAAwB,QAAQ,6BAA6B"}
@@ -10,71 +10,7 @@ Object.defineProperty(exports, "initialization", {
10
10
  });
11
11
  const _utils = require("../../utils");
12
12
  const _library = require("../../library");
13
- const _errors = require("../../utils/errors");
14
- const _configSecurity = require("../../utils/configSecurity");
15
13
  const _plugin = require("../plugin");
16
- /**
17
- * 配置缓存键
18
- */ const CONFIG_CACHE_KEY = '__framework_config_cache__';
19
- /**
20
- * 加载配置(带超时、重试和缓存)
21
- */ async function loadConfigWithRetry(loadConfig, strategy, fallbackConfig) {
22
- const timeout = strategy.configTimeout ?? 5000;
23
- const retryCount = strategy.retryCount ?? 3;
24
- const retryDelay = strategy.retryDelay ?? 1000;
25
- const enableCache = strategy.enableCache ?? true;
26
- const cacheTTL = strategy.cacheTTL ?? 5 * 60 * 1000; // 5分钟
27
- const configVersion = strategy.configVersion;
28
- // 检查缓存
29
- if (enableCache && _library.storage.localCache) {
30
- try {
31
- const cacheKey = `${CONFIG_CACHE_KEY}_${configVersion || 'default'}`;
32
- const cached = await _library.storage.localCache.get(cacheKey);
33
- if (cached && (!configVersion || cached.version === configVersion)) {
34
- _utils.logger.debug('使用缓存的配置');
35
- return cached.data;
36
- }
37
- } catch (error) {
38
- _utils.logger.warn('读取配置缓存失败:', error);
39
- }
40
- }
41
- // 重试加载配置
42
- let lastError = null;
43
- for(let attempt = 0; attempt <= retryCount; attempt++){
44
- try {
45
- if (attempt > 0) {
46
- _utils.logger.debug(`配置加载重试 ${attempt}/${retryCount}`);
47
- // 指数退避
48
- await new Promise((resolve)=>setTimeout(resolve, retryDelay * Math.pow(2, attempt - 1)));
49
- }
50
- const configPromise = loadConfig();
51
- const timeoutPromise = new Promise((_, reject)=>setTimeout(()=>reject(new _errors.NetworkError('配置加载超时')), timeout));
52
- const config = await Promise.race([
53
- configPromise,
54
- timeoutPromise
55
- ]);
56
- // 保存到缓存
57
- if (enableCache && _library.storage.localCache) {
58
- try {
59
- const cacheKey = `${CONFIG_CACHE_KEY}_${configVersion || 'default'}`;
60
- await _library.storage.localCache.set(cacheKey, {
61
- data: config,
62
- version: configVersion
63
- }, cacheTTL);
64
- } catch (error) {
65
- _utils.logger.warn('保存配置缓存失败:', error);
66
- }
67
- }
68
- return config;
69
- } catch (error) {
70
- lastError = error instanceof Error ? error : new Error(String(error));
71
- _utils.logger.warn(`配置加载失败 (尝试 ${attempt + 1}/${retryCount + 1}):`, lastError);
72
- }
73
- }
74
- // 所有重试都失败,使用降级配置
75
- _utils.logger.warn('配置加载失败,使用降级配置:', lastError);
76
- return fallbackConfig || {};
77
- }
78
14
  async function initialization(options, onProgress) {
79
15
  const startTime = Date.now();
80
16
  let config = {};
@@ -84,89 +20,8 @@ async function initialization(options, onProgress) {
84
20
  // 1. 设置日志级别
85
21
  onProgress?.(5, '初始化日志系统...');
86
22
  _utils.logger.setLevel(options.loggerLevel ?? _utils.LogLevel.INFO);
87
- // 2. 加载关键配置
88
- if (options.configStrategy?.loadCriticalConfig) {
89
- onProgress?.(10, '加载关键配置...');
90
- try {
91
- config = await loadConfigWithRetry(options.configStrategy.loadCriticalConfig, options.configStrategy, options.configStrategy.fallbackConfig);
92
- // 验证配置安全性
93
- if (options.configSecurity) {
94
- const securityResult = await _configSecurity.ConfigSecurity.validateConfigSecurity(config, options.configSecurity);
95
- if (!securityResult.valid) {
96
- _utils.logger.warn('配置安全验证失败:', securityResult.errors);
97
- // 根据安全策略决定是否继续
98
- }
99
- }
100
- options.configStrategy.onConfigLoaded?.(config);
101
- onProgress?.(30, '关键配置加载完成');
102
- } catch (error) {
103
- _utils.logger.warn('关键配置加载失败,使用默认配置:', error);
104
- config = options.configStrategy.fallbackConfig || {};
105
- options.configStrategy.onConfigLoaded?.(config);
106
- onProgress?.(30, '使用默认配置');
107
- }
108
- } else {
109
- onProgress?.(30);
110
- }
111
- // 2.5. 渐进式加载非关键配置(在应用渲染后异步加载)
112
- if (options.configStrategy?.loadNonCriticalConfig) {
113
- // 智能延迟加载:根据网络状况动态调整延迟时间
114
- const getDelayTime = ()=>{
115
- if (typeof navigator === 'undefined' || !('connection' in navigator)) {
116
- return 1000; // 默认延迟
117
- }
118
- const connection = navigator.connection;
119
- if (!connection) {
120
- return 1000;
121
- }
122
- // 根据网络类型调整延迟
123
- const effectiveType = connection.effectiveType;
124
- switch(effectiveType){
125
- case 'slow-2g':
126
- case '2g':
127
- return 3000; // 慢网络延迟更久
128
- case '3g':
129
- return 2000;
130
- case '4g':
131
- default:
132
- return 500; // 快网络可以更快加载
133
- }
134
- };
135
- // 使用 requestIdleCallback 在空闲时加载
136
- if (typeof requestIdleCallback !== 'undefined') {
137
- requestIdleCallback(async ()=>{
138
- try {
139
- const nonCriticalConfig = await loadConfigWithRetry(options.configStrategy.loadNonCriticalConfig, options.configStrategy, {});
140
- // 合并到主配置
141
- config = {
142
- ...config,
143
- ...nonCriticalConfig
144
- };
145
- options.configStrategy?.onConfigLoaded?.(config);
146
- _utils.logger.debug('非关键配置加载完成');
147
- } catch (error) {
148
- _utils.logger.warn('非关键配置加载失败:', error);
149
- }
150
- }, {
151
- timeout: getDelayTime()
152
- });
153
- } else {
154
- // 降级方案:智能延迟加载
155
- setTimeout(async ()=>{
156
- try {
157
- const nonCriticalConfig = await loadConfigWithRetry(options.configStrategy.loadNonCriticalConfig, options.configStrategy, {});
158
- config = {
159
- ...config,
160
- ...nonCriticalConfig
161
- };
162
- options.configStrategy?.onConfigLoaded?.(config);
163
- _utils.logger.debug('非关键配置加载完成');
164
- } catch (error) {
165
- _utils.logger.warn('非关键配置加载失败:', error);
166
- }
167
- }, getDelayTime());
168
- }
169
- }
23
+ // 2. 预留配置阶段
24
+ onProgress?.(30);
170
25
  // 3. 初始化之前回调
171
26
  if (options.lifecycle?.beforeInitialization) {
172
27
  onProgress?.(35, '执行初始化前回调...');
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/core/initialization/initialization.ts"],"sourcesContent":["import { logger, LogLevel } from '../../utils';\nimport { setupI18n } from '../../library';\nimport { storage } from '../../library';\nimport type { LangType } from '../../library/locale/types';\nimport type { ManagerLifecycle, StartOptions } from '../types';\nimport { NetworkError } from '../../utils/errors';\nimport { ConfigSecurity } from '../../utils/configSecurity';\nimport { pluginManager } from '../plugin';\n\n/**\n * 初始化上下文\n */\nexport interface InitializationContext {\n /**\n * 已加载的配置\n */\n config: Record<string, unknown>;\n\n /**\n * 初始化进度(0-100)\n */\n progress: number;\n\n /**\n * 是否准备就绪\n */\n isReady: boolean;\n\n /**\n * 初始化耗时(毫秒)\n */\n duration: number;\n}\n\n/**\n * 配置加载策略\n */\nexport interface ConfigStrategy {\n /**\n * 加载关键配置\n * 这些配置必须在应用渲染前加载完成\n */\n loadCriticalConfig?: () => Promise<Record<string, unknown>>;\n\n /**\n * 加载非关键配置\n * 这些配置可以在应用渲染后异步加载\n */\n loadNonCriticalConfig?: () => Promise<Record<string, unknown>>;\n\n /**\n * 配置降级方案\n * 当配置加载失败时使用的默认配置\n */\n fallbackConfig?: Record<string, unknown>;\n\n /**\n * 配置超时时间(毫秒)\n * 默认 5000ms,超时后使用降级配置\n */\n configTimeout?: number;\n\n /**\n * 配置版本号(用于缓存失效)\n */\n configVersion?: string;\n\n /**\n * 配置加载完成回调\n */\n onConfigLoaded?: (config: Record<string, unknown>) => void;\n\n /**\n * 是否启用缓存\n * @default true\n */\n enableCache?: boolean;\n\n /**\n * 缓存过期时间(毫秒)\n * @default 5 * 60 * 1000 (5分钟)\n */\n cacheTTL?: number;\n\n /**\n * 重试次数\n * @default 3\n */\n retryCount?: number;\n\n /**\n * 重试延迟(毫秒)\n * @default 1000\n */\n retryDelay?: number;\n}\n\n/**\n * 初始化选项\n */\nexport interface InitializationOptions {\n /**\n * 日志级别\n */\n loggerLevel?: LogLevel;\n\n /**\n * 国际化配置\n */\n locale?: Record<LangType, Record<string, unknown>>;\n\n /**\n * 生命周期钩子\n */\n lifecycle?: ManagerLifecycle;\n\n /**\n * 配置加载策略\n */\n configStrategy?: ConfigStrategy;\n}\n\n/**\n * 进度回调函数\n */\nexport type ProgressCallback = (progress: number, step?: string) => void;\n\n/**\n * 配置缓存键\n */\nconst CONFIG_CACHE_KEY = '__framework_config_cache__';\n\n/**\n * 加载配置(带超时、重试和缓存)\n */\nasync function loadConfigWithRetry(\n loadConfig: () => Promise<Record<string, unknown>>,\n strategy: ConfigStrategy,\n fallbackConfig?: Record<string, unknown>\n): Promise<Record<string, unknown>> {\n const timeout = strategy.configTimeout ?? 5000;\n const retryCount = strategy.retryCount ?? 3;\n const retryDelay = strategy.retryDelay ?? 1000;\n const enableCache = strategy.enableCache ?? true;\n const cacheTTL = strategy.cacheTTL ?? 5 * 60 * 1000; // 5分钟\n const configVersion = strategy.configVersion;\n\n // 检查缓存\n if (enableCache && storage.localCache) {\n try {\n const cacheKey = `${CONFIG_CACHE_KEY}_${configVersion || 'default'}`;\n const cached = await storage.localCache.get<{ data: Record<string, unknown>; version?: string }>(cacheKey);\n if (cached && (!configVersion || cached.version === configVersion)) {\n logger.debug('使用缓存的配置');\n return cached.data;\n }\n } catch (error) {\n logger.warn('读取配置缓存失败:', error);\n }\n }\n\n // 重试加载配置\n let lastError: Error | null = null;\n for (let attempt = 0; attempt <= retryCount; attempt++) {\n try {\n if (attempt > 0) {\n logger.debug(`配置加载重试 ${attempt}/${retryCount}`);\n // 指数退避\n await new Promise((resolve) => setTimeout(resolve, retryDelay * Math.pow(2, attempt - 1)));\n }\n\n const configPromise = loadConfig();\n const timeoutPromise = new Promise<Record<string, unknown>>((_, reject) =>\n setTimeout(() => reject(new NetworkError('配置加载超时')), timeout)\n );\n\n const config = await Promise.race([configPromise, timeoutPromise]);\n\n // 保存到缓存\n if (enableCache && storage.localCache) {\n try {\n const cacheKey = `${CONFIG_CACHE_KEY}_${configVersion || 'default'}`;\n await storage.localCache.set(cacheKey, { data: config, version: configVersion }, cacheTTL);\n } catch (error) {\n logger.warn('保存配置缓存失败:', error);\n }\n }\n\n return config;\n } catch (error) {\n lastError = error instanceof Error ? error : new Error(String(error));\n logger.warn(`配置加载失败 (尝试 ${attempt + 1}/${retryCount + 1}):`, lastError);\n }\n }\n\n // 所有重试都失败,使用降级配置\n logger.warn('配置加载失败,使用降级配置:', lastError);\n return fallbackConfig || {};\n}\n\n/**\n * 初始化方法\n * \n * 这是核心的初始化逻辑,可被启动页或直接调用\n * \n * @param options - 初始化选项\n * @param onProgress - 进度回调函数(可选)\n * @returns Promise<InitializationContext>\n * \n * @example\n * ```typescript\n * const context = await initialization({\n * loggerLevel: LogLevel.INFO,\n * lifecycle: {\n * initialization: async () => {\n * // 初始化逻辑\n * },\n * },\n * }, (progress, step) => {\n * console.log(`进度: ${progress}%, 步骤: ${step}`);\n * });\n * ```\n */\nexport async function initialization(\n options: StartOptions,\n onProgress?: ProgressCallback\n): Promise<InitializationContext> {\n const startTime = Date.now();\n let config: Record<string, unknown> = {};\n\n try {\n // 0. 执行插件初始化前钩子\n await pluginManager.executeBeforeInit(options);\n\n // 1. 设置日志级别\n onProgress?.(5, '初始化日志系统...');\n logger.setLevel(options.loggerLevel ?? LogLevel.INFO);\n\n // 2. 加载关键配置\n if (options.configStrategy?.loadCriticalConfig) {\n onProgress?.(10, '加载关键配置...');\n try {\n config = await loadConfigWithRetry(\n options.configStrategy.loadCriticalConfig,\n options.configStrategy,\n options.configStrategy.fallbackConfig\n );\n\n // 验证配置安全性\n if (options.configSecurity) {\n const securityResult = await ConfigSecurity.validateConfigSecurity(\n config,\n options.configSecurity\n );\n if (!securityResult.valid) {\n logger.warn('配置安全验证失败:', securityResult.errors);\n // 根据安全策略决定是否继续\n }\n }\n\n options.configStrategy.onConfigLoaded?.(config);\n onProgress?.(30, '关键配置加载完成');\n } catch (error) {\n logger.warn('关键配置加载失败,使用默认配置:', error);\n config = options.configStrategy.fallbackConfig || {};\n options.configStrategy.onConfigLoaded?.(config);\n onProgress?.(30, '使用默认配置');\n }\n } else {\n onProgress?.(30);\n }\n\n // 2.5. 渐进式加载非关键配置(在应用渲染后异步加载)\n if (options.configStrategy?.loadNonCriticalConfig) {\n // 智能延迟加载:根据网络状况动态调整延迟时间\n const getDelayTime = (): number => {\n if (typeof navigator === 'undefined' || !('connection' in navigator)) {\n return 1000; // 默认延迟\n }\n\n const connection = (navigator as any).connection;\n if (!connection) {\n return 1000;\n }\n\n // 根据网络类型调整延迟\n const effectiveType = connection.effectiveType;\n switch (effectiveType) {\n case 'slow-2g':\n case '2g':\n return 3000; // 慢网络延迟更久\n case '3g':\n return 2000;\n case '4g':\n default:\n return 500; // 快网络可以更快加载\n }\n };\n\n // 使用 requestIdleCallback 在空闲时加载\n if (typeof requestIdleCallback !== 'undefined') {\n requestIdleCallback(\n async () => {\n try {\n const nonCriticalConfig = await loadConfigWithRetry(\n options.configStrategy!.loadNonCriticalConfig!,\n options.configStrategy!,\n {}\n );\n // 合并到主配置\n config = { ...config, ...nonCriticalConfig };\n options.configStrategy?.onConfigLoaded?.(config);\n logger.debug('非关键配置加载完成');\n } catch (error) {\n logger.warn('非关键配置加载失败:', error);\n }\n },\n { timeout: getDelayTime() }\n );\n } else {\n // 降级方案:智能延迟加载\n setTimeout(async () => {\n try {\n const nonCriticalConfig = await loadConfigWithRetry(\n options.configStrategy!.loadNonCriticalConfig!,\n options.configStrategy!,\n {}\n );\n config = { ...config, ...nonCriticalConfig };\n options.configStrategy?.onConfigLoaded?.(config);\n logger.debug('非关键配置加载完成');\n } catch (error) {\n logger.warn('非关键配置加载失败:', error);\n }\n }, getDelayTime());\n }\n }\n\n // 3. 初始化之前回调\n if (options.lifecycle?.beforeInitialization) {\n onProgress?.(35, '执行初始化前回调...');\n await options.lifecycle.beforeInitialization();\n }\n\n // 4. 国际化设置\n onProgress?.(40, '设置国际化...');\n setupI18n(options.locale || undefined);\n\n // 5. 核心初始化\n if (options.lifecycle?.initialization) {\n onProgress?.(50, '初始化核心功能...');\n await options.lifecycle.initialization();\n onProgress?.(70, '核心功能初始化完成');\n } else {\n onProgress?.(70);\n }\n\n onProgress?.(80, '准备完成...');\n\n const duration = Date.now() - startTime;\n\n const context: InitializationContext = {\n config,\n progress: 100,\n isReady: true,\n duration,\n };\n\n // 执行插件初始化钩子\n await pluginManager.executeInit(options, context);\n\n // 执行插件初始化后钩子\n await pluginManager.executeAfterInit(options, context);\n\n // 6. 初始化之后回调(在 context 创建后执行,可以访问完整的初始化上下文)\n if (options.lifecycle?.afterInitialization) {\n onProgress?.(90, '执行初始化后回调...');\n await options.lifecycle.afterInitialization(context);\n }\n\n onProgress?.(100, '初始化完成');\n\n return context;\n } catch (error) {\n logger.error('初始化失败:', error);\n throw error;\n }\n}\n"],"names":["initialization","CONFIG_CACHE_KEY","loadConfigWithRetry","loadConfig","strategy","fallbackConfig","timeout","configTimeout","retryCount","retryDelay","enableCache","cacheTTL","configVersion","storage","localCache","cacheKey","cached","get","version","logger","debug","data","error","warn","lastError","attempt","Promise","resolve","setTimeout","Math","pow","configPromise","timeoutPromise","_","reject","NetworkError","config","race","set","Error","String","options","onProgress","startTime","Date","now","pluginManager","executeBeforeInit","setLevel","loggerLevel","LogLevel","INFO","configStrategy","loadCriticalConfig","configSecurity","securityResult","ConfigSecurity","validateConfigSecurity","valid","errors","onConfigLoaded","loadNonCriticalConfig","getDelayTime","navigator","connection","effectiveType","requestIdleCallback","nonCriticalConfig","lifecycle","beforeInitialization","setupI18n","locale","undefined","duration","context","progress","isReady","executeInit","executeAfterInit","afterInitialization"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/core/initialization/initialization.ts"],"sourcesContent":["import { logger, LogLevel } from '../../utils';\nimport { setupI18n } from '../../library';\nimport type { LangType } from '../../library/locale/types';\nimport type { ManagerLifecycle, StartOptions } from '../types';\nimport { pluginManager } from '../plugin';\n\n/**\n * 初始化上下文\n */\nexport interface InitializationContext {\n /**\n * 已加载的配置\n */\n config: Record<string, unknown>;\n\n /**\n * 初始化进度(0-100)\n */\n progress: number;\n\n /**\n * 是否准备就绪\n */\n isReady: boolean;\n\n /**\n * 初始化耗时(毫秒)\n */\n duration: number;\n}\n\n/**\n * 初始化选项\n */\nexport interface InitializationOptions {\n /**\n * 日志级别\n */\n loggerLevel?: LogLevel;\n\n /**\n * 国际化配置\n */\n locale?: Record<LangType, Record<string, unknown>>;\n\n /**\n * 生命周期钩子\n */\n lifecycle?: ManagerLifecycle;\n}\n\n/**\n * 进度回调函数\n */\nexport type ProgressCallback = (progress: number, step?: string) => void;\n\n/**\n * 初始化方法\n * \n * 这是核心的初始化逻辑,可被启动页或直接调用\n * \n * @param options - 初始化选项\n * @param onProgress - 进度回调函数(可选)\n * @returns Promise<InitializationContext>\n * \n * @example\n * ```typescript\n * const context = await initialization({\n * loggerLevel: LogLevel.INFO,\n * lifecycle: {\n * initialization: async () => {\n * // 初始化逻辑\n * },\n * },\n * }, (progress, step) => {\n * console.log(`进度: ${progress}%, 步骤: ${step}`);\n * });\n * ```\n */\nexport async function initialization(\n options: StartOptions,\n onProgress?: ProgressCallback\n): Promise<InitializationContext> {\n const startTime = Date.now();\n let config: Record<string, unknown> = {};\n\n try {\n // 0. 执行插件初始化前钩子\n await pluginManager.executeBeforeInit(options);\n\n // 1. 设置日志级别\n onProgress?.(5, '初始化日志系统...');\n logger.setLevel(options.loggerLevel ?? LogLevel.INFO);\n\n // 2. 预留配置阶段\n onProgress?.(30);\n\n // 3. 初始化之前回调\n if (options.lifecycle?.beforeInitialization) {\n onProgress?.(35, '执行初始化前回调...');\n await options.lifecycle.beforeInitialization();\n }\n\n // 4. 国际化设置\n onProgress?.(40, '设置国际化...');\n setupI18n(options.locale || undefined);\n\n // 5. 核心初始化\n if (options.lifecycle?.initialization) {\n onProgress?.(50, '初始化核心功能...');\n await options.lifecycle.initialization();\n onProgress?.(70, '核心功能初始化完成');\n } else {\n onProgress?.(70);\n }\n\n onProgress?.(80, '准备完成...');\n\n const duration = Date.now() - startTime;\n\n const context: InitializationContext = {\n config,\n progress: 100,\n isReady: true,\n duration,\n };\n\n // 执行插件初始化钩子\n await pluginManager.executeInit(options, context);\n\n // 执行插件初始化后钩子\n await pluginManager.executeAfterInit(options, context);\n\n // 6. 初始化之后回调(在 context 创建后执行,可以访问完整的初始化上下文)\n if (options.lifecycle?.afterInitialization) {\n onProgress?.(90, '执行初始化后回调...');\n await options.lifecycle.afterInitialization(context);\n }\n\n onProgress?.(100, '初始化完成');\n\n return context;\n } catch (error) {\n logger.error('初始化失败:', error);\n throw error;\n }\n}\n"],"names":["initialization","options","onProgress","startTime","Date","now","config","pluginManager","executeBeforeInit","logger","setLevel","loggerLevel","LogLevel","INFO","lifecycle","beforeInitialization","setupI18n","locale","undefined","duration","context","progress","isReady","executeInit","executeAfterInit","afterInitialization","error"],"mappings":";;;;+BA+EsBA;;;eAAAA;;;uBA/EW;yBACP;wBAGI;AA2EvB,eAAeA,eACpBC,OAAqB,EACrBC,UAA6B;IAE7B,MAAMC,YAAYC,KAAKC,GAAG;IAC1B,IAAIC,SAAkC,CAAC;IAEvC,IAAI;QACF,gBAAgB;QAChB,MAAMC,qBAAa,CAACC,iBAAiB,CAACP;QAEtC,YAAY;QACZC,aAAa,GAAG;QAChBO,aAAM,CAACC,QAAQ,CAACT,QAAQU,WAAW,IAAIC,eAAQ,CAACC,IAAI;QAEpD,YAAY;QACZX,aAAa;QAEb,aAAa;QACb,IAAID,QAAQa,SAAS,EAAEC,sBAAsB;YAC3Cb,aAAa,IAAI;YACjB,MAAMD,QAAQa,SAAS,CAACC,oBAAoB;QAC9C;QAEA,WAAW;QACXb,aAAa,IAAI;QACjBc,IAAAA,kBAAS,EAACf,QAAQgB,MAAM,IAAIC;QAE5B,WAAW;QACX,IAAIjB,QAAQa,SAAS,EAAEd,gBAAgB;YACrCE,aAAa,IAAI;YACjB,MAAMD,QAAQa,SAAS,CAACd,cAAc;YACtCE,aAAa,IAAI;QACnB,OAAO;YACLA,aAAa;QACf;QAEAA,aAAa,IAAI;QAEjB,MAAMiB,WAAWf,KAAKC,GAAG,KAAKF;QAE9B,MAAMiB,UAAiC;YACrCd;YACAe,UAAU;YACVC,SAAS;YACTH;QACF;QAEA,YAAY;QACZ,MAAMZ,qBAAa,CAACgB,WAAW,CAACtB,SAASmB;QAEzC,aAAa;QACb,MAAMb,qBAAa,CAACiB,gBAAgB,CAACvB,SAASmB;QAE9C,4CAA4C;QAC5C,IAAInB,QAAQa,SAAS,EAAEW,qBAAqB;YAC1CvB,aAAa,IAAI;YACjB,MAAMD,QAAQa,SAAS,CAACW,mBAAmB,CAACL;QAC9C;QAEAlB,aAAa,KAAK;QAElB,OAAOkB;IACT,EAAE,OAAOM,OAAO;QACdjB,aAAM,CAACiB,KAAK,CAAC,UAAUA;QACvB,MAAMA;IACR;AACF"}
@@ -22,59 +22,6 @@ export interface InitializationContext {
22
22
  */
23
23
  duration: number;
24
24
  }
25
- /**
26
- * 配置加载策略
27
- */
28
- export interface ConfigStrategy {
29
- /**
30
- * 加载关键配置
31
- * 这些配置必须在应用渲染前加载完成
32
- */
33
- loadCriticalConfig?: () => Promise<Record<string, unknown>>;
34
- /**
35
- * 加载非关键配置
36
- * 这些配置可以在应用渲染后异步加载
37
- */
38
- loadNonCriticalConfig?: () => Promise<Record<string, unknown>>;
39
- /**
40
- * 配置降级方案
41
- * 当配置加载失败时使用的默认配置
42
- */
43
- fallbackConfig?: Record<string, unknown>;
44
- /**
45
- * 配置超时时间(毫秒)
46
- * 默认 5000ms,超时后使用降级配置
47
- */
48
- configTimeout?: number;
49
- /**
50
- * 配置版本号(用于缓存失效)
51
- */
52
- configVersion?: string;
53
- /**
54
- * 配置加载完成回调
55
- */
56
- onConfigLoaded?: (config: Record<string, unknown>) => void;
57
- /**
58
- * 是否启用缓存
59
- * @default true
60
- */
61
- enableCache?: boolean;
62
- /**
63
- * 缓存过期时间(毫秒)
64
- * @default 5 * 60 * 1000 (5分钟)
65
- */
66
- cacheTTL?: number;
67
- /**
68
- * 重试次数
69
- * @default 3
70
- */
71
- retryCount?: number;
72
- /**
73
- * 重试延迟(毫秒)
74
- * @default 1000
75
- */
76
- retryDelay?: number;
77
- }
78
25
  /**
79
26
  * 初始化选项
80
27
  */
@@ -91,10 +38,6 @@ export interface InitializationOptions {
91
38
  * 生命周期钩子
92
39
  */
93
40
  lifecycle?: ManagerLifecycle;
94
- /**
95
- * 配置加载策略
96
- */
97
- configStrategy?: ConfigStrategy;
98
41
  }
99
42
  /**
100
43
  * 进度回调函数