@vlian/framework 1.2.1 → 1.2.18
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/dist/analytics/index.cjs +24 -0
- package/dist/analytics/index.cjs.map +1 -0
- package/dist/analytics/index.d.ts +2 -0
- package/dist/analytics/index.js +3 -0
- package/dist/analytics/index.js.map +1 -0
- package/dist/analytics.umd.js +2406 -0
- package/dist/analytics.umd.js.map +1 -0
- package/dist/components/LocaleSwitch.cjs +118 -0
- package/dist/components/LocaleSwitch.cjs.map +1 -0
- package/dist/components/LocaleSwitch.d.ts +21 -0
- package/dist/components/LocaleSwitch.js +103 -0
- package/dist/components/LocaleSwitch.js.map +1 -0
- package/dist/components/ThemeSwitch.cjs +117 -0
- package/dist/components/ThemeSwitch.cjs.map +1 -0
- package/dist/components/ThemeSwitch.d.ts +20 -0
- package/dist/components/ThemeSwitch.js +102 -0
- package/dist/components/ThemeSwitch.js.map +1 -0
- package/dist/components/index.cjs +16 -0
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.d.ts +5 -2
- package/dist/components/index.js +2 -1
- package/dist/components/index.js.map +1 -1
- package/dist/components/persistence.cjs +60 -0
- package/dist/components/persistence.cjs.map +1 -0
- package/dist/components/persistence.d.ts +12 -0
- package/dist/components/persistence.js +39 -0
- package/dist/components/persistence.js.map +1 -0
- package/dist/core/Test.d.ts +0 -1
- package/dist/core/app/AppContext.cjs +36 -30
- package/dist/core/app/AppContext.cjs.map +1 -1
- package/dist/core/app/AppContext.d.ts +9 -6
- package/dist/core/app/AppContext.js +36 -30
- package/dist/core/app/AppContext.js.map +1 -1
- package/dist/core/app/AppContext.types.d.ts +9 -10
- package/dist/core/app/AppContext.types.js.map +1 -1
- package/dist/core/app/BasicLayout.cjs +57 -22
- package/dist/core/app/BasicLayout.cjs.map +1 -1
- package/dist/core/app/BasicLayout.d.ts +7 -5
- package/dist/core/app/BasicLayout.js +57 -22
- package/dist/core/app/BasicLayout.js.map +1 -1
- package/dist/core/app/DefaultApp.cjs +104 -153
- package/dist/core/app/DefaultApp.cjs.map +1 -1
- package/dist/core/app/DefaultApp.d.ts +0 -21
- package/dist/core/app/DefaultApp.js +104 -153
- package/dist/core/app/DefaultApp.js.map +1 -1
- package/dist/core/app/index.d.ts +0 -1
- package/dist/core/config/AppConfig.cjs.map +1 -1
- package/dist/core/config/AppConfig.d.ts +3 -4
- package/dist/core/config/AppConfig.js.map +1 -1
- package/dist/core/config/ConfigLoader.d.ts +0 -1
- package/dist/core/config/ConfigValidator.d.ts +0 -1
- package/dist/core/config/index.d.ts +0 -1
- package/dist/core/dev/DevTools.cjs +141 -287
- package/dist/core/dev/DevTools.cjs.map +1 -1
- package/dist/core/dev/DevTools.d.ts +1 -32
- package/dist/core/dev/DevTools.js +143 -296
- package/dist/core/dev/DevTools.js.map +1 -1
- package/dist/core/error/ErrorBoundary.cjs +72 -14
- package/dist/core/error/ErrorBoundary.cjs.map +1 -1
- package/dist/core/error/ErrorBoundary.d.ts +7 -9
- package/dist/core/error/ErrorBoundary.js +73 -15
- package/dist/core/error/ErrorBoundary.js.map +1 -1
- package/dist/core/error/ErrorHandler.d.ts +0 -1
- package/dist/core/error/index.d.ts +0 -1
- package/dist/core/event/AppEventBus.d.ts +0 -1
- package/dist/core/event/frameworkEvents.d.ts +0 -1
- package/dist/core/event/hooks.d.ts +0 -1
- package/dist/core/event/index.d.ts +0 -1
- package/dist/core/event/types.d.ts +0 -1
- package/dist/core/event/useEventBus.d.ts +0 -1
- package/dist/core/index.cjs +2 -0
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.d.ts +2 -1
- package/dist/core/index.js +2 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/initialization/InitializationErrorThrower.d.ts +0 -1
- package/dist/core/initialization/index.d.ts +0 -1
- package/dist/core/initialization/initialization.d.ts +0 -1
- package/dist/core/initialization/initializationErrorState.d.ts +0 -1
- package/dist/core/kernel/defaultAdapters.cjs +185 -0
- package/dist/core/kernel/defaultAdapters.cjs.map +1 -0
- package/dist/core/kernel/defaultAdapters.d.ts +2 -0
- package/dist/core/kernel/defaultAdapters.js +175 -0
- package/dist/core/kernel/defaultAdapters.js.map +1 -0
- package/dist/core/kernel/errors.cjs +71 -0
- package/dist/core/kernel/errors.cjs.map +1 -0
- package/dist/core/kernel/errors.d.ts +18 -0
- package/dist/core/kernel/errors.js +53 -0
- package/dist/core/kernel/errors.js.map +1 -0
- package/dist/core/kernel/index.cjs +22 -0
- package/dist/core/kernel/index.cjs.map +1 -0
- package/dist/core/kernel/index.d.ts +3 -0
- package/dist/core/kernel/index.js +4 -0
- package/dist/core/kernel/index.js.map +1 -0
- package/dist/core/kernel/startKernel.cjs +203 -0
- package/dist/core/kernel/startKernel.cjs.map +1 -0
- package/dist/core/kernel/startKernel.d.ts +2 -0
- package/dist/core/kernel/startKernel.js +193 -0
- package/dist/core/kernel/startKernel.js.map +1 -0
- package/dist/core/kernel/types.cjs +6 -0
- package/dist/core/kernel/types.cjs.map +1 -0
- package/dist/core/kernel/types.d.ts +114 -0
- package/dist/core/kernel/types.js +3 -0
- package/dist/core/kernel/types.js.map +1 -0
- package/dist/core/middleware.d.ts +0 -1
- package/dist/core/plugin/PluginEventBus.d.ts +0 -1
- package/dist/core/plugin/PluginSandbox.d.ts +0 -1
- package/dist/core/plugin.cjs +1 -1
- package/dist/core/plugin.cjs.map +1 -1
- package/dist/core/plugin.d.ts +0 -1
- package/dist/core/plugin.js +1 -1
- package/dist/core/plugin.js.map +1 -1
- package/dist/core/router/RouterManager.cjs +32 -2
- package/dist/core/router/RouterManager.cjs.map +1 -1
- package/dist/core/router/RouterManager.d.ts +5 -1
- package/dist/core/router/RouterManager.js +33 -3
- package/dist/core/router/RouterManager.js.map +1 -1
- package/dist/core/router/adapter/AdapterManager.d.ts +0 -1
- package/dist/core/router/adapter/index.d.ts +0 -1
- package/dist/core/router/adapter/react-router/ReactRouterAdapter.cjs.map +1 -1
- package/dist/core/router/adapter/react-router/ReactRouterAdapter.d.ts +0 -1
- package/dist/core/router/adapter/react-router/ReactRouterAdapter.js.map +1 -1
- package/dist/core/router/adapter/react-router/index.d.ts +0 -1
- package/dist/core/router/adapter/types.cjs.map +1 -1
- package/dist/core/router/adapter/types.d.ts +1 -2
- package/dist/core/router/adapter/types.js.map +1 -1
- package/dist/core/router/dev/RouterDevTools.cjs +148 -296
- package/dist/core/router/dev/RouterDevTools.cjs.map +1 -1
- package/dist/core/router/dev/RouterDevTools.d.ts +1 -6
- package/dist/core/router/dev/RouterDevTools.js +149 -301
- package/dist/core/router/dev/RouterDevTools.js.map +1 -1
- package/dist/core/router/dev/index.d.ts +0 -1
- package/dist/core/router/dynamic/DynamicRouteManager.d.ts +0 -1
- package/dist/core/router/dynamic/index.d.ts +0 -1
- package/dist/core/router/errors/RouterError.d.ts +0 -1
- package/dist/core/router/errors/index.d.ts +0 -1
- package/dist/core/router/index.d.ts +0 -1
- package/dist/core/router/lifecycle/RouterLifecycleManager.d.ts +0 -1
- package/dist/core/router/lifecycle/index.d.ts +0 -1
- package/dist/core/router/middleware/RouterMiddlewareManager.cjs +24 -4
- package/dist/core/router/middleware/RouterMiddlewareManager.cjs.map +1 -1
- package/dist/core/router/middleware/RouterMiddlewareManager.d.ts +1 -1
- package/dist/core/router/middleware/RouterMiddlewareManager.js +24 -4
- package/dist/core/router/middleware/RouterMiddlewareManager.js.map +1 -1
- package/dist/core/router/middleware/auth.d.ts +0 -1
- package/dist/core/router/middleware/index.d.ts +0 -1
- package/dist/core/router/middleware/types.cjs.map +1 -1
- package/dist/core/router/middleware/types.d.ts +1 -2
- package/dist/core/router/middleware/types.js.map +1 -1
- package/dist/core/router/monitoring/RouterMonitoring.d.ts +0 -1
- package/dist/core/router/monitoring/index.d.ts +0 -1
- package/dist/core/router/navigation/RouterNavigation.cjs +69 -14
- package/dist/core/router/navigation/RouterNavigation.cjs.map +1 -1
- package/dist/core/router/navigation/RouterNavigation.d.ts +3 -1
- package/dist/core/router/navigation/RouterNavigation.js +69 -14
- package/dist/core/router/navigation/RouterNavigation.js.map +1 -1
- package/dist/core/router/navigation/index.d.ts +0 -1
- package/dist/core/router/performance/RouteCache.cjs +34 -13
- package/dist/core/router/performance/RouteCache.cjs.map +1 -1
- package/dist/core/router/performance/RouteCache.d.ts +8 -3
- package/dist/core/router/performance/RouteCache.js +34 -13
- package/dist/core/router/performance/RouteCache.js.map +1 -1
- package/dist/core/router/performance/RoutePreloader.cjs +89 -22
- package/dist/core/router/performance/RoutePreloader.cjs.map +1 -1
- package/dist/core/router/performance/RoutePreloader.d.ts +9 -2
- package/dist/core/router/performance/RoutePreloader.js +89 -22
- package/dist/core/router/performance/RoutePreloader.js.map +1 -1
- package/dist/core/router/performance/index.d.ts +0 -1
- package/dist/core/router/plugin/RouterPluginManager.d.ts +0 -1
- package/dist/core/router/plugin/index.d.ts +0 -1
- package/dist/core/router/plugin/types.d.ts +0 -1
- package/dist/core/router/types.d.ts +23 -7
- package/dist/core/router/types.js.map +1 -1
- package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.cjs +90 -103
- package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.cjs.map +1 -1
- package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.d.ts +0 -1
- package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.js +91 -104
- package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.js.map +1 -1
- package/dist/core/router/utils/adapters/react-router/transform.cjs +45 -63
- package/dist/core/router/utils/adapters/react-router/transform.cjs.map +1 -1
- package/dist/core/router/utils/adapters/react-router/transform.d.ts +0 -1
- package/dist/core/router/utils/adapters/react-router/transform.js +46 -59
- package/dist/core/router/utils/adapters/react-router/transform.js.map +1 -1
- package/dist/core/router/utils/transform.cjs +80 -71
- package/dist/core/router/utils/transform.cjs.map +1 -1
- package/dist/core/router/utils/transform.d.ts +1 -2
- package/dist/core/router/utils/transform.js +81 -72
- package/dist/core/router/utils/transform.js.map +1 -1
- package/dist/core/router/validation/RouterConfigValidator.d.ts +66 -5
- package/dist/core/router/validation/index.d.ts +0 -1
- package/dist/core/router/validation/schema.cjs +71 -2
- package/dist/core/router/validation/schema.cjs.map +1 -1
- package/dist/core/router/validation/schema.d.ts +102 -7
- package/dist/core/router/validation/schema.js +71 -2
- package/dist/core/router/validation/schema.js.map +1 -1
- package/dist/core/router/version/RouteVersionManager.d.ts +0 -1
- package/dist/core/router/version/index.d.ts +0 -1
- package/dist/core/splash/SplashScreen.cjs +101 -15
- package/dist/core/splash/SplashScreen.cjs.map +1 -1
- package/dist/core/splash/SplashScreen.d.ts +0 -1
- package/dist/core/splash/SplashScreen.js +101 -15
- package/dist/core/splash/SplashScreen.js.map +1 -1
- package/dist/core/splash/index.d.ts +0 -1
- package/dist/core/splash/splashScreenUtils.d.ts +0 -1
- package/dist/core/startup/AppInstance.d.ts +0 -1
- package/dist/core/startup/environment.d.ts +0 -1
- package/dist/core/startup/index.d.ts +0 -1
- package/dist/core/startup/initializeServices.d.ts +0 -1
- package/dist/core/startup/performanceTracker.d.ts +0 -1
- package/dist/core/startup/renderApp.cjs +12 -10
- package/dist/core/startup/renderApp.cjs.map +1 -1
- package/dist/core/startup/renderApp.d.ts +0 -1
- package/dist/core/startup/renderApp.js +12 -10
- package/dist/core/startup/renderApp.js.map +1 -1
- package/dist/core/startup/startApp.cjs +118 -13
- package/dist/core/startup/startApp.cjs.map +1 -1
- package/dist/core/startup/startApp.d.ts +0 -1
- package/dist/core/startup/startApp.js +118 -13
- package/dist/core/startup/startApp.js.map +1 -1
- package/dist/core/types.d.ts +34 -21
- package/dist/core/types.js.map +1 -1
- package/dist/core/ui-adapter/adapters.cjs +45 -0
- package/dist/core/ui-adapter/adapters.cjs.map +1 -0
- package/dist/core/ui-adapter/adapters.d.ts +4 -0
- package/dist/core/ui-adapter/adapters.js +27 -0
- package/dist/core/ui-adapter/adapters.js.map +1 -0
- package/dist/core/ui-adapter/index.cjs +21 -0
- package/dist/core/ui-adapter/index.cjs.map +1 -0
- package/dist/core/ui-adapter/index.d.ts +2 -0
- package/dist/core/ui-adapter/index.js +3 -0
- package/dist/core/ui-adapter/index.js.map +1 -0
- package/dist/core/ui-adapter/types.cjs +6 -0
- package/dist/core/ui-adapter/types.cjs.map +1 -0
- package/dist/core/ui-adapter/types.d.ts +24 -0
- package/dist/core/ui-adapter/types.js +3 -0
- package/dist/core/ui-adapter/types.js.map +1 -0
- package/dist/index.cjs +1 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/index.umd.d.ts +0 -1
- package/dist/index.umd.js +7684 -6056
- package/dist/index.umd.js.map +1 -1
- package/dist/library/index.d.ts +0 -1
- package/dist/library/locale/index.d.ts +0 -1
- package/dist/library/locale/langs/en-us/index.d.ts +0 -1
- package/dist/library/locale/langs/zh-cn/index.d.ts +0 -1
- package/dist/library/locale/types.d.ts +0 -1
- package/dist/library/storage/cache.d.ts +0 -1
- package/dist/library/storage/encryption.d.ts +0 -1
- package/dist/library/storage/index.d.ts +0 -1
- package/dist/request/adapter/RequestAdapter.d.ts +0 -1
- package/dist/request/adapter/axiosAdapter.d.ts +0 -1
- package/dist/request/adapter/fetchAdapter.d.ts +0 -1
- package/dist/request/adapter/index.d.ts +0 -1
- package/dist/request/adapter/kyAdapter.d.ts +0 -1
- package/dist/request/adapter/undiciAdapter.d.ts +0 -1
- package/dist/request/core/RequestClient.d.ts +0 -1
- package/dist/request/core/index.d.ts +0 -1
- package/dist/request/index.d.ts +0 -1
- package/dist/request/plugin/RequestPlugin.d.ts +0 -1
- package/dist/request/plugin/cache.d.ts +0 -1
- package/dist/request/plugin/csrfPlugin.d.ts +0 -1
- package/dist/request/plugin/index.d.ts +0 -1
- package/dist/request/plugin/monitoring.d.ts +0 -1
- package/dist/request/plugin/queue.d.ts +0 -1
- package/dist/request/plugin/retry.d.ts +0 -1
- package/dist/request/plugin/validation.d.ts +0 -1
- package/dist/request/runtime/RequestContext.d.ts +0 -1
- package/dist/request/runtime/index.d.ts +0 -1
- package/dist/request/types.d.ts +0 -1
- package/dist/request/utils/RequestQueueManager.d.ts +0 -1
- package/dist/request/utils/dependencyCheck.d.ts +0 -1
- package/dist/request/utils/index.d.ts +0 -1
- package/dist/request.umd.js +5392 -0
- package/dist/request.umd.js.map +1 -0
- package/dist/state/StateManager.d.ts +0 -1
- package/dist/state/adapters/AdapterFactory.d.ts +0 -1
- package/dist/state/adapters/DefaultAdapter.d.ts +0 -1
- package/dist/state/adapters/ReduxAdapter.d.ts +0 -1
- package/dist/state/adapters/ZustandAdapter.d.ts +0 -1
- package/dist/state/adapters/index.d.ts +0 -1
- package/dist/state/adapters/types.d.ts +0 -1
- package/dist/state/core/DerivedStateInstance.d.ts +0 -1
- package/dist/state/core/StateInstance.d.ts +0 -1
- package/dist/state/core/StateRegistry.d.ts +0 -1
- package/dist/state/core/StateScope.d.ts +0 -1
- package/dist/state/core/index.d.ts +0 -1
- package/dist/state/index.d.ts +0 -1
- package/dist/state/types.d.ts +0 -1
- package/dist/state.umd.js +1414 -0
- package/dist/state.umd.js.map +1 -0
- package/dist/types.d.ts +0 -1
- package/dist/utils/analytics.d.ts +0 -1
- package/dist/utils/configSecurity.d.ts +0 -1
- package/dist/utils/csrf.d.ts +0 -1
- package/dist/utils/errors/ErrorCodes.d.ts +0 -1
- package/dist/utils/errors.cjs +44 -1
- package/dist/utils/errors.cjs.map +1 -1
- package/dist/utils/errors.d.ts +5 -1
- package/dist/utils/errors.js +44 -1
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/index.d.ts +0 -1
- package/dist/utils/logger.d.ts +0 -1
- package/dist/utils/logger.types.d.ts +0 -1
- package/dist/utils/monitoring.d.ts +0 -1
- package/dist/utils/performance.d.ts +0 -1
- package/dist/utils/resourceLoader.d.ts +0 -1
- package/dist/utils/runtimeSecurity.d.ts +0 -1
- package/dist/utils/security.d.ts +0 -1
- package/dist/utils/traceId.d.ts +0 -1
- package/dist/utils/validation.d.ts +0 -1
- package/package.json +24 -9
- package/dist/components/index.d.ts.map +0 -1
- package/dist/core/Test.d.ts.map +0 -1
- package/dist/core/app/AppContext.d.ts.map +0 -1
- package/dist/core/app/AppContext.types.d.ts.map +0 -1
- package/dist/core/app/BasicLayout.d.ts.map +0 -1
- package/dist/core/app/DefaultApp.d.ts.map +0 -1
- package/dist/core/app/index.d.ts.map +0 -1
- package/dist/core/config/AppConfig.d.ts.map +0 -1
- package/dist/core/config/ConfigLoader.d.ts.map +0 -1
- package/dist/core/config/ConfigValidator.d.ts.map +0 -1
- package/dist/core/config/index.d.ts.map +0 -1
- package/dist/core/dev/DevTools.d.ts.map +0 -1
- package/dist/core/error/ErrorBoundary.d.ts.map +0 -1
- package/dist/core/error/ErrorHandler.d.ts.map +0 -1
- package/dist/core/error/index.d.ts.map +0 -1
- package/dist/core/event/AppEventBus.d.ts.map +0 -1
- package/dist/core/event/frameworkEvents.d.ts.map +0 -1
- package/dist/core/event/hooks.d.ts.map +0 -1
- package/dist/core/event/index.d.ts.map +0 -1
- package/dist/core/event/types.d.ts.map +0 -1
- package/dist/core/event/useEventBus.d.ts.map +0 -1
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/initialization/InitializationErrorThrower.d.ts.map +0 -1
- package/dist/core/initialization/index.d.ts.map +0 -1
- package/dist/core/initialization/initialization.d.ts.map +0 -1
- package/dist/core/initialization/initializationErrorState.d.ts.map +0 -1
- package/dist/core/middleware.d.ts.map +0 -1
- package/dist/core/plugin/PluginEventBus.d.ts.map +0 -1
- package/dist/core/plugin/PluginSandbox.d.ts.map +0 -1
- package/dist/core/plugin.d.ts.map +0 -1
- package/dist/core/router/RouterManager.d.ts.map +0 -1
- package/dist/core/router/adapter/AdapterManager.d.ts.map +0 -1
- package/dist/core/router/adapter/index.d.ts.map +0 -1
- package/dist/core/router/adapter/react-router/ReactRouterAdapter.d.ts.map +0 -1
- package/dist/core/router/adapter/react-router/index.d.ts.map +0 -1
- package/dist/core/router/adapter/types.d.ts.map +0 -1
- package/dist/core/router/dev/RouterDevTools.d.ts.map +0 -1
- package/dist/core/router/dev/index.d.ts.map +0 -1
- package/dist/core/router/dynamic/DynamicRouteManager.d.ts.map +0 -1
- package/dist/core/router/dynamic/index.d.ts.map +0 -1
- package/dist/core/router/errors/RouterError.d.ts.map +0 -1
- package/dist/core/router/errors/index.d.ts.map +0 -1
- package/dist/core/router/index.d.ts.map +0 -1
- package/dist/core/router/lifecycle/RouterLifecycleManager.d.ts.map +0 -1
- package/dist/core/router/lifecycle/index.d.ts.map +0 -1
- package/dist/core/router/middleware/RouterMiddlewareManager.d.ts.map +0 -1
- package/dist/core/router/middleware/auth.d.ts.map +0 -1
- package/dist/core/router/middleware/index.d.ts.map +0 -1
- package/dist/core/router/middleware/types.d.ts.map +0 -1
- package/dist/core/router/monitoring/RouterMonitoring.d.ts.map +0 -1
- package/dist/core/router/monitoring/index.d.ts.map +0 -1
- package/dist/core/router/navigation/RouterNavigation.d.ts.map +0 -1
- package/dist/core/router/navigation/index.d.ts.map +0 -1
- package/dist/core/router/performance/RouteCache.d.ts.map +0 -1
- package/dist/core/router/performance/RoutePreloader.d.ts.map +0 -1
- package/dist/core/router/performance/index.d.ts.map +0 -1
- package/dist/core/router/plugin/RouterPluginManager.d.ts.map +0 -1
- package/dist/core/router/plugin/index.d.ts.map +0 -1
- package/dist/core/router/plugin/types.d.ts.map +0 -1
- package/dist/core/router/types.d.ts.map +0 -1
- package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.d.ts.map +0 -1
- package/dist/core/router/utils/adapters/react-router/transform.d.ts.map +0 -1
- package/dist/core/router/utils/transform.d.ts.map +0 -1
- package/dist/core/router/validation/RouterConfigValidator.d.ts.map +0 -1
- package/dist/core/router/validation/index.d.ts.map +0 -1
- package/dist/core/router/validation/schema.d.ts.map +0 -1
- package/dist/core/router/version/RouteVersionManager.d.ts.map +0 -1
- package/dist/core/router/version/index.d.ts.map +0 -1
- package/dist/core/splash/SplashScreen.d.ts.map +0 -1
- package/dist/core/splash/index.d.ts.map +0 -1
- package/dist/core/splash/splashScreenUtils.d.ts.map +0 -1
- package/dist/core/startup/AppInstance.d.ts.map +0 -1
- package/dist/core/startup/environment.d.ts.map +0 -1
- package/dist/core/startup/index.d.ts.map +0 -1
- package/dist/core/startup/initializeServices.d.ts.map +0 -1
- package/dist/core/startup/performanceTracker.d.ts.map +0 -1
- package/dist/core/startup/renderApp.d.ts.map +0 -1
- package/dist/core/startup/startApp.d.ts.map +0 -1
- package/dist/core/types.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.umd.d.ts.map +0 -1
- package/dist/library/index.d.ts.map +0 -1
- package/dist/library/locale/index.d.ts.map +0 -1
- package/dist/library/locale/langs/en-us/index.d.ts.map +0 -1
- package/dist/library/locale/langs/zh-cn/index.d.ts.map +0 -1
- package/dist/library/locale/types.d.ts.map +0 -1
- package/dist/library/storage/cache.d.ts.map +0 -1
- package/dist/library/storage/encryption.d.ts.map +0 -1
- package/dist/library/storage/index.d.ts.map +0 -1
- package/dist/request/adapter/RequestAdapter.d.ts.map +0 -1
- package/dist/request/adapter/axiosAdapter.d.ts.map +0 -1
- package/dist/request/adapter/fetchAdapter.d.ts.map +0 -1
- package/dist/request/adapter/index.d.ts.map +0 -1
- package/dist/request/adapter/kyAdapter.d.ts.map +0 -1
- package/dist/request/adapter/undiciAdapter.d.ts.map +0 -1
- package/dist/request/core/RequestClient.d.ts.map +0 -1
- package/dist/request/core/index.d.ts.map +0 -1
- package/dist/request/index.d.ts.map +0 -1
- package/dist/request/plugin/RequestPlugin.d.ts.map +0 -1
- package/dist/request/plugin/cache.d.ts.map +0 -1
- package/dist/request/plugin/csrfPlugin.d.ts.map +0 -1
- package/dist/request/plugin/index.d.ts.map +0 -1
- package/dist/request/plugin/monitoring.d.ts.map +0 -1
- package/dist/request/plugin/queue.d.ts.map +0 -1
- package/dist/request/plugin/retry.d.ts.map +0 -1
- package/dist/request/plugin/validation.d.ts.map +0 -1
- package/dist/request/runtime/RequestContext.d.ts.map +0 -1
- package/dist/request/runtime/index.d.ts.map +0 -1
- package/dist/request/types.d.ts.map +0 -1
- package/dist/request/utils/RequestQueueManager.d.ts.map +0 -1
- package/dist/request/utils/dependencyCheck.d.ts.map +0 -1
- package/dist/request/utils/index.d.ts.map +0 -1
- package/dist/state/StateManager.d.ts.map +0 -1
- package/dist/state/adapters/AdapterFactory.d.ts.map +0 -1
- package/dist/state/adapters/DefaultAdapter.d.ts.map +0 -1
- package/dist/state/adapters/ReduxAdapter.d.ts.map +0 -1
- package/dist/state/adapters/ZustandAdapter.d.ts.map +0 -1
- package/dist/state/adapters/index.d.ts.map +0 -1
- package/dist/state/adapters/types.d.ts.map +0 -1
- package/dist/state/core/DerivedStateInstance.d.ts.map +0 -1
- package/dist/state/core/StateInstance.d.ts.map +0 -1
- package/dist/state/core/StateRegistry.d.ts.map +0 -1
- package/dist/state/core/StateScope.d.ts.map +0 -1
- package/dist/state/core/index.d.ts.map +0 -1
- package/dist/state/index.d.ts.map +0 -1
- package/dist/state/types.d.ts.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/utils/analytics.d.ts.map +0 -1
- package/dist/utils/configSecurity.d.ts.map +0 -1
- package/dist/utils/csrf.d.ts.map +0 -1
- package/dist/utils/errors/ErrorCodes.d.ts.map +0 -1
- package/dist/utils/errors.d.ts.map +0 -1
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.types.d.ts.map +0 -1
- package/dist/utils/monitoring.d.ts.map +0 -1
- package/dist/utils/performance.d.ts.map +0 -1
- package/dist/utils/resourceLoader.d.ts.map +0 -1
- package/dist/utils/runtimeSecurity.d.ts.map +0 -1
- package/dist/utils/security.d.ts.map +0 -1
- package/dist/utils/traceId.d.ts.map +0 -1
- package/dist/utils/validation.d.ts.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
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.d.ts
CHANGED
package/dist/utils/csrf.d.ts
CHANGED
package/dist/utils/errors.cjs
CHANGED
|
@@ -225,6 +225,49 @@ let SecurityError = class SecurityError extends FrameworkError {
|
|
|
225
225
|
};
|
|
226
226
|
const errorUtils = {
|
|
227
227
|
/**
|
|
228
|
+
* 安全地将未知错误转换为可展示的消息
|
|
229
|
+
* 避免 String(error) 对 null-prototype 对象再次抛错
|
|
230
|
+
*/ getSafeErrorMessage (error) {
|
|
231
|
+
if (typeof error === 'string') {
|
|
232
|
+
return error;
|
|
233
|
+
}
|
|
234
|
+
if (typeof error === 'number' || typeof error === 'boolean' || typeof error === 'bigint' || typeof error === 'symbol' || error === null || error === undefined) {
|
|
235
|
+
try {
|
|
236
|
+
return String(error);
|
|
237
|
+
} catch {
|
|
238
|
+
return 'Unknown error';
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
if (typeof error === 'object') {
|
|
242
|
+
try {
|
|
243
|
+
const maybeMessage = error.message;
|
|
244
|
+
if (typeof maybeMessage === 'string' && maybeMessage.trim()) {
|
|
245
|
+
return maybeMessage;
|
|
246
|
+
}
|
|
247
|
+
} catch {
|
|
248
|
+
// ignore
|
|
249
|
+
}
|
|
250
|
+
try {
|
|
251
|
+
const json = JSON.stringify(error);
|
|
252
|
+
if (json) {
|
|
253
|
+
return json;
|
|
254
|
+
}
|
|
255
|
+
} catch {
|
|
256
|
+
// ignore
|
|
257
|
+
}
|
|
258
|
+
try {
|
|
259
|
+
return `Non-Error throwable: ${Object.prototype.toString.call(error)}`;
|
|
260
|
+
} catch {
|
|
261
|
+
return 'Non-Error throwable';
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
try {
|
|
265
|
+
return String(error);
|
|
266
|
+
} catch {
|
|
267
|
+
return 'Unknown error';
|
|
268
|
+
}
|
|
269
|
+
},
|
|
270
|
+
/**
|
|
228
271
|
* 判断错误是否可恢复
|
|
229
272
|
*/ isRecoverable (error) {
|
|
230
273
|
if (error instanceof FrameworkError) {
|
|
@@ -259,7 +302,7 @@ const errorUtils = {
|
|
|
259
302
|
originalError: error
|
|
260
303
|
});
|
|
261
304
|
}
|
|
262
|
-
return new FrameworkError(
|
|
305
|
+
return new FrameworkError(errorUtils.getSafeErrorMessage(error), "UNKNOWN", "MEDIUM");
|
|
263
306
|
},
|
|
264
307
|
/**
|
|
265
308
|
* 提取错误信息
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/errors.ts"],"sourcesContent":["import { ErrorCode, getUserFriendlyMessage } from './errors/ErrorCodes';\n\n// 导出错误码相关类型和函数\nexport { ErrorCode, ErrorMessages, getErrorMessage, getUserFriendlyMessage } from './errors/ErrorCodes';\n\n/**\n * 错误类型枚举\n */\nexport enum ErrorType {\n /**\n * 初始化错误\n */\n INITIALIZATION = 'INITIALIZATION',\n /**\n * 配置错误\n */\n CONFIG = 'CONFIG',\n /**\n * 存储错误\n */\n STORAGE = 'STORAGE',\n /**\n * 网络错误\n */\n NETWORK = 'NETWORK',\n /**\n * 验证错误\n */\n VALIDATION = 'VALIDATION',\n /**\n * 安全错误\n */\n SECURITY = 'SECURITY',\n /**\n * 运行时错误\n */\n RUNTIME = 'RUNTIME',\n /**\n * 未知错误\n */\n UNKNOWN = 'UNKNOWN',\n}\n\n/**\n * 错误严重程度\n */\nexport enum ErrorSeverity {\n /**\n * 低 - 不影响核心功能\n */\n LOW = 'LOW',\n /**\n * 中 - 影响部分功能\n */\n MEDIUM = 'MEDIUM',\n /**\n * 高 - 影响核心功能\n */\n HIGH = 'HIGH',\n /**\n * 严重 - 导致应用无法使用\n */\n CRITICAL = 'CRITICAL',\n}\n\n/**\n * 框架错误基类\n */\nexport class FrameworkError extends Error {\n /**\n * 错误类型\n */\n public readonly type: ErrorType;\n\n /**\n * 错误严重程度\n */\n public readonly severity: ErrorSeverity;\n\n /**\n * 错误代码\n */\n public readonly code: string;\n\n /**\n * 原始错误\n */\n public readonly originalError?: Error;\n\n /**\n * 错误上下文\n */\n public readonly context?: Record<string, unknown>;\n\n /**\n * 是否可恢复\n */\n public readonly recoverable: boolean;\n\n constructor(\n message: string,\n type: ErrorType = ErrorType.UNKNOWN,\n severity: ErrorSeverity = ErrorSeverity.MEDIUM,\n options?: {\n code?: string;\n originalError?: Error;\n context?: Record<string, unknown>;\n recoverable?: boolean;\n }\n ) {\n super(message);\n this.name = 'FrameworkError';\n this.type = type;\n this.severity = severity;\n this.code = options?.code || `${type}_ERROR`;\n this.originalError = options?.originalError;\n this.context = options?.context;\n this.recoverable = options?.recoverable ?? false;\n\n // 保持正确的堆栈跟踪\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, FrameworkError);\n }\n }\n\n /**\n * 转换为 JSON\n */\n toJSON(): Record<string, unknown> {\n return {\n name: this.name,\n message: this.message,\n type: this.type,\n severity: this.severity,\n code: this.code,\n recoverable: this.recoverable,\n context: this.context,\n stack: this.stack,\n originalError: this.originalError\n ? {\n name: this.originalError.name,\n message: this.originalError.message,\n stack: this.originalError.stack,\n }\n : undefined,\n };\n }\n}\n\n/**\n * 初始化错误\n */\nexport class InitializationError extends FrameworkError {\n constructor(\n message: string,\n originalError?: Error,\n context?: Record<string, unknown>,\n errorCode?: ErrorCode\n ) {\n const code = errorCode || ErrorCode.INITIALIZATION_FAILED;\n super(getUserFriendlyMessage(code, message), ErrorType.INITIALIZATION, ErrorSeverity.CRITICAL, {\n code: ErrorCode[code],\n originalError,\n context,\n recoverable: false,\n });\n this.name = 'InitializationError';\n }\n}\n\n/**\n * 配置错误\n */\nexport class ConfigError extends FrameworkError {\n constructor(\n message: string,\n originalError?: Error,\n context?: Record<string, unknown>,\n errorCode?: ErrorCode\n ) {\n const code = errorCode || ErrorCode.CONFIG_LOAD_FAILED;\n super(getUserFriendlyMessage(code, message), ErrorType.CONFIG, ErrorSeverity.HIGH, {\n code: ErrorCode[code],\n originalError,\n context,\n recoverable: true,\n });\n this.name = 'ConfigError';\n }\n}\n\n/**\n * 存储错误\n */\nexport class StorageError extends FrameworkError {\n constructor(message: string, originalError?: Error, context?: Record<string, unknown>) {\n super(message, ErrorType.STORAGE, ErrorSeverity.MEDIUM, {\n code: 'STORAGE_ERROR',\n originalError,\n context,\n recoverable: true,\n });\n this.name = 'StorageError';\n }\n}\n\n/**\n * 网络错误\n */\nexport class NetworkError extends FrameworkError {\n constructor(\n message: string,\n originalError?: Error,\n context?: Record<string, unknown>,\n errorCode?: ErrorCode\n ) {\n const code = errorCode || ErrorCode.NETWORK_ERROR;\n super(getUserFriendlyMessage(code, message), ErrorType.NETWORK, ErrorSeverity.MEDIUM, {\n code: ErrorCode[code],\n originalError,\n context,\n recoverable: true,\n });\n this.name = 'NetworkError';\n }\n}\n\n/**\n * 验证错误\n */\nexport class ValidationError extends FrameworkError {\n constructor(message: string, context?: Record<string, unknown>) {\n super(message, ErrorType.VALIDATION, ErrorSeverity.LOW, {\n code: 'VALIDATION_ERROR',\n context,\n recoverable: true,\n });\n this.name = 'ValidationError';\n }\n}\n\n/**\n * 安全错误\n */\nexport class SecurityError extends FrameworkError {\n constructor(message: string, originalError?: Error, context?: Record<string, unknown>) {\n super(message, ErrorType.SECURITY, ErrorSeverity.HIGH, {\n code: 'SECURITY_ERROR',\n originalError,\n context,\n recoverable: false,\n });\n this.name = 'SecurityError';\n }\n}\n\n/**\n * 错误处理工具函数\n */\nexport const errorUtils = {\n /**\n * 判断错误是否可恢复\n */\n isRecoverable(error: unknown): boolean {\n if (error instanceof FrameworkError) {\n return error.recoverable;\n }\n return false;\n },\n\n /**\n * 获取错误类型\n */\n getErrorType(error: unknown): ErrorType {\n if (error instanceof FrameworkError) {\n return error.type;\n }\n return ErrorType.UNKNOWN;\n },\n\n /**\n * 获取错误严重程度\n */\n getErrorSeverity(error: unknown): ErrorSeverity {\n if (error instanceof FrameworkError) {\n return error.severity;\n }\n return ErrorSeverity.MEDIUM;\n },\n\n /**\n * 标准化错误对象\n */\n normalizeError(error: unknown): FrameworkError {\n if (error instanceof FrameworkError) {\n return error;\n }\n\n if (error instanceof Error) {\n return new FrameworkError(error.message, ErrorType.UNKNOWN, ErrorSeverity.MEDIUM, {\n originalError: error,\n });\n }\n\n return new FrameworkError(String(error), ErrorType.UNKNOWN, ErrorSeverity.MEDIUM);\n },\n\n /**\n * 提取错误信息\n */\n extractErrorInfo(error: unknown): {\n message: string;\n type: ErrorType;\n severity: ErrorSeverity;\n code: string;\n stack?: string;\n } {\n const normalized = errorUtils.normalizeError(error);\n return {\n message: normalized.message,\n type: normalized.type,\n severity: normalized.severity,\n code: normalized.code,\n stack: normalized.stack,\n };\n },\n\n /**\n * 获取错误修复建议\n * \n * 优化:根据错误类型和代码提供修复建议\n */\n getErrorSuggestions(error: unknown): string[] {\n const normalized = errorUtils.normalizeError(error);\n const suggestions: string[] = [];\n\n // 根据错误代码提供建议\n switch (normalized.code) {\n case 'CONTAINER_NOT_FOUND':\n suggestions.push('请确保页面中存在 id=\"root\" 的元素,或通过 container 选项指定挂载容器');\n suggestions.push('检查 DOM 是否已加载完成,确保在 DOMContentLoaded 事件后调用 start()');\n break;\n case 'NETWORK_ERROR':\n suggestions.push('检查网络连接是否正常');\n suggestions.push('检查服务器是否正常运行');\n suggestions.push('检查 CORS 配置是否正确');\n break;\n case 'TIMEOUT_ERROR':\n suggestions.push('增加超时时间配置');\n suggestions.push('检查网络连接是否稳定');\n suggestions.push('检查服务器响应速度');\n break;\n case 'VALIDATION_ERROR':\n suggestions.push('检查配置项是否符合要求');\n suggestions.push('查看配置验证错误详情');\n suggestions.push('参考配置文档确认配置格式');\n break;\n case 'INITIALIZATION_ERROR':\n suggestions.push('检查初始化配置是否正确');\n suggestions.push('查看初始化日志了解详细错误');\n suggestions.push('尝试简化配置,逐步排查问题');\n break;\n default:\n if (normalized.type === ErrorType.SECURITY) {\n suggestions.push('检查输入内容是否包含不安全字符');\n suggestions.push('确保配置项来源可信');\n suggestions.push('查看安全配置文档');\n }\n }\n\n // 如果是可恢复的错误,提供恢复建议\n if (normalized.recoverable) {\n suggestions.push('此错误可以自动恢复,请稍后重试');\n }\n\n return suggestions;\n },\n\n /**\n * 格式化错误信息(用于开发环境)\n * \n * 优化:提供更详细的错误信息,包括修复建议\n */\n formatErrorForDev(error: unknown): string {\n const normalized = errorUtils.normalizeError(error);\n const suggestions = errorUtils.getErrorSuggestions(error);\n \n let message = `[${normalized.code}] ${normalized.message}`;\n \n if (normalized.stack) {\n message += `\\n\\n堆栈信息:\\n${normalized.stack}`;\n }\n \n if (suggestions.length > 0) {\n message += `\\n\\n修复建议:\\n${suggestions.map((s, i) => `${i + 1}. ${s}`).join('\\n')}`;\n }\n \n if (normalized.context) {\n message += `\\n\\n上下文信息:\\n${JSON.stringify(normalized.context, null, 2)}`;\n }\n \n return message;\n },\n};\n"],"names":["ConfigError","ErrorCode","ErrorMessages","ErrorSeverity","ErrorType","FrameworkError","InitializationError","NetworkError","SecurityError","StorageError","ValidationError","errorUtils","getErrorMessage","getUserFriendlyMessage","Error","toJSON","name","message","type","severity","code","recoverable","context","stack","originalError","undefined","options","captureStackTrace","errorCode","INITIALIZATION_FAILED","CONFIG_LOAD_FAILED","NETWORK_ERROR","isRecoverable","error","getErrorType","getErrorSeverity","normalizeError","String","extractErrorInfo","normalized","getErrorSuggestions","suggestions","push","formatErrorForDev","length","map","s","i","join","JSON","stringify"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/utils/errors.ts"],"sourcesContent":["import { ErrorCode, getUserFriendlyMessage } from './errors/ErrorCodes';\n\n// 导出错误码相关类型和函数\nexport { ErrorCode, ErrorMessages, getErrorMessage, getUserFriendlyMessage } from './errors/ErrorCodes';\n\n/**\n * 错误类型枚举\n */\nexport enum ErrorType {\n /**\n * 初始化错误\n */\n INITIALIZATION = 'INITIALIZATION',\n /**\n * 配置错误\n */\n CONFIG = 'CONFIG',\n /**\n * 存储错误\n */\n STORAGE = 'STORAGE',\n /**\n * 网络错误\n */\n NETWORK = 'NETWORK',\n /**\n * 验证错误\n */\n VALIDATION = 'VALIDATION',\n /**\n * 安全错误\n */\n SECURITY = 'SECURITY',\n /**\n * 运行时错误\n */\n RUNTIME = 'RUNTIME',\n /**\n * 未知错误\n */\n UNKNOWN = 'UNKNOWN',\n}\n\n/**\n * 错误严重程度\n */\nexport enum ErrorSeverity {\n /**\n * 低 - 不影响核心功能\n */\n LOW = 'LOW',\n /**\n * 中 - 影响部分功能\n */\n MEDIUM = 'MEDIUM',\n /**\n * 高 - 影响核心功能\n */\n HIGH = 'HIGH',\n /**\n * 严重 - 导致应用无法使用\n */\n CRITICAL = 'CRITICAL',\n}\n\n/**\n * 框架错误基类\n */\nexport class FrameworkError extends Error {\n /**\n * 错误类型\n */\n public readonly type: ErrorType;\n\n /**\n * 错误严重程度\n */\n public readonly severity: ErrorSeverity;\n\n /**\n * 错误代码\n */\n public readonly code: string;\n\n /**\n * 原始错误\n */\n public readonly originalError?: Error;\n\n /**\n * 错误上下文\n */\n public readonly context?: Record<string, unknown>;\n\n /**\n * 是否可恢复\n */\n public readonly recoverable: boolean;\n\n constructor(\n message: string,\n type: ErrorType = ErrorType.UNKNOWN,\n severity: ErrorSeverity = ErrorSeverity.MEDIUM,\n options?: {\n code?: string;\n originalError?: Error;\n context?: Record<string, unknown>;\n recoverable?: boolean;\n }\n ) {\n super(message);\n this.name = 'FrameworkError';\n this.type = type;\n this.severity = severity;\n this.code = options?.code || `${type}_ERROR`;\n this.originalError = options?.originalError;\n this.context = options?.context;\n this.recoverable = options?.recoverable ?? false;\n\n // 保持正确的堆栈跟踪\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, FrameworkError);\n }\n }\n\n /**\n * 转换为 JSON\n */\n toJSON(): Record<string, unknown> {\n return {\n name: this.name,\n message: this.message,\n type: this.type,\n severity: this.severity,\n code: this.code,\n recoverable: this.recoverable,\n context: this.context,\n stack: this.stack,\n originalError: this.originalError\n ? {\n name: this.originalError.name,\n message: this.originalError.message,\n stack: this.originalError.stack,\n }\n : undefined,\n };\n }\n}\n\n/**\n * 初始化错误\n */\nexport class InitializationError extends FrameworkError {\n constructor(\n message: string,\n originalError?: Error,\n context?: Record<string, unknown>,\n errorCode?: ErrorCode\n ) {\n const code = errorCode || ErrorCode.INITIALIZATION_FAILED;\n super(getUserFriendlyMessage(code, message), ErrorType.INITIALIZATION, ErrorSeverity.CRITICAL, {\n code: ErrorCode[code],\n originalError,\n context,\n recoverable: false,\n });\n this.name = 'InitializationError';\n }\n}\n\n/**\n * 配置错误\n */\nexport class ConfigError extends FrameworkError {\n constructor(\n message: string,\n originalError?: Error,\n context?: Record<string, unknown>,\n errorCode?: ErrorCode\n ) {\n const code = errorCode || ErrorCode.CONFIG_LOAD_FAILED;\n super(getUserFriendlyMessage(code, message), ErrorType.CONFIG, ErrorSeverity.HIGH, {\n code: ErrorCode[code],\n originalError,\n context,\n recoverable: true,\n });\n this.name = 'ConfigError';\n }\n}\n\n/**\n * 存储错误\n */\nexport class StorageError extends FrameworkError {\n constructor(message: string, originalError?: Error, context?: Record<string, unknown>) {\n super(message, ErrorType.STORAGE, ErrorSeverity.MEDIUM, {\n code: 'STORAGE_ERROR',\n originalError,\n context,\n recoverable: true,\n });\n this.name = 'StorageError';\n }\n}\n\n/**\n * 网络错误\n */\nexport class NetworkError extends FrameworkError {\n constructor(\n message: string,\n originalError?: Error,\n context?: Record<string, unknown>,\n errorCode?: ErrorCode\n ) {\n const code = errorCode || ErrorCode.NETWORK_ERROR;\n super(getUserFriendlyMessage(code, message), ErrorType.NETWORK, ErrorSeverity.MEDIUM, {\n code: ErrorCode[code],\n originalError,\n context,\n recoverable: true,\n });\n this.name = 'NetworkError';\n }\n}\n\n/**\n * 验证错误\n */\nexport class ValidationError extends FrameworkError {\n constructor(message: string, context?: Record<string, unknown>) {\n super(message, ErrorType.VALIDATION, ErrorSeverity.LOW, {\n code: 'VALIDATION_ERROR',\n context,\n recoverable: true,\n });\n this.name = 'ValidationError';\n }\n}\n\n/**\n * 安全错误\n */\nexport class SecurityError extends FrameworkError {\n constructor(message: string, originalError?: Error, context?: Record<string, unknown>) {\n super(message, ErrorType.SECURITY, ErrorSeverity.HIGH, {\n code: 'SECURITY_ERROR',\n originalError,\n context,\n recoverable: false,\n });\n this.name = 'SecurityError';\n }\n}\n\n/**\n * 错误处理工具函数\n */\nexport const errorUtils = {\n /**\n * 安全地将未知错误转换为可展示的消息\n * 避免 String(error) 对 null-prototype 对象再次抛错\n */\n getSafeErrorMessage(error: unknown): string {\n if (typeof error === 'string') {\n return error;\n }\n\n if (\n typeof error === 'number' ||\n typeof error === 'boolean' ||\n typeof error === 'bigint' ||\n typeof error === 'symbol' ||\n error === null ||\n error === undefined\n ) {\n try {\n return String(error);\n } catch {\n return 'Unknown error';\n }\n }\n\n if (typeof error === 'object') {\n try {\n const maybeMessage = (error as { message?: unknown }).message;\n if (typeof maybeMessage === 'string' && maybeMessage.trim()) {\n return maybeMessage;\n }\n } catch {\n // ignore\n }\n\n try {\n const json = JSON.stringify(error);\n if (json) {\n return json;\n }\n } catch {\n // ignore\n }\n\n try {\n return `Non-Error throwable: ${Object.prototype.toString.call(error)}`;\n } catch {\n return 'Non-Error throwable';\n }\n }\n\n try {\n return String(error);\n } catch {\n return 'Unknown error';\n }\n },\n\n /**\n * 判断错误是否可恢复\n */\n isRecoverable(error: unknown): boolean {\n if (error instanceof FrameworkError) {\n return error.recoverable;\n }\n return false;\n },\n\n /**\n * 获取错误类型\n */\n getErrorType(error: unknown): ErrorType {\n if (error instanceof FrameworkError) {\n return error.type;\n }\n return ErrorType.UNKNOWN;\n },\n\n /**\n * 获取错误严重程度\n */\n getErrorSeverity(error: unknown): ErrorSeverity {\n if (error instanceof FrameworkError) {\n return error.severity;\n }\n return ErrorSeverity.MEDIUM;\n },\n\n /**\n * 标准化错误对象\n */\n normalizeError(error: unknown): FrameworkError {\n if (error instanceof FrameworkError) {\n return error;\n }\n\n if (error instanceof Error) {\n return new FrameworkError(error.message, ErrorType.UNKNOWN, ErrorSeverity.MEDIUM, {\n originalError: error,\n });\n }\n\n return new FrameworkError(errorUtils.getSafeErrorMessage(error), ErrorType.UNKNOWN, ErrorSeverity.MEDIUM);\n },\n\n /**\n * 提取错误信息\n */\n extractErrorInfo(error: unknown): {\n message: string;\n type: ErrorType;\n severity: ErrorSeverity;\n code: string;\n stack?: string;\n } {\n const normalized = errorUtils.normalizeError(error);\n return {\n message: normalized.message,\n type: normalized.type,\n severity: normalized.severity,\n code: normalized.code,\n stack: normalized.stack,\n };\n },\n\n /**\n * 获取错误修复建议\n * \n * 优化:根据错误类型和代码提供修复建议\n */\n getErrorSuggestions(error: unknown): string[] {\n const normalized = errorUtils.normalizeError(error);\n const suggestions: string[] = [];\n\n // 根据错误代码提供建议\n switch (normalized.code) {\n case 'CONTAINER_NOT_FOUND':\n suggestions.push('请确保页面中存在 id=\"root\" 的元素,或通过 container 选项指定挂载容器');\n suggestions.push('检查 DOM 是否已加载完成,确保在 DOMContentLoaded 事件后调用 start()');\n break;\n case 'NETWORK_ERROR':\n suggestions.push('检查网络连接是否正常');\n suggestions.push('检查服务器是否正常运行');\n suggestions.push('检查 CORS 配置是否正确');\n break;\n case 'TIMEOUT_ERROR':\n suggestions.push('增加超时时间配置');\n suggestions.push('检查网络连接是否稳定');\n suggestions.push('检查服务器响应速度');\n break;\n case 'VALIDATION_ERROR':\n suggestions.push('检查配置项是否符合要求');\n suggestions.push('查看配置验证错误详情');\n suggestions.push('参考配置文档确认配置格式');\n break;\n case 'INITIALIZATION_ERROR':\n suggestions.push('检查初始化配置是否正确');\n suggestions.push('查看初始化日志了解详细错误');\n suggestions.push('尝试简化配置,逐步排查问题');\n break;\n default:\n if (normalized.type === ErrorType.SECURITY) {\n suggestions.push('检查输入内容是否包含不安全字符');\n suggestions.push('确保配置项来源可信');\n suggestions.push('查看安全配置文档');\n }\n }\n\n // 如果是可恢复的错误,提供恢复建议\n if (normalized.recoverable) {\n suggestions.push('此错误可以自动恢复,请稍后重试');\n }\n\n return suggestions;\n },\n\n /**\n * 格式化错误信息(用于开发环境)\n * \n * 优化:提供更详细的错误信息,包括修复建议\n */\n formatErrorForDev(error: unknown): string {\n const normalized = errorUtils.normalizeError(error);\n const suggestions = errorUtils.getErrorSuggestions(error);\n \n let message = `[${normalized.code}] ${normalized.message}`;\n \n if (normalized.stack) {\n message += `\\n\\n堆栈信息:\\n${normalized.stack}`;\n }\n \n if (suggestions.length > 0) {\n message += `\\n\\n修复建议:\\n${suggestions.map((s, i) => `${i + 1}. ${s}`).join('\\n')}`;\n }\n \n if (normalized.context) {\n message += `\\n\\n上下文信息:\\n${JSON.stringify(normalized.context, null, 2)}`;\n }\n \n return message;\n },\n};\n"],"names":["ConfigError","ErrorCode","ErrorMessages","ErrorSeverity","ErrorType","FrameworkError","InitializationError","NetworkError","SecurityError","StorageError","ValidationError","errorUtils","getErrorMessage","getUserFriendlyMessage","Error","toJSON","name","message","type","severity","code","recoverable","context","stack","originalError","undefined","options","captureStackTrace","errorCode","INITIALIZATION_FAILED","CONFIG_LOAD_FAILED","NETWORK_ERROR","getSafeErrorMessage","error","String","maybeMessage","trim","json","JSON","stringify","Object","prototype","toString","call","isRecoverable","getErrorType","getErrorSeverity","normalizeError","extractErrorInfo","normalized","getErrorSuggestions","suggestions","push","formatErrorForDev","length","map","s","i","join"],"mappings":"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"}
|
package/dist/utils/errors.d.ts
CHANGED
|
@@ -137,6 +137,11 @@ export declare class SecurityError extends FrameworkError {
|
|
|
137
137
|
* 错误处理工具函数
|
|
138
138
|
*/
|
|
139
139
|
export declare const errorUtils: {
|
|
140
|
+
/**
|
|
141
|
+
* 安全地将未知错误转换为可展示的消息
|
|
142
|
+
* 避免 String(error) 对 null-prototype 对象再次抛错
|
|
143
|
+
*/
|
|
144
|
+
getSafeErrorMessage(error: unknown): string;
|
|
140
145
|
/**
|
|
141
146
|
* 判断错误是否可恢复
|
|
142
147
|
*/
|
|
@@ -176,4 +181,3 @@ export declare const errorUtils: {
|
|
|
176
181
|
*/
|
|
177
182
|
formatErrorForDev(error: unknown): string;
|
|
178
183
|
};
|
|
179
|
-
//# sourceMappingURL=errors.d.ts.map
|
package/dist/utils/errors.js
CHANGED
|
@@ -193,6 +193,49 @@ export { ErrorCode, ErrorMessages, getErrorMessage, getUserFriendlyMessage } fro
|
|
|
193
193
|
* 错误处理工具函数
|
|
194
194
|
*/ export const errorUtils = {
|
|
195
195
|
/**
|
|
196
|
+
* 安全地将未知错误转换为可展示的消息
|
|
197
|
+
* 避免 String(error) 对 null-prototype 对象再次抛错
|
|
198
|
+
*/ getSafeErrorMessage (error) {
|
|
199
|
+
if (typeof error === 'string') {
|
|
200
|
+
return error;
|
|
201
|
+
}
|
|
202
|
+
if (typeof error === 'number' || typeof error === 'boolean' || typeof error === 'bigint' || typeof error === 'symbol' || error === null || error === undefined) {
|
|
203
|
+
try {
|
|
204
|
+
return String(error);
|
|
205
|
+
} catch {
|
|
206
|
+
return 'Unknown error';
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
if (typeof error === 'object') {
|
|
210
|
+
try {
|
|
211
|
+
const maybeMessage = error.message;
|
|
212
|
+
if (typeof maybeMessage === 'string' && maybeMessage.trim()) {
|
|
213
|
+
return maybeMessage;
|
|
214
|
+
}
|
|
215
|
+
} catch {
|
|
216
|
+
// ignore
|
|
217
|
+
}
|
|
218
|
+
try {
|
|
219
|
+
const json = JSON.stringify(error);
|
|
220
|
+
if (json) {
|
|
221
|
+
return json;
|
|
222
|
+
}
|
|
223
|
+
} catch {
|
|
224
|
+
// ignore
|
|
225
|
+
}
|
|
226
|
+
try {
|
|
227
|
+
return `Non-Error throwable: ${Object.prototype.toString.call(error)}`;
|
|
228
|
+
} catch {
|
|
229
|
+
return 'Non-Error throwable';
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
try {
|
|
233
|
+
return String(error);
|
|
234
|
+
} catch {
|
|
235
|
+
return 'Unknown error';
|
|
236
|
+
}
|
|
237
|
+
},
|
|
238
|
+
/**
|
|
196
239
|
* 判断错误是否可恢复
|
|
197
240
|
*/ isRecoverable (error) {
|
|
198
241
|
if (error instanceof FrameworkError) {
|
|
@@ -227,7 +270,7 @@ export { ErrorCode, ErrorMessages, getErrorMessage, getUserFriendlyMessage } fro
|
|
|
227
270
|
originalError: error
|
|
228
271
|
});
|
|
229
272
|
}
|
|
230
|
-
return new FrameworkError(
|
|
273
|
+
return new FrameworkError(errorUtils.getSafeErrorMessage(error), "UNKNOWN", "MEDIUM");
|
|
231
274
|
},
|
|
232
275
|
/**
|
|
233
276
|
* 提取错误信息
|
package/dist/utils/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/errors.ts"],"sourcesContent":["import { ErrorCode, getUserFriendlyMessage } from './errors/ErrorCodes';\n\n// 导出错误码相关类型和函数\nexport { ErrorCode, ErrorMessages, getErrorMessage, getUserFriendlyMessage } from './errors/ErrorCodes';\n\n/**\n * 错误类型枚举\n */\nexport enum ErrorType {\n /**\n * 初始化错误\n */\n INITIALIZATION = 'INITIALIZATION',\n /**\n * 配置错误\n */\n CONFIG = 'CONFIG',\n /**\n * 存储错误\n */\n STORAGE = 'STORAGE',\n /**\n * 网络错误\n */\n NETWORK = 'NETWORK',\n /**\n * 验证错误\n */\n VALIDATION = 'VALIDATION',\n /**\n * 安全错误\n */\n SECURITY = 'SECURITY',\n /**\n * 运行时错误\n */\n RUNTIME = 'RUNTIME',\n /**\n * 未知错误\n */\n UNKNOWN = 'UNKNOWN',\n}\n\n/**\n * 错误严重程度\n */\nexport enum ErrorSeverity {\n /**\n * 低 - 不影响核心功能\n */\n LOW = 'LOW',\n /**\n * 中 - 影响部分功能\n */\n MEDIUM = 'MEDIUM',\n /**\n * 高 - 影响核心功能\n */\n HIGH = 'HIGH',\n /**\n * 严重 - 导致应用无法使用\n */\n CRITICAL = 'CRITICAL',\n}\n\n/**\n * 框架错误基类\n */\nexport class FrameworkError extends Error {\n /**\n * 错误类型\n */\n public readonly type: ErrorType;\n\n /**\n * 错误严重程度\n */\n public readonly severity: ErrorSeverity;\n\n /**\n * 错误代码\n */\n public readonly code: string;\n\n /**\n * 原始错误\n */\n public readonly originalError?: Error;\n\n /**\n * 错误上下文\n */\n public readonly context?: Record<string, unknown>;\n\n /**\n * 是否可恢复\n */\n public readonly recoverable: boolean;\n\n constructor(\n message: string,\n type: ErrorType = ErrorType.UNKNOWN,\n severity: ErrorSeverity = ErrorSeverity.MEDIUM,\n options?: {\n code?: string;\n originalError?: Error;\n context?: Record<string, unknown>;\n recoverable?: boolean;\n }\n ) {\n super(message);\n this.name = 'FrameworkError';\n this.type = type;\n this.severity = severity;\n this.code = options?.code || `${type}_ERROR`;\n this.originalError = options?.originalError;\n this.context = options?.context;\n this.recoverable = options?.recoverable ?? false;\n\n // 保持正确的堆栈跟踪\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, FrameworkError);\n }\n }\n\n /**\n * 转换为 JSON\n */\n toJSON(): Record<string, unknown> {\n return {\n name: this.name,\n message: this.message,\n type: this.type,\n severity: this.severity,\n code: this.code,\n recoverable: this.recoverable,\n context: this.context,\n stack: this.stack,\n originalError: this.originalError\n ? {\n name: this.originalError.name,\n message: this.originalError.message,\n stack: this.originalError.stack,\n }\n : undefined,\n };\n }\n}\n\n/**\n * 初始化错误\n */\nexport class InitializationError extends FrameworkError {\n constructor(\n message: string,\n originalError?: Error,\n context?: Record<string, unknown>,\n errorCode?: ErrorCode\n ) {\n const code = errorCode || ErrorCode.INITIALIZATION_FAILED;\n super(getUserFriendlyMessage(code, message), ErrorType.INITIALIZATION, ErrorSeverity.CRITICAL, {\n code: ErrorCode[code],\n originalError,\n context,\n recoverable: false,\n });\n this.name = 'InitializationError';\n }\n}\n\n/**\n * 配置错误\n */\nexport class ConfigError extends FrameworkError {\n constructor(\n message: string,\n originalError?: Error,\n context?: Record<string, unknown>,\n errorCode?: ErrorCode\n ) {\n const code = errorCode || ErrorCode.CONFIG_LOAD_FAILED;\n super(getUserFriendlyMessage(code, message), ErrorType.CONFIG, ErrorSeverity.HIGH, {\n code: ErrorCode[code],\n originalError,\n context,\n recoverable: true,\n });\n this.name = 'ConfigError';\n }\n}\n\n/**\n * 存储错误\n */\nexport class StorageError extends FrameworkError {\n constructor(message: string, originalError?: Error, context?: Record<string, unknown>) {\n super(message, ErrorType.STORAGE, ErrorSeverity.MEDIUM, {\n code: 'STORAGE_ERROR',\n originalError,\n context,\n recoverable: true,\n });\n this.name = 'StorageError';\n }\n}\n\n/**\n * 网络错误\n */\nexport class NetworkError extends FrameworkError {\n constructor(\n message: string,\n originalError?: Error,\n context?: Record<string, unknown>,\n errorCode?: ErrorCode\n ) {\n const code = errorCode || ErrorCode.NETWORK_ERROR;\n super(getUserFriendlyMessage(code, message), ErrorType.NETWORK, ErrorSeverity.MEDIUM, {\n code: ErrorCode[code],\n originalError,\n context,\n recoverable: true,\n });\n this.name = 'NetworkError';\n }\n}\n\n/**\n * 验证错误\n */\nexport class ValidationError extends FrameworkError {\n constructor(message: string, context?: Record<string, unknown>) {\n super(message, ErrorType.VALIDATION, ErrorSeverity.LOW, {\n code: 'VALIDATION_ERROR',\n context,\n recoverable: true,\n });\n this.name = 'ValidationError';\n }\n}\n\n/**\n * 安全错误\n */\nexport class SecurityError extends FrameworkError {\n constructor(message: string, originalError?: Error, context?: Record<string, unknown>) {\n super(message, ErrorType.SECURITY, ErrorSeverity.HIGH, {\n code: 'SECURITY_ERROR',\n originalError,\n context,\n recoverable: false,\n });\n this.name = 'SecurityError';\n }\n}\n\n/**\n * 错误处理工具函数\n */\nexport const errorUtils = {\n /**\n * 判断错误是否可恢复\n */\n isRecoverable(error: unknown): boolean {\n if (error instanceof FrameworkError) {\n return error.recoverable;\n }\n return false;\n },\n\n /**\n * 获取错误类型\n */\n getErrorType(error: unknown): ErrorType {\n if (error instanceof FrameworkError) {\n return error.type;\n }\n return ErrorType.UNKNOWN;\n },\n\n /**\n * 获取错误严重程度\n */\n getErrorSeverity(error: unknown): ErrorSeverity {\n if (error instanceof FrameworkError) {\n return error.severity;\n }\n return ErrorSeverity.MEDIUM;\n },\n\n /**\n * 标准化错误对象\n */\n normalizeError(error: unknown): FrameworkError {\n if (error instanceof FrameworkError) {\n return error;\n }\n\n if (error instanceof Error) {\n return new FrameworkError(error.message, ErrorType.UNKNOWN, ErrorSeverity.MEDIUM, {\n originalError: error,\n });\n }\n\n return new FrameworkError(String(error), ErrorType.UNKNOWN, ErrorSeverity.MEDIUM);\n },\n\n /**\n * 提取错误信息\n */\n extractErrorInfo(error: unknown): {\n message: string;\n type: ErrorType;\n severity: ErrorSeverity;\n code: string;\n stack?: string;\n } {\n const normalized = errorUtils.normalizeError(error);\n return {\n message: normalized.message,\n type: normalized.type,\n severity: normalized.severity,\n code: normalized.code,\n stack: normalized.stack,\n };\n },\n\n /**\n * 获取错误修复建议\n * \n * 优化:根据错误类型和代码提供修复建议\n */\n getErrorSuggestions(error: unknown): string[] {\n const normalized = errorUtils.normalizeError(error);\n const suggestions: string[] = [];\n\n // 根据错误代码提供建议\n switch (normalized.code) {\n case 'CONTAINER_NOT_FOUND':\n suggestions.push('请确保页面中存在 id=\"root\" 的元素,或通过 container 选项指定挂载容器');\n suggestions.push('检查 DOM 是否已加载完成,确保在 DOMContentLoaded 事件后调用 start()');\n break;\n case 'NETWORK_ERROR':\n suggestions.push('检查网络连接是否正常');\n suggestions.push('检查服务器是否正常运行');\n suggestions.push('检查 CORS 配置是否正确');\n break;\n case 'TIMEOUT_ERROR':\n suggestions.push('增加超时时间配置');\n suggestions.push('检查网络连接是否稳定');\n suggestions.push('检查服务器响应速度');\n break;\n case 'VALIDATION_ERROR':\n suggestions.push('检查配置项是否符合要求');\n suggestions.push('查看配置验证错误详情');\n suggestions.push('参考配置文档确认配置格式');\n break;\n case 'INITIALIZATION_ERROR':\n suggestions.push('检查初始化配置是否正确');\n suggestions.push('查看初始化日志了解详细错误');\n suggestions.push('尝试简化配置,逐步排查问题');\n break;\n default:\n if (normalized.type === ErrorType.SECURITY) {\n suggestions.push('检查输入内容是否包含不安全字符');\n suggestions.push('确保配置项来源可信');\n suggestions.push('查看安全配置文档');\n }\n }\n\n // 如果是可恢复的错误,提供恢复建议\n if (normalized.recoverable) {\n suggestions.push('此错误可以自动恢复,请稍后重试');\n }\n\n return suggestions;\n },\n\n /**\n * 格式化错误信息(用于开发环境)\n * \n * 优化:提供更详细的错误信息,包括修复建议\n */\n formatErrorForDev(error: unknown): string {\n const normalized = errorUtils.normalizeError(error);\n const suggestions = errorUtils.getErrorSuggestions(error);\n \n let message = `[${normalized.code}] ${normalized.message}`;\n \n if (normalized.stack) {\n message += `\\n\\n堆栈信息:\\n${normalized.stack}`;\n }\n \n if (suggestions.length > 0) {\n message += `\\n\\n修复建议:\\n${suggestions.map((s, i) => `${i + 1}. ${s}`).join('\\n')}`;\n }\n \n if (normalized.context) {\n message += `\\n\\n上下文信息:\\n${JSON.stringify(normalized.context, null, 2)}`;\n }\n \n return message;\n },\n};\n"],"names":["ErrorCode","getUserFriendlyMessage","ErrorMessages","getErrorMessage","ErrorType","ErrorSeverity","FrameworkError","Error","toJSON","name","message","type","severity","code","recoverable","context","stack","originalError","undefined","options","captureStackTrace","InitializationError","errorCode","INITIALIZATION_FAILED","ConfigError","CONFIG_LOAD_FAILED","StorageError","NetworkError","NETWORK_ERROR","ValidationError","SecurityError","errorUtils","isRecoverable","error","getErrorType","getErrorSeverity","normalizeError","String","extractErrorInfo","normalized","getErrorSuggestions","suggestions","push","formatErrorForDev","length","map","s","i","join","JSON","stringify"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/utils/errors.ts"],"sourcesContent":["import { ErrorCode, getUserFriendlyMessage } from './errors/ErrorCodes';\n\n// 导出错误码相关类型和函数\nexport { ErrorCode, ErrorMessages, getErrorMessage, getUserFriendlyMessage } from './errors/ErrorCodes';\n\n/**\n * 错误类型枚举\n */\nexport enum ErrorType {\n /**\n * 初始化错误\n */\n INITIALIZATION = 'INITIALIZATION',\n /**\n * 配置错误\n */\n CONFIG = 'CONFIG',\n /**\n * 存储错误\n */\n STORAGE = 'STORAGE',\n /**\n * 网络错误\n */\n NETWORK = 'NETWORK',\n /**\n * 验证错误\n */\n VALIDATION = 'VALIDATION',\n /**\n * 安全错误\n */\n SECURITY = 'SECURITY',\n /**\n * 运行时错误\n */\n RUNTIME = 'RUNTIME',\n /**\n * 未知错误\n */\n UNKNOWN = 'UNKNOWN',\n}\n\n/**\n * 错误严重程度\n */\nexport enum ErrorSeverity {\n /**\n * 低 - 不影响核心功能\n */\n LOW = 'LOW',\n /**\n * 中 - 影响部分功能\n */\n MEDIUM = 'MEDIUM',\n /**\n * 高 - 影响核心功能\n */\n HIGH = 'HIGH',\n /**\n * 严重 - 导致应用无法使用\n */\n CRITICAL = 'CRITICAL',\n}\n\n/**\n * 框架错误基类\n */\nexport class FrameworkError extends Error {\n /**\n * 错误类型\n */\n public readonly type: ErrorType;\n\n /**\n * 错误严重程度\n */\n public readonly severity: ErrorSeverity;\n\n /**\n * 错误代码\n */\n public readonly code: string;\n\n /**\n * 原始错误\n */\n public readonly originalError?: Error;\n\n /**\n * 错误上下文\n */\n public readonly context?: Record<string, unknown>;\n\n /**\n * 是否可恢复\n */\n public readonly recoverable: boolean;\n\n constructor(\n message: string,\n type: ErrorType = ErrorType.UNKNOWN,\n severity: ErrorSeverity = ErrorSeverity.MEDIUM,\n options?: {\n code?: string;\n originalError?: Error;\n context?: Record<string, unknown>;\n recoverable?: boolean;\n }\n ) {\n super(message);\n this.name = 'FrameworkError';\n this.type = type;\n this.severity = severity;\n this.code = options?.code || `${type}_ERROR`;\n this.originalError = options?.originalError;\n this.context = options?.context;\n this.recoverable = options?.recoverable ?? false;\n\n // 保持正确的堆栈跟踪\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, FrameworkError);\n }\n }\n\n /**\n * 转换为 JSON\n */\n toJSON(): Record<string, unknown> {\n return {\n name: this.name,\n message: this.message,\n type: this.type,\n severity: this.severity,\n code: this.code,\n recoverable: this.recoverable,\n context: this.context,\n stack: this.stack,\n originalError: this.originalError\n ? {\n name: this.originalError.name,\n message: this.originalError.message,\n stack: this.originalError.stack,\n }\n : undefined,\n };\n }\n}\n\n/**\n * 初始化错误\n */\nexport class InitializationError extends FrameworkError {\n constructor(\n message: string,\n originalError?: Error,\n context?: Record<string, unknown>,\n errorCode?: ErrorCode\n ) {\n const code = errorCode || ErrorCode.INITIALIZATION_FAILED;\n super(getUserFriendlyMessage(code, message), ErrorType.INITIALIZATION, ErrorSeverity.CRITICAL, {\n code: ErrorCode[code],\n originalError,\n context,\n recoverable: false,\n });\n this.name = 'InitializationError';\n }\n}\n\n/**\n * 配置错误\n */\nexport class ConfigError extends FrameworkError {\n constructor(\n message: string,\n originalError?: Error,\n context?: Record<string, unknown>,\n errorCode?: ErrorCode\n ) {\n const code = errorCode || ErrorCode.CONFIG_LOAD_FAILED;\n super(getUserFriendlyMessage(code, message), ErrorType.CONFIG, ErrorSeverity.HIGH, {\n code: ErrorCode[code],\n originalError,\n context,\n recoverable: true,\n });\n this.name = 'ConfigError';\n }\n}\n\n/**\n * 存储错误\n */\nexport class StorageError extends FrameworkError {\n constructor(message: string, originalError?: Error, context?: Record<string, unknown>) {\n super(message, ErrorType.STORAGE, ErrorSeverity.MEDIUM, {\n code: 'STORAGE_ERROR',\n originalError,\n context,\n recoverable: true,\n });\n this.name = 'StorageError';\n }\n}\n\n/**\n * 网络错误\n */\nexport class NetworkError extends FrameworkError {\n constructor(\n message: string,\n originalError?: Error,\n context?: Record<string, unknown>,\n errorCode?: ErrorCode\n ) {\n const code = errorCode || ErrorCode.NETWORK_ERROR;\n super(getUserFriendlyMessage(code, message), ErrorType.NETWORK, ErrorSeverity.MEDIUM, {\n code: ErrorCode[code],\n originalError,\n context,\n recoverable: true,\n });\n this.name = 'NetworkError';\n }\n}\n\n/**\n * 验证错误\n */\nexport class ValidationError extends FrameworkError {\n constructor(message: string, context?: Record<string, unknown>) {\n super(message, ErrorType.VALIDATION, ErrorSeverity.LOW, {\n code: 'VALIDATION_ERROR',\n context,\n recoverable: true,\n });\n this.name = 'ValidationError';\n }\n}\n\n/**\n * 安全错误\n */\nexport class SecurityError extends FrameworkError {\n constructor(message: string, originalError?: Error, context?: Record<string, unknown>) {\n super(message, ErrorType.SECURITY, ErrorSeverity.HIGH, {\n code: 'SECURITY_ERROR',\n originalError,\n context,\n recoverable: false,\n });\n this.name = 'SecurityError';\n }\n}\n\n/**\n * 错误处理工具函数\n */\nexport const errorUtils = {\n /**\n * 安全地将未知错误转换为可展示的消息\n * 避免 String(error) 对 null-prototype 对象再次抛错\n */\n getSafeErrorMessage(error: unknown): string {\n if (typeof error === 'string') {\n return error;\n }\n\n if (\n typeof error === 'number' ||\n typeof error === 'boolean' ||\n typeof error === 'bigint' ||\n typeof error === 'symbol' ||\n error === null ||\n error === undefined\n ) {\n try {\n return String(error);\n } catch {\n return 'Unknown error';\n }\n }\n\n if (typeof error === 'object') {\n try {\n const maybeMessage = (error as { message?: unknown }).message;\n if (typeof maybeMessage === 'string' && maybeMessage.trim()) {\n return maybeMessage;\n }\n } catch {\n // ignore\n }\n\n try {\n const json = JSON.stringify(error);\n if (json) {\n return json;\n }\n } catch {\n // ignore\n }\n\n try {\n return `Non-Error throwable: ${Object.prototype.toString.call(error)}`;\n } catch {\n return 'Non-Error throwable';\n }\n }\n\n try {\n return String(error);\n } catch {\n return 'Unknown error';\n }\n },\n\n /**\n * 判断错误是否可恢复\n */\n isRecoverable(error: unknown): boolean {\n if (error instanceof FrameworkError) {\n return error.recoverable;\n }\n return false;\n },\n\n /**\n * 获取错误类型\n */\n getErrorType(error: unknown): ErrorType {\n if (error instanceof FrameworkError) {\n return error.type;\n }\n return ErrorType.UNKNOWN;\n },\n\n /**\n * 获取错误严重程度\n */\n getErrorSeverity(error: unknown): ErrorSeverity {\n if (error instanceof FrameworkError) {\n return error.severity;\n }\n return ErrorSeverity.MEDIUM;\n },\n\n /**\n * 标准化错误对象\n */\n normalizeError(error: unknown): FrameworkError {\n if (error instanceof FrameworkError) {\n return error;\n }\n\n if (error instanceof Error) {\n return new FrameworkError(error.message, ErrorType.UNKNOWN, ErrorSeverity.MEDIUM, {\n originalError: error,\n });\n }\n\n return new FrameworkError(errorUtils.getSafeErrorMessage(error), ErrorType.UNKNOWN, ErrorSeverity.MEDIUM);\n },\n\n /**\n * 提取错误信息\n */\n extractErrorInfo(error: unknown): {\n message: string;\n type: ErrorType;\n severity: ErrorSeverity;\n code: string;\n stack?: string;\n } {\n const normalized = errorUtils.normalizeError(error);\n return {\n message: normalized.message,\n type: normalized.type,\n severity: normalized.severity,\n code: normalized.code,\n stack: normalized.stack,\n };\n },\n\n /**\n * 获取错误修复建议\n * \n * 优化:根据错误类型和代码提供修复建议\n */\n getErrorSuggestions(error: unknown): string[] {\n const normalized = errorUtils.normalizeError(error);\n const suggestions: string[] = [];\n\n // 根据错误代码提供建议\n switch (normalized.code) {\n case 'CONTAINER_NOT_FOUND':\n suggestions.push('请确保页面中存在 id=\"root\" 的元素,或通过 container 选项指定挂载容器');\n suggestions.push('检查 DOM 是否已加载完成,确保在 DOMContentLoaded 事件后调用 start()');\n break;\n case 'NETWORK_ERROR':\n suggestions.push('检查网络连接是否正常');\n suggestions.push('检查服务器是否正常运行');\n suggestions.push('检查 CORS 配置是否正确');\n break;\n case 'TIMEOUT_ERROR':\n suggestions.push('增加超时时间配置');\n suggestions.push('检查网络连接是否稳定');\n suggestions.push('检查服务器响应速度');\n break;\n case 'VALIDATION_ERROR':\n suggestions.push('检查配置项是否符合要求');\n suggestions.push('查看配置验证错误详情');\n suggestions.push('参考配置文档确认配置格式');\n break;\n case 'INITIALIZATION_ERROR':\n suggestions.push('检查初始化配置是否正确');\n suggestions.push('查看初始化日志了解详细错误');\n suggestions.push('尝试简化配置,逐步排查问题');\n break;\n default:\n if (normalized.type === ErrorType.SECURITY) {\n suggestions.push('检查输入内容是否包含不安全字符');\n suggestions.push('确保配置项来源可信');\n suggestions.push('查看安全配置文档');\n }\n }\n\n // 如果是可恢复的错误,提供恢复建议\n if (normalized.recoverable) {\n suggestions.push('此错误可以自动恢复,请稍后重试');\n }\n\n return suggestions;\n },\n\n /**\n * 格式化错误信息(用于开发环境)\n * \n * 优化:提供更详细的错误信息,包括修复建议\n */\n formatErrorForDev(error: unknown): string {\n const normalized = errorUtils.normalizeError(error);\n const suggestions = errorUtils.getErrorSuggestions(error);\n \n let message = `[${normalized.code}] ${normalized.message}`;\n \n if (normalized.stack) {\n message += `\\n\\n堆栈信息:\\n${normalized.stack}`;\n }\n \n if (suggestions.length > 0) {\n message += `\\n\\n修复建议:\\n${suggestions.map((s, i) => `${i + 1}. ${s}`).join('\\n')}`;\n }\n \n if (normalized.context) {\n message += `\\n\\n上下文信息:\\n${JSON.stringify(normalized.context, null, 2)}`;\n }\n \n return message;\n },\n};\n"],"names":["ErrorCode","getUserFriendlyMessage","ErrorMessages","getErrorMessage","ErrorType","ErrorSeverity","FrameworkError","Error","toJSON","name","message","type","severity","code","recoverable","context","stack","originalError","undefined","options","captureStackTrace","InitializationError","errorCode","INITIALIZATION_FAILED","ConfigError","CONFIG_LOAD_FAILED","StorageError","NetworkError","NETWORK_ERROR","ValidationError","SecurityError","errorUtils","getSafeErrorMessage","error","String","maybeMessage","trim","json","JSON","stringify","Object","prototype","toString","call","isRecoverable","getErrorType","getErrorSeverity","normalizeError","extractErrorInfo","normalized","getErrorSuggestions","suggestions","push","formatErrorForDev","length","map","s","i","join"],"mappings":"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"}
|
package/dist/utils/index.d.ts
CHANGED
package/dist/utils/logger.d.ts
CHANGED
|
@@ -244,4 +244,3 @@ export declare const PERFORMANCE_METRIC_UNIT_MAP: Record<string, PerformanceMetr
|
|
|
244
244
|
* @returns 带单位的性能指标对象
|
|
245
245
|
*/
|
|
246
246
|
export declare function convertMetricsToWithUnits(metrics: PerformanceMetrics | Record<string, number>): PerformanceMetricsWithUnits;
|
|
247
|
-
//# sourceMappingURL=performance.d.ts.map
|
package/dist/utils/security.d.ts
CHANGED
package/dist/utils/traceId.d.ts
CHANGED