@vlian/framework 1.2.62 → 1.2.63

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 (510) hide show
  1. package/dist/analytics.umd.js +1 -1
  2. package/dist/index.umd.js +1 -1
  3. package/dist/state.umd.js +1 -1
  4. package/package.json +21 -6
  5. package/dist/components/LocaleSwitch.cjs +0 -1
  6. package/dist/components/LocaleSwitch.d.ts +0 -21
  7. package/dist/components/LocaleSwitch.js +0 -1
  8. package/dist/components/ThemeSwitch.cjs +0 -1
  9. package/dist/components/ThemeSwitch.d.ts +0 -20
  10. package/dist/components/ThemeSwitch.js +0 -1
  11. package/dist/core/Test.cjs +0 -1
  12. package/dist/core/Test.d.ts +0 -5
  13. package/dist/core/Test.js +0 -1
  14. package/dist/core/app/AppContext.cjs +0 -1
  15. package/dist/core/app/AppContext.d.ts +0 -113
  16. package/dist/core/app/AppContext.js +0 -1
  17. package/dist/core/app/AppContext.types.cjs +0 -1
  18. package/dist/core/app/AppContext.types.d.ts +0 -146
  19. package/dist/core/app/AppContext.types.js +0 -1
  20. package/dist/core/app/BasicLayout.cjs +0 -1
  21. package/dist/core/app/BasicLayout.d.ts +0 -15
  22. package/dist/core/app/BasicLayout.js +0 -1
  23. package/dist/core/app/DefaultApp.cjs +0 -1
  24. package/dist/core/app/DefaultApp.d.ts +0 -10
  25. package/dist/core/app/DefaultApp.js +0 -1
  26. package/dist/core/app/index.cjs +0 -1
  27. package/dist/core/app/index.d.ts +0 -8
  28. package/dist/core/app/index.js +0 -1
  29. package/dist/core/config/AppConfig.cjs +0 -1
  30. package/dist/core/config/AppConfig.d.ts +0 -88
  31. package/dist/core/config/AppConfig.js +0 -1
  32. package/dist/core/config/ConfigLoader.cjs +0 -1
  33. package/dist/core/config/ConfigLoader.d.ts +0 -118
  34. package/dist/core/config/ConfigLoader.js +0 -1
  35. package/dist/core/config/ConfigValidator.cjs +0 -2
  36. package/dist/core/config/ConfigValidator.d.ts +0 -84
  37. package/dist/core/config/ConfigValidator.js +0 -2
  38. package/dist/core/config/index.cjs +0 -1
  39. package/dist/core/config/index.d.ts +0 -6
  40. package/dist/core/config/index.js +0 -1
  41. package/dist/core/dev/DevTools.cjs +0 -1
  42. package/dist/core/dev/DevTools.d.ts +0 -16
  43. package/dist/core/dev/DevTools.js +0 -1
  44. package/dist/core/error/ErrorBoundary.cjs +0 -1
  45. package/dist/core/error/ErrorBoundary.d.ts +0 -121
  46. package/dist/core/error/ErrorBoundary.js +0 -1
  47. package/dist/core/error/ErrorHandler.cjs +0 -1
  48. package/dist/core/error/ErrorHandler.d.ts +0 -171
  49. package/dist/core/error/ErrorHandler.js +0 -1
  50. package/dist/core/error/index.cjs +0 -1
  51. package/dist/core/error/index.d.ts +0 -7
  52. package/dist/core/error/index.js +0 -1
  53. package/dist/core/event/AppEventBus.cjs +0 -1
  54. package/dist/core/event/AppEventBus.d.ts +0 -178
  55. package/dist/core/event/AppEventBus.js +0 -1
  56. package/dist/core/event/frameworkEvents.cjs +0 -1
  57. package/dist/core/event/frameworkEvents.d.ts +0 -69
  58. package/dist/core/event/frameworkEvents.js +0 -1
  59. package/dist/core/event/hooks.cjs +0 -1
  60. package/dist/core/event/hooks.d.ts +0 -57
  61. package/dist/core/event/hooks.js +0 -1
  62. package/dist/core/event/index.cjs +0 -1
  63. package/dist/core/event/index.d.ts +0 -10
  64. package/dist/core/event/index.js +0 -1
  65. package/dist/core/event/types.cjs +0 -1
  66. package/dist/core/event/types.d.ts +0 -269
  67. package/dist/core/event/types.js +0 -1
  68. package/dist/core/event/useEventBus.cjs +0 -1
  69. package/dist/core/event/useEventBus.d.ts +0 -28
  70. package/dist/core/event/useEventBus.js +0 -1
  71. package/dist/core/index.cjs +0 -1
  72. package/dist/core/index.d.ts +0 -54
  73. package/dist/core/index.js +0 -1
  74. package/dist/core/initialization/InitializationErrorThrower.cjs +0 -1
  75. package/dist/core/initialization/InitializationErrorThrower.d.ts +0 -7
  76. package/dist/core/initialization/InitializationErrorThrower.js +0 -1
  77. package/dist/core/initialization/index.cjs +0 -1
  78. package/dist/core/initialization/index.d.ts +0 -7
  79. package/dist/core/initialization/index.js +0 -1
  80. package/dist/core/initialization/initialization.cjs +0 -1
  81. package/dist/core/initialization/initialization.d.ts +0 -69
  82. package/dist/core/initialization/initialization.js +0 -1
  83. package/dist/core/initialization/initializationErrorState.cjs +0 -1
  84. package/dist/core/initialization/initializationErrorState.d.ts +0 -35
  85. package/dist/core/initialization/initializationErrorState.js +0 -1
  86. package/dist/core/kernel/defaultAdapters.cjs +0 -1
  87. package/dist/core/kernel/defaultAdapters.d.ts +0 -2
  88. package/dist/core/kernel/defaultAdapters.js +0 -1
  89. package/dist/core/kernel/errors.cjs +0 -1
  90. package/dist/core/kernel/errors.d.ts +0 -18
  91. package/dist/core/kernel/errors.js +0 -1
  92. package/dist/core/kernel/index.cjs +0 -1
  93. package/dist/core/kernel/index.d.ts +0 -3
  94. package/dist/core/kernel/index.js +0 -1
  95. package/dist/core/kernel/startKernel.cjs +0 -1
  96. package/dist/core/kernel/startKernel.d.ts +0 -2
  97. package/dist/core/kernel/startKernel.js +0 -1
  98. package/dist/core/kernel/types.cjs +0 -1
  99. package/dist/core/kernel/types.d.ts +0 -114
  100. package/dist/core/kernel/types.js +0 -1
  101. package/dist/core/middleware.cjs +0 -1
  102. package/dist/core/middleware.d.ts +0 -36
  103. package/dist/core/middleware.js +0 -1
  104. package/dist/core/plugin/PluginEventBus.cjs +0 -1
  105. package/dist/core/plugin/PluginEventBus.d.ts +0 -169
  106. package/dist/core/plugin/PluginEventBus.js +0 -1
  107. package/dist/core/plugin/PluginSandbox.cjs +0 -1
  108. package/dist/core/plugin/PluginSandbox.d.ts +0 -101
  109. package/dist/core/plugin/PluginSandbox.js +0 -1
  110. package/dist/core/plugin.cjs +0 -1
  111. package/dist/core/plugin.d.ts +0 -224
  112. package/dist/core/plugin.js +0 -1
  113. package/dist/core/router/RouterManager.cjs +0 -1
  114. package/dist/core/router/RouterManager.d.ts +0 -87
  115. package/dist/core/router/RouterManager.js +0 -1
  116. package/dist/core/router/adapter/AdapterManager.cjs +0 -1
  117. package/dist/core/router/adapter/AdapterManager.d.ts +0 -94
  118. package/dist/core/router/adapter/AdapterManager.js +0 -1
  119. package/dist/core/router/adapter/index.cjs +0 -1
  120. package/dist/core/router/adapter/index.d.ts +0 -6
  121. package/dist/core/router/adapter/index.js +0 -1
  122. package/dist/core/router/adapter/react-router/ReactRouterAdapter.cjs +0 -1
  123. package/dist/core/router/adapter/react-router/ReactRouterAdapter.d.ts +0 -43
  124. package/dist/core/router/adapter/react-router/ReactRouterAdapter.js +0 -1
  125. package/dist/core/router/adapter/react-router/index.cjs +0 -1
  126. package/dist/core/router/adapter/react-router/index.d.ts +0 -4
  127. package/dist/core/router/adapter/react-router/index.js +0 -1
  128. package/dist/core/router/adapter/types.cjs +0 -1
  129. package/dist/core/router/adapter/types.d.ts +0 -111
  130. package/dist/core/router/adapter/types.js +0 -1
  131. package/dist/core/router/dev/RouterDevTools.cjs +0 -1
  132. package/dist/core/router/dev/RouterDevTools.d.ts +0 -5
  133. package/dist/core/router/dev/RouterDevTools.js +0 -1
  134. package/dist/core/router/dev/index.cjs +0 -1
  135. package/dist/core/router/dev/index.d.ts +0 -4
  136. package/dist/core/router/dev/index.js +0 -1
  137. package/dist/core/router/dynamic/DynamicRouteManager.cjs +0 -1
  138. package/dist/core/router/dynamic/DynamicRouteManager.d.ts +0 -71
  139. package/dist/core/router/dynamic/DynamicRouteManager.js +0 -1
  140. package/dist/core/router/dynamic/index.cjs +0 -1
  141. package/dist/core/router/dynamic/index.d.ts +0 -4
  142. package/dist/core/router/dynamic/index.js +0 -1
  143. package/dist/core/router/errors/RouterError.cjs +0 -1
  144. package/dist/core/router/errors/RouterError.d.ts +0 -48
  145. package/dist/core/router/errors/RouterError.js +0 -1
  146. package/dist/core/router/errors/index.cjs +0 -1
  147. package/dist/core/router/errors/index.d.ts +0 -4
  148. package/dist/core/router/errors/index.js +0 -1
  149. package/dist/core/router/index.cjs +0 -1
  150. package/dist/core/router/index.d.ts +0 -16
  151. package/dist/core/router/index.js +0 -1
  152. package/dist/core/router/lifecycle/RouterLifecycleManager.cjs +0 -1
  153. package/dist/core/router/lifecycle/RouterLifecycleManager.d.ts +0 -56
  154. package/dist/core/router/lifecycle/RouterLifecycleManager.js +0 -1
  155. package/dist/core/router/lifecycle/index.cjs +0 -1
  156. package/dist/core/router/lifecycle/index.d.ts +0 -4
  157. package/dist/core/router/lifecycle/index.js +0 -1
  158. package/dist/core/router/middleware/RouterMiddlewareManager.cjs +0 -1
  159. package/dist/core/router/middleware/RouterMiddlewareManager.d.ts +0 -61
  160. package/dist/core/router/middleware/RouterMiddlewareManager.js +0 -1
  161. package/dist/core/router/middleware/auth.cjs +0 -1
  162. package/dist/core/router/middleware/auth.d.ts +0 -54
  163. package/dist/core/router/middleware/auth.js +0 -1
  164. package/dist/core/router/middleware/index.cjs +0 -1
  165. package/dist/core/router/middleware/index.d.ts +0 -6
  166. package/dist/core/router/middleware/index.js +0 -1
  167. package/dist/core/router/middleware/types.cjs +0 -1
  168. package/dist/core/router/middleware/types.d.ts +0 -82
  169. package/dist/core/router/middleware/types.js +0 -1
  170. package/dist/core/router/monitoring/RouterMonitoring.cjs +0 -1
  171. package/dist/core/router/monitoring/RouterMonitoring.d.ts +0 -134
  172. package/dist/core/router/monitoring/RouterMonitoring.js +0 -1
  173. package/dist/core/router/monitoring/index.cjs +0 -1
  174. package/dist/core/router/monitoring/index.d.ts +0 -4
  175. package/dist/core/router/monitoring/index.js +0 -1
  176. package/dist/core/router/navigation/RouterNavigation.cjs +0 -1
  177. package/dist/core/router/navigation/RouterNavigation.d.ts +0 -43
  178. package/dist/core/router/navigation/RouterNavigation.js +0 -1
  179. package/dist/core/router/navigation/index.cjs +0 -1
  180. package/dist/core/router/navigation/index.d.ts +0 -4
  181. package/dist/core/router/navigation/index.js +0 -1
  182. package/dist/core/router/performance/RouteCache.cjs +0 -1
  183. package/dist/core/router/performance/RouteCache.d.ts +0 -113
  184. package/dist/core/router/performance/RouteCache.js +0 -1
  185. package/dist/core/router/performance/RoutePreloader.cjs +0 -1
  186. package/dist/core/router/performance/RoutePreloader.d.ts +0 -111
  187. package/dist/core/router/performance/RoutePreloader.js +0 -1
  188. package/dist/core/router/performance/index.cjs +0 -1
  189. package/dist/core/router/performance/index.d.ts +0 -5
  190. package/dist/core/router/performance/index.js +0 -1
  191. package/dist/core/router/plugin/RouterPluginManager.cjs +0 -1
  192. package/dist/core/router/plugin/RouterPluginManager.d.ts +0 -74
  193. package/dist/core/router/plugin/RouterPluginManager.js +0 -1
  194. package/dist/core/router/plugin/index.cjs +0 -1
  195. package/dist/core/router/plugin/index.d.ts +0 -5
  196. package/dist/core/router/plugin/index.js +0 -1
  197. package/dist/core/router/plugin/types.cjs +0 -1
  198. package/dist/core/router/plugin/types.d.ts +0 -153
  199. package/dist/core/router/plugin/types.js +0 -1
  200. package/dist/core/router/types.cjs +0 -1
  201. package/dist/core/router/types.d.ts +0 -464
  202. package/dist/core/router/types.js +0 -1
  203. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.cjs +0 -1
  204. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.d.ts +0 -2
  205. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.js +0 -1
  206. package/dist/core/router/utils/adapters/react-router/transform.cjs +0 -1
  207. package/dist/core/router/utils/adapters/react-router/transform.d.ts +0 -5
  208. package/dist/core/router/utils/adapters/react-router/transform.js +0 -1
  209. package/dist/core/router/utils/transform.cjs +0 -1
  210. package/dist/core/router/utils/transform.d.ts +0 -348
  211. package/dist/core/router/utils/transform.js +0 -1
  212. package/dist/core/router/validation/RouterConfigValidator.cjs +0 -2
  213. package/dist/core/router/validation/RouterConfigValidator.d.ts +0 -121
  214. package/dist/core/router/validation/RouterConfigValidator.js +0 -2
  215. package/dist/core/router/validation/index.cjs +0 -1
  216. package/dist/core/router/validation/index.d.ts +0 -5
  217. package/dist/core/router/validation/index.js +0 -1
  218. package/dist/core/router/validation/schema.cjs +0 -1
  219. package/dist/core/router/validation/schema.d.ts +0 -180
  220. package/dist/core/router/validation/schema.js +0 -1
  221. package/dist/core/router/version/RouteVersionManager.cjs +0 -1
  222. package/dist/core/router/version/RouteVersionManager.d.ts +0 -124
  223. package/dist/core/router/version/RouteVersionManager.js +0 -1
  224. package/dist/core/router/version/index.cjs +0 -1
  225. package/dist/core/router/version/index.d.ts +0 -4
  226. package/dist/core/router/version/index.js +0 -1
  227. package/dist/core/splash/SplashScreen.cjs +0 -1
  228. package/dist/core/splash/SplashScreen.d.ts +0 -14
  229. package/dist/core/splash/SplashScreen.js +0 -1
  230. package/dist/core/splash/index.cjs +0 -1
  231. package/dist/core/splash/index.d.ts +0 -5
  232. package/dist/core/splash/index.js +0 -1
  233. package/dist/core/splash/splashScreenUtils.cjs +0 -1
  234. package/dist/core/splash/splashScreenUtils.d.ts +0 -7
  235. package/dist/core/splash/splashScreenUtils.js +0 -1
  236. package/dist/core/startup/AppInstance.cjs +0 -1
  237. package/dist/core/startup/AppInstance.d.ts +0 -138
  238. package/dist/core/startup/AppInstance.js +0 -1
  239. package/dist/core/startup/environment.cjs +0 -1
  240. package/dist/core/startup/environment.d.ts +0 -87
  241. package/dist/core/startup/environment.js +0 -1
  242. package/dist/core/startup/index.cjs +0 -1
  243. package/dist/core/startup/index.d.ts +0 -7
  244. package/dist/core/startup/index.js +0 -1
  245. package/dist/core/startup/initializeServices.cjs +0 -1
  246. package/dist/core/startup/initializeServices.d.ts +0 -68
  247. package/dist/core/startup/initializeServices.js +0 -1
  248. package/dist/core/startup/performanceTracker.cjs +0 -1
  249. package/dist/core/startup/performanceTracker.d.ts +0 -104
  250. package/dist/core/startup/performanceTracker.js +0 -1
  251. package/dist/core/startup/renderApp.cjs +0 -1
  252. package/dist/core/startup/renderApp.d.ts +0 -70
  253. package/dist/core/startup/renderApp.js +0 -1
  254. package/dist/core/startup/startApp.cjs +0 -1
  255. package/dist/core/startup/startApp.d.ts +0 -14
  256. package/dist/core/startup/startApp.js +0 -1
  257. package/dist/core/types.cjs +0 -1
  258. package/dist/core/types.d.ts +0 -501
  259. package/dist/core/types.js +0 -1
  260. package/dist/core-bak/Test.cjs +0 -1
  261. package/dist/core-bak/Test.d.ts +0 -5
  262. package/dist/core-bak/Test.js +0 -1
  263. package/dist/core-bak/app/AppContext.cjs +0 -1
  264. package/dist/core-bak/app/AppContext.d.ts +0 -113
  265. package/dist/core-bak/app/AppContext.js +0 -1
  266. package/dist/core-bak/app/AppContext.types.cjs +0 -1
  267. package/dist/core-bak/app/AppContext.types.d.ts +0 -146
  268. package/dist/core-bak/app/AppContext.types.js +0 -1
  269. package/dist/core-bak/app/BasicLayout.cjs +0 -1
  270. package/dist/core-bak/app/BasicLayout.d.ts +0 -15
  271. package/dist/core-bak/app/BasicLayout.js +0 -1
  272. package/dist/core-bak/app/DefaultApp.cjs +0 -1
  273. package/dist/core-bak/app/DefaultApp.d.ts +0 -10
  274. package/dist/core-bak/app/DefaultApp.js +0 -1
  275. package/dist/core-bak/app/index.cjs +0 -1
  276. package/dist/core-bak/app/index.d.ts +0 -8
  277. package/dist/core-bak/app/index.js +0 -1
  278. package/dist/core-bak/config/AppConfig.cjs +0 -1
  279. package/dist/core-bak/config/AppConfig.d.ts +0 -88
  280. package/dist/core-bak/config/AppConfig.js +0 -1
  281. package/dist/core-bak/config/ConfigLoader.cjs +0 -1
  282. package/dist/core-bak/config/ConfigLoader.d.ts +0 -118
  283. package/dist/core-bak/config/ConfigLoader.js +0 -1
  284. package/dist/core-bak/config/ConfigValidator.cjs +0 -2
  285. package/dist/core-bak/config/ConfigValidator.d.ts +0 -84
  286. package/dist/core-bak/config/ConfigValidator.js +0 -2
  287. package/dist/core-bak/config/index.cjs +0 -1
  288. package/dist/core-bak/config/index.d.ts +0 -6
  289. package/dist/core-bak/config/index.js +0 -1
  290. package/dist/core-bak/dev/DevTools.cjs +0 -1
  291. package/dist/core-bak/dev/DevTools.d.ts +0 -16
  292. package/dist/core-bak/dev/DevTools.js +0 -1
  293. package/dist/core-bak/error/ErrorBoundary.cjs +0 -1
  294. package/dist/core-bak/error/ErrorBoundary.d.ts +0 -121
  295. package/dist/core-bak/error/ErrorBoundary.js +0 -1
  296. package/dist/core-bak/error/ErrorHandler.cjs +0 -1
  297. package/dist/core-bak/error/ErrorHandler.d.ts +0 -171
  298. package/dist/core-bak/error/ErrorHandler.js +0 -1
  299. package/dist/core-bak/error/index.cjs +0 -1
  300. package/dist/core-bak/error/index.d.ts +0 -7
  301. package/dist/core-bak/error/index.js +0 -1
  302. package/dist/core-bak/event/AppEventBus.cjs +0 -1
  303. package/dist/core-bak/event/AppEventBus.d.ts +0 -178
  304. package/dist/core-bak/event/AppEventBus.js +0 -1
  305. package/dist/core-bak/event/frameworkEvents.cjs +0 -1
  306. package/dist/core-bak/event/frameworkEvents.d.ts +0 -69
  307. package/dist/core-bak/event/frameworkEvents.js +0 -1
  308. package/dist/core-bak/event/hooks.cjs +0 -1
  309. package/dist/core-bak/event/hooks.d.ts +0 -57
  310. package/dist/core-bak/event/hooks.js +0 -1
  311. package/dist/core-bak/event/index.cjs +0 -1
  312. package/dist/core-bak/event/index.d.ts +0 -10
  313. package/dist/core-bak/event/index.js +0 -1
  314. package/dist/core-bak/event/types.cjs +0 -1
  315. package/dist/core-bak/event/types.d.ts +0 -269
  316. package/dist/core-bak/event/types.js +0 -1
  317. package/dist/core-bak/event/useEventBus.cjs +0 -1
  318. package/dist/core-bak/event/useEventBus.d.ts +0 -28
  319. package/dist/core-bak/event/useEventBus.js +0 -1
  320. package/dist/core-bak/index.cjs +0 -1
  321. package/dist/core-bak/index.d.ts +0 -54
  322. package/dist/core-bak/index.js +0 -1
  323. package/dist/core-bak/initialization/InitializationErrorThrower.cjs +0 -1
  324. package/dist/core-bak/initialization/InitializationErrorThrower.d.ts +0 -7
  325. package/dist/core-bak/initialization/InitializationErrorThrower.js +0 -1
  326. package/dist/core-bak/initialization/index.cjs +0 -1
  327. package/dist/core-bak/initialization/index.d.ts +0 -7
  328. package/dist/core-bak/initialization/index.js +0 -1
  329. package/dist/core-bak/initialization/initialization.cjs +0 -1
  330. package/dist/core-bak/initialization/initialization.d.ts +0 -69
  331. package/dist/core-bak/initialization/initialization.js +0 -1
  332. package/dist/core-bak/initialization/initializationErrorState.cjs +0 -1
  333. package/dist/core-bak/initialization/initializationErrorState.d.ts +0 -35
  334. package/dist/core-bak/initialization/initializationErrorState.js +0 -1
  335. package/dist/core-bak/kernel/defaultAdapters.cjs +0 -1
  336. package/dist/core-bak/kernel/defaultAdapters.d.ts +0 -2
  337. package/dist/core-bak/kernel/defaultAdapters.js +0 -1
  338. package/dist/core-bak/kernel/errors.cjs +0 -1
  339. package/dist/core-bak/kernel/errors.d.ts +0 -18
  340. package/dist/core-bak/kernel/errors.js +0 -1
  341. package/dist/core-bak/kernel/index.cjs +0 -1
  342. package/dist/core-bak/kernel/index.d.ts +0 -3
  343. package/dist/core-bak/kernel/index.js +0 -1
  344. package/dist/core-bak/kernel/startKernel.cjs +0 -1
  345. package/dist/core-bak/kernel/startKernel.d.ts +0 -2
  346. package/dist/core-bak/kernel/startKernel.js +0 -1
  347. package/dist/core-bak/kernel/types.cjs +0 -1
  348. package/dist/core-bak/kernel/types.d.ts +0 -114
  349. package/dist/core-bak/kernel/types.js +0 -1
  350. package/dist/core-bak/middleware.cjs +0 -1
  351. package/dist/core-bak/middleware.d.ts +0 -36
  352. package/dist/core-bak/middleware.js +0 -1
  353. package/dist/core-bak/plugin/PluginEventBus.cjs +0 -1
  354. package/dist/core-bak/plugin/PluginEventBus.d.ts +0 -169
  355. package/dist/core-bak/plugin/PluginEventBus.js +0 -1
  356. package/dist/core-bak/plugin/PluginSandbox.cjs +0 -1
  357. package/dist/core-bak/plugin/PluginSandbox.d.ts +0 -101
  358. package/dist/core-bak/plugin/PluginSandbox.js +0 -1
  359. package/dist/core-bak/plugin.cjs +0 -1
  360. package/dist/core-bak/plugin.d.ts +0 -224
  361. package/dist/core-bak/plugin.js +0 -1
  362. package/dist/core-bak/router/RouterManager.cjs +0 -1
  363. package/dist/core-bak/router/RouterManager.d.ts +0 -87
  364. package/dist/core-bak/router/RouterManager.js +0 -1
  365. package/dist/core-bak/router/adapter/AdapterManager.cjs +0 -1
  366. package/dist/core-bak/router/adapter/AdapterManager.d.ts +0 -94
  367. package/dist/core-bak/router/adapter/AdapterManager.js +0 -1
  368. package/dist/core-bak/router/adapter/index.cjs +0 -1
  369. package/dist/core-bak/router/adapter/index.d.ts +0 -6
  370. package/dist/core-bak/router/adapter/index.js +0 -1
  371. package/dist/core-bak/router/adapter/react-router/ReactRouterAdapter.cjs +0 -1
  372. package/dist/core-bak/router/adapter/react-router/ReactRouterAdapter.d.ts +0 -43
  373. package/dist/core-bak/router/adapter/react-router/ReactRouterAdapter.js +0 -1
  374. package/dist/core-bak/router/adapter/react-router/index.cjs +0 -1
  375. package/dist/core-bak/router/adapter/react-router/index.d.ts +0 -4
  376. package/dist/core-bak/router/adapter/react-router/index.js +0 -1
  377. package/dist/core-bak/router/adapter/types.cjs +0 -1
  378. package/dist/core-bak/router/adapter/types.d.ts +0 -111
  379. package/dist/core-bak/router/adapter/types.js +0 -1
  380. package/dist/core-bak/router/dev/RouterDevTools.cjs +0 -1
  381. package/dist/core-bak/router/dev/RouterDevTools.d.ts +0 -5
  382. package/dist/core-bak/router/dev/RouterDevTools.js +0 -1
  383. package/dist/core-bak/router/dev/index.cjs +0 -1
  384. package/dist/core-bak/router/dev/index.d.ts +0 -4
  385. package/dist/core-bak/router/dev/index.js +0 -1
  386. package/dist/core-bak/router/dynamic/DynamicRouteManager.cjs +0 -1
  387. package/dist/core-bak/router/dynamic/DynamicRouteManager.d.ts +0 -71
  388. package/dist/core-bak/router/dynamic/DynamicRouteManager.js +0 -1
  389. package/dist/core-bak/router/dynamic/index.cjs +0 -1
  390. package/dist/core-bak/router/dynamic/index.d.ts +0 -4
  391. package/dist/core-bak/router/dynamic/index.js +0 -1
  392. package/dist/core-bak/router/errors/RouterError.cjs +0 -1
  393. package/dist/core-bak/router/errors/RouterError.d.ts +0 -48
  394. package/dist/core-bak/router/errors/RouterError.js +0 -1
  395. package/dist/core-bak/router/errors/index.cjs +0 -1
  396. package/dist/core-bak/router/errors/index.d.ts +0 -4
  397. package/dist/core-bak/router/errors/index.js +0 -1
  398. package/dist/core-bak/router/index.cjs +0 -1
  399. package/dist/core-bak/router/index.d.ts +0 -16
  400. package/dist/core-bak/router/index.js +0 -1
  401. package/dist/core-bak/router/lifecycle/RouterLifecycleManager.cjs +0 -1
  402. package/dist/core-bak/router/lifecycle/RouterLifecycleManager.d.ts +0 -56
  403. package/dist/core-bak/router/lifecycle/RouterLifecycleManager.js +0 -1
  404. package/dist/core-bak/router/lifecycle/index.cjs +0 -1
  405. package/dist/core-bak/router/lifecycle/index.d.ts +0 -4
  406. package/dist/core-bak/router/lifecycle/index.js +0 -1
  407. package/dist/core-bak/router/middleware/RouterMiddlewareManager.cjs +0 -1
  408. package/dist/core-bak/router/middleware/RouterMiddlewareManager.d.ts +0 -61
  409. package/dist/core-bak/router/middleware/RouterMiddlewareManager.js +0 -1
  410. package/dist/core-bak/router/middleware/auth.cjs +0 -1
  411. package/dist/core-bak/router/middleware/auth.d.ts +0 -54
  412. package/dist/core-bak/router/middleware/auth.js +0 -1
  413. package/dist/core-bak/router/middleware/index.cjs +0 -1
  414. package/dist/core-bak/router/middleware/index.d.ts +0 -6
  415. package/dist/core-bak/router/middleware/index.js +0 -1
  416. package/dist/core-bak/router/middleware/types.cjs +0 -1
  417. package/dist/core-bak/router/middleware/types.d.ts +0 -82
  418. package/dist/core-bak/router/middleware/types.js +0 -1
  419. package/dist/core-bak/router/monitoring/RouterMonitoring.cjs +0 -1
  420. package/dist/core-bak/router/monitoring/RouterMonitoring.d.ts +0 -134
  421. package/dist/core-bak/router/monitoring/RouterMonitoring.js +0 -1
  422. package/dist/core-bak/router/monitoring/index.cjs +0 -1
  423. package/dist/core-bak/router/monitoring/index.d.ts +0 -4
  424. package/dist/core-bak/router/monitoring/index.js +0 -1
  425. package/dist/core-bak/router/navigation/RouterNavigation.cjs +0 -1
  426. package/dist/core-bak/router/navigation/RouterNavigation.d.ts +0 -43
  427. package/dist/core-bak/router/navigation/RouterNavigation.js +0 -1
  428. package/dist/core-bak/router/navigation/index.cjs +0 -1
  429. package/dist/core-bak/router/navigation/index.d.ts +0 -4
  430. package/dist/core-bak/router/navigation/index.js +0 -1
  431. package/dist/core-bak/router/performance/RouteCache.cjs +0 -1
  432. package/dist/core-bak/router/performance/RouteCache.d.ts +0 -113
  433. package/dist/core-bak/router/performance/RouteCache.js +0 -1
  434. package/dist/core-bak/router/performance/RoutePreloader.cjs +0 -1
  435. package/dist/core-bak/router/performance/RoutePreloader.d.ts +0 -111
  436. package/dist/core-bak/router/performance/RoutePreloader.js +0 -1
  437. package/dist/core-bak/router/performance/index.cjs +0 -1
  438. package/dist/core-bak/router/performance/index.d.ts +0 -5
  439. package/dist/core-bak/router/performance/index.js +0 -1
  440. package/dist/core-bak/router/plugin/RouterPluginManager.cjs +0 -1
  441. package/dist/core-bak/router/plugin/RouterPluginManager.d.ts +0 -74
  442. package/dist/core-bak/router/plugin/RouterPluginManager.js +0 -1
  443. package/dist/core-bak/router/plugin/index.cjs +0 -1
  444. package/dist/core-bak/router/plugin/index.d.ts +0 -5
  445. package/dist/core-bak/router/plugin/index.js +0 -1
  446. package/dist/core-bak/router/plugin/types.cjs +0 -1
  447. package/dist/core-bak/router/plugin/types.d.ts +0 -153
  448. package/dist/core-bak/router/plugin/types.js +0 -1
  449. package/dist/core-bak/router/types.cjs +0 -1
  450. package/dist/core-bak/router/types.d.ts +0 -464
  451. package/dist/core-bak/router/types.js +0 -1
  452. package/dist/core-bak/router/utils/adapters/react-router/RouteErrorBoundary.cjs +0 -1
  453. package/dist/core-bak/router/utils/adapters/react-router/RouteErrorBoundary.d.ts +0 -2
  454. package/dist/core-bak/router/utils/adapters/react-router/RouteErrorBoundary.js +0 -1
  455. package/dist/core-bak/router/utils/adapters/react-router/transform.cjs +0 -1
  456. package/dist/core-bak/router/utils/adapters/react-router/transform.d.ts +0 -5
  457. package/dist/core-bak/router/utils/adapters/react-router/transform.js +0 -1
  458. package/dist/core-bak/router/utils/transform.cjs +0 -1
  459. package/dist/core-bak/router/utils/transform.d.ts +0 -348
  460. package/dist/core-bak/router/utils/transform.js +0 -1
  461. package/dist/core-bak/router/validation/RouterConfigValidator.cjs +0 -2
  462. package/dist/core-bak/router/validation/RouterConfigValidator.d.ts +0 -121
  463. package/dist/core-bak/router/validation/RouterConfigValidator.js +0 -2
  464. package/dist/core-bak/router/validation/index.cjs +0 -1
  465. package/dist/core-bak/router/validation/index.d.ts +0 -5
  466. package/dist/core-bak/router/validation/index.js +0 -1
  467. package/dist/core-bak/router/validation/schema.cjs +0 -1
  468. package/dist/core-bak/router/validation/schema.d.ts +0 -180
  469. package/dist/core-bak/router/validation/schema.js +0 -1
  470. package/dist/core-bak/router/version/RouteVersionManager.cjs +0 -1
  471. package/dist/core-bak/router/version/RouteVersionManager.d.ts +0 -124
  472. package/dist/core-bak/router/version/RouteVersionManager.js +0 -1
  473. package/dist/core-bak/router/version/index.cjs +0 -1
  474. package/dist/core-bak/router/version/index.d.ts +0 -4
  475. package/dist/core-bak/router/version/index.js +0 -1
  476. package/dist/core-bak/splash/SplashScreen.cjs +0 -1
  477. package/dist/core-bak/splash/SplashScreen.d.ts +0 -14
  478. package/dist/core-bak/splash/SplashScreen.js +0 -1
  479. package/dist/core-bak/splash/index.cjs +0 -1
  480. package/dist/core-bak/splash/index.d.ts +0 -5
  481. package/dist/core-bak/splash/index.js +0 -1
  482. package/dist/core-bak/splash/splashScreenUtils.cjs +0 -1
  483. package/dist/core-bak/splash/splashScreenUtils.d.ts +0 -7
  484. package/dist/core-bak/splash/splashScreenUtils.js +0 -1
  485. package/dist/core-bak/startup/AppInstance.cjs +0 -1
  486. package/dist/core-bak/startup/AppInstance.d.ts +0 -138
  487. package/dist/core-bak/startup/AppInstance.js +0 -1
  488. package/dist/core-bak/startup/environment.cjs +0 -1
  489. package/dist/core-bak/startup/environment.d.ts +0 -87
  490. package/dist/core-bak/startup/environment.js +0 -1
  491. package/dist/core-bak/startup/index.cjs +0 -1
  492. package/dist/core-bak/startup/index.d.ts +0 -7
  493. package/dist/core-bak/startup/index.js +0 -1
  494. package/dist/core-bak/startup/initializeServices.cjs +0 -1
  495. package/dist/core-bak/startup/initializeServices.d.ts +0 -68
  496. package/dist/core-bak/startup/initializeServices.js +0 -1
  497. package/dist/core-bak/startup/performanceTracker.cjs +0 -1
  498. package/dist/core-bak/startup/performanceTracker.d.ts +0 -104
  499. package/dist/core-bak/startup/performanceTracker.js +0 -1
  500. package/dist/core-bak/startup/renderApp.cjs +0 -1
  501. package/dist/core-bak/startup/renderApp.d.ts +0 -70
  502. package/dist/core-bak/startup/renderApp.js +0 -1
  503. package/dist/core-bak/startup/startApp.cjs +0 -1
  504. package/dist/core-bak/startup/startApp.d.ts +0 -14
  505. package/dist/core-bak/startup/startApp.js +0 -1
  506. package/dist/core-bak/types.cjs +0 -1
  507. package/dist/core-bak/types.d.ts +0 -501
  508. package/dist/core-bak/types.js +0 -1
  509. package/dist/index.umd.cjs +0 -1
  510. package/dist/index.umd.d.ts +0 -7
@@ -1,87 +0,0 @@
1
- /**
2
- * 环境检测模块
3
- * 负责检测运行环境和提供适配能力
4
- */
5
- /**
6
- * 运行环境类型
7
- */
8
- export declare enum RuntimeEnvironment {
9
- /**
10
- * 浏览器环境
11
- */
12
- BROWSER = "browser",
13
- /**
14
- * 服务端渲染环境(SSR)
15
- */
16
- SSR = "ssr",
17
- /**
18
- * 微前端容器环境
19
- */
20
- MICRO_FRONTEND = "micro-frontend",
21
- /**
22
- * Node.js环境
23
- */
24
- NODE = "node",
25
- /**
26
- * 未知环境
27
- */
28
- UNKNOWN = "unknown"
29
- }
30
- /**
31
- * 环境检测器
32
- */
33
- export declare class EnvironmentDetector {
34
- private static instance;
35
- private environment;
36
- private isBrowser;
37
- private isSSR;
38
- private isMicroFrontend;
39
- private constructor();
40
- /**
41
- * 获取单例实例
42
- */
43
- static getInstance(): EnvironmentDetector;
44
- /**
45
- * 检测微前端环境
46
- */
47
- private detectMicroFrontend;
48
- /**
49
- * 检测运行环境
50
- */
51
- private detectEnvironment;
52
- /**
53
- * 获取当前运行环境
54
- */
55
- getEnvironment(): RuntimeEnvironment;
56
- /**
57
- * 是否为浏览器环境
58
- */
59
- isBrowserEnvironment(): boolean;
60
- /**
61
- * 是否为SSR环境
62
- */
63
- isSSREnvironment(): boolean;
64
- /**
65
- * 是否为微前端环境
66
- */
67
- isMicroFrontendEnvironment(): boolean;
68
- /**
69
- * 安全获取DOM元素(支持SSR)
70
- *
71
- * @param selector - 选择器或元素ID
72
- * @returns DOM元素或null
73
- */
74
- safeGetElement(selector: string | (() => HTMLElement | null)): HTMLElement | null;
75
- /**
76
- * 安全执行浏览器API(支持SSR)
77
- *
78
- * @param fn - 要执行的函数
79
- * @param fallback - 非浏览器环境的回退值
80
- * @returns 执行结果或回退值
81
- */
82
- safeExecuteBrowserAPI<T>(fn: () => T, fallback?: T): T | undefined;
83
- }
84
- /**
85
- * 获取环境检测器实例
86
- */
87
- export declare function getEnvironmentDetector(): EnvironmentDetector;
@@ -1 +0,0 @@
1
- function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}export var RuntimeEnvironment=/*#__PURE__*/function(RuntimeEnvironment){RuntimeEnvironment["BROWSER"]="browser";RuntimeEnvironment["SSR"]="ssr";RuntimeEnvironment["MICRO_FRONTEND"]="micro-frontend";RuntimeEnvironment["NODE"]="node";RuntimeEnvironment["UNKNOWN"]="unknown";return RuntimeEnvironment}({});export class EnvironmentDetector{static getInstance(){if(!EnvironmentDetector.instance){EnvironmentDetector.instance=new EnvironmentDetector}return EnvironmentDetector.instance}detectMicroFrontend(){if(typeof window==="undefined"){return false}return!!(window.__POWERED_BY_QIANKUN__||window.__MICRO_APP_ENVIRONMENT__||window.singleSpa||window.__SINGLE_SPA__)}detectEnvironment(){if(this.isMicroFrontend){return"micro-frontend"}if(this.isSSR){return"ssr"}if(this.isBrowser){return"browser"}if(typeof process!=="undefined"){return"node"}return"unknown"}getEnvironment(){return this.environment}isBrowserEnvironment(){return this.isBrowser}isSSREnvironment(){return this.isSSR}isMicroFrontendEnvironment(){return this.isMicroFrontend}safeGetElement(selector){if(!this.isBrowser){return null}if(typeof selector==="function"){try{return selector()}catch{return null}}try{if(selector.startsWith("#")){return document.getElementById(selector.slice(1))}return document.querySelector(selector)}catch{return null}}safeExecuteBrowserAPI(fn,fallback){if(!this.isBrowser){return fallback}try{return fn()}catch{return fallback}}constructor(){_define_property(this,"environment",void 0);_define_property(this,"isBrowser",void 0);_define_property(this,"isSSR",void 0);_define_property(this,"isMicroFrontend",void 0);this.isBrowser=typeof window!=="undefined"&&typeof document!=="undefined";this.isSSR=typeof window==="undefined"&&typeof process!=="undefined";this.isMicroFrontend=this.detectMicroFrontend();this.environment=this.detectEnvironment()}}_define_property(EnvironmentDetector,"instance",null);export function getEnvironmentDetector(){return EnvironmentDetector.getInstance()}
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});_export_star(require("./initializeServices"),exports);_export_star(require("./renderApp"),exports);_export_star(require("./performanceTracker"),exports);_export_star(require("./environment"),exports);function _export_star(from,to){Object.keys(from).forEach(function(k){if(k!=="default"&&!Object.prototype.hasOwnProperty.call(to,k)){Object.defineProperty(to,k,{enumerable:true,get:function(){return from[k]}})}});return from}
@@ -1,7 +0,0 @@
1
- /**
2
- * 启动模块统一导出
3
- */
4
- export * from './initializeServices';
5
- export * from './renderApp';
6
- export * from './performanceTracker';
7
- export * from './environment';
@@ -1 +0,0 @@
1
- export*from"./initializeServices";export*from"./renderApp";export*from"./performanceTracker";export*from"./environment";
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"initializeServices",{enumerable:true,get:function(){return initializeServices}});const _logger=require("@vlian/logger");const _monitoring=require("@vlian/monitoring");const _utils=require("@vlian/utils");const _library=require("../../library");const _state=require("../../state");const _AppEventBus=require("../event/AppEventBus");function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap;var cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}function _interop_require_wildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj}}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj)}var newObj={__proto__:null};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc)}else{newObj[key]=obj[key]}}}newObj.default=obj;if(cache){cache.set(obj,newObj)}return newObj}async function withRetry(fn,config={},serviceName){const maxRetries=config.maxRetries??3;const retryDelay=config.retryDelay??1e3;const exponentialBackoff=config.exponentialBackoff??true;let lastError;for(let attempt=0;attempt<=maxRetries;attempt++){try{return await fn()}catch(error){lastError=error;if(attempt<maxRetries){const delay=exponentialBackoff?retryDelay*Math.pow(2,attempt):retryDelay;_logger.logger.warn(`${serviceName} 初始化失败(尝试 ${attempt+1}/${maxRetries+1}),${delay}ms 后重试...`,error);await new Promise(resolve=>setTimeout(resolve,delay))}}}_logger.logger.error(`${serviceName} 初始化失败,已重试 ${maxRetries} 次`);throw lastError}async function initializeServices(options={}){const startTime=performance.now();const retryConfig={maxRetries:options.serviceRetry?.maxRetries??3,retryDelay:options.serviceRetry?.retryDelay??1e3,exponentialBackoff:options.serviceRetry?.exponentialBackoff??true};const monitoringPromise=withRetry(()=>Promise.resolve((0,_monitoring.initMonitoring)({...options.errorMonitor,onError:error=>{_logger.logger.error("监控服务捕获到错误:",error);options.errorMonitor?.onError?.(error)}})),retryConfig,"监控服务");const storagePromise=withRetry(()=>Promise.resolve().then(()=>{_library.storage.initialize(options.storageOptions);return _library.storage}),retryConfig,"存储服务");const stateManagerPromise=withRetry(()=>Promise.resolve().then(()=>{if(options.stateManager!==undefined){return new _state.StateManager(options.stateManager)}else{return new _state.StateManager({enableRegistry:true,defaultScope:"app"})}}),retryConfig,"状态管理器");const eventBusPromise=withRetry(()=>Promise.resolve().then(()=>{const eventBusConfig={enableTracking:options.eventBus?.enableTracking??process.env.NODE_ENV==="development",maxHistorySize:options.eventBus?.maxHistorySize??100,enableValidation:options.eventBus?.enableValidation??false,enablePerformanceMonitoring:options.eventBus?.enablePerformanceMonitoring??process.env.NODE_ENV==="development",namespacePrefix:options.eventBus?.namespacePrefix,instanceId:options.eventBus?.instanceId,enableSecurityMode:options.eventBus?.enableSecurityMode??false,allowedSources:options.eventBus?.allowedSources};return new _AppEventBus.AppEventBus(eventBusConfig)}),retryConfig,"事件总线");const[monitoring,,stateManager,eventBus]=await Promise.all([monitoringPromise,storagePromise,stateManagerPromise,eventBusPromise]);_logger.logger.info("关键服务初始化完成");const performanceMonitor=new _utils.PerformanceMonitor({...options.performanceMonitor,onReport:metrics=>{monitoring.reportPerformance(metrics);options.performanceMonitor?.onReport?.(metrics)}});if(typeof window!=="undefined"){const cleanupHandler=()=>{performanceMonitor.disconnect();window.removeEventListener("beforeunload",cleanupHandler)};window.addEventListener("beforeunload",cleanupHandler)}const criticalServicesDuration=performance.now()-startTime;_logger.logger.debug(`关键服务初始化完成,耗时: ${criticalServicesDuration.toFixed(2)}ms`);const initializeNonCriticalServices=async()=>{const nonCriticalStartTime=performance.now();const scheduleInit=callback=>{if(typeof window!=="undefined"&&"requestIdleCallback"in window){window.requestIdleCallback(callback,{timeout:5e3})}else{setTimeout(callback,100)}};return new Promise(resolve=>{scheduleInit(async()=>{try{if(options.analytics){try{await withRetry(()=>Promise.resolve().then(()=>/*#__PURE__*/_interop_require_wildcard(require("../../utils/analytics"))).then(({initAnalytics})=>{initAnalytics(options.analytics);return true}),retryConfig,"分析服务");_logger.logger.debug("分析服务初始化完成")}catch(error){_logger.logger.warn("分析服务初始化失败(不影响应用运行):",error)}}if(options.runtimeSecurity){try{await withRetry(()=>Promise.resolve().then(()=>/*#__PURE__*/_interop_require_wildcard(require("../../utils/runtimeSecurity"))).then(({RuntimeSecurity})=>{RuntimeSecurity.initialize(options.runtimeSecurity);return true}),retryConfig,"运行时安全服务");_logger.logger.debug("运行时安全服务初始化完成")}catch(error){_logger.logger.warn("运行时安全服务初始化失败(不影响应用运行):",error)}}const nonCriticalDuration=performance.now()-nonCriticalStartTime;_logger.logger.debug(`非关键服务初始化完成,耗时: ${nonCriticalDuration.toFixed(2)}ms`)}catch(error){_logger.logger.warn("非关键服务初始化过程中出现错误:",error)}finally{resolve()}})})};if(monitoring.reportPerformance){monitoring.reportPerformance({serviceInitDuration:criticalServicesDuration})}return{monitoring,performanceMonitor,stateManager,eventBus,initializeNonCriticalServices}}
@@ -1,68 +0,0 @@
1
- /**
2
- * 服务初始化模块
3
- * 负责初始化框架所需的各种服务
4
- */
5
- import type { MonitoringService } from '@vlian/monitoring';
6
- import { PerformanceMonitor } from '@vlian/utils';
7
- import { StateManager } from '../../state';
8
- import type { StartOptions } from '../types';
9
- import { AppEventBus } from '../event/AppEventBus';
10
- /**
11
- * 重试配置
12
- */
13
- export interface RetryConfig {
14
- /**
15
- * 最大重试次数
16
- * @default 3
17
- */
18
- maxRetries?: number;
19
- /**
20
- * 重试延迟(毫秒)
21
- * @default 1000
22
- */
23
- retryDelay?: number;
24
- /**
25
- * 是否启用指数退避
26
- * @default true
27
- */
28
- exponentialBackoff?: boolean;
29
- }
30
- /**
31
- * 服务初始化结果
32
- */
33
- export interface ServicesInitResult {
34
- /**
35
- * 监控服务实例
36
- */
37
- monitoring: MonitoringService;
38
- /**
39
- * 性能监控实例
40
- */
41
- performanceMonitor: PerformanceMonitor;
42
- /**
43
- * 状态管理器实例
44
- */
45
- stateManager: StateManager;
46
- /**
47
- * 事件总线实例
48
- */
49
- eventBus: AppEventBus;
50
- /**
51
- * 延迟初始化非关键服务的函数
52
- * 在应用渲染后调用,使用 requestIdleCallback 在空闲时初始化
53
- */
54
- initializeNonCriticalServices?: () => Promise<void>;
55
- }
56
- /**
57
- * 初始化所有服务
58
- *
59
- * 优化:
60
- * 1. 区分关键服务和非关键服务
61
- * 2. 关键服务并行初始化,缩短首屏时间
62
- * 3. 非关键服务延迟到应用渲染后初始化,使用 requestIdleCallback 在空闲时初始化
63
- * 4. 实现服务初始化失败重试机制,提高启动成功率
64
- *
65
- * @param options - 启动配置选项
66
- * @returns 服务初始化结果
67
- */
68
- export declare function initializeServices(options?: StartOptions): Promise<ServicesInitResult>;
@@ -1 +0,0 @@
1
- import{logger}from"@vlian/logger";import{initMonitoring}from"@vlian/monitoring";import{PerformanceMonitor}from"@vlian/utils";import{storage}from"../../library";import{StateManager}from"../../state";import{AppEventBus}from"../event/AppEventBus";async function withRetry(fn,config={},serviceName){const maxRetries=config.maxRetries??3;const retryDelay=config.retryDelay??1e3;const exponentialBackoff=config.exponentialBackoff??true;let lastError;for(let attempt=0;attempt<=maxRetries;attempt++){try{return await fn()}catch(error){lastError=error;if(attempt<maxRetries){const delay=exponentialBackoff?retryDelay*Math.pow(2,attempt):retryDelay;logger.warn(`${serviceName} 初始化失败(尝试 ${attempt+1}/${maxRetries+1}),${delay}ms 后重试...`,error);await new Promise(resolve=>setTimeout(resolve,delay))}}}logger.error(`${serviceName} 初始化失败,已重试 ${maxRetries} 次`);throw lastError}export async function initializeServices(options={}){const startTime=performance.now();const retryConfig={maxRetries:options.serviceRetry?.maxRetries??3,retryDelay:options.serviceRetry?.retryDelay??1e3,exponentialBackoff:options.serviceRetry?.exponentialBackoff??true};const monitoringPromise=withRetry(()=>Promise.resolve(initMonitoring({...options.errorMonitor,onError:error=>{logger.error("监控服务捕获到错误:",error);options.errorMonitor?.onError?.(error)}})),retryConfig,"监控服务");const storagePromise=withRetry(()=>Promise.resolve().then(()=>{storage.initialize(options.storageOptions);return storage}),retryConfig,"存储服务");const stateManagerPromise=withRetry(()=>Promise.resolve().then(()=>{if(options.stateManager!==undefined){return new StateManager(options.stateManager)}else{return new StateManager({enableRegistry:true,defaultScope:"app"})}}),retryConfig,"状态管理器");const eventBusPromise=withRetry(()=>Promise.resolve().then(()=>{const eventBusConfig={enableTracking:options.eventBus?.enableTracking??process.env.NODE_ENV==="development",maxHistorySize:options.eventBus?.maxHistorySize??100,enableValidation:options.eventBus?.enableValidation??false,enablePerformanceMonitoring:options.eventBus?.enablePerformanceMonitoring??process.env.NODE_ENV==="development",namespacePrefix:options.eventBus?.namespacePrefix,instanceId:options.eventBus?.instanceId,enableSecurityMode:options.eventBus?.enableSecurityMode??false,allowedSources:options.eventBus?.allowedSources};return new AppEventBus(eventBusConfig)}),retryConfig,"事件总线");const[monitoring,,stateManager,eventBus]=await Promise.all([monitoringPromise,storagePromise,stateManagerPromise,eventBusPromise]);logger.info("关键服务初始化完成");const performanceMonitor=new PerformanceMonitor({...options.performanceMonitor,onReport:metrics=>{monitoring.reportPerformance(metrics);options.performanceMonitor?.onReport?.(metrics)}});if(typeof window!=="undefined"){const cleanupHandler=()=>{performanceMonitor.disconnect();window.removeEventListener("beforeunload",cleanupHandler)};window.addEventListener("beforeunload",cleanupHandler)}const criticalServicesDuration=performance.now()-startTime;logger.debug(`关键服务初始化完成,耗时: ${criticalServicesDuration.toFixed(2)}ms`);const initializeNonCriticalServices=async()=>{const nonCriticalStartTime=performance.now();const scheduleInit=callback=>{if(typeof window!=="undefined"&&"requestIdleCallback"in window){window.requestIdleCallback(callback,{timeout:5e3})}else{setTimeout(callback,100)}};return new Promise(resolve=>{scheduleInit(async()=>{try{if(options.analytics){try{await withRetry(()=>import("../../utils/analytics").then(({initAnalytics})=>{initAnalytics(options.analytics);return true}),retryConfig,"分析服务");logger.debug("分析服务初始化完成")}catch(error){logger.warn("分析服务初始化失败(不影响应用运行):",error)}}if(options.runtimeSecurity){try{await withRetry(()=>import("../../utils/runtimeSecurity").then(({RuntimeSecurity})=>{RuntimeSecurity.initialize(options.runtimeSecurity);return true}),retryConfig,"运行时安全服务");logger.debug("运行时安全服务初始化完成")}catch(error){logger.warn("运行时安全服务初始化失败(不影响应用运行):",error)}}const nonCriticalDuration=performance.now()-nonCriticalStartTime;logger.debug(`非关键服务初始化完成,耗时: ${nonCriticalDuration.toFixed(2)}ms`)}catch(error){logger.warn("非关键服务初始化过程中出现错误:",error)}finally{resolve()}})})};if(monitoring.reportPerformance){monitoring.reportPerformance({serviceInitDuration:criticalServicesDuration})}return{monitoring,performanceMonitor,stateManager,eventBus,initializeNonCriticalServices}}
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get PerformanceTracker(){return PerformanceTracker},get STARTUP_METRIC_UNITS(){return STARTUP_METRIC_UNITS}});function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}const STARTUP_METRIC_UNITS={ms:"ms",none:""};let PerformanceTracker=class PerformanceTracker{recordServiceInit(duration){this.metrics.serviceInitDuration=duration}recordInitialization(duration){this.metrics.initializationDuration=duration}recordFirstRender(duration){this.metrics.firstRenderDuration=duration}recordTotalStartup(duration){this.metrics.totalStartupDuration=duration}collectWebVitals(){if(typeof window==="undefined"){return}if("PerformanceObserver"in window){try{const fcpObserver=new PerformanceObserver(list=>{for(const entry of list.getEntries()){if(entry.name==="first-contentful-paint"){this.metrics.fcp=entry.startTime;this.report()}}});fcpObserver.observe({entryTypes:["paint"]})}catch(e){}}if("PerformanceObserver"in window){try{const lcpObserver=new PerformanceObserver(list=>{const entries=list.getEntries();const lastEntry=entries[entries.length-1];this.metrics.lcp=lastEntry.startTime;this.report()});lcpObserver.observe({entryTypes:["largest-contentful-paint"]})}catch(e){}}if("PerformanceObserver"in window){try{const fidObserver=new PerformanceObserver(list=>{for(const entry of list.getEntries()){if("processingStart"in entry&&"startTime"in entry){const eventEntry=entry;this.metrics.fid=eventEntry.processingStart-eventEntry.startTime;this.report()}}});fidObserver.observe({entryTypes:["first-input"]})}catch(e){}}if("PerformanceObserver"in window){try{let clsValue=0;const clsObserver=new PerformanceObserver(list=>{for(const entry of list.getEntries()){if(!entry.hadRecentInput){clsValue+=entry.value}}this.metrics.cls=clsValue;this.report()});clsObserver.observe({entryTypes:["layout-shift"]})}catch(e){}}}report(){if(this.monitoring.reportPerformance){this.monitoring.reportPerformance(this.metrics)}}getMetrics(){return{...this.metrics}}getTotalDuration(){return performance.now()-this.startTime}constructor(monitoring){_define_property(this,"monitoring",void 0);_define_property(this,"metrics",{});_define_property(this,"startTime",void 0);this.monitoring=monitoring;this.startTime=performance.now()}};
@@ -1,104 +0,0 @@
1
- /**
2
- * 性能追踪模块
3
- * 负责收集和上报启动性能指标
4
- */
5
- import type { MonitoringService } from '@vlian/monitoring';
6
- /**
7
- * 启动性能指标单位常量
8
- */
9
- export declare const STARTUP_METRIC_UNITS: {
10
- /**
11
- * 毫秒单位
12
- */
13
- readonly ms: "ms";
14
- /**
15
- * 无单位(分数)
16
- */
17
- readonly none: "";
18
- };
19
- /**
20
- * 启动性能指标
21
- */
22
- export interface StartupPerformanceMetrics {
23
- /**
24
- * 服务初始化耗时
25
- * 单位:毫秒(ms)
26
- */
27
- serviceInitDuration?: number;
28
- /**
29
- * 初始化耗时
30
- * 单位:毫秒(ms)
31
- */
32
- initializationDuration?: number;
33
- /**
34
- * 首次渲染耗时
35
- * 单位:毫秒(ms)
36
- */
37
- firstRenderDuration?: number;
38
- /**
39
- * 总启动耗时
40
- * 单位:毫秒(ms)
41
- */
42
- totalStartupDuration?: number;
43
- /**
44
- * 首次内容绘制时间(FCP)
45
- * 单位:毫秒(ms)
46
- */
47
- fcp?: number;
48
- /**
49
- * 最大内容绘制时间(LCP)
50
- * 单位:毫秒(ms)
51
- */
52
- lcp?: number;
53
- /**
54
- * 首次输入延迟(FID)
55
- * 单位:毫秒(ms)
56
- */
57
- fid?: number;
58
- /**
59
- * 累积布局偏移(CLS)
60
- * 单位:无(分数)
61
- */
62
- cls?: number;
63
- }
64
- /**
65
- * 性能追踪器
66
- */
67
- export declare class PerformanceTracker {
68
- private monitoring;
69
- private metrics;
70
- private startTime;
71
- constructor(monitoring: MonitoringService);
72
- /**
73
- * 记录服务初始化耗时
74
- */
75
- recordServiceInit(duration: number): void;
76
- /**
77
- * 记录初始化耗时
78
- */
79
- recordInitialization(duration: number): void;
80
- /**
81
- * 记录首次渲染耗时
82
- */
83
- recordFirstRender(duration: number): void;
84
- /**
85
- * 记录总启动耗时
86
- */
87
- recordTotalStartup(duration: number): void;
88
- /**
89
- * 收集Web Vitals指标
90
- */
91
- collectWebVitals(): void;
92
- /**
93
- * 上报性能指标
94
- */
95
- report(): void;
96
- /**
97
- * 获取所有指标
98
- */
99
- getMetrics(): StartupPerformanceMetrics;
100
- /**
101
- * 获取总启动耗时
102
- */
103
- getTotalDuration(): number;
104
- }
@@ -1 +0,0 @@
1
- function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}export const STARTUP_METRIC_UNITS={ms:"ms",none:""};export class PerformanceTracker{recordServiceInit(duration){this.metrics.serviceInitDuration=duration}recordInitialization(duration){this.metrics.initializationDuration=duration}recordFirstRender(duration){this.metrics.firstRenderDuration=duration}recordTotalStartup(duration){this.metrics.totalStartupDuration=duration}collectWebVitals(){if(typeof window==="undefined"){return}if("PerformanceObserver"in window){try{const fcpObserver=new PerformanceObserver(list=>{for(const entry of list.getEntries()){if(entry.name==="first-contentful-paint"){this.metrics.fcp=entry.startTime;this.report()}}});fcpObserver.observe({entryTypes:["paint"]})}catch(e){}}if("PerformanceObserver"in window){try{const lcpObserver=new PerformanceObserver(list=>{const entries=list.getEntries();const lastEntry=entries[entries.length-1];this.metrics.lcp=lastEntry.startTime;this.report()});lcpObserver.observe({entryTypes:["largest-contentful-paint"]})}catch(e){}}if("PerformanceObserver"in window){try{const fidObserver=new PerformanceObserver(list=>{for(const entry of list.getEntries()){if("processingStart"in entry&&"startTime"in entry){const eventEntry=entry;this.metrics.fid=eventEntry.processingStart-eventEntry.startTime;this.report()}}});fidObserver.observe({entryTypes:["first-input"]})}catch(e){}}if("PerformanceObserver"in window){try{let clsValue=0;const clsObserver=new PerformanceObserver(list=>{for(const entry of list.getEntries()){if(!entry.hadRecentInput){clsValue+=entry.value}}this.metrics.cls=clsValue;this.report()});clsObserver.observe({entryTypes:["layout-shift"]})}catch(e){}}}report(){if(this.monitoring.reportPerformance){this.monitoring.reportPerformance(this.metrics)}}getMetrics(){return{...this.metrics}}getTotalDuration(){return performance.now()-this.startTime}constructor(monitoring){_define_property(this,"monitoring",void 0);_define_property(this,"metrics",{});_define_property(this,"startTime",void 0);this.monitoring=monitoring;this.startTime=performance.now()}}
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"AppRenderer",{enumerable:true,get:function(){return AppRenderer}});const _jsxruntime=require("react/jsx-runtime");const _client=require("react-dom/client");const _react=require("react");const _app=require("../app");const _error=require("../error");const _initialization=require("../initialization");const _splash=require("../splash");const _utils=require("@vlian/utils");const _RouterManager=require("../router/RouterManager");const _reactrouterdom=require("react-router-dom");function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap;var cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}function _interop_require_wildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj}}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj)}var newObj={__proto__:null};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc)}else{newObj[key]=obj[key]}}}newObj.default=obj;if(cache){cache.set(obj,newObj)}return newObj}const OptimizedAppContent=(0,_react.memo)(({options,services,context,securityConfig:_securityConfig})=>{const initialLocale=(0,_react.useMemo)(()=>{return options.locale?Object.keys(options.locale)[0]||"zh-CN":"zh-CN"},[options.locale]);const shouldUseRouter=(0,_react.useMemo)(()=>{const routerEnabled=options.router?options.router.enabled!==false&&options.router.enabled!=="disabled":false;if(!routerEnabled){return false}const routerManager=(0,_RouterManager.getRouterManager)();const router=routerManager.getRouter();return router!==null},[options.router]);const router=(0,_react.useMemo)(()=>{if(!shouldUseRouter){return null}const routerManager=(0,_RouterManager.getRouterManager)();return routerManager.getRouter()},[shouldUseRouter]);const handleError=(0,_react.useCallback)(error=>{services.monitoring.captureError(error)},[services.monitoring]);const appContent=(0,_react.useMemo)(()=>{if(shouldUseRouter&&router){return(0,_jsxruntime.jsx)(_reactrouterdom.RouterProvider,{router:router})}return options.app||(0,_jsxruntime.jsx)(_app.DefaultApp,{})},[shouldUseRouter,router,options.app]);return(0,_jsxruntime.jsxs)(_error.ErrorBoundary,{fallback:options.errorFallback,onError:handleError,children:[(0,_jsxruntime.jsx)(_initialization.InitializationErrorThrower,{}),(0,_jsxruntime.jsx)(_app.AppContextProvider,{initialTheme:options.theme,initialLocale:initialLocale,initialAntdConfig:options.uiProvider||options.antd,initialInitializationContext:context,stateManager:services.stateManager,antdApp:options.uiApp||options.antdApp,children:(0,_jsxruntime.jsx)(_app.BasicLayout,{globalProvider:options.globalProvider,children:appContent})})]})});OptimizedAppContent.displayName="OptimizedAppContent";let AppRenderer=class AppRenderer{initialize(container,rootOptions){this.container=container;if(!this.root){this.root=(0,_client.createRoot)(container,rootOptions)}}async renderApp(options,services,context){if(!this.root){throw new Error("渲染器未初始化,请先调用 initialize()")}const securityConfig={enableXSSProtection:options.security?.enableXSSProtection??true,validateConfig:options.security?.validateConfig??true,sanitizeUserInput:options.security?.sanitizeUserInput??true,csrf:options.security?.csrf};if(securityConfig.enableXSSProtection&&securityConfig.validateConfig){Promise.resolve().then(()=>{try{const configStr=JSON.stringify(options);const validation=_utils.SecurityUtils.validateInput(configStr);if(!validation.safe){services.monitoring.captureError(new Error("配置项包含不安全内容"),{reason:validation.reason})}}catch(error){}})}if(securityConfig.enableXSSProtection&&securityConfig.csrf?.enabled!==false){Promise.resolve().then(()=>/*#__PURE__*/_interop_require_wildcard(require("@vlian/csrf"))).then(({initCSRFManager})=>{initCSRFManager({headerName:securityConfig.csrf?.headerName,cookieName:securityConfig.csrf?.cookieName,getToken:securityConfig.csrf?.getToken,validateToken:securityConfig.csrf?.validateToken})}).catch(error=>{if(process.env.NODE_ENV==="development"){console.warn("CSRF 防护初始化失败:",error)}})}this.root.render((0,_jsxruntime.jsx)(_react.StrictMode,{children:(0,_jsxruntime.jsx)(OptimizedAppContent,{options:options,services:services,context:context,securityConfig:securityConfig})}))}renderSplashScreen(options,services,onComplete){if(!this.root){throw new Error("渲染器未初始化,请先调用 initialize()")}const initialLocale=options.locale?Object.keys(options.locale)[0]||"zh-CN":"zh-CN";this.root.render((0,_jsxruntime.jsx)(_react.StrictMode,{children:(0,_jsxruntime.jsxs)(_error.ErrorBoundary,{fallback:options.errorFallback,onError:error=>{services.monitoring.captureError(error)},children:[(0,_jsxruntime.jsx)(_initialization.InitializationErrorThrower,{}),(0,_jsxruntime.jsx)(_app.AppContextProvider,{initialTheme:options.theme,initialLocale:initialLocale,initialAntdConfig:options.uiProvider||options.antd,stateManager:services.stateManager,antdApp:options.uiApp||options.antdApp,children:(0,_jsxruntime.jsx)(_app.BasicLayout,{globalProvider:options.globalProvider,children:(0,_jsxruntime.jsx)(_splash.SplashScreen,{options:options,onComplete:onComplete})})})]})}))}renderError(options,services){if(!this.root){throw new Error("渲染器未初始化,请先调用 initialize()")}this.root.render((0,_jsxruntime.jsx)(_react.StrictMode,{children:(0,_jsxruntime.jsxs)(_error.ErrorBoundary,{fallback:options.errorFallback,onError:err=>{services.monitoring.captureError(err);if(options.errorMonitor?.onError){options.errorMonitor.onError(err)}},children:[(0,_jsxruntime.jsx)(_initialization.InitializationErrorThrower,{}),(0,_jsxruntime.jsx)("div",{children:"框架启动失败"})]})}))}destroy(){if(this.root){this.root.unmount();this.root=null}this.container=null}getContainer(){return this.container}constructor(){_define_property(this,"root",null);_define_property(this,"container",null)}};
@@ -1,70 +0,0 @@
1
- /**
2
- * 应用渲染模块
3
- * 负责渲染React应用
4
- */
5
- import type { Container, RootOptions } from 'react-dom/client';
6
- import type { StartOptions } from '../types';
7
- import type { InitializationContext } from '../initialization';
8
- import type { MonitoringService } from '@vlian/monitoring';
9
- import type { StateManager } from '../../state';
10
- /**
11
- * 应用渲染器
12
- */
13
- export declare class AppRenderer {
14
- private root;
15
- private container;
16
- /**
17
- * 初始化渲染器
18
- *
19
- * @param container - React应用的挂载容器
20
- * @param rootOptions - React根节点配置选项
21
- */
22
- initialize(container: Container, rootOptions?: RootOptions): void;
23
- /**
24
- * 渲染应用
25
- *
26
- * 优化:
27
- * 1. 默认启用安全防护(XSS防护)
28
- * 2. 优化组件渲染性能,使用 useMemo 缓存计算结果
29
- * 3. 将安全配置计算提取到初始化阶段
30
- *
31
- * @param options - 启动配置选项
32
- * @param services - 服务实例
33
- * @param context - 初始化上下文(可选)
34
- */
35
- renderApp(options: StartOptions, services: {
36
- monitoring: MonitoringService;
37
- stateManager: StateManager;
38
- }, context?: InitializationContext): Promise<void>;
39
- /**
40
- * 渲染启动页
41
- *
42
- * 注意:启动页不使用 RouterWrapper,因为启动页应该在路由系统之前渲染
43
- *
44
- * @param options - 启动配置选项
45
- * @param services - 服务实例
46
- * @param onComplete - 启动页完成回调
47
- */
48
- renderSplashScreen(options: StartOptions, services: {
49
- monitoring: MonitoringService;
50
- stateManager: StateManager;
51
- }, onComplete: (context: InitializationContext) => void): void;
52
- /**
53
- * 渲染错误页面
54
- *
55
- * @param options - 启动配置选项
56
- * @param services - 服务实例
57
- * @param error - 错误信息
58
- */
59
- renderError(options: StartOptions, services: {
60
- monitoring: MonitoringService;
61
- }): void;
62
- /**
63
- * 销毁渲染器
64
- */
65
- destroy(): void;
66
- /**
67
- * 获取容器
68
- */
69
- getContainer(): Container | null;
70
- }
@@ -1 +0,0 @@
1
- function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{createRoot}from"react-dom/client";import{StrictMode,useMemo,useCallback,memo}from"react";import{BasicLayout,DefaultApp,AppContextProvider}from"../app";import{ErrorBoundary}from"../error";import{InitializationErrorThrower}from"../initialization";import{SplashScreen}from"../splash";import{SecurityUtils}from"@vlian/utils";import{getRouterManager}from"../router/RouterManager";import{RouterProvider}from"react-router-dom";const OptimizedAppContent=memo(({options,services,context,securityConfig:_securityConfig})=>{const initialLocale=useMemo(()=>{return options.locale?Object.keys(options.locale)[0]||"zh-CN":"zh-CN"},[options.locale]);const shouldUseRouter=useMemo(()=>{const routerEnabled=options.router?options.router.enabled!==false&&options.router.enabled!=="disabled":false;if(!routerEnabled){return false}const routerManager=getRouterManager();const router=routerManager.getRouter();return router!==null},[options.router]);const router=useMemo(()=>{if(!shouldUseRouter){return null}const routerManager=getRouterManager();return routerManager.getRouter()},[shouldUseRouter]);const handleError=useCallback(error=>{services.monitoring.captureError(error)},[services.monitoring]);const appContent=useMemo(()=>{if(shouldUseRouter&&router){return _jsx(RouterProvider,{router:router})}return options.app||_jsx(DefaultApp,{})},[shouldUseRouter,router,options.app]);return _jsxs(ErrorBoundary,{fallback:options.errorFallback,onError:handleError,children:[_jsx(InitializationErrorThrower,{}),_jsx(AppContextProvider,{initialTheme:options.theme,initialLocale:initialLocale,initialAntdConfig:options.uiProvider||options.antd,initialInitializationContext:context,stateManager:services.stateManager,antdApp:options.uiApp||options.antdApp,children:_jsx(BasicLayout,{globalProvider:options.globalProvider,children:appContent})})]})});OptimizedAppContent.displayName="OptimizedAppContent";export class AppRenderer{initialize(container,rootOptions){this.container=container;if(!this.root){this.root=createRoot(container,rootOptions)}}async renderApp(options,services,context){if(!this.root){throw new Error("渲染器未初始化,请先调用 initialize()")}const securityConfig={enableXSSProtection:options.security?.enableXSSProtection??true,validateConfig:options.security?.validateConfig??true,sanitizeUserInput:options.security?.sanitizeUserInput??true,csrf:options.security?.csrf};if(securityConfig.enableXSSProtection&&securityConfig.validateConfig){Promise.resolve().then(()=>{try{const configStr=JSON.stringify(options);const validation=SecurityUtils.validateInput(configStr);if(!validation.safe){services.monitoring.captureError(new Error("配置项包含不安全内容"),{reason:validation.reason})}}catch(error){}})}if(securityConfig.enableXSSProtection&&securityConfig.csrf?.enabled!==false){import("@vlian/csrf").then(({initCSRFManager})=>{initCSRFManager({headerName:securityConfig.csrf?.headerName,cookieName:securityConfig.csrf?.cookieName,getToken:securityConfig.csrf?.getToken,validateToken:securityConfig.csrf?.validateToken})}).catch(error=>{if(process.env.NODE_ENV==="development"){console.warn("CSRF 防护初始化失败:",error)}})}this.root.render(_jsx(StrictMode,{children:_jsx(OptimizedAppContent,{options:options,services:services,context:context,securityConfig:securityConfig})}))}renderSplashScreen(options,services,onComplete){if(!this.root){throw new Error("渲染器未初始化,请先调用 initialize()")}const initialLocale=options.locale?Object.keys(options.locale)[0]||"zh-CN":"zh-CN";this.root.render(_jsx(StrictMode,{children:_jsxs(ErrorBoundary,{fallback:options.errorFallback,onError:error=>{services.monitoring.captureError(error)},children:[_jsx(InitializationErrorThrower,{}),_jsx(AppContextProvider,{initialTheme:options.theme,initialLocale:initialLocale,initialAntdConfig:options.uiProvider||options.antd,stateManager:services.stateManager,antdApp:options.uiApp||options.antdApp,children:_jsx(BasicLayout,{globalProvider:options.globalProvider,children:_jsx(SplashScreen,{options:options,onComplete:onComplete})})})]})}))}renderError(options,services){if(!this.root){throw new Error("渲染器未初始化,请先调用 initialize()")}this.root.render(_jsx(StrictMode,{children:_jsxs(ErrorBoundary,{fallback:options.errorFallback,onError:err=>{services.monitoring.captureError(err);if(options.errorMonitor?.onError){options.errorMonitor.onError(err)}},children:[_jsx(InitializationErrorThrower,{}),_jsx("div",{children:"框架启动失败"})]})}))}destroy(){if(this.root){this.root.unmount();this.root=null}this.container=null}getContainer(){return this.container}constructor(){_define_property(this,"root",null);_define_property(this,"container",null)}}
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"startApp",{enumerable:true,get:function(){return startApp}});const _logger=require("@vlian/logger");const _utils=require("@vlian/utils");const _traceId=require("../../utils/traceId");const _splash=require("../splash");const _index=require("../initialization/index");const _middleware=require("../middleware");const _initializeServices=require("./initializeServices");const _AppInstance=require("./AppInstance");const _environment=require("./environment");const _RouterManager=require("../router/RouterManager");const _frameworkEvents=require("../event/frameworkEvents");const _kernel=require("../kernel");async function startApp(options={},instanceId){const startTime=performance.now();const envDetector=(0,_environment.getEnvironmentDetector)();const instanceManager=(0,_AppInstance.getAppInstanceManager)();(0,_traceId.initTraceIdGenerator)("app");const traceId=(0,_traceId.generateTraceId)();(0,_traceId.setCurrentTraceId)(traceId);let frameworkEventManager=null;let kernelTraceId=null;try{const container=options.container||envDetector.safeGetElement("#root");if(!container){throw new _utils.InitializationError("未找到挂载容器",undefined,{container:options.container},_utils.ErrorCode.CONTAINER_NOT_FOUND)}_logger.logger.info("框架启动中...");if(options.antd&&!options.uiProvider){_logger.logger.warn("[deprecated] StartOptions.antd 即将废弃,请迁移到 StartOptions.uiProvider")}if(options.antdApp&&!options.uiApp){_logger.logger.warn("[deprecated] StartOptions.antdApp 即将废弃,请迁移到 StartOptions.uiApp")}const appInstance=instanceManager.createInstance(instanceId,options);const finalInstanceId=appInstance.id;let services=null;let servicesInitPromise=null;const ensureServicesInitialized=async()=>{if(services){return services}if(!servicesInitPromise){servicesInitPromise=(0,_initializeServices.initializeServices)({...options,eventBus:{...options.eventBus,instanceId:finalInstanceId}})}services=await servicesInitPromise;return services};const kernelRuntime=await (0,_kernel.startKernel)({loggerLevel:options.loggerLevel,locale:{locale:(options.locale?Object.keys(options.locale)[0]:"zh-CN")||"zh-CN",resources:options.locale},theme:{mode:options.theme?.mode||"light",primaryColor:options.theme?.primaryColor,compatibility:{antd:options.uiProvider||options.antd}},adapters:{monitoring:{initialize:async()=>{await ensureServicesInitialized()},captureError:(error,metadata)=>{if(services){services.monitoring.captureError(error,metadata)}else{_logger.logger.error("Kernel 监控上报失败(服务尚未初始化):",error,metadata)}},reportMetric:(name,value,tags)=>{_logger.logger.debug(`[kernel.metric] ${name}`,{value,tags,instanceId:finalInstanceId})}},state:{initialize:async()=>{await ensureServicesInitialized()},getInstance:()=>services?.stateManager??null},eventBus:{initialize:async()=>{await ensureServicesInitialized()},emit:(event,payload)=>{if(services){services.eventBus.emit(event,payload)}},on:(event,handler)=>{if(!services){return()=>{}}return services.eventBus.on(event,handler)}},errorHandler:{async handle(error){_logger.logger.error("Kernel 启动阶段失败:",error);return{handled:true,shouldThrow:true}}}},enabledPhases:{init:false},enablePostReady:false});kernelTraceId=kernelRuntime.traceId;const servicesInitStart=performance.now();const resolvedServices=await ensureServicesInitialized();const servicesInitDuration=performance.now()-servicesInitStart;frameworkEventManager=new _frameworkEvents.FrameworkEventManager(resolvedServices.eventBus);frameworkEventManager.emitAppStart(finalInstanceId);frameworkEventManager.emitInstanceCreated(finalInstanceId);appInstance.initialize(container,resolvedServices);const routerManager=(0,_RouterManager.getRouterManager)();if(options.router){await routerManager.initialize(options.router)}const performanceTracker=appInstance.getPerformanceTracker();if(performanceTracker){performanceTracker.recordServiceInit(servicesInitDuration)}const shouldShowSplash=(0,_splash.shouldShowSplashScreen)(options.showSplashScreen);const renderer=appInstance.getRenderer();const renderApp=async context=>{const renderStart=performance.now();if(frameworkEventManager){frameworkEventManager.emitAppRenderStart(finalInstanceId)}await renderer.renderApp(options,resolvedServices,context);const renderDuration=performance.now()-renderStart;if(frameworkEventManager){frameworkEventManager.emitAppRenderComplete(finalInstanceId,renderDuration)}if(resolvedServices.initializeNonCriticalServices){resolvedServices.initializeNonCriticalServices().catch(error=>{_logger.logger.warn("非关键服务初始化失败(不影响应用运行):",error)})}if(performanceTracker){performanceTracker.recordFirstRender(renderDuration);const totalDuration=performance.now()-startTime;performanceTracker.recordTotalStartup(totalDuration);performanceTracker.report()}if(frameworkEventManager){frameworkEventManager.emitAppStarted(finalInstanceId,performance.now()-startTime)}kernelRuntime.getEventBus().emit("kernel.postReady",{traceId:kernelRuntime.traceId,instanceId:finalInstanceId,startupDuration:performance.now()-startTime});if(process.env.NODE_ENV==="development"&&typeof window!=="undefined"){setTimeout(()=>{const devToolsContainer=document.createElement("div");devToolsContainer.id="__framework_dev_tools__";document.body.appendChild(devToolsContainer)},1e3)}};if(shouldShowSplash){const onSplashComplete=context=>{_logger.logger.info("启动页初始化完成");if(frameworkEventManager){const initDuration=context.duration||0;frameworkEventManager.emitAppInitComplete(finalInstanceId,context,initDuration)}if(options.onSplashComplete){Promise.resolve(options.onSplashComplete(()=>{_logger.logger.info("框架加载完成");renderApp(context)},context)).catch(error=>{_logger.logger.error("onSplashComplete 回调执行失败:",error);_index.initializationErrorState.setError(error);renderApp(context)})}else{_logger.logger.info("框架加载完成");renderApp(context)}};if(frameworkEventManager){frameworkEventManager.emitAppInitStart(finalInstanceId)}renderer.renderSplashScreen(options,resolvedServices,onSplashComplete)}else{_logger.logger.info("开始执行初始化(无启动页)");if(frameworkEventManager){frameworkEventManager.emitAppInitStart(finalInstanceId)}try{const initStart=performance.now();const initContext=await _middleware.middlewareManager.execute(options,async()=>{return await (0,_index.initialization)(options,(progress,step)=>{_logger.logger.debug(`初始化进度: ${progress}%${step?` - ${step}`:""}`)})});const initDuration=performance.now()-initStart;if(frameworkEventManager){frameworkEventManager.emitAppInitComplete(finalInstanceId,initContext,initDuration)}if(performanceTracker){performanceTracker.recordInitialization(initDuration)}_logger.logger.info("初始化完成(无启动页)",initContext);_logger.logger.info("框架加载完成");void renderApp(initContext)}catch(error){_logger.logger.error("初始化失败:",error);if(frameworkEventManager){frameworkEventManager.emitAppInitError(finalInstanceId,error instanceof Error?error:new Error(String(error)))}_index.initializationErrorState.setError(error);void renderApp()}}return instanceManager}catch(error){_logger.logger.error("框架启动失败:",error);if(frameworkEventManager){const errorInstanceId=instanceId||instanceManager.getInstance()?.id;if(errorInstanceId){frameworkEventManager.emitErrorOccurred(error instanceof Error?error:new Error(String(error)),{phase:"startup"})}}if(kernelTraceId){_logger.logger.error("Kernel Trace 失败上下文",{traceId:kernelTraceId})}const container=options.container||envDetector.safeGetElement("#root");if(container){const errorInstance=instanceManager.getInstance();if(errorInstance&&errorInstance.isInitialized()){const renderer=errorInstance.getRenderer();const services=errorInstance.getServices();_index.initializationErrorState.setError(error);renderer.renderError(options,services)}}throw error}}
@@ -1,14 +0,0 @@
1
- /**
2
- * 应用启动主函数
3
- * 重构后的启动逻辑,集成所有新功能
4
- */
5
- import type { StartOptions } from '../types';
6
- import { AppInstanceManager } from './AppInstance';
7
- /**
8
- * 启动应用
9
- *
10
- * @param options - 启动配置选项
11
- * @param instanceId - 应用实例ID(可选,用于多实例场景)
12
- * @returns 应用实例
13
- */
14
- export declare function startApp(options?: StartOptions, instanceId?: string): Promise<AppInstanceManager>;
@@ -1 +0,0 @@
1
- import{logger}from"@vlian/logger";import{ErrorCode,InitializationError}from"@vlian/utils";import{initTraceIdGenerator,generateTraceId,setCurrentTraceId}from"../../utils/traceId";import{shouldShowSplashScreen}from"../splash";import{initialization,initializationErrorState}from"../initialization/index";import{middlewareManager}from"../middleware";import{initializeServices}from"./initializeServices";import{getAppInstanceManager}from"./AppInstance";import{getEnvironmentDetector}from"./environment";import{getRouterManager}from"../router/RouterManager";import{FrameworkEventManager}from"../event/frameworkEvents";import{startKernel}from"../kernel";export async function startApp(options={},instanceId){const startTime=performance.now();const envDetector=getEnvironmentDetector();const instanceManager=getAppInstanceManager();initTraceIdGenerator("app");const traceId=generateTraceId();setCurrentTraceId(traceId);let frameworkEventManager=null;let kernelTraceId=null;try{const container=options.container||envDetector.safeGetElement("#root");if(!container){throw new InitializationError("未找到挂载容器",undefined,{container:options.container},ErrorCode.CONTAINER_NOT_FOUND)}logger.info("框架启动中...");if(options.antd&&!options.uiProvider){logger.warn("[deprecated] StartOptions.antd 即将废弃,请迁移到 StartOptions.uiProvider")}if(options.antdApp&&!options.uiApp){logger.warn("[deprecated] StartOptions.antdApp 即将废弃,请迁移到 StartOptions.uiApp")}const appInstance=instanceManager.createInstance(instanceId,options);const finalInstanceId=appInstance.id;let services=null;let servicesInitPromise=null;const ensureServicesInitialized=async()=>{if(services){return services}if(!servicesInitPromise){servicesInitPromise=initializeServices({...options,eventBus:{...options.eventBus,instanceId:finalInstanceId}})}services=await servicesInitPromise;return services};const kernelRuntime=await startKernel({loggerLevel:options.loggerLevel,locale:{locale:(options.locale?Object.keys(options.locale)[0]:"zh-CN")||"zh-CN",resources:options.locale},theme:{mode:options.theme?.mode||"light",primaryColor:options.theme?.primaryColor,compatibility:{antd:options.uiProvider||options.antd}},adapters:{monitoring:{initialize:async()=>{await ensureServicesInitialized()},captureError:(error,metadata)=>{if(services){services.monitoring.captureError(error,metadata)}else{logger.error("Kernel 监控上报失败(服务尚未初始化):",error,metadata)}},reportMetric:(name,value,tags)=>{logger.debug(`[kernel.metric] ${name}`,{value,tags,instanceId:finalInstanceId})}},state:{initialize:async()=>{await ensureServicesInitialized()},getInstance:()=>services?.stateManager??null},eventBus:{initialize:async()=>{await ensureServicesInitialized()},emit:(event,payload)=>{if(services){services.eventBus.emit(event,payload)}},on:(event,handler)=>{if(!services){return()=>{}}return services.eventBus.on(event,handler)}},errorHandler:{async handle(error){logger.error("Kernel 启动阶段失败:",error);return{handled:true,shouldThrow:true}}}},enabledPhases:{init:false},enablePostReady:false});kernelTraceId=kernelRuntime.traceId;const servicesInitStart=performance.now();const resolvedServices=await ensureServicesInitialized();const servicesInitDuration=performance.now()-servicesInitStart;frameworkEventManager=new FrameworkEventManager(resolvedServices.eventBus);frameworkEventManager.emitAppStart(finalInstanceId);frameworkEventManager.emitInstanceCreated(finalInstanceId);appInstance.initialize(container,resolvedServices);const routerManager=getRouterManager();if(options.router){await routerManager.initialize(options.router)}const performanceTracker=appInstance.getPerformanceTracker();if(performanceTracker){performanceTracker.recordServiceInit(servicesInitDuration)}const shouldShowSplash=shouldShowSplashScreen(options.showSplashScreen);const renderer=appInstance.getRenderer();const renderApp=async context=>{const renderStart=performance.now();if(frameworkEventManager){frameworkEventManager.emitAppRenderStart(finalInstanceId)}await renderer.renderApp(options,resolvedServices,context);const renderDuration=performance.now()-renderStart;if(frameworkEventManager){frameworkEventManager.emitAppRenderComplete(finalInstanceId,renderDuration)}if(resolvedServices.initializeNonCriticalServices){resolvedServices.initializeNonCriticalServices().catch(error=>{logger.warn("非关键服务初始化失败(不影响应用运行):",error)})}if(performanceTracker){performanceTracker.recordFirstRender(renderDuration);const totalDuration=performance.now()-startTime;performanceTracker.recordTotalStartup(totalDuration);performanceTracker.report()}if(frameworkEventManager){frameworkEventManager.emitAppStarted(finalInstanceId,performance.now()-startTime)}kernelRuntime.getEventBus().emit("kernel.postReady",{traceId:kernelRuntime.traceId,instanceId:finalInstanceId,startupDuration:performance.now()-startTime});if(process.env.NODE_ENV==="development"&&typeof window!=="undefined"){setTimeout(()=>{const devToolsContainer=document.createElement("div");devToolsContainer.id="__framework_dev_tools__";document.body.appendChild(devToolsContainer)},1e3)}};if(shouldShowSplash){const onSplashComplete=context=>{logger.info("启动页初始化完成");if(frameworkEventManager){const initDuration=context.duration||0;frameworkEventManager.emitAppInitComplete(finalInstanceId,context,initDuration)}if(options.onSplashComplete){Promise.resolve(options.onSplashComplete(()=>{logger.info("框架加载完成");renderApp(context)},context)).catch(error=>{logger.error("onSplashComplete 回调执行失败:",error);initializationErrorState.setError(error);renderApp(context)})}else{logger.info("框架加载完成");renderApp(context)}};if(frameworkEventManager){frameworkEventManager.emitAppInitStart(finalInstanceId)}renderer.renderSplashScreen(options,resolvedServices,onSplashComplete)}else{logger.info("开始执行初始化(无启动页)");if(frameworkEventManager){frameworkEventManager.emitAppInitStart(finalInstanceId)}try{const initStart=performance.now();const initContext=await middlewareManager.execute(options,async()=>{return await initialization(options,(progress,step)=>{logger.debug(`初始化进度: ${progress}%${step?` - ${step}`:""}`)})});const initDuration=performance.now()-initStart;if(frameworkEventManager){frameworkEventManager.emitAppInitComplete(finalInstanceId,initContext,initDuration)}if(performanceTracker){performanceTracker.recordInitialization(initDuration)}logger.info("初始化完成(无启动页)",initContext);logger.info("框架加载完成");void renderApp(initContext)}catch(error){logger.error("初始化失败:",error);if(frameworkEventManager){frameworkEventManager.emitAppInitError(finalInstanceId,error instanceof Error?error:new Error(String(error)))}initializationErrorState.setError(error);void renderApp()}}return instanceManager}catch(error){logger.error("框架启动失败:",error);if(frameworkEventManager){const errorInstanceId=instanceId||instanceManager.getInstance()?.id;if(errorInstanceId){frameworkEventManager.emitErrorOccurred(error instanceof Error?error:new Error(String(error)),{phase:"startup"})}}if(kernelTraceId){logger.error("Kernel Trace 失败上下文",{traceId:kernelTraceId})}const container=options.container||envDetector.safeGetElement("#root");if(container){const errorInstance=instanceManager.getInstance();if(errorInstance&&errorInstance.isInitialized()){const renderer=errorInstance.getRenderer();const services=errorInstance.getServices();initializationErrorState.setError(error);renderer.renderError(options,services)}}throw error}}
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});