@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 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/state/adapters/ReduxAdapter.ts"],"sourcesContent":["/**\n * Redux Toolkit 适配器\n * \n * 将 Redux Toolkit store 映射到 Secra 状态抽象\n * \n * 使用说明:\n * 1. 需要安装 @reduxjs/toolkit 作为 peerDependency\n * 2. 每个状态实例对应一个 Redux slice\n * 3. 支持 Redux DevTools 集成(如果可用)\n * 4. 支持中间件和开发模式\n * \n * @example\n * ```typescript\n * import { ReduxAdapter } from '@vlian/framework/state';\n * \n * const adapter = new ReduxAdapter({ devMode: true });\n * const state = adapter.createInstance(0, { id: 'counter' });\n * \n * state.set(1);\n * console.log(state.get()); // 1\n * ```\n */\n\nimport type {\n IStateAdapter,\n IStateInstance,\n StateInstanceId,\n StateInstanceOptions,\n StateScope,\n StateSubscriber,\n StateUpdater,\n Unsubscribe,\n} from '../types';\n\n/**\n * Redux 相关类型定义(如果 Redux 不可用,这些类型将用于类型检查)\n */\ntype ReduxStore = {\n dispatch: (action: unknown) => unknown;\n getState: () => Record<string, unknown>;\n subscribe: (listener: () => void) => () => void;\n replaceReducer: (nextReducer: (state: unknown, action: unknown) => unknown) => void;\n};\n\ntype ReduxReducer = (state: unknown, action: unknown) => unknown;\n\ntype ReduxSlice = {\n name: string;\n reducer: (state: unknown, action: unknown) => unknown;\n actions: Record<string, (payload?: unknown) => { type: string; payload?: unknown }>;\n};\n\ntype ReduxSliceOptions = {\n name: string;\n initialState: unknown;\n reducers?: Record<string, (state: unknown, action: { payload?: unknown }) => unknown>;\n};\n\n/**\n * Redux 状态实例实现\n * \n * 将 Redux slice 映射到 IStateInstance 接口\n * \n * @template T - 状态值类型\n */\nclass ReduxStateInstance<T = unknown> implements IStateInstance<T> {\n /**\n * 状态实例标识符\n */\n private readonly id: StateInstanceId;\n\n /**\n * 状态作用域\n */\n private readonly scope?: StateScope;\n\n /**\n * Redux store 引用\n */\n private readonly store: ReduxStore;\n\n /**\n * Redux slice 名称(在 store 中的路径)\n */\n private readonly sliceName: string;\n\n /**\n * Redux slice actions\n */\n private readonly actions: ReduxSlice['actions'];\n\n /**\n * 订阅者集合\n */\n private readonly subscribers: Set<StateSubscriber<T>> = new Set();\n\n /**\n * Redux store 订阅取消函数\n */\n private unsubscribeStore?: () => void;\n\n /**\n * 是否已销毁\n */\n private destroyed = false;\n\n /**\n * 开发模式标志\n */\n private readonly devMode: boolean;\n\n /**\n * 中间件函数数组\n */\n private readonly middleware: Array<(value: unknown, previous: unknown) => unknown>;\n\n /**\n * 上一次的状态值(用于订阅通知)\n */\n private previousValue: T;\n\n /**\n * 构造函数\n * \n * @param store - Redux store 实例\n * @param sliceName - Redux slice 名称\n * @param actions - Redux slice actions\n * @param initialValue - 初始状态值\n * @param options - 状态实例配置选项\n */\n constructor(\n store: ReduxStore,\n sliceName: string,\n actions: ReduxSlice['actions'],\n initialValue: T,\n options: {\n id?: StateInstanceId;\n scope?: StateScope;\n devMode?: boolean;\n middleware?: Array<(value: unknown, previous: unknown) => unknown>;\n } = {},\n ) {\n this.store = store;\n this.sliceName = sliceName;\n this.actions = actions;\n this.id = options.id ?? Symbol('ReduxStateInstance');\n this.scope = options.scope;\n this.devMode = options.devMode ?? false;\n this.middleware = options.middleware ?? [];\n this.previousValue = initialValue;\n\n // 订阅 Redux store 变化\n this.unsubscribeStore = this.store.subscribe(() => {\n this.notifySubscribers();\n });\n\n if (this.devMode) {\n console.debug(`[ReduxStateInstance] Created: ${String(this.id)}`, {\n scope: this.scope,\n sliceName: this.sliceName,\n initialValue,\n });\n }\n }\n\n /**\n * 获取当前状态值\n */\n get(): T {\n if (this.destroyed) {\n throw new Error(`ReduxStateInstance ${String(this.id)} has been destroyed`);\n }\n\n const state = this.store.getState();\n return (state[this.sliceName] ?? this.previousValue) as T;\n }\n\n /**\n * 更新状态值\n */\n set(valueOrUpdater: T | StateUpdater<T>): void {\n if (this.destroyed) {\n throw new Error(`ReduxStateInstance ${String(this.id)} has been destroyed`);\n }\n\n const currentValue = this.get();\n let newValue: T;\n\n // 处理函数式更新\n if (typeof valueOrUpdater === 'function') {\n newValue = (valueOrUpdater as StateUpdater<T>)(currentValue);\n } else {\n newValue = valueOrUpdater;\n }\n\n // 应用中间件\n let processedValue = newValue;\n for (const middleware of this.middleware) {\n processedValue = middleware(processedValue, currentValue) as T;\n }\n\n // 如果值没有变化,跳过更新\n if (processedValue === currentValue) {\n return;\n }\n\n // 保存之前的值\n this.previousValue = currentValue;\n\n // 通过 Redux action 更新状态\n const action = this.actions.setValue(processedValue);\n this.store.dispatch(action);\n\n if (this.devMode) {\n console.debug(`[ReduxStateInstance] Updated: ${String(this.id)}`, {\n previous: currentValue,\n current: processedValue,\n action,\n });\n }\n }\n\n /**\n * 订阅状态变化\n */\n subscribe(subscriber: StateSubscriber<T>): Unsubscribe {\n if (this.destroyed) {\n throw new Error(`ReduxStateInstance ${String(this.id)} has been destroyed`);\n }\n\n this.subscribers.add(subscriber);\n\n if (this.devMode) {\n console.debug(`[ReduxStateInstance] Subscribed: ${String(this.id)}`, {\n subscriberCount: this.subscribers.size,\n });\n }\n\n // 返回取消订阅函数\n return () => {\n this.subscribers.delete(subscriber);\n if (this.devMode) {\n console.debug(`[ReduxStateInstance] Unsubscribed: ${String(this.id)}`, {\n subscriberCount: this.subscribers.size,\n });\n }\n };\n }\n\n /**\n * 获取状态实例标识符\n */\n getId(): StateInstanceId {\n return this.id;\n }\n\n /**\n * 获取状态作用域\n */\n getScope(): StateScope | undefined {\n return this.scope;\n }\n\n /**\n * 销毁状态实例\n */\n destroy(): void {\n if (this.destroyed) {\n return;\n }\n\n this.destroyed = true;\n\n // 取消 Redux store 订阅\n if (this.unsubscribeStore) {\n this.unsubscribeStore();\n this.unsubscribeStore = undefined;\n }\n\n // 清理订阅者\n this.subscribers.clear();\n\n if (this.devMode) {\n console.debug(`[ReduxStateInstance] Destroyed: ${String(this.id)}`);\n }\n }\n\n /**\n * 检查状态实例是否已销毁\n */\n isDestroyed(): boolean {\n return this.destroyed;\n }\n\n /**\n * 通知所有订阅者\n */\n private notifySubscribers(): void {\n if (this.destroyed) {\n return;\n }\n\n try {\n const currentValue = this.get();\n\n // 如果值没有变化,跳过通知\n if (currentValue === this.previousValue) {\n return;\n }\n\n const previousValue = this.previousValue;\n this.previousValue = currentValue;\n\n // 使用数组副本避免在迭代过程中修改集合\n const subscribers = Array.from(this.subscribers);\n\n for (const subscriber of subscribers) {\n try {\n subscriber(currentValue, previousValue);\n } catch (error) {\n console.error(`[ReduxStateInstance] Error in subscriber for ${String(this.id)}:`, error);\n }\n }\n } catch (error) {\n console.error(`[ReduxStateInstance] Error getting state for ${String(this.id)}:`, error);\n }\n }\n}\n\n/**\n * 动态 Reducer 管理器\n * \n * 用于管理动态添加和移除的 Redux reducer\n */\nclass DynamicReducerManager {\n /**\n * 当前 reducer 映射\n */\n private reducers: Map<string, ReduxReducer> = new Map();\n\n /**\n * 根 reducer 函数\n */\n private rootReducer: ReduxReducer;\n\n /**\n * 构造函数\n */\n constructor() {\n this.rootReducer = (state: unknown, action: unknown) => {\n const stateRecord = (state as Record<string, unknown>) ?? {};\n const newState: Record<string, unknown> = { ...stateRecord };\n\n // 处理每个 reducer\n for (const [key, reducer] of this.reducers.entries()) {\n newState[key] = reducer(stateRecord[key], action);\n }\n\n return newState;\n };\n }\n\n /**\n * 添加 reducer\n */\n addReducer(key: string, reducer: ReduxReducer): void {\n this.reducers.set(key, reducer);\n }\n\n /**\n * 移除 reducer\n */\n removeReducer(key: string): void {\n this.reducers.delete(key);\n }\n\n /**\n * 获取根 reducer\n */\n getRootReducer(): ReduxReducer {\n return this.rootReducer;\n }\n\n /**\n * 检查 reducer 是否存在\n */\n hasReducer(key: string): boolean {\n return this.reducers.has(key);\n }\n}\n\n/**\n * Redux Toolkit 适配器配置选项\n */\nexport interface ReduxAdapterOptions {\n /**\n * 是否启用开发模式\n */\n devMode?: boolean;\n\n /**\n * 自定义 Redux store(可选)\n * 如果不提供,将创建一个新的 store\n */\n store?: ReduxStore;\n\n /**\n * Redux store 配置选项(仅在创建新 store 时使用)\n */\n storeConfig?: {\n /**\n * 是否启用 Redux DevTools\n */\n devTools?: boolean;\n\n /**\n * Redux 中间件数组\n */\n middleware?: unknown[];\n };\n}\n\n/**\n * Redux Toolkit 适配器\n * \n * 将 Redux Toolkit store 映射到 Secra 状态抽象\n */\nexport class ReduxAdapter implements IStateAdapter {\n /**\n * 适配器名称\n */\n private readonly name = 'ReduxAdapter';\n\n /**\n * 是否已销毁\n */\n private destroyed = false;\n\n /**\n * 创建的状态实例集合\n */\n private readonly instances: Set<IStateInstance> = new Set();\n\n /**\n * Redux store 实例\n */\n private store: ReduxStore | null = null;\n\n /**\n * Redux slice 名称计数器(用于生成唯一的 slice 名称)\n */\n private sliceCounter = 0;\n\n /**\n * Redux slice 名称到状态实例的映射\n */\n private readonly sliceToInstance: Map<string, IStateInstance> = new Map();\n\n /**\n * 动态 reducer 管理器\n */\n private readonly reducerManager: DynamicReducerManager;\n\n /**\n * 是否启用开发模式\n */\n private readonly devMode: boolean;\n\n /**\n * 构造函数\n * \n * @param options - 适配器配置选项\n */\n constructor(options?: ReduxAdapterOptions) {\n this.devMode = options?.devMode ?? false;\n this.reducerManager = new DynamicReducerManager();\n this.store = options?.store ?? null;\n\n // 检查 Redux 是否可用\n this.checkReduxAvailable();\n }\n\n /**\n * 检查 Redux 是否可用\n */\n private checkReduxAvailable(): void {\n // 这里不抛出错误,允许延迟加载\n // 实际使用时会在 createInstance 时检查\n }\n\n /**\n * 获取或创建 Redux store\n */\n private getOrCreateStore(): ReduxStore {\n if (this.store) {\n return this.store;\n }\n\n // 尝试创建 Redux store\n try {\n // 动态导入 Redux Toolkit\n // 注意:这里使用类型断言,实际运行时需要确保 Redux 已安装\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const { configureStore } = require('@reduxjs/toolkit') as {\n configureStore: (config: {\n reducer: ReduxReducer;\n devTools?: boolean;\n middleware?: unknown[];\n }) => ReduxStore;\n };\n\n this.store = configureStore({\n reducer: this.reducerManager.getRootReducer(),\n devTools: this.devMode,\n middleware: undefined, // 使用默认中间件\n });\n\n if (this.devMode) {\n console.debug('[ReduxAdapter] Redux store created');\n }\n\n return this.store;\n } catch (error) {\n throw new Error(\n 'ReduxAdapter requires @reduxjs/toolkit to be installed. ' +\n 'Please install it: npm install @reduxjs/toolkit\\n' +\n `Original error: ${error instanceof Error ? error.message : String(error)}`\n );\n }\n }\n\n /**\n * 创建 Redux slice\n */\n private createSlice<T>(sliceName: string, initialValue: T): ReduxSlice {\n try {\n // 动态导入 Redux Toolkit\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const { createSlice } = require('@reduxjs/toolkit') as {\n createSlice: (options: ReduxSliceOptions) => ReduxSlice;\n };\n\n const slice = createSlice({\n name: sliceName,\n initialState: initialValue,\n reducers: {\n setValue: (_state: unknown, action: { payload?: unknown }) => {\n return action.payload ?? initialValue;\n },\n },\n }) as ReduxSlice;\n\n return slice;\n } catch (error) {\n throw new Error(\n 'ReduxAdapter requires @reduxjs/toolkit to be installed. ' +\n 'Please install it: npm install @reduxjs/toolkit\\n' +\n `Original error: ${error instanceof Error ? error.message : String(error)}`\n );\n }\n }\n\n /**\n * 创建状态实例\n */\n createInstance<T = unknown>(\n initialValue: T,\n options?: StateInstanceOptions,\n ): IStateInstance<T> {\n if (this.destroyed) {\n throw new Error('ReduxAdapter has been destroyed');\n }\n\n // 获取或创建 Redux store\n const store = this.getOrCreateStore();\n\n // 生成唯一的 slice 名称\n const sliceName = options?.id\n ? `secra_${String(options.id)}`\n : `secra_slice_${++this.sliceCounter}`;\n\n // 创建 Redux slice\n const slice = this.createSlice<T>(sliceName, initialValue);\n\n // 将 slice reducer 添加到动态 reducer 管理器\n if (!this.reducerManager.hasReducer(sliceName)) {\n this.reducerManager.addReducer(sliceName, slice.reducer);\n \n // 更新 store 的 reducer(使用 replaceReducer)\n store.replaceReducer(this.reducerManager.getRootReducer());\n }\n\n // 创建状态实例\n const instance = new ReduxStateInstance<T>(\n store,\n sliceName,\n slice.actions,\n initialValue,\n {\n id: options?.id,\n scope: options?.scope,\n devMode: options?.devMode ?? this.devMode,\n middleware: options?.middleware,\n }\n );\n\n this.instances.add(instance);\n this.sliceToInstance.set(sliceName, instance);\n\n if (this.devMode) {\n console.debug(`[ReduxAdapter] Created instance: ${String(instance.getId())}`, {\n sliceName,\n scope: options?.scope,\n });\n }\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 // 从 reducer 管理器中移除所有 reducer\n for (const sliceName of this.sliceToInstance.keys()) {\n this.reducerManager.removeReducer(sliceName);\n }\n\n // 更新 store 的 reducer\n if (this.store) {\n this.store.replaceReducer(this.reducerManager.getRootReducer());\n }\n\n this.instances.clear();\n this.sliceToInstance.clear();\n this.store = null;\n this.destroyed = true;\n\n if (this.devMode) {\n console.debug('[ReduxAdapter] Destroyed');\n }\n }\n\n /**\n * 获取适配器名称\n */\n getName(): string {\n return this.name;\n }\n}\n"],"names":["ReduxAdapter","ReduxStateInstance","get","destroyed","Error","String","id","state","store","getState","sliceName","previousValue","set","valueOrUpdater","currentValue","newValue","processedValue","middleware","action","actions","setValue","dispatch","devMode","console","debug","previous","current","subscribe","subscriber","subscribers","add","subscriberCount","size","delete","getId","getScope","scope","destroy","unsubscribeStore","undefined","clear","isDestroyed","notifySubscribers","Array","from","error","initialValue","options","Set","Symbol","DynamicReducerManager","addReducer","key","reducer","reducers","removeReducer","getRootReducer","rootReducer","hasReducer","has","Map","stateRecord","newState","entries","checkReduxAvailable","getOrCreateStore","configureStore","require","reducerManager","devTools","message","createSlice","slice","name","initialState","_state","payload","createInstance","sliceCounter","replaceReducer","instance","instances","sliceToInstance","keys","getName"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/state/adapters/ReduxAdapter.ts"],"sourcesContent":["/**\n * Redux Toolkit 适配器\n * \n * 将 Redux Toolkit store 映射到 Secra 状态抽象\n * \n * 使用说明:\n * 1. 需要安装 @reduxjs/toolkit 作为 peerDependency\n * 2. 每个状态实例对应一个 Redux slice\n * 3. 支持 Redux DevTools 集成(如果可用)\n * 4. 支持中间件和开发模式\n * \n * @example\n * ```typescript\n * import { ReduxAdapter } from '@vlian/framework/state';\n * \n * const adapter = new ReduxAdapter({ devMode: true });\n * const state = adapter.createInstance(0, { id: 'counter' });\n * \n * state.set(1);\n * console.log(state.get()); // 1\n * ```\n */\n\nimport type {\n IStateAdapter,\n IStateInstance,\n StateInstanceId,\n StateInstanceOptions,\n StateScope,\n StateSubscriber,\n StateUpdater,\n Unsubscribe,\n} from '../types';\n\n/**\n * Redux 相关类型定义(如果 Redux 不可用,这些类型将用于类型检查)\n */\ntype ReduxStore = {\n dispatch: (action: unknown) => unknown;\n getState: () => Record<string, unknown>;\n subscribe: (listener: () => void) => () => void;\n replaceReducer: (nextReducer: (state: unknown, action: unknown) => unknown) => void;\n};\n\ntype ReduxReducer = (state: unknown, action: unknown) => unknown;\n\ntype ReduxSlice = {\n name: string;\n reducer: (state: unknown, action: unknown) => unknown;\n actions: Record<string, (payload?: unknown) => { type: string; payload?: unknown }>;\n};\n\ntype ReduxSliceOptions = {\n name: string;\n initialState: unknown;\n reducers?: Record<string, (state: unknown, action: { payload?: unknown }) => unknown>;\n};\n\n/**\n * Redux 状态实例实现\n * \n * 将 Redux slice 映射到 IStateInstance 接口\n * \n * @template T - 状态值类型\n */\nclass ReduxStateInstance<T = unknown> implements IStateInstance<T> {\n /**\n * 状态实例标识符\n */\n private readonly id: StateInstanceId;\n\n /**\n * 状态作用域\n */\n private readonly scope?: StateScope;\n\n /**\n * Redux store 引用\n */\n private readonly store: ReduxStore;\n\n /**\n * Redux slice 名称(在 store 中的路径)\n */\n private readonly sliceName: string;\n\n /**\n * Redux slice actions\n */\n private readonly actions: ReduxSlice['actions'];\n\n /**\n * 订阅者集合\n */\n private readonly subscribers: Set<StateSubscriber<T>> = new Set();\n\n /**\n * Redux store 订阅取消函数\n */\n private unsubscribeStore?: () => void;\n\n /**\n * 是否已销毁\n */\n private destroyed = false;\n\n /**\n * 开发模式标志\n */\n private readonly devMode: boolean;\n\n /**\n * 中间件函数数组\n */\n private readonly middleware: Array<(value: unknown, previous: unknown) => unknown>;\n\n /**\n * 上一次的状态值(用于订阅通知)\n */\n private previousValue: T;\n\n /**\n * 构造函数\n * \n * @param store - Redux store 实例\n * @param sliceName - Redux slice 名称\n * @param actions - Redux slice actions\n * @param initialValue - 初始状态值\n * @param options - 状态实例配置选项\n */\n constructor(\n store: ReduxStore,\n sliceName: string,\n actions: ReduxSlice['actions'],\n initialValue: T,\n options: {\n id?: StateInstanceId;\n scope?: StateScope;\n devMode?: boolean;\n middleware?: Array<(value: unknown, previous: unknown) => unknown>;\n } = {},\n ) {\n this.store = store;\n this.sliceName = sliceName;\n this.actions = actions;\n this.id = options.id ?? Symbol('ReduxStateInstance');\n this.scope = options.scope;\n this.devMode = options.devMode ?? false;\n this.middleware = options.middleware ?? [];\n this.previousValue = initialValue;\n\n // 订阅 Redux store 变化\n this.unsubscribeStore = this.store.subscribe(() => {\n this.notifySubscribers();\n });\n\n if (this.devMode) {\n console.debug(`[ReduxStateInstance] Created: ${String(this.id)}`, {\n scope: this.scope,\n sliceName: this.sliceName,\n initialValue,\n });\n }\n }\n\n /**\n * 获取当前状态值\n */\n get(): T {\n if (this.destroyed) {\n throw new Error(`ReduxStateInstance ${String(this.id)} has been destroyed`);\n }\n\n const state = this.store.getState();\n return (state[this.sliceName] ?? this.previousValue) as T;\n }\n\n /**\n * 更新状态值\n */\n set(valueOrUpdater: T | StateUpdater<T>): void {\n if (this.destroyed) {\n throw new Error(`ReduxStateInstance ${String(this.id)} has been destroyed`);\n }\n\n const currentValue = this.get();\n let newValue: T;\n\n // 处理函数式更新\n if (typeof valueOrUpdater === 'function') {\n newValue = (valueOrUpdater as StateUpdater<T>)(currentValue);\n } else {\n newValue = valueOrUpdater;\n }\n\n // 应用中间件\n let processedValue = newValue;\n for (const middleware of this.middleware) {\n processedValue = middleware(processedValue, currentValue) as T;\n }\n\n // 如果值没有变化,跳过更新\n if (processedValue === currentValue) {\n return;\n }\n\n // 保存之前的值\n this.previousValue = currentValue;\n\n // 通过 Redux action 更新状态\n const action = this.actions.setValue(processedValue);\n this.store.dispatch(action);\n\n if (this.devMode) {\n console.debug(`[ReduxStateInstance] Updated: ${String(this.id)}`, {\n previous: currentValue,\n current: processedValue,\n action,\n });\n }\n }\n\n /**\n * 订阅状态变化\n */\n subscribe(subscriber: StateSubscriber<T>): Unsubscribe {\n if (this.destroyed) {\n throw new Error(`ReduxStateInstance ${String(this.id)} has been destroyed`);\n }\n\n this.subscribers.add(subscriber);\n\n if (this.devMode) {\n console.debug(`[ReduxStateInstance] Subscribed: ${String(this.id)}`, {\n subscriberCount: this.subscribers.size,\n });\n }\n\n // 返回取消订阅函数\n return () => {\n this.subscribers.delete(subscriber);\n if (this.devMode) {\n console.debug(`[ReduxStateInstance] Unsubscribed: ${String(this.id)}`, {\n subscriberCount: this.subscribers.size,\n });\n }\n };\n }\n\n /**\n * 获取状态实例标识符\n */\n getId(): StateInstanceId {\n return this.id;\n }\n\n /**\n * 获取状态作用域\n */\n getScope(): StateScope | undefined {\n return this.scope;\n }\n\n /**\n * 销毁状态实例\n */\n destroy(): void {\n if (this.destroyed) {\n return;\n }\n\n this.destroyed = true;\n\n // 取消 Redux store 订阅\n if (this.unsubscribeStore) {\n this.unsubscribeStore();\n this.unsubscribeStore = undefined;\n }\n\n // 清理订阅者\n this.subscribers.clear();\n\n if (this.devMode) {\n console.debug(`[ReduxStateInstance] Destroyed: ${String(this.id)}`);\n }\n }\n\n /**\n * 检查状态实例是否已销毁\n */\n isDestroyed(): boolean {\n return this.destroyed;\n }\n\n /**\n * 通知所有订阅者\n */\n private notifySubscribers(): void {\n if (this.destroyed) {\n return;\n }\n\n try {\n const currentValue = this.get();\n\n // 如果值没有变化,跳过通知\n if (currentValue === this.previousValue) {\n return;\n }\n\n const previousValue = this.previousValue;\n this.previousValue = currentValue;\n\n // 使用数组副本避免在迭代过程中修改集合\n const subscribers = Array.from(this.subscribers);\n\n for (const subscriber of subscribers) {\n try {\n subscriber(currentValue, previousValue);\n } catch (error) {\n console.error(`[ReduxStateInstance] Error in subscriber for ${String(this.id)}:`, error);\n }\n }\n } catch (error) {\n console.error(`[ReduxStateInstance] Error getting state for ${String(this.id)}:`, error);\n }\n }\n}\n\n/**\n * 动态 Reducer 管理器\n * \n * 用于管理动态添加和移除的 Redux reducer\n */\nclass DynamicReducerManager {\n /**\n * 当前 reducer 映射\n */\n private reducers: Map<string, ReduxReducer> = new Map();\n\n /**\n * 根 reducer 函数\n */\n private rootReducer: ReduxReducer;\n\n /**\n * 构造函数\n */\n constructor() {\n this.rootReducer = (state: unknown, action: unknown) => {\n const stateRecord = (state as Record<string, unknown>) ?? {};\n const newState: Record<string, unknown> = { ...stateRecord };\n\n // 处理每个 reducer\n for (const [key, reducer] of this.reducers.entries()) {\n newState[key] = reducer(stateRecord[key], action);\n }\n\n return newState;\n };\n }\n\n /**\n * 添加 reducer\n */\n addReducer(key: string, reducer: ReduxReducer): void {\n this.reducers.set(key, reducer);\n }\n\n /**\n * 移除 reducer\n */\n removeReducer(key: string): void {\n this.reducers.delete(key);\n }\n\n /**\n * 获取根 reducer\n */\n getRootReducer(): ReduxReducer {\n return this.rootReducer;\n }\n\n /**\n * 检查 reducer 是否存在\n */\n hasReducer(key: string): boolean {\n return this.reducers.has(key);\n }\n}\n\n/**\n * Redux Toolkit 适配器配置选项\n */\nexport interface ReduxAdapterOptions {\n /**\n * 是否启用开发模式\n */\n devMode?: boolean;\n\n /**\n * 自定义 Redux store(可选)\n * 如果不提供,将创建一个新的 store\n */\n store?: ReduxStore;\n\n /**\n * Redux store 配置选项(仅在创建新 store 时使用)\n */\n storeConfig?: {\n /**\n * 是否启用 Redux DevTools\n */\n devTools?: boolean;\n\n /**\n * Redux 中间件数组\n */\n middleware?: unknown[];\n };\n}\n\n/**\n * Redux Toolkit 适配器\n * \n * 将 Redux Toolkit store 映射到 Secra 状态抽象\n */\nexport class ReduxAdapter implements IStateAdapter {\n /**\n * 适配器名称\n */\n private readonly name = 'ReduxAdapter';\n\n /**\n * 是否已销毁\n */\n private destroyed = false;\n\n /**\n * 创建的状态实例集合\n */\n private readonly instances: Set<IStateInstance> = new Set();\n\n /**\n * Redux store 实例\n */\n private store: ReduxStore | null = null;\n\n /**\n * Redux slice 名称计数器(用于生成唯一的 slice 名称)\n */\n private sliceCounter = 0;\n\n /**\n * Redux slice 名称到状态实例的映射\n */\n private readonly sliceToInstance: Map<string, IStateInstance> = new Map();\n\n /**\n * 动态 reducer 管理器\n */\n private readonly reducerManager: DynamicReducerManager;\n\n /**\n * 是否启用开发模式\n */\n private readonly devMode: boolean;\n\n /**\n * 构造函数\n * \n * @param options - 适配器配置选项\n */\n constructor(options?: ReduxAdapterOptions) {\n this.devMode = options?.devMode ?? false;\n this.reducerManager = new DynamicReducerManager();\n this.store = options?.store ?? null;\n\n // 检查 Redux 是否可用\n this.checkReduxAvailable();\n }\n\n /**\n * 检查 Redux 是否可用\n */\n private checkReduxAvailable(): void {\n // 这里不抛出错误,允许延迟加载\n // 实际使用时会在 createInstance 时检查\n }\n\n /**\n * 获取或创建 Redux store\n */\n private getOrCreateStore(): ReduxStore {\n if (this.store) {\n return this.store;\n }\n\n // 尝试创建 Redux store\n try {\n // 动态导入 Redux Toolkit\n // 注意:这里使用类型断言,实际运行时需要确保 Redux 已安装\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const { configureStore } = require('@reduxjs/toolkit') as {\n configureStore: (config: {\n reducer: ReduxReducer;\n devTools?: boolean;\n middleware?: unknown[];\n }) => ReduxStore;\n };\n\n this.store = configureStore({\n reducer: this.reducerManager.getRootReducer(),\n devTools: this.devMode,\n middleware: undefined, // 使用默认中间件\n });\n\n if (this.devMode) {\n console.debug('[ReduxAdapter] Redux store created');\n }\n\n return this.store;\n } catch (error) {\n throw new Error(\n 'ReduxAdapter requires @reduxjs/toolkit to be installed. ' +\n 'Please install it: npm install @reduxjs/toolkit\\n' +\n `Original error: ${error instanceof Error ? error.message : String(error)}`\n );\n }\n }\n\n /**\n * 创建 Redux slice\n */\n private createSlice<T>(sliceName: string, initialValue: T): ReduxSlice {\n try {\n // 动态导入 Redux Toolkit\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const { createSlice } = require('@reduxjs/toolkit') as {\n createSlice: (options: ReduxSliceOptions) => ReduxSlice;\n };\n\n const slice = createSlice({\n name: sliceName,\n initialState: initialValue,\n reducers: {\n setValue: (_state: unknown, action: { payload?: unknown }) => {\n return action.payload ?? initialValue;\n },\n },\n }) as ReduxSlice;\n\n return slice;\n } catch (error) {\n throw new Error(\n 'ReduxAdapter requires @reduxjs/toolkit to be installed. ' +\n 'Please install it: npm install @reduxjs/toolkit\\n' +\n `Original error: ${error instanceof Error ? error.message : String(error)}`\n );\n }\n }\n\n /**\n * 创建状态实例\n */\n createInstance<T = unknown>(\n initialValue: T,\n options?: StateInstanceOptions,\n ): IStateInstance<T> {\n if (this.destroyed) {\n throw new Error('ReduxAdapter has been destroyed');\n }\n\n // 获取或创建 Redux store\n const store = this.getOrCreateStore();\n\n // 生成唯一的 slice 名称\n const sliceName = options?.id\n ? `secra_${String(options.id)}`\n : `secra_slice_${++this.sliceCounter}`;\n\n // 创建 Redux slice\n const slice = this.createSlice<T>(sliceName, initialValue);\n\n // 将 slice reducer 添加到动态 reducer 管理器\n if (!this.reducerManager.hasReducer(sliceName)) {\n this.reducerManager.addReducer(sliceName, slice.reducer);\n \n // 更新 store 的 reducer(使用 replaceReducer)\n store.replaceReducer(this.reducerManager.getRootReducer());\n }\n\n // 创建状态实例\n const instance = new ReduxStateInstance<T>(\n store,\n sliceName,\n slice.actions,\n initialValue,\n {\n id: options?.id,\n scope: options?.scope,\n devMode: options?.devMode ?? this.devMode,\n middleware: options?.middleware,\n }\n );\n\n this.instances.add(instance);\n this.sliceToInstance.set(sliceName, instance);\n\n if (this.devMode) {\n console.debug(`[ReduxAdapter] Created instance: ${String(instance.getId())}`, {\n sliceName,\n scope: options?.scope,\n });\n }\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 // 从 reducer 管理器中移除所有 reducer\n for (const sliceName of this.sliceToInstance.keys()) {\n this.reducerManager.removeReducer(sliceName);\n }\n\n // 更新 store 的 reducer\n if (this.store) {\n this.store.replaceReducer(this.reducerManager.getRootReducer());\n }\n\n this.instances.clear();\n this.sliceToInstance.clear();\n this.store = null;\n this.destroyed = true;\n\n if (this.devMode) {\n console.debug('[ReduxAdapter] Destroyed');\n }\n }\n\n /**\n * 获取适配器名称\n */\n getName(): string {\n return this.name;\n }\n}\n"],"names":["ReduxStateInstance","get","destroyed","Error","String","id","state","store","getState","sliceName","previousValue","set","valueOrUpdater","currentValue","newValue","processedValue","middleware","action","actions","setValue","dispatch","devMode","console","debug","previous","current","subscribe","subscriber","subscribers","add","subscriberCount","size","delete","getId","getScope","scope","destroy","unsubscribeStore","undefined","clear","isDestroyed","notifySubscribers","Array","from","error","initialValue","options","Set","Symbol","DynamicReducerManager","addReducer","key","reducer","reducers","removeReducer","getRootReducer","rootReducer","hasReducer","has","Map","stateRecord","newState","entries","ReduxAdapter","checkReduxAvailable","getOrCreateStore","configureStore","require","reducerManager","devTools","message","createSlice","slice","name","initialState","_state","payload","createInstance","sliceCounter","replaceReducer","instance","instances","sliceToInstance","keys","getName"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/state/adapters/ZustandAdapter.ts"],"sourcesContent":["/**\n * Zustand 适配器(占位实现)\n * \n * 这是一个适配器接口示例,展示如何将 Zustand 集成到 Secra 状态管理器\n * \n * ⚠️ 注意:这是一个占位实现,实际使用时需要安装 zustand 依赖\n */\n\nimport type {\n IStateAdapter,\n IStateInstance,\n StateInstanceOptions,\n} from '../types';\n\n/**\n * Zustand 适配器\n * \n * 将 Zustand store 映射到 Secra 状态抽象\n * \n * ⚠️ 这是一个占位实现,实际使用时需要:\n * 1. 安装 zustand\n * 2. 实现完整的 Zustand store 集成\n * 3. 将 Zustand store 的方法映射到 IStateInstance 接口\n */\nexport class ZustandAdapter implements IStateAdapter {\n /**\n * 适配器名称\n */\n private readonly name = 'ZustandAdapter';\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 * ⚠️ 占位实现:实际使用时需要创建 Zustand store 并映射到 IStateInstance\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 throw new Error(\n 'ZustandAdapter is a placeholder implementation. ' +\n 'To use Zustand, you need to:\\n' +\n '1. Install zustand\\n' +\n '2. Implement a complete Zustand store integration\\n' +\n '3. Map Zustand store methods to IStateInstance interface\\n' +\n 'See docs/state-manager.md for implementation guide.'\n );\n }\n\n /**\n * 销毁适配器\n */\n destroy(): void {\n if (this.destroyed) {\n return;\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":["ZustandAdapter","createInstance","_initialValue","_options","destroyed","Error","destroy","instance","instances","clear","getName","name","Set"],"mappings":"AAAA;;;;;;CAMC;;;;+BAkBYA;;;eAAAA;;;;;;;;;;;;;;;;AAAN,IAAA,AAAMA,iBAAN,MAAMA;IAgBX;;;;GAIC,GACDC,eACEC,aAAgB,EAChBC,QAA+B,EACZ;QACnB,IAAI,IAAI,CAACC,SAAS,EAAE;YAClB,MAAM,IAAIC,MAAM;QAClB;QAEA,MAAM,IAAIA,MACR,qDACA,mCACA,yBACA,wDACA,+DACA;IAEJ;IAEA;;GAEC,GACDC,UAAgB;QACd,IAAI,IAAI,CAACF,SAAS,EAAE;YAClB;QACF;QAEA,KAAK,MAAMG,YAAY,IAAI,CAACC,SAAS,CAAE;YACrCD,SAASD,OAAO;QAClB;QAEA,IAAI,CAACE,SAAS,CAACC,KAAK;QACpB,IAAI,CAACL,SAAS,GAAG;IACnB;IAEA;;GAEC,GACDM,UAAkB;QAChB,OAAO,IAAI,CAACC,IAAI;IAClB;;QA3DA;;GAEC,GACD,uBAAiBA,QAAO;QAExB;;GAEC,GACD,uBAAQP,aAAY;QAEpB;;GAEC,GACD,uBAAiBI,aAAiC,IAAII;;AA+CxD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/state/adapters/ZustandAdapter.ts"],"sourcesContent":["/**\n * Zustand 适配器(占位实现)\n * \n * 这是一个适配器接口示例,展示如何将 Zustand 集成到 Secra 状态管理器\n * \n * ⚠️ 注意:这是一个占位实现,实际使用时需要安装 zustand 依赖\n */\n\nimport type {\n IStateAdapter,\n IStateInstance,\n StateInstanceOptions,\n} from '../types';\n\n/**\n * Zustand 适配器\n * \n * 将 Zustand store 映射到 Secra 状态抽象\n * \n * ⚠️ 这是一个占位实现,实际使用时需要:\n * 1. 安装 zustand\n * 2. 实现完整的 Zustand store 集成\n * 3. 将 Zustand store 的方法映射到 IStateInstance 接口\n */\nexport class ZustandAdapter implements IStateAdapter {\n /**\n * 适配器名称\n */\n private readonly name = 'ZustandAdapter';\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 * ⚠️ 占位实现:实际使用时需要创建 Zustand store 并映射到 IStateInstance\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 throw new Error(\n 'ZustandAdapter is a placeholder implementation. ' +\n 'To use Zustand, you need to:\\n' +\n '1. Install zustand\\n' +\n '2. Implement a complete Zustand store integration\\n' +\n '3. Map Zustand store methods to IStateInstance interface\\n' +\n 'See docs/state-manager.md for implementation guide.'\n );\n }\n\n /**\n * 销毁适配器\n */\n destroy(): void {\n if (this.destroyed) {\n return;\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":["ZustandAdapter","createInstance","_initialValue","_options","destroyed","Error","destroy","instance","instances","clear","getName","name","Set"],"mappings":"AAAA;;;;;;CAMC;;;;;;;;;;;;;AAQD;;;;;;;;;CASC,GACD,OAAO,MAAMA;IAgBX;;;;GAIC,GACDC,eACEC,aAAgB,EAChBC,QAA+B,EACZ;QACnB,IAAI,IAAI,CAACC,SAAS,EAAE;YAClB,MAAM,IAAIC,MAAM;QAClB;QAEA,MAAM,IAAIA,MACR,qDACA,mCACA,yBACA,wDACA,+DACA;IAEJ;IAEA;;GAEC,GACDC,UAAgB;QACd,IAAI,IAAI,CAACF,SAAS,EAAE;YAClB;QACF;QAEA,KAAK,MAAMG,YAAY,IAAI,CAACC,SAAS,CAAE;YACrCD,SAASD,OAAO;QAClB;QAEA,IAAI,CAACE,SAAS,CAACC,KAAK;QACpB,IAAI,CAACL,SAAS,GAAG;IACnB;IAEA;;GAEC,GACDM,UAAkB;QAChB,OAAO,IAAI,CAACC,IAAI;IAClB;;QA3DA;;GAEC,GACD,uBAAiBA,QAAO;QAExB;;GAEC,GACD,uBAAQP,aAAY;QAEpB;;GAEC,GACD,uBAAiBI,aAAiC,IAAII;;AA+CxD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/state/adapters/index.ts"],"sourcesContent":["/**\n * 状态适配器模块导出\n */\n\nexport { DefaultAdapter } from './DefaultAdapter';\nexport { AdapterFactory } from './AdapterFactory';\nexport { ReduxAdapter, type ReduxAdapterOptions } from './ReduxAdapter';\nexport { ZustandAdapter } from './ZustandAdapter';\nexport * from './types';\n"],"names":["AdapterFactory","DefaultAdapter","ReduxAdapter","ZustandAdapter"],"mappings":"AAAA;;CAEC;;;;;;;;;;;QAGQA;eAAAA,8BAAc;;QADdC;eAAAA,8BAAc;;QAEdC;eAAAA,0BAAY;;QACZC;eAAAA,8BAAc;;;gCAHQ;gCACA;8BACwB;gCACxB;qBACjB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/state/adapters/index.ts"],"sourcesContent":["/**\n * 状态适配器模块导出\n */\n\nexport { DefaultAdapter } from './DefaultAdapter';\nexport { AdapterFactory } from './AdapterFactory';\nexport { ReduxAdapter, type ReduxAdapterOptions } from './ReduxAdapter';\nexport { ZustandAdapter } from './ZustandAdapter';\nexport * from './types';\n"],"names":["DefaultAdapter","AdapterFactory","ReduxAdapter","ZustandAdapter"],"mappings":"AAAA;;CAEC,GAED,SAASA,cAAc,QAAQ,mBAAmB;AAClD,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,YAAY,QAAkC,iBAAiB;AACxE,SAASC,cAAc,QAAQ,mBAAmB;AAClD,cAAc,UAAU"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/state/adapters/types.ts"],"sourcesContent":["/**\n * 状态适配器类型定义\n */\n\nexport * from '../types';\n"],"names":[],"mappings":"AAAA;;CAEC;;;;qBAEa"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/state/adapters/types.ts"],"sourcesContent":["/**\n * 状态适配器类型定义\n */\n\nexport * from '../types';\n"],"names":[],"mappings":"AAAA;;CAEC,GAED,cAAc,WAAW"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/state/core/DerivedStateInstance.ts"],"sourcesContent":["/**\n * 派生状态实例实现\n */\n\nimport type {\n IDerivedStateInstance,\n IStateInstance,\n DerivedStateConfig,\n StateInstanceId,\n StateScope,\n StateSubscriber,\n StateUpdater,\n Unsubscribe,\n} from '../types';\n\n/**\n * 派生状态实例\n * \n * 派生状态不直接存储值,而是基于依赖状态自动计算\n * \n * @template T - 派生状态值类型\n * @template D - 依赖状态实例数组类型\n */\nexport class DerivedStateInstance<T, D extends readonly IStateInstance[]>\n implements IDerivedStateInstance<T> {\n /**\n * 状态实例标识符\n */\n private readonly id: StateInstanceId;\n\n /**\n * 状态作用域\n */\n private readonly scope?: StateScope;\n\n /**\n * 派生状态配置\n */\n private readonly config: DerivedStateConfig<T, D>;\n\n /**\n * 当前派生值\n */\n private value!: T;\n\n /**\n * 订阅者集合\n */\n private readonly subscribers: Set<StateSubscriber<T>> = new Set();\n\n /**\n * 依赖状态的取消订阅函数数组\n */\n private readonly dependencyUnsubscribes: Unsubscribe[] = [];\n\n /**\n * 是否已销毁\n */\n private destroyed = false;\n\n /**\n * 是否正在重新计算\n */\n private recomputing = false;\n\n /**\n * 构造函数\n * \n * @param config - 派生状态配置\n * @param options - 状态实例配置选项\n */\n constructor(\n config: DerivedStateConfig<T, D>,\n options: {\n id?: StateInstanceId;\n scope?: StateScope;\n } = {},\n ) {\n this.config = config;\n this.id = options.id ?? Symbol('DerivedStateInstance');\n this.scope = options.scope;\n\n // 订阅所有依赖状态的变化\n this.setupDependencies();\n\n // 初始计算\n this.recompute();\n }\n\n /**\n * 获取当前状态值\n */\n get(): T {\n if (this.destroyed) {\n throw new Error(`DerivedStateInstance ${String(this.id)} has been destroyed`);\n }\n return this.value;\n }\n\n /**\n * 派生状态不支持直接设置值\n */\n set(_valueOrUpdater: T | StateUpdater<T>): void {\n throw new Error('Derived state cannot be set directly. Modify the dependency states instead.');\n }\n\n /**\n * 订阅状态变化\n */\n subscribe(subscriber: StateSubscriber<T>): Unsubscribe {\n if (this.destroyed) {\n throw new Error(`DerivedStateInstance ${String(this.id)} has been destroyed`);\n }\n\n this.subscribers.add(subscriber);\n\n // 返回取消订阅函数\n return () => {\n this.subscribers.delete(subscriber);\n };\n }\n\n /**\n * 获取状态实例标识符\n */\n getId(): StateInstanceId {\n return this.id;\n }\n\n /**\n * 获取状态作用域\n */\n getScope(): StateScope | undefined {\n return this.scope;\n }\n\n /**\n * 获取依赖的状态实例\n */\n getDependencies(): readonly IStateInstance[] {\n return this.config.dependencies;\n }\n\n /**\n * 手动重新计算派生状态\n */\n recompute(): void {\n if (this.destroyed || this.recomputing) {\n return;\n }\n\n this.recomputing = true;\n\n try {\n // 获取所有依赖状态的当前值\n const dependencyValues = this.config.dependencies.map((dep) => dep.get()) as {\n [K in keyof D]: D[K] extends IStateInstance<infer V> ? V : never;\n };\n\n // 计算新的派生值\n const newValue = this.config.derive(dependencyValues);\n\n // 检查值是否变化\n const hasChanged = this.config.equalityCheck\n ? !this.config.equalityCheck(this.value, newValue)\n : this.value !== newValue;\n\n if (hasChanged) {\n const previousValue = this.value;\n this.value = newValue;\n\n // 通知所有订阅者\n this.notifySubscribers(this.value, previousValue);\n }\n } catch (error) {\n console.error(`[DerivedStateInstance] Error recomputing ${String(this.id)}:`, error);\n } finally {\n this.recomputing = false;\n }\n }\n\n /**\n * 销毁状态实例\n */\n destroy(): void {\n if (this.destroyed) {\n return;\n }\n\n this.destroyed = true;\n\n // 取消所有依赖订阅\n for (const unsubscribe of this.dependencyUnsubscribes) {\n unsubscribe();\n }\n this.dependencyUnsubscribes.length = 0;\n\n // 清理订阅者\n this.subscribers.clear();\n }\n\n /**\n * 检查状态实例是否已销毁\n */\n isDestroyed(): boolean {\n return this.destroyed;\n }\n\n /**\n * 设置依赖状态订阅\n */\n private setupDependencies(): void {\n for (const dependency of this.config.dependencies) {\n const unsubscribe = dependency.subscribe(() => {\n // 当依赖状态变化时,重新计算派生状态\n this.recompute();\n });\n this.dependencyUnsubscribes.push(unsubscribe);\n }\n }\n\n /**\n * 通知所有订阅者\n */\n private notifySubscribers(value: T, previous: T): void {\n const subscribers = Array.from(this.subscribers);\n \n for (const subscriber of subscribers) {\n try {\n subscriber(value, previous);\n } catch (error) {\n console.error(`[DerivedStateInstance] Error in subscriber for ${String(this.id)}:`, error);\n }\n }\n }\n}\n"],"names":["DerivedStateInstance","get","destroyed","Error","String","id","value","set","_valueOrUpdater","subscribe","subscriber","subscribers","add","delete","getId","getScope","scope","getDependencies","config","dependencies","recompute","recomputing","dependencyValues","map","dep","newValue","derive","hasChanged","equalityCheck","previousValue","notifySubscribers","error","console","destroy","unsubscribe","dependencyUnsubscribes","length","clear","isDestroyed","setupDependencies","dependency","push","previous","Array","from","options","Set","Symbol"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/state/core/DerivedStateInstance.ts"],"sourcesContent":["/**\n * 派生状态实例实现\n */\n\nimport type {\n IDerivedStateInstance,\n IStateInstance,\n DerivedStateConfig,\n StateInstanceId,\n StateScope,\n StateSubscriber,\n StateUpdater,\n Unsubscribe,\n} from '../types';\n\n/**\n * 派生状态实例\n * \n * 派生状态不直接存储值,而是基于依赖状态自动计算\n * \n * @template T - 派生状态值类型\n * @template D - 依赖状态实例数组类型\n */\nexport class DerivedStateInstance<T, D extends readonly IStateInstance[]>\n implements IDerivedStateInstance<T> {\n /**\n * 状态实例标识符\n */\n private readonly id: StateInstanceId;\n\n /**\n * 状态作用域\n */\n private readonly scope?: StateScope;\n\n /**\n * 派生状态配置\n */\n private readonly config: DerivedStateConfig<T, D>;\n\n /**\n * 当前派生值\n */\n private value!: T;\n\n /**\n * 订阅者集合\n */\n private readonly subscribers: Set<StateSubscriber<T>> = new Set();\n\n /**\n * 依赖状态的取消订阅函数数组\n */\n private readonly dependencyUnsubscribes: Unsubscribe[] = [];\n\n /**\n * 是否已销毁\n */\n private destroyed = false;\n\n /**\n * 是否正在重新计算\n */\n private recomputing = false;\n\n /**\n * 构造函数\n * \n * @param config - 派生状态配置\n * @param options - 状态实例配置选项\n */\n constructor(\n config: DerivedStateConfig<T, D>,\n options: {\n id?: StateInstanceId;\n scope?: StateScope;\n } = {},\n ) {\n this.config = config;\n this.id = options.id ?? Symbol('DerivedStateInstance');\n this.scope = options.scope;\n\n // 订阅所有依赖状态的变化\n this.setupDependencies();\n\n // 初始计算\n this.recompute();\n }\n\n /**\n * 获取当前状态值\n */\n get(): T {\n if (this.destroyed) {\n throw new Error(`DerivedStateInstance ${String(this.id)} has been destroyed`);\n }\n return this.value;\n }\n\n /**\n * 派生状态不支持直接设置值\n */\n set(_valueOrUpdater: T | StateUpdater<T>): void {\n throw new Error('Derived state cannot be set directly. Modify the dependency states instead.');\n }\n\n /**\n * 订阅状态变化\n */\n subscribe(subscriber: StateSubscriber<T>): Unsubscribe {\n if (this.destroyed) {\n throw new Error(`DerivedStateInstance ${String(this.id)} has been destroyed`);\n }\n\n this.subscribers.add(subscriber);\n\n // 返回取消订阅函数\n return () => {\n this.subscribers.delete(subscriber);\n };\n }\n\n /**\n * 获取状态实例标识符\n */\n getId(): StateInstanceId {\n return this.id;\n }\n\n /**\n * 获取状态作用域\n */\n getScope(): StateScope | undefined {\n return this.scope;\n }\n\n /**\n * 获取依赖的状态实例\n */\n getDependencies(): readonly IStateInstance[] {\n return this.config.dependencies;\n }\n\n /**\n * 手动重新计算派生状态\n */\n recompute(): void {\n if (this.destroyed || this.recomputing) {\n return;\n }\n\n this.recomputing = true;\n\n try {\n // 获取所有依赖状态的当前值\n const dependencyValues = this.config.dependencies.map((dep) => dep.get()) as {\n [K in keyof D]: D[K] extends IStateInstance<infer V> ? V : never;\n };\n\n // 计算新的派生值\n const newValue = this.config.derive(dependencyValues);\n\n // 检查值是否变化\n const hasChanged = this.config.equalityCheck\n ? !this.config.equalityCheck(this.value, newValue)\n : this.value !== newValue;\n\n if (hasChanged) {\n const previousValue = this.value;\n this.value = newValue;\n\n // 通知所有订阅者\n this.notifySubscribers(this.value, previousValue);\n }\n } catch (error) {\n console.error(`[DerivedStateInstance] Error recomputing ${String(this.id)}:`, error);\n } finally {\n this.recomputing = false;\n }\n }\n\n /**\n * 销毁状态实例\n */\n destroy(): void {\n if (this.destroyed) {\n return;\n }\n\n this.destroyed = true;\n\n // 取消所有依赖订阅\n for (const unsubscribe of this.dependencyUnsubscribes) {\n unsubscribe();\n }\n this.dependencyUnsubscribes.length = 0;\n\n // 清理订阅者\n this.subscribers.clear();\n }\n\n /**\n * 检查状态实例是否已销毁\n */\n isDestroyed(): boolean {\n return this.destroyed;\n }\n\n /**\n * 设置依赖状态订阅\n */\n private setupDependencies(): void {\n for (const dependency of this.config.dependencies) {\n const unsubscribe = dependency.subscribe(() => {\n // 当依赖状态变化时,重新计算派生状态\n this.recompute();\n });\n this.dependencyUnsubscribes.push(unsubscribe);\n }\n }\n\n /**\n * 通知所有订阅者\n */\n private notifySubscribers(value: T, previous: T): void {\n const subscribers = Array.from(this.subscribers);\n \n for (const subscriber of subscribers) {\n try {\n subscriber(value, previous);\n } catch (error) {\n console.error(`[DerivedStateInstance] Error in subscriber for ${String(this.id)}:`, error);\n }\n }\n }\n}\n"],"names":["DerivedStateInstance","get","destroyed","Error","String","id","value","set","_valueOrUpdater","subscribe","subscriber","subscribers","add","delete","getId","getScope","scope","getDependencies","config","dependencies","recompute","recomputing","dependencyValues","map","dep","newValue","derive","hasChanged","equalityCheck","previousValue","notifySubscribers","error","console","destroy","unsubscribe","dependencyUnsubscribes","length","clear","isDestroyed","setupDependencies","dependency","push","previous","Array","from","options","Set","Symbol"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/state/core/StateInstance.ts"],"sourcesContent":["/**\n * 状态实例核心实现\n */\n\nimport type {\n IStateInstance,\n StateInstanceId,\n StateScope,\n StateSubscriber,\n StateUpdater,\n Unsubscribe,\n} from '../types';\n\n/**\n * 基础状态实例实现\n * \n * 这是一个通用的状态实例实现,不依赖任何外部状态管理库\n * \n * @template T - 状态值类型\n */\nexport class StateInstance<T = unknown> implements IStateInstance<T> {\n /**\n * 状态实例标识符\n */\n private readonly id: StateInstanceId;\n\n /**\n * 状态作用域\n */\n private readonly scope?: StateScope;\n\n /**\n * 当前状态值\n */\n private value: T;\n\n /**\n * 订阅者集合\n */\n private readonly subscribers: Set<StateSubscriber<T>> = new Set();\n\n /**\n * 是否已销毁\n */\n private destroyed = false;\n\n /**\n * 开发模式标志\n */\n private readonly devMode: boolean;\n\n /**\n * 中间件函数数组\n */\n private readonly middleware: Array<(value: unknown, previous: unknown) => unknown>;\n\n /**\n * 构造函数\n * \n * @param initialValue - 初始状态值\n * @param options - 状态实例配置选项\n */\n constructor(initialValue: T, options: {\n id?: StateInstanceId;\n scope?: StateScope;\n devMode?: boolean;\n middleware?: Array<(value: unknown, previous: unknown) => unknown>;\n } = {}) {\n this.value = initialValue;\n this.id = options.id ?? Symbol('StateInstance');\n this.scope = options.scope;\n this.devMode = options.devMode ?? false;\n this.middleware = options.middleware ?? [];\n\n if (this.devMode) {\n console.debug(`[StateInstance] Created: ${String(this.id)}`, {\n scope: this.scope,\n initialValue: this.value,\n });\n }\n }\n\n /**\n * 获取当前状态值\n */\n get(): T {\n if (this.destroyed) {\n throw new Error(`StateInstance ${String(this.id)} has been destroyed`);\n }\n return this.value;\n }\n\n /**\n * 更新状态值\n */\n set(valueOrUpdater: T | StateUpdater<T>): void {\n if (this.destroyed) {\n throw new Error(`StateInstance ${String(this.id)} has been destroyed`);\n }\n\n const previousValue = this.value;\n let newValue: T;\n\n // 处理函数式更新\n if (typeof valueOrUpdater === 'function') {\n newValue = (valueOrUpdater as StateUpdater<T>)(this.value);\n } else {\n newValue = valueOrUpdater;\n }\n\n // 应用中间件\n let processedValue = newValue;\n for (const middleware of this.middleware) {\n processedValue = middleware(processedValue, previousValue) as T;\n }\n\n // 如果值没有变化,跳过更新\n if (processedValue === this.value) {\n return;\n }\n\n this.value = processedValue;\n\n if (this.devMode) {\n console.debug(`[StateInstance] Updated: ${String(this.id)}`, {\n previous: previousValue,\n current: this.value,\n });\n }\n\n // 通知所有订阅者\n this.notifySubscribers(this.value, previousValue);\n }\n\n /**\n * 订阅状态变化\n */\n subscribe(subscriber: StateSubscriber<T>): Unsubscribe {\n if (this.destroyed) {\n throw new Error(`StateInstance ${String(this.id)} has been destroyed`);\n }\n\n this.subscribers.add(subscriber);\n\n if (this.devMode) {\n console.debug(`[StateInstance] Subscribed: ${String(this.id)}`, {\n subscriberCount: this.subscribers.size,\n });\n }\n\n // 返回取消订阅函数\n return () => {\n this.subscribers.delete(subscriber);\n if (this.devMode) {\n console.debug(`[StateInstance] Unsubscribed: ${String(this.id)}`, {\n subscriberCount: this.subscribers.size,\n });\n }\n };\n }\n\n /**\n * 获取状态实例标识符\n */\n getId(): StateInstanceId {\n return this.id;\n }\n\n /**\n * 获取状态作用域\n */\n getScope(): StateScope | undefined {\n return this.scope;\n }\n\n /**\n * 销毁状态实例\n */\n destroy(): void {\n if (this.destroyed) {\n return;\n }\n\n this.destroyed = true;\n this.subscribers.clear();\n this.value = undefined as T;\n\n if (this.devMode) {\n console.debug(`[StateInstance] Destroyed: ${String(this.id)}`);\n }\n }\n\n /**\n * 检查状态实例是否已销毁\n */\n isDestroyed(): boolean {\n return this.destroyed;\n }\n\n /**\n * 通知所有订阅者\n */\n private notifySubscribers(value: T, previous: T): void {\n // 使用数组副本避免在迭代过程中修改集合\n const subscribers = Array.from(this.subscribers);\n \n for (const subscriber of subscribers) {\n try {\n subscriber(value, previous);\n } catch (error) {\n console.error(`[StateInstance] Error in subscriber for ${String(this.id)}:`, error);\n }\n }\n }\n}\n"],"names":["StateInstance","get","destroyed","Error","String","id","value","set","valueOrUpdater","previousValue","newValue","processedValue","middleware","devMode","console","debug","previous","current","notifySubscribers","subscribe","subscriber","subscribers","add","subscriberCount","size","delete","getId","getScope","scope","destroy","clear","undefined","isDestroyed","Array","from","error","initialValue","options","Set","Symbol"],"mappings":"AAAA;;CAEC;;;;+BAkBYA;;;eAAAA;;;;;;;;;;;;;;;;AAAN,IAAA,AAAMA,gBAAN,MAAMA;IA8DX;;GAEC,GACDC,MAAS;QACP,IAAI,IAAI,CAACC,SAAS,EAAE;YAClB,MAAM,IAAIC,MAAM,CAAC,cAAc,EAAEC,OAAO,IAAI,CAACC,EAAE,EAAE,mBAAmB,CAAC;QACvE;QACA,OAAO,IAAI,CAACC,KAAK;IACnB;IAEA;;GAEC,GACDC,IAAIC,cAAmC,EAAQ;QAC7C,IAAI,IAAI,CAACN,SAAS,EAAE;YAClB,MAAM,IAAIC,MAAM,CAAC,cAAc,EAAEC,OAAO,IAAI,CAACC,EAAE,EAAE,mBAAmB,CAAC;QACvE;QAEA,MAAMI,gBAAgB,IAAI,CAACH,KAAK;QAChC,IAAII;QAEJ,UAAU;QACV,IAAI,OAAOF,mBAAmB,YAAY;YACxCE,WAAW,AAACF,eAAmC,IAAI,CAACF,KAAK;QAC3D,OAAO;YACLI,WAAWF;QACb;QAEA,QAAQ;QACR,IAAIG,iBAAiBD;QACrB,KAAK,MAAME,cAAc,IAAI,CAACA,UAAU,CAAE;YACxCD,iBAAiBC,WAAWD,gBAAgBF;QAC9C;QAEA,eAAe;QACf,IAAIE,mBAAmB,IAAI,CAACL,KAAK,EAAE;YACjC;QACF;QAEA,IAAI,CAACA,KAAK,GAAGK;QAEb,IAAI,IAAI,CAACE,OAAO,EAAE;YAChBC,QAAQC,KAAK,CAAC,CAAC,yBAAyB,EAAEX,OAAO,IAAI,CAACC,EAAE,GAAG,EAAE;gBAC3DW,UAAUP;gBACVQ,SAAS,IAAI,CAACX,KAAK;YACrB;QACF;QAEA,UAAU;QACV,IAAI,CAACY,iBAAiB,CAAC,IAAI,CAACZ,KAAK,EAAEG;IACrC;IAEA;;GAEC,GACDU,UAAUC,UAA8B,EAAe;QACrD,IAAI,IAAI,CAAClB,SAAS,EAAE;YAClB,MAAM,IAAIC,MAAM,CAAC,cAAc,EAAEC,OAAO,IAAI,CAACC,EAAE,EAAE,mBAAmB,CAAC;QACvE;QAEA,IAAI,CAACgB,WAAW,CAACC,GAAG,CAACF;QAErB,IAAI,IAAI,CAACP,OAAO,EAAE;YAChBC,QAAQC,KAAK,CAAC,CAAC,4BAA4B,EAAEX,OAAO,IAAI,CAACC,EAAE,GAAG,EAAE;gBAC9DkB,iBAAiB,IAAI,CAACF,WAAW,CAACG,IAAI;YACxC;QACF;QAEA,WAAW;QACX,OAAO;YACL,IAAI,CAACH,WAAW,CAACI,MAAM,CAACL;YACxB,IAAI,IAAI,CAACP,OAAO,EAAE;gBAChBC,QAAQC,KAAK,CAAC,CAAC,8BAA8B,EAAEX,OAAO,IAAI,CAACC,EAAE,GAAG,EAAE;oBAChEkB,iBAAiB,IAAI,CAACF,WAAW,CAACG,IAAI;gBACxC;YACF;QACF;IACF;IAEA;;GAEC,GACDE,QAAyB;QACvB,OAAO,IAAI,CAACrB,EAAE;IAChB;IAEA;;GAEC,GACDsB,WAAmC;QACjC,OAAO,IAAI,CAACC,KAAK;IACnB;IAEA;;GAEC,GACDC,UAAgB;QACd,IAAI,IAAI,CAAC3B,SAAS,EAAE;YAClB;QACF;QAEA,IAAI,CAACA,SAAS,GAAG;QACjB,IAAI,CAACmB,WAAW,CAACS,KAAK;QACtB,IAAI,CAACxB,KAAK,GAAGyB;QAEb,IAAI,IAAI,CAAClB,OAAO,EAAE;YAChBC,QAAQC,KAAK,CAAC,CAAC,2BAA2B,EAAEX,OAAO,IAAI,CAACC,EAAE,GAAG;QAC/D;IACF;IAEA;;GAEC,GACD2B,cAAuB;QACrB,OAAO,IAAI,CAAC9B,SAAS;IACvB;IAEA;;GAEC,GACD,AAAQgB,kBAAkBZ,KAAQ,EAAEU,QAAW,EAAQ;QACrD,qBAAqB;QACrB,MAAMK,cAAcY,MAAMC,IAAI,CAAC,IAAI,CAACb,WAAW;QAE/C,KAAK,MAAMD,cAAcC,YAAa;YACpC,IAAI;gBACFD,WAAWd,OAAOU;YACpB,EAAE,OAAOmB,OAAO;gBACdrB,QAAQqB,KAAK,CAAC,CAAC,wCAAwC,EAAE/B,OAAO,IAAI,CAACC,EAAE,EAAE,CAAC,CAAC,EAAE8B;YAC/E;QACF;IACF;IA7JA;;;;;GAKC,GACD,YAAYC,YAAe,EAAEC,UAKzB,CAAC,CAAC,CAAE;QA9CR;;GAEC,GACD,uBAAiBhC,MAAjB,KAAA;QAEA;;GAEC,GACD,uBAAiBuB,SAAjB,KAAA;QAEA;;GAEC,GACD,uBAAQtB,SAAR,KAAA;QAEA;;GAEC,GACD,uBAAiBe,eAAuC,IAAIiB;QAE5D;;GAEC,GACD,uBAAQpC,aAAY;QAEpB;;GAEC,GACD,uBAAiBW,WAAjB,KAAA;QAEA;;GAEC,GACD,uBAAiBD,cAAjB,KAAA;QAcE,IAAI,CAACN,KAAK,GAAG8B;QACb,IAAI,CAAC/B,EAAE,GAAGgC,QAAQhC,EAAE,IAAIkC,OAAO;QAC/B,IAAI,CAACX,KAAK,GAAGS,QAAQT,KAAK;QAC1B,IAAI,CAACf,OAAO,GAAGwB,QAAQxB,OAAO,IAAI;QAClC,IAAI,CAACD,UAAU,GAAGyB,QAAQzB,UAAU,IAAI,EAAE;QAE1C,IAAI,IAAI,CAACC,OAAO,EAAE;YAChBC,QAAQC,KAAK,CAAC,CAAC,yBAAyB,EAAEX,OAAO,IAAI,CAACC,EAAE,GAAG,EAAE;gBAC3DuB,OAAO,IAAI,CAACA,KAAK;gBACjBQ,cAAc,IAAI,CAAC9B,KAAK;YAC1B;QACF;IACF;AAsIF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/state/core/StateInstance.ts"],"sourcesContent":["/**\n * 状态实例核心实现\n */\n\nimport type {\n IStateInstance,\n StateInstanceId,\n StateScope,\n StateSubscriber,\n StateUpdater,\n Unsubscribe,\n} from '../types';\n\n/**\n * 基础状态实例实现\n * \n * 这是一个通用的状态实例实现,不依赖任何外部状态管理库\n * \n * @template T - 状态值类型\n */\nexport class StateInstance<T = unknown> implements IStateInstance<T> {\n /**\n * 状态实例标识符\n */\n private readonly id: StateInstanceId;\n\n /**\n * 状态作用域\n */\n private readonly scope?: StateScope;\n\n /**\n * 当前状态值\n */\n private value: T;\n\n /**\n * 订阅者集合\n */\n private readonly subscribers: Set<StateSubscriber<T>> = new Set();\n\n /**\n * 是否已销毁\n */\n private destroyed = false;\n\n /**\n * 开发模式标志\n */\n private readonly devMode: boolean;\n\n /**\n * 中间件函数数组\n */\n private readonly middleware: Array<(value: unknown, previous: unknown) => unknown>;\n\n /**\n * 构造函数\n * \n * @param initialValue - 初始状态值\n * @param options - 状态实例配置选项\n */\n constructor(initialValue: T, options: {\n id?: StateInstanceId;\n scope?: StateScope;\n devMode?: boolean;\n middleware?: Array<(value: unknown, previous: unknown) => unknown>;\n } = {}) {\n this.value = initialValue;\n this.id = options.id ?? Symbol('StateInstance');\n this.scope = options.scope;\n this.devMode = options.devMode ?? false;\n this.middleware = options.middleware ?? [];\n\n if (this.devMode) {\n console.debug(`[StateInstance] Created: ${String(this.id)}`, {\n scope: this.scope,\n initialValue: this.value,\n });\n }\n }\n\n /**\n * 获取当前状态值\n */\n get(): T {\n if (this.destroyed) {\n throw new Error(`StateInstance ${String(this.id)} has been destroyed`);\n }\n return this.value;\n }\n\n /**\n * 更新状态值\n */\n set(valueOrUpdater: T | StateUpdater<T>): void {\n if (this.destroyed) {\n throw new Error(`StateInstance ${String(this.id)} has been destroyed`);\n }\n\n const previousValue = this.value;\n let newValue: T;\n\n // 处理函数式更新\n if (typeof valueOrUpdater === 'function') {\n newValue = (valueOrUpdater as StateUpdater<T>)(this.value);\n } else {\n newValue = valueOrUpdater;\n }\n\n // 应用中间件\n let processedValue = newValue;\n for (const middleware of this.middleware) {\n processedValue = middleware(processedValue, previousValue) as T;\n }\n\n // 如果值没有变化,跳过更新\n if (processedValue === this.value) {\n return;\n }\n\n this.value = processedValue;\n\n if (this.devMode) {\n console.debug(`[StateInstance] Updated: ${String(this.id)}`, {\n previous: previousValue,\n current: this.value,\n });\n }\n\n // 通知所有订阅者\n this.notifySubscribers(this.value, previousValue);\n }\n\n /**\n * 订阅状态变化\n */\n subscribe(subscriber: StateSubscriber<T>): Unsubscribe {\n if (this.destroyed) {\n throw new Error(`StateInstance ${String(this.id)} has been destroyed`);\n }\n\n this.subscribers.add(subscriber);\n\n if (this.devMode) {\n console.debug(`[StateInstance] Subscribed: ${String(this.id)}`, {\n subscriberCount: this.subscribers.size,\n });\n }\n\n // 返回取消订阅函数\n return () => {\n this.subscribers.delete(subscriber);\n if (this.devMode) {\n console.debug(`[StateInstance] Unsubscribed: ${String(this.id)}`, {\n subscriberCount: this.subscribers.size,\n });\n }\n };\n }\n\n /**\n * 获取状态实例标识符\n */\n getId(): StateInstanceId {\n return this.id;\n }\n\n /**\n * 获取状态作用域\n */\n getScope(): StateScope | undefined {\n return this.scope;\n }\n\n /**\n * 销毁状态实例\n */\n destroy(): void {\n if (this.destroyed) {\n return;\n }\n\n this.destroyed = true;\n this.subscribers.clear();\n this.value = undefined as T;\n\n if (this.devMode) {\n console.debug(`[StateInstance] Destroyed: ${String(this.id)}`);\n }\n }\n\n /**\n * 检查状态实例是否已销毁\n */\n isDestroyed(): boolean {\n return this.destroyed;\n }\n\n /**\n * 通知所有订阅者\n */\n private notifySubscribers(value: T, previous: T): void {\n // 使用数组副本避免在迭代过程中修改集合\n const subscribers = Array.from(this.subscribers);\n \n for (const subscriber of subscribers) {\n try {\n subscriber(value, previous);\n } catch (error) {\n console.error(`[StateInstance] Error in subscriber for ${String(this.id)}:`, error);\n }\n }\n }\n}\n"],"names":["StateInstance","get","destroyed","Error","String","id","value","set","valueOrUpdater","previousValue","newValue","processedValue","middleware","devMode","console","debug","previous","current","notifySubscribers","subscribe","subscriber","subscribers","add","subscriberCount","size","delete","getId","getScope","scope","destroy","clear","undefined","isDestroyed","Array","from","error","initialValue","options","Set","Symbol"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/state/core/StateRegistry.ts"],"sourcesContent":["/**\n * 状态注册表实现\n */\n\nimport type {\n IStateRegistry,\n IStateInstance,\n StateInstanceId,\n StateScope,\n} from '../types';\nimport { StateScopeManager } from './StateScope';\n\n/**\n * 状态注册表\n * \n * 负责管理所有状态实例的注册、查询和销毁\n */\nexport class StateRegistry implements IStateRegistry {\n /**\n * 状态实例映射表(ID -> Instance)\n */\n private readonly instances: Map<StateInstanceId, IStateInstance> = new Map();\n\n /**\n * 作用域管理器\n */\n private readonly scopeManager: StateScopeManager;\n\n /**\n * 构造函数\n */\n constructor() {\n this.scopeManager = new StateScopeManager();\n }\n\n /**\n * 注册状态实例\n */\n register(instance: IStateInstance): void {\n const id = instance.getId();\n \n if (this.instances.has(id)) {\n console.warn(`[StateRegistry] Instance with id ${String(id)} already exists, replacing...`);\n }\n\n this.instances.set(id, instance);\n\n // 如果实例有作用域,注册到作用域管理器\n const scope = instance.getScope();\n if (scope) {\n this.scopeManager.register(instance, scope);\n }\n }\n\n /**\n * 注销状态实例\n */\n unregister(id: StateInstanceId): void {\n const instance = this.instances.get(id);\n if (!instance) {\n return;\n }\n\n // 从作用域管理器注销\n this.scopeManager.unregister(instance);\n\n // 销毁实例\n instance.destroy();\n\n // 从注册表移除\n this.instances.delete(id);\n }\n\n /**\n * 根据标识符获取状态实例\n */\n getInstance(id: StateInstanceId): IStateInstance | undefined {\n return this.instances.get(id);\n }\n\n /**\n * 根据作用域获取所有状态实例\n */\n getInstancesByScope(scope: StateScope): IStateInstance[] {\n return this.scopeManager.getInstances(scope);\n }\n\n /**\n * 获取所有状态实例\n */\n getAllInstances(): IStateInstance[] {\n return Array.from(this.instances.values());\n }\n\n /**\n * 销毁指定作用域的所有状态实例\n */\n destroyScope(scope: StateScope): void {\n const instances = this.scopeManager.getInstances(scope);\n \n // 销毁所有实例\n for (const instance of instances) {\n instance.destroy();\n this.instances.delete(instance.getId());\n }\n\n // 从作用域管理器清理\n this.scopeManager.destroyScope(scope);\n }\n\n /**\n * 销毁所有状态实例\n */\n destroyAll(): void {\n // 销毁所有实例\n for (const instance of this.instances.values()) {\n instance.destroy();\n }\n\n // 清理所有映射\n this.instances.clear();\n this.scopeManager.destroyAll();\n }\n\n /**\n * 获取注册表中的实例数量\n */\n size(): number {\n return this.instances.size;\n }\n}\n"],"names":["StateRegistry","register","instance","id","getId","instances","has","console","warn","String","set","scope","getScope","scopeManager","unregister","get","destroy","delete","getInstance","getInstancesByScope","getInstances","getAllInstances","Array","from","values","destroyScope","destroyAll","clear","size","Map","StateScopeManager"],"mappings":"AAAA;;CAEC;;;;+BAeYA;;;eAAAA;;;4BAPqB;;;;;;;;;;;;;;AAO3B,IAAA,AAAMA,gBAAN,MAAMA;IAkBX;;GAEC,GACDC,SAASC,QAAwB,EAAQ;QACvC,MAAMC,KAAKD,SAASE,KAAK;QAEzB,IAAI,IAAI,CAACC,SAAS,CAACC,GAAG,CAACH,KAAK;YAC1BI,QAAQC,IAAI,CAAC,CAAC,iCAAiC,EAAEC,OAAON,IAAI,6BAA6B,CAAC;QAC5F;QAEA,IAAI,CAACE,SAAS,CAACK,GAAG,CAACP,IAAID;QAEvB,qBAAqB;QACrB,MAAMS,QAAQT,SAASU,QAAQ;QAC/B,IAAID,OAAO;YACT,IAAI,CAACE,YAAY,CAACZ,QAAQ,CAACC,UAAUS;QACvC;IACF;IAEA;;GAEC,GACDG,WAAWX,EAAmB,EAAQ;QACpC,MAAMD,WAAW,IAAI,CAACG,SAAS,CAACU,GAAG,CAACZ;QACpC,IAAI,CAACD,UAAU;YACb;QACF;QAEA,YAAY;QACZ,IAAI,CAACW,YAAY,CAACC,UAAU,CAACZ;QAE7B,OAAO;QACPA,SAASc,OAAO;QAEhB,SAAS;QACT,IAAI,CAACX,SAAS,CAACY,MAAM,CAACd;IACxB;IAEA;;GAEC,GACDe,YAAYf,EAAmB,EAA8B;QAC3D,OAAO,IAAI,CAACE,SAAS,CAACU,GAAG,CAACZ;IAC5B;IAEA;;GAEC,GACDgB,oBAAoBR,KAAiB,EAAoB;QACvD,OAAO,IAAI,CAACE,YAAY,CAACO,YAAY,CAACT;IACxC;IAEA;;GAEC,GACDU,kBAAoC;QAClC,OAAOC,MAAMC,IAAI,CAAC,IAAI,CAAClB,SAAS,CAACmB,MAAM;IACzC;IAEA;;GAEC,GACDC,aAAad,KAAiB,EAAQ;QACpC,MAAMN,YAAY,IAAI,CAACQ,YAAY,CAACO,YAAY,CAACT;QAEjD,SAAS;QACT,KAAK,MAAMT,YAAYG,UAAW;YAChCH,SAASc,OAAO;YAChB,IAAI,CAACX,SAAS,CAACY,MAAM,CAACf,SAASE,KAAK;QACtC;QAEA,YAAY;QACZ,IAAI,CAACS,YAAY,CAACY,YAAY,CAACd;IACjC;IAEA;;GAEC,GACDe,aAAmB;QACjB,SAAS;QACT,KAAK,MAAMxB,YAAY,IAAI,CAACG,SAAS,CAACmB,MAAM,GAAI;YAC9CtB,SAASc,OAAO;QAClB;QAEA,SAAS;QACT,IAAI,CAACX,SAAS,CAACsB,KAAK;QACpB,IAAI,CAACd,YAAY,CAACa,UAAU;IAC9B;IAEA;;GAEC,GACDE,OAAe;QACb,OAAO,IAAI,CAACvB,SAAS,CAACuB,IAAI;IAC5B;IArGA;;GAEC,GACD,aAAc;QAbd;;GAEC,GACD,uBAAiBvB,aAAkD,IAAIwB;QAEvE;;GAEC,GACD,uBAAiBhB,gBAAjB,KAAA;QAME,IAAI,CAACA,YAAY,GAAG,IAAIiB,6BAAiB;IAC3C;AAiGF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/state/core/StateRegistry.ts"],"sourcesContent":["/**\n * 状态注册表实现\n */\n\nimport type {\n IStateRegistry,\n IStateInstance,\n StateInstanceId,\n StateScope,\n} from '../types';\nimport { StateScopeManager } from './StateScope';\n\n/**\n * 状态注册表\n * \n * 负责管理所有状态实例的注册、查询和销毁\n */\nexport class StateRegistry implements IStateRegistry {\n /**\n * 状态实例映射表(ID -> Instance)\n */\n private readonly instances: Map<StateInstanceId, IStateInstance> = new Map();\n\n /**\n * 作用域管理器\n */\n private readonly scopeManager: StateScopeManager;\n\n /**\n * 构造函数\n */\n constructor() {\n this.scopeManager = new StateScopeManager();\n }\n\n /**\n * 注册状态实例\n */\n register(instance: IStateInstance): void {\n const id = instance.getId();\n \n if (this.instances.has(id)) {\n console.warn(`[StateRegistry] Instance with id ${String(id)} already exists, replacing...`);\n }\n\n this.instances.set(id, instance);\n\n // 如果实例有作用域,注册到作用域管理器\n const scope = instance.getScope();\n if (scope) {\n this.scopeManager.register(instance, scope);\n }\n }\n\n /**\n * 注销状态实例\n */\n unregister(id: StateInstanceId): void {\n const instance = this.instances.get(id);\n if (!instance) {\n return;\n }\n\n // 从作用域管理器注销\n this.scopeManager.unregister(instance);\n\n // 销毁实例\n instance.destroy();\n\n // 从注册表移除\n this.instances.delete(id);\n }\n\n /**\n * 根据标识符获取状态实例\n */\n getInstance(id: StateInstanceId): IStateInstance | undefined {\n return this.instances.get(id);\n }\n\n /**\n * 根据作用域获取所有状态实例\n */\n getInstancesByScope(scope: StateScope): IStateInstance[] {\n return this.scopeManager.getInstances(scope);\n }\n\n /**\n * 获取所有状态实例\n */\n getAllInstances(): IStateInstance[] {\n return Array.from(this.instances.values());\n }\n\n /**\n * 销毁指定作用域的所有状态实例\n */\n destroyScope(scope: StateScope): void {\n const instances = this.scopeManager.getInstances(scope);\n \n // 销毁所有实例\n for (const instance of instances) {\n instance.destroy();\n this.instances.delete(instance.getId());\n }\n\n // 从作用域管理器清理\n this.scopeManager.destroyScope(scope);\n }\n\n /**\n * 销毁所有状态实例\n */\n destroyAll(): void {\n // 销毁所有实例\n for (const instance of this.instances.values()) {\n instance.destroy();\n }\n\n // 清理所有映射\n this.instances.clear();\n this.scopeManager.destroyAll();\n }\n\n /**\n * 获取注册表中的实例数量\n */\n size(): number {\n return this.instances.size;\n }\n}\n"],"names":["StateScopeManager","StateRegistry","register","instance","id","getId","instances","has","console","warn","String","set","scope","getScope","scopeManager","unregister","get","destroy","delete","getInstance","getInstancesByScope","getInstances","getAllInstances","Array","from","values","destroyScope","destroyAll","clear","size","Map"],"mappings":"AAAA;;CAEC;;;;;;;;;;;;;AAQD,SAASA,iBAAiB,QAAQ,eAAe;AAEjD;;;;CAIC,GACD,OAAO,MAAMC;IAkBX;;GAEC,GACDC,SAASC,QAAwB,EAAQ;QACvC,MAAMC,KAAKD,SAASE,KAAK;QAEzB,IAAI,IAAI,CAACC,SAAS,CAACC,GAAG,CAACH,KAAK;YAC1BI,QAAQC,IAAI,CAAC,CAAC,iCAAiC,EAAEC,OAAON,IAAI,6BAA6B,CAAC;QAC5F;QAEA,IAAI,CAACE,SAAS,CAACK,GAAG,CAACP,IAAID;QAEvB,qBAAqB;QACrB,MAAMS,QAAQT,SAASU,QAAQ;QAC/B,IAAID,OAAO;YACT,IAAI,CAACE,YAAY,CAACZ,QAAQ,CAACC,UAAUS;QACvC;IACF;IAEA;;GAEC,GACDG,WAAWX,EAAmB,EAAQ;QACpC,MAAMD,WAAW,IAAI,CAACG,SAAS,CAACU,GAAG,CAACZ;QACpC,IAAI,CAACD,UAAU;YACb;QACF;QAEA,YAAY;QACZ,IAAI,CAACW,YAAY,CAACC,UAAU,CAACZ;QAE7B,OAAO;QACPA,SAASc,OAAO;QAEhB,SAAS;QACT,IAAI,CAACX,SAAS,CAACY,MAAM,CAACd;IACxB;IAEA;;GAEC,GACDe,YAAYf,EAAmB,EAA8B;QAC3D,OAAO,IAAI,CAACE,SAAS,CAACU,GAAG,CAACZ;IAC5B;IAEA;;GAEC,GACDgB,oBAAoBR,KAAiB,EAAoB;QACvD,OAAO,IAAI,CAACE,YAAY,CAACO,YAAY,CAACT;IACxC;IAEA;;GAEC,GACDU,kBAAoC;QAClC,OAAOC,MAAMC,IAAI,CAAC,IAAI,CAAClB,SAAS,CAACmB,MAAM;IACzC;IAEA;;GAEC,GACDC,aAAad,KAAiB,EAAQ;QACpC,MAAMN,YAAY,IAAI,CAACQ,YAAY,CAACO,YAAY,CAACT;QAEjD,SAAS;QACT,KAAK,MAAMT,YAAYG,UAAW;YAChCH,SAASc,OAAO;YAChB,IAAI,CAACX,SAAS,CAACY,MAAM,CAACf,SAASE,KAAK;QACtC;QAEA,YAAY;QACZ,IAAI,CAACS,YAAY,CAACY,YAAY,CAACd;IACjC;IAEA;;GAEC,GACDe,aAAmB;QACjB,SAAS;QACT,KAAK,MAAMxB,YAAY,IAAI,CAACG,SAAS,CAACmB,MAAM,GAAI;YAC9CtB,SAASc,OAAO;QAClB;QAEA,SAAS;QACT,IAAI,CAACX,SAAS,CAACsB,KAAK;QACpB,IAAI,CAACd,YAAY,CAACa,UAAU;IAC9B;IAEA;;GAEC,GACDE,OAAe;QACb,OAAO,IAAI,CAACvB,SAAS,CAACuB,IAAI;IAC5B;IArGA;;GAEC,GACD,aAAc;QAbd;;GAEC,GACD,uBAAiBvB,aAAkD,IAAIwB;QAEvE;;GAEC,GACD,uBAAiBhB,gBAAjB,KAAA;QAME,IAAI,CAACA,YAAY,GAAG,IAAId;IAC1B;AAiGF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/state/core/StateScope.ts"],"sourcesContent":["/**\n * 状态作用域管理\n */\n\nimport type { StateScope } from '../types';\nimport type { IStateInstance } from '../types';\n\n/**\n * 状态作用域管理器\n * \n * 负责管理状态作用域的创建、销毁和查询\n */\nexport class StateScopeManager {\n /**\n * 作用域到状态实例的映射\n */\n private readonly scopeMap: Map<StateScope, Set<IStateInstance>> = new Map();\n\n /**\n * 状态实例到作用域的映射(用于快速查找)\n */\n private readonly instanceToScopeMap: Map<IStateInstance, StateScope> = new Map();\n\n /**\n * 注册状态实例到作用域\n * \n * @param instance - 状态实例\n * @param scope - 状态作用域\n */\n register(instance: IStateInstance, scope: StateScope): void {\n // 如果实例已经有作用域,先移除\n const existingScope = this.instanceToScopeMap.get(instance);\n if (existingScope) {\n this.unregister(instance);\n }\n\n // 添加到新作用域\n if (!this.scopeMap.has(scope)) {\n this.scopeMap.set(scope, new Set());\n }\n \n const instances = this.scopeMap.get(scope)!;\n instances.add(instance);\n this.instanceToScopeMap.set(instance, scope);\n }\n\n /**\n * 注销状态实例\n * \n * @param instance - 状态实例\n */\n unregister(instance: IStateInstance): void {\n const scope = this.instanceToScopeMap.get(instance);\n if (!scope) {\n return;\n }\n\n const instances = this.scopeMap.get(scope);\n if (instances) {\n instances.delete(instance);\n // 如果作用域为空,清理映射\n if (instances.size === 0) {\n this.scopeMap.delete(scope);\n }\n }\n\n this.instanceToScopeMap.delete(instance);\n }\n\n /**\n * 根据作用域获取所有状态实例\n * \n * @param scope - 状态作用域\n * @returns 状态实例数组\n */\n getInstances(scope: StateScope): IStateInstance[] {\n const instances = this.scopeMap.get(scope);\n return instances ? Array.from(instances) : [];\n }\n\n /**\n * 获取状态实例的作用域\n * \n * @param instance - 状态实例\n * @returns 状态作用域,如果不存在则返回 undefined\n */\n getScope(instance: IStateInstance): StateScope | undefined {\n return this.instanceToScopeMap.get(instance);\n }\n\n /**\n * 销毁指定作用域的所有状态实例\n * \n * @param scope - 状态作用域\n */\n destroyScope(scope: StateScope): void {\n const instances = this.scopeMap.get(scope);\n if (!instances) {\n return;\n }\n\n // 销毁所有实例\n for (const instance of instances) {\n instance.destroy();\n this.instanceToScopeMap.delete(instance);\n }\n\n // 清理作用域映射\n this.scopeMap.delete(scope);\n }\n\n /**\n * 销毁所有作用域和状态实例\n */\n destroyAll(): void {\n // 销毁所有实例\n for (const instances of this.scopeMap.values()) {\n for (const instance of instances) {\n instance.destroy();\n }\n }\n\n // 清理所有映射\n this.scopeMap.clear();\n this.instanceToScopeMap.clear();\n }\n\n /**\n * 获取所有作用域\n * \n * @returns 作用域数组\n */\n getAllScopes(): StateScope[] {\n return Array.from(this.scopeMap.keys());\n }\n\n /**\n * 获取作用域数量\n */\n getScopeCount(): number {\n return this.scopeMap.size;\n }\n\n /**\n * 获取总实例数量\n */\n getInstanceCount(): number {\n return this.instanceToScopeMap.size;\n }\n}\n"],"names":["StateScopeManager","register","instance","scope","existingScope","instanceToScopeMap","get","unregister","scopeMap","has","set","Set","instances","add","delete","size","getInstances","Array","from","getScope","destroyScope","destroy","destroyAll","values","clear","getAllScopes","keys","getScopeCount","getInstanceCount","Map"],"mappings":"AAAA;;CAEC;;;;+BAUYA;;;eAAAA;;;;;;;;;;;;;;;;AAAN,IAAA,AAAMA,oBAAN,MAAMA;IAWX;;;;;GAKC,GACDC,SAASC,QAAwB,EAAEC,KAAiB,EAAQ;QAC1D,iBAAiB;QACjB,MAAMC,gBAAgB,IAAI,CAACC,kBAAkB,CAACC,GAAG,CAACJ;QAClD,IAAIE,eAAe;YACjB,IAAI,CAACG,UAAU,CAACL;QAClB;QAEA,UAAU;QACV,IAAI,CAAC,IAAI,CAACM,QAAQ,CAACC,GAAG,CAACN,QAAQ;YAC7B,IAAI,CAACK,QAAQ,CAACE,GAAG,CAACP,OAAO,IAAIQ;QAC/B;QAEA,MAAMC,YAAY,IAAI,CAACJ,QAAQ,CAACF,GAAG,CAACH;QACpCS,UAAUC,GAAG,CAACX;QACd,IAAI,CAACG,kBAAkB,CAACK,GAAG,CAACR,UAAUC;IACxC;IAEA;;;;GAIC,GACDI,WAAWL,QAAwB,EAAQ;QACzC,MAAMC,QAAQ,IAAI,CAACE,kBAAkB,CAACC,GAAG,CAACJ;QAC1C,IAAI,CAACC,OAAO;YACV;QACF;QAEA,MAAMS,YAAY,IAAI,CAACJ,QAAQ,CAACF,GAAG,CAACH;QACpC,IAAIS,WAAW;YACbA,UAAUE,MAAM,CAACZ;YACjB,eAAe;YACf,IAAIU,UAAUG,IAAI,KAAK,GAAG;gBACxB,IAAI,CAACP,QAAQ,CAACM,MAAM,CAACX;YACvB;QACF;QAEA,IAAI,CAACE,kBAAkB,CAACS,MAAM,CAACZ;IACjC;IAEA;;;;;GAKC,GACDc,aAAab,KAAiB,EAAoB;QAChD,MAAMS,YAAY,IAAI,CAACJ,QAAQ,CAACF,GAAG,CAACH;QACpC,OAAOS,YAAYK,MAAMC,IAAI,CAACN,aAAa,EAAE;IAC/C;IAEA;;;;;GAKC,GACDO,SAASjB,QAAwB,EAA0B;QACzD,OAAO,IAAI,CAACG,kBAAkB,CAACC,GAAG,CAACJ;IACrC;IAEA;;;;GAIC,GACDkB,aAAajB,KAAiB,EAAQ;QACpC,MAAMS,YAAY,IAAI,CAACJ,QAAQ,CAACF,GAAG,CAACH;QACpC,IAAI,CAACS,WAAW;YACd;QACF;QAEA,SAAS;QACT,KAAK,MAAMV,YAAYU,UAAW;YAChCV,SAASmB,OAAO;YAChB,IAAI,CAAChB,kBAAkB,CAACS,MAAM,CAACZ;QACjC;QAEA,UAAU;QACV,IAAI,CAACM,QAAQ,CAACM,MAAM,CAACX;IACvB;IAEA;;GAEC,GACDmB,aAAmB;QACjB,SAAS;QACT,KAAK,MAAMV,aAAa,IAAI,CAACJ,QAAQ,CAACe,MAAM,GAAI;YAC9C,KAAK,MAAMrB,YAAYU,UAAW;gBAChCV,SAASmB,OAAO;YAClB;QACF;QAEA,SAAS;QACT,IAAI,CAACb,QAAQ,CAACgB,KAAK;QACnB,IAAI,CAACnB,kBAAkB,CAACmB,KAAK;IAC/B;IAEA;;;;GAIC,GACDC,eAA6B;QAC3B,OAAOR,MAAMC,IAAI,CAAC,IAAI,CAACV,QAAQ,CAACkB,IAAI;IACtC;IAEA;;GAEC,GACDC,gBAAwB;QACtB,OAAO,IAAI,CAACnB,QAAQ,CAACO,IAAI;IAC3B;IAEA;;GAEC,GACDa,mBAA2B;QACzB,OAAO,IAAI,CAACvB,kBAAkB,CAACU,IAAI;IACrC;;QAvIA;;GAEC,GACD,uBAAiBP,YAAiD,IAAIqB;QAEtE;;GAEC,GACD,uBAAiBxB,sBAAsD,IAAIwB;;AAgI7E"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/state/core/StateScope.ts"],"sourcesContent":["/**\n * 状态作用域管理\n */\n\nimport type { StateScope } from '../types';\nimport type { IStateInstance } from '../types';\n\n/**\n * 状态作用域管理器\n * \n * 负责管理状态作用域的创建、销毁和查询\n */\nexport class StateScopeManager {\n /**\n * 作用域到状态实例的映射\n */\n private readonly scopeMap: Map<StateScope, Set<IStateInstance>> = new Map();\n\n /**\n * 状态实例到作用域的映射(用于快速查找)\n */\n private readonly instanceToScopeMap: Map<IStateInstance, StateScope> = new Map();\n\n /**\n * 注册状态实例到作用域\n * \n * @param instance - 状态实例\n * @param scope - 状态作用域\n */\n register(instance: IStateInstance, scope: StateScope): void {\n // 如果实例已经有作用域,先移除\n const existingScope = this.instanceToScopeMap.get(instance);\n if (existingScope) {\n this.unregister(instance);\n }\n\n // 添加到新作用域\n if (!this.scopeMap.has(scope)) {\n this.scopeMap.set(scope, new Set());\n }\n \n const instances = this.scopeMap.get(scope)!;\n instances.add(instance);\n this.instanceToScopeMap.set(instance, scope);\n }\n\n /**\n * 注销状态实例\n * \n * @param instance - 状态实例\n */\n unregister(instance: IStateInstance): void {\n const scope = this.instanceToScopeMap.get(instance);\n if (!scope) {\n return;\n }\n\n const instances = this.scopeMap.get(scope);\n if (instances) {\n instances.delete(instance);\n // 如果作用域为空,清理映射\n if (instances.size === 0) {\n this.scopeMap.delete(scope);\n }\n }\n\n this.instanceToScopeMap.delete(instance);\n }\n\n /**\n * 根据作用域获取所有状态实例\n * \n * @param scope - 状态作用域\n * @returns 状态实例数组\n */\n getInstances(scope: StateScope): IStateInstance[] {\n const instances = this.scopeMap.get(scope);\n return instances ? Array.from(instances) : [];\n }\n\n /**\n * 获取状态实例的作用域\n * \n * @param instance - 状态实例\n * @returns 状态作用域,如果不存在则返回 undefined\n */\n getScope(instance: IStateInstance): StateScope | undefined {\n return this.instanceToScopeMap.get(instance);\n }\n\n /**\n * 销毁指定作用域的所有状态实例\n * \n * @param scope - 状态作用域\n */\n destroyScope(scope: StateScope): void {\n const instances = this.scopeMap.get(scope);\n if (!instances) {\n return;\n }\n\n // 销毁所有实例\n for (const instance of instances) {\n instance.destroy();\n this.instanceToScopeMap.delete(instance);\n }\n\n // 清理作用域映射\n this.scopeMap.delete(scope);\n }\n\n /**\n * 销毁所有作用域和状态实例\n */\n destroyAll(): void {\n // 销毁所有实例\n for (const instances of this.scopeMap.values()) {\n for (const instance of instances) {\n instance.destroy();\n }\n }\n\n // 清理所有映射\n this.scopeMap.clear();\n this.instanceToScopeMap.clear();\n }\n\n /**\n * 获取所有作用域\n * \n * @returns 作用域数组\n */\n getAllScopes(): StateScope[] {\n return Array.from(this.scopeMap.keys());\n }\n\n /**\n * 获取作用域数量\n */\n getScopeCount(): number {\n return this.scopeMap.size;\n }\n\n /**\n * 获取总实例数量\n */\n getInstanceCount(): number {\n return this.instanceToScopeMap.size;\n }\n}\n"],"names":["StateScopeManager","register","instance","scope","existingScope","instanceToScopeMap","get","unregister","scopeMap","has","set","Set","instances","add","delete","size","getInstances","Array","from","getScope","destroyScope","destroy","destroyAll","values","clear","getAllScopes","keys","getScopeCount","getInstanceCount","Map"],"mappings":"AAAA;;CAEC;;;;;;;;;;;;;AAKD;;;;CAIC,GACD,OAAO,MAAMA;IAWX;;;;;GAKC,GACDC,SAASC,QAAwB,EAAEC,KAAiB,EAAQ;QAC1D,iBAAiB;QACjB,MAAMC,gBAAgB,IAAI,CAACC,kBAAkB,CAACC,GAAG,CAACJ;QAClD,IAAIE,eAAe;YACjB,IAAI,CAACG,UAAU,CAACL;QAClB;QAEA,UAAU;QACV,IAAI,CAAC,IAAI,CAACM,QAAQ,CAACC,GAAG,CAACN,QAAQ;YAC7B,IAAI,CAACK,QAAQ,CAACE,GAAG,CAACP,OAAO,IAAIQ;QAC/B;QAEA,MAAMC,YAAY,IAAI,CAACJ,QAAQ,CAACF,GAAG,CAACH;QACpCS,UAAUC,GAAG,CAACX;QACd,IAAI,CAACG,kBAAkB,CAACK,GAAG,CAACR,UAAUC;IACxC;IAEA;;;;GAIC,GACDI,WAAWL,QAAwB,EAAQ;QACzC,MAAMC,QAAQ,IAAI,CAACE,kBAAkB,CAACC,GAAG,CAACJ;QAC1C,IAAI,CAACC,OAAO;YACV;QACF;QAEA,MAAMS,YAAY,IAAI,CAACJ,QAAQ,CAACF,GAAG,CAACH;QACpC,IAAIS,WAAW;YACbA,UAAUE,MAAM,CAACZ;YACjB,eAAe;YACf,IAAIU,UAAUG,IAAI,KAAK,GAAG;gBACxB,IAAI,CAACP,QAAQ,CAACM,MAAM,CAACX;YACvB;QACF;QAEA,IAAI,CAACE,kBAAkB,CAACS,MAAM,CAACZ;IACjC;IAEA;;;;;GAKC,GACDc,aAAab,KAAiB,EAAoB;QAChD,MAAMS,YAAY,IAAI,CAACJ,QAAQ,CAACF,GAAG,CAACH;QACpC,OAAOS,YAAYK,MAAMC,IAAI,CAACN,aAAa,EAAE;IAC/C;IAEA;;;;;GAKC,GACDO,SAASjB,QAAwB,EAA0B;QACzD,OAAO,IAAI,CAACG,kBAAkB,CAACC,GAAG,CAACJ;IACrC;IAEA;;;;GAIC,GACDkB,aAAajB,KAAiB,EAAQ;QACpC,MAAMS,YAAY,IAAI,CAACJ,QAAQ,CAACF,GAAG,CAACH;QACpC,IAAI,CAACS,WAAW;YACd;QACF;QAEA,SAAS;QACT,KAAK,MAAMV,YAAYU,UAAW;YAChCV,SAASmB,OAAO;YAChB,IAAI,CAAChB,kBAAkB,CAACS,MAAM,CAACZ;QACjC;QAEA,UAAU;QACV,IAAI,CAACM,QAAQ,CAACM,MAAM,CAACX;IACvB;IAEA;;GAEC,GACDmB,aAAmB;QACjB,SAAS;QACT,KAAK,MAAMV,aAAa,IAAI,CAACJ,QAAQ,CAACe,MAAM,GAAI;YAC9C,KAAK,MAAMrB,YAAYU,UAAW;gBAChCV,SAASmB,OAAO;YAClB;QACF;QAEA,SAAS;QACT,IAAI,CAACb,QAAQ,CAACgB,KAAK;QACnB,IAAI,CAACnB,kBAAkB,CAACmB,KAAK;IAC/B;IAEA;;;;GAIC,GACDC,eAA6B;QAC3B,OAAOR,MAAMC,IAAI,CAAC,IAAI,CAACV,QAAQ,CAACkB,IAAI;IACtC;IAEA;;GAEC,GACDC,gBAAwB;QACtB,OAAO,IAAI,CAACnB,QAAQ,CAACO,IAAI;IAC3B;IAEA;;GAEC,GACDa,mBAA2B;QACzB,OAAO,IAAI,CAACvB,kBAAkB,CAACU,IAAI;IACrC;;QAvIA;;GAEC,GACD,uBAAiBP,YAAiD,IAAIqB;QAEtE;;GAEC,GACD,uBAAiBxB,sBAAsD,IAAIwB;;AAgI7E"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/state/core/index.ts"],"sourcesContent":["/**\n * 状态管理器核心模块导出\n */\n\nexport { StateInstance } from './StateInstance';\nexport { StateScopeManager } from './StateScope';\nexport { StateRegistry } from './StateRegistry';\nexport { DerivedStateInstance } from './DerivedStateInstance';\n"],"names":["DerivedStateInstance","StateInstance","StateRegistry","StateScopeManager"],"mappings":"AAAA;;CAEC;;;;;;;;;;;QAKQA;eAAAA,0CAAoB;;QAHpBC;eAAAA,4BAAa;;QAEbC;eAAAA,4BAAa;;QADbC;eAAAA,6BAAiB;;;+BADI;4BACI;+BACJ;sCACO"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/state/core/index.ts"],"sourcesContent":["/**\n * 状态管理器核心模块导出\n */\n\nexport { StateInstance } from './StateInstance';\nexport { StateScopeManager } from './StateScope';\nexport { StateRegistry } from './StateRegistry';\nexport { DerivedStateInstance } from './DerivedStateInstance';\n"],"names":["StateInstance","StateScopeManager","StateRegistry","DerivedStateInstance"],"mappings":"AAAA;;CAEC,GAED,SAASA,aAAa,QAAQ,kBAAkB;AAChD,SAASC,iBAAiB,QAAQ,eAAe;AACjD,SAASC,aAAa,QAAQ,kBAAkB;AAChD,SAASC,oBAAoB,QAAQ,yBAAyB"}
|
package/dist/state/index.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/state/index.ts"],"sourcesContent":["/**\n * 状态管理器模块统一导出\n */\n\n// 导出核心类型\nexport * from './types';\n\n// 导出核心实现\nexport * from './core';\n\n// 导出适配器\nexport * from './adapters';\n\n// 导出状态管理器\nexport { StateManager } from './StateManager';\nexport type { IStateManager } from './StateManager';\n"],"names":["StateManager"],"mappings":"AAAA;;CAEC,GAED,SAAS;;;;;+BAUAA;;;eAAAA,0BAAY;;;qBATP;qBAGA;qBAGA;8BAGe"}
|
package/dist/state/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/state/index.ts"],"sourcesContent":["/**\n * 状态管理器模块统一导出\n */\n\n// 导出核心类型\nexport * from './types';\n\n// 导出核心实现\nexport * from './core';\n\n// 导出适配器\nexport * from './adapters';\n\n// 导出状态管理器\nexport { StateManager } from './StateManager';\nexport type { IStateManager } from './StateManager';\n"],"names":["StateManager"],"mappings":"AAAA;;CAEC,GAED,SAAS;AACT,cAAc,UAAU;AAExB,SAAS;AACT,cAAc,SAAS;AAEvB,QAAQ;AACR,cAAc,aAAa;AAE3B,UAAU;AACV,SAASA,YAAY,QAAQ,iBAAiB"}
|
package/dist/state/types.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/state/types.ts"],"sourcesContent":["/**\n * 状态管理器类型定义\n */\n\n/**\n * 状态更新函数类型\n * \n * @template T - 状态值类型\n * @param current - 当前状态值\n * @returns 新的状态值\n */\nexport type StateUpdater<T> = (current: T) => T;\n\n/**\n * 状态订阅回调函数类型\n * \n * @template T - 状态值类型\n * @param value - 新的状态值\n * @param previous - 之前的状态值\n */\nexport type StateSubscriber<T> = (value: T, previous: T) => void;\n\n/**\n * 取消订阅函数类型\n */\nexport type Unsubscribe = () => void;\n\n/**\n * 状态作用域标识符\n */\nexport type StateScope = string | symbol;\n\n/**\n * 状态实例标识符\n */\nexport type StateInstanceId = string | symbol;\n\n/**\n * 状态实例配置选项\n */\nexport interface StateInstanceOptions {\n /**\n * 状态实例标识符\n */\n id?: StateInstanceId;\n \n /**\n * 状态作用域\n */\n scope?: StateScope;\n \n /**\n * 是否启用开发模式(用于调试)\n */\n devMode?: boolean;\n \n /**\n * 状态变更时的中间件函数\n */\n middleware?: Array<(value: unknown, previous: unknown) => unknown>;\n}\n\n/**\n * 状态实例核心接口\n * \n * 这是状态管理器的最小抽象接口,不绑定任何具体实现\n * \n * @template T - 状态值类型\n */\nexport interface IStateInstance<T = unknown> {\n /**\n * 获取当前状态值\n * \n * @returns 当前状态值\n */\n get(): T;\n\n /**\n * 更新状态值\n * \n * @param value - 新的状态值或更新函数\n */\n set(value: T | StateUpdater<T>): void;\n\n /**\n * 订阅状态变化\n * \n * @param subscriber - 订阅回调函数\n * @returns 取消订阅函数\n */\n subscribe(subscriber: StateSubscriber<T>): Unsubscribe;\n\n /**\n * 获取状态实例标识符\n */\n getId(): StateInstanceId;\n\n /**\n * 获取状态作用域\n */\n getScope(): StateScope | undefined;\n\n /**\n * 销毁状态实例,清理所有订阅和资源\n */\n destroy(): void;\n\n /**\n * 检查状态实例是否已销毁\n */\n isDestroyed(): boolean;\n}\n\n/**\n * 状态适配器接口\n * \n * 适配器负责将外部状态库映射到 Secra 状态抽象\n * \n * @template T - 状态值类型\n */\nexport interface IStateAdapter {\n /**\n * 创建状态实例\n * \n * @param initialValue - 初始状态值\n * @param options - 状态实例配置选项\n * @returns 状态实例\n */\n createInstance<T>(initialValue: T, options?: StateInstanceOptions): IStateInstance<T>;\n\n /**\n * 销毁适配器,清理所有资源\n */\n destroy(): void;\n\n /**\n * 获取适配器名称(用于调试和日志)\n */\n getName(): string;\n}\n\n/**\n * 状态注册表接口\n */\nexport interface IStateRegistry {\n /**\n * 注册状态实例\n * \n * @param instance - 状态实例\n */\n register(instance: IStateInstance): void;\n\n /**\n * 注销状态实例\n * \n * @param id - 状态实例标识符\n */\n unregister(id: StateInstanceId): void;\n\n /**\n * 根据标识符获取状态实例\n * \n * @param id - 状态实例标识符\n * @returns 状态实例,如果不存在则返回 undefined\n */\n getInstance(id: StateInstanceId): IStateInstance | undefined;\n\n /**\n * 根据作用域获取所有状态实例\n * \n * @param scope - 状态作用域\n * @returns 状态实例数组\n */\n getInstancesByScope(scope: StateScope): IStateInstance[];\n\n /**\n * 获取所有状态实例\n * \n * @returns 状态实例数组\n */\n getAllInstances(): IStateInstance[];\n\n /**\n * 销毁指定作用域的所有状态实例\n * \n * @param scope - 状态作用域\n */\n destroyScope(scope: StateScope): void;\n\n /**\n * 销毁所有状态实例\n */\n destroyAll(): void;\n\n /**\n * 获取注册表中的实例数量\n */\n size(): number;\n}\n\n/**\n * 派生状态配置\n */\nexport interface DerivedStateConfig<T, D extends readonly IStateInstance[]> {\n /**\n * 依赖的状态实例数组\n */\n dependencies: D;\n\n /**\n * 派生函数,根据依赖状态计算派生状态\n * \n * @param values - 依赖状态的当前值数组\n * @returns 派生状态值\n */\n derive: (values: { [K in keyof D]: D[K] extends IStateInstance<infer V> ? V : never }) => T;\n\n /**\n * 是否启用相等性检查(避免不必要的更新)\n */\n equalityCheck?: (a: T, b: T) => boolean;\n}\n\n/**\n * 派生状态实例接口\n * \n * @template T - 派生状态值类型\n */\nexport interface IDerivedStateInstance<T = unknown> extends IStateInstance<T> {\n /**\n * 获取依赖的状态实例\n */\n getDependencies(): readonly IStateInstance[];\n\n /**\n * 手动重新计算派生状态\n */\n recompute(): void;\n}\n\n/**\n * 状态管理器配置选项\n */\nexport interface StateManagerOptions {\n /**\n * 默认状态适配器\n */\n defaultAdapter?: IStateAdapter;\n\n /**\n * 是否启用全局注册表\n */\n enableRegistry?: boolean;\n\n /**\n * 默认作用域\n */\n defaultScope?: StateScope;\n\n /**\n * 是否启用开发模式\n */\n devMode?: boolean;\n}\n"],"names":[],"mappings":"AAAA;;CAEC,GAED;;;;;;CAMC"}
|
package/dist/state/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/state/types.ts"],"sourcesContent":["/**\n * 状态管理器类型定义\n */\n\n/**\n * 状态更新函数类型\n * \n * @template T - 状态值类型\n * @param current - 当前状态值\n * @returns 新的状态值\n */\nexport type StateUpdater<T> = (current: T) => T;\n\n/**\n * 状态订阅回调函数类型\n * \n * @template T - 状态值类型\n * @param value - 新的状态值\n * @param previous - 之前的状态值\n */\nexport type StateSubscriber<T> = (value: T, previous: T) => void;\n\n/**\n * 取消订阅函数类型\n */\nexport type Unsubscribe = () => void;\n\n/**\n * 状态作用域标识符\n */\nexport type StateScope = string | symbol;\n\n/**\n * 状态实例标识符\n */\nexport type StateInstanceId = string | symbol;\n\n/**\n * 状态实例配置选项\n */\nexport interface StateInstanceOptions {\n /**\n * 状态实例标识符\n */\n id?: StateInstanceId;\n \n /**\n * 状态作用域\n */\n scope?: StateScope;\n \n /**\n * 是否启用开发模式(用于调试)\n */\n devMode?: boolean;\n \n /**\n * 状态变更时的中间件函数\n */\n middleware?: Array<(value: unknown, previous: unknown) => unknown>;\n}\n\n/**\n * 状态实例核心接口\n * \n * 这是状态管理器的最小抽象接口,不绑定任何具体实现\n * \n * @template T - 状态值类型\n */\nexport interface IStateInstance<T = unknown> {\n /**\n * 获取当前状态值\n * \n * @returns 当前状态值\n */\n get(): T;\n\n /**\n * 更新状态值\n * \n * @param value - 新的状态值或更新函数\n */\n set(value: T | StateUpdater<T>): void;\n\n /**\n * 订阅状态变化\n * \n * @param subscriber - 订阅回调函数\n * @returns 取消订阅函数\n */\n subscribe(subscriber: StateSubscriber<T>): Unsubscribe;\n\n /**\n * 获取状态实例标识符\n */\n getId(): StateInstanceId;\n\n /**\n * 获取状态作用域\n */\n getScope(): StateScope | undefined;\n\n /**\n * 销毁状态实例,清理所有订阅和资源\n */\n destroy(): void;\n\n /**\n * 检查状态实例是否已销毁\n */\n isDestroyed(): boolean;\n}\n\n/**\n * 状态适配器接口\n * \n * 适配器负责将外部状态库映射到 Secra 状态抽象\n * \n * @template T - 状态值类型\n */\nexport interface IStateAdapter {\n /**\n * 创建状态实例\n * \n * @param initialValue - 初始状态值\n * @param options - 状态实例配置选项\n * @returns 状态实例\n */\n createInstance<T>(initialValue: T, options?: StateInstanceOptions): IStateInstance<T>;\n\n /**\n * 销毁适配器,清理所有资源\n */\n destroy(): void;\n\n /**\n * 获取适配器名称(用于调试和日志)\n */\n getName(): string;\n}\n\n/**\n * 状态注册表接口\n */\nexport interface IStateRegistry {\n /**\n * 注册状态实例\n * \n * @param instance - 状态实例\n */\n register(instance: IStateInstance): void;\n\n /**\n * 注销状态实例\n * \n * @param id - 状态实例标识符\n */\n unregister(id: StateInstanceId): void;\n\n /**\n * 根据标识符获取状态实例\n * \n * @param id - 状态实例标识符\n * @returns 状态实例,如果不存在则返回 undefined\n */\n getInstance(id: StateInstanceId): IStateInstance | undefined;\n\n /**\n * 根据作用域获取所有状态实例\n * \n * @param scope - 状态作用域\n * @returns 状态实例数组\n */\n getInstancesByScope(scope: StateScope): IStateInstance[];\n\n /**\n * 获取所有状态实例\n * \n * @returns 状态实例数组\n */\n getAllInstances(): IStateInstance[];\n\n /**\n * 销毁指定作用域的所有状态实例\n * \n * @param scope - 状态作用域\n */\n destroyScope(scope: StateScope): void;\n\n /**\n * 销毁所有状态实例\n */\n destroyAll(): void;\n\n /**\n * 获取注册表中的实例数量\n */\n size(): number;\n}\n\n/**\n * 派生状态配置\n */\nexport interface DerivedStateConfig<T, D extends readonly IStateInstance[]> {\n /**\n * 依赖的状态实例数组\n */\n dependencies: D;\n\n /**\n * 派生函数,根据依赖状态计算派生状态\n * \n * @param values - 依赖状态的当前值数组\n * @returns 派生状态值\n */\n derive: (values: { [K in keyof D]: D[K] extends IStateInstance<infer V> ? V : never }) => T;\n\n /**\n * 是否启用相等性检查(避免不必要的更新)\n */\n equalityCheck?: (a: T, b: T) => boolean;\n}\n\n/**\n * 派生状态实例接口\n * \n * @template T - 派生状态值类型\n */\nexport interface IDerivedStateInstance<T = unknown> extends IStateInstance<T> {\n /**\n * 获取依赖的状态实例\n */\n getDependencies(): readonly IStateInstance[];\n\n /**\n * 手动重新计算派生状态\n */\n recompute(): void;\n}\n\n/**\n * 状态管理器配置选项\n */\nexport interface StateManagerOptions {\n /**\n * 默认状态适配器\n */\n defaultAdapter?: IStateAdapter;\n\n /**\n * 是否启用全局注册表\n */\n enableRegistry?: boolean;\n\n /**\n * 默认作用域\n */\n defaultScope?: StateScope;\n\n /**\n * 是否启用开发模式\n */\n devMode?: boolean;\n}\n"],"names":[],"mappings":"AAAA;;CAEC,GAED;;;;;;CAMC,GAsOD;;CAEC,GACD,WAoBC"}
|
package/dist/state.umd.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"state.umd.js","sources":["state/core/StateInstance.js","state/core/StateScope.js","state/core/StateRegistry.js","state/core/DerivedStateInstance.js","state/adapters/DefaultAdapter.js","state/adapters/AdapterFactory.js","state/adapters/ReduxAdapter.js","state/adapters/ZustandAdapter.js","state/StateManager.js"],"sourcesContent":["/**\n * 状态实例核心实现\n */ function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\n/**\n * 基础状态实例实现\n * \n * 这是一个通用的状态实例实现,不依赖任何外部状态管理库\n * \n * @template T - 状态值类型\n */ export class StateInstance {\n /**\n * 获取当前状态值\n */ get() {\n if (this.destroyed) {\n throw new Error(`StateInstance ${String(this.id)} has been destroyed`);\n }\n return this.value;\n }\n /**\n * 更新状态值\n */ set(valueOrUpdater) {\n if (this.destroyed) {\n throw new Error(`StateInstance ${String(this.id)} has been destroyed`);\n }\n const previousValue = this.value;\n let newValue;\n // 处理函数式更新\n if (typeof valueOrUpdater === 'function') {\n newValue = valueOrUpdater(this.value);\n } else {\n newValue = valueOrUpdater;\n }\n // 应用中间件\n let processedValue = newValue;\n for (const middleware of this.middleware){\n processedValue = middleware(processedValue, previousValue);\n }\n // 如果值没有变化,跳过更新\n if (processedValue === this.value) {\n return;\n }\n this.value = processedValue;\n if (this.devMode) {\n console.debug(`[StateInstance] Updated: ${String(this.id)}`, {\n previous: previousValue,\n current: this.value\n });\n }\n // 通知所有订阅者\n this.notifySubscribers(this.value, previousValue);\n }\n /**\n * 订阅状态变化\n */ subscribe(subscriber) {\n if (this.destroyed) {\n throw new Error(`StateInstance ${String(this.id)} has been destroyed`);\n }\n this.subscribers.add(subscriber);\n if (this.devMode) {\n console.debug(`[StateInstance] Subscribed: ${String(this.id)}`, {\n subscriberCount: this.subscribers.size\n });\n }\n // 返回取消订阅函数\n return ()=>{\n this.subscribers.delete(subscriber);\n if (this.devMode) {\n console.debug(`[StateInstance] Unsubscribed: ${String(this.id)}`, {\n subscriberCount: this.subscribers.size\n });\n }\n };\n }\n /**\n * 获取状态实例标识符\n */ getId() {\n return this.id;\n }\n /**\n * 获取状态作用域\n */ getScope() {\n return this.scope;\n }\n /**\n * 销毁状态实例\n */ destroy() {\n if (this.destroyed) {\n return;\n }\n this.destroyed = true;\n this.subscribers.clear();\n this.value = undefined;\n if (this.devMode) {\n console.debug(`[StateInstance] Destroyed: ${String(this.id)}`);\n }\n }\n /**\n * 检查状态实例是否已销毁\n */ isDestroyed() {\n return this.destroyed;\n }\n /**\n * 通知所有订阅者\n */ notifySubscribers(value, previous) {\n // 使用数组副本避免在迭代过程中修改集合\n const subscribers = Array.from(this.subscribers);\n for (const subscriber of subscribers){\n try {\n subscriber(value, previous);\n } catch (error) {\n console.error(`[StateInstance] Error in subscriber for ${String(this.id)}:`, error);\n }\n }\n }\n /**\n * 构造函数\n * \n * @param initialValue - 初始状态值\n * @param options - 状态实例配置选项\n */ constructor(initialValue, options = {}){\n /**\n * 状态实例标识符\n */ _define_property(this, \"id\", void 0);\n /**\n * 状态作用域\n */ _define_property(this, \"scope\", void 0);\n /**\n * 当前状态值\n */ _define_property(this, \"value\", void 0);\n /**\n * 订阅者集合\n */ _define_property(this, \"subscribers\", new Set());\n /**\n * 是否已销毁\n */ _define_property(this, \"destroyed\", false);\n /**\n * 开发模式标志\n */ _define_property(this, \"devMode\", void 0);\n /**\n * 中间件函数数组\n */ _define_property(this, \"middleware\", void 0);\n this.value = initialValue;\n this.id = options.id ?? Symbol('StateInstance');\n this.scope = options.scope;\n this.devMode = options.devMode ?? false;\n this.middleware = options.middleware ?? [];\n if (this.devMode) {\n console.debug(`[StateInstance] Created: ${String(this.id)}`, {\n scope: this.scope,\n initialValue: this.value\n });\n }\n }\n}\n\n//# sourceMappingURL=StateInstance.js.map","/**\n * 状态作用域管理\n */ function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\n/**\n * 状态作用域管理器\n * \n * 负责管理状态作用域的创建、销毁和查询\n */ export class StateScopeManager {\n /**\n * 注册状态实例到作用域\n * \n * @param instance - 状态实例\n * @param scope - 状态作用域\n */ register(instance, scope) {\n // 如果实例已经有作用域,先移除\n const existingScope = this.instanceToScopeMap.get(instance);\n if (existingScope) {\n this.unregister(instance);\n }\n // 添加到新作用域\n if (!this.scopeMap.has(scope)) {\n this.scopeMap.set(scope, new Set());\n }\n const instances = this.scopeMap.get(scope);\n instances.add(instance);\n this.instanceToScopeMap.set(instance, scope);\n }\n /**\n * 注销状态实例\n * \n * @param instance - 状态实例\n */ unregister(instance) {\n const scope = this.instanceToScopeMap.get(instance);\n if (!scope) {\n return;\n }\n const instances = this.scopeMap.get(scope);\n if (instances) {\n instances.delete(instance);\n // 如果作用域为空,清理映射\n if (instances.size === 0) {\n this.scopeMap.delete(scope);\n }\n }\n this.instanceToScopeMap.delete(instance);\n }\n /**\n * 根据作用域获取所有状态实例\n * \n * @param scope - 状态作用域\n * @returns 状态实例数组\n */ getInstances(scope) {\n const instances = this.scopeMap.get(scope);\n return instances ? Array.from(instances) : [];\n }\n /**\n * 获取状态实例的作用域\n * \n * @param instance - 状态实例\n * @returns 状态作用域,如果不存在则返回 undefined\n */ getScope(instance) {\n return this.instanceToScopeMap.get(instance);\n }\n /**\n * 销毁指定作用域的所有状态实例\n * \n * @param scope - 状态作用域\n */ destroyScope(scope) {\n const instances = this.scopeMap.get(scope);\n if (!instances) {\n return;\n }\n // 销毁所有实例\n for (const instance of instances){\n instance.destroy();\n this.instanceToScopeMap.delete(instance);\n }\n // 清理作用域映射\n this.scopeMap.delete(scope);\n }\n /**\n * 销毁所有作用域和状态实例\n */ destroyAll() {\n // 销毁所有实例\n for (const instances of this.scopeMap.values()){\n for (const instance of instances){\n instance.destroy();\n }\n }\n // 清理所有映射\n this.scopeMap.clear();\n this.instanceToScopeMap.clear();\n }\n /**\n * 获取所有作用域\n * \n * @returns 作用域数组\n */ getAllScopes() {\n return Array.from(this.scopeMap.keys());\n }\n /**\n * 获取作用域数量\n */ getScopeCount() {\n return this.scopeMap.size;\n }\n /**\n * 获取总实例数量\n */ getInstanceCount() {\n return this.instanceToScopeMap.size;\n }\n constructor(){\n /**\n * 作用域到状态实例的映射\n */ _define_property(this, \"scopeMap\", new Map());\n /**\n * 状态实例到作用域的映射(用于快速查找)\n */ _define_property(this, \"instanceToScopeMap\", new Map());\n }\n}\n\n//# sourceMappingURL=StateScope.js.map","/**\n * 状态注册表实现\n */ function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nimport { StateScopeManager } from \"./StateScope\";\n/**\n * 状态注册表\n * \n * 负责管理所有状态实例的注册、查询和销毁\n */ export class StateRegistry {\n /**\n * 注册状态实例\n */ register(instance) {\n const id = instance.getId();\n if (this.instances.has(id)) {\n console.warn(`[StateRegistry] Instance with id ${String(id)} already exists, replacing...`);\n }\n this.instances.set(id, instance);\n // 如果实例有作用域,注册到作用域管理器\n const scope = instance.getScope();\n if (scope) {\n this.scopeManager.register(instance, scope);\n }\n }\n /**\n * 注销状态实例\n */ unregister(id) {\n const instance = this.instances.get(id);\n if (!instance) {\n return;\n }\n // 从作用域管理器注销\n this.scopeManager.unregister(instance);\n // 销毁实例\n instance.destroy();\n // 从注册表移除\n this.instances.delete(id);\n }\n /**\n * 根据标识符获取状态实例\n */ getInstance(id) {\n return this.instances.get(id);\n }\n /**\n * 根据作用域获取所有状态实例\n */ getInstancesByScope(scope) {\n return this.scopeManager.getInstances(scope);\n }\n /**\n * 获取所有状态实例\n */ getAllInstances() {\n return Array.from(this.instances.values());\n }\n /**\n * 销毁指定作用域的所有状态实例\n */ destroyScope(scope) {\n const instances = this.scopeManager.getInstances(scope);\n // 销毁所有实例\n for (const instance of instances){\n instance.destroy();\n this.instances.delete(instance.getId());\n }\n // 从作用域管理器清理\n this.scopeManager.destroyScope(scope);\n }\n /**\n * 销毁所有状态实例\n */ destroyAll() {\n // 销毁所有实例\n for (const instance of this.instances.values()){\n instance.destroy();\n }\n // 清理所有映射\n this.instances.clear();\n this.scopeManager.destroyAll();\n }\n /**\n * 获取注册表中的实例数量\n */ size() {\n return this.instances.size;\n }\n /**\n * 构造函数\n */ constructor(){\n /**\n * 状态实例映射表(ID -> Instance)\n */ _define_property(this, \"instances\", new Map());\n /**\n * 作用域管理器\n */ _define_property(this, \"scopeManager\", void 0);\n this.scopeManager = new StateScopeManager();\n }\n}\n\n//# sourceMappingURL=StateRegistry.js.map","/**\n * 派生状态实例实现\n */ function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\n/**\n * 派生状态实例\n * \n * 派生状态不直接存储值,而是基于依赖状态自动计算\n * \n * @template T - 派生状态值类型\n * @template D - 依赖状态实例数组类型\n */ export class DerivedStateInstance {\n /**\n * 获取当前状态值\n */ get() {\n if (this.destroyed) {\n throw new Error(`DerivedStateInstance ${String(this.id)} has been destroyed`);\n }\n return this.value;\n }\n /**\n * 派生状态不支持直接设置值\n */ set(_valueOrUpdater) {\n throw new Error('Derived state cannot be set directly. Modify the dependency states instead.');\n }\n /**\n * 订阅状态变化\n */ subscribe(subscriber) {\n if (this.destroyed) {\n throw new Error(`DerivedStateInstance ${String(this.id)} has been destroyed`);\n }\n this.subscribers.add(subscriber);\n // 返回取消订阅函数\n return ()=>{\n this.subscribers.delete(subscriber);\n };\n }\n /**\n * 获取状态实例标识符\n */ getId() {\n return this.id;\n }\n /**\n * 获取状态作用域\n */ getScope() {\n return this.scope;\n }\n /**\n * 获取依赖的状态实例\n */ getDependencies() {\n return this.config.dependencies;\n }\n /**\n * 手动重新计算派生状态\n */ recompute() {\n if (this.destroyed || this.recomputing) {\n return;\n }\n this.recomputing = true;\n try {\n // 获取所有依赖状态的当前值\n const dependencyValues = this.config.dependencies.map((dep)=>dep.get());\n // 计算新的派生值\n const newValue = this.config.derive(dependencyValues);\n // 检查值是否变化\n const hasChanged = this.config.equalityCheck ? !this.config.equalityCheck(this.value, newValue) : this.value !== newValue;\n if (hasChanged) {\n const previousValue = this.value;\n this.value = newValue;\n // 通知所有订阅者\n this.notifySubscribers(this.value, previousValue);\n }\n } catch (error) {\n console.error(`[DerivedStateInstance] Error recomputing ${String(this.id)}:`, error);\n } finally{\n this.recomputing = false;\n }\n }\n /**\n * 销毁状态实例\n */ destroy() {\n if (this.destroyed) {\n return;\n }\n this.destroyed = true;\n // 取消所有依赖订阅\n for (const unsubscribe of this.dependencyUnsubscribes){\n unsubscribe();\n }\n this.dependencyUnsubscribes.length = 0;\n // 清理订阅者\n this.subscribers.clear();\n }\n /**\n * 检查状态实例是否已销毁\n */ isDestroyed() {\n return this.destroyed;\n }\n /**\n * 设置依赖状态订阅\n */ setupDependencies() {\n for (const dependency of this.config.dependencies){\n const unsubscribe = dependency.subscribe(()=>{\n // 当依赖状态变化时,重新计算派生状态\n this.recompute();\n });\n this.dependencyUnsubscribes.push(unsubscribe);\n }\n }\n /**\n * 通知所有订阅者\n */ notifySubscribers(value, previous) {\n const subscribers = Array.from(this.subscribers);\n for (const subscriber of subscribers){\n try {\n subscriber(value, previous);\n } catch (error) {\n console.error(`[DerivedStateInstance] Error in subscriber for ${String(this.id)}:`, error);\n }\n }\n }\n /**\n * 构造函数\n * \n * @param config - 派生状态配置\n * @param options - 状态实例配置选项\n */ constructor(config, options = {}){\n /**\n * 状态实例标识符\n */ _define_property(this, \"id\", void 0);\n /**\n * 状态作用域\n */ _define_property(this, \"scope\", void 0);\n /**\n * 派生状态配置\n */ _define_property(this, \"config\", void 0);\n /**\n * 当前派生值\n */ _define_property(this, \"value\", void 0);\n /**\n * 订阅者集合\n */ _define_property(this, \"subscribers\", new Set());\n /**\n * 依赖状态的取消订阅函数数组\n */ _define_property(this, \"dependencyUnsubscribes\", []);\n /**\n * 是否已销毁\n */ _define_property(this, \"destroyed\", false);\n /**\n * 是否正在重新计算\n */ _define_property(this, \"recomputing\", false);\n this.config = config;\n this.id = options.id ?? Symbol('DerivedStateInstance');\n this.scope = options.scope;\n // 订阅所有依赖状态的变化\n this.setupDependencies();\n // 初始计算\n this.recompute();\n }\n}\n\n//# sourceMappingURL=DerivedStateInstance.js.map","/**\n * 默认状态适配器\n * \n * 这是 Secra Framework 内置的默认状态适配器实现\n * 不依赖任何外部状态管理库,提供基础的状态管理能力\n */ function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nimport { StateInstance } from \"../core/StateInstance\";\n/**\n * 默认状态适配器\n * \n * 使用框架内置的 StateInstance 实现\n */ export class DefaultAdapter {\n /**\n * 创建状态实例\n */ createInstance(initialValue, options) {\n if (this.destroyed) {\n throw new Error('Adapter has been destroyed');\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 this.instances.add(instance);\n return instance;\n }\n /**\n * 销毁适配器\n */ destroy() {\n if (this.destroyed) {\n return;\n }\n // 销毁所有创建的状态实例\n for (const instance of this.instances){\n instance.destroy();\n }\n this.instances.clear();\n this.destroyed = true;\n }\n /**\n * 获取适配器名称\n */ getName() {\n return this.name;\n }\n constructor(){\n /**\n * 适配器名称\n */ _define_property(this, \"name\", 'DefaultAdapter');\n /**\n * 是否已销毁\n */ _define_property(this, \"destroyed\", false);\n /**\n * 创建的状态实例集合(用于销毁时清理)\n */ _define_property(this, \"instances\", new Set());\n }\n}\n\n//# sourceMappingURL=DefaultAdapter.js.map","/**\n * 状态适配器工厂\n */ function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nimport { DefaultAdapter } from \"./DefaultAdapter\";\n/**\n * 适配器工厂\n * \n * 负责创建和管理状态适配器实例\n */ export class AdapterFactory {\n /**\n * 获取默认适配器\n */ static getDefaultAdapter() {\n if (!this.defaultAdapter) {\n this.defaultAdapter = new DefaultAdapter();\n }\n return this.defaultAdapter;\n }\n /**\n * 创建适配器实例\n * \n * @param adapterName - 适配器名称,如果不提供则使用默认适配器\n * @returns 适配器实例\n */ static createAdapter(adapterName) {\n if (!adapterName) {\n return this.getDefaultAdapter();\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 return factory();\n }\n /**\n * 注册自定义适配器\n * \n * @param name - 适配器名称\n * @param factory - 适配器工厂函数\n */ static registerAdapter(name, factory) {\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 * @param name - 适配器名称\n */ static unregisterAdapter(name) {\n this.customAdapters.delete(name);\n }\n /**\n * 获取所有已注册的适配器名称\n */ static getRegisteredAdapters() {\n return Array.from(this.customAdapters.keys());\n }\n /**\n * 重置工厂(主要用于测试)\n */ static reset() {\n if (this.defaultAdapter) {\n this.defaultAdapter.destroy();\n this.defaultAdapter = null;\n }\n this.customAdapters.clear();\n }\n}\n/**\n * 默认适配器实例\n */ _define_property(AdapterFactory, \"defaultAdapter\", null);\n/**\n * 自定义适配器映射\n */ _define_property(AdapterFactory, \"customAdapters\", new Map());\n\n//# sourceMappingURL=AdapterFactory.js.map","/**\n * Redux Toolkit 适配器\n * \n * 将 Redux Toolkit store 映射到 Secra 状态抽象\n * \n * 使用说明:\n * 1. 需要安装 @reduxjs/toolkit 作为 peerDependency\n * 2. 每个状态实例对应一个 Redux slice\n * 3. 支持 Redux DevTools 集成(如果可用)\n * 4. 支持中间件和开发模式\n * \n * @example\n * ```typescript\n * import { ReduxAdapter } from '@vlian/framework/state';\n * \n * const adapter = new ReduxAdapter({ devMode: true });\n * const state = adapter.createInstance(0, { id: 'counter' });\n * \n * state.set(1);\n * console.log(state.get()); // 1\n * ```\n */ function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\n/**\n * Redux 状态实例实现\n * \n * 将 Redux slice 映射到 IStateInstance 接口\n * \n * @template T - 状态值类型\n */ let ReduxStateInstance = class ReduxStateInstance {\n /**\n * 获取当前状态值\n */ get() {\n if (this.destroyed) {\n throw new Error(`ReduxStateInstance ${String(this.id)} has been destroyed`);\n }\n const state = this.store.getState();\n return state[this.sliceName] ?? this.previousValue;\n }\n /**\n * 更新状态值\n */ set(valueOrUpdater) {\n if (this.destroyed) {\n throw new Error(`ReduxStateInstance ${String(this.id)} has been destroyed`);\n }\n const currentValue = this.get();\n let newValue;\n // 处理函数式更新\n if (typeof valueOrUpdater === 'function') {\n newValue = valueOrUpdater(currentValue);\n } else {\n newValue = valueOrUpdater;\n }\n // 应用中间件\n let processedValue = newValue;\n for (const middleware of this.middleware){\n processedValue = middleware(processedValue, currentValue);\n }\n // 如果值没有变化,跳过更新\n if (processedValue === currentValue) {\n return;\n }\n // 保存之前的值\n this.previousValue = currentValue;\n // 通过 Redux action 更新状态\n const action = this.actions.setValue(processedValue);\n this.store.dispatch(action);\n if (this.devMode) {\n console.debug(`[ReduxStateInstance] Updated: ${String(this.id)}`, {\n previous: currentValue,\n current: processedValue,\n action\n });\n }\n }\n /**\n * 订阅状态变化\n */ subscribe(subscriber) {\n if (this.destroyed) {\n throw new Error(`ReduxStateInstance ${String(this.id)} has been destroyed`);\n }\n this.subscribers.add(subscriber);\n if (this.devMode) {\n console.debug(`[ReduxStateInstance] Subscribed: ${String(this.id)}`, {\n subscriberCount: this.subscribers.size\n });\n }\n // 返回取消订阅函数\n return ()=>{\n this.subscribers.delete(subscriber);\n if (this.devMode) {\n console.debug(`[ReduxStateInstance] Unsubscribed: ${String(this.id)}`, {\n subscriberCount: this.subscribers.size\n });\n }\n };\n }\n /**\n * 获取状态实例标识符\n */ getId() {\n return this.id;\n }\n /**\n * 获取状态作用域\n */ getScope() {\n return this.scope;\n }\n /**\n * 销毁状态实例\n */ destroy() {\n if (this.destroyed) {\n return;\n }\n this.destroyed = true;\n // 取消 Redux store 订阅\n if (this.unsubscribeStore) {\n this.unsubscribeStore();\n this.unsubscribeStore = undefined;\n }\n // 清理订阅者\n this.subscribers.clear();\n if (this.devMode) {\n console.debug(`[ReduxStateInstance] Destroyed: ${String(this.id)}`);\n }\n }\n /**\n * 检查状态实例是否已销毁\n */ isDestroyed() {\n return this.destroyed;\n }\n /**\n * 通知所有订阅者\n */ notifySubscribers() {\n if (this.destroyed) {\n return;\n }\n try {\n const currentValue = this.get();\n // 如果值没有变化,跳过通知\n if (currentValue === this.previousValue) {\n return;\n }\n const previousValue = this.previousValue;\n this.previousValue = currentValue;\n // 使用数组副本避免在迭代过程中修改集合\n const subscribers = Array.from(this.subscribers);\n for (const subscriber of subscribers){\n try {\n subscriber(currentValue, previousValue);\n } catch (error) {\n console.error(`[ReduxStateInstance] Error in subscriber for ${String(this.id)}:`, error);\n }\n }\n } catch (error) {\n console.error(`[ReduxStateInstance] Error getting state for ${String(this.id)}:`, error);\n }\n }\n /**\n * 构造函数\n * \n * @param store - Redux store 实例\n * @param sliceName - Redux slice 名称\n * @param actions - Redux slice actions\n * @param initialValue - 初始状态值\n * @param options - 状态实例配置选项\n */ constructor(store, sliceName, actions, initialValue, options = {}){\n /**\n * 状态实例标识符\n */ _define_property(this, \"id\", void 0);\n /**\n * 状态作用域\n */ _define_property(this, \"scope\", void 0);\n /**\n * Redux store 引用\n */ _define_property(this, \"store\", void 0);\n /**\n * Redux slice 名称(在 store 中的路径)\n */ _define_property(this, \"sliceName\", void 0);\n /**\n * Redux slice actions\n */ _define_property(this, \"actions\", void 0);\n /**\n * 订阅者集合\n */ _define_property(this, \"subscribers\", new Set());\n /**\n * Redux store 订阅取消函数\n */ _define_property(this, \"unsubscribeStore\", void 0);\n /**\n * 是否已销毁\n */ _define_property(this, \"destroyed\", false);\n /**\n * 开发模式标志\n */ _define_property(this, \"devMode\", void 0);\n /**\n * 中间件函数数组\n */ _define_property(this, \"middleware\", void 0);\n /**\n * 上一次的状态值(用于订阅通知)\n */ _define_property(this, \"previousValue\", void 0);\n this.store = store;\n this.sliceName = sliceName;\n this.actions = actions;\n this.id = options.id ?? Symbol('ReduxStateInstance');\n this.scope = options.scope;\n this.devMode = options.devMode ?? false;\n this.middleware = options.middleware ?? [];\n this.previousValue = initialValue;\n // 订阅 Redux store 变化\n this.unsubscribeStore = this.store.subscribe(()=>{\n this.notifySubscribers();\n });\n if (this.devMode) {\n console.debug(`[ReduxStateInstance] Created: ${String(this.id)}`, {\n scope: this.scope,\n sliceName: this.sliceName,\n initialValue\n });\n }\n }\n};\n/**\n * 动态 Reducer 管理器\n * \n * 用于管理动态添加和移除的 Redux reducer\n */ let DynamicReducerManager = class DynamicReducerManager {\n /**\n * 添加 reducer\n */ addReducer(key, reducer) {\n this.reducers.set(key, reducer);\n }\n /**\n * 移除 reducer\n */ removeReducer(key) {\n this.reducers.delete(key);\n }\n /**\n * 获取根 reducer\n */ getRootReducer() {\n return this.rootReducer;\n }\n /**\n * 检查 reducer 是否存在\n */ hasReducer(key) {\n return this.reducers.has(key);\n }\n /**\n * 构造函数\n */ constructor(){\n /**\n * 当前 reducer 映射\n */ _define_property(this, \"reducers\", new Map());\n /**\n * 根 reducer 函数\n */ _define_property(this, \"rootReducer\", void 0);\n this.rootReducer = (state, action)=>{\n const stateRecord = state ?? {};\n const newState = {\n ...stateRecord\n };\n // 处理每个 reducer\n for (const [key, reducer] of this.reducers.entries()){\n newState[key] = reducer(stateRecord[key], action);\n }\n return newState;\n };\n }\n};\n/**\n * Redux Toolkit 适配器\n * \n * 将 Redux Toolkit store 映射到 Secra 状态抽象\n */ export class ReduxAdapter {\n /**\n * 检查 Redux 是否可用\n */ checkReduxAvailable() {\n // 这里不抛出错误,允许延迟加载\n // 实际使用时会在 createInstance 时检查\n }\n /**\n * 获取或创建 Redux store\n */ getOrCreateStore() {\n if (this.store) {\n return this.store;\n }\n // 尝试创建 Redux store\n try {\n // 动态导入 Redux Toolkit\n // 注意:这里使用类型断言,实际运行时需要确保 Redux 已安装\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const { configureStore } = require('@reduxjs/toolkit');\n this.store = configureStore({\n reducer: this.reducerManager.getRootReducer(),\n devTools: this.devMode,\n middleware: undefined\n });\n if (this.devMode) {\n console.debug('[ReduxAdapter] Redux store created');\n }\n return this.store;\n } catch (error) {\n throw new Error('ReduxAdapter requires @reduxjs/toolkit to be installed. ' + 'Please install it: npm install @reduxjs/toolkit\\n' + `Original error: ${error instanceof Error ? error.message : String(error)}`);\n }\n }\n /**\n * 创建 Redux slice\n */ createSlice(sliceName, initialValue) {\n try {\n // 动态导入 Redux Toolkit\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const { createSlice } = require('@reduxjs/toolkit');\n const slice = createSlice({\n name: sliceName,\n initialState: initialValue,\n reducers: {\n setValue: (_state, action)=>{\n return action.payload ?? initialValue;\n }\n }\n });\n return slice;\n } catch (error) {\n throw new Error('ReduxAdapter requires @reduxjs/toolkit to be installed. ' + 'Please install it: npm install @reduxjs/toolkit\\n' + `Original error: ${error instanceof Error ? error.message : String(error)}`);\n }\n }\n /**\n * 创建状态实例\n */ createInstance(initialValue, options) {\n if (this.destroyed) {\n throw new Error('ReduxAdapter has been destroyed');\n }\n // 获取或创建 Redux store\n const store = this.getOrCreateStore();\n // 生成唯一的 slice 名称\n const sliceName = options?.id ? `secra_${String(options.id)}` : `secra_slice_${++this.sliceCounter}`;\n // 创建 Redux slice\n const slice = this.createSlice(sliceName, initialValue);\n // 将 slice reducer 添加到动态 reducer 管理器\n if (!this.reducerManager.hasReducer(sliceName)) {\n this.reducerManager.addReducer(sliceName, slice.reducer);\n // 更新 store 的 reducer(使用 replaceReducer)\n store.replaceReducer(this.reducerManager.getRootReducer());\n }\n // 创建状态实例\n const instance = new ReduxStateInstance(store, sliceName, slice.actions, initialValue, {\n id: options?.id,\n scope: options?.scope,\n devMode: options?.devMode ?? this.devMode,\n middleware: options?.middleware\n });\n this.instances.add(instance);\n this.sliceToInstance.set(sliceName, instance);\n if (this.devMode) {\n console.debug(`[ReduxAdapter] Created instance: ${String(instance.getId())}`, {\n sliceName,\n scope: options?.scope\n });\n }\n return instance;\n }\n /**\n * 销毁适配器\n */ destroy() {\n if (this.destroyed) {\n return;\n }\n // 销毁所有创建的状态实例\n for (const instance of this.instances){\n instance.destroy();\n }\n // 从 reducer 管理器中移除所有 reducer\n for (const sliceName of this.sliceToInstance.keys()){\n this.reducerManager.removeReducer(sliceName);\n }\n // 更新 store 的 reducer\n if (this.store) {\n this.store.replaceReducer(this.reducerManager.getRootReducer());\n }\n this.instances.clear();\n this.sliceToInstance.clear();\n this.store = null;\n this.destroyed = true;\n if (this.devMode) {\n console.debug('[ReduxAdapter] Destroyed');\n }\n }\n /**\n * 获取适配器名称\n */ getName() {\n return this.name;\n }\n /**\n * 构造函数\n * \n * @param options - 适配器配置选项\n */ constructor(options){\n /**\n * 适配器名称\n */ _define_property(this, \"name\", 'ReduxAdapter');\n /**\n * 是否已销毁\n */ _define_property(this, \"destroyed\", false);\n /**\n * 创建的状态实例集合\n */ _define_property(this, \"instances\", new Set());\n /**\n * Redux store 实例\n */ _define_property(this, \"store\", null);\n /**\n * Redux slice 名称计数器(用于生成唯一的 slice 名称)\n */ _define_property(this, \"sliceCounter\", 0);\n /**\n * Redux slice 名称到状态实例的映射\n */ _define_property(this, \"sliceToInstance\", new Map());\n /**\n * 动态 reducer 管理器\n */ _define_property(this, \"reducerManager\", void 0);\n /**\n * 是否启用开发模式\n */ _define_property(this, \"devMode\", void 0);\n this.devMode = options?.devMode ?? false;\n this.reducerManager = new DynamicReducerManager();\n this.store = options?.store ?? null;\n // 检查 Redux 是否可用\n this.checkReduxAvailable();\n }\n}\n\n//# sourceMappingURL=ReduxAdapter.js.map","/**\n * Zustand 适配器(占位实现)\n * \n * 这是一个适配器接口示例,展示如何将 Zustand 集成到 Secra 状态管理器\n * \n * ⚠️ 注意:这是一个占位实现,实际使用时需要安装 zustand 依赖\n */ function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\n/**\n * Zustand 适配器\n * \n * 将 Zustand store 映射到 Secra 状态抽象\n * \n * ⚠️ 这是一个占位实现,实际使用时需要:\n * 1. 安装 zustand\n * 2. 实现完整的 Zustand store 集成\n * 3. 将 Zustand store 的方法映射到 IStateInstance 接口\n */ export class ZustandAdapter {\n /**\n * 创建状态实例\n * \n * ⚠️ 占位实现:实际使用时需要创建 Zustand store 并映射到 IStateInstance\n */ createInstance(_initialValue, _options) {\n if (this.destroyed) {\n throw new Error('Adapter has been destroyed');\n }\n throw new Error('ZustandAdapter is a placeholder implementation. ' + 'To use Zustand, you need to:\\n' + '1. Install zustand\\n' + '2. Implement a complete Zustand store integration\\n' + '3. Map Zustand store methods to IStateInstance interface\\n' + 'See docs/state-manager.md for implementation guide.');\n }\n /**\n * 销毁适配器\n */ destroy() {\n if (this.destroyed) {\n return;\n }\n for (const instance of this.instances){\n instance.destroy();\n }\n this.instances.clear();\n this.destroyed = true;\n }\n /**\n * 获取适配器名称\n */ getName() {\n return this.name;\n }\n constructor(){\n /**\n * 适配器名称\n */ _define_property(this, \"name\", 'ZustandAdapter');\n /**\n * 是否已销毁\n */ _define_property(this, \"destroyed\", false);\n /**\n * 创建的状态实例集合\n */ _define_property(this, \"instances\", new Set());\n }\n}\n\n//# sourceMappingURL=ZustandAdapter.js.map","/**\n * 状态管理器主类\n * \n * 这是状态管理器的核心入口,提供统一的状态管理 API\n */ function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nimport { AdapterFactory } from \"./adapters/AdapterFactory\";\nimport { StateRegistry } from \"./core/StateRegistry\";\nimport { DerivedStateInstance } from \"./core/DerivedStateInstance\";\n/**\n * 状态管理器实现\n */ export class StateManager {\n /**\n * 创建状态实例\n */ createState(initialValue, options) {\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 devMode: options?.devMode ?? this.devMode\n };\n // 使用适配器创建状态实例\n const instance = this.adapter.createInstance(initialValue, mergedOptions);\n // 如果启用了注册表,注册实例\n if (this.registry) {\n // 类型转换:注册表接受 IStateInstance<unknown>,但实际类型是 IStateInstance<T>\n this.registry.register(instance);\n }\n return instance;\n }\n /**\n * 创建派生状态\n */ createDerivedState(config, options) {\n if (this.destroyed) {\n throw new Error('StateManager has been destroyed');\n }\n const mergedOptions = {\n ...options,\n scope: options?.scope ?? this.defaultScope\n };\n const instance = new DerivedStateInstance(config, mergedOptions);\n // 如果启用了注册表,注册实例\n if (this.registry) {\n this.registry.register(instance);\n }\n return instance;\n }\n /**\n * 获取状态实例(如果启用了注册表)\n */ getState(id) {\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 */ getStatesByScope(scope) {\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 */ getAllStates() {\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 */ destroyScope(scope) {\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 */ destroy() {\n if (this.destroyed) {\n return;\n }\n this.destroyed = true;\n // 销毁注册表中的所有实例\n if (this.registry) {\n this.registry.destroyAll();\n }\n // 销毁适配器\n this.adapter.destroy();\n if (this.devMode) {\n console.debug('[StateManager] Destroyed');\n }\n }\n /**\n * 检查状态管理器是否已销毁\n */ isDestroyed() {\n return this.destroyed;\n }\n /**\n * 获取当前使用的适配器\n */ getAdapter() {\n return this.adapter;\n }\n /**\n * 获取注册表(如果启用)\n */ getRegistry() {\n return this.registry;\n }\n /**\n * 构造函数\n * \n * @param options - 状态管理器配置选项\n */ constructor(options = {}){\n /**\n * 默认适配器\n */ _define_property(this, \"adapter\", void 0);\n /**\n * 状态注册表(如果启用)\n */ _define_property(this, \"registry\", void 0);\n /**\n * 默认作用域\n */ _define_property(this, \"defaultScope\", void 0);\n /**\n * 是否启用开发模式\n */ _define_property(this, \"devMode\", void 0);\n /**\n * 是否已销毁\n */ _define_property(this, \"destroyed\", false);\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 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//# sourceMappingURL=StateManager.js.map"],"names":["_define_property"],"mappings":"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"}
|
package/dist/types.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/dist/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type { StorageType } from '@vlian/utils';\nexport type StorageOptions = {\n prefix: string;\n defaultExpire: number;\n tableName?: string;\n type?: StorageType;\n};\n"],"names":[],"mappings":"AACA,WAKE"}
|