@vlian/framework 1.1.1 → 1.2.16

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 (444) hide show
  1. package/README.md +35 -1
  2. package/dist/analytics/index.cjs +24 -0
  3. package/dist/analytics/index.cjs.map +1 -0
  4. package/dist/analytics/index.d.ts +2 -0
  5. package/dist/analytics/index.js +3 -0
  6. package/dist/analytics/index.js.map +1 -0
  7. package/dist/analytics.umd.js +2406 -0
  8. package/dist/analytics.umd.js.map +1 -0
  9. package/dist/components/LocaleSwitch.cjs +118 -0
  10. package/dist/components/LocaleSwitch.cjs.map +1 -0
  11. package/dist/components/LocaleSwitch.d.ts +21 -0
  12. package/dist/components/LocaleSwitch.js +103 -0
  13. package/dist/components/LocaleSwitch.js.map +1 -0
  14. package/dist/components/ThemeSwitch.cjs +117 -0
  15. package/dist/components/ThemeSwitch.cjs.map +1 -0
  16. package/dist/components/ThemeSwitch.d.ts +20 -0
  17. package/dist/components/ThemeSwitch.js +102 -0
  18. package/dist/components/ThemeSwitch.js.map +1 -0
  19. package/dist/components/index.cjs +16 -0
  20. package/dist/components/index.cjs.map +1 -1
  21. package/dist/components/index.d.ts +5 -2
  22. package/dist/components/index.js +2 -1
  23. package/dist/components/index.js.map +1 -1
  24. package/dist/components/persistence.cjs +60 -0
  25. package/dist/components/persistence.cjs.map +1 -0
  26. package/dist/components/persistence.d.ts +12 -0
  27. package/dist/components/persistence.js +39 -0
  28. package/dist/components/persistence.js.map +1 -0
  29. package/dist/core/Test.d.ts +0 -1
  30. package/dist/core/app/AppContext.cjs +36 -30
  31. package/dist/core/app/AppContext.cjs.map +1 -1
  32. package/dist/core/app/AppContext.d.ts +9 -6
  33. package/dist/core/app/AppContext.js +36 -30
  34. package/dist/core/app/AppContext.js.map +1 -1
  35. package/dist/core/app/AppContext.types.d.ts +9 -10
  36. package/dist/core/app/AppContext.types.js.map +1 -1
  37. package/dist/core/app/BasicLayout.cjs +57 -22
  38. package/dist/core/app/BasicLayout.cjs.map +1 -1
  39. package/dist/core/app/BasicLayout.d.ts +7 -5
  40. package/dist/core/app/BasicLayout.js +57 -22
  41. package/dist/core/app/BasicLayout.js.map +1 -1
  42. package/dist/core/app/DefaultApp.cjs +104 -153
  43. package/dist/core/app/DefaultApp.cjs.map +1 -1
  44. package/dist/core/app/DefaultApp.d.ts +0 -21
  45. package/dist/core/app/DefaultApp.js +104 -153
  46. package/dist/core/app/DefaultApp.js.map +1 -1
  47. package/dist/core/app/index.d.ts +0 -1
  48. package/dist/core/config/AppConfig.cjs.map +1 -1
  49. package/dist/core/config/AppConfig.d.ts +3 -4
  50. package/dist/core/config/AppConfig.js.map +1 -1
  51. package/dist/core/config/ConfigLoader.cjs +90 -8
  52. package/dist/core/config/ConfigLoader.cjs.map +1 -1
  53. package/dist/core/config/ConfigLoader.d.ts +20 -5
  54. package/dist/core/config/ConfigLoader.js +90 -8
  55. package/dist/core/config/ConfigLoader.js.map +1 -1
  56. package/dist/core/config/ConfigValidator.d.ts +0 -1
  57. package/dist/core/config/index.d.ts +0 -1
  58. package/dist/core/dev/DevTools.cjs +141 -287
  59. package/dist/core/dev/DevTools.cjs.map +1 -1
  60. package/dist/core/dev/DevTools.d.ts +1 -32
  61. package/dist/core/dev/DevTools.js +143 -296
  62. package/dist/core/dev/DevTools.js.map +1 -1
  63. package/dist/core/error/ErrorBoundary.cjs +95 -23
  64. package/dist/core/error/ErrorBoundary.cjs.map +1 -1
  65. package/dist/core/error/ErrorBoundary.d.ts +7 -9
  66. package/dist/core/error/ErrorBoundary.js +96 -24
  67. package/dist/core/error/ErrorBoundary.js.map +1 -1
  68. package/dist/core/error/ErrorHandler.cjs +277 -0
  69. package/dist/core/error/ErrorHandler.cjs.map +1 -0
  70. package/dist/core/error/ErrorHandler.d.ts +171 -0
  71. package/dist/core/error/ErrorHandler.js +261 -0
  72. package/dist/core/error/ErrorHandler.js.map +1 -0
  73. package/dist/core/error/index.cjs +10 -0
  74. package/dist/core/error/index.cjs.map +1 -1
  75. package/dist/core/error/index.d.ts +2 -1
  76. package/dist/core/error/index.js +1 -0
  77. package/dist/core/error/index.js.map +1 -1
  78. package/dist/core/event/AppEventBus.d.ts +0 -1
  79. package/dist/core/event/frameworkEvents.d.ts +0 -1
  80. package/dist/core/event/hooks.d.ts +0 -1
  81. package/dist/core/event/index.d.ts +0 -1
  82. package/dist/core/event/types.d.ts +0 -1
  83. package/dist/core/event/useEventBus.d.ts +0 -1
  84. package/dist/core/index.cjs +2 -0
  85. package/dist/core/index.cjs.map +1 -1
  86. package/dist/core/index.d.ts +2 -1
  87. package/dist/core/index.js +2 -0
  88. package/dist/core/index.js.map +1 -1
  89. package/dist/core/initialization/InitializationErrorThrower.d.ts +0 -1
  90. package/dist/core/initialization/index.d.ts +0 -1
  91. package/dist/core/initialization/initialization.d.ts +0 -1
  92. package/dist/core/initialization/initializationErrorState.d.ts +0 -1
  93. package/dist/core/kernel/defaultAdapters.cjs +185 -0
  94. package/dist/core/kernel/defaultAdapters.cjs.map +1 -0
  95. package/dist/core/kernel/defaultAdapters.d.ts +2 -0
  96. package/dist/core/kernel/defaultAdapters.js +175 -0
  97. package/dist/core/kernel/defaultAdapters.js.map +1 -0
  98. package/dist/core/kernel/errors.cjs +71 -0
  99. package/dist/core/kernel/errors.cjs.map +1 -0
  100. package/dist/core/kernel/errors.d.ts +18 -0
  101. package/dist/core/kernel/errors.js +53 -0
  102. package/dist/core/kernel/errors.js.map +1 -0
  103. package/dist/core/kernel/index.cjs +22 -0
  104. package/dist/core/kernel/index.cjs.map +1 -0
  105. package/dist/core/kernel/index.d.ts +3 -0
  106. package/dist/core/kernel/index.js +4 -0
  107. package/dist/core/kernel/index.js.map +1 -0
  108. package/dist/core/kernel/startKernel.cjs +203 -0
  109. package/dist/core/kernel/startKernel.cjs.map +1 -0
  110. package/dist/core/kernel/startKernel.d.ts +2 -0
  111. package/dist/core/kernel/startKernel.js +193 -0
  112. package/dist/core/kernel/startKernel.js.map +1 -0
  113. package/dist/core/kernel/types.cjs +6 -0
  114. package/dist/core/kernel/types.cjs.map +1 -0
  115. package/dist/core/kernel/types.d.ts +114 -0
  116. package/dist/core/kernel/types.js +3 -0
  117. package/dist/core/kernel/types.js.map +1 -0
  118. package/dist/core/middleware.d.ts +0 -1
  119. package/dist/core/plugin/PluginEventBus.d.ts +0 -1
  120. package/dist/core/plugin/PluginSandbox.d.ts +0 -1
  121. package/dist/core/plugin.cjs +1 -1
  122. package/dist/core/plugin.cjs.map +1 -1
  123. package/dist/core/plugin.d.ts +0 -1
  124. package/dist/core/plugin.js +1 -1
  125. package/dist/core/plugin.js.map +1 -1
  126. package/dist/core/router/RouterManager.d.ts +0 -1
  127. package/dist/core/router/adapter/AdapterManager.d.ts +0 -1
  128. package/dist/core/router/adapter/index.d.ts +0 -1
  129. package/dist/core/router/adapter/react-router/ReactRouterAdapter.d.ts +0 -1
  130. package/dist/core/router/adapter/react-router/index.d.ts +0 -1
  131. package/dist/core/router/adapter/types.cjs.map +1 -1
  132. package/dist/core/router/adapter/types.d.ts +1 -2
  133. package/dist/core/router/adapter/types.js.map +1 -1
  134. package/dist/core/router/dev/RouterDevTools.cjs +148 -296
  135. package/dist/core/router/dev/RouterDevTools.cjs.map +1 -1
  136. package/dist/core/router/dev/RouterDevTools.d.ts +1 -6
  137. package/dist/core/router/dev/RouterDevTools.js +149 -301
  138. package/dist/core/router/dev/RouterDevTools.js.map +1 -1
  139. package/dist/core/router/dev/index.d.ts +0 -1
  140. package/dist/core/router/dynamic/DynamicRouteManager.d.ts +0 -1
  141. package/dist/core/router/dynamic/index.d.ts +0 -1
  142. package/dist/core/router/errors/RouterError.d.ts +0 -1
  143. package/dist/core/router/errors/index.d.ts +0 -1
  144. package/dist/core/router/index.d.ts +0 -1
  145. package/dist/core/router/lifecycle/RouterLifecycleManager.d.ts +0 -1
  146. package/dist/core/router/lifecycle/index.d.ts +0 -1
  147. package/dist/core/router/middleware/RouterMiddlewareManager.d.ts +0 -1
  148. package/dist/core/router/middleware/auth.d.ts +0 -1
  149. package/dist/core/router/middleware/index.d.ts +0 -1
  150. package/dist/core/router/middleware/types.d.ts +0 -1
  151. package/dist/core/router/monitoring/RouterMonitoring.d.ts +0 -1
  152. package/dist/core/router/monitoring/index.d.ts +0 -1
  153. package/dist/core/router/navigation/RouterNavigation.d.ts +0 -1
  154. package/dist/core/router/navigation/index.d.ts +0 -1
  155. package/dist/core/router/performance/RouteCache.d.ts +0 -1
  156. package/dist/core/router/performance/RoutePreloader.d.ts +0 -1
  157. package/dist/core/router/performance/index.d.ts +0 -1
  158. package/dist/core/router/plugin/RouterPluginManager.d.ts +0 -1
  159. package/dist/core/router/plugin/index.d.ts +0 -1
  160. package/dist/core/router/plugin/types.d.ts +0 -1
  161. package/dist/core/router/types.d.ts +1 -2
  162. package/dist/core/router/types.js.map +1 -1
  163. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.cjs +90 -103
  164. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.cjs.map +1 -1
  165. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.d.ts +0 -1
  166. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.js +91 -104
  167. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.js.map +1 -1
  168. package/dist/core/router/utils/adapters/react-router/transform.cjs +13 -4
  169. package/dist/core/router/utils/adapters/react-router/transform.cjs.map +1 -1
  170. package/dist/core/router/utils/adapters/react-router/transform.d.ts +0 -1
  171. package/dist/core/router/utils/adapters/react-router/transform.js +13 -4
  172. package/dist/core/router/utils/adapters/react-router/transform.js.map +1 -1
  173. package/dist/core/router/utils/transform.cjs +1 -1
  174. package/dist/core/router/utils/transform.cjs.map +1 -1
  175. package/dist/core/router/utils/transform.d.ts +0 -1
  176. package/dist/core/router/utils/transform.js +1 -1
  177. package/dist/core/router/utils/transform.js.map +1 -1
  178. package/dist/core/router/validation/RouterConfigValidator.d.ts +0 -1
  179. package/dist/core/router/validation/index.d.ts +0 -1
  180. package/dist/core/router/validation/schema.d.ts +0 -1
  181. package/dist/core/router/version/RouteVersionManager.d.ts +0 -1
  182. package/dist/core/router/version/index.d.ts +0 -1
  183. package/dist/core/splash/SplashScreen.cjs +101 -15
  184. package/dist/core/splash/SplashScreen.cjs.map +1 -1
  185. package/dist/core/splash/SplashScreen.d.ts +0 -1
  186. package/dist/core/splash/SplashScreen.js +101 -15
  187. package/dist/core/splash/SplashScreen.js.map +1 -1
  188. package/dist/core/splash/index.d.ts +0 -1
  189. package/dist/core/splash/splashScreenUtils.d.ts +0 -1
  190. package/dist/core/startup/AppInstance.d.ts +0 -1
  191. package/dist/core/startup/environment.d.ts +0 -1
  192. package/dist/core/startup/index.d.ts +0 -1
  193. package/dist/core/startup/initializeServices.cjs +69 -24
  194. package/dist/core/startup/initializeServices.cjs.map +1 -1
  195. package/dist/core/startup/initializeServices.d.ts +9 -3
  196. package/dist/core/startup/initializeServices.js +73 -26
  197. package/dist/core/startup/initializeServices.js.map +1 -1
  198. package/dist/core/startup/performanceTracker.d.ts +0 -1
  199. package/dist/core/startup/renderApp.cjs +110 -69
  200. package/dist/core/startup/renderApp.cjs.map +1 -1
  201. package/dist/core/startup/renderApp.d.ts +2 -3
  202. package/dist/core/startup/renderApp.js +111 -70
  203. package/dist/core/startup/renderApp.js.map +1 -1
  204. package/dist/core/startup/startApp.cjs +123 -11
  205. package/dist/core/startup/startApp.cjs.map +1 -1
  206. package/dist/core/startup/startApp.d.ts +0 -1
  207. package/dist/core/startup/startApp.js +123 -11
  208. package/dist/core/startup/startApp.js.map +1 -1
  209. package/dist/core/types.d.ts +34 -21
  210. package/dist/core/types.js.map +1 -1
  211. package/dist/core/ui-adapter/adapters.cjs +45 -0
  212. package/dist/core/ui-adapter/adapters.cjs.map +1 -0
  213. package/dist/core/ui-adapter/adapters.d.ts +4 -0
  214. package/dist/core/ui-adapter/adapters.js +27 -0
  215. package/dist/core/ui-adapter/adapters.js.map +1 -0
  216. package/dist/core/ui-adapter/index.cjs +21 -0
  217. package/dist/core/ui-adapter/index.cjs.map +1 -0
  218. package/dist/core/ui-adapter/index.d.ts +2 -0
  219. package/dist/core/ui-adapter/index.js +3 -0
  220. package/dist/core/ui-adapter/index.js.map +1 -0
  221. package/dist/core/ui-adapter/types.cjs +6 -0
  222. package/dist/core/ui-adapter/types.cjs.map +1 -0
  223. package/dist/core/ui-adapter/types.d.ts +24 -0
  224. package/dist/core/ui-adapter/types.js +3 -0
  225. package/dist/core/ui-adapter/types.js.map +1 -0
  226. package/dist/index.cjs +1 -0
  227. package/dist/index.cjs.map +1 -1
  228. package/dist/index.d.ts +1 -1
  229. package/dist/index.js +1 -0
  230. package/dist/index.js.map +1 -1
  231. package/dist/index.umd.d.ts +0 -1
  232. package/dist/index.umd.js +33004 -38475
  233. package/dist/index.umd.js.map +1 -1
  234. package/dist/library/index.d.ts +0 -1
  235. package/dist/library/locale/index.d.ts +0 -1
  236. package/dist/library/locale/langs/en-us/index.d.ts +0 -1
  237. package/dist/library/locale/langs/zh-cn/index.d.ts +0 -1
  238. package/dist/library/locale/types.d.ts +0 -1
  239. package/dist/library/storage/cache.d.ts +0 -1
  240. package/dist/library/storage/encryption.d.ts +0 -1
  241. package/dist/library/storage/index.d.ts +0 -1
  242. package/dist/request/adapter/RequestAdapter.d.ts +0 -1
  243. package/dist/request/adapter/axiosAdapter.d.ts +0 -1
  244. package/dist/request/adapter/fetchAdapter.d.ts +0 -1
  245. package/dist/request/adapter/index.d.ts +0 -1
  246. package/dist/request/adapter/kyAdapter.d.ts +0 -1
  247. package/dist/request/adapter/undiciAdapter.d.ts +0 -1
  248. package/dist/request/core/RequestClient.d.ts +0 -1
  249. package/dist/request/core/index.d.ts +0 -1
  250. package/dist/request/index.d.ts +0 -1
  251. package/dist/request/plugin/RequestPlugin.d.ts +0 -1
  252. package/dist/request/plugin/cache.d.ts +0 -1
  253. package/dist/request/plugin/csrfPlugin.d.ts +0 -1
  254. package/dist/request/plugin/index.d.ts +0 -1
  255. package/dist/request/plugin/monitoring.d.ts +0 -1
  256. package/dist/request/plugin/queue.d.ts +0 -1
  257. package/dist/request/plugin/retry.d.ts +0 -1
  258. package/dist/request/plugin/validation.d.ts +0 -1
  259. package/dist/request/runtime/RequestContext.d.ts +0 -1
  260. package/dist/request/runtime/index.d.ts +0 -1
  261. package/dist/request/types.d.ts +0 -1
  262. package/dist/request/utils/RequestQueueManager.d.ts +0 -1
  263. package/dist/request/utils/dependencyCheck.d.ts +0 -1
  264. package/dist/request/utils/index.d.ts +0 -1
  265. package/dist/request.umd.js +5392 -0
  266. package/dist/request.umd.js.map +1 -0
  267. package/dist/state/StateManager.d.ts +0 -1
  268. package/dist/state/adapters/AdapterFactory.d.ts +0 -1
  269. package/dist/state/adapters/DefaultAdapter.d.ts +0 -1
  270. package/dist/state/adapters/ReduxAdapter.d.ts +0 -1
  271. package/dist/state/adapters/ZustandAdapter.d.ts +0 -1
  272. package/dist/state/adapters/index.d.ts +0 -1
  273. package/dist/state/adapters/types.d.ts +0 -1
  274. package/dist/state/core/DerivedStateInstance.d.ts +0 -1
  275. package/dist/state/core/StateInstance.d.ts +0 -1
  276. package/dist/state/core/StateRegistry.d.ts +0 -1
  277. package/dist/state/core/StateScope.d.ts +0 -1
  278. package/dist/state/core/index.d.ts +0 -1
  279. package/dist/state/index.d.ts +0 -1
  280. package/dist/state/types.d.ts +0 -1
  281. package/dist/state.umd.js +1414 -0
  282. package/dist/state.umd.js.map +1 -0
  283. package/dist/types.d.ts +0 -1
  284. package/dist/utils/analytics.d.ts +0 -1
  285. package/dist/utils/configSecurity.d.ts +0 -1
  286. package/dist/utils/csrf.d.ts +0 -1
  287. package/dist/utils/errors/ErrorCodes.d.ts +0 -1
  288. package/dist/utils/errors.cjs +44 -1
  289. package/dist/utils/errors.cjs.map +1 -1
  290. package/dist/utils/errors.d.ts +5 -1
  291. package/dist/utils/errors.js +44 -1
  292. package/dist/utils/errors.js.map +1 -1
  293. package/dist/utils/index.d.ts +0 -1
  294. package/dist/utils/logger.d.ts +0 -1
  295. package/dist/utils/logger.types.d.ts +0 -1
  296. package/dist/utils/monitoring.d.ts +0 -1
  297. package/dist/utils/performance.d.ts +0 -1
  298. package/dist/utils/resourceLoader.d.ts +0 -1
  299. package/dist/utils/runtimeSecurity.d.ts +0 -1
  300. package/dist/utils/security.d.ts +0 -1
  301. package/dist/utils/traceId.d.ts +0 -1
  302. package/dist/utils/validation.d.ts +0 -1
  303. package/package.json +57 -8
  304. package/dist/components/index.d.ts.map +0 -1
  305. package/dist/core/Test.d.ts.map +0 -1
  306. package/dist/core/app/AppContext.d.ts.map +0 -1
  307. package/dist/core/app/AppContext.types.d.ts.map +0 -1
  308. package/dist/core/app/BasicLayout.d.ts.map +0 -1
  309. package/dist/core/app/DefaultApp.d.ts.map +0 -1
  310. package/dist/core/app/index.d.ts.map +0 -1
  311. package/dist/core/config/AppConfig.d.ts.map +0 -1
  312. package/dist/core/config/ConfigLoader.d.ts.map +0 -1
  313. package/dist/core/config/ConfigValidator.d.ts.map +0 -1
  314. package/dist/core/config/index.d.ts.map +0 -1
  315. package/dist/core/dev/DevTools.d.ts.map +0 -1
  316. package/dist/core/error/ErrorBoundary.d.ts.map +0 -1
  317. package/dist/core/error/index.d.ts.map +0 -1
  318. package/dist/core/event/AppEventBus.d.ts.map +0 -1
  319. package/dist/core/event/frameworkEvents.d.ts.map +0 -1
  320. package/dist/core/event/hooks.d.ts.map +0 -1
  321. package/dist/core/event/index.d.ts.map +0 -1
  322. package/dist/core/event/types.d.ts.map +0 -1
  323. package/dist/core/event/useEventBus.d.ts.map +0 -1
  324. package/dist/core/index.d.ts.map +0 -1
  325. package/dist/core/initialization/InitializationErrorThrower.d.ts.map +0 -1
  326. package/dist/core/initialization/index.d.ts.map +0 -1
  327. package/dist/core/initialization/initialization.d.ts.map +0 -1
  328. package/dist/core/initialization/initializationErrorState.d.ts.map +0 -1
  329. package/dist/core/middleware.d.ts.map +0 -1
  330. package/dist/core/plugin/PluginEventBus.d.ts.map +0 -1
  331. package/dist/core/plugin/PluginSandbox.d.ts.map +0 -1
  332. package/dist/core/plugin.d.ts.map +0 -1
  333. package/dist/core/router/RouterManager.d.ts.map +0 -1
  334. package/dist/core/router/adapter/AdapterManager.d.ts.map +0 -1
  335. package/dist/core/router/adapter/index.d.ts.map +0 -1
  336. package/dist/core/router/adapter/react-router/ReactRouterAdapter.d.ts.map +0 -1
  337. package/dist/core/router/adapter/react-router/index.d.ts.map +0 -1
  338. package/dist/core/router/adapter/types.d.ts.map +0 -1
  339. package/dist/core/router/dev/RouterDevTools.d.ts.map +0 -1
  340. package/dist/core/router/dev/index.d.ts.map +0 -1
  341. package/dist/core/router/dynamic/DynamicRouteManager.d.ts.map +0 -1
  342. package/dist/core/router/dynamic/index.d.ts.map +0 -1
  343. package/dist/core/router/errors/RouterError.d.ts.map +0 -1
  344. package/dist/core/router/errors/index.d.ts.map +0 -1
  345. package/dist/core/router/index.d.ts.map +0 -1
  346. package/dist/core/router/lifecycle/RouterLifecycleManager.d.ts.map +0 -1
  347. package/dist/core/router/lifecycle/index.d.ts.map +0 -1
  348. package/dist/core/router/middleware/RouterMiddlewareManager.d.ts.map +0 -1
  349. package/dist/core/router/middleware/auth.d.ts.map +0 -1
  350. package/dist/core/router/middleware/index.d.ts.map +0 -1
  351. package/dist/core/router/middleware/types.d.ts.map +0 -1
  352. package/dist/core/router/monitoring/RouterMonitoring.d.ts.map +0 -1
  353. package/dist/core/router/monitoring/index.d.ts.map +0 -1
  354. package/dist/core/router/navigation/RouterNavigation.d.ts.map +0 -1
  355. package/dist/core/router/navigation/index.d.ts.map +0 -1
  356. package/dist/core/router/performance/RouteCache.d.ts.map +0 -1
  357. package/dist/core/router/performance/RoutePreloader.d.ts.map +0 -1
  358. package/dist/core/router/performance/index.d.ts.map +0 -1
  359. package/dist/core/router/plugin/RouterPluginManager.d.ts.map +0 -1
  360. package/dist/core/router/plugin/index.d.ts.map +0 -1
  361. package/dist/core/router/plugin/types.d.ts.map +0 -1
  362. package/dist/core/router/types.d.ts.map +0 -1
  363. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.d.ts.map +0 -1
  364. package/dist/core/router/utils/adapters/react-router/transform.d.ts.map +0 -1
  365. package/dist/core/router/utils/transform.d.ts.map +0 -1
  366. package/dist/core/router/validation/RouterConfigValidator.d.ts.map +0 -1
  367. package/dist/core/router/validation/index.d.ts.map +0 -1
  368. package/dist/core/router/validation/schema.d.ts.map +0 -1
  369. package/dist/core/router/version/RouteVersionManager.d.ts.map +0 -1
  370. package/dist/core/router/version/index.d.ts.map +0 -1
  371. package/dist/core/splash/SplashScreen.d.ts.map +0 -1
  372. package/dist/core/splash/index.d.ts.map +0 -1
  373. package/dist/core/splash/splashScreenUtils.d.ts.map +0 -1
  374. package/dist/core/startup/AppInstance.d.ts.map +0 -1
  375. package/dist/core/startup/environment.d.ts.map +0 -1
  376. package/dist/core/startup/index.d.ts.map +0 -1
  377. package/dist/core/startup/initializeServices.d.ts.map +0 -1
  378. package/dist/core/startup/performanceTracker.d.ts.map +0 -1
  379. package/dist/core/startup/renderApp.d.ts.map +0 -1
  380. package/dist/core/startup/startApp.d.ts.map +0 -1
  381. package/dist/core/types.d.ts.map +0 -1
  382. package/dist/index.d.ts.map +0 -1
  383. package/dist/index.umd.d.ts.map +0 -1
  384. package/dist/library/index.d.ts.map +0 -1
  385. package/dist/library/locale/index.d.ts.map +0 -1
  386. package/dist/library/locale/langs/en-us/index.d.ts.map +0 -1
  387. package/dist/library/locale/langs/zh-cn/index.d.ts.map +0 -1
  388. package/dist/library/locale/types.d.ts.map +0 -1
  389. package/dist/library/storage/cache.d.ts.map +0 -1
  390. package/dist/library/storage/encryption.d.ts.map +0 -1
  391. package/dist/library/storage/index.d.ts.map +0 -1
  392. package/dist/request/adapter/RequestAdapter.d.ts.map +0 -1
  393. package/dist/request/adapter/axiosAdapter.d.ts.map +0 -1
  394. package/dist/request/adapter/fetchAdapter.d.ts.map +0 -1
  395. package/dist/request/adapter/index.d.ts.map +0 -1
  396. package/dist/request/adapter/kyAdapter.d.ts.map +0 -1
  397. package/dist/request/adapter/undiciAdapter.d.ts.map +0 -1
  398. package/dist/request/core/RequestClient.d.ts.map +0 -1
  399. package/dist/request/core/index.d.ts.map +0 -1
  400. package/dist/request/index.d.ts.map +0 -1
  401. package/dist/request/plugin/RequestPlugin.d.ts.map +0 -1
  402. package/dist/request/plugin/cache.d.ts.map +0 -1
  403. package/dist/request/plugin/csrfPlugin.d.ts.map +0 -1
  404. package/dist/request/plugin/index.d.ts.map +0 -1
  405. package/dist/request/plugin/monitoring.d.ts.map +0 -1
  406. package/dist/request/plugin/queue.d.ts.map +0 -1
  407. package/dist/request/plugin/retry.d.ts.map +0 -1
  408. package/dist/request/plugin/validation.d.ts.map +0 -1
  409. package/dist/request/runtime/RequestContext.d.ts.map +0 -1
  410. package/dist/request/runtime/index.d.ts.map +0 -1
  411. package/dist/request/types.d.ts.map +0 -1
  412. package/dist/request/utils/RequestQueueManager.d.ts.map +0 -1
  413. package/dist/request/utils/dependencyCheck.d.ts.map +0 -1
  414. package/dist/request/utils/index.d.ts.map +0 -1
  415. package/dist/state/StateManager.d.ts.map +0 -1
  416. package/dist/state/adapters/AdapterFactory.d.ts.map +0 -1
  417. package/dist/state/adapters/DefaultAdapter.d.ts.map +0 -1
  418. package/dist/state/adapters/ReduxAdapter.d.ts.map +0 -1
  419. package/dist/state/adapters/ZustandAdapter.d.ts.map +0 -1
  420. package/dist/state/adapters/index.d.ts.map +0 -1
  421. package/dist/state/adapters/types.d.ts.map +0 -1
  422. package/dist/state/core/DerivedStateInstance.d.ts.map +0 -1
  423. package/dist/state/core/StateInstance.d.ts.map +0 -1
  424. package/dist/state/core/StateRegistry.d.ts.map +0 -1
  425. package/dist/state/core/StateScope.d.ts.map +0 -1
  426. package/dist/state/core/index.d.ts.map +0 -1
  427. package/dist/state/index.d.ts.map +0 -1
  428. package/dist/state/types.d.ts.map +0 -1
  429. package/dist/types.d.ts.map +0 -1
  430. package/dist/utils/analytics.d.ts.map +0 -1
  431. package/dist/utils/configSecurity.d.ts.map +0 -1
  432. package/dist/utils/csrf.d.ts.map +0 -1
  433. package/dist/utils/errors/ErrorCodes.d.ts.map +0 -1
  434. package/dist/utils/errors.d.ts.map +0 -1
  435. package/dist/utils/index.d.ts.map +0 -1
  436. package/dist/utils/logger.d.ts.map +0 -1
  437. package/dist/utils/logger.types.d.ts.map +0 -1
  438. package/dist/utils/monitoring.d.ts.map +0 -1
  439. package/dist/utils/performance.d.ts.map +0 -1
  440. package/dist/utils/resourceLoader.d.ts.map +0 -1
  441. package/dist/utils/runtimeSecurity.d.ts.map +0 -1
  442. package/dist/utils/security.d.ts.map +0 -1
  443. package/dist/utils/traceId.d.ts.map +0 -1
  444. package/dist/utils/validation.d.ts.map +0 -1
@@ -1,127 +1,114 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useState } from "react";
3
- import { Result, Button, Collapse } from "antd";
4
3
  const isDevelopment = process.env.NODE_ENV === 'development';
5
4
  export const RouteErrorBoundary = ({ error, resetErrorBoundary })=>{
6
5
  const [showDetails, setShowDetails] = useState(false);
7
- // 可以在这里根据不同的业务逻辑处理错误或者上报给日志服务
8
- // const { token } = theme.useToken();
9
- // const themeColor = token.colorPrimary;
10
6
  const errorWithCause = error;
11
7
  const hasCause = 'cause' in error && errorWithCause.cause !== undefined;
12
- const errorDetails = isDevelopment ? /*#__PURE__*/ _jsx("div", {
8
+ return /*#__PURE__*/ _jsx("div", {
9
+ role: "alert",
13
10
  style: {
14
- marginTop: 16,
15
- textAlign: 'left'
11
+ minHeight: '100vh',
12
+ display: 'flex',
13
+ justifyContent: 'center',
14
+ alignItems: 'center',
15
+ padding: 24
16
16
  },
17
- children: /*#__PURE__*/ _jsx(Collapse, {
18
- activeKey: showDetails ? [
19
- 'details'
20
- ] : [],
21
- onChange: (keys)=>setShowDetails(keys.includes('details')),
22
- items: [
23
- {
24
- key: 'details',
25
- label: /*#__PURE__*/ _jsxs("span", {
26
- children: [
27
- showDetails ? '▲' : '▼',
28
- " 错误详情"
29
- ]
30
- }),
31
- children: /*#__PURE__*/ _jsxs("div", {
32
- style: {
33
- fontFamily: 'monospace',
34
- fontSize: '12px',
35
- whiteSpace: 'pre-wrap',
36
- wordBreak: 'break-all'
37
- },
38
- children: [
39
- /*#__PURE__*/ _jsx("div", {
40
- style: {
41
- marginBottom: 8,
42
- fontWeight: 'bold'
43
- },
44
- children: "错误信息:"
45
- }),
46
- /*#__PURE__*/ _jsx("div", {
47
- style: {
48
- marginBottom: 16,
49
- color: '#ff4d4f'
50
- },
51
- children: error.message
52
- }),
53
- error.stack && /*#__PURE__*/ _jsxs(_Fragment, {
54
- children: [
55
- /*#__PURE__*/ _jsx("div", {
56
- style: {
57
- marginBottom: 8,
58
- fontWeight: 'bold'
59
- },
60
- children: "堆栈信息:"
61
- }),
62
- /*#__PURE__*/ _jsx("div", {
63
- style: {
64
- marginBottom: 16,
65
- color: '#666'
66
- },
67
- children: error.stack
68
- })
69
- ]
70
- }),
71
- hasCause && /*#__PURE__*/ _jsxs(_Fragment, {
72
- children: [
73
- /*#__PURE__*/ _jsx("div", {
74
- style: {
75
- marginBottom: 8,
76
- fontWeight: 'bold'
77
- },
78
- children: "原因:"
79
- }),
80
- /*#__PURE__*/ _jsx("div", {
81
- style: {
82
- marginBottom: 16,
83
- color: '#666'
84
- },
85
- children: errorWithCause.cause instanceof Error ? errorWithCause.cause.message : String(errorWithCause.cause)
86
- })
87
- ]
88
- })
89
- ]
90
- })
91
- }
92
- ]
93
- })
94
- }) : null;
95
- return /*#__PURE__*/ _jsx("div", {
96
- className: "size-full flex-col-center gap-16px overflow-y-scroll flex-col flex justify-center items-center gap-4",
97
- children: /*#__PURE__*/ _jsx("div", {
98
- className: "flex text-400px text-primary",
99
- children: /*#__PURE__*/ _jsx(Result, {
100
- status: "error",
101
- title: "出错了,请稍后再试",
102
- subTitle: isDevelopment ? error.message : '请稍后再试或联系技术支持',
103
- extra: /*#__PURE__*/ _jsxs("div", {
17
+ children: /*#__PURE__*/ _jsxs("div", {
18
+ style: {
19
+ maxWidth: 760,
20
+ width: '100%',
21
+ border: '1px solid #dde5ec',
22
+ borderRadius: 10,
23
+ padding: 20
24
+ },
25
+ children: [
26
+ /*#__PURE__*/ _jsx("h2", {
27
+ style: {
28
+ marginTop: 0
29
+ },
30
+ children: "出错了,请稍后再试"
31
+ }),
32
+ /*#__PURE__*/ _jsx("p", {
33
+ children: isDevelopment ? error.message : '请稍后再试或联系技术支持'
34
+ }),
35
+ /*#__PURE__*/ _jsxs("div", {
104
36
  style: {
105
37
  display: 'flex',
106
38
  gap: 8,
107
- flexDirection: 'column',
108
- alignItems: 'center'
39
+ marginBottom: 12
109
40
  },
110
41
  children: [
111
- /*#__PURE__*/ _jsx(Button, {
112
- type: "primary",
42
+ /*#__PURE__*/ _jsx("button", {
113
43
  onClick: resetErrorBoundary,
44
+ style: {
45
+ border: 'none',
46
+ background: '#2f80ed',
47
+ color: '#fff',
48
+ borderRadius: 6,
49
+ padding: '8px 12px',
50
+ cursor: 'pointer'
51
+ },
114
52
  children: "刷新重试"
115
53
  }),
116
- isDevelopment && /*#__PURE__*/ _jsx(Button, {
117
- type: "link",
54
+ isDevelopment && /*#__PURE__*/ _jsx("button", {
118
55
  onClick: ()=>setShowDetails(!showDetails),
119
- children: showDetails ? '▲ 收起详情' : '▼ 展开详情'
56
+ style: {
57
+ border: '1px solid #cfd7df',
58
+ background: '#fff',
59
+ borderRadius: 6,
60
+ padding: '8px 12px',
61
+ cursor: 'pointer'
62
+ },
63
+ children: showDetails ? '收起详情' : '展开详情'
120
64
  })
121
65
  ]
122
66
  }),
123
- children: errorDetails
124
- })
67
+ isDevelopment && showDetails && /*#__PURE__*/ _jsxs("div", {
68
+ style: {
69
+ background: '#f7fafc',
70
+ borderRadius: 8,
71
+ padding: 12,
72
+ fontSize: 12,
73
+ fontFamily: 'monospace'
74
+ },
75
+ children: [
76
+ /*#__PURE__*/ _jsxs("div", {
77
+ style: {
78
+ marginBottom: 10
79
+ },
80
+ children: [
81
+ /*#__PURE__*/ _jsx("strong", {
82
+ children: "错误信息:"
83
+ }),
84
+ error.message
85
+ ]
86
+ }),
87
+ error.stack && /*#__PURE__*/ _jsxs("div", {
88
+ style: {
89
+ marginBottom: 10,
90
+ whiteSpace: 'pre-wrap',
91
+ wordBreak: 'break-word'
92
+ },
93
+ children: [
94
+ /*#__PURE__*/ _jsx("strong", {
95
+ children: "堆栈:"
96
+ }),
97
+ /*#__PURE__*/ _jsx("br", {}),
98
+ error.stack
99
+ ]
100
+ }),
101
+ hasCause && /*#__PURE__*/ _jsxs("div", {
102
+ children: [
103
+ /*#__PURE__*/ _jsx("strong", {
104
+ children: "原因:"
105
+ }),
106
+ errorWithCause.cause instanceof Error ? errorWithCause.cause.message : String(errorWithCause.cause)
107
+ ]
108
+ })
109
+ ]
110
+ })
111
+ ]
125
112
  })
126
113
  });
127
114
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/core/router/utils/adapters/react-router/RouteErrorBoundary.tsx"],"sourcesContent":["import { useState } from 'react';\nimport type { FallbackProps } from 'react-error-boundary';\nimport { Result, Button, Collapse } from 'antd';\n\nconst isDevelopment = process.env.NODE_ENV === 'development';\n\ninterface ErrorWithCause extends Error {\n cause?: unknown;\n}\n\nexport const RouteErrorBoundary = ({ error, resetErrorBoundary }: FallbackProps) => {\n const [showDetails, setShowDetails] = useState(false);\n\n // 可以在这里根据不同的业务逻辑处理错误或者上报给日志服务\n // const { token } = theme.useToken();\n // const themeColor = token.colorPrimary;\n\n const errorWithCause = error as ErrorWithCause;\n const hasCause = 'cause' in error && errorWithCause.cause !== undefined;\n\n const errorDetails = isDevelopment ? (\n <div style={{ marginTop: 16, textAlign: 'left' }}>\n <Collapse\n activeKey={showDetails ? ['details'] : []}\n onChange={(keys) => setShowDetails(keys.includes('details'))}\n items={[\n {\n key: 'details',\n label: (\n <span>\n {showDetails ? '' : ''} 错误详情\n </span>\n ),\n children: (\n <div style={{ fontFamily: 'monospace', fontSize: '12px', whiteSpace: 'pre-wrap', wordBreak: 'break-all' }}>\n <div style={{ marginBottom: 8, fontWeight: 'bold' }}>错误信息:</div>\n <div style={{ marginBottom: 16, color: '#ff4d4f' }}>{error.message}</div>\n \n {error.stack && (\n <>\n <div style={{ marginBottom: 8, fontWeight: 'bold' }}>堆栈信息:</div>\n <div style={{ marginBottom: 16, color: '#666' }}>{error.stack}</div>\n </>\n )}\n \n {hasCause && (\n <>\n <div style={{ marginBottom: 8, fontWeight: 'bold' }}>原因:</div>\n <div style={{ marginBottom: 16, color: '#666' }}>\n {errorWithCause.cause instanceof Error \n ? errorWithCause.cause.message \n : String(errorWithCause.cause)}\n </div>\n </>\n )}\n </div>\n ),\n },\n ]}\n />\n </div>\n ) : null;\n\n return (\n <div className=\"size-full flex-col-center gap-16px overflow-y-scroll flex-col flex justify-center items-center gap-4\">\n <div className=\"flex text-400px text-primary\">\n <Result\n status=\"error\"\n title=\"出错了,请稍后再试\"\n subTitle={isDevelopment ? error.message : '请稍后再试或联系技术支持'}\n extra={\n <div style={{ display: 'flex', gap: 8, flexDirection: 'column', alignItems: 'center' }}>\n <Button type=\"primary\" onClick={resetErrorBoundary}>\n 刷新重试\n </Button>\n {isDevelopment && (\n <Button\n type=\"link\"\n onClick={() => setShowDetails(!showDetails)}\n >\n {showDetails ? '▲ 收起详情' : '▼ 展开详情'}\n </Button>\n )}\n </div>\n }\n >\n {errorDetails}\n </Result>\n </div>\n </div>\n );\n};"],"names":["useState","Result","Button","Collapse","isDevelopment","process","env","NODE_ENV","RouteErrorBoundary","error","resetErrorBoundary","showDetails","setShowDetails","errorWithCause","hasCause","cause","undefined","errorDetails","div","style","marginTop","textAlign","activeKey","onChange","keys","includes","items","key","label","span","children","fontFamily","fontSize","whiteSpace","wordBreak","marginBottom","fontWeight","color","message","stack","Error","String","className","status","title","subTitle","extra","display","gap","flexDirection","alignItems","type","onClick"],"mappings":";AAAA,SAASA,QAAQ,QAAQ,QAAQ;AAEjC,SAASC,MAAM,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAEhD,MAAMC,gBAAgBC,QAAQC,GAAG,CAACC,QAAQ,KAAK;AAM/C,OAAO,MAAMC,qBAAqB,CAAC,EAAEC,KAAK,EAAEC,kBAAkB,EAAiB;IAC3E,MAAM,CAACC,aAAaC,eAAe,GAAGZ,SAAS;IAE/C,8BAA8B;IAC9B,sCAAsC;IACtC,yCAAyC;IAEzC,MAAMa,iBAAiBJ;IACvB,MAAMK,WAAW,WAAWL,SAASI,eAAeE,KAAK,KAAKC;IAE9D,MAAMC,eAAeb,8BACjB,KAACc;QAAIC,OAAO;YAAEC,WAAW;YAAIC,WAAW;QAAO;kBAC3C,cAAA,KAAClB;YACGmB,WAAWX,cAAc;gBAAC;aAAU,GAAG,EAAE;YACzCY,UAAU,CAACC,OAASZ,eAAeY,KAAKC,QAAQ,CAAC;YACjDC,OAAO;gBACH;oBACIC,KAAK;oBACLC,qBACI,MAACC;;4BACIlB,cAAc,MAAM;4BAAI;;;oBAGjCmB,wBACI,MAACZ;wBAAIC,OAAO;4BAAEY,YAAY;4BAAaC,UAAU;4BAAQC,YAAY;4BAAYC,WAAW;wBAAY;;0CACpG,KAAChB;gCAAIC,OAAO;oCAAEgB,cAAc;oCAAGC,YAAY;gCAAO;0CAAG;;0CACrD,KAAClB;gCAAIC,OAAO;oCAAEgB,cAAc;oCAAIE,OAAO;gCAAU;0CAAI5B,MAAM6B,OAAO;;4BAEjE7B,MAAM8B,KAAK,kBACR;;kDACI,KAACrB;wCAAIC,OAAO;4CAAEgB,cAAc;4CAAGC,YAAY;wCAAO;kDAAG;;kDACrD,KAAClB;wCAAIC,OAAO;4CAAEgB,cAAc;4CAAIE,OAAO;wCAAO;kDAAI5B,MAAM8B,KAAK;;;;4BAIpEzB,0BACG;;kDACI,KAACI;wCAAIC,OAAO;4CAAEgB,cAAc;4CAAGC,YAAY;wCAAO;kDAAG;;kDACrD,KAAClB;wCAAIC,OAAO;4CAAEgB,cAAc;4CAAIE,OAAO;wCAAO;kDACzCxB,eAAeE,KAAK,YAAYyB,QAC3B3B,eAAeE,KAAK,CAACuB,OAAO,GAC5BG,OAAO5B,eAAeE,KAAK;;;;;;gBAMzD;aACH;;SAGT;IAEJ,qBACI,KAACG;QAAIwB,WAAU;kBACX,cAAA,KAACxB;YAAIwB,WAAU;sBACX,cAAA,KAACzC;gBACG0C,QAAO;gBACPC,OAAM;gBACNC,UAAUzC,gBAAgBK,MAAM6B,OAAO,GAAG;gBAC1CQ,qBACI,MAAC5B;oBAAIC,OAAO;wBAAE4B,SAAS;wBAAQC,KAAK;wBAAGC,eAAe;wBAAUC,YAAY;oBAAS;;sCACjF,KAAChD;4BAAOiD,MAAK;4BAAUC,SAAS1C;sCAAoB;;wBAGnDN,+BACG,KAACF;4BACGiD,MAAK;4BACLC,SAAS,IAAMxC,eAAe,CAACD;sCAE9BA,cAAc,WAAW;;;;0BAMzCM;;;;AAKrB,EAAE"}
1
+ {"version":3,"sources":["../../../../../../src/core/router/utils/adapters/react-router/RouteErrorBoundary.tsx"],"sourcesContent":["import { useState } from 'react';\nimport type { FallbackProps } from 'react-error-boundary';\n\nconst isDevelopment = process.env.NODE_ENV === 'development';\n\ninterface ErrorWithCause extends Error {\n cause?: unknown;\n}\n\nexport const RouteErrorBoundary = ({ error, resetErrorBoundary }: FallbackProps) => {\n const [showDetails, setShowDetails] = useState(false);\n const errorWithCause = error as ErrorWithCause;\n const hasCause = 'cause' in error && errorWithCause.cause !== undefined;\n\n return (\n <div\n role=\"alert\"\n style={{\n minHeight: '100vh',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n padding: 24,\n }}\n >\n <div style={{ maxWidth: 760, width: '100%', border: '1px solid #dde5ec', borderRadius: 10, padding: 20 }}>\n <h2 style={{ marginTop: 0 }}>出错了,请稍后再试</h2>\n <p>{isDevelopment ? error.message : '请稍后再试或联系技术支持'}</p>\n <div style={{ display: 'flex', gap: 8, marginBottom: 12 }}>\n <button\n onClick={resetErrorBoundary}\n style={{ border: 'none', background: '#2f80ed', color: '#fff', borderRadius: 6, padding: '8px 12px', cursor: 'pointer' }}\n >\n 刷新重试\n </button>\n {isDevelopment && (\n <button\n onClick={() => setShowDetails(!showDetails)}\n style={{ border: '1px solid #cfd7df', background: '#fff', borderRadius: 6, padding: '8px 12px', cursor: 'pointer' }}\n >\n {showDetails ? '收起详情' : '展开详情'}\n </button>\n )}\n </div>\n\n {isDevelopment && showDetails && (\n <div style={{ background: '#f7fafc', borderRadius: 8, padding: 12, fontSize: 12, fontFamily: 'monospace' }}>\n <div style={{ marginBottom: 10 }}><strong>错误信息:</strong>{error.message}</div>\n {error.stack && (\n <div style={{ marginBottom: 10, whiteSpace: 'pre-wrap', wordBreak: 'break-word' }}>\n <strong>堆栈:</strong>\n <br />\n {error.stack}\n </div>\n )}\n {hasCause && (\n <div><strong>原因:</strong>{errorWithCause.cause instanceof Error ? errorWithCause.cause.message : String(errorWithCause.cause)}</div>\n )}\n </div>\n )}\n </div>\n </div>\n );\n};\n"],"names":["useState","isDevelopment","process","env","NODE_ENV","RouteErrorBoundary","error","resetErrorBoundary","showDetails","setShowDetails","errorWithCause","hasCause","cause","undefined","div","role","style","minHeight","display","justifyContent","alignItems","padding","maxWidth","width","border","borderRadius","h2","marginTop","p","message","gap","marginBottom","button","onClick","background","color","cursor","fontSize","fontFamily","strong","stack","whiteSpace","wordBreak","br","Error","String"],"mappings":";AAAA,SAASA,QAAQ,QAAQ,QAAQ;AAGjC,MAAMC,gBAAgBC,QAAQC,GAAG,CAACC,QAAQ,KAAK;AAM/C,OAAO,MAAMC,qBAAqB,CAAC,EAAEC,KAAK,EAAEC,kBAAkB,EAAiB;IAC7E,MAAM,CAACC,aAAaC,eAAe,GAAGT,SAAS;IAC/C,MAAMU,iBAAiBJ;IACvB,MAAMK,WAAW,WAAWL,SAASI,eAAeE,KAAK,KAAKC;IAE9D,qBACE,KAACC;QACCC,MAAK;QACLC,OAAO;YACLC,WAAW;YACXC,SAAS;YACTC,gBAAgB;YAChBC,YAAY;YACZC,SAAS;QACX;kBAEA,cAAA,MAACP;YAAIE,OAAO;gBAAEM,UAAU;gBAAKC,OAAO;gBAAQC,QAAQ;gBAAqBC,cAAc;gBAAIJ,SAAS;YAAG;;8BACrG,KAACK;oBAAGV,OAAO;wBAAEW,WAAW;oBAAE;8BAAG;;8BAC7B,KAACC;8BAAG3B,gBAAgBK,MAAMuB,OAAO,GAAG;;8BACpC,MAACf;oBAAIE,OAAO;wBAAEE,SAAS;wBAAQY,KAAK;wBAAGC,cAAc;oBAAG;;sCACtD,KAACC;4BACCC,SAAS1B;4BACTS,OAAO;gCAAEQ,QAAQ;gCAAQU,YAAY;gCAAWC,OAAO;gCAAQV,cAAc;gCAAGJ,SAAS;gCAAYe,QAAQ;4BAAU;sCACxH;;wBAGAnC,+BACC,KAAC+B;4BACCC,SAAS,IAAMxB,eAAe,CAACD;4BAC/BQ,OAAO;gCAAEQ,QAAQ;gCAAqBU,YAAY;gCAAQT,cAAc;gCAAGJ,SAAS;gCAAYe,QAAQ;4BAAU;sCAEjH5B,cAAc,SAAS;;;;gBAK7BP,iBAAiBO,6BAChB,MAACM;oBAAIE,OAAO;wBAAEkB,YAAY;wBAAWT,cAAc;wBAAGJ,SAAS;wBAAIgB,UAAU;wBAAIC,YAAY;oBAAY;;sCACvG,MAACxB;4BAAIE,OAAO;gCAAEe,cAAc;4BAAG;;8CAAG,KAACQ;8CAAO;;gCAAejC,MAAMuB,OAAO;;;wBACrEvB,MAAMkC,KAAK,kBACV,MAAC1B;4BAAIE,OAAO;gCAAEe,cAAc;gCAAIU,YAAY;gCAAYC,WAAW;4BAAa;;8CAC9E,KAACH;8CAAO;;8CACR,KAACI;gCACArC,MAAMkC,KAAK;;;wBAGf7B,0BACC,MAACG;;8CAAI,KAACyB;8CAAO;;gCAAa7B,eAAeE,KAAK,YAAYgC,QAAQlC,eAAeE,KAAK,CAACiB,OAAO,GAAGgB,OAAOnC,eAAeE,KAAK;;;;;;;;AAO1I,EAAE"}
@@ -12,12 +12,21 @@ const _jsxruntime = require("react/jsx-runtime");
12
12
  const _react = /*#__PURE__*/ _interop_require_default(require("react"));
13
13
  const _reactrouterdom = require("react-router-dom");
14
14
  const _RouteErrorBoundary = require("./RouteErrorBoundary");
15
- const _antd = require("antd");
16
15
  function _interop_require_default(obj) {
17
16
  return obj && obj.__esModule ? obj : {
18
17
  default: obj
19
18
  };
20
19
  }
20
+ function DefaultRouteLoading() {
21
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
22
+ style: {
23
+ padding: 16,
24
+ textAlign: 'center',
25
+ color: '#5f6c7b'
26
+ },
27
+ children: "Loading..."
28
+ });
29
+ }
21
30
  const transformRoutesToReactRoutes = async (routes, transformResult, defaultRouteErrorComponent, defaultRouteLoadingComponent)=>{
22
31
  /**
23
32
  * 批量处理路由
@@ -74,12 +83,12 @@ const transformRoutesToReactRoutes = async (routes, transformResult, defaultRout
74
83
  default: module.default || module
75
84
  })));
76
85
  }
77
- // 如果没有配置默认加载组件,使用 antd 的 Spin 作为默认组件
86
+ // 如果没有配置默认加载组件,使用框架内置 Loading 组件
78
87
  // 直接导入而非懒加载,因为:
79
- // 1. Spin antd 的基础组件,体积小
88
+ // 1. 内置 Loading 组件无外部依赖
80
89
  // 2. 加载组件需要快速显示,直接导入速度更快
81
90
  // 3. 作为基础设施组件,应该保证可用性
82
- return _antd.Spin;
91
+ return DefaultRouteLoading;
83
92
  }
84
93
  // 获取加载组件
85
94
  function getLoadingComponent() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/core/router/utils/adapters/react-router/transform.tsx"],"sourcesContent":["import type { RouteConfig } from '../../../types';\nimport React from \"react\";\nimport {\n type RouteObject,\n Navigate\n} from 'react-router-dom';\nimport type { TransformRoutesResult } from '../../transform';\nimport { RouteErrorBoundary } from './RouteErrorBoundary';\nimport { Spin } from 'antd';\nimport type { ComponentImport } from '../../../types';\n\n\nexport const transformRoutesToReactRoutes = async (\n routes: RouteConfig[], \n transformResult: TransformRoutesResult,\n defaultRouteErrorComponent?: ComponentImport,\n defaultRouteLoadingComponent?: ComponentImport\n): Promise<RouteObject[]> => {\n\n /**\n * 批量处理路由\n * @param routes 路由组\n */\n function transformRouteToReactRoutes(routes: RouteConfig[]) {\n return routes.flatMap((route: RouteConfig) => transformRouteToReactRoute(route))\n }\n\n /**\n * 处理单个路由\n * @param route 路由\n */\n function transformRouteToReactRoute(route: RouteConfig): RouteObject {\n const {\n isGroup = false,\n enableRedirection = false,\n name,\n path,\n handle,\n children,\n page,\n layout,\n loading,\n errors\n } = route;\n\n // 获取错误组件\n async function getErrorComponent() {\n // 如果 errors 是函数,直接使用\n if (typeof errors === 'function') {\n return errors();\n }\n\n const errorsMap = transformResult.errors;\n\n // 判断 errors 是否为 string 且不是空字符串\n if (typeof errors === 'string' && errors !== '') {\n // 使用 errors 作为 key 获取 transformResult.errors 的值\n const errorResolver = errorsMap.get(errors);\n\n // 如果获取不到,返回 null\n if (!errorResolver) {\n return null;\n }\n\n // 如果获取到,返回对应的值(调用动态导入函数)\n if (typeof errorResolver === 'function') {\n return errorResolver();\n }\n\n return null;\n }\n\n // 如果 errors 为空,使用配置的默认错误组件或内置的 RouteErrorBoundary 组件\n if (defaultRouteErrorComponent) {\n // 如果配置了默认错误组件,使用配置的组件\n return defaultRouteErrorComponent();\n }\n\n // 如果没有配置默认错误组件,使用内置的 RouteErrorBoundary 组件\n // 直接导入而非懒加载,因为:\n // 1. RouteErrorBoundary 是框架核心组件,体积小\n // 2. 错误边界需要快速响应,直接导入速度更快\n // 3. 作为基础设施组件,应该保证可用性\n return { default: RouteErrorBoundary };\n }\n\n // 获取默认加载组件(配置的或内置的 Spin)\n function getDefaultLoadingComponent() {\n if (defaultRouteLoadingComponent) {\n // 如果配置了默认加载组件,使用 React.lazy 包装\n // 使用懒加载是因为用户可能希望自定义组件支持代码分割\n return React.lazy(() => defaultRouteLoadingComponent().then(module => ({ default: module.default || module })));\n }\n // 如果没有配置默认加载组件,使用 antd 的 Spin 作为默认组件\n // 直接导入而非懒加载,因为:\n // 1. Spin 是 antd 的基础组件,体积小\n // 2. 加载组件需要快速显示,直接导入速度更快\n // 3. 作为基础设施组件,应该保证可用性\n return Spin;\n }\n\n // 获取加载组件\n function getLoadingComponent() {\n // 如果 loading 是函数,直接使用 React.lazy 包装\n if (typeof loading === 'function') {\n return React.lazy(() => loading().then(module => ({ default: module.default || module })));\n }\n\n const loadingsMap = transformResult.loadings;\n\n // 判断 loading 是否为 string 且不是空字符串\n if (typeof loading === 'string' && loading !== '') {\n // 使用 loading 作为 key 获取 transformResult.loadings 的值\n const loadingResolver = loadingsMap.get(loading);\n\n // 如果获取不到,使用默认加载组件\n if (!loadingResolver) {\n return getDefaultLoadingComponent();\n }\n\n // 如果获取到,使用 React.lazy 包装动态导入函数\n // loadingResolver 是一个返回 Promise 的函数,Promise resolve 后的值是组件模块\n if (typeof loadingResolver === 'function') {\n return React.lazy(() => loadingResolver().then(module => ({ default: module.default || module })));\n }\n\n // 如果 loadingResolver 不是函数,使用默认加载组件\n return getDefaultLoadingComponent();\n }\n\n // 如果 loading 为空,使用默认加载组件\n return getDefaultLoadingComponent();\n }\n\n // 获取转换配置\n function convertConfig(m: any) {\n if (!m) {\n return null;\n }\n const { action, loader, shouldRevalidate, default: Component } = m;\n\n // 如果 Component 不存在,记录警告\n if (!Component) {\n console.warn(`路由组件未找到 default 导出: ${name}`, m);\n }\n\n return {\n action, // always use action\n loader, // always use loader\n shouldRevalidate,\n Component\n };\n }\n\n // 获取配置\n async function getConfig(index: boolean = false) {\n // 如果有layout和不是index,返回布局配置\n if (layout && !index) {\n // 如果 layout 是函数,直接使用\n if (typeof layout === 'function') {\n const config = await layout();\n return convertConfig(config);\n }\n\n // 如果 layout 是字符串,从 Map 中获取\n if (typeof layout === 'string') {\n const layoutResolver = transformResult.layouts.get(layout);\n if (!layoutResolver) {\n throw new Error(`未找到名为 ${layout} 的布局组件`);\n }\n const config = await layoutResolver();\n return convertConfig(config);\n }\n }\n\n let pageName = name;\n\n // 如果是notFound则转成404\n if (pageName === 'notFound') {\n pageName = '404'\n }\n\n if (page && (!children?.length || index)) {\n // 如果 page 是函数,直接使用\n if (typeof page === 'function') {\n const config = await page();\n return convertConfig(config);\n }\n\n // 如果 page 是字符串,从 Map 中获取\n if (typeof page === 'string') {\n const viewResolver = transformResult.pages.get(page);\n if (!viewResolver) {\n throw new Error(`未找到名为 ${page} 的页面组件`);\n }\n const config = await viewResolver();\n return convertConfig(config);\n }\n }\n\n return null;\n }\n\n // 获取处理信息,即额外的配置信息\n function getHandle(index: boolean = false) {\n if ((layout || isGroup) && !index) {\n return null\n }\n return {\n ...handle,\n name,\n path\n }\n }\n\n\n const reactRoute: RouteObject = {\n children: [],\n HydrateFallback: getLoadingComponent(),\n id: name,\n handle: getHandle(),\n lazy: async () => {\n const ErrorBoundary = await getErrorComponent();\n const config = await getConfig();\n\n // 如果配置为空,确保至少返回一个空对象,避免展开 undefined\n if (!config) {\n return {\n ErrorBoundary: ErrorBoundary?.default,\n };\n }\n\n return {\n ErrorBoundary: ErrorBoundary?.default,\n ...config\n };\n },\n path\n };\n\n // 处理子路由\n if (children?.length) {\n reactRoute.children = children.flatMap(child => transformRouteToReactRoute(child)).sort((a, b) => {\n const orderA = a.handle?.order ?? 99;\n const orderB = b.handle?.order ?? 99;\n return orderA - orderB;\n });\n\n if (page && !isGroup) {\n reactRoute.children.unshift({\n handle: getHandle(true),\n index: true,\n lazy: async () => {\n const ErrorBoundary = await getErrorComponent();\n return {\n ErrorBoundary: ErrorBoundary?.default,\n ...(await getConfig(true))\n };\n }\n });\n }\n\n if (enableRedirection && isGroup) {\n const [firstChild] = reactRoute.children;\n if (firstChild?.path) {\n reactRoute.children.unshift({\n index: true,\n handle: getHandle(true),\n element: <Navigate to={firstChild.path as string} replace />\n });\n }\n }\n\n }\n // 若存在 layout 且没有子路由,但同时声明了 page,则自动生成 index 子路由以渲染页面\n // 场景:/test 使用自定义 layout,且没有 children 时仍应渲染 page\n if ((!children || children.length === 0) && layout && page && !isGroup) {\n reactRoute.children = [{\n handle: getHandle(true),\n index: true,\n lazy: async () => {\n const ErrorBoundary = await getErrorComponent();\n return {\n ErrorBoundary: ErrorBoundary?.default,\n ...(await getConfig(true))\n };\n }\n }];\n }\n\n return reactRoute;\n }\n\n return transformRouteToReactRoutes(routes);\n}\n\n\n\n\n"],"names":["transformRoutesToReactRoutes","routes","transformResult","defaultRouteErrorComponent","defaultRouteLoadingComponent","transformRouteToReactRoutes","flatMap","route","transformRouteToReactRoute","isGroup","enableRedirection","name","path","handle","children","page","layout","loading","errors","getErrorComponent","errorsMap","errorResolver","get","default","RouteErrorBoundary","getDefaultLoadingComponent","React","lazy","then","module","Spin","getLoadingComponent","loadingsMap","loadings","loadingResolver","convertConfig","m","action","loader","shouldRevalidate","Component","console","warn","getConfig","index","config","layoutResolver","layouts","Error","pageName","length","viewResolver","pages","getHandle","reactRoute","HydrateFallback","id","ErrorBoundary","child","sort","a","b","orderA","order","orderB","unshift","firstChild","element","Navigate","to","replace"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../src/core/router/utils/adapters/react-router/transform.tsx"],"sourcesContent":["import type { RouteConfig } from '../../../types';\nimport React from \"react\";\nimport {\n type RouteObject,\n Navigate\n} from 'react-router-dom';\nimport type { TransformRoutesResult } from '../../transform';\nimport { RouteErrorBoundary } from './RouteErrorBoundary';\nimport type { ComponentImport } from '../../../types';\n\nfunction DefaultRouteLoading() {\n return (\n <div style={{ padding: 16, textAlign: 'center', color: '#5f6c7b' }}>\n Loading...\n </div>\n );\n}\n\n\nexport const transformRoutesToReactRoutes = async (\n routes: RouteConfig[], \n transformResult: TransformRoutesResult,\n defaultRouteErrorComponent?: ComponentImport,\n defaultRouteLoadingComponent?: ComponentImport\n): Promise<RouteObject[]> => {\n\n /**\n * 批量处理路由\n * @param routes 路由组\n */\n function transformRouteToReactRoutes(routes: RouteConfig[]) {\n return routes.flatMap((route: RouteConfig) => transformRouteToReactRoute(route))\n }\n\n /**\n * 处理单个路由\n * @param route 路由\n */\n function transformRouteToReactRoute(route: RouteConfig): RouteObject {\n const {\n isGroup = false,\n enableRedirection = false,\n name,\n path,\n handle,\n children,\n page,\n layout,\n loading,\n errors\n } = route;\n\n // 获取错误组件\n async function getErrorComponent() {\n // 如果 errors 是函数,直接使用\n if (typeof errors === 'function') {\n return errors();\n }\n\n const errorsMap = transformResult.errors;\n\n // 判断 errors 是否为 string 且不是空字符串\n if (typeof errors === 'string' && errors !== '') {\n // 使用 errors 作为 key 获取 transformResult.errors 的值\n const errorResolver = errorsMap.get(errors);\n\n // 如果获取不到,返回 null\n if (!errorResolver) {\n return null;\n }\n\n // 如果获取到,返回对应的值(调用动态导入函数)\n if (typeof errorResolver === 'function') {\n return errorResolver();\n }\n\n return null;\n }\n\n // 如果 errors 为空,使用配置的默认错误组件或内置的 RouteErrorBoundary 组件\n if (defaultRouteErrorComponent) {\n // 如果配置了默认错误组件,使用配置的组件\n return defaultRouteErrorComponent();\n }\n\n // 如果没有配置默认错误组件,使用内置的 RouteErrorBoundary 组件\n // 直接导入而非懒加载,因为:\n // 1. RouteErrorBoundary 是框架核心组件,体积小\n // 2. 错误边界需要快速响应,直接导入速度更快\n // 3. 作为基础设施组件,应该保证可用性\n return { default: RouteErrorBoundary };\n }\n\n // 获取默认加载组件(配置的或内置的 Spin)\n function getDefaultLoadingComponent() {\n if (defaultRouteLoadingComponent) {\n // 如果配置了默认加载组件,使用 React.lazy 包装\n // 使用懒加载是因为用户可能希望自定义组件支持代码分割\n return React.lazy(() => defaultRouteLoadingComponent().then(module => ({ default: module.default || module })));\n }\n // 如果没有配置默认加载组件,使用框架内置 Loading 组件\n // 直接导入而非懒加载,因为:\n // 1. 内置 Loading 组件无外部依赖\n // 2. 加载组件需要快速显示,直接导入速度更快\n // 3. 作为基础设施组件,应该保证可用性\n return DefaultRouteLoading;\n }\n\n // 获取加载组件\n function getLoadingComponent() {\n // 如果 loading 是函数,直接使用 React.lazy 包装\n if (typeof loading === 'function') {\n return React.lazy(() => loading().then(module => ({ default: module.default || module })));\n }\n\n const loadingsMap = transformResult.loadings;\n\n // 判断 loading 是否为 string 且不是空字符串\n if (typeof loading === 'string' && loading !== '') {\n // 使用 loading 作为 key 获取 transformResult.loadings 的值\n const loadingResolver = loadingsMap.get(loading);\n\n // 如果获取不到,使用默认加载组件\n if (!loadingResolver) {\n return getDefaultLoadingComponent();\n }\n\n // 如果获取到,使用 React.lazy 包装动态导入函数\n // loadingResolver 是一个返回 Promise 的函数,Promise resolve 后的值是组件模块\n if (typeof loadingResolver === 'function') {\n return React.lazy(() => loadingResolver().then(module => ({ default: module.default || module })));\n }\n\n // 如果 loadingResolver 不是函数,使用默认加载组件\n return getDefaultLoadingComponent();\n }\n\n // 如果 loading 为空,使用默认加载组件\n return getDefaultLoadingComponent();\n }\n\n // 获取转换配置\n function convertConfig(m: any) {\n if (!m) {\n return null;\n }\n const { action, loader, shouldRevalidate, default: Component } = m;\n\n // 如果 Component 不存在,记录警告\n if (!Component) {\n console.warn(`路由组件未找到 default 导出: ${name}`, m);\n }\n\n return {\n action, // always use action\n loader, // always use loader\n shouldRevalidate,\n Component\n };\n }\n\n // 获取配置\n async function getConfig(index: boolean = false) {\n // 如果有layout和不是index,返回布局配置\n if (layout && !index) {\n // 如果 layout 是函数,直接使用\n if (typeof layout === 'function') {\n const config = await layout();\n return convertConfig(config);\n }\n\n // 如果 layout 是字符串,从 Map 中获取\n if (typeof layout === 'string') {\n const layoutResolver = transformResult.layouts.get(layout);\n if (!layoutResolver) {\n throw new Error(`未找到名为 ${layout} 的布局组件`);\n }\n const config = await layoutResolver();\n return convertConfig(config);\n }\n }\n\n let pageName = name;\n\n // 如果是notFound则转成404\n if (pageName === 'notFound') {\n pageName = '404'\n }\n\n if (page && (!children?.length || index)) {\n // 如果 page 是函数,直接使用\n if (typeof page === 'function') {\n const config = await page();\n return convertConfig(config);\n }\n\n // 如果 page 是字符串,从 Map 中获取\n if (typeof page === 'string') {\n const viewResolver = transformResult.pages.get(page);\n if (!viewResolver) {\n throw new Error(`未找到名为 ${page} 的页面组件`);\n }\n const config = await viewResolver();\n return convertConfig(config);\n }\n }\n\n return null;\n }\n\n // 获取处理信息,即额外的配置信息\n function getHandle(index: boolean = false) {\n if ((layout || isGroup) && !index) {\n return null\n }\n return {\n ...handle,\n name,\n path\n }\n }\n\n\n const reactRoute: RouteObject = {\n children: [],\n HydrateFallback: getLoadingComponent(),\n id: name,\n handle: getHandle(),\n lazy: async () => {\n const ErrorBoundary = await getErrorComponent();\n const config = await getConfig();\n\n // 如果配置为空,确保至少返回一个空对象,避免展开 undefined\n if (!config) {\n return {\n ErrorBoundary: ErrorBoundary?.default,\n };\n }\n\n return {\n ErrorBoundary: ErrorBoundary?.default,\n ...config\n };\n },\n path\n };\n\n // 处理子路由\n if (children?.length) {\n reactRoute.children = children.flatMap(child => transformRouteToReactRoute(child)).sort((a, b) => {\n const orderA = a.handle?.order ?? 99;\n const orderB = b.handle?.order ?? 99;\n return orderA - orderB;\n });\n\n if (page && !isGroup) {\n reactRoute.children.unshift({\n handle: getHandle(true),\n index: true,\n lazy: async () => {\n const ErrorBoundary = await getErrorComponent();\n return {\n ErrorBoundary: ErrorBoundary?.default,\n ...(await getConfig(true))\n };\n }\n });\n }\n\n if (enableRedirection && isGroup) {\n const [firstChild] = reactRoute.children;\n if (firstChild?.path) {\n reactRoute.children.unshift({\n index: true,\n handle: getHandle(true),\n element: <Navigate to={firstChild.path as string} replace />\n });\n }\n }\n\n }\n // 若存在 layout 且没有子路由,但同时声明了 page,则自动生成 index 子路由以渲染页面\n // 场景:/test 使用自定义 layout,且没有 children 时仍应渲染 page\n if ((!children || children.length === 0) && layout && page && !isGroup) {\n reactRoute.children = [{\n handle: getHandle(true),\n index: true,\n lazy: async () => {\n const ErrorBoundary = await getErrorComponent();\n return {\n ErrorBoundary: ErrorBoundary?.default,\n ...(await getConfig(true))\n };\n }\n }];\n }\n\n return reactRoute;\n }\n\n return transformRouteToReactRoutes(routes);\n}\n\n\n\n"],"names":["transformRoutesToReactRoutes","DefaultRouteLoading","div","style","padding","textAlign","color","routes","transformResult","defaultRouteErrorComponent","defaultRouteLoadingComponent","transformRouteToReactRoutes","flatMap","route","transformRouteToReactRoute","isGroup","enableRedirection","name","path","handle","children","page","layout","loading","errors","getErrorComponent","errorsMap","errorResolver","get","default","RouteErrorBoundary","getDefaultLoadingComponent","React","lazy","then","module","getLoadingComponent","loadingsMap","loadings","loadingResolver","convertConfig","m","action","loader","shouldRevalidate","Component","console","warn","getConfig","index","config","layoutResolver","layouts","Error","pageName","length","viewResolver","pages","getHandle","reactRoute","HydrateFallback","id","ErrorBoundary","child","sort","a","b","orderA","order","orderB","unshift","firstChild","element","Navigate","to","replace"],"mappings":"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"}
@@ -3,4 +3,3 @@ import { type RouteObject } from 'react-router-dom';
3
3
  import type { TransformRoutesResult } from '../../transform';
4
4
  import type { ComponentImport } from '../../../types';
5
5
  export declare const transformRoutesToReactRoutes: (routes: RouteConfig[], transformResult: TransformRoutesResult, defaultRouteErrorComponent?: ComponentImport, defaultRouteLoadingComponent?: ComponentImport) => Promise<RouteObject[]>;
6
- //# sourceMappingURL=transform.d.ts.map
@@ -2,7 +2,16 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import React from "react";
3
3
  import { Navigate } from "react-router-dom";
4
4
  import { RouteErrorBoundary } from "./RouteErrorBoundary";
5
- import { Spin } from "antd";
5
+ function DefaultRouteLoading() {
6
+ return /*#__PURE__*/ _jsx("div", {
7
+ style: {
8
+ padding: 16,
9
+ textAlign: 'center',
10
+ color: '#5f6c7b'
11
+ },
12
+ children: "Loading..."
13
+ });
14
+ }
6
15
  export const transformRoutesToReactRoutes = async (routes, transformResult, defaultRouteErrorComponent, defaultRouteLoadingComponent)=>{
7
16
  /**
8
17
  * 批量处理路由
@@ -59,12 +68,12 @@ export const transformRoutesToReactRoutes = async (routes, transformResult, defa
59
68
  default: module.default || module
60
69
  })));
61
70
  }
62
- // 如果没有配置默认加载组件,使用 antd 的 Spin 作为默认组件
71
+ // 如果没有配置默认加载组件,使用框架内置 Loading 组件
63
72
  // 直接导入而非懒加载,因为:
64
- // 1. Spin antd 的基础组件,体积小
73
+ // 1. 内置 Loading 组件无外部依赖
65
74
  // 2. 加载组件需要快速显示,直接导入速度更快
66
75
  // 3. 作为基础设施组件,应该保证可用性
67
- return Spin;
76
+ return DefaultRouteLoading;
68
77
  }
69
78
  // 获取加载组件
70
79
  function getLoadingComponent() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/core/router/utils/adapters/react-router/transform.tsx"],"sourcesContent":["import type { RouteConfig } from '../../../types';\nimport React from \"react\";\nimport {\n type RouteObject,\n Navigate\n} from 'react-router-dom';\nimport type { TransformRoutesResult } from '../../transform';\nimport { RouteErrorBoundary } from './RouteErrorBoundary';\nimport { Spin } from 'antd';\nimport type { ComponentImport } from '../../../types';\n\n\nexport const transformRoutesToReactRoutes = async (\n routes: RouteConfig[], \n transformResult: TransformRoutesResult,\n defaultRouteErrorComponent?: ComponentImport,\n defaultRouteLoadingComponent?: ComponentImport\n): Promise<RouteObject[]> => {\n\n /**\n * 批量处理路由\n * @param routes 路由组\n */\n function transformRouteToReactRoutes(routes: RouteConfig[]) {\n return routes.flatMap((route: RouteConfig) => transformRouteToReactRoute(route))\n }\n\n /**\n * 处理单个路由\n * @param route 路由\n */\n function transformRouteToReactRoute(route: RouteConfig): RouteObject {\n const {\n isGroup = false,\n enableRedirection = false,\n name,\n path,\n handle,\n children,\n page,\n layout,\n loading,\n errors\n } = route;\n\n // 获取错误组件\n async function getErrorComponent() {\n // 如果 errors 是函数,直接使用\n if (typeof errors === 'function') {\n return errors();\n }\n\n const errorsMap = transformResult.errors;\n\n // 判断 errors 是否为 string 且不是空字符串\n if (typeof errors === 'string' && errors !== '') {\n // 使用 errors 作为 key 获取 transformResult.errors 的值\n const errorResolver = errorsMap.get(errors);\n\n // 如果获取不到,返回 null\n if (!errorResolver) {\n return null;\n }\n\n // 如果获取到,返回对应的值(调用动态导入函数)\n if (typeof errorResolver === 'function') {\n return errorResolver();\n }\n\n return null;\n }\n\n // 如果 errors 为空,使用配置的默认错误组件或内置的 RouteErrorBoundary 组件\n if (defaultRouteErrorComponent) {\n // 如果配置了默认错误组件,使用配置的组件\n return defaultRouteErrorComponent();\n }\n\n // 如果没有配置默认错误组件,使用内置的 RouteErrorBoundary 组件\n // 直接导入而非懒加载,因为:\n // 1. RouteErrorBoundary 是框架核心组件,体积小\n // 2. 错误边界需要快速响应,直接导入速度更快\n // 3. 作为基础设施组件,应该保证可用性\n return { default: RouteErrorBoundary };\n }\n\n // 获取默认加载组件(配置的或内置的 Spin)\n function getDefaultLoadingComponent() {\n if (defaultRouteLoadingComponent) {\n // 如果配置了默认加载组件,使用 React.lazy 包装\n // 使用懒加载是因为用户可能希望自定义组件支持代码分割\n return React.lazy(() => defaultRouteLoadingComponent().then(module => ({ default: module.default || module })));\n }\n // 如果没有配置默认加载组件,使用 antd 的 Spin 作为默认组件\n // 直接导入而非懒加载,因为:\n // 1. Spin 是 antd 的基础组件,体积小\n // 2. 加载组件需要快速显示,直接导入速度更快\n // 3. 作为基础设施组件,应该保证可用性\n return Spin;\n }\n\n // 获取加载组件\n function getLoadingComponent() {\n // 如果 loading 是函数,直接使用 React.lazy 包装\n if (typeof loading === 'function') {\n return React.lazy(() => loading().then(module => ({ default: module.default || module })));\n }\n\n const loadingsMap = transformResult.loadings;\n\n // 判断 loading 是否为 string 且不是空字符串\n if (typeof loading === 'string' && loading !== '') {\n // 使用 loading 作为 key 获取 transformResult.loadings 的值\n const loadingResolver = loadingsMap.get(loading);\n\n // 如果获取不到,使用默认加载组件\n if (!loadingResolver) {\n return getDefaultLoadingComponent();\n }\n\n // 如果获取到,使用 React.lazy 包装动态导入函数\n // loadingResolver 是一个返回 Promise 的函数,Promise resolve 后的值是组件模块\n if (typeof loadingResolver === 'function') {\n return React.lazy(() => loadingResolver().then(module => ({ default: module.default || module })));\n }\n\n // 如果 loadingResolver 不是函数,使用默认加载组件\n return getDefaultLoadingComponent();\n }\n\n // 如果 loading 为空,使用默认加载组件\n return getDefaultLoadingComponent();\n }\n\n // 获取转换配置\n function convertConfig(m: any) {\n if (!m) {\n return null;\n }\n const { action, loader, shouldRevalidate, default: Component } = m;\n\n // 如果 Component 不存在,记录警告\n if (!Component) {\n console.warn(`路由组件未找到 default 导出: ${name}`, m);\n }\n\n return {\n action, // always use action\n loader, // always use loader\n shouldRevalidate,\n Component\n };\n }\n\n // 获取配置\n async function getConfig(index: boolean = false) {\n // 如果有layout和不是index,返回布局配置\n if (layout && !index) {\n // 如果 layout 是函数,直接使用\n if (typeof layout === 'function') {\n const config = await layout();\n return convertConfig(config);\n }\n\n // 如果 layout 是字符串,从 Map 中获取\n if (typeof layout === 'string') {\n const layoutResolver = transformResult.layouts.get(layout);\n if (!layoutResolver) {\n throw new Error(`未找到名为 ${layout} 的布局组件`);\n }\n const config = await layoutResolver();\n return convertConfig(config);\n }\n }\n\n let pageName = name;\n\n // 如果是notFound则转成404\n if (pageName === 'notFound') {\n pageName = '404'\n }\n\n if (page && (!children?.length || index)) {\n // 如果 page 是函数,直接使用\n if (typeof page === 'function') {\n const config = await page();\n return convertConfig(config);\n }\n\n // 如果 page 是字符串,从 Map 中获取\n if (typeof page === 'string') {\n const viewResolver = transformResult.pages.get(page);\n if (!viewResolver) {\n throw new Error(`未找到名为 ${page} 的页面组件`);\n }\n const config = await viewResolver();\n return convertConfig(config);\n }\n }\n\n return null;\n }\n\n // 获取处理信息,即额外的配置信息\n function getHandle(index: boolean = false) {\n if ((layout || isGroup) && !index) {\n return null\n }\n return {\n ...handle,\n name,\n path\n }\n }\n\n\n const reactRoute: RouteObject = {\n children: [],\n HydrateFallback: getLoadingComponent(),\n id: name,\n handle: getHandle(),\n lazy: async () => {\n const ErrorBoundary = await getErrorComponent();\n const config = await getConfig();\n\n // 如果配置为空,确保至少返回一个空对象,避免展开 undefined\n if (!config) {\n return {\n ErrorBoundary: ErrorBoundary?.default,\n };\n }\n\n return {\n ErrorBoundary: ErrorBoundary?.default,\n ...config\n };\n },\n path\n };\n\n // 处理子路由\n if (children?.length) {\n reactRoute.children = children.flatMap(child => transformRouteToReactRoute(child)).sort((a, b) => {\n const orderA = a.handle?.order ?? 99;\n const orderB = b.handle?.order ?? 99;\n return orderA - orderB;\n });\n\n if (page && !isGroup) {\n reactRoute.children.unshift({\n handle: getHandle(true),\n index: true,\n lazy: async () => {\n const ErrorBoundary = await getErrorComponent();\n return {\n ErrorBoundary: ErrorBoundary?.default,\n ...(await getConfig(true))\n };\n }\n });\n }\n\n if (enableRedirection && isGroup) {\n const [firstChild] = reactRoute.children;\n if (firstChild?.path) {\n reactRoute.children.unshift({\n index: true,\n handle: getHandle(true),\n element: <Navigate to={firstChild.path as string} replace />\n });\n }\n }\n\n }\n // 若存在 layout 且没有子路由,但同时声明了 page,则自动生成 index 子路由以渲染页面\n // 场景:/test 使用自定义 layout,且没有 children 时仍应渲染 page\n if ((!children || children.length === 0) && layout && page && !isGroup) {\n reactRoute.children = [{\n handle: getHandle(true),\n index: true,\n lazy: async () => {\n const ErrorBoundary = await getErrorComponent();\n return {\n ErrorBoundary: ErrorBoundary?.default,\n ...(await getConfig(true))\n };\n }\n }];\n }\n\n return reactRoute;\n }\n\n return transformRouteToReactRoutes(routes);\n}\n\n\n\n\n"],"names":["React","Navigate","RouteErrorBoundary","Spin","transformRoutesToReactRoutes","routes","transformResult","defaultRouteErrorComponent","defaultRouteLoadingComponent","transformRouteToReactRoutes","flatMap","route","transformRouteToReactRoute","isGroup","enableRedirection","name","path","handle","children","page","layout","loading","errors","getErrorComponent","errorsMap","errorResolver","get","default","getDefaultLoadingComponent","lazy","then","module","getLoadingComponent","loadingsMap","loadings","loadingResolver","convertConfig","m","action","loader","shouldRevalidate","Component","console","warn","getConfig","index","config","layoutResolver","layouts","Error","pageName","length","viewResolver","pages","getHandle","reactRoute","HydrateFallback","id","ErrorBoundary","child","sort","a","b","orderA","order","orderB","unshift","firstChild","element","to","replace"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../src/core/router/utils/adapters/react-router/transform.tsx"],"sourcesContent":["import type { RouteConfig } from '../../../types';\nimport React from \"react\";\nimport {\n type RouteObject,\n Navigate\n} from 'react-router-dom';\nimport type { TransformRoutesResult } from '../../transform';\nimport { RouteErrorBoundary } from './RouteErrorBoundary';\nimport type { ComponentImport } from '../../../types';\n\nfunction DefaultRouteLoading() {\n return (\n <div style={{ padding: 16, textAlign: 'center', color: '#5f6c7b' }}>\n Loading...\n </div>\n );\n}\n\n\nexport const transformRoutesToReactRoutes = async (\n routes: RouteConfig[], \n transformResult: TransformRoutesResult,\n defaultRouteErrorComponent?: ComponentImport,\n defaultRouteLoadingComponent?: ComponentImport\n): Promise<RouteObject[]> => {\n\n /**\n * 批量处理路由\n * @param routes 路由组\n */\n function transformRouteToReactRoutes(routes: RouteConfig[]) {\n return routes.flatMap((route: RouteConfig) => transformRouteToReactRoute(route))\n }\n\n /**\n * 处理单个路由\n * @param route 路由\n */\n function transformRouteToReactRoute(route: RouteConfig): RouteObject {\n const {\n isGroup = false,\n enableRedirection = false,\n name,\n path,\n handle,\n children,\n page,\n layout,\n loading,\n errors\n } = route;\n\n // 获取错误组件\n async function getErrorComponent() {\n // 如果 errors 是函数,直接使用\n if (typeof errors === 'function') {\n return errors();\n }\n\n const errorsMap = transformResult.errors;\n\n // 判断 errors 是否为 string 且不是空字符串\n if (typeof errors === 'string' && errors !== '') {\n // 使用 errors 作为 key 获取 transformResult.errors 的值\n const errorResolver = errorsMap.get(errors);\n\n // 如果获取不到,返回 null\n if (!errorResolver) {\n return null;\n }\n\n // 如果获取到,返回对应的值(调用动态导入函数)\n if (typeof errorResolver === 'function') {\n return errorResolver();\n }\n\n return null;\n }\n\n // 如果 errors 为空,使用配置的默认错误组件或内置的 RouteErrorBoundary 组件\n if (defaultRouteErrorComponent) {\n // 如果配置了默认错误组件,使用配置的组件\n return defaultRouteErrorComponent();\n }\n\n // 如果没有配置默认错误组件,使用内置的 RouteErrorBoundary 组件\n // 直接导入而非懒加载,因为:\n // 1. RouteErrorBoundary 是框架核心组件,体积小\n // 2. 错误边界需要快速响应,直接导入速度更快\n // 3. 作为基础设施组件,应该保证可用性\n return { default: RouteErrorBoundary };\n }\n\n // 获取默认加载组件(配置的或内置的 Spin)\n function getDefaultLoadingComponent() {\n if (defaultRouteLoadingComponent) {\n // 如果配置了默认加载组件,使用 React.lazy 包装\n // 使用懒加载是因为用户可能希望自定义组件支持代码分割\n return React.lazy(() => defaultRouteLoadingComponent().then(module => ({ default: module.default || module })));\n }\n // 如果没有配置默认加载组件,使用框架内置 Loading 组件\n // 直接导入而非懒加载,因为:\n // 1. 内置 Loading 组件无外部依赖\n // 2. 加载组件需要快速显示,直接导入速度更快\n // 3. 作为基础设施组件,应该保证可用性\n return DefaultRouteLoading;\n }\n\n // 获取加载组件\n function getLoadingComponent() {\n // 如果 loading 是函数,直接使用 React.lazy 包装\n if (typeof loading === 'function') {\n return React.lazy(() => loading().then(module => ({ default: module.default || module })));\n }\n\n const loadingsMap = transformResult.loadings;\n\n // 判断 loading 是否为 string 且不是空字符串\n if (typeof loading === 'string' && loading !== '') {\n // 使用 loading 作为 key 获取 transformResult.loadings 的值\n const loadingResolver = loadingsMap.get(loading);\n\n // 如果获取不到,使用默认加载组件\n if (!loadingResolver) {\n return getDefaultLoadingComponent();\n }\n\n // 如果获取到,使用 React.lazy 包装动态导入函数\n // loadingResolver 是一个返回 Promise 的函数,Promise resolve 后的值是组件模块\n if (typeof loadingResolver === 'function') {\n return React.lazy(() => loadingResolver().then(module => ({ default: module.default || module })));\n }\n\n // 如果 loadingResolver 不是函数,使用默认加载组件\n return getDefaultLoadingComponent();\n }\n\n // 如果 loading 为空,使用默认加载组件\n return getDefaultLoadingComponent();\n }\n\n // 获取转换配置\n function convertConfig(m: any) {\n if (!m) {\n return null;\n }\n const { action, loader, shouldRevalidate, default: Component } = m;\n\n // 如果 Component 不存在,记录警告\n if (!Component) {\n console.warn(`路由组件未找到 default 导出: ${name}`, m);\n }\n\n return {\n action, // always use action\n loader, // always use loader\n shouldRevalidate,\n Component\n };\n }\n\n // 获取配置\n async function getConfig(index: boolean = false) {\n // 如果有layout和不是index,返回布局配置\n if (layout && !index) {\n // 如果 layout 是函数,直接使用\n if (typeof layout === 'function') {\n const config = await layout();\n return convertConfig(config);\n }\n\n // 如果 layout 是字符串,从 Map 中获取\n if (typeof layout === 'string') {\n const layoutResolver = transformResult.layouts.get(layout);\n if (!layoutResolver) {\n throw new Error(`未找到名为 ${layout} 的布局组件`);\n }\n const config = await layoutResolver();\n return convertConfig(config);\n }\n }\n\n let pageName = name;\n\n // 如果是notFound则转成404\n if (pageName === 'notFound') {\n pageName = '404'\n }\n\n if (page && (!children?.length || index)) {\n // 如果 page 是函数,直接使用\n if (typeof page === 'function') {\n const config = await page();\n return convertConfig(config);\n }\n\n // 如果 page 是字符串,从 Map 中获取\n if (typeof page === 'string') {\n const viewResolver = transformResult.pages.get(page);\n if (!viewResolver) {\n throw new Error(`未找到名为 ${page} 的页面组件`);\n }\n const config = await viewResolver();\n return convertConfig(config);\n }\n }\n\n return null;\n }\n\n // 获取处理信息,即额外的配置信息\n function getHandle(index: boolean = false) {\n if ((layout || isGroup) && !index) {\n return null\n }\n return {\n ...handle,\n name,\n path\n }\n }\n\n\n const reactRoute: RouteObject = {\n children: [],\n HydrateFallback: getLoadingComponent(),\n id: name,\n handle: getHandle(),\n lazy: async () => {\n const ErrorBoundary = await getErrorComponent();\n const config = await getConfig();\n\n // 如果配置为空,确保至少返回一个空对象,避免展开 undefined\n if (!config) {\n return {\n ErrorBoundary: ErrorBoundary?.default,\n };\n }\n\n return {\n ErrorBoundary: ErrorBoundary?.default,\n ...config\n };\n },\n path\n };\n\n // 处理子路由\n if (children?.length) {\n reactRoute.children = children.flatMap(child => transformRouteToReactRoute(child)).sort((a, b) => {\n const orderA = a.handle?.order ?? 99;\n const orderB = b.handle?.order ?? 99;\n return orderA - orderB;\n });\n\n if (page && !isGroup) {\n reactRoute.children.unshift({\n handle: getHandle(true),\n index: true,\n lazy: async () => {\n const ErrorBoundary = await getErrorComponent();\n return {\n ErrorBoundary: ErrorBoundary?.default,\n ...(await getConfig(true))\n };\n }\n });\n }\n\n if (enableRedirection && isGroup) {\n const [firstChild] = reactRoute.children;\n if (firstChild?.path) {\n reactRoute.children.unshift({\n index: true,\n handle: getHandle(true),\n element: <Navigate to={firstChild.path as string} replace />\n });\n }\n }\n\n }\n // 若存在 layout 且没有子路由,但同时声明了 page,则自动生成 index 子路由以渲染页面\n // 场景:/test 使用自定义 layout,且没有 children 时仍应渲染 page\n if ((!children || children.length === 0) && layout && page && !isGroup) {\n reactRoute.children = [{\n handle: getHandle(true),\n index: true,\n lazy: async () => {\n const ErrorBoundary = await getErrorComponent();\n return {\n ErrorBoundary: ErrorBoundary?.default,\n ...(await getConfig(true))\n };\n }\n }];\n }\n\n return reactRoute;\n }\n\n return transformRouteToReactRoutes(routes);\n}\n\n\n\n"],"names":["React","Navigate","RouteErrorBoundary","DefaultRouteLoading","div","style","padding","textAlign","color","transformRoutesToReactRoutes","routes","transformResult","defaultRouteErrorComponent","defaultRouteLoadingComponent","transformRouteToReactRoutes","flatMap","route","transformRouteToReactRoute","isGroup","enableRedirection","name","path","handle","children","page","layout","loading","errors","getErrorComponent","errorsMap","errorResolver","get","default","getDefaultLoadingComponent","lazy","then","module","getLoadingComponent","loadingsMap","loadings","loadingResolver","convertConfig","m","action","loader","shouldRevalidate","Component","console","warn","getConfig","index","config","layoutResolver","layouts","Error","pageName","length","viewResolver","pages","getHandle","reactRoute","HydrateFallback","id","ErrorBoundary","child","sort","a","b","orderA","order","orderB","unshift","firstChild","element","to","replace"],"mappings":"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"}
@@ -390,7 +390,7 @@ const NULL_BYTE_REGEX = /%00|\\0|\x00/;
390
390
  */ function createDynamicImport(path) {
391
391
  // 使用类型断言,因为 TypeScript 的 import() 需要静态字符串
392
392
  // 但在运行时,我们可以使用动态路径
393
- return ()=>Promise.resolve(path).then((p)=>/*#__PURE__*/ _interop_require_wildcard(require(p)));
393
+ return ()=>Promise.resolve(/* @vite-ignore */ path).then((p)=>/*#__PURE__*/ _interop_require_wildcard(require(p)));
394
394
  }
395
395
  /**
396
396
  * 提取并验证组件路径到 Map 中