@vlian/framework 1.0.0

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 (795) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +130 -0
  3. package/dist/components/index.cjs +6 -0
  4. package/dist/components/index.cjs.map +1 -0
  5. package/dist/components/index.d.ts +2 -0
  6. package/dist/components/index.d.ts.map +1 -0
  7. package/dist/components/index.js +3 -0
  8. package/dist/components/index.js.map +1 -0
  9. package/dist/core/Test.cjs +66 -0
  10. package/dist/core/Test.cjs.map +1 -0
  11. package/dist/core/Test.d.ts +6 -0
  12. package/dist/core/Test.d.ts.map +1 -0
  13. package/dist/core/Test.js +15 -0
  14. package/dist/core/Test.js.map +1 -0
  15. package/dist/core/app/AppContext.cjs +344 -0
  16. package/dist/core/app/AppContext.cjs.map +1 -0
  17. package/dist/core/app/AppContext.d.ts +110 -0
  18. package/dist/core/app/AppContext.d.ts.map +1 -0
  19. package/dist/core/app/AppContext.js +333 -0
  20. package/dist/core/app/AppContext.js.map +1 -0
  21. package/dist/core/app/AppContext.types.cjs +6 -0
  22. package/dist/core/app/AppContext.types.cjs.map +1 -0
  23. package/dist/core/app/AppContext.types.d.ts +147 -0
  24. package/dist/core/app/AppContext.types.d.ts.map +1 -0
  25. package/dist/core/app/AppContext.types.js +5 -0
  26. package/dist/core/app/AppContext.types.js.map +1 -0
  27. package/dist/core/app/BasicLayout.cjs +89 -0
  28. package/dist/core/app/BasicLayout.cjs.map +1 -0
  29. package/dist/core/app/BasicLayout.d.ts +13 -0
  30. package/dist/core/app/BasicLayout.d.ts.map +1 -0
  31. package/dist/core/app/BasicLayout.js +39 -0
  32. package/dist/core/app/BasicLayout.js.map +1 -0
  33. package/dist/core/app/DefaultApp.cjs +201 -0
  34. package/dist/core/app/DefaultApp.cjs.map +1 -0
  35. package/dist/core/app/DefaultApp.d.ts +31 -0
  36. package/dist/core/app/DefaultApp.d.ts.map +1 -0
  37. package/dist/core/app/DefaultApp.js +192 -0
  38. package/dist/core/app/DefaultApp.js.map +1 -0
  39. package/dist/core/app/index.cjs +43 -0
  40. package/dist/core/app/index.cjs.map +1 -0
  41. package/dist/core/app/index.d.ts +9 -0
  42. package/dist/core/app/index.d.ts.map +1 -0
  43. package/dist/core/app/index.js +7 -0
  44. package/dist/core/app/index.js.map +1 -0
  45. package/dist/core/config/AppConfig.cjs +141 -0
  46. package/dist/core/config/AppConfig.cjs.map +1 -0
  47. package/dist/core/config/AppConfig.d.ts +89 -0
  48. package/dist/core/config/AppConfig.d.ts.map +1 -0
  49. package/dist/core/config/AppConfig.js +133 -0
  50. package/dist/core/config/AppConfig.js.map +1 -0
  51. package/dist/core/config/ConfigLoader.cjs +243 -0
  52. package/dist/core/config/ConfigLoader.cjs.map +1 -0
  53. package/dist/core/config/ConfigLoader.d.ts +103 -0
  54. package/dist/core/config/ConfigLoader.d.ts.map +1 -0
  55. package/dist/core/config/ConfigLoader.js +229 -0
  56. package/dist/core/config/ConfigLoader.js.map +1 -0
  57. package/dist/core/config/ConfigValidator.cjs +135 -0
  58. package/dist/core/config/ConfigValidator.cjs.map +1 -0
  59. package/dist/core/config/ConfigValidator.d.ts +85 -0
  60. package/dist/core/config/ConfigValidator.d.ts.map +1 -0
  61. package/dist/core/config/ConfigValidator.js +121 -0
  62. package/dist/core/config/ConfigValidator.js.map +1 -0
  63. package/dist/core/config/index.cjs +30 -0
  64. package/dist/core/config/index.cjs.map +1 -0
  65. package/dist/core/config/index.d.ts +7 -0
  66. package/dist/core/config/index.d.ts.map +1 -0
  67. package/dist/core/config/index.js +7 -0
  68. package/dist/core/config/index.js.map +1 -0
  69. package/dist/core/dev/DevTools.cjs +374 -0
  70. package/dist/core/dev/DevTools.cjs.map +1 -0
  71. package/dist/core/dev/DevTools.d.ts +47 -0
  72. package/dist/core/dev/DevTools.d.ts.map +1 -0
  73. package/dist/core/dev/DevTools.js +363 -0
  74. package/dist/core/dev/DevTools.js.map +1 -0
  75. package/dist/core/error/ErrorBoundary.cjs +331 -0
  76. package/dist/core/error/ErrorBoundary.cjs.map +1 -0
  77. package/dist/core/error/ErrorBoundary.d.ts +123 -0
  78. package/dist/core/error/ErrorBoundary.d.ts.map +1 -0
  79. package/dist/core/error/ErrorBoundary.js +327 -0
  80. package/dist/core/error/ErrorBoundary.js.map +1 -0
  81. package/dist/core/error/index.cjs +26 -0
  82. package/dist/core/error/index.cjs.map +1 -0
  83. package/dist/core/error/index.d.ts +6 -0
  84. package/dist/core/error/index.d.ts.map +1 -0
  85. package/dist/core/error/index.js +5 -0
  86. package/dist/core/error/index.js.map +1 -0
  87. package/dist/core/index.cjs +140 -0
  88. package/dist/core/index.cjs.map +1 -0
  89. package/dist/core/index.d.ts +53 -0
  90. package/dist/core/index.d.ts.map +1 -0
  91. package/dist/core/index.js +66 -0
  92. package/dist/core/index.js.map +1 -0
  93. package/dist/core/initialization/InitializationErrorThrower.cjs +77 -0
  94. package/dist/core/initialization/InitializationErrorThrower.cjs.map +1 -0
  95. package/dist/core/initialization/InitializationErrorThrower.d.ts +8 -0
  96. package/dist/core/initialization/InitializationErrorThrower.d.ts.map +1 -0
  97. package/dist/core/initialization/InitializationErrorThrower.js +30 -0
  98. package/dist/core/initialization/InitializationErrorThrower.js.map +1 -0
  99. package/dist/core/initialization/index.cjs +28 -0
  100. package/dist/core/initialization/index.cjs.map +1 -0
  101. package/dist/core/initialization/index.d.ts +8 -0
  102. package/dist/core/initialization/index.d.ts.map +1 -0
  103. package/dist/core/initialization/index.js +7 -0
  104. package/dist/core/initialization/index.js.map +1 -0
  105. package/dist/core/initialization/initialization.cjs +211 -0
  106. package/dist/core/initialization/initialization.cjs.map +1 -0
  107. package/dist/core/initialization/initialization.d.ts +127 -0
  108. package/dist/core/initialization/initialization.d.ts.map +1 -0
  109. package/dist/core/initialization/initialization.js +224 -0
  110. package/dist/core/initialization/initialization.js.map +1 -0
  111. package/dist/core/initialization/initializationErrorState.cjs +68 -0
  112. package/dist/core/initialization/initializationErrorState.cjs.map +1 -0
  113. package/dist/core/initialization/initializationErrorState.d.ts +36 -0
  114. package/dist/core/initialization/initializationErrorState.d.ts.map +1 -0
  115. package/dist/core/initialization/initializationErrorState.js +60 -0
  116. package/dist/core/initialization/initializationErrorState.js.map +1 -0
  117. package/dist/core/middleware.cjs +75 -0
  118. package/dist/core/middleware.cjs.map +1 -0
  119. package/dist/core/middleware.d.ts +37 -0
  120. package/dist/core/middleware.d.ts.map +1 -0
  121. package/dist/core/middleware.js +61 -0
  122. package/dist/core/middleware.js.map +1 -0
  123. package/dist/core/plugin/PluginEventBus.cjs +300 -0
  124. package/dist/core/plugin/PluginEventBus.cjs.map +1 -0
  125. package/dist/core/plugin/PluginEventBus.d.ts +170 -0
  126. package/dist/core/plugin/PluginEventBus.d.ts.map +1 -0
  127. package/dist/core/plugin/PluginEventBus.js +286 -0
  128. package/dist/core/plugin/PluginEventBus.js.map +1 -0
  129. package/dist/core/plugin/PluginSandbox.cjs +139 -0
  130. package/dist/core/plugin/PluginSandbox.cjs.map +1 -0
  131. package/dist/core/plugin/PluginSandbox.d.ts +102 -0
  132. package/dist/core/plugin/PluginSandbox.d.ts.map +1 -0
  133. package/dist/core/plugin/PluginSandbox.js +125 -0
  134. package/dist/core/plugin/PluginSandbox.js.map +1 -0
  135. package/dist/core/plugin.cjs +496 -0
  136. package/dist/core/plugin.cjs.map +1 -0
  137. package/dist/core/plugin.d.ts +221 -0
  138. package/dist/core/plugin.d.ts.map +1 -0
  139. package/dist/core/plugin.js +438 -0
  140. package/dist/core/plugin.js.map +1 -0
  141. package/dist/core/router/RouterManager.cjs +239 -0
  142. package/dist/core/router/RouterManager.cjs.map +1 -0
  143. package/dist/core/router/RouterManager.d.ts +83 -0
  144. package/dist/core/router/RouterManager.d.ts.map +1 -0
  145. package/dist/core/router/RouterManager.js +223 -0
  146. package/dist/core/router/RouterManager.js.map +1 -0
  147. package/dist/core/router/adapter/AdapterManager.cjs +237 -0
  148. package/dist/core/router/adapter/AdapterManager.cjs.map +1 -0
  149. package/dist/core/router/adapter/AdapterManager.d.ts +95 -0
  150. package/dist/core/router/adapter/AdapterManager.d.ts.map +1 -0
  151. package/dist/core/router/adapter/AdapterManager.js +221 -0
  152. package/dist/core/router/adapter/AdapterManager.js.map +1 -0
  153. package/dist/core/router/adapter/index.cjs +24 -0
  154. package/dist/core/router/adapter/index.cjs.map +1 -0
  155. package/dist/core/router/adapter/index.d.ts +7 -0
  156. package/dist/core/router/adapter/index.d.ts.map +1 -0
  157. package/dist/core/router/adapter/index.js +7 -0
  158. package/dist/core/router/adapter/index.js.map +1 -0
  159. package/dist/core/router/adapter/react-router/ReactRouterAdapter.cjs +130 -0
  160. package/dist/core/router/adapter/react-router/ReactRouterAdapter.cjs.map +1 -0
  161. package/dist/core/router/adapter/react-router/ReactRouterAdapter.d.ts +44 -0
  162. package/dist/core/router/adapter/react-router/ReactRouterAdapter.d.ts.map +1 -0
  163. package/dist/core/router/adapter/react-router/ReactRouterAdapter.js +116 -0
  164. package/dist/core/router/adapter/react-router/ReactRouterAdapter.js.map +1 -0
  165. package/dist/core/router/adapter/react-router/index.cjs +22 -0
  166. package/dist/core/router/adapter/react-router/index.cjs.map +1 -0
  167. package/dist/core/router/adapter/react-router/index.d.ts +5 -0
  168. package/dist/core/router/adapter/react-router/index.d.ts.map +1 -0
  169. package/dist/core/router/adapter/react-router/index.js +5 -0
  170. package/dist/core/router/adapter/react-router/index.js.map +1 -0
  171. package/dist/core/router/adapter/types.cjs +8 -0
  172. package/dist/core/router/adapter/types.cjs.map +1 -0
  173. package/dist/core/router/adapter/types.d.ts +112 -0
  174. package/dist/core/router/adapter/types.d.ts.map +1 -0
  175. package/dist/core/router/adapter/types.js +7 -0
  176. package/dist/core/router/adapter/types.js.map +1 -0
  177. package/dist/core/router/dev/RouterDevTools.cjs +410 -0
  178. package/dist/core/router/dev/RouterDevTools.cjs.map +1 -0
  179. package/dist/core/router/dev/RouterDevTools.d.ts +10 -0
  180. package/dist/core/router/dev/RouterDevTools.d.ts.map +1 -0
  181. package/dist/core/router/dev/RouterDevTools.js +363 -0
  182. package/dist/core/router/dev/RouterDevTools.js.map +1 -0
  183. package/dist/core/router/dev/index.cjs +22 -0
  184. package/dist/core/router/dev/index.cjs.map +1 -0
  185. package/dist/core/router/dev/index.d.ts +5 -0
  186. package/dist/core/router/dev/index.d.ts.map +1 -0
  187. package/dist/core/router/dev/index.js +5 -0
  188. package/dist/core/router/dev/index.js.map +1 -0
  189. package/dist/core/router/dynamic/DynamicRouteManager.cjs +195 -0
  190. package/dist/core/router/dynamic/DynamicRouteManager.cjs.map +1 -0
  191. package/dist/core/router/dynamic/DynamicRouteManager.d.ts +72 -0
  192. package/dist/core/router/dynamic/DynamicRouteManager.d.ts.map +1 -0
  193. package/dist/core/router/dynamic/DynamicRouteManager.js +179 -0
  194. package/dist/core/router/dynamic/DynamicRouteManager.js.map +1 -0
  195. package/dist/core/router/dynamic/index.cjs +22 -0
  196. package/dist/core/router/dynamic/index.cjs.map +1 -0
  197. package/dist/core/router/dynamic/index.d.ts +5 -0
  198. package/dist/core/router/dynamic/index.d.ts.map +1 -0
  199. package/dist/core/router/dynamic/index.js +5 -0
  200. package/dist/core/router/dynamic/index.js.map +1 -0
  201. package/dist/core/router/errors/RouterError.cjs +63 -0
  202. package/dist/core/router/errors/RouterError.cjs.map +1 -0
  203. package/dist/core/router/errors/RouterError.d.ts +48 -0
  204. package/dist/core/router/errors/RouterError.d.ts.map +1 -0
  205. package/dist/core/router/errors/RouterError.js +48 -0
  206. package/dist/core/router/errors/RouterError.js.map +1 -0
  207. package/dist/core/router/errors/index.cjs +22 -0
  208. package/dist/core/router/errors/index.cjs.map +1 -0
  209. package/dist/core/router/errors/index.d.ts +5 -0
  210. package/dist/core/router/errors/index.d.ts.map +1 -0
  211. package/dist/core/router/errors/index.js +5 -0
  212. package/dist/core/router/errors/index.js.map +1 -0
  213. package/dist/core/router/index.cjs +38 -0
  214. package/dist/core/router/index.cjs.map +1 -0
  215. package/dist/core/router/index.d.ts +17 -0
  216. package/dist/core/router/index.d.ts.map +1 -0
  217. package/dist/core/router/index.js +32 -0
  218. package/dist/core/router/index.js.map +1 -0
  219. package/dist/core/router/lifecycle/RouterLifecycleManager.cjs +146 -0
  220. package/dist/core/router/lifecycle/RouterLifecycleManager.cjs.map +1 -0
  221. package/dist/core/router/lifecycle/RouterLifecycleManager.d.ts +57 -0
  222. package/dist/core/router/lifecycle/RouterLifecycleManager.d.ts.map +1 -0
  223. package/dist/core/router/lifecycle/RouterLifecycleManager.js +130 -0
  224. package/dist/core/router/lifecycle/RouterLifecycleManager.js.map +1 -0
  225. package/dist/core/router/lifecycle/index.cjs +22 -0
  226. package/dist/core/router/lifecycle/index.cjs.map +1 -0
  227. package/dist/core/router/lifecycle/index.d.ts +5 -0
  228. package/dist/core/router/lifecycle/index.d.ts.map +1 -0
  229. package/dist/core/router/lifecycle/index.js +5 -0
  230. package/dist/core/router/lifecycle/index.js.map +1 -0
  231. package/dist/core/router/middleware/RouterMiddlewareManager.cjs +175 -0
  232. package/dist/core/router/middleware/RouterMiddlewareManager.cjs.map +1 -0
  233. package/dist/core/router/middleware/RouterMiddlewareManager.d.ts +61 -0
  234. package/dist/core/router/middleware/RouterMiddlewareManager.d.ts.map +1 -0
  235. package/dist/core/router/middleware/RouterMiddlewareManager.js +159 -0
  236. package/dist/core/router/middleware/RouterMiddlewareManager.js.map +1 -0
  237. package/dist/core/router/middleware/auth.cjs +68 -0
  238. package/dist/core/router/middleware/auth.cjs.map +1 -0
  239. package/dist/core/router/middleware/auth.d.ts +55 -0
  240. package/dist/core/router/middleware/auth.d.ts.map +1 -0
  241. package/dist/core/router/middleware/auth.js +63 -0
  242. package/dist/core/router/middleware/auth.js.map +1 -0
  243. package/dist/core/router/middleware/index.cjs +24 -0
  244. package/dist/core/router/middleware/index.cjs.map +1 -0
  245. package/dist/core/router/middleware/index.d.ts +7 -0
  246. package/dist/core/router/middleware/index.d.ts.map +1 -0
  247. package/dist/core/router/middleware/index.js +7 -0
  248. package/dist/core/router/middleware/index.js.map +1 -0
  249. package/dist/core/router/middleware/types.cjs +8 -0
  250. package/dist/core/router/middleware/types.cjs.map +1 -0
  251. package/dist/core/router/middleware/types.d.ts +83 -0
  252. package/dist/core/router/middleware/types.d.ts.map +1 -0
  253. package/dist/core/router/middleware/types.js +7 -0
  254. package/dist/core/router/middleware/types.js.map +1 -0
  255. package/dist/core/router/monitoring/RouterMonitoring.cjs +229 -0
  256. package/dist/core/router/monitoring/RouterMonitoring.cjs.map +1 -0
  257. package/dist/core/router/monitoring/RouterMonitoring.d.ts +135 -0
  258. package/dist/core/router/monitoring/RouterMonitoring.d.ts.map +1 -0
  259. package/dist/core/router/monitoring/RouterMonitoring.js +213 -0
  260. package/dist/core/router/monitoring/RouterMonitoring.js.map +1 -0
  261. package/dist/core/router/monitoring/index.cjs +22 -0
  262. package/dist/core/router/monitoring/index.cjs.map +1 -0
  263. package/dist/core/router/monitoring/index.d.ts +5 -0
  264. package/dist/core/router/monitoring/index.d.ts.map +1 -0
  265. package/dist/core/router/monitoring/index.js +5 -0
  266. package/dist/core/router/monitoring/index.js.map +1 -0
  267. package/dist/core/router/navigation/RouterNavigation.cjs +186 -0
  268. package/dist/core/router/navigation/RouterNavigation.cjs.map +1 -0
  269. package/dist/core/router/navigation/RouterNavigation.d.ts +41 -0
  270. package/dist/core/router/navigation/RouterNavigation.d.ts.map +1 -0
  271. package/dist/core/router/navigation/RouterNavigation.js +137 -0
  272. package/dist/core/router/navigation/RouterNavigation.js.map +1 -0
  273. package/dist/core/router/navigation/index.cjs +22 -0
  274. package/dist/core/router/navigation/index.cjs.map +1 -0
  275. package/dist/core/router/navigation/index.d.ts +5 -0
  276. package/dist/core/router/navigation/index.d.ts.map +1 -0
  277. package/dist/core/router/navigation/index.js +5 -0
  278. package/dist/core/router/navigation/index.js.map +1 -0
  279. package/dist/core/router/performance/RouteCache.cjs +286 -0
  280. package/dist/core/router/performance/RouteCache.cjs.map +1 -0
  281. package/dist/core/router/performance/RouteCache.d.ts +108 -0
  282. package/dist/core/router/performance/RouteCache.d.ts.map +1 -0
  283. package/dist/core/router/performance/RouteCache.js +270 -0
  284. package/dist/core/router/performance/RouteCache.js.map +1 -0
  285. package/dist/core/router/performance/RoutePreloader.cjs +227 -0
  286. package/dist/core/router/performance/RoutePreloader.cjs.map +1 -0
  287. package/dist/core/router/performance/RoutePreloader.d.ts +104 -0
  288. package/dist/core/router/performance/RoutePreloader.d.ts.map +1 -0
  289. package/dist/core/router/performance/RoutePreloader.js +210 -0
  290. package/dist/core/router/performance/RoutePreloader.js.map +1 -0
  291. package/dist/core/router/performance/index.cjs +23 -0
  292. package/dist/core/router/performance/index.cjs.map +1 -0
  293. package/dist/core/router/performance/index.d.ts +6 -0
  294. package/dist/core/router/performance/index.d.ts.map +1 -0
  295. package/dist/core/router/performance/index.js +6 -0
  296. package/dist/core/router/performance/index.js.map +1 -0
  297. package/dist/core/router/plugin/RouterPluginManager.cjs +264 -0
  298. package/dist/core/router/plugin/RouterPluginManager.cjs.map +1 -0
  299. package/dist/core/router/plugin/RouterPluginManager.d.ts +75 -0
  300. package/dist/core/router/plugin/RouterPluginManager.d.ts.map +1 -0
  301. package/dist/core/router/plugin/RouterPluginManager.js +248 -0
  302. package/dist/core/router/plugin/RouterPluginManager.js.map +1 -0
  303. package/dist/core/router/plugin/index.cjs +23 -0
  304. package/dist/core/router/plugin/index.cjs.map +1 -0
  305. package/dist/core/router/plugin/index.d.ts +6 -0
  306. package/dist/core/router/plugin/index.d.ts.map +1 -0
  307. package/dist/core/router/plugin/index.js +6 -0
  308. package/dist/core/router/plugin/index.js.map +1 -0
  309. package/dist/core/router/plugin/types.cjs +41 -0
  310. package/dist/core/router/plugin/types.cjs.map +1 -0
  311. package/dist/core/router/plugin/types.d.ts +154 -0
  312. package/dist/core/router/plugin/types.d.ts.map +1 -0
  313. package/dist/core/router/plugin/types.js +33 -0
  314. package/dist/core/router/plugin/types.js.map +1 -0
  315. package/dist/core/router/types.cjs +6 -0
  316. package/dist/core/router/types.cjs.map +1 -0
  317. package/dist/core/router/types.d.ts +439 -0
  318. package/dist/core/router/types.d.ts.map +1 -0
  319. package/dist/core/router/types.js +5 -0
  320. package/dist/core/router/types.js.map +1 -0
  321. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.cjs +139 -0
  322. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.cjs.map +1 -0
  323. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.d.ts +3 -0
  324. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.d.ts.map +1 -0
  325. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.js +129 -0
  326. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.js.map +1 -0
  327. package/dist/core/router/utils/adapters/react-router/transform.cjs +261 -0
  328. package/dist/core/router/utils/adapters/react-router/transform.cjs.map +1 -0
  329. package/dist/core/router/utils/adapters/react-router/transform.d.ts +6 -0
  330. package/dist/core/router/utils/adapters/react-router/transform.d.ts.map +1 -0
  331. package/dist/core/router/utils/adapters/react-router/transform.js +246 -0
  332. package/dist/core/router/utils/adapters/react-router/transform.js.map +1 -0
  333. package/dist/core/router/utils/transform.cjs +772 -0
  334. package/dist/core/router/utils/transform.cjs.map +1 -0
  335. package/dist/core/router/utils/transform.d.ts +349 -0
  336. package/dist/core/router/utils/transform.d.ts.map +1 -0
  337. package/dist/core/router/utils/transform.js +781 -0
  338. package/dist/core/router/utils/transform.js.map +1 -0
  339. package/dist/core/router/validation/RouterConfigValidator.cjs +85 -0
  340. package/dist/core/router/validation/RouterConfigValidator.cjs.map +1 -0
  341. package/dist/core/router/validation/RouterConfigValidator.d.ts +58 -0
  342. package/dist/core/router/validation/RouterConfigValidator.d.ts.map +1 -0
  343. package/dist/core/router/validation/RouterConfigValidator.js +77 -0
  344. package/dist/core/router/validation/RouterConfigValidator.js.map +1 -0
  345. package/dist/core/router/validation/index.cjs +23 -0
  346. package/dist/core/router/validation/index.cjs.map +1 -0
  347. package/dist/core/router/validation/index.d.ts +6 -0
  348. package/dist/core/router/validation/index.d.ts.map +1 -0
  349. package/dist/core/router/validation/index.js +6 -0
  350. package/dist/core/router/validation/index.js.map +1 -0
  351. package/dist/core/router/validation/schema.cjs +91 -0
  352. package/dist/core/router/validation/schema.cjs.map +1 -0
  353. package/dist/core/router/validation/schema.d.ts +82 -0
  354. package/dist/core/router/validation/schema.d.ts.map +1 -0
  355. package/dist/core/router/validation/schema.js +81 -0
  356. package/dist/core/router/validation/schema.js.map +1 -0
  357. package/dist/core/router/version/RouteVersionManager.cjs +207 -0
  358. package/dist/core/router/version/RouteVersionManager.cjs.map +1 -0
  359. package/dist/core/router/version/RouteVersionManager.d.ts +125 -0
  360. package/dist/core/router/version/RouteVersionManager.d.ts.map +1 -0
  361. package/dist/core/router/version/RouteVersionManager.js +191 -0
  362. package/dist/core/router/version/RouteVersionManager.js.map +1 -0
  363. package/dist/core/router/version/index.cjs +22 -0
  364. package/dist/core/router/version/index.cjs.map +1 -0
  365. package/dist/core/router/version/index.d.ts +5 -0
  366. package/dist/core/router/version/index.d.ts.map +1 -0
  367. package/dist/core/router/version/index.js +5 -0
  368. package/dist/core/router/version/index.js.map +1 -0
  369. package/dist/core/splash/SplashScreen.cjs +257 -0
  370. package/dist/core/splash/SplashScreen.cjs.map +1 -0
  371. package/dist/core/splash/SplashScreen.d.ts +15 -0
  372. package/dist/core/splash/SplashScreen.d.ts.map +1 -0
  373. package/dist/core/splash/SplashScreen.js +207 -0
  374. package/dist/core/splash/SplashScreen.js.map +1 -0
  375. package/dist/core/splash/index.cjs +24 -0
  376. package/dist/core/splash/index.cjs.map +1 -0
  377. package/dist/core/splash/index.d.ts +6 -0
  378. package/dist/core/splash/index.d.ts.map +1 -0
  379. package/dist/core/splash/index.js +6 -0
  380. package/dist/core/splash/index.js.map +1 -0
  381. package/dist/core/splash/splashScreenUtils.cjs +40 -0
  382. package/dist/core/splash/splashScreenUtils.cjs.map +1 -0
  383. package/dist/core/splash/splashScreenUtils.d.ts +8 -0
  384. package/dist/core/splash/splashScreenUtils.d.ts.map +1 -0
  385. package/dist/core/splash/splashScreenUtils.js +30 -0
  386. package/dist/core/splash/splashScreenUtils.js.map +1 -0
  387. package/dist/core/startup/AppInstance.cjs +233 -0
  388. package/dist/core/startup/AppInstance.cjs.map +1 -0
  389. package/dist/core/startup/AppInstance.d.ts +135 -0
  390. package/dist/core/startup/AppInstance.d.ts.map +1 -0
  391. package/dist/core/startup/AppInstance.js +218 -0
  392. package/dist/core/startup/AppInstance.js.map +1 -0
  393. package/dist/core/startup/environment.cjs +171 -0
  394. package/dist/core/startup/environment.cjs.map +1 -0
  395. package/dist/core/startup/environment.d.ts +88 -0
  396. package/dist/core/startup/environment.d.ts.map +1 -0
  397. package/dist/core/startup/environment.js +154 -0
  398. package/dist/core/startup/environment.js.map +1 -0
  399. package/dist/core/startup/index.cjs +25 -0
  400. package/dist/core/startup/index.cjs.map +1 -0
  401. package/dist/core/startup/index.d.ts +8 -0
  402. package/dist/core/startup/index.d.ts.map +1 -0
  403. package/dist/core/startup/index.js +8 -0
  404. package/dist/core/startup/index.js.map +1 -0
  405. package/dist/core/startup/initializeServices.cjs +166 -0
  406. package/dist/core/startup/initializeServices.cjs.map +1 -0
  407. package/dist/core/startup/initializeServices.d.ts +57 -0
  408. package/dist/core/startup/initializeServices.d.ts.map +1 -0
  409. package/dist/core/startup/initializeServices.js +124 -0
  410. package/dist/core/startup/initializeServices.js.map +1 -0
  411. package/dist/core/startup/performanceTracker.cjs +181 -0
  412. package/dist/core/startup/performanceTracker.cjs.map +1 -0
  413. package/dist/core/startup/performanceTracker.d.ts +105 -0
  414. package/dist/core/startup/performanceTracker.d.ts.map +1 -0
  415. package/dist/core/startup/performanceTracker.js +167 -0
  416. package/dist/core/startup/performanceTracker.js.map +1 -0
  417. package/dist/core/startup/renderApp.cjs +275 -0
  418. package/dist/core/startup/renderApp.cjs.map +1 -0
  419. package/dist/core/startup/renderApp.d.ts +71 -0
  420. package/dist/core/startup/renderApp.d.ts.map +1 -0
  421. package/dist/core/startup/renderApp.js +226 -0
  422. package/dist/core/startup/renderApp.js.map +1 -0
  423. package/dist/core/startup/startApp.cjs +151 -0
  424. package/dist/core/startup/startApp.cjs.map +1 -0
  425. package/dist/core/startup/startApp.d.ts +15 -0
  426. package/dist/core/startup/startApp.d.ts.map +1 -0
  427. package/dist/core/startup/startApp.js +147 -0
  428. package/dist/core/startup/startApp.js.map +1 -0
  429. package/dist/core/types.cjs +6 -0
  430. package/dist/core/types.cjs.map +1 -0
  431. package/dist/core/types.d.ts +461 -0
  432. package/dist/core/types.d.ts.map +1 -0
  433. package/dist/core/types.js +5 -0
  434. package/dist/core/types.js.map +1 -0
  435. package/dist/index.cjs +152 -0
  436. package/dist/index.cjs.map +1 -0
  437. package/dist/index.d.ts +13 -0
  438. package/dist/index.d.ts.map +1 -0
  439. package/dist/index.js +17 -0
  440. package/dist/index.js.map +1 -0
  441. package/dist/library/index.cjs +21 -0
  442. package/dist/library/index.cjs.map +1 -0
  443. package/dist/library/index.d.ts +3 -0
  444. package/dist/library/index.d.ts.map +1 -0
  445. package/dist/library/index.js +4 -0
  446. package/dist/library/index.js.map +1 -0
  447. package/dist/library/locale/index.cjs +56 -0
  448. package/dist/library/locale/index.cjs.map +1 -0
  449. package/dist/library/locale/index.d.ts +6 -0
  450. package/dist/library/locale/index.d.ts.map +1 -0
  451. package/dist/library/locale/index.js +30 -0
  452. package/dist/library/locale/index.js.map +1 -0
  453. package/dist/library/locale/langs/en-us/index.cjs +34 -0
  454. package/dist/library/locale/langs/en-us/index.cjs.map +1 -0
  455. package/dist/library/locale/langs/en-us/index.d.ts +4 -0
  456. package/dist/library/locale/langs/en-us/index.d.ts.map +1 -0
  457. package/dist/library/locale/langs/en-us/index.js +24 -0
  458. package/dist/library/locale/langs/en-us/index.js.map +1 -0
  459. package/dist/library/locale/langs/zh-cn/index.cjs +34 -0
  460. package/dist/library/locale/langs/zh-cn/index.cjs.map +1 -0
  461. package/dist/library/locale/langs/zh-cn/index.d.ts +4 -0
  462. package/dist/library/locale/langs/zh-cn/index.d.ts.map +1 -0
  463. package/dist/library/locale/langs/zh-cn/index.js +24 -0
  464. package/dist/library/locale/langs/zh-cn/index.js.map +1 -0
  465. package/dist/library/locale/types.cjs +6 -0
  466. package/dist/library/locale/types.cjs.map +1 -0
  467. package/dist/library/locale/types.d.ts +39 -0
  468. package/dist/library/locale/types.d.ts.map +1 -0
  469. package/dist/library/locale/types.js +3 -0
  470. package/dist/library/locale/types.js.map +1 -0
  471. package/dist/library/storage/cache.cjs +245 -0
  472. package/dist/library/storage/cache.cjs.map +1 -0
  473. package/dist/library/storage/cache.d.ts +58 -0
  474. package/dist/library/storage/cache.d.ts.map +1 -0
  475. package/dist/library/storage/cache.js +237 -0
  476. package/dist/library/storage/cache.js.map +1 -0
  477. package/dist/library/storage/encryption.cjs +150 -0
  478. package/dist/library/storage/encryption.cjs.map +1 -0
  479. package/dist/library/storage/encryption.d.ts +46 -0
  480. package/dist/library/storage/encryption.d.ts.map +1 -0
  481. package/dist/library/storage/encryption.js +142 -0
  482. package/dist/library/storage/encryption.js.map +1 -0
  483. package/dist/library/storage/index.cjs +126 -0
  484. package/dist/library/storage/index.cjs.map +1 -0
  485. package/dist/library/storage/index.d.ts +62 -0
  486. package/dist/library/storage/index.d.ts.map +1 -0
  487. package/dist/library/storage/index.js +106 -0
  488. package/dist/library/storage/index.js.map +1 -0
  489. package/dist/request/adapter/RequestAdapter.cjs +78 -0
  490. package/dist/request/adapter/RequestAdapter.cjs.map +1 -0
  491. package/dist/request/adapter/RequestAdapter.d.ts +86 -0
  492. package/dist/request/adapter/RequestAdapter.d.ts.map +1 -0
  493. package/dist/request/adapter/RequestAdapter.js +70 -0
  494. package/dist/request/adapter/RequestAdapter.js.map +1 -0
  495. package/dist/request/adapter/axiosAdapter.cjs +164 -0
  496. package/dist/request/adapter/axiosAdapter.cjs.map +1 -0
  497. package/dist/request/adapter/axiosAdapter.d.ts +11 -0
  498. package/dist/request/adapter/axiosAdapter.d.ts.map +1 -0
  499. package/dist/request/adapter/axiosAdapter.js +115 -0
  500. package/dist/request/adapter/axiosAdapter.js.map +1 -0
  501. package/dist/request/adapter/fetchAdapter.cjs +134 -0
  502. package/dist/request/adapter/fetchAdapter.cjs.map +1 -0
  503. package/dist/request/adapter/fetchAdapter.d.ts +11 -0
  504. package/dist/request/adapter/fetchAdapter.d.ts.map +1 -0
  505. package/dist/request/adapter/fetchAdapter.js +126 -0
  506. package/dist/request/adapter/fetchAdapter.js.map +1 -0
  507. package/dist/request/adapter/index.cjs +80 -0
  508. package/dist/request/adapter/index.cjs.map +1 -0
  509. package/dist/request/adapter/index.d.ts +10 -0
  510. package/dist/request/adapter/index.d.ts.map +1 -0
  511. package/dist/request/adapter/index.js +14 -0
  512. package/dist/request/adapter/index.js.map +1 -0
  513. package/dist/request/adapter/kyAdapter.cjs +191 -0
  514. package/dist/request/adapter/kyAdapter.cjs.map +1 -0
  515. package/dist/request/adapter/kyAdapter.d.ts +11 -0
  516. package/dist/request/adapter/kyAdapter.d.ts.map +1 -0
  517. package/dist/request/adapter/kyAdapter.js +142 -0
  518. package/dist/request/adapter/kyAdapter.js.map +1 -0
  519. package/dist/request/adapter/undiciAdapter.cjs +213 -0
  520. package/dist/request/adapter/undiciAdapter.cjs.map +1 -0
  521. package/dist/request/adapter/undiciAdapter.d.ts +11 -0
  522. package/dist/request/adapter/undiciAdapter.d.ts.map +1 -0
  523. package/dist/request/adapter/undiciAdapter.js +164 -0
  524. package/dist/request/adapter/undiciAdapter.js.map +1 -0
  525. package/dist/request/core/RequestClient.cjs +539 -0
  526. package/dist/request/core/RequestClient.cjs.map +1 -0
  527. package/dist/request/core/RequestClient.d.ts +127 -0
  528. package/dist/request/core/RequestClient.d.ts.map +1 -0
  529. package/dist/request/core/RequestClient.js +490 -0
  530. package/dist/request/core/RequestClient.js.map +1 -0
  531. package/dist/request/core/index.cjs +15 -0
  532. package/dist/request/core/index.cjs.map +1 -0
  533. package/dist/request/core/index.d.ts +6 -0
  534. package/dist/request/core/index.d.ts.map +1 -0
  535. package/dist/request/core/index.js +5 -0
  536. package/dist/request/core/index.js.map +1 -0
  537. package/dist/request/index.cjs +146 -0
  538. package/dist/request/index.cjs.map +1 -0
  539. package/dist/request/index.d.ts +43 -0
  540. package/dist/request/index.d.ts.map +1 -0
  541. package/dist/request/index.js +50 -0
  542. package/dist/request/index.js.map +1 -0
  543. package/dist/request/plugin/RequestPlugin.cjs +218 -0
  544. package/dist/request/plugin/RequestPlugin.cjs.map +1 -0
  545. package/dist/request/plugin/RequestPlugin.d.ts +171 -0
  546. package/dist/request/plugin/RequestPlugin.d.ts.map +1 -0
  547. package/dist/request/plugin/RequestPlugin.js +203 -0
  548. package/dist/request/plugin/RequestPlugin.js.map +1 -0
  549. package/dist/request/plugin/cache.cjs +269 -0
  550. package/dist/request/plugin/cache.cjs.map +1 -0
  551. package/dist/request/plugin/cache.d.ts +34 -0
  552. package/dist/request/plugin/cache.d.ts.map +1 -0
  553. package/dist/request/plugin/cache.js +264 -0
  554. package/dist/request/plugin/cache.js.map +1 -0
  555. package/dist/request/plugin/csrfPlugin.cjs +40 -0
  556. package/dist/request/plugin/csrfPlugin.cjs.map +1 -0
  557. package/dist/request/plugin/csrfPlugin.d.ts +22 -0
  558. package/dist/request/plugin/csrfPlugin.d.ts.map +1 -0
  559. package/dist/request/plugin/csrfPlugin.js +44 -0
  560. package/dist/request/plugin/csrfPlugin.js.map +1 -0
  561. package/dist/request/plugin/index.cjs +49 -0
  562. package/dist/request/plugin/index.cjs.map +1 -0
  563. package/dist/request/plugin/index.d.ts +11 -0
  564. package/dist/request/plugin/index.d.ts.map +1 -0
  565. package/dist/request/plugin/index.js +11 -0
  566. package/dist/request/plugin/index.js.map +1 -0
  567. package/dist/request/plugin/monitoring.cjs +216 -0
  568. package/dist/request/plugin/monitoring.cjs.map +1 -0
  569. package/dist/request/plugin/monitoring.d.ts +113 -0
  570. package/dist/request/plugin/monitoring.d.ts.map +1 -0
  571. package/dist/request/plugin/monitoring.js +205 -0
  572. package/dist/request/plugin/monitoring.js.map +1 -0
  573. package/dist/request/plugin/retry.cjs +98 -0
  574. package/dist/request/plugin/retry.cjs.map +1 -0
  575. package/dist/request/plugin/retry.d.ts +35 -0
  576. package/dist/request/plugin/retry.d.ts.map +1 -0
  577. package/dist/request/plugin/retry.js +93 -0
  578. package/dist/request/plugin/retry.js.map +1 -0
  579. package/dist/request/plugin/validation.cjs +121 -0
  580. package/dist/request/plugin/validation.cjs.map +1 -0
  581. package/dist/request/plugin/validation.d.ts +27 -0
  582. package/dist/request/plugin/validation.d.ts.map +1 -0
  583. package/dist/request/plugin/validation.js +116 -0
  584. package/dist/request/plugin/validation.js.map +1 -0
  585. package/dist/request/runtime/RequestContext.cjs +77 -0
  586. package/dist/request/runtime/RequestContext.cjs.map +1 -0
  587. package/dist/request/runtime/RequestContext.d.ts +51 -0
  588. package/dist/request/runtime/RequestContext.d.ts.map +1 -0
  589. package/dist/request/runtime/RequestContext.js +86 -0
  590. package/dist/request/runtime/RequestContext.js.map +1 -0
  591. package/dist/request/runtime/index.cjs +32 -0
  592. package/dist/request/runtime/index.cjs.map +1 -0
  593. package/dist/request/runtime/index.d.ts +5 -0
  594. package/dist/request/runtime/index.d.ts.map +1 -0
  595. package/dist/request/runtime/index.js +5 -0
  596. package/dist/request/runtime/index.js.map +1 -0
  597. package/dist/request/types.cjs +112 -0
  598. package/dist/request/types.cjs.map +1 -0
  599. package/dist/request/types.d.ts +395 -0
  600. package/dist/request/types.d.ts.map +1 -0
  601. package/dist/request/types.js +97 -0
  602. package/dist/request/types.js.map +1 -0
  603. package/dist/request/utils/dependencyCheck.cjs +237 -0
  604. package/dist/request/utils/dependencyCheck.cjs.map +1 -0
  605. package/dist/request/utils/dependencyCheck.d.ts +64 -0
  606. package/dist/request/utils/dependencyCheck.d.ts.map +1 -0
  607. package/dist/request/utils/dependencyCheck.js +192 -0
  608. package/dist/request/utils/dependencyCheck.js.map +1 -0
  609. package/dist/request/utils/index.cjs +26 -0
  610. package/dist/request/utils/index.cjs.map +1 -0
  611. package/dist/request/utils/index.d.ts +5 -0
  612. package/dist/request/utils/index.d.ts.map +1 -0
  613. package/dist/request/utils/index.js +5 -0
  614. package/dist/request/utils/index.js.map +1 -0
  615. package/dist/state/StateManager.cjs +168 -0
  616. package/dist/state/StateManager.cjs.map +1 -0
  617. package/dist/state/StateManager.d.ts +121 -0
  618. package/dist/state/StateManager.d.ts.map +1 -0
  619. package/dist/state/StateManager.js +160 -0
  620. package/dist/state/StateManager.js.map +1 -0
  621. package/dist/state/adapters/AdapterFactory.cjs +91 -0
  622. package/dist/state/adapters/AdapterFactory.cjs.map +1 -0
  623. package/dist/state/adapters/AdapterFactory.d.ts +52 -0
  624. package/dist/state/adapters/AdapterFactory.d.ts.map +1 -0
  625. package/dist/state/adapters/AdapterFactory.js +85 -0
  626. package/dist/state/adapters/AdapterFactory.js.map +1 -0
  627. package/dist/state/adapters/DefaultAdapter.cjs +77 -0
  628. package/dist/state/adapters/DefaultAdapter.cjs.map +1 -0
  629. package/dist/state/adapters/DefaultAdapter.d.ts +39 -0
  630. package/dist/state/adapters/DefaultAdapter.d.ts.map +1 -0
  631. package/dist/state/adapters/DefaultAdapter.js +71 -0
  632. package/dist/state/adapters/DefaultAdapter.js.map +1 -0
  633. package/dist/state/adapters/ReduxAdapter.cjs +445 -0
  634. package/dist/state/adapters/ReduxAdapter.cjs.map +1 -0
  635. package/dist/state/adapters/ReduxAdapter.d.ts +130 -0
  636. package/dist/state/adapters/ReduxAdapter.d.ts.map +1 -0
  637. package/dist/state/adapters/ReduxAdapter.js +439 -0
  638. package/dist/state/adapters/ReduxAdapter.js.map +1 -0
  639. package/dist/state/adapters/ZustandAdapter.cjs +71 -0
  640. package/dist/state/adapters/ZustandAdapter.cjs.map +1 -0
  641. package/dist/state/adapters/ZustandAdapter.d.ts +47 -0
  642. package/dist/state/adapters/ZustandAdapter.d.ts.map +1 -0
  643. package/dist/state/adapters/ZustandAdapter.js +70 -0
  644. package/dist/state/adapters/ZustandAdapter.js.map +1 -0
  645. package/dist/state/adapters/index.cjs +46 -0
  646. package/dist/state/adapters/index.cjs.map +1 -0
  647. package/dist/state/adapters/index.d.ts +9 -0
  648. package/dist/state/adapters/index.d.ts.map +1 -0
  649. package/dist/state/adapters/index.js +9 -0
  650. package/dist/state/adapters/index.js.map +1 -0
  651. package/dist/state/adapters/types.cjs +22 -0
  652. package/dist/state/adapters/types.cjs.map +1 -0
  653. package/dist/state/adapters/types.d.ts +5 -0
  654. package/dist/state/adapters/types.d.ts.map +1 -0
  655. package/dist/state/adapters/types.js +5 -0
  656. package/dist/state/adapters/types.js.map +1 -0
  657. package/dist/state/core/DerivedStateInstance.cjs +176 -0
  658. package/dist/state/core/DerivedStateInstance.cjs.map +1 -0
  659. package/dist/state/core/DerivedStateInstance.d.ts +101 -0
  660. package/dist/state/core/DerivedStateInstance.d.ts.map +1 -0
  661. package/dist/state/core/DerivedStateInstance.js +173 -0
  662. package/dist/state/core/DerivedStateInstance.js.map +1 -0
  663. package/dist/state/core/StateInstance.cjs +172 -0
  664. package/dist/state/core/StateInstance.cjs.map +1 -0
  665. package/dist/state/core/StateInstance.d.ts +86 -0
  666. package/dist/state/core/StateInstance.d.ts.map +1 -0
  667. package/dist/state/core/StateInstance.js +168 -0
  668. package/dist/state/core/StateInstance.js.map +1 -0
  669. package/dist/state/core/StateRegistry.cjs +112 -0
  670. package/dist/state/core/StateRegistry.cjs.map +1 -0
  671. package/dist/state/core/StateRegistry.d.ts +56 -0
  672. package/dist/state/core/StateRegistry.d.ts.map +1 -0
  673. package/dist/state/core/StateRegistry.js +106 -0
  674. package/dist/state/core/StateRegistry.js.map +1 -0
  675. package/dist/state/core/StateScope.cjs +139 -0
  676. package/dist/state/core/StateScope.cjs.map +1 -0
  677. package/dist/state/core/StateScope.d.ts +72 -0
  678. package/dist/state/core/StateScope.d.ts.map +1 -0
  679. package/dist/state/core/StateScope.js +133 -0
  680. package/dist/state/core/StateScope.js.map +1 -0
  681. package/dist/state/core/index.cjs +32 -0
  682. package/dist/state/core/index.cjs.map +1 -0
  683. package/dist/state/core/index.d.ts +8 -0
  684. package/dist/state/core/index.d.ts.map +1 -0
  685. package/dist/state/core/index.js +8 -0
  686. package/dist/state/core/index.js.map +1 -0
  687. package/dist/state/index.cjs +32 -0
  688. package/dist/state/index.cjs.map +1 -0
  689. package/dist/state/index.d.ts +9 -0
  690. package/dist/state/index.d.ts.map +1 -0
  691. package/dist/state/index.js +12 -0
  692. package/dist/state/index.js.map +1 -0
  693. package/dist/state/types.cjs +14 -0
  694. package/dist/state/types.cjs.map +1 -0
  695. package/dist/state/types.d.ts +231 -0
  696. package/dist/state/types.d.ts.map +1 -0
  697. package/dist/state/types.js +13 -0
  698. package/dist/state/types.js.map +1 -0
  699. package/dist/types.cjs +6 -0
  700. package/dist/types.cjs.map +1 -0
  701. package/dist/types.d.ts +6 -0
  702. package/dist/types.d.ts.map +1 -0
  703. package/dist/types.js +3 -0
  704. package/dist/types.js.map +1 -0
  705. package/dist/utils/analytics.cjs +219 -0
  706. package/dist/utils/analytics.cjs.map +1 -0
  707. package/dist/utils/analytics.d.ts +128 -0
  708. package/dist/utils/analytics.d.ts.map +1 -0
  709. package/dist/utils/analytics.js +204 -0
  710. package/dist/utils/analytics.js.map +1 -0
  711. package/dist/utils/configSecurity.cjs +184 -0
  712. package/dist/utils/configSecurity.cjs.map +1 -0
  713. package/dist/utils/configSecurity.d.ts +101 -0
  714. package/dist/utils/configSecurity.d.ts.map +1 -0
  715. package/dist/utils/configSecurity.js +176 -0
  716. package/dist/utils/configSecurity.js.map +1 -0
  717. package/dist/utils/csrf.cjs +159 -0
  718. package/dist/utils/csrf.cjs.map +1 -0
  719. package/dist/utils/csrf.d.ts +73 -0
  720. package/dist/utils/csrf.d.ts.map +1 -0
  721. package/dist/utils/csrf.js +144 -0
  722. package/dist/utils/csrf.js.map +1 -0
  723. package/dist/utils/errors/ErrorCodes.cjs +97 -0
  724. package/dist/utils/errors/ErrorCodes.cjs.map +1 -0
  725. package/dist/utils/errors/ErrorCodes.d.ts +46 -0
  726. package/dist/utils/errors/ErrorCodes.d.ts.map +1 -0
  727. package/dist/utils/errors/ErrorCodes.js +86 -0
  728. package/dist/utils/errors/ErrorCodes.js.map +1 -0
  729. package/dist/utils/errors.cjs +343 -0
  730. package/dist/utils/errors.cjs.map +1 -0
  731. package/dist/utils/errors.d.ts +179 -0
  732. package/dist/utils/errors.d.ts.map +1 -0
  733. package/dist/utils/errors.js +311 -0
  734. package/dist/utils/errors.js.map +1 -0
  735. package/dist/utils/index.cjs +137 -0
  736. package/dist/utils/index.cjs.map +1 -0
  737. package/dist/utils/index.d.ts +40 -0
  738. package/dist/utils/index.d.ts.map +1 -0
  739. package/dist/utils/index.js +48 -0
  740. package/dist/utils/index.js.map +1 -0
  741. package/dist/utils/logger.cjs +396 -0
  742. package/dist/utils/logger.cjs.map +1 -0
  743. package/dist/utils/logger.d.ts +190 -0
  744. package/dist/utils/logger.d.ts.map +1 -0
  745. package/dist/utils/logger.js +381 -0
  746. package/dist/utils/logger.js.map +1 -0
  747. package/dist/utils/logger.types.cjs +22 -0
  748. package/dist/utils/logger.types.cjs.map +1 -0
  749. package/dist/utils/logger.types.d.ts +58 -0
  750. package/dist/utils/logger.types.d.ts.map +1 -0
  751. package/dist/utils/logger.types.js +12 -0
  752. package/dist/utils/logger.types.js.map +1 -0
  753. package/dist/utils/monitoring.cjs +311 -0
  754. package/dist/utils/monitoring.cjs.map +1 -0
  755. package/dist/utils/monitoring.d.ts +164 -0
  756. package/dist/utils/monitoring.d.ts.map +1 -0
  757. package/dist/utils/monitoring.js +296 -0
  758. package/dist/utils/monitoring.js.map +1 -0
  759. package/dist/utils/performance.cjs +371 -0
  760. package/dist/utils/performance.cjs.map +1 -0
  761. package/dist/utils/performance.d.ts +247 -0
  762. package/dist/utils/performance.d.ts.map +1 -0
  763. package/dist/utils/performance.js +356 -0
  764. package/dist/utils/performance.js.map +1 -0
  765. package/dist/utils/resourceLoader.cjs +322 -0
  766. package/dist/utils/resourceLoader.cjs.map +1 -0
  767. package/dist/utils/resourceLoader.d.ts +131 -0
  768. package/dist/utils/resourceLoader.d.ts.map +1 -0
  769. package/dist/utils/resourceLoader.js +307 -0
  770. package/dist/utils/resourceLoader.js.map +1 -0
  771. package/dist/utils/runtimeSecurity.cjs +151 -0
  772. package/dist/utils/runtimeSecurity.cjs.map +1 -0
  773. package/dist/utils/runtimeSecurity.d.ts +105 -0
  774. package/dist/utils/runtimeSecurity.d.ts.map +1 -0
  775. package/dist/utils/runtimeSecurity.js +143 -0
  776. package/dist/utils/runtimeSecurity.js.map +1 -0
  777. package/dist/utils/security.cjs +332 -0
  778. package/dist/utils/security.cjs.map +1 -0
  779. package/dist/utils/security.d.ts +81 -0
  780. package/dist/utils/security.d.ts.map +1 -0
  781. package/dist/utils/security.js +313 -0
  782. package/dist/utils/security.js.map +1 -0
  783. package/dist/utils/traceId.cjs +140 -0
  784. package/dist/utils/traceId.cjs.map +1 -0
  785. package/dist/utils/traceId.d.ts +64 -0
  786. package/dist/utils/traceId.d.ts.map +1 -0
  787. package/dist/utils/traceId.js +118 -0
  788. package/dist/utils/traceId.js.map +1 -0
  789. package/dist/utils/validation.cjs +191 -0
  790. package/dist/utils/validation.cjs.map +1 -0
  791. package/dist/utils/validation.d.ts +111 -0
  792. package/dist/utils/validation.d.ts.map +1 -0
  793. package/dist/utils/validation.js +177 -0
  794. package/dist/utils/validation.js.map +1 -0
  795. package/package.json +98 -0
@@ -0,0 +1,781 @@
1
+ function _define_property(obj, key, value) {
2
+ if (key in obj) {
3
+ Object.defineProperty(obj, key, {
4
+ value: value,
5
+ enumerable: true,
6
+ configurable: true,
7
+ writable: true
8
+ });
9
+ } else {
10
+ obj[key] = value;
11
+ }
12
+ return obj;
13
+ }
14
+ import { SecurityUtils, SecurityError, ValidationError, logger } from "../../../utils";
15
+ /**
16
+ * LRU 缓存实现
17
+ */ let LRUCache = class LRUCache {
18
+ get(key) {
19
+ const item = this.cache.get(key);
20
+ if (item) {
21
+ // 更新访问时间
22
+ item.accessTime = Date.now();
23
+ // 移动到末尾(最近使用)
24
+ this.cache.delete(key);
25
+ this.cache.set(key, item);
26
+ }
27
+ return item;
28
+ }
29
+ set(key, value) {
30
+ // 如果已存在,先删除
31
+ if (this.cache.has(key)) {
32
+ this.cache.delete(key);
33
+ } else if (this.cache.size >= this.maxSize) {
34
+ // 如果达到最大大小,删除最久未使用的项(第一个)
35
+ const firstKey = this.cache.keys().next().value;
36
+ if (firstKey) {
37
+ this.cache.delete(firstKey);
38
+ }
39
+ }
40
+ value.accessTime = Date.now();
41
+ this.cache.set(key, value);
42
+ }
43
+ delete(key) {
44
+ return this.cache.delete(key);
45
+ }
46
+ clear() {
47
+ this.cache.clear();
48
+ }
49
+ size() {
50
+ return this.cache.size;
51
+ }
52
+ cleanupExpired(cacheTTL) {
53
+ const now = Date.now();
54
+ for (const [key, item] of this.cache.entries()){
55
+ if (now - item.timestamp > cacheTTL) {
56
+ this.cache.delete(key);
57
+ }
58
+ }
59
+ }
60
+ constructor(maxSize = 50){
61
+ _define_property(this, "cache", new Map());
62
+ _define_property(this, "maxSize", void 0);
63
+ this.maxSize = maxSize;
64
+ }
65
+ };
66
+ /**
67
+ * 转换缓存(使用 LRU 缓存)
68
+ */ let transformCache = null;
69
+ /**
70
+ * 默认配置
71
+ */ const DEFAULT_OPTIONS = {
72
+ pathValidation: {
73
+ enablePathValidation: true,
74
+ allowedPathPrefixes: [],
75
+ maxPathLength: 500,
76
+ allowAbsolutePaths: false
77
+ },
78
+ performance: {
79
+ enableCache: true,
80
+ cacheTTL: 5 * 60 * 1000,
81
+ maxCacheSize: 50,
82
+ maxRecursionDepth: 100,
83
+ enableParallelProcessing: true,
84
+ parallelBatchSize: 10
85
+ },
86
+ enableDebugLog: false
87
+ };
88
+ /**
89
+ * 优化的字符串哈希函数(用于缓存键)
90
+ * 使用更高效的哈希算法,支持大字符串
91
+ */ function optimizedHash(str) {
92
+ // 对于小字符串,使用快速哈希
93
+ if (str.length < 100) {
94
+ let hash = 0;
95
+ for(let i = 0; i < str.length; i++){
96
+ const char = str.charCodeAt(i);
97
+ hash = (hash << 5) - hash + char;
98
+ hash = hash & hash; // 转换为 32 位整数
99
+ }
100
+ return Math.abs(hash).toString(36);
101
+ }
102
+ // 对于大字符串,使用分段哈希
103
+ let hash = 0;
104
+ const step = Math.max(1, Math.floor(str.length / 100));
105
+ for(let i = 0; i < str.length; i += step){
106
+ const char = str.charCodeAt(i);
107
+ hash = (hash << 5) - hash + char;
108
+ hash = hash & hash;
109
+ }
110
+ return Math.abs(hash).toString(36);
111
+ }
112
+ /**
113
+ * 使用 crypto API 的哈希函数(如果可用)
114
+ * 保留此函数供未来使用(异步哈希场景)
115
+ */ // async function cryptoHash(str: string): Promise<string> {
116
+ // // 检查是否支持 crypto API
117
+ // if (typeof crypto !== 'undefined' && crypto.subtle && crypto.subtle.digest) {
118
+ // try {
119
+ // const encoder = new TextEncoder();
120
+ // const data = encoder.encode(str);
121
+ // const hashBuffer = await crypto.subtle.digest('SHA-256', data);
122
+ // const hashArray = Array.from(new Uint8Array(hashBuffer));
123
+ // return hashArray.map(b => b.toString(16).padStart(2, '0')).join('').substring(0, 16);
124
+ // } catch {
125
+ // // 如果 crypto API 失败,回退到优化哈希
126
+ // return optimizedHash(str);
127
+ // }
128
+ // }
129
+ // return optimizedHash(str);
130
+ // }
131
+ /**
132
+ * 同步哈希函数(用于同步场景)
133
+ */ function simpleHash(str) {
134
+ return optimizedHash(str);
135
+ }
136
+ /**
137
+ * 配置序列化缓存(避免重复序列化)
138
+ */ const configStringCache = new Map();
139
+ /**
140
+ * 生成配置哈希(用于缓存键)
141
+ * 优化:缓存序列化结果,避免重复序列化
142
+ */ function generateConfigHash(routes) {
143
+ try {
144
+ // 快速检查:如果路由数量为 0,直接返回
145
+ if (routes.length === 0) {
146
+ return 'empty';
147
+ }
148
+ // 使用路由数量作为快速键的一部分
149
+ const quickKey = `${routes.length}_${routes[0]?.name || ''}_${routes[routes.length - 1]?.name || ''}`;
150
+ // 检查序列化缓存
151
+ if (configStringCache.has(quickKey)) {
152
+ const cachedStr = configStringCache.get(quickKey);
153
+ // 验证缓存是否仍然有效(简单检查)
154
+ const currentStr = JSON.stringify(routes, null, 0).substring(0, 100);
155
+ if (cachedStr.startsWith(currentStr.substring(0, 50))) {
156
+ return simpleHash(cachedStr);
157
+ }
158
+ }
159
+ // 使用 JSON.stringify 生成配置的字符串表示
160
+ // 只包含影响转换结果的字段
161
+ const configStr = JSON.stringify(routes, (key, value)=>{
162
+ // 只序列化相关字段
163
+ if ([
164
+ 'name',
165
+ 'path',
166
+ 'page',
167
+ 'layout',
168
+ 'errors',
169
+ 'loading',
170
+ 'isGroup',
171
+ 'enableRedirection',
172
+ 'children'
173
+ ].includes(key)) {
174
+ return value;
175
+ }
176
+ if (key === 'handle' && value && typeof value === 'object') {
177
+ // 只序列化 handle 的基本字段
178
+ return {
179
+ title: value.title,
180
+ order: value.order
181
+ };
182
+ }
183
+ return undefined;
184
+ });
185
+ // 缓存序列化结果(限制缓存大小)
186
+ if (configStringCache.size < 20) {
187
+ configStringCache.set(quickKey, configStr);
188
+ }
189
+ return simpleHash(configStr);
190
+ } catch {
191
+ // 如果序列化失败,返回空字符串(不使用缓存)
192
+ return '';
193
+ }
194
+ }
195
+ /**
196
+ * 路径验证缓存(已验证的路径)
197
+ */ const validatedPathCache = new Set();
198
+ /**
199
+ * 预编译的正则表达式(用于路径验证)
200
+ */ const PATH_TRAVERSAL_REGEX = /\.\.(\/|\\)|\.\.%2[Ff]|\.\.%5[Cc]|%2[Ee]%2[Ee]%2[Ff]|%2[Ee]%2[Ee]%5[Cc]/i;
201
+ const ABSOLUTE_PATH_REGEX = /^\/|^[A-Za-z]:\\/;
202
+ const CONTROL_CHAR_REGEX = /[\x00-\x1f\x7f]/;
203
+ const NULL_BYTE_REGEX = /%00|\\0|\x00/;
204
+ // 保留供未来使用(命令注入检测)
205
+ // const COMMAND_INJECTION_REGEX = /[;|&$`]/;
206
+ // const ALLOWED_CHARS_REGEX = /^[a-zA-Z0-9\/\-_.@]+$/;
207
+ /**
208
+ * 验证路径是否安全
209
+ * 优化:添加验证缓存、预编译正则、早期返回
210
+ */ function validatePath(path, config) {
211
+ // 早期返回:检查缓存
212
+ if (validatedPathCache.has(path)) {
213
+ return {
214
+ valid: true
215
+ };
216
+ }
217
+ // 早期返回:检查路径长度(最快检查)
218
+ if (path.length > config.maxPathLength) {
219
+ return {
220
+ valid: false,
221
+ error: process.env.NODE_ENV === 'development' ? `路径长度超过最大限制 ${config.maxPathLength} 字符` : '路径验证失败'
222
+ };
223
+ }
224
+ // 早期返回:检查空字符串
225
+ if (path.length === 0) {
226
+ return {
227
+ valid: false,
228
+ error: '路径不能为空'
229
+ };
230
+ }
231
+ // 检查路径遍历攻击(使用预编译正则)
232
+ if (PATH_TRAVERSAL_REGEX.test(path)) {
233
+ return {
234
+ valid: false,
235
+ error: process.env.NODE_ENV === 'development' ? '路径包含路径遍历字符(../),可能存在安全风险' : '路径验证失败'
236
+ };
237
+ }
238
+ // 检查空字节注入
239
+ if (NULL_BYTE_REGEX.test(path)) {
240
+ return {
241
+ valid: false,
242
+ error: process.env.NODE_ENV === 'development' ? '路径包含空字节,可能存在安全风险' : '路径验证失败'
243
+ };
244
+ }
245
+ // 检查控制字符
246
+ if (CONTROL_CHAR_REGEX.test(path)) {
247
+ return {
248
+ valid: false,
249
+ error: process.env.NODE_ENV === 'development' ? '路径包含控制字符,可能存在安全风险' : '路径验证失败'
250
+ };
251
+ }
252
+ // 检查命令注入字符(可选,根据需求决定是否启用)
253
+ // if (COMMAND_INJECTION_REGEX.test(path)) {
254
+ // return {
255
+ // valid: false,
256
+ // error: process.env.NODE_ENV === 'development'
257
+ // ? '路径包含潜在的命令注入字符'
258
+ // : '路径验证失败',
259
+ // };
260
+ // }
261
+ // 检查绝对路径(使用预编译正则)
262
+ if (!config.allowAbsolutePaths && ABSOLUTE_PATH_REGEX.test(path)) {
263
+ return {
264
+ valid: false,
265
+ error: process.env.NODE_ENV === 'development' ? '不允许使用绝对路径' : '路径验证失败'
266
+ };
267
+ }
268
+ // 检查路径前缀白名单(优化:使用 Set 提高查找速度)
269
+ if (config.allowedPathPrefixes.length > 0) {
270
+ const prefixSet = new Set(config.allowedPathPrefixes);
271
+ const isAllowed = Array.from(prefixSet).some((prefix)=>path.startsWith(prefix));
272
+ if (!isAllowed) {
273
+ return {
274
+ valid: false,
275
+ error: process.env.NODE_ENV === 'development' ? `路径不在允许的前缀列表中: ${config.allowedPathPrefixes.join(', ')}` : '路径验证失败'
276
+ };
277
+ }
278
+ }
279
+ // 使用 SecurityUtils 验证输入(最后检查,因为可能较慢)
280
+ const validation = SecurityUtils.validateInput(path);
281
+ if (!validation.safe) {
282
+ return {
283
+ valid: false,
284
+ error: process.env.NODE_ENV === 'development' ? validation.reason || '路径包含潜在的危险内容' : '路径验证失败'
285
+ };
286
+ }
287
+ // 验证通过,添加到缓存(限制缓存大小)
288
+ if (validatedPathCache.size < 1000) {
289
+ validatedPathCache.add(path);
290
+ }
291
+ return {
292
+ valid: true
293
+ };
294
+ }
295
+ /**
296
+ * 预编译的正则表达式(用于路径规范化)
297
+ */ const NORMALIZE_REGEX = {
298
+ multipleSlashes: /\/+/g,
299
+ dotSlash: /\/\.\//g,
300
+ trailingDot: /\/\.$/
301
+ };
302
+ /**
303
+ * 规范化路径
304
+ * 优化:合并正则表达式,减少替换次数
305
+ */ function normalizePath(path) {
306
+ // 合并多个替换操作,减少字符串遍历次数
307
+ return path.replace(NORMALIZE_REGEX.multipleSlashes, '/').replace(NORMALIZE_REGEX.dotSlash, '/').replace(NORMALIZE_REGEX.trailingDot, '').trim();
308
+ }
309
+ /**
310
+ * 类型守卫:检查是否为有效路径字符串
311
+ */ function isValidPathString(path) {
312
+ return typeof path === 'string' && path.length > 0;
313
+ }
314
+ /**
315
+ * 类型守卫:检查是否为动态导入函数
316
+ */ function isComponentImport(path) {
317
+ return typeof path === 'function';
318
+ }
319
+ /**
320
+ * 创建动态导入函数
321
+ *
322
+ * 将组件路径字符串转换为动态导入函数,用于代码分割和懒加载
323
+ *
324
+ * @param path - 组件路径字符串,支持相对路径和别名路径(如 '@/pages/home.tsx')
325
+ * @returns 返回动态导入函数,调用后会返回 Promise,resolve 后的值为组件模块对象
326
+ *
327
+ * @remarks
328
+ * - 使用 `@vite-ignore` 注释告诉 Vite 忽略此动态导入的静态分析
329
+ * - 使用类型断言 `as any` 是因为 TypeScript 的 `import()` 需要静态字符串字面量
330
+ * - 在运行时,我们可以使用动态路径进行导入
331
+ * - 组件必须使用默认导出(export default)
332
+ *
333
+ * @example
334
+ * ```typescript
335
+ * const importFn = createDynamicImport('@/pages/home.tsx');
336
+ * const module = await importFn();
337
+ * const HomePage = module.default;
338
+ * ```
339
+ */ function createDynamicImport(path) {
340
+ // 使用类型断言,因为 TypeScript 的 import() 需要静态字符串
341
+ // 但在运行时,我们可以使用动态路径
342
+ return ()=>import(path);
343
+ }
344
+ /**
345
+ * 提取并验证组件路径到 Map 中
346
+ *
347
+ * 如果路径有效且 Map 中不存在,则创建动态导入函数并存储到 Map 中
348
+ * 这样可以避免重复创建相同路径的动态导入函数,提高性能
349
+ *
350
+ * @param path - 组件路径,可能是字符串、动态导入函数、null 或 undefined
351
+ * @param map - 目标 Map,用于存储路径到动态导入函数的映射
352
+ * @param config - 路径验证配置
353
+ * @param options - 转换选项
354
+ * @returns 如果成功提取,返回动态导入函数;否则返回 null
355
+ *
356
+ * @remarks
357
+ * - 如果 path 是函数,直接返回,不添加到 Map(函数本身就可以直接使用)
358
+ * - 只有当路径是有效的非空字符串时才会处理并添加到 Map
359
+ * - 如果 Map 中已存在该路径,则直接返回已有的导入函数
360
+ * - 优化:使用 `get()` 一次获取,判断是否为 undefined,减少函数调用
361
+ * - 会进行路径验证和清理
362
+ *
363
+ * @example
364
+ * ```typescript
365
+ * const pages = new Map<string, () => Promise<any>>();
366
+ * const importFn1 = extractAndValidatePath('@/pages/home.tsx', pages, config, options);
367
+ * const importFn2 = extractAndValidatePath(() => import('@/pages/home.tsx'), pages, config, options);
368
+ * ```
369
+ */ function extractAndValidatePath(path, map, config, options) {
370
+ // 早期返回:如果是函数,直接返回,不添加到 Map
371
+ if (isComponentImport(path)) {
372
+ return path;
373
+ }
374
+ // 早期返回:检查是否为有效路径字符串
375
+ if (!isValidPathString(path)) {
376
+ return null;
377
+ }
378
+ // 规范化路径
379
+ const normalizedPath = normalizePath(path);
380
+ // 优化:先检查 Map 中是否已存在(避免不必要的验证)
381
+ const existingImport = map.get(normalizedPath);
382
+ if (existingImport !== undefined) {
383
+ return existingImport;
384
+ }
385
+ // 路径验证(仅在 Map 中不存在时进行)
386
+ if (config.enablePathValidation) {
387
+ const validation = validatePath(normalizedPath, config);
388
+ if (!validation.valid) {
389
+ // 生产环境错误信息脱敏
390
+ const errorMessage = process.env.NODE_ENV === 'development' ? `路径验证失败: ${validation.error}` : '路径验证失败';
391
+ const error = new SecurityError(errorMessage, undefined, process.env.NODE_ENV === 'development' ? {
392
+ path: normalizedPath
393
+ } : {});
394
+ if (options.enableDebugLog) {
395
+ logger.error('路径验证失败:', error);
396
+ }
397
+ // 开发环境抛出错误,生产环境记录警告并跳过
398
+ if (process.env.NODE_ENV === 'development') {
399
+ throw error;
400
+ } else {
401
+ // 生产环境日志脱敏
402
+ logger.warn('路径验证失败,已跳过');
403
+ return null;
404
+ }
405
+ }
406
+ }
407
+ // 创建动态导入函数并存储
408
+ const importFn = createDynamicImport(normalizedPath);
409
+ map.set(normalizedPath, importFn);
410
+ if (options.enableDebugLog) {
411
+ logger.debug('提取路径:', normalizedPath);
412
+ }
413
+ return importFn;
414
+ }
415
+ /**
416
+ * 对象池:复用栈节点对象,减少 GC 压力
417
+ */ let StackNodePool = class StackNodePool {
418
+ acquire(route, depth) {
419
+ if (this.pool.length > 0) {
420
+ const node = this.pool.pop();
421
+ node.route = route;
422
+ node.depth = depth;
423
+ return node;
424
+ }
425
+ return {
426
+ route,
427
+ depth
428
+ };
429
+ }
430
+ release(node) {
431
+ if (this.pool.length < this.maxPoolSize) {
432
+ this.pool.push(node);
433
+ }
434
+ }
435
+ constructor(){
436
+ _define_property(this, "pool", []);
437
+ _define_property(this, "maxPoolSize", 100);
438
+ }
439
+ };
440
+ const stackNodePool = new StackNodePool();
441
+ /**
442
+ * 只提取组件路径到 Map 中,不转换路由配置
443
+ *
444
+ * 使用迭代方式遍历所有路由(包括子路由),提取组件路径到对应的 Map 中
445
+ * 这种设计可以确保:
446
+ * - 相同的组件路径只会创建一个动态导入函数
447
+ * - 使用迭代而非递归,避免栈溢出
448
+ * - 优化:支持并行处理、使用对象池、预分配数组
449
+ *
450
+ * @param routes - 原始路由配置列表
451
+ * @param result - 结果对象,用于累积收集的组件路径
452
+ * @param config - 路径验证配置
453
+ * @param options - 转换选项
454
+ * @param maxDepth - 最大递归深度
455
+ */ async function extractPathsOnly(routes, result, config, options, maxDepth) {
456
+ const enableParallel = options.performance?.enableParallelProcessing ?? true;
457
+ const batchSize = options.performance?.parallelBatchSize ?? 10;
458
+ // 如果启用并行处理且路由数量较多,使用并行处理
459
+ if (enableParallel && routes.length > batchSize) {
460
+ // 收集所有需要处理的路径(只收集字符串类型,函数类型不需要处理)
461
+ const pathsToProcess = [];
462
+ // 遍历所有路由,收集路径
463
+ const stack = [];
464
+ for(let i = routes.length - 1; i >= 0; i--){
465
+ stack.push({
466
+ route: routes[i],
467
+ depth: 0
468
+ });
469
+ }
470
+ while(stack.length > 0){
471
+ const { route, depth } = stack.pop();
472
+ if (depth > maxDepth) {
473
+ logger.warn(`路径提取达到最大深度 ${maxDepth},跳过路由:`, route.name);
474
+ continue;
475
+ }
476
+ // 收集路径(只收集字符串类型,函数类型不需要处理,会直接使用)
477
+ if (route.page && typeof route.page === 'string') {
478
+ pathsToProcess.push({
479
+ path: route.page,
480
+ map: result.pages
481
+ });
482
+ }
483
+ if (route.layout && typeof route.layout === 'string') {
484
+ pathsToProcess.push({
485
+ path: route.layout,
486
+ map: result.layouts
487
+ });
488
+ }
489
+ if (route.errors && typeof route.errors === 'string') {
490
+ pathsToProcess.push({
491
+ path: route.errors,
492
+ map: result.errors
493
+ });
494
+ }
495
+ if (route.loading && typeof route.loading === 'string') {
496
+ pathsToProcess.push({
497
+ path: route.loading,
498
+ map: result.loadings
499
+ });
500
+ }
501
+ // 处理子路由
502
+ if (route.children && Array.isArray(route.children) && route.children.length > 0) {
503
+ for(let i = route.children.length - 1; i >= 0; i--){
504
+ stack.push({
505
+ route: route.children[i],
506
+ depth: depth + 1
507
+ });
508
+ }
509
+ }
510
+ }
511
+ // 并行处理路径(分批处理)
512
+ for(let i = 0; i < pathsToProcess.length; i += batchSize){
513
+ const batch = pathsToProcess.slice(i, i + batchSize);
514
+ await Promise.all(batch.map(({ path, map })=>Promise.resolve(extractAndValidatePath(path, map, config, options))));
515
+ }
516
+ } else {
517
+ // 串行处理(原有逻辑,优化:使用对象池)
518
+ const stack = [];
519
+ // 初始化栈:将所有路由推入栈中
520
+ for(let i = routes.length - 1; i >= 0; i--){
521
+ stack.push(stackNodePool.acquire(routes[i], 0));
522
+ }
523
+ // 迭代处理栈中的路由
524
+ while(stack.length > 0){
525
+ const node = stack.pop();
526
+ const { route, depth } = node;
527
+ // 检查递归深度
528
+ if (depth > maxDepth) {
529
+ logger.warn(`路径提取达到最大深度 ${maxDepth},跳过路由:`, route.name);
530
+ stackNodePool.release(node);
531
+ continue;
532
+ }
533
+ // 提取组件路径到 Map 中(同时进行验证)
534
+ extractAndValidatePath(route.page, result.pages, config, options);
535
+ extractAndValidatePath(route.layout, result.layouts, config, options);
536
+ extractAndValidatePath(route.errors, result.errors, config, options);
537
+ extractAndValidatePath(route.loading, result.loadings, config, options);
538
+ // 处理子路由
539
+ if (route.children && Array.isArray(route.children) && route.children.length > 0) {
540
+ // 将子路由推入栈中(逆序推入,保证处理顺序正确)
541
+ for(let i = route.children.length - 1; i >= 0; i--){
542
+ stack.push(stackNodePool.acquire(route.children[i], depth + 1));
543
+ }
544
+ }
545
+ // 释放节点到对象池
546
+ stackNodePool.release(node);
547
+ }
548
+ }
549
+ }
550
+ /**
551
+ * 清理过期缓存
552
+ * 优化:使用 LRU 缓存的清理方法
553
+ */ function cleanupExpiredCache(cacheTTL) {
554
+ if (transformCache) {
555
+ transformCache.cleanupExpired(cacheTTL);
556
+ }
557
+ }
558
+ /**
559
+ * 转换路由配置:提取组件路径到 Map 中,返回原始路由配置
560
+ *
561
+ * 此函数是路由转换的核心函数,主要完成以下任务:
562
+ * 1. 递归提取路由配置中的所有组件路径(page、layout、errors、loading)
563
+ * 2. 将组件路径字符串转换为动态导入函数
564
+ * 3. 将动态导入函数存储在对应的 Map 中,key 为路径字符串,确保不重复
565
+ * 4. 返回原始路由配置列表,不进行转换
566
+ *
567
+ * @param routes - 路由配置列表,可以是:
568
+ * - 路由配置数组(RouteConfig[])
569
+ * - 返回路由配置数组的异步函数(() => Promise<RouteConfig[]>)
570
+ * 支持异步函数是为了支持动态加载路由配置(如从服务器获取)
571
+ * @param options - 转换配置选项
572
+ * @returns 包含以下内容的结果对象:
573
+ * - `pages`: 页面组件路径到动态导入函数的 Map
574
+ * - `layouts`: 布局组件路径到动态导入函数的 Map
575
+ * - `errors`: 错误组件路径到动态导入函数的 Map
576
+ * - `loadings`: 加载组件路径到动态导入函数的 Map
577
+ * - `routes`: 原始路由配置列表,不进行转换
578
+ *
579
+ * @remarks
580
+ * - 如果 `routes` 为 null、undefined 或空数组,返回空结果对象
581
+ * - 如果 `routes` 是函数但返回的不是数组,返回空结果对象
582
+ * - 相同的组件路径只会创建一个动态导入函数,存储在 Map 中复用
583
+ * - 路由配置保持原始格式,组件路径仍为字符串
584
+ * - 支持嵌套路由,会递归处理所有层级的子路由
585
+ * - 支持缓存,相同配置会直接返回缓存结果
586
+ *
587
+ * @example
588
+ * ```typescript
589
+ * // 示例 1: 使用数组配置
590
+ * const result = await transformRoutes([
591
+ * {
592
+ * name: 'home',
593
+ * path: '/',
594
+ * page: '@/pages/home.tsx',
595
+ * errors: '@/pages/error.tsx',
596
+ * handle: { title: '首页', order: 1 },
597
+ * },
598
+ * ]);
599
+ *
600
+ * // 示例 2: 使用异步函数配置
601
+ * const result = await transformRoutes(async () => {
602
+ * const response = await fetch('/api/routes');
603
+ * return response.json();
604
+ * });
605
+ *
606
+ * // 示例 3: 使用配置选项
607
+ * const result = await transformRoutes(routes, {
608
+ * pathValidation: {
609
+ * enablePathValidation: true,
610
+ * allowedPathPrefixes: ['@/pages', '@/components'],
611
+ * },
612
+ * performance: {
613
+ * enableCache: true,
614
+ * cacheTTL: 10 * 60 * 1000, // 10 分钟
615
+ * },
616
+ * });
617
+ * ```
618
+ */ export async function transformRoutes(routes, options = {}) {
619
+ const startTime = performance.now();
620
+ const mergedOptions = {
621
+ pathValidation: {
622
+ ...DEFAULT_OPTIONS.pathValidation,
623
+ ...options.pathValidation
624
+ },
625
+ performance: {
626
+ ...DEFAULT_OPTIONS.performance,
627
+ ...options.performance
628
+ },
629
+ enableDebugLog: options.enableDebugLog ?? DEFAULT_OPTIONS.enableDebugLog
630
+ };
631
+ // 早期返回:如果 routes 为空或未定义,直接返回空结果
632
+ if (!routes) {
633
+ if (mergedOptions.enableDebugLog) {
634
+ logger.debug('路由配置为空,返回空结果');
635
+ }
636
+ return {
637
+ pages: new Map(),
638
+ layouts: new Map(),
639
+ errors: new Map(),
640
+ loadings: new Map(),
641
+ routes: []
642
+ };
643
+ }
644
+ // 处理 routes 可能是函数的情况
645
+ let routesArray;
646
+ try {
647
+ routesArray = typeof routes === 'function' ? await routes() : routes;
648
+ } catch (error) {
649
+ const err = error instanceof Error ? error : new Error('路由配置加载失败');
650
+ logger.error('路由配置加载失败:', err);
651
+ throw new ValidationError('路由配置加载失败', {
652
+ originalError: err
653
+ });
654
+ }
655
+ // 早期返回:如果 routesArray 不是数组,直接返回空结果
656
+ if (!Array.isArray(routesArray) || routesArray.length === 0) {
657
+ if (mergedOptions.enableDebugLog) {
658
+ logger.debug('路由配置不是数组或为空,返回空结果');
659
+ }
660
+ return {
661
+ pages: new Map(),
662
+ layouts: new Map(),
663
+ errors: new Map(),
664
+ loadings: new Map(),
665
+ routes: []
666
+ };
667
+ }
668
+ // 检查缓存
669
+ const cacheTTL = mergedOptions.performance.cacheTTL ?? DEFAULT_OPTIONS.performance.cacheTTL;
670
+ const maxCacheSize = mergedOptions.performance.maxCacheSize ?? DEFAULT_OPTIONS.performance.maxCacheSize;
671
+ if (mergedOptions.performance.enableCache) {
672
+ // 初始化 LRU 缓存(如果尚未初始化或大小发生变化)
673
+ if (!transformCache || transformCache.size() !== maxCacheSize) {
674
+ transformCache = new LRUCache(maxCacheSize);
675
+ }
676
+ const configHash = generateConfigHash(routesArray);
677
+ if (configHash) {
678
+ const cached = transformCache.get(configHash);
679
+ if (cached && Date.now() - cached.timestamp < cacheTTL) {
680
+ if (mergedOptions.enableDebugLog) {
681
+ logger.debug('使用缓存结果');
682
+ }
683
+ // 直接返回缓存结果(LRU 缓存已处理访问时间更新)
684
+ return cached.result;
685
+ }
686
+ }
687
+ // 清理过期缓存
688
+ cleanupExpiredCache(cacheTTL);
689
+ }
690
+ // 初始化结果对象
691
+ const result = {
692
+ pages: new Map(),
693
+ layouts: new Map(),
694
+ errors: new Map(),
695
+ loadings: new Map(),
696
+ routes: []
697
+ };
698
+ try {
699
+ // 性能监控:记录各阶段耗时
700
+ const extractStartTime = performance.now();
701
+ // 提取组件路径到 Map 中(不转换路由配置)
702
+ const pathValidation = {
703
+ enablePathValidation: mergedOptions.pathValidation.enablePathValidation ?? DEFAULT_OPTIONS.pathValidation.enablePathValidation,
704
+ allowedPathPrefixes: mergedOptions.pathValidation.allowedPathPrefixes ?? DEFAULT_OPTIONS.pathValidation.allowedPathPrefixes,
705
+ maxPathLength: mergedOptions.pathValidation.maxPathLength ?? DEFAULT_OPTIONS.pathValidation.maxPathLength,
706
+ allowAbsolutePaths: mergedOptions.pathValidation.allowAbsolutePaths ?? DEFAULT_OPTIONS.pathValidation.allowAbsolutePaths
707
+ };
708
+ const maxRecursionDepth = mergedOptions.performance.maxRecursionDepth ?? DEFAULT_OPTIONS.performance.maxRecursionDepth;
709
+ // 异步提取路径(支持并行处理)
710
+ await extractPathsOnly(routesArray, result, pathValidation, mergedOptions, maxRecursionDepth);
711
+ const extractEndTime = performance.now();
712
+ const extractDuration = extractEndTime - extractStartTime;
713
+ // 直接使用原始路由配置,不进行转换
714
+ result.routes = routesArray;
715
+ // 缓存结果
716
+ const cacheStartTime = performance.now();
717
+ if (mergedOptions.performance.enableCache && transformCache) {
718
+ const configHash = generateConfigHash(routesArray);
719
+ if (configHash) {
720
+ // 使用结构化克隆(如果可用)或浅拷贝 + 深拷贝 routes
721
+ let cachedResult;
722
+ if (typeof structuredClone !== 'undefined') {
723
+ // 使用结构化克隆(更快且更安全)
724
+ cachedResult = structuredClone(result);
725
+ // Map 需要手动克隆(structuredClone 可能不支持 Map)
726
+ cachedResult.pages = new Map(result.pages);
727
+ cachedResult.layouts = new Map(result.layouts);
728
+ cachedResult.errors = new Map(result.errors);
729
+ cachedResult.loadings = new Map(result.loadings);
730
+ } else {
731
+ // 回退到手动深拷贝
732
+ cachedResult = {
733
+ pages: new Map(result.pages),
734
+ layouts: new Map(result.layouts),
735
+ errors: new Map(result.errors),
736
+ loadings: new Map(result.loadings),
737
+ routes: JSON.parse(JSON.stringify(result.routes))
738
+ };
739
+ }
740
+ transformCache.set(configHash, {
741
+ result: cachedResult,
742
+ timestamp: Date.now(),
743
+ hash: configHash,
744
+ accessTime: Date.now()
745
+ });
746
+ }
747
+ }
748
+ const cacheEndTime = performance.now();
749
+ const cacheDuration = cacheEndTime - cacheStartTime;
750
+ const endTime = performance.now();
751
+ const totalDuration = endTime - startTime;
752
+ if (mergedOptions.enableDebugLog) {
753
+ // 详细的性能报告
754
+ logger.debug(`路由转换完成,总耗时: ${totalDuration.toFixed(2)}ms`, {
755
+ routeCount: result.routes.length,
756
+ pageCount: result.pages.size,
757
+ layoutCount: result.layouts.size,
758
+ errorCount: result.errors.size,
759
+ loadingCount: result.loadings.size,
760
+ performance: {
761
+ extractDuration: `${extractDuration.toFixed(2)}ms`,
762
+ cacheDuration: `${cacheDuration.toFixed(2)}ms`,
763
+ totalDuration: `${totalDuration.toFixed(2)}ms`
764
+ },
765
+ cache: {
766
+ hit: transformCache ? 'miss' : 'disabled',
767
+ size: transformCache?.size() ?? 0
768
+ }
769
+ });
770
+ }
771
+ return result;
772
+ } catch (error) {
773
+ const err = error instanceof Error ? error : new Error('路由转换失败');
774
+ logger.error('路由转换失败:', err);
775
+ throw new ValidationError('路由转换失败', {
776
+ originalError: err
777
+ });
778
+ }
779
+ }
780
+
781
+ //# sourceMappingURL=transform.js.map