@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.
- package/LICENSE +191 -0
- package/README.md +130 -0
- package/dist/components/index.cjs +6 -0
- package/dist/components/index.cjs.map +1 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +3 -0
- package/dist/components/index.js.map +1 -0
- package/dist/core/Test.cjs +66 -0
- package/dist/core/Test.cjs.map +1 -0
- package/dist/core/Test.d.ts +6 -0
- package/dist/core/Test.d.ts.map +1 -0
- package/dist/core/Test.js +15 -0
- package/dist/core/Test.js.map +1 -0
- package/dist/core/app/AppContext.cjs +344 -0
- package/dist/core/app/AppContext.cjs.map +1 -0
- package/dist/core/app/AppContext.d.ts +110 -0
- package/dist/core/app/AppContext.d.ts.map +1 -0
- package/dist/core/app/AppContext.js +333 -0
- package/dist/core/app/AppContext.js.map +1 -0
- package/dist/core/app/AppContext.types.cjs +6 -0
- package/dist/core/app/AppContext.types.cjs.map +1 -0
- package/dist/core/app/AppContext.types.d.ts +147 -0
- package/dist/core/app/AppContext.types.d.ts.map +1 -0
- package/dist/core/app/AppContext.types.js +5 -0
- package/dist/core/app/AppContext.types.js.map +1 -0
- package/dist/core/app/BasicLayout.cjs +89 -0
- package/dist/core/app/BasicLayout.cjs.map +1 -0
- package/dist/core/app/BasicLayout.d.ts +13 -0
- package/dist/core/app/BasicLayout.d.ts.map +1 -0
- package/dist/core/app/BasicLayout.js +39 -0
- package/dist/core/app/BasicLayout.js.map +1 -0
- package/dist/core/app/DefaultApp.cjs +201 -0
- package/dist/core/app/DefaultApp.cjs.map +1 -0
- package/dist/core/app/DefaultApp.d.ts +31 -0
- package/dist/core/app/DefaultApp.d.ts.map +1 -0
- package/dist/core/app/DefaultApp.js +192 -0
- package/dist/core/app/DefaultApp.js.map +1 -0
- package/dist/core/app/index.cjs +43 -0
- package/dist/core/app/index.cjs.map +1 -0
- package/dist/core/app/index.d.ts +9 -0
- package/dist/core/app/index.d.ts.map +1 -0
- package/dist/core/app/index.js +7 -0
- package/dist/core/app/index.js.map +1 -0
- package/dist/core/config/AppConfig.cjs +141 -0
- package/dist/core/config/AppConfig.cjs.map +1 -0
- package/dist/core/config/AppConfig.d.ts +89 -0
- package/dist/core/config/AppConfig.d.ts.map +1 -0
- package/dist/core/config/AppConfig.js +133 -0
- package/dist/core/config/AppConfig.js.map +1 -0
- package/dist/core/config/ConfigLoader.cjs +243 -0
- package/dist/core/config/ConfigLoader.cjs.map +1 -0
- package/dist/core/config/ConfigLoader.d.ts +103 -0
- package/dist/core/config/ConfigLoader.d.ts.map +1 -0
- package/dist/core/config/ConfigLoader.js +229 -0
- package/dist/core/config/ConfigLoader.js.map +1 -0
- package/dist/core/config/ConfigValidator.cjs +135 -0
- package/dist/core/config/ConfigValidator.cjs.map +1 -0
- package/dist/core/config/ConfigValidator.d.ts +85 -0
- package/dist/core/config/ConfigValidator.d.ts.map +1 -0
- package/dist/core/config/ConfigValidator.js +121 -0
- package/dist/core/config/ConfigValidator.js.map +1 -0
- package/dist/core/config/index.cjs +30 -0
- package/dist/core/config/index.cjs.map +1 -0
- package/dist/core/config/index.d.ts +7 -0
- package/dist/core/config/index.d.ts.map +1 -0
- package/dist/core/config/index.js +7 -0
- package/dist/core/config/index.js.map +1 -0
- package/dist/core/dev/DevTools.cjs +374 -0
- package/dist/core/dev/DevTools.cjs.map +1 -0
- package/dist/core/dev/DevTools.d.ts +47 -0
- package/dist/core/dev/DevTools.d.ts.map +1 -0
- package/dist/core/dev/DevTools.js +363 -0
- package/dist/core/dev/DevTools.js.map +1 -0
- package/dist/core/error/ErrorBoundary.cjs +331 -0
- package/dist/core/error/ErrorBoundary.cjs.map +1 -0
- package/dist/core/error/ErrorBoundary.d.ts +123 -0
- package/dist/core/error/ErrorBoundary.d.ts.map +1 -0
- package/dist/core/error/ErrorBoundary.js +327 -0
- package/dist/core/error/ErrorBoundary.js.map +1 -0
- package/dist/core/error/index.cjs +26 -0
- package/dist/core/error/index.cjs.map +1 -0
- package/dist/core/error/index.d.ts +6 -0
- package/dist/core/error/index.d.ts.map +1 -0
- package/dist/core/error/index.js +5 -0
- package/dist/core/error/index.js.map +1 -0
- package/dist/core/index.cjs +140 -0
- package/dist/core/index.cjs.map +1 -0
- package/dist/core/index.d.ts +53 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +66 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/initialization/InitializationErrorThrower.cjs +77 -0
- package/dist/core/initialization/InitializationErrorThrower.cjs.map +1 -0
- package/dist/core/initialization/InitializationErrorThrower.d.ts +8 -0
- package/dist/core/initialization/InitializationErrorThrower.d.ts.map +1 -0
- package/dist/core/initialization/InitializationErrorThrower.js +30 -0
- package/dist/core/initialization/InitializationErrorThrower.js.map +1 -0
- package/dist/core/initialization/index.cjs +28 -0
- package/dist/core/initialization/index.cjs.map +1 -0
- package/dist/core/initialization/index.d.ts +8 -0
- package/dist/core/initialization/index.d.ts.map +1 -0
- package/dist/core/initialization/index.js +7 -0
- package/dist/core/initialization/index.js.map +1 -0
- package/dist/core/initialization/initialization.cjs +211 -0
- package/dist/core/initialization/initialization.cjs.map +1 -0
- package/dist/core/initialization/initialization.d.ts +127 -0
- package/dist/core/initialization/initialization.d.ts.map +1 -0
- package/dist/core/initialization/initialization.js +224 -0
- package/dist/core/initialization/initialization.js.map +1 -0
- package/dist/core/initialization/initializationErrorState.cjs +68 -0
- package/dist/core/initialization/initializationErrorState.cjs.map +1 -0
- package/dist/core/initialization/initializationErrorState.d.ts +36 -0
- package/dist/core/initialization/initializationErrorState.d.ts.map +1 -0
- package/dist/core/initialization/initializationErrorState.js +60 -0
- package/dist/core/initialization/initializationErrorState.js.map +1 -0
- package/dist/core/middleware.cjs +75 -0
- package/dist/core/middleware.cjs.map +1 -0
- package/dist/core/middleware.d.ts +37 -0
- package/dist/core/middleware.d.ts.map +1 -0
- package/dist/core/middleware.js +61 -0
- package/dist/core/middleware.js.map +1 -0
- package/dist/core/plugin/PluginEventBus.cjs +300 -0
- package/dist/core/plugin/PluginEventBus.cjs.map +1 -0
- package/dist/core/plugin/PluginEventBus.d.ts +170 -0
- package/dist/core/plugin/PluginEventBus.d.ts.map +1 -0
- package/dist/core/plugin/PluginEventBus.js +286 -0
- package/dist/core/plugin/PluginEventBus.js.map +1 -0
- package/dist/core/plugin/PluginSandbox.cjs +139 -0
- package/dist/core/plugin/PluginSandbox.cjs.map +1 -0
- package/dist/core/plugin/PluginSandbox.d.ts +102 -0
- package/dist/core/plugin/PluginSandbox.d.ts.map +1 -0
- package/dist/core/plugin/PluginSandbox.js +125 -0
- package/dist/core/plugin/PluginSandbox.js.map +1 -0
- package/dist/core/plugin.cjs +496 -0
- package/dist/core/plugin.cjs.map +1 -0
- package/dist/core/plugin.d.ts +221 -0
- package/dist/core/plugin.d.ts.map +1 -0
- package/dist/core/plugin.js +438 -0
- package/dist/core/plugin.js.map +1 -0
- package/dist/core/router/RouterManager.cjs +239 -0
- package/dist/core/router/RouterManager.cjs.map +1 -0
- package/dist/core/router/RouterManager.d.ts +83 -0
- package/dist/core/router/RouterManager.d.ts.map +1 -0
- package/dist/core/router/RouterManager.js +223 -0
- package/dist/core/router/RouterManager.js.map +1 -0
- package/dist/core/router/adapter/AdapterManager.cjs +237 -0
- package/dist/core/router/adapter/AdapterManager.cjs.map +1 -0
- package/dist/core/router/adapter/AdapterManager.d.ts +95 -0
- package/dist/core/router/adapter/AdapterManager.d.ts.map +1 -0
- package/dist/core/router/adapter/AdapterManager.js +221 -0
- package/dist/core/router/adapter/AdapterManager.js.map +1 -0
- package/dist/core/router/adapter/index.cjs +24 -0
- package/dist/core/router/adapter/index.cjs.map +1 -0
- package/dist/core/router/adapter/index.d.ts +7 -0
- package/dist/core/router/adapter/index.d.ts.map +1 -0
- package/dist/core/router/adapter/index.js +7 -0
- package/dist/core/router/adapter/index.js.map +1 -0
- package/dist/core/router/adapter/react-router/ReactRouterAdapter.cjs +130 -0
- package/dist/core/router/adapter/react-router/ReactRouterAdapter.cjs.map +1 -0
- package/dist/core/router/adapter/react-router/ReactRouterAdapter.d.ts +44 -0
- package/dist/core/router/adapter/react-router/ReactRouterAdapter.d.ts.map +1 -0
- package/dist/core/router/adapter/react-router/ReactRouterAdapter.js +116 -0
- package/dist/core/router/adapter/react-router/ReactRouterAdapter.js.map +1 -0
- package/dist/core/router/adapter/react-router/index.cjs +22 -0
- package/dist/core/router/adapter/react-router/index.cjs.map +1 -0
- package/dist/core/router/adapter/react-router/index.d.ts +5 -0
- package/dist/core/router/adapter/react-router/index.d.ts.map +1 -0
- package/dist/core/router/adapter/react-router/index.js +5 -0
- package/dist/core/router/adapter/react-router/index.js.map +1 -0
- package/dist/core/router/adapter/types.cjs +8 -0
- package/dist/core/router/adapter/types.cjs.map +1 -0
- package/dist/core/router/adapter/types.d.ts +112 -0
- package/dist/core/router/adapter/types.d.ts.map +1 -0
- package/dist/core/router/adapter/types.js +7 -0
- package/dist/core/router/adapter/types.js.map +1 -0
- package/dist/core/router/dev/RouterDevTools.cjs +410 -0
- package/dist/core/router/dev/RouterDevTools.cjs.map +1 -0
- package/dist/core/router/dev/RouterDevTools.d.ts +10 -0
- package/dist/core/router/dev/RouterDevTools.d.ts.map +1 -0
- package/dist/core/router/dev/RouterDevTools.js +363 -0
- package/dist/core/router/dev/RouterDevTools.js.map +1 -0
- package/dist/core/router/dev/index.cjs +22 -0
- package/dist/core/router/dev/index.cjs.map +1 -0
- package/dist/core/router/dev/index.d.ts +5 -0
- package/dist/core/router/dev/index.d.ts.map +1 -0
- package/dist/core/router/dev/index.js +5 -0
- package/dist/core/router/dev/index.js.map +1 -0
- package/dist/core/router/dynamic/DynamicRouteManager.cjs +195 -0
- package/dist/core/router/dynamic/DynamicRouteManager.cjs.map +1 -0
- package/dist/core/router/dynamic/DynamicRouteManager.d.ts +72 -0
- package/dist/core/router/dynamic/DynamicRouteManager.d.ts.map +1 -0
- package/dist/core/router/dynamic/DynamicRouteManager.js +179 -0
- package/dist/core/router/dynamic/DynamicRouteManager.js.map +1 -0
- package/dist/core/router/dynamic/index.cjs +22 -0
- package/dist/core/router/dynamic/index.cjs.map +1 -0
- package/dist/core/router/dynamic/index.d.ts +5 -0
- package/dist/core/router/dynamic/index.d.ts.map +1 -0
- package/dist/core/router/dynamic/index.js +5 -0
- package/dist/core/router/dynamic/index.js.map +1 -0
- package/dist/core/router/errors/RouterError.cjs +63 -0
- package/dist/core/router/errors/RouterError.cjs.map +1 -0
- package/dist/core/router/errors/RouterError.d.ts +48 -0
- package/dist/core/router/errors/RouterError.d.ts.map +1 -0
- package/dist/core/router/errors/RouterError.js +48 -0
- package/dist/core/router/errors/RouterError.js.map +1 -0
- package/dist/core/router/errors/index.cjs +22 -0
- package/dist/core/router/errors/index.cjs.map +1 -0
- package/dist/core/router/errors/index.d.ts +5 -0
- package/dist/core/router/errors/index.d.ts.map +1 -0
- package/dist/core/router/errors/index.js +5 -0
- package/dist/core/router/errors/index.js.map +1 -0
- package/dist/core/router/index.cjs +38 -0
- package/dist/core/router/index.cjs.map +1 -0
- package/dist/core/router/index.d.ts +17 -0
- package/dist/core/router/index.d.ts.map +1 -0
- package/dist/core/router/index.js +32 -0
- package/dist/core/router/index.js.map +1 -0
- package/dist/core/router/lifecycle/RouterLifecycleManager.cjs +146 -0
- package/dist/core/router/lifecycle/RouterLifecycleManager.cjs.map +1 -0
- package/dist/core/router/lifecycle/RouterLifecycleManager.d.ts +57 -0
- package/dist/core/router/lifecycle/RouterLifecycleManager.d.ts.map +1 -0
- package/dist/core/router/lifecycle/RouterLifecycleManager.js +130 -0
- package/dist/core/router/lifecycle/RouterLifecycleManager.js.map +1 -0
- package/dist/core/router/lifecycle/index.cjs +22 -0
- package/dist/core/router/lifecycle/index.cjs.map +1 -0
- package/dist/core/router/lifecycle/index.d.ts +5 -0
- package/dist/core/router/lifecycle/index.d.ts.map +1 -0
- package/dist/core/router/lifecycle/index.js +5 -0
- package/dist/core/router/lifecycle/index.js.map +1 -0
- package/dist/core/router/middleware/RouterMiddlewareManager.cjs +175 -0
- package/dist/core/router/middleware/RouterMiddlewareManager.cjs.map +1 -0
- package/dist/core/router/middleware/RouterMiddlewareManager.d.ts +61 -0
- package/dist/core/router/middleware/RouterMiddlewareManager.d.ts.map +1 -0
- package/dist/core/router/middleware/RouterMiddlewareManager.js +159 -0
- package/dist/core/router/middleware/RouterMiddlewareManager.js.map +1 -0
- package/dist/core/router/middleware/auth.cjs +68 -0
- package/dist/core/router/middleware/auth.cjs.map +1 -0
- package/dist/core/router/middleware/auth.d.ts +55 -0
- package/dist/core/router/middleware/auth.d.ts.map +1 -0
- package/dist/core/router/middleware/auth.js +63 -0
- package/dist/core/router/middleware/auth.js.map +1 -0
- package/dist/core/router/middleware/index.cjs +24 -0
- package/dist/core/router/middleware/index.cjs.map +1 -0
- package/dist/core/router/middleware/index.d.ts +7 -0
- package/dist/core/router/middleware/index.d.ts.map +1 -0
- package/dist/core/router/middleware/index.js +7 -0
- package/dist/core/router/middleware/index.js.map +1 -0
- package/dist/core/router/middleware/types.cjs +8 -0
- package/dist/core/router/middleware/types.cjs.map +1 -0
- package/dist/core/router/middleware/types.d.ts +83 -0
- package/dist/core/router/middleware/types.d.ts.map +1 -0
- package/dist/core/router/middleware/types.js +7 -0
- package/dist/core/router/middleware/types.js.map +1 -0
- package/dist/core/router/monitoring/RouterMonitoring.cjs +229 -0
- package/dist/core/router/monitoring/RouterMonitoring.cjs.map +1 -0
- package/dist/core/router/monitoring/RouterMonitoring.d.ts +135 -0
- package/dist/core/router/monitoring/RouterMonitoring.d.ts.map +1 -0
- package/dist/core/router/monitoring/RouterMonitoring.js +213 -0
- package/dist/core/router/monitoring/RouterMonitoring.js.map +1 -0
- package/dist/core/router/monitoring/index.cjs +22 -0
- package/dist/core/router/monitoring/index.cjs.map +1 -0
- package/dist/core/router/monitoring/index.d.ts +5 -0
- package/dist/core/router/monitoring/index.d.ts.map +1 -0
- package/dist/core/router/monitoring/index.js +5 -0
- package/dist/core/router/monitoring/index.js.map +1 -0
- package/dist/core/router/navigation/RouterNavigation.cjs +186 -0
- package/dist/core/router/navigation/RouterNavigation.cjs.map +1 -0
- package/dist/core/router/navigation/RouterNavigation.d.ts +41 -0
- package/dist/core/router/navigation/RouterNavigation.d.ts.map +1 -0
- package/dist/core/router/navigation/RouterNavigation.js +137 -0
- package/dist/core/router/navigation/RouterNavigation.js.map +1 -0
- package/dist/core/router/navigation/index.cjs +22 -0
- package/dist/core/router/navigation/index.cjs.map +1 -0
- package/dist/core/router/navigation/index.d.ts +5 -0
- package/dist/core/router/navigation/index.d.ts.map +1 -0
- package/dist/core/router/navigation/index.js +5 -0
- package/dist/core/router/navigation/index.js.map +1 -0
- package/dist/core/router/performance/RouteCache.cjs +286 -0
- package/dist/core/router/performance/RouteCache.cjs.map +1 -0
- package/dist/core/router/performance/RouteCache.d.ts +108 -0
- package/dist/core/router/performance/RouteCache.d.ts.map +1 -0
- package/dist/core/router/performance/RouteCache.js +270 -0
- package/dist/core/router/performance/RouteCache.js.map +1 -0
- package/dist/core/router/performance/RoutePreloader.cjs +227 -0
- package/dist/core/router/performance/RoutePreloader.cjs.map +1 -0
- package/dist/core/router/performance/RoutePreloader.d.ts +104 -0
- package/dist/core/router/performance/RoutePreloader.d.ts.map +1 -0
- package/dist/core/router/performance/RoutePreloader.js +210 -0
- package/dist/core/router/performance/RoutePreloader.js.map +1 -0
- package/dist/core/router/performance/index.cjs +23 -0
- package/dist/core/router/performance/index.cjs.map +1 -0
- package/dist/core/router/performance/index.d.ts +6 -0
- package/dist/core/router/performance/index.d.ts.map +1 -0
- package/dist/core/router/performance/index.js +6 -0
- package/dist/core/router/performance/index.js.map +1 -0
- package/dist/core/router/plugin/RouterPluginManager.cjs +264 -0
- package/dist/core/router/plugin/RouterPluginManager.cjs.map +1 -0
- package/dist/core/router/plugin/RouterPluginManager.d.ts +75 -0
- package/dist/core/router/plugin/RouterPluginManager.d.ts.map +1 -0
- package/dist/core/router/plugin/RouterPluginManager.js +248 -0
- package/dist/core/router/plugin/RouterPluginManager.js.map +1 -0
- package/dist/core/router/plugin/index.cjs +23 -0
- package/dist/core/router/plugin/index.cjs.map +1 -0
- package/dist/core/router/plugin/index.d.ts +6 -0
- package/dist/core/router/plugin/index.d.ts.map +1 -0
- package/dist/core/router/plugin/index.js +6 -0
- package/dist/core/router/plugin/index.js.map +1 -0
- package/dist/core/router/plugin/types.cjs +41 -0
- package/dist/core/router/plugin/types.cjs.map +1 -0
- package/dist/core/router/plugin/types.d.ts +154 -0
- package/dist/core/router/plugin/types.d.ts.map +1 -0
- package/dist/core/router/plugin/types.js +33 -0
- package/dist/core/router/plugin/types.js.map +1 -0
- package/dist/core/router/types.cjs +6 -0
- package/dist/core/router/types.cjs.map +1 -0
- package/dist/core/router/types.d.ts +439 -0
- package/dist/core/router/types.d.ts.map +1 -0
- package/dist/core/router/types.js +5 -0
- package/dist/core/router/types.js.map +1 -0
- package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.cjs +139 -0
- package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.cjs.map +1 -0
- package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.d.ts +3 -0
- package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.d.ts.map +1 -0
- package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.js +129 -0
- package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.js.map +1 -0
- package/dist/core/router/utils/adapters/react-router/transform.cjs +261 -0
- package/dist/core/router/utils/adapters/react-router/transform.cjs.map +1 -0
- package/dist/core/router/utils/adapters/react-router/transform.d.ts +6 -0
- package/dist/core/router/utils/adapters/react-router/transform.d.ts.map +1 -0
- package/dist/core/router/utils/adapters/react-router/transform.js +246 -0
- package/dist/core/router/utils/adapters/react-router/transform.js.map +1 -0
- package/dist/core/router/utils/transform.cjs +772 -0
- package/dist/core/router/utils/transform.cjs.map +1 -0
- package/dist/core/router/utils/transform.d.ts +349 -0
- package/dist/core/router/utils/transform.d.ts.map +1 -0
- package/dist/core/router/utils/transform.js +781 -0
- package/dist/core/router/utils/transform.js.map +1 -0
- package/dist/core/router/validation/RouterConfigValidator.cjs +85 -0
- package/dist/core/router/validation/RouterConfigValidator.cjs.map +1 -0
- package/dist/core/router/validation/RouterConfigValidator.d.ts +58 -0
- package/dist/core/router/validation/RouterConfigValidator.d.ts.map +1 -0
- package/dist/core/router/validation/RouterConfigValidator.js +77 -0
- package/dist/core/router/validation/RouterConfigValidator.js.map +1 -0
- package/dist/core/router/validation/index.cjs +23 -0
- package/dist/core/router/validation/index.cjs.map +1 -0
- package/dist/core/router/validation/index.d.ts +6 -0
- package/dist/core/router/validation/index.d.ts.map +1 -0
- package/dist/core/router/validation/index.js +6 -0
- package/dist/core/router/validation/index.js.map +1 -0
- package/dist/core/router/validation/schema.cjs +91 -0
- package/dist/core/router/validation/schema.cjs.map +1 -0
- package/dist/core/router/validation/schema.d.ts +82 -0
- package/dist/core/router/validation/schema.d.ts.map +1 -0
- package/dist/core/router/validation/schema.js +81 -0
- package/dist/core/router/validation/schema.js.map +1 -0
- package/dist/core/router/version/RouteVersionManager.cjs +207 -0
- package/dist/core/router/version/RouteVersionManager.cjs.map +1 -0
- package/dist/core/router/version/RouteVersionManager.d.ts +125 -0
- package/dist/core/router/version/RouteVersionManager.d.ts.map +1 -0
- package/dist/core/router/version/RouteVersionManager.js +191 -0
- package/dist/core/router/version/RouteVersionManager.js.map +1 -0
- package/dist/core/router/version/index.cjs +22 -0
- package/dist/core/router/version/index.cjs.map +1 -0
- package/dist/core/router/version/index.d.ts +5 -0
- package/dist/core/router/version/index.d.ts.map +1 -0
- package/dist/core/router/version/index.js +5 -0
- package/dist/core/router/version/index.js.map +1 -0
- package/dist/core/splash/SplashScreen.cjs +257 -0
- package/dist/core/splash/SplashScreen.cjs.map +1 -0
- package/dist/core/splash/SplashScreen.d.ts +15 -0
- package/dist/core/splash/SplashScreen.d.ts.map +1 -0
- package/dist/core/splash/SplashScreen.js +207 -0
- package/dist/core/splash/SplashScreen.js.map +1 -0
- package/dist/core/splash/index.cjs +24 -0
- package/dist/core/splash/index.cjs.map +1 -0
- package/dist/core/splash/index.d.ts +6 -0
- package/dist/core/splash/index.d.ts.map +1 -0
- package/dist/core/splash/index.js +6 -0
- package/dist/core/splash/index.js.map +1 -0
- package/dist/core/splash/splashScreenUtils.cjs +40 -0
- package/dist/core/splash/splashScreenUtils.cjs.map +1 -0
- package/dist/core/splash/splashScreenUtils.d.ts +8 -0
- package/dist/core/splash/splashScreenUtils.d.ts.map +1 -0
- package/dist/core/splash/splashScreenUtils.js +30 -0
- package/dist/core/splash/splashScreenUtils.js.map +1 -0
- package/dist/core/startup/AppInstance.cjs +233 -0
- package/dist/core/startup/AppInstance.cjs.map +1 -0
- package/dist/core/startup/AppInstance.d.ts +135 -0
- package/dist/core/startup/AppInstance.d.ts.map +1 -0
- package/dist/core/startup/AppInstance.js +218 -0
- package/dist/core/startup/AppInstance.js.map +1 -0
- package/dist/core/startup/environment.cjs +171 -0
- package/dist/core/startup/environment.cjs.map +1 -0
- package/dist/core/startup/environment.d.ts +88 -0
- package/dist/core/startup/environment.d.ts.map +1 -0
- package/dist/core/startup/environment.js +154 -0
- package/dist/core/startup/environment.js.map +1 -0
- package/dist/core/startup/index.cjs +25 -0
- package/dist/core/startup/index.cjs.map +1 -0
- package/dist/core/startup/index.d.ts +8 -0
- package/dist/core/startup/index.d.ts.map +1 -0
- package/dist/core/startup/index.js +8 -0
- package/dist/core/startup/index.js.map +1 -0
- package/dist/core/startup/initializeServices.cjs +166 -0
- package/dist/core/startup/initializeServices.cjs.map +1 -0
- package/dist/core/startup/initializeServices.d.ts +57 -0
- package/dist/core/startup/initializeServices.d.ts.map +1 -0
- package/dist/core/startup/initializeServices.js +124 -0
- package/dist/core/startup/initializeServices.js.map +1 -0
- package/dist/core/startup/performanceTracker.cjs +181 -0
- package/dist/core/startup/performanceTracker.cjs.map +1 -0
- package/dist/core/startup/performanceTracker.d.ts +105 -0
- package/dist/core/startup/performanceTracker.d.ts.map +1 -0
- package/dist/core/startup/performanceTracker.js +167 -0
- package/dist/core/startup/performanceTracker.js.map +1 -0
- package/dist/core/startup/renderApp.cjs +275 -0
- package/dist/core/startup/renderApp.cjs.map +1 -0
- package/dist/core/startup/renderApp.d.ts +71 -0
- package/dist/core/startup/renderApp.d.ts.map +1 -0
- package/dist/core/startup/renderApp.js +226 -0
- package/dist/core/startup/renderApp.js.map +1 -0
- package/dist/core/startup/startApp.cjs +151 -0
- package/dist/core/startup/startApp.cjs.map +1 -0
- package/dist/core/startup/startApp.d.ts +15 -0
- package/dist/core/startup/startApp.d.ts.map +1 -0
- package/dist/core/startup/startApp.js +147 -0
- package/dist/core/startup/startApp.js.map +1 -0
- package/dist/core/types.cjs +6 -0
- package/dist/core/types.cjs.map +1 -0
- package/dist/core/types.d.ts +461 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +5 -0
- package/dist/core/types.js.map +1 -0
- package/dist/index.cjs +152 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/library/index.cjs +21 -0
- package/dist/library/index.cjs.map +1 -0
- package/dist/library/index.d.ts +3 -0
- package/dist/library/index.d.ts.map +1 -0
- package/dist/library/index.js +4 -0
- package/dist/library/index.js.map +1 -0
- package/dist/library/locale/index.cjs +56 -0
- package/dist/library/locale/index.cjs.map +1 -0
- package/dist/library/locale/index.d.ts +6 -0
- package/dist/library/locale/index.d.ts.map +1 -0
- package/dist/library/locale/index.js +30 -0
- package/dist/library/locale/index.js.map +1 -0
- package/dist/library/locale/langs/en-us/index.cjs +34 -0
- package/dist/library/locale/langs/en-us/index.cjs.map +1 -0
- package/dist/library/locale/langs/en-us/index.d.ts +4 -0
- package/dist/library/locale/langs/en-us/index.d.ts.map +1 -0
- package/dist/library/locale/langs/en-us/index.js +24 -0
- package/dist/library/locale/langs/en-us/index.js.map +1 -0
- package/dist/library/locale/langs/zh-cn/index.cjs +34 -0
- package/dist/library/locale/langs/zh-cn/index.cjs.map +1 -0
- package/dist/library/locale/langs/zh-cn/index.d.ts +4 -0
- package/dist/library/locale/langs/zh-cn/index.d.ts.map +1 -0
- package/dist/library/locale/langs/zh-cn/index.js +24 -0
- package/dist/library/locale/langs/zh-cn/index.js.map +1 -0
- package/dist/library/locale/types.cjs +6 -0
- package/dist/library/locale/types.cjs.map +1 -0
- package/dist/library/locale/types.d.ts +39 -0
- package/dist/library/locale/types.d.ts.map +1 -0
- package/dist/library/locale/types.js +3 -0
- package/dist/library/locale/types.js.map +1 -0
- package/dist/library/storage/cache.cjs +245 -0
- package/dist/library/storage/cache.cjs.map +1 -0
- package/dist/library/storage/cache.d.ts +58 -0
- package/dist/library/storage/cache.d.ts.map +1 -0
- package/dist/library/storage/cache.js +237 -0
- package/dist/library/storage/cache.js.map +1 -0
- package/dist/library/storage/encryption.cjs +150 -0
- package/dist/library/storage/encryption.cjs.map +1 -0
- package/dist/library/storage/encryption.d.ts +46 -0
- package/dist/library/storage/encryption.d.ts.map +1 -0
- package/dist/library/storage/encryption.js +142 -0
- package/dist/library/storage/encryption.js.map +1 -0
- package/dist/library/storage/index.cjs +126 -0
- package/dist/library/storage/index.cjs.map +1 -0
- package/dist/library/storage/index.d.ts +62 -0
- package/dist/library/storage/index.d.ts.map +1 -0
- package/dist/library/storage/index.js +106 -0
- package/dist/library/storage/index.js.map +1 -0
- package/dist/request/adapter/RequestAdapter.cjs +78 -0
- package/dist/request/adapter/RequestAdapter.cjs.map +1 -0
- package/dist/request/adapter/RequestAdapter.d.ts +86 -0
- package/dist/request/adapter/RequestAdapter.d.ts.map +1 -0
- package/dist/request/adapter/RequestAdapter.js +70 -0
- package/dist/request/adapter/RequestAdapter.js.map +1 -0
- package/dist/request/adapter/axiosAdapter.cjs +164 -0
- package/dist/request/adapter/axiosAdapter.cjs.map +1 -0
- package/dist/request/adapter/axiosAdapter.d.ts +11 -0
- package/dist/request/adapter/axiosAdapter.d.ts.map +1 -0
- package/dist/request/adapter/axiosAdapter.js +115 -0
- package/dist/request/adapter/axiosAdapter.js.map +1 -0
- package/dist/request/adapter/fetchAdapter.cjs +134 -0
- package/dist/request/adapter/fetchAdapter.cjs.map +1 -0
- package/dist/request/adapter/fetchAdapter.d.ts +11 -0
- package/dist/request/adapter/fetchAdapter.d.ts.map +1 -0
- package/dist/request/adapter/fetchAdapter.js +126 -0
- package/dist/request/adapter/fetchAdapter.js.map +1 -0
- package/dist/request/adapter/index.cjs +80 -0
- package/dist/request/adapter/index.cjs.map +1 -0
- package/dist/request/adapter/index.d.ts +10 -0
- package/dist/request/adapter/index.d.ts.map +1 -0
- package/dist/request/adapter/index.js +14 -0
- package/dist/request/adapter/index.js.map +1 -0
- package/dist/request/adapter/kyAdapter.cjs +191 -0
- package/dist/request/adapter/kyAdapter.cjs.map +1 -0
- package/dist/request/adapter/kyAdapter.d.ts +11 -0
- package/dist/request/adapter/kyAdapter.d.ts.map +1 -0
- package/dist/request/adapter/kyAdapter.js +142 -0
- package/dist/request/adapter/kyAdapter.js.map +1 -0
- package/dist/request/adapter/undiciAdapter.cjs +213 -0
- package/dist/request/adapter/undiciAdapter.cjs.map +1 -0
- package/dist/request/adapter/undiciAdapter.d.ts +11 -0
- package/dist/request/adapter/undiciAdapter.d.ts.map +1 -0
- package/dist/request/adapter/undiciAdapter.js +164 -0
- package/dist/request/adapter/undiciAdapter.js.map +1 -0
- package/dist/request/core/RequestClient.cjs +539 -0
- package/dist/request/core/RequestClient.cjs.map +1 -0
- package/dist/request/core/RequestClient.d.ts +127 -0
- package/dist/request/core/RequestClient.d.ts.map +1 -0
- package/dist/request/core/RequestClient.js +490 -0
- package/dist/request/core/RequestClient.js.map +1 -0
- package/dist/request/core/index.cjs +15 -0
- package/dist/request/core/index.cjs.map +1 -0
- package/dist/request/core/index.d.ts +6 -0
- package/dist/request/core/index.d.ts.map +1 -0
- package/dist/request/core/index.js +5 -0
- package/dist/request/core/index.js.map +1 -0
- package/dist/request/index.cjs +146 -0
- package/dist/request/index.cjs.map +1 -0
- package/dist/request/index.d.ts +43 -0
- package/dist/request/index.d.ts.map +1 -0
- package/dist/request/index.js +50 -0
- package/dist/request/index.js.map +1 -0
- package/dist/request/plugin/RequestPlugin.cjs +218 -0
- package/dist/request/plugin/RequestPlugin.cjs.map +1 -0
- package/dist/request/plugin/RequestPlugin.d.ts +171 -0
- package/dist/request/plugin/RequestPlugin.d.ts.map +1 -0
- package/dist/request/plugin/RequestPlugin.js +203 -0
- package/dist/request/plugin/RequestPlugin.js.map +1 -0
- package/dist/request/plugin/cache.cjs +269 -0
- package/dist/request/plugin/cache.cjs.map +1 -0
- package/dist/request/plugin/cache.d.ts +34 -0
- package/dist/request/plugin/cache.d.ts.map +1 -0
- package/dist/request/plugin/cache.js +264 -0
- package/dist/request/plugin/cache.js.map +1 -0
- package/dist/request/plugin/csrfPlugin.cjs +40 -0
- package/dist/request/plugin/csrfPlugin.cjs.map +1 -0
- package/dist/request/plugin/csrfPlugin.d.ts +22 -0
- package/dist/request/plugin/csrfPlugin.d.ts.map +1 -0
- package/dist/request/plugin/csrfPlugin.js +44 -0
- package/dist/request/plugin/csrfPlugin.js.map +1 -0
- package/dist/request/plugin/index.cjs +49 -0
- package/dist/request/plugin/index.cjs.map +1 -0
- package/dist/request/plugin/index.d.ts +11 -0
- package/dist/request/plugin/index.d.ts.map +1 -0
- package/dist/request/plugin/index.js +11 -0
- package/dist/request/plugin/index.js.map +1 -0
- package/dist/request/plugin/monitoring.cjs +216 -0
- package/dist/request/plugin/monitoring.cjs.map +1 -0
- package/dist/request/plugin/monitoring.d.ts +113 -0
- package/dist/request/plugin/monitoring.d.ts.map +1 -0
- package/dist/request/plugin/monitoring.js +205 -0
- package/dist/request/plugin/monitoring.js.map +1 -0
- package/dist/request/plugin/retry.cjs +98 -0
- package/dist/request/plugin/retry.cjs.map +1 -0
- package/dist/request/plugin/retry.d.ts +35 -0
- package/dist/request/plugin/retry.d.ts.map +1 -0
- package/dist/request/plugin/retry.js +93 -0
- package/dist/request/plugin/retry.js.map +1 -0
- package/dist/request/plugin/validation.cjs +121 -0
- package/dist/request/plugin/validation.cjs.map +1 -0
- package/dist/request/plugin/validation.d.ts +27 -0
- package/dist/request/plugin/validation.d.ts.map +1 -0
- package/dist/request/plugin/validation.js +116 -0
- package/dist/request/plugin/validation.js.map +1 -0
- package/dist/request/runtime/RequestContext.cjs +77 -0
- package/dist/request/runtime/RequestContext.cjs.map +1 -0
- package/dist/request/runtime/RequestContext.d.ts +51 -0
- package/dist/request/runtime/RequestContext.d.ts.map +1 -0
- package/dist/request/runtime/RequestContext.js +86 -0
- package/dist/request/runtime/RequestContext.js.map +1 -0
- package/dist/request/runtime/index.cjs +32 -0
- package/dist/request/runtime/index.cjs.map +1 -0
- package/dist/request/runtime/index.d.ts +5 -0
- package/dist/request/runtime/index.d.ts.map +1 -0
- package/dist/request/runtime/index.js +5 -0
- package/dist/request/runtime/index.js.map +1 -0
- package/dist/request/types.cjs +112 -0
- package/dist/request/types.cjs.map +1 -0
- package/dist/request/types.d.ts +395 -0
- package/dist/request/types.d.ts.map +1 -0
- package/dist/request/types.js +97 -0
- package/dist/request/types.js.map +1 -0
- package/dist/request/utils/dependencyCheck.cjs +237 -0
- package/dist/request/utils/dependencyCheck.cjs.map +1 -0
- package/dist/request/utils/dependencyCheck.d.ts +64 -0
- package/dist/request/utils/dependencyCheck.d.ts.map +1 -0
- package/dist/request/utils/dependencyCheck.js +192 -0
- package/dist/request/utils/dependencyCheck.js.map +1 -0
- package/dist/request/utils/index.cjs +26 -0
- package/dist/request/utils/index.cjs.map +1 -0
- package/dist/request/utils/index.d.ts +5 -0
- package/dist/request/utils/index.d.ts.map +1 -0
- package/dist/request/utils/index.js +5 -0
- package/dist/request/utils/index.js.map +1 -0
- package/dist/state/StateManager.cjs +168 -0
- package/dist/state/StateManager.cjs.map +1 -0
- package/dist/state/StateManager.d.ts +121 -0
- package/dist/state/StateManager.d.ts.map +1 -0
- package/dist/state/StateManager.js +160 -0
- package/dist/state/StateManager.js.map +1 -0
- package/dist/state/adapters/AdapterFactory.cjs +91 -0
- package/dist/state/adapters/AdapterFactory.cjs.map +1 -0
- package/dist/state/adapters/AdapterFactory.d.ts +52 -0
- package/dist/state/adapters/AdapterFactory.d.ts.map +1 -0
- package/dist/state/adapters/AdapterFactory.js +85 -0
- package/dist/state/adapters/AdapterFactory.js.map +1 -0
- package/dist/state/adapters/DefaultAdapter.cjs +77 -0
- package/dist/state/adapters/DefaultAdapter.cjs.map +1 -0
- package/dist/state/adapters/DefaultAdapter.d.ts +39 -0
- package/dist/state/adapters/DefaultAdapter.d.ts.map +1 -0
- package/dist/state/adapters/DefaultAdapter.js +71 -0
- package/dist/state/adapters/DefaultAdapter.js.map +1 -0
- package/dist/state/adapters/ReduxAdapter.cjs +445 -0
- package/dist/state/adapters/ReduxAdapter.cjs.map +1 -0
- package/dist/state/adapters/ReduxAdapter.d.ts +130 -0
- package/dist/state/adapters/ReduxAdapter.d.ts.map +1 -0
- package/dist/state/adapters/ReduxAdapter.js +439 -0
- package/dist/state/adapters/ReduxAdapter.js.map +1 -0
- package/dist/state/adapters/ZustandAdapter.cjs +71 -0
- package/dist/state/adapters/ZustandAdapter.cjs.map +1 -0
- package/dist/state/adapters/ZustandAdapter.d.ts +47 -0
- package/dist/state/adapters/ZustandAdapter.d.ts.map +1 -0
- package/dist/state/adapters/ZustandAdapter.js +70 -0
- package/dist/state/adapters/ZustandAdapter.js.map +1 -0
- package/dist/state/adapters/index.cjs +46 -0
- package/dist/state/adapters/index.cjs.map +1 -0
- package/dist/state/adapters/index.d.ts +9 -0
- package/dist/state/adapters/index.d.ts.map +1 -0
- package/dist/state/adapters/index.js +9 -0
- package/dist/state/adapters/index.js.map +1 -0
- package/dist/state/adapters/types.cjs +22 -0
- package/dist/state/adapters/types.cjs.map +1 -0
- package/dist/state/adapters/types.d.ts +5 -0
- package/dist/state/adapters/types.d.ts.map +1 -0
- package/dist/state/adapters/types.js +5 -0
- package/dist/state/adapters/types.js.map +1 -0
- package/dist/state/core/DerivedStateInstance.cjs +176 -0
- package/dist/state/core/DerivedStateInstance.cjs.map +1 -0
- package/dist/state/core/DerivedStateInstance.d.ts +101 -0
- package/dist/state/core/DerivedStateInstance.d.ts.map +1 -0
- package/dist/state/core/DerivedStateInstance.js +173 -0
- package/dist/state/core/DerivedStateInstance.js.map +1 -0
- package/dist/state/core/StateInstance.cjs +172 -0
- package/dist/state/core/StateInstance.cjs.map +1 -0
- package/dist/state/core/StateInstance.d.ts +86 -0
- package/dist/state/core/StateInstance.d.ts.map +1 -0
- package/dist/state/core/StateInstance.js +168 -0
- package/dist/state/core/StateInstance.js.map +1 -0
- package/dist/state/core/StateRegistry.cjs +112 -0
- package/dist/state/core/StateRegistry.cjs.map +1 -0
- package/dist/state/core/StateRegistry.d.ts +56 -0
- package/dist/state/core/StateRegistry.d.ts.map +1 -0
- package/dist/state/core/StateRegistry.js +106 -0
- package/dist/state/core/StateRegistry.js.map +1 -0
- package/dist/state/core/StateScope.cjs +139 -0
- package/dist/state/core/StateScope.cjs.map +1 -0
- package/dist/state/core/StateScope.d.ts +72 -0
- package/dist/state/core/StateScope.d.ts.map +1 -0
- package/dist/state/core/StateScope.js +133 -0
- package/dist/state/core/StateScope.js.map +1 -0
- package/dist/state/core/index.cjs +32 -0
- package/dist/state/core/index.cjs.map +1 -0
- package/dist/state/core/index.d.ts +8 -0
- package/dist/state/core/index.d.ts.map +1 -0
- package/dist/state/core/index.js +8 -0
- package/dist/state/core/index.js.map +1 -0
- package/dist/state/index.cjs +32 -0
- package/dist/state/index.cjs.map +1 -0
- package/dist/state/index.d.ts +9 -0
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js +12 -0
- package/dist/state/index.js.map +1 -0
- package/dist/state/types.cjs +14 -0
- package/dist/state/types.cjs.map +1 -0
- package/dist/state/types.d.ts +231 -0
- package/dist/state/types.d.ts.map +1 -0
- package/dist/state/types.js +13 -0
- package/dist/state/types.js.map +1 -0
- package/dist/types.cjs +6 -0
- package/dist/types.cjs.map +1 -0
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/analytics.cjs +219 -0
- package/dist/utils/analytics.cjs.map +1 -0
- package/dist/utils/analytics.d.ts +128 -0
- package/dist/utils/analytics.d.ts.map +1 -0
- package/dist/utils/analytics.js +204 -0
- package/dist/utils/analytics.js.map +1 -0
- package/dist/utils/configSecurity.cjs +184 -0
- package/dist/utils/configSecurity.cjs.map +1 -0
- package/dist/utils/configSecurity.d.ts +101 -0
- package/dist/utils/configSecurity.d.ts.map +1 -0
- package/dist/utils/configSecurity.js +176 -0
- package/dist/utils/configSecurity.js.map +1 -0
- package/dist/utils/csrf.cjs +159 -0
- package/dist/utils/csrf.cjs.map +1 -0
- package/dist/utils/csrf.d.ts +73 -0
- package/dist/utils/csrf.d.ts.map +1 -0
- package/dist/utils/csrf.js +144 -0
- package/dist/utils/csrf.js.map +1 -0
- package/dist/utils/errors/ErrorCodes.cjs +97 -0
- package/dist/utils/errors/ErrorCodes.cjs.map +1 -0
- package/dist/utils/errors/ErrorCodes.d.ts +46 -0
- package/dist/utils/errors/ErrorCodes.d.ts.map +1 -0
- package/dist/utils/errors/ErrorCodes.js +86 -0
- package/dist/utils/errors/ErrorCodes.js.map +1 -0
- package/dist/utils/errors.cjs +343 -0
- package/dist/utils/errors.cjs.map +1 -0
- package/dist/utils/errors.d.ts +179 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +311 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/index.cjs +137 -0
- package/dist/utils/index.cjs.map +1 -0
- package/dist/utils/index.d.ts +40 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +48 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.cjs +396 -0
- package/dist/utils/logger.cjs.map +1 -0
- package/dist/utils/logger.d.ts +190 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +381 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/logger.types.cjs +22 -0
- package/dist/utils/logger.types.cjs.map +1 -0
- package/dist/utils/logger.types.d.ts +58 -0
- package/dist/utils/logger.types.d.ts.map +1 -0
- package/dist/utils/logger.types.js +12 -0
- package/dist/utils/logger.types.js.map +1 -0
- package/dist/utils/monitoring.cjs +311 -0
- package/dist/utils/monitoring.cjs.map +1 -0
- package/dist/utils/monitoring.d.ts +164 -0
- package/dist/utils/monitoring.d.ts.map +1 -0
- package/dist/utils/monitoring.js +296 -0
- package/dist/utils/monitoring.js.map +1 -0
- package/dist/utils/performance.cjs +371 -0
- package/dist/utils/performance.cjs.map +1 -0
- package/dist/utils/performance.d.ts +247 -0
- package/dist/utils/performance.d.ts.map +1 -0
- package/dist/utils/performance.js +356 -0
- package/dist/utils/performance.js.map +1 -0
- package/dist/utils/resourceLoader.cjs +322 -0
- package/dist/utils/resourceLoader.cjs.map +1 -0
- package/dist/utils/resourceLoader.d.ts +131 -0
- package/dist/utils/resourceLoader.d.ts.map +1 -0
- package/dist/utils/resourceLoader.js +307 -0
- package/dist/utils/resourceLoader.js.map +1 -0
- package/dist/utils/runtimeSecurity.cjs +151 -0
- package/dist/utils/runtimeSecurity.cjs.map +1 -0
- package/dist/utils/runtimeSecurity.d.ts +105 -0
- package/dist/utils/runtimeSecurity.d.ts.map +1 -0
- package/dist/utils/runtimeSecurity.js +143 -0
- package/dist/utils/runtimeSecurity.js.map +1 -0
- package/dist/utils/security.cjs +332 -0
- package/dist/utils/security.cjs.map +1 -0
- package/dist/utils/security.d.ts +81 -0
- package/dist/utils/security.d.ts.map +1 -0
- package/dist/utils/security.js +313 -0
- package/dist/utils/security.js.map +1 -0
- package/dist/utils/traceId.cjs +140 -0
- package/dist/utils/traceId.cjs.map +1 -0
- package/dist/utils/traceId.d.ts +64 -0
- package/dist/utils/traceId.d.ts.map +1 -0
- package/dist/utils/traceId.js +118 -0
- package/dist/utils/traceId.js.map +1 -0
- package/dist/utils/validation.cjs +191 -0
- package/dist/utils/validation.cjs.map +1 -0
- package/dist/utils/validation.d.ts +111 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +177 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +98 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 路由配置验证 Schema(使用 Zod)
|
|
3
|
+
*/ import { z } from "zod";
|
|
4
|
+
/**
|
|
5
|
+
* RouteItemHandle Schema
|
|
6
|
+
*/ export const routeItemHandleSchema = z.object({
|
|
7
|
+
title: z.string().min(1, '路由标题不能为空'),
|
|
8
|
+
i18nKey: z.string().optional(),
|
|
9
|
+
order: z.number().int('排序值必须是整数'),
|
|
10
|
+
icon: z.string().optional(),
|
|
11
|
+
hideInMenu: z.boolean().optional(),
|
|
12
|
+
hideFooter: z.boolean().optional(),
|
|
13
|
+
keepAlive: z.boolean().optional(),
|
|
14
|
+
needLogin: z.boolean().optional(),
|
|
15
|
+
roles: z.array(z.string()).optional(),
|
|
16
|
+
name: z.string().optional()
|
|
17
|
+
}).passthrough(); // 允许其他自定义字段
|
|
18
|
+
/**
|
|
19
|
+
* ComponentImport Schema
|
|
20
|
+
* 可以是字符串路径或函数
|
|
21
|
+
*/ export const componentImportSchema = z.union([
|
|
22
|
+
z.string().min(1, '组件路径不能为空'),
|
|
23
|
+
z.function(),
|
|
24
|
+
z.null()
|
|
25
|
+
]);
|
|
26
|
+
/**
|
|
27
|
+
* RouteConfig Schema
|
|
28
|
+
*/ export const routeConfigSchema = z.lazy(()=>z.object({
|
|
29
|
+
layout: componentImportSchema.optional().nullable(),
|
|
30
|
+
page: componentImportSchema.optional().nullable(),
|
|
31
|
+
loading: componentImportSchema.optional().nullable(),
|
|
32
|
+
errors: componentImportSchema.optional().nullable(),
|
|
33
|
+
name: z.string().min(1, '路由名称不能为空'),
|
|
34
|
+
path: z.string().optional(),
|
|
35
|
+
isGroup: z.boolean().optional(),
|
|
36
|
+
enableRedirection: z.boolean().optional(),
|
|
37
|
+
handle: routeItemHandleSchema,
|
|
38
|
+
children: z.array(routeConfigSchema).optional()
|
|
39
|
+
}));
|
|
40
|
+
/**
|
|
41
|
+
* RouterConfig Schema
|
|
42
|
+
*/ export const routerConfigSchema = z.object({
|
|
43
|
+
enabled: z.union([
|
|
44
|
+
z.boolean(),
|
|
45
|
+
z.literal('disabled')
|
|
46
|
+
]).optional(),
|
|
47
|
+
routes: z.union([
|
|
48
|
+
z.array(routeConfigSchema),
|
|
49
|
+
z.function()
|
|
50
|
+
]).optional(),
|
|
51
|
+
mode: z.enum([
|
|
52
|
+
'browser',
|
|
53
|
+
'hash',
|
|
54
|
+
'memory'
|
|
55
|
+
]).optional(),
|
|
56
|
+
options: z.any().optional(),
|
|
57
|
+
pathResolve: z.object({
|
|
58
|
+
basePath: z.string().optional(),
|
|
59
|
+
pathAliases: z.record(z.string(), z.string()).optional()
|
|
60
|
+
}).optional(),
|
|
61
|
+
transformOptions: z.any().optional()
|
|
62
|
+
});
|
|
63
|
+
/**
|
|
64
|
+
* 验证路由配置
|
|
65
|
+
*
|
|
66
|
+
* @param config - 要验证的路由配置
|
|
67
|
+
* @returns 验证后的路由配置
|
|
68
|
+
* @throws z.ZodError 如果配置验证失败
|
|
69
|
+
*/ export function validateRouterConfig(config) {
|
|
70
|
+
return routerConfigSchema.parse(config);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* 安全验证路由配置(不抛出异常)
|
|
74
|
+
*
|
|
75
|
+
* @param config - 要验证的路由配置
|
|
76
|
+
* @returns 验证结果
|
|
77
|
+
*/ export function safeValidateRouterConfig(config) {
|
|
78
|
+
return routerConfigSchema.safeParse(config);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/core/router/validation/schema.ts"],"sourcesContent":["/**\n * 路由配置验证 Schema(使用 Zod)\n */\n\nimport { z } from 'zod';\n\n/**\n * RouteItemHandle Schema\n */\nexport const routeItemHandleSchema = z.object({\n title: z.string().min(1, '路由标题不能为空'),\n i18nKey: z.string().optional(),\n order: z.number().int('排序值必须是整数'),\n icon: z.string().optional(),\n hideInMenu: z.boolean().optional(),\n hideFooter: z.boolean().optional(),\n keepAlive: z.boolean().optional(),\n needLogin: z.boolean().optional(),\n roles: z.array(z.string()).optional(),\n name: z.string().optional(),\n}).passthrough(); // 允许其他自定义字段\n\n/**\n * ComponentImport Schema\n * 可以是字符串路径或函数\n */\nexport const componentImportSchema = z.union([\n z.string().min(1, '组件路径不能为空'),\n z.function(),\n z.null(),\n]);\n\n/**\n * RouteConfig Schema\n */\nexport const routeConfigSchema: z.ZodType<any> = z.lazy(() =>\n z.object({\n layout: componentImportSchema.optional().nullable(),\n page: componentImportSchema.optional().nullable(),\n loading: componentImportSchema.optional().nullable(),\n errors: componentImportSchema.optional().nullable(),\n name: z.string().min(1, '路由名称不能为空'),\n path: z.string().optional(),\n isGroup: z.boolean().optional(),\n enableRedirection: z.boolean().optional(),\n handle: routeItemHandleSchema,\n children: z.array(routeConfigSchema).optional(),\n })\n);\n\n/**\n * RouterConfig Schema\n */\nexport const routerConfigSchema = z.object({\n enabled: z.union([z.boolean(), z.literal('disabled')]).optional(),\n routes: z\n .union([\n z.array(routeConfigSchema),\n z.function(),\n ])\n .optional(),\n mode: z.enum(['browser', 'hash', 'memory']).optional(),\n options: z.any().optional(), // react-router-dom 的选项类型较复杂,使用 any\n pathResolve: z\n .object({\n basePath: z.string().optional(),\n pathAliases: z.record(z.string(), z.string()).optional(),\n })\n .optional(),\n transformOptions: z.any().optional(), // TransformOptions 类型较复杂,使用 any\n});\n\n/**\n * 验证路由配置\n * \n * @param config - 要验证的路由配置\n * @returns 验证后的路由配置\n * @throws z.ZodError 如果配置验证失败\n */\nexport function validateRouterConfig(config: unknown) {\n return routerConfigSchema.parse(config);\n}\n\n/**\n * 安全验证路由配置(不抛出异常)\n * \n * @param config - 要验证的路由配置\n * @returns 验证结果\n */\nexport function safeValidateRouterConfig(config: unknown) {\n return routerConfigSchema.safeParse(config);\n}\n"],"names":["z","routeItemHandleSchema","object","title","string","min","i18nKey","optional","order","number","int","icon","hideInMenu","boolean","hideFooter","keepAlive","needLogin","roles","array","name","passthrough","componentImportSchema","union","function","null","routeConfigSchema","lazy","layout","nullable","page","loading","errors","path","isGroup","enableRedirection","handle","children","routerConfigSchema","enabled","literal","routes","mode","enum","options","any","pathResolve","basePath","pathAliases","record","transformOptions","validateRouterConfig","config","parse","safeValidateRouterConfig","safeParse"],"mappings":"AAAA;;CAEC,GAED,SAASA,CAAC,QAAQ,MAAM;AAExB;;CAEC,GACD,OAAO,MAAMC,wBAAwBD,EAAEE,MAAM,CAAC;IAC5CC,OAAOH,EAAEI,MAAM,GAAGC,GAAG,CAAC,GAAG;IACzBC,SAASN,EAAEI,MAAM,GAAGG,QAAQ;IAC5BC,OAAOR,EAAES,MAAM,GAAGC,GAAG,CAAC;IACtBC,MAAMX,EAAEI,MAAM,GAAGG,QAAQ;IACzBK,YAAYZ,EAAEa,OAAO,GAAGN,QAAQ;IAChCO,YAAYd,EAAEa,OAAO,GAAGN,QAAQ;IAChCQ,WAAWf,EAAEa,OAAO,GAAGN,QAAQ;IAC/BS,WAAWhB,EAAEa,OAAO,GAAGN,QAAQ;IAC/BU,OAAOjB,EAAEkB,KAAK,CAAClB,EAAEI,MAAM,IAAIG,QAAQ;IACnCY,MAAMnB,EAAEI,MAAM,GAAGG,QAAQ;AAC3B,GAAGa,WAAW,GAAG,CAAC,YAAY;AAE9B;;;CAGC,GACD,OAAO,MAAMC,wBAAwBrB,EAAEsB,KAAK,CAAC;IAC3CtB,EAAEI,MAAM,GAAGC,GAAG,CAAC,GAAG;IAClBL,EAAEuB,QAAQ;IACVvB,EAAEwB,IAAI;CACP,EAAE;AAEH;;CAEC,GACD,OAAO,MAAMC,oBAAoCzB,EAAE0B,IAAI,CAAC,IACtD1B,EAAEE,MAAM,CAAC;QACPyB,QAAQN,sBAAsBd,QAAQ,GAAGqB,QAAQ;QACjDC,MAAMR,sBAAsBd,QAAQ,GAAGqB,QAAQ;QAC/CE,SAAST,sBAAsBd,QAAQ,GAAGqB,QAAQ;QAClDG,QAAQV,sBAAsBd,QAAQ,GAAGqB,QAAQ;QACjDT,MAAMnB,EAAEI,MAAM,GAAGC,GAAG,CAAC,GAAG;QACxB2B,MAAMhC,EAAEI,MAAM,GAAGG,QAAQ;QACzB0B,SAASjC,EAAEa,OAAO,GAAGN,QAAQ;QAC7B2B,mBAAmBlC,EAAEa,OAAO,GAAGN,QAAQ;QACvC4B,QAAQlC;QACRmC,UAAUpC,EAAEkB,KAAK,CAACO,mBAAmBlB,QAAQ;IAC/C,IACA;AAEF;;CAEC,GACD,OAAO,MAAM8B,qBAAqBrC,EAAEE,MAAM,CAAC;IACzCoC,SAAStC,EAAEsB,KAAK,CAAC;QAACtB,EAAEa,OAAO;QAAIb,EAAEuC,OAAO,CAAC;KAAY,EAAEhC,QAAQ;IAC/DiC,QAAQxC,EACLsB,KAAK,CAAC;QACLtB,EAAEkB,KAAK,CAACO;QACRzB,EAAEuB,QAAQ;KACX,EACAhB,QAAQ;IACXkC,MAAMzC,EAAE0C,IAAI,CAAC;QAAC;QAAW;QAAQ;KAAS,EAAEnC,QAAQ;IACpDoC,SAAS3C,EAAE4C,GAAG,GAAGrC,QAAQ;IACzBsC,aAAa7C,EACVE,MAAM,CAAC;QACN4C,UAAU9C,EAAEI,MAAM,GAAGG,QAAQ;QAC7BwC,aAAa/C,EAAEgD,MAAM,CAAChD,EAAEI,MAAM,IAAIJ,EAAEI,MAAM,IAAIG,QAAQ;IACxD,GACCA,QAAQ;IACX0C,kBAAkBjD,EAAE4C,GAAG,GAAGrC,QAAQ;AACpC,GAAG;AAEH;;;;;;CAMC,GACD,OAAO,SAAS2C,qBAAqBC,MAAe;IAClD,OAAOd,mBAAmBe,KAAK,CAACD;AAClC;AAEA;;;;;CAKC,GACD,OAAO,SAASE,yBAAyBF,MAAe;IACtD,OAAOd,mBAAmBiB,SAAS,CAACH;AACtC"}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 路由版本管理器
|
|
3
|
+
* 支持路由版本控制和迁移
|
|
4
|
+
*/ "use strict";
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
function _export(target, all) {
|
|
9
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
_export(exports, {
|
|
15
|
+
get RouteVersionManager () {
|
|
16
|
+
return RouteVersionManager;
|
|
17
|
+
},
|
|
18
|
+
get getRouteVersionManager () {
|
|
19
|
+
return getRouteVersionManager;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
const _utils = require("../../../utils");
|
|
23
|
+
const _errors = require("../errors");
|
|
24
|
+
function _define_property(obj, key, value) {
|
|
25
|
+
if (key in obj) {
|
|
26
|
+
Object.defineProperty(obj, key, {
|
|
27
|
+
value: value,
|
|
28
|
+
enumerable: true,
|
|
29
|
+
configurable: true,
|
|
30
|
+
writable: true
|
|
31
|
+
});
|
|
32
|
+
} else {
|
|
33
|
+
obj[key] = value;
|
|
34
|
+
}
|
|
35
|
+
return obj;
|
|
36
|
+
}
|
|
37
|
+
let RouteVersionManager = class RouteVersionManager {
|
|
38
|
+
/**
|
|
39
|
+
* 注册路由版本
|
|
40
|
+
*
|
|
41
|
+
* @param version - 版本信息
|
|
42
|
+
*/ registerVersion(version) {
|
|
43
|
+
// 验证版本号格式(简单的语义化版本检查)
|
|
44
|
+
if (!/^\d+\.\d+\.\d+/.test(version.version)) {
|
|
45
|
+
throw new Error(`无效的版本号格式: ${version.version}`);
|
|
46
|
+
}
|
|
47
|
+
this.versions.set(version.version, {
|
|
48
|
+
...version,
|
|
49
|
+
createdAt: version.createdAt || Date.now()
|
|
50
|
+
});
|
|
51
|
+
_utils.logger.debug(`路由版本已注册: ${version.version}`);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* 注册版本迁移函数
|
|
55
|
+
*
|
|
56
|
+
* @param fromVersion - 源版本
|
|
57
|
+
* @param toVersion - 目标版本
|
|
58
|
+
* @param migration - 迁移函数
|
|
59
|
+
*/ registerMigration(fromVersion, toVersion, migration) {
|
|
60
|
+
const key = `${fromVersion}->${toVersion}`;
|
|
61
|
+
this.migrations.set(key, migration);
|
|
62
|
+
_utils.logger.debug(`路由版本迁移已注册: ${key}`);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* 检查版本兼容性
|
|
66
|
+
*
|
|
67
|
+
* @param version - 要检查的版本
|
|
68
|
+
* @returns 是否兼容
|
|
69
|
+
*/ checkCompatibility(version) {
|
|
70
|
+
const versionInfo = this.versions.get(version);
|
|
71
|
+
if (!versionInfo) {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
// 如果明确标记为不兼容,返回 false
|
|
75
|
+
if (versionInfo.compatible === false) {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
// 简单的版本兼容性检查(主版本号相同)
|
|
79
|
+
const currentMajor = parseInt(this.config.currentVersion.split('.')[0]);
|
|
80
|
+
const targetMajor = parseInt(version.split('.')[0]);
|
|
81
|
+
return currentMajor === targetMajor;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* 迁移路由配置
|
|
85
|
+
*
|
|
86
|
+
* @param fromVersion - 源版本
|
|
87
|
+
* @param toVersion - 目标版本
|
|
88
|
+
* @param routes - 路由配置
|
|
89
|
+
* @returns 迁移后的路由配置
|
|
90
|
+
*/ async migrate(fromVersion, toVersion, routes) {
|
|
91
|
+
if (fromVersion === toVersion) {
|
|
92
|
+
return routes;
|
|
93
|
+
}
|
|
94
|
+
const migrationKey = `${fromVersion}->${toVersion}`;
|
|
95
|
+
const migration = this.migrations.get(migrationKey);
|
|
96
|
+
if (!migration) {
|
|
97
|
+
// 如果没有直接迁移,尝试逐步迁移
|
|
98
|
+
return this.migrateStepwise(fromVersion, toVersion, routes);
|
|
99
|
+
}
|
|
100
|
+
try {
|
|
101
|
+
const migratedRoutes = await migration(fromVersion, toVersion, routes);
|
|
102
|
+
_utils.logger.info(`路由版本迁移完成: ${fromVersion} -> ${toVersion}`);
|
|
103
|
+
return migratedRoutes;
|
|
104
|
+
} catch (error) {
|
|
105
|
+
_utils.logger.error(`路由版本迁移失败: ${fromVersion} -> ${toVersion}`, error);
|
|
106
|
+
const errorContext = {
|
|
107
|
+
fromVersion,
|
|
108
|
+
toVersion
|
|
109
|
+
};
|
|
110
|
+
if (error instanceof Error) {
|
|
111
|
+
errorContext.originalError = error;
|
|
112
|
+
}
|
|
113
|
+
throw new _errors.RouterError(`路由版本迁移失败: ${fromVersion} -> ${toVersion}`, _errors.RouterErrorCode.ROUTE_TRANSFORM_FAILED, undefined, error instanceof Error ? error : undefined, errorContext);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* 逐步迁移(通过中间版本)
|
|
118
|
+
*/ async migrateStepwise(fromVersion, toVersion, routes) {
|
|
119
|
+
// 获取所有版本并按版本号排序
|
|
120
|
+
const allVersions = Array.from(this.versions.keys()).sort((a, b)=>{
|
|
121
|
+
const aParts = a.split('.').map(Number);
|
|
122
|
+
const bParts = b.split('.').map(Number);
|
|
123
|
+
for(let i = 0; i < 3; i++){
|
|
124
|
+
if (aParts[i] !== bParts[i]) {
|
|
125
|
+
return aParts[i] - bParts[i];
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return 0;
|
|
129
|
+
});
|
|
130
|
+
// 找到从 fromVersion 到 toVersion 的路径
|
|
131
|
+
const fromIndex = allVersions.indexOf(fromVersion);
|
|
132
|
+
const toIndex = allVersions.indexOf(toVersion);
|
|
133
|
+
if (fromIndex === -1 || toIndex === -1) {
|
|
134
|
+
throw new Error(`无法找到版本迁移路径: ${fromVersion} -> ${toVersion}`);
|
|
135
|
+
}
|
|
136
|
+
let currentRoutes = routes;
|
|
137
|
+
const step = fromIndex < toIndex ? 1 : -1;
|
|
138
|
+
for(let i = fromIndex; i !== toIndex; i += step){
|
|
139
|
+
const currentVersion = allVersions[i];
|
|
140
|
+
const nextVersion = allVersions[i + step];
|
|
141
|
+
const migrationKey = `${currentVersion}->${nextVersion}`;
|
|
142
|
+
const migration = this.migrations.get(migrationKey);
|
|
143
|
+
if (migration) {
|
|
144
|
+
currentRoutes = await migration(currentVersion, nextVersion, currentRoutes);
|
|
145
|
+
} else {
|
|
146
|
+
// 如果没有迁移函数,直接使用当前路由(可能不兼容)
|
|
147
|
+
_utils.logger.warn(`缺少迁移函数: ${migrationKey},跳过迁移`);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return currentRoutes;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* 获取版本信息
|
|
154
|
+
*
|
|
155
|
+
* @param version - 版本号
|
|
156
|
+
* @returns 版本信息,如果不存在返回 undefined
|
|
157
|
+
*/ getVersion(version) {
|
|
158
|
+
return this.versions.get(version);
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* 获取所有版本
|
|
162
|
+
*
|
|
163
|
+
* @returns 版本信息数组
|
|
164
|
+
*/ getAllVersions() {
|
|
165
|
+
return Array.from(this.versions.values());
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* 获取当前版本
|
|
169
|
+
*
|
|
170
|
+
* @returns 当前版本信息
|
|
171
|
+
*/ getCurrentVersion() {
|
|
172
|
+
return this.versions.get(this.config.currentVersion);
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* 回滚到指定版本
|
|
176
|
+
*
|
|
177
|
+
* @param version - 目标版本
|
|
178
|
+
* @param routes - 当前路由配置
|
|
179
|
+
* @returns 回滚后的路由配置
|
|
180
|
+
*/ async rollback(version, routes) {
|
|
181
|
+
return this.migrate(this.config.currentVersion, version, routes);
|
|
182
|
+
}
|
|
183
|
+
constructor(config){
|
|
184
|
+
_define_property(this, "versions", new Map());
|
|
185
|
+
_define_property(this, "migrations", new Map());
|
|
186
|
+
_define_property(this, "config", void 0);
|
|
187
|
+
this.config = {
|
|
188
|
+
enableVersionCheck: config.enableVersionCheck ?? true,
|
|
189
|
+
enableAutoMigration: config.enableAutoMigration ?? false,
|
|
190
|
+
currentVersion: config.currentVersion
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
/**
|
|
195
|
+
* 获取路由版本管理器单例
|
|
196
|
+
*/ let versionManagerInstance = null;
|
|
197
|
+
function getRouteVersionManager(config) {
|
|
198
|
+
if (!versionManagerInstance && config) {
|
|
199
|
+
versionManagerInstance = new RouteVersionManager(config);
|
|
200
|
+
}
|
|
201
|
+
if (!versionManagerInstance) {
|
|
202
|
+
throw new Error('路由版本管理器未初始化,请先提供配置');
|
|
203
|
+
}
|
|
204
|
+
return versionManagerInstance;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
//# sourceMappingURL=RouteVersionManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/core/router/version/RouteVersionManager.ts"],"sourcesContent":["/**\n * 路由版本管理器\n * 支持路由版本控制和迁移\n */\n\nimport { logger } from '../../../utils';\nimport type { RouteConfig } from '../types';\nimport { RouterError, RouterErrorCode } from '../errors';\n\n/**\n * 路由版本信息\n */\nexport interface RouteVersion {\n /**\n * 版本号(语义化版本,如 \"1.0.0\")\n */\n version: string;\n\n /**\n * 路由配置\n */\n routes: RouteConfig[];\n\n /**\n * 创建时间\n */\n createdAt: number;\n\n /**\n * 描述\n */\n description?: string;\n\n /**\n * 是否兼容旧版本\n */\n compatible?: boolean;\n}\n\n/**\n * 版本迁移函数\n */\nexport type VersionMigration = (\n fromVersion: string,\n toVersion: string,\n routes: RouteConfig[]\n) => RouteConfig[] | Promise<RouteConfig[]>;\n\n/**\n * 路由版本管理器配置\n */\nexport interface RouteVersionManagerConfig {\n /**\n * 当前版本\n */\n currentVersion: string;\n\n /**\n * 是否启用版本检查\n * @default true\n */\n enableVersionCheck?: boolean;\n\n /**\n * 是否启用自动迁移\n * @default false\n */\n enableAutoMigration?: boolean;\n}\n\n/**\n * 路由版本管理器\n */\nexport class RouteVersionManager {\n private versions: Map<string, RouteVersion> = new Map();\n private migrations: Map<string, VersionMigration> = new Map();\n private config: Required<RouteVersionManagerConfig>;\n\n constructor(config: RouteVersionManagerConfig) {\n this.config = {\n enableVersionCheck: config.enableVersionCheck ?? true,\n enableAutoMigration: config.enableAutoMigration ?? false,\n currentVersion: config.currentVersion,\n };\n }\n\n /**\n * 注册路由版本\n * \n * @param version - 版本信息\n */\n registerVersion(version: RouteVersion): void {\n // 验证版本号格式(简单的语义化版本检查)\n if (!/^\\d+\\.\\d+\\.\\d+/.test(version.version)) {\n throw new Error(`无效的版本号格式: ${version.version}`);\n }\n\n this.versions.set(version.version, {\n ...version,\n createdAt: version.createdAt || Date.now(),\n });\n\n logger.debug(`路由版本已注册: ${version.version}`);\n }\n\n /**\n * 注册版本迁移函数\n * \n * @param fromVersion - 源版本\n * @param toVersion - 目标版本\n * @param migration - 迁移函数\n */\n registerMigration(\n fromVersion: string,\n toVersion: string,\n migration: VersionMigration\n ): void {\n const key = `${fromVersion}->${toVersion}`;\n this.migrations.set(key, migration);\n logger.debug(`路由版本迁移已注册: ${key}`);\n }\n\n /**\n * 检查版本兼容性\n * \n * @param version - 要检查的版本\n * @returns 是否兼容\n */\n checkCompatibility(version: string): boolean {\n const versionInfo = this.versions.get(version);\n if (!versionInfo) {\n return false;\n }\n\n // 如果明确标记为不兼容,返回 false\n if (versionInfo.compatible === false) {\n return false;\n }\n\n // 简单的版本兼容性检查(主版本号相同)\n const currentMajor = parseInt(this.config.currentVersion.split('.')[0]);\n const targetMajor = parseInt(version.split('.')[0]);\n\n return currentMajor === targetMajor;\n }\n\n /**\n * 迁移路由配置\n * \n * @param fromVersion - 源版本\n * @param toVersion - 目标版本\n * @param routes - 路由配置\n * @returns 迁移后的路由配置\n */\n async migrate(\n fromVersion: string,\n toVersion: string,\n routes: RouteConfig[]\n ): Promise<RouteConfig[]> {\n if (fromVersion === toVersion) {\n return routes;\n }\n\n const migrationKey = `${fromVersion}->${toVersion}`;\n const migration = this.migrations.get(migrationKey);\n\n if (!migration) {\n // 如果没有直接迁移,尝试逐步迁移\n return this.migrateStepwise(fromVersion, toVersion, routes);\n }\n\n try {\n const migratedRoutes = await migration(fromVersion, toVersion, routes);\n logger.info(`路由版本迁移完成: ${fromVersion} -> ${toVersion}`);\n return migratedRoutes;\n } catch (error) {\n logger.error(`路由版本迁移失败: ${fromVersion} -> ${toVersion}`, error);\n const errorContext: Record<string, unknown> = { fromVersion, toVersion };\n if (error instanceof Error) {\n errorContext.originalError = error;\n }\n throw new RouterError(\n `路由版本迁移失败: ${fromVersion} -> ${toVersion}`,\n RouterErrorCode.ROUTE_TRANSFORM_FAILED,\n undefined,\n error instanceof Error ? error : undefined,\n errorContext\n );\n }\n }\n\n /**\n * 逐步迁移(通过中间版本)\n */\n private async migrateStepwise(\n fromVersion: string,\n toVersion: string,\n routes: RouteConfig[]\n ): Promise<RouteConfig[]> {\n // 获取所有版本并按版本号排序\n const allVersions = Array.from(this.versions.keys()).sort((a, b) => {\n const aParts = a.split('.').map(Number);\n const bParts = b.split('.').map(Number);\n for (let i = 0; i < 3; i++) {\n if (aParts[i] !== bParts[i]) {\n return aParts[i] - bParts[i];\n }\n }\n return 0;\n });\n\n // 找到从 fromVersion 到 toVersion 的路径\n const fromIndex = allVersions.indexOf(fromVersion);\n const toIndex = allVersions.indexOf(toVersion);\n\n if (fromIndex === -1 || toIndex === -1) {\n throw new Error(`无法找到版本迁移路径: ${fromVersion} -> ${toVersion}`);\n }\n\n let currentRoutes = routes;\n const step = fromIndex < toIndex ? 1 : -1;\n\n for (let i = fromIndex; i !== toIndex; i += step) {\n const currentVersion = allVersions[i];\n const nextVersion = allVersions[i + step];\n const migrationKey = `${currentVersion}->${nextVersion}`;\n const migration = this.migrations.get(migrationKey);\n\n if (migration) {\n currentRoutes = await migration(currentVersion, nextVersion, currentRoutes);\n } else {\n // 如果没有迁移函数,直接使用当前路由(可能不兼容)\n logger.warn(`缺少迁移函数: ${migrationKey},跳过迁移`);\n }\n }\n\n return currentRoutes;\n }\n\n /**\n * 获取版本信息\n * \n * @param version - 版本号\n * @returns 版本信息,如果不存在返回 undefined\n */\n getVersion(version: string): RouteVersion | undefined {\n return this.versions.get(version);\n }\n\n /**\n * 获取所有版本\n * \n * @returns 版本信息数组\n */\n getAllVersions(): RouteVersion[] {\n return Array.from(this.versions.values());\n }\n\n /**\n * 获取当前版本\n * \n * @returns 当前版本信息\n */\n getCurrentVersion(): RouteVersion | undefined {\n return this.versions.get(this.config.currentVersion);\n }\n\n /**\n * 回滚到指定版本\n * \n * @param version - 目标版本\n * @param routes - 当前路由配置\n * @returns 回滚后的路由配置\n */\n async rollback(version: string, routes: RouteConfig[]): Promise<RouteConfig[]> {\n return this.migrate(this.config.currentVersion, version, routes);\n }\n}\n\n/**\n * 获取路由版本管理器单例\n */\nlet versionManagerInstance: RouteVersionManager | null = null;\n\nexport function getRouteVersionManager(\n config?: RouteVersionManagerConfig\n): RouteVersionManager {\n if (!versionManagerInstance && config) {\n versionManagerInstance = new RouteVersionManager(config);\n }\n if (!versionManagerInstance) {\n throw new Error('路由版本管理器未初始化,请先提供配置');\n }\n return versionManagerInstance;\n}\n"],"names":["RouteVersionManager","getRouteVersionManager","registerVersion","version","test","Error","versions","set","createdAt","Date","now","logger","debug","registerMigration","fromVersion","toVersion","migration","key","migrations","checkCompatibility","versionInfo","get","compatible","currentMajor","parseInt","config","currentVersion","split","targetMajor","migrate","routes","migrationKey","migrateStepwise","migratedRoutes","info","error","errorContext","originalError","RouterError","RouterErrorCode","ROUTE_TRANSFORM_FAILED","undefined","allVersions","Array","from","keys","sort","a","b","aParts","map","Number","bParts","i","fromIndex","indexOf","toIndex","currentRoutes","step","nextVersion","warn","getVersion","getAllVersions","values","getCurrentVersion","rollback","Map","enableVersionCheck","enableAutoMigration","versionManagerInstance"],"mappings":"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"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 路由版本管理器
|
|
3
|
+
* 支持路由版本控制和迁移
|
|
4
|
+
*/
|
|
5
|
+
import type { RouteConfig } from '../types';
|
|
6
|
+
/**
|
|
7
|
+
* 路由版本信息
|
|
8
|
+
*/
|
|
9
|
+
export interface RouteVersion {
|
|
10
|
+
/**
|
|
11
|
+
* 版本号(语义化版本,如 "1.0.0")
|
|
12
|
+
*/
|
|
13
|
+
version: string;
|
|
14
|
+
/**
|
|
15
|
+
* 路由配置
|
|
16
|
+
*/
|
|
17
|
+
routes: RouteConfig[];
|
|
18
|
+
/**
|
|
19
|
+
* 创建时间
|
|
20
|
+
*/
|
|
21
|
+
createdAt: number;
|
|
22
|
+
/**
|
|
23
|
+
* 描述
|
|
24
|
+
*/
|
|
25
|
+
description?: string;
|
|
26
|
+
/**
|
|
27
|
+
* 是否兼容旧版本
|
|
28
|
+
*/
|
|
29
|
+
compatible?: boolean;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* 版本迁移函数
|
|
33
|
+
*/
|
|
34
|
+
export type VersionMigration = (fromVersion: string, toVersion: string, routes: RouteConfig[]) => RouteConfig[] | Promise<RouteConfig[]>;
|
|
35
|
+
/**
|
|
36
|
+
* 路由版本管理器配置
|
|
37
|
+
*/
|
|
38
|
+
export interface RouteVersionManagerConfig {
|
|
39
|
+
/**
|
|
40
|
+
* 当前版本
|
|
41
|
+
*/
|
|
42
|
+
currentVersion: string;
|
|
43
|
+
/**
|
|
44
|
+
* 是否启用版本检查
|
|
45
|
+
* @default true
|
|
46
|
+
*/
|
|
47
|
+
enableVersionCheck?: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* 是否启用自动迁移
|
|
50
|
+
* @default false
|
|
51
|
+
*/
|
|
52
|
+
enableAutoMigration?: boolean;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* 路由版本管理器
|
|
56
|
+
*/
|
|
57
|
+
export declare class RouteVersionManager {
|
|
58
|
+
private versions;
|
|
59
|
+
private migrations;
|
|
60
|
+
private config;
|
|
61
|
+
constructor(config: RouteVersionManagerConfig);
|
|
62
|
+
/**
|
|
63
|
+
* 注册路由版本
|
|
64
|
+
*
|
|
65
|
+
* @param version - 版本信息
|
|
66
|
+
*/
|
|
67
|
+
registerVersion(version: RouteVersion): void;
|
|
68
|
+
/**
|
|
69
|
+
* 注册版本迁移函数
|
|
70
|
+
*
|
|
71
|
+
* @param fromVersion - 源版本
|
|
72
|
+
* @param toVersion - 目标版本
|
|
73
|
+
* @param migration - 迁移函数
|
|
74
|
+
*/
|
|
75
|
+
registerMigration(fromVersion: string, toVersion: string, migration: VersionMigration): void;
|
|
76
|
+
/**
|
|
77
|
+
* 检查版本兼容性
|
|
78
|
+
*
|
|
79
|
+
* @param version - 要检查的版本
|
|
80
|
+
* @returns 是否兼容
|
|
81
|
+
*/
|
|
82
|
+
checkCompatibility(version: string): boolean;
|
|
83
|
+
/**
|
|
84
|
+
* 迁移路由配置
|
|
85
|
+
*
|
|
86
|
+
* @param fromVersion - 源版本
|
|
87
|
+
* @param toVersion - 目标版本
|
|
88
|
+
* @param routes - 路由配置
|
|
89
|
+
* @returns 迁移后的路由配置
|
|
90
|
+
*/
|
|
91
|
+
migrate(fromVersion: string, toVersion: string, routes: RouteConfig[]): Promise<RouteConfig[]>;
|
|
92
|
+
/**
|
|
93
|
+
* 逐步迁移(通过中间版本)
|
|
94
|
+
*/
|
|
95
|
+
private migrateStepwise;
|
|
96
|
+
/**
|
|
97
|
+
* 获取版本信息
|
|
98
|
+
*
|
|
99
|
+
* @param version - 版本号
|
|
100
|
+
* @returns 版本信息,如果不存在返回 undefined
|
|
101
|
+
*/
|
|
102
|
+
getVersion(version: string): RouteVersion | undefined;
|
|
103
|
+
/**
|
|
104
|
+
* 获取所有版本
|
|
105
|
+
*
|
|
106
|
+
* @returns 版本信息数组
|
|
107
|
+
*/
|
|
108
|
+
getAllVersions(): RouteVersion[];
|
|
109
|
+
/**
|
|
110
|
+
* 获取当前版本
|
|
111
|
+
*
|
|
112
|
+
* @returns 当前版本信息
|
|
113
|
+
*/
|
|
114
|
+
getCurrentVersion(): RouteVersion | undefined;
|
|
115
|
+
/**
|
|
116
|
+
* 回滚到指定版本
|
|
117
|
+
*
|
|
118
|
+
* @param version - 目标版本
|
|
119
|
+
* @param routes - 当前路由配置
|
|
120
|
+
* @returns 回滚后的路由配置
|
|
121
|
+
*/
|
|
122
|
+
rollback(version: string, routes: RouteConfig[]): Promise<RouteConfig[]>;
|
|
123
|
+
}
|
|
124
|
+
export declare function getRouteVersionManager(config?: RouteVersionManagerConfig): RouteVersionManager;
|
|
125
|
+
//# sourceMappingURL=RouteVersionManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RouteVersionManager.d.ts","sourceRoot":"","sources":["../../../../src/core/router/version/RouteVersionManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,EAAE,WAAW,EAAE,CAAC;IAEtB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAC7B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,EAAE,KAClB,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAwC;IACxD,OAAO,CAAC,UAAU,CAA4C;IAC9D,OAAO,CAAC,MAAM,CAAsC;gBAExC,MAAM,EAAE,yBAAyB;IAQ7C;;;;OAIG;IACH,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAc5C;;;;;;OAMG;IACH,iBAAiB,CACf,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,gBAAgB,GAC1B,IAAI;IAMP;;;;;OAKG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAkB5C;;;;;;;OAOG;IACG,OAAO,CACX,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,EAAE,GACpB,OAAO,CAAC,WAAW,EAAE,CAAC;IAiCzB;;OAEG;YACW,eAAe;IA6C7B;;;;;OAKG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIrD;;;;OAIG;IACH,cAAc,IAAI,YAAY,EAAE;IAIhC;;;;OAIG;IACH,iBAAiB,IAAI,YAAY,GAAG,SAAS;IAI7C;;;;;;OAMG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;CAG/E;AAOD,wBAAgB,sBAAsB,CACpC,MAAM,CAAC,EAAE,yBAAyB,GACjC,mBAAmB,CAQrB"}
|
|
@@ -0,0 +1,191 @@
|
|
|
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
|
+
/**
|
|
15
|
+
* 路由版本管理器
|
|
16
|
+
* 支持路由版本控制和迁移
|
|
17
|
+
*/ import { logger } from "../../../utils";
|
|
18
|
+
import { RouterError, RouterErrorCode } from "../errors";
|
|
19
|
+
/**
|
|
20
|
+
* 路由版本管理器
|
|
21
|
+
*/ export class RouteVersionManager {
|
|
22
|
+
/**
|
|
23
|
+
* 注册路由版本
|
|
24
|
+
*
|
|
25
|
+
* @param version - 版本信息
|
|
26
|
+
*/ registerVersion(version) {
|
|
27
|
+
// 验证版本号格式(简单的语义化版本检查)
|
|
28
|
+
if (!/^\d+\.\d+\.\d+/.test(version.version)) {
|
|
29
|
+
throw new Error(`无效的版本号格式: ${version.version}`);
|
|
30
|
+
}
|
|
31
|
+
this.versions.set(version.version, {
|
|
32
|
+
...version,
|
|
33
|
+
createdAt: version.createdAt || Date.now()
|
|
34
|
+
});
|
|
35
|
+
logger.debug(`路由版本已注册: ${version.version}`);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* 注册版本迁移函数
|
|
39
|
+
*
|
|
40
|
+
* @param fromVersion - 源版本
|
|
41
|
+
* @param toVersion - 目标版本
|
|
42
|
+
* @param migration - 迁移函数
|
|
43
|
+
*/ registerMigration(fromVersion, toVersion, migration) {
|
|
44
|
+
const key = `${fromVersion}->${toVersion}`;
|
|
45
|
+
this.migrations.set(key, migration);
|
|
46
|
+
logger.debug(`路由版本迁移已注册: ${key}`);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* 检查版本兼容性
|
|
50
|
+
*
|
|
51
|
+
* @param version - 要检查的版本
|
|
52
|
+
* @returns 是否兼容
|
|
53
|
+
*/ checkCompatibility(version) {
|
|
54
|
+
const versionInfo = this.versions.get(version);
|
|
55
|
+
if (!versionInfo) {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
// 如果明确标记为不兼容,返回 false
|
|
59
|
+
if (versionInfo.compatible === false) {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
// 简单的版本兼容性检查(主版本号相同)
|
|
63
|
+
const currentMajor = parseInt(this.config.currentVersion.split('.')[0]);
|
|
64
|
+
const targetMajor = parseInt(version.split('.')[0]);
|
|
65
|
+
return currentMajor === targetMajor;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* 迁移路由配置
|
|
69
|
+
*
|
|
70
|
+
* @param fromVersion - 源版本
|
|
71
|
+
* @param toVersion - 目标版本
|
|
72
|
+
* @param routes - 路由配置
|
|
73
|
+
* @returns 迁移后的路由配置
|
|
74
|
+
*/ async migrate(fromVersion, toVersion, routes) {
|
|
75
|
+
if (fromVersion === toVersion) {
|
|
76
|
+
return routes;
|
|
77
|
+
}
|
|
78
|
+
const migrationKey = `${fromVersion}->${toVersion}`;
|
|
79
|
+
const migration = this.migrations.get(migrationKey);
|
|
80
|
+
if (!migration) {
|
|
81
|
+
// 如果没有直接迁移,尝试逐步迁移
|
|
82
|
+
return this.migrateStepwise(fromVersion, toVersion, routes);
|
|
83
|
+
}
|
|
84
|
+
try {
|
|
85
|
+
const migratedRoutes = await migration(fromVersion, toVersion, routes);
|
|
86
|
+
logger.info(`路由版本迁移完成: ${fromVersion} -> ${toVersion}`);
|
|
87
|
+
return migratedRoutes;
|
|
88
|
+
} catch (error) {
|
|
89
|
+
logger.error(`路由版本迁移失败: ${fromVersion} -> ${toVersion}`, error);
|
|
90
|
+
const errorContext = {
|
|
91
|
+
fromVersion,
|
|
92
|
+
toVersion
|
|
93
|
+
};
|
|
94
|
+
if (error instanceof Error) {
|
|
95
|
+
errorContext.originalError = error;
|
|
96
|
+
}
|
|
97
|
+
throw new RouterError(`路由版本迁移失败: ${fromVersion} -> ${toVersion}`, RouterErrorCode.ROUTE_TRANSFORM_FAILED, undefined, error instanceof Error ? error : undefined, errorContext);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* 逐步迁移(通过中间版本)
|
|
102
|
+
*/ async migrateStepwise(fromVersion, toVersion, routes) {
|
|
103
|
+
// 获取所有版本并按版本号排序
|
|
104
|
+
const allVersions = Array.from(this.versions.keys()).sort((a, b)=>{
|
|
105
|
+
const aParts = a.split('.').map(Number);
|
|
106
|
+
const bParts = b.split('.').map(Number);
|
|
107
|
+
for(let i = 0; i < 3; i++){
|
|
108
|
+
if (aParts[i] !== bParts[i]) {
|
|
109
|
+
return aParts[i] - bParts[i];
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return 0;
|
|
113
|
+
});
|
|
114
|
+
// 找到从 fromVersion 到 toVersion 的路径
|
|
115
|
+
const fromIndex = allVersions.indexOf(fromVersion);
|
|
116
|
+
const toIndex = allVersions.indexOf(toVersion);
|
|
117
|
+
if (fromIndex === -1 || toIndex === -1) {
|
|
118
|
+
throw new Error(`无法找到版本迁移路径: ${fromVersion} -> ${toVersion}`);
|
|
119
|
+
}
|
|
120
|
+
let currentRoutes = routes;
|
|
121
|
+
const step = fromIndex < toIndex ? 1 : -1;
|
|
122
|
+
for(let i = fromIndex; i !== toIndex; i += step){
|
|
123
|
+
const currentVersion = allVersions[i];
|
|
124
|
+
const nextVersion = allVersions[i + step];
|
|
125
|
+
const migrationKey = `${currentVersion}->${nextVersion}`;
|
|
126
|
+
const migration = this.migrations.get(migrationKey);
|
|
127
|
+
if (migration) {
|
|
128
|
+
currentRoutes = await migration(currentVersion, nextVersion, currentRoutes);
|
|
129
|
+
} else {
|
|
130
|
+
// 如果没有迁移函数,直接使用当前路由(可能不兼容)
|
|
131
|
+
logger.warn(`缺少迁移函数: ${migrationKey},跳过迁移`);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return currentRoutes;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* 获取版本信息
|
|
138
|
+
*
|
|
139
|
+
* @param version - 版本号
|
|
140
|
+
* @returns 版本信息,如果不存在返回 undefined
|
|
141
|
+
*/ getVersion(version) {
|
|
142
|
+
return this.versions.get(version);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* 获取所有版本
|
|
146
|
+
*
|
|
147
|
+
* @returns 版本信息数组
|
|
148
|
+
*/ getAllVersions() {
|
|
149
|
+
return Array.from(this.versions.values());
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* 获取当前版本
|
|
153
|
+
*
|
|
154
|
+
* @returns 当前版本信息
|
|
155
|
+
*/ getCurrentVersion() {
|
|
156
|
+
return this.versions.get(this.config.currentVersion);
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* 回滚到指定版本
|
|
160
|
+
*
|
|
161
|
+
* @param version - 目标版本
|
|
162
|
+
* @param routes - 当前路由配置
|
|
163
|
+
* @returns 回滚后的路由配置
|
|
164
|
+
*/ async rollback(version, routes) {
|
|
165
|
+
return this.migrate(this.config.currentVersion, version, routes);
|
|
166
|
+
}
|
|
167
|
+
constructor(config){
|
|
168
|
+
_define_property(this, "versions", new Map());
|
|
169
|
+
_define_property(this, "migrations", new Map());
|
|
170
|
+
_define_property(this, "config", void 0);
|
|
171
|
+
this.config = {
|
|
172
|
+
enableVersionCheck: config.enableVersionCheck ?? true,
|
|
173
|
+
enableAutoMigration: config.enableAutoMigration ?? false,
|
|
174
|
+
currentVersion: config.currentVersion
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* 获取路由版本管理器单例
|
|
180
|
+
*/ let versionManagerInstance = null;
|
|
181
|
+
export function getRouteVersionManager(config) {
|
|
182
|
+
if (!versionManagerInstance && config) {
|
|
183
|
+
versionManagerInstance = new RouteVersionManager(config);
|
|
184
|
+
}
|
|
185
|
+
if (!versionManagerInstance) {
|
|
186
|
+
throw new Error('路由版本管理器未初始化,请先提供配置');
|
|
187
|
+
}
|
|
188
|
+
return versionManagerInstance;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
//# sourceMappingURL=RouteVersionManager.js.map
|