@vlian/framework 1.2.57 → 1.2.60
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/README.md +15 -3
- package/dist/analytics/index.cjs +1 -24
- package/dist/analytics/index.js +1 -3
- package/dist/analytics.umd.js +8 -208
- package/dist/components/LocaleSwitch.cjs +1 -118
- package/dist/components/LocaleSwitch.js +1 -103
- package/dist/components/ThemeSwitch.cjs +1 -117
- package/dist/components/ThemeSwitch.js +1 -102
- package/dist/components/index.cjs +1 -22
- package/dist/components/index.js +1 -4
- package/dist/components/persistence.cjs +1 -60
- package/dist/components/persistence.js +1 -39
- package/dist/core/Test.cjs +1 -66
- package/dist/core/Test.js +1 -15
- package/dist/core/app/AppContext.cjs +1 -350
- package/dist/core/app/AppContext.js +1 -339
- package/dist/core/app/AppContext.types.cjs +1 -6
- package/dist/core/app/AppContext.types.js +1 -5
- package/dist/core/app/BasicLayout.cjs +1 -124
- package/dist/core/app/BasicLayout.js +1 -74
- package/dist/core/app/DefaultApp.cjs +1 -152
- package/dist/core/app/DefaultApp.js +1 -143
- package/dist/core/app/index.cjs +1 -43
- package/dist/core/app/index.js +1 -7
- package/dist/core/config/AppConfig.cjs +1 -141
- package/dist/core/config/AppConfig.js +1 -133
- package/dist/core/config/ConfigLoader.cjs +1 -325
- package/dist/core/config/ConfigLoader.js +1 -311
- package/dist/core/config/ConfigValidator.cjs +2 -135
- package/dist/core/config/ConfigValidator.js +2 -121
- package/dist/core/config/index.cjs +1 -30
- package/dist/core/config/index.js +1 -7
- package/dist/core/dev/DevTools.cjs +1 -228
- package/dist/core/dev/DevTools.js +1 -210
- package/dist/core/error/ErrorBoundary.cjs +1 -403
- package/dist/core/error/ErrorBoundary.js +1 -399
- package/dist/core/error/ErrorHandler.cjs +1 -277
- package/dist/core/error/ErrorHandler.js +1 -261
- package/dist/core/error/index.cjs +1 -36
- package/dist/core/error/index.js +1 -6
- package/dist/core/event/AppEventBus.cjs +1 -446
- package/dist/core/event/AppEventBus.js +1 -438
- package/dist/core/event/frameworkEvents.cjs +1 -143
- package/dist/core/event/frameworkEvents.js +1 -135
- package/dist/core/event/hooks.cjs +1 -71
- package/dist/core/event/hooks.js +1 -95
- package/dist/core/event/index.cjs +1 -43
- package/dist/core/event/index.js +1 -10
- package/dist/core/event/types.cjs +1 -64
- package/dist/core/event/types.js +1 -56
- package/dist/core/event/useEventBus.cjs +1 -27
- package/dist/core/event/useEventBus.js +1 -39
- package/dist/core/index.cjs +1 -142
- package/dist/core/index.js +1 -69
- package/dist/core/initialization/InitializationErrorThrower.cjs +1 -77
- package/dist/core/initialization/InitializationErrorThrower.js +1 -30
- package/dist/core/initialization/index.cjs +1 -28
- package/dist/core/initialization/index.js +1 -7
- package/dist/core/initialization/initialization.cjs +1 -66
- package/dist/core/initialization/initialization.js +1 -78
- package/dist/core/initialization/initializationErrorState.cjs +1 -68
- package/dist/core/initialization/initializationErrorState.js +1 -60
- package/dist/core/kernel/defaultAdapters.cjs +1 -186
- package/dist/core/kernel/defaultAdapters.js +1 -176
- package/dist/core/kernel/errors.cjs +1 -71
- package/dist/core/kernel/errors.js +1 -53
- package/dist/core/kernel/index.cjs +1 -22
- package/dist/core/kernel/index.js +1 -4
- package/dist/core/kernel/startKernel.cjs +1 -202
- package/dist/core/kernel/startKernel.js +1 -192
- package/dist/core/kernel/types.cjs +1 -6
- package/dist/core/kernel/types.js +1 -3
- package/dist/core/middleware.cjs +1 -75
- package/dist/core/middleware.js +1 -61
- package/dist/core/plugin/PluginEventBus.cjs +1 -300
- package/dist/core/plugin/PluginEventBus.js +1 -286
- package/dist/core/plugin/PluginSandbox.cjs +1 -139
- package/dist/core/plugin/PluginSandbox.js +1 -125
- package/dist/core/plugin.cjs +1 -496
- package/dist/core/plugin.js +1 -438
- package/dist/core/router/RouterManager.cjs +1 -288
- package/dist/core/router/RouterManager.js +1 -272
- package/dist/core/router/adapter/AdapterManager.cjs +1 -237
- package/dist/core/router/adapter/AdapterManager.js +1 -221
- package/dist/core/router/adapter/index.cjs +1 -24
- package/dist/core/router/adapter/index.js +1 -7
- package/dist/core/router/adapter/react-router/ReactRouterAdapter.cjs +1 -130
- package/dist/core/router/adapter/react-router/ReactRouterAdapter.js +1 -116
- package/dist/core/router/adapter/react-router/index.cjs +1 -22
- package/dist/core/router/adapter/react-router/index.js +1 -5
- package/dist/core/router/adapter/types.cjs +1 -8
- package/dist/core/router/adapter/types.js +1 -7
- package/dist/core/router/dev/RouterDevTools.cjs +1 -262
- package/dist/core/router/dev/RouterDevTools.js +1 -211
- package/dist/core/router/dev/index.cjs +1 -22
- package/dist/core/router/dev/index.js +1 -5
- package/dist/core/router/dynamic/DynamicRouteManager.cjs +1 -195
- package/dist/core/router/dynamic/DynamicRouteManager.js +1 -179
- package/dist/core/router/dynamic/index.cjs +1 -22
- package/dist/core/router/dynamic/index.js +1 -5
- package/dist/core/router/errors/RouterError.cjs +1 -63
- package/dist/core/router/errors/RouterError.js +1 -48
- package/dist/core/router/errors/index.cjs +1 -22
- package/dist/core/router/errors/index.js +1 -5
- package/dist/core/router/index.cjs +1 -38
- package/dist/core/router/index.js +1 -32
- package/dist/core/router/lifecycle/RouterLifecycleManager.cjs +1 -146
- package/dist/core/router/lifecycle/RouterLifecycleManager.js +1 -130
- package/dist/core/router/lifecycle/index.cjs +1 -22
- package/dist/core/router/lifecycle/index.js +1 -5
- package/dist/core/router/middleware/RouterMiddlewareManager.cjs +1 -195
- package/dist/core/router/middleware/RouterMiddlewareManager.js +1 -179
- package/dist/core/router/middleware/auth.cjs +1 -68
- package/dist/core/router/middleware/auth.js +1 -63
- package/dist/core/router/middleware/index.cjs +1 -24
- package/dist/core/router/middleware/index.js +1 -7
- package/dist/core/router/middleware/types.cjs +1 -8
- package/dist/core/router/middleware/types.js +1 -7
- package/dist/core/router/monitoring/RouterMonitoring.cjs +1 -229
- package/dist/core/router/monitoring/RouterMonitoring.js +1 -213
- package/dist/core/router/monitoring/index.cjs +1 -22
- package/dist/core/router/monitoring/index.js +1 -5
- package/dist/core/router/navigation/RouterNavigation.cjs +1 -241
- package/dist/core/router/navigation/RouterNavigation.js +1 -192
- package/dist/core/router/navigation/index.cjs +1 -22
- package/dist/core/router/navigation/index.js +1 -5
- package/dist/core/router/performance/RouteCache.cjs +1 -307
- package/dist/core/router/performance/RouteCache.js +1 -291
- package/dist/core/router/performance/RoutePreloader.cjs +1 -294
- package/dist/core/router/performance/RoutePreloader.js +1 -277
- package/dist/core/router/performance/index.cjs +1 -23
- package/dist/core/router/performance/index.js +1 -6
- package/dist/core/router/plugin/RouterPluginManager.cjs +1 -264
- package/dist/core/router/plugin/RouterPluginManager.js +1 -248
- package/dist/core/router/plugin/index.cjs +1 -23
- package/dist/core/router/plugin/index.js +1 -6
- package/dist/core/router/plugin/types.cjs +1 -41
- package/dist/core/router/plugin/types.js +1 -33
- package/dist/core/router/types.cjs +1 -6
- package/dist/core/router/types.js +1 -5
- package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.cjs +1 -131
- package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.js +1 -121
- package/dist/core/router/utils/adapters/react-router/transform.cjs +1 -252
- package/dist/core/router/utils/adapters/react-router/transform.js +1 -242
- package/dist/core/router/utils/transform.cjs +1 -782
- package/dist/core/router/utils/transform.js +1 -791
- package/dist/core/router/validation/RouterConfigValidator.cjs +2 -85
- package/dist/core/router/validation/RouterConfigValidator.js +2 -77
- package/dist/core/router/validation/index.cjs +1 -23
- package/dist/core/router/validation/index.js +1 -6
- package/dist/core/router/validation/schema.cjs +1 -161
- package/dist/core/router/validation/schema.js +1 -151
- package/dist/core/router/version/RouteVersionManager.cjs +1 -207
- package/dist/core/router/version/RouteVersionManager.js +1 -191
- package/dist/core/router/version/index.cjs +1 -22
- package/dist/core/router/version/index.js +1 -5
- package/dist/core/splash/SplashScreen.cjs +1 -343
- package/dist/core/splash/SplashScreen.js +1 -293
- package/dist/core/splash/index.cjs +1 -24
- package/dist/core/splash/index.js +1 -6
- package/dist/core/splash/splashScreenUtils.cjs +1 -40
- package/dist/core/splash/splashScreenUtils.js +1 -30
- package/dist/core/startup/AppInstance.cjs +1 -241
- package/dist/core/startup/AppInstance.js +1 -226
- package/dist/core/startup/environment.cjs +1 -171
- package/dist/core/startup/environment.js +1 -154
- package/dist/core/startup/index.cjs +1 -25
- package/dist/core/startup/index.js +1 -8
- package/dist/core/startup/initializeServices.cjs +1 -228
- package/dist/core/startup/initializeServices.js +1 -188
- package/dist/core/startup/performanceTracker.cjs +1 -181
- package/dist/core/startup/performanceTracker.js +1 -167
- package/dist/core/startup/renderApp.cjs +1 -316
- package/dist/core/startup/renderApp.js +1 -267
- package/dist/core/startup/startApp.cjs +1 -319
- package/dist/core/startup/startApp.js +1 -315
- package/dist/core/types.cjs +1 -6
- package/dist/core/types.js +1 -5
- package/dist/index.cjs +1 -54
- package/dist/index.js +1 -11
- package/dist/index.umd.cjs +1 -29
- package/dist/index.umd.js +362 -13233
- package/dist/kernel/constants.cjs +1 -67
- package/dist/kernel/constants.js +1 -43
- package/dist/kernel/index.cjs +1 -40
- package/dist/kernel/index.js +1 -4
- package/dist/kernel/kernel.cjs +1 -297
- package/dist/kernel/kernel.js +1 -273
- package/dist/kernel/manager/cacheManager.cjs +1 -48
- package/dist/kernel/manager/cacheManager.js +1 -38
- package/dist/kernel/manager/i18n/I18nManager.cjs +1 -93
- package/dist/kernel/manager/i18n/I18nManager.js +1 -83
- package/dist/kernel/manager/i18n/i18n.persistence.cjs +1 -62
- package/dist/kernel/manager/i18n/i18n.persistence.js +1 -41
- package/dist/kernel/manager/i18n/i18n.schema.cjs +1 -88
- package/dist/kernel/manager/i18n/i18n.schema.js +1 -64
- package/dist/kernel/manager/i18n/index.cjs +1 -13
- package/dist/kernel/manager/i18n/index.js +1 -3
- package/dist/kernel/manager/i18nManager.cjs +1 -13
- package/dist/kernel/manager/i18nManager.js +1 -3
- package/dist/kernel/manager/index.cjs +1 -30
- package/dist/kernel/manager/index.js +1 -6
- package/dist/kernel/manager/logger/LoggerManager.cjs +1 -109
- package/dist/kernel/manager/logger/LoggerManager.js +1 -99
- package/dist/kernel/manager/logger/index.cjs +1 -13
- package/dist/kernel/manager/logger/index.js +1 -3
- package/dist/kernel/manager/logger/logger.persistence.cjs +1 -64
- package/dist/kernel/manager/logger/logger.persistence.js +1 -43
- package/dist/kernel/manager/logger/logger.schema.cjs +1 -76
- package/dist/kernel/manager/logger/logger.schema.js +1 -55
- package/dist/kernel/manager/loggerManager.cjs +1 -13
- package/dist/kernel/manager/loggerManager.js +1 -3
- package/dist/kernel/manager/theme/ThemeManager.cjs +1 -86
- package/dist/kernel/manager/theme/ThemeManager.js +1 -76
- package/dist/kernel/manager/theme/index.cjs +1 -13
- package/dist/kernel/manager/theme/index.js +1 -3
- package/dist/kernel/manager/theme/theme.dom.cjs +1 -63
- package/dist/kernel/manager/theme/theme.dom.js +1 -45
- package/dist/kernel/manager/theme/theme.persistence.cjs +1 -59
- package/dist/kernel/manager/theme/theme.persistence.js +1 -38
- package/dist/kernel/manager/theme/theme.schema.cjs +1 -124
- package/dist/kernel/manager/theme/theme.schema.js +1 -97
- package/dist/kernel/manager/themeManager.cjs +1 -13
- package/dist/kernel/manager/themeManager.js +1 -3
- package/dist/kernel/types.cjs +1 -6
- package/dist/kernel/types.js +1 -3
- package/dist/library/index.cjs +1 -21
- package/dist/library/index.js +1 -4
- package/dist/library/locale/index.cjs +1 -41
- package/dist/library/locale/index.js +1 -12
- package/dist/library/locale/langs/en-us/index.cjs +1 -34
- package/dist/library/locale/langs/en-us/index.js +1 -24
- package/dist/library/locale/langs/zh-cn/index.cjs +1 -34
- package/dist/library/locale/langs/zh-cn/index.js +1 -24
- package/dist/library/locale/types.cjs +1 -6
- package/dist/library/locale/types.js +1 -3
- package/dist/library/storage/cache.cjs +1 -245
- package/dist/library/storage/cache.js +1 -237
- package/dist/library/storage/encryption.cjs +1 -149
- package/dist/library/storage/encryption.js +1 -141
- package/dist/library/storage/index.cjs +1 -126
- package/dist/library/storage/index.js +1 -106
- package/dist/state/StateManager.cjs +1 -168
- package/dist/state/StateManager.js +1 -160
- package/dist/state/adapters/AdapterFactory.cjs +1 -91
- package/dist/state/adapters/AdapterFactory.js +1 -85
- package/dist/state/adapters/DefaultAdapter.cjs +1 -77
- package/dist/state/adapters/DefaultAdapter.js +1 -71
- package/dist/state/adapters/ReduxAdapter.cjs +1 -445
- package/dist/state/adapters/ReduxAdapter.js +1 -439
- package/dist/state/adapters/ZustandAdapter.cjs +1 -71
- package/dist/state/adapters/ZustandAdapter.js +1 -70
- package/dist/state/adapters/index.cjs +1 -46
- package/dist/state/adapters/index.js +1 -9
- package/dist/state/adapters/types.cjs +1 -22
- package/dist/state/adapters/types.js +1 -5
- package/dist/state/core/DerivedStateInstance.cjs +1 -176
- package/dist/state/core/DerivedStateInstance.js +1 -173
- package/dist/state/core/StateInstance.cjs +1 -172
- package/dist/state/core/StateInstance.js +1 -168
- package/dist/state/core/StateRegistry.cjs +1 -112
- package/dist/state/core/StateRegistry.js +1 -106
- package/dist/state/core/StateScope.cjs +1 -139
- package/dist/state/core/StateScope.js +1 -133
- package/dist/state/core/index.cjs +1 -32
- package/dist/state/core/index.js +1 -8
- package/dist/state/index.cjs +1 -32
- package/dist/state/index.js +1 -12
- package/dist/state/types.cjs +1 -14
- package/dist/state/types.js +1 -13
- package/dist/state.umd.js +22 -1395
- package/dist/types.cjs +1 -6
- package/dist/types.js +1 -3
- package/dist/utils/analytics.cjs +1 -219
- package/dist/utils/analytics.js +1 -204
- package/dist/utils/configSecurity.cjs +3 -184
- package/dist/utils/configSecurity.js +3 -176
- package/dist/utils/csrf.cjs +1 -20
- package/dist/utils/csrf.js +1 -3
- package/dist/utils/errors/ErrorCodes.cjs +1 -27
- package/dist/utils/errors/ErrorCodes.js +1 -3
- package/dist/utils/errors.cjs +1 -113
- package/dist/utils/errors.js +1 -18
- package/dist/utils/index.cjs +1 -137
- package/dist/utils/index.js +1 -48
- package/dist/utils/logger.cjs +1 -27
- package/dist/utils/logger.js +1 -3
- package/dist/utils/logger.types.cjs +1 -13
- package/dist/utils/logger.types.js +1 -3
- package/dist/utils/monitoring.cjs +1 -20
- package/dist/utils/monitoring.js +1 -3
- package/dist/utils/performance.cjs +1 -24
- package/dist/utils/performance.js +1 -3
- package/dist/utils/resourceLoader.cjs +1 -24
- package/dist/utils/resourceLoader.js +1 -3
- package/dist/utils/runtimeSecurity.cjs +1 -13
- package/dist/utils/runtimeSecurity.js +1 -3
- package/dist/utils/security.cjs +1 -21
- package/dist/utils/security.js +1 -3
- package/dist/utils/traceId.cjs +1 -39
- package/dist/utils/traceId.js +1 -3
- package/dist/utils/validation.cjs +1 -21
- package/dist/utils/validation.js +1 -3
- package/package.json +9 -6
- package/dist/analytics/index.cjs.map +0 -1
- package/dist/analytics/index.js.map +0 -1
- package/dist/analytics.umd.js.map +0 -1
- package/dist/components/LocaleSwitch.cjs.map +0 -1
- package/dist/components/LocaleSwitch.js.map +0 -1
- package/dist/components/ThemeSwitch.cjs.map +0 -1
- package/dist/components/ThemeSwitch.js.map +0 -1
- package/dist/components/index.cjs.map +0 -1
- package/dist/components/index.js.map +0 -1
- package/dist/components/persistence.cjs.map +0 -1
- package/dist/components/persistence.js.map +0 -1
- package/dist/core/Test.cjs.map +0 -1
- package/dist/core/Test.js.map +0 -1
- package/dist/core/app/AppContext.cjs.map +0 -1
- package/dist/core/app/AppContext.js.map +0 -1
- package/dist/core/app/AppContext.types.cjs.map +0 -1
- package/dist/core/app/AppContext.types.js.map +0 -1
- package/dist/core/app/BasicLayout.cjs.map +0 -1
- package/dist/core/app/BasicLayout.js.map +0 -1
- package/dist/core/app/DefaultApp.cjs.map +0 -1
- package/dist/core/app/DefaultApp.js.map +0 -1
- package/dist/core/app/index.cjs.map +0 -1
- package/dist/core/app/index.js.map +0 -1
- package/dist/core/config/AppConfig.cjs.map +0 -1
- package/dist/core/config/AppConfig.js.map +0 -1
- package/dist/core/config/ConfigLoader.cjs.map +0 -1
- package/dist/core/config/ConfigLoader.js.map +0 -1
- package/dist/core/config/ConfigValidator.cjs.map +0 -1
- package/dist/core/config/ConfigValidator.js.map +0 -1
- package/dist/core/config/index.cjs.map +0 -1
- package/dist/core/config/index.js.map +0 -1
- package/dist/core/dev/DevTools.cjs.map +0 -1
- package/dist/core/dev/DevTools.js.map +0 -1
- package/dist/core/error/ErrorBoundary.cjs.map +0 -1
- package/dist/core/error/ErrorBoundary.js.map +0 -1
- package/dist/core/error/ErrorHandler.cjs.map +0 -1
- package/dist/core/error/ErrorHandler.js.map +0 -1
- package/dist/core/error/index.cjs.map +0 -1
- package/dist/core/error/index.js.map +0 -1
- package/dist/core/event/AppEventBus.cjs.map +0 -1
- package/dist/core/event/AppEventBus.js.map +0 -1
- package/dist/core/event/frameworkEvents.cjs.map +0 -1
- package/dist/core/event/frameworkEvents.js.map +0 -1
- package/dist/core/event/hooks.cjs.map +0 -1
- package/dist/core/event/hooks.js.map +0 -1
- package/dist/core/event/index.cjs.map +0 -1
- package/dist/core/event/index.js.map +0 -1
- package/dist/core/event/types.cjs.map +0 -1
- package/dist/core/event/types.js.map +0 -1
- package/dist/core/event/useEventBus.cjs.map +0 -1
- package/dist/core/event/useEventBus.js.map +0 -1
- package/dist/core/index.cjs.map +0 -1
- package/dist/core/index.js.map +0 -1
- package/dist/core/initialization/InitializationErrorThrower.cjs.map +0 -1
- package/dist/core/initialization/InitializationErrorThrower.js.map +0 -1
- package/dist/core/initialization/index.cjs.map +0 -1
- package/dist/core/initialization/index.js.map +0 -1
- package/dist/core/initialization/initialization.cjs.map +0 -1
- package/dist/core/initialization/initialization.js.map +0 -1
- package/dist/core/initialization/initializationErrorState.cjs.map +0 -1
- package/dist/core/initialization/initializationErrorState.js.map +0 -1
- package/dist/core/kernel/defaultAdapters.cjs.map +0 -1
- package/dist/core/kernel/defaultAdapters.js.map +0 -1
- package/dist/core/kernel/errors.cjs.map +0 -1
- package/dist/core/kernel/errors.js.map +0 -1
- package/dist/core/kernel/index.cjs.map +0 -1
- package/dist/core/kernel/index.js.map +0 -1
- package/dist/core/kernel/startKernel.cjs.map +0 -1
- package/dist/core/kernel/startKernel.js.map +0 -1
- package/dist/core/kernel/types.cjs.map +0 -1
- package/dist/core/kernel/types.js.map +0 -1
- package/dist/core/middleware.cjs.map +0 -1
- package/dist/core/middleware.js.map +0 -1
- package/dist/core/plugin/PluginEventBus.cjs.map +0 -1
- package/dist/core/plugin/PluginEventBus.js.map +0 -1
- package/dist/core/plugin/PluginSandbox.cjs.map +0 -1
- package/dist/core/plugin/PluginSandbox.js.map +0 -1
- package/dist/core/plugin.cjs.map +0 -1
- package/dist/core/plugin.js.map +0 -1
- package/dist/core/router/RouterManager.cjs.map +0 -1
- package/dist/core/router/RouterManager.js.map +0 -1
- package/dist/core/router/adapter/AdapterManager.cjs.map +0 -1
- package/dist/core/router/adapter/AdapterManager.js.map +0 -1
- package/dist/core/router/adapter/index.cjs.map +0 -1
- package/dist/core/router/adapter/index.js.map +0 -1
- package/dist/core/router/adapter/react-router/ReactRouterAdapter.cjs.map +0 -1
- package/dist/core/router/adapter/react-router/ReactRouterAdapter.js.map +0 -1
- package/dist/core/router/adapter/react-router/index.cjs.map +0 -1
- package/dist/core/router/adapter/react-router/index.js.map +0 -1
- package/dist/core/router/adapter/types.cjs.map +0 -1
- package/dist/core/router/adapter/types.js.map +0 -1
- package/dist/core/router/dev/RouterDevTools.cjs.map +0 -1
- package/dist/core/router/dev/RouterDevTools.js.map +0 -1
- package/dist/core/router/dev/index.cjs.map +0 -1
- package/dist/core/router/dev/index.js.map +0 -1
- package/dist/core/router/dynamic/DynamicRouteManager.cjs.map +0 -1
- package/dist/core/router/dynamic/DynamicRouteManager.js.map +0 -1
- package/dist/core/router/dynamic/index.cjs.map +0 -1
- package/dist/core/router/dynamic/index.js.map +0 -1
- package/dist/core/router/errors/RouterError.cjs.map +0 -1
- package/dist/core/router/errors/RouterError.js.map +0 -1
- package/dist/core/router/errors/index.cjs.map +0 -1
- package/dist/core/router/errors/index.js.map +0 -1
- package/dist/core/router/index.cjs.map +0 -1
- package/dist/core/router/index.js.map +0 -1
- package/dist/core/router/lifecycle/RouterLifecycleManager.cjs.map +0 -1
- package/dist/core/router/lifecycle/RouterLifecycleManager.js.map +0 -1
- package/dist/core/router/lifecycle/index.cjs.map +0 -1
- package/dist/core/router/lifecycle/index.js.map +0 -1
- package/dist/core/router/middleware/RouterMiddlewareManager.cjs.map +0 -1
- package/dist/core/router/middleware/RouterMiddlewareManager.js.map +0 -1
- package/dist/core/router/middleware/auth.cjs.map +0 -1
- package/dist/core/router/middleware/auth.js.map +0 -1
- package/dist/core/router/middleware/index.cjs.map +0 -1
- package/dist/core/router/middleware/index.js.map +0 -1
- package/dist/core/router/middleware/types.cjs.map +0 -1
- package/dist/core/router/middleware/types.js.map +0 -1
- package/dist/core/router/monitoring/RouterMonitoring.cjs.map +0 -1
- package/dist/core/router/monitoring/RouterMonitoring.js.map +0 -1
- package/dist/core/router/monitoring/index.cjs.map +0 -1
- package/dist/core/router/monitoring/index.js.map +0 -1
- package/dist/core/router/navigation/RouterNavigation.cjs.map +0 -1
- package/dist/core/router/navigation/RouterNavigation.js.map +0 -1
- package/dist/core/router/navigation/index.cjs.map +0 -1
- package/dist/core/router/navigation/index.js.map +0 -1
- package/dist/core/router/performance/RouteCache.cjs.map +0 -1
- package/dist/core/router/performance/RouteCache.js.map +0 -1
- package/dist/core/router/performance/RoutePreloader.cjs.map +0 -1
- package/dist/core/router/performance/RoutePreloader.js.map +0 -1
- package/dist/core/router/performance/index.cjs.map +0 -1
- package/dist/core/router/performance/index.js.map +0 -1
- package/dist/core/router/plugin/RouterPluginManager.cjs.map +0 -1
- package/dist/core/router/plugin/RouterPluginManager.js.map +0 -1
- package/dist/core/router/plugin/index.cjs.map +0 -1
- package/dist/core/router/plugin/index.js.map +0 -1
- package/dist/core/router/plugin/types.cjs.map +0 -1
- package/dist/core/router/plugin/types.js.map +0 -1
- package/dist/core/router/types.cjs.map +0 -1
- package/dist/core/router/types.js.map +0 -1
- package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.cjs.map +0 -1
- package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.js.map +0 -1
- package/dist/core/router/utils/adapters/react-router/transform.cjs.map +0 -1
- package/dist/core/router/utils/adapters/react-router/transform.js.map +0 -1
- package/dist/core/router/utils/transform.cjs.map +0 -1
- package/dist/core/router/utils/transform.js.map +0 -1
- package/dist/core/router/validation/RouterConfigValidator.cjs.map +0 -1
- package/dist/core/router/validation/RouterConfigValidator.js.map +0 -1
- package/dist/core/router/validation/index.cjs.map +0 -1
- package/dist/core/router/validation/index.js.map +0 -1
- package/dist/core/router/validation/schema.cjs.map +0 -1
- package/dist/core/router/validation/schema.js.map +0 -1
- package/dist/core/router/version/RouteVersionManager.cjs.map +0 -1
- package/dist/core/router/version/RouteVersionManager.js.map +0 -1
- package/dist/core/router/version/index.cjs.map +0 -1
- package/dist/core/router/version/index.js.map +0 -1
- package/dist/core/splash/SplashScreen.cjs.map +0 -1
- package/dist/core/splash/SplashScreen.js.map +0 -1
- package/dist/core/splash/index.cjs.map +0 -1
- package/dist/core/splash/index.js.map +0 -1
- package/dist/core/splash/splashScreenUtils.cjs.map +0 -1
- package/dist/core/splash/splashScreenUtils.js.map +0 -1
- package/dist/core/startup/AppInstance.cjs.map +0 -1
- package/dist/core/startup/AppInstance.js.map +0 -1
- package/dist/core/startup/environment.cjs.map +0 -1
- package/dist/core/startup/environment.js.map +0 -1
- package/dist/core/startup/index.cjs.map +0 -1
- package/dist/core/startup/index.js.map +0 -1
- package/dist/core/startup/initializeServices.cjs.map +0 -1
- package/dist/core/startup/initializeServices.js.map +0 -1
- package/dist/core/startup/performanceTracker.cjs.map +0 -1
- package/dist/core/startup/performanceTracker.js.map +0 -1
- package/dist/core/startup/renderApp.cjs.map +0 -1
- package/dist/core/startup/renderApp.js.map +0 -1
- package/dist/core/startup/startApp.cjs.map +0 -1
- package/dist/core/startup/startApp.js.map +0 -1
- package/dist/core/types.cjs.map +0 -1
- package/dist/core/types.js.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.umd.cjs.map +0 -1
- package/dist/index.umd.js.map +0 -1
- package/dist/kernel/constants.cjs.map +0 -1
- package/dist/kernel/constants.js.map +0 -1
- package/dist/kernel/index.cjs.map +0 -1
- package/dist/kernel/index.js.map +0 -1
- package/dist/kernel/kernel.cjs.map +0 -1
- package/dist/kernel/kernel.js.map +0 -1
- package/dist/kernel/manager/cacheManager.cjs.map +0 -1
- package/dist/kernel/manager/cacheManager.js.map +0 -1
- package/dist/kernel/manager/i18n/I18nManager.cjs.map +0 -1
- package/dist/kernel/manager/i18n/I18nManager.js.map +0 -1
- package/dist/kernel/manager/i18n/i18n.persistence.cjs.map +0 -1
- package/dist/kernel/manager/i18n/i18n.persistence.js.map +0 -1
- package/dist/kernel/manager/i18n/i18n.schema.cjs.map +0 -1
- package/dist/kernel/manager/i18n/i18n.schema.js.map +0 -1
- package/dist/kernel/manager/i18n/index.cjs.map +0 -1
- package/dist/kernel/manager/i18n/index.js.map +0 -1
- package/dist/kernel/manager/i18nManager.cjs.map +0 -1
- package/dist/kernel/manager/i18nManager.js.map +0 -1
- package/dist/kernel/manager/index.cjs.map +0 -1
- package/dist/kernel/manager/index.js.map +0 -1
- package/dist/kernel/manager/logger/LoggerManager.cjs.map +0 -1
- package/dist/kernel/manager/logger/LoggerManager.js.map +0 -1
- package/dist/kernel/manager/logger/index.cjs.map +0 -1
- package/dist/kernel/manager/logger/index.js.map +0 -1
- package/dist/kernel/manager/logger/logger.persistence.cjs.map +0 -1
- package/dist/kernel/manager/logger/logger.persistence.js.map +0 -1
- package/dist/kernel/manager/logger/logger.schema.cjs.map +0 -1
- package/dist/kernel/manager/logger/logger.schema.js.map +0 -1
- package/dist/kernel/manager/loggerManager.cjs.map +0 -1
- package/dist/kernel/manager/loggerManager.js.map +0 -1
- package/dist/kernel/manager/persistence.cjs +0 -78
- package/dist/kernel/manager/persistence.cjs.map +0 -1
- package/dist/kernel/manager/persistence.d.ts +0 -3
- package/dist/kernel/manager/persistence.js +0 -60
- package/dist/kernel/manager/persistence.js.map +0 -1
- package/dist/kernel/manager/theme/ThemeManager.cjs.map +0 -1
- package/dist/kernel/manager/theme/ThemeManager.js.map +0 -1
- package/dist/kernel/manager/theme/index.cjs.map +0 -1
- package/dist/kernel/manager/theme/index.js.map +0 -1
- package/dist/kernel/manager/theme/theme.dom.cjs.map +0 -1
- package/dist/kernel/manager/theme/theme.dom.js.map +0 -1
- package/dist/kernel/manager/theme/theme.persistence.cjs.map +0 -1
- package/dist/kernel/manager/theme/theme.persistence.js.map +0 -1
- package/dist/kernel/manager/theme/theme.schema.cjs.map +0 -1
- package/dist/kernel/manager/theme/theme.schema.js.map +0 -1
- package/dist/kernel/manager/themeManager.cjs.map +0 -1
- package/dist/kernel/manager/themeManager.js.map +0 -1
- package/dist/kernel/types.cjs.map +0 -1
- package/dist/kernel/types.js.map +0 -1
- package/dist/library/index.cjs.map +0 -1
- package/dist/library/index.js.map +0 -1
- package/dist/library/locale/index.cjs.map +0 -1
- package/dist/library/locale/index.js.map +0 -1
- package/dist/library/locale/langs/en-us/index.cjs.map +0 -1
- package/dist/library/locale/langs/en-us/index.js.map +0 -1
- package/dist/library/locale/langs/zh-cn/index.cjs.map +0 -1
- package/dist/library/locale/langs/zh-cn/index.js.map +0 -1
- package/dist/library/locale/types.cjs.map +0 -1
- package/dist/library/locale/types.js.map +0 -1
- package/dist/library/storage/cache.cjs.map +0 -1
- package/dist/library/storage/cache.js.map +0 -1
- package/dist/library/storage/encryption.cjs.map +0 -1
- package/dist/library/storage/encryption.js.map +0 -1
- package/dist/library/storage/index.cjs.map +0 -1
- package/dist/library/storage/index.js.map +0 -1
- package/dist/request/adapter/RequestAdapter.d.ts +0 -85
- package/dist/request/adapter/RequestAdapter.js +0 -70
- package/dist/request/adapter/RequestAdapter.js.map +0 -1
- package/dist/request/adapter/axiosAdapter.d.ts +0 -10
- package/dist/request/adapter/axiosAdapter.js +0 -115
- package/dist/request/adapter/axiosAdapter.js.map +0 -1
- package/dist/request/adapter/fetchAdapter.d.ts +0 -10
- package/dist/request/adapter/fetchAdapter.js +0 -126
- package/dist/request/adapter/fetchAdapter.js.map +0 -1
- package/dist/request/adapter/index.d.ts +0 -9
- package/dist/request/adapter/index.js +0 -14
- package/dist/request/adapter/index.js.map +0 -1
- package/dist/request/adapter/kyAdapter.d.ts +0 -10
- package/dist/request/adapter/kyAdapter.js +0 -142
- package/dist/request/adapter/kyAdapter.js.map +0 -1
- package/dist/request/adapter/undiciAdapter.d.ts +0 -10
- package/dist/request/adapter/undiciAdapter.js +0 -164
- package/dist/request/adapter/undiciAdapter.js.map +0 -1
- package/dist/request/adapter.d.ts +0 -1
- package/dist/request/core/RequestClient.d.ts +0 -134
- package/dist/request/core/RequestClient.js +0 -509
- package/dist/request/core/RequestClient.js.map +0 -1
- package/dist/request/core/index.d.ts +0 -5
- package/dist/request/core/index.js +0 -5
- package/dist/request/core/index.js.map +0 -1
- package/dist/request/core.d.ts +0 -1
- package/dist/request/index.d.ts +0 -1
- package/dist/request/index.js +0 -50
- package/dist/request/index.js.map +0 -1
- package/dist/request/plugin/RequestPlugin.d.ts +0 -170
- package/dist/request/plugin/RequestPlugin.js +0 -203
- package/dist/request/plugin/RequestPlugin.js.map +0 -1
- package/dist/request/plugin/cache.d.ts +0 -33
- package/dist/request/plugin/cache.js +0 -264
- package/dist/request/plugin/cache.js.map +0 -1
- package/dist/request/plugin/csrfPlugin.d.ts +0 -21
- package/dist/request/plugin/csrfPlugin.js +0 -44
- package/dist/request/plugin/csrfPlugin.js.map +0 -1
- package/dist/request/plugin/index.d.ts +0 -11
- package/dist/request/plugin/index.js +0 -12
- package/dist/request/plugin/index.js.map +0 -1
- package/dist/request/plugin/monitoring.d.ts +0 -112
- package/dist/request/plugin/monitoring.js +0 -205
- package/dist/request/plugin/monitoring.js.map +0 -1
- package/dist/request/plugin/queue.d.ts +0 -91
- package/dist/request/plugin/queue.js +0 -156
- package/dist/request/plugin/queue.js.map +0 -1
- package/dist/request/plugin/retry.d.ts +0 -34
- package/dist/request/plugin/retry.js +0 -93
- package/dist/request/plugin/retry.js.map +0 -1
- package/dist/request/plugin/validation.d.ts +0 -26
- package/dist/request/plugin/validation.js +0 -116
- package/dist/request/plugin/validation.js.map +0 -1
- package/dist/request/plugin.d.ts +0 -1
- package/dist/request/runtime/RequestContext.d.ts +0 -50
- package/dist/request/runtime/RequestContext.js +0 -86
- package/dist/request/runtime/RequestContext.js.map +0 -1
- package/dist/request/runtime/index.d.ts +0 -4
- package/dist/request/runtime/index.js +0 -5
- package/dist/request/runtime/index.js.map +0 -1
- package/dist/request/runtime.d.ts +0 -1
- package/dist/request/types.d.ts +0 -1
- package/dist/request/types.js +0 -97
- package/dist/request/types.js.map +0 -1
- package/dist/request/utils/RequestQueueManager.d.ts +0 -74
- package/dist/request/utils/RequestQueueManager.js +0 -160
- package/dist/request/utils/RequestQueueManager.js.map +0 -1
- package/dist/request/utils/dependencyCheck.d.ts +0 -63
- package/dist/request/utils/dependencyCheck.js +0 -192
- package/dist/request/utils/dependencyCheck.js.map +0 -1
- package/dist/request/utils/index.d.ts +0 -5
- package/dist/request/utils/index.js +0 -6
- package/dist/request/utils/index.js.map +0 -1
- package/dist/request/utils.d.ts +0 -1
- package/dist/state/StateManager.cjs.map +0 -1
- package/dist/state/StateManager.js.map +0 -1
- package/dist/state/adapters/AdapterFactory.cjs.map +0 -1
- package/dist/state/adapters/AdapterFactory.js.map +0 -1
- package/dist/state/adapters/DefaultAdapter.cjs.map +0 -1
- package/dist/state/adapters/DefaultAdapter.js.map +0 -1
- package/dist/state/adapters/ReduxAdapter.cjs.map +0 -1
- package/dist/state/adapters/ReduxAdapter.js.map +0 -1
- package/dist/state/adapters/ZustandAdapter.cjs.map +0 -1
- package/dist/state/adapters/ZustandAdapter.js.map +0 -1
- package/dist/state/adapters/index.cjs.map +0 -1
- package/dist/state/adapters/index.js.map +0 -1
- package/dist/state/adapters/types.cjs.map +0 -1
- package/dist/state/adapters/types.js.map +0 -1
- package/dist/state/core/DerivedStateInstance.cjs.map +0 -1
- package/dist/state/core/DerivedStateInstance.js.map +0 -1
- package/dist/state/core/StateInstance.cjs.map +0 -1
- package/dist/state/core/StateInstance.js.map +0 -1
- package/dist/state/core/StateRegistry.cjs.map +0 -1
- package/dist/state/core/StateRegistry.js.map +0 -1
- package/dist/state/core/StateScope.cjs.map +0 -1
- package/dist/state/core/StateScope.js.map +0 -1
- package/dist/state/core/index.cjs.map +0 -1
- package/dist/state/core/index.js.map +0 -1
- package/dist/state/index.cjs.map +0 -1
- package/dist/state/index.js.map +0 -1
- package/dist/state/types.cjs.map +0 -1
- package/dist/state/types.js.map +0 -1
- package/dist/state.umd.js.map +0 -1
- package/dist/types.cjs.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/utils/analytics.cjs.map +0 -1
- package/dist/utils/analytics.js.map +0 -1
- package/dist/utils/configSecurity.cjs.map +0 -1
- package/dist/utils/configSecurity.js.map +0 -1
- package/dist/utils/csrf.cjs.map +0 -1
- package/dist/utils/csrf.js.map +0 -1
- package/dist/utils/errors/ErrorCodes.cjs.map +0 -1
- package/dist/utils/errors/ErrorCodes.js.map +0 -1
- package/dist/utils/errors.cjs.map +0 -1
- package/dist/utils/errors.js.map +0 -1
- package/dist/utils/index.cjs.map +0 -1
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/logger.cjs.map +0 -1
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/logger.types.cjs.map +0 -1
- package/dist/utils/logger.types.js.map +0 -1
- package/dist/utils/monitoring.cjs.map +0 -1
- package/dist/utils/monitoring.js.map +0 -1
- package/dist/utils/performance.cjs.map +0 -1
- package/dist/utils/performance.js.map +0 -1
- package/dist/utils/resourceLoader.cjs.map +0 -1
- package/dist/utils/resourceLoader.js.map +0 -1
- package/dist/utils/runtimeSecurity.cjs.map +0 -1
- package/dist/utils/runtimeSecurity.js.map +0 -1
- package/dist/utils/security.cjs.map +0 -1
- package/dist/utils/security.js.map +0 -1
- package/dist/utils/traceId.cjs.map +0 -1
- package/dist/utils/traceId.js.map +0 -1
- package/dist/utils/validation.cjs.map +0 -1
- package/dist/utils/validation.js.map +0 -1
|
@@ -1,32 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* 路由模块入口
|
|
3
|
-
*/ // 核心类型和接口
|
|
4
|
-
export * from "./types";
|
|
5
|
-
// 路由管理器
|
|
6
|
-
export * from "./RouterManager";
|
|
7
|
-
// 中间件系统
|
|
8
|
-
export * from "./middleware";
|
|
9
|
-
// 生命周期管理
|
|
10
|
-
export * from "./lifecycle";
|
|
11
|
-
// 导航 API
|
|
12
|
-
export * from "./navigation";
|
|
13
|
-
// 配置验证
|
|
14
|
-
export * from "./validation";
|
|
15
|
-
// 错误处理
|
|
16
|
-
export * from "./errors";
|
|
17
|
-
// 动态路由注册
|
|
18
|
-
export * from "./dynamic";
|
|
19
|
-
// 性能优化
|
|
20
|
-
export * from "./performance";
|
|
21
|
-
// 插件系统
|
|
22
|
-
export * from "./plugin";
|
|
23
|
-
// 监控与日志
|
|
24
|
-
export * from "./monitoring";
|
|
25
|
-
// 适配器系统
|
|
26
|
-
export * from "./adapter";
|
|
27
|
-
// 版本管理
|
|
28
|
-
export * from "./version"; // 开发工具(仅在开发环境导出)
|
|
29
|
-
// 注意:开发工具需要 React 和 Ant Design,仅在开发环境使用
|
|
30
|
-
// 如果需要使用,请直接导入:import { RouterDevTools } from '@vlian/framework/core/router/dev';
|
|
31
|
-
|
|
32
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
export*from"./types";export*from"./RouterManager";export*from"./middleware";export*from"./lifecycle";export*from"./navigation";export*from"./validation";export*from"./errors";export*from"./dynamic";export*from"./performance";export*from"./plugin";export*from"./monitoring";export*from"./adapter";export*from"./version";
|
|
@@ -1,146 +1 @@
|
|
|
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 RouterLifecycleManager () {
|
|
16
|
-
return RouterLifecycleManager;
|
|
17
|
-
},
|
|
18
|
-
get getRouterLifecycleManager () {
|
|
19
|
-
return getRouterLifecycleManager;
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
const _logger = require("@vlian/logger");
|
|
23
|
-
function _define_property(obj, key, value) {
|
|
24
|
-
if (key in obj) {
|
|
25
|
-
Object.defineProperty(obj, key, {
|
|
26
|
-
value: value,
|
|
27
|
-
enumerable: true,
|
|
28
|
-
configurable: true,
|
|
29
|
-
writable: true
|
|
30
|
-
});
|
|
31
|
-
} else {
|
|
32
|
-
obj[key] = value;
|
|
33
|
-
}
|
|
34
|
-
return obj;
|
|
35
|
-
}
|
|
36
|
-
let RouterLifecycleManager = class RouterLifecycleManager {
|
|
37
|
-
/**
|
|
38
|
-
* 注册生命周期钩子
|
|
39
|
-
*
|
|
40
|
-
* @param hooks - 生命周期钩子配置
|
|
41
|
-
* @returns 取消注册函数
|
|
42
|
-
*/ register(hooks) {
|
|
43
|
-
this.hooks.push(hooks);
|
|
44
|
-
_logger.logger.debug('路由生命周期钩子已注册');
|
|
45
|
-
// 返回取消注册函数
|
|
46
|
-
return ()=>{
|
|
47
|
-
const index = this.hooks.indexOf(hooks);
|
|
48
|
-
if (index > -1) {
|
|
49
|
-
this.hooks.splice(index, 1);
|
|
50
|
-
_logger.logger.debug('路由生命周期钩子已取消注册');
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* 批量注册生命周期钩子
|
|
56
|
-
*
|
|
57
|
-
* @param hooksArray - 生命周期钩子配置数组
|
|
58
|
-
*/ registerBatch(hooksArray) {
|
|
59
|
-
hooksArray.forEach((hooks)=>this.register(hooks));
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* 清空所有生命周期钩子
|
|
63
|
-
*/ clear() {
|
|
64
|
-
this.hooks = [];
|
|
65
|
-
_logger.logger.debug('所有路由生命周期钩子已清空');
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* 执行路由跳转前钩子
|
|
69
|
-
*
|
|
70
|
-
* @param to - 目标路由
|
|
71
|
-
* @param from - 来源路由
|
|
72
|
-
* @returns 如果返回字符串,则跳转到该路径;如果返回 false,则阻止跳转;返回 true 或 undefined 则继续跳转
|
|
73
|
-
*/ async beforeEach(to, from) {
|
|
74
|
-
// 按注册顺序执行所有 beforeEach 钩子
|
|
75
|
-
for (const hooks of this.hooks){
|
|
76
|
-
if (hooks.beforeEach) {
|
|
77
|
-
try {
|
|
78
|
-
const result = await hooks.beforeEach(to, from);
|
|
79
|
-
// 如果返回 false,阻止跳转
|
|
80
|
-
if (result === false) {
|
|
81
|
-
_logger.logger.debug('路由跳转被阻止: beforeEach 返回 false');
|
|
82
|
-
return false;
|
|
83
|
-
}
|
|
84
|
-
// 如果返回字符串,重定向到该路径
|
|
85
|
-
if (typeof result === 'string') {
|
|
86
|
-
_logger.logger.debug(`路由跳转重定向: beforeEach 返回 ${result}`);
|
|
87
|
-
return result;
|
|
88
|
-
}
|
|
89
|
-
} catch (error) {
|
|
90
|
-
_logger.logger.error('路由生命周期钩子执行失败: beforeEach', error);
|
|
91
|
-
continue;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
// 所有钩子都通过,允许跳转
|
|
96
|
-
return undefined;
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* 执行路由跳转后钩子
|
|
100
|
-
*
|
|
101
|
-
* @param to - 目标路由
|
|
102
|
-
* @param from - 来源路由
|
|
103
|
-
*/ async afterEach(to, from) {
|
|
104
|
-
// 按注册顺序执行所有 afterEach 钩子
|
|
105
|
-
for (const hooks of this.hooks){
|
|
106
|
-
if (hooks.afterEach) {
|
|
107
|
-
try {
|
|
108
|
-
await hooks.afterEach(to, from);
|
|
109
|
-
} catch (error) {
|
|
110
|
-
_logger.logger.error('路由生命周期钩子执行失败: afterEach', error);
|
|
111
|
-
continue;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* 获取所有生命周期钩子
|
|
118
|
-
*
|
|
119
|
-
* @returns 生命周期钩子配置数组
|
|
120
|
-
*/ getAll() {
|
|
121
|
-
return [
|
|
122
|
-
...this.hooks
|
|
123
|
-
];
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* 获取生命周期钩子数量
|
|
127
|
-
*
|
|
128
|
-
* @returns 生命周期钩子数量
|
|
129
|
-
*/ getCount() {
|
|
130
|
-
return this.hooks.length;
|
|
131
|
-
}
|
|
132
|
-
constructor(){
|
|
133
|
-
_define_property(this, "hooks", []);
|
|
134
|
-
}
|
|
135
|
-
};
|
|
136
|
-
/**
|
|
137
|
-
* 获取路由生命周期管理器单例
|
|
138
|
-
*/ let lifecycleManagerInstance = null;
|
|
139
|
-
function getRouterLifecycleManager() {
|
|
140
|
-
if (!lifecycleManagerInstance) {
|
|
141
|
-
lifecycleManagerInstance = new RouterLifecycleManager();
|
|
142
|
-
}
|
|
143
|
-
return lifecycleManagerInstance;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
//# sourceMappingURL=RouterLifecycleManager.js.map
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get RouterLifecycleManager(){return RouterLifecycleManager},get getRouterLifecycleManager(){return getRouterLifecycleManager}});const _logger=require("@vlian/logger");function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}let RouterLifecycleManager=class RouterLifecycleManager{register(hooks){this.hooks.push(hooks);_logger.logger.debug("路由生命周期钩子已注册");return()=>{const index=this.hooks.indexOf(hooks);if(index>-1){this.hooks.splice(index,1);_logger.logger.debug("路由生命周期钩子已取消注册")}}}registerBatch(hooksArray){hooksArray.forEach(hooks=>this.register(hooks))}clear(){this.hooks=[];_logger.logger.debug("所有路由生命周期钩子已清空")}async beforeEach(to,from){for(const hooks of this.hooks){if(hooks.beforeEach){try{const result=await hooks.beforeEach(to,from);if(result===false){_logger.logger.debug("路由跳转被阻止: beforeEach 返回 false");return false}if(typeof result==="string"){_logger.logger.debug(`路由跳转重定向: beforeEach 返回 ${result}`);return result}}catch(error){_logger.logger.error("路由生命周期钩子执行失败: beforeEach",error);continue}}}return undefined}async afterEach(to,from){for(const hooks of this.hooks){if(hooks.afterEach){try{await hooks.afterEach(to,from)}catch(error){_logger.logger.error("路由生命周期钩子执行失败: afterEach",error);continue}}}}getAll(){return[...this.hooks]}getCount(){return this.hooks.length}constructor(){_define_property(this,"hooks",[])}};let lifecycleManagerInstance=null;function getRouterLifecycleManager(){if(!lifecycleManagerInstance){lifecycleManagerInstance=new RouterLifecycleManager}return lifecycleManagerInstance}
|
|
@@ -1,130 +1 @@
|
|
|
1
|
-
function _define_property(obj, key,
|
|
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 "@vlian/logger";
|
|
18
|
-
/**
|
|
19
|
-
* 路由生命周期管理器
|
|
20
|
-
*/ export class RouterLifecycleManager {
|
|
21
|
-
/**
|
|
22
|
-
* 注册生命周期钩子
|
|
23
|
-
*
|
|
24
|
-
* @param hooks - 生命周期钩子配置
|
|
25
|
-
* @returns 取消注册函数
|
|
26
|
-
*/ register(hooks) {
|
|
27
|
-
this.hooks.push(hooks);
|
|
28
|
-
logger.debug('路由生命周期钩子已注册');
|
|
29
|
-
// 返回取消注册函数
|
|
30
|
-
return ()=>{
|
|
31
|
-
const index = this.hooks.indexOf(hooks);
|
|
32
|
-
if (index > -1) {
|
|
33
|
-
this.hooks.splice(index, 1);
|
|
34
|
-
logger.debug('路由生命周期钩子已取消注册');
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* 批量注册生命周期钩子
|
|
40
|
-
*
|
|
41
|
-
* @param hooksArray - 生命周期钩子配置数组
|
|
42
|
-
*/ registerBatch(hooksArray) {
|
|
43
|
-
hooksArray.forEach((hooks)=>this.register(hooks));
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* 清空所有生命周期钩子
|
|
47
|
-
*/ clear() {
|
|
48
|
-
this.hooks = [];
|
|
49
|
-
logger.debug('所有路由生命周期钩子已清空');
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* 执行路由跳转前钩子
|
|
53
|
-
*
|
|
54
|
-
* @param to - 目标路由
|
|
55
|
-
* @param from - 来源路由
|
|
56
|
-
* @returns 如果返回字符串,则跳转到该路径;如果返回 false,则阻止跳转;返回 true 或 undefined 则继续跳转
|
|
57
|
-
*/ async beforeEach(to, from) {
|
|
58
|
-
// 按注册顺序执行所有 beforeEach 钩子
|
|
59
|
-
for (const hooks of this.hooks){
|
|
60
|
-
if (hooks.beforeEach) {
|
|
61
|
-
try {
|
|
62
|
-
const result = await hooks.beforeEach(to, from);
|
|
63
|
-
// 如果返回 false,阻止跳转
|
|
64
|
-
if (result === false) {
|
|
65
|
-
logger.debug('路由跳转被阻止: beforeEach 返回 false');
|
|
66
|
-
return false;
|
|
67
|
-
}
|
|
68
|
-
// 如果返回字符串,重定向到该路径
|
|
69
|
-
if (typeof result === 'string') {
|
|
70
|
-
logger.debug(`路由跳转重定向: beforeEach 返回 ${result}`);
|
|
71
|
-
return result;
|
|
72
|
-
}
|
|
73
|
-
} catch (error) {
|
|
74
|
-
logger.error('路由生命周期钩子执行失败: beforeEach', error);
|
|
75
|
-
continue;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
// 所有钩子都通过,允许跳转
|
|
80
|
-
return undefined;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* 执行路由跳转后钩子
|
|
84
|
-
*
|
|
85
|
-
* @param to - 目标路由
|
|
86
|
-
* @param from - 来源路由
|
|
87
|
-
*/ async afterEach(to, from) {
|
|
88
|
-
// 按注册顺序执行所有 afterEach 钩子
|
|
89
|
-
for (const hooks of this.hooks){
|
|
90
|
-
if (hooks.afterEach) {
|
|
91
|
-
try {
|
|
92
|
-
await hooks.afterEach(to, from);
|
|
93
|
-
} catch (error) {
|
|
94
|
-
logger.error('路由生命周期钩子执行失败: afterEach', error);
|
|
95
|
-
continue;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* 获取所有生命周期钩子
|
|
102
|
-
*
|
|
103
|
-
* @returns 生命周期钩子配置数组
|
|
104
|
-
*/ getAll() {
|
|
105
|
-
return [
|
|
106
|
-
...this.hooks
|
|
107
|
-
];
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* 获取生命周期钩子数量
|
|
111
|
-
*
|
|
112
|
-
* @returns 生命周期钩子数量
|
|
113
|
-
*/ getCount() {
|
|
114
|
-
return this.hooks.length;
|
|
115
|
-
}
|
|
116
|
-
constructor(){
|
|
117
|
-
_define_property(this, "hooks", []);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* 获取路由生命周期管理器单例
|
|
122
|
-
*/ let lifecycleManagerInstance = null;
|
|
123
|
-
export function getRouterLifecycleManager() {
|
|
124
|
-
if (!lifecycleManagerInstance) {
|
|
125
|
-
lifecycleManagerInstance = new RouterLifecycleManager();
|
|
126
|
-
}
|
|
127
|
-
return lifecycleManagerInstance;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
//# sourceMappingURL=RouterLifecycleManager.js.map
|
|
1
|
+
function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}import{logger}from"@vlian/logger";export class RouterLifecycleManager{register(hooks){this.hooks.push(hooks);logger.debug("路由生命周期钩子已注册");return()=>{const index=this.hooks.indexOf(hooks);if(index>-1){this.hooks.splice(index,1);logger.debug("路由生命周期钩子已取消注册")}}}registerBatch(hooksArray){hooksArray.forEach(hooks=>this.register(hooks))}clear(){this.hooks=[];logger.debug("所有路由生命周期钩子已清空")}async beforeEach(to,from){for(const hooks of this.hooks){if(hooks.beforeEach){try{const result=await hooks.beforeEach(to,from);if(result===false){logger.debug("路由跳转被阻止: beforeEach 返回 false");return false}if(typeof result==="string"){logger.debug(`路由跳转重定向: beforeEach 返回 ${result}`);return result}}catch(error){logger.error("路由生命周期钩子执行失败: beforeEach",error);continue}}}return undefined}async afterEach(to,from){for(const hooks of this.hooks){if(hooks.afterEach){try{await hooks.afterEach(to,from)}catch(error){logger.error("路由生命周期钩子执行失败: afterEach",error);continue}}}}getAll(){return[...this.hooks]}getCount(){return this.hooks.length}constructor(){_define_property(this,"hooks",[])}}let lifecycleManagerInstance=null;export function getRouterLifecycleManager(){if(!lifecycleManagerInstance){lifecycleManagerInstance=new RouterLifecycleManager}return lifecycleManagerInstance}
|
|
@@ -1,22 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* 路由生命周期模块入口
|
|
3
|
-
*/ "use strict";
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
_export_star(require("./RouterLifecycleManager"), exports);
|
|
8
|
-
function _export_star(from, to) {
|
|
9
|
-
Object.keys(from).forEach(function(k) {
|
|
10
|
-
if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
|
|
11
|
-
Object.defineProperty(to, k, {
|
|
12
|
-
enumerable: true,
|
|
13
|
-
get: function() {
|
|
14
|
-
return from[k];
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
return from;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});_export_star(require("./RouterLifecycleManager"),exports);function _export_star(from,to){Object.keys(from).forEach(function(k){if(k!=="default"&&!Object.prototype.hasOwnProperty.call(to,k)){Object.defineProperty(to,k,{enumerable:true,get:function(){return from[k]}})}});return from}
|
|
@@ -1,195 +1 @@
|
|
|
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 RouterMiddlewareManager () {
|
|
16
|
-
return RouterMiddlewareManager;
|
|
17
|
-
},
|
|
18
|
-
get getRouterMiddlewareManager () {
|
|
19
|
-
return getRouterMiddlewareManager;
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
const _logger = require("@vlian/logger");
|
|
23
|
-
function _define_property(obj, key, value) {
|
|
24
|
-
if (key in obj) {
|
|
25
|
-
Object.defineProperty(obj, key, {
|
|
26
|
-
value: value,
|
|
27
|
-
enumerable: true,
|
|
28
|
-
configurable: true,
|
|
29
|
-
writable: true
|
|
30
|
-
});
|
|
31
|
-
} else {
|
|
32
|
-
obj[key] = value;
|
|
33
|
-
}
|
|
34
|
-
return obj;
|
|
35
|
-
}
|
|
36
|
-
let RouterMiddlewareManager = class RouterMiddlewareManager {
|
|
37
|
-
/**
|
|
38
|
-
* 注册中间件
|
|
39
|
-
*
|
|
40
|
-
* @param config - 中间件配置
|
|
41
|
-
* @returns 取消注册函数
|
|
42
|
-
*/ register(config) {
|
|
43
|
-
// 验证中间件配置
|
|
44
|
-
if (!config.middleware || typeof config.middleware !== 'function') {
|
|
45
|
-
throw new Error('中间件必须是一个函数');
|
|
46
|
-
}
|
|
47
|
-
// 设置默认值
|
|
48
|
-
const middlewareConfig = {
|
|
49
|
-
priority: 100,
|
|
50
|
-
enabled: true,
|
|
51
|
-
...config
|
|
52
|
-
};
|
|
53
|
-
// 添加到中间件列表
|
|
54
|
-
this.middlewares.push(middlewareConfig);
|
|
55
|
-
// 按优先级排序
|
|
56
|
-
this.middlewares.sort((a, b)=>(a.priority || 100) - (b.priority || 100));
|
|
57
|
-
_logger.logger.debug(`路由中间件已注册: ${middlewareConfig.name || 'anonymous'}`);
|
|
58
|
-
// 返回取消注册函数
|
|
59
|
-
return ()=>{
|
|
60
|
-
const index = this.middlewares.indexOf(middlewareConfig);
|
|
61
|
-
if (index > -1) {
|
|
62
|
-
this.middlewares.splice(index, 1);
|
|
63
|
-
_logger.logger.debug(`路由中间件已取消注册: ${middlewareConfig.name || 'anonymous'}`);
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* 批量注册中间件
|
|
69
|
-
*
|
|
70
|
-
* @param configs - 中间件配置数组
|
|
71
|
-
*/ registerBatch(configs) {
|
|
72
|
-
configs.forEach((config)=>this.register(config));
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* 取消注册中间件
|
|
76
|
-
*
|
|
77
|
-
* @param name - 中间件名称
|
|
78
|
-
*/ unregister(name) {
|
|
79
|
-
const index = this.middlewares.findIndex((m)=>m.name === name);
|
|
80
|
-
if (index > -1) {
|
|
81
|
-
this.middlewares.splice(index, 1);
|
|
82
|
-
_logger.logger.debug(`路由中间件已取消注册: ${name}`);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* 清空所有中间件
|
|
87
|
-
*/ clear() {
|
|
88
|
-
this.middlewares = [];
|
|
89
|
-
_logger.logger.debug('所有路由中间件已清空');
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* 执行中间件链
|
|
93
|
-
*
|
|
94
|
-
* @param context - 中间件上下文
|
|
95
|
-
* @returns 中间件执行结果
|
|
96
|
-
*/ async execute(context) {
|
|
97
|
-
// 过滤启用的中间件
|
|
98
|
-
const enabledMiddlewares = this.middlewares.filter((m)=>{
|
|
99
|
-
if (!m.enabled) {
|
|
100
|
-
return false;
|
|
101
|
-
}
|
|
102
|
-
// 检查条件函数
|
|
103
|
-
if (m.condition && !m.condition(context)) {
|
|
104
|
-
return false;
|
|
105
|
-
}
|
|
106
|
-
return true;
|
|
107
|
-
});
|
|
108
|
-
// 按顺序执行中间件
|
|
109
|
-
for (const middlewareConfig of enabledMiddlewares){
|
|
110
|
-
try {
|
|
111
|
-
const result = await middlewareConfig.middleware(context);
|
|
112
|
-
// 如果中间件返回 false,阻止导航
|
|
113
|
-
if (result === false) {
|
|
114
|
-
_logger.logger.debug(`路由中间件阻止导航: ${middlewareConfig.name || 'anonymous'} -> false`);
|
|
115
|
-
return {
|
|
116
|
-
allow: false,
|
|
117
|
-
reason: '中间件返回 false'
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
// 如果中间件返回对象且 allow: false,阻止导航
|
|
121
|
-
if (typeof result === 'object' && result !== null && result.allow === false) {
|
|
122
|
-
_logger.logger.debug(`路由中间件阻止导航: ${middlewareConfig.name || 'anonymous'}`, result);
|
|
123
|
-
if (result.redirect && !RouterMiddlewareManager.SAFE_REDIRECT_PATH_REGEX.test(result.redirect)) {
|
|
124
|
-
_logger.logger.warn(`路由中间件返回了不安全的重定向地址,已拦截: ${middlewareConfig.name || 'anonymous'} -> ${result.redirect}`);
|
|
125
|
-
return {
|
|
126
|
-
allow: false,
|
|
127
|
-
reason: '中间件返回了不安全的重定向地址'
|
|
128
|
-
};
|
|
129
|
-
}
|
|
130
|
-
return result;
|
|
131
|
-
}
|
|
132
|
-
// 如果中间件返回字符串,重定向到该路径
|
|
133
|
-
if (typeof result === 'string') {
|
|
134
|
-
if (!RouterMiddlewareManager.SAFE_REDIRECT_PATH_REGEX.test(result)) {
|
|
135
|
-
_logger.logger.warn(`路由中间件返回了不安全的重定向地址,已拦截: ${middlewareConfig.name || 'anonymous'} -> ${result}`);
|
|
136
|
-
return {
|
|
137
|
-
allow: false,
|
|
138
|
-
reason: '中间件返回了不安全的重定向地址'
|
|
139
|
-
};
|
|
140
|
-
}
|
|
141
|
-
_logger.logger.debug(`路由中间件重定向: ${middlewareConfig.name || 'anonymous'} -> ${result}`);
|
|
142
|
-
return {
|
|
143
|
-
allow: false,
|
|
144
|
-
redirect: result
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
} catch (error) {
|
|
148
|
-
_logger.logger.error(`路由中间件执行失败: ${middlewareConfig.name || 'anonymous'}`, error);
|
|
149
|
-
continue;
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
// 所有中间件都通过,允许导航
|
|
153
|
-
return {
|
|
154
|
-
allow: true
|
|
155
|
-
};
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* 获取所有中间件
|
|
159
|
-
*
|
|
160
|
-
* @returns 中间件配置数组
|
|
161
|
-
*/ getAll() {
|
|
162
|
-
return [
|
|
163
|
-
...this.middlewares
|
|
164
|
-
];
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
167
|
-
* 获取启用的中间件
|
|
168
|
-
*
|
|
169
|
-
* @returns 启用的中间件配置数组
|
|
170
|
-
*/ getEnabled() {
|
|
171
|
-
return this.middlewares.filter((m)=>m.enabled);
|
|
172
|
-
}
|
|
173
|
-
/**
|
|
174
|
-
* 获取中间件数量
|
|
175
|
-
*
|
|
176
|
-
* @returns 中间件数量
|
|
177
|
-
*/ getCount() {
|
|
178
|
-
return this.middlewares.length;
|
|
179
|
-
}
|
|
180
|
-
constructor(){
|
|
181
|
-
_define_property(this, "middlewares", []);
|
|
182
|
-
}
|
|
183
|
-
};
|
|
184
|
-
_define_property(RouterMiddlewareManager, "SAFE_REDIRECT_PATH_REGEX", /^(\/|\.\/|\.\.\/|#)/);
|
|
185
|
-
/**
|
|
186
|
-
* 获取路由中间件管理器单例
|
|
187
|
-
*/ let middlewareManagerInstance = null;
|
|
188
|
-
function getRouterMiddlewareManager() {
|
|
189
|
-
if (!middlewareManagerInstance) {
|
|
190
|
-
middlewareManagerInstance = new RouterMiddlewareManager();
|
|
191
|
-
}
|
|
192
|
-
return middlewareManagerInstance;
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
//# sourceMappingURL=RouterMiddlewareManager.js.map
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get RouterMiddlewareManager(){return RouterMiddlewareManager},get getRouterMiddlewareManager(){return getRouterMiddlewareManager}});const _logger=require("@vlian/logger");function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}let RouterMiddlewareManager=class RouterMiddlewareManager{register(config){if(!config.middleware||typeof config.middleware!=="function"){throw new Error("中间件必须是一个函数")}const middlewareConfig={priority:100,enabled:true,...config};this.middlewares.push(middlewareConfig);this.middlewares.sort((a,b)=>(a.priority||100)-(b.priority||100));_logger.logger.debug(`路由中间件已注册: ${middlewareConfig.name||"anonymous"}`);return()=>{const index=this.middlewares.indexOf(middlewareConfig);if(index>-1){this.middlewares.splice(index,1);_logger.logger.debug(`路由中间件已取消注册: ${middlewareConfig.name||"anonymous"}`)}}}registerBatch(configs){configs.forEach(config=>this.register(config))}unregister(name){const index=this.middlewares.findIndex(m=>m.name===name);if(index>-1){this.middlewares.splice(index,1);_logger.logger.debug(`路由中间件已取消注册: ${name}`)}}clear(){this.middlewares=[];_logger.logger.debug("所有路由中间件已清空")}async execute(context){const enabledMiddlewares=this.middlewares.filter(m=>{if(!m.enabled){return false}if(m.condition&&!m.condition(context)){return false}return true});for(const middlewareConfig of enabledMiddlewares){try{const result=await middlewareConfig.middleware(context);if(result===false){_logger.logger.debug(`路由中间件阻止导航: ${middlewareConfig.name||"anonymous"} -> false`);return{allow:false,reason:"中间件返回 false"}}if(typeof result==="object"&&result!==null&&result.allow===false){_logger.logger.debug(`路由中间件阻止导航: ${middlewareConfig.name||"anonymous"}`,result);if(result.redirect&&!RouterMiddlewareManager.SAFE_REDIRECT_PATH_REGEX.test(result.redirect)){_logger.logger.warn(`路由中间件返回了不安全的重定向地址,已拦截: ${middlewareConfig.name||"anonymous"} -> ${result.redirect}`);return{allow:false,reason:"中间件返回了不安全的重定向地址"}}return result}if(typeof result==="string"){if(!RouterMiddlewareManager.SAFE_REDIRECT_PATH_REGEX.test(result)){_logger.logger.warn(`路由中间件返回了不安全的重定向地址,已拦截: ${middlewareConfig.name||"anonymous"} -> ${result}`);return{allow:false,reason:"中间件返回了不安全的重定向地址"}}_logger.logger.debug(`路由中间件重定向: ${middlewareConfig.name||"anonymous"} -> ${result}`);return{allow:false,redirect:result}}}catch(error){_logger.logger.error(`路由中间件执行失败: ${middlewareConfig.name||"anonymous"}`,error);continue}}return{allow:true}}getAll(){return[...this.middlewares]}getEnabled(){return this.middlewares.filter(m=>m.enabled)}getCount(){return this.middlewares.length}constructor(){_define_property(this,"middlewares",[])}};_define_property(RouterMiddlewareManager,"SAFE_REDIRECT_PATH_REGEX",/^(\/|\.\/|\.\.\/|#)/);let middlewareManagerInstance=null;function getRouterMiddlewareManager(){if(!middlewareManagerInstance){middlewareManagerInstance=new RouterMiddlewareManager}return middlewareManagerInstance}
|