@vlian/framework 1.2.56 → 1.2.59
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 +0 -2
- package/dist/analytics/index.js +1 -3
- package/dist/analytics.umd.js +8 -208
- package/dist/components/LocaleSwitch.cjs +0 -2
- package/dist/components/LocaleSwitch.js +1 -103
- package/dist/components/ThemeSwitch.cjs +0 -2
- package/dist/components/ThemeSwitch.js +1 -102
- package/dist/components/index.cjs +0 -2
- package/dist/components/index.js +1 -4
- package/dist/components/persistence.cjs +0 -2
- package/dist/components/persistence.js +1 -39
- package/dist/core/Test.cjs +0 -2
- package/dist/core/Test.js +1 -15
- package/dist/core/app/AppContext.cjs +0 -2
- package/dist/core/app/AppContext.js +1 -339
- package/dist/core/app/AppContext.types.cjs +0 -2
- package/dist/core/app/AppContext.types.js +1 -5
- package/dist/core/app/BasicLayout.cjs +0 -2
- package/dist/core/app/BasicLayout.js +1 -74
- package/dist/core/app/DefaultApp.cjs +0 -2
- package/dist/core/app/DefaultApp.js +1 -143
- package/dist/core/app/index.cjs +0 -2
- package/dist/core/app/index.js +1 -7
- package/dist/core/config/AppConfig.cjs +0 -2
- package/dist/core/config/AppConfig.js +1 -133
- package/dist/core/config/ConfigLoader.cjs +0 -2
- package/dist/core/config/ConfigLoader.js +1 -311
- package/dist/core/config/ConfigValidator.cjs +0 -2
- package/dist/core/config/ConfigValidator.js +2 -121
- package/dist/core/config/index.cjs +0 -2
- package/dist/core/config/index.js +1 -7
- package/dist/core/dev/DevTools.cjs +0 -2
- package/dist/core/dev/DevTools.js +1 -210
- package/dist/core/error/ErrorBoundary.cjs +0 -2
- package/dist/core/error/ErrorBoundary.js +1 -399
- package/dist/core/error/ErrorHandler.cjs +0 -2
- package/dist/core/error/ErrorHandler.js +1 -261
- package/dist/core/error/index.cjs +0 -2
- package/dist/core/error/index.js +1 -6
- package/dist/core/event/AppEventBus.cjs +0 -2
- package/dist/core/event/AppEventBus.js +1 -438
- package/dist/core/event/frameworkEvents.cjs +0 -2
- package/dist/core/event/frameworkEvents.js +1 -135
- package/dist/core/event/hooks.cjs +0 -2
- package/dist/core/event/hooks.js +1 -95
- package/dist/core/event/index.cjs +0 -2
- package/dist/core/event/index.js +1 -10
- package/dist/core/event/types.cjs +0 -2
- package/dist/core/event/types.js +1 -56
- package/dist/core/event/useEventBus.cjs +0 -2
- package/dist/core/event/useEventBus.js +1 -39
- package/dist/core/index.cjs +0 -2
- package/dist/core/index.js +1 -69
- package/dist/core/initialization/InitializationErrorThrower.cjs +0 -2
- package/dist/core/initialization/InitializationErrorThrower.js +1 -30
- package/dist/core/initialization/index.cjs +0 -2
- package/dist/core/initialization/index.js +1 -7
- package/dist/core/initialization/initialization.cjs +0 -2
- package/dist/core/initialization/initialization.js +1 -78
- package/dist/core/initialization/initializationErrorState.cjs +0 -2
- package/dist/core/initialization/initializationErrorState.js +1 -60
- package/dist/core/kernel/defaultAdapters.cjs +0 -2
- package/dist/core/kernel/defaultAdapters.js +1 -176
- package/dist/core/kernel/errors.cjs +0 -2
- package/dist/core/kernel/errors.js +1 -53
- package/dist/core/kernel/index.cjs +0 -2
- package/dist/core/kernel/index.js +1 -4
- package/dist/core/kernel/startKernel.cjs +0 -2
- package/dist/core/kernel/startKernel.js +1 -192
- package/dist/core/kernel/types.cjs +0 -2
- package/dist/core/kernel/types.js +1 -3
- package/dist/core/middleware.cjs +0 -2
- package/dist/core/middleware.js +1 -61
- package/dist/core/plugin/PluginEventBus.cjs +0 -2
- package/dist/core/plugin/PluginEventBus.js +1 -286
- package/dist/core/plugin/PluginSandbox.cjs +0 -2
- package/dist/core/plugin/PluginSandbox.js +1 -125
- package/dist/core/plugin.cjs +0 -2
- package/dist/core/plugin.js +1 -438
- package/dist/core/router/RouterManager.cjs +0 -2
- package/dist/core/router/RouterManager.js +1 -272
- package/dist/core/router/adapter/AdapterManager.cjs +0 -2
- package/dist/core/router/adapter/AdapterManager.js +1 -221
- package/dist/core/router/adapter/index.cjs +0 -2
- package/dist/core/router/adapter/index.js +1 -7
- package/dist/core/router/adapter/react-router/ReactRouterAdapter.cjs +0 -2
- package/dist/core/router/adapter/react-router/ReactRouterAdapter.js +1 -116
- package/dist/core/router/adapter/react-router/index.cjs +0 -2
- package/dist/core/router/adapter/react-router/index.js +1 -5
- package/dist/core/router/adapter/types.cjs +0 -2
- package/dist/core/router/adapter/types.js +1 -7
- package/dist/core/router/dev/RouterDevTools.cjs +0 -2
- package/dist/core/router/dev/RouterDevTools.js +1 -211
- package/dist/core/router/dev/index.cjs +0 -2
- package/dist/core/router/dev/index.js +1 -5
- package/dist/core/router/dynamic/DynamicRouteManager.cjs +0 -2
- package/dist/core/router/dynamic/DynamicRouteManager.js +1 -179
- package/dist/core/router/dynamic/index.cjs +0 -2
- package/dist/core/router/dynamic/index.js +1 -5
- package/dist/core/router/errors/RouterError.cjs +0 -2
- package/dist/core/router/errors/RouterError.js +1 -48
- package/dist/core/router/errors/index.cjs +0 -2
- package/dist/core/router/errors/index.js +1 -5
- package/dist/core/router/index.cjs +0 -2
- package/dist/core/router/index.js +1 -32
- package/dist/core/router/lifecycle/RouterLifecycleManager.cjs +0 -2
- package/dist/core/router/lifecycle/RouterLifecycleManager.js +1 -130
- package/dist/core/router/lifecycle/index.cjs +0 -2
- package/dist/core/router/lifecycle/index.js +1 -5
- package/dist/core/router/middleware/RouterMiddlewareManager.cjs +0 -2
- package/dist/core/router/middleware/RouterMiddlewareManager.js +1 -179
- package/dist/core/router/middleware/auth.cjs +0 -2
- package/dist/core/router/middleware/auth.js +1 -63
- package/dist/core/router/middleware/index.cjs +0 -2
- package/dist/core/router/middleware/index.js +1 -7
- package/dist/core/router/middleware/types.cjs +0 -2
- package/dist/core/router/middleware/types.js +1 -7
- package/dist/core/router/monitoring/RouterMonitoring.cjs +0 -2
- package/dist/core/router/monitoring/RouterMonitoring.js +1 -213
- package/dist/core/router/monitoring/index.cjs +0 -2
- package/dist/core/router/monitoring/index.js +1 -5
- package/dist/core/router/navigation/RouterNavigation.cjs +0 -2
- package/dist/core/router/navigation/RouterNavigation.js +1 -192
- package/dist/core/router/navigation/index.cjs +0 -2
- package/dist/core/router/navigation/index.js +1 -5
- package/dist/core/router/performance/RouteCache.cjs +0 -2
- package/dist/core/router/performance/RouteCache.js +1 -291
- package/dist/core/router/performance/RoutePreloader.cjs +0 -2
- package/dist/core/router/performance/RoutePreloader.js +1 -277
- package/dist/core/router/performance/index.cjs +0 -2
- package/dist/core/router/performance/index.js +1 -6
- package/dist/core/router/plugin/RouterPluginManager.cjs +0 -2
- package/dist/core/router/plugin/RouterPluginManager.js +1 -248
- package/dist/core/router/plugin/index.cjs +0 -2
- package/dist/core/router/plugin/index.js +1 -6
- package/dist/core/router/plugin/types.cjs +0 -2
- package/dist/core/router/plugin/types.js +1 -33
- package/dist/core/router/types.cjs +0 -2
- package/dist/core/router/types.js +1 -5
- package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.cjs +0 -2
- package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.js +1 -121
- package/dist/core/router/utils/adapters/react-router/transform.cjs +0 -2
- package/dist/core/router/utils/adapters/react-router/transform.js +1 -242
- package/dist/core/router/utils/transform.cjs +0 -2
- package/dist/core/router/utils/transform.js +1 -791
- package/dist/core/router/validation/RouterConfigValidator.cjs +0 -2
- package/dist/core/router/validation/RouterConfigValidator.js +2 -77
- package/dist/core/router/validation/index.cjs +0 -2
- package/dist/core/router/validation/index.js +1 -6
- package/dist/core/router/validation/schema.cjs +0 -2
- package/dist/core/router/validation/schema.js +1 -151
- package/dist/core/router/version/RouteVersionManager.cjs +0 -2
- package/dist/core/router/version/RouteVersionManager.js +1 -191
- package/dist/core/router/version/index.cjs +0 -2
- package/dist/core/router/version/index.js +1 -5
- package/dist/core/splash/SplashScreen.cjs +0 -2
- package/dist/core/splash/SplashScreen.js +1 -293
- package/dist/core/splash/index.cjs +0 -2
- package/dist/core/splash/index.js +1 -6
- package/dist/core/splash/splashScreenUtils.cjs +0 -2
- package/dist/core/splash/splashScreenUtils.js +1 -30
- package/dist/core/startup/AppInstance.cjs +0 -2
- package/dist/core/startup/AppInstance.js +1 -226
- package/dist/core/startup/environment.cjs +0 -2
- package/dist/core/startup/environment.js +1 -154
- package/dist/core/startup/index.cjs +0 -2
- package/dist/core/startup/index.js +1 -8
- package/dist/core/startup/initializeServices.cjs +0 -2
- package/dist/core/startup/initializeServices.js +1 -188
- package/dist/core/startup/performanceTracker.cjs +0 -2
- package/dist/core/startup/performanceTracker.js +1 -167
- package/dist/core/startup/renderApp.cjs +0 -2
- package/dist/core/startup/renderApp.js +1 -267
- package/dist/core/startup/startApp.cjs +0 -2
- package/dist/core/startup/startApp.js +1 -315
- package/dist/core/types.cjs +0 -2
- package/dist/core/types.js +1 -5
- package/dist/index.cjs +0 -2
- package/dist/index.js +1 -11
- package/dist/index.umd.cjs +0 -2
- package/dist/index.umd.js +362 -13230
- package/dist/kernel/constants.cjs +0 -2
- package/dist/kernel/constants.js +1 -43
- package/dist/kernel/index.cjs +0 -2
- package/dist/kernel/index.js +1 -4
- package/dist/kernel/kernel.cjs +1 -3
- package/dist/kernel/kernel.js +1 -273
- package/dist/kernel/manager/cacheManager.cjs +0 -2
- package/dist/kernel/manager/cacheManager.js +1 -38
- package/dist/kernel/manager/i18n/I18nManager.cjs +0 -2
- package/dist/kernel/manager/i18n/I18nManager.js +1 -83
- package/dist/kernel/manager/i18n/i18n.persistence.cjs +4 -3
- package/dist/kernel/manager/i18n/i18n.persistence.js +1 -38
- package/dist/kernel/manager/i18n/i18n.schema.cjs +0 -2
- package/dist/kernel/manager/i18n/i18n.schema.js +1 -64
- package/dist/kernel/manager/i18n/index.cjs +0 -2
- package/dist/kernel/manager/i18n/index.js +1 -3
- package/dist/kernel/manager/i18nManager.cjs +0 -2
- package/dist/kernel/manager/i18nManager.js +1 -3
- package/dist/kernel/manager/index.cjs +0 -2
- package/dist/kernel/manager/index.js +1 -6
- package/dist/kernel/manager/logger/LoggerManager.cjs +0 -2
- package/dist/kernel/manager/logger/LoggerManager.js +1 -99
- package/dist/kernel/manager/logger/index.cjs +0 -2
- package/dist/kernel/manager/logger/index.js +1 -3
- package/dist/kernel/manager/logger/logger.persistence.cjs +0 -2
- package/dist/kernel/manager/logger/logger.persistence.js +1 -43
- package/dist/kernel/manager/logger/logger.schema.cjs +0 -2
- package/dist/kernel/manager/logger/logger.schema.js +1 -55
- package/dist/kernel/manager/loggerManager.cjs +0 -2
- package/dist/kernel/manager/loggerManager.js +1 -3
- package/dist/kernel/manager/theme/ThemeManager.cjs +0 -2
- package/dist/kernel/manager/theme/ThemeManager.js +1 -76
- package/dist/kernel/manager/theme/index.cjs +0 -2
- package/dist/kernel/manager/theme/index.js +1 -3
- package/dist/kernel/manager/theme/theme.dom.cjs +0 -2
- package/dist/kernel/manager/theme/theme.dom.js +1 -45
- package/dist/kernel/manager/theme/theme.persistence.cjs +0 -2
- package/dist/kernel/manager/theme/theme.persistence.js +1 -38
- package/dist/kernel/manager/theme/theme.schema.cjs +0 -2
- package/dist/kernel/manager/theme/theme.schema.js +1 -97
- package/dist/kernel/manager/themeManager.cjs +0 -2
- package/dist/kernel/manager/themeManager.js +1 -3
- package/dist/kernel/types.cjs +0 -2
- package/dist/kernel/types.js +1 -3
- package/dist/library/index.cjs +0 -2
- package/dist/library/index.js +1 -4
- package/dist/library/locale/index.cjs +0 -2
- package/dist/library/locale/index.js +1 -12
- package/dist/library/locale/langs/en-us/index.cjs +0 -2
- package/dist/library/locale/langs/en-us/index.js +1 -24
- package/dist/library/locale/langs/zh-cn/index.cjs +0 -2
- package/dist/library/locale/langs/zh-cn/index.js +1 -24
- package/dist/library/locale/types.cjs +0 -2
- package/dist/library/locale/types.js +1 -3
- package/dist/library/storage/cache.cjs +0 -2
- package/dist/library/storage/cache.js +1 -237
- package/dist/library/storage/encryption.cjs +0 -2
- package/dist/library/storage/encryption.js +1 -141
- package/dist/library/storage/index.cjs +0 -2
- package/dist/library/storage/index.js +1 -106
- package/dist/state/StateManager.cjs +0 -2
- package/dist/state/StateManager.js +1 -160
- package/dist/state/adapters/AdapterFactory.cjs +0 -2
- package/dist/state/adapters/AdapterFactory.js +1 -85
- package/dist/state/adapters/DefaultAdapter.cjs +0 -2
- package/dist/state/adapters/DefaultAdapter.js +1 -71
- package/dist/state/adapters/ReduxAdapter.cjs +0 -2
- package/dist/state/adapters/ReduxAdapter.js +1 -439
- package/dist/state/adapters/ZustandAdapter.cjs +0 -2
- package/dist/state/adapters/ZustandAdapter.js +1 -70
- package/dist/state/adapters/index.cjs +0 -2
- package/dist/state/adapters/index.js +1 -9
- package/dist/state/adapters/types.cjs +0 -2
- package/dist/state/adapters/types.js +1 -5
- package/dist/state/core/DerivedStateInstance.cjs +0 -2
- package/dist/state/core/DerivedStateInstance.js +1 -173
- package/dist/state/core/StateInstance.cjs +0 -2
- package/dist/state/core/StateInstance.js +1 -168
- package/dist/state/core/StateRegistry.cjs +0 -2
- package/dist/state/core/StateRegistry.js +1 -106
- package/dist/state/core/StateScope.cjs +0 -2
- package/dist/state/core/StateScope.js +1 -133
- package/dist/state/core/index.cjs +0 -2
- package/dist/state/core/index.js +1 -8
- package/dist/state/index.cjs +0 -2
- package/dist/state/index.js +1 -12
- package/dist/state/types.cjs +0 -2
- package/dist/state/types.js +1 -13
- package/dist/state.umd.js +22 -1395
- package/dist/types.cjs +0 -2
- package/dist/types.js +1 -3
- package/dist/utils/analytics.cjs +0 -2
- package/dist/utils/analytics.js +1 -204
- package/dist/utils/configSecurity.cjs +0 -2
- package/dist/utils/configSecurity.js +3 -176
- package/dist/utils/csrf.cjs +0 -2
- package/dist/utils/csrf.js +1 -3
- package/dist/utils/errors/ErrorCodes.cjs +0 -2
- package/dist/utils/errors/ErrorCodes.js +1 -3
- package/dist/utils/errors.cjs +0 -2
- package/dist/utils/errors.js +1 -18
- package/dist/utils/index.cjs +0 -2
- package/dist/utils/index.js +1 -48
- package/dist/utils/logger.cjs +0 -2
- package/dist/utils/logger.js +1 -3
- package/dist/utils/logger.types.cjs +0 -2
- package/dist/utils/logger.types.js +1 -3
- package/dist/utils/monitoring.cjs +0 -2
- package/dist/utils/monitoring.js +1 -3
- package/dist/utils/performance.cjs +0 -2
- package/dist/utils/performance.js +1 -3
- package/dist/utils/resourceLoader.cjs +0 -2
- package/dist/utils/resourceLoader.js +1 -3
- package/dist/utils/runtimeSecurity.cjs +0 -2
- package/dist/utils/runtimeSecurity.js +1 -3
- package/dist/utils/security.cjs +0 -2
- package/dist/utils/security.js +1 -3
- package/dist/utils/traceId.cjs +0 -2
- package/dist/utils/traceId.js +1 -3
- package/dist/utils/validation.cjs +0 -2
- package/dist/utils/validation.js +1 -3
- package/package.json +3 -4
- 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,160 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 请求队列管理器
|
|
3
|
-
*
|
|
4
|
-
* 用于管理待执行的请求队列,支持请求拦截、暂停、恢复等功能
|
|
5
|
-
*/ function _define_property(obj, key, value) {
|
|
6
|
-
if (key in obj) {
|
|
7
|
-
Object.defineProperty(obj, key, {
|
|
8
|
-
value: value,
|
|
9
|
-
enumerable: true,
|
|
10
|
-
configurable: true,
|
|
11
|
-
writable: true
|
|
12
|
-
});
|
|
13
|
-
} else {
|
|
14
|
-
obj[key] = value;
|
|
15
|
-
}
|
|
16
|
-
return obj;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* 队列状态
|
|
20
|
-
*/ var QueueState = /*#__PURE__*/ function(QueueState) {
|
|
21
|
-
/**
|
|
22
|
-
* 正常状态,请求可以正常执行
|
|
23
|
-
*/ QueueState["IDLE"] = "idle";
|
|
24
|
-
/**
|
|
25
|
-
* 暂停状态,请求会被放入队列
|
|
26
|
-
*/ QueueState["PAUSED"] = "paused";
|
|
27
|
-
/**
|
|
28
|
-
* 处理中状态,正在执行回调
|
|
29
|
-
*/ QueueState["PROCESSING"] = "processing";
|
|
30
|
-
return QueueState;
|
|
31
|
-
}(QueueState || {});
|
|
32
|
-
/**
|
|
33
|
-
* 请求队列管理器
|
|
34
|
-
*/ let RequestQueueManager = class RequestQueueManager {
|
|
35
|
-
/**
|
|
36
|
-
* 获取单例实例
|
|
37
|
-
*/ static getInstance() {
|
|
38
|
-
if (!RequestQueueManager.instance) {
|
|
39
|
-
RequestQueueManager.instance = new RequestQueueManager();
|
|
40
|
-
}
|
|
41
|
-
return RequestQueueManager.instance;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* 检查队列是否处于暂停状态
|
|
45
|
-
*/ isPaused() {
|
|
46
|
-
return this.state === "paused" || this.state === "processing";
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* 暂停队列,后续请求会被放入队列
|
|
50
|
-
*/ pause() {
|
|
51
|
-
if (this.state === "idle") {
|
|
52
|
-
this.state = "paused";
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* 恢复队列,执行队列中的所有请求
|
|
57
|
-
*/ async resume() {
|
|
58
|
-
if (this.state === "idle") {
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
this.state = "idle";
|
|
62
|
-
// 执行队列中的所有请求
|
|
63
|
-
const requests = [
|
|
64
|
-
...this.queue
|
|
65
|
-
];
|
|
66
|
-
this.queue = [];
|
|
67
|
-
// 并行执行所有请求
|
|
68
|
-
await Promise.allSettled(requests.map((item)=>{
|
|
69
|
-
return item.execute().then(item.resolve).catch(item.reject);
|
|
70
|
-
}));
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* 执行回调并等待完成,然后恢复队列
|
|
74
|
-
*
|
|
75
|
-
* @param callback - 回调函数
|
|
76
|
-
*/ async processAndResume(callback) {
|
|
77
|
-
if (this.state === "processing") {
|
|
78
|
-
// 如果已经在处理中,等待当前处理完成
|
|
79
|
-
if (this.processingPromise) {
|
|
80
|
-
await this.processingPromise;
|
|
81
|
-
}
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
this.state = "processing";
|
|
85
|
-
try {
|
|
86
|
-
// 执行回调
|
|
87
|
-
this.processingPromise = Promise.resolve(callback());
|
|
88
|
-
await this.processingPromise;
|
|
89
|
-
} finally{
|
|
90
|
-
this.processingPromise = null;
|
|
91
|
-
// 恢复队列
|
|
92
|
-
await this.resume();
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* 将请求添加到队列
|
|
97
|
-
*
|
|
98
|
-
* @template TResponse - 响应数据类型
|
|
99
|
-
* @param options - 请求配置
|
|
100
|
-
* @param execute - 请求执行函数
|
|
101
|
-
* @returns Promise 解析为响应对象
|
|
102
|
-
*/ async enqueue(options, execute) {
|
|
103
|
-
return new Promise((resolve, reject)=>{
|
|
104
|
-
this.queue.push({
|
|
105
|
-
options: options,
|
|
106
|
-
execute: execute,
|
|
107
|
-
resolve: resolve,
|
|
108
|
-
reject,
|
|
109
|
-
timestamp: Date.now()
|
|
110
|
-
});
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* 获取队列长度
|
|
115
|
-
*/ getQueueLength() {
|
|
116
|
-
return this.queue.length;
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* 清空队列
|
|
120
|
-
*
|
|
121
|
-
* @param reason - 清空原因(用于错误信息)
|
|
122
|
-
*/ clear(reason) {
|
|
123
|
-
const requests = [
|
|
124
|
-
...this.queue
|
|
125
|
-
];
|
|
126
|
-
this.queue = [];
|
|
127
|
-
// 拒绝所有待执行的请求
|
|
128
|
-
const error = reason ? new Error(`请求队列已清空: ${reason}`) : new Error('请求队列已清空');
|
|
129
|
-
requests.forEach((item)=>{
|
|
130
|
-
item.reject(error);
|
|
131
|
-
});
|
|
132
|
-
this.state = "idle";
|
|
133
|
-
this.processingPromise = null;
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* 销毁管理器
|
|
137
|
-
*/ destroy() {
|
|
138
|
-
this.clear('管理器已销毁');
|
|
139
|
-
RequestQueueManager.instance = null;
|
|
140
|
-
}
|
|
141
|
-
constructor(){
|
|
142
|
-
/**
|
|
143
|
-
* 待执行的请求队列
|
|
144
|
-
*/ _define_property(this, "queue", []);
|
|
145
|
-
/**
|
|
146
|
-
* 队列状态
|
|
147
|
-
*/ _define_property(this, "state", "idle");
|
|
148
|
-
/**
|
|
149
|
-
* 当前正在执行的回调 Promise
|
|
150
|
-
*/ _define_property(this, "processingPromise", null);
|
|
151
|
-
}
|
|
152
|
-
};
|
|
153
|
-
_define_property(RequestQueueManager, "instance", null);
|
|
154
|
-
/**
|
|
155
|
-
* 获取请求队列管理器实例
|
|
156
|
-
*/ export function getRequestQueueManager() {
|
|
157
|
-
return RequestQueueManager.getInstance();
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
//# sourceMappingURL=RequestQueueManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/request/utils/RequestQueueManager.ts"],"sourcesContent":["/**\n * 请求队列管理器\n * \n * 用于管理待执行的请求队列,支持请求拦截、暂停、恢复等功能\n */\n\nimport type { RequestOptions, Response } from '../types';\n\n/**\n * 待执行的请求项\n */\ninterface QueuedRequest {\n /**\n * 请求配置\n */\n options: RequestOptions<unknown>;\n \n /**\n * 请求执行函数\n */\n execute: () => Promise<Response<unknown>>;\n \n /**\n * Promise resolve 函数\n */\n resolve: (response: Response<unknown>) => void;\n \n /**\n * Promise reject 函数\n */\n reject: (error: unknown) => void;\n \n /**\n * 请求时间戳\n */\n timestamp: number;\n}\n\n/**\n * 队列状态\n */\nenum QueueState {\n /**\n * 正常状态,请求可以正常执行\n */\n IDLE = 'idle',\n \n /**\n * 暂停状态,请求会被放入队列\n */\n PAUSED = 'paused',\n \n /**\n * 处理中状态,正在执行回调\n */\n PROCESSING = 'processing',\n}\n\n/**\n * 请求队列管理器\n */\nclass RequestQueueManager {\n private static instance: RequestQueueManager | null = null;\n \n /**\n * 待执行的请求队列\n */\n private queue: QueuedRequest[] = [];\n \n /**\n * 队列状态\n */\n private state: QueueState = QueueState.IDLE;\n \n /**\n * 当前正在执行的回调 Promise\n */\n private processingPromise: Promise<void> | null = null;\n \n /**\n * 获取单例实例\n */\n static getInstance(): RequestQueueManager {\n if (!RequestQueueManager.instance) {\n RequestQueueManager.instance = new RequestQueueManager();\n }\n return RequestQueueManager.instance;\n }\n \n /**\n * 检查队列是否处于暂停状态\n */\n isPaused(): boolean {\n return this.state === QueueState.PAUSED || this.state === QueueState.PROCESSING;\n }\n \n /**\n * 暂停队列,后续请求会被放入队列\n */\n pause(): void {\n if (this.state === QueueState.IDLE) {\n this.state = QueueState.PAUSED;\n }\n }\n \n /**\n * 恢复队列,执行队列中的所有请求\n */\n async resume(): Promise<void> {\n if (this.state === QueueState.IDLE) {\n return;\n }\n \n this.state = QueueState.IDLE;\n \n // 执行队列中的所有请求\n const requests = [...this.queue];\n this.queue = [];\n \n // 并行执行所有请求\n await Promise.allSettled(\n requests.map((item) => {\n return item\n .execute()\n .then(item.resolve)\n .catch(item.reject);\n })\n );\n }\n \n /**\n * 执行回调并等待完成,然后恢复队列\n * \n * @param callback - 回调函数\n */\n async processAndResume(callback: () => Promise<void> | void): Promise<void> {\n if (this.state === QueueState.PROCESSING) {\n // 如果已经在处理中,等待当前处理完成\n if (this.processingPromise) {\n await this.processingPromise;\n }\n return;\n }\n \n this.state = QueueState.PROCESSING;\n \n try {\n // 执行回调\n this.processingPromise = Promise.resolve(callback());\n await this.processingPromise;\n } finally {\n this.processingPromise = null;\n // 恢复队列\n await this.resume();\n }\n }\n \n /**\n * 将请求添加到队列\n * \n * @template TResponse - 响应数据类型\n * @param options - 请求配置\n * @param execute - 请求执行函数\n * @returns Promise 解析为响应对象\n */\n async enqueue<TResponse = unknown>(\n options: RequestOptions<TResponse>,\n execute: () => Promise<Response<TResponse>>\n ): Promise<Response<TResponse>> {\n return new Promise<Response<TResponse>>((resolve, reject) => {\n this.queue.push({\n options: options as RequestOptions<unknown>,\n execute: execute as () => Promise<Response<unknown>>,\n resolve: resolve as (response: Response<unknown>) => void,\n reject,\n timestamp: Date.now(),\n });\n });\n }\n \n /**\n * 获取队列长度\n */\n getQueueLength(): number {\n return this.queue.length;\n }\n \n /**\n * 清空队列\n * \n * @param reason - 清空原因(用于错误信息)\n */\n clear(reason?: string): void {\n const requests = [...this.queue];\n this.queue = [];\n \n // 拒绝所有待执行的请求\n const error = reason\n ? new Error(`请求队列已清空: ${reason}`)\n : new Error('请求队列已清空');\n \n requests.forEach((item) => {\n item.reject(error);\n });\n \n this.state = QueueState.IDLE;\n this.processingPromise = null;\n }\n \n /**\n * 销毁管理器\n */\n destroy(): void {\n this.clear('管理器已销毁');\n RequestQueueManager.instance = null;\n }\n}\n\n/**\n * 获取请求队列管理器实例\n */\nexport function getRequestQueueManager(): RequestQueueManager {\n return RequestQueueManager.getInstance();\n}\n"],"names":["QueueState","RequestQueueManager","getInstance","instance","isPaused","state","pause","resume","requests","queue","Promise","allSettled","map","item","execute","then","resolve","catch","reject","processAndResume","callback","processingPromise","enqueue","options","push","timestamp","Date","now","getQueueLength","length","clear","reason","error","Error","forEach","destroy","getRequestQueueManager"],"mappings":"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"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 依赖检查工具
|
|
3
|
-
*
|
|
4
|
-
* 用于检查可选依赖是否已安装,并提供友好的安装提示
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* 依赖包信息
|
|
8
|
-
*/
|
|
9
|
-
export interface DependencyInfo {
|
|
10
|
-
/**
|
|
11
|
-
* 包名
|
|
12
|
-
*/
|
|
13
|
-
name: string;
|
|
14
|
-
/**
|
|
15
|
-
* 包描述
|
|
16
|
-
*/
|
|
17
|
-
description: string;
|
|
18
|
-
/**
|
|
19
|
-
* 安装命令(pnpm)
|
|
20
|
-
*/
|
|
21
|
-
installCommand: string;
|
|
22
|
-
/**
|
|
23
|
-
* 安装命令(npm)
|
|
24
|
-
*/
|
|
25
|
-
installCommandNpm: string;
|
|
26
|
-
/**
|
|
27
|
-
* 安装命令(yarn)
|
|
28
|
-
*/
|
|
29
|
-
installCommandYarn: string;
|
|
30
|
-
/**
|
|
31
|
-
* 文档链接
|
|
32
|
-
*/
|
|
33
|
-
documentationUrl?: string;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* 检查依赖是否已安装
|
|
37
|
-
*
|
|
38
|
-
* @param packageName - 包名
|
|
39
|
-
* @returns 如果已安装返回 true,否则返回 false
|
|
40
|
-
*/
|
|
41
|
-
export declare function checkDependency(packageName: string): Promise<boolean>;
|
|
42
|
-
/**
|
|
43
|
-
* 创建友好的依赖缺失错误消息
|
|
44
|
-
*
|
|
45
|
-
* @param packageName - 包名
|
|
46
|
-
* @param context - 上下文信息(可选)
|
|
47
|
-
* @returns 错误消息字符串
|
|
48
|
-
*/
|
|
49
|
-
export declare function createDependencyError(packageName: string, context?: {
|
|
50
|
-
adapterName?: string;
|
|
51
|
-
environment?: string;
|
|
52
|
-
}): string;
|
|
53
|
-
/**
|
|
54
|
-
* 检查依赖并抛出友好的错误(如果未安装)
|
|
55
|
-
*
|
|
56
|
-
* @param packageName - 包名
|
|
57
|
-
* @param context - 上下文信息(可选)
|
|
58
|
-
* @throws 如果依赖未安装,抛出包含友好提示的错误
|
|
59
|
-
*/
|
|
60
|
-
export declare function requireDependency(packageName: string, context?: {
|
|
61
|
-
adapterName?: string;
|
|
62
|
-
environment?: string;
|
|
63
|
-
}): Promise<void>;
|
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 依赖检查工具
|
|
3
|
-
*
|
|
4
|
-
* 用于检查可选依赖是否已安装,并提供友好的安装提示
|
|
5
|
-
*/ /**
|
|
6
|
-
* 依赖包信息
|
|
7
|
-
*/ /**
|
|
8
|
-
* 已知依赖包信息
|
|
9
|
-
*/ const KNOWN_DEPENDENCIES = {
|
|
10
|
-
ky: {
|
|
11
|
-
name: 'ky',
|
|
12
|
-
description: '一个轻量级的 HTTP 客户端库,基于 fetch API',
|
|
13
|
-
installCommand: 'pnpm add ky',
|
|
14
|
-
installCommandNpm: 'npm install ky',
|
|
15
|
-
installCommandYarn: 'yarn add ky',
|
|
16
|
-
documentationUrl: 'https://github.com/sindresorhus/ky'
|
|
17
|
-
},
|
|
18
|
-
axios: {
|
|
19
|
-
name: 'axios',
|
|
20
|
-
description: '一个基于 Promise 的 HTTP 客户端,用于浏览器和 Node.js',
|
|
21
|
-
installCommand: 'pnpm add axios',
|
|
22
|
-
installCommandNpm: 'npm install axios',
|
|
23
|
-
installCommandYarn: 'yarn add axios',
|
|
24
|
-
documentationUrl: 'https://axios-http.com/'
|
|
25
|
-
},
|
|
26
|
-
undici: {
|
|
27
|
-
name: 'undici',
|
|
28
|
-
description: '一个高性能的 HTTP/1.1 客户端,Node.js 官方推荐',
|
|
29
|
-
installCommand: 'pnpm add undici',
|
|
30
|
-
installCommandNpm: 'npm install undici',
|
|
31
|
-
installCommandYarn: 'yarn add undici',
|
|
32
|
-
documentationUrl: 'https://undici.nodejs.org/'
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
/**
|
|
36
|
-
* 检测包管理器类型
|
|
37
|
-
*
|
|
38
|
-
* @returns 包管理器类型('pnpm' | 'npm' | 'yarn' | 'unknown')
|
|
39
|
-
*/ function detectPackageManager() {
|
|
40
|
-
// 检查环境变量
|
|
41
|
-
if (typeof process !== 'undefined') {
|
|
42
|
-
// 检查 pnpm
|
|
43
|
-
if (process.env.npm_config_user_agent?.includes('pnpm')) {
|
|
44
|
-
return 'pnpm';
|
|
45
|
-
}
|
|
46
|
-
// 检查 yarn
|
|
47
|
-
if (process.env.npm_config_user_agent?.includes('yarn')) {
|
|
48
|
-
return 'yarn';
|
|
49
|
-
}
|
|
50
|
-
// 检查 npm
|
|
51
|
-
if (process.env.npm_config_user_agent?.includes('npm')) {
|
|
52
|
-
return 'npm';
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
// 检查是否存在 lock 文件(仅在 Node.js 环境中)
|
|
56
|
-
if (typeof process !== 'undefined' && typeof require !== 'undefined' && process.cwd) {
|
|
57
|
-
try {
|
|
58
|
-
// 动态导入 Node.js 模块(避免浏览器环境报错)
|
|
59
|
-
const fs = require('fs');
|
|
60
|
-
const path = require('path');
|
|
61
|
-
const cwd = process.cwd();
|
|
62
|
-
if (fs.existsSync(path.join(cwd, 'pnpm-lock.yaml'))) {
|
|
63
|
-
return 'pnpm';
|
|
64
|
-
}
|
|
65
|
-
if (fs.existsSync(path.join(cwd, 'yarn.lock'))) {
|
|
66
|
-
return 'yarn';
|
|
67
|
-
}
|
|
68
|
-
if (fs.existsSync(path.join(cwd, 'package-lock.json'))) {
|
|
69
|
-
return 'npm';
|
|
70
|
-
}
|
|
71
|
-
} catch {
|
|
72
|
-
// 忽略错误(可能是浏览器环境)
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
return 'unknown';
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* 检查依赖是否已安装
|
|
79
|
-
*
|
|
80
|
-
* @param packageName - 包名
|
|
81
|
-
* @returns 如果已安装返回 true,否则返回 false
|
|
82
|
-
*/ export async function checkDependency(packageName) {
|
|
83
|
-
try {
|
|
84
|
-
// 在浏览器环境中,使用 Function 构造函数避免构建时解析
|
|
85
|
-
// 这样可以确保动态导入在运行时执行
|
|
86
|
-
if (typeof window !== 'undefined') {
|
|
87
|
-
// 浏览器环境:使用 Function 构造函数
|
|
88
|
-
const importFn = new Function('packageName', 'return import(packageName)');
|
|
89
|
-
await importFn(packageName);
|
|
90
|
-
} else {
|
|
91
|
-
// Node.js 环境:直接导入
|
|
92
|
-
await import(packageName);
|
|
93
|
-
}
|
|
94
|
-
return true;
|
|
95
|
-
} catch (error) {
|
|
96
|
-
// 如果导入失败,检查是否是模块未找到错误
|
|
97
|
-
if (error instanceof Error) {
|
|
98
|
-
const errorMessage = error.message.toLowerCase();
|
|
99
|
-
// 检查各种模块未找到的错误信息
|
|
100
|
-
if (errorMessage.includes('cannot find module') || errorMessage.includes('cannot resolve') || errorMessage.includes('module not found') || errorMessage.includes('failed to resolve') || errorMessage.includes('does not exist') || errorMessage.includes('resolve') && errorMessage.includes(packageName)) {
|
|
101
|
-
return false;
|
|
102
|
-
}
|
|
103
|
-
// 在浏览器环境中,某些构建工具的错误信息可能不同
|
|
104
|
-
// 如果错误包含包名,也可能是未找到
|
|
105
|
-
if (errorMessage.includes(packageName) && (errorMessage.includes('resolve') || errorMessage.includes('find') || errorMessage.includes('not found'))) {
|
|
106
|
-
return false;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
// 其他错误(如语法错误、运行时错误等)不应该认为是未安装
|
|
110
|
-
// 返回 true,让实际导入时再处理这些错误
|
|
111
|
-
return true;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* 创建友好的依赖缺失错误消息
|
|
116
|
-
*
|
|
117
|
-
* @param packageName - 包名
|
|
118
|
-
* @param context - 上下文信息(可选)
|
|
119
|
-
* @returns 错误消息字符串
|
|
120
|
-
*/ export function createDependencyError(packageName, context) {
|
|
121
|
-
const depInfo = KNOWN_DEPENDENCIES[packageName];
|
|
122
|
-
const packageManager = detectPackageManager();
|
|
123
|
-
// 构建基础错误消息
|
|
124
|
-
let message = `\n❌ 依赖包 "${packageName}" 未安装\n\n`;
|
|
125
|
-
// 添加上下文信息
|
|
126
|
-
if (context?.adapterName) {
|
|
127
|
-
message += `适配器 "${context.adapterName}" 需要安装 "${packageName}" 依赖包。\n\n`;
|
|
128
|
-
}
|
|
129
|
-
if (depInfo) {
|
|
130
|
-
message += `📦 包信息:${depInfo.description}\n\n`;
|
|
131
|
-
}
|
|
132
|
-
// 添加安装命令
|
|
133
|
-
message += `📥 安装命令:\n`;
|
|
134
|
-
if (depInfo) {
|
|
135
|
-
switch(packageManager){
|
|
136
|
-
case 'pnpm':
|
|
137
|
-
message += ` ${depInfo.installCommand}\n`;
|
|
138
|
-
break;
|
|
139
|
-
case 'npm':
|
|
140
|
-
message += ` ${depInfo.installCommandNpm}\n`;
|
|
141
|
-
break;
|
|
142
|
-
case 'yarn':
|
|
143
|
-
message += ` ${depInfo.installCommandYarn}\n`;
|
|
144
|
-
break;
|
|
145
|
-
default:
|
|
146
|
-
// 显示所有包管理器的命令
|
|
147
|
-
message += ` ${depInfo.installCommand}\n`;
|
|
148
|
-
message += ` ${depInfo.installCommandNpm}\n`;
|
|
149
|
-
message += ` ${depInfo.installCommandYarn}\n`;
|
|
150
|
-
}
|
|
151
|
-
} else {
|
|
152
|
-
// 未知包,使用通用命令
|
|
153
|
-
switch(packageManager){
|
|
154
|
-
case 'pnpm':
|
|
155
|
-
message += ` pnpm add ${packageName}\n`;
|
|
156
|
-
break;
|
|
157
|
-
case 'npm':
|
|
158
|
-
message += ` npm install ${packageName}\n`;
|
|
159
|
-
break;
|
|
160
|
-
case 'yarn':
|
|
161
|
-
message += ` yarn add ${packageName}\n`;
|
|
162
|
-
break;
|
|
163
|
-
default:
|
|
164
|
-
message += ` pnpm add ${packageName}\n`;
|
|
165
|
-
message += ` npm install ${packageName}\n`;
|
|
166
|
-
message += ` yarn add ${packageName}\n`;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
// 添加文档链接
|
|
170
|
-
if (depInfo?.documentationUrl) {
|
|
171
|
-
message += `\n📚 文档:${depInfo.documentationUrl}\n`;
|
|
172
|
-
}
|
|
173
|
-
// 添加说明
|
|
174
|
-
message += `\n💡 提示:这些依赖包是可选依赖,框架不会自动安装。\n`;
|
|
175
|
-
message += ` 请根据你的项目需求,在项目根目录安装对应的依赖包。\n`;
|
|
176
|
-
return message;
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* 检查依赖并抛出友好的错误(如果未安装)
|
|
180
|
-
*
|
|
181
|
-
* @param packageName - 包名
|
|
182
|
-
* @param context - 上下文信息(可选)
|
|
183
|
-
* @throws 如果依赖未安装,抛出包含友好提示的错误
|
|
184
|
-
*/ export async function requireDependency(packageName, context) {
|
|
185
|
-
const isInstalled = await checkDependency(packageName);
|
|
186
|
-
if (!isInstalled) {
|
|
187
|
-
const errorMessage = createDependencyError(packageName, context);
|
|
188
|
-
throw new Error(errorMessage);
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
//# sourceMappingURL=dependencyCheck.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/request/utils/dependencyCheck.ts"],"sourcesContent":["/**\n * 依赖检查工具\n * \n * 用于检查可选依赖是否已安装,并提供友好的安装提示\n */\n\n/**\n * 依赖包信息\n */\nexport interface DependencyInfo {\n /**\n * 包名\n */\n name: string;\n\n /**\n * 包描述\n */\n description: string;\n\n /**\n * 安装命令(pnpm)\n */\n installCommand: string;\n\n /**\n * 安装命令(npm)\n */\n installCommandNpm: string;\n\n /**\n * 安装命令(yarn)\n */\n installCommandYarn: string;\n\n /**\n * 文档链接\n */\n documentationUrl?: string;\n}\n\n/**\n * 已知依赖包信息\n */\nconst KNOWN_DEPENDENCIES: Record<string, DependencyInfo> = {\n ky: {\n name: 'ky',\n description: '一个轻量级的 HTTP 客户端库,基于 fetch API',\n installCommand: 'pnpm add ky',\n installCommandNpm: 'npm install ky',\n installCommandYarn: 'yarn add ky',\n documentationUrl: 'https://github.com/sindresorhus/ky',\n },\n axios: {\n name: 'axios',\n description: '一个基于 Promise 的 HTTP 客户端,用于浏览器和 Node.js',\n installCommand: 'pnpm add axios',\n installCommandNpm: 'npm install axios',\n installCommandYarn: 'yarn add axios',\n documentationUrl: 'https://axios-http.com/',\n },\n undici: {\n name: 'undici',\n description: '一个高性能的 HTTP/1.1 客户端,Node.js 官方推荐',\n installCommand: 'pnpm add undici',\n installCommandNpm: 'npm install undici',\n installCommandYarn: 'yarn add undici',\n documentationUrl: 'https://undici.nodejs.org/',\n },\n};\n\n/**\n * 检测包管理器类型\n * \n * @returns 包管理器类型('pnpm' | 'npm' | 'yarn' | 'unknown')\n */\nfunction detectPackageManager(): 'pnpm' | 'npm' | 'yarn' | 'unknown' {\n // 检查环境变量\n if (typeof process !== 'undefined') {\n // 检查 pnpm\n if (process.env.npm_config_user_agent?.includes('pnpm')) {\n return 'pnpm';\n }\n // 检查 yarn\n if (process.env.npm_config_user_agent?.includes('yarn')) {\n return 'yarn';\n }\n // 检查 npm\n if (process.env.npm_config_user_agent?.includes('npm')) {\n return 'npm';\n }\n }\n\n // 检查是否存在 lock 文件(仅在 Node.js 环境中)\n if (typeof process !== 'undefined' && typeof require !== 'undefined' && process.cwd) {\n try {\n // 动态导入 Node.js 模块(避免浏览器环境报错)\n const fs = require('fs');\n const path = require('path');\n const cwd = process.cwd();\n\n if (fs.existsSync(path.join(cwd, 'pnpm-lock.yaml'))) {\n return 'pnpm';\n }\n if (fs.existsSync(path.join(cwd, 'yarn.lock'))) {\n return 'yarn';\n }\n if (fs.existsSync(path.join(cwd, 'package-lock.json'))) {\n return 'npm';\n }\n } catch {\n // 忽略错误(可能是浏览器环境)\n }\n }\n\n return 'unknown';\n}\n\n/**\n * 检查依赖是否已安装\n * \n * @param packageName - 包名\n * @returns 如果已安装返回 true,否则返回 false\n */\nexport async function checkDependency(packageName: string): Promise<boolean> {\n try {\n // 在浏览器环境中,使用 Function 构造函数避免构建时解析\n // 这样可以确保动态导入在运行时执行\n if (typeof window !== 'undefined') {\n // 浏览器环境:使用 Function 构造函数\n const importFn = new Function('packageName', 'return import(packageName)');\n await importFn(packageName);\n } else {\n // Node.js 环境:直接导入\n await import(packageName);\n }\n return true;\n } catch (error: unknown) {\n // 如果导入失败,检查是否是模块未找到错误\n if (error instanceof Error) {\n const errorMessage = error.message.toLowerCase();\n // 检查各种模块未找到的错误信息\n if (\n errorMessage.includes('cannot find module') ||\n errorMessage.includes('cannot resolve') ||\n errorMessage.includes('module not found') ||\n errorMessage.includes('failed to resolve') ||\n errorMessage.includes('does not exist') ||\n (errorMessage.includes('resolve') && errorMessage.includes(packageName))\n ) {\n return false;\n }\n // 在浏览器环境中,某些构建工具的错误信息可能不同\n // 如果错误包含包名,也可能是未找到\n if (errorMessage.includes(packageName) && (\n errorMessage.includes('resolve') ||\n errorMessage.includes('find') ||\n errorMessage.includes('not found')\n )) {\n return false;\n }\n }\n // 其他错误(如语法错误、运行时错误等)不应该认为是未安装\n // 返回 true,让实际导入时再处理这些错误\n return true;\n }\n}\n\n/**\n * 创建友好的依赖缺失错误消息\n * \n * @param packageName - 包名\n * @param context - 上下文信息(可选)\n * @returns 错误消息字符串\n */\nexport function createDependencyError(\n packageName: string,\n context?: {\n adapterName?: string;\n environment?: string;\n }\n): string {\n const depInfo = KNOWN_DEPENDENCIES[packageName];\n const packageManager = detectPackageManager();\n\n // 构建基础错误消息\n let message = `\\n❌ 依赖包 \"${packageName}\" 未安装\\n\\n`;\n\n // 添加上下文信息\n if (context?.adapterName) {\n message += `适配器 \"${context.adapterName}\" 需要安装 \"${packageName}\" 依赖包。\\n\\n`;\n }\n\n if (depInfo) {\n message += `📦 包信息:${depInfo.description}\\n\\n`;\n }\n\n // 添加安装命令\n message += `📥 安装命令:\\n`;\n if (depInfo) {\n switch (packageManager) {\n case 'pnpm':\n message += ` ${depInfo.installCommand}\\n`;\n break;\n case 'npm':\n message += ` ${depInfo.installCommandNpm}\\n`;\n break;\n case 'yarn':\n message += ` ${depInfo.installCommandYarn}\\n`;\n break;\n default:\n // 显示所有包管理器的命令\n message += ` ${depInfo.installCommand}\\n`;\n message += ` ${depInfo.installCommandNpm}\\n`;\n message += ` ${depInfo.installCommandYarn}\\n`;\n }\n } else {\n // 未知包,使用通用命令\n switch (packageManager) {\n case 'pnpm':\n message += ` pnpm add ${packageName}\\n`;\n break;\n case 'npm':\n message += ` npm install ${packageName}\\n`;\n break;\n case 'yarn':\n message += ` yarn add ${packageName}\\n`;\n break;\n default:\n message += ` pnpm add ${packageName}\\n`;\n message += ` npm install ${packageName}\\n`;\n message += ` yarn add ${packageName}\\n`;\n }\n }\n\n // 添加文档链接\n if (depInfo?.documentationUrl) {\n message += `\\n📚 文档:${depInfo.documentationUrl}\\n`;\n }\n\n // 添加说明\n message += `\\n💡 提示:这些依赖包是可选依赖,框架不会自动安装。\\n`;\n message += ` 请根据你的项目需求,在项目根目录安装对应的依赖包。\\n`;\n\n return message;\n}\n\n/**\n * 检查依赖并抛出友好的错误(如果未安装)\n * \n * @param packageName - 包名\n * @param context - 上下文信息(可选)\n * @throws 如果依赖未安装,抛出包含友好提示的错误\n */\nexport async function requireDependency(\n packageName: string,\n context?: {\n adapterName?: string;\n environment?: string;\n }\n): Promise<void> {\n const isInstalled = await checkDependency(packageName);\n if (!isInstalled) {\n const errorMessage = createDependencyError(packageName, context);\n throw new Error(errorMessage);\n }\n}\n"],"names":["KNOWN_DEPENDENCIES","ky","name","description","installCommand","installCommandNpm","installCommandYarn","documentationUrl","axios","undici","detectPackageManager","process","env","npm_config_user_agent","includes","require","cwd","fs","path","existsSync","join","checkDependency","packageName","window","importFn","Function","error","Error","errorMessage","message","toLowerCase","createDependencyError","context","depInfo","packageManager","adapterName","requireDependency","isInstalled"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/request/utils/index.ts"],"sourcesContent":["/**\n * 请求库工具函数\n */\n\nexport {\n checkDependency,\n createDependencyError,\n requireDependency,\n type DependencyInfo,\n} from './dependencyCheck';\n\nexport { getRequestQueueManager } from './RequestQueueManager';\n"],"names":["checkDependency","createDependencyError","requireDependency","getRequestQueueManager"],"mappings":"AAAA;;CAEC,GAED,SACEA,eAAe,EACfC,qBAAqB,EACrBC,iBAAiB,QAEZ,oBAAoB;AAE3B,SAASC,sBAAsB,QAAQ,wBAAwB"}
|
package/dist/request/utils.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '@vlian/request/utils';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/state/StateManager.ts"],"sourcesContent":["/**\n * 状态管理器主类\n * \n * 这是状态管理器的核心入口,提供统一的状态管理 API\n */\n\nimport type {\n IStateInstance,\n IStateAdapter,\n IStateRegistry,\n StateInstanceOptions,\n StateManagerOptions,\n StateScope,\n DerivedStateConfig,\n IDerivedStateInstance,\n} from './types';\nimport { AdapterFactory } from './adapters/AdapterFactory';\nimport { StateRegistry } from './core/StateRegistry';\nimport { DerivedStateInstance } from './core/DerivedStateInstance';\n\n/**\n * 状态管理器实现\n */\nexport class StateManager implements IStateManager {\n /**\n * 默认适配器\n */\n private readonly adapter: IStateAdapter;\n\n /**\n * 状态注册表(如果启用)\n */\n private readonly registry: IStateRegistry | null;\n\n /**\n * 默认作用域\n */\n private readonly defaultScope?: StateScope;\n\n /**\n * 是否启用开发模式\n */\n private readonly devMode: boolean;\n\n /**\n * 是否已销毁\n */\n private destroyed = false;\n\n /**\n * 构造函数\n * \n * @param options - 状态管理器配置选项\n */\n constructor(options: StateManagerOptions = {}) {\n this.adapter = options.defaultAdapter ?? AdapterFactory.getDefaultAdapter();\n this.defaultScope = options.defaultScope;\n this.devMode = options.devMode ?? false;\n this.registry = options.enableRegistry !== false ? new StateRegistry() : null;\n\n if (this.devMode) {\n console.debug('[StateManager] Initialized', {\n adapter: this.adapter.getName(),\n registryEnabled: !!this.registry,\n defaultScope: this.defaultScope,\n });\n }\n }\n\n /**\n * 创建状态实例\n */\n createState<T = unknown>(\n initialValue: T,\n options?: StateInstanceOptions,\n ): IStateInstance<T> {\n if (this.destroyed) {\n throw new Error('StateManager has been destroyed');\n }\n\n // 合并默认作用域\n const mergedOptions: StateInstanceOptions = {\n ...options,\n scope: options?.scope ?? this.defaultScope,\n devMode: options?.devMode ?? this.devMode,\n };\n\n // 使用适配器创建状态实例\n const instance = this.adapter.createInstance<T>(initialValue, mergedOptions);\n\n // 如果启用了注册表,注册实例\n if (this.registry) {\n // 类型转换:注册表接受 IStateInstance<unknown>,但实际类型是 IStateInstance<T>\n this.registry.register(instance as IStateInstance<unknown>);\n }\n\n return instance;\n }\n\n /**\n * 创建派生状态\n */\n createDerivedState<T, D extends readonly IStateInstance[]>(\n config: DerivedStateConfig<T, D>,\n options?: {\n id?: string | symbol;\n scope?: StateScope;\n },\n ): IDerivedStateInstance<T> {\n if (this.destroyed) {\n throw new Error('StateManager has been destroyed');\n }\n\n const mergedOptions = {\n ...options,\n scope: options?.scope ?? this.defaultScope,\n };\n\n const instance = new DerivedStateInstance(config, mergedOptions);\n\n // 如果启用了注册表,注册实例\n if (this.registry) {\n this.registry.register(instance);\n }\n\n return instance;\n }\n\n /**\n * 获取状态实例(如果启用了注册表)\n */\n getState(id: string | symbol): IStateInstance | undefined {\n if (!this.registry) {\n throw new Error('Registry is not enabled. Enable it in StateManagerOptions.');\n }\n return this.registry.getInstance(id);\n }\n\n /**\n * 根据作用域获取所有状态实例\n */\n getStatesByScope(scope: StateScope): IStateInstance[] {\n if (!this.registry) {\n throw new Error('Registry is not enabled. Enable it in StateManagerOptions.');\n }\n return this.registry.getInstancesByScope(scope);\n }\n\n /**\n * 获取所有状态实例\n */\n getAllStates(): IStateInstance[] {\n if (!this.registry) {\n throw new Error('Registry is not enabled. Enable it in StateManagerOptions.');\n }\n return this.registry.getAllInstances();\n }\n\n /**\n * 销毁指定作用域的所有状态实例\n */\n destroyScope(scope: StateScope): void {\n if (!this.registry) {\n throw new Error('Registry is not enabled. Enable it in StateManagerOptions.');\n }\n this.registry.destroyScope(scope);\n }\n\n /**\n * 销毁状态管理器\n */\n destroy(): void {\n if (this.destroyed) {\n return;\n }\n\n this.destroyed = true;\n\n // 销毁注册表中的所有实例\n if (this.registry) {\n this.registry.destroyAll();\n }\n\n // 销毁适配器\n this.adapter.destroy();\n\n if (this.devMode) {\n console.debug('[StateManager] Destroyed');\n }\n }\n\n /**\n * 检查状态管理器是否已销毁\n */\n isDestroyed(): boolean {\n return this.destroyed;\n }\n\n /**\n * 获取当前使用的适配器\n */\n getAdapter(): IStateAdapter {\n return this.adapter;\n }\n\n /**\n * 获取注册表(如果启用)\n */\n getRegistry(): IStateRegistry | null {\n return this.registry;\n }\n}\n\n/**\n * 状态管理器接口\n */\nexport interface IStateManager {\n /**\n * 创建状态实例\n */\n createState<T = unknown>(\n initialValue: T,\n options?: StateInstanceOptions,\n ): IStateInstance<T>;\n\n /**\n * 创建派生状态\n */\n createDerivedState<T, D extends readonly IStateInstance[]>(\n config: DerivedStateConfig<T, D>,\n options?: {\n id?: string | symbol;\n scope?: StateScope;\n },\n ): IDerivedStateInstance<T>;\n\n /**\n * 获取状态实例\n */\n getState(id: string | symbol): IStateInstance | undefined;\n\n /**\n * 根据作用域获取所有状态实例\n */\n getStatesByScope(scope: StateScope): IStateInstance[];\n\n /**\n * 获取所有状态实例\n */\n getAllStates(): IStateInstance[];\n\n /**\n * 销毁指定作用域的所有状态实例\n */\n destroyScope(scope: StateScope): void;\n\n /**\n * 销毁状态管理器\n */\n destroy(): void;\n\n /**\n * 检查状态管理器是否已销毁\n */\n isDestroyed(): boolean;\n}\n"],"names":["StateManager","createState","initialValue","options","destroyed","Error","mergedOptions","scope","defaultScope","devMode","instance","adapter","createInstance","registry","register","createDerivedState","config","DerivedStateInstance","getState","id","getInstance","getStatesByScope","getInstancesByScope","getAllStates","getAllInstances","destroyScope","destroy","destroyAll","console","debug","isDestroyed","getAdapter","getRegistry","defaultAdapter","AdapterFactory","getDefaultAdapter","enableRegistry","StateRegistry","getName","registryEnabled"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/state/StateManager.ts"],"sourcesContent":["/**\n * 状态管理器主类\n * \n * 这是状态管理器的核心入口,提供统一的状态管理 API\n */\n\nimport type {\n IStateInstance,\n IStateAdapter,\n IStateRegistry,\n StateInstanceOptions,\n StateManagerOptions,\n StateScope,\n DerivedStateConfig,\n IDerivedStateInstance,\n} from './types';\nimport { AdapterFactory } from './adapters/AdapterFactory';\nimport { StateRegistry } from './core/StateRegistry';\nimport { DerivedStateInstance } from './core/DerivedStateInstance';\n\n/**\n * 状态管理器实现\n */\nexport class StateManager implements IStateManager {\n /**\n * 默认适配器\n */\n private readonly adapter: IStateAdapter;\n\n /**\n * 状态注册表(如果启用)\n */\n private readonly registry: IStateRegistry | null;\n\n /**\n * 默认作用域\n */\n private readonly defaultScope?: StateScope;\n\n /**\n * 是否启用开发模式\n */\n private readonly devMode: boolean;\n\n /**\n * 是否已销毁\n */\n private destroyed = false;\n\n /**\n * 构造函数\n * \n * @param options - 状态管理器配置选项\n */\n constructor(options: StateManagerOptions = {}) {\n this.adapter = options.defaultAdapter ?? AdapterFactory.getDefaultAdapter();\n this.defaultScope = options.defaultScope;\n this.devMode = options.devMode ?? false;\n this.registry = options.enableRegistry !== false ? new StateRegistry() : null;\n\n if (this.devMode) {\n console.debug('[StateManager] Initialized', {\n adapter: this.adapter.getName(),\n registryEnabled: !!this.registry,\n defaultScope: this.defaultScope,\n });\n }\n }\n\n /**\n * 创建状态实例\n */\n createState<T = unknown>(\n initialValue: T,\n options?: StateInstanceOptions,\n ): IStateInstance<T> {\n if (this.destroyed) {\n throw new Error('StateManager has been destroyed');\n }\n\n // 合并默认作用域\n const mergedOptions: StateInstanceOptions = {\n ...options,\n scope: options?.scope ?? this.defaultScope,\n devMode: options?.devMode ?? this.devMode,\n };\n\n // 使用适配器创建状态实例\n const instance = this.adapter.createInstance<T>(initialValue, mergedOptions);\n\n // 如果启用了注册表,注册实例\n if (this.registry) {\n // 类型转换:注册表接受 IStateInstance<unknown>,但实际类型是 IStateInstance<T>\n this.registry.register(instance as IStateInstance<unknown>);\n }\n\n return instance;\n }\n\n /**\n * 创建派生状态\n */\n createDerivedState<T, D extends readonly IStateInstance[]>(\n config: DerivedStateConfig<T, D>,\n options?: {\n id?: string | symbol;\n scope?: StateScope;\n },\n ): IDerivedStateInstance<T> {\n if (this.destroyed) {\n throw new Error('StateManager has been destroyed');\n }\n\n const mergedOptions = {\n ...options,\n scope: options?.scope ?? this.defaultScope,\n };\n\n const instance = new DerivedStateInstance(config, mergedOptions);\n\n // 如果启用了注册表,注册实例\n if (this.registry) {\n this.registry.register(instance);\n }\n\n return instance;\n }\n\n /**\n * 获取状态实例(如果启用了注册表)\n */\n getState(id: string | symbol): IStateInstance | undefined {\n if (!this.registry) {\n throw new Error('Registry is not enabled. Enable it in StateManagerOptions.');\n }\n return this.registry.getInstance(id);\n }\n\n /**\n * 根据作用域获取所有状态实例\n */\n getStatesByScope(scope: StateScope): IStateInstance[] {\n if (!this.registry) {\n throw new Error('Registry is not enabled. Enable it in StateManagerOptions.');\n }\n return this.registry.getInstancesByScope(scope);\n }\n\n /**\n * 获取所有状态实例\n */\n getAllStates(): IStateInstance[] {\n if (!this.registry) {\n throw new Error('Registry is not enabled. Enable it in StateManagerOptions.');\n }\n return this.registry.getAllInstances();\n }\n\n /**\n * 销毁指定作用域的所有状态实例\n */\n destroyScope(scope: StateScope): void {\n if (!this.registry) {\n throw new Error('Registry is not enabled. Enable it in StateManagerOptions.');\n }\n this.registry.destroyScope(scope);\n }\n\n /**\n * 销毁状态管理器\n */\n destroy(): void {\n if (this.destroyed) {\n return;\n }\n\n this.destroyed = true;\n\n // 销毁注册表中的所有实例\n if (this.registry) {\n this.registry.destroyAll();\n }\n\n // 销毁适配器\n this.adapter.destroy();\n\n if (this.devMode) {\n console.debug('[StateManager] Destroyed');\n }\n }\n\n /**\n * 检查状态管理器是否已销毁\n */\n isDestroyed(): boolean {\n return this.destroyed;\n }\n\n /**\n * 获取当前使用的适配器\n */\n getAdapter(): IStateAdapter {\n return this.adapter;\n }\n\n /**\n * 获取注册表(如果启用)\n */\n getRegistry(): IStateRegistry | null {\n return this.registry;\n }\n}\n\n/**\n * 状态管理器接口\n */\nexport interface IStateManager {\n /**\n * 创建状态实例\n */\n createState<T = unknown>(\n initialValue: T,\n options?: StateInstanceOptions,\n ): IStateInstance<T>;\n\n /**\n * 创建派生状态\n */\n createDerivedState<T, D extends readonly IStateInstance[]>(\n config: DerivedStateConfig<T, D>,\n options?: {\n id?: string | symbol;\n scope?: StateScope;\n },\n ): IDerivedStateInstance<T>;\n\n /**\n * 获取状态实例\n */\n getState(id: string | symbol): IStateInstance | undefined;\n\n /**\n * 根据作用域获取所有状态实例\n */\n getStatesByScope(scope: StateScope): IStateInstance[];\n\n /**\n * 获取所有状态实例\n */\n getAllStates(): IStateInstance[];\n\n /**\n * 销毁指定作用域的所有状态实例\n */\n destroyScope(scope: StateScope): void;\n\n /**\n * 销毁状态管理器\n */\n destroy(): void;\n\n /**\n * 检查状态管理器是否已销毁\n */\n isDestroyed(): boolean;\n}\n"],"names":["AdapterFactory","StateRegistry","DerivedStateInstance","StateManager","createState","initialValue","options","destroyed","Error","mergedOptions","scope","defaultScope","devMode","instance","adapter","createInstance","registry","register","createDerivedState","config","getState","id","getInstance","getStatesByScope","getInstancesByScope","getAllStates","getAllInstances","destroyScope","destroy","destroyAll","console","debug","isDestroyed","getAdapter","getRegistry","defaultAdapter","getDefaultAdapter","enableRegistry","getName","registryEnabled"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/state/adapters/AdapterFactory.ts"],"sourcesContent":["/**\n * 状态适配器工厂\n */\n\nimport type { IStateAdapter } from '../types';\nimport { DefaultAdapter } from './DefaultAdapter';\n\n/**\n * 适配器工厂\n * \n * 负责创建和管理状态适配器实例\n */\nexport class AdapterFactory {\n /**\n * 默认适配器实例\n */\n private static defaultAdapter: IStateAdapter | null = null;\n\n /**\n * 自定义适配器映射\n */\n private static customAdapters: Map<string, () => IStateAdapter> = new Map();\n\n /**\n * 获取默认适配器\n */\n static getDefaultAdapter(): IStateAdapter {\n if (!this.defaultAdapter) {\n this.defaultAdapter = new DefaultAdapter();\n }\n return this.defaultAdapter;\n }\n\n /**\n * 创建适配器实例\n * \n * @param adapterName - 适配器名称,如果不提供则使用默认适配器\n * @returns 适配器实例\n */\n static createAdapter(adapterName?: string): IStateAdapter {\n if (!adapterName) {\n return this.getDefaultAdapter();\n }\n\n const factory = this.customAdapters.get(adapterName);\n if (!factory) {\n throw new Error(`Adapter \"${adapterName}\" not found. Available adapters: ${Array.from(this.customAdapters.keys()).join(', ')}`);\n }\n\n return factory();\n }\n\n /**\n * 注册自定义适配器\n * \n * @param name - 适配器名称\n * @param factory - 适配器工厂函数\n */\n static registerAdapter(name: string, factory: () => IStateAdapter): void {\n if (this.customAdapters.has(name)) {\n console.warn(`[AdapterFactory] Adapter \"${name}\" already registered, replacing...`);\n }\n this.customAdapters.set(name, factory);\n }\n\n /**\n * 注销适配器\n * \n * @param name - 适配器名称\n */\n static unregisterAdapter(name: string): void {\n this.customAdapters.delete(name);\n }\n\n /**\n * 获取所有已注册的适配器名称\n */\n static getRegisteredAdapters(): string[] {\n return Array.from(this.customAdapters.keys());\n }\n\n /**\n * 重置工厂(主要用于测试)\n */\n static reset(): void {\n if (this.defaultAdapter) {\n this.defaultAdapter.destroy();\n this.defaultAdapter = null;\n }\n this.customAdapters.clear();\n }\n}\n"],"names":["AdapterFactory","getDefaultAdapter","defaultAdapter","DefaultAdapter","createAdapter","adapterName","factory","customAdapters","get","Error","Array","from","keys","join","registerAdapter","name","has","console","warn","set","unregisterAdapter","delete","getRegisteredAdapters","reset","destroy","clear","Map"],"mappings":"AAAA;;CAEC;;;;+BAUYA;;;eAAAA;;;gCAPkB;;;;;;;;;;;;;;AAOxB,IAAA,AAAMA,iBAAN,MAAMA;IAWX;;GAEC,GACD,OAAOC,oBAAmC;QACxC,IAAI,CAAC,IAAI,CAACC,cAAc,EAAE;YACxB,IAAI,CAACA,cAAc,GAAG,IAAIC,8BAAc;QAC1C;QACA,OAAO,IAAI,CAACD,cAAc;IAC5B;IAEA;;;;;GAKC,GACD,OAAOE,cAAcC,WAAoB,EAAiB;QACxD,IAAI,CAACA,aAAa;YAChB,OAAO,IAAI,CAACJ,iBAAiB;QAC/B;QAEA,MAAMK,UAAU,IAAI,CAACC,cAAc,CAACC,GAAG,CAACH;QACxC,IAAI,CAACC,SAAS;YACZ,MAAM,IAAIG,MAAM,CAAC,SAAS,EAAEJ,YAAY,iCAAiC,EAAEK,MAAMC,IAAI,CAAC,IAAI,CAACJ,cAAc,CAACK,IAAI,IAAIC,IAAI,CAAC,OAAO;QAChI;QAEA,OAAOP;IACT;IAEA;;;;;GAKC,GACD,OAAOQ,gBAAgBC,IAAY,EAAET,OAA4B,EAAQ;QACvE,IAAI,IAAI,CAACC,cAAc,CAACS,GAAG,CAACD,OAAO;YACjCE,QAAQC,IAAI,CAAC,CAAC,0BAA0B,EAAEH,KAAK,kCAAkC,CAAC;QACpF;QACA,IAAI,CAACR,cAAc,CAACY,GAAG,CAACJ,MAAMT;IAChC;IAEA;;;;GAIC,GACD,OAAOc,kBAAkBL,IAAY,EAAQ;QAC3C,IAAI,CAACR,cAAc,CAACc,MAAM,CAACN;IAC7B;IAEA;;GAEC,GACD,OAAOO,wBAAkC;QACvC,OAAOZ,MAAMC,IAAI,CAAC,IAAI,CAACJ,cAAc,CAACK,IAAI;IAC5C;IAEA;;GAEC,GACD,OAAOW,QAAc;QACnB,IAAI,IAAI,CAACrB,cAAc,EAAE;YACvB,IAAI,CAACA,cAAc,CAACsB,OAAO;YAC3B,IAAI,CAACtB,cAAc,GAAG;QACxB;QACA,IAAI,CAACK,cAAc,CAACkB,KAAK;IAC3B;AACF;AA9EE;;GAEC,GACD,iBAJWzB,gBAIIE,kBAAuC;AAEtD;;GAEC,GACD,iBATWF,gBASIO,kBAAmD,IAAImB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/state/adapters/AdapterFactory.ts"],"sourcesContent":["/**\n * 状态适配器工厂\n */\n\nimport type { IStateAdapter } from '../types';\nimport { DefaultAdapter } from './DefaultAdapter';\n\n/**\n * 适配器工厂\n * \n * 负责创建和管理状态适配器实例\n */\nexport class AdapterFactory {\n /**\n * 默认适配器实例\n */\n private static defaultAdapter: IStateAdapter | null = null;\n\n /**\n * 自定义适配器映射\n */\n private static customAdapters: Map<string, () => IStateAdapter> = new Map();\n\n /**\n * 获取默认适配器\n */\n static getDefaultAdapter(): IStateAdapter {\n if (!this.defaultAdapter) {\n this.defaultAdapter = new DefaultAdapter();\n }\n return this.defaultAdapter;\n }\n\n /**\n * 创建适配器实例\n * \n * @param adapterName - 适配器名称,如果不提供则使用默认适配器\n * @returns 适配器实例\n */\n static createAdapter(adapterName?: string): IStateAdapter {\n if (!adapterName) {\n return this.getDefaultAdapter();\n }\n\n const factory = this.customAdapters.get(adapterName);\n if (!factory) {\n throw new Error(`Adapter \"${adapterName}\" not found. Available adapters: ${Array.from(this.customAdapters.keys()).join(', ')}`);\n }\n\n return factory();\n }\n\n /**\n * 注册自定义适配器\n * \n * @param name - 适配器名称\n * @param factory - 适配器工厂函数\n */\n static registerAdapter(name: string, factory: () => IStateAdapter): void {\n if (this.customAdapters.has(name)) {\n console.warn(`[AdapterFactory] Adapter \"${name}\" already registered, replacing...`);\n }\n this.customAdapters.set(name, factory);\n }\n\n /**\n * 注销适配器\n * \n * @param name - 适配器名称\n */\n static unregisterAdapter(name: string): void {\n this.customAdapters.delete(name);\n }\n\n /**\n * 获取所有已注册的适配器名称\n */\n static getRegisteredAdapters(): string[] {\n return Array.from(this.customAdapters.keys());\n }\n\n /**\n * 重置工厂(主要用于测试)\n */\n static reset(): void {\n if (this.defaultAdapter) {\n this.defaultAdapter.destroy();\n this.defaultAdapter = null;\n }\n this.customAdapters.clear();\n }\n}\n"],"names":["DefaultAdapter","AdapterFactory","getDefaultAdapter","defaultAdapter","createAdapter","adapterName","factory","customAdapters","get","Error","Array","from","keys","join","registerAdapter","name","has","console","warn","set","unregisterAdapter","delete","getRegisteredAdapters","reset","destroy","clear","Map"],"mappings":"AAAA;;CAEC;;;;;;;;;;;;;AAGD,SAASA,cAAc,QAAQ,mBAAmB;AAElD;;;;CAIC,GACD,OAAO,MAAMC;IAWX;;GAEC,GACD,OAAOC,oBAAmC;QACxC,IAAI,CAAC,IAAI,CAACC,cAAc,EAAE;YACxB,IAAI,CAACA,cAAc,GAAG,IAAIH;QAC5B;QACA,OAAO,IAAI,CAACG,cAAc;IAC5B;IAEA;;;;;GAKC,GACD,OAAOC,cAAcC,WAAoB,EAAiB;QACxD,IAAI,CAACA,aAAa;YAChB,OAAO,IAAI,CAACH,iBAAiB;QAC/B;QAEA,MAAMI,UAAU,IAAI,CAACC,cAAc,CAACC,GAAG,CAACH;QACxC,IAAI,CAACC,SAAS;YACZ,MAAM,IAAIG,MAAM,CAAC,SAAS,EAAEJ,YAAY,iCAAiC,EAAEK,MAAMC,IAAI,CAAC,IAAI,CAACJ,cAAc,CAACK,IAAI,IAAIC,IAAI,CAAC,OAAO;QAChI;QAEA,OAAOP;IACT;IAEA;;;;;GAKC,GACD,OAAOQ,gBAAgBC,IAAY,EAAET,OAA4B,EAAQ;QACvE,IAAI,IAAI,CAACC,cAAc,CAACS,GAAG,CAACD,OAAO;YACjCE,QAAQC,IAAI,CAAC,CAAC,0BAA0B,EAAEH,KAAK,kCAAkC,CAAC;QACpF;QACA,IAAI,CAACR,cAAc,CAACY,GAAG,CAACJ,MAAMT;IAChC;IAEA;;;;GAIC,GACD,OAAOc,kBAAkBL,IAAY,EAAQ;QAC3C,IAAI,CAACR,cAAc,CAACc,MAAM,CAACN;IAC7B;IAEA;;GAEC,GACD,OAAOO,wBAAkC;QACvC,OAAOZ,MAAMC,IAAI,CAAC,IAAI,CAACJ,cAAc,CAACK,IAAI;IAC5C;IAEA;;GAEC,GACD,OAAOW,QAAc;QACnB,IAAI,IAAI,CAACpB,cAAc,EAAE;YACvB,IAAI,CAACA,cAAc,CAACqB,OAAO;YAC3B,IAAI,CAACrB,cAAc,GAAG;QACxB;QACA,IAAI,CAACI,cAAc,CAACkB,KAAK;IAC3B;AACF;AA9EE;;GAEC,GACD,iBAJWxB,gBAIIE,kBAAuC;AAEtD;;GAEC,GACD,iBATWF,gBASIM,kBAAmD,IAAImB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/state/adapters/DefaultAdapter.ts"],"sourcesContent":["/**\n * 默认状态适配器\n * \n * 这是 Secra Framework 内置的默认状态适配器实现\n * 不依赖任何外部状态管理库,提供基础的状态管理能力\n */\n\nimport type {\n IStateAdapter,\n IStateInstance,\n StateInstanceOptions,\n} from '../types';\nimport { StateInstance } from '../core/StateInstance';\n\n/**\n * 默认状态适配器\n * \n * 使用框架内置的 StateInstance 实现\n */\nexport class DefaultAdapter implements IStateAdapter {\n /**\n * 适配器名称\n */\n private readonly name = 'DefaultAdapter';\n\n /**\n * 是否已销毁\n */\n private destroyed = false;\n\n /**\n * 创建的状态实例集合(用于销毁时清理)\n */\n private readonly instances: Set<IStateInstance> = new Set();\n\n /**\n * 创建状态实例\n */\n createInstance<T>(\n initialValue: T,\n options?: StateInstanceOptions,\n ): IStateInstance<T> {\n if (this.destroyed) {\n throw new Error('Adapter has been destroyed');\n }\n\n const instance = new StateInstance(initialValue, {\n id: options?.id,\n scope: options?.scope,\n devMode: options?.devMode,\n middleware: options?.middleware,\n });\n\n this.instances.add(instance);\n\n return instance;\n }\n\n /**\n * 销毁适配器\n */\n destroy(): void {\n if (this.destroyed) {\n return;\n }\n\n // 销毁所有创建的状态实例\n for (const instance of this.instances) {\n instance.destroy();\n }\n\n this.instances.clear();\n this.destroyed = true;\n }\n\n /**\n * 获取适配器名称\n */\n getName(): string {\n return this.name;\n }\n}\n"],"names":["DefaultAdapter","createInstance","initialValue","options","destroyed","Error","instance","StateInstance","id","scope","devMode","middleware","instances","add","destroy","clear","getName","name","Set"],"mappings":"AAAA;;;;;CAKC;;;;+BAcYA;;;eAAAA;;;+BAPiB;;;;;;;;;;;;;;AAOvB,IAAA,AAAMA,iBAAN,MAAMA;IAgBX;;GAEC,GACDC,eACEC,YAAe,EACfC,OAA8B,EACX;QACnB,IAAI,IAAI,CAACC,SAAS,EAAE;YAClB,MAAM,IAAIC,MAAM;QAClB;QAEA,MAAMC,WAAW,IAAIC,4BAAa,CAACL,cAAc;YAC/CM,IAAIL,SAASK;YACbC,OAAON,SAASM;YAChBC,SAASP,SAASO;YAClBC,YAAYR,SAASQ;QACvB;QAEA,IAAI,CAACC,SAAS,CAACC,GAAG,CAACP;QAEnB,OAAOA;IACT;IAEA;;GAEC,GACDQ,UAAgB;QACd,IAAI,IAAI,CAACV,SAAS,EAAE;YAClB;QACF;QAEA,cAAc;QACd,KAAK,MAAME,YAAY,IAAI,CAACM,SAAS,CAAE;YACrCN,SAASQ,OAAO;QAClB;QAEA,IAAI,CAACF,SAAS,CAACG,KAAK;QACpB,IAAI,CAACX,SAAS,GAAG;IACnB;IAEA;;GAEC,GACDY,UAAkB;QAChB,OAAO,IAAI,CAACC,IAAI;IAClB;;QA5DA;;GAEC,GACD,uBAAiBA,QAAO;QAExB;;GAEC,GACD,uBAAQb,aAAY;QAEpB;;GAEC,GACD,uBAAiBQ,aAAiC,IAAIM;;AAgDxD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/state/adapters/DefaultAdapter.ts"],"sourcesContent":["/**\n * 默认状态适配器\n * \n * 这是 Secra Framework 内置的默认状态适配器实现\n * 不依赖任何外部状态管理库,提供基础的状态管理能力\n */\n\nimport type {\n IStateAdapter,\n IStateInstance,\n StateInstanceOptions,\n} from '../types';\nimport { StateInstance } from '../core/StateInstance';\n\n/**\n * 默认状态适配器\n * \n * 使用框架内置的 StateInstance 实现\n */\nexport class DefaultAdapter implements IStateAdapter {\n /**\n * 适配器名称\n */\n private readonly name = 'DefaultAdapter';\n\n /**\n * 是否已销毁\n */\n private destroyed = false;\n\n /**\n * 创建的状态实例集合(用于销毁时清理)\n */\n private readonly instances: Set<IStateInstance> = new Set();\n\n /**\n * 创建状态实例\n */\n createInstance<T>(\n initialValue: T,\n options?: StateInstanceOptions,\n ): IStateInstance<T> {\n if (this.destroyed) {\n throw new Error('Adapter has been destroyed');\n }\n\n const instance = new StateInstance(initialValue, {\n id: options?.id,\n scope: options?.scope,\n devMode: options?.devMode,\n middleware: options?.middleware,\n });\n\n this.instances.add(instance);\n\n return instance;\n }\n\n /**\n * 销毁适配器\n */\n destroy(): void {\n if (this.destroyed) {\n return;\n }\n\n // 销毁所有创建的状态实例\n for (const instance of this.instances) {\n instance.destroy();\n }\n\n this.instances.clear();\n this.destroyed = true;\n }\n\n /**\n * 获取适配器名称\n */\n getName(): string {\n return this.name;\n }\n}\n"],"names":["StateInstance","DefaultAdapter","createInstance","initialValue","options","destroyed","Error","instance","id","scope","devMode","middleware","instances","add","destroy","clear","getName","name","Set"],"mappings":"AAAA;;;;;CAKC;;;;;;;;;;;;;AAOD,SAASA,aAAa,QAAQ,wBAAwB;AAEtD;;;;CAIC,GACD,OAAO,MAAMC;IAgBX;;GAEC,GACDC,eACEC,YAAe,EACfC,OAA8B,EACX;QACnB,IAAI,IAAI,CAACC,SAAS,EAAE;YAClB,MAAM,IAAIC,MAAM;QAClB;QAEA,MAAMC,WAAW,IAAIP,cAAcG,cAAc;YAC/CK,IAAIJ,SAASI;YACbC,OAAOL,SAASK;YAChBC,SAASN,SAASM;YAClBC,YAAYP,SAASO;QACvB;QAEA,IAAI,CAACC,SAAS,CAACC,GAAG,CAACN;QAEnB,OAAOA;IACT;IAEA;;GAEC,GACDO,UAAgB;QACd,IAAI,IAAI,CAACT,SAAS,EAAE;YAClB;QACF;QAEA,cAAc;QACd,KAAK,MAAME,YAAY,IAAI,CAACK,SAAS,CAAE;YACrCL,SAASO,OAAO;QAClB;QAEA,IAAI,CAACF,SAAS,CAACG,KAAK;QACpB,IAAI,CAACV,SAAS,GAAG;IACnB;IAEA;;GAEC,GACDW,UAAkB;QAChB,OAAO,IAAI,CAACC,IAAI;IAClB;;QA5DA;;GAEC,GACD,uBAAiBA,QAAO;QAExB;;GAEC,GACD,uBAAQZ,aAAY;QAEpB;;GAEC,GACD,uBAAiBO,aAAiC,IAAIM;;AAgDxD"}
|