@vlian/framework 1.2.1 → 1.2.18

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 (456) hide show
  1. package/dist/analytics/index.cjs +24 -0
  2. package/dist/analytics/index.cjs.map +1 -0
  3. package/dist/analytics/index.d.ts +2 -0
  4. package/dist/analytics/index.js +3 -0
  5. package/dist/analytics/index.js.map +1 -0
  6. package/dist/analytics.umd.js +2406 -0
  7. package/dist/analytics.umd.js.map +1 -0
  8. package/dist/components/LocaleSwitch.cjs +118 -0
  9. package/dist/components/LocaleSwitch.cjs.map +1 -0
  10. package/dist/components/LocaleSwitch.d.ts +21 -0
  11. package/dist/components/LocaleSwitch.js +103 -0
  12. package/dist/components/LocaleSwitch.js.map +1 -0
  13. package/dist/components/ThemeSwitch.cjs +117 -0
  14. package/dist/components/ThemeSwitch.cjs.map +1 -0
  15. package/dist/components/ThemeSwitch.d.ts +20 -0
  16. package/dist/components/ThemeSwitch.js +102 -0
  17. package/dist/components/ThemeSwitch.js.map +1 -0
  18. package/dist/components/index.cjs +16 -0
  19. package/dist/components/index.cjs.map +1 -1
  20. package/dist/components/index.d.ts +5 -2
  21. package/dist/components/index.js +2 -1
  22. package/dist/components/index.js.map +1 -1
  23. package/dist/components/persistence.cjs +60 -0
  24. package/dist/components/persistence.cjs.map +1 -0
  25. package/dist/components/persistence.d.ts +12 -0
  26. package/dist/components/persistence.js +39 -0
  27. package/dist/components/persistence.js.map +1 -0
  28. package/dist/core/Test.d.ts +0 -1
  29. package/dist/core/app/AppContext.cjs +36 -30
  30. package/dist/core/app/AppContext.cjs.map +1 -1
  31. package/dist/core/app/AppContext.d.ts +9 -6
  32. package/dist/core/app/AppContext.js +36 -30
  33. package/dist/core/app/AppContext.js.map +1 -1
  34. package/dist/core/app/AppContext.types.d.ts +9 -10
  35. package/dist/core/app/AppContext.types.js.map +1 -1
  36. package/dist/core/app/BasicLayout.cjs +57 -22
  37. package/dist/core/app/BasicLayout.cjs.map +1 -1
  38. package/dist/core/app/BasicLayout.d.ts +7 -5
  39. package/dist/core/app/BasicLayout.js +57 -22
  40. package/dist/core/app/BasicLayout.js.map +1 -1
  41. package/dist/core/app/DefaultApp.cjs +104 -153
  42. package/dist/core/app/DefaultApp.cjs.map +1 -1
  43. package/dist/core/app/DefaultApp.d.ts +0 -21
  44. package/dist/core/app/DefaultApp.js +104 -153
  45. package/dist/core/app/DefaultApp.js.map +1 -1
  46. package/dist/core/app/index.d.ts +0 -1
  47. package/dist/core/config/AppConfig.cjs.map +1 -1
  48. package/dist/core/config/AppConfig.d.ts +3 -4
  49. package/dist/core/config/AppConfig.js.map +1 -1
  50. package/dist/core/config/ConfigLoader.d.ts +0 -1
  51. package/dist/core/config/ConfigValidator.d.ts +0 -1
  52. package/dist/core/config/index.d.ts +0 -1
  53. package/dist/core/dev/DevTools.cjs +141 -287
  54. package/dist/core/dev/DevTools.cjs.map +1 -1
  55. package/dist/core/dev/DevTools.d.ts +1 -32
  56. package/dist/core/dev/DevTools.js +143 -296
  57. package/dist/core/dev/DevTools.js.map +1 -1
  58. package/dist/core/error/ErrorBoundary.cjs +72 -14
  59. package/dist/core/error/ErrorBoundary.cjs.map +1 -1
  60. package/dist/core/error/ErrorBoundary.d.ts +7 -9
  61. package/dist/core/error/ErrorBoundary.js +73 -15
  62. package/dist/core/error/ErrorBoundary.js.map +1 -1
  63. package/dist/core/error/ErrorHandler.d.ts +0 -1
  64. package/dist/core/error/index.d.ts +0 -1
  65. package/dist/core/event/AppEventBus.d.ts +0 -1
  66. package/dist/core/event/frameworkEvents.d.ts +0 -1
  67. package/dist/core/event/hooks.d.ts +0 -1
  68. package/dist/core/event/index.d.ts +0 -1
  69. package/dist/core/event/types.d.ts +0 -1
  70. package/dist/core/event/useEventBus.d.ts +0 -1
  71. package/dist/core/index.cjs +2 -0
  72. package/dist/core/index.cjs.map +1 -1
  73. package/dist/core/index.d.ts +2 -1
  74. package/dist/core/index.js +2 -0
  75. package/dist/core/index.js.map +1 -1
  76. package/dist/core/initialization/InitializationErrorThrower.d.ts +0 -1
  77. package/dist/core/initialization/index.d.ts +0 -1
  78. package/dist/core/initialization/initialization.d.ts +0 -1
  79. package/dist/core/initialization/initializationErrorState.d.ts +0 -1
  80. package/dist/core/kernel/defaultAdapters.cjs +185 -0
  81. package/dist/core/kernel/defaultAdapters.cjs.map +1 -0
  82. package/dist/core/kernel/defaultAdapters.d.ts +2 -0
  83. package/dist/core/kernel/defaultAdapters.js +175 -0
  84. package/dist/core/kernel/defaultAdapters.js.map +1 -0
  85. package/dist/core/kernel/errors.cjs +71 -0
  86. package/dist/core/kernel/errors.cjs.map +1 -0
  87. package/dist/core/kernel/errors.d.ts +18 -0
  88. package/dist/core/kernel/errors.js +53 -0
  89. package/dist/core/kernel/errors.js.map +1 -0
  90. package/dist/core/kernel/index.cjs +22 -0
  91. package/dist/core/kernel/index.cjs.map +1 -0
  92. package/dist/core/kernel/index.d.ts +3 -0
  93. package/dist/core/kernel/index.js +4 -0
  94. package/dist/core/kernel/index.js.map +1 -0
  95. package/dist/core/kernel/startKernel.cjs +203 -0
  96. package/dist/core/kernel/startKernel.cjs.map +1 -0
  97. package/dist/core/kernel/startKernel.d.ts +2 -0
  98. package/dist/core/kernel/startKernel.js +193 -0
  99. package/dist/core/kernel/startKernel.js.map +1 -0
  100. package/dist/core/kernel/types.cjs +6 -0
  101. package/dist/core/kernel/types.cjs.map +1 -0
  102. package/dist/core/kernel/types.d.ts +114 -0
  103. package/dist/core/kernel/types.js +3 -0
  104. package/dist/core/kernel/types.js.map +1 -0
  105. package/dist/core/middleware.d.ts +0 -1
  106. package/dist/core/plugin/PluginEventBus.d.ts +0 -1
  107. package/dist/core/plugin/PluginSandbox.d.ts +0 -1
  108. package/dist/core/plugin.cjs +1 -1
  109. package/dist/core/plugin.cjs.map +1 -1
  110. package/dist/core/plugin.d.ts +0 -1
  111. package/dist/core/plugin.js +1 -1
  112. package/dist/core/plugin.js.map +1 -1
  113. package/dist/core/router/RouterManager.cjs +32 -2
  114. package/dist/core/router/RouterManager.cjs.map +1 -1
  115. package/dist/core/router/RouterManager.d.ts +5 -1
  116. package/dist/core/router/RouterManager.js +33 -3
  117. package/dist/core/router/RouterManager.js.map +1 -1
  118. package/dist/core/router/adapter/AdapterManager.d.ts +0 -1
  119. package/dist/core/router/adapter/index.d.ts +0 -1
  120. package/dist/core/router/adapter/react-router/ReactRouterAdapter.cjs.map +1 -1
  121. package/dist/core/router/adapter/react-router/ReactRouterAdapter.d.ts +0 -1
  122. package/dist/core/router/adapter/react-router/ReactRouterAdapter.js.map +1 -1
  123. package/dist/core/router/adapter/react-router/index.d.ts +0 -1
  124. package/dist/core/router/adapter/types.cjs.map +1 -1
  125. package/dist/core/router/adapter/types.d.ts +1 -2
  126. package/dist/core/router/adapter/types.js.map +1 -1
  127. package/dist/core/router/dev/RouterDevTools.cjs +148 -296
  128. package/dist/core/router/dev/RouterDevTools.cjs.map +1 -1
  129. package/dist/core/router/dev/RouterDevTools.d.ts +1 -6
  130. package/dist/core/router/dev/RouterDevTools.js +149 -301
  131. package/dist/core/router/dev/RouterDevTools.js.map +1 -1
  132. package/dist/core/router/dev/index.d.ts +0 -1
  133. package/dist/core/router/dynamic/DynamicRouteManager.d.ts +0 -1
  134. package/dist/core/router/dynamic/index.d.ts +0 -1
  135. package/dist/core/router/errors/RouterError.d.ts +0 -1
  136. package/dist/core/router/errors/index.d.ts +0 -1
  137. package/dist/core/router/index.d.ts +0 -1
  138. package/dist/core/router/lifecycle/RouterLifecycleManager.d.ts +0 -1
  139. package/dist/core/router/lifecycle/index.d.ts +0 -1
  140. package/dist/core/router/middleware/RouterMiddlewareManager.cjs +24 -4
  141. package/dist/core/router/middleware/RouterMiddlewareManager.cjs.map +1 -1
  142. package/dist/core/router/middleware/RouterMiddlewareManager.d.ts +1 -1
  143. package/dist/core/router/middleware/RouterMiddlewareManager.js +24 -4
  144. package/dist/core/router/middleware/RouterMiddlewareManager.js.map +1 -1
  145. package/dist/core/router/middleware/auth.d.ts +0 -1
  146. package/dist/core/router/middleware/index.d.ts +0 -1
  147. package/dist/core/router/middleware/types.cjs.map +1 -1
  148. package/dist/core/router/middleware/types.d.ts +1 -2
  149. package/dist/core/router/middleware/types.js.map +1 -1
  150. package/dist/core/router/monitoring/RouterMonitoring.d.ts +0 -1
  151. package/dist/core/router/monitoring/index.d.ts +0 -1
  152. package/dist/core/router/navigation/RouterNavigation.cjs +69 -14
  153. package/dist/core/router/navigation/RouterNavigation.cjs.map +1 -1
  154. package/dist/core/router/navigation/RouterNavigation.d.ts +3 -1
  155. package/dist/core/router/navigation/RouterNavigation.js +69 -14
  156. package/dist/core/router/navigation/RouterNavigation.js.map +1 -1
  157. package/dist/core/router/navigation/index.d.ts +0 -1
  158. package/dist/core/router/performance/RouteCache.cjs +34 -13
  159. package/dist/core/router/performance/RouteCache.cjs.map +1 -1
  160. package/dist/core/router/performance/RouteCache.d.ts +8 -3
  161. package/dist/core/router/performance/RouteCache.js +34 -13
  162. package/dist/core/router/performance/RouteCache.js.map +1 -1
  163. package/dist/core/router/performance/RoutePreloader.cjs +89 -22
  164. package/dist/core/router/performance/RoutePreloader.cjs.map +1 -1
  165. package/dist/core/router/performance/RoutePreloader.d.ts +9 -2
  166. package/dist/core/router/performance/RoutePreloader.js +89 -22
  167. package/dist/core/router/performance/RoutePreloader.js.map +1 -1
  168. package/dist/core/router/performance/index.d.ts +0 -1
  169. package/dist/core/router/plugin/RouterPluginManager.d.ts +0 -1
  170. package/dist/core/router/plugin/index.d.ts +0 -1
  171. package/dist/core/router/plugin/types.d.ts +0 -1
  172. package/dist/core/router/types.d.ts +23 -7
  173. package/dist/core/router/types.js.map +1 -1
  174. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.cjs +90 -103
  175. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.cjs.map +1 -1
  176. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.d.ts +0 -1
  177. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.js +91 -104
  178. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.js.map +1 -1
  179. package/dist/core/router/utils/adapters/react-router/transform.cjs +45 -63
  180. package/dist/core/router/utils/adapters/react-router/transform.cjs.map +1 -1
  181. package/dist/core/router/utils/adapters/react-router/transform.d.ts +0 -1
  182. package/dist/core/router/utils/adapters/react-router/transform.js +46 -59
  183. package/dist/core/router/utils/adapters/react-router/transform.js.map +1 -1
  184. package/dist/core/router/utils/transform.cjs +80 -71
  185. package/dist/core/router/utils/transform.cjs.map +1 -1
  186. package/dist/core/router/utils/transform.d.ts +1 -2
  187. package/dist/core/router/utils/transform.js +81 -72
  188. package/dist/core/router/utils/transform.js.map +1 -1
  189. package/dist/core/router/validation/RouterConfigValidator.d.ts +66 -5
  190. package/dist/core/router/validation/index.d.ts +0 -1
  191. package/dist/core/router/validation/schema.cjs +71 -2
  192. package/dist/core/router/validation/schema.cjs.map +1 -1
  193. package/dist/core/router/validation/schema.d.ts +102 -7
  194. package/dist/core/router/validation/schema.js +71 -2
  195. package/dist/core/router/validation/schema.js.map +1 -1
  196. package/dist/core/router/version/RouteVersionManager.d.ts +0 -1
  197. package/dist/core/router/version/index.d.ts +0 -1
  198. package/dist/core/splash/SplashScreen.cjs +101 -15
  199. package/dist/core/splash/SplashScreen.cjs.map +1 -1
  200. package/dist/core/splash/SplashScreen.d.ts +0 -1
  201. package/dist/core/splash/SplashScreen.js +101 -15
  202. package/dist/core/splash/SplashScreen.js.map +1 -1
  203. package/dist/core/splash/index.d.ts +0 -1
  204. package/dist/core/splash/splashScreenUtils.d.ts +0 -1
  205. package/dist/core/startup/AppInstance.d.ts +0 -1
  206. package/dist/core/startup/environment.d.ts +0 -1
  207. package/dist/core/startup/index.d.ts +0 -1
  208. package/dist/core/startup/initializeServices.d.ts +0 -1
  209. package/dist/core/startup/performanceTracker.d.ts +0 -1
  210. package/dist/core/startup/renderApp.cjs +12 -10
  211. package/dist/core/startup/renderApp.cjs.map +1 -1
  212. package/dist/core/startup/renderApp.d.ts +0 -1
  213. package/dist/core/startup/renderApp.js +12 -10
  214. package/dist/core/startup/renderApp.js.map +1 -1
  215. package/dist/core/startup/startApp.cjs +118 -13
  216. package/dist/core/startup/startApp.cjs.map +1 -1
  217. package/dist/core/startup/startApp.d.ts +0 -1
  218. package/dist/core/startup/startApp.js +118 -13
  219. package/dist/core/startup/startApp.js.map +1 -1
  220. package/dist/core/types.d.ts +34 -21
  221. package/dist/core/types.js.map +1 -1
  222. package/dist/core/ui-adapter/adapters.cjs +45 -0
  223. package/dist/core/ui-adapter/adapters.cjs.map +1 -0
  224. package/dist/core/ui-adapter/adapters.d.ts +4 -0
  225. package/dist/core/ui-adapter/adapters.js +27 -0
  226. package/dist/core/ui-adapter/adapters.js.map +1 -0
  227. package/dist/core/ui-adapter/index.cjs +21 -0
  228. package/dist/core/ui-adapter/index.cjs.map +1 -0
  229. package/dist/core/ui-adapter/index.d.ts +2 -0
  230. package/dist/core/ui-adapter/index.js +3 -0
  231. package/dist/core/ui-adapter/index.js.map +1 -0
  232. package/dist/core/ui-adapter/types.cjs +6 -0
  233. package/dist/core/ui-adapter/types.cjs.map +1 -0
  234. package/dist/core/ui-adapter/types.d.ts +24 -0
  235. package/dist/core/ui-adapter/types.js +3 -0
  236. package/dist/core/ui-adapter/types.js.map +1 -0
  237. package/dist/index.cjs +1 -0
  238. package/dist/index.cjs.map +1 -1
  239. package/dist/index.d.ts +1 -1
  240. package/dist/index.js +1 -0
  241. package/dist/index.js.map +1 -1
  242. package/dist/index.umd.d.ts +0 -1
  243. package/dist/index.umd.js +7684 -6056
  244. package/dist/index.umd.js.map +1 -1
  245. package/dist/library/index.d.ts +0 -1
  246. package/dist/library/locale/index.d.ts +0 -1
  247. package/dist/library/locale/langs/en-us/index.d.ts +0 -1
  248. package/dist/library/locale/langs/zh-cn/index.d.ts +0 -1
  249. package/dist/library/locale/types.d.ts +0 -1
  250. package/dist/library/storage/cache.d.ts +0 -1
  251. package/dist/library/storage/encryption.d.ts +0 -1
  252. package/dist/library/storage/index.d.ts +0 -1
  253. package/dist/request/adapter/RequestAdapter.d.ts +0 -1
  254. package/dist/request/adapter/axiosAdapter.d.ts +0 -1
  255. package/dist/request/adapter/fetchAdapter.d.ts +0 -1
  256. package/dist/request/adapter/index.d.ts +0 -1
  257. package/dist/request/adapter/kyAdapter.d.ts +0 -1
  258. package/dist/request/adapter/undiciAdapter.d.ts +0 -1
  259. package/dist/request/core/RequestClient.d.ts +0 -1
  260. package/dist/request/core/index.d.ts +0 -1
  261. package/dist/request/index.d.ts +0 -1
  262. package/dist/request/plugin/RequestPlugin.d.ts +0 -1
  263. package/dist/request/plugin/cache.d.ts +0 -1
  264. package/dist/request/plugin/csrfPlugin.d.ts +0 -1
  265. package/dist/request/plugin/index.d.ts +0 -1
  266. package/dist/request/plugin/monitoring.d.ts +0 -1
  267. package/dist/request/plugin/queue.d.ts +0 -1
  268. package/dist/request/plugin/retry.d.ts +0 -1
  269. package/dist/request/plugin/validation.d.ts +0 -1
  270. package/dist/request/runtime/RequestContext.d.ts +0 -1
  271. package/dist/request/runtime/index.d.ts +0 -1
  272. package/dist/request/types.d.ts +0 -1
  273. package/dist/request/utils/RequestQueueManager.d.ts +0 -1
  274. package/dist/request/utils/dependencyCheck.d.ts +0 -1
  275. package/dist/request/utils/index.d.ts +0 -1
  276. package/dist/request.umd.js +5392 -0
  277. package/dist/request.umd.js.map +1 -0
  278. package/dist/state/StateManager.d.ts +0 -1
  279. package/dist/state/adapters/AdapterFactory.d.ts +0 -1
  280. package/dist/state/adapters/DefaultAdapter.d.ts +0 -1
  281. package/dist/state/adapters/ReduxAdapter.d.ts +0 -1
  282. package/dist/state/adapters/ZustandAdapter.d.ts +0 -1
  283. package/dist/state/adapters/index.d.ts +0 -1
  284. package/dist/state/adapters/types.d.ts +0 -1
  285. package/dist/state/core/DerivedStateInstance.d.ts +0 -1
  286. package/dist/state/core/StateInstance.d.ts +0 -1
  287. package/dist/state/core/StateRegistry.d.ts +0 -1
  288. package/dist/state/core/StateScope.d.ts +0 -1
  289. package/dist/state/core/index.d.ts +0 -1
  290. package/dist/state/index.d.ts +0 -1
  291. package/dist/state/types.d.ts +0 -1
  292. package/dist/state.umd.js +1414 -0
  293. package/dist/state.umd.js.map +1 -0
  294. package/dist/types.d.ts +0 -1
  295. package/dist/utils/analytics.d.ts +0 -1
  296. package/dist/utils/configSecurity.d.ts +0 -1
  297. package/dist/utils/csrf.d.ts +0 -1
  298. package/dist/utils/errors/ErrorCodes.d.ts +0 -1
  299. package/dist/utils/errors.cjs +44 -1
  300. package/dist/utils/errors.cjs.map +1 -1
  301. package/dist/utils/errors.d.ts +5 -1
  302. package/dist/utils/errors.js +44 -1
  303. package/dist/utils/errors.js.map +1 -1
  304. package/dist/utils/index.d.ts +0 -1
  305. package/dist/utils/logger.d.ts +0 -1
  306. package/dist/utils/logger.types.d.ts +0 -1
  307. package/dist/utils/monitoring.d.ts +0 -1
  308. package/dist/utils/performance.d.ts +0 -1
  309. package/dist/utils/resourceLoader.d.ts +0 -1
  310. package/dist/utils/runtimeSecurity.d.ts +0 -1
  311. package/dist/utils/security.d.ts +0 -1
  312. package/dist/utils/traceId.d.ts +0 -1
  313. package/dist/utils/validation.d.ts +0 -1
  314. package/package.json +24 -9
  315. package/dist/components/index.d.ts.map +0 -1
  316. package/dist/core/Test.d.ts.map +0 -1
  317. package/dist/core/app/AppContext.d.ts.map +0 -1
  318. package/dist/core/app/AppContext.types.d.ts.map +0 -1
  319. package/dist/core/app/BasicLayout.d.ts.map +0 -1
  320. package/dist/core/app/DefaultApp.d.ts.map +0 -1
  321. package/dist/core/app/index.d.ts.map +0 -1
  322. package/dist/core/config/AppConfig.d.ts.map +0 -1
  323. package/dist/core/config/ConfigLoader.d.ts.map +0 -1
  324. package/dist/core/config/ConfigValidator.d.ts.map +0 -1
  325. package/dist/core/config/index.d.ts.map +0 -1
  326. package/dist/core/dev/DevTools.d.ts.map +0 -1
  327. package/dist/core/error/ErrorBoundary.d.ts.map +0 -1
  328. package/dist/core/error/ErrorHandler.d.ts.map +0 -1
  329. package/dist/core/error/index.d.ts.map +0 -1
  330. package/dist/core/event/AppEventBus.d.ts.map +0 -1
  331. package/dist/core/event/frameworkEvents.d.ts.map +0 -1
  332. package/dist/core/event/hooks.d.ts.map +0 -1
  333. package/dist/core/event/index.d.ts.map +0 -1
  334. package/dist/core/event/types.d.ts.map +0 -1
  335. package/dist/core/event/useEventBus.d.ts.map +0 -1
  336. package/dist/core/index.d.ts.map +0 -1
  337. package/dist/core/initialization/InitializationErrorThrower.d.ts.map +0 -1
  338. package/dist/core/initialization/index.d.ts.map +0 -1
  339. package/dist/core/initialization/initialization.d.ts.map +0 -1
  340. package/dist/core/initialization/initializationErrorState.d.ts.map +0 -1
  341. package/dist/core/middleware.d.ts.map +0 -1
  342. package/dist/core/plugin/PluginEventBus.d.ts.map +0 -1
  343. package/dist/core/plugin/PluginSandbox.d.ts.map +0 -1
  344. package/dist/core/plugin.d.ts.map +0 -1
  345. package/dist/core/router/RouterManager.d.ts.map +0 -1
  346. package/dist/core/router/adapter/AdapterManager.d.ts.map +0 -1
  347. package/dist/core/router/adapter/index.d.ts.map +0 -1
  348. package/dist/core/router/adapter/react-router/ReactRouterAdapter.d.ts.map +0 -1
  349. package/dist/core/router/adapter/react-router/index.d.ts.map +0 -1
  350. package/dist/core/router/adapter/types.d.ts.map +0 -1
  351. package/dist/core/router/dev/RouterDevTools.d.ts.map +0 -1
  352. package/dist/core/router/dev/index.d.ts.map +0 -1
  353. package/dist/core/router/dynamic/DynamicRouteManager.d.ts.map +0 -1
  354. package/dist/core/router/dynamic/index.d.ts.map +0 -1
  355. package/dist/core/router/errors/RouterError.d.ts.map +0 -1
  356. package/dist/core/router/errors/index.d.ts.map +0 -1
  357. package/dist/core/router/index.d.ts.map +0 -1
  358. package/dist/core/router/lifecycle/RouterLifecycleManager.d.ts.map +0 -1
  359. package/dist/core/router/lifecycle/index.d.ts.map +0 -1
  360. package/dist/core/router/middleware/RouterMiddlewareManager.d.ts.map +0 -1
  361. package/dist/core/router/middleware/auth.d.ts.map +0 -1
  362. package/dist/core/router/middleware/index.d.ts.map +0 -1
  363. package/dist/core/router/middleware/types.d.ts.map +0 -1
  364. package/dist/core/router/monitoring/RouterMonitoring.d.ts.map +0 -1
  365. package/dist/core/router/monitoring/index.d.ts.map +0 -1
  366. package/dist/core/router/navigation/RouterNavigation.d.ts.map +0 -1
  367. package/dist/core/router/navigation/index.d.ts.map +0 -1
  368. package/dist/core/router/performance/RouteCache.d.ts.map +0 -1
  369. package/dist/core/router/performance/RoutePreloader.d.ts.map +0 -1
  370. package/dist/core/router/performance/index.d.ts.map +0 -1
  371. package/dist/core/router/plugin/RouterPluginManager.d.ts.map +0 -1
  372. package/dist/core/router/plugin/index.d.ts.map +0 -1
  373. package/dist/core/router/plugin/types.d.ts.map +0 -1
  374. package/dist/core/router/types.d.ts.map +0 -1
  375. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.d.ts.map +0 -1
  376. package/dist/core/router/utils/adapters/react-router/transform.d.ts.map +0 -1
  377. package/dist/core/router/utils/transform.d.ts.map +0 -1
  378. package/dist/core/router/validation/RouterConfigValidator.d.ts.map +0 -1
  379. package/dist/core/router/validation/index.d.ts.map +0 -1
  380. package/dist/core/router/validation/schema.d.ts.map +0 -1
  381. package/dist/core/router/version/RouteVersionManager.d.ts.map +0 -1
  382. package/dist/core/router/version/index.d.ts.map +0 -1
  383. package/dist/core/splash/SplashScreen.d.ts.map +0 -1
  384. package/dist/core/splash/index.d.ts.map +0 -1
  385. package/dist/core/splash/splashScreenUtils.d.ts.map +0 -1
  386. package/dist/core/startup/AppInstance.d.ts.map +0 -1
  387. package/dist/core/startup/environment.d.ts.map +0 -1
  388. package/dist/core/startup/index.d.ts.map +0 -1
  389. package/dist/core/startup/initializeServices.d.ts.map +0 -1
  390. package/dist/core/startup/performanceTracker.d.ts.map +0 -1
  391. package/dist/core/startup/renderApp.d.ts.map +0 -1
  392. package/dist/core/startup/startApp.d.ts.map +0 -1
  393. package/dist/core/types.d.ts.map +0 -1
  394. package/dist/index.d.ts.map +0 -1
  395. package/dist/index.umd.d.ts.map +0 -1
  396. package/dist/library/index.d.ts.map +0 -1
  397. package/dist/library/locale/index.d.ts.map +0 -1
  398. package/dist/library/locale/langs/en-us/index.d.ts.map +0 -1
  399. package/dist/library/locale/langs/zh-cn/index.d.ts.map +0 -1
  400. package/dist/library/locale/types.d.ts.map +0 -1
  401. package/dist/library/storage/cache.d.ts.map +0 -1
  402. package/dist/library/storage/encryption.d.ts.map +0 -1
  403. package/dist/library/storage/index.d.ts.map +0 -1
  404. package/dist/request/adapter/RequestAdapter.d.ts.map +0 -1
  405. package/dist/request/adapter/axiosAdapter.d.ts.map +0 -1
  406. package/dist/request/adapter/fetchAdapter.d.ts.map +0 -1
  407. package/dist/request/adapter/index.d.ts.map +0 -1
  408. package/dist/request/adapter/kyAdapter.d.ts.map +0 -1
  409. package/dist/request/adapter/undiciAdapter.d.ts.map +0 -1
  410. package/dist/request/core/RequestClient.d.ts.map +0 -1
  411. package/dist/request/core/index.d.ts.map +0 -1
  412. package/dist/request/index.d.ts.map +0 -1
  413. package/dist/request/plugin/RequestPlugin.d.ts.map +0 -1
  414. package/dist/request/plugin/cache.d.ts.map +0 -1
  415. package/dist/request/plugin/csrfPlugin.d.ts.map +0 -1
  416. package/dist/request/plugin/index.d.ts.map +0 -1
  417. package/dist/request/plugin/monitoring.d.ts.map +0 -1
  418. package/dist/request/plugin/queue.d.ts.map +0 -1
  419. package/dist/request/plugin/retry.d.ts.map +0 -1
  420. package/dist/request/plugin/validation.d.ts.map +0 -1
  421. package/dist/request/runtime/RequestContext.d.ts.map +0 -1
  422. package/dist/request/runtime/index.d.ts.map +0 -1
  423. package/dist/request/types.d.ts.map +0 -1
  424. package/dist/request/utils/RequestQueueManager.d.ts.map +0 -1
  425. package/dist/request/utils/dependencyCheck.d.ts.map +0 -1
  426. package/dist/request/utils/index.d.ts.map +0 -1
  427. package/dist/state/StateManager.d.ts.map +0 -1
  428. package/dist/state/adapters/AdapterFactory.d.ts.map +0 -1
  429. package/dist/state/adapters/DefaultAdapter.d.ts.map +0 -1
  430. package/dist/state/adapters/ReduxAdapter.d.ts.map +0 -1
  431. package/dist/state/adapters/ZustandAdapter.d.ts.map +0 -1
  432. package/dist/state/adapters/index.d.ts.map +0 -1
  433. package/dist/state/adapters/types.d.ts.map +0 -1
  434. package/dist/state/core/DerivedStateInstance.d.ts.map +0 -1
  435. package/dist/state/core/StateInstance.d.ts.map +0 -1
  436. package/dist/state/core/StateRegistry.d.ts.map +0 -1
  437. package/dist/state/core/StateScope.d.ts.map +0 -1
  438. package/dist/state/core/index.d.ts.map +0 -1
  439. package/dist/state/index.d.ts.map +0 -1
  440. package/dist/state/types.d.ts.map +0 -1
  441. package/dist/types.d.ts.map +0 -1
  442. package/dist/utils/analytics.d.ts.map +0 -1
  443. package/dist/utils/configSecurity.d.ts.map +0 -1
  444. package/dist/utils/csrf.d.ts.map +0 -1
  445. package/dist/utils/errors/ErrorCodes.d.ts.map +0 -1
  446. package/dist/utils/errors.d.ts.map +0 -1
  447. package/dist/utils/index.d.ts.map +0 -1
  448. package/dist/utils/logger.d.ts.map +0 -1
  449. package/dist/utils/logger.types.d.ts.map +0 -1
  450. package/dist/utils/monitoring.d.ts.map +0 -1
  451. package/dist/utils/performance.d.ts.map +0 -1
  452. package/dist/utils/resourceLoader.d.ts.map +0 -1
  453. package/dist/utils/runtimeSecurity.d.ts.map +0 -1
  454. package/dist/utils/security.d.ts.map +0 -1
  455. package/dist/utils/traceId.d.ts.map +0 -1
  456. package/dist/utils/validation.d.ts.map +0 -1
@@ -1,355 +1,202 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  /**
3
- * 开发工具模块
4
- * 提供开发模式下的调试工具
5
- */ import { useState, useEffect, useMemo } from "react";
6
- import { Button, Drawer, Space, Typography, Divider, Tag, Tabs, Collapse, Badge } from "antd";
7
- // import { getRouterManager } from '../router/RouterManager';
3
+ * 开发工具模块(无 UI 框架依赖)
4
+ */ import { useState, useEffect } from "react";
8
5
  import { useStateManager } from "../app";
9
- const { Title, Text, Paragraph } = Typography;
10
- const { Panel } = Collapse;
11
- /**
12
- * 开发工具组件
13
- *
14
- * 优化:增强功能,添加状态管理器调试面板、路由调试面板等
15
- */ export function DevTools({ appInstance, visible, onClose }) {
6
+ function toPrettyJson(value) {
7
+ try {
8
+ return JSON.stringify(value, null, 2);
9
+ } catch {
10
+ return String(value);
11
+ }
12
+ }
13
+ export function DevTools({ appInstance, visible, onClose }) {
16
14
  const [performanceMetrics, setPerformanceMetrics] = useState({});
17
- const [activeTab, setActiveTab] = useState('overview');
18
15
  const stateManager = useStateManager();
19
16
  useEffect(()=>{
20
17
  if (!visible) {
21
18
  return;
22
19
  }
23
20
  const tracker = appInstance.getPerformanceTracker();
24
- if (tracker) {
25
- const metrics = tracker.getMetrics();
26
- setPerformanceMetrics({
27
- '服务初始化': metrics.serviceInitDuration || 0,
28
- '初始化': metrics.initializationDuration || 0,
29
- '首次渲染': metrics.firstRenderDuration || 0,
30
- '总启动时间': metrics.totalStartupDuration || 0,
31
- 'FCP': metrics.fcp || 0,
32
- 'LCP': metrics.lcp || 0,
33
- 'FID': metrics.fid || 0,
34
- 'CLS': metrics.cls || 0
35
- });
21
+ if (!tracker) {
22
+ return;
36
23
  }
24
+ const metrics = tracker.getMetrics();
25
+ setPerformanceMetrics({
26
+ serviceInitDuration: metrics.serviceInitDuration || 0,
27
+ initializationDuration: metrics.initializationDuration || 0,
28
+ firstRenderDuration: metrics.firstRenderDuration || 0,
29
+ totalStartupDuration: metrics.totalStartupDuration || 0,
30
+ fcp: metrics.fcp || 0,
31
+ lcp: metrics.lcp || 0,
32
+ fid: metrics.fid || 0,
33
+ cls: metrics.cls || 0
34
+ });
37
35
  }, [
38
36
  visible,
39
37
  appInstance
40
38
  ]);
39
+ if (!visible) {
40
+ return null;
41
+ }
41
42
  const options = appInstance.getOptions();
42
- // const routerManager = getRouterManager();
43
- // const isRouterEnabled = routerManager.isRouterEnabled();
44
- // 获取状态管理器信息
45
- const stateManagerInfo = useMemo(()=>{
46
- if (!stateManager) {
47
- return null;
48
- }
49
- try {
50
- // 尝试获取所有状态(如果支持)
51
- const allStates = stateManager.getAllStates?.() || [];
52
- return {
53
- stateCount: allStates.length,
54
- states: allStates.slice(0, 10)
55
- };
56
- } catch {
57
- return {
58
- stateCount: 0,
59
- states: []
60
- };
61
- }
62
- }, [
63
- stateManager
64
- ]);
65
- // 获取路由信息
66
- // const routerInfo = useMemo(() => {
67
- // if (!isRouterEnabled) {
68
- // return null;
69
- // }
70
- // try {
71
- // const routes = (routerManager as any).getRoutes?.() || [];
72
- // return {
73
- // routeCount: routes.length,
74
- // mode: (routerManager as any).getRouterMode?.() || 'unknown',
75
- // routes: routes.slice(0, 10), // 只显示前10个
76
- // };
77
- // } catch {
78
- // return {
79
- // routeCount: 0,
80
- // mode: 'unknown',
81
- // routes: [],
82
- // };
83
- // }
84
- // }, [routerManager, isRouterEnabled]);
85
- const tabItems = [
86
- {
87
- key: 'overview',
88
- label: '概览',
89
- children: /*#__PURE__*/ _jsxs(Space, {
90
- direction: "vertical",
43
+ const allStates = stateManager?.getAllStates?.() || [];
44
+ return /*#__PURE__*/ _jsxs("div", {
45
+ style: {
46
+ position: 'fixed',
47
+ top: 0,
48
+ right: 0,
49
+ width: 'min(680px, 95vw)',
50
+ height: '100vh',
51
+ zIndex: 9999,
52
+ background: '#fff',
53
+ borderLeft: '1px solid #d9e2ec',
54
+ padding: 16,
55
+ overflowY: 'auto',
56
+ boxShadow: '-8px 0 20px rgba(0, 0, 0, 0.08)'
57
+ },
58
+ children: [
59
+ /*#__PURE__*/ _jsxs("div", {
60
+ style: {
61
+ display: 'flex',
62
+ justifyContent: 'space-between',
63
+ alignItems: 'center'
64
+ },
65
+ children: [
66
+ /*#__PURE__*/ _jsx("h3", {
67
+ style: {
68
+ margin: 0
69
+ },
70
+ children: "DevTools"
71
+ }),
72
+ /*#__PURE__*/ _jsx("button", {
73
+ onClick: onClose,
74
+ style: {
75
+ border: 'none',
76
+ background: 'transparent',
77
+ cursor: 'pointer'
78
+ },
79
+ children: "关闭"
80
+ })
81
+ ]
82
+ }),
83
+ /*#__PURE__*/ _jsxs("section", {
91
84
  style: {
92
- width: '100%'
85
+ marginTop: 12
93
86
  },
94
- size: "large",
95
87
  children: [
88
+ /*#__PURE__*/ _jsx("h4", {
89
+ children: "实例"
90
+ }),
96
91
  /*#__PURE__*/ _jsxs("div", {
97
92
  children: [
98
- /*#__PURE__*/ _jsx(Title, {
99
- level: 5,
100
- children: "应用实例"
101
- }),
102
- /*#__PURE__*/ _jsxs(Space, {
103
- direction: "vertical",
104
- size: "small",
105
- children: [
106
- /*#__PURE__*/ _jsxs(Text, {
107
- children: [
108
- "实例ID: ",
109
- /*#__PURE__*/ _jsx(Tag, {
110
- children: appInstance.id
111
- })
112
- ]
113
- }),
114
- /*#__PURE__*/ _jsxs(Text, {
115
- children: [
116
- "状态: ",
117
- /*#__PURE__*/ _jsx(Tag, {
118
- color: appInstance.isInitialized() ? 'green' : 'orange',
119
- children: appInstance.isInitialized() ? '已初始化' : '未初始化'
120
- })
121
- ]
122
- })
123
- ]
124
- })
93
+ "id: ",
94
+ appInstance.id
125
95
  ]
126
96
  }),
127
- /*#__PURE__*/ _jsx(Divider, {}),
128
97
  /*#__PURE__*/ _jsxs("div", {
129
98
  children: [
130
- /*#__PURE__*/ _jsx(Title, {
131
- level: 5,
132
- children: "服务状态"
133
- }),
134
- /*#__PURE__*/ _jsxs(Space, {
135
- direction: "vertical",
136
- size: "small",
137
- children: [
138
- /*#__PURE__*/ _jsxs(Text, {
139
- children: [
140
- "监控服务: ",
141
- /*#__PURE__*/ _jsx(Tag, {
142
- color: "green",
143
- children: "已启用"
144
- })
145
- ]
146
- }),
147
- /*#__PURE__*/ _jsxs(Text, {
148
- children: [
149
- "性能监控: ",
150
- /*#__PURE__*/ _jsx(Tag, {
151
- color: "green",
152
- children: "已启用"
153
- })
154
- ]
155
- }),
156
- /*#__PURE__*/ _jsxs(Text, {
157
- children: [
158
- "状态管理器: ",
159
- /*#__PURE__*/ _jsx(Tag, {
160
- color: "green",
161
- children: "已启用"
162
- })
163
- ]
164
- })
165
- ]
166
- })
99
+ "initialized: ",
100
+ String(appInstance.isInitialized())
167
101
  ]
168
102
  })
169
103
  ]
170
- })
171
- },
172
- {
173
- key: 'performance',
174
- label: '性能',
175
- children: /*#__PURE__*/ _jsxs("div", {
104
+ }),
105
+ /*#__PURE__*/ _jsxs("section", {
106
+ style: {
107
+ marginTop: 12
108
+ },
176
109
  children: [
177
- /*#__PURE__*/ _jsx(Title, {
178
- level: 5,
179
- children: "性能指标"
110
+ /*#__PURE__*/ _jsx("h4", {
111
+ children: "性能"
180
112
  }),
181
- /*#__PURE__*/ _jsx(Space, {
182
- direction: "vertical",
183
- size: "small",
113
+ /*#__PURE__*/ _jsx("pre", {
184
114
  style: {
185
- width: '100%'
115
+ background: '#f7fafc',
116
+ padding: 10,
117
+ borderRadius: 8
186
118
  },
187
- children: Object.entries(performanceMetrics).map(([key, value])=>/*#__PURE__*/ _jsxs("div", {
188
- style: {
189
- display: 'flex',
190
- justifyContent: 'space-between'
191
- },
192
- children: [
193
- /*#__PURE__*/ _jsxs(Text, {
194
- children: [
195
- key,
196
- ":"
197
- ]
198
- }),
199
- /*#__PURE__*/ _jsx(Text, {
200
- strong: true,
201
- children: value > 0 ? `${value.toFixed(2)}ms` : '-'
202
- })
203
- ]
204
- }, key))
205
- })
206
- ]
207
- })
208
- },
209
- {
210
- key: 'state',
211
- label: /*#__PURE__*/ _jsxs("span", {
212
- children: [
213
- "状态管理",
214
- stateManagerInfo && stateManagerInfo.stateCount > 0 && /*#__PURE__*/ _jsx(Badge, {
215
- count: stateManagerInfo.stateCount,
216
- style: {
217
- marginLeft: 8
218
- }
119
+ children: toPrettyJson(performanceMetrics)
219
120
  })
220
121
  ]
221
122
  }),
222
- children: stateManagerInfo ? /*#__PURE__*/ _jsxs("div", {
123
+ /*#__PURE__*/ _jsxs("section", {
124
+ style: {
125
+ marginTop: 12
126
+ },
223
127
  children: [
224
- /*#__PURE__*/ _jsx(Title, {
225
- level: 5,
226
- children: "状态管理器"
128
+ /*#__PURE__*/ _jsx("h4", {
129
+ children: "状态管理"
227
130
  }),
228
- /*#__PURE__*/ _jsxs(Space, {
229
- direction: "vertical",
230
- size: "small",
231
- style: {
232
- width: '100%'
233
- },
131
+ /*#__PURE__*/ _jsxs("div", {
234
132
  children: [
235
- /*#__PURE__*/ _jsxs(Text, {
236
- children: [
237
- "状态总数: ",
238
- /*#__PURE__*/ _jsx(Tag, {
239
- children: stateManagerInfo.stateCount
240
- })
241
- ]
242
- }),
243
- stateManagerInfo.states.length > 0 && /*#__PURE__*/ _jsx(Collapse, {
244
- children: /*#__PURE__*/ _jsx(Panel, {
245
- header: "状态列表",
246
- children: /*#__PURE__*/ _jsx(Space, {
247
- direction: "vertical",
248
- size: "small",
249
- style: {
250
- width: '100%'
251
- },
252
- children: stateManagerInfo.states.map((state, index)=>/*#__PURE__*/ _jsx("div", {
253
- style: {
254
- fontSize: '12px'
255
- },
256
- children: /*#__PURE__*/ _jsx(Text, {
257
- code: true,
258
- children: state.id || `State ${index + 1}`
259
- })
260
- }, index))
261
- })
262
- }, "states")
263
- })
133
+ "stateCount: ",
134
+ allStates.length
264
135
  ]
136
+ }),
137
+ /*#__PURE__*/ _jsx("pre", {
138
+ style: {
139
+ background: '#f7fafc',
140
+ padding: 10,
141
+ borderRadius: 8
142
+ },
143
+ children: toPrettyJson(allStates.slice(0, 10))
265
144
  })
266
145
  ]
267
- }) : /*#__PURE__*/ _jsx(Text, {
268
- type: "secondary",
269
- children: "状态管理器未初始化"
270
- })
271
- },
272
- {
273
- key: 'config',
274
- label: '配置',
275
- children: /*#__PURE__*/ _jsxs("div", {
146
+ }),
147
+ /*#__PURE__*/ _jsxs("section", {
148
+ style: {
149
+ marginTop: 12
150
+ },
276
151
  children: [
277
- /*#__PURE__*/ _jsx(Title, {
278
- level: 5,
279
- children: "配置信息"
152
+ /*#__PURE__*/ _jsx("h4", {
153
+ children: "配置"
280
154
  }),
281
- /*#__PURE__*/ _jsx(Paragraph, {
282
- children: /*#__PURE__*/ _jsx(Text, {
283
- code: true,
284
- style: {
285
- fontSize: '12px',
286
- whiteSpace: 'pre-wrap'
287
- },
288
- children: JSON.stringify(options, null, 2)
289
- })
155
+ /*#__PURE__*/ _jsx("pre", {
156
+ style: {
157
+ background: '#f7fafc',
158
+ padding: 10,
159
+ borderRadius: 8,
160
+ whiteSpace: 'pre-wrap'
161
+ },
162
+ children: toPrettyJson(options)
290
163
  })
291
164
  ]
292
165
  })
293
- }
294
- ];
295
- return /*#__PURE__*/ _jsx(Drawer, {
296
- title: /*#__PURE__*/ _jsx(Space, {
297
- children: /*#__PURE__*/ _jsx("span", {
298
- children: "🐛 开发工具"
299
- })
300
- }),
301
- placement: "right",
302
- width: 500,
303
- open: visible,
304
- onClose: onClose,
305
- extra: /*#__PURE__*/ _jsx(Button, {
306
- type: "text",
307
- onClick: onClose,
308
- children: "✕"
309
- }),
310
- children: /*#__PURE__*/ _jsx(Tabs, {
311
- activeKey: activeTab,
312
- onChange: setActiveTab,
313
- items: tabItems
314
- })
166
+ ]
315
167
  });
316
168
  }
317
- /**
318
- * 开发工具触发器
319
- */ export function DevToolsTrigger({ appInstance, position = 'bottom-right' }) {
320
- const [visible, setVisible] = useState(false);
321
- const positionStyle = {
169
+ function resolvePosition(position) {
170
+ const style = {
322
171
  position: 'fixed',
323
- zIndex: 9999,
324
- ...position === 'bottom-right' && {
325
- bottom: 20,
326
- right: 20
327
- },
328
- ...position === 'bottom-left' && {
329
- bottom: 20,
330
- left: 20
331
- },
332
- ...position === 'top-right' && {
333
- top: 20,
334
- right: 20
335
- },
336
- ...position === 'top-left' && {
337
- top: 20,
338
- left: 20
339
- }
172
+ zIndex: 9998
340
173
  };
341
- // 只在开发环境显示
174
+ const pos = position || 'bottom-right';
175
+ if (pos.includes('bottom')) style.bottom = 16;
176
+ if (pos.includes('top')) style.top = 16;
177
+ if (pos.includes('right')) style.right = 16;
178
+ if (pos.includes('left')) style.left = 16;
179
+ return style;
180
+ }
181
+ export function DevToolsTrigger({ appInstance, position = 'bottom-right' }) {
182
+ const [visible, setVisible] = useState(false);
342
183
  if (process.env.NODE_ENV !== 'development') {
343
184
  return null;
344
185
  }
345
186
  return /*#__PURE__*/ _jsxs(_Fragment, {
346
187
  children: [
347
- /*#__PURE__*/ _jsx(Button, {
348
- type: "primary",
349
- shape: "circle",
350
- style: positionStyle,
188
+ /*#__PURE__*/ _jsx("button", {
351
189
  onClick: ()=>setVisible(true),
352
- children: "🐛"
190
+ style: {
191
+ ...resolvePosition(position),
192
+ border: 'none',
193
+ background: '#2f80ed',
194
+ color: '#fff',
195
+ borderRadius: 999,
196
+ padding: '8px 14px',
197
+ cursor: 'pointer'
198
+ },
199
+ children: "DevTools"
353
200
  }),
354
201
  /*#__PURE__*/ _jsx(DevTools, {
355
202
  appInstance: appInstance,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/core/dev/DevTools.tsx"],"sourcesContent":["/**\n * 开发工具模块\n * 提供开发模式下的调试工具\n */\n\nimport { useState, useEffect, useMemo } from 'react';\nimport type { ReactNode } from 'react';\nimport { Button, Drawer, Space, Typography, Divider, Tag, Tabs, Collapse, Badge } from 'antd';\nimport type { AppInstance } from '../startup/AppInstance';\n// import { getRouterManager } from '../router/RouterManager';\nimport { useStateManager } from '../app';\n\nconst { Title, Text, Paragraph } = Typography;\nconst { Panel } = Collapse;\n\n/**\n * 开发工具组件属性\n */\nexport interface DevToolsProps {\n /**\n * 应用实例\n */\n appInstance: AppInstance;\n\n /**\n * 是否显示\n */\n visible?: boolean;\n\n /**\n * 关闭回调\n */\n onClose?: () => void;\n}\n\n/**\n * 开发工具组件\n * \n * 优化:增强功能,添加状态管理器调试面板、路由调试面板等\n */\nexport function DevTools({ appInstance, visible, onClose }: DevToolsProps): ReactNode {\n const [performanceMetrics, setPerformanceMetrics] = useState<Record<string, number>>({});\n const [activeTab, setActiveTab] = useState<string>('overview');\n const stateManager = useStateManager();\n\n useEffect(() => {\n if (!visible) {\n return;\n }\n\n const tracker = appInstance.getPerformanceTracker();\n if (tracker) {\n const metrics = tracker.getMetrics();\n setPerformanceMetrics({\n '服务初始化': metrics.serviceInitDuration || 0,\n '初始化': metrics.initializationDuration || 0,\n '首次渲染': metrics.firstRenderDuration || 0,\n '总启动时间': metrics.totalStartupDuration || 0,\n 'FCP': metrics.fcp || 0,\n 'LCP': metrics.lcp || 0,\n 'FID': metrics.fid || 0,\n 'CLS': metrics.cls || 0,\n });\n }\n }, [visible, appInstance]);\n\n const options = appInstance.getOptions();\n // const routerManager = getRouterManager();\n // const isRouterEnabled = routerManager.isRouterEnabled();\n\n // 获取状态管理器信息\n const stateManagerInfo = useMemo(() => {\n if (!stateManager) {\n return null;\n }\n\n try {\n // 尝试获取所有状态(如果支持)\n const allStates = (stateManager as any).getAllStates?.() || [];\n return {\n stateCount: allStates.length,\n states: allStates.slice(0, 10), // 只显示前10个\n };\n } catch {\n return {\n stateCount: 0,\n states: [],\n };\n }\n }, [stateManager]);\n\n // 获取路由信息\n // const routerInfo = useMemo(() => {\n // if (!isRouterEnabled) {\n // return null;\n // }\n\n // try {\n // const routes = (routerManager as any).getRoutes?.() || [];\n // return {\n // routeCount: routes.length,\n // mode: (routerManager as any).getRouterMode?.() || 'unknown',\n // routes: routes.slice(0, 10), // 只显示前10个\n // };\n // } catch {\n // return {\n // routeCount: 0,\n // mode: 'unknown',\n // routes: [],\n // };\n // }\n // }, [routerManager, isRouterEnabled]);\n\n const tabItems = [\n {\n key: 'overview',\n label: '概览',\n children: (\n <Space direction=\"vertical\" style={{ width: '100%' }} size=\"large\">\n <div>\n <Title level={5}>应用实例</Title>\n <Space direction=\"vertical\" size=\"small\">\n <Text>实例ID: <Tag>{appInstance.id}</Tag></Text>\n <Text>状态: <Tag color={appInstance.isInitialized() ? 'green' : 'orange'}>\n {appInstance.isInitialized() ? '已初始化' : '未初始化'}\n </Tag></Text>\n </Space>\n </div>\n\n <Divider />\n\n <div>\n <Title level={5}>服务状态</Title>\n <Space direction=\"vertical\" size=\"small\">\n <Text>监控服务: <Tag color=\"green\">已启用</Tag></Text>\n <Text>性能监控: <Tag color=\"green\">已启用</Tag></Text>\n <Text>状态管理器: <Tag color=\"green\">已启用</Tag></Text>\n {/* <Text>路由系统: <Tag color={isRouterEnabled ? 'green' : 'gray'}>\n {isRouterEnabled ? '已启用' : '未启用'}\n </Tag></Text> */}\n </Space>\n </div>\n </Space>\n ),\n },\n {\n key: 'performance',\n label: '性能',\n children: (\n <div>\n <Title level={5}>性能指标</Title>\n <Space direction=\"vertical\" size=\"small\" style={{ width: '100%' }}>\n {Object.entries(performanceMetrics).map(([key, value]) => (\n <div key={key} style={{ display: 'flex', justifyContent: 'space-between' }}>\n <Text>{key}:</Text>\n <Text strong>{value > 0 ? `${value.toFixed(2)}ms` : '-'}</Text>\n </div>\n ))}\n </Space>\n </div>\n ),\n },\n {\n key: 'state',\n label: (\n <span>\n 状态管理\n {stateManagerInfo && stateManagerInfo.stateCount > 0 && (\n <Badge count={stateManagerInfo.stateCount} style={{ marginLeft: 8 }} />\n )}\n </span>\n ),\n children: stateManagerInfo ? (\n <div>\n <Title level={5}>状态管理器</Title>\n <Space direction=\"vertical\" size=\"small\" style={{ width: '100%' }}>\n <Text>状态总数: <Tag>{stateManagerInfo.stateCount}</Tag></Text>\n {stateManagerInfo.states.length > 0 && (\n <Collapse>\n <Panel header=\"状态列表\" key=\"states\">\n <Space direction=\"vertical\" size=\"small\" style={{ width: '100%' }}>\n {stateManagerInfo.states.map((state: any, index: number) => (\n <div key={index} style={{ fontSize: '12px' }}>\n <Text code>\n {state.id || `State ${index + 1}`}\n </Text>\n </div>\n ))}\n </Space>\n </Panel>\n </Collapse>\n )}\n </Space>\n </div>\n ) : (\n <Text type=\"secondary\">状态管理器未初始化</Text>\n ),\n },\n \n {\n key: 'config',\n label: '配置',\n children: (\n <div>\n <Title level={5}>配置信息</Title>\n <Paragraph>\n <Text code style={{ fontSize: '12px', whiteSpace: 'pre-wrap' }}>\n {JSON.stringify(options, null, 2)}\n </Text>\n </Paragraph>\n </div>\n ),\n },\n ];\n\n return (\n <Drawer\n title={\n <Space>\n <span>🐛 开发工具</span>\n </Space>\n }\n placement=\"right\"\n width={500}\n open={visible}\n onClose={onClose}\n extra={\n <Button\n type=\"text\"\n onClick={onClose}\n >\n ✕\n </Button>\n }\n >\n <Tabs\n activeKey={activeTab}\n onChange={setActiveTab}\n items={tabItems}\n />\n </Drawer>\n );\n}\n\n/**\n * 开发工具触发器组件\n */\nexport interface DevToolsTriggerProps {\n /**\n * 应用实例\n */\n appInstance: AppInstance;\n\n /**\n * 触发按钮位置\n */\n position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';\n}\n\n/**\n * 开发工具触发器\n */\nexport function DevToolsTrigger({ appInstance, position = 'bottom-right' }: DevToolsTriggerProps): ReactNode {\n const [visible, setVisible] = useState(false);\n\n const positionStyle: React.CSSProperties = {\n position: 'fixed',\n zIndex: 9999,\n ...(position === 'bottom-right' && { bottom: 20, right: 20 }),\n ...(position === 'bottom-left' && { bottom: 20, left: 20 }),\n ...(position === 'top-right' && { top: 20, right: 20 }),\n ...(position === 'top-left' && { top: 20, left: 20 }),\n };\n\n // 只在开发环境显示\n if (process.env.NODE_ENV !== 'development') {\n return null;\n }\n\n return (\n <>\n <Button\n type=\"primary\"\n shape=\"circle\"\n style={positionStyle}\n onClick={() => setVisible(true)}\n >\n 🐛\n </Button>\n <DevTools\n appInstance={appInstance}\n visible={visible}\n onClose={() => setVisible(false)}\n />\n </>\n );\n}\n"],"names":["useState","useEffect","useMemo","Button","Drawer","Space","Typography","Divider","Tag","Tabs","Collapse","Badge","useStateManager","Title","Text","Paragraph","Panel","DevTools","appInstance","visible","onClose","performanceMetrics","setPerformanceMetrics","activeTab","setActiveTab","stateManager","tracker","getPerformanceTracker","metrics","getMetrics","serviceInitDuration","initializationDuration","firstRenderDuration","totalStartupDuration","fcp","lcp","fid","cls","options","getOptions","stateManagerInfo","allStates","getAllStates","stateCount","length","states","slice","tabItems","key","label","children","direction","style","width","size","div","level","id","color","isInitialized","Object","entries","map","value","display","justifyContent","strong","toFixed","span","count","marginLeft","header","state","index","fontSize","code","type","whiteSpace","JSON","stringify","title","placement","open","extra","onClick","activeKey","onChange","items","DevToolsTrigger","position","setVisible","positionStyle","zIndex","bottom","right","left","top","process","env","NODE_ENV","shape"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/core/dev/DevTools.tsx"],"sourcesContent":["/**\n * 开发工具模块(无 UI 框架依赖)\n */\n\nimport { useState, useEffect } from 'react';\nimport type { ReactNode } from 'react';\nimport type { AppInstance } from '../startup/AppInstance';\nimport { useStateManager } from '../app';\n\nexport interface DevToolsProps {\n appInstance: AppInstance;\n visible?: boolean;\n onClose?: () => void;\n}\n\nfunction toPrettyJson(value: unknown): string {\n try {\n return JSON.stringify(value, null, 2);\n } catch {\n return String(value);\n }\n}\n\nexport function DevTools({ appInstance, visible, onClose }: DevToolsProps): ReactNode {\n const [performanceMetrics, setPerformanceMetrics] = useState<Record<string, number>>({});\n const stateManager = useStateManager();\n\n useEffect(() => {\n if (!visible) {\n return;\n }\n const tracker = appInstance.getPerformanceTracker();\n if (!tracker) {\n return;\n }\n const metrics = tracker.getMetrics();\n setPerformanceMetrics({\n serviceInitDuration: metrics.serviceInitDuration || 0,\n initializationDuration: metrics.initializationDuration || 0,\n firstRenderDuration: metrics.firstRenderDuration || 0,\n totalStartupDuration: metrics.totalStartupDuration || 0,\n fcp: metrics.fcp || 0,\n lcp: metrics.lcp || 0,\n fid: metrics.fid || 0,\n cls: metrics.cls || 0,\n });\n }, [visible, appInstance]);\n\n if (!visible) {\n return null;\n }\n\n const options = appInstance.getOptions();\n const allStates = (stateManager as any)?.getAllStates?.() || [];\n\n return (\n <div\n style={{\n position: 'fixed',\n top: 0,\n right: 0,\n width: 'min(680px, 95vw)',\n height: '100vh',\n zIndex: 9999,\n background: '#fff',\n borderLeft: '1px solid #d9e2ec',\n padding: 16,\n overflowY: 'auto',\n boxShadow: '-8px 0 20px rgba(0, 0, 0, 0.08)',\n }}\n >\n <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>\n <h3 style={{ margin: 0 }}>DevTools</h3>\n <button onClick={onClose} style={{ border: 'none', background: 'transparent', cursor: 'pointer' }}>\n 关闭\n </button>\n </div>\n\n <section style={{ marginTop: 12 }}>\n <h4>实例</h4>\n <div>id: {appInstance.id}</div>\n <div>initialized: {String(appInstance.isInitialized())}</div>\n </section>\n\n <section style={{ marginTop: 12 }}>\n <h4>性能</h4>\n <pre style={{ background: '#f7fafc', padding: 10, borderRadius: 8 }}>{toPrettyJson(performanceMetrics)}</pre>\n </section>\n\n <section style={{ marginTop: 12 }}>\n <h4>状态管理</h4>\n <div>stateCount: {allStates.length}</div>\n <pre style={{ background: '#f7fafc', padding: 10, borderRadius: 8 }}>{toPrettyJson(allStates.slice(0, 10))}</pre>\n </section>\n\n <section style={{ marginTop: 12 }}>\n <h4>配置</h4>\n <pre style={{ background: '#f7fafc', padding: 10, borderRadius: 8, whiteSpace: 'pre-wrap' }}>{toPrettyJson(options)}</pre>\n </section>\n </div>\n );\n}\n\nexport interface DevToolsTriggerProps {\n appInstance: AppInstance;\n position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';\n}\n\nfunction resolvePosition(position: DevToolsTriggerProps['position']): React.CSSProperties {\n const style: React.CSSProperties = { position: 'fixed', zIndex: 9998 };\n const pos = position || 'bottom-right';\n\n if (pos.includes('bottom')) style.bottom = 16;\n if (pos.includes('top')) style.top = 16;\n if (pos.includes('right')) style.right = 16;\n if (pos.includes('left')) style.left = 16;\n\n return style;\n}\n\nexport function DevToolsTrigger({ appInstance, position = 'bottom-right' }: DevToolsTriggerProps): ReactNode {\n const [visible, setVisible] = useState(false);\n\n if (process.env.NODE_ENV !== 'development') {\n return null;\n }\n\n return (\n <>\n <button\n onClick={() => setVisible(true)}\n style={{\n ...resolvePosition(position),\n border: 'none',\n background: '#2f80ed',\n color: '#fff',\n borderRadius: 999,\n padding: '8px 14px',\n cursor: 'pointer',\n }}\n >\n DevTools\n </button>\n <DevTools appInstance={appInstance} visible={visible} onClose={() => setVisible(false)} />\n </>\n );\n}\n"],"names":["useState","useEffect","useStateManager","toPrettyJson","value","JSON","stringify","String","DevTools","appInstance","visible","onClose","performanceMetrics","setPerformanceMetrics","stateManager","tracker","getPerformanceTracker","metrics","getMetrics","serviceInitDuration","initializationDuration","firstRenderDuration","totalStartupDuration","fcp","lcp","fid","cls","options","getOptions","allStates","getAllStates","div","style","position","top","right","width","height","zIndex","background","borderLeft","padding","overflowY","boxShadow","display","justifyContent","alignItems","h3","margin","button","onClick","border","cursor","section","marginTop","h4","id","isInitialized","pre","borderRadius","length","slice","whiteSpace","resolvePosition","pos","includes","bottom","left","DevToolsTrigger","setVisible","process","env","NODE_ENV","color"],"mappings":";AAAA;;CAEC,GAED,SAASA,QAAQ,EAAEC,SAAS,QAAQ,QAAQ;AAG5C,SAASC,eAAe,QAAQ,SAAS;AAQzC,SAASC,aAAaC,KAAc;IAClC,IAAI;QACF,OAAOC,KAAKC,SAAS,CAACF,OAAO,MAAM;IACrC,EAAE,OAAM;QACN,OAAOG,OAAOH;IAChB;AACF;AAEA,OAAO,SAASI,SAAS,EAAEC,WAAW,EAAEC,OAAO,EAAEC,OAAO,EAAiB;IACvE,MAAM,CAACC,oBAAoBC,sBAAsB,GAAGb,SAAiC,CAAC;IACtF,MAAMc,eAAeZ;IAErBD,UAAU;QACR,IAAI,CAACS,SAAS;YACZ;QACF;QACA,MAAMK,UAAUN,YAAYO,qBAAqB;QACjD,IAAI,CAACD,SAAS;YACZ;QACF;QACA,MAAME,UAAUF,QAAQG,UAAU;QAClCL,sBAAsB;YACpBM,qBAAqBF,QAAQE,mBAAmB,IAAI;YACpDC,wBAAwBH,QAAQG,sBAAsB,IAAI;YAC1DC,qBAAqBJ,QAAQI,mBAAmB,IAAI;YACpDC,sBAAsBL,QAAQK,oBAAoB,IAAI;YACtDC,KAAKN,QAAQM,GAAG,IAAI;YACpBC,KAAKP,QAAQO,GAAG,IAAI;YACpBC,KAAKR,QAAQQ,GAAG,IAAI;YACpBC,KAAKT,QAAQS,GAAG,IAAI;QACtB;IACF,GAAG;QAAChB;QAASD;KAAY;IAEzB,IAAI,CAACC,SAAS;QACZ,OAAO;IACT;IAEA,MAAMiB,UAAUlB,YAAYmB,UAAU;IACtC,MAAMC,YAAY,AAACf,cAAsBgB,oBAAoB,EAAE;IAE/D,qBACE,MAACC;QACCC,OAAO;YACLC,UAAU;YACVC,KAAK;YACLC,OAAO;YACPC,OAAO;YACPC,QAAQ;YACRC,QAAQ;YACRC,YAAY;YACZC,YAAY;YACZC,SAAS;YACTC,WAAW;YACXC,WAAW;QACb;;0BAEA,MAACZ;gBAAIC,OAAO;oBAAEY,SAAS;oBAAQC,gBAAgB;oBAAiBC,YAAY;gBAAS;;kCACnF,KAACC;wBAAGf,OAAO;4BAAEgB,QAAQ;wBAAE;kCAAG;;kCAC1B,KAACC;wBAAOC,SAASvC;wBAASqB,OAAO;4BAAEmB,QAAQ;4BAAQZ,YAAY;4BAAea,QAAQ;wBAAU;kCAAG;;;;0BAKrG,MAACC;gBAAQrB,OAAO;oBAAEsB,WAAW;gBAAG;;kCAC9B,KAACC;kCAAG;;kCACJ,MAACxB;;4BAAI;4BAAKtB,YAAY+C,EAAE;;;kCACxB,MAACzB;;4BAAI;4BAAcxB,OAAOE,YAAYgD,aAAa;;;;;0BAGrD,MAACJ;gBAAQrB,OAAO;oBAAEsB,WAAW;gBAAG;;kCAC9B,KAACC;kCAAG;;kCACJ,KAACG;wBAAI1B,OAAO;4BAAEO,YAAY;4BAAWE,SAAS;4BAAIkB,cAAc;wBAAE;kCAAIxD,aAAaS;;;;0BAGrF,MAACyC;gBAAQrB,OAAO;oBAAEsB,WAAW;gBAAG;;kCAC9B,KAACC;kCAAG;;kCACJ,MAACxB;;4BAAI;4BAAaF,UAAU+B,MAAM;;;kCAClC,KAACF;wBAAI1B,OAAO;4BAAEO,YAAY;4BAAWE,SAAS;4BAAIkB,cAAc;wBAAE;kCAAIxD,aAAa0B,UAAUgC,KAAK,CAAC,GAAG;;;;0BAGxG,MAACR;gBAAQrB,OAAO;oBAAEsB,WAAW;gBAAG;;kCAC9B,KAACC;kCAAG;;kCACJ,KAACG;wBAAI1B,OAAO;4BAAEO,YAAY;4BAAWE,SAAS;4BAAIkB,cAAc;4BAAGG,YAAY;wBAAW;kCAAI3D,aAAawB;;;;;;AAInH;AAOA,SAASoC,gBAAgB9B,QAA0C;IACjE,MAAMD,QAA6B;QAAEC,UAAU;QAASK,QAAQ;IAAK;IACrE,MAAM0B,MAAM/B,YAAY;IAExB,IAAI+B,IAAIC,QAAQ,CAAC,WAAWjC,MAAMkC,MAAM,GAAG;IAC3C,IAAIF,IAAIC,QAAQ,CAAC,QAAQjC,MAAME,GAAG,GAAG;IACrC,IAAI8B,IAAIC,QAAQ,CAAC,UAAUjC,MAAMG,KAAK,GAAG;IACzC,IAAI6B,IAAIC,QAAQ,CAAC,SAASjC,MAAMmC,IAAI,GAAG;IAEvC,OAAOnC;AACT;AAEA,OAAO,SAASoC,gBAAgB,EAAE3D,WAAW,EAAEwB,WAAW,cAAc,EAAwB;IAC9F,MAAM,CAACvB,SAAS2D,WAAW,GAAGrE,SAAS;IAEvC,IAAIsE,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1C,OAAO;IACT;IAEA,qBACE;;0BACE,KAACvB;gBACCC,SAAS,IAAMmB,WAAW;gBAC1BrC,OAAO;oBACL,GAAG+B,gBAAgB9B,SAAS;oBAC5BkB,QAAQ;oBACRZ,YAAY;oBACZkC,OAAO;oBACPd,cAAc;oBACdlB,SAAS;oBACTW,QAAQ;gBACV;0BACD;;0BAGD,KAAC5C;gBAASC,aAAaA;gBAAaC,SAASA;gBAASC,SAAS,IAAM0D,WAAW;;;;AAGtF"}