@vlian/framework 1.2.62 → 2.0.1

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 (691) hide show
  1. package/README.md +21 -141
  2. package/dist/index.cjs +1 -1
  3. package/dist/index.d.ts +1 -9
  4. package/dist/index.js +1 -1
  5. package/dist/index.umd.js +10 -220
  6. package/dist/kernel/constants.cjs +1 -1
  7. package/dist/kernel/constants.d.ts +1 -3
  8. package/dist/kernel/constants.js +1 -1
  9. package/dist/kernel/custom-manager/i18n/constants.cjs +1 -0
  10. package/dist/kernel/custom-manager/i18n/constants.d.ts +4 -0
  11. package/dist/kernel/custom-manager/i18n/constants.js +1 -0
  12. package/dist/kernel/custom-manager/i18n/index.cjs +1 -0
  13. package/dist/kernel/custom-manager/i18n/index.d.ts +7 -0
  14. package/dist/kernel/custom-manager/i18n/index.js +1 -0
  15. package/dist/kernel/custom-manager/i18n/types.d.ts +10 -0
  16. package/dist/kernel/custom-manager/index.cjs +1 -0
  17. package/dist/kernel/custom-manager/index.d.ts +4 -0
  18. package/dist/kernel/custom-manager/index.js +1 -0
  19. package/dist/kernel/custom-manager/theme/constants.cjs +1 -0
  20. package/dist/kernel/custom-manager/theme/constants.d.ts +4 -0
  21. package/dist/kernel/custom-manager/theme/constants.js +1 -0
  22. package/dist/kernel/custom-manager/theme/index.cjs +1 -0
  23. package/dist/kernel/custom-manager/theme/index.d.ts +7 -0
  24. package/dist/kernel/custom-manager/theme/index.js +1 -0
  25. package/dist/kernel/custom-manager/theme/types.d.ts +14 -0
  26. package/dist/kernel/index.cjs +1 -1
  27. package/dist/kernel/index.d.ts +4 -2
  28. package/dist/kernel/index.js +1 -1
  29. package/dist/kernel/kernel.cjs +1 -1
  30. package/dist/kernel/kernel.d.ts +3 -7
  31. package/dist/kernel/kernel.js +1 -1
  32. package/dist/kernel/manager/i18n/I18nManager.cjs +1 -1
  33. package/dist/kernel/manager/i18n/I18nManager.d.ts +2 -1
  34. package/dist/kernel/manager/i18n/I18nManager.js +1 -1
  35. package/dist/kernel/manager/i18n/i18n.persistence.d.ts +2 -1
  36. package/dist/kernel/manager/i18n/i18n.runtime.cjs +1 -0
  37. package/dist/kernel/manager/i18n/i18n.runtime.d.ts +8 -0
  38. package/dist/kernel/manager/i18n/i18n.runtime.js +1 -0
  39. package/dist/kernel/manager/i18n/i18n.schema.d.ts +1 -1
  40. package/dist/kernel/manager/i18nManager.cjs +1 -1
  41. package/dist/kernel/manager/i18nManager.d.ts +1 -1
  42. package/dist/kernel/manager/i18nManager.js +1 -1
  43. package/dist/kernel/manager/index.cjs +1 -1
  44. package/dist/kernel/manager/index.d.ts +0 -2
  45. package/dist/kernel/manager/index.js +1 -1
  46. package/dist/kernel/manager/theme/ThemeManager.cjs +1 -1
  47. package/dist/kernel/manager/theme/ThemeManager.d.ts +8 -1
  48. package/dist/kernel/manager/theme/ThemeManager.js +1 -1
  49. package/dist/kernel/manager/theme/theme.dom.cjs +1 -1
  50. package/dist/kernel/manager/theme/theme.dom.d.ts +10 -3
  51. package/dist/kernel/manager/theme/theme.dom.js +1 -1
  52. package/dist/kernel/manager/theme/theme.persistence.d.ts +2 -1
  53. package/dist/kernel/manager/theme/theme.schema.cjs +1 -1
  54. package/dist/kernel/manager/theme/theme.schema.d.ts +3 -1
  55. package/dist/kernel/manager/theme/theme.schema.js +1 -1
  56. package/dist/kernel/manager/themeManager.cjs +1 -1
  57. package/dist/kernel/manager/themeManager.d.ts +1 -1
  58. package/dist/kernel/manager/themeManager.js +1 -1
  59. package/dist/kernel/types.d.ts +10 -39
  60. package/package.json +19 -127
  61. package/dist/analytics/index.cjs +0 -1
  62. package/dist/analytics/index.d.ts +0 -2
  63. package/dist/analytics/index.js +0 -1
  64. package/dist/analytics.umd.js +0 -19
  65. package/dist/components/LocaleSwitch.cjs +0 -1
  66. package/dist/components/LocaleSwitch.d.ts +0 -21
  67. package/dist/components/LocaleSwitch.js +0 -1
  68. package/dist/components/ThemeSwitch.cjs +0 -1
  69. package/dist/components/ThemeSwitch.d.ts +0 -20
  70. package/dist/components/ThemeSwitch.js +0 -1
  71. package/dist/components/index.cjs +0 -1
  72. package/dist/components/index.d.ts +0 -1
  73. package/dist/components/index.js +0 -1
  74. package/dist/components/persistence.cjs +0 -1
  75. package/dist/components/persistence.d.ts +0 -12
  76. package/dist/components/persistence.js +0 -1
  77. package/dist/core/Test.cjs +0 -1
  78. package/dist/core/Test.d.ts +0 -5
  79. package/dist/core/Test.js +0 -1
  80. package/dist/core/app/AppContext.cjs +0 -1
  81. package/dist/core/app/AppContext.d.ts +0 -113
  82. package/dist/core/app/AppContext.js +0 -1
  83. package/dist/core/app/AppContext.types.cjs +0 -1
  84. package/dist/core/app/AppContext.types.d.ts +0 -146
  85. package/dist/core/app/AppContext.types.js +0 -1
  86. package/dist/core/app/BasicLayout.cjs +0 -1
  87. package/dist/core/app/BasicLayout.d.ts +0 -15
  88. package/dist/core/app/BasicLayout.js +0 -1
  89. package/dist/core/app/DefaultApp.cjs +0 -1
  90. package/dist/core/app/DefaultApp.d.ts +0 -10
  91. package/dist/core/app/DefaultApp.js +0 -1
  92. package/dist/core/app/index.cjs +0 -1
  93. package/dist/core/app/index.d.ts +0 -8
  94. package/dist/core/app/index.js +0 -1
  95. package/dist/core/config/AppConfig.cjs +0 -1
  96. package/dist/core/config/AppConfig.d.ts +0 -88
  97. package/dist/core/config/AppConfig.js +0 -1
  98. package/dist/core/config/ConfigLoader.cjs +0 -1
  99. package/dist/core/config/ConfigLoader.d.ts +0 -118
  100. package/dist/core/config/ConfigLoader.js +0 -1
  101. package/dist/core/config/ConfigValidator.cjs +0 -2
  102. package/dist/core/config/ConfigValidator.d.ts +0 -84
  103. package/dist/core/config/ConfigValidator.js +0 -2
  104. package/dist/core/config/index.cjs +0 -1
  105. package/dist/core/config/index.d.ts +0 -6
  106. package/dist/core/config/index.js +0 -1
  107. package/dist/core/dev/DevTools.cjs +0 -1
  108. package/dist/core/dev/DevTools.d.ts +0 -16
  109. package/dist/core/dev/DevTools.js +0 -1
  110. package/dist/core/error/ErrorBoundary.cjs +0 -1
  111. package/dist/core/error/ErrorBoundary.d.ts +0 -121
  112. package/dist/core/error/ErrorBoundary.js +0 -1
  113. package/dist/core/error/ErrorHandler.cjs +0 -1
  114. package/dist/core/error/ErrorHandler.d.ts +0 -171
  115. package/dist/core/error/ErrorHandler.js +0 -1
  116. package/dist/core/error/index.cjs +0 -1
  117. package/dist/core/error/index.d.ts +0 -7
  118. package/dist/core/error/index.js +0 -1
  119. package/dist/core/event/AppEventBus.cjs +0 -1
  120. package/dist/core/event/AppEventBus.d.ts +0 -178
  121. package/dist/core/event/AppEventBus.js +0 -1
  122. package/dist/core/event/frameworkEvents.cjs +0 -1
  123. package/dist/core/event/frameworkEvents.d.ts +0 -69
  124. package/dist/core/event/frameworkEvents.js +0 -1
  125. package/dist/core/event/hooks.cjs +0 -1
  126. package/dist/core/event/hooks.d.ts +0 -57
  127. package/dist/core/event/hooks.js +0 -1
  128. package/dist/core/event/index.cjs +0 -1
  129. package/dist/core/event/index.d.ts +0 -10
  130. package/dist/core/event/index.js +0 -1
  131. package/dist/core/event/types.cjs +0 -1
  132. package/dist/core/event/types.d.ts +0 -269
  133. package/dist/core/event/types.js +0 -1
  134. package/dist/core/event/useEventBus.cjs +0 -1
  135. package/dist/core/event/useEventBus.d.ts +0 -28
  136. package/dist/core/event/useEventBus.js +0 -1
  137. package/dist/core/index.cjs +0 -1
  138. package/dist/core/index.d.ts +0 -54
  139. package/dist/core/index.js +0 -1
  140. package/dist/core/initialization/InitializationErrorThrower.cjs +0 -1
  141. package/dist/core/initialization/InitializationErrorThrower.d.ts +0 -7
  142. package/dist/core/initialization/InitializationErrorThrower.js +0 -1
  143. package/dist/core/initialization/index.cjs +0 -1
  144. package/dist/core/initialization/index.d.ts +0 -7
  145. package/dist/core/initialization/index.js +0 -1
  146. package/dist/core/initialization/initialization.cjs +0 -1
  147. package/dist/core/initialization/initialization.d.ts +0 -69
  148. package/dist/core/initialization/initialization.js +0 -1
  149. package/dist/core/initialization/initializationErrorState.cjs +0 -1
  150. package/dist/core/initialization/initializationErrorState.d.ts +0 -35
  151. package/dist/core/initialization/initializationErrorState.js +0 -1
  152. package/dist/core/kernel/defaultAdapters.cjs +0 -1
  153. package/dist/core/kernel/defaultAdapters.d.ts +0 -2
  154. package/dist/core/kernel/defaultAdapters.js +0 -1
  155. package/dist/core/kernel/errors.cjs +0 -1
  156. package/dist/core/kernel/errors.d.ts +0 -18
  157. package/dist/core/kernel/errors.js +0 -1
  158. package/dist/core/kernel/index.cjs +0 -1
  159. package/dist/core/kernel/index.d.ts +0 -3
  160. package/dist/core/kernel/index.js +0 -1
  161. package/dist/core/kernel/startKernel.cjs +0 -1
  162. package/dist/core/kernel/startKernel.d.ts +0 -2
  163. package/dist/core/kernel/startKernel.js +0 -1
  164. package/dist/core/kernel/types.cjs +0 -1
  165. package/dist/core/kernel/types.d.ts +0 -114
  166. package/dist/core/kernel/types.js +0 -1
  167. package/dist/core/middleware.cjs +0 -1
  168. package/dist/core/middleware.d.ts +0 -36
  169. package/dist/core/middleware.js +0 -1
  170. package/dist/core/plugin/PluginEventBus.cjs +0 -1
  171. package/dist/core/plugin/PluginEventBus.d.ts +0 -169
  172. package/dist/core/plugin/PluginEventBus.js +0 -1
  173. package/dist/core/plugin/PluginSandbox.cjs +0 -1
  174. package/dist/core/plugin/PluginSandbox.d.ts +0 -101
  175. package/dist/core/plugin/PluginSandbox.js +0 -1
  176. package/dist/core/plugin.cjs +0 -1
  177. package/dist/core/plugin.d.ts +0 -224
  178. package/dist/core/plugin.js +0 -1
  179. package/dist/core/router/RouterManager.cjs +0 -1
  180. package/dist/core/router/RouterManager.d.ts +0 -87
  181. package/dist/core/router/RouterManager.js +0 -1
  182. package/dist/core/router/adapter/AdapterManager.cjs +0 -1
  183. package/dist/core/router/adapter/AdapterManager.d.ts +0 -94
  184. package/dist/core/router/adapter/AdapterManager.js +0 -1
  185. package/dist/core/router/adapter/index.cjs +0 -1
  186. package/dist/core/router/adapter/index.d.ts +0 -6
  187. package/dist/core/router/adapter/index.js +0 -1
  188. package/dist/core/router/adapter/react-router/ReactRouterAdapter.cjs +0 -1
  189. package/dist/core/router/adapter/react-router/ReactRouterAdapter.d.ts +0 -43
  190. package/dist/core/router/adapter/react-router/ReactRouterAdapter.js +0 -1
  191. package/dist/core/router/adapter/react-router/index.cjs +0 -1
  192. package/dist/core/router/adapter/react-router/index.d.ts +0 -4
  193. package/dist/core/router/adapter/react-router/index.js +0 -1
  194. package/dist/core/router/adapter/types.cjs +0 -1
  195. package/dist/core/router/adapter/types.d.ts +0 -111
  196. package/dist/core/router/adapter/types.js +0 -1
  197. package/dist/core/router/dev/RouterDevTools.cjs +0 -1
  198. package/dist/core/router/dev/RouterDevTools.d.ts +0 -5
  199. package/dist/core/router/dev/RouterDevTools.js +0 -1
  200. package/dist/core/router/dev/index.cjs +0 -1
  201. package/dist/core/router/dev/index.d.ts +0 -4
  202. package/dist/core/router/dev/index.js +0 -1
  203. package/dist/core/router/dynamic/DynamicRouteManager.cjs +0 -1
  204. package/dist/core/router/dynamic/DynamicRouteManager.d.ts +0 -71
  205. package/dist/core/router/dynamic/DynamicRouteManager.js +0 -1
  206. package/dist/core/router/dynamic/index.cjs +0 -1
  207. package/dist/core/router/dynamic/index.d.ts +0 -4
  208. package/dist/core/router/dynamic/index.js +0 -1
  209. package/dist/core/router/errors/RouterError.cjs +0 -1
  210. package/dist/core/router/errors/RouterError.d.ts +0 -48
  211. package/dist/core/router/errors/RouterError.js +0 -1
  212. package/dist/core/router/errors/index.cjs +0 -1
  213. package/dist/core/router/errors/index.d.ts +0 -4
  214. package/dist/core/router/errors/index.js +0 -1
  215. package/dist/core/router/index.cjs +0 -1
  216. package/dist/core/router/index.d.ts +0 -16
  217. package/dist/core/router/index.js +0 -1
  218. package/dist/core/router/lifecycle/RouterLifecycleManager.cjs +0 -1
  219. package/dist/core/router/lifecycle/RouterLifecycleManager.d.ts +0 -56
  220. package/dist/core/router/lifecycle/RouterLifecycleManager.js +0 -1
  221. package/dist/core/router/lifecycle/index.cjs +0 -1
  222. package/dist/core/router/lifecycle/index.d.ts +0 -4
  223. package/dist/core/router/lifecycle/index.js +0 -1
  224. package/dist/core/router/middleware/RouterMiddlewareManager.cjs +0 -1
  225. package/dist/core/router/middleware/RouterMiddlewareManager.d.ts +0 -61
  226. package/dist/core/router/middleware/RouterMiddlewareManager.js +0 -1
  227. package/dist/core/router/middleware/auth.cjs +0 -1
  228. package/dist/core/router/middleware/auth.d.ts +0 -54
  229. package/dist/core/router/middleware/auth.js +0 -1
  230. package/dist/core/router/middleware/index.cjs +0 -1
  231. package/dist/core/router/middleware/index.d.ts +0 -6
  232. package/dist/core/router/middleware/index.js +0 -1
  233. package/dist/core/router/middleware/types.cjs +0 -1
  234. package/dist/core/router/middleware/types.d.ts +0 -82
  235. package/dist/core/router/middleware/types.js +0 -1
  236. package/dist/core/router/monitoring/RouterMonitoring.cjs +0 -1
  237. package/dist/core/router/monitoring/RouterMonitoring.d.ts +0 -134
  238. package/dist/core/router/monitoring/RouterMonitoring.js +0 -1
  239. package/dist/core/router/monitoring/index.cjs +0 -1
  240. package/dist/core/router/monitoring/index.d.ts +0 -4
  241. package/dist/core/router/monitoring/index.js +0 -1
  242. package/dist/core/router/navigation/RouterNavigation.cjs +0 -1
  243. package/dist/core/router/navigation/RouterNavigation.d.ts +0 -43
  244. package/dist/core/router/navigation/RouterNavigation.js +0 -1
  245. package/dist/core/router/navigation/index.cjs +0 -1
  246. package/dist/core/router/navigation/index.d.ts +0 -4
  247. package/dist/core/router/navigation/index.js +0 -1
  248. package/dist/core/router/performance/RouteCache.cjs +0 -1
  249. package/dist/core/router/performance/RouteCache.d.ts +0 -113
  250. package/dist/core/router/performance/RouteCache.js +0 -1
  251. package/dist/core/router/performance/RoutePreloader.cjs +0 -1
  252. package/dist/core/router/performance/RoutePreloader.d.ts +0 -111
  253. package/dist/core/router/performance/RoutePreloader.js +0 -1
  254. package/dist/core/router/performance/index.cjs +0 -1
  255. package/dist/core/router/performance/index.d.ts +0 -5
  256. package/dist/core/router/performance/index.js +0 -1
  257. package/dist/core/router/plugin/RouterPluginManager.cjs +0 -1
  258. package/dist/core/router/plugin/RouterPluginManager.d.ts +0 -74
  259. package/dist/core/router/plugin/RouterPluginManager.js +0 -1
  260. package/dist/core/router/plugin/index.cjs +0 -1
  261. package/dist/core/router/plugin/index.d.ts +0 -5
  262. package/dist/core/router/plugin/index.js +0 -1
  263. package/dist/core/router/plugin/types.cjs +0 -1
  264. package/dist/core/router/plugin/types.d.ts +0 -153
  265. package/dist/core/router/plugin/types.js +0 -1
  266. package/dist/core/router/types.cjs +0 -1
  267. package/dist/core/router/types.d.ts +0 -464
  268. package/dist/core/router/types.js +0 -1
  269. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.cjs +0 -1
  270. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.d.ts +0 -2
  271. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.js +0 -1
  272. package/dist/core/router/utils/adapters/react-router/transform.cjs +0 -1
  273. package/dist/core/router/utils/adapters/react-router/transform.d.ts +0 -5
  274. package/dist/core/router/utils/adapters/react-router/transform.js +0 -1
  275. package/dist/core/router/utils/transform.cjs +0 -1
  276. package/dist/core/router/utils/transform.d.ts +0 -348
  277. package/dist/core/router/utils/transform.js +0 -1
  278. package/dist/core/router/validation/RouterConfigValidator.cjs +0 -2
  279. package/dist/core/router/validation/RouterConfigValidator.d.ts +0 -121
  280. package/dist/core/router/validation/RouterConfigValidator.js +0 -2
  281. package/dist/core/router/validation/index.cjs +0 -1
  282. package/dist/core/router/validation/index.d.ts +0 -5
  283. package/dist/core/router/validation/index.js +0 -1
  284. package/dist/core/router/validation/schema.cjs +0 -1
  285. package/dist/core/router/validation/schema.d.ts +0 -180
  286. package/dist/core/router/validation/schema.js +0 -1
  287. package/dist/core/router/version/RouteVersionManager.cjs +0 -1
  288. package/dist/core/router/version/RouteVersionManager.d.ts +0 -124
  289. package/dist/core/router/version/RouteVersionManager.js +0 -1
  290. package/dist/core/router/version/index.cjs +0 -1
  291. package/dist/core/router/version/index.d.ts +0 -4
  292. package/dist/core/router/version/index.js +0 -1
  293. package/dist/core/splash/SplashScreen.cjs +0 -1
  294. package/dist/core/splash/SplashScreen.d.ts +0 -14
  295. package/dist/core/splash/SplashScreen.js +0 -1
  296. package/dist/core/splash/index.cjs +0 -1
  297. package/dist/core/splash/index.d.ts +0 -5
  298. package/dist/core/splash/index.js +0 -1
  299. package/dist/core/splash/splashScreenUtils.cjs +0 -1
  300. package/dist/core/splash/splashScreenUtils.d.ts +0 -7
  301. package/dist/core/splash/splashScreenUtils.js +0 -1
  302. package/dist/core/startup/AppInstance.cjs +0 -1
  303. package/dist/core/startup/AppInstance.d.ts +0 -138
  304. package/dist/core/startup/AppInstance.js +0 -1
  305. package/dist/core/startup/environment.cjs +0 -1
  306. package/dist/core/startup/environment.d.ts +0 -87
  307. package/dist/core/startup/environment.js +0 -1
  308. package/dist/core/startup/index.cjs +0 -1
  309. package/dist/core/startup/index.d.ts +0 -7
  310. package/dist/core/startup/index.js +0 -1
  311. package/dist/core/startup/initializeServices.cjs +0 -1
  312. package/dist/core/startup/initializeServices.d.ts +0 -68
  313. package/dist/core/startup/initializeServices.js +0 -1
  314. package/dist/core/startup/performanceTracker.cjs +0 -1
  315. package/dist/core/startup/performanceTracker.d.ts +0 -104
  316. package/dist/core/startup/performanceTracker.js +0 -1
  317. package/dist/core/startup/renderApp.cjs +0 -1
  318. package/dist/core/startup/renderApp.d.ts +0 -70
  319. package/dist/core/startup/renderApp.js +0 -1
  320. package/dist/core/startup/startApp.cjs +0 -1
  321. package/dist/core/startup/startApp.d.ts +0 -14
  322. package/dist/core/startup/startApp.js +0 -1
  323. package/dist/core/types.cjs +0 -1
  324. package/dist/core/types.d.ts +0 -501
  325. package/dist/core/types.js +0 -1
  326. package/dist/core-bak/Test.cjs +0 -1
  327. package/dist/core-bak/Test.d.ts +0 -5
  328. package/dist/core-bak/Test.js +0 -1
  329. package/dist/core-bak/app/AppContext.cjs +0 -1
  330. package/dist/core-bak/app/AppContext.d.ts +0 -113
  331. package/dist/core-bak/app/AppContext.js +0 -1
  332. package/dist/core-bak/app/AppContext.types.cjs +0 -1
  333. package/dist/core-bak/app/AppContext.types.d.ts +0 -146
  334. package/dist/core-bak/app/AppContext.types.js +0 -1
  335. package/dist/core-bak/app/BasicLayout.cjs +0 -1
  336. package/dist/core-bak/app/BasicLayout.d.ts +0 -15
  337. package/dist/core-bak/app/BasicLayout.js +0 -1
  338. package/dist/core-bak/app/DefaultApp.cjs +0 -1
  339. package/dist/core-bak/app/DefaultApp.d.ts +0 -10
  340. package/dist/core-bak/app/DefaultApp.js +0 -1
  341. package/dist/core-bak/app/index.cjs +0 -1
  342. package/dist/core-bak/app/index.d.ts +0 -8
  343. package/dist/core-bak/app/index.js +0 -1
  344. package/dist/core-bak/config/AppConfig.cjs +0 -1
  345. package/dist/core-bak/config/AppConfig.d.ts +0 -88
  346. package/dist/core-bak/config/AppConfig.js +0 -1
  347. package/dist/core-bak/config/ConfigLoader.cjs +0 -1
  348. package/dist/core-bak/config/ConfigLoader.d.ts +0 -118
  349. package/dist/core-bak/config/ConfigLoader.js +0 -1
  350. package/dist/core-bak/config/ConfigValidator.cjs +0 -2
  351. package/dist/core-bak/config/ConfigValidator.d.ts +0 -84
  352. package/dist/core-bak/config/ConfigValidator.js +0 -2
  353. package/dist/core-bak/config/index.cjs +0 -1
  354. package/dist/core-bak/config/index.d.ts +0 -6
  355. package/dist/core-bak/config/index.js +0 -1
  356. package/dist/core-bak/dev/DevTools.cjs +0 -1
  357. package/dist/core-bak/dev/DevTools.d.ts +0 -16
  358. package/dist/core-bak/dev/DevTools.js +0 -1
  359. package/dist/core-bak/error/ErrorBoundary.cjs +0 -1
  360. package/dist/core-bak/error/ErrorBoundary.d.ts +0 -121
  361. package/dist/core-bak/error/ErrorBoundary.js +0 -1
  362. package/dist/core-bak/error/ErrorHandler.cjs +0 -1
  363. package/dist/core-bak/error/ErrorHandler.d.ts +0 -171
  364. package/dist/core-bak/error/ErrorHandler.js +0 -1
  365. package/dist/core-bak/error/index.cjs +0 -1
  366. package/dist/core-bak/error/index.d.ts +0 -7
  367. package/dist/core-bak/error/index.js +0 -1
  368. package/dist/core-bak/event/AppEventBus.cjs +0 -1
  369. package/dist/core-bak/event/AppEventBus.d.ts +0 -178
  370. package/dist/core-bak/event/AppEventBus.js +0 -1
  371. package/dist/core-bak/event/frameworkEvents.cjs +0 -1
  372. package/dist/core-bak/event/frameworkEvents.d.ts +0 -69
  373. package/dist/core-bak/event/frameworkEvents.js +0 -1
  374. package/dist/core-bak/event/hooks.cjs +0 -1
  375. package/dist/core-bak/event/hooks.d.ts +0 -57
  376. package/dist/core-bak/event/hooks.js +0 -1
  377. package/dist/core-bak/event/index.cjs +0 -1
  378. package/dist/core-bak/event/index.d.ts +0 -10
  379. package/dist/core-bak/event/index.js +0 -1
  380. package/dist/core-bak/event/types.cjs +0 -1
  381. package/dist/core-bak/event/types.d.ts +0 -269
  382. package/dist/core-bak/event/types.js +0 -1
  383. package/dist/core-bak/event/useEventBus.cjs +0 -1
  384. package/dist/core-bak/event/useEventBus.d.ts +0 -28
  385. package/dist/core-bak/event/useEventBus.js +0 -1
  386. package/dist/core-bak/index.cjs +0 -1
  387. package/dist/core-bak/index.d.ts +0 -54
  388. package/dist/core-bak/index.js +0 -1
  389. package/dist/core-bak/initialization/InitializationErrorThrower.cjs +0 -1
  390. package/dist/core-bak/initialization/InitializationErrorThrower.d.ts +0 -7
  391. package/dist/core-bak/initialization/InitializationErrorThrower.js +0 -1
  392. package/dist/core-bak/initialization/index.cjs +0 -1
  393. package/dist/core-bak/initialization/index.d.ts +0 -7
  394. package/dist/core-bak/initialization/index.js +0 -1
  395. package/dist/core-bak/initialization/initialization.cjs +0 -1
  396. package/dist/core-bak/initialization/initialization.d.ts +0 -69
  397. package/dist/core-bak/initialization/initialization.js +0 -1
  398. package/dist/core-bak/initialization/initializationErrorState.cjs +0 -1
  399. package/dist/core-bak/initialization/initializationErrorState.d.ts +0 -35
  400. package/dist/core-bak/initialization/initializationErrorState.js +0 -1
  401. package/dist/core-bak/kernel/defaultAdapters.cjs +0 -1
  402. package/dist/core-bak/kernel/defaultAdapters.d.ts +0 -2
  403. package/dist/core-bak/kernel/defaultAdapters.js +0 -1
  404. package/dist/core-bak/kernel/errors.cjs +0 -1
  405. package/dist/core-bak/kernel/errors.d.ts +0 -18
  406. package/dist/core-bak/kernel/errors.js +0 -1
  407. package/dist/core-bak/kernel/index.cjs +0 -1
  408. package/dist/core-bak/kernel/index.d.ts +0 -3
  409. package/dist/core-bak/kernel/index.js +0 -1
  410. package/dist/core-bak/kernel/startKernel.cjs +0 -1
  411. package/dist/core-bak/kernel/startKernel.d.ts +0 -2
  412. package/dist/core-bak/kernel/startKernel.js +0 -1
  413. package/dist/core-bak/kernel/types.d.ts +0 -114
  414. package/dist/core-bak/middleware.cjs +0 -1
  415. package/dist/core-bak/middleware.d.ts +0 -36
  416. package/dist/core-bak/middleware.js +0 -1
  417. package/dist/core-bak/plugin/PluginEventBus.cjs +0 -1
  418. package/dist/core-bak/plugin/PluginEventBus.d.ts +0 -169
  419. package/dist/core-bak/plugin/PluginEventBus.js +0 -1
  420. package/dist/core-bak/plugin/PluginSandbox.cjs +0 -1
  421. package/dist/core-bak/plugin/PluginSandbox.d.ts +0 -101
  422. package/dist/core-bak/plugin/PluginSandbox.js +0 -1
  423. package/dist/core-bak/plugin.cjs +0 -1
  424. package/dist/core-bak/plugin.d.ts +0 -224
  425. package/dist/core-bak/plugin.js +0 -1
  426. package/dist/core-bak/router/RouterManager.cjs +0 -1
  427. package/dist/core-bak/router/RouterManager.d.ts +0 -87
  428. package/dist/core-bak/router/RouterManager.js +0 -1
  429. package/dist/core-bak/router/adapter/AdapterManager.cjs +0 -1
  430. package/dist/core-bak/router/adapter/AdapterManager.d.ts +0 -94
  431. package/dist/core-bak/router/adapter/AdapterManager.js +0 -1
  432. package/dist/core-bak/router/adapter/index.cjs +0 -1
  433. package/dist/core-bak/router/adapter/index.d.ts +0 -6
  434. package/dist/core-bak/router/adapter/index.js +0 -1
  435. package/dist/core-bak/router/adapter/react-router/ReactRouterAdapter.cjs +0 -1
  436. package/dist/core-bak/router/adapter/react-router/ReactRouterAdapter.d.ts +0 -43
  437. package/dist/core-bak/router/adapter/react-router/ReactRouterAdapter.js +0 -1
  438. package/dist/core-bak/router/adapter/react-router/index.cjs +0 -1
  439. package/dist/core-bak/router/adapter/react-router/index.d.ts +0 -4
  440. package/dist/core-bak/router/adapter/react-router/index.js +0 -1
  441. package/dist/core-bak/router/adapter/types.d.ts +0 -111
  442. package/dist/core-bak/router/dev/RouterDevTools.cjs +0 -1
  443. package/dist/core-bak/router/dev/RouterDevTools.d.ts +0 -5
  444. package/dist/core-bak/router/dev/RouterDevTools.js +0 -1
  445. package/dist/core-bak/router/dev/index.cjs +0 -1
  446. package/dist/core-bak/router/dev/index.d.ts +0 -4
  447. package/dist/core-bak/router/dev/index.js +0 -1
  448. package/dist/core-bak/router/dynamic/DynamicRouteManager.cjs +0 -1
  449. package/dist/core-bak/router/dynamic/DynamicRouteManager.d.ts +0 -71
  450. package/dist/core-bak/router/dynamic/DynamicRouteManager.js +0 -1
  451. package/dist/core-bak/router/dynamic/index.cjs +0 -1
  452. package/dist/core-bak/router/dynamic/index.d.ts +0 -4
  453. package/dist/core-bak/router/dynamic/index.js +0 -1
  454. package/dist/core-bak/router/errors/RouterError.cjs +0 -1
  455. package/dist/core-bak/router/errors/RouterError.d.ts +0 -48
  456. package/dist/core-bak/router/errors/RouterError.js +0 -1
  457. package/dist/core-bak/router/errors/index.cjs +0 -1
  458. package/dist/core-bak/router/errors/index.d.ts +0 -4
  459. package/dist/core-bak/router/errors/index.js +0 -1
  460. package/dist/core-bak/router/index.cjs +0 -1
  461. package/dist/core-bak/router/index.d.ts +0 -16
  462. package/dist/core-bak/router/index.js +0 -1
  463. package/dist/core-bak/router/lifecycle/RouterLifecycleManager.cjs +0 -1
  464. package/dist/core-bak/router/lifecycle/RouterLifecycleManager.d.ts +0 -56
  465. package/dist/core-bak/router/lifecycle/RouterLifecycleManager.js +0 -1
  466. package/dist/core-bak/router/lifecycle/index.cjs +0 -1
  467. package/dist/core-bak/router/lifecycle/index.d.ts +0 -4
  468. package/dist/core-bak/router/lifecycle/index.js +0 -1
  469. package/dist/core-bak/router/middleware/RouterMiddlewareManager.cjs +0 -1
  470. package/dist/core-bak/router/middleware/RouterMiddlewareManager.d.ts +0 -61
  471. package/dist/core-bak/router/middleware/RouterMiddlewareManager.js +0 -1
  472. package/dist/core-bak/router/middleware/auth.cjs +0 -1
  473. package/dist/core-bak/router/middleware/auth.d.ts +0 -54
  474. package/dist/core-bak/router/middleware/auth.js +0 -1
  475. package/dist/core-bak/router/middleware/index.cjs +0 -1
  476. package/dist/core-bak/router/middleware/index.d.ts +0 -6
  477. package/dist/core-bak/router/middleware/index.js +0 -1
  478. package/dist/core-bak/router/middleware/types.cjs +0 -1
  479. package/dist/core-bak/router/middleware/types.d.ts +0 -82
  480. package/dist/core-bak/router/middleware/types.js +0 -1
  481. package/dist/core-bak/router/monitoring/RouterMonitoring.cjs +0 -1
  482. package/dist/core-bak/router/monitoring/RouterMonitoring.d.ts +0 -134
  483. package/dist/core-bak/router/monitoring/RouterMonitoring.js +0 -1
  484. package/dist/core-bak/router/monitoring/index.cjs +0 -1
  485. package/dist/core-bak/router/monitoring/index.d.ts +0 -4
  486. package/dist/core-bak/router/monitoring/index.js +0 -1
  487. package/dist/core-bak/router/navigation/RouterNavigation.cjs +0 -1
  488. package/dist/core-bak/router/navigation/RouterNavigation.d.ts +0 -43
  489. package/dist/core-bak/router/navigation/RouterNavigation.js +0 -1
  490. package/dist/core-bak/router/navigation/index.cjs +0 -1
  491. package/dist/core-bak/router/navigation/index.d.ts +0 -4
  492. package/dist/core-bak/router/navigation/index.js +0 -1
  493. package/dist/core-bak/router/performance/RouteCache.cjs +0 -1
  494. package/dist/core-bak/router/performance/RouteCache.d.ts +0 -113
  495. package/dist/core-bak/router/performance/RouteCache.js +0 -1
  496. package/dist/core-bak/router/performance/RoutePreloader.cjs +0 -1
  497. package/dist/core-bak/router/performance/RoutePreloader.d.ts +0 -111
  498. package/dist/core-bak/router/performance/RoutePreloader.js +0 -1
  499. package/dist/core-bak/router/performance/index.cjs +0 -1
  500. package/dist/core-bak/router/performance/index.d.ts +0 -5
  501. package/dist/core-bak/router/performance/index.js +0 -1
  502. package/dist/core-bak/router/plugin/RouterPluginManager.cjs +0 -1
  503. package/dist/core-bak/router/plugin/RouterPluginManager.d.ts +0 -74
  504. package/dist/core-bak/router/plugin/RouterPluginManager.js +0 -1
  505. package/dist/core-bak/router/plugin/index.cjs +0 -1
  506. package/dist/core-bak/router/plugin/index.d.ts +0 -5
  507. package/dist/core-bak/router/plugin/index.js +0 -1
  508. package/dist/core-bak/router/plugin/types.cjs +0 -1
  509. package/dist/core-bak/router/plugin/types.d.ts +0 -153
  510. package/dist/core-bak/router/plugin/types.js +0 -1
  511. package/dist/core-bak/router/types.cjs +0 -1
  512. package/dist/core-bak/router/types.d.ts +0 -464
  513. package/dist/core-bak/router/types.js +0 -1
  514. package/dist/core-bak/router/utils/adapters/react-router/RouteErrorBoundary.cjs +0 -1
  515. package/dist/core-bak/router/utils/adapters/react-router/RouteErrorBoundary.d.ts +0 -2
  516. package/dist/core-bak/router/utils/adapters/react-router/RouteErrorBoundary.js +0 -1
  517. package/dist/core-bak/router/utils/adapters/react-router/transform.cjs +0 -1
  518. package/dist/core-bak/router/utils/adapters/react-router/transform.d.ts +0 -5
  519. package/dist/core-bak/router/utils/adapters/react-router/transform.js +0 -1
  520. package/dist/core-bak/router/utils/transform.cjs +0 -1
  521. package/dist/core-bak/router/utils/transform.d.ts +0 -348
  522. package/dist/core-bak/router/utils/transform.js +0 -1
  523. package/dist/core-bak/router/validation/RouterConfigValidator.cjs +0 -2
  524. package/dist/core-bak/router/validation/RouterConfigValidator.d.ts +0 -121
  525. package/dist/core-bak/router/validation/RouterConfigValidator.js +0 -2
  526. package/dist/core-bak/router/validation/index.cjs +0 -1
  527. package/dist/core-bak/router/validation/index.d.ts +0 -5
  528. package/dist/core-bak/router/validation/index.js +0 -1
  529. package/dist/core-bak/router/validation/schema.cjs +0 -1
  530. package/dist/core-bak/router/validation/schema.d.ts +0 -180
  531. package/dist/core-bak/router/validation/schema.js +0 -1
  532. package/dist/core-bak/router/version/RouteVersionManager.cjs +0 -1
  533. package/dist/core-bak/router/version/RouteVersionManager.d.ts +0 -124
  534. package/dist/core-bak/router/version/RouteVersionManager.js +0 -1
  535. package/dist/core-bak/router/version/index.cjs +0 -1
  536. package/dist/core-bak/router/version/index.d.ts +0 -4
  537. package/dist/core-bak/router/version/index.js +0 -1
  538. package/dist/core-bak/splash/SplashScreen.cjs +0 -1
  539. package/dist/core-bak/splash/SplashScreen.d.ts +0 -14
  540. package/dist/core-bak/splash/SplashScreen.js +0 -1
  541. package/dist/core-bak/splash/index.cjs +0 -1
  542. package/dist/core-bak/splash/index.d.ts +0 -5
  543. package/dist/core-bak/splash/index.js +0 -1
  544. package/dist/core-bak/splash/splashScreenUtils.cjs +0 -1
  545. package/dist/core-bak/splash/splashScreenUtils.d.ts +0 -7
  546. package/dist/core-bak/splash/splashScreenUtils.js +0 -1
  547. package/dist/core-bak/startup/AppInstance.cjs +0 -1
  548. package/dist/core-bak/startup/AppInstance.d.ts +0 -138
  549. package/dist/core-bak/startup/AppInstance.js +0 -1
  550. package/dist/core-bak/startup/environment.cjs +0 -1
  551. package/dist/core-bak/startup/environment.d.ts +0 -87
  552. package/dist/core-bak/startup/environment.js +0 -1
  553. package/dist/core-bak/startup/index.cjs +0 -1
  554. package/dist/core-bak/startup/index.d.ts +0 -7
  555. package/dist/core-bak/startup/index.js +0 -1
  556. package/dist/core-bak/startup/initializeServices.cjs +0 -1
  557. package/dist/core-bak/startup/initializeServices.d.ts +0 -68
  558. package/dist/core-bak/startup/initializeServices.js +0 -1
  559. package/dist/core-bak/startup/performanceTracker.cjs +0 -1
  560. package/dist/core-bak/startup/performanceTracker.d.ts +0 -104
  561. package/dist/core-bak/startup/performanceTracker.js +0 -1
  562. package/dist/core-bak/startup/renderApp.cjs +0 -1
  563. package/dist/core-bak/startup/renderApp.d.ts +0 -70
  564. package/dist/core-bak/startup/renderApp.js +0 -1
  565. package/dist/core-bak/startup/startApp.cjs +0 -1
  566. package/dist/core-bak/startup/startApp.d.ts +0 -14
  567. package/dist/core-bak/startup/startApp.js +0 -1
  568. package/dist/core-bak/types.cjs +0 -1
  569. package/dist/core-bak/types.d.ts +0 -501
  570. package/dist/core-bak/types.js +0 -1
  571. package/dist/index.umd.cjs +0 -1
  572. package/dist/index.umd.d.ts +0 -7
  573. package/dist/library/index.cjs +0 -1
  574. package/dist/library/index.d.ts +0 -2
  575. package/dist/library/index.js +0 -1
  576. package/dist/library/locale/index.cjs +0 -1
  577. package/dist/library/locale/index.d.ts +0 -6
  578. package/dist/library/locale/index.js +0 -1
  579. package/dist/library/locale/langs/en-us/index.cjs +0 -1
  580. package/dist/library/locale/langs/en-us/index.d.ts +0 -3
  581. package/dist/library/locale/langs/en-us/index.js +0 -1
  582. package/dist/library/locale/langs/zh-cn/index.cjs +0 -1
  583. package/dist/library/locale/langs/zh-cn/index.d.ts +0 -3
  584. package/dist/library/locale/langs/zh-cn/index.js +0 -1
  585. package/dist/library/locale/types.cjs +0 -1
  586. package/dist/library/locale/types.d.ts +0 -38
  587. package/dist/library/locale/types.js +0 -1
  588. package/dist/library/storage/cache.cjs +0 -1
  589. package/dist/library/storage/cache.d.ts +0 -57
  590. package/dist/library/storage/cache.js +0 -1
  591. package/dist/library/storage/encryption.cjs +0 -1
  592. package/dist/library/storage/encryption.d.ts +0 -45
  593. package/dist/library/storage/encryption.js +0 -1
  594. package/dist/library/storage/index.cjs +0 -1
  595. package/dist/library/storage/index.d.ts +0 -62
  596. package/dist/library/storage/index.js +0 -1
  597. package/dist/state/StateManager.cjs +0 -1
  598. package/dist/state/StateManager.d.ts +0 -120
  599. package/dist/state/StateManager.js +0 -1
  600. package/dist/state/adapters/AdapterFactory.cjs +0 -1
  601. package/dist/state/adapters/AdapterFactory.d.ts +0 -51
  602. package/dist/state/adapters/AdapterFactory.js +0 -1
  603. package/dist/state/adapters/DefaultAdapter.cjs +0 -1
  604. package/dist/state/adapters/DefaultAdapter.d.ts +0 -38
  605. package/dist/state/adapters/DefaultAdapter.js +0 -1
  606. package/dist/state/adapters/ReduxAdapter.cjs +0 -1
  607. package/dist/state/adapters/ReduxAdapter.d.ts +0 -129
  608. package/dist/state/adapters/ReduxAdapter.js +0 -1
  609. package/dist/state/adapters/ZustandAdapter.cjs +0 -1
  610. package/dist/state/adapters/ZustandAdapter.d.ts +0 -46
  611. package/dist/state/adapters/ZustandAdapter.js +0 -1
  612. package/dist/state/adapters/index.cjs +0 -1
  613. package/dist/state/adapters/index.d.ts +0 -8
  614. package/dist/state/adapters/index.js +0 -1
  615. package/dist/state/adapters/types.cjs +0 -1
  616. package/dist/state/adapters/types.d.ts +0 -4
  617. package/dist/state/adapters/types.js +0 -1
  618. package/dist/state/core/DerivedStateInstance.cjs +0 -1
  619. package/dist/state/core/DerivedStateInstance.d.ts +0 -100
  620. package/dist/state/core/DerivedStateInstance.js +0 -1
  621. package/dist/state/core/StateInstance.cjs +0 -1
  622. package/dist/state/core/StateInstance.d.ts +0 -85
  623. package/dist/state/core/StateInstance.js +0 -1
  624. package/dist/state/core/StateRegistry.cjs +0 -1
  625. package/dist/state/core/StateRegistry.d.ts +0 -55
  626. package/dist/state/core/StateRegistry.js +0 -1
  627. package/dist/state/core/StateScope.cjs +0 -1
  628. package/dist/state/core/StateScope.d.ts +0 -71
  629. package/dist/state/core/StateScope.js +0 -1
  630. package/dist/state/core/index.cjs +0 -1
  631. package/dist/state/core/index.d.ts +0 -7
  632. package/dist/state/core/index.js +0 -1
  633. package/dist/state/index.cjs +0 -1
  634. package/dist/state/index.d.ts +0 -8
  635. package/dist/state/index.js +0 -1
  636. package/dist/state/types.cjs +0 -1
  637. package/dist/state/types.d.ts +0 -230
  638. package/dist/state/types.js +0 -1
  639. package/dist/state.umd.js +0 -41
  640. package/dist/types.cjs +0 -1
  641. package/dist/types.d.ts +0 -7
  642. package/dist/types.js +0 -1
  643. package/dist/utils/analytics.cjs +0 -1
  644. package/dist/utils/analytics.d.ts +0 -127
  645. package/dist/utils/analytics.js +0 -1
  646. package/dist/utils/configSecurity.cjs +0 -3
  647. package/dist/utils/configSecurity.d.ts +0 -100
  648. package/dist/utils/configSecurity.js +0 -3
  649. package/dist/utils/csrf.cjs +0 -1
  650. package/dist/utils/csrf.d.ts +0 -1
  651. package/dist/utils/csrf.js +0 -1
  652. package/dist/utils/errors/ErrorCodes.cjs +0 -1
  653. package/dist/utils/errors/ErrorCodes.d.ts +0 -1
  654. package/dist/utils/errors/ErrorCodes.js +0 -1
  655. package/dist/utils/errors.cjs +0 -1
  656. package/dist/utils/errors.d.ts +0 -30
  657. package/dist/utils/errors.js +0 -1
  658. package/dist/utils/index.cjs +0 -1
  659. package/dist/utils/index.d.ts +0 -39
  660. package/dist/utils/index.js +0 -1
  661. package/dist/utils/logger.cjs +0 -1
  662. package/dist/utils/logger.d.ts +0 -2
  663. package/dist/utils/logger.js +0 -1
  664. package/dist/utils/logger.types.cjs +0 -1
  665. package/dist/utils/logger.types.d.ts +0 -2
  666. package/dist/utils/logger.types.js +0 -1
  667. package/dist/utils/monitoring.cjs +0 -1
  668. package/dist/utils/monitoring.d.ts +0 -1
  669. package/dist/utils/monitoring.js +0 -1
  670. package/dist/utils/performance.cjs +0 -1
  671. package/dist/utils/performance.d.ts +0 -2
  672. package/dist/utils/performance.js +0 -1
  673. package/dist/utils/resourceLoader.cjs +0 -1
  674. package/dist/utils/resourceLoader.d.ts +0 -2
  675. package/dist/utils/resourceLoader.js +0 -1
  676. package/dist/utils/runtimeSecurity.cjs +0 -1
  677. package/dist/utils/runtimeSecurity.d.ts +0 -2
  678. package/dist/utils/runtimeSecurity.js +0 -1
  679. package/dist/utils/security.cjs +0 -1
  680. package/dist/utils/security.d.ts +0 -2
  681. package/dist/utils/security.js +0 -1
  682. package/dist/utils/traceId.cjs +0 -1
  683. package/dist/utils/traceId.d.ts +0 -1
  684. package/dist/utils/traceId.js +0 -1
  685. package/dist/utils/validation.cjs +0 -1
  686. package/dist/utils/validation.d.ts +0 -2
  687. package/dist/utils/validation.js +0 -1
  688. /package/dist/{core-bak/kernel → kernel/custom-manager/i18n}/types.cjs +0 -0
  689. /package/dist/{core-bak/kernel → kernel/custom-manager/i18n}/types.js +0 -0
  690. /package/dist/{core-bak/router/adapter → kernel/custom-manager/theme}/types.cjs +0 -0
  691. /package/dist/{core-bak/router/adapter → kernel/custom-manager/theme}/types.js +0 -0
@@ -1,82 +0,0 @@
1
- /**
2
- * 路由中间件类型定义
3
- */
4
- import type { RouteLocation, NavigateOptions } from '../types';
5
- /**
6
- * 路由中间件上下文
7
- */
8
- export interface RouterMiddlewareContext {
9
- /**
10
- * 目标路由
11
- */
12
- to: RouteLocation;
13
- /**
14
- * 来源路由
15
- */
16
- from?: RouteLocation;
17
- /**
18
- * 导航选项
19
- */
20
- options?: NavigateOptions;
21
- /**
22
- * 中间件元数据
23
- */
24
- meta?: Record<string, unknown>;
25
- }
26
- /**
27
- * 路由中间件结果
28
- */
29
- export type RouterMiddlewareResult = {
30
- /**
31
- * 允许继续导航
32
- */
33
- allow: true;
34
- } | {
35
- /**
36
- * 阻止导航
37
- */
38
- allow: false;
39
- /**
40
- * 重定向路径(可选)
41
- */
42
- redirect?: string;
43
- /**
44
- * 阻止原因
45
- */
46
- reason?: string;
47
- };
48
- /**
49
- * 路由中间件函数
50
- */
51
- export type RouterMiddleware = (context: RouterMiddlewareContext) => RouterMiddlewareResult | string | false | void | Promise<RouterMiddlewareResult | string | false | void>;
52
- /**
53
- * 路由中间件配置
54
- */
55
- export interface RouterMiddlewareConfig {
56
- /**
57
- * 中间件函数
58
- */
59
- middleware: RouterMiddleware;
60
- /**
61
- * 中间件名称
62
- */
63
- name?: string;
64
- /**
65
- * 优先级(数字越小优先级越高)
66
- * @default 100
67
- */
68
- priority?: number;
69
- /**
70
- * 是否启用
71
- * @default true
72
- */
73
- enabled?: boolean;
74
- /**
75
- * 条件函数(返回 true 时才执行中间件)
76
- */
77
- condition?: (context: RouterMiddlewareContext) => boolean;
78
- }
79
- /**
80
- * 路由生命周期钩子结果
81
- */
82
- export type RouteLifecycleResult = void | string | false | Promise<void | string | false>;
@@ -1 +0,0 @@
1
- export{};
@@ -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 RouterMonitoring(){return RouterMonitoring},get getRouterMonitoring(){return getRouterMonitoring}});const _monitoring=require("@vlian/monitoring");const _logger=require("@vlian/logger");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}let RouterMonitoring=class RouterMonitoring{trackRouteAccess(to,from,success=true,error){if(!this.config.enabled||!this.config.trackAccess){return}if(Math.random()>this.config.sampleRate){return}const record={path:to.path,name:to.meta?.name,timestamp:Date.now(),from:from?.path,success,error:error?.message};if(this.currentRoute&&this.currentRouteStartTime>0){record.duration=Date.now()-this.currentRouteStartTime}this.accessRecords.push(record);if(this.accessRecords.length>this.config.maxRecords){this.accessRecords.shift()}this.monitoringService.trackEvent("route_access",{path:to.path,name:to.meta?.name,success,error:error?.message});this.currentRoute=to;this.currentRouteStartTime=Date.now();_logger.logger.debug("路由访问已记录",record)}trackRoutePerformance(routeName,metrics){if(!this.config.enabled||!this.config.trackPerformance){return}if(Math.random()>this.config.sampleRate){return}const routeMetrics=this.performanceMetrics.get(routeName)||[];routeMetrics.push(metrics);if(routeMetrics.length>100){routeMetrics.shift()}this.performanceMetrics.set(routeName,routeMetrics);this.monitoringService.reportPerformance({[`route_${routeName}_match`]:metrics.matchTime||0,[`route_${routeName}_load`]:metrics.loadTime||0,[`route_${routeName}_render`]:metrics.renderTime||0,[`route_${routeName}_total`]:metrics.totalTime||0});_logger.logger.debug(`路由性能指标已记录: ${routeName}`,metrics)}trackRouteError(error,context){if(!this.config.enabled||!this.config.trackErrors){return}if(Math.random()>this.config.sampleRate){return}this.monitoringService.captureError(error,{type:"router",...context});_logger.logger.error("路由错误已记录",error,context)}getAccessStats(){const stats={total:this.accessRecords.length,success:0,failed:0,byPath:{},byName:{},averageDuration:0};let totalDuration=0;let durationCount=0;for(const record of this.accessRecords){if(record.success){stats.success++}else{stats.failed++}stats.byPath[record.path]=(stats.byPath[record.path]||0)+1;if(record.name){stats.byName[record.name]=(stats.byName[record.name]||0)+1}if(record.duration){totalDuration+=record.duration;durationCount++}}stats.averageDuration=durationCount>0?totalDuration/durationCount:0;return stats}getPerformanceStats(){const stats={};for(const[routeName,metrics]of this.performanceMetrics.entries()){let totalMatchTime=0;let totalLoadTime=0;let totalRenderTime=0;let totalTotalTime=0;let count=0;for(const metric of metrics){if(metric.matchTime){totalMatchTime+=metric.matchTime}if(metric.loadTime){totalLoadTime+=metric.loadTime}if(metric.renderTime){totalRenderTime+=metric.renderTime}if(metric.totalTime){totalTotalTime+=metric.totalTime}count++}stats[routeName]={count,averageMatchTime:count>0?totalMatchTime/count:0,averageLoadTime:count>0?totalLoadTime/count:0,averageRenderTime:count>0?totalRenderTime/count:0,averageTotalTime:count>0?totalTotalTime/count:0}}return stats}clear(){this.accessRecords=[];this.performanceMetrics.clear();_logger.logger.debug("路由监控记录已清空")}getReport(){return{access:this.getAccessStats(),performance:this.getPerformanceStats(),timestamp:Date.now()}}constructor(config={}){_define_property(this,"accessRecords",[]);_define_property(this,"performanceMetrics",new Map);_define_property(this,"config",void 0);_define_property(this,"monitoringService",(0,_monitoring.getMonitoring)());_define_property(this,"currentRouteStartTime",0);_define_property(this,"currentRoute",void 0);this.config={enabled:config.enabled??true,trackAccess:config.trackAccess??true,trackPerformance:config.trackPerformance??true,trackErrors:config.trackErrors??true,maxRecords:config.maxRecords??1e3,sampleRate:config.sampleRate??1}}};let routerMonitoringInstance=null;function getRouterMonitoring(config){if(!routerMonitoringInstance){routerMonitoringInstance=new RouterMonitoring(config)}return routerMonitoringInstance}
@@ -1,134 +0,0 @@
1
- /**
2
- * 路由监控服务
3
- * 提供路由访问统计、性能监控、错误监控等功能
4
- */
5
- import type { RouteLocation } from '../types';
6
- import type { RouterError } from '../errors';
7
- /**
8
- * 路由性能指标
9
- */
10
- interface RoutePerformanceMetrics {
11
- /**
12
- * 路由匹配时间(毫秒)
13
- */
14
- matchTime?: number;
15
- /**
16
- * 组件加载时间(毫秒)
17
- */
18
- loadTime?: number;
19
- /**
20
- * 路由渲染时间(毫秒)
21
- */
22
- renderTime?: number;
23
- /**
24
- * 总时间(毫秒)
25
- */
26
- totalTime?: number;
27
- }
28
- /**
29
- * 路由监控配置
30
- */
31
- export interface RouterMonitoringConfig {
32
- /**
33
- * 是否启用路由监控
34
- * @default true
35
- */
36
- enabled?: boolean;
37
- /**
38
- * 是否记录路由访问
39
- * @default true
40
- */
41
- trackAccess?: boolean;
42
- /**
43
- * 是否记录性能指标
44
- * @default true
45
- */
46
- trackPerformance?: boolean;
47
- /**
48
- * 是否记录错误
49
- * @default true
50
- */
51
- trackErrors?: boolean;
52
- /**
53
- * 最大记录数量
54
- * @default 1000
55
- */
56
- maxRecords?: number;
57
- /**
58
- * 采样率 (0-1)
59
- * @default 1.0
60
- */
61
- sampleRate?: number;
62
- }
63
- /**
64
- * 路由监控服务
65
- */
66
- export declare class RouterMonitoring {
67
- private accessRecords;
68
- private performanceMetrics;
69
- private config;
70
- private monitoringService;
71
- private currentRouteStartTime;
72
- private currentRoute?;
73
- constructor(config?: RouterMonitoringConfig);
74
- /**
75
- * 记录路由访问
76
- */
77
- trackRouteAccess(to: RouteLocation, from?: RouteLocation, success?: boolean, error?: Error): void;
78
- /**
79
- * 记录路由性能指标
80
- */
81
- trackRoutePerformance(routeName: string, metrics: RoutePerformanceMetrics): void;
82
- /**
83
- * 记录路由错误
84
- */
85
- trackRouteError(error: RouterError | Error, context?: Record<string, unknown>): void;
86
- /**
87
- * 获取路由访问统计
88
- */
89
- getAccessStats(): {
90
- total: number;
91
- success: number;
92
- failed: number;
93
- byPath: Record<string, number>;
94
- byName: Record<string, number>;
95
- averageDuration: number;
96
- };
97
- /**
98
- * 获取路由性能统计
99
- */
100
- getPerformanceStats(): Record<string, {
101
- count: number;
102
- averageMatchTime: number;
103
- averageLoadTime: number;
104
- averageRenderTime: number;
105
- averageTotalTime: number;
106
- }>;
107
- /**
108
- * 清空所有记录
109
- */
110
- clear(): void;
111
- /**
112
- * 获取监控报告
113
- */
114
- getReport(): {
115
- access: {
116
- total: number;
117
- success: number;
118
- failed: number;
119
- byPath: Record<string, number>;
120
- byName: Record<string, number>;
121
- averageDuration: number;
122
- };
123
- performance: Record<string, {
124
- count: number;
125
- averageMatchTime: number;
126
- averageLoadTime: number;
127
- averageRenderTime: number;
128
- averageTotalTime: number;
129
- }>;
130
- timestamp: number;
131
- };
132
- }
133
- export declare function getRouterMonitoring(config?: RouterMonitoringConfig): RouterMonitoring;
134
- export {};
@@ -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{getMonitoring}from"@vlian/monitoring";import{logger}from"@vlian/logger";export class RouterMonitoring{trackRouteAccess(to,from,success=true,error){if(!this.config.enabled||!this.config.trackAccess){return}if(Math.random()>this.config.sampleRate){return}const record={path:to.path,name:to.meta?.name,timestamp:Date.now(),from:from?.path,success,error:error?.message};if(this.currentRoute&&this.currentRouteStartTime>0){record.duration=Date.now()-this.currentRouteStartTime}this.accessRecords.push(record);if(this.accessRecords.length>this.config.maxRecords){this.accessRecords.shift()}this.monitoringService.trackEvent("route_access",{path:to.path,name:to.meta?.name,success,error:error?.message});this.currentRoute=to;this.currentRouteStartTime=Date.now();logger.debug("路由访问已记录",record)}trackRoutePerformance(routeName,metrics){if(!this.config.enabled||!this.config.trackPerformance){return}if(Math.random()>this.config.sampleRate){return}const routeMetrics=this.performanceMetrics.get(routeName)||[];routeMetrics.push(metrics);if(routeMetrics.length>100){routeMetrics.shift()}this.performanceMetrics.set(routeName,routeMetrics);this.monitoringService.reportPerformance({[`route_${routeName}_match`]:metrics.matchTime||0,[`route_${routeName}_load`]:metrics.loadTime||0,[`route_${routeName}_render`]:metrics.renderTime||0,[`route_${routeName}_total`]:metrics.totalTime||0});logger.debug(`路由性能指标已记录: ${routeName}`,metrics)}trackRouteError(error,context){if(!this.config.enabled||!this.config.trackErrors){return}if(Math.random()>this.config.sampleRate){return}this.monitoringService.captureError(error,{type:"router",...context});logger.error("路由错误已记录",error,context)}getAccessStats(){const stats={total:this.accessRecords.length,success:0,failed:0,byPath:{},byName:{},averageDuration:0};let totalDuration=0;let durationCount=0;for(const record of this.accessRecords){if(record.success){stats.success++}else{stats.failed++}stats.byPath[record.path]=(stats.byPath[record.path]||0)+1;if(record.name){stats.byName[record.name]=(stats.byName[record.name]||0)+1}if(record.duration){totalDuration+=record.duration;durationCount++}}stats.averageDuration=durationCount>0?totalDuration/durationCount:0;return stats}getPerformanceStats(){const stats={};for(const[routeName,metrics]of this.performanceMetrics.entries()){let totalMatchTime=0;let totalLoadTime=0;let totalRenderTime=0;let totalTotalTime=0;let count=0;for(const metric of metrics){if(metric.matchTime){totalMatchTime+=metric.matchTime}if(metric.loadTime){totalLoadTime+=metric.loadTime}if(metric.renderTime){totalRenderTime+=metric.renderTime}if(metric.totalTime){totalTotalTime+=metric.totalTime}count++}stats[routeName]={count,averageMatchTime:count>0?totalMatchTime/count:0,averageLoadTime:count>0?totalLoadTime/count:0,averageRenderTime:count>0?totalRenderTime/count:0,averageTotalTime:count>0?totalTotalTime/count:0}}return stats}clear(){this.accessRecords=[];this.performanceMetrics.clear();logger.debug("路由监控记录已清空")}getReport(){return{access:this.getAccessStats(),performance:this.getPerformanceStats(),timestamp:Date.now()}}constructor(config={}){_define_property(this,"accessRecords",[]);_define_property(this,"performanceMetrics",new Map);_define_property(this,"config",void 0);_define_property(this,"monitoringService",getMonitoring());_define_property(this,"currentRouteStartTime",0);_define_property(this,"currentRoute",void 0);this.config={enabled:config.enabled??true,trackAccess:config.trackAccess??true,trackPerformance:config.trackPerformance??true,trackErrors:config.trackErrors??true,maxRecords:config.maxRecords??1e3,sampleRate:config.sampleRate??1}}}let routerMonitoringInstance=null;export function getRouterMonitoring(config){if(!routerMonitoringInstance){routerMonitoringInstance=new RouterMonitoring(config)}return routerMonitoringInstance}
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});_export_star(require("./RouterMonitoring"),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,4 +0,0 @@
1
- /**
2
- * 路由监控模块入口
3
- */
4
- export * from './RouterMonitoring';
@@ -1 +0,0 @@
1
- export*from"./RouterMonitoring";
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"RouterNavigation",{enumerable:true,get:function(){return RouterNavigation}});const _logger=require("@vlian/logger");const _lifecycle=require("../lifecycle");const _middleware=require("../middleware");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}let RouterNavigation=class RouterNavigation{static buildTargetPath(to,query){const base=typeof window!=="undefined"&&window.location?.origin?window.location.origin:"http://localhost";const url=new URL(to,base);if(query&&Object.keys(query).length>0){const params=new URLSearchParams(url.search);Object.entries(query).forEach(([key,value])=>{if(value===undefined||value===null){params.delete(key);return}params.set(key,String(value))});url.search=params.toString()}return`${url.pathname}${url.search}${url.hash}`}static async navigateInternal(to,options,depth,visited){const startTime=performance.now();if(depth>this.MAX_REDIRECTS){throw new Error(`路由重定向次数超过上限(${this.MAX_REDIRECTS}),可能存在循环重定向`)}const targetPath=this.buildTargetPath(to,options?.query);if(visited.has(targetPath)){throw new Error(`检测到循环重定向: ${targetPath}`)}visited.add(targetPath);const routerManager=await Promise.resolve().then(()=>/*#__PURE__*/_interop_require_wildcard(require("../RouterManager"))).then(m=>m.getRouterManager());const router=routerManager.getRouter();if(!router){throw new Error("路由未初始化,无法导航")}const currentLocation=this.getCurrentRoute();const targetLocation={path:targetPath,query:options?.query};const lifecycleManager=(0,_lifecycle.getRouterLifecycleManager)();const beforeEachResult=await lifecycleManager.beforeEach(targetLocation,currentLocation);let finalPath=targetPath;if(beforeEachResult===false){_logger.logger.debug("路由导航被阻止: beforeEach 返回 false");return}if(typeof beforeEachResult==="string"){_logger.logger.debug(`路由导航重定向: ${beforeEachResult}`);finalPath=this.buildTargetPath(beforeEachResult)}const middlewareManager=(0,_middleware.getRouterMiddlewareManager)();const middlewareContext={to:{...targetLocation,path:finalPath},from:currentLocation,options};const middlewareResult=await middlewareManager.execute(middlewareContext);if(!middlewareResult.allow){if(middlewareResult.redirect){_logger.logger.debug(`路由导航被中间件重定向: ${middlewareResult.redirect}`);return this.navigateInternal(middlewareResult.redirect,{...options,query:undefined},depth+1,visited)}_logger.logger.debug(`路由导航被中间件阻止: ${middlewareResult.reason||"未知原因"}`);return}try{if(options?.replace){router.navigate(finalPath,{replace:true,state:options.state})}else{router.navigate(finalPath,{state:options?.state})}await lifecycleManager.afterEach({...targetLocation,path:finalPath},currentLocation);const duration=performance.now()-startTime;routerManager.getMonitoring().trackRoutePerformance(finalPath,{totalTime:duration})}catch(error){_logger.logger.error("路由导航失败",error);throw error}}static async navigate(to,options){return this.navigateInternal(to,options,0,new Set)}static getCurrentRoute(){if(typeof window==="undefined"){return{path:"/",query:{}}}const pathname=window.location.pathname;const search=window.location.search;const hash=window.location.hash;const query={};if(search){const params=new URLSearchParams(search);params.forEach((value,key)=>{query[key]=value})}return{path:pathname+hash,query}}static async goBack(fallback){if(window.history.length>1){window.history.back()}else if(fallback){await this.navigate(fallback)}else{_logger.logger.warn("没有历史记录,无法返回")}}static goForward(){window.history.forward()}static async replace(to,options){return this.navigate(to,{...options,replace:true})}};_define_property(RouterNavigation,"MAX_REDIRECTS",10);
@@ -1,43 +0,0 @@
1
- /**
2
- * 路由导航 API
3
- * 提供框架级别的路由导航能力,封装 react-router-dom 的导航功能
4
- */
5
- import type { RouteLocation, NavigateOptions } from '../types';
6
- /**
7
- * 路由导航器
8
- */
9
- export declare class RouterNavigation {
10
- private static readonly MAX_REDIRECTS;
11
- private static buildTargetPath;
12
- private static navigateInternal;
13
- /**
14
- * 导航到指定路径
15
- *
16
- * @param to - 目标路径或路由名称
17
- * @param options - 导航选项
18
- */
19
- static navigate(to: string, options?: NavigateOptions): Promise<void>;
20
- /**
21
- * 获取当前路由信息
22
- *
23
- * @returns 当前路由位置信息
24
- */
25
- static getCurrentRoute(): RouteLocation;
26
- /**
27
- * 返回上一页
28
- *
29
- * @param fallback - 如果没有历史记录,跳转到该路径
30
- */
31
- static goBack(fallback?: string): Promise<void>;
32
- /**
33
- * 前进到下一页
34
- */
35
- static goForward(): void;
36
- /**
37
- * 替换当前路由
38
- *
39
- * @param to - 目标路径
40
- * @param options - 导航选项
41
- */
42
- static replace(to: string, options?: Omit<NavigateOptions, 'replace'>): Promise<void>;
43
- }
@@ -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{logger}from"@vlian/logger";import{getRouterLifecycleManager}from"../lifecycle";import{getRouterMiddlewareManager}from"../middleware";export class RouterNavigation{static buildTargetPath(to,query){const base=typeof window!=="undefined"&&window.location?.origin?window.location.origin:"http://localhost";const url=new URL(to,base);if(query&&Object.keys(query).length>0){const params=new URLSearchParams(url.search);Object.entries(query).forEach(([key,value])=>{if(value===undefined||value===null){params.delete(key);return}params.set(key,String(value))});url.search=params.toString()}return`${url.pathname}${url.search}${url.hash}`}static async navigateInternal(to,options,depth,visited){const startTime=performance.now();if(depth>this.MAX_REDIRECTS){throw new Error(`路由重定向次数超过上限(${this.MAX_REDIRECTS}),可能存在循环重定向`)}const targetPath=this.buildTargetPath(to,options?.query);if(visited.has(targetPath)){throw new Error(`检测到循环重定向: ${targetPath}`)}visited.add(targetPath);const routerManager=await import("../RouterManager").then(m=>m.getRouterManager());const router=routerManager.getRouter();if(!router){throw new Error("路由未初始化,无法导航")}const currentLocation=this.getCurrentRoute();const targetLocation={path:targetPath,query:options?.query};const lifecycleManager=getRouterLifecycleManager();const beforeEachResult=await lifecycleManager.beforeEach(targetLocation,currentLocation);let finalPath=targetPath;if(beforeEachResult===false){logger.debug("路由导航被阻止: beforeEach 返回 false");return}if(typeof beforeEachResult==="string"){logger.debug(`路由导航重定向: ${beforeEachResult}`);finalPath=this.buildTargetPath(beforeEachResult)}const middlewareManager=getRouterMiddlewareManager();const middlewareContext={to:{...targetLocation,path:finalPath},from:currentLocation,options};const middlewareResult=await middlewareManager.execute(middlewareContext);if(!middlewareResult.allow){if(middlewareResult.redirect){logger.debug(`路由导航被中间件重定向: ${middlewareResult.redirect}`);return this.navigateInternal(middlewareResult.redirect,{...options,query:undefined},depth+1,visited)}logger.debug(`路由导航被中间件阻止: ${middlewareResult.reason||"未知原因"}`);return}try{if(options?.replace){router.navigate(finalPath,{replace:true,state:options.state})}else{router.navigate(finalPath,{state:options?.state})}await lifecycleManager.afterEach({...targetLocation,path:finalPath},currentLocation);const duration=performance.now()-startTime;routerManager.getMonitoring().trackRoutePerformance(finalPath,{totalTime:duration})}catch(error){logger.error("路由导航失败",error);throw error}}static async navigate(to,options){return this.navigateInternal(to,options,0,new Set)}static getCurrentRoute(){if(typeof window==="undefined"){return{path:"/",query:{}}}const pathname=window.location.pathname;const search=window.location.search;const hash=window.location.hash;const query={};if(search){const params=new URLSearchParams(search);params.forEach((value,key)=>{query[key]=value})}return{path:pathname+hash,query}}static async goBack(fallback){if(window.history.length>1){window.history.back()}else if(fallback){await this.navigate(fallback)}else{logger.warn("没有历史记录,无法返回")}}static goForward(){window.history.forward()}static async replace(to,options){return this.navigate(to,{...options,replace:true})}}_define_property(RouterNavigation,"MAX_REDIRECTS",10);
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});_export_star(require("./RouterNavigation"),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,4 +0,0 @@
1
- /**
2
- * 路由导航模块入口
3
- */
4
- export * from './RouterNavigation';
@@ -1 +0,0 @@
1
- export*from"./RouterNavigation";
@@ -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 RouteCache(){return RouteCache},get getRouteCache(){return getRouteCache}});const _logger=require("@vlian/logger");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}let RouteCache=class RouteCache{async initPersistence(){try{if(typeof window!=="undefined"&&"indexedDB"in window){this.persistenceEnabled=true;await this.loadFromPersistence();_logger.logger.debug("路由缓存持久化已启用")}}catch(error){_logger.logger.warn("路由缓存持久化初始化失败",error);this.persistenceEnabled=false}}async loadFromPersistence(){try{}catch(error){_logger.logger.warn("从持久化存储加载缓存失败",error)}}async saveToPersistence(_key,_value){if(!this.persistenceEnabled){return}try{}catch(error){_logger.logger.warn("保存到持久化存储失败",error)}}generateKey(routes){if(typeof routes==="function"){return`fn_${routes.name||Math.random().toString(36).substring(7)}`}try{const routesStr=JSON.stringify(routes,(_key,value)=>{if(typeof value==="function"){return"[Function]"}return value});return`routes_${this.hashString(routesStr)}`}catch(error){return`routes_${Math.random().toString(36).substring(7)}`}}hashString(str){let hash=0;for(let i=0;i<str.length;i++){const char=str.charCodeAt(i);hash=(hash<<5)-hash+char;hash=hash&hash}return Math.abs(hash).toString(36)}isExpired(item){return Date.now()>item.expiresAt}cleanup(){for(const[key,item]of this.cache.entries()){if(this.isExpired(item)){this.cache.delete(key)}}for(const[key,item]of this.matchCache.entries()){if(this.isExpired(item)){this.matchCache.delete(key)}}this.evictLRU()}evictLRU(){if(this.cache.size>this.config.maxSize){const sorted=Array.from(this.cache.entries()).sort((a,b)=>a[1].lastAccessedAt-b[1].lastAccessedAt);const toDelete=sorted.slice(0,this.cache.size-this.config.maxSize);toDelete.forEach(([key])=>this.cache.delete(key))}if(this.matchCache.size>this.config.maxSize){const sorted=Array.from(this.matchCache.entries()).sort((a,b)=>a[1].lastAccessedAt-b[1].lastAccessedAt);const toDelete=sorted.slice(0,this.matchCache.size-this.config.maxSize);toDelete.forEach(([key])=>this.matchCache.delete(key))}}startCleanupInterval(){if(this.cleanupTimer){clearInterval(this.cleanupTimer)}this.cleanupTimer=setInterval(()=>{this.cleanup()},60*1e3)}get(routes){const key=this.generateKey(routes);const item=this.cache.get(key);if(!item){this.stats.transformMisses++;return null}if(this.isExpired(item)){this.cache.delete(key);this.stats.transformMisses++;return null}item.lastAccessedAt=Date.now();item.accessCount++;this.stats.transformHits++;return item.value}set(routes,value){const key=this.generateKey(routes);const now=Date.now();const item={value,expiresAt:now+this.config.ttl,createdAt:now,accessCount:0,lastAccessedAt:now};this.cache.set(key,item);if(this.persistenceEnabled){this.saveToPersistence(key,value).catch(error=>{_logger.logger.warn("保存缓存到持久化存储失败",error)})}this.evictLRU()}getMatch(path){const item=this.matchCache.get(path);if(!item){this.stats.matchMisses++;return undefined}if(this.isExpired(item)){this.matchCache.delete(path);this.stats.matchMisses++;return undefined}item.lastAccessedAt=Date.now();item.accessCount++;this.stats.matchHits++;return item.value}setMatch(path,route){const now=Date.now();const item={value:route,expiresAt:now+this.config.ttl,createdAt:now,accessCount:0,lastAccessedAt:now};this.matchCache.set(path,item);this.evictLRU()}clear(){this.cache.clear();this.matchCache.clear();this.stats={transformHits:0,transformMisses:0,matchHits:0,matchMisses:0};_logger.logger.debug("路由缓存已清空")}destroy(){this.clear();if(this.cleanupTimer){clearInterval(this.cleanupTimer);this.cleanupTimer=null}}getStats(){const totalHits=this.stats.transformHits+this.stats.matchHits;const totalAccess=totalHits+this.stats.transformMisses+this.stats.matchMisses;const hitRate=totalAccess>0?totalHits/totalAccess:0;return{transformCacheSize:this.cache.size,matchCacheSize:this.matchCache.size,totalSize:this.cache.size+this.matchCache.size,hitRate}}constructor(config={}){_define_property(this,"cache",new Map);_define_property(this,"matchCache",new Map);_define_property(this,"config",void 0);_define_property(this,"persistenceEnabled",false);_define_property(this,"cleanupTimer",null);_define_property(this,"stats",{transformHits:0,transformMisses:0,matchHits:0,matchMisses:0});this.config={maxSize:config.maxSize??50,ttl:config.ttl??5*60*1e3,enablePersistence:config.enablePersistence??false,persistenceKeyPrefix:config.persistenceKeyPrefix??"router_cache_"};if(this.config.enablePersistence&&typeof window!=="undefined"&&"indexedDB"in window){this.initPersistence()}this.startCleanupInterval()}};let routeCacheInstance=null;function getRouteCache(config){if(!routeCacheInstance){routeCacheInstance=new RouteCache(config)}return routeCacheInstance}
@@ -1,113 +0,0 @@
1
- /**
2
- * 路由缓存管理器
3
- * 提供路由转换结果、匹配结果的缓存功能
4
- */
5
- import type { RouteConfig } from '../types';
6
- import type { TransformRoutesResult } from '../utils/transform';
7
- /**
8
- * LRU 缓存配置
9
- */
10
- export interface RouteCacheConfig {
11
- /**
12
- * 最大缓存数量
13
- * @default 50
14
- */
15
- maxSize?: number;
16
- /**
17
- * 缓存过期时间(毫秒)
18
- * @default 5 * 60 * 1000 (5分钟)
19
- */
20
- ttl?: number;
21
- /**
22
- * 是否启用持久化缓存(使用 IndexedDB)
23
- * @default false
24
- */
25
- enablePersistence?: boolean;
26
- /**
27
- * 持久化缓存键前缀
28
- * @default 'router_cache_'
29
- */
30
- persistenceKeyPrefix?: string;
31
- }
32
- /**
33
- * 路由缓存管理器
34
- */
35
- export declare class RouteCache {
36
- private cache;
37
- private matchCache;
38
- private config;
39
- private persistenceEnabled;
40
- private cleanupTimer;
41
- private stats;
42
- constructor(config?: RouteCacheConfig);
43
- /**
44
- * 初始化持久化缓存
45
- */
46
- private initPersistence;
47
- /**
48
- * 从持久化存储加载缓存
49
- */
50
- private loadFromPersistence;
51
- /**
52
- * 保存到持久化存储
53
- */
54
- private saveToPersistence;
55
- /**
56
- * 生成缓存键
57
- */
58
- private generateKey;
59
- /**
60
- * 字符串哈希函数(简单实现)
61
- */
62
- private hashString;
63
- /**
64
- * 检查缓存项是否过期
65
- */
66
- private isExpired;
67
- /**
68
- * 清理过期缓存
69
- */
70
- private cleanup;
71
- /**
72
- * LRU 淘汰策略
73
- */
74
- private evictLRU;
75
- /**
76
- * 启动定期清理
77
- */
78
- private startCleanupInterval;
79
- /**
80
- * 获取转换结果缓存
81
- */
82
- get(routes: RouteConfig[] | (() => RouteConfig[] | Promise<RouteConfig[]>)): TransformRoutesResult | null;
83
- /**
84
- * 设置转换结果缓存
85
- */
86
- set(routes: RouteConfig[] | (() => RouteConfig[] | Promise<RouteConfig[]>), value: TransformRoutesResult): void;
87
- /**
88
- * 获取路由匹配缓存
89
- */
90
- getMatch(path: string): RouteConfig | null | undefined;
91
- /**
92
- * 设置路由匹配缓存
93
- */
94
- setMatch(path: string, route: RouteConfig | null): void;
95
- /**
96
- * 清空所有缓存
97
- */
98
- clear(): void;
99
- /**
100
- * 销毁缓存实例并释放资源
101
- */
102
- destroy(): void;
103
- /**
104
- * 获取缓存统计信息
105
- */
106
- getStats(): {
107
- transformCacheSize: number;
108
- matchCacheSize: number;
109
- totalSize: number;
110
- hitRate: number;
111
- };
112
- }
113
- export declare function getRouteCache(config?: RouteCacheConfig): RouteCache;
@@ -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{logger}from"@vlian/logger";export class RouteCache{async initPersistence(){try{if(typeof window!=="undefined"&&"indexedDB"in window){this.persistenceEnabled=true;await this.loadFromPersistence();logger.debug("路由缓存持久化已启用")}}catch(error){logger.warn("路由缓存持久化初始化失败",error);this.persistenceEnabled=false}}async loadFromPersistence(){try{}catch(error){logger.warn("从持久化存储加载缓存失败",error)}}async saveToPersistence(_key,_value){if(!this.persistenceEnabled){return}try{}catch(error){logger.warn("保存到持久化存储失败",error)}}generateKey(routes){if(typeof routes==="function"){return`fn_${routes.name||Math.random().toString(36).substring(7)}`}try{const routesStr=JSON.stringify(routes,(_key,value)=>{if(typeof value==="function"){return"[Function]"}return value});return`routes_${this.hashString(routesStr)}`}catch(error){return`routes_${Math.random().toString(36).substring(7)}`}}hashString(str){let hash=0;for(let i=0;i<str.length;i++){const char=str.charCodeAt(i);hash=(hash<<5)-hash+char;hash=hash&hash}return Math.abs(hash).toString(36)}isExpired(item){return Date.now()>item.expiresAt}cleanup(){for(const[key,item]of this.cache.entries()){if(this.isExpired(item)){this.cache.delete(key)}}for(const[key,item]of this.matchCache.entries()){if(this.isExpired(item)){this.matchCache.delete(key)}}this.evictLRU()}evictLRU(){if(this.cache.size>this.config.maxSize){const sorted=Array.from(this.cache.entries()).sort((a,b)=>a[1].lastAccessedAt-b[1].lastAccessedAt);const toDelete=sorted.slice(0,this.cache.size-this.config.maxSize);toDelete.forEach(([key])=>this.cache.delete(key))}if(this.matchCache.size>this.config.maxSize){const sorted=Array.from(this.matchCache.entries()).sort((a,b)=>a[1].lastAccessedAt-b[1].lastAccessedAt);const toDelete=sorted.slice(0,this.matchCache.size-this.config.maxSize);toDelete.forEach(([key])=>this.matchCache.delete(key))}}startCleanupInterval(){if(this.cleanupTimer){clearInterval(this.cleanupTimer)}this.cleanupTimer=setInterval(()=>{this.cleanup()},60*1e3)}get(routes){const key=this.generateKey(routes);const item=this.cache.get(key);if(!item){this.stats.transformMisses++;return null}if(this.isExpired(item)){this.cache.delete(key);this.stats.transformMisses++;return null}item.lastAccessedAt=Date.now();item.accessCount++;this.stats.transformHits++;return item.value}set(routes,value){const key=this.generateKey(routes);const now=Date.now();const item={value,expiresAt:now+this.config.ttl,createdAt:now,accessCount:0,lastAccessedAt:now};this.cache.set(key,item);if(this.persistenceEnabled){this.saveToPersistence(key,value).catch(error=>{logger.warn("保存缓存到持久化存储失败",error)})}this.evictLRU()}getMatch(path){const item=this.matchCache.get(path);if(!item){this.stats.matchMisses++;return undefined}if(this.isExpired(item)){this.matchCache.delete(path);this.stats.matchMisses++;return undefined}item.lastAccessedAt=Date.now();item.accessCount++;this.stats.matchHits++;return item.value}setMatch(path,route){const now=Date.now();const item={value:route,expiresAt:now+this.config.ttl,createdAt:now,accessCount:0,lastAccessedAt:now};this.matchCache.set(path,item);this.evictLRU()}clear(){this.cache.clear();this.matchCache.clear();this.stats={transformHits:0,transformMisses:0,matchHits:0,matchMisses:0};logger.debug("路由缓存已清空")}destroy(){this.clear();if(this.cleanupTimer){clearInterval(this.cleanupTimer);this.cleanupTimer=null}}getStats(){const totalHits=this.stats.transformHits+this.stats.matchHits;const totalAccess=totalHits+this.stats.transformMisses+this.stats.matchMisses;const hitRate=totalAccess>0?totalHits/totalAccess:0;return{transformCacheSize:this.cache.size,matchCacheSize:this.matchCache.size,totalSize:this.cache.size+this.matchCache.size,hitRate}}constructor(config={}){_define_property(this,"cache",new Map);_define_property(this,"matchCache",new Map);_define_property(this,"config",void 0);_define_property(this,"persistenceEnabled",false);_define_property(this,"cleanupTimer",null);_define_property(this,"stats",{transformHits:0,transformMisses:0,matchHits:0,matchMisses:0});this.config={maxSize:config.maxSize??50,ttl:config.ttl??5*60*1e3,enablePersistence:config.enablePersistence??false,persistenceKeyPrefix:config.persistenceKeyPrefix??"router_cache_"};if(this.config.enablePersistence&&typeof window!=="undefined"&&"indexedDB"in window){this.initPersistence()}this.startCleanupInterval()}}let routeCacheInstance=null;export function getRouteCache(config){if(!routeCacheInstance){routeCacheInstance=new RouteCache(config)}return routeCacheInstance}
@@ -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 PreloadStrategy(){return PreloadStrategy},get RoutePreloader(){return RoutePreloader},get getRoutePreloader(){return getRoutePreloader}});const _logger=require("@vlian/logger");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}var PreloadStrategy=/*#__PURE__*/function(PreloadStrategy){PreloadStrategy["NONE"]="none";PreloadStrategy["NEXT_LEVEL"]="next-level";PreloadStrategy["ALL"]="all";PreloadStrategy["VISIBLE"]="visible";return PreloadStrategy}({});let RoutePreloader=class RoutePreloader{updateConfig(config={}){this.config={strategy:config.strategy??"none",delay:config.delay??1e3,priorityThreshold:config.priorityThreshold??10,timeout:config.timeout??5e3}}shouldRegister(priority){if(this.config.strategy==="none"){return false}if(this.config.strategy==="visible"&&priority>this.config.priorityThreshold){return false}return true}registerTask(key,importFn,routeName,priority){if(!this.shouldRegister(priority)){return}this.tasks.set(key,{importFn,routeName,priority,status:"pending"})}registerRoute(route){if(!route.page&&!route.layout){return}const priority=route.handle?.order??999;if(route.page&&typeof route.page==="function"){this.registerTask(`${route.name}_page`,route.page,route.name,priority)}if(route.layout&&typeof route.layout==="function"){this.registerTask(`${route.name}_layout`,route.layout,route.name,priority)}if(route.children){route.children.forEach(child=>this.registerRoute(child))}}registerRoutes(routes,resolvers){const priorityByPath=new Map;const nameByPath=new Map;const collectPriority=route=>{const priority=route.handle?.order??999;const routeName=route.name;const record=value=>{if(typeof value!=="string"){return}if(!priorityByPath.has(value)||(priorityByPath.get(value)??999)>priority){priorityByPath.set(value,priority);nameByPath.set(value,routeName)}};record(route.page);record(route.layout);record(route.error??route.errors);record(route.loading);route.children?.forEach(collectPriority)};routes.forEach(collectPriority);routes.forEach(route=>this.registerRoute(route));if(!resolvers){return}const registerResolverMap=(map,type)=>{for(const[path,importFn]of map.entries()){const routeName=nameByPath.get(path)??path;const priority=priorityByPath.get(path)??999;this.registerTask(`${routeName}_${type}_${path}`,importFn,routeName,priority)}};registerResolverMap(resolvers.pages,"page");registerResolverMap(resolvers.layouts,"layout");registerResolverMap(resolvers.errors,"error");registerResolverMap(resolvers.loadings,"loading")}async preloadRoute(routeName){const tasks=Array.from(this.tasks.values()).filter(task=>task.routeName===routeName&&task.status==="pending");if(tasks.length===0){return}await Promise.all(tasks.map(task=>this.preloadTask(task)))}async preloadTask(task){if(task.status!=="pending"){return}task.status="loading";task.startTime=Date.now();let timeoutId=null;try{const timeoutPromise=new Promise((_,reject)=>{timeoutId=setTimeout(()=>reject(new Error("预加载超时")),this.config.timeout)});await Promise.race([task.importFn(),timeoutPromise]);task.status="loaded";const duration=Date.now()-(task.startTime||0);_logger.logger.debug(`路由组件预加载成功: ${task.routeName} (${duration}ms)`)}catch(error){task.status="failed";_logger.logger.warn(`路由组件预加载失败: ${task.routeName}`,error)}finally{if(timeoutId){clearTimeout(timeoutId)}}}startPreload(){if(this.config.strategy==="none"){return}this.stopPreload();this.preloadTimer=setTimeout(()=>{const browserWindow=typeof window!=="undefined"?window:undefined;if(browserWindow?.requestIdleCallback){this.idleHandle=browserWindow.requestIdleCallback(()=>{this.executePreload()});return}this.executePreload()},this.config.delay)}async executePreload(){const tasks=Array.from(this.tasks.values()).filter(task=>task.status==="pending").sort((a,b)=>a.priority-b.priority);if(tasks.length===0){return}_logger.logger.debug(`开始预加载 ${tasks.length} 个路由组件`);let tasksToPreload=[];switch(this.config.strategy){case"all":tasksToPreload=tasks;break;case"next-level":tasksToPreload=tasks.slice(0,Math.min(5,tasks.length));break;case"visible":tasksToPreload=tasks.filter(task=>task.priority<=this.config.priorityThreshold);break;default:return}const concurrency=3;for(let i=0;i<tasksToPreload.length;i+=concurrency){const batch=tasksToPreload.slice(i,i+concurrency);await Promise.all(batch.map(task=>this.preloadTask(task)))}_logger.logger.debug("路由组件预加载完成")}stopPreload(){const browserWindow=typeof window!=="undefined"?window:undefined;if(this.preloadTimer){clearTimeout(this.preloadTimer);this.preloadTimer=null}if(this.idleHandle!==null&&browserWindow?.cancelIdleCallback){browserWindow.cancelIdleCallback(this.idleHandle);this.idleHandle=null}}clear(){this.tasks.clear();this.stopPreload();_logger.logger.debug("路由预加载任务已清空")}getStats(){const stats={total:this.tasks.size,pending:0,loading:0,loaded:0,failed:0};for(const task of this.tasks.values()){stats[task.status]++}return stats}constructor(config={}){_define_property(this,"tasks",new Map);_define_property(this,"config",void 0);_define_property(this,"preloadTimer",null);_define_property(this,"idleHandle",null);this.config={strategy:config.strategy??"none",delay:config.delay??1e3,priorityThreshold:config.priorityThreshold??10,timeout:config.timeout??5e3}}};let routePreloaderInstance=null;function getRoutePreloader(config){if(!routePreloaderInstance){routePreloaderInstance=new RoutePreloader(config)}return routePreloaderInstance}
@@ -1,111 +0,0 @@
1
- /**
2
- * 路由预加载管理器
3
- * 提供路由组件的预加载功能
4
- */
5
- import type { RouteConfig } from '../types';
6
- import type { TransformRoutesResult } from '../utils/transform';
7
- /**
8
- * 预加载策略
9
- */
10
- export declare enum PreloadStrategy {
11
- /**
12
- * 不预加载
13
- */
14
- NONE = "none",
15
- /**
16
- * 预加载当前路由的下一级路由
17
- */
18
- NEXT_LEVEL = "next-level",
19
- /**
20
- * 预加载所有路由
21
- */
22
- ALL = "all",
23
- /**
24
- * 预加载可见路由(根据路由配置的优先级)
25
- */
26
- VISIBLE = "visible"
27
- }
28
- /**
29
- * 预加载配置
30
- */
31
- export interface PreloadConfig {
32
- /**
33
- * 预加载策略
34
- * @default PreloadStrategy.NEXT_LEVEL
35
- */
36
- strategy?: PreloadStrategy;
37
- /**
38
- * 预加载延迟(毫秒)
39
- * @default 1000
40
- */
41
- delay?: number;
42
- /**
43
- * 预加载优先级阈值(只预加载优先级小于等于此值的路由)
44
- * @default 10
45
- */
46
- priorityThreshold?: number;
47
- /**
48
- * 预加载超时时间(毫秒)
49
- * @default 5000
50
- */
51
- timeout?: number;
52
- }
53
- /**
54
- * 路由预加载管理器
55
- */
56
- export declare class RoutePreloader {
57
- private tasks;
58
- private config;
59
- private preloadTimer;
60
- private idleHandle;
61
- constructor(config?: PreloadConfig);
62
- /**
63
- * 更新预加载配置
64
- */
65
- updateConfig(config?: PreloadConfig): void;
66
- private shouldRegister;
67
- private registerTask;
68
- /**
69
- * 注册路由用于预加载
70
- */
71
- registerRoute(route: RouteConfig): void;
72
- /**
73
- * 注册多个路由
74
- */
75
- registerRoutes(routes: RouteConfig[], resolvers?: Pick<TransformRoutesResult, 'pages' | 'layouts' | 'errors' | 'loadings'>): void;
76
- /**
77
- * 预加载指定路由
78
- */
79
- preloadRoute(routeName: string): Promise<void>;
80
- /**
81
- * 预加载任务
82
- */
83
- private preloadTask;
84
- /**
85
- * 开始预加载(根据策略)
86
- */
87
- startPreload(): void;
88
- /**
89
- * 执行预加载
90
- */
91
- private executePreload;
92
- /**
93
- * 停止预加载
94
- */
95
- stopPreload(): void;
96
- /**
97
- * 清空所有任务
98
- */
99
- clear(): void;
100
- /**
101
- * 获取预加载统计信息
102
- */
103
- getStats(): {
104
- total: number;
105
- pending: number;
106
- loading: number;
107
- loaded: number;
108
- failed: number;
109
- };
110
- }
111
- export declare function getRoutePreloader(config?: PreloadConfig): RoutePreloader;
@@ -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{logger}from"@vlian/logger";export var PreloadStrategy=/*#__PURE__*/function(PreloadStrategy){PreloadStrategy["NONE"]="none";PreloadStrategy["NEXT_LEVEL"]="next-level";PreloadStrategy["ALL"]="all";PreloadStrategy["VISIBLE"]="visible";return PreloadStrategy}({});export class RoutePreloader{updateConfig(config={}){this.config={strategy:config.strategy??"none",delay:config.delay??1e3,priorityThreshold:config.priorityThreshold??10,timeout:config.timeout??5e3}}shouldRegister(priority){if(this.config.strategy==="none"){return false}if(this.config.strategy==="visible"&&priority>this.config.priorityThreshold){return false}return true}registerTask(key,importFn,routeName,priority){if(!this.shouldRegister(priority)){return}this.tasks.set(key,{importFn,routeName,priority,status:"pending"})}registerRoute(route){if(!route.page&&!route.layout){return}const priority=route.handle?.order??999;if(route.page&&typeof route.page==="function"){this.registerTask(`${route.name}_page`,route.page,route.name,priority)}if(route.layout&&typeof route.layout==="function"){this.registerTask(`${route.name}_layout`,route.layout,route.name,priority)}if(route.children){route.children.forEach(child=>this.registerRoute(child))}}registerRoutes(routes,resolvers){const priorityByPath=new Map;const nameByPath=new Map;const collectPriority=route=>{const priority=route.handle?.order??999;const routeName=route.name;const record=value=>{if(typeof value!=="string"){return}if(!priorityByPath.has(value)||(priorityByPath.get(value)??999)>priority){priorityByPath.set(value,priority);nameByPath.set(value,routeName)}};record(route.page);record(route.layout);record(route.error??route.errors);record(route.loading);route.children?.forEach(collectPriority)};routes.forEach(collectPriority);routes.forEach(route=>this.registerRoute(route));if(!resolvers){return}const registerResolverMap=(map,type)=>{for(const[path,importFn]of map.entries()){const routeName=nameByPath.get(path)??path;const priority=priorityByPath.get(path)??999;this.registerTask(`${routeName}_${type}_${path}`,importFn,routeName,priority)}};registerResolverMap(resolvers.pages,"page");registerResolverMap(resolvers.layouts,"layout");registerResolverMap(resolvers.errors,"error");registerResolverMap(resolvers.loadings,"loading")}async preloadRoute(routeName){const tasks=Array.from(this.tasks.values()).filter(task=>task.routeName===routeName&&task.status==="pending");if(tasks.length===0){return}await Promise.all(tasks.map(task=>this.preloadTask(task)))}async preloadTask(task){if(task.status!=="pending"){return}task.status="loading";task.startTime=Date.now();let timeoutId=null;try{const timeoutPromise=new Promise((_,reject)=>{timeoutId=setTimeout(()=>reject(new Error("预加载超时")),this.config.timeout)});await Promise.race([task.importFn(),timeoutPromise]);task.status="loaded";const duration=Date.now()-(task.startTime||0);logger.debug(`路由组件预加载成功: ${task.routeName} (${duration}ms)`)}catch(error){task.status="failed";logger.warn(`路由组件预加载失败: ${task.routeName}`,error)}finally{if(timeoutId){clearTimeout(timeoutId)}}}startPreload(){if(this.config.strategy==="none"){return}this.stopPreload();this.preloadTimer=setTimeout(()=>{const browserWindow=typeof window!=="undefined"?window:undefined;if(browserWindow?.requestIdleCallback){this.idleHandle=browserWindow.requestIdleCallback(()=>{this.executePreload()});return}this.executePreload()},this.config.delay)}async executePreload(){const tasks=Array.from(this.tasks.values()).filter(task=>task.status==="pending").sort((a,b)=>a.priority-b.priority);if(tasks.length===0){return}logger.debug(`开始预加载 ${tasks.length} 个路由组件`);let tasksToPreload=[];switch(this.config.strategy){case"all":tasksToPreload=tasks;break;case"next-level":tasksToPreload=tasks.slice(0,Math.min(5,tasks.length));break;case"visible":tasksToPreload=tasks.filter(task=>task.priority<=this.config.priorityThreshold);break;default:return}const concurrency=3;for(let i=0;i<tasksToPreload.length;i+=concurrency){const batch=tasksToPreload.slice(i,i+concurrency);await Promise.all(batch.map(task=>this.preloadTask(task)))}logger.debug("路由组件预加载完成")}stopPreload(){const browserWindow=typeof window!=="undefined"?window:undefined;if(this.preloadTimer){clearTimeout(this.preloadTimer);this.preloadTimer=null}if(this.idleHandle!==null&&browserWindow?.cancelIdleCallback){browserWindow.cancelIdleCallback(this.idleHandle);this.idleHandle=null}}clear(){this.tasks.clear();this.stopPreload();logger.debug("路由预加载任务已清空")}getStats(){const stats={total:this.tasks.size,pending:0,loading:0,loaded:0,failed:0};for(const task of this.tasks.values()){stats[task.status]++}return stats}constructor(config={}){_define_property(this,"tasks",new Map);_define_property(this,"config",void 0);_define_property(this,"preloadTimer",null);_define_property(this,"idleHandle",null);this.config={strategy:config.strategy??"none",delay:config.delay??1e3,priorityThreshold:config.priorityThreshold??10,timeout:config.timeout??5e3}}}let routePreloaderInstance=null;export function getRoutePreloader(config){if(!routePreloaderInstance){routePreloaderInstance=new RoutePreloader(config)}return routePreloaderInstance}
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});_export_star(require("./RouteCache"),exports);_export_star(require("./RoutePreloader"),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,5 +0,0 @@
1
- /**
2
- * 路由性能优化模块入口
3
- */
4
- export * from './RouteCache';
5
- export * from './RoutePreloader';
@@ -1 +0,0 @@
1
- export*from"./RouteCache";export*from"./RoutePreloader";
@@ -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 RouterPluginManager(){return RouterPluginManager},get getRouterPluginManager(){return getRouterPluginManager}});const _logger=require("@vlian/logger");const _types=require("./types");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}let RouterPluginManager=class RouterPluginManager{register(plugin,options={}){if(!plugin.name){throw new Error("插件必须提供名称")}if(this.plugins.has(plugin.name)&&!options.overwrite){throw new Error(`插件 "${plugin.name}" 已存在`)}const pluginWithDefaults={priority:100,enabled:true,...plugin};if(pluginWithDefaults.dependencies){const missingDeps=pluginWithDefaults.dependencies.filter(dep=>!this.plugins.has(dep));if(missingDeps.length>0){throw new Error(`插件 "${plugin.name}" 缺少依赖: ${missingDeps.join(", ")}`)}}this.plugins.set(plugin.name,{plugin:pluginWithDefaults,status:"registered",registeredAt:Date.now()});_logger.logger.debug(`路由插件已注册: ${plugin.name}`);if(pluginWithDefaults.hooks?.onRegister){try{const context={config:{},meta:{stage:_types.PluginLifecycleStage.REGISTER}};pluginWithDefaults.hooks.onRegister(context)}catch(error){_logger.logger.error(`插件注册钩子执行失败: ${plugin.name}`,error)}}return()=>{this.unregister(plugin.name)}}registerBatch(plugins,options={}){const sortedPlugins=this.sortByDependencies(plugins);sortedPlugins.forEach(plugin=>{this.register(plugin,options)})}sortByDependencies(plugins){const sorted=[];const visited=new Set;const visiting=new Set;const visit=plugin=>{if(visiting.has(plugin.name||"")){throw new Error(`检测到循环依赖: ${plugin.name}`)}if(visited.has(plugin.name||"")){return}visiting.add(plugin.name||"");if(plugin.dependencies){plugin.dependencies.forEach(depName=>{const dep=plugins.find(p=>p.name===depName);if(dep){visit(dep)}})}visiting.delete(plugin.name||"");visited.add(plugin.name||"");sorted.push(plugin)};plugins.forEach(plugin=>{if(!visited.has(plugin.name||"")){visit(plugin)}});return sorted}unregister(name){const registration=this.plugins.get(name);if(!registration){return}if(registration.plugin.hooks?.onDestroy){try{const context={config:{},meta:{stage:_types.PluginLifecycleStage.DESTROY}};registration.plugin.hooks.onDestroy(context)}catch(error){_logger.logger.error(`插件销毁钩子执行失败: ${name}`,error)}}this.plugins.delete(name);_logger.logger.debug(`路由插件已取消注册: ${name}`)}async executeHooks(stage,context){const enabledPlugins=Array.from(this.plugins.values()).filter(reg=>reg.plugin.enabled!==false).sort((a,b)=>(a.plugin.priority||100)-(b.plugin.priority||100));const hookMap={[_types.PluginLifecycleStage.REGISTER]:"onRegister",[_types.PluginLifecycleStage.BEFORE_INIT]:"onBeforeInit",[_types.PluginLifecycleStage.AFTER_INIT]:"onAfterInit",[_types.PluginLifecycleStage.BEFORE_TRANSFORM]:"onBeforeTransform",[_types.PluginLifecycleStage.AFTER_TRANSFORM]:"onAfterTransform",[_types.PluginLifecycleStage.BEFORE_MATCH]:"onBeforeMatch",[_types.PluginLifecycleStage.AFTER_MATCH]:"onAfterMatch",[_types.PluginLifecycleStage.DESTROY]:"onDestroy"};const hookName=hookMap[stage];if(!hookName){return}for(const registration of enabledPlugins){const hook=registration.plugin.hooks?.[hookName];if(hook){try{await hook(context)}catch(error){_logger.logger.error(`插件钩子执行失败: ${registration.plugin.name}.${hookName}`,error)}}}}getPlugin(name){return this.plugins.get(name)?.plugin}getAllPlugins(){return Array.from(this.plugins.values()).map(reg=>reg.plugin)}getEnabledPlugins(){return Array.from(this.plugins.values()).filter(reg=>reg.plugin.enabled!==false).map(reg=>reg.plugin)}clear(){for(const[name,registration]of this.plugins.entries()){if(registration.plugin.hooks?.onDestroy){try{const context={config:{},meta:{stage:_types.PluginLifecycleStage.DESTROY}};registration.plugin.hooks.onDestroy(context)}catch(error){_logger.logger.error(`插件销毁钩子执行失败: ${name}`,error)}}}this.plugins.clear();_logger.logger.debug("所有路由插件已清空")}getCount(){return this.plugins.size}constructor(){_define_property(this,"plugins",new Map)}};let pluginManagerInstance=null;function getRouterPluginManager(){if(!pluginManagerInstance){pluginManagerInstance=new RouterPluginManager}return pluginManagerInstance}