@vlian/framework 1.2.40 → 1.2.41
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.umd.js +1 -1
- package/dist/index.umd.js +32 -4
- package/dist/index.umd.js.map +1 -1
- package/dist/kernel/kernel.cjs +1 -1
- package/dist/kernel/kernel.cjs.map +1 -1
- package/dist/kernel/kernel.js +1 -1
- package/dist/kernel/kernel.js.map +1 -1
- package/dist/kernel/manager/loggerManager.cjs +30 -2
- package/dist/kernel/manager/loggerManager.cjs.map +1 -1
- package/dist/kernel/manager/loggerManager.js +30 -2
- package/dist/kernel/manager/loggerManager.js.map +1 -1
- package/dist/state.umd.js +1 -1
- package/package.json +1 -1
package/dist/index.umd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.umd.js","sources":["library/locale/langs/en-us/index.js","library/locale/langs/zh-cn/index.js","library/locale/index.js","library/storage/cache.js","library/storage/index.js","core/plugin/PluginSandbox.js","core/plugin/PluginEventBus.js","core/plugin.js","core/initialization/initialization.js","core/initialization/initializationErrorState.js","core/initialization/InitializationErrorThrower.js","core/splash/SplashScreen.js","core/splash/splashScreenUtils.js","core/middleware.js","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","core/event/AppEventBus.js","core/startup/initializeServices.js","core/config/AppConfig.js","core/app/AppContext.js","core/app/DefaultApp.js","core/app/BasicLayout.js","../../../node_modules/.pnpm/react-error-boundary@6.1.1_react@19.2.4/node_modules/react-error-boundary/dist/react-error-boundary.js","core/error/ErrorHandler.js","core/error/ErrorBoundary.js","core/router/utils/transform.js","core/router/utils/adapters/react-router/RouteErrorBoundary.js","core/router/utils/adapters/react-router/transform.js","core/router/validation/schema.js","core/config/ConfigValidator.js","core/router/validation/RouterConfigValidator.js","core/router/lifecycle/RouterLifecycleManager.js","core/router/middleware/RouterMiddlewareManager.js","core/router/middleware/auth.js","utils/errors.js","core/router/errors/RouterError.js","core/router/performance/RouteCache.js","core/router/performance/RoutePreloader.js","core/router/plugin/types.js","core/router/plugin/RouterPluginManager.js","core/router/monitoring/RouterMonitoring.js","core/router/adapter/AdapterManager.js","core/router/adapter/react-router/ReactRouterAdapter.js","core/router/RouterManager.js","core/startup/renderApp.js","core/startup/performanceTracker.js","core/startup/AppInstance.js","core/startup/environment.js","core/event/types.js","core/event/frameworkEvents.js","core/kernel/errors.js","core/kernel/defaultAdapters.js","core/kernel/startKernel.js","core/startup/startApp.js","core/config/ConfigLoader.js","core/router/navigation/RouterNavigation.js","core/router/dynamic/DynamicRouteManager.js","core/router/version/RouteVersionManager.js","core/event/hooks.js","core/event/useEventBus.js","core/dev/DevTools.js","core/index.js","utils/configSecurity.js","utils/analytics.js","utils/index.js","components/persistence.js","components/ThemeSwitch.js","components/LocaleSwitch.js","kernel/constants.js","kernel/manager/persistence.js","kernel/manager/loggerManager.js","kernel/manager/cacheManager.js","kernel/manager/themeManager.js","kernel/manager/i18nManager.js","kernel/kernel.js"],"sourcesContent":["const local = {\n notfound: {\n home: \"Back to Home\"\n },\n defaultApp: {\n title: \"Welcome to Secra Framework\",\n description: \"Framework has been successfully started! Please provide your app component to get started.\",\n quickStart: {\n title: \"Quick Start\",\n description: \"Provide the app option in your startup configuration to render your application:\",\n code: \"import { start } from '@vlian/framework';\\nimport App from './App';\\n\\nstart({\\n app: <App />,\\n});\"\n },\n nextSteps: {\n title: \"Next Steps\",\n step1: \"Create your application root component (e.g., App.tsx)\",\n step2: \"Pass the app option in your startup configuration\",\n step3: \"Start developing your application features\"\n },\n footer: \"Secra Framework - Modern Low-Code Frontend Application Framework\"\n }\n};\nexport default local;\n\n//# sourceMappingURL=index.js.map","const local = {\n notfound: {\n home: \"回到首页\"\n },\n defaultApp: {\n title: \"欢迎使用 Secra Framework\",\n description: \"框架已成功启动!请提供您的应用组件以开始使用。\",\n quickStart: {\n title: \"快速开始\",\n description: \"在启动配置中提供 app 选项来渲染您的应用:\",\n code: \"import { start } from '@vlian/framework';\\nimport App from './App';\\n\\nstart({\\n app: <App />,\\n});\"\n },\n nextSteps: {\n title: \"下一步\",\n step1: \"创建您的应用根组件(如 App.tsx)\",\n step2: \"在启动配置中传入 app 选项\",\n step3: \"开始开发您的应用功能\"\n },\n footer: \"Secra Framework - 现代化的低代码前端应用框架\"\n }\n};\nexport default local;\n\n//# sourceMappingURL=index.js.map","import i18n from \"i18next\";\nimport { initReactI18next } from \"react-i18next\";\nimport enUS from \"./langs/en-us\";\nimport zhCN from \"./langs/zh-cn\";\n/** Setup plugin i18n */ export function setupI18n(otherLocales = {\n 'en-US': {},\n 'zh-CN': {}\n}) {\n const locales = {\n 'en-US': {\n translation: Object.assign({}, enUS, otherLocales['en-US'])\n },\n 'zh-CN': {\n translation: Object.assign({}, zhCN, otherLocales['zh-CN'])\n }\n };\n i18n.use(initReactI18next).init({\n interpolation: {\n escapeValue: false\n },\n lng: 'zh-cn',\n resources: locales\n });\n}\nexport const $t = i18n.t;\nexport function setLang(locale) {\n i18n.changeLanguage(locale);\n}\n\n//# sourceMappingURL=index.js.map","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 * 多级缓存管理器(使用 LRU 策略)\n */ export class MultiLevelCache {\n /**\n * 将节点移到链表头部(最近使用)\n */ moveToHead(node) {\n const nodeAsUnknown = node;\n if (nodeAsUnknown === this.head) {\n return;\n }\n // 从当前位置移除\n if (node.prev) {\n node.prev.next = node.next;\n }\n if (node.next) {\n node.next.prev = node.prev;\n }\n if (nodeAsUnknown === this.tail) {\n this.tail = node.prev;\n }\n // 移到头部\n node.prev = null;\n node.next = this.head;\n if (this.head) {\n this.head.prev = nodeAsUnknown;\n }\n this.head = nodeAsUnknown;\n if (!this.tail) {\n this.tail = nodeAsUnknown;\n }\n }\n /**\n * 移除尾部节点(最久未使用)\n */ removeTail() {\n if (!this.tail) {\n return;\n }\n const key = this.tail.key;\n this.memoryCache.delete(key);\n if (this.tail.prev) {\n this.tail.prev.next = null;\n this.tail = this.tail.prev;\n } else {\n this.head = null;\n this.tail = null;\n }\n }\n /**\n * 获取缓存\n */ async get(key) {\n // 先检查内存缓存\n const node = this.memoryCache.get(key);\n if (node) {\n const item = node.value;\n if (item.expiresAt > Date.now()) {\n // 移到头部(最近使用)\n this.moveToHead(node);\n return item.data;\n } else {\n // 已过期,删除\n this.memoryCache.delete(key);\n if (node === this.head) {\n this.head = node.next;\n }\n if (node === this.tail) {\n this.tail = node.prev;\n }\n if (node.prev) {\n node.prev.next = node.next;\n }\n if (node.next) {\n node.next.prev = node.prev;\n }\n }\n }\n // 检查存储缓存\n try {\n const stored = await this.storage.get(key);\n if (stored) {\n const item = JSON.parse(stored);\n if (item.expiresAt > Date.now()) {\n // 更新内存缓存(使用 LRU)\n this.setInMemory(key, item);\n return item.data;\n } else {\n // 已过期,删除\n await this.storage.remove(key);\n }\n }\n } catch (error) {\n // 忽略解析错误\n }\n return null;\n }\n /**\n * 在内存中设置缓存(LRU)\n */ setInMemory(key, item) {\n let node = this.memoryCache.get(key);\n if (node) {\n // 更新现有节点\n node.value = item;\n this.moveToHead(node);\n } else {\n // 创建新节点\n node = {\n key,\n value: item,\n prev: null,\n next: this.head\n };\n if (this.head) {\n this.head.prev = node;\n }\n this.head = node;\n if (!this.tail) {\n this.tail = node;\n }\n this.memoryCache.set(key, node);\n // 如果超过最大大小,移除最久未使用的\n if (this.memoryCache.size > this.config.maxSize) {\n this.removeTail();\n }\n }\n }\n /**\n * 设置缓存\n */ async set(key, data, ttl) {\n const expiresAt = Date.now() + (ttl || this.config.defaultTTL);\n const item = {\n data,\n expiresAt,\n createdAt: Date.now()\n };\n // 更新内存缓存(使用 LRU)\n this.setInMemory(key, item);\n // 更新存储缓存\n try {\n await this.storage.set(key, item);\n } catch (error) {\n // 忽略存储错误\n }\n }\n /**\n * 删除缓存\n */ async delete(key) {\n const node = this.memoryCache.get(key);\n if (node) {\n // 从链表中移除\n if (node.prev) {\n node.prev.next = node.next;\n }\n if (node.next) {\n node.next.prev = node.prev;\n }\n if (node === this.head) {\n this.head = node.next;\n }\n if (node === this.tail) {\n this.tail = node.prev;\n }\n this.memoryCache.delete(key);\n }\n try {\n await this.storage.remove(key);\n } catch (error) {\n // 忽略删除错误\n }\n }\n /**\n * 清空缓存\n */ async clear() {\n this.memoryCache.clear();\n // 注意:这里不清空 storage,因为可能包含其他数据\n }\n /**\n * 清理过期项(优化版本:批量删除,减少 DOM 操作)\n */ async cleanup() {\n const now = Date.now();\n const keysToDelete = [];\n const nodesToRemove = [];\n // 批量收集需要删除的项\n for (const [key, node] of this.memoryCache.entries()){\n if (node.value.expiresAt <= now) {\n keysToDelete.push(key);\n nodesToRemove.push(node);\n }\n }\n // 批量删除(优化性能)\n if (keysToDelete.length > 0) {\n // 从链表中移除节点\n for (const node of nodesToRemove){\n if (node.prev) {\n node.prev.next = node.next;\n }\n if (node.next) {\n node.next.prev = node.prev;\n }\n if (node === this.head) {\n this.head = node.next;\n }\n if (node === this.tail) {\n this.tail = node.prev;\n }\n }\n // 批量删除 Map 中的项\n keysToDelete.forEach((key)=>this.memoryCache.delete(key));\n }\n // 注意:存储缓存的清理由存储系统自己处理(通过过期时间)\n }\n constructor(storage, config = {}){\n _define_property(this, \"memoryCache\", new Map());\n _define_property(this, \"storage\", void 0);\n _define_property(this, \"config\", void 0);\n _define_property(this, \"head\", null);\n _define_property(this, \"tail\", null);\n this.storage = storage;\n this.config = {\n defaultTTL: config.defaultTTL ?? 24 * 60 * 60 * 1000,\n maxSize: config.maxSize ?? 100\n };\n }\n}\n\n//# sourceMappingURL=cache.js.map","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 { createStorage } from \"@vlian/utils\";\nimport { MultiLevelCache } from \"./cache\";\nlet Storage = class Storage {\n get local() {\n return this._local;\n }\n get session() {\n return this._session;\n }\n get indexedDB() {\n return this._indexedDB;\n }\n /**\n * 获取本地存储缓存\n */ get localCache() {\n return this._localCache;\n }\n /**\n * 获取会话存储缓存\n */ get sessionCache() {\n return this._sessionCache;\n }\n /**\n * 获取单例实例\n *\n * @returns Singleton 实例\n */ static getInstance() {\n if (!Storage.instance) {\n Storage.instance = new Storage();\n }\n return Storage.instance;\n }\n initialize(options) {\n const local = createStorage({\n type: 'local',\n prefix: options?.prefix || 'vlian',\n defaultExpire: options?.defaultExpire || 24 * 60 * 60 * 1000\n });\n const session = createStorage({\n type: 'session',\n prefix: options?.prefix || 'vlian',\n defaultExpire: options?.defaultExpire || 24 * 60 * 60 * 1000\n });\n const indexedDB = createStorage({\n type: 'indexedDB',\n prefix: options?.prefix || 'vlian',\n defaultExpire: options?.defaultExpire || 24 * 60 * 60 * 1000,\n dbName: options?.tableName\n });\n this._local = local;\n this._session = session;\n this._indexedDB = indexedDB;\n // 初始化缓存\n this.cacheEnabled = options?.cache?.enabled ?? false;\n if (this.cacheEnabled) {\n this._localCache = new MultiLevelCache(local, {\n defaultTTL: options?.cache?.defaultTTL,\n maxSize: options?.cache?.maxSize\n });\n this._sessionCache = new MultiLevelCache(session, {\n defaultTTL: options?.cache?.defaultTTL,\n maxSize: options?.cache?.maxSize\n });\n }\n }\n /**\n * 清理过期缓存\n */ async cleanupCache() {\n if (this._localCache) {\n await this._localCache.cleanup();\n }\n if (this._sessionCache) {\n await this._sessionCache.cleanup();\n }\n }\n /**\n * 私有构造函数,防止外部直接实例化\n */ constructor(){\n _define_property(this, \"_local\", void 0);\n _define_property(this, \"_session\", void 0);\n _define_property(this, \"_indexedDB\", void 0);\n _define_property(this, \"_localCache\", void 0);\n _define_property(this, \"_sessionCache\", void 0);\n _define_property(this, \"cacheEnabled\", false);\n // 私有构造函数\n }\n};\n_define_property(Storage, \"instance\", null);\nexport const storage = Storage.getInstance();\nexport { MultiLevelCache } from \"./cache\";\nexport { EncryptionUtils } from \"./encryption\";\n\n//# sourceMappingURL=index.js.map","/**\n * 插件沙箱\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 */ export var PluginPermission = /*#__PURE__*/ function(PluginPermission) {\n /**\n * 访问配置\n */ PluginPermission[\"ACCESS_CONFIG\"] = \"access_config\";\n /**\n * 访问状态管理器\n */ PluginPermission[\"ACCESS_STATE_MANAGER\"] = \"access_state_manager\";\n /**\n * 访问存储\n */ PluginPermission[\"ACCESS_STORAGE\"] = \"access_storage\";\n /**\n * 发布事件\n */ PluginPermission[\"EMIT_EVENTS\"] = \"emit_events\";\n /**\n * 订阅事件\n */ PluginPermission[\"SUBSCRIBE_EVENTS\"] = \"subscribe_events\";\n return PluginPermission;\n}({});\n/**\n * 插件沙箱\n */ export class PluginSandbox {\n /**\n * 检查权限\n * \n * @param permission - 权限\n * @returns 是否有权限\n */ hasPermission(permission) {\n if (!this.config.strictMode) {\n return true; // 非严格模式,允许所有权限\n }\n return this.permissions.has(permission);\n }\n /**\n * 检查是否可以访问配置键\n * \n * @param key - 配置键\n * @returns 是否可以访问\n */ canAccessConfig(key) {\n if (!this.hasPermission(\"access_config\")) {\n return false;\n }\n if (this.config.configWhitelist && this.config.configWhitelist.length > 0) {\n return this.config.configWhitelist.includes(key);\n }\n return true;\n }\n /**\n * 检查是否可以访问状态作用域\n * \n * @param scope - 状态作用域\n * @returns 是否可以访问\n */ canAccessStateScope(scope) {\n if (!this.hasPermission(\"access_state_manager\")) {\n return false;\n }\n if (this.config.stateScopeWhitelist && this.config.stateScopeWhitelist.length > 0) {\n return this.config.stateScopeWhitelist.includes(scope);\n }\n return true;\n }\n /**\n * 过滤配置(根据白名单)\n * \n * @param config - 完整配置\n * @returns 过滤后的配置\n */ filterConfig(config) {\n if (!this.hasPermission(\"access_config\")) {\n return {};\n }\n if (!this.config.configWhitelist || this.config.configWhitelist.length === 0) {\n return config;\n }\n const filtered = {};\n for (const key of this.config.configWhitelist){\n if (key in config) {\n filtered[key] = config[key];\n }\n }\n return filtered;\n }\n /**\n * 获取沙箱配置\n */ getConfig() {\n return {\n ...this.config\n };\n }\n /**\n * 更新权限\n * \n * @param permissions - 权限列表\n */ updatePermissions(permissions) {\n this.permissions = new Set(permissions);\n this.config.permissions = permissions;\n }\n constructor(config){\n _define_property(this, \"config\", void 0);\n _define_property(this, \"permissions\", void 0);\n this.config = {\n strictMode: true,\n ...config\n };\n this.permissions = new Set(config.permissions || []);\n }\n}\n\n//# sourceMappingURL=PluginSandbox.js.map","/**\n * 插件事件总线\n * 用于插件间通信\n */ /**\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 */ export class PluginEventBus {\n /**\n * 订阅事件\n * \n * @param event - 事件名称\n * @param listener - 事件监听器(可以接收 EventWrapper 或直接数据)\n * @returns 取消订阅函数\n */ on(event, listener) {\n if (!this.listeners.has(event)) {\n this.listeners.set(event, new Set());\n }\n const listeners = this.listeners.get(event);\n listeners.add(listener);\n // 返回取消订阅函数\n return ()=>{\n listeners.delete(listener);\n if (listeners.size === 0) {\n this.listeners.delete(event);\n }\n };\n }\n /**\n * 取消订阅事件\n * \n * @param event - 事件名称\n * @param listener - 事件监听器\n */ off(event, listener) {\n const listeners = this.listeners.get(event);\n if (listeners) {\n listeners.delete(listener);\n if (listeners.size === 0) {\n this.listeners.delete(event);\n }\n }\n }\n /**\n * 发布事件\n * \n * @param event - 事件名称\n * @param data - 事件数据\n * @param metadata - 事件元数据(可选)\n */ async emit(event, data, metadata) {\n // 事件验证\n if (this.config.enableValidation && !this.config.validator(event, data)) {\n console.warn(`事件 ${event} 验证失败,已忽略`);\n return;\n }\n // 构建事件元数据\n const eventMetadata = {\n source: metadata?.source,\n timestamp: metadata?.timestamp ?? Date.now(),\n eventId: metadata?.eventId ?? `event_${++this.eventCounter}`,\n priority: metadata?.priority ?? 0\n };\n // 记录事件历史\n if (this.config.enableTracking) {\n this.eventHistory.push({\n event,\n data,\n metadata: eventMetadata\n });\n // 限制历史记录大小\n if (this.eventHistory.length > this.config.maxHistorySize) {\n this.eventHistory.shift();\n }\n }\n const listeners = this.listeners.get(event);\n if (!listeners || listeners.size === 0) {\n return;\n }\n // 创建事件包装器\n const eventWrapper = {\n data: data,\n metadata: eventMetadata\n };\n // 按优先级排序监听器(如果有优先级)\n const sortedListeners = Array.from(listeners);\n // 并行执行所有监听器\n const promises = sortedListeners.map((listener)=>{\n try {\n return Promise.resolve(listener(eventWrapper));\n } catch (error) {\n console.error(`事件 ${event} 的监听器执行失败:`, error);\n return Promise.resolve();\n }\n });\n await Promise.allSettled(promises);\n }\n /**\n * 发布事件(仅数据,向后兼容)\n * \n * @param event - 事件名称\n * @param data - 事件数据\n */ async emitData(event, data) {\n return this.emit(event, data);\n }\n /**\n * 一次性订阅事件\n * \n * @param event - 事件名称\n * @param listener - 事件监听器\n */ once(event, listener) {\n const wrappedListener = async (data)=>{\n // 处理 EventWrapper 或直接数据\n const actualData = data.data !== undefined ? data.data : data;\n await listener(actualData);\n this.off(event, wrappedListener);\n };\n this.on(event, wrappedListener);\n }\n /**\n * 清空所有事件监听器\n */ clear() {\n this.listeners.clear();\n }\n /**\n * 获取事件监听器数量\n * \n * @param event - 事件名称,如果不提供则返回所有事件的监听器总数\n */ listenerCount(event) {\n if (event) {\n return this.listeners.get(event)?.size || 0;\n }\n let count = 0;\n for (const listeners of this.listeners.values()){\n count += listeners.size;\n }\n return count;\n }\n /**\n * 获取所有事件名称\n */ eventNames() {\n return Array.from(this.listeners.keys());\n }\n /**\n * 获取事件历史记录\n * \n * @param event - 事件名称(可选,如果提供则只返回该事件的历史)\n * @param limit - 限制返回的记录数\n * @returns 事件历史记录\n */ getEventHistory(event, limit) {\n if (!this.config.enableTracking) {\n return [];\n }\n let history = this.eventHistory;\n if (event) {\n history = history.filter((h)=>h.event === event);\n }\n if (limit) {\n history = history.slice(-limit);\n }\n return [\n ...history\n ];\n }\n /**\n * 清空事件历史记录\n */ clearHistory() {\n this.eventHistory = [];\n }\n /**\n * 请求-响应模式:发送请求并等待响应\n * \n * @param event - 事件名称\n * @param data - 请求数据\n * @param timeout - 超时时间(毫秒)\n * @returns 响应数据\n */ async request(event, data, timeout = 5000) {\n return new Promise((resolve, reject)=>{\n const responseEvent = `${event}:response`;\n const requestId = `req_${Date.now()}_${Math.random()}`;\n // 设置超时\n const timeoutId = setTimeout(()=>{\n this.off(responseEvent, responseHandler);\n reject(new Error(`请求 ${event} 超时`));\n }, timeout);\n // 响应处理器\n const responseHandler = (response)=>{\n // 处理 EventWrapper 或直接数据\n const actualResponse = response.data !== undefined ? response.data : response;\n if (actualResponse.requestId === requestId) {\n clearTimeout(timeoutId);\n this.off(responseEvent, responseHandler);\n resolve(actualResponse.data);\n }\n };\n // 订阅响应事件\n this.on(responseEvent, responseHandler);\n // 发送请求\n this.emit(`${event}:request`, {\n requestId,\n data\n });\n });\n }\n /**\n * 请求-响应模式:注册请求处理器\n * \n * @param event - 事件名称\n * @param handler - 请求处理器\n * @returns 取消注册函数\n */ onRequest(event, handler) {\n const requestEvent = `${event}:request`;\n const responseEvent = `${event}:response`;\n return this.on(requestEvent, async (wrapper)=>{\n try {\n // 处理 EventWrapper 或直接数据\n const actualWrapper = wrapper.data !== undefined ? wrapper : {\n data: wrapper,\n metadata: {\n timestamp: Date.now()\n }\n };\n const response = await handler(actualWrapper.data.data, actualWrapper.metadata);\n this.emit(responseEvent, {\n requestId: actualWrapper.data.requestId,\n data: response\n });\n } catch (error) {\n const actualWrapper = wrapper.data !== undefined ? wrapper : {\n data: wrapper\n };\n this.emit(`${responseEvent}:error`, {\n requestId: actualWrapper.data.requestId,\n error: error instanceof Error ? error.message : String(error)\n });\n }\n });\n }\n /**\n * 获取配置\n */ getConfig() {\n return {\n ...this.config\n };\n }\n /**\n * 更新配置\n */ updateConfig(config) {\n this.config = {\n ...this.config,\n ...config\n };\n }\n constructor(config = {}){\n _define_property(this, \"listeners\", new Map());\n _define_property(this, \"eventHistory\", []);\n _define_property(this, \"config\", void 0);\n _define_property(this, \"eventCounter\", 0);\n this.config = {\n enableTracking: config.enableTracking ?? false,\n maxHistorySize: config.maxHistorySize ?? 100,\n enableValidation: config.enableValidation ?? false,\n validator: config.validator ?? (()=>true)\n };\n }\n}\n/**\n * 全局插件事件总线实例\n */ export const pluginEventBus = new PluginEventBus({\n enableTracking: process.env.NODE_ENV === 'development',\n maxHistorySize: 100,\n enableValidation: false\n});\n\n//# sourceMappingURL=PluginEventBus.js.map","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 { PluginSandbox } from \"./plugin/PluginSandbox\";\nimport { pluginEventBus } from \"./plugin/PluginEventBus\";\n/**\n * 插件管理器\n *\n * 优化:\n * 1. 支持插件依赖管理\n * 2. 支持插件优先级控制\n * 3. 支持插件生命周期管理\n * 4. 支持插件热插拔(动态加载/卸载)\n */ export class PluginManager {\n /**\n * 注册插件\n *\n * 优化:检查插件依赖是否已注册\n */ register(plugin) {\n if (this.plugins.has(plugin.name)) {\n console.warn(`插件 ${plugin.name} 已存在,将被覆盖`);\n }\n // 检查依赖是否已注册\n if (plugin.dependencies && plugin.dependencies.length > 0) {\n const missingDeps = plugin.dependencies.filter((dep)=>!this.plugins.has(dep));\n if (missingDeps.length > 0) {\n console.warn(`插件 ${plugin.name} 的依赖未注册: ${missingDeps.join(', ')}`);\n }\n }\n this.plugins.set(plugin.name, plugin);\n this.pluginStatus.set(plugin.name, 'registered');\n // 创建插件沙箱\n if (plugin.sandbox) {\n const sandbox = new PluginSandbox({\n ...plugin.sandbox,\n name: plugin.name\n });\n this.sandboxes.set(plugin.name, sandbox);\n } else {\n // 如果没有配置沙箱,创建默认沙箱(非严格模式)\n const sandbox = new PluginSandbox({\n strictMode: false,\n name: plugin.name\n });\n this.sandboxes.set(plugin.name, sandbox);\n }\n }\n /**\n * 获取插件加载顺序(考虑依赖和优先级)\n *\n * @returns 插件名称数组,按加载顺序排列\n */ getLoadOrder() {\n const plugins = Array.from(this.plugins.values());\n // 按优先级排序\n const sortedPlugins = plugins.sort((a, b)=>{\n const priorityA = a.priority ?? 100;\n const priorityB = b.priority ?? 100;\n return priorityA - priorityB;\n });\n // 构建依赖图并拓扑排序\n const visited = new Set();\n const visiting = new Set();\n const result = [];\n const visit = (pluginName)=>{\n if (visiting.has(pluginName)) {\n console.warn(`检测到循环依赖,涉及插件: ${pluginName}`);\n return;\n }\n if (visited.has(pluginName)) {\n return;\n }\n visiting.add(pluginName);\n const plugin = this.plugins.get(pluginName);\n if (plugin?.dependencies) {\n for (const dep of plugin.dependencies){\n visit(dep);\n }\n }\n visiting.delete(pluginName);\n visited.add(pluginName);\n result.push(pluginName);\n };\n for (const plugin of sortedPlugins){\n visit(plugin.name);\n }\n return result;\n }\n /**\n * 注销插件\n */ unregister(name) {\n const plugin = this.plugins.get(name);\n if (plugin && plugin.destroy) {\n plugin.destroy();\n }\n this.plugins.delete(name);\n this.sandboxes.delete(name);\n this.pluginStatus.delete(name);\n this.pluginLoaders.delete(name);\n }\n /**\n * 动态加载插件(热插拔)\n *\n * @param options - 插件加载选项\n * @returns 加载的插件\n */ async loadPlugin(options) {\n let plugin;\n if (options.url) {\n // 从URL加载插件\n const response = await fetch(options.url);\n if (!response.ok) {\n throw new Error(`无法加载插件: ${options.url} (${response.status})`);\n }\n const pluginModule = await response.json();\n plugin = pluginModule.default || pluginModule;\n } else if (options.modulePath) {\n // 从模块路径动态导入\n const pluginModule = await import(/* @vite-ignore */ options.modulePath);\n plugin = pluginModule.default || pluginModule;\n } else {\n throw new Error('必须提供 url 或 modulePath');\n }\n if (!plugin || !plugin.name) {\n throw new Error('插件格式无效:必须包含 name 属性');\n }\n // 检查插件是否已加载\n if (this.plugins.has(plugin.name)) {\n throw new Error(`插件 ${plugin.name} 已加载`);\n }\n // 设置加载状态\n this.pluginStatus.set(plugin.name, 'loading');\n try {\n // 注册插件\n this.register(plugin);\n // 如果要求立即初始化\n if (options.initialize && options.initContext && options.startOptions) {\n await this.initializePlugin(plugin.name, options.startOptions, options.initContext);\n }\n return plugin;\n } catch (error) {\n this.pluginStatus.delete(plugin.name);\n throw error;\n }\n }\n /**\n * 初始化单个插件\n *\n * @param name - 插件名称\n * @param options - 启动选项\n * @param context - 初始化上下文\n */ async initializePlugin(name, options, context) {\n const plugin = this.plugins.get(name);\n if (!plugin) {\n throw new Error(`插件 ${name} 未注册`);\n }\n const status = this.pluginStatus.get(name);\n if (status === 'initialized') {\n return; // 已经初始化\n }\n try {\n const sandbox = this.sandboxes.get(name);\n if (!sandbox) {\n throw new Error(`插件 ${name} 的沙箱未找到`);\n }\n // 执行初始化钩子\n if (plugin.init) {\n const filteredOptions = sandbox.filterConfig(options);\n await plugin.init(filteredOptions, context, sandbox, pluginEventBus);\n }\n this.pluginStatus.set(name, 'initialized');\n } catch (error) {\n console.error(`插件 ${name} 初始化失败:`, error);\n throw error;\n }\n }\n /**\n * 卸载插件(热插拔)\n *\n * @param name - 插件名称\n * @param force - 是否强制卸载(即使有依赖)\n */ async unloadPlugin(name, force = false) {\n const plugin = this.plugins.get(name);\n if (!plugin) {\n throw new Error(`插件 ${name} 未加载`);\n }\n // 检查是否有其他插件依赖此插件\n if (!force) {\n const dependents = Array.from(this.plugins.values()).filter((p)=>p.dependencies && p.dependencies.includes(name));\n if (dependents.length > 0) {\n throw new Error(`无法卸载插件 ${name},以下插件依赖它: ${dependents.map((p)=>p.name).join(', ')}`);\n }\n }\n // 执行销毁钩子\n if (plugin.destroy) {\n try {\n await plugin.destroy();\n } catch (error) {\n console.error(`插件 ${name} 的 destroy 钩子执行失败:`, error);\n }\n }\n // 从事件总线移除相关监听器(如果有)\n // 注意:事件总线是全局的,这里只移除插件相关的事件\n // 实际实现可能需要更细粒度的控制\n // 清理插件\n this.unregister(name);\n this.pluginStatus.set(name, 'destroyed');\n }\n /**\n * 检查插件是否可以热加载\n *\n * @param plugin - 插件\n * @returns 是否可以热加载\n */ canHotLoad(plugin) {\n // 检查依赖是否都已加载\n if (plugin.dependencies && plugin.dependencies.length > 0) {\n const missingDeps = plugin.dependencies.filter((dep)=>!this.plugins.has(dep));\n if (missingDeps.length > 0) {\n return false;\n }\n }\n return true;\n }\n /**\n * 注册插件加载器(用于延迟加载)\n *\n * @param name - 插件名称\n * @param loader - 加载器函数\n */ registerLoader(name, loader) {\n this.pluginLoaders.set(name, loader);\n }\n /**\n * 使用加载器加载插件\n *\n * @param name - 插件名称\n * @param options - 加载选项\n * @returns 加载的插件\n */ async loadPluginByLoader(name, options) {\n const loader = this.pluginLoaders.get(name);\n if (!loader) {\n throw new Error(`插件 ${name} 的加载器未注册`);\n }\n const plugin = await loader();\n if (!plugin || !plugin.name) {\n throw new Error('插件格式无效:必须包含 name 属性');\n }\n if (plugin.name !== name) {\n throw new Error(`插件名称不匹配: 期望 ${name},实际 ${plugin.name}`);\n }\n // 检查插件是否已加载\n if (this.plugins.has(plugin.name)) {\n return this.plugins.get(plugin.name);\n }\n // 设置加载状态\n this.pluginStatus.set(plugin.name, 'loading');\n try {\n // 注册插件\n this.register(plugin);\n // 如果要求立即初始化\n if (options?.initialize && options.initContext && options.startOptions) {\n await this.initializePlugin(plugin.name, options.startOptions, options.initContext);\n }\n return plugin;\n } catch (error) {\n this.pluginStatus.delete(plugin.name);\n throw error;\n }\n }\n /**\n * 获取插件\n */ get(name) {\n return this.plugins.get(name);\n }\n /**\n * 获取所有插件\n */ getAll() {\n return Array.from(this.plugins.values());\n }\n /**\n * 执行初始化前钩子\n *\n * 优化:按依赖顺序执行\n */ async executeBeforeInit(options) {\n const loadOrder = this.getLoadOrder();\n for (const pluginName of loadOrder){\n const plugin = this.plugins.get(pluginName);\n if (!plugin || !plugin.beforeInit) {\n continue;\n }\n try {\n const sandbox = this.sandboxes.get(plugin.name);\n if (!sandbox) {\n console.warn(`插件 ${plugin.name} 的沙箱未找到`);\n continue;\n }\n // 根据沙箱配置过滤选项\n const filteredOptions = sandbox.filterConfig(options);\n await plugin.beforeInit(filteredOptions, sandbox, pluginEventBus);\n } catch (error) {\n console.error(`插件 ${plugin.name} 的 beforeInit 钩子执行失败:`, error);\n }\n }\n }\n /**\n * 执行初始化钩子\n *\n * 优化:按依赖顺序执行,并更新插件状态\n */ async executeInit(options, context) {\n const loadOrder = this.getLoadOrder();\n for (const pluginName of loadOrder){\n const plugin = this.plugins.get(pluginName);\n if (!plugin || !plugin.init) {\n continue;\n }\n try {\n const sandbox = this.sandboxes.get(plugin.name);\n if (!sandbox) {\n console.warn(`插件 ${plugin.name} 的沙箱未找到`);\n continue;\n }\n // 根据沙箱配置过滤选项\n const filteredOptions = sandbox.filterConfig(options);\n await plugin.init(filteredOptions, context, sandbox, pluginEventBus);\n this.pluginStatus.set(plugin.name, 'initialized');\n } catch (error) {\n console.error(`插件 ${plugin.name} 的 init 钩子执行失败:`, error);\n }\n }\n }\n /**\n * 执行初始化后钩子\n *\n * 优化:按依赖顺序执行(逆序,确保依赖插件先执行)\n */ async executeAfterInit(options, context) {\n const loadOrder = this.getLoadOrder();\n // 逆序执行,确保依赖插件先执行\n const reverseOrder = [\n ...loadOrder\n ].reverse();\n for (const pluginName of reverseOrder){\n const plugin = this.plugins.get(pluginName);\n if (!plugin || !plugin.afterInit) {\n continue;\n }\n try {\n const sandbox = this.sandboxes.get(plugin.name);\n if (!sandbox) {\n console.warn(`插件 ${plugin.name} 的沙箱未找到`);\n continue;\n }\n // 根据沙箱配置过滤选项\n const filteredOptions = sandbox.filterConfig(options);\n await plugin.afterInit(filteredOptions, context, sandbox, pluginEventBus);\n } catch (error) {\n console.error(`插件 ${plugin.name} 的 afterInit 钩子执行失败:`, error);\n }\n }\n }\n /**\n * 获取插件状态\n *\n * @param name - 插件名称\n * @returns 插件状态\n */ getPluginStatus(name) {\n return this.pluginStatus.get(name);\n }\n /**\n * 检查插件是否已加载\n *\n * @param name - 插件名称\n * @returns 是否已加载\n */ isLoaded(name) {\n return this.plugins.has(name);\n }\n /**\n * 获取已加载的插件列表\n *\n * @returns 插件名称数组\n */ getLoadedPlugins() {\n return Array.from(this.plugins.keys());\n }\n /**\n * 获取所有插件状态\n *\n * @returns 插件状态映射\n */ getAllPluginStatus() {\n return new Map(this.pluginStatus);\n }\n /**\n * 获取插件沙箱\n *\n * @param name - 插件名称\n * @returns 插件沙箱或undefined\n */ getSandbox(name) {\n return this.sandboxes.get(name);\n }\n /**\n * 获取事件总线\n */ getEventBus() {\n return pluginEventBus;\n }\n /**\n * 销毁所有插件\n */ async destroyAll() {\n for (const plugin of this.plugins.values()){\n if (plugin.destroy) {\n try {\n await plugin.destroy();\n } catch (error) {\n console.error(`插件 ${plugin.name} 的 destroy 钩子执行失败:`, error);\n }\n }\n }\n this.plugins.clear();\n }\n constructor(){\n _define_property(this, \"plugins\", new Map());\n _define_property(this, \"sandboxes\", new Map());\n _define_property(this, \"pluginStatus\", new Map());\n _define_property(this, \"pluginLoaders\", new Map());\n }\n}\n/**\n * 默认插件管理器\n */ export const pluginManager = new PluginManager();\n// 导出插件相关类型和工具\nexport { PluginSandbox, PluginPermission } from \"./plugin/PluginSandbox\";\nexport { PluginEventBus, pluginEventBus } from \"./plugin/PluginEventBus\";\n\n//# sourceMappingURL=plugin.js.map","import { logger, LogLevel } from \"@vlian/logger\";\nimport { setupI18n } from \"../../library\";\nimport { pluginManager } from \"../plugin\";\n/**\n * 初始化方法\n * \n * 这是核心的初始化逻辑,可被启动页或直接调用\n * \n * @param options - 初始化选项\n * @param onProgress - 进度回调函数(可选)\n * @returns Promise<InitializationContext>\n * \n * @example\n * ```typescript\n * const context = await initialization({\n * loggerLevel: LogLevel.INFO,\n * lifecycle: {\n * initialization: async () => {\n * // 初始化逻辑\n * },\n * },\n * }, (progress, step) => {\n * console.log(`进度: ${progress}%, 步骤: ${step}`);\n * });\n * ```\n */ export async function initialization(options, onProgress) {\n const startTime = Date.now();\n let config = {};\n try {\n // 0. 执行插件初始化前钩子\n await pluginManager.executeBeforeInit(options);\n // 1. 设置日志级别\n onProgress?.(5, '初始化日志系统...');\n logger.setLevel(options.loggerLevel ?? LogLevel.INFO);\n // 2. 预留配置阶段\n onProgress?.(30);\n // 3. 初始化之前回调\n if (options.lifecycle?.beforeInitialization) {\n onProgress?.(35, '执行初始化前回调...');\n await options.lifecycle.beforeInitialization();\n }\n // 4. 国际化设置\n onProgress?.(40, '设置国际化...');\n setupI18n(options.locale || undefined);\n // 5. 核心初始化\n if (options.lifecycle?.initialization) {\n onProgress?.(50, '初始化核心功能...');\n await options.lifecycle.initialization();\n onProgress?.(70, '核心功能初始化完成');\n } else {\n onProgress?.(70);\n }\n onProgress?.(80, '准备完成...');\n const duration = Date.now() - startTime;\n const context = {\n config,\n progress: 100,\n isReady: true,\n duration\n };\n // 执行插件初始化钩子\n await pluginManager.executeInit(options, context);\n // 执行插件初始化后钩子\n await pluginManager.executeAfterInit(options, context);\n // 6. 初始化之后回调(在 context 创建后执行,可以访问完整的初始化上下文)\n if (options.lifecycle?.afterInitialization) {\n onProgress?.(90, '执行初始化后回调...');\n await options.lifecycle.afterInitialization(context);\n }\n onProgress?.(100, '初始化完成');\n return context;\n } catch (error) {\n logger.error('初始化失败:', error);\n throw error;\n }\n}\n\n//# sourceMappingURL=initialization.js.map","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 { errorUtils } from \"@vlian/utils\";\n/**\n * 初始化错误状态管理器\n * \n * 用于在初始化过程中捕获和存储错误,以便 ErrorBoundary 能够捕获并显示\n */ let InitializationErrorState = class InitializationErrorState {\n /**\n * 设置错误\n */ setError(error) {\n this.error = errorUtils.normalizeError(error);\n // 通知所有监听器\n this.listeners.forEach((listener)=>listener());\n }\n /**\n * 获取错误\n */ getError() {\n return this.error;\n }\n /**\n * 清除错误\n */ clearError() {\n this.error = null;\n this.listeners.forEach((listener)=>listener());\n }\n /**\n * 订阅错误变化\n */ subscribe(listener) {\n this.listeners.add(listener);\n return ()=>{\n this.listeners.delete(listener);\n };\n }\n /**\n * 检查是否有错误\n */ hasError() {\n return this.error !== null;\n }\n constructor(){\n _define_property(this, \"error\", null);\n _define_property(this, \"listeners\", new Set());\n }\n};\n/**\n * 全局初始化错误状态管理器实例\n */ export const initializationErrorState = new InitializationErrorState();\n\n//# sourceMappingURL=initializationErrorState.js.map","import React, { useEffect, useState } from \"react\";\nimport { initializationErrorState } from \"./initializationErrorState\";\n/**\n * 初始化错误抛出组件\n * \n * 当检测到初始化错误时,主动抛出错误给 ErrorBoundary 捕获\n */ export const InitializationErrorThrower = ()=>{\n const [error, setError] = useState(null);\n useEffect(()=>{\n // 检查初始错误\n const currentError = initializationErrorState.getError();\n if (currentError) {\n setError(currentError);\n return;\n }\n // 订阅错误变化\n const unsubscribe = initializationErrorState.subscribe(()=>{\n const newError = initializationErrorState.getError();\n setError(newError);\n });\n return unsubscribe;\n }, []);\n // 如果有错误,抛出错误给 ErrorBoundary\n if (error) {\n throw error;\n }\n return null;\n};\n\n//# sourceMappingURL=InitializationErrorThrower.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport React, { useEffect, useState, useRef, memo, useCallback } from \"react\";\nimport { logger } from \"@vlian/logger\";\nimport { initialization, initializationErrorState } from \"../initialization\";\n/**\n * 启动页组件\n * \n * 在启动页中执行初始化,并使用 Ant Design 5 的 Spin 和 Progress 组件展示启动进度\n */ const SplashScreen = /*#__PURE__*/ memo(({ options, onComplete })=>{\n const [progress, setProgress] = useState(0);\n const [currentStep, setCurrentStep] = useState('准备初始化...');\n const [isInitializing, setIsInitializing] = useState(false);\n const [estimatedTime, setEstimatedTime] = useState(null);\n const [isSystemDark, setIsSystemDark] = useState(()=>{\n if (typeof window === 'undefined') {\n return false;\n }\n return window.matchMedia('(prefers-color-scheme: dark)').matches;\n });\n const hasCompletedRef = useRef(false);\n const onCompleteRef = useRef(onComplete);\n const optionsRef = useRef(options);\n const startTimeRef = useRef(Date.now());\n const minDisplayTimeRef = useRef(options.minSplashScreenTime ?? 500); // 最小显示时间,默认 500ms\n const progressUpdateTimerRef = useRef(null);\n const rafRef = useRef(null);\n const lastProgressRef = useRef(0);\n const progressHistoryRef = useRef([]);\n // 保持引用最新\n useEffect(()=>{\n onCompleteRef.current = onComplete;\n optionsRef.current = options;\n minDisplayTimeRef.current = options.minSplashScreenTime ?? 500;\n }, [\n onComplete,\n options\n ]);\n // 自适应防抖进度更新函数(使用 requestAnimationFrame 优化)\n const debouncedProgressUpdate = useCallback((progressValue, step)=>{\n // 取消之前的更新\n if (rafRef.current !== null) {\n cancelAnimationFrame(rafRef.current);\n }\n // 记录进度历史用于时间预估\n const now = Date.now();\n progressHistoryRef.current.push({\n progress: progressValue,\n time: now\n });\n // 只保留最近10个记录\n if (progressHistoryRef.current.length > 10) {\n progressHistoryRef.current.shift();\n }\n // 计算预估时间\n if (progressHistoryRef.current.length >= 2 && progressValue > 0) {\n const history = progressHistoryRef.current;\n const first = history[0];\n const last = history[history.length - 1];\n const progressDelta = last.progress - first.progress;\n const timeDelta = last.time - first.time;\n if (progressDelta > 0 && timeDelta > 0) {\n const progressPerMs = progressDelta / timeDelta;\n const remainingProgress = 100 - progressValue;\n const estimatedMs = remainingProgress / progressPerMs;\n setEstimatedTime(Math.max(0, Math.round(estimatedMs)));\n }\n }\n // 使用 requestAnimationFrame 优化更新\n rafRef.current = requestAnimationFrame(()=>{\n setProgress(progressValue);\n if (step) {\n setCurrentStep(step);\n }\n lastProgressRef.current = progressValue;\n rafRef.current = null;\n });\n }, []);\n useEffect(()=>{\n if (hasCompletedRef.current) return;\n hasCompletedRef.current = true;\n startTimeRef.current = Date.now();\n const performInitialization = async ()=>{\n try {\n setIsInitializing(true);\n setProgress(0);\n setCurrentStep('开始初始化...');\n logger.info('启动页开始执行初始化');\n // 执行初始化,传入防抖的进度回调\n const context = await initialization(optionsRef.current, (progressValue, step)=>{\n debouncedProgressUpdate(progressValue, step);\n });\n logger.info('启动页初始化完成', context);\n // 动态调整最小显示时间(如果初始化很快,减少最小显示时间)\n const elapsedTime = Date.now() - startTimeRef.current;\n const dynamicMinTime = elapsedTime < 200 ? Math.min(minDisplayTimeRef.current, 300) : minDisplayTimeRef.current;\n const remainingTime = Math.max(0, dynamicMinTime - elapsedTime);\n if (remainingTime > 0) {\n await new Promise((resolve)=>setTimeout(resolve, remainingTime));\n }\n // 清理防抖定时器\n if (progressUpdateTimerRef.current) {\n clearTimeout(progressUpdateTimerRef.current);\n progressUpdateTimerRef.current = null;\n }\n // 确保进度条显示 100%\n setProgress(100);\n setCurrentStep('初始化完成');\n // 初始化完成,调用回调\n onCompleteRef.current(context);\n } catch (error) {\n logger.error('启动页初始化失败:', error);\n // 设置错误状态,让 ErrorBoundary 能够捕获\n initializationErrorState.setError(error);\n setCurrentStep('初始化失败,请刷新页面重试');\n // 即使失败也调用 onComplete,让应用能够处理错误\n onCompleteRef.current({\n config: {},\n progress: 0,\n isReady: false,\n duration: 0\n });\n } finally{\n setIsInitializing(false);\n }\n };\n performInitialization();\n // 清理函数\n return ()=>{\n if (progressUpdateTimerRef.current) {\n clearTimeout(progressUpdateTimerRef.current);\n }\n if (rafRef.current !== null) {\n cancelAnimationFrame(rafRef.current);\n }\n };\n }, [\n debouncedProgressUpdate\n ]);\n useEffect(()=>{\n if (typeof window === 'undefined') {\n return;\n }\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n const onSystemThemeChange = (event)=>{\n setIsSystemDark(event.matches);\n };\n setIsSystemDark(mediaQuery.matches);\n if (typeof mediaQuery.addEventListener === 'function') {\n mediaQuery.addEventListener('change', onSystemThemeChange);\n return ()=>mediaQuery.removeEventListener('change', onSystemThemeChange);\n }\n mediaQuery.addListener(onSystemThemeChange);\n return ()=>mediaQuery.removeListener(onSystemThemeChange);\n }, []);\n const resolvedMode = React.useMemo(()=>{\n const mode = optionsRef.current.theme?.mode || 'light';\n if (mode === 'system') {\n return isSystemDark ? 'dark' : 'light';\n }\n return mode === 'dark' ? 'dark' : 'light';\n }, [\n isSystemDark\n ]);\n const palette = React.useMemo(()=>{\n if (resolvedMode === 'dark') {\n return {\n background: '#0b1220',\n text: '#e2e8f0',\n subText: '#94a3b8',\n track: '#1f2937',\n spinnerTrack: '#334155'\n };\n }\n return {\n background: '#f5f7fb',\n text: '#51606f',\n subText: '#94a3b8',\n track: '#e9eff5',\n spinnerTrack: '#d9e2ec'\n };\n }, [\n resolvedMode\n ]);\n // 如果提供了自定义启动屏组件,使用自定义组件\n const CustomSplashScreen = optionsRef.current.splashScreen;\n if (CustomSplashScreen) {\n const customProps = {\n progress,\n currentStep,\n isInitializing\n };\n return /*#__PURE__*/ _jsx(CustomSplashScreen, {\n ...customProps\n });\n }\n // 默认启动屏 UI\n return /*#__PURE__*/ _jsxs(\"div\", {\n role: \"status\",\n \"aria-live\": \"polite\",\n \"aria-label\": \"应用正在加载\",\n style: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n height: '100vh',\n width: '100%',\n gap: 24,\n background: palette.background,\n color: palette.text\n },\n children: [\n /*#__PURE__*/ _jsx(\"div\", {\n \"aria-label\": \"加载中\",\n style: {\n width: 42,\n height: 42,\n border: `4px solid ${palette.spinnerTrack}`,\n borderTopColor: 'var(--app-primary-color, #2f80ed)',\n borderRadius: '50%',\n animation: 'secra-spin 1s linear infinite'\n }\n }),\n /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n width: '300px'\n },\n children: [\n /*#__PURE__*/ _jsx(\"div\", {\n \"aria-label\": `加载进度 ${progress}%`,\n style: {\n height: 12,\n background: palette.track,\n borderRadius: 999,\n overflow: 'hidden'\n },\n children: /*#__PURE__*/ _jsx(\"div\", {\n style: {\n width: `${Math.max(0, Math.min(100, progress))}%`,\n height: '100%',\n background: 'var(--app-primary-color, #2f80ed)',\n transition: 'width 0.2s ease'\n }\n })\n }),\n /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n marginTop: 8,\n textAlign: 'right',\n fontSize: 12,\n color: palette.text\n },\n children: [\n progress,\n \"%\"\n ]\n })\n ]\n }),\n /*#__PURE__*/ _jsxs(\"div\", {\n role: \"status\",\n \"aria-live\": \"polite\",\n style: {\n fontSize: 14,\n color: palette.text,\n textAlign: 'center'\n },\n children: [\n currentStep,\n estimatedTime !== null && estimatedTime > 0 && /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n fontSize: 12,\n color: palette.subText,\n marginTop: 8\n },\n children: [\n \"预计还需 \",\n Math.ceil(estimatedTime / 1000),\n \" 秒\"\n ]\n })\n ]\n }),\n /*#__PURE__*/ _jsx(\"style\", {\n children: `@keyframes secra-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }`\n })\n ]\n });\n});\nSplashScreen.displayName = 'SplashScreen';\nexport { SplashScreen };\n\n//# sourceMappingURL=SplashScreen.js.map","/**\n * 判断是否应该显示启动页\n * \n * @param showSplashScreen - 启动页显示策略\n * @returns boolean\n */ export function shouldShowSplashScreen(showSplashScreen) {\n // 明确指定不显示\n if (showSplashScreen === 'never') {\n return false;\n }\n // 明确指定总是显示\n if (showSplashScreen === 'always') {\n return true;\n }\n // 仅首次加载显示\n if (showSplashScreen === 'first-time-only') {\n const hasVisited = sessionStorage.getItem('__framework_visited__');\n if (hasVisited) {\n return false;\n }\n sessionStorage.setItem('__framework_visited__', 'true');\n return true;\n }\n // 自动判断(默认策略)\n // 这里可以根据实际情况添加更多判断逻辑\n // 例如:根据启动时间、网络状况等\n return true;\n}\n\n//# sourceMappingURL=splashScreenUtils.js.map","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 */ export class MiddlewareManager {\n /**\n * 添加中间件\n */ use(middleware) {\n this.middlewares.push(middleware);\n }\n /**\n * 移除中间件\n */ remove(middleware) {\n const index = this.middlewares.indexOf(middleware);\n if (index > -1) {\n this.middlewares.splice(index, 1);\n }\n }\n /**\n * 清空所有中间件\n */ clear() {\n this.middlewares = [];\n }\n /**\n * 执行中间件链\n */ async execute(options, finalHandler) {\n let index = 0;\n const next = async ()=>{\n if (index >= this.middlewares.length) {\n return finalHandler();\n }\n const middleware = this.middlewares[index++];\n return middleware(options, next);\n };\n return next();\n }\n /**\n * 获取中间件数量\n */ get count() {\n return this.middlewares.length;\n }\n constructor(){\n _define_property(this, \"middlewares\", []);\n }\n}\n/**\n * 默认中间件管理器\n */ export const middlewareManager = new MiddlewareManager();\n\n//# sourceMappingURL=middleware.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 */ 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","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 */ import { logger } from \"@vlian/logger\";\n/**\n * 应用事件总线\n */ export class AppEventBus {\n /**\n * 订阅事件\n * \n * @param event - 事件名称\n * @param listener - 事件监听器\n * @param options - 监听器选项\n * @returns 取消订阅函数\n * \n * @example\n * ```typescript\n * const unsubscribe = eventBus.on('user:login', (data, metadata) => {\n * console.log('用户登录:', data);\n * });\n * \n * // 取消订阅\n * unsubscribe();\n * ```\n */ on(event, listener, options = {}) {\n const fullEventName = this.getFullEventName(event);\n const listenerId = Symbol(`listener_${++this.listenerIdCounter}`);\n const listenerWithOptions = {\n listener: listener,\n options: {\n priority: options.priority ?? 100,\n once: options.once ?? false,\n namespace: options.namespace ?? this.config.namespacePrefix,\n async: options.async ?? true\n },\n id: listenerId\n };\n if (!this.listeners.has(fullEventName)) {\n this.listeners.set(fullEventName, new Set());\n }\n const listeners = this.listeners.get(fullEventName);\n listeners.add(listenerWithOptions);\n // 按优先级排序(数字越小优先级越高)\n const sortedListeners = Array.from(listeners).sort((a, b)=>a.options.priority - b.options.priority);\n this.listeners.set(fullEventName, new Set(sortedListeners));\n // 返回取消订阅函数\n return ()=>{\n const currentListeners = this.listeners.get(fullEventName);\n if (currentListeners) {\n currentListeners.delete(listenerWithOptions);\n if (currentListeners.size === 0) {\n this.listeners.delete(fullEventName);\n }\n }\n };\n }\n /**\n * 取消订阅事件\n * \n * @param event - 事件名称\n * @param listener - 事件监听器(可选,不提供则取消该事件的所有监听器)\n */ off(event, listener) {\n const fullEventName = this.getFullEventName(event);\n const listeners = this.listeners.get(fullEventName);\n if (!listeners) {\n return;\n }\n if (listener) {\n // 移除指定的监听器\n for (const item of listeners){\n if (item.listener === listener) {\n listeners.delete(item);\n break;\n }\n }\n } else {\n // 移除所有监听器\n listeners.clear();\n }\n if (listeners.size === 0) {\n this.listeners.delete(fullEventName);\n }\n }\n /**\n * 一次性订阅事件\n * \n * @param event - 事件名称\n * @param listener - 事件监听器\n * @param options - 监听器选项\n */ once(event, listener, options) {\n return this.on(event, listener, {\n ...options,\n once: true\n });\n }\n /**\n * 发布事件\n * \n * @param event - 事件名称\n * @param data - 事件数据\n * @param metadata - 事件元数据(可选)\n * \n * @example\n * ```typescript\n * await eventBus.emit('user:login', {\n * userId: '123',\n * username: 'john',\n * });\n * ```\n */ async emit(event, data, metadata) {\n const fullEventName = this.getFullEventName(event);\n const startTime = this.config.enablePerformanceMonitoring ? performance.now() : 0;\n // 事件验证\n if (this.config.enableValidation && !this.config.validator(fullEventName, data)) {\n logger.warn(`事件 ${fullEventName} 验证失败,已忽略`);\n return;\n }\n // 安全检查\n if (this.config.enableSecurityMode && metadata?.source) {\n if (!this.config.allowedSources.includes(metadata.source)) {\n logger.warn(`事件 ${fullEventName} 的来源 ${metadata.source} 不在白名单中,已忽略`);\n return;\n }\n }\n // 构建事件元数据\n const eventMetadata = {\n source: metadata?.source,\n timestamp: metadata?.timestamp ?? Date.now(),\n eventId: metadata?.eventId ?? `event_${++this.eventCounter}`,\n priority: metadata?.priority ?? 0,\n instanceId: metadata?.instanceId ?? this.config.instanceId,\n namespace: metadata?.namespace ?? this.config.namespacePrefix,\n ...metadata\n };\n // 创建事件包装器\n const eventWrapper = {\n data: data,\n metadata: eventMetadata\n };\n // 执行中间件(中间件可以阻止事件传播)\n if (this.middlewares.length > 0) {\n let middlewareIndex = 0;\n let nextCalled = false;\n const executeMiddleware = async ()=>{\n if (middlewareIndex < this.middlewares.length) {\n nextCalled = false;\n const currentIndex = middlewareIndex;\n const middleware = this.middlewares[middlewareIndex++];\n const next = async ()=>{\n nextCalled = true;\n if (currentIndex < this.middlewares.length - 1) {\n await executeMiddleware();\n }\n };\n await Promise.resolve(middleware(fullEventName, data, eventMetadata, next));\n // 如果中间件没有调用 next(),阻止事件传播\n if (!nextCalled) {\n return;\n }\n }\n };\n await executeMiddleware();\n // 如果最后一个中间件没有调用 next(),阻止事件传播\n if (!nextCalled && this.middlewares.length > 0) {\n return;\n }\n }\n // 获取监听器\n const listeners = this.listeners.get(fullEventName);\n // 记录事件历史(无论是否有监听器)\n if (this.config.enableTracking) {\n const executionTime = this.config.enablePerformanceMonitoring ? performance.now() - startTime : undefined;\n this.recordEventHistory(fullEventName, data, eventMetadata, executionTime);\n }\n if (!listeners || listeners.size === 0) {\n // 更新统计(即使没有监听器也记录)\n this.updateStats(fullEventName, 0);\n return;\n }\n // 执行监听器\n const executionPromises = [];\n const listenersToRemove = [];\n for (const listenerWithOptions of listeners){\n const executeListener = async ()=>{\n try {\n if (listenerWithOptions.options.async) {\n await Promise.resolve(listenerWithOptions.listener(eventWrapper.data, eventWrapper.metadata));\n } else {\n listenerWithOptions.listener(eventWrapper.data, eventWrapper.metadata);\n }\n // 如果是一次性监听器,标记为待移除\n if (listenerWithOptions.options.once) {\n listenersToRemove.push(listenerWithOptions);\n }\n } catch (error) {\n logger.error(`事件 ${fullEventName} 的监听器执行失败:`, error);\n }\n };\n executionPromises.push(executeListener());\n }\n // 等待所有监听器执行完成\n await Promise.allSettled(executionPromises);\n // 移除一次性监听器\n for (const listenerToRemove of listenersToRemove){\n listeners.delete(listenerToRemove);\n }\n if (listeners.size === 0) {\n this.listeners.delete(fullEventName);\n }\n // 更新统计信息\n const executionTime = this.config.enablePerformanceMonitoring ? performance.now() - startTime : 0;\n this.updateStats(fullEventName, executionTime, listeners.size);\n }\n /**\n * 同步发布事件(不等待异步监听器完成)\n * \n * @param event - 事件名称\n * @param data - 事件数据\n * @param metadata - 事件元数据(可选)\n */ emitSync(event, data, metadata) {\n // 同步执行 emit,但不等待 Promise 完成\n this.emit(event, data, metadata).catch((error)=>{\n logger.error(`同步发布事件 ${event} 失败:`, error);\n });\n }\n /**\n * 注册事件中间件\n * \n * @param middleware - 中间件函数\n * @returns 取消注册函数\n * \n * @example\n * ```typescript\n * const unsubscribe = eventBus.use((event, data, metadata, next) => {\n * console.log('事件触发:', event);\n * return next();\n * });\n * ```\n */ use(middleware) {\n this.middlewares.push(middleware);\n return ()=>{\n const index = this.middlewares.indexOf(middleware);\n if (index > -1) {\n this.middlewares.splice(index, 1);\n }\n };\n }\n /**\n * 清空所有事件监听器\n */ clear() {\n this.listeners.clear();\n }\n /**\n * 清空事件历史记录\n */ clearHistory() {\n this.eventHistory = [];\n }\n /**\n * 获取事件监听器数量\n * \n * @param event - 事件名称(可选,不提供则返回所有事件的监听器总数)\n */ listenerCount(event) {\n if (event) {\n const fullEventName = this.getFullEventName(event);\n return this.listeners.get(fullEventName)?.size || 0;\n }\n let count = 0;\n for (const listeners of this.listeners.values()){\n count += listeners.size;\n }\n return count;\n }\n /**\n * 获取所有事件名称\n */ eventNames() {\n return Array.from(this.listeners.keys());\n }\n /**\n * 获取事件历史记录\n * \n * @param event - 事件名称(可选,如果提供则只返回该事件的历史)\n * @param limit - 限制返回的记录数\n */ getEventHistory(event, limit) {\n if (!this.config.enableTracking) {\n return [];\n }\n let history = this.eventHistory;\n if (event) {\n const fullEventName = this.getFullEventName(event);\n history = history.filter((h)=>h.event === fullEventName);\n }\n if (limit) {\n history = history.slice(-limit);\n }\n return [\n ...history\n ];\n }\n /**\n * 获取事件统计信息\n * \n * @param event - 事件名称(可选,不提供则返回所有事件的统计)\n */ getStats(event) {\n if (event) {\n const fullEventName = this.getFullEventName(event);\n return this.stats.get(fullEventName) || {\n event: fullEventName,\n count: 0,\n avgExecutionTime: 0,\n listenerCount: 0,\n lastTriggered: 0\n };\n }\n return new Map(this.stats);\n }\n /**\n * 获取配置\n */ getConfig() {\n return {\n ...this.config\n };\n }\n /**\n * 更新配置\n */ updateConfig(config) {\n this.config = {\n ...this.config,\n ...config\n };\n }\n /**\n * 销毁事件总线(清理所有资源)\n */ destroy() {\n this.clear();\n this.clearHistory();\n this.middlewares = [];\n this.stats.clear();\n }\n /**\n * 获取完整事件名称(包含命名空间前缀)\n */ getFullEventName(event) {\n if (this.config.namespacePrefix) {\n return `${this.config.namespacePrefix}${event}`;\n }\n return event;\n }\n /**\n * 记录事件历史\n */ recordEventHistory(event, data, metadata, executionTime) {\n this.eventHistory.push({\n event,\n data,\n metadata,\n executionTime\n });\n // 限制历史记录大小\n if (this.eventHistory.length > this.config.maxHistorySize) {\n this.eventHistory.shift();\n }\n }\n /**\n * 更新统计信息\n */ updateStats(event, executionTime, listenerCount = 0) {\n if (!this.config.enablePerformanceMonitoring) {\n return;\n }\n const existingStats = this.stats.get(event);\n if (existingStats) {\n const totalTime = existingStats.avgExecutionTime * existingStats.count + executionTime;\n const newCount = existingStats.count + 1;\n this.stats.set(event, {\n ...existingStats,\n count: newCount,\n avgExecutionTime: totalTime / newCount,\n listenerCount,\n lastTriggered: Date.now()\n });\n } else {\n this.stats.set(event, {\n event,\n count: 1,\n avgExecutionTime: executionTime,\n listenerCount,\n lastTriggered: Date.now()\n });\n }\n }\n constructor(config = {}){\n /**\n * 事件监听器映射表\n * 使用 Map + Set 结构提高性能\n */ _define_property(this, \"listeners\", new Map());\n /**\n * 事件历史记录\n */ _define_property(this, \"eventHistory\", []);\n /**\n * 事件中间件列表\n */ _define_property(this, \"middlewares\", []);\n /**\n * 事件统计信息\n */ _define_property(this, \"stats\", new Map());\n /**\n * 配置\n */ _define_property(this, \"config\", void 0);\n /**\n * 事件计数器(用于生成唯一事件ID)\n */ _define_property(this, \"eventCounter\", 0);\n /**\n * 监听器ID计数器\n */ _define_property(this, \"listenerIdCounter\", 0);\n this.config = {\n enableTracking: config.enableTracking ?? process.env.NODE_ENV === 'development',\n maxHistorySize: config.maxHistorySize ?? 100,\n enableValidation: config.enableValidation ?? false,\n validator: config.validator ?? (()=>true),\n enablePerformanceMonitoring: config.enablePerformanceMonitoring ?? process.env.NODE_ENV === 'development',\n namespacePrefix: config.namespacePrefix ?? '',\n instanceId: config.instanceId,\n enableSecurityMode: config.enableSecurityMode ?? false,\n allowedSources: config.allowedSources ?? []\n };\n }\n}\n\n//# sourceMappingURL=AppEventBus.js.map","/**\n * 服务初始化模块\n * 负责初始化框架所需的各种服务\n */ import { logger } from \"@vlian/logger\";\nimport { initMonitoring } from \"@vlian/monitoring\";\nimport { PerformanceMonitor } from \"@vlian/utils\";\nimport { storage } from \"../../library\";\nimport { StateManager } from \"../../state\";\nimport { AppEventBus } from \"../event/AppEventBus\";\n/**\n * 带重试的异步函数执行器\n */ async function withRetry(fn, config = {}, serviceName) {\n const maxRetries = config.maxRetries ?? 3;\n const retryDelay = config.retryDelay ?? 1000;\n const exponentialBackoff = config.exponentialBackoff ?? true;\n let lastError;\n for(let attempt = 0; attempt <= maxRetries; attempt++){\n try {\n return await fn();\n } catch (error) {\n lastError = error;\n if (attempt < maxRetries) {\n const delay = exponentialBackoff ? retryDelay * Math.pow(2, attempt) : retryDelay;\n logger.warn(`${serviceName} 初始化失败(尝试 ${attempt + 1}/${maxRetries + 1}),${delay}ms 后重试...`, error);\n await new Promise((resolve)=>setTimeout(resolve, delay));\n }\n }\n }\n logger.error(`${serviceName} 初始化失败,已重试 ${maxRetries} 次`);\n throw lastError;\n}\n/**\n * 初始化所有服务\n * \n * 优化:\n * 1. 区分关键服务和非关键服务\n * 2. 关键服务并行初始化,缩短首屏时间\n * 3. 非关键服务延迟到应用渲染后初始化,使用 requestIdleCallback 在空闲时初始化\n * 4. 实现服务初始化失败重试机制,提高启动成功率\n * \n * @param options - 启动配置选项\n * @returns 服务初始化结果\n */ export async function initializeServices(options = {}) {\n const startTime = performance.now();\n // 重试配置\n const retryConfig = {\n maxRetries: options.serviceRetry?.maxRetries ?? 3,\n retryDelay: options.serviceRetry?.retryDelay ?? 1000,\n exponentialBackoff: options.serviceRetry?.exponentialBackoff ?? true\n };\n // ========== 关键服务:必须在应用渲染前初始化 ==========\n // 这些服务是应用运行的基础,必须并行初始化完成\n // 1. 监控服务(必须最先初始化,因为其他服务可能依赖它)\n const monitoringPromise = withRetry(()=>Promise.resolve(initMonitoring({\n ...options.errorMonitor,\n onError: (error)=>{\n logger.error('监控服务捕获到错误:', error);\n options.errorMonitor?.onError?.(error);\n }\n })), retryConfig, '监控服务');\n // 2. 存储服务(关键服务,应用可能需要立即使用存储)\n const storagePromise = withRetry(()=>Promise.resolve().then(()=>{\n storage.initialize(options.storageOptions);\n return storage;\n }), retryConfig, '存储服务');\n // 3. 状态管理器(关键服务,应用状态管理的基础)\n const stateManagerPromise = withRetry(()=>Promise.resolve().then(()=>{\n if (options.stateManager !== undefined) {\n return new StateManager(options.stateManager);\n } else {\n // 默认初始化状态管理器\n return new StateManager({\n enableRegistry: true,\n defaultScope: 'app'\n });\n }\n }), retryConfig, '状态管理器');\n // 4. 事件总线(关键服务,用于应用内部通信)\n const eventBusPromise = withRetry(()=>Promise.resolve().then(()=>{\n const eventBusConfig = {\n enableTracking: options.eventBus?.enableTracking ?? process.env.NODE_ENV === 'development',\n maxHistorySize: options.eventBus?.maxHistorySize ?? 100,\n enableValidation: options.eventBus?.enableValidation ?? false,\n enablePerformanceMonitoring: options.eventBus?.enablePerformanceMonitoring ?? process.env.NODE_ENV === 'development',\n namespacePrefix: options.eventBus?.namespacePrefix,\n instanceId: options.eventBus?.instanceId,\n enableSecurityMode: options.eventBus?.enableSecurityMode ?? false,\n allowedSources: options.eventBus?.allowedSources\n };\n return new AppEventBus(eventBusConfig);\n }), retryConfig, '事件总线');\n // 并行执行关键服务初始化\n const [monitoring, , stateManager, eventBus] = await Promise.all([\n monitoringPromise,\n storagePromise,\n stateManagerPromise,\n eventBusPromise\n ]);\n logger.info('关键服务初始化完成');\n // 初始化性能监控(依赖监控服务,必须在监控服务初始化后)\n const performanceMonitor = new PerformanceMonitor({\n ...options.performanceMonitor,\n onReport: (metrics)=>{\n monitoring.reportPerformance(metrics);\n options.performanceMonitor?.onReport?.(metrics);\n }\n });\n // 在页面卸载时清理性能监控\n if (typeof window !== 'undefined') {\n const cleanupHandler = ()=>{\n performanceMonitor.disconnect();\n window.removeEventListener('beforeunload', cleanupHandler);\n };\n window.addEventListener('beforeunload', cleanupHandler);\n }\n const criticalServicesDuration = performance.now() - startTime;\n logger.debug(`关键服务初始化完成,耗时: ${criticalServicesDuration.toFixed(2)}ms`);\n // ========== 非关键服务:延迟到应用渲染后初始化 ==========\n // 这些服务不影响首屏渲染,可以在空闲时初始化\n /**\n * 延迟初始化非关键服务\n * 在应用渲染后调用,使用 requestIdleCallback 在空闲时初始化\n */ const initializeNonCriticalServices = async ()=>{\n const nonCriticalStartTime = performance.now();\n // 使用 requestIdleCallback 在浏览器空闲时初始化非关键服务\n // 如果不支持 requestIdleCallback,则使用 setTimeout 延迟执行\n const scheduleInit = (callback)=>{\n if (typeof window !== 'undefined' && 'requestIdleCallback' in window) {\n window.requestIdleCallback(callback, {\n timeout: 5000\n });\n } else {\n setTimeout(callback, 100);\n }\n };\n return new Promise((resolve)=>{\n scheduleInit(async ()=>{\n try {\n // 1. 分析服务(可选,非关键)\n if (options.analytics) {\n try {\n await withRetry(()=>import(\"../../utils/analytics\").then(({ initAnalytics })=>{\n initAnalytics(options.analytics);\n return true;\n }), retryConfig, '分析服务');\n logger.debug('分析服务初始化完成');\n } catch (error) {\n logger.warn('分析服务初始化失败(不影响应用运行):', error);\n }\n }\n // 2. 运行时安全服务(可选,非关键)\n if (options.runtimeSecurity) {\n try {\n await withRetry(()=>import(\"../../utils/runtimeSecurity\").then(({ RuntimeSecurity })=>{\n RuntimeSecurity.initialize(options.runtimeSecurity);\n return true;\n }), retryConfig, '运行时安全服务');\n logger.debug('运行时安全服务初始化完成');\n } catch (error) {\n logger.warn('运行时安全服务初始化失败(不影响应用运行):', error);\n }\n }\n const nonCriticalDuration = performance.now() - nonCriticalStartTime;\n logger.debug(`非关键服务初始化完成,耗时: ${nonCriticalDuration.toFixed(2)}ms`);\n } catch (error) {\n logger.warn('非关键服务初始化过程中出现错误:', error);\n } finally{\n resolve();\n }\n });\n });\n };\n // 记录关键服务初始化性能指标\n if (monitoring.reportPerformance) {\n monitoring.reportPerformance({\n serviceInitDuration: criticalServicesDuration\n });\n }\n return {\n monitoring,\n performanceMonitor,\n stateManager,\n eventBus,\n initializeNonCriticalServices\n };\n}\n\n//# sourceMappingURL=initializeServices.js.map","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 * 用于在非 React 代码中访问全局配置\n */ let AppConfigManager = class AppConfigManager {\n /**\n * 获取单例实例\n * \n * @returns 单例实例\n */ static getInstance() {\n if (!AppConfigManager.instance) {\n AppConfigManager.instance = new AppConfigManager();\n }\n return AppConfigManager.instance;\n }\n /**\n * 初始化配置\n * \n * @param config - 应用配置\n */ initialize(config) {\n this._config = {\n theme: config.theme || {\n mode: 'light'\n },\n locale: config.locale || 'zh-CN',\n antdConfig: config.antdConfig,\n initializationContext: config.initializationContext\n };\n }\n /**\n * 获取完整配置\n * \n * @returns 应用配置\n */ getConfig() {\n return {\n ...this._config\n };\n }\n /**\n * 获取主题配置\n * \n * @returns 主题配置\n */ getTheme() {\n return {\n ...this._config.theme\n };\n }\n /**\n * 更新主题配置\n * \n * @param theme - 主题配置或更新函数\n */ setTheme(theme) {\n if (typeof theme === 'function') {\n this._config.theme = theme(this._config.theme);\n } else {\n this._config.theme = {\n ...theme\n };\n }\n }\n /**\n * 获取当前语言\n * \n * @returns 当前语言\n */ getLocale() {\n return this._config.locale;\n }\n /**\n * 更新语言\n * \n * @param locale - 语言类型\n */ setLocale(locale) {\n this._config.locale = locale;\n }\n /**\n * 获取 Ant Design 配置\n * \n * @returns Ant Design 配置\n */ getAntdConfig() {\n return this._config.antdConfig;\n }\n /**\n * 更新 Ant Design 配置\n * \n * @param config - Ant Design 配置\n */ setAntdConfig(config) {\n this._config.antdConfig = config;\n }\n /**\n * 获取初始化上下文\n * \n * @returns 初始化上下文\n */ getInitializationContext() {\n return this._config.initializationContext;\n }\n /**\n * 更新初始化上下文\n * \n * @param context - 初始化上下文\n */ setInitializationContext(context) {\n this._config.initializationContext = context;\n }\n /**\n * 私有构造函数,防止外部直接实例化\n */ constructor(){\n _define_property(this, \"_config\", void 0);\n this._config = {\n theme: {\n mode: 'light'\n },\n locale: 'zh-CN'\n };\n }\n};\n_define_property(AppConfigManager, \"instance\", null);\n/**\n * 应用配置单例实例\n */ export const appConfig = AppConfigManager.getInstance();\n\n//# sourceMappingURL=AppConfig.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport React, { createContext, useContext, useState, useCallback, useMemo, useEffect } from \"react\";\nimport { setLang } from \"../../library\";\nimport { appConfig } from \"../config/AppConfig\";\n/**\n * 主题上下文\n */ const ThemeContext = /*#__PURE__*/ createContext(undefined);\n/**\n * 国际化上下文\n */ const LocaleContext = /*#__PURE__*/ createContext(undefined);\n/**\n * 配置上下文\n */ const ConfigContext = /*#__PURE__*/ createContext(undefined);\n/**\n * 状态管理器上下文\n */ const StateManagerContext = /*#__PURE__*/ createContext(undefined);\n/**\n * 主题 Provider 组件\n */ const ThemeProvider = /*#__PURE__*/ React.memo(({ children, initialTheme })=>{\n const [theme, setThemeState] = useState(initialTheme || appConfig.getTheme());\n const applyDocumentThemeClass = useCallback((mode)=>{\n if (typeof window === 'undefined') {\n return;\n }\n const html = document.documentElement;\n html.classList.remove('light', 'dark');\n const resolvedMode = mode === 'system' ? window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light' : mode || 'light';\n html.classList.add(resolvedMode);\n }, []);\n // 同步到单例\n useEffect(()=>{\n appConfig.setTheme(theme);\n }, [\n theme\n ]);\n // 同步到文档 class,确保首屏与刷新时也能正确反映主题\n useEffect(()=>{\n if (typeof window === 'undefined') {\n return;\n }\n applyDocumentThemeClass(theme.mode);\n if (theme.mode !== 'system') {\n return;\n }\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n const onSystemThemeChange = ()=>applyDocumentThemeClass('system');\n if (typeof mediaQuery.addEventListener === 'function') {\n mediaQuery.addEventListener('change', onSystemThemeChange);\n return ()=>mediaQuery.removeEventListener('change', onSystemThemeChange);\n }\n mediaQuery.addListener(onSystemThemeChange);\n return ()=>mediaQuery.removeListener(onSystemThemeChange);\n }, [\n applyDocumentThemeClass,\n theme.mode\n ]);\n // 更新主题\n const setTheme = useCallback((newTheme)=>{\n setThemeState((prev)=>{\n return typeof newTheme === 'function' ? newTheme(prev) : newTheme;\n });\n }, []);\n const value = useMemo(()=>({\n theme,\n setTheme\n }), [\n theme,\n setTheme\n ]);\n return /*#__PURE__*/ _jsx(ThemeContext.Provider, {\n value: value,\n children: children\n });\n});\nThemeProvider.displayName = 'ThemeProvider';\n/**\n * 国际化 Provider 组件\n */ const LocaleProvider = /*#__PURE__*/ React.memo(({ children, initialLocale })=>{\n const [locale, setLocaleState] = useState(initialLocale || appConfig.getLocale());\n const [isChanging, setIsChanging] = useState(false);\n // 同步到单例\n useEffect(()=>{\n appConfig.setLocale(locale);\n }, [\n locale\n ]);\n // 更新语言,添加加载状态\n const setLocale = useCallback((newLocale)=>{\n if (newLocale === locale) {\n return;\n }\n setIsChanging(true);\n setLocaleState(newLocale);\n setLang(newLocale);\n // 使用 requestAnimationFrame 确保状态更新在下一帧\n requestAnimationFrame(()=>{\n setIsChanging(false);\n });\n }, [\n locale\n ]);\n const value = useMemo(()=>({\n locale,\n setLocale,\n isChanging\n }), [\n locale,\n setLocale,\n isChanging\n ]);\n return /*#__PURE__*/ _jsx(LocaleContext.Provider, {\n value: value,\n children: children\n });\n});\nLocaleProvider.displayName = 'LocaleProvider';\n/**\n * 配置 Provider 组件\n */ const AppConfigProvider = /*#__PURE__*/ React.memo(({ children, initialAntdConfig, initialInitializationContext })=>{\n const [antdConfig, setAntdConfigState] = useState(initialAntdConfig || appConfig.getAntdConfig());\n const [initializationContext, setInitializationContextState] = useState(initialInitializationContext || appConfig.getInitializationContext());\n // 同步到单例\n useEffect(()=>{\n appConfig.setAntdConfig(antdConfig);\n }, [\n antdConfig\n ]);\n useEffect(()=>{\n appConfig.setInitializationContext(initializationContext);\n }, [\n initializationContext\n ]);\n // 更新 Ant Design 配置\n const setAntdConfig = useCallback((config)=>{\n setAntdConfigState(config);\n }, []);\n // 更新初始化上下文\n const setInitializationContext = useCallback((context)=>{\n setInitializationContextState(context);\n }, []);\n const value = useMemo(()=>({\n antdConfig,\n initializationContext,\n setAntdConfig,\n setInitializationContext\n }), [\n antdConfig,\n initializationContext,\n setAntdConfig,\n setInitializationContext\n ]);\n return /*#__PURE__*/ _jsx(ConfigContext.Provider, {\n value: value,\n children: children\n });\n});\nAppConfigProvider.displayName = 'AppConfigProvider';\n/**\n * 应用上下文 Provider 组件\n * \n * 组合所有 Provider,提供统一的全局上下文\n * \n * @example\n * ```tsx\n * <AppContextProvider\n * initialTheme={{ mode: 'light', primaryColor: '#1890ff' }}\n * initialLocale=\"zh-CN\"\n * >\n * <App />\n * </AppContextProvider>\n * ```\n */ /**\n * 状态管理器 Provider 组件\n */ const StateManagerProvider = /*#__PURE__*/ React.memo(({ children, stateManager })=>{\n const value = useMemo(()=>({\n stateManager: stateManager ?? null\n }), [\n stateManager\n ]);\n return /*#__PURE__*/ _jsx(StateManagerContext.Provider, {\n value: value,\n children: children\n });\n});\nStateManagerProvider.displayName = 'StateManagerProvider';\nexport const AppContextProvider = ({ children, initialTheme, initialLocale, initialAntdConfig, initialInitializationContext, stateManager, antdApp: _antdApp, uiApp: _uiApp })=>{\n // 初始化单例配置(仅执行一次)\n const initializedRef = React.useRef(false);\n React.useEffect(()=>{\n if (!initializedRef.current) {\n appConfig.initialize({\n theme: initialTheme,\n locale: initialLocale,\n antdConfig: initialAntdConfig,\n initializationContext: initialInitializationContext\n });\n initializedRef.current = true;\n }\n }, [\n initialTheme,\n initialLocale,\n initialAntdConfig,\n initialInitializationContext\n ]);\n return /*#__PURE__*/ _jsx(ThemeProvider, {\n initialTheme: initialTheme,\n children: /*#__PURE__*/ _jsx(LocaleProvider, {\n initialLocale: initialLocale,\n children: /*#__PURE__*/ _jsx(AppConfigProvider, {\n initialAntdConfig: initialAntdConfig,\n initialInitializationContext: initialInitializationContext,\n children: /*#__PURE__*/ _jsx(StateManagerProvider, {\n stateManager: stateManager,\n children: children\n })\n })\n })\n });\n};\n/**\n * 使用主题上下文 Hook\n * \n * @returns 主题上下文值\n * @throws 如果不在 ThemeProvider 内使用会抛出错误\n * \n * @example\n * ```tsx\n * const { theme, setTheme } = useTheme();\n * \n * // 切换主题\n * setTheme({ mode: 'dark' });\n * ```\n */ export const useTheme = ()=>{\n const context = useContext(ThemeContext);\n if (context === undefined) {\n throw new Error('useTheme 必须在 AppContextProvider 内使用');\n }\n return context;\n};\n/**\n * 使用国际化上下文 Hook\n * \n * @returns 国际化上下文值\n * @throws 如果不在 LocaleProvider 内使用会抛出错误\n * \n * @example\n * ```tsx\n * const { locale, setLocale } = useLocale();\n * \n * // 切换语言\n * setLocale('en-US');\n * ```\n */ export const useLocale = ()=>{\n const context = useContext(LocaleContext);\n if (context === undefined) {\n throw new Error('useLocale 必须在 AppContextProvider 内使用');\n }\n return context;\n};\n/**\n * 使用配置上下文 Hook\n * \n * @returns 配置上下文值\n * @throws 如果不在 ConfigProvider 内使用会抛出错误\n */ export const useConfig = ()=>{\n const context = useContext(ConfigContext);\n if (context === undefined) {\n throw new Error('useConfig 必须在 AppContextProvider 内使用');\n }\n return context;\n};\n/**\n * 使用应用上下文 Hook(聚合所有上下文)\n * \n * @returns 应用上下文值\n * @throws 如果不在 AppContextProvider 内使用会抛出错误\n * \n * @example\n * ```tsx\n * const { theme, setTheme, locale, setLocale, antdConfig } = useAppContext();\n * \n * // 切换主题\n * setTheme({ mode: 'dark' });\n * \n * // 切换语言\n * setLocale('en-US');\n * ```\n */ /**\n * 使用状态管理器 Hook\n * \n * @returns 状态管理器实例\n * @throws 如果不在 AppContextProvider 内使用会抛出错误\n * \n * @example\n * ```tsx\n * const stateManager = useStateManager();\n * \n * // 创建状态实例\n * const countState = stateManager?.createState(0);\n * ```\n */ export const useStateManager = ()=>{\n const context = useContext(StateManagerContext);\n if (context === undefined) {\n throw new Error('useStateManager 必须在 AppContextProvider 内使用');\n }\n return context.stateManager;\n};\nexport const useAppContext = ()=>{\n const themeContext = useTheme();\n const localeContext = useLocale();\n const configContext = useConfig();\n const stateManagerContext = useStateManager();\n // 优化:使用更细粒度的依赖项,避免不必要的重新计算\n // 只依赖实际变化的值,函数引用是稳定的\n return useMemo(()=>({\n theme: themeContext.theme,\n locale: localeContext.locale,\n antdConfig: configContext.antdConfig,\n initializationContext: configContext.initializationContext,\n stateManager: stateManagerContext,\n setTheme: themeContext.setTheme,\n setLocale: localeContext.setLocale,\n setAntdConfig: configContext.setAntdConfig,\n setInitializationContext: configContext.setInitializationContext\n }), [\n themeContext.theme,\n localeContext.locale,\n configContext.antdConfig,\n configContext.initializationContext,\n stateManagerContext,\n // 函数引用是稳定的,不需要作为依赖\n themeContext.setTheme,\n localeContext.setLocale,\n configContext.setAntdConfig,\n configContext.setInitializationContext\n ]);\n};\n\n//# sourceMappingURL=AppContext.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * 默认应用页面组件\n * 当用户未提供 app 选项时显示的默认页面\n */ import { memo } from \"react\";\nimport { $t } from \"../../library\";\nconst cardStyle = {\n background: 'rgba(255, 255, 255, 0.96)',\n borderRadius: 10,\n boxShadow: '0 6px 20px rgba(0, 0, 0, 0.14)',\n padding: 20\n};\nconst DefaultApp = /*#__PURE__*/ memo(({ title, description })=>{\n const displayTitle = title || $t('defaultApp.title');\n const displayDescription = description || $t('defaultApp.description');\n return /*#__PURE__*/ _jsx(\"div\", {\n style: {\n minHeight: '100vh',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: 24,\n background: 'linear-gradient(130deg, #274c77 0%, #2c7da0 42%, #61a5c2 100%)'\n },\n children: /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n maxWidth: 860,\n width: '100%'\n },\n children: [\n /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n textAlign: 'center',\n marginBottom: 28,\n color: '#fff'\n },\n children: [\n /*#__PURE__*/ _jsx(\"div\", {\n style: {\n fontSize: 56,\n lineHeight: '60px',\n marginBottom: 12\n },\n children: \"🚀\"\n }),\n /*#__PURE__*/ _jsx(\"h1\", {\n style: {\n margin: 0,\n fontSize: 34\n },\n children: displayTitle\n }),\n /*#__PURE__*/ _jsx(\"p\", {\n style: {\n marginTop: 12,\n opacity: 0.9\n },\n children: displayDescription\n })\n ]\n }),\n /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n display: 'grid',\n gap: 16\n },\n children: [\n /*#__PURE__*/ _jsxs(\"section\", {\n style: cardStyle,\n children: [\n /*#__PURE__*/ _jsxs(\"h2\", {\n style: {\n marginTop: 0\n },\n children: [\n \"💻 \",\n $t('defaultApp.quickStart.title')\n ]\n }),\n /*#__PURE__*/ _jsx(\"p\", {\n children: $t('defaultApp.quickStart.description')\n }),\n /*#__PURE__*/ _jsx(\"pre\", {\n style: {\n margin: 0,\n background: '#f4f6f8',\n borderRadius: 8,\n padding: 12,\n overflowX: 'auto'\n },\n children: $t('defaultApp.quickStart.code')\n })\n ]\n }),\n /*#__PURE__*/ _jsxs(\"section\", {\n style: cardStyle,\n children: [\n /*#__PURE__*/ _jsxs(\"h2\", {\n style: {\n marginTop: 0\n },\n children: [\n \"📚 \",\n $t('defaultApp.nextSteps.title')\n ]\n }),\n /*#__PURE__*/ _jsxs(\"ul\", {\n style: {\n paddingLeft: 20,\n marginBottom: 0\n },\n children: [\n /*#__PURE__*/ _jsx(\"li\", {\n children: $t('defaultApp.nextSteps.step1')\n }),\n /*#__PURE__*/ _jsx(\"li\", {\n children: $t('defaultApp.nextSteps.step2')\n }),\n /*#__PURE__*/ _jsx(\"li\", {\n children: $t('defaultApp.nextSteps.step3')\n })\n ]\n })\n ]\n })\n ]\n }),\n /*#__PURE__*/ _jsx(\"p\", {\n style: {\n textAlign: 'center',\n color: 'rgba(255,255,255,0.88)',\n marginTop: 18\n },\n children: $t('defaultApp.footer')\n })\n ]\n })\n });\n});\nDefaultApp.displayName = 'DefaultApp';\nexport { DefaultApp };\n\n//# sourceMappingURL=DefaultApp.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport React, { memo } from \"react\";\nimport { useAppContext } from \"./AppContext\";\nconst BasicLayout = /*#__PURE__*/ memo(({ children, configProps: externalConfigProps, globalProvider })=>{\n const { antdConfig, theme } = useAppContext();\n const [isSystemDark, setIsSystemDark] = React.useState(()=>{\n if (typeof window === 'undefined') {\n return false;\n }\n return window.matchMedia('(prefers-color-scheme: dark)').matches;\n });\n const finalConfigProps = antdConfig || externalConfigProps;\n React.useEffect(()=>{\n if (typeof window === 'undefined') {\n return;\n }\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n const updateSystemTheme = (event)=>{\n setIsSystemDark(event.matches);\n };\n setIsSystemDark(mediaQuery.matches);\n if (typeof mediaQuery.addEventListener === 'function') {\n mediaQuery.addEventListener('change', updateSystemTheme);\n return ()=>mediaQuery.removeEventListener('change', updateSystemTheme);\n }\n mediaQuery.addListener(updateSystemTheme);\n return ()=>mediaQuery.removeListener(updateSystemTheme);\n }, []);\n const resolvedMode = theme.mode === 'system' ? isSystemDark ? 'dark' : 'light' : theme.mode;\n const cssVars = React.useMemo(()=>{\n const vars = {};\n if (theme.primaryColor) {\n vars['--app-primary-color'] = theme.primaryColor;\n }\n if (finalConfigProps && typeof finalConfigProps === 'object') {\n const cssVariables = finalConfigProps.cssVariables;\n if (cssVariables && typeof cssVariables === 'object') {\n Object.entries(cssVariables).forEach(([key, value])=>{\n vars[`--${key}`] = String(value);\n });\n }\n }\n return vars;\n }, [\n finalConfigProps,\n theme.primaryColor\n ]);\n const GlobalProvider = React.useMemo(()=>globalProvider ? /*#__PURE__*/ React.lazy(globalProvider) : null, [\n globalProvider\n ]);\n const renderedContent = React.useMemo(()=>{\n if (!GlobalProvider) {\n return children;\n }\n return /*#__PURE__*/ _jsx(React.Suspense, {\n fallback: null,\n children: /*#__PURE__*/ _jsx(GlobalProvider, {\n children: children\n })\n });\n }, [\n GlobalProvider,\n children\n ]);\n return /*#__PURE__*/ _jsx(\"div\", {\n \"data-theme-mode\": resolvedMode,\n style: cssVars,\n children: renderedContent\n });\n});\nBasicLayout.displayName = 'BasicLayout';\nexport { BasicLayout };\n\n//# sourceMappingURL=BasicLayout.js.map","\"use client\";\nimport { createContext as l, Component as y, createElement as d, useContext as f, useState as p, useMemo as E, forwardRef as B } from \"react\";\nconst h = l(null), c = {\n didCatch: !1,\n error: null\n};\nclass m extends y {\n constructor(e) {\n super(e), this.resetErrorBoundary = this.resetErrorBoundary.bind(this), this.state = c;\n }\n static getDerivedStateFromError(e) {\n return { didCatch: !0, error: e };\n }\n resetErrorBoundary(...e) {\n const { error: t } = this.state;\n t !== null && (this.props.onReset?.({\n args: e,\n reason: \"imperative-api\"\n }), this.setState(c));\n }\n componentDidCatch(e, t) {\n this.props.onError?.(e, t);\n }\n componentDidUpdate(e, t) {\n const { didCatch: o } = this.state, { resetKeys: s } = this.props;\n o && t.error !== null && C(e.resetKeys, s) && (this.props.onReset?.({\n next: s,\n prev: e.resetKeys,\n reason: \"keys\"\n }), this.setState(c));\n }\n render() {\n const { children: e, fallbackRender: t, FallbackComponent: o, fallback: s } = this.props, { didCatch: n, error: a } = this.state;\n let i = e;\n if (n) {\n const u = {\n error: a,\n resetErrorBoundary: this.resetErrorBoundary\n };\n if (typeof t == \"function\")\n i = t(u);\n else if (o)\n i = d(o, u);\n else if (s !== void 0)\n i = s;\n else\n throw a;\n }\n return d(\n h.Provider,\n {\n value: {\n didCatch: n,\n error: a,\n resetErrorBoundary: this.resetErrorBoundary\n }\n },\n i\n );\n }\n}\nfunction C(r = [], e = []) {\n return r.length !== e.length || r.some((t, o) => !Object.is(t, e[o]));\n}\nfunction g(r) {\n return r !== null && typeof r == \"object\" && \"didCatch\" in r && typeof r.didCatch == \"boolean\" && \"error\" in r && \"resetErrorBoundary\" in r && typeof r.resetErrorBoundary == \"function\";\n}\nfunction x(r) {\n if (!g(r))\n throw new Error(\"ErrorBoundaryContext not found\");\n}\nfunction k() {\n const r = f(h);\n x(r);\n const { error: e, resetErrorBoundary: t } = r, [o, s] = p({\n error: null,\n hasError: !1\n }), n = E(\n () => ({\n error: e,\n resetBoundary: () => {\n t(), s({ error: null, hasError: !1 });\n },\n showBoundary: (a) => s({\n error: a,\n hasError: !0\n })\n }),\n [e, t]\n );\n if (o.hasError)\n throw o.error;\n return n;\n}\nfunction S(r) {\n switch (typeof r) {\n case \"object\": {\n if (r !== null && \"message\" in r && typeof r.message == \"string\")\n return r.message;\n break;\n }\n case \"string\":\n return r;\n }\n}\nfunction w(r, e) {\n const t = B(\n (s, n) => d(\n m,\n e,\n d(r, { ...s, ref: n })\n )\n ), o = r.displayName || r.name || \"Unknown\";\n return t.displayName = `withErrorBoundary(${o})`, t;\n}\nexport {\n m as ErrorBoundary,\n h as ErrorBoundaryContext,\n S as getErrorMessage,\n k as useErrorBoundary,\n w as withErrorBoundary\n};\n//# sourceMappingURL=react-error-boundary.js.map\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 * 1. 统一错误处理策略:记录、上报、恢复、降级\n * 2. 错误分类:致命、可恢复、警告\n * 3. 错误恢复机制:自动重试、降级方案\n */ import { logger } from \"@vlian/logger\";\nimport { errorUtils, ErrorSeverity, FrameworkError } from \"@vlian/utils\";\n/**\n * 错误处理策略\n */ export var ErrorHandlingStrategy = /*#__PURE__*/ function(ErrorHandlingStrategy) {\n /**\n * 记录错误(日志)\n */ ErrorHandlingStrategy[\"LOG\"] = \"LOG\";\n /**\n * 上报错误(监控服务)\n */ ErrorHandlingStrategy[\"REPORT\"] = \"REPORT\";\n /**\n * 尝试恢复错误\n */ ErrorHandlingStrategy[\"RECOVER\"] = \"RECOVER\";\n /**\n * 降级处理\n */ ErrorHandlingStrategy[\"FALLBACK\"] = \"FALLBACK\";\n /**\n * 忽略错误\n */ ErrorHandlingStrategy[\"IGNORE\"] = \"IGNORE\";\n return ErrorHandlingStrategy;\n}({});\n/**\n * 统一错误处理器\n */ export class ErrorHandler {\n /**\n * 设置监控服务\n */ setMonitoring(monitoring) {\n this.monitoring = monitoring;\n }\n /**\n * 处理错误\n * \n * @param error - 错误对象\n * @param context - 错误上下文\n * @returns 错误处理结果\n */ async handleError(error, context) {\n // 标准化错误对象\n const normalizedError = errorUtils.normalizeError(error);\n // 创建包含上下文信息的错误对象(由于 context 是只读的,需要创建新对象)\n const errorWithContext = context ? new FrameworkError(normalizedError.message, normalizedError.type, normalizedError.severity, {\n code: normalizedError.code,\n originalError: normalizedError.originalError,\n context: {\n ...normalizedError.context,\n ...context\n },\n recoverable: normalizedError.recoverable\n }) : normalizedError;\n // 确定处理策略\n const strategies = this.determineStrategies(errorWithContext);\n // 执行处理策略\n const handled = await this.executeStrategies(errorWithContext, strategies);\n // 尝试恢复错误\n let recoveredValue;\n let recoverable = false;\n if (handled && errorWithContext.recoverable && this.config.recoveryOptions) {\n const recoveryResult = await this.attemptRecovery(errorWithContext);\n recoverable = recoveryResult.recoverable;\n recoveredValue = recoveryResult.value;\n }\n return {\n handled,\n recoverable,\n recoveredValue,\n strategies,\n error: errorWithContext\n };\n }\n /**\n * 确定错误处理策略\n */ determineStrategies(error) {\n // 1. 检查错误类型对应的策略\n if (this.config.typeStrategies[error.type]) {\n return this.config.typeStrategies[error.type];\n }\n // 2. 检查错误严重程度对应的策略\n if (this.config.severityStrategies[error.severity]) {\n return this.config.severityStrategies[error.severity];\n }\n // 3. 使用默认策略\n return this.config.defaultStrategies;\n }\n /**\n * 执行处理策略\n */ async executeStrategies(error, strategies) {\n let handled = false;\n for (const strategy of strategies){\n try {\n switch(strategy){\n case \"LOG\":\n this.logError(error);\n handled = true;\n break;\n case \"REPORT\":\n await this.reportError(error);\n handled = true;\n break;\n case \"RECOVER\":\n // 恢复策略在 handleError 中统一处理\n handled = true;\n break;\n case \"FALLBACK\":\n // 降级策略在 attemptRecovery 中处理\n handled = true;\n break;\n case \"IGNORE\":\n // 忽略错误,不做任何处理\n handled = true;\n break;\n }\n } catch (strategyError) {\n logger.warn(`错误处理策略 ${strategy} 执行失败:`, strategyError);\n }\n }\n return handled;\n }\n /**\n * 记录错误\n */ logError(error) {\n const errorInfo = errorUtils.extractErrorInfo(error);\n // 根据错误严重程度选择日志级别\n switch(error.severity){\n case ErrorSeverity.CRITICAL:\n case ErrorSeverity.HIGH:\n logger.error('错误:', errorInfo);\n break;\n case ErrorSeverity.MEDIUM:\n logger.warn('警告:', errorInfo);\n break;\n case ErrorSeverity.LOW:\n logger.info('信息:', errorInfo);\n break;\n }\n // 开发环境显示详细错误信息\n if (this.config.showDetailedErrorsInDev && process.env.NODE_ENV === 'development') {\n const detailedError = errorUtils.formatErrorForDev(error);\n console.error(detailedError);\n }\n }\n /**\n * 上报错误\n */ async reportError(error) {\n if (!this.monitoring) {\n logger.debug('监控服务未配置,跳过错误上报');\n return;\n }\n try {\n this.monitoring.captureError(error, {\n severity: error.severity,\n type: error.type,\n code: error.code,\n context: error.context\n });\n } catch (reportError) {\n logger.warn('错误上报失败:', reportError);\n }\n }\n /**\n * 尝试恢复错误\n */ async attemptRecovery(error) {\n const options = this.config.recoveryOptions;\n if (!options) {\n return {\n recoverable: false\n };\n }\n const maxRetries = options.maxRetries ?? 3;\n const retryDelay = options.retryDelay ?? 1000;\n const exponentialBackoff = options.exponentialBackoff ?? true;\n const shouldRetry = options.shouldRetry ?? (()=>true);\n // 如果有降级方案,先尝试降级\n if (options.fallback) {\n try {\n const fallbackValue = await Promise.resolve(options.fallback());\n logger.info('错误已通过降级方案恢复');\n return {\n recoverable: true,\n value: fallbackValue\n };\n } catch (fallbackError) {\n logger.warn('降级方案执行失败:', fallbackError);\n }\n }\n // 尝试重试(如果错误可恢复且满足重试条件)\n if (error.recoverable && shouldRetry(error, 0)) {\n for(let attempt = 0; attempt < maxRetries; attempt++){\n if (!shouldRetry(error, attempt)) {\n break;\n }\n const delay = exponentialBackoff ? retryDelay * Math.pow(2, attempt) : retryDelay;\n logger.debug(`错误恢复重试 ${attempt + 1}/${maxRetries},${delay}ms 后重试...`);\n await new Promise((resolve)=>setTimeout(resolve, delay));\n // 这里应该调用原始操作的重试逻辑\n // 由于错误处理器不知道原始操作,这里只返回可恢复状态\n // 实际的重试应该在调用方实现\n }\n }\n return {\n recoverable: error.recoverable\n };\n }\n /**\n * 创建错误处理器的便捷方法\n */ static create(config) {\n return new ErrorHandler(config);\n }\n constructor(config = {}){\n _define_property(this, \"config\", void 0);\n _define_property(this, \"monitoring\", void 0);\n this.monitoring = config.monitoring;\n this.config = {\n defaultStrategies: config.defaultStrategies ?? [\n \"LOG\",\n \"REPORT\"\n ],\n severityStrategies: config.severityStrategies ?? {},\n typeStrategies: config.typeStrategies ?? {},\n recoveryOptions: config.recoveryOptions ?? {},\n showDetailedErrorsInDev: config.showDetailedErrorsInDev ?? true\n };\n }\n}\n/**\n * 默认错误处理器实例(单例)\n */ let defaultErrorHandler = null;\n/**\n * 获取默认错误处理器\n */ export function getDefaultErrorHandler() {\n if (!defaultErrorHandler) {\n defaultErrorHandler = new ErrorHandler();\n }\n return defaultErrorHandler;\n}\n/**\n * 设置默认错误处理器\n */ export function setDefaultErrorHandler(handler) {\n defaultErrorHandler = handler;\n}\n\n//# sourceMappingURL=ErrorHandler.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport React, { useState, useRef, useEffect, useCallback, useMemo } from \"react\";\nimport { ErrorBoundary as ReactErrorBoundary } from \"react-error-boundary\";\nimport { logger } from \"@vlian/logger\";\nimport { errorUtils } from \"@vlian/utils\";\nimport { initializationErrorState } from \"../initialization\";\nimport { getDefaultErrorHandler } from \"./ErrorHandler\";\n/**\n * 错误边界组件\n * \n * 基于 react-error-boundary 实现,集成了框架的错误处理系统\n * 用于捕获 React 组件树中的错误,防止整个应用崩溃\n * \n * 默认使用框架内置错误 UI,居中显示。\n * 可以通过 fallback 属性自定义错误 UI。\n * \n * @example\n * ```tsx\n * // 使用默认错误 UI(推荐)\n * <ErrorBoundary>\n * <App />\n * </ErrorBoundary>\n * \n * // 自定义错误 UI\n * <ErrorBoundary\n * fallback={(error, reset) => (\n * <div>\n * <h1>出错了</h1>\n * <p>{error.message}</p>\n * <button onClick={reset}>重试</button>\n * </div>\n * )}\n * >\n * <App />\n * </ErrorBoundary>\n * ```\n */ export function ErrorBoundary({ children, fallback, onError, showInConsole = true, resetKeys, onReset, onResetKeysChange }) {\n // 使用 ref 存储重试计数,在多次错误之间保持状态\n const retryCountRef = useRef(0);\n // 优化:使用统一的错误处理器\n const errorHandler = useMemo(()=>getDefaultErrorHandler(), []);\n // 处理错误,将标准 Error 转换为 FrameworkError\n const handleError = useCallback(async (error, errorInfo)=>{\n const normalizedError = errorUtils.normalizeError(error);\n // 将 react-error-boundary 的 errorInfo 转换为 React 的 ErrorInfo 格式\n const reactErrorInfo = {\n componentStack: errorInfo.componentStack || ''\n };\n // 使用统一的错误处理器处理错误\n const handleResult = await errorHandler.handleError(normalizedError, {\n componentStack: reactErrorInfo.componentStack,\n source: 'ErrorBoundary'\n });\n // 如果错误处理器没有处理错误,使用默认处理\n if (!handleResult.handled) {\n logger.error('错误边界捕获到错误:', {\n error: normalizedError.toJSON(),\n errorInfo: {\n componentStack: reactErrorInfo.componentStack\n }\n });\n }\n // 调用错误回调\n if (onError) {\n onError(normalizedError, reactErrorInfo);\n }\n // 在控制台显示错误(如果配置了)\n if (showInConsole) {\n console.error('错误边界捕获到错误:', normalizedError);\n console.error('错误信息:', reactErrorInfo);\n }\n }, [\n errorHandler,\n onError,\n showInConsole\n ]);\n // 处理重置\n const handleReset = ()=>{\n // 清除初始化错误状态\n initializationErrorState.clearError();\n // 调用用户提供的重置回调\n if (onReset) {\n onReset();\n }\n };\n // 默认 fallback UI(使用无框架 HTML 组件)\n // 使用内部组件来管理重试计数状态,使用 React.memo 优化性能\n const DefaultFallbackComponent = /*#__PURE__*/ React.memo(({ error, resetErrorBoundary })=>{\n const normalizedError = errorUtils.normalizeError(error);\n const [retryCount, setRetryCount] = useState(retryCountRef.current);\n const [showDetails, setShowDetails] = useState(false);\n // 同步 ref 的值到 state,确保组件重新创建时能读取到最新的重试计数\n useEffect(()=>{\n setRetryCount(retryCountRef.current);\n }, []);\n const handleRetry = useCallback(()=>{\n // 增加重试计数\n const newCount = retryCount + 1;\n retryCountRef.current = newCount;\n setRetryCount(newCount);\n // 执行重置\n handleReset();\n resetErrorBoundary();\n }, [\n retryCount,\n resetErrorBoundary\n ]);\n const handleReload = useCallback(()=>{\n // 刷新页面\n window.location.reload();\n }, []);\n // 构建用户友好的错误提示\n const userFriendlyMessage = useMemo(()=>{\n // 根据错误类型提供不同的提示\n if (normalizedError.code === 'NETWORK_ERROR') {\n return '网络连接失败,请检查您的网络设置后再尝试';\n }\n if (normalizedError.code === 'TIMEOUT_ERROR') {\n return '请求超时,请稍后再尝试';\n }\n if (normalizedError.code === 'VALIDATION_ERROR') {\n return '数据验证失败,请检查输入内容';\n }\n // 默认提示\n return '应用运行时发生了错误,请稍后再尝试';\n }, [\n normalizedError.code\n ]);\n // 构建按钮数组\n const extraButtons = useMemo(()=>{\n const buttons = [\n /*#__PURE__*/ _jsx(\"button\", {\n onClick: handleRetry,\n \"aria-label\": \"重试加载应用\",\n style: {\n border: 'none',\n background: 'var(--app-primary-color, #2f80ed)',\n color: '#fff',\n borderRadius: 6,\n padding: '8px 14px',\n cursor: 'pointer'\n },\n children: \"重试\"\n }, \"retry\"),\n /*#__PURE__*/ _jsx(\"button\", {\n onClick: ()=>setShowDetails(!showDetails),\n \"aria-label\": showDetails ? '隐藏错误详情' : '显示错误详情',\n style: {\n border: '1px solid #cfd7df',\n background: '#fff',\n color: '#1f2933',\n borderRadius: 6,\n padding: '8px 14px',\n cursor: 'pointer'\n },\n children: showDetails ? '隐藏详情' : '查看详情'\n }, \"details\")\n ];\n // 如果重试次数 >= 1,添加刷新页面按钮(提前显示)\n if (retryCount >= 1) {\n buttons.push(/*#__PURE__*/ _jsx(\"button\", {\n onClick: handleReload,\n \"aria-label\": \"刷新页面\",\n style: {\n border: '1px solid #cfd7df',\n background: '#fff',\n color: '#1f2933',\n borderRadius: 6,\n padding: '8px 14px',\n cursor: 'pointer'\n },\n children: \"刷新页面\"\n }, \"reload\"));\n }\n return buttons;\n }, [\n retryCount,\n handleRetry,\n handleReload,\n showDetails\n ]);\n return /*#__PURE__*/ _jsxs(\"div\", {\n role: \"alert\",\n \"aria-live\": \"assertive\",\n \"aria-atomic\": \"true\",\n style: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: '100vh',\n padding: '24px'\n },\n children: [\n /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n maxWidth: 580,\n width: '100%',\n textAlign: 'center',\n border: '1px solid #dde5ec',\n borderRadius: 10,\n padding: 24,\n background: '#fff'\n },\n children: [\n /*#__PURE__*/ _jsx(\"div\", {\n style: {\n fontSize: 40,\n lineHeight: '44px'\n },\n children: \"⚠️\"\n }),\n /*#__PURE__*/ _jsx(\"h2\", {\n style: {\n margin: '8px 0 4px'\n },\n children: \"出错了\"\n }),\n /*#__PURE__*/ _jsx(\"p\", {\n style: {\n marginTop: 0,\n color: '#52606d'\n },\n children: userFriendlyMessage\n }),\n /*#__PURE__*/ _jsx(\"div\", {\n style: {\n display: 'flex',\n gap: 8,\n justifyContent: 'center',\n flexWrap: 'wrap'\n },\n children: extraButtons\n })\n ]\n }),\n showDetails && /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n marginTop: 24,\n padding: 16,\n backgroundColor: '#f5f5f5',\n borderRadius: 4,\n maxWidth: 800,\n width: '100%',\n maxHeight: 400,\n overflow: 'auto'\n },\n children: [\n /*#__PURE__*/ _jsx(\"div\", {\n style: {\n marginBottom: 8,\n fontWeight: 'bold'\n },\n children: \"错误详情:\"\n }),\n /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n fontFamily: 'monospace',\n fontSize: 12\n },\n children: [\n /*#__PURE__*/ _jsxs(\"div\", {\n children: [\n /*#__PURE__*/ _jsx(\"strong\", {\n children: \"错误类型:\"\n }),\n normalizedError.name\n ]\n }),\n /*#__PURE__*/ _jsxs(\"div\", {\n children: [\n /*#__PURE__*/ _jsx(\"strong\", {\n children: \"错误代码:\"\n }),\n normalizedError.code\n ]\n }),\n /*#__PURE__*/ _jsxs(\"div\", {\n children: [\n /*#__PURE__*/ _jsx(\"strong\", {\n children: \"错误信息:\"\n }),\n normalizedError.message\n ]\n }),\n normalizedError.stack && /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n marginTop: 8\n },\n children: [\n /*#__PURE__*/ _jsx(\"strong\", {\n children: \"堆栈信息:\"\n }),\n /*#__PURE__*/ _jsx(\"pre\", {\n style: {\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word'\n },\n children: normalizedError.stack\n })\n ]\n })\n ]\n })\n ]\n })\n ]\n });\n });\n DefaultFallbackComponent.displayName = 'DefaultFallbackComponent';\n const defaultFallback = ({ error, resetErrorBoundary })=>{\n return /*#__PURE__*/ _jsx(DefaultFallbackComponent, {\n error: error,\n resetErrorBoundary: resetErrorBoundary\n });\n };\n // 如果提供了自定义 fallback,使用自定义的\n const fallbackRender = fallback ? ({ error, resetErrorBoundary })=>{\n const normalizedError = errorUtils.normalizeError(error);\n return fallback(normalizedError, ()=>{\n handleReset();\n resetErrorBoundary();\n });\n } : defaultFallback;\n // 处理重置时清除重试计数\n const handleResetWithCount = ()=>{\n retryCountRef.current = 0;\n handleReset();\n };\n // 处理 resetKeys 变化时清除重试计数\n const handleResetKeysChange = (prevKeys, nextKeys)=>{\n retryCountRef.current = 0;\n if (onResetKeysChange) {\n onResetKeysChange(prevKeys, nextKeys);\n }\n };\n // 构建 react-error-boundary 的 props\n const errorBoundaryProps = {\n fallbackRender,\n onError: handleError,\n onReset: handleResetWithCount,\n resetKeys,\n onResetKeysChange: handleResetKeysChange\n };\n return /*#__PURE__*/ _jsx(ReactErrorBoundary, {\n ...errorBoundaryProps,\n children: children\n });\n}\n/**\n * 带错误边界的 HOC\n */ export function withErrorBoundary(Component, errorBoundaryProps) {\n const WrappedComponent = (props)=>{\n return /*#__PURE__*/ _jsx(ErrorBoundary, {\n ...errorBoundaryProps,\n children: /*#__PURE__*/ _jsx(Component, {\n ...props\n })\n });\n };\n WrappedComponent.displayName = `withErrorBoundary(${Component.displayName || Component.name || 'Component'})`;\n return WrappedComponent;\n}\n/**\n * 使用错误处理器的 Hook\n * \n * 用于在函数组件中处理异步错误\n * \n * 注意:这个 Hook 需要配合 ErrorBoundary 使用。当调用返回的错误处理函数时,\n * 错误会被设置到初始化错误状态,然后通过 InitializationErrorThrower 组件抛出。\n * \n * @example\n * ```tsx\n * import { useErrorHandler } from '@vlian/framework';\n * \n * function MyComponent() {\n * const handleError = useErrorHandler();\n * \n * useEffect(() => {\n * async function fetchData() {\n * try {\n * await someAsyncOperation();\n * } catch (error) {\n * handleError(error);\n * }\n * }\n * fetchData();\n * }, [handleError]);\n * }\n * ```\n */ export function useErrorHandler() {\n return (error)=>{\n // 将错误设置到初始化错误状态\n // InitializationErrorThrower 组件会检测到错误并抛出,让 ErrorBoundary 捕获\n initializationErrorState.setError(error);\n };\n}\n\n//# sourceMappingURL=ErrorBoundary.js.map","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 { logger } from \"@vlian/logger\";\nimport { SecurityUtils, SecurityError, ValidationError } from \"@vlian/utils\";\n/**\n * LRU 缓存实现\n */ let LRUCache = class LRUCache {\n get(key) {\n const item = this.cache.get(key);\n if (item) {\n // 更新访问时间\n item.accessTime = Date.now();\n // 移动到末尾(最近使用)\n this.cache.delete(key);\n this.cache.set(key, item);\n }\n return item;\n }\n set(key, value) {\n // 如果已存在,先删除\n if (this.cache.has(key)) {\n this.cache.delete(key);\n } else if (this.cache.size >= this.maxSize) {\n // 如果达到最大大小,删除最久未使用的项(第一个)\n const firstKey = this.cache.keys().next().value;\n if (firstKey) {\n this.cache.delete(firstKey);\n }\n }\n value.accessTime = Date.now();\n this.cache.set(key, value);\n }\n delete(key) {\n return this.cache.delete(key);\n }\n clear() {\n this.cache.clear();\n }\n size() {\n return this.cache.size;\n }\n cleanupExpired(cacheTTL) {\n const now = Date.now();\n for (const [key, item] of this.cache.entries()){\n if (now - item.timestamp > cacheTTL) {\n this.cache.delete(key);\n }\n }\n }\n constructor(maxSize = 50){\n _define_property(this, \"cache\", new Map());\n _define_property(this, \"maxSize\", void 0);\n this.maxSize = maxSize;\n }\n};\n/**\n * 转换缓存(使用 LRU 缓存)\n */ let transformCache = null;\n/**\n * 默认配置\n */ const DEFAULT_OPTIONS = {\n pathValidation: {\n enablePathValidation: true,\n // 默认仅允许常见本地模块路径,生产环境建议进一步收紧。\n allowedPathPrefixes: [\n '@/',\n './',\n '../'\n ],\n maxPathLength: 500,\n allowAbsolutePaths: false\n },\n performance: {\n enableCache: true,\n cacheTTL: 5 * 60 * 1000,\n maxCacheSize: 50,\n maxRecursionDepth: 100,\n enableParallelProcessing: true,\n parallelBatchSize: 10\n },\n enableDebugLog: false\n};\n/**\n * 优化的字符串哈希函数(用于缓存键)\n * 使用更高效的哈希算法,支持大字符串\n */ function optimizedHash(str) {\n // 对于小字符串,使用快速哈希\n if (str.length < 100) {\n let hash = 0;\n for(let i = 0; i < str.length; i++){\n const char = str.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash = hash & hash; // 转换为 32 位整数\n }\n return Math.abs(hash).toString(36);\n }\n // 对于大字符串,使用分段哈希\n let hash = 0;\n const step = Math.max(1, Math.floor(str.length / 100));\n for(let i = 0; i < str.length; i += step){\n const char = str.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash = hash & hash;\n }\n return Math.abs(hash).toString(36);\n}\n/**\n * 使用 crypto API 的哈希函数(如果可用)\n * 保留此函数供未来使用(异步哈希场景)\n */ // async function cryptoHash(str: string): Promise<string> {\n// // 检查是否支持 crypto API\n// if (typeof crypto !== 'undefined' && crypto.subtle && crypto.subtle.digest) {\n// try {\n// const encoder = new TextEncoder();\n// const data = encoder.encode(str);\n// const hashBuffer = await crypto.subtle.digest('SHA-256', data);\n// const hashArray = Array.from(new Uint8Array(hashBuffer));\n// return hashArray.map(b => b.toString(16).padStart(2, '0')).join('').substring(0, 16);\n// } catch {\n// // 如果 crypto API 失败,回退到优化哈希\n// return optimizedHash(str);\n// }\n// }\n// return optimizedHash(str);\n// }\n/**\n * 同步哈希函数(用于同步场景)\n */ function simpleHash(str) {\n return optimizedHash(str);\n}\nfunction serializeComponentRef(value) {\n if (typeof value === 'string') {\n return {\n str: value\n };\n }\n if (typeof value === 'function') {\n // 函数引用无法稳定序列化源码,使用名称和长度参与哈希,避免同名不同体完全碰撞。\n const fnText = String(value);\n return {\n fn: `${value.name || 'anonymous'}:${fnText.length}`\n };\n }\n return {};\n}\nfunction serializeRouteConfig(route) {\n const page = serializeComponentRef(route.page);\n const layout = serializeComponentRef(route.layout);\n const routeError = serializeComponentRef(route.error ?? route.errors);\n const loading = serializeComponentRef(route.loading);\n return {\n name: route.name,\n path: route.path,\n page: page.str,\n pageFn: page.fn,\n layout: layout.str,\n layoutFn: layout.fn,\n error: routeError.str,\n errorFn: routeError.fn,\n loading: loading.str,\n loadingFn: loading.fn,\n isGroup: route.isGroup,\n enableRedirection: route.enableRedirection,\n handle: route.handle ? {\n title: route.handle.title,\n order: route.handle.order,\n needLogin: route.handle.needLogin,\n roles: Array.isArray(route.handle.roles) ? [\n ...route.handle.roles\n ] : undefined\n } : undefined,\n children: route.children?.map((child)=>serializeRouteConfig(child))\n };\n}\n/**\n * 生成配置哈希(用于缓存键)\n * 优化:缓存序列化结果,避免重复序列化\n */ function generateConfigHash(routes) {\n try {\n if (routes.length === 0) {\n return 'empty';\n }\n const serializedRoutes = routes.map((route)=>serializeRouteConfig(route));\n const configStr = JSON.stringify(serializedRoutes);\n return simpleHash(configStr);\n } catch {\n return '';\n }\n}\n/**\n * 路径验证缓存(已验证的路径)\n */ const validatedPathCache = new Set();\n/**\n * 预编译的正则表达式(用于路径验证)\n */ const PATH_TRAVERSAL_REGEX = /\\.\\.(\\/|\\\\)|\\.\\.%2[Ff]|\\.\\.%5[Cc]|%2[Ee]%2[Ee]%2[Ff]|%2[Ee]%2[Ee]%5[Cc]/i;\nconst ABSOLUTE_PATH_REGEX = /^\\/|^[A-Za-z]:\\\\/;\nconst CONTROL_CHAR_REGEX = /[\\x00-\\x1f\\x7f]/;\nconst NULL_BYTE_REGEX = /%00|\\\\0|\\x00/;\nconst URL_SCHEME_REGEX = /^[A-Za-z][A-Za-z0-9+.-]*:/;\n// 保留供未来使用(命令注入检测)\n// const COMMAND_INJECTION_REGEX = /[;|&$`]/;\n// const ALLOWED_CHARS_REGEX = /^[a-zA-Z0-9\\/\\-_.@]+$/;\n/**\n * 验证路径是否安全\n * 优化:添加验证缓存、预编译正则、早期返回\n */ function validatePath(path, config) {\n // 早期返回:检查缓存\n if (validatedPathCache.has(path)) {\n return {\n valid: true\n };\n }\n // 早期返回:检查路径长度(最快检查)\n if (path.length > config.maxPathLength) {\n return {\n valid: false,\n error: process.env.NODE_ENV === 'development' ? `路径长度超过最大限制 ${config.maxPathLength} 字符` : '路径验证失败'\n };\n }\n // 早期返回:检查空字符串\n if (path.length === 0) {\n return {\n valid: false,\n error: '路径不能为空'\n };\n }\n // 检查路径遍历攻击(使用预编译正则)\n if (PATH_TRAVERSAL_REGEX.test(path)) {\n return {\n valid: false,\n error: process.env.NODE_ENV === 'development' ? '路径包含路径遍历字符(../),可能存在安全风险' : '路径验证失败'\n };\n }\n // 检查空字节注入\n if (NULL_BYTE_REGEX.test(path)) {\n return {\n valid: false,\n error: process.env.NODE_ENV === 'development' ? '路径包含空字节,可能存在安全风险' : '路径验证失败'\n };\n }\n // 检查控制字符\n if (CONTROL_CHAR_REGEX.test(path)) {\n return {\n valid: false,\n error: process.env.NODE_ENV === 'development' ? '路径包含控制字符,可能存在安全风险' : '路径验证失败'\n };\n }\n // 检查命令注入字符(可选,根据需求决定是否启用)\n // if (COMMAND_INJECTION_REGEX.test(path)) {\n // return {\n // valid: false,\n // error: process.env.NODE_ENV === 'development'\n // ? '路径包含潜在的命令注入字符'\n // : '路径验证失败',\n // };\n // }\n // 禁止 URL scheme 导入(如 http:, https:, data:, javascript:)\n if (URL_SCHEME_REGEX.test(path)) {\n return {\n valid: false,\n error: process.env.NODE_ENV === 'development' ? '不允许使用带协议的路径' : '路径验证失败'\n };\n }\n // 检查绝对路径(使用预编译正则)\n if (!config.allowAbsolutePaths && ABSOLUTE_PATH_REGEX.test(path)) {\n return {\n valid: false,\n error: process.env.NODE_ENV === 'development' ? '不允许使用绝对路径' : '路径验证失败'\n };\n }\n // 默认仅允许相对路径和别名路径,避免把第三方包名作为动态入口。\n if (!path.startsWith('@/') && !path.startsWith('./') && !path.startsWith('../')) {\n return {\n valid: false,\n error: process.env.NODE_ENV === 'development' ? '仅允许使用 @/、./、../ 开头的模块路径' : '路径验证失败'\n };\n }\n // 检查路径前缀白名单(优化:使用 Set 提高查找速度)\n if (config.allowedPathPrefixes.length > 0) {\n const prefixSet = new Set(config.allowedPathPrefixes);\n const isAllowed = Array.from(prefixSet).some((prefix)=>path.startsWith(prefix));\n if (!isAllowed) {\n return {\n valid: false,\n error: process.env.NODE_ENV === 'development' ? `路径不在允许的前缀列表中: ${config.allowedPathPrefixes.join(', ')}` : '路径验证失败'\n };\n }\n }\n // 使用 SecurityUtils 验证输入(最后检查,因为可能较慢)\n const validation = SecurityUtils.validateInput(path);\n if (!validation.safe) {\n return {\n valid: false,\n error: process.env.NODE_ENV === 'development' ? validation.reason || '路径包含潜在的危险内容' : '路径验证失败'\n };\n }\n // 验证通过,添加到缓存(限制缓存大小)\n if (validatedPathCache.size < 1000) {\n validatedPathCache.add(path);\n }\n return {\n valid: true\n };\n}\n/**\n * 预编译的正则表达式(用于路径规范化)\n */ const NORMALIZE_REGEX = {\n multipleSlashes: /\\/+/g,\n dotSlash: /\\/\\.\\//g,\n trailingDot: /\\/\\.$/\n};\n/**\n * 规范化路径\n * 优化:合并正则表达式,减少替换次数\n */ function normalizePath(path) {\n // 合并多个替换操作,减少字符串遍历次数\n return path.replace(NORMALIZE_REGEX.multipleSlashes, '/').replace(NORMALIZE_REGEX.dotSlash, '/').replace(NORMALIZE_REGEX.trailingDot, '').trim();\n}\n/**\n * 类型守卫:检查是否为有效路径字符串\n */ function isValidPathString(path) {\n return typeof path === 'string' && path.length > 0;\n}\n/**\n * 类型守卫:检查是否为动态导入函数\n */ function isComponentImport(path) {\n return typeof path === 'function';\n}\n/**\n * 创建动态导入函数\n * \n * 将组件路径字符串转换为动态导入函数,用于代码分割和懒加载\n * \n * @param path - 组件路径字符串,支持相对路径和别名路径(如 '@/pages/home.tsx')\n * @returns 返回动态导入函数,调用后会返回 Promise,resolve 后的值为组件模块对象\n * \n * @remarks\n * - 使用 `@vite-ignore` 注释告诉 Vite 忽略此动态导入的静态分析\n * - 使用类型断言 `as any` 是因为 TypeScript 的 `import()` 需要静态字符串字面量\n * - 在运行时,我们可以使用动态路径进行导入\n * - 组件必须使用默认导出(export default)\n * \n * @example\n * ```typescript\n * const importFn = createDynamicImport('@/pages/home.tsx');\n * const module = await importFn();\n * const HomePage = module.default;\n * ```\n */ function createDynamicImport(path) {\n // 使用类型断言,因为 TypeScript 的 import() 需要静态字符串\n // 但在运行时,我们可以使用动态路径\n return ()=>import(/* @vite-ignore */ path);\n}\n/**\n * 提取并验证组件路径到 Map 中\n * \n * 如果路径有效且 Map 中不存在,则创建动态导入函数并存储到 Map 中\n * 这样可以避免重复创建相同路径的动态导入函数,提高性能\n * \n * @param path - 组件路径,可能是字符串、动态导入函数、null 或 undefined\n * @param map - 目标 Map,用于存储路径到动态导入函数的映射\n * @param config - 路径验证配置\n * @param options - 转换选项\n * @returns 如果成功提取,返回动态导入函数;否则返回 null\n * \n * @remarks\n * - 如果 path 是函数,直接返回,不添加到 Map(函数本身就可以直接使用)\n * - 只有当路径是有效的非空字符串时才会处理并添加到 Map\n * - 如果 Map 中已存在该路径,则直接返回已有的导入函数\n * - 优化:使用 `get()` 一次获取,判断是否为 undefined,减少函数调用\n * - 会进行路径验证和清理\n * \n * @example\n * ```typescript\n * const pages = new Map<string, () => Promise<any>>();\n * const importFn1 = extractAndValidatePath('@/pages/home.tsx', pages, config, options);\n * const importFn2 = extractAndValidatePath(() => import('@/pages/home.tsx'), pages, config, options);\n * ```\n */ function extractAndValidatePath(path, map, config, options) {\n // 早期返回:如果是函数,直接返回,不添加到 Map\n if (isComponentImport(path)) {\n return path;\n }\n // 早期返回:检查是否为有效路径字符串\n if (!isValidPathString(path)) {\n return null;\n }\n // 规范化路径\n const normalizedPath = normalizePath(path);\n // 优化:先检查 Map 中是否已存在(避免不必要的验证)\n const existingImport = map.get(normalizedPath);\n if (existingImport !== undefined) {\n return existingImport;\n }\n // 路径验证(仅在 Map 中不存在时进行)\n if (config.enablePathValidation) {\n const validation = validatePath(normalizedPath, config);\n if (!validation.valid) {\n // 生产环境错误信息脱敏\n const errorMessage = process.env.NODE_ENV === 'development' ? `路径验证失败: ${validation.error}` : '路径验证失败';\n const error = new SecurityError(errorMessage, undefined, process.env.NODE_ENV === 'development' ? {\n path: normalizedPath\n } : {});\n if (options.enableDebugLog) {\n logger.error('路径验证失败:', error);\n }\n // 开发环境抛出错误,生产环境记录警告并跳过\n if (process.env.NODE_ENV === 'development') {\n throw error;\n } else {\n // 生产环境日志脱敏\n logger.warn('路径验证失败,已跳过');\n return null;\n }\n }\n }\n // 创建动态导入函数并存储\n const importFn = createDynamicImport(normalizedPath);\n map.set(normalizedPath, importFn);\n if (options.enableDebugLog) {\n logger.debug('提取路径:', normalizedPath);\n }\n return importFn;\n}\n/**\n * 对象池:复用栈节点对象,减少 GC 压力\n */ let StackNodePool = class StackNodePool {\n acquire(route, depth) {\n if (this.pool.length > 0) {\n const node = this.pool.pop();\n node.route = route;\n node.depth = depth;\n return node;\n }\n return {\n route,\n depth\n };\n }\n release(node) {\n if (this.pool.length < this.maxPoolSize) {\n this.pool.push(node);\n }\n }\n constructor(){\n _define_property(this, \"pool\", []);\n _define_property(this, \"maxPoolSize\", 100);\n }\n};\nconst stackNodePool = new StackNodePool();\n/**\n * 只提取组件路径到 Map 中,不转换路由配置\n * \n * 使用迭代方式遍历所有路由(包括子路由),提取组件路径到对应的 Map 中\n * 这种设计可以确保:\n * - 相同的组件路径只会创建一个动态导入函数\n * - 使用迭代而非递归,避免栈溢出\n * - 优化:支持并行处理、使用对象池、预分配数组\n * \n * @param routes - 原始路由配置列表\n * @param result - 结果对象,用于累积收集的组件路径\n * @param config - 路径验证配置\n * @param options - 转换选项\n * @param maxDepth - 最大递归深度\n */ async function extractPathsOnly(routes, result, config, options, maxDepth) {\n const enableParallel = options.performance?.enableParallelProcessing ?? true;\n const batchSize = options.performance?.parallelBatchSize ?? 10;\n // 如果启用并行处理且路由数量较多,使用并行处理\n if (enableParallel && routes.length > batchSize) {\n // 收集所有需要处理的路径(只收集字符串类型,函数类型不需要处理)\n const pathsToProcess = [];\n // 遍历所有路由,收集路径\n const stack = [];\n for(let i = routes.length - 1; i >= 0; i--){\n stack.push({\n route: routes[i],\n depth: 0\n });\n }\n while(stack.length > 0){\n const { route, depth } = stack.pop();\n if (depth > maxDepth) {\n logger.warn(`路径提取达到最大深度 ${maxDepth},跳过路由:`, route.name);\n continue;\n }\n // 收集路径(只收集字符串类型,函数类型不需要处理,会直接使用)\n if (route.page && typeof route.page === 'string') {\n pathsToProcess.push({\n path: route.page,\n map: result.pages\n });\n }\n if (route.layout && typeof route.layout === 'string') {\n pathsToProcess.push({\n path: route.layout,\n map: result.layouts\n });\n }\n const routeError = route.error ?? route.errors;\n if (routeError && typeof routeError === 'string') {\n pathsToProcess.push({\n path: routeError,\n map: result.errors\n });\n }\n if (route.loading && typeof route.loading === 'string') {\n pathsToProcess.push({\n path: route.loading,\n map: result.loadings\n });\n }\n // 处理子路由\n if (route.children && Array.isArray(route.children) && route.children.length > 0) {\n for(let i = route.children.length - 1; i >= 0; i--){\n stack.push({\n route: route.children[i],\n depth: depth + 1\n });\n }\n }\n }\n // 并行处理路径(分批处理)\n for(let i = 0; i < pathsToProcess.length; i += batchSize){\n const batch = pathsToProcess.slice(i, i + batchSize);\n await Promise.all(batch.map(({ path, map })=>Promise.resolve(extractAndValidatePath(path, map, config, options))));\n }\n } else {\n // 串行处理(原有逻辑,优化:使用对象池)\n const stack = [];\n // 初始化栈:将所有路由推入栈中\n for(let i = routes.length - 1; i >= 0; i--){\n stack.push(stackNodePool.acquire(routes[i], 0));\n }\n // 迭代处理栈中的路由\n while(stack.length > 0){\n const node = stack.pop();\n const { route, depth } = node;\n // 检查递归深度\n if (depth > maxDepth) {\n logger.warn(`路径提取达到最大深度 ${maxDepth},跳过路由:`, route.name);\n stackNodePool.release(node);\n continue;\n }\n // 提取组件路径到 Map 中(同时进行验证)\n extractAndValidatePath(route.page, result.pages, config, options);\n extractAndValidatePath(route.layout, result.layouts, config, options);\n extractAndValidatePath(route.error ?? route.errors, result.errors, config, options);\n extractAndValidatePath(route.loading, result.loadings, config, options);\n // 处理子路由\n if (route.children && Array.isArray(route.children) && route.children.length > 0) {\n // 将子路由推入栈中(逆序推入,保证处理顺序正确)\n for(let i = route.children.length - 1; i >= 0; i--){\n stack.push(stackNodePool.acquire(route.children[i], depth + 1));\n }\n }\n // 释放节点到对象池\n stackNodePool.release(node);\n }\n }\n}\n/**\n * 清理过期缓存\n * 优化:使用 LRU 缓存的清理方法\n */ function cleanupExpiredCache(cacheTTL) {\n if (transformCache) {\n transformCache.cleanupExpired(cacheTTL);\n }\n}\n/**\n * 转换路由配置:提取组件路径到 Map 中,返回原始路由配置\n * \n * 此函数是路由转换的核心函数,主要完成以下任务:\n * 1. 递归提取路由配置中的所有组件路径(page、layout、errors、loading)\n * 2. 将组件路径字符串转换为动态导入函数\n * 3. 将动态导入函数存储在对应的 Map 中,key 为路径字符串,确保不重复\n * 4. 返回原始路由配置列表,不进行转换\n * \n * @param routes - 路由配置列表,可以是:\n * - 路由配置数组(RouteConfig[])\n * - 返回路由配置数组的函数(支持同步或异步:() => RouteConfig[] | Promise<RouteConfig[]>)\n * 支持异步函数是为了支持动态加载路由配置(如从服务器获取)\n * @param options - 转换配置选项\n * @returns 包含以下内容的结果对象:\n * - `pages`: 页面组件路径到动态导入函数的 Map\n * - `layouts`: 布局组件路径到动态导入函数的 Map\n * - `errors`: 错误组件路径到动态导入函数的 Map\n * - `loadings`: 加载组件路径到动态导入函数的 Map\n * - `routes`: 原始路由配置列表,不进行转换\n * \n * @remarks\n * - 如果 `routes` 为 null、undefined 或空数组,返回空结果对象\n * - 如果 `routes` 是函数但返回的不是数组,返回空结果对象\n * - 相同的组件路径只会创建一个动态导入函数,存储在 Map 中复用\n * - 路由配置保持原始格式,组件路径仍为字符串\n * - 支持嵌套路由,会递归处理所有层级的子路由\n * - 支持缓存,相同配置会直接返回缓存结果\n * \n * @example\n * ```typescript\n * // 示例 1: 使用数组配置\n * const result = await transformRoutes([\n * {\n * name: 'home',\n * path: '/',\n * page: '@/pages/home.tsx',\n * errors: '@/pages/error.tsx',\n * handle: { title: '首页', order: 1 },\n * },\n * ]);\n * \n * // 示例 2: 使用异步函数配置\n * const result = await transformRoutes(async () => {\n * const response = await fetch('/api/routes');\n * return response.json();\n * });\n * \n * // 示例 3: 使用配置选项\n * const result = await transformRoutes(routes, {\n * pathValidation: {\n * enablePathValidation: true,\n * allowedPathPrefixes: ['@/pages', '@/components'],\n * },\n * performance: {\n * enableCache: true,\n * cacheTTL: 10 * 60 * 1000, // 10 分钟\n * },\n * });\n * ```\n */ export async function transformRoutes(routes, options = {}) {\n const startTime = performance.now();\n const mergedOptions = {\n pathValidation: {\n ...DEFAULT_OPTIONS.pathValidation,\n ...options.pathValidation\n },\n performance: {\n ...DEFAULT_OPTIONS.performance,\n ...options.performance\n },\n enableDebugLog: options.enableDebugLog ?? DEFAULT_OPTIONS.enableDebugLog\n };\n // 早期返回:如果 routes 为空或未定义,直接返回空结果\n if (!routes) {\n if (mergedOptions.enableDebugLog) {\n logger.debug('路由配置为空,返回空结果');\n }\n return {\n pages: new Map(),\n layouts: new Map(),\n errors: new Map(),\n loadings: new Map(),\n routes: []\n };\n }\n // 处理 routes 可能是函数的情况\n let routesArray;\n try {\n routesArray = typeof routes === 'function' ? await routes() : routes;\n } catch (error) {\n const err = error instanceof Error ? error : new Error('路由配置加载失败');\n logger.error('路由配置加载失败:', err);\n throw new ValidationError('路由配置加载失败', {\n originalError: err\n });\n }\n // 早期返回:如果 routesArray 不是数组,直接返回空结果\n if (!Array.isArray(routesArray) || routesArray.length === 0) {\n if (mergedOptions.enableDebugLog) {\n logger.debug('路由配置不是数组或为空,返回空结果');\n }\n return {\n pages: new Map(),\n layouts: new Map(),\n errors: new Map(),\n loadings: new Map(),\n routes: []\n };\n }\n // 检查缓存\n const cacheTTL = mergedOptions.performance.cacheTTL ?? DEFAULT_OPTIONS.performance.cacheTTL;\n const maxCacheSize = mergedOptions.performance.maxCacheSize ?? DEFAULT_OPTIONS.performance.maxCacheSize;\n if (mergedOptions.performance.enableCache) {\n // 初始化 LRU 缓存(如果尚未初始化或大小发生变化)\n if (!transformCache || transformCache.size() !== maxCacheSize) {\n transformCache = new LRUCache(maxCacheSize);\n }\n const configHash = generateConfigHash(routesArray);\n if (configHash) {\n const cached = transformCache.get(configHash);\n if (cached && Date.now() - cached.timestamp < cacheTTL) {\n if (mergedOptions.enableDebugLog) {\n logger.debug('使用缓存结果');\n }\n // 直接返回缓存结果(LRU 缓存已处理访问时间更新)\n return cached.result;\n }\n }\n // 清理过期缓存\n cleanupExpiredCache(cacheTTL);\n }\n // 初始化结果对象\n const result = {\n pages: new Map(),\n layouts: new Map(),\n errors: new Map(),\n loadings: new Map(),\n routes: []\n };\n try {\n // 性能监控:记录各阶段耗时\n const extractStartTime = performance.now();\n // 提取组件路径到 Map 中(不转换路由配置)\n const pathValidation = {\n enablePathValidation: mergedOptions.pathValidation.enablePathValidation ?? DEFAULT_OPTIONS.pathValidation.enablePathValidation,\n allowedPathPrefixes: mergedOptions.pathValidation.allowedPathPrefixes ?? DEFAULT_OPTIONS.pathValidation.allowedPathPrefixes,\n maxPathLength: mergedOptions.pathValidation.maxPathLength ?? DEFAULT_OPTIONS.pathValidation.maxPathLength,\n allowAbsolutePaths: mergedOptions.pathValidation.allowAbsolutePaths ?? DEFAULT_OPTIONS.pathValidation.allowAbsolutePaths\n };\n const maxRecursionDepth = mergedOptions.performance.maxRecursionDepth ?? DEFAULT_OPTIONS.performance.maxRecursionDepth;\n // 异步提取路径(支持并行处理)\n await extractPathsOnly(routesArray, result, pathValidation, mergedOptions, maxRecursionDepth);\n const extractEndTime = performance.now();\n const extractDuration = extractEndTime - extractStartTime;\n // 直接使用原始路由配置,不进行转换\n result.routes = routesArray;\n // 缓存结果\n const cacheStartTime = performance.now();\n if (mergedOptions.performance.enableCache && transformCache) {\n const configHash = generateConfigHash(routesArray);\n if (configHash) {\n // 注意:Map 中包含函数值,structuredClone 会失败;统一使用手动克隆。\n const cachedResult = {\n pages: new Map(result.pages),\n layouts: new Map(result.layouts),\n errors: new Map(result.errors),\n loadings: new Map(result.loadings),\n routes: JSON.parse(JSON.stringify(result.routes))\n };\n transformCache.set(configHash, {\n result: cachedResult,\n timestamp: Date.now(),\n hash: configHash,\n accessTime: Date.now()\n });\n }\n }\n const cacheEndTime = performance.now();\n const cacheDuration = cacheEndTime - cacheStartTime;\n const endTime = performance.now();\n const totalDuration = endTime - startTime;\n if (mergedOptions.enableDebugLog) {\n // 详细的性能报告\n logger.debug(`路由转换完成,总耗时: ${totalDuration.toFixed(2)}ms`, {\n routeCount: result.routes.length,\n pageCount: result.pages.size,\n layoutCount: result.layouts.size,\n errorCount: result.errors.size,\n loadingCount: result.loadings.size,\n performance: {\n extractDuration: `${extractDuration.toFixed(2)}ms`,\n cacheDuration: `${cacheDuration.toFixed(2)}ms`,\n totalDuration: `${totalDuration.toFixed(2)}ms`\n },\n cache: {\n hit: transformCache ? 'miss' : 'disabled',\n size: transformCache?.size() ?? 0\n }\n });\n }\n return result;\n } catch (error) {\n const err = error instanceof Error ? error : new Error('路由转换失败');\n logger.error('路由转换失败:', err);\n throw new ValidationError('路由转换失败', {\n originalError: err\n });\n }\n}\n\n//# sourceMappingURL=transform.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useState } from \"react\";\nconst isDevelopment = process.env.NODE_ENV === 'development';\nexport const RouteErrorBoundary = ({ error, resetErrorBoundary })=>{\n const [showDetails, setShowDetails] = useState(false);\n const errorObject = error !== null && typeof error === 'object' ? error : null;\n const errorMessage = typeof errorObject?.message === 'string' && errorObject.message !== '' ? errorObject.message : '未知错误';\n const hasCause = errorObject?.cause !== undefined;\n const isNotFoundError = errorObject?.status === 404 || typeof errorObject?.statusText === 'string' && /not\\s*found/i.test(errorObject.statusText) || /no routes matched location|not found|404/i.test(errorMessage);\n const title = isNotFoundError ? '页面不存在(404)' : '出错了,请稍后再试';\n const friendlyMessage = isNotFoundError ? '访问的路由未注册或不存在,请检查访问地址。' : '请稍后再试或联系技术支持';\n const displayMessage = isDevelopment ? errorMessage : friendlyMessage;\n return /*#__PURE__*/ _jsx(\"div\", {\n role: \"alert\",\n style: {\n minHeight: '100vh',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n padding: 24\n },\n children: /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n maxWidth: 760,\n width: '100%',\n border: '1px solid #dde5ec',\n borderRadius: 10,\n padding: 20\n },\n children: [\n /*#__PURE__*/ _jsx(\"h2\", {\n style: {\n marginTop: 0\n },\n children: title\n }),\n /*#__PURE__*/ _jsx(\"p\", {\n children: displayMessage\n }),\n /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n display: 'flex',\n gap: 8,\n marginBottom: 12\n },\n children: [\n /*#__PURE__*/ _jsx(\"button\", {\n onClick: resetErrorBoundary,\n style: {\n border: 'none',\n background: '#2f80ed',\n color: '#fff',\n borderRadius: 6,\n padding: '8px 12px',\n cursor: 'pointer'\n },\n children: \"刷新重试\"\n }),\n isDevelopment && /*#__PURE__*/ _jsx(\"button\", {\n onClick: ()=>setShowDetails(!showDetails),\n style: {\n border: '1px solid #cfd7df',\n background: '#fff',\n borderRadius: 6,\n padding: '8px 12px',\n cursor: 'pointer'\n },\n children: showDetails ? '收起详情' : '展开详情'\n })\n ]\n }),\n isDevelopment && showDetails && /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n background: '#f7fafc',\n borderRadius: 8,\n padding: 12,\n fontSize: 12,\n fontFamily: 'monospace'\n },\n children: [\n /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n marginBottom: 10\n },\n children: [\n /*#__PURE__*/ _jsx(\"strong\", {\n children: \"错误信息:\"\n }),\n errorMessage\n ]\n }),\n errorObject?.stack && /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n marginBottom: 10,\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word'\n },\n children: [\n /*#__PURE__*/ _jsx(\"strong\", {\n children: \"堆栈:\"\n }),\n /*#__PURE__*/ _jsx(\"br\", {}),\n errorObject.stack\n ]\n }),\n hasCause && /*#__PURE__*/ _jsxs(\"div\", {\n children: [\n /*#__PURE__*/ _jsx(\"strong\", {\n children: \"原因:\"\n }),\n errorObject?.cause instanceof Error ? errorObject.cause.message : String(errorObject?.cause)\n ]\n })\n ]\n })\n ]\n })\n });\n};\n\n//# sourceMappingURL=RouteErrorBoundary.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Navigate } from \"react-router-dom\";\nimport { RouteErrorBoundary } from \"./RouteErrorBoundary\";\nimport { logger } from \"@vlian/logger\";\nfunction DefaultRouteHydrateFallback() {\n return /*#__PURE__*/ _jsx(\"div\", {\n style: {\n padding: 16,\n textAlign: 'center',\n color: '#5f6c7b'\n },\n children: \"Loading...\"\n });\n}\nexport const transformRoutesToReactRoutes = async (routes, transformResult, defaultRouteErrorComponent, defaultRouteLoadingComponent, enableHydrateFallback = false)=>{\n /**\n * 批量处理路由\n * @param routes 路由组\n */ function transformRouteToReactRoutes(routes) {\n return routes.flatMap((route)=>transformRouteToReactRoute(route));\n }\n /**\n * 处理单个路由\n * @param route 路由\n */ function transformRouteToReactRoute(route) {\n const { isGroup = false, enableRedirection = false, name, path, handle, children, page, layout, error, errors, loading } = route;\n const routeError = error ?? errors;\n // 获取错误组件\n async function getErrorComponent() {\n // 如果 error/errors 是函数,直接使用\n if (typeof routeError === 'function') {\n return routeError();\n }\n const errorsMap = transformResult.errors;\n // 判断 error/errors 是否为 string 且不是空字符串\n if (typeof routeError === 'string' && routeError !== '') {\n // 使用 routeError 作为 key 获取 transformResult.errors 的值\n const errorResolver = errorsMap.get(routeError);\n // 如果获取不到,返回 null\n if (!errorResolver) {\n return null;\n }\n // 如果获取到,返回对应的值(调用动态导入函数)\n if (typeof errorResolver === 'function') {\n return errorResolver();\n }\n return null;\n }\n // 如果 errors 为空,使用配置的默认错误组件或内置的 RouteErrorBoundary 组件\n if (defaultRouteErrorComponent) {\n // 如果配置了默认错误组件,使用配置的组件\n return defaultRouteErrorComponent();\n }\n // 如果没有配置默认错误组件,使用内置的 RouteErrorBoundary 组件\n // 直接导入而非懒加载,因为:\n // 1. RouteErrorBoundary 是框架核心组件,体积小\n // 2. 错误边界需要快速响应,直接导入速度更快\n // 3. 作为基础设施组件,应该保证可用性\n return {\n default: RouteErrorBoundary\n };\n }\n // 获取转换配置\n function convertConfig(m) {\n if (!m) {\n return null;\n }\n const { action, loader, shouldRevalidate, default: Component } = m;\n // 如果 Component 不存在,记录警告\n if (!Component) {\n logger.warn(`路由组件未找到 default 导出: ${name}`, m);\n }\n return {\n action,\n loader,\n shouldRevalidate,\n Component\n };\n }\n // 获取加载组件\n async function getLoadingComponent() {\n if (typeof loading === 'function') {\n return loading();\n }\n if (typeof loading === 'string' && loading !== '') {\n const loadingResolver = transformResult.loadings.get(loading);\n if (typeof loadingResolver === 'function') {\n return loadingResolver();\n }\n }\n if (defaultRouteLoadingComponent) {\n return defaultRouteLoadingComponent();\n }\n return null;\n }\n // 获取配置\n async function getConfig(index = false) {\n // 如果有layout和不是index,返回布局配置\n if (layout && !index) {\n // 如果 layout 是函数,直接使用\n if (typeof layout === 'function') {\n const config = await layout();\n return convertConfig(config);\n }\n // 如果 layout 是字符串,从 Map 中获取\n if (typeof layout === 'string') {\n const layoutResolver = transformResult.layouts.get(layout);\n if (!layoutResolver) {\n throw new Error(`未找到名为 ${layout} 的布局组件`);\n }\n const config = await layoutResolver();\n return convertConfig(config);\n }\n }\n let pageName = name;\n // 如果是notFound则转成404\n if (pageName === 'notFound') {\n pageName = '404';\n }\n if (page && (!children?.length || index)) {\n // 如果 page 是函数,直接使用\n if (typeof page === 'function') {\n const config = await page();\n return convertConfig(config);\n }\n // 如果 page 是字符串,从 Map 中获取\n if (typeof page === 'string') {\n const viewResolver = transformResult.pages.get(page);\n if (!viewResolver) {\n throw new Error(`未找到名为 ${page} 的页面组件`);\n }\n const config = await viewResolver();\n return convertConfig(config);\n }\n }\n return null;\n }\n // 获取处理信息,即额外的配置信息\n function getHandle(index = false) {\n if ((layout || isGroup) && !index) {\n return null;\n }\n return {\n ...handle,\n name,\n path\n };\n }\n const reactRoute = {\n children: [],\n id: name,\n handle: getHandle(),\n lazy: async ()=>{\n const ErrorBoundary = await getErrorComponent();\n const config = await getConfig();\n const LoadingComponent = await getLoadingComponent();\n const HydrateFallback = LoadingComponent?.default ?? DefaultRouteHydrateFallback;\n // 如果配置为空,确保至少返回一个空对象,避免展开 undefined\n if (!config) {\n return {\n ErrorBoundary: ErrorBoundary?.default,\n HydrateFallback\n };\n }\n return {\n ErrorBoundary: ErrorBoundary?.default,\n HydrateFallback,\n ...config\n };\n },\n path\n };\n if (enableHydrateFallback) {\n reactRoute.hydrateFallbackElement = /*#__PURE__*/ _jsx(DefaultRouteHydrateFallback, {});\n }\n // 处理子路由\n if (children?.length) {\n reactRoute.children = children.flatMap((child)=>transformRouteToReactRoute(child)).sort((a, b)=>{\n const orderA = a.handle?.order ?? 99;\n const orderB = b.handle?.order ?? 99;\n return orderA - orderB;\n });\n if (page && !isGroup) {\n reactRoute.children.unshift({\n handle: getHandle(true),\n index: true,\n lazy: async ()=>{\n const ErrorBoundary = await getErrorComponent();\n const LoadingComponent = await getLoadingComponent();\n const HydrateFallback = LoadingComponent?.default ?? DefaultRouteHydrateFallback;\n const Component = page;\n return {\n ErrorBoundary: ErrorBoundary?.default,\n HydrateFallback,\n Component,\n ...await getConfig(true)\n };\n }\n });\n }\n if (enableRedirection && isGroup) {\n const [firstChild] = reactRoute.children;\n if (firstChild?.path) {\n reactRoute.children.unshift({\n index: true,\n handle: getHandle(true),\n element: /*#__PURE__*/ _jsx(Navigate, {\n to: firstChild.path,\n replace: true\n })\n });\n }\n }\n }\n // 若存在 layout 且没有子路由,但同时声明了 page,则自动生成 index 子路由以渲染页面\n // 场景:/test 使用自定义 layout,且没有 children 时仍应渲染 page\n if ((!children || children.length === 0) && layout && page && !isGroup) {\n reactRoute.children = [\n {\n handle: getHandle(true),\n index: true,\n lazy: async ()=>{\n const ErrorBoundary = await getErrorComponent();\n const LoadingComponent = await getLoadingComponent();\n const HydrateFallback = LoadingComponent?.default ?? DefaultRouteHydrateFallback;\n const Component = page;\n return {\n ErrorBoundary: ErrorBoundary?.default,\n HydrateFallback,\n Component,\n ...await getConfig(true)\n };\n }\n }\n ];\n }\n return reactRoute;\n }\n return transformRouteToReactRoutes(routes);\n};\n\n//# sourceMappingURL=transform.js.map","/**\n * 路由配置验证 Schema(使用 Zod)\n */ import { z } from \"zod\";\n/**\n * RouteItemHandle Schema\n */ export const routeItemHandleSchema = z.object({\n title: z.string().min(1, '路由标题不能为空'),\n i18nKey: z.string().optional(),\n order: z.number().int('排序值必须是整数'),\n icon: z.string().optional(),\n hideInMenu: z.boolean().optional(),\n hideFooter: z.boolean().optional(),\n keepAlive: z.boolean().optional(),\n needLogin: z.boolean().optional(),\n roles: z.array(z.string()).optional(),\n name: z.string().optional()\n}).passthrough(); // 允许其他自定义字段\n/**\n * ComponentImport Schema\n * 可以是字符串路径或函数\n */ export const componentImportSchema = z.union([\n z.string().min(1, '组件路径不能为空'),\n z.function(),\n z.null()\n]);\nconst routerOptionsSchema = z.object({\n basename: z.string().optional(),\n future: z.record(z.string(), z.union([\n z.boolean(),\n z.string(),\n z.number()\n ])).optional(),\n hydrationData: z.unknown().optional(),\n window: z.unknown().optional(),\n initialEntries: z.array(z.string()).optional(),\n initialIndex: z.number().int().nonnegative().optional()\n}).passthrough();\nconst transformOptionsSchema = z.object({\n pathValidation: z.object({\n enablePathValidation: z.boolean().optional(),\n allowedPathPrefixes: z.array(z.string().min(1)).optional(),\n maxPathLength: z.number().int().positive().optional(),\n allowAbsolutePaths: z.boolean().optional()\n }).optional(),\n performance: z.object({\n enableCache: z.boolean().optional(),\n cacheTTL: z.number().int().positive().optional(),\n maxCacheSize: z.number().int().positive().optional(),\n maxRecursionDepth: z.number().int().positive().optional(),\n enableParallelProcessing: z.boolean().optional(),\n parallelBatchSize: z.number().int().positive().optional()\n }).optional(),\n enableDebugLog: z.boolean().optional()\n}).passthrough();\n/**\n * RouteConfig Schema\n */ export const routeConfigSchema = z.lazy(()=>z.object({\n layout: componentImportSchema.optional().nullable(),\n page: componentImportSchema.optional().nullable(),\n loading: componentImportSchema.optional().nullable(),\n error: componentImportSchema.optional().nullable(),\n errors: componentImportSchema.optional().nullable(),\n name: z.string().min(1, '路由名称不能为空'),\n path: z.string().optional(),\n isGroup: z.boolean().optional(),\n enableRedirection: z.boolean().optional(),\n handle: routeItemHandleSchema,\n children: z.array(routeConfigSchema).optional()\n }));\n/**\n * RouterConfig Schema\n */ export const routerConfigSchema = z.object({\n enabled: z.union([\n z.boolean(),\n z.literal('disabled')\n ]).optional(),\n routes: z.union([\n z.array(routeConfigSchema),\n z.function()\n ]).optional(),\n mode: z.enum([\n 'browser',\n 'hash',\n 'memory'\n ]).optional(),\n options: routerOptionsSchema.optional(),\n pathResolve: z.object({\n basePath: z.string().optional(),\n pathAliases: z.record(z.string(), z.string()).optional()\n }).optional(),\n transformOptions: transformOptionsSchema.optional(),\n preload: z.object({\n strategy: z.enum([\n 'none',\n 'next-level',\n 'all',\n 'visible'\n ]).optional(),\n delay: z.number().int().positive().optional(),\n priorityThreshold: z.number().int().nonnegative().optional(),\n timeout: z.number().int().positive().optional()\n }).optional(),\n enableHydrateFallback: z.boolean().optional()\n}).superRefine((config, ctx)=>{\n if (!Array.isArray(config.routes)) {\n return;\n }\n const routeNameMap = new Map();\n const walk = (routes, parentPath)=>{\n routes.forEach((route, index)=>{\n const currentPath = `${parentPath}[${index}]`;\n const existingPath = routeNameMap.get(route.name);\n if (existingPath) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\n 'routes',\n index,\n 'name'\n ],\n message: `路由名称重复: \"${route.name}\",首次定义位置 ${existingPath}`\n });\n } else {\n routeNameMap.set(route.name, currentPath);\n }\n if (Array.isArray(route.children) && route.children.length > 0) {\n walk(route.children, `${currentPath}.children`);\n }\n });\n };\n walk(config.routes, 'routes');\n});\n/**\n * 验证路由配置\n * \n * @param config - 要验证的路由配置\n * @returns 验证后的路由配置\n * @throws z.ZodError 如果配置验证失败\n */ export function validateRouterConfig(config) {\n return routerConfigSchema.parse(config);\n}\n/**\n * 安全验证路由配置(不抛出异常)\n * \n * @param config - 要验证的路由配置\n * @returns 验证结果\n */ export function safeValidateRouterConfig(config) {\n return routerConfigSchema.safeParse(config);\n}\n\n//# sourceMappingURL=schema.js.map","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 * 使用Zod进行配置验证\n */ import { z } from \"zod\";\n/**\n * 配置验证错误\n */ export class ConfigValidationError extends Error {\n constructor(message, errors){\n super(message), _define_property(this, \"errors\", void 0), this.errors = errors;\n this.name = 'ConfigValidationError';\n }\n}\n/**\n * 配置验证器\n */ export class ConfigValidator {\n /**\n * 验证配置\n * \n * @param config - 要验证的配置\n * @param schema - Zod模式\n * @returns 验证后的配置\n * @throws ConfigValidationError 如果配置验证失败\n */ static validate(config, schema) {\n const result = schema.safeParse(config);\n if (!result.success) {\n throw new ConfigValidationError('配置验证失败', result.error);\n }\n return result.data;\n }\n /**\n * 安全验证配置(不抛出异常)\n * \n * @param config - 要验证的配置\n * @param schema - Zod模式\n * @returns 验证结果\n */ static safeValidate(config, schema) {\n const result = schema.safeParse(config);\n if (result.success) {\n return {\n success: true,\n data: result.data\n };\n }\n return {\n success: false,\n error: result.error\n };\n }\n /**\n * 创建StartOptions的部分验证模式\n * 注意:这是一个基础模式,可以根据需要扩展\n */ static createStartOptionsSchema() {\n return z.object({\n loggerLevel: z.enum([\n 'DEBUG',\n 'INFO',\n 'WARN',\n 'ERROR'\n ]).optional(),\n showSplashScreen: z.enum([\n 'auto',\n 'always',\n 'never',\n 'first-time-only'\n ]).optional(),\n minSplashScreenTime: z.number().positive().optional(),\n security: z.object({\n enableXSSProtection: z.boolean().optional(),\n validateConfig: z.boolean().optional(),\n sanitizeUserInput: z.boolean().optional(),\n csp: z.object({\n defaultSrc: z.array(z.string()).optional(),\n scriptSrc: z.array(z.string()).optional(),\n styleSrc: z.array(z.string()).optional(),\n imgSrc: z.array(z.string()).optional(),\n connectSrc: z.array(z.string()).optional(),\n fontSrc: z.array(z.string()).optional(),\n frameSrc: z.array(z.string()).optional(),\n allowUnsafeInline: z.boolean().optional(),\n allowUnsafeEval: z.boolean().optional()\n }).optional()\n }).optional()\n }).passthrough(); // passthrough允许其他字段通过\n }\n /**\n * 验证配置并提供友好的错误信息\n * \n * @param config - 要验证的配置\n * @param schema - Zod模式\n * @returns 验证后的配置\n * @throws ConfigValidationError 如果配置验证失败,包含详细的错误信息\n */ static validateWithFriendlyErrors(config, schema) {\n const result = schema.safeParse(config);\n if (!result.success) {\n // 构建友好的错误信息\n // 注意:ZodError 使用 issues 属性,不是 errors\n const errorMessages = result.error.issues.map((issue)=>{\n const path = issue.path.length > 0 ? issue.path.join('.') : 'root';\n return `配置项 \"${path}\": ${issue.message}`;\n });\n const friendlyMessage = `配置验证失败:\\n${errorMessages.join('\\n')}`;\n throw new ConfigValidationError(friendlyMessage, result.error);\n }\n return result.data;\n }\n}\n\n//# sourceMappingURL=ConfigValidator.js.map","/**\n * 路由配置验证器\n * 使用 Zod 进行配置验证,并提供友好的错误信息\n */ import { ConfigValidationError } from \"../../config/ConfigValidator\";\nimport { logger } from \"@vlian/logger\";\nimport { safeValidateRouterConfig } from \"./schema\";\n/**\n * 路由配置验证器\n */ export class RouterConfigValidator {\n /**\n * 验证路由配置\n * \n * @param config - 要验证的路由配置\n * @returns 验证后的路由配置\n * @throws ConfigValidationError 如果配置验证失败\n */ static validate(config) {\n const result = safeValidateRouterConfig(config);\n if (!result.success) {\n // 构建友好的错误信息\n const errorMessages = result.error.issues.map((issue)=>{\n const path = issue.path.length > 0 ? issue.path.join('.') : 'root';\n return `路由配置项 \"${path}\": ${issue.message}`;\n });\n const friendlyMessage = `路由配置验证失败:\\n${errorMessages.join('\\n')}`;\n logger.error('路由配置验证失败', {\n errors: result.error.issues,\n config\n });\n throw new ConfigValidationError(friendlyMessage, result.error);\n }\n return result.data;\n }\n /**\n * 安全验证路由配置(不抛出异常)\n * \n * @param config - 要验证的路由配置\n * @returns 验证结果\n */ static safeValidate(config) {\n return safeValidateRouterConfig(config);\n }\n /**\n * 验证路由配置并提供修复建议\n * \n * @param config - 要验证的路由配置\n * @returns 验证结果和修复建议\n */ static validateWithSuggestions(config) {\n const result = safeValidateRouterConfig(config);\n if (!result.success) {\n const suggestions = [];\n result.error.issues.forEach((issue)=>{\n const path = issue.path.join('.');\n // 根据错误类型提供修复建议\n if (issue.code === 'invalid_type') {\n const invalidTypeIssue = issue;\n suggestions.push(`配置项 \"${path}\" 类型错误: 期望 ${invalidTypeIssue.expected},实际 ${invalidTypeIssue.received}`);\n } else if (issue.code === 'too_small') {\n suggestions.push(`配置项 \"${path}\" 值太小: ${issue.message}`);\n } else if (issue.code === 'too_big') {\n suggestions.push(`配置项 \"${path}\" 值太大: ${issue.message}`);\n } else {\n suggestions.push(`配置项 \"${path}\": ${issue.message}`);\n }\n });\n return {\n success: false,\n errors: result.error.issues,\n suggestions\n };\n }\n return {\n success: true,\n data: result.data\n };\n }\n}\n\n//# sourceMappingURL=RouterConfigValidator.js.map","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 */ import { logger } from \"@vlian/logger\";\n/**\n * 路由生命周期管理器\n */ export class RouterLifecycleManager {\n /**\n * 注册生命周期钩子\n * \n * @param hooks - 生命周期钩子配置\n * @returns 取消注册函数\n */ register(hooks) {\n this.hooks.push(hooks);\n logger.debug('路由生命周期钩子已注册');\n // 返回取消注册函数\n return ()=>{\n const index = this.hooks.indexOf(hooks);\n if (index > -1) {\n this.hooks.splice(index, 1);\n logger.debug('路由生命周期钩子已取消注册');\n }\n };\n }\n /**\n * 批量注册生命周期钩子\n * \n * @param hooksArray - 生命周期钩子配置数组\n */ registerBatch(hooksArray) {\n hooksArray.forEach((hooks)=>this.register(hooks));\n }\n /**\n * 清空所有生命周期钩子\n */ clear() {\n this.hooks = [];\n logger.debug('所有路由生命周期钩子已清空');\n }\n /**\n * 执行路由跳转前钩子\n * \n * @param to - 目标路由\n * @param from - 来源路由\n * @returns 如果返回字符串,则跳转到该路径;如果返回 false,则阻止跳转;返回 true 或 undefined 则继续跳转\n */ async beforeEach(to, from) {\n // 按注册顺序执行所有 beforeEach 钩子\n for (const hooks of this.hooks){\n if (hooks.beforeEach) {\n try {\n const result = await hooks.beforeEach(to, from);\n // 如果返回 false,阻止跳转\n if (result === false) {\n logger.debug('路由跳转被阻止: beforeEach 返回 false');\n return false;\n }\n // 如果返回字符串,重定向到该路径\n if (typeof result === 'string') {\n logger.debug(`路由跳转重定向: beforeEach 返回 ${result}`);\n return result;\n }\n } catch (error) {\n logger.error('路由生命周期钩子执行失败: beforeEach', error);\n continue;\n }\n }\n }\n // 所有钩子都通过,允许跳转\n return undefined;\n }\n /**\n * 执行路由跳转后钩子\n * \n * @param to - 目标路由\n * @param from - 来源路由\n */ async afterEach(to, from) {\n // 按注册顺序执行所有 afterEach 钩子\n for (const hooks of this.hooks){\n if (hooks.afterEach) {\n try {\n await hooks.afterEach(to, from);\n } catch (error) {\n logger.error('路由生命周期钩子执行失败: afterEach', error);\n continue;\n }\n }\n }\n }\n /**\n * 获取所有生命周期钩子\n * \n * @returns 生命周期钩子配置数组\n */ getAll() {\n return [\n ...this.hooks\n ];\n }\n /**\n * 获取生命周期钩子数量\n * \n * @returns 生命周期钩子数量\n */ getCount() {\n return this.hooks.length;\n }\n constructor(){\n _define_property(this, \"hooks\", []);\n }\n}\n/**\n * 获取路由生命周期管理器单例\n */ let lifecycleManagerInstance = null;\nexport function getRouterLifecycleManager() {\n if (!lifecycleManagerInstance) {\n lifecycleManagerInstance = new RouterLifecycleManager();\n }\n return lifecycleManagerInstance;\n}\n\n//# sourceMappingURL=RouterLifecycleManager.js.map","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 */ import { logger } from \"@vlian/logger\";\n/**\n * 路由中间件管理器\n */ export class RouterMiddlewareManager {\n /**\n * 注册中间件\n * \n * @param config - 中间件配置\n * @returns 取消注册函数\n */ register(config) {\n // 验证中间件配置\n if (!config.middleware || typeof config.middleware !== 'function') {\n throw new Error('中间件必须是一个函数');\n }\n // 设置默认值\n const middlewareConfig = {\n priority: 100,\n enabled: true,\n ...config\n };\n // 添加到中间件列表\n this.middlewares.push(middlewareConfig);\n // 按优先级排序\n this.middlewares.sort((a, b)=>(a.priority || 100) - (b.priority || 100));\n logger.debug(`路由中间件已注册: ${middlewareConfig.name || 'anonymous'}`);\n // 返回取消注册函数\n return ()=>{\n const index = this.middlewares.indexOf(middlewareConfig);\n if (index > -1) {\n this.middlewares.splice(index, 1);\n logger.debug(`路由中间件已取消注册: ${middlewareConfig.name || 'anonymous'}`);\n }\n };\n }\n /**\n * 批量注册中间件\n * \n * @param configs - 中间件配置数组\n */ registerBatch(configs) {\n configs.forEach((config)=>this.register(config));\n }\n /**\n * 取消注册中间件\n * \n * @param name - 中间件名称\n */ unregister(name) {\n const index = this.middlewares.findIndex((m)=>m.name === name);\n if (index > -1) {\n this.middlewares.splice(index, 1);\n logger.debug(`路由中间件已取消注册: ${name}`);\n }\n }\n /**\n * 清空所有中间件\n */ clear() {\n this.middlewares = [];\n logger.debug('所有路由中间件已清空');\n }\n /**\n * 执行中间件链\n * \n * @param context - 中间件上下文\n * @returns 中间件执行结果\n */ async execute(context) {\n // 过滤启用的中间件\n const enabledMiddlewares = this.middlewares.filter((m)=>{\n if (!m.enabled) {\n return false;\n }\n // 检查条件函数\n if (m.condition && !m.condition(context)) {\n return false;\n }\n return true;\n });\n // 按顺序执行中间件\n for (const middlewareConfig of enabledMiddlewares){\n try {\n const result = await middlewareConfig.middleware(context);\n // 如果中间件返回 false,阻止导航\n if (result === false) {\n logger.debug(`路由中间件阻止导航: ${middlewareConfig.name || 'anonymous'} -> false`);\n return {\n allow: false,\n reason: '中间件返回 false'\n };\n }\n // 如果中间件返回对象且 allow: false,阻止导航\n if (typeof result === 'object' && result !== null && result.allow === false) {\n logger.debug(`路由中间件阻止导航: ${middlewareConfig.name || 'anonymous'}`, result);\n if (result.redirect && !RouterMiddlewareManager.SAFE_REDIRECT_PATH_REGEX.test(result.redirect)) {\n logger.warn(`路由中间件返回了不安全的重定向地址,已拦截: ${middlewareConfig.name || 'anonymous'} -> ${result.redirect}`);\n return {\n allow: false,\n reason: '中间件返回了不安全的重定向地址'\n };\n }\n return result;\n }\n // 如果中间件返回字符串,重定向到该路径\n if (typeof result === 'string') {\n if (!RouterMiddlewareManager.SAFE_REDIRECT_PATH_REGEX.test(result)) {\n logger.warn(`路由中间件返回了不安全的重定向地址,已拦截: ${middlewareConfig.name || 'anonymous'} -> ${result}`);\n return {\n allow: false,\n reason: '中间件返回了不安全的重定向地址'\n };\n }\n logger.debug(`路由中间件重定向: ${middlewareConfig.name || 'anonymous'} -> ${result}`);\n return {\n allow: false,\n redirect: result\n };\n }\n } catch (error) {\n logger.error(`路由中间件执行失败: ${middlewareConfig.name || 'anonymous'}`, error);\n continue;\n }\n }\n // 所有中间件都通过,允许导航\n return {\n allow: true\n };\n }\n /**\n * 获取所有中间件\n * \n * @returns 中间件配置数组\n */ getAll() {\n return [\n ...this.middlewares\n ];\n }\n /**\n * 获取启用的中间件\n * \n * @returns 启用的中间件配置数组\n */ getEnabled() {\n return this.middlewares.filter((m)=>m.enabled);\n }\n /**\n * 获取中间件数量\n * \n * @returns 中间件数量\n */ getCount() {\n return this.middlewares.length;\n }\n constructor(){\n _define_property(this, \"middlewares\", []);\n }\n}\n_define_property(RouterMiddlewareManager, \"SAFE_REDIRECT_PATH_REGEX\", /^(\\/|\\.\\/|\\.\\.\\/|#)/);\n/**\n * 获取路由中间件管理器单例\n */ let middlewareManagerInstance = null;\nexport function getRouterMiddlewareManager() {\n if (!middlewareManagerInstance) {\n middlewareManagerInstance = new RouterMiddlewareManager();\n }\n return middlewareManagerInstance;\n}\n\n//# sourceMappingURL=RouterMiddlewareManager.js.map","/**\n * 路由权限拦截中间件\n */ import { logger } from \"@vlian/logger\";\n/**\n * 创建权限拦截中间件\n * \n * @param config - 权限拦截中间件配置\n * @returns 路由中间件函数\n */ export function createAuthMiddleware(config) {\n const { checkAuth, checkLogin, checkRole, loginRedirect = '/login', forbiddenRedirect = '/403' } = config;\n return async (context)=>{\n const { to } = context;\n // 检查路由是否需要登录\n const needLogin = to.meta?.needLogin || to.meta?.handle?.needLogin;\n if (needLogin) {\n // 检查登录状态\n if (checkLogin) {\n const isLoggedIn = await checkLogin();\n if (!isLoggedIn) {\n logger.debug(`路由权限拦截: 未登录,重定向到 ${loginRedirect}`);\n return {\n allow: false,\n redirect: loginRedirect,\n reason: '需要登录'\n };\n }\n }\n }\n // 检查路由角色权限\n const roles = to.meta?.roles || to.meta?.handle?.roles;\n if (roles && Array.isArray(roles) && roles.length > 0) {\n if (checkRole) {\n const hasRole = await checkRole(roles);\n if (!hasRole) {\n logger.debug(`路由权限拦截: 无权限,重定向到 ${forbiddenRedirect}`);\n return {\n allow: false,\n redirect: forbiddenRedirect,\n reason: '无权限访问'\n };\n }\n }\n }\n // 执行自定义权限检查\n if (checkAuth) {\n const hasAuth = await checkAuth(context);\n if (!hasAuth) {\n logger.debug(`路由权限拦截: 权限检查失败,重定向到 ${forbiddenRedirect}`);\n return {\n allow: false,\n redirect: forbiddenRedirect,\n reason: '权限检查失败'\n };\n }\n }\n // 权限检查通过\n return {\n allow: true\n };\n };\n}\n\n//# sourceMappingURL=auth.js.map","import * as vlianUtils from \"@vlian/utils\";\nconst utils = vlianUtils;\nexport const ErrorCode = utils.ErrorCode;\nexport const ErrorMessages = utils.ErrorMessages;\nexport const getErrorMessage = utils.getErrorMessage;\nexport const getUserFriendlyMessage = utils.getUserFriendlyMessage;\nexport const ErrorType = utils.ErrorType;\nexport const ErrorSeverity = utils.ErrorSeverity;\nexport const FrameworkError = utils.FrameworkError;\nexport const InitializationError = utils.InitializationError;\nexport const ConfigError = utils.ConfigError;\nexport const StorageError = utils.StorageError;\nexport const NetworkError = utils.NetworkError;\nexport const ValidationError = utils.ValidationError;\nexport const SecurityError = utils.SecurityError;\nexport const errorUtils = utils.errorUtils;\n\n//# sourceMappingURL=errors.js.map","/**\n * 路由错误类型定义\n */ import { FrameworkError, ErrorSeverity, ErrorType } from \"../../../utils/errors\";\n/**\n * 路由错误代码\n */ export var RouterErrorCode = /*#__PURE__*/ function(RouterErrorCode) {\n /**\n * 路由未初始化\n */ RouterErrorCode[\"ROUTER_NOT_INITIALIZED\"] = \"ROUTER_NOT_INITIALIZED\";\n /**\n * 路由配置错误\n */ RouterErrorCode[\"ROUTER_CONFIG_ERROR\"] = \"ROUTER_CONFIG_ERROR\";\n /**\n * 路由未找到\n */ RouterErrorCode[\"ROUTE_NOT_FOUND\"] = \"ROUTE_NOT_FOUND\";\n /**\n * 路由导航失败\n */ RouterErrorCode[\"ROUTE_NAVIGATION_FAILED\"] = \"ROUTE_NAVIGATION_FAILED\";\n /**\n * 路由权限不足\n */ RouterErrorCode[\"ROUTE_PERMISSION_DENIED\"] = \"ROUTE_PERMISSION_DENIED\";\n /**\n * 路由组件加载失败\n */ RouterErrorCode[\"ROUTE_COMPONENT_LOAD_FAILED\"] = \"ROUTE_COMPONENT_LOAD_FAILED\";\n /**\n * 路由转换失败\n */ RouterErrorCode[\"ROUTE_TRANSFORM_FAILED\"] = \"ROUTE_TRANSFORM_FAILED\";\n return RouterErrorCode;\n}({});\n/**\n * 路由错误\n */ export class RouterError extends FrameworkError {\n constructor(message, code, severity = ErrorSeverity.MEDIUM, cause, context){\n super(message, ErrorType.RUNTIME, severity, {\n code,\n originalError: cause,\n context: context || {}\n });\n this.name = 'RouterError';\n }\n}\n/**\n * 创建路由错误\n */ export function createRouterError(message, code, severity, cause, context) {\n return new RouterError(message, code, severity, cause, context);\n}\n\n//# sourceMappingURL=RouterError.js.map","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 */ import { logger } from \"@vlian/logger\";\n/**\n * 路由缓存管理器\n */ export class RouteCache {\n /**\n * 初始化持久化缓存\n */ async initPersistence() {\n try {\n // 检查 IndexedDB 是否可用\n if (typeof window !== 'undefined' && 'indexedDB' in window) {\n this.persistenceEnabled = true;\n await this.loadFromPersistence();\n logger.debug('路由缓存持久化已启用');\n }\n } catch (error) {\n logger.warn('路由缓存持久化初始化失败', error);\n this.persistenceEnabled = false;\n }\n }\n /**\n * 从持久化存储加载缓存\n */ async loadFromPersistence() {\n try {\n // 这里可以实现从 IndexedDB 加载缓存的逻辑\n // 由于 IndexedDB 操作较复杂,这里先留空\n // 实际实现可以使用 idb 库或原生 IndexedDB API\n } catch (error) {\n logger.warn('从持久化存储加载缓存失败', error);\n }\n }\n /**\n * 保存到持久化存储\n */ async saveToPersistence(_key, _value) {\n if (!this.persistenceEnabled) {\n return;\n }\n try {\n // 这里可以实现保存到 IndexedDB 的逻辑\n // 实际实现可以使用 idb 库或原生 IndexedDB API\n } catch (error) {\n logger.warn('保存到持久化存储失败', error);\n }\n }\n /**\n * 生成缓存键\n */ generateKey(routes) {\n if (typeof routes === 'function') {\n // 对于函数,使用函数名或随机 ID\n return `fn_${routes.name || Math.random().toString(36).substring(7)}`;\n }\n // 对于数组,使用 JSON.stringify 生成键(注意:这可能会很慢)\n // 实际使用中可以考虑使用路由配置的哈希值\n try {\n const routesStr = JSON.stringify(routes, (_key, value)=>{\n // 过滤掉函数,避免序列化问题\n if (typeof value === 'function') {\n return '[Function]';\n }\n return value;\n });\n return `routes_${this.hashString(routesStr)}`;\n } catch (error) {\n // 如果序列化失败,使用随机键\n return `routes_${Math.random().toString(36).substring(7)}`;\n }\n }\n /**\n * 字符串哈希函数(简单实现)\n */ hashString(str) {\n let hash = 0;\n for(let i = 0; i < str.length; i++){\n const char = str.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash = hash & hash; // 转换为 32 位整数\n }\n return Math.abs(hash).toString(36);\n }\n /**\n * 检查缓存项是否过期\n */ isExpired(item) {\n return Date.now() > item.expiresAt;\n }\n /**\n * 清理过期缓存\n */ cleanup() {\n // 清理转换结果缓存\n for (const [key, item] of this.cache.entries()){\n if (this.isExpired(item)) {\n this.cache.delete(key);\n }\n }\n // 清理匹配结果缓存\n for (const [key, item] of this.matchCache.entries()){\n if (this.isExpired(item)) {\n this.matchCache.delete(key);\n }\n }\n // 如果缓存超过最大大小,删除最久未访问的项(LRU)\n this.evictLRU();\n }\n /**\n * LRU 淘汰策略\n */ evictLRU() {\n // 清理转换结果缓存\n if (this.cache.size > this.config.maxSize) {\n const sorted = Array.from(this.cache.entries()).sort((a, b)=>a[1].lastAccessedAt - b[1].lastAccessedAt);\n const toDelete = sorted.slice(0, this.cache.size - this.config.maxSize);\n toDelete.forEach(([key])=>this.cache.delete(key));\n }\n // 清理匹配结果缓存\n if (this.matchCache.size > this.config.maxSize) {\n const sorted = Array.from(this.matchCache.entries()).sort((a, b)=>a[1].lastAccessedAt - b[1].lastAccessedAt);\n const toDelete = sorted.slice(0, this.matchCache.size - this.config.maxSize);\n toDelete.forEach(([key])=>this.matchCache.delete(key));\n }\n }\n /**\n * 启动定期清理\n */ startCleanupInterval() {\n if (this.cleanupTimer) {\n clearInterval(this.cleanupTimer);\n }\n // 每 1 分钟清理一次过期缓存\n this.cleanupTimer = setInterval(()=>{\n this.cleanup();\n }, 60 * 1000);\n }\n /**\n * 获取转换结果缓存\n */ get(routes) {\n const key = this.generateKey(routes);\n const item = this.cache.get(key);\n if (!item) {\n this.stats.transformMisses++;\n return null;\n }\n if (this.isExpired(item)) {\n this.cache.delete(key);\n this.stats.transformMisses++;\n return null;\n }\n // 更新访问信息\n item.lastAccessedAt = Date.now();\n item.accessCount++;\n this.stats.transformHits++;\n return item.value;\n }\n /**\n * 设置转换结果缓存\n */ set(routes, value) {\n const key = this.generateKey(routes);\n const now = Date.now();\n const item = {\n value,\n expiresAt: now + this.config.ttl,\n createdAt: now,\n accessCount: 0,\n lastAccessedAt: now\n };\n this.cache.set(key, item);\n // 保存到持久化存储\n if (this.persistenceEnabled) {\n this.saveToPersistence(key, value).catch((error)=>{\n logger.warn('保存缓存到持久化存储失败', error);\n });\n }\n // 检查是否需要淘汰\n this.evictLRU();\n }\n /**\n * 获取路由匹配缓存\n */ getMatch(path) {\n const item = this.matchCache.get(path);\n if (!item) {\n this.stats.matchMisses++;\n return undefined;\n }\n if (this.isExpired(item)) {\n this.matchCache.delete(path);\n this.stats.matchMisses++;\n return undefined;\n }\n // 更新访问信息\n item.lastAccessedAt = Date.now();\n item.accessCount++;\n this.stats.matchHits++;\n return item.value;\n }\n /**\n * 设置路由匹配缓存\n */ setMatch(path, route) {\n const now = Date.now();\n const item = {\n value: route,\n expiresAt: now + this.config.ttl,\n createdAt: now,\n accessCount: 0,\n lastAccessedAt: now\n };\n this.matchCache.set(path, item);\n // 检查是否需要淘汰\n this.evictLRU();\n }\n /**\n * 清空所有缓存\n */ clear() {\n this.cache.clear();\n this.matchCache.clear();\n this.stats = {\n transformHits: 0,\n transformMisses: 0,\n matchHits: 0,\n matchMisses: 0\n };\n logger.debug('路由缓存已清空');\n }\n /**\n * 销毁缓存实例并释放资源\n */ destroy() {\n this.clear();\n if (this.cleanupTimer) {\n clearInterval(this.cleanupTimer);\n this.cleanupTimer = null;\n }\n }\n /**\n * 获取缓存统计信息\n */ getStats() {\n const totalHits = this.stats.transformHits + this.stats.matchHits;\n const totalAccess = totalHits + this.stats.transformMisses + this.stats.matchMisses;\n const hitRate = totalAccess > 0 ? totalHits / totalAccess : 0;\n return {\n transformCacheSize: this.cache.size,\n matchCacheSize: this.matchCache.size,\n totalSize: this.cache.size + this.matchCache.size,\n hitRate\n };\n }\n constructor(config = {}){\n _define_property(this, \"cache\", new Map());\n _define_property(this, \"matchCache\", new Map());\n _define_property(this, \"config\", void 0);\n _define_property(this, \"persistenceEnabled\", false);\n _define_property(this, \"cleanupTimer\", null);\n _define_property(this, \"stats\", {\n transformHits: 0,\n transformMisses: 0,\n matchHits: 0,\n matchMisses: 0\n });\n this.config = {\n maxSize: config.maxSize ?? 50,\n ttl: config.ttl ?? 5 * 60 * 1000,\n enablePersistence: config.enablePersistence ?? false,\n persistenceKeyPrefix: config.persistenceKeyPrefix ?? 'router_cache_'\n };\n // 初始化持久化缓存\n if (this.config.enablePersistence && typeof window !== 'undefined' && 'indexedDB' in window) {\n this.initPersistence();\n }\n // 定期清理过期缓存\n this.startCleanupInterval();\n }\n}\n/**\n * 获取路由缓存管理器单例\n */ let routeCacheInstance = null;\nexport function getRouteCache(config) {\n if (!routeCacheInstance) {\n routeCacheInstance = new RouteCache(config);\n }\n return routeCacheInstance;\n}\n\n//# sourceMappingURL=RouteCache.js.map","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 */ import { logger } from \"@vlian/logger\";\n/**\n * 预加载策略\n */ export var PreloadStrategy = /*#__PURE__*/ function(PreloadStrategy) {\n /**\n * 不预加载\n */ PreloadStrategy[\"NONE\"] = \"none\";\n /**\n * 预加载当前路由的下一级路由\n */ PreloadStrategy[\"NEXT_LEVEL\"] = \"next-level\";\n /**\n * 预加载所有路由\n */ PreloadStrategy[\"ALL\"] = \"all\";\n /**\n * 预加载可见路由(根据路由配置的优先级)\n */ PreloadStrategy[\"VISIBLE\"] = \"visible\";\n return PreloadStrategy;\n}({});\n/**\n * 路由预加载管理器\n */ export class RoutePreloader {\n /**\n * 更新预加载配置\n */ updateConfig(config = {}) {\n this.config = {\n strategy: config.strategy ?? \"none\",\n delay: config.delay ?? 1000,\n priorityThreshold: config.priorityThreshold ?? 10,\n timeout: config.timeout ?? 5000\n };\n }\n shouldRegister(priority) {\n if (this.config.strategy === \"none\") {\n return false;\n }\n if (this.config.strategy === \"visible\" && priority > this.config.priorityThreshold) {\n return false;\n }\n return true;\n }\n registerTask(key, importFn, routeName, priority) {\n if (!this.shouldRegister(priority)) {\n return;\n }\n this.tasks.set(key, {\n importFn,\n routeName,\n priority,\n status: 'pending'\n });\n }\n /**\n * 注册路由用于预加载\n */ registerRoute(route) {\n if (!route.page && !route.layout) {\n return;\n }\n const priority = route.handle?.order ?? 999;\n // 注册页面组件\n if (route.page && typeof route.page === 'function') {\n this.registerTask(`${route.name}_page`, route.page, route.name, priority);\n }\n // 注册布局组件\n if (route.layout && typeof route.layout === 'function') {\n this.registerTask(`${route.name}_layout`, route.layout, route.name, priority);\n }\n // 递归注册子路由\n if (route.children) {\n route.children.forEach((child)=>this.registerRoute(child));\n }\n }\n /**\n * 注册多个路由\n */ registerRoutes(routes, resolvers) {\n const priorityByPath = new Map();\n const nameByPath = new Map();\n const collectPriority = (route)=>{\n const priority = route.handle?.order ?? 999;\n const routeName = route.name;\n const record = (value)=>{\n if (typeof value !== 'string') {\n return;\n }\n if (!priorityByPath.has(value) || (priorityByPath.get(value) ?? 999) > priority) {\n priorityByPath.set(value, priority);\n nameByPath.set(value, routeName);\n }\n };\n record(route.page);\n record(route.layout);\n record(route.error ?? route.errors);\n record(route.loading);\n route.children?.forEach(collectPriority);\n };\n routes.forEach(collectPriority);\n routes.forEach((route)=>this.registerRoute(route));\n if (!resolvers) {\n return;\n }\n const registerResolverMap = (map, type)=>{\n for (const [path, importFn] of map.entries()){\n const routeName = nameByPath.get(path) ?? path;\n const priority = priorityByPath.get(path) ?? 999;\n this.registerTask(`${routeName}_${type}_${path}`, importFn, routeName, priority);\n }\n };\n registerResolverMap(resolvers.pages, 'page');\n registerResolverMap(resolvers.layouts, 'layout');\n registerResolverMap(resolvers.errors, 'error');\n registerResolverMap(resolvers.loadings, 'loading');\n }\n /**\n * 预加载指定路由\n */ async preloadRoute(routeName) {\n const tasks = Array.from(this.tasks.values()).filter((task)=>task.routeName === routeName && task.status === 'pending');\n if (tasks.length === 0) {\n return;\n }\n await Promise.all(tasks.map((task)=>this.preloadTask(task)));\n }\n /**\n * 预加载任务\n */ async preloadTask(task) {\n if (task.status !== 'pending') {\n return;\n }\n task.status = 'loading';\n task.startTime = Date.now();\n let timeoutId = null;\n try {\n // 设置超时\n const timeoutPromise = new Promise((_, reject)=>{\n timeoutId = setTimeout(()=>reject(new Error('预加载超时')), this.config.timeout);\n });\n // 执行预加载\n await Promise.race([\n task.importFn(),\n timeoutPromise\n ]);\n task.status = 'loaded';\n const duration = Date.now() - (task.startTime || 0);\n logger.debug(`路由组件预加载成功: ${task.routeName} (${duration}ms)`);\n } catch (error) {\n task.status = 'failed';\n logger.warn(`路由组件预加载失败: ${task.routeName}`, error);\n } finally{\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n }\n }\n /**\n * 开始预加载(根据策略)\n */ startPreload() {\n if (this.config.strategy === \"none\") {\n return;\n }\n this.stopPreload();\n // 延迟预加载,避免影响初始渲染\n this.preloadTimer = setTimeout(()=>{\n const browserWindow = typeof window !== 'undefined' ? window : undefined;\n if (browserWindow?.requestIdleCallback) {\n this.idleHandle = browserWindow.requestIdleCallback(()=>{\n this.executePreload();\n });\n return;\n }\n this.executePreload();\n }, this.config.delay);\n }\n /**\n * 执行预加载\n */ async executePreload() {\n const tasks = Array.from(this.tasks.values()).filter((task)=>task.status === 'pending').sort((a, b)=>a.priority - b.priority);\n if (tasks.length === 0) {\n return;\n }\n logger.debug(`开始预加载 ${tasks.length} 个路由组件`);\n // 根据策略决定预加载哪些任务\n let tasksToPreload = [];\n switch(this.config.strategy){\n case \"all\":\n tasksToPreload = tasks;\n break;\n case \"next-level\":\n // 只预加载优先级最低的(最可能访问的)\n tasksToPreload = tasks.slice(0, Math.min(5, tasks.length));\n break;\n case \"visible\":\n tasksToPreload = tasks.filter((task)=>task.priority <= this.config.priorityThreshold);\n break;\n default:\n return;\n }\n // 并行预加载(限制并发数)\n const concurrency = 3;\n for(let i = 0; i < tasksToPreload.length; i += concurrency){\n const batch = tasksToPreload.slice(i, i + concurrency);\n await Promise.all(batch.map((task)=>this.preloadTask(task)));\n }\n logger.debug('路由组件预加载完成');\n }\n /**\n * 停止预加载\n */ stopPreload() {\n const browserWindow = typeof window !== 'undefined' ? window : undefined;\n if (this.preloadTimer) {\n clearTimeout(this.preloadTimer);\n this.preloadTimer = null;\n }\n if (this.idleHandle !== null && browserWindow?.cancelIdleCallback) {\n browserWindow.cancelIdleCallback(this.idleHandle);\n this.idleHandle = null;\n }\n }\n /**\n * 清空所有任务\n */ clear() {\n this.tasks.clear();\n this.stopPreload();\n logger.debug('路由预加载任务已清空');\n }\n /**\n * 获取预加载统计信息\n */ getStats() {\n const stats = {\n total: this.tasks.size,\n pending: 0,\n loading: 0,\n loaded: 0,\n failed: 0\n };\n for (const task of this.tasks.values()){\n stats[task.status]++;\n }\n return stats;\n }\n constructor(config = {}){\n _define_property(this, \"tasks\", new Map());\n _define_property(this, \"config\", void 0);\n _define_property(this, \"preloadTimer\", null);\n _define_property(this, \"idleHandle\", null);\n this.config = {\n strategy: config.strategy ?? \"none\",\n delay: config.delay ?? 1000,\n priorityThreshold: config.priorityThreshold ?? 10,\n timeout: config.timeout ?? 5000\n };\n }\n}\n/**\n * 获取路由预加载管理器单例\n */ let routePreloaderInstance = null;\nexport function getRoutePreloader(config) {\n if (!routePreloaderInstance) {\n routePreloaderInstance = new RoutePreloader(config);\n }\n return routePreloaderInstance;\n}\n\n//# sourceMappingURL=RoutePreloader.js.map","/**\n * 路由插件类型定义\n */ /**\n * 插件生命周期阶段\n */ export var PluginLifecycleStage = /*#__PURE__*/ function(PluginLifecycleStage) {\n /**\n * 插件注册阶段\n */ PluginLifecycleStage[\"REGISTER\"] = \"register\";\n /**\n * 路由初始化前\n */ PluginLifecycleStage[\"BEFORE_INIT\"] = \"before-init\";\n /**\n * 路由初始化后\n */ PluginLifecycleStage[\"AFTER_INIT\"] = \"after-init\";\n /**\n * 路由转换前\n */ PluginLifecycleStage[\"BEFORE_TRANSFORM\"] = \"before-transform\";\n /**\n * 路由转换后\n */ PluginLifecycleStage[\"AFTER_TRANSFORM\"] = \"after-transform\";\n /**\n * 路由匹配前\n */ PluginLifecycleStage[\"BEFORE_MATCH\"] = \"before-match\";\n /**\n * 路由匹配后\n */ PluginLifecycleStage[\"AFTER_MATCH\"] = \"after-match\";\n /**\n * 插件销毁阶段\n */ PluginLifecycleStage[\"DESTROY\"] = \"destroy\";\n return PluginLifecycleStage;\n}({});\n\n//# sourceMappingURL=types.js.map","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 */ import { logger } from \"@vlian/logger\";\nimport { PluginLifecycleStage } from \"./types\";\n/**\n * 路由插件管理器\n */ export class RouterPluginManager {\n /**\n * 注册插件\n * \n * @param plugin - 插件实例\n * @param options - 注册选项\n * @returns 取消注册函数\n */ register(plugin, options = {}) {\n // 验证插件\n if (!plugin.name) {\n throw new Error('插件必须提供名称');\n }\n // 检查是否已存在\n if (this.plugins.has(plugin.name) && !options.overwrite) {\n throw new Error(`插件 \"${plugin.name}\" 已存在`);\n }\n // 设置默认值\n const pluginWithDefaults = {\n priority: 100,\n enabled: true,\n ...plugin\n };\n // 检查依赖\n if (pluginWithDefaults.dependencies) {\n const missingDeps = pluginWithDefaults.dependencies.filter((dep)=>!this.plugins.has(dep));\n if (missingDeps.length > 0) {\n throw new Error(`插件 \"${plugin.name}\" 缺少依赖: ${missingDeps.join(', ')}`);\n }\n }\n // 注册插件\n this.plugins.set(plugin.name, {\n plugin: pluginWithDefaults,\n status: 'registered',\n registeredAt: Date.now()\n });\n logger.debug(`路由插件已注册: ${plugin.name}`);\n // 调用注册钩子\n if (pluginWithDefaults.hooks?.onRegister) {\n try {\n const context = {\n config: {},\n meta: {\n stage: PluginLifecycleStage.REGISTER\n }\n };\n pluginWithDefaults.hooks.onRegister(context);\n } catch (error) {\n logger.error(`插件注册钩子执行失败: ${plugin.name}`, error);\n }\n }\n // 返回取消注册函数\n return ()=>{\n this.unregister(plugin.name);\n };\n }\n /**\n * 批量注册插件\n * \n * @param plugins - 插件数组\n * @param options - 注册选项\n */ registerBatch(plugins, options = {}) {\n // 按依赖关系排序\n const sortedPlugins = this.sortByDependencies(plugins);\n sortedPlugins.forEach((plugin)=>{\n this.register(plugin, options);\n });\n }\n /**\n * 按依赖关系排序插件(拓扑排序)\n */ sortByDependencies(plugins) {\n const sorted = [];\n const visited = new Set();\n const visiting = new Set();\n const visit = (plugin)=>{\n if (visiting.has(plugin.name || '')) {\n throw new Error(`检测到循环依赖: ${plugin.name}`);\n }\n if (visited.has(plugin.name || '')) {\n return;\n }\n visiting.add(plugin.name || '');\n // 先访问依赖\n if (plugin.dependencies) {\n plugin.dependencies.forEach((depName)=>{\n const dep = plugins.find((p)=>p.name === depName);\n if (dep) {\n visit(dep);\n }\n });\n }\n visiting.delete(plugin.name || '');\n visited.add(plugin.name || '');\n sorted.push(plugin);\n };\n plugins.forEach((plugin)=>{\n if (!visited.has(plugin.name || '')) {\n visit(plugin);\n }\n });\n return sorted;\n }\n /**\n * 取消注册插件\n * \n * @param name - 插件名称\n */ unregister(name) {\n const registration = this.plugins.get(name);\n if (!registration) {\n return;\n }\n // 调用销毁钩子\n if (registration.plugin.hooks?.onDestroy) {\n try {\n const context = {\n config: {},\n meta: {\n stage: PluginLifecycleStage.DESTROY\n }\n };\n registration.plugin.hooks.onDestroy(context);\n } catch (error) {\n logger.error(`插件销毁钩子执行失败: ${name}`, error);\n }\n }\n this.plugins.delete(name);\n logger.debug(`路由插件已取消注册: ${name}`);\n }\n /**\n * 执行插件钩子\n * \n * @param stage - 生命周期阶段\n * @param context - 插件上下文\n */ async executeHooks(stage, context) {\n // 获取启用的插件并按优先级排序\n const enabledPlugins = Array.from(this.plugins.values()).filter((reg)=>reg.plugin.enabled !== false).sort((a, b)=>(a.plugin.priority || 100) - (b.plugin.priority || 100));\n // 根据阶段选择钩子\n const hookMap = {\n [PluginLifecycleStage.REGISTER]: 'onRegister',\n [PluginLifecycleStage.BEFORE_INIT]: 'onBeforeInit',\n [PluginLifecycleStage.AFTER_INIT]: 'onAfterInit',\n [PluginLifecycleStage.BEFORE_TRANSFORM]: 'onBeforeTransform',\n [PluginLifecycleStage.AFTER_TRANSFORM]: 'onAfterTransform',\n [PluginLifecycleStage.BEFORE_MATCH]: 'onBeforeMatch',\n [PluginLifecycleStage.AFTER_MATCH]: 'onAfterMatch',\n [PluginLifecycleStage.DESTROY]: 'onDestroy'\n };\n const hookName = hookMap[stage];\n if (!hookName) {\n return;\n }\n // 执行钩子\n for (const registration of enabledPlugins){\n const hook = registration.plugin.hooks?.[hookName];\n if (hook) {\n try {\n await hook(context);\n } catch (error) {\n logger.error(`插件钩子执行失败: ${registration.plugin.name}.${hookName}`, error);\n }\n }\n }\n }\n /**\n * 获取插件\n * \n * @param name - 插件名称\n * @returns 插件实例,如果不存在返回 undefined\n */ getPlugin(name) {\n return this.plugins.get(name)?.plugin;\n }\n /**\n * 获取所有插件\n * \n * @returns 插件数组\n */ getAllPlugins() {\n return Array.from(this.plugins.values()).map((reg)=>reg.plugin);\n }\n /**\n * 获取启用的插件\n * \n * @returns 启用的插件数组\n */ getEnabledPlugins() {\n return Array.from(this.plugins.values()).filter((reg)=>reg.plugin.enabled !== false).map((reg)=>reg.plugin);\n }\n /**\n * 清空所有插件\n */ clear() {\n // 调用所有插件的销毁钩子\n for (const [name, registration] of this.plugins.entries()){\n if (registration.plugin.hooks?.onDestroy) {\n try {\n const context = {\n config: {},\n meta: {\n stage: PluginLifecycleStage.DESTROY\n }\n };\n registration.plugin.hooks.onDestroy(context);\n } catch (error) {\n logger.error(`插件销毁钩子执行失败: ${name}`, error);\n }\n }\n }\n this.plugins.clear();\n logger.debug('所有路由插件已清空');\n }\n /**\n * 获取插件数量\n * \n * @returns 插件数量\n */ getCount() {\n return this.plugins.size;\n }\n constructor(){\n _define_property(this, \"plugins\", new Map());\n }\n}\n/**\n * 获取路由插件管理器单例\n */ let pluginManagerInstance = null;\nexport function getRouterPluginManager() {\n if (!pluginManagerInstance) {\n pluginManagerInstance = new RouterPluginManager();\n }\n return pluginManagerInstance;\n}\n\n//# sourceMappingURL=RouterPluginManager.js.map","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 */ import { getMonitoring } from \"@vlian/monitoring\";\nimport { logger } from \"@vlian/logger\";\n/**\n * 路由监控服务\n */ export class RouterMonitoring {\n /**\n * 记录路由访问\n */ trackRouteAccess(to, from, success = true, error) {\n if (!this.config.enabled || !this.config.trackAccess) {\n return;\n }\n // 采样检查\n if (Math.random() > this.config.sampleRate) {\n return;\n }\n const record = {\n path: to.path,\n name: to.meta?.name,\n timestamp: Date.now(),\n from: from?.path,\n success,\n error: error?.message\n };\n // 如果有当前路由,计算持续时间\n if (this.currentRoute && this.currentRouteStartTime > 0) {\n record.duration = Date.now() - this.currentRouteStartTime;\n }\n this.accessRecords.push(record);\n // 限制记录数量\n if (this.accessRecords.length > this.config.maxRecords) {\n this.accessRecords.shift();\n }\n // 上报到监控服务\n this.monitoringService.trackEvent('route_access', {\n path: to.path,\n name: to.meta?.name,\n success,\n error: error?.message\n });\n // 更新当前路由\n this.currentRoute = to;\n this.currentRouteStartTime = Date.now();\n logger.debug('路由访问已记录', record);\n }\n /**\n * 记录路由性能指标\n */ trackRoutePerformance(routeName, metrics) {\n if (!this.config.enabled || !this.config.trackPerformance) {\n return;\n }\n // 采样检查\n if (Math.random() > this.config.sampleRate) {\n return;\n }\n const routeMetrics = this.performanceMetrics.get(routeName) || [];\n routeMetrics.push(metrics);\n // 限制记录数量\n if (routeMetrics.length > 100) {\n routeMetrics.shift();\n }\n this.performanceMetrics.set(routeName, routeMetrics);\n // 上报到监控服务\n this.monitoringService.reportPerformance({\n [`route_${routeName}_match`]: metrics.matchTime || 0,\n [`route_${routeName}_load`]: metrics.loadTime || 0,\n [`route_${routeName}_render`]: metrics.renderTime || 0,\n [`route_${routeName}_total`]: metrics.totalTime || 0\n });\n logger.debug(`路由性能指标已记录: ${routeName}`, metrics);\n }\n /**\n * 记录路由错误\n */ trackRouteError(error, context) {\n if (!this.config.enabled || !this.config.trackErrors) {\n return;\n }\n // 采样检查\n if (Math.random() > this.config.sampleRate) {\n return;\n }\n // 上报到监控服务\n this.monitoringService.captureError(error, {\n type: 'router',\n ...context\n });\n logger.error('路由错误已记录', error, context);\n }\n /**\n * 获取路由访问统计\n */ getAccessStats() {\n const stats = {\n total: this.accessRecords.length,\n success: 0,\n failed: 0,\n byPath: {},\n byName: {},\n averageDuration: 0\n };\n let totalDuration = 0;\n let durationCount = 0;\n for (const record of this.accessRecords){\n if (record.success) {\n stats.success++;\n } else {\n stats.failed++;\n }\n stats.byPath[record.path] = (stats.byPath[record.path] || 0) + 1;\n if (record.name) {\n stats.byName[record.name] = (stats.byName[record.name] || 0) + 1;\n }\n if (record.duration) {\n totalDuration += record.duration;\n durationCount++;\n }\n }\n stats.averageDuration = durationCount > 0 ? totalDuration / durationCount : 0;\n return stats;\n }\n /**\n * 获取路由性能统计\n */ getPerformanceStats() {\n const stats = {};\n for (const [routeName, metrics] of this.performanceMetrics.entries()){\n let totalMatchTime = 0;\n let totalLoadTime = 0;\n let totalRenderTime = 0;\n let totalTotalTime = 0;\n let count = 0;\n for (const metric of metrics){\n if (metric.matchTime) {\n totalMatchTime += metric.matchTime;\n }\n if (metric.loadTime) {\n totalLoadTime += metric.loadTime;\n }\n if (metric.renderTime) {\n totalRenderTime += metric.renderTime;\n }\n if (metric.totalTime) {\n totalTotalTime += metric.totalTime;\n }\n count++;\n }\n stats[routeName] = {\n count,\n averageMatchTime: count > 0 ? totalMatchTime / count : 0,\n averageLoadTime: count > 0 ? totalLoadTime / count : 0,\n averageRenderTime: count > 0 ? totalRenderTime / count : 0,\n averageTotalTime: count > 0 ? totalTotalTime / count : 0\n };\n }\n return stats;\n }\n /**\n * 清空所有记录\n */ clear() {\n this.accessRecords = [];\n this.performanceMetrics.clear();\n logger.debug('路由监控记录已清空');\n }\n /**\n * 获取监控报告\n */ getReport() {\n return {\n access: this.getAccessStats(),\n performance: this.getPerformanceStats(),\n timestamp: Date.now()\n };\n }\n constructor(config = {}){\n _define_property(this, \"accessRecords\", []);\n _define_property(this, \"performanceMetrics\", new Map());\n _define_property(this, \"config\", void 0);\n _define_property(this, \"monitoringService\", getMonitoring());\n _define_property(this, \"currentRouteStartTime\", 0);\n _define_property(this, \"currentRoute\", void 0);\n this.config = {\n enabled: config.enabled ?? true,\n trackAccess: config.trackAccess ?? true,\n trackPerformance: config.trackPerformance ?? true,\n trackErrors: config.trackErrors ?? true,\n maxRecords: config.maxRecords ?? 1000,\n sampleRate: config.sampleRate ?? 1.0\n };\n }\n}\n/**\n * 获取路由监控服务单例\n */ let routerMonitoringInstance = null;\nexport function getRouterMonitoring(config) {\n if (!routerMonitoringInstance) {\n routerMonitoringInstance = new RouterMonitoring(config);\n }\n return routerMonitoringInstance;\n}\n\n//# sourceMappingURL=RouterMonitoring.js.map","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 */ import { logger } from \"@vlian/logger\";\nimport { RouterError, RouterErrorCode } from \"../errors\";\n/**\n * 路由适配器管理器\n */ export class AdapterManager {\n /**\n * 注册适配器\n * \n * @param registration - 适配器注册信息\n * @returns 取消注册函数\n */ register(registration) {\n // 验证适配器\n if (!registration.name) {\n throw new Error('适配器必须提供名称');\n }\n if (!registration.factory || typeof registration.factory !== 'function') {\n throw new Error('适配器必须提供工厂函数');\n }\n // 设置默认值\n const adapterRegistration = {\n priority: 100,\n enabled: true,\n ...registration\n };\n // 注册适配器\n this.adapters.set(registration.name, adapterRegistration);\n logger.debug(`路由适配器已注册: ${registration.name}`);\n // 如果没有默认适配器,设置为第一个注册的适配器\n if (!this.defaultAdapterName) {\n this.defaultAdapterName = registration.name;\n }\n // 返回取消注册函数\n return ()=>{\n this.unregister(registration.name);\n };\n }\n /**\n * 批量注册适配器\n * \n * @param registrations - 适配器注册信息数组\n */ registerBatch(registrations) {\n registrations.forEach((registration)=>this.register(registration));\n }\n /**\n * 取消注册适配器\n * \n * @param name - 适配器名称\n */ unregister(name) {\n if (this.adapters.has(name)) {\n this.adapters.delete(name);\n logger.debug(`路由适配器已取消注册: ${name}`);\n // 如果取消的是默认适配器,重置默认适配器\n if (this.defaultAdapterName === name) {\n const firstAdapter = Array.from(this.adapters.keys())[0];\n this.defaultAdapterName = firstAdapter || null;\n }\n }\n }\n /**\n * 创建适配器实例\n * \n * @param name - 适配器名称(可选,使用默认适配器)\n * @param config - 适配器配置\n * @returns 适配器实例\n */ async createAdapter(config, name) {\n const adapterName = name || this.defaultAdapterName;\n if (!adapterName) {\n throw new RouterError('没有可用的路由适配器', RouterErrorCode.ROUTER_NOT_INITIALIZED);\n }\n const registration = this.adapters.get(adapterName);\n if (!registration) {\n throw new RouterError(`路由适配器不存在: ${adapterName}`, RouterErrorCode.ROUTER_CONFIG_ERROR, undefined, undefined, {\n adapterName\n });\n }\n if (!registration.enabled) {\n throw new RouterError(`路由适配器已禁用: ${adapterName}`, RouterErrorCode.ROUTER_CONFIG_ERROR, undefined, undefined, {\n adapterName\n });\n }\n try {\n // 创建适配器实例\n const adapter = await registration.factory(config);\n // 验证适配器\n if (!adapter || typeof adapter.initialize !== 'function') {\n throw new Error('适配器实例无效');\n }\n // 初始化适配器\n await adapter.initialize(config);\n logger.info(`路由适配器已创建并初始化: ${adapterName}`);\n return adapter;\n } catch (error) {\n logger.error(`创建路由适配器失败: ${adapterName}`, error);\n const errorContext = {\n adapterName\n };\n if (error instanceof Error) {\n errorContext.originalError = error;\n }\n throw new RouterError(`创建路由适配器失败: ${adapterName}`, RouterErrorCode.ROUTER_CONFIG_ERROR, undefined, error instanceof Error ? error : undefined, errorContext);\n }\n }\n /**\n * 设置当前适配器\n * \n * @param adapter - 适配器实例\n */ setCurrentAdapter(adapter) {\n // 销毁旧的适配器\n if (this.currentAdapter && this.currentAdapter.destroy) {\n try {\n this.currentAdapter.destroy();\n } catch (error) {\n logger.warn('销毁旧适配器失败', error);\n }\n }\n this.currentAdapter = adapter;\n logger.debug(`当前路由适配器已设置: ${adapter.name}`);\n }\n /**\n * 获取当前适配器\n * \n * @returns 当前适配器实例,如果不存在返回 null\n */ getCurrentAdapter() {\n return this.currentAdapter;\n }\n /**\n * 设置默认适配器\n * \n * @param name - 适配器名称\n */ setDefaultAdapter(name) {\n if (!this.adapters.has(name)) {\n throw new Error(`适配器不存在: ${name}`);\n }\n this.defaultAdapterName = name;\n logger.debug(`默认路由适配器已设置: ${name}`);\n }\n /**\n * 获取默认适配器名称\n * \n * @returns 默认适配器名称\n */ getDefaultAdapterName() {\n return this.defaultAdapterName;\n }\n /**\n * 获取所有适配器\n * \n * @returns 适配器注册信息数组\n */ getAllAdapters() {\n return Array.from(this.adapters.values());\n }\n /**\n * 获取启用的适配器\n * \n * @returns 启用的适配器注册信息数组\n */ getEnabledAdapters() {\n return Array.from(this.adapters.values()).filter((a)=>a.enabled !== false);\n }\n /**\n * 获取适配器\n * \n * @param name - 适配器名称\n * @returns 适配器注册信息,如果不存在返回 undefined\n */ getAdapter(name) {\n return this.adapters.get(name);\n }\n /**\n * 清空所有适配器\n */ clear() {\n // 销毁当前适配器\n if (this.currentAdapter && this.currentAdapter.destroy) {\n try {\n this.currentAdapter.destroy();\n } catch (error) {\n logger.warn('销毁适配器失败', error);\n }\n }\n this.adapters.clear();\n this.currentAdapter = null;\n this.defaultAdapterName = null;\n logger.debug('所有路由适配器已清空');\n }\n /**\n * 获取适配器数量\n * \n * @returns 适配器数量\n */ getCount() {\n return this.adapters.size;\n }\n constructor(){\n _define_property(this, \"adapters\", new Map());\n _define_property(this, \"currentAdapter\", null);\n _define_property(this, \"defaultAdapterName\", null);\n }\n}\n/**\n * 获取路由适配器管理器单例\n */ let adapterManagerInstance = null;\nexport function getAdapterManager() {\n if (!adapterManagerInstance) {\n adapterManagerInstance = new AdapterManager();\n }\n return adapterManagerInstance;\n}\n\n//# sourceMappingURL=AdapterManager.js.map","/**\n * React Router 适配器实现\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 { createBrowserRouter, createHashRouter, createMemoryRouter } from \"react-router-dom\";\nimport { transformRoutesToReactRoutes } from \"../../utils/adapters/react-router/transform\";\nimport { transformRoutes } from \"../../utils/transform\";\nimport { logger } from \"@vlian/logger\";\n/**\n * React Router 适配器\n */ export class ReactRouterAdapter {\n /**\n * 初始化适配器\n */ async initialize(config) {\n // 转换路由配置\n const transformResult = await transformRoutes(config.routes);\n const reactRoutes = await transformRoutesToReactRoutes(transformResult.routes, transformResult, config.defaultRouteErrorComponent, config.defaultRouteLoadingComponent, Boolean(config.options?.hydrationData));\n // 创建路由实例\n const mode = config.mode || 'browser';\n if (mode === 'browser') {\n this.router = createBrowserRouter(reactRoutes, config.options);\n } else if (mode === 'hash') {\n this.router = createHashRouter(reactRoutes, config.options);\n } else if (mode === 'memory') {\n this.router = createMemoryRouter(reactRoutes, config.options);\n } else {\n throw new Error(`不支持的路由模式: ${mode}`);\n }\n logger.debug('React Router 适配器初始化完成');\n }\n /**\n * 挂载到应用实例\n */ mount(_app) {\n if (!this.router) {\n throw new Error('适配器未初始化');\n }\n // React Router 适配器通过 RouterProvider 挂载\n // 实际的挂载逻辑在 renderApp 中处理\n logger.debug('React Router 适配器已挂载');\n }\n /**\n * 导航到指定路径\n */ navigate(to, options) {\n if (!this.router) {\n throw new Error('适配器未初始化');\n }\n if (options?.replace) {\n this.router.navigate(to, {\n replace: true,\n state: options.state\n });\n } else {\n this.router.navigate(to, {\n state: options?.state\n });\n }\n }\n /**\n * 获取当前路由信息\n */ getCurrentRoute() {\n if (!this.router) {\n throw new Error('适配器未初始化');\n }\n const state = this.router.state;\n const location = state.location;\n // 解析查询参数\n const query = {};\n if (location.search) {\n const params = new URLSearchParams(location.search);\n params.forEach((value, key)=>{\n query[key] = value;\n });\n }\n return {\n path: location.pathname + location.hash,\n query,\n params: location.state\n };\n }\n /**\n * 获取路由实例(用于 RouterProvider)\n */ getRouter() {\n return this.router;\n }\n /**\n * 销毁适配器\n */ destroy() {\n this.router = null;\n logger.debug('React Router 适配器已销毁');\n }\n constructor(){\n _define_property(this, \"name\", 'react-router');\n _define_property(this, \"version\", '6.0.0');\n _define_property(this, \"router\", null);\n }\n}\n/**\n * 创建 React Router 适配器工厂函数\n */ export function createReactRouterAdapter() {\n return (_config)=>{\n return new ReactRouterAdapter();\n };\n}\n\n//# sourceMappingURL=ReactRouterAdapter.js.map","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 { logger } from \"@vlian/logger\";\nimport { transformRoutes } from \"./utils/transform\";\nimport { transformRoutesToReactRoutes } from \"./utils/adapters/react-router/transform\";\nimport { createBrowserRouter, createHashRouter, createMemoryRouter, matchRoutes } from \"react-router-dom\";\nimport { RouterConfigValidator } from \"./validation\";\nimport { getRouterLifecycleManager } from \"./lifecycle\";\nimport { getRouterMiddlewareManager } from \"./middleware\";\nimport { RouterError, RouterErrorCode } from \"./errors\";\nimport { getRouteCache } from \"./performance/RouteCache\";\nimport { getRoutePreloader } from \"./performance/RoutePreloader\";\nimport { getRouterPluginManager, PluginLifecycleStage } from \"./plugin\";\nimport { getRouterMonitoring } from \"./monitoring\";\nimport { getAdapterManager } from \"./adapter\";\nimport { createReactRouterAdapter } from \"./adapter/react-router\";\nexport class RouterManager {\n /**\n * 获取单例实例\n */ static getInstance() {\n if (!RouterManager.instance) {\n RouterManager.instance = new RouterManager();\n }\n return RouterManager.instance;\n }\n /**\n * 初始化路由管理器\n * \n * @param config - 路由配置\n * @param _appInstance - 应用实例(保留用于兼容性,当前未使用)\n */ async initialize(config) {\n // 如果路由被禁用,直接返回\n if (config.enabled === false || config.enabled === 'disabled') {\n logger.info('路由系统已禁用');\n return;\n }\n // 配置验证(如果启用)\n if (config.enableValidation !== false) {\n try {\n RouterConfigValidator.validate(config);\n logger.debug('路由配置验证通过');\n } catch (error) {\n logger.error('路由配置验证失败', error);\n // 开发环境下抛出错误,生产环境下记录警告但继续执行\n if (process.env.NODE_ENV === 'development') {\n throw error;\n }\n }\n }\n // 执行插件钩子:路由初始化前\n await this.pluginManager.executeHooks(PluginLifecycleStage.BEFORE_INIT, {\n config\n });\n // 注册生命周期钩子\n if (config.hooks) {\n const lifecycleManager = getRouterLifecycleManager();\n lifecycleManager.register(config.hooks);\n logger.debug('路由生命周期钩子已注册');\n }\n // 转换数据(使用缓存)\n if (!config.routes) {\n throw new RouterError('路由配置不能为空', RouterErrorCode.ROUTER_CONFIG_ERROR);\n }\n // 更新预加载策略(默认关闭,按需懒加载)\n this.preloader.updateConfig(config.preload);\n this.preloader.clear();\n let result;\n const cacheKey = config.routes;\n const cachedResult = this.cache.get(cacheKey);\n if (cachedResult) {\n logger.debug('使用缓存的路由转换结果');\n result = cachedResult;\n } else {\n // 执行插件钩子:路由转换前\n await this.pluginManager.executeHooks(PluginLifecycleStage.BEFORE_TRANSFORM, {\n config\n });\n result = await transformRoutes(config.routes, config.transformOptions);\n // 执行插件钩子:路由转换后\n await this.pluginManager.executeHooks(PluginLifecycleStage.AFTER_TRANSFORM, {\n config,\n routes: result.routes\n });\n // 缓存转换结果\n this.cache.set(cacheKey, result);\n }\n const enableHydrateFallback = config.enableHydrateFallback ?? Boolean(config.options?.hydrationData);\n const reactRoutes = await transformRoutesToReactRoutes(result.routes, result, config.defaultRouteErrorComponent, config.defaultRouteLoadingComponent, enableHydrateFallback);\n // 注册路由到预加载器\n if (result.routes) {\n this.preloader.registerRoutes(result.routes, result);\n // 开始预加载\n this.preloader.startPreload();\n }\n await this.resolveInitialLazyRoutes(reactRoutes, !enableHydrateFallback);\n let routerInstance = null;\n if (config.mode === 'browser') {\n routerInstance = createBrowserRouter(reactRoutes, config.options);\n } else if (config.mode === 'hash') {\n routerInstance = createHashRouter(reactRoutes, config.options);\n } else if (config.mode === 'memory') {\n routerInstance = createMemoryRouter(reactRoutes, config.options);\n }\n if (!routerInstance) {\n throw new RouterError('路由模式不支持', RouterErrorCode.ROUTER_CONFIG_ERROR, undefined, undefined, {\n mode: config.mode\n });\n }\n // 只能在 initialize 方法中赋值\n this.router = routerInstance;\n this.initialized = true;\n // 执行插件钩子:路由初始化后\n await this.pluginManager.executeHooks(PluginLifecycleStage.AFTER_INIT, {\n config,\n routes: result.routes\n });\n // 记录监控:路由初始化完成\n const initialPath = typeof window !== 'undefined' ? `${window.location.pathname}${window.location.search}${window.location.hash}` : this.router?.state?.location?.pathname ?? '/';\n this.monitoring.trackRouteAccess({\n path: initialPath,\n meta: {\n name: 'router-init'\n }\n }, undefined, true);\n logger.info('路由管理器初始化完成');\n }\n /**\n * 预解析 lazy 路由,避免首屏或重定向链路长时间停留在 hydrate fallback。\n * resolveAll=true 时会在初始化阶段解析全部 lazy 路由。\n */ async resolveInitialLazyRoutes(routes, resolveAll = false) {\n if (typeof window === 'undefined') {\n return;\n }\n let targetRoutes = [];\n if (resolveAll) {\n const stack = [\n ...routes\n ];\n while(stack.length > 0){\n const current = stack.shift();\n if (!current) {\n continue;\n }\n targetRoutes.push(current);\n if (current.children && current.children.length > 0) {\n stack.push(...current.children);\n }\n }\n } else {\n const matches = matchRoutes(routes, window.location.pathname) ?? [];\n if (matches.length === 0) {\n return;\n }\n targetRoutes = matches.map((match)=>match.route);\n }\n await Promise.all(targetRoutes.map(async (route)=>{\n const lazy = route.lazy;\n if (typeof lazy !== 'function') {\n return;\n }\n try {\n const resolved = await lazy();\n Object.assign(route, resolved);\n delete route.lazy;\n } catch (error) {\n logger.warn('首屏路由懒加载预解析失败,回退到 Router 默认懒加载', error);\n }\n }));\n }\n /**\n * 获取路由实例\n * \n * @returns 路由实例,如果未初始化则返回 null\n */ getRouter() {\n return this.router;\n }\n /**\n * 检查是否已初始化\n * \n * @returns 如果已初始化返回 true,否则返回 false\n */ isInitialized() {\n return this.initialized;\n }\n /**\n * 销毁路由管理器\n */ destroy() {\n // 执行插件钩子:销毁\n this.pluginManager.executeHooks(PluginLifecycleStage.DESTROY, {\n config: {}\n });\n // 停止预加载\n this.preloader.stopPreload();\n this.router = null;\n this.initialized = false;\n // 清空生命周期钩子和中间件\n const lifecycleManager = getRouterLifecycleManager();\n lifecycleManager.clear();\n const middlewareManager = getRouterMiddlewareManager();\n middlewareManager.clear();\n logger.info('路由管理器已销毁');\n }\n /**\n * 获取路由缓存实例\n */ getCache() {\n return this.cache;\n }\n /**\n * 获取路由预加载器实例\n */ getPreloader() {\n return this.preloader;\n }\n /**\n * 获取路由插件管理器实例\n */ getPluginManager() {\n return this.pluginManager;\n }\n /**\n * 获取路由监控服务实例\n */ getMonitoring() {\n return this.monitoring;\n }\n constructor(){\n /**\n * 路由实例\n * 只能在 initialize 方法中赋值\n */ _define_property(this, \"router\", null);\n /**\n * 是否已初始化\n */ _define_property(this, \"initialized\", false);\n /**\n * 路由缓存实例\n */ _define_property(this, \"cache\", getRouteCache());\n /**\n * 路由预加载器实例\n */ _define_property(this, \"preloader\", getRoutePreloader());\n /**\n * 路由插件管理器实例\n */ _define_property(this, \"pluginManager\", getRouterPluginManager());\n /**\n * 路由监控服务实例\n */ _define_property(this, \"monitoring\", getRouterMonitoring());\n /**\n * 路由适配器管理器实例\n */ _define_property(this, \"adapterManager\", getAdapterManager());\n // 私有构造函数\n // 注册默认的 React Router 适配器\n this.adapterManager.register({\n name: 'react-router',\n factory: createReactRouterAdapter(),\n priority: 10\n });\n }\n}\n_define_property(RouterManager, \"instance\", null);\n/**\n * 获取路由管理器\n */ export function getRouterManager() {\n return RouterManager.getInstance();\n}\n\n//# sourceMappingURL=RouterManager.js.map","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 { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * 应用渲染模块\n * 负责渲染React应用\n */ import { createRoot } from \"react-dom/client\";\nimport { StrictMode, useMemo, useCallback, memo } from \"react\";\nimport { BasicLayout, DefaultApp, AppContextProvider } from \"../app\";\nimport { ErrorBoundary } from \"../error\";\nimport { InitializationErrorThrower } from \"../initialization\";\nimport { SplashScreen } from \"../splash\";\nimport { SecurityUtils } from \"@vlian/utils\";\nimport { getRouterManager } from \"../router/RouterManager\";\nimport { RouterProvider } from \"react-router-dom\";\nconst OptimizedAppContent = /*#__PURE__*/ memo(({ options, services, context, // securityConfig 用于未来扩展,当前暂不使用\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nsecurityConfig: _securityConfig })=>{\n // 优化:使用 useMemo 缓存初始语言计算\n const initialLocale = useMemo(()=>{\n return options.locale ? Object.keys(options.locale)[0] || 'zh-CN' : 'zh-CN';\n }, [\n options.locale\n ]);\n // 优化:使用 useMemo 缓存路由判断结果\n const shouldUseRouter = useMemo(()=>{\n const routerEnabled = options.router ? options.router.enabled !== false && options.router.enabled !== 'disabled' : false;\n if (!routerEnabled) {\n return false;\n }\n const routerManager = getRouterManager();\n const router = routerManager.getRouter();\n return router !== null;\n }, [\n options.router\n ]);\n // 优化:使用 useMemo 缓存路由实例\n const router = useMemo(()=>{\n if (!shouldUseRouter) {\n return null;\n }\n const routerManager = getRouterManager();\n return routerManager.getRouter();\n }, [\n shouldUseRouter\n ]);\n // 优化:使用 useCallback 缓存错误处理函数\n const handleError = useCallback((error)=>{\n services.monitoring.captureError(error);\n }, [\n services.monitoring\n ]);\n // 优化:使用 useMemo 缓存应用内容\n const appContent = useMemo(()=>{\n if (shouldUseRouter && router) {\n return /*#__PURE__*/ _jsx(RouterProvider, {\n router: router\n });\n }\n return options.app || /*#__PURE__*/ _jsx(DefaultApp, {});\n }, [\n shouldUseRouter,\n router,\n options.app\n ]);\n return /*#__PURE__*/ _jsxs(ErrorBoundary, {\n fallback: options.errorFallback,\n onError: handleError,\n children: [\n /*#__PURE__*/ _jsx(InitializationErrorThrower, {}),\n /*#__PURE__*/ _jsx(AppContextProvider, {\n initialTheme: options.theme,\n initialLocale: initialLocale,\n initialAntdConfig: options.uiProvider || options.antd,\n initialInitializationContext: context,\n stateManager: services.stateManager,\n antdApp: options.uiApp || options.antdApp,\n children: /*#__PURE__*/ _jsx(BasicLayout, {\n globalProvider: options.globalProvider,\n children: appContent\n })\n })\n ]\n });\n});\nOptimizedAppContent.displayName = 'OptimizedAppContent';\n/**\n * 应用渲染器\n */ export class AppRenderer {\n /**\n * 初始化渲染器\n *\n * @param container - React应用的挂载容器\n * @param rootOptions - React根节点配置选项\n */ initialize(container, rootOptions) {\n this.container = container;\n if (!this.root) {\n this.root = createRoot(container, rootOptions);\n }\n }\n /**\n * 渲染应用\n *\n * 优化:\n * 1. 默认启用安全防护(XSS防护)\n * 2. 优化组件渲染性能,使用 useMemo 缓存计算结果\n * 3. 将安全配置计算提取到初始化阶段\n *\n * @param options - 启动配置选项\n * @param services - 服务实例\n * @param context - 初始化上下文(可选)\n */ async renderApp(options, services, context) {\n if (!this.root) {\n throw new Error('渲染器未初始化,请先调用 initialize()');\n }\n // 优化:安全配置在初始化阶段计算(在 startApp 中预计算)\n // 这里只使用预计算的值,避免在渲染时重复计算\n const securityConfig = {\n enableXSSProtection: options.security?.enableXSSProtection ?? true,\n validateConfig: options.security?.validateConfig ?? true,\n sanitizeUserInput: options.security?.sanitizeUserInput ?? true,\n csrf: options.security?.csrf\n };\n // 优化:安全验证在初始化阶段完成,这里只进行必要的运行时检查\n // 如果启用了安全模式(默认启用),对配置进行验证\n if (securityConfig.enableXSSProtection && securityConfig.validateConfig) {\n // 异步验证配置,不阻塞渲染\n Promise.resolve().then(()=>{\n try {\n const configStr = JSON.stringify(options);\n const validation = SecurityUtils.validateInput(configStr);\n if (!validation.safe) {\n services.monitoring.captureError(new Error('配置项包含不安全内容'), {\n reason: validation.reason\n });\n }\n } catch (error) {\n // 忽略序列化错误(某些配置项可能包含不可序列化的内容)\n }\n });\n }\n // 初始化 CSRF 防护(如果启用,异步执行,不阻塞渲染)\n if (securityConfig.enableXSSProtection && securityConfig.csrf?.enabled !== false) {\n import(\"@vlian/csrf\").then(({ initCSRFManager })=>{\n initCSRFManager({\n headerName: securityConfig.csrf?.headerName,\n cookieName: securityConfig.csrf?.cookieName,\n getToken: securityConfig.csrf?.getToken,\n validateToken: securityConfig.csrf?.validateToken\n });\n }).catch((error)=>{\n // CSRF 初始化失败不影响应用启动,但记录警告\n if (process.env.NODE_ENV === 'development') {\n console.warn('CSRF 防护初始化失败:', error);\n }\n });\n }\n // 使用优化的应用内容组件,内部使用 useMemo 缓存计算结果\n this.root.render(/*#__PURE__*/ _jsx(StrictMode, {\n children: /*#__PURE__*/ _jsx(OptimizedAppContent, {\n options: options,\n services: services,\n context: context,\n securityConfig: securityConfig\n })\n }));\n }\n /**\n * 渲染启动页\n *\n * 注意:启动页不使用 RouterWrapper,因为启动页应该在路由系统之前渲染\n *\n * @param options - 启动配置选项\n * @param services - 服务实例\n * @param onComplete - 启动页完成回调\n */ renderSplashScreen(options, services, onComplete) {\n if (!this.root) {\n throw new Error('渲染器未初始化,请先调用 initialize()');\n }\n // 获取初始语言(从 locale 配置中推断,或使用默认值)\n const initialLocale = options.locale ? Object.keys(options.locale)[0] || 'zh-CN' : 'zh-CN';\n this.root.render(/*#__PURE__*/ _jsx(StrictMode, {\n children: /*#__PURE__*/ _jsxs(ErrorBoundary, {\n fallback: options.errorFallback,\n onError: (error)=>{\n services.monitoring.captureError(error);\n },\n children: [\n /*#__PURE__*/ _jsx(InitializationErrorThrower, {}),\n /*#__PURE__*/ _jsx(AppContextProvider, {\n initialTheme: options.theme,\n initialLocale: initialLocale,\n initialAntdConfig: options.uiProvider || options.antd,\n stateManager: services.stateManager,\n antdApp: options.uiApp || options.antdApp,\n children: /*#__PURE__*/ _jsx(BasicLayout, {\n globalProvider: options.globalProvider,\n children: /*#__PURE__*/ _jsx(SplashScreen, {\n options: options,\n onComplete: onComplete\n })\n })\n })\n ]\n })\n }));\n }\n /**\n * 渲染错误页面\n *\n * @param options - 启动配置选项\n * @param services - 服务实例\n * @param error - 错误信息\n */ renderError(options, services) {\n if (!this.root) {\n throw new Error('渲染器未初始化,请先调用 initialize()');\n }\n this.root.render(/*#__PURE__*/ _jsx(StrictMode, {\n children: /*#__PURE__*/ _jsxs(ErrorBoundary, {\n fallback: options.errorFallback,\n onError: (err)=>{\n services.monitoring.captureError(err);\n if (options.errorMonitor?.onError) {\n options.errorMonitor.onError(err);\n }\n },\n children: [\n /*#__PURE__*/ _jsx(InitializationErrorThrower, {}),\n /*#__PURE__*/ _jsx(\"div\", {\n children: \"框架启动失败\"\n })\n ]\n })\n }));\n }\n /**\n * 销毁渲染器\n */ destroy() {\n if (this.root) {\n this.root.unmount();\n this.root = null;\n }\n this.container = null;\n }\n /**\n * 获取容器\n */ getContainer() {\n return this.container;\n }\n constructor(){\n _define_property(this, \"root\", null);\n _define_property(this, \"container\", null);\n }\n}\n\n//# sourceMappingURL=renderApp.js.map","/**\n * 性能追踪模块\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 */ export const STARTUP_METRIC_UNITS = {\n /**\n * 毫秒单位\n */ ms: 'ms',\n /**\n * 无单位(分数)\n */ none: ''\n};\n/**\n * 性能追踪器\n */ export class PerformanceTracker {\n /**\n * 记录服务初始化耗时\n */ recordServiceInit(duration) {\n this.metrics.serviceInitDuration = duration;\n }\n /**\n * 记录初始化耗时\n */ recordInitialization(duration) {\n this.metrics.initializationDuration = duration;\n }\n /**\n * 记录首次渲染耗时\n */ recordFirstRender(duration) {\n this.metrics.firstRenderDuration = duration;\n }\n /**\n * 记录总启动耗时\n */ recordTotalStartup(duration) {\n this.metrics.totalStartupDuration = duration;\n }\n /**\n * 收集Web Vitals指标\n */ collectWebVitals() {\n if (typeof window === 'undefined') {\n return;\n }\n // 收集FCP(首次内容绘制)\n if ('PerformanceObserver' in window) {\n try {\n const fcpObserver = new PerformanceObserver((list)=>{\n for (const entry of list.getEntries()){\n if (entry.name === 'first-contentful-paint') {\n this.metrics.fcp = entry.startTime;\n this.report();\n }\n }\n });\n fcpObserver.observe({\n entryTypes: [\n 'paint'\n ]\n });\n } catch (e) {\n // 忽略错误\n }\n }\n // 收集LCP(最大内容绘制)\n if ('PerformanceObserver' in window) {\n try {\n const lcpObserver = new PerformanceObserver((list)=>{\n const entries = list.getEntries();\n const lastEntry = entries[entries.length - 1];\n this.metrics.lcp = lastEntry.startTime;\n this.report();\n });\n lcpObserver.observe({\n entryTypes: [\n 'largest-contentful-paint'\n ]\n });\n } catch (e) {\n // 忽略错误\n }\n }\n // 收集FID(首次输入延迟)\n if ('PerformanceObserver' in window) {\n try {\n const fidObserver = new PerformanceObserver((list)=>{\n for (const entry of list.getEntries()){\n // PerformanceEventTiming 类型检查\n if ('processingStart' in entry && 'startTime' in entry) {\n const eventEntry = entry;\n this.metrics.fid = eventEntry.processingStart - eventEntry.startTime;\n this.report();\n }\n }\n });\n fidObserver.observe({\n entryTypes: [\n 'first-input'\n ]\n });\n } catch (e) {\n // 忽略错误\n }\n }\n // 收集CLS(累积布局偏移)\n if ('PerformanceObserver' in window) {\n try {\n let clsValue = 0;\n const clsObserver = new PerformanceObserver((list)=>{\n for (const entry of list.getEntries()){\n if (!entry.hadRecentInput) {\n clsValue += entry.value;\n }\n }\n this.metrics.cls = clsValue;\n this.report();\n });\n clsObserver.observe({\n entryTypes: [\n 'layout-shift'\n ]\n });\n } catch (e) {\n // 忽略错误\n }\n }\n }\n /**\n * 上报性能指标\n */ report() {\n if (this.monitoring.reportPerformance) {\n this.monitoring.reportPerformance(this.metrics);\n }\n }\n /**\n * 获取所有指标\n */ getMetrics() {\n return {\n ...this.metrics\n };\n }\n /**\n * 获取总启动耗时\n */ getTotalDuration() {\n return performance.now() - this.startTime;\n }\n constructor(monitoring){\n _define_property(this, \"monitoring\", void 0);\n _define_property(this, \"metrics\", {});\n _define_property(this, \"startTime\", void 0);\n this.monitoring = monitoring;\n this.startTime = performance.now();\n }\n}\n\n//# sourceMappingURL=performanceTracker.js.map","/**\n * 应用实例管理模块\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 { AppRenderer } from \"./renderApp\";\nimport { PerformanceTracker } from \"./performanceTracker\";\n/**\n * 应用实例\n */ export class AppInstance {\n /**\n * 初始化应用实例\n * \n * @param container - React应用的挂载容器\n * @param services - 服务实例\n */ initialize(container, services) {\n if (this.initialized) {\n throw new Error(`应用实例 ${this.id} 已经初始化`);\n }\n if (this.destroyed) {\n throw new Error(`应用实例 ${this.id} 已销毁,无法重新初始化`);\n }\n this.services = services;\n this.renderer.initialize(container, this.options.rootOptions);\n this.performanceTracker = new PerformanceTracker(services.monitoring);\n this.performanceTracker.collectWebVitals();\n this.initialized = true;\n }\n /**\n * 获取渲染器\n */ getRenderer() {\n if (!this.initialized) {\n throw new Error(`应用实例 ${this.id} 未初始化`);\n }\n return this.renderer;\n }\n /**\n * 获取服务实例\n */ getServices() {\n if (!this.services) {\n throw new Error(`应用实例 ${this.id} 未初始化`);\n }\n return this.services;\n }\n /**\n * 获取性能追踪器\n */ getPerformanceTracker() {\n return this.performanceTracker;\n }\n /**\n * 获取事件总线\n */ getEventBus() {\n if (!this.services) {\n return null;\n }\n return this.services.eventBus;\n }\n /**\n * 获取启动配置\n */ getOptions() {\n return this.options;\n }\n /**\n * 是否已初始化\n */ isInitialized() {\n return this.initialized;\n }\n /**\n * 是否已销毁\n */ isDestroyed() {\n return this.destroyed;\n }\n /**\n * 销毁应用实例\n */ destroy() {\n if (this.destroyed) {\n return;\n }\n this.renderer.destroy();\n this.services = null;\n this.performanceTracker = null;\n this.destroyed = true;\n }\n constructor(id, options){\n /**\n * 实例ID\n */ _define_property(this, \"id\", void 0);\n /**\n * 应用渲染器\n */ _define_property(this, \"renderer\", void 0);\n /**\n * 服务实例\n */ _define_property(this, \"services\", null);\n /**\n * 性能追踪器\n */ _define_property(this, \"performanceTracker\", null);\n /**\n * 启动配置\n */ _define_property(this, \"options\", void 0);\n /**\n * 是否已初始化\n */ _define_property(this, \"initialized\", false);\n /**\n * 是否已销毁\n */ _define_property(this, \"destroyed\", false);\n this.id = id;\n this.options = options;\n this.renderer = new AppRenderer();\n }\n}\n/**\n * 应用实例管理器\n */ export class AppInstanceManager {\n /**\n * 获取单例实例\n */ static getInstance() {\n if (!AppInstanceManager.instance) {\n AppInstanceManager.instance = new AppInstanceManager();\n }\n return AppInstanceManager.instance;\n }\n /**\n * 创建应用实例\n * \n * @param id - 实例ID,如果不提供则自动生成\n * @param options - 启动配置选项\n * @returns 应用实例\n */ createInstance(id, options = {}) {\n const instanceId = id || `app-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\n if (this.instances.has(instanceId)) {\n throw new Error(`应用实例 ${instanceId} 已存在`);\n }\n const instance = new AppInstance(instanceId, options);\n this.instances.set(instanceId, instance);\n // 如果没有默认实例,设置为默认实例\n if (!this.defaultInstanceId) {\n this.defaultInstanceId = instanceId;\n }\n return instance;\n }\n /**\n * 获取应用实例\n * \n * @param id - 实例ID,如果不提供则返回默认实例\n * @returns 应用实例或undefined\n */ getInstance(id) {\n const instanceId = id || this.defaultInstanceId;\n if (!instanceId) {\n return undefined;\n }\n return this.instances.get(instanceId);\n }\n /**\n * 销毁应用实例\n * \n * @param id - 实例ID,如果不提供则销毁默认实例\n */ destroyInstance(id) {\n const instanceId = id || this.defaultInstanceId;\n if (!instanceId) {\n return;\n }\n const instance = this.instances.get(instanceId);\n if (instance) {\n instance.destroy();\n this.instances.delete(instanceId);\n // 如果销毁的是默认实例,重新设置默认实例\n if (this.defaultInstanceId === instanceId) {\n const remainingInstances = Array.from(this.instances.keys());\n this.defaultInstanceId = remainingInstances.length > 0 ? remainingInstances[0] : null;\n }\n }\n }\n /**\n * 获取所有实例\n */ getAllInstances() {\n return Array.from(this.instances.values());\n }\n /**\n * 设置默认实例\n * \n * @param id - 实例ID\n */ setDefaultInstance(id) {\n if (!this.instances.has(id)) {\n throw new Error(`应用实例 ${id} 不存在`);\n }\n this.defaultInstanceId = id;\n }\n /**\n * 获取默认实例ID\n */ getDefaultInstanceId() {\n return this.defaultInstanceId;\n }\n /**\n * 清空所有实例\n */ clear() {\n for (const instance of this.instances.values()){\n instance.destroy();\n }\n this.instances.clear();\n this.defaultInstanceId = null;\n }\n constructor(){\n _define_property(this, \"instances\", new Map());\n _define_property(this, \"defaultInstanceId\", null);\n // 私有构造函数\n }\n}\n_define_property(AppInstanceManager, \"instance\", null);\n/**\n * 获取应用实例管理器\n */ export function getAppInstanceManager() {\n return AppInstanceManager.getInstance();\n}\n\n//# sourceMappingURL=AppInstance.js.map","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 */ export var RuntimeEnvironment = /*#__PURE__*/ function(RuntimeEnvironment) {\n /**\n * 浏览器环境\n */ RuntimeEnvironment[\"BROWSER\"] = \"browser\";\n /**\n * 服务端渲染环境(SSR)\n */ RuntimeEnvironment[\"SSR\"] = \"ssr\";\n /**\n * 微前端容器环境\n */ RuntimeEnvironment[\"MICRO_FRONTEND\"] = \"micro-frontend\";\n /**\n * Node.js环境\n */ RuntimeEnvironment[\"NODE\"] = \"node\";\n /**\n * 未知环境\n */ RuntimeEnvironment[\"UNKNOWN\"] = \"unknown\";\n return RuntimeEnvironment;\n}({});\n/**\n * 环境检测器\n */ export class EnvironmentDetector {\n /**\n * 获取单例实例\n */ static getInstance() {\n if (!EnvironmentDetector.instance) {\n EnvironmentDetector.instance = new EnvironmentDetector();\n }\n return EnvironmentDetector.instance;\n }\n /**\n * 检测微前端环境\n */ detectMicroFrontend() {\n if (typeof window === 'undefined') {\n return false;\n }\n // 检测是否在微前端容器中\n // 常见的微前端框架标识\n return !!(window.__POWERED_BY_QIANKUN__ || window.__MICRO_APP_ENVIRONMENT__ || window.singleSpa || window.__SINGLE_SPA__);\n }\n /**\n * 检测运行环境\n */ detectEnvironment() {\n if (this.isMicroFrontend) {\n return \"micro-frontend\";\n }\n if (this.isSSR) {\n return \"ssr\";\n }\n if (this.isBrowser) {\n return \"browser\";\n }\n if (typeof process !== 'undefined') {\n return \"node\";\n }\n return \"unknown\";\n }\n /**\n * 获取当前运行环境\n */ getEnvironment() {\n return this.environment;\n }\n /**\n * 是否为浏览器环境\n */ isBrowserEnvironment() {\n return this.isBrowser;\n }\n /**\n * 是否为SSR环境\n */ isSSREnvironment() {\n return this.isSSR;\n }\n /**\n * 是否为微前端环境\n */ isMicroFrontendEnvironment() {\n return this.isMicroFrontend;\n }\n /**\n * 安全获取DOM元素(支持SSR)\n * \n * @param selector - 选择器或元素ID\n * @returns DOM元素或null\n */ safeGetElement(selector) {\n if (!this.isBrowser) {\n return null;\n }\n if (typeof selector === 'function') {\n try {\n return selector();\n } catch {\n return null;\n }\n }\n try {\n if (selector.startsWith('#')) {\n return document.getElementById(selector.slice(1));\n }\n return document.querySelector(selector);\n } catch {\n return null;\n }\n }\n /**\n * 安全执行浏览器API(支持SSR)\n * \n * @param fn - 要执行的函数\n * @param fallback - 非浏览器环境的回退值\n * @returns 执行结果或回退值\n */ safeExecuteBrowserAPI(fn, fallback) {\n if (!this.isBrowser) {\n return fallback;\n }\n try {\n return fn();\n } catch {\n return fallback;\n }\n }\n constructor(){\n _define_property(this, \"environment\", void 0);\n _define_property(this, \"isBrowser\", void 0);\n _define_property(this, \"isSSR\", void 0);\n _define_property(this, \"isMicroFrontend\", void 0);\n this.isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n this.isSSR = typeof window === 'undefined' && typeof process !== 'undefined';\n this.isMicroFrontend = this.detectMicroFrontend();\n this.environment = this.detectEnvironment();\n }\n}\n_define_property(EnvironmentDetector, \"instance\", null);\n/**\n * 获取环境检测器实例\n */ export function getEnvironmentDetector() {\n return EnvironmentDetector.getInstance();\n}\n\n//# sourceMappingURL=environment.js.map","/**\n * 应用级事件系统类型定义\n * 提供类型安全的事件通信能力\n */ /**\n * 事件监听器类型\n * \n * @template T - 事件数据类型\n */ /**\n * 框架内置事件类型\n */ export var FrameworkEventType = /*#__PURE__*/ function(FrameworkEventType) {\n /**\n * 应用启动开始\n */ FrameworkEventType[\"APP_START\"] = \"framework:app:start\";\n /**\n * 应用启动完成\n */ FrameworkEventType[\"APP_STARTED\"] = \"framework:app:started\";\n /**\n * 应用初始化开始\n */ FrameworkEventType[\"APP_INIT_START\"] = \"framework:app:init:start\";\n /**\n * 应用初始化完成\n */ FrameworkEventType[\"APP_INIT_COMPLETE\"] = \"framework:app:init:complete\";\n /**\n * 应用初始化失败\n */ FrameworkEventType[\"APP_INIT_ERROR\"] = \"framework:app:init:error\";\n /**\n * 应用渲染开始\n */ FrameworkEventType[\"APP_RENDER_START\"] = \"framework:app:render:start\";\n /**\n * 应用渲染完成\n */ FrameworkEventType[\"APP_RENDER_COMPLETE\"] = \"framework:app:render:complete\";\n /**\n * 路由变化\n */ FrameworkEventType[\"ROUTE_CHANGE\"] = \"framework:route:change\";\n /**\n * 路由导航开始\n */ FrameworkEventType[\"ROUTE_NAVIGATE_START\"] = \"framework:route:navigate:start\";\n /**\n * 路由导航完成\n */ FrameworkEventType[\"ROUTE_NAVIGATE_COMPLETE\"] = \"framework:route:navigate:complete\";\n /**\n * 错误发生\n */ FrameworkEventType[\"ERROR_OCCURRED\"] = \"framework:error:occurred\";\n /**\n * 实例创建\n */ FrameworkEventType[\"INSTANCE_CREATED\"] = \"framework:instance:created\";\n /**\n * 实例销毁\n */ FrameworkEventType[\"INSTANCE_DESTROYED\"] = \"framework:instance:destroyed\";\n /**\n * 性能指标更新\n */ FrameworkEventType[\"PERFORMANCE_UPDATE\"] = \"framework:performance:update\";\n return FrameworkEventType;\n}({});\n\n//# sourceMappingURL=types.js.map","/**\n * 框架生命周期事件集成\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 { FrameworkEventType } from \"./types\";\n/**\n * 框架事件管理器\n */ export class FrameworkEventManager {\n /**\n * 触发应用启动事件\n */ emitAppStart(instanceId) {\n this.eventBus.emitSync(FrameworkEventType.APP_START, {\n instanceId\n });\n }\n /**\n * 触发应用启动完成事件\n */ emitAppStarted(instanceId, duration) {\n this.eventBus.emitSync(FrameworkEventType.APP_STARTED, {\n instanceId,\n duration\n });\n }\n /**\n * 触发应用初始化开始事件\n */ emitAppInitStart(instanceId) {\n this.eventBus.emitSync(FrameworkEventType.APP_INIT_START, {\n instanceId\n });\n }\n /**\n * 触发应用初始化完成事件\n */ emitAppInitComplete(instanceId, context, duration) {\n this.eventBus.emitSync(FrameworkEventType.APP_INIT_COMPLETE, {\n instanceId,\n context,\n duration\n });\n }\n /**\n * 触发应用初始化错误事件\n */ emitAppInitError(instanceId, error) {\n this.eventBus.emitSync(FrameworkEventType.APP_INIT_ERROR, {\n instanceId,\n error\n });\n }\n /**\n * 触发应用渲染开始事件\n */ emitAppRenderStart(instanceId) {\n this.eventBus.emitSync(FrameworkEventType.APP_RENDER_START, {\n instanceId\n });\n }\n /**\n * 触发应用渲染完成事件\n */ emitAppRenderComplete(instanceId, duration) {\n this.eventBus.emitSync(FrameworkEventType.APP_RENDER_COMPLETE, {\n instanceId,\n duration\n });\n }\n /**\n * 触发路由变化事件\n */ emitRouteChange(from, to, params) {\n this.eventBus.emitSync(FrameworkEventType.ROUTE_CHANGE, {\n from,\n to,\n params\n });\n }\n /**\n * 触发路由导航开始事件\n */ emitRouteNavigateStart(to, options) {\n this.eventBus.emitSync(FrameworkEventType.ROUTE_NAVIGATE_START, {\n to,\n options\n });\n }\n /**\n * 触发路由导航完成事件\n */ emitRouteNavigateComplete(to, duration) {\n this.eventBus.emitSync(FrameworkEventType.ROUTE_NAVIGATE_COMPLETE, {\n to,\n duration\n });\n }\n /**\n * 触发错误发生事件\n */ emitErrorOccurred(error, context) {\n this.eventBus.emitSync(FrameworkEventType.ERROR_OCCURRED, {\n error,\n context\n });\n }\n /**\n * 触发实例创建事件\n */ emitInstanceCreated(instanceId) {\n this.eventBus.emitSync(FrameworkEventType.INSTANCE_CREATED, {\n instanceId\n });\n }\n /**\n * 触发实例销毁事件\n */ emitInstanceDestroyed(instanceId) {\n this.eventBus.emitSync(FrameworkEventType.INSTANCE_DESTROYED, {\n instanceId\n });\n }\n /**\n * 触发性能指标更新事件\n */ emitPerformanceUpdate(metrics) {\n this.eventBus.emitSync(FrameworkEventType.PERFORMANCE_UPDATE, {\n metrics\n });\n }\n constructor(eventBus){\n _define_property(this, \"eventBus\", void 0);\n this.eventBus = eventBus;\n }\n}\n\n//# sourceMappingURL=frameworkEvents.js.map","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}\nfunction inferRetryable(error) {\n if (error instanceof Error) {\n const message = error.message.toLowerCase();\n return message.includes('timeout') || message.includes('network');\n }\n return false;\n}\nexport class KernelBootError extends Error {\n constructor(message, options){\n super(message), _define_property(this, \"code\", void 0), _define_property(this, \"phase\", void 0), _define_property(this, \"severity\", void 0), _define_property(this, \"retryable\", void 0), _define_property(this, \"traceId\", void 0), _define_property(this, \"cause\", void 0);\n this.name = 'KernelBootError';\n this.code = options.code;\n this.phase = options.phase;\n this.traceId = options.traceId;\n this.severity = options.severity ?? 'high';\n this.retryable = options.retryable ?? inferRetryable(options.cause);\n this.cause = options.cause;\n }\n}\nexport function toKernelBootError(error, phase, traceId) {\n if (error instanceof KernelBootError) {\n return error;\n }\n if (error instanceof Error) {\n return new KernelBootError(error.message, {\n code: 'KERNEL_BOOT_FAILURE',\n phase,\n traceId,\n cause: error\n });\n }\n return new KernelBootError(String(error), {\n code: 'KERNEL_BOOT_FAILURE',\n phase,\n traceId,\n cause: error\n });\n}\n\n//# sourceMappingURL=errors.js.map","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 { logger } from \"@vlian/logger\";\nimport { initMonitoring } from \"@vlian/monitoring\";\nimport { StateManager } from \"../../state\";\nimport { AppEventBus } from \"../event/AppEventBus\";\nimport { setupI18n, setLang } from \"../../library\";\nconst defaultLoggerAdapter = {\n initialize (options) {\n if (options.loggerLevel) {\n logger.setLevel(options.loggerLevel);\n }\n },\n setLevel (level) {\n logger.setLevel(level);\n },\n debug (message, ...args) {\n logger.debug(message, ...args);\n },\n info (message, ...args) {\n logger.info(message, ...args);\n },\n warn (message, ...args) {\n logger.warn(message, ...args);\n },\n error (message, ...args) {\n logger.error(message, ...args);\n }\n};\nconst defaultMonitoringAdapter = {\n initialize () {\n initMonitoring();\n },\n captureError (error, metadata) {\n try {\n const service = initMonitoring();\n service.captureError(error, metadata);\n } catch {\n logger.error('监控适配器上报失败', error, metadata);\n }\n },\n reportMetric (name, value, tags) {\n logger.debug(`metric:${name}`, {\n value,\n tags\n });\n },\n reportPhase (metric) {\n logger.debug('kernel.phase.metric', metric);\n }\n};\nlet DefaultStateAdapter = class DefaultStateAdapter {\n initialize() {\n this.instance = new StateManager({\n enableRegistry: true,\n defaultScope: 'app'\n });\n }\n getInstance() {\n if (!this.instance) {\n this.initialize();\n }\n return this.instance;\n }\n destroy() {\n if (this.instance) {\n this.instance.destroy();\n this.instance = null;\n }\n }\n constructor(){\n _define_property(this, \"instance\", null);\n }\n};\nlet DefaultEventBusAdapter = class DefaultEventBusAdapter {\n initialize(options) {\n this.bus = new AppEventBus({\n enableTracking: process.env.NODE_ENV === 'development',\n maxHistorySize: 100,\n enableValidation: false,\n enablePerformanceMonitoring: process.env.NODE_ENV === 'development',\n instanceId: options.instanceId\n });\n }\n emit(event, payload) {\n if (!this.bus) {\n this.initialize({});\n }\n this.bus.emit(event, payload);\n }\n on(event, handler) {\n if (!this.bus) {\n this.initialize({});\n }\n return this.bus.on(event, handler);\n }\n destroy() {\n if (this.bus) {\n this.bus.clear();\n this.bus = null;\n }\n }\n constructor(){\n _define_property(this, \"bus\", null);\n }\n};\nconst defaultI18nAdapter = {\n initialize (snapshot) {\n setupI18n(snapshot.resources || {});\n setLang(snapshot.locale);\n },\n setLocale (locale) {\n setLang(locale);\n }\n};\nconst defaultThemeAdapter = {\n initialize (snapshot) {\n if (typeof document === 'undefined') {\n return;\n }\n applyThemeToDocument(snapshot);\n },\n apply (snapshot) {\n if (typeof document === 'undefined') {\n return;\n }\n applyThemeToDocument(snapshot);\n }\n};\nfunction applyThemeToDocument(theme) {\n const root = document.documentElement;\n root.classList.remove('light', 'dark');\n const resolvedMode = theme.mode === 'system' ? window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light' : theme.mode;\n root.classList.add(resolvedMode);\n if (theme.primaryColor) {\n root.style.setProperty('--app-primary-color', theme.primaryColor);\n }\n if (theme.compatibility?.shadcn) {\n Object.entries(theme.compatibility.shadcn).forEach(([key, value])=>{\n root.style.setProperty(`--${key}`, String(value));\n });\n }\n}\nconst defaultErrorHandler = {\n async handle (error) {\n logger.error('Kernel 启动失败', error);\n return {\n handled: true,\n shouldThrow: true\n };\n }\n};\nexport function resolveKernelAdapters(options) {\n return {\n logger: options.adapters?.logger || defaultLoggerAdapter,\n monitoring: options.adapters?.monitoring || defaultMonitoringAdapter,\n state: options.adapters?.state || new DefaultStateAdapter(),\n eventBus: options.adapters?.eventBus || new DefaultEventBusAdapter(),\n i18n: options.adapters?.i18n || defaultI18nAdapter,\n theme: options.adapters?.theme || defaultThemeAdapter,\n errorHandler: options.adapters?.errorHandler || defaultErrorHandler\n };\n}\n\n//# sourceMappingURL=defaultAdapters.js.map","import { initialization } from \"../initialization\";\nimport { generateTraceId, initTraceIdGenerator, setCurrentTraceId } from \"../../utils/traceId\";\nimport { toKernelBootError } from \"./errors\";\nimport { resolveKernelAdapters } from \"./defaultAdapters\";\nconst DEFAULT_THEME = {\n mode: 'light'\n};\nconst DEFAULT_I18N = {\n locale: 'zh-CN'\n};\nasync function withOptionalTimeout(task, timeoutMs, timeoutMessage = 'Kernel phase timeout') {\n if (!timeoutMs || timeoutMs <= 0) {\n return task();\n }\n return Promise.race([\n task(),\n new Promise((_, reject)=>{\n setTimeout(()=>reject(new Error(timeoutMessage)), timeoutMs);\n })\n ]);\n}\nexport async function startKernel(options = {}) {\n initTraceIdGenerator('kernel');\n const traceId = generateTraceId();\n setCurrentTraceId(traceId);\n const adapters = resolveKernelAdapters(options);\n const metrics = [];\n let config = {};\n let theme = {\n ...DEFAULT_THEME,\n ...options.theme || {}\n };\n let i18n = {\n ...DEFAULT_I18N,\n ...options.locale || {}\n };\n const emitPhaseMetric = (metric)=>{\n metrics.push(metric);\n adapters.monitoring.reportPhase?.(metric);\n adapters.monitoring.reportMetric?.('kernel.phase.duration', metric.duration, {\n phase: metric.phase\n });\n adapters.eventBus.emit('kernel.phase.end', metric);\n };\n const runPhase = async (phase, fn)=>{\n const enabled = options.enabledPhases?.[phase];\n if (enabled === false) {\n adapters.eventBus.emit('kernel.phase.skipped', {\n phase,\n traceId\n });\n return;\n }\n const startTime = performance.now();\n adapters.eventBus.emit('kernel.phase.start', {\n phase,\n traceId,\n startTime\n });\n try {\n await withOptionalTimeout(fn, options.performance?.phaseTimeoutMs?.[phase], `Kernel phase \"${phase}\" timeout`);\n emitPhaseMetric({\n phase,\n startTime,\n endTime: performance.now(),\n duration: performance.now() - startTime\n });\n } catch (error) {\n const bootError = toKernelBootError(error, phase, traceId);\n adapters.monitoring.captureError(bootError, {\n phase,\n traceId\n });\n adapters.eventBus.emit('kernel.phase.error', bootError);\n const result = await adapters.errorHandler.handle(bootError);\n if (result.shouldThrow) {\n throw bootError;\n }\n }\n };\n await runPhase('prepare', async ()=>{\n adapters.logger.initialize?.(options);\n adapters.logger.info('Kernel 启动准备完成', {\n traceId\n });\n });\n await runPhase('services', async ()=>{\n await Promise.all([\n Promise.resolve(adapters.monitoring.initialize?.(options)),\n Promise.resolve(adapters.state.initialize?.(options)),\n Promise.resolve(adapters.eventBus.initialize?.(options))\n ]);\n });\n await runPhase('config', async ()=>{\n if (options.configLoader) {\n try {\n config = await options.configLoader();\n } catch (error) {\n config = options.configFallback || {};\n }\n } else {\n config = options.configFallback || {};\n }\n });\n await runPhase('i18n', async ()=>{\n await adapters.i18n.initialize(i18n);\n });\n await runPhase('theme', async ()=>{\n await Promise.resolve(adapters.theme.initialize?.(theme));\n await adapters.theme.apply(theme);\n });\n await runPhase('init', async ()=>{\n await options.lifecycle?.beforeInitialization?.();\n const initContext = await initialization({\n loggerLevel: options.loggerLevel,\n locale: i18n.resources,\n lifecycle: options.lifecycle\n });\n await options.lifecycle?.afterInitialization?.(initContext);\n });\n await runPhase('ready', async ()=>{\n adapters.eventBus.emit('kernel.ready', {\n traceId,\n theme,\n locale: i18n.locale,\n config\n });\n });\n if (options.enablePostReady !== false) {\n await runPhase('postReady', async ()=>{\n adapters.eventBus.emit('kernel.postReady', {\n traceId\n });\n });\n }\n const setTheme = async (partial)=>{\n theme = {\n ...theme,\n ...partial\n };\n await adapters.theme.apply(theme);\n adapters.eventBus.emit('kernel.theme.changed', {\n traceId,\n theme\n });\n };\n const setThemeMode = async (mode)=>{\n await setTheme({\n mode\n });\n };\n const setLocale = async (locale)=>{\n i18n = {\n ...i18n,\n locale\n };\n await adapters.i18n.setLocale(locale);\n adapters.eventBus.emit('kernel.i18n.changed', {\n traceId,\n locale\n });\n };\n return {\n traceId,\n getTheme: ()=>({\n ...theme\n }),\n setTheme,\n setThemeMode,\n getI18n: ()=>({\n ...i18n\n }),\n setLocale,\n getConfig: ()=>({\n ...config\n }),\n getStateManager: ()=>adapters.state.getInstance(),\n getEventBus: ()=>adapters.eventBus,\n getMetrics: ()=>[\n ...metrics\n ],\n destroy: ()=>{\n adapters.state.destroy?.();\n adapters.eventBus.destroy?.();\n adapters.eventBus.emit('kernel.destroyed', {\n traceId\n });\n }\n };\n}\n\n//# sourceMappingURL=startKernel.js.map","/**\n * 应用启动主函数\n * 重构后的启动逻辑,集成所有新功能\n */ import { logger } from \"@vlian/logger\";\nimport { ErrorCode, InitializationError } from \"@vlian/utils\";\nimport { initTraceIdGenerator, generateTraceId, setCurrentTraceId } from \"../../utils/traceId\";\nimport { shouldShowSplashScreen } from \"../splash\";\nimport { initialization, initializationErrorState } from \"../initialization/index\";\nimport { middlewareManager } from \"../middleware\";\nimport { initializeServices } from \"./initializeServices\";\nimport { getAppInstanceManager } from \"./AppInstance\";\nimport { getEnvironmentDetector } from \"./environment\";\nimport { getRouterManager } from \"../router/RouterManager\";\nimport { FrameworkEventManager } from \"../event/frameworkEvents\";\nimport { startKernel } from \"../kernel\";\n/**\n * 启动应用\n *\n * @param options - 启动配置选项\n * @param instanceId - 应用实例ID(可选,用于多实例场景)\n * @returns 应用实例\n */ export async function startApp(options = {}, instanceId) {\n const startTime = performance.now();\n const envDetector = getEnvironmentDetector();\n const instanceManager = getAppInstanceManager();\n // 初始化追踪 ID 生成器\n initTraceIdGenerator('app');\n const traceId = generateTraceId();\n setCurrentTraceId(traceId);\n // 框架事件管理器(在服务初始化后创建)\n let frameworkEventManager = null;\n let kernelTraceId = null;\n try {\n // 1. 环境检测和容器获取\n const container = options.container || envDetector.safeGetElement('#root');\n if (!container) {\n throw new InitializationError('未找到挂载容器', undefined, {\n container: options.container\n }, ErrorCode.CONTAINER_NOT_FOUND);\n }\n logger.info('框架启动中...');\n if (options.antd && !options.uiProvider) {\n logger.warn('[deprecated] StartOptions.antd 即将废弃,请迁移到 StartOptions.uiProvider');\n }\n if (options.antdApp && !options.uiApp) {\n logger.warn('[deprecated] StartOptions.antdApp 即将废弃,请迁移到 StartOptions.uiApp');\n }\n // 2. 创建应用实例\n const appInstance = instanceManager.createInstance(instanceId, options);\n const finalInstanceId = appInstance.id;\n let services = null;\n // 使用单次 Promise 防止重复初始化,提升加载速度并保证可观测数据一致。\n let servicesInitPromise = null;\n const ensureServicesInitialized = async ()=>{\n if (services) {\n return services;\n }\n if (!servicesInitPromise) {\n servicesInitPromise = initializeServices({\n ...options,\n eventBus: {\n ...options.eventBus,\n instanceId: finalInstanceId\n }\n });\n }\n services = await servicesInitPromise;\n return services;\n };\n // 3. 使用无 UI Kernel 管理启动阶段(配置、主题、i18n、服务注入、统一错误处理)\n const kernelRuntime = await startKernel({\n loggerLevel: options.loggerLevel,\n locale: {\n locale: (options.locale ? Object.keys(options.locale)[0] : 'zh-CN') || 'zh-CN',\n resources: options.locale\n },\n theme: {\n mode: options.theme?.mode || 'light',\n primaryColor: options.theme?.primaryColor,\n compatibility: {\n antd: options.uiProvider || options.antd\n }\n },\n adapters: {\n monitoring: {\n initialize: async ()=>{\n await ensureServicesInitialized();\n },\n captureError: (error, metadata)=>{\n if (services) {\n services.monitoring.captureError(error, metadata);\n } else {\n logger.error('Kernel 监控上报失败(服务尚未初始化):', error, metadata);\n }\n },\n reportMetric: (name, value, tags)=>{\n logger.debug(`[kernel.metric] ${name}`, {\n value,\n tags,\n instanceId: finalInstanceId\n });\n }\n },\n state: {\n initialize: async ()=>{\n await ensureServicesInitialized();\n },\n getInstance: ()=>services?.stateManager ?? null\n },\n eventBus: {\n initialize: async ()=>{\n await ensureServicesInitialized();\n },\n emit: (event, payload)=>{\n if (services) {\n services.eventBus.emit(event, payload);\n }\n },\n on: (event, handler)=>{\n if (!services) {\n return ()=>{};\n }\n return services.eventBus.on(event, handler);\n }\n },\n errorHandler: {\n async handle (error) {\n logger.error('Kernel 启动阶段失败:', error);\n return {\n handled: true,\n shouldThrow: true\n };\n }\n }\n },\n enabledPhases: {\n init: false\n },\n enablePostReady: false\n });\n kernelTraceId = kernelRuntime.traceId;\n const servicesInitStart = performance.now();\n const resolvedServices = await ensureServicesInitialized();\n const servicesInitDuration = performance.now() - servicesInitStart;\n // 创建框架事件管理器\n frameworkEventManager = new FrameworkEventManager(resolvedServices.eventBus);\n // 触发应用启动事件(使用真实的事件总线)\n frameworkEventManager.emitAppStart(finalInstanceId);\n // 触发实例创建事件\n frameworkEventManager.emitInstanceCreated(finalInstanceId);\n // 4. 初始化应用实例\n appInstance.initialize(container, resolvedServices);\n // 5. 初始化路由管理器\n const routerManager = getRouterManager();\n if (options.router) {\n await routerManager.initialize(options.router);\n }\n // 6. 性能追踪\n const performanceTracker = appInstance.getPerformanceTracker();\n if (performanceTracker) {\n performanceTracker.recordServiceInit(servicesInitDuration);\n }\n // 6. 是否显示启动页\n const shouldShowSplash = shouldShowSplashScreen(options.showSplashScreen);\n const renderer = appInstance.getRenderer();\n // 8. 渲染应用函数\n const renderApp = async (context)=>{\n const renderStart = performance.now();\n // 触发渲染开始事件\n if (frameworkEventManager) {\n frameworkEventManager.emitAppRenderStart(finalInstanceId);\n }\n await renderer.renderApp(options, resolvedServices, context);\n const renderDuration = performance.now() - renderStart;\n // 触发渲染完成事件\n if (frameworkEventManager) {\n frameworkEventManager.emitAppRenderComplete(finalInstanceId, renderDuration);\n }\n // 优化:在应用渲染完成后,延迟初始化非关键服务\n // 使用 requestIdleCallback 在浏览器空闲时初始化,不影响用户体验\n if (resolvedServices.initializeNonCriticalServices) {\n resolvedServices.initializeNonCriticalServices().catch((error)=>{\n logger.warn('非关键服务初始化失败(不影响应用运行):', error);\n });\n }\n if (performanceTracker) {\n performanceTracker.recordFirstRender(renderDuration);\n const totalDuration = performance.now() - startTime;\n performanceTracker.recordTotalStartup(totalDuration);\n performanceTracker.report();\n }\n // 触发应用启动完成事件\n if (frameworkEventManager) {\n frameworkEventManager.emitAppStarted(finalInstanceId, performance.now() - startTime);\n }\n // 统一发出 Kernel post-ready 事件,供可观测系统消费。\n kernelRuntime.getEventBus().emit('kernel.postReady', {\n traceId: kernelRuntime.traceId,\n instanceId: finalInstanceId,\n startupDuration: performance.now() - startTime\n });\n // 开发模式下显示开发工具\n if (process.env.NODE_ENV === 'development' && typeof window !== 'undefined') {\n // 延迟显示开发工具,避免影响首次渲染\n setTimeout(()=>{\n const devToolsContainer = document.createElement('div');\n devToolsContainer.id = '__framework_dev_tools__';\n document.body.appendChild(devToolsContainer);\n // 这里需要动态导入React来渲染开发工具\n // 为了简化,暂时注释掉,后续可以完善\n // import('react-dom/client').then(({ createRoot }) => {\n // const root = createRoot(devToolsContainer);\n // root.render(<DevToolsTrigger appInstance={appInstance} />);\n // });\n }, 1000);\n }\n };\n if (shouldShowSplash) {\n // 场景1: 显示启动页,初始化在启动页中完成\n const onSplashComplete = (context)=>{\n logger.info('启动页初始化完成');\n // 触发初始化完成事件\n if (frameworkEventManager) {\n const initDuration = context.duration || 0;\n frameworkEventManager.emitAppInitComplete(finalInstanceId, context, initDuration);\n }\n if (options.onSplashComplete) {\n Promise.resolve(options.onSplashComplete(()=>{\n logger.info('框架加载完成');\n renderApp(context);\n }, context)).catch((error)=>{\n logger.error('onSplashComplete 回调执行失败:', error);\n initializationErrorState.setError(error);\n renderApp(context);\n });\n } else {\n logger.info('框架加载完成');\n renderApp(context);\n }\n };\n // 触发初始化开始事件\n if (frameworkEventManager) {\n frameworkEventManager.emitAppInitStart(finalInstanceId);\n }\n // 渲染启动页\n renderer.renderSplashScreen(options, resolvedServices, onSplashComplete);\n } else {\n // 场景2: 不显示启动页,直接执行初始化\n logger.info('开始执行初始化(无启动页)');\n // 触发初始化开始事件\n if (frameworkEventManager) {\n frameworkEventManager.emitAppInitStart(finalInstanceId);\n }\n try {\n const initStart = performance.now();\n // 使用中间件包装初始化函数\n const initContext = await middlewareManager.execute(options, async ()=>{\n return await initialization(options, (progress, step)=>{\n logger.debug(`初始化进度: ${progress}%${step ? ` - ${step}` : ''}`);\n });\n });\n const initDuration = performance.now() - initStart;\n // 触发初始化完成事件\n if (frameworkEventManager) {\n frameworkEventManager.emitAppInitComplete(finalInstanceId, initContext, initDuration);\n }\n if (performanceTracker) {\n performanceTracker.recordInitialization(initDuration);\n }\n logger.info('初始化完成(无启动页)', initContext);\n logger.info('框架加载完成');\n void renderApp(initContext);\n } catch (error) {\n logger.error('初始化失败:', error);\n // 触发初始化错误事件\n if (frameworkEventManager) {\n frameworkEventManager.emitAppInitError(finalInstanceId, error instanceof Error ? error : new Error(String(error)));\n }\n initializationErrorState.setError(error);\n void renderApp();\n }\n }\n return instanceManager;\n } catch (error) {\n logger.error('框架启动失败:', error);\n // 触发错误事件\n if (frameworkEventManager) {\n const errorInstanceId = instanceId || instanceManager.getInstance()?.id;\n if (errorInstanceId) {\n frameworkEventManager.emitErrorOccurred(error instanceof Error ? error : new Error(String(error)), {\n phase: 'startup'\n });\n }\n }\n if (kernelTraceId) {\n logger.error('Kernel Trace 失败上下文', {\n traceId: kernelTraceId\n });\n }\n // 如果容器存在,尝试渲染错误页面\n const container = options.container || envDetector.safeGetElement('#root');\n if (container) {\n const errorInstance = instanceManager.getInstance();\n if (errorInstance && errorInstance.isInitialized()) {\n const renderer = errorInstance.getRenderer();\n const services = errorInstance.getServices();\n initializationErrorState.setError(error);\n renderer.renderError(options, services);\n }\n }\n throw error;\n }\n}\n\n//# sourceMappingURL=startApp.js.map","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 * 支持从JSON/YAML文件加载配置\n * 优化:支持环境变量配置、配置热更新\n */ import { logger } from \"@vlian/logger\";\n/**\n * 配置文件格式\n */ export var ConfigFileFormat = /*#__PURE__*/ function(ConfigFileFormat) {\n ConfigFileFormat[\"JSON\"] = \"json\";\n ConfigFileFormat[\"YAML\"] = \"yaml\";\n return ConfigFileFormat;\n}({});\n/**\n * 配置变更通知管理器\n */ let ConfigChangeNotifier = class ConfigChangeNotifier {\n /**\n * 添加配置变更监听器\n */ addListener(listener) {\n this.listeners.add(listener);\n // 返回取消监听的函数\n return ()=>{\n this.listeners.delete(listener);\n };\n }\n /**\n * 移除配置变更监听器\n */ removeListener(listener) {\n this.listeners.delete(listener);\n }\n /**\n * 通知配置变更\n */ notify(newConfig, oldConfig) {\n this.listeners.forEach((listener)=>{\n try {\n listener(newConfig, oldConfig);\n } catch (error) {\n logger.warn('配置变更监听器执行失败:', error);\n }\n });\n }\n /**\n * 清除所有监听器\n */ clear() {\n this.listeners.clear();\n }\n constructor(){\n _define_property(this, \"listeners\", new Set());\n }\n};\n/**\n * 全局配置变更通知器实例\n */ const configChangeNotifier = new ConfigChangeNotifier();\n/**\n * 配置加载器\n */ export class ConfigLoader {\n /**\n * 从JSON文件加载配置\n * \n * @param path - 文件路径\n * @returns 配置对象\n */ static async loadFromJSON(path) {\n try {\n // 在浏览器环境中,需要通过网络请求加载\n if (typeof window !== 'undefined') {\n const response = await fetch(path);\n if (!response.ok) {\n throw new Error(`无法加载配置文件: ${path} (${response.status})`);\n }\n return await response.json();\n }\n // 在Node.js环境中,使用fs模块\n if (typeof require !== 'undefined') {\n const fs = require('fs');\n const content = fs.readFileSync(path, 'utf-8');\n return JSON.parse(content);\n }\n throw new Error('不支持的环境:无法加载配置文件');\n } catch (error) {\n logger.error(`加载JSON配置文件失败: ${path}`, error);\n throw error;\n }\n }\n /**\n * 从YAML文件加载配置\n * \n * @param path - 文件路径\n * @returns 配置对象\n */ static async loadFromYAML(path) {\n try {\n // 在浏览器环境中,需要通过网络请求加载\n if (typeof window !== 'undefined') {\n const response = await fetch(path);\n if (!response.ok) {\n throw new Error(`无法加载配置文件: ${path} (${response.status})`);\n }\n const text = await response.text();\n // 需要YAML解析库,这里假设有yaml库\n // 如果没有,可以提示用户安装\n if (typeof window.YAML !== 'undefined') {\n return window.YAML.parse(text);\n }\n // 降级:尝试作为JSON解析(如果YAML格式简单)\n try {\n return JSON.parse(text);\n } catch {\n throw new Error('需要YAML解析库,请安装 yaml 包');\n }\n }\n // 在Node.js环境中,使用fs模块和yaml库\n if (typeof require !== 'undefined') {\n const fs = require('fs');\n const yaml = require('yaml');\n const content = fs.readFileSync(path, 'utf-8');\n return yaml.parse(content);\n }\n throw new Error('不支持的环境:无法加载配置文件');\n } catch (error) {\n logger.error(`加载YAML配置文件失败: ${path}`, error);\n throw error;\n }\n }\n /**\n * 从文件加载配置\n * \n * @param options - 加载选项\n * @returns 配置对象\n */ static async loadFromFile(options) {\n const { path, format = \"json\", required = false, defaultConfig = {} } = options;\n if (!path) {\n if (required) {\n throw new Error('配置文件路径未指定');\n }\n return defaultConfig;\n }\n try {\n let config;\n switch(format){\n case \"json\":\n config = await this.loadFromJSON(path);\n break;\n case \"yaml\":\n config = await this.loadFromYAML(path);\n break;\n default:\n throw new Error(`不支持的配置文件格式: ${format}`);\n }\n logger.info(`成功加载配置文件: ${path}`);\n return config;\n } catch (error) {\n if (required) {\n throw error;\n }\n logger.warn(`配置文件加载失败,使用默认配置: ${path}`, error);\n return defaultConfig;\n }\n }\n /**\n * 合并配置(深度合并)\n * \n * @param base - 基础配置\n * @param override - 覆盖配置\n * @returns 合并后的配置\n */ static mergeConfig(base, override) {\n const merged = {\n ...base\n };\n for(const key in override){\n if (!Object.prototype.hasOwnProperty.call(override, key)) {\n continue;\n }\n const baseValue = merged[key];\n const overrideValue = override[key];\n if (baseValue && overrideValue && typeof baseValue === 'object' && typeof overrideValue === 'object' && !Array.isArray(baseValue) && !Array.isArray(overrideValue)) {\n // 深度合并对象\n merged[key] = this.mergeConfig(baseValue, overrideValue);\n } else {\n // 直接覆盖\n merged[key] = overrideValue;\n }\n }\n return merged;\n }\n /**\n * 从多个源加载并合并配置\n * \n * @param sources - 配置源列表(按优先级从低到高)\n * @returns 合并后的配置\n */ static async loadFromMultipleSources(sources) {\n let merged = {};\n for (const source of sources){\n if ('path' in source && 'format' in source) {\n // 配置文件\n const fileConfig = await this.loadFromFile(source);\n merged = this.mergeConfig(merged, fileConfig);\n } else if (!('path' in source) && !('format' in source)) {\n // 配置对象\n merged = this.mergeConfig(merged, source);\n }\n }\n return merged;\n }\n /**\n * 从环境变量加载配置\n * \n * 支持以下环境变量格式:\n * - FRAMEWORK_LOGGER_LEVEL=DEBUG\n * - FRAMEWORK_SHOW_SPLASH_SCREEN=always\n * - FRAMEWORK_MIN_SPLASH_SCREEN_TIME=1000\n * \n * @param prefix - 环境变量前缀,默认为 'FRAMEWORK_'\n * @returns 配置对象\n */ static loadFromEnv(prefix = 'FRAMEWORK_') {\n const config = {};\n if (typeof process === 'undefined' || !process.env) {\n return config;\n }\n // 遍历所有环境变量\n for (const [key, value] of Object.entries(process.env)){\n if (!key.startsWith(prefix)) {\n continue;\n }\n // 移除前缀并转换为驼峰命名\n const configKey = key.slice(prefix.length).toLowerCase().split('_').map((part, index)=>index === 0 ? part : part.charAt(0).toUpperCase() + part.slice(1)).join('');\n // 尝试解析值\n let parsedValue = value;\n if (value === 'true' || value === 'false') {\n parsedValue = value === 'true';\n } else if (!isNaN(Number(value))) {\n parsedValue = Number(value);\n } else if (value?.startsWith('{') || value?.startsWith('[')) {\n try {\n parsedValue = JSON.parse(value);\n } catch {\n // 解析失败,使用原始值\n }\n }\n // 设置配置值\n config[configKey] = parsedValue;\n }\n logger.debug('从环境变量加载配置:', config);\n return config;\n }\n /**\n * 从多个源加载配置(包括环境变量)\n * \n * 优化:明确优先级,从低到高:\n * 1. 默认配置\n * 2. 配置文件\n * 3. 环境变量\n * 4. 代码配置(通过 sources 参数传入)\n * \n * @param sources - 配置源列表(代码配置,优先级最高)\n * @param defaultConfig - 默认配置(优先级最低)\n * @param includeEnv - 是否包含环境变量,默认为 true\n * @param envPrefix - 环境变量前缀,默认为 'FRAMEWORK_'\n * @returns 合并后的配置\n */ static async loadFromAllSources(sources = [], defaultConfig = {}, includeEnv = true, envPrefix = 'FRAMEWORK_') {\n // 保存旧配置用于变更通知\n const oldConfig = {\n ...defaultConfig\n };\n // 1. 从默认配置开始\n let merged = {\n ...defaultConfig\n };\n // 2. 加载配置文件(优先级高于默认配置)\n const fileConfigs = await this.loadFromMultipleSources(sources.filter((source)=>typeof source === 'object' && 'path' in source));\n merged = this.mergeConfig(merged, fileConfigs);\n // 3. 加载环境变量(优先级高于配置文件)\n if (includeEnv) {\n const envConfig = this.loadFromEnv(envPrefix);\n merged = this.mergeConfig(merged, envConfig);\n }\n // 4. 合并代码配置(优先级最高)\n const codeConfigs = sources.filter((source)=>typeof source === 'object' && !('path' in source));\n for (const codeConfig of codeConfigs){\n merged = this.mergeConfig(merged, codeConfig);\n }\n // 通知配置变更\n configChangeNotifier.notify(merged, oldConfig);\n return merged;\n }\n /**\n * 添加配置变更监听器\n * \n * @param listener - 配置变更监听器\n * @returns 取消监听的函数\n */ static onConfigChange(listener) {\n return configChangeNotifier.addListener(listener);\n }\n /**\n * 移除配置变更监听器\n */ static removeConfigChangeListener(listener) {\n configChangeNotifier.removeListener(listener);\n }\n}\n\n//# sourceMappingURL=ConfigLoader.js.map","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 * 路由导航 API\n * 提供框架级别的路由导航能力,封装 react-router-dom 的导航功能\n */ import { logger } from \"@vlian/logger\";\nimport { getRouterLifecycleManager } from \"../lifecycle\";\nimport { getRouterMiddlewareManager } from \"../middleware\";\n/**\n * 路由导航器\n */ export class RouterNavigation {\n static buildTargetPath(to, query) {\n const base = typeof window !== 'undefined' && window.location?.origin ? window.location.origin : 'http://localhost';\n const url = new URL(to, base);\n if (query && Object.keys(query).length > 0) {\n const params = new URLSearchParams(url.search);\n Object.entries(query).forEach(([key, value])=>{\n if (value === undefined || value === null) {\n params.delete(key);\n return;\n }\n params.set(key, String(value));\n });\n url.search = params.toString();\n }\n return `${url.pathname}${url.search}${url.hash}`;\n }\n static async navigateInternal(to, options, depth, visited) {\n const startTime = performance.now();\n if (depth > this.MAX_REDIRECTS) {\n throw new Error(`路由重定向次数超过上限(${this.MAX_REDIRECTS}),可能存在循环重定向`);\n }\n const targetPath = this.buildTargetPath(to, options?.query);\n if (visited.has(targetPath)) {\n throw new Error(`检测到循环重定向: ${targetPath}`);\n }\n visited.add(targetPath);\n const routerManager = await import(\"../RouterManager\").then((m)=>m.getRouterManager());\n const router = routerManager.getRouter();\n if (!router) {\n throw new Error('路由未初始化,无法导航');\n }\n // 获取当前路由信息\n const currentLocation = this.getCurrentRoute();\n // 构建目标路由位置\n const targetLocation = {\n path: targetPath,\n query: options?.query\n };\n // 执行生命周期钩子\n const lifecycleManager = getRouterLifecycleManager();\n const beforeEachResult = await lifecycleManager.beforeEach(targetLocation, currentLocation);\n let finalPath = targetPath;\n // 如果 beforeEach 返回 false,阻止导航\n if (beforeEachResult === false) {\n logger.debug('路由导航被阻止: beforeEach 返回 false');\n return;\n }\n // 如果 beforeEach 返回字符串,重定向到该路径\n if (typeof beforeEachResult === 'string') {\n logger.debug(`路由导航重定向: ${beforeEachResult}`);\n finalPath = this.buildTargetPath(beforeEachResult);\n }\n // 执行中间件\n const middlewareManager = getRouterMiddlewareManager();\n const middlewareContext = {\n to: {\n ...targetLocation,\n path: finalPath\n },\n from: currentLocation,\n options\n };\n const middlewareResult = await middlewareManager.execute(middlewareContext);\n // 如果中间件阻止导航\n if (!middlewareResult.allow) {\n if (middlewareResult.redirect) {\n logger.debug(`路由导航被中间件重定向: ${middlewareResult.redirect}`);\n return this.navigateInternal(middlewareResult.redirect, {\n ...options,\n query: undefined\n }, depth + 1, visited);\n }\n logger.debug(`路由导航被中间件阻止: ${middlewareResult.reason || '未知原因'}`);\n return;\n }\n // 执行导航\n try {\n if (options?.replace) {\n router.navigate(finalPath, {\n replace: true,\n state: options.state\n });\n } else {\n router.navigate(finalPath, {\n state: options?.state\n });\n }\n // 执行 afterEach 钩子\n await lifecycleManager.afterEach({\n ...targetLocation,\n path: finalPath\n }, currentLocation);\n const duration = performance.now() - startTime;\n routerManager.getMonitoring().trackRoutePerformance(finalPath, {\n totalTime: duration\n });\n } catch (error) {\n logger.error('路由导航失败', error);\n throw error;\n }\n }\n /**\n * 导航到指定路径\n * \n * @param to - 目标路径或路由名称\n * @param options - 导航选项\n */ static async navigate(to, options) {\n return this.navigateInternal(to, options, 0, new Set());\n }\n /**\n * 获取当前路由信息\n * \n * @returns 当前路由位置信息\n */ static getCurrentRoute() {\n if (typeof window === 'undefined') {\n return {\n path: '/',\n query: {}\n };\n }\n // 从 window.location 获取当前路由信息\n const pathname = window.location.pathname;\n const search = window.location.search;\n const hash = window.location.hash;\n // 解析查询参数\n const query = {};\n if (search) {\n const params = new URLSearchParams(search);\n params.forEach((value, key)=>{\n query[key] = value;\n });\n }\n return {\n path: pathname + hash,\n query\n };\n }\n /**\n * 返回上一页\n * \n * @param fallback - 如果没有历史记录,跳转到该路径\n */ static async goBack(fallback) {\n if (window.history.length > 1) {\n window.history.back();\n } else if (fallback) {\n await this.navigate(fallback);\n } else {\n logger.warn('没有历史记录,无法返回');\n }\n }\n /**\n * 前进到下一页\n */ static goForward() {\n window.history.forward();\n }\n /**\n * 替换当前路由\n * \n * @param to - 目标路径\n * @param options - 导航选项\n */ static async replace(to, options) {\n return this.navigate(to, {\n ...options,\n replace: true\n });\n }\n}\n_define_property(RouterNavigation, \"MAX_REDIRECTS\", 10);\n\n//# sourceMappingURL=RouterNavigation.js.map","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 */ import { logger } from \"@vlian/logger\";\nimport { getRouterManager } from \"../RouterManager\";\nimport { transformRoutes } from \"../utils/transform\";\nimport { RouterError, RouterErrorCode } from \"../errors\";\n/**\n * 动态路由注册管理器\n */ export class DynamicRouteManager {\n /**\n * 注册路由\n * \n * @param routes - 要注册的路由配置\n * @param namespace - 路由命名空间(可选,用于分组管理)\n * @returns 取消注册函数\n */ async register(routes, namespace) {\n const ns = namespace || 'default';\n // 验证路由配置\n if (!Array.isArray(routes) || routes.length === 0) {\n throw new RouterError('路由配置必须是非空数组', RouterErrorCode.ROUTER_CONFIG_ERROR);\n }\n // 检查路由名称是否冲突\n const existingRoutes = this.registeredRoutes.get(ns) || [];\n const existingNames = new Set(existingRoutes.map((r)=>r.name));\n const newNames = routes.map((r)=>r.name);\n const conflicts = newNames.filter((name)=>existingNames.has(name));\n if (conflicts.length > 0) {\n throw new RouterError(`路由名称冲突: ${conflicts.join(', ')}`, RouterErrorCode.ROUTER_CONFIG_ERROR, undefined, undefined, {\n conflicts,\n namespace: ns\n });\n }\n // 添加到注册表\n const currentRoutes = this.registeredRoutes.get(ns) || [];\n this.registeredRoutes.set(ns, [\n ...currentRoutes,\n ...routes\n ]);\n // 更新版本号\n this.routeVersion++;\n logger.info(`路由已注册: ${routes.length} 个路由到命名空间 \"${ns}\"`);\n // 返回取消注册函数\n return async ()=>{\n await this.unregister(routes.map((r)=>r.name), ns);\n };\n }\n /**\n * 取消注册路由\n * \n * @param routeNames - 要取消注册的路由名称数组\n * @param namespace - 路由命名空间(可选)\n */ async unregister(routeNames, namespace) {\n const ns = namespace || 'default';\n const routes = this.registeredRoutes.get(ns) || [];\n // 过滤掉要取消注册的路由\n const filteredRoutes = routes.filter((r)=>!routeNames.includes(r.name));\n if (filteredRoutes.length === routes.length) {\n logger.warn(`未找到要取消注册的路由: ${routeNames.join(', ')}`);\n return;\n }\n // 更新注册表\n if (filteredRoutes.length === 0) {\n this.registeredRoutes.delete(ns);\n } else {\n this.registeredRoutes.set(ns, filteredRoutes);\n }\n // 更新版本号\n this.routeVersion++;\n logger.info(`路由已取消注册: ${routeNames.length} 个路由从命名空间 \"${ns}\"`);\n }\n /**\n * 获取指定命名空间的路由\n * \n * @param namespace - 路由命名空间(可选)\n * @returns 路由配置数组\n */ getRoutes(namespace) {\n const ns = namespace || 'default';\n return [\n ...this.registeredRoutes.get(ns) || []\n ];\n }\n /**\n * 获取所有路由\n * \n * @returns 所有命名空间的路由配置\n */ getAllRoutes() {\n return new Map(this.registeredRoutes);\n }\n /**\n * 清空指定命名空间的路由\n * \n * @param namespace - 路由命名空间(可选)\n */ clear(namespace) {\n const ns = namespace || 'default';\n this.registeredRoutes.delete(ns);\n this.routeVersion++;\n logger.info(`路由命名空间已清空: \"${ns}\"`);\n }\n /**\n * 清空所有路由\n */ clearAll() {\n this.registeredRoutes.clear();\n this.routeVersion++;\n logger.info('所有路由已清空');\n }\n /**\n * 获取路由版本号\n * \n * @returns 路由版本号\n */ getVersion() {\n return this.routeVersion;\n }\n /**\n * 检查路由是否已注册\n * \n * @param routeName - 路由名称\n * @param namespace - 路由命名空间(可选)\n * @returns 如果已注册返回 true,否则返回 false\n */ isRegistered(routeName, namespace) {\n const ns = namespace || 'default';\n const routes = this.registeredRoutes.get(ns) || [];\n return routes.some((r)=>r.name === routeName);\n }\n /**\n * 重新加载路由\n * \n * 注意:此方法会重新初始化路由管理器,需要谨慎使用\n */ async reload() {\n const routerManager = getRouterManager();\n if (!routerManager.isInitialized()) {\n throw new RouterError('路由管理器未初始化', RouterErrorCode.ROUTER_NOT_INITIALIZED);\n }\n // 获取所有路由\n const allRoutes = [];\n this.registeredRoutes.forEach((routes)=>{\n allRoutes.push(...routes);\n });\n if (allRoutes.length === 0) {\n logger.warn('没有已注册的路由,无法重新加载');\n return;\n }\n // 转换路由\n await transformRoutes(allRoutes);\n // const reactRoutes = await transformRoutesToReactRoutes(result.routes, result);\n // 重新创建路由实例\n // 注意:这里需要获取原始配置的模式和选项\n // 由于当前架构限制,这里只是示例实现\n logger.info('路由重新加载完成');\n }\n constructor(){\n _define_property(this, \"registeredRoutes\", new Map());\n _define_property(this, \"routeVersion\", 0);\n }\n}\n/**\n * 获取动态路由管理器单例\n */ let dynamicRouteManagerInstance = null;\nexport function getDynamicRouteManager() {\n if (!dynamicRouteManagerInstance) {\n dynamicRouteManagerInstance = new DynamicRouteManager();\n }\n return dynamicRouteManagerInstance;\n}\n\n//# sourceMappingURL=DynamicRouteManager.js.map","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 */ import { logger } from \"@vlian/logger\";\nimport { RouterError, RouterErrorCode } from \"../errors\";\n/**\n * 路由版本管理器\n */ export class RouteVersionManager {\n /**\n * 注册路由版本\n * \n * @param version - 版本信息\n */ registerVersion(version) {\n // 验证版本号格式(简单的语义化版本检查)\n if (!/^\\d+\\.\\d+\\.\\d+/.test(version.version)) {\n throw new Error(`无效的版本号格式: ${version.version}`);\n }\n this.versions.set(version.version, {\n ...version,\n createdAt: version.createdAt || Date.now()\n });\n logger.debug(`路由版本已注册: ${version.version}`);\n }\n /**\n * 注册版本迁移函数\n * \n * @param fromVersion - 源版本\n * @param toVersion - 目标版本\n * @param migration - 迁移函数\n */ registerMigration(fromVersion, toVersion, migration) {\n const key = `${fromVersion}->${toVersion}`;\n this.migrations.set(key, migration);\n logger.debug(`路由版本迁移已注册: ${key}`);\n }\n /**\n * 检查版本兼容性\n * \n * @param version - 要检查的版本\n * @returns 是否兼容\n */ checkCompatibility(version) {\n const versionInfo = this.versions.get(version);\n if (!versionInfo) {\n return false;\n }\n // 如果明确标记为不兼容,返回 false\n if (versionInfo.compatible === false) {\n return false;\n }\n // 简单的版本兼容性检查(主版本号相同)\n const currentMajor = parseInt(this.config.currentVersion.split('.')[0]);\n const targetMajor = parseInt(version.split('.')[0]);\n return currentMajor === targetMajor;\n }\n /**\n * 迁移路由配置\n * \n * @param fromVersion - 源版本\n * @param toVersion - 目标版本\n * @param routes - 路由配置\n * @returns 迁移后的路由配置\n */ async migrate(fromVersion, toVersion, routes) {\n if (fromVersion === toVersion) {\n return routes;\n }\n const migrationKey = `${fromVersion}->${toVersion}`;\n const migration = this.migrations.get(migrationKey);\n if (!migration) {\n // 如果没有直接迁移,尝试逐步迁移\n return this.migrateStepwise(fromVersion, toVersion, routes);\n }\n try {\n const migratedRoutes = await migration(fromVersion, toVersion, routes);\n logger.info(`路由版本迁移完成: ${fromVersion} -> ${toVersion}`);\n return migratedRoutes;\n } catch (error) {\n logger.error(`路由版本迁移失败: ${fromVersion} -> ${toVersion}`, error);\n const errorContext = {\n fromVersion,\n toVersion\n };\n if (error instanceof Error) {\n errorContext.originalError = error;\n }\n throw new RouterError(`路由版本迁移失败: ${fromVersion} -> ${toVersion}`, RouterErrorCode.ROUTE_TRANSFORM_FAILED, undefined, error instanceof Error ? error : undefined, errorContext);\n }\n }\n /**\n * 逐步迁移(通过中间版本)\n */ async migrateStepwise(fromVersion, toVersion, routes) {\n // 获取所有版本并按版本号排序\n const allVersions = Array.from(this.versions.keys()).sort((a, b)=>{\n const aParts = a.split('.').map(Number);\n const bParts = b.split('.').map(Number);\n for(let i = 0; i < 3; i++){\n if (aParts[i] !== bParts[i]) {\n return aParts[i] - bParts[i];\n }\n }\n return 0;\n });\n // 找到从 fromVersion 到 toVersion 的路径\n const fromIndex = allVersions.indexOf(fromVersion);\n const toIndex = allVersions.indexOf(toVersion);\n if (fromIndex === -1 || toIndex === -1) {\n throw new Error(`无法找到版本迁移路径: ${fromVersion} -> ${toVersion}`);\n }\n let currentRoutes = routes;\n const step = fromIndex < toIndex ? 1 : -1;\n for(let i = fromIndex; i !== toIndex; i += step){\n const currentVersion = allVersions[i];\n const nextVersion = allVersions[i + step];\n const migrationKey = `${currentVersion}->${nextVersion}`;\n const migration = this.migrations.get(migrationKey);\n if (migration) {\n currentRoutes = await migration(currentVersion, nextVersion, currentRoutes);\n } else {\n // 如果没有迁移函数,直接使用当前路由(可能不兼容)\n logger.warn(`缺少迁移函数: ${migrationKey},跳过迁移`);\n }\n }\n return currentRoutes;\n }\n /**\n * 获取版本信息\n * \n * @param version - 版本号\n * @returns 版本信息,如果不存在返回 undefined\n */ getVersion(version) {\n return this.versions.get(version);\n }\n /**\n * 获取所有版本\n * \n * @returns 版本信息数组\n */ getAllVersions() {\n return Array.from(this.versions.values());\n }\n /**\n * 获取当前版本\n * \n * @returns 当前版本信息\n */ getCurrentVersion() {\n return this.versions.get(this.config.currentVersion);\n }\n /**\n * 回滚到指定版本\n * \n * @param version - 目标版本\n * @param routes - 当前路由配置\n * @returns 回滚后的路由配置\n */ async rollback(version, routes) {\n return this.migrate(this.config.currentVersion, version, routes);\n }\n constructor(config){\n _define_property(this, \"versions\", new Map());\n _define_property(this, \"migrations\", new Map());\n _define_property(this, \"config\", void 0);\n this.config = {\n enableVersionCheck: config.enableVersionCheck ?? true,\n enableAutoMigration: config.enableAutoMigration ?? false,\n currentVersion: config.currentVersion\n };\n }\n}\n/**\n * 获取路由版本管理器单例\n */ let versionManagerInstance = null;\nexport function getRouteVersionManager(config) {\n if (!versionManagerInstance && config) {\n versionManagerInstance = new RouteVersionManager(config);\n }\n if (!versionManagerInstance) {\n throw new Error('路由版本管理器未初始化,请先提供配置');\n }\n return versionManagerInstance;\n}\n\n//# sourceMappingURL=RouteVersionManager.js.map","/**\n * React Hooks 支持\n * 提供便捷的 React 组件事件订阅能力\n */ import { useEffect, useRef, useCallback } from \"react\";\n/**\n * 使用事件总线的 Hook\n * \n * @param eventBus - 事件总线实例\n * @param event - 事件名称\n * @param listener - 事件监听器\n * @param options - 监听器选项\n * \n * @example\n * ```tsx\n * import { useAppEventBus } from '@vlian/framework';\n * \n * function MyComponent() {\n * useAppEvent('user:login', (data, metadata) => {\n * console.log('用户登录:', data);\n * });\n * \n * return <div>My Component</div>;\n * }\n * ```\n */ export function useAppEvent(eventBus, event, listener, options) {\n // 使用 ref 保存最新的 listener,避免重复订阅\n const listenerRef = useRef(listener);\n listenerRef.current = listener;\n // 使用 ref 保存 options\n const optionsRef = useRef(options);\n optionsRef.current = options;\n useEffect(()=>{\n // 创建包装的监听器,使用最新的 listener\n const wrappedListener = (data, metadata)=>{\n return listenerRef.current(data, metadata);\n };\n // 订阅事件\n const unsubscribe = eventBus.on(event, wrappedListener, optionsRef.current);\n // 清理函数:取消订阅\n return unsubscribe;\n }, [\n eventBus,\n event\n ]); // 只在 eventBus 或 event 变化时重新订阅\n}\n/**\n * 一次性事件订阅 Hook\n * \n * @param eventBus - 事件总线实例\n * @param event - 事件名称\n * @param listener - 事件监听器\n * @param options - 监听器选项\n */ export function useAppEventOnce(eventBus, event, listener, options) {\n const listenerRef = useRef(listener);\n listenerRef.current = listener;\n const optionsRef = useRef(options);\n optionsRef.current = options;\n useEffect(()=>{\n const wrappedListener = (data, metadata)=>{\n return listenerRef.current(data, metadata);\n };\n const unsubscribe = eventBus.once(event, wrappedListener, optionsRef.current);\n return unsubscribe;\n }, [\n eventBus,\n event\n ]);\n}\n/**\n * 创建事件发射器 Hook\n * \n * @param eventBus - 事件总线实例\n * @returns 事件发射函数\n * \n * @example\n * ```tsx\n * function MyComponent() {\n * const emit = useAppEventEmitter(eventBus);\n * \n * const handleClick = () => {\n * emit('button:click', { buttonId: 'submit' });\n * };\n * \n * return <button onClick={handleClick}>Click</button>;\n * }\n * ```\n */ export function useAppEventEmitter(eventBus) {\n return useCallback((event, data, metadata)=>{\n return eventBus.emit(event, data, metadata);\n }, [\n eventBus\n ]);\n}\n\n//# sourceMappingURL=hooks.js.map","/**\n * 便捷的 Hook:获取当前应用实例的事件总线\n */ import { getAppInstanceManager } from \"../startup/AppInstance\";\n/**\n * 获取当前应用实例的事件总线\n * \n * @returns 事件总线实例\n * \n * @example\n * ```tsx\n * import { useEventBus } from '@vlian/framework';\n * \n * function MyComponent() {\n * const eventBus = useEventBus();\n * \n * useEffect(() => {\n * const unsubscribe = eventBus.on('user:login', (data) => {\n * console.log('用户登录:', data);\n * });\n * return unsubscribe;\n * }, [eventBus]);\n * \n * return <div>My Component</div>;\n * }\n * ```\n */ export function useEventBus() {\n const instanceManager = getAppInstanceManager();\n const instance = instanceManager.getInstance();\n if (!instance) {\n throw new Error('应用实例未找到');\n }\n const eventBus = instance.getEventBus();\n if (!eventBus) {\n throw new Error('事件总线未初始化');\n }\n return eventBus;\n}\n\n//# sourceMappingURL=useEventBus.js.map","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\n/**\n * 开发工具模块(无 UI 框架依赖)\n */ import { useState, useEffect } from \"react\";\nimport { useStateManager } from \"../app\";\nfunction toPrettyJson(value) {\n try {\n return JSON.stringify(value, null, 2);\n } catch {\n return String(value);\n }\n}\nexport function DevTools({ appInstance, visible, onClose }) {\n const [performanceMetrics, setPerformanceMetrics] = useState({});\n const stateManager = useStateManager();\n useEffect(()=>{\n if (!visible) {\n return;\n }\n const tracker = appInstance.getPerformanceTracker();\n if (!tracker) {\n return;\n }\n const metrics = tracker.getMetrics();\n setPerformanceMetrics({\n serviceInitDuration: metrics.serviceInitDuration || 0,\n initializationDuration: metrics.initializationDuration || 0,\n firstRenderDuration: metrics.firstRenderDuration || 0,\n totalStartupDuration: metrics.totalStartupDuration || 0,\n fcp: metrics.fcp || 0,\n lcp: metrics.lcp || 0,\n fid: metrics.fid || 0,\n cls: metrics.cls || 0\n });\n }, [\n visible,\n appInstance\n ]);\n if (!visible) {\n return null;\n }\n const options = appInstance.getOptions();\n const allStates = stateManager?.getAllStates?.() || [];\n return /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n position: 'fixed',\n top: 0,\n right: 0,\n width: 'min(680px, 95vw)',\n height: '100vh',\n zIndex: 9999,\n background: '#fff',\n borderLeft: '1px solid #d9e2ec',\n padding: 16,\n overflowY: 'auto',\n boxShadow: '-8px 0 20px rgba(0, 0, 0, 0.08)'\n },\n children: [\n /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n children: [\n /*#__PURE__*/ _jsx(\"h3\", {\n style: {\n margin: 0\n },\n children: \"DevTools\"\n }),\n /*#__PURE__*/ _jsx(\"button\", {\n onClick: onClose,\n style: {\n border: 'none',\n background: 'transparent',\n cursor: 'pointer'\n },\n children: \"关闭\"\n })\n ]\n }),\n /*#__PURE__*/ _jsxs(\"section\", {\n style: {\n marginTop: 12\n },\n children: [\n /*#__PURE__*/ _jsx(\"h4\", {\n children: \"实例\"\n }),\n /*#__PURE__*/ _jsxs(\"div\", {\n children: [\n \"id: \",\n appInstance.id\n ]\n }),\n /*#__PURE__*/ _jsxs(\"div\", {\n children: [\n \"initialized: \",\n String(appInstance.isInitialized())\n ]\n })\n ]\n }),\n /*#__PURE__*/ _jsxs(\"section\", {\n style: {\n marginTop: 12\n },\n children: [\n /*#__PURE__*/ _jsx(\"h4\", {\n children: \"性能\"\n }),\n /*#__PURE__*/ _jsx(\"pre\", {\n style: {\n background: '#f7fafc',\n padding: 10,\n borderRadius: 8\n },\n children: toPrettyJson(performanceMetrics)\n })\n ]\n }),\n /*#__PURE__*/ _jsxs(\"section\", {\n style: {\n marginTop: 12\n },\n children: [\n /*#__PURE__*/ _jsx(\"h4\", {\n children: \"状态管理\"\n }),\n /*#__PURE__*/ _jsxs(\"div\", {\n children: [\n \"stateCount: \",\n allStates.length\n ]\n }),\n /*#__PURE__*/ _jsx(\"pre\", {\n style: {\n background: '#f7fafc',\n padding: 10,\n borderRadius: 8\n },\n children: toPrettyJson(allStates.slice(0, 10))\n })\n ]\n }),\n /*#__PURE__*/ _jsxs(\"section\", {\n style: {\n marginTop: 12\n },\n children: [\n /*#__PURE__*/ _jsx(\"h4\", {\n children: \"配置\"\n }),\n /*#__PURE__*/ _jsx(\"pre\", {\n style: {\n background: '#f7fafc',\n padding: 10,\n borderRadius: 8,\n whiteSpace: 'pre-wrap'\n },\n children: toPrettyJson(options)\n })\n ]\n })\n ]\n });\n}\nfunction resolvePosition(position) {\n const style = {\n position: 'fixed',\n zIndex: 9998\n };\n const pos = position || 'bottom-right';\n if (pos.includes('bottom')) style.bottom = 16;\n if (pos.includes('top')) style.top = 16;\n if (pos.includes('right')) style.right = 16;\n if (pos.includes('left')) style.left = 16;\n return style;\n}\nexport function DevToolsTrigger({ appInstance, position = 'bottom-right' }) {\n const [visible, setVisible] = useState(false);\n if (process.env.NODE_ENV !== 'development') {\n return null;\n }\n return /*#__PURE__*/ _jsxs(_Fragment, {\n children: [\n /*#__PURE__*/ _jsx(\"button\", {\n onClick: ()=>setVisible(true),\n style: {\n ...resolvePosition(position),\n border: 'none',\n background: '#2f80ed',\n color: '#fff',\n borderRadius: 999,\n padding: '8px 14px',\n cursor: 'pointer'\n },\n children: \"DevTools\"\n }),\n /*#__PURE__*/ _jsx(DevTools, {\n appInstance: appInstance,\n visible: visible,\n onClose: ()=>setVisible(false)\n })\n ]\n });\n}\n\n//# sourceMappingURL=DevTools.js.map","import { storage } from \"../library\";\nimport { startApp } from \"./startup/startApp\";\nimport { getAppInstanceManager } from \"./startup/AppInstance\";\n/**\n * 启动框架\n * \n * @param options - 启动配置选项\n * @returns Promise<void>\n * \n * @example\n * ```typescript\n * import { start } from '@vlian/framework';\n * \n * start({\n * loggerLevel: LogLevel.DEBUG,\n * lifecycle: {\n * beforeInitialization: async () => {\n * console.log('初始化前执行');\n * },\n * },\n * });\n * ```\n */ /**\n * 启动框架(向后兼容的API)\n * \n * @param options - 启动配置选项\n * @returns Promise<void>\n * \n * @deprecated 建议使用 startApp 函数,支持多实例\n */ const start = async (options = {})=>{\n // 使用新的启动函数,保持向后兼容\n await startApp(options);\n};\n// 导出新的启动函数\nexport { startApp } from \"./startup/startApp\";\nexport { getAppInstanceManager } from \"./startup/AppInstance\";\n// 导出向后兼容的start函数\nexport { start, storage };\n// 导出getStateManager(向后兼容)\nexport const getStateManager = ()=>{\n const instanceManager = getAppInstanceManager();\n const instance = instanceManager.getInstance();\n if (instance) {\n return instance.getServices().stateManager;\n }\n return null;\n};\n// 导出应用上下文相关功能\nexport { AppContextProvider, useAppContext, useTheme, useLocale, useConfig, useStateManager } from \"./app\";\n// 导出错误边界\nexport { ErrorBoundary, withErrorBoundary, useErrorHandler } from \"./error\";\n// 导出应用配置单例\nexport { appConfig } from \"./config/AppConfig\";\n// 导出中间件\nexport { MiddlewareManager, middlewareManager } from \"./middleware\";\n// 导出插件\nexport { PluginManager, pluginManager } from \"./plugin\";\n// 导出启动相关模块\nexport * from \"./startup\";\nexport * from \"./config\";\nexport * from \"./kernel\";\n// 导出路由相关模块\nexport * from \"./router\";\n// 导出事件系统\nexport * from \"./event\";\n// 导出开发工具\nexport { DevTools, DevToolsTrigger } from \"./dev/DevTools\";\n\n//# sourceMappingURL=index.js.map","import { SecurityError } from \"./errors\";\nimport { SecurityUtils } from \"./security\";\nimport { Validator } from \"./validation\";\n/**\n * 配置安全工具类\n */ export class ConfigSecurity {\n /**\n * 验证配置签名\n */ static async verifySignature(config, signature, options) {\n if (!options.enabled) {\n return true;\n }\n if (!options.publicKey) {\n throw new SecurityError('签名验证需要提供公钥');\n }\n if (!signature || signature.length === 0) {\n throw new SecurityError('签名不能为空');\n }\n try {\n // 使用 Web Crypto API 验证签名\n if (typeof window === 'undefined' || !window.crypto || !window.crypto.subtle) {\n throw new SecurityError('签名验证需要浏览器支持 Web Crypto API');\n }\n // 将配置转换为字符串(用于签名验证)\n // 使用稳定的 JSON 序列化(按键排序)\n const configString = JSON.stringify(config, Object.keys(config).sort());\n const encoder = new TextEncoder();\n const data = encoder.encode(configString);\n // 将签名从 Base64 解码\n const signatureBuffer = Uint8Array.from(atob(signature), (c)=>c.charCodeAt(0));\n // 导入公钥(支持 PEM 格式)\n const algorithm = options.algorithm || 'RSASSA-PKCS1-v1_5';\n let publicKey;\n try {\n // 尝试导入 PEM 格式的公钥\n const pemHeader = '-----BEGIN PUBLIC KEY-----';\n const pemFooter = '-----END PUBLIC KEY-----';\n let pemKey = options.publicKey;\n if (!pemKey.includes(pemHeader)) {\n pemKey = `${pemHeader}\\n${pemKey}\\n${pemFooter}`;\n }\n // 将 PEM 转换为 ArrayBuffer\n const pemContents = pemKey.replace(pemHeader, '').replace(pemFooter, '').replace(/\\s/g, '');\n const binaryDer = Uint8Array.from(atob(pemContents), (c)=>c.charCodeAt(0));\n publicKey = await window.crypto.subtle.importKey('spki', binaryDer.buffer, {\n name: algorithm,\n hash: 'SHA-256'\n }, false, [\n 'verify'\n ]);\n } catch (importError) {\n throw new SecurityError('公钥导入失败', importError instanceof Error ? importError : undefined);\n }\n // 验证签名\n const isValid = await window.crypto.subtle.verify({\n name: algorithm\n }, publicKey, signatureBuffer, data);\n return isValid;\n } catch (error) {\n if (error instanceof SecurityError) {\n throw error;\n }\n throw new SecurityError('签名验证失败', error instanceof Error ? error : undefined);\n }\n }\n /**\n * 验证配置来源\n */ static verifyOrigin(options) {\n if (!options.allowedOrigins || options.allowedOrigins.length === 0) {\n return true; // 如果没有配置白名单,允许所有来源\n }\n if (typeof window === 'undefined') {\n return true; // 非浏览器环境,跳过验证\n }\n const currentOrigin = window.location.origin;\n const referer = document.referrer;\n // 验证当前来源\n if (options.allowedOrigins.includes(currentOrigin)) {\n return true;\n }\n // 验证 Referer\n if (options.verifyReferer && referer) {\n try {\n const refererOrigin = new URL(referer).origin;\n if (options.allowedOrigins.includes(refererOrigin)) {\n return true;\n }\n } catch {\n // Referer 解析失败\n }\n }\n return false;\n }\n /**\n * 验证配置白名单\n */ static verifyWhitelist(config, options) {\n const errors = [];\n // 检查允许的键\n if (options.allowedKeys && options.allowedKeys.length > 0) {\n const configKeys = Object.keys(config);\n const invalidKeys = configKeys.filter((key)=>!options.allowedKeys.includes(key));\n if (invalidKeys.length > 0) {\n errors.push(`配置包含不允许的键: ${invalidKeys.join(', ')}`);\n }\n }\n // 检查禁止的键\n if (options.forbiddenKeys && options.forbiddenKeys.length > 0) {\n const configKeys = Object.keys(config);\n const forbiddenFound = configKeys.filter((key)=>options.forbiddenKeys.includes(key));\n if (forbiddenFound.length > 0) {\n errors.push(`配置包含禁止的键: ${forbiddenFound.join(', ')}`);\n }\n }\n // 验证配置值\n if (options.valueSchema) {\n const result = Validator.validateObject(options.valueSchema, config);\n if (!result.valid) {\n errors.push(...result.errors);\n }\n }\n return {\n valid: errors.length === 0,\n errors\n };\n }\n /**\n * 清理配置中的危险内容\n */ static sanitizeConfig(config) {\n const sanitized = {};\n for (const [key, value] of Object.entries(config)){\n if (typeof value === 'string') {\n // 检查是否包含危险内容\n const validation = SecurityUtils.validateInput(value);\n if (validation.safe && validation.sanitized) {\n sanitized[key] = validation.sanitized;\n } else {\n // 包含危险内容,跳过或记录警告\n console.warn(`配置项 ${key} 包含潜在危险内容,已跳过`);\n }\n } else if (value && typeof value === 'object' && !Array.isArray(value)) {\n // 递归清理对象\n sanitized[key] = this.sanitizeConfig(value);\n } else {\n sanitized[key] = value;\n }\n }\n return sanitized;\n }\n /**\n * 验证配置安全性\n */ static async validateConfigSecurity(config, options) {\n const errors = [];\n // 验证来源\n if (options.origin) {\n const originValid = this.verifyOrigin(options.origin);\n if (!originValid) {\n errors.push('配置来源验证失败');\n }\n }\n // 验证白名单\n if (options.whitelist) {\n const whitelistResult = this.verifyWhitelist(config, options.whitelist);\n if (!whitelistResult.valid) {\n errors.push(...whitelistResult.errors);\n }\n }\n // 清理配置(已实现但暂不使用返回值)\n // const sanitizedConfig = this.sanitizeConfig(config);\n return {\n valid: errors.length === 0,\n errors\n };\n }\n}\n\n//# sourceMappingURL=configSecurity.js.map","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 { logger } from \"./logger\";\nimport { SecurityUtils } from \"./security\";\n/**\n * 分析服务类\n */ export class AnalyticsService {\n /**\n * 启动批量上报定时器\n */ startBatchTimer() {\n if (this.batchTimer) {\n return;\n }\n this.batchTimer = setInterval(()=>{\n this.flush();\n }, this.config.batchInterval);\n }\n /**\n * 停止批量上报定时器\n */ stopBatchTimer() {\n if (this.batchTimer) {\n clearInterval(this.batchTimer);\n this.batchTimer = null;\n }\n }\n /**\n * 记录事件\n */ track(event) {\n if (!this.config.enabled) {\n return;\n }\n // 采样检查\n if (Math.random() > this.config.sampleRate) {\n return;\n }\n // 匿名化处理\n const anonymizedEvent = {\n ...event,\n timestamp: Date.now(),\n properties: this.anonymizeProperties(event.properties)\n };\n // 添加到队列\n this.eventQueue.push(anonymizedEvent);\n // 立即上报单个事件\n if (this.config.onEvent) {\n this.config.onEvent(anonymizedEvent);\n }\n // 检查是否需要批量上报\n if (this.eventQueue.length >= this.config.batchSize) {\n this.flush();\n }\n }\n /**\n * 记录页面浏览\n */ trackPageView(page, properties) {\n this.track({\n type: 'pageview',\n name: 'page_view',\n properties: {\n page,\n ...properties\n }\n });\n }\n /**\n * 记录点击事件\n */ trackClick(element, properties) {\n this.track({\n type: 'click',\n name: 'click',\n properties: {\n element,\n ...properties\n }\n });\n }\n /**\n * 记录自定义事件\n */ trackCustom(name, properties) {\n this.track({\n type: 'custom',\n name,\n properties\n });\n }\n /**\n * 记录错误事件\n */ trackError(error, properties) {\n this.track({\n type: 'error',\n name: 'error',\n properties: {\n errorName: error.name,\n errorMessage: error.message,\n errorStack: error.stack,\n ...properties\n }\n });\n }\n /**\n * 记录性能事件\n */ trackPerformance(metrics, properties) {\n this.track({\n type: 'performance',\n name: 'performance',\n properties: {\n ...metrics,\n ...properties\n }\n });\n }\n /**\n * 匿名化属性(使用深度脱敏)\n */ anonymizeProperties(properties) {\n if (!this.config.anonymize || !properties) {\n return properties;\n }\n // 使用深度脱敏处理\n return SecurityUtils.deepSanitize(properties);\n }\n /**\n * 刷新队列(批量上报)\n */ flush() {\n if (this.eventQueue.length === 0) {\n return;\n }\n const events = [\n ...this.eventQueue\n ];\n this.eventQueue = [];\n if (this.config.onBatch) {\n this.config.onBatch(events);\n }\n logger.debug(`分析服务批量上报 ${events.length} 个事件`);\n }\n /**\n * 启用分析\n */ enable() {\n this.config.enabled = true;\n this.startBatchTimer();\n }\n /**\n * 禁用分析\n */ disable() {\n this.config.enabled = false;\n this.stopBatchTimer();\n this.flush();\n }\n /**\n * 销毁服务\n */ destroy() {\n this.stopBatchTimer();\n this.flush();\n }\n constructor(config = {}){\n _define_property(this, \"config\", void 0);\n _define_property(this, \"eventQueue\", []);\n _define_property(this, \"batchTimer\", null);\n this.config = {\n enabled: config.enabled ?? true,\n sampleRate: config.sampleRate ?? 1.0,\n anonymize: config.anonymize ?? true,\n onEvent: config.onEvent ?? (()=>{}),\n onBatch: config.onBatch ?? (()=>{}),\n batchSize: config.batchSize ?? 10,\n batchInterval: config.batchInterval ?? 5000\n };\n if (this.config.enabled) {\n this.startBatchTimer();\n }\n }\n}\n/**\n * 默认分析服务实例\n */ let defaultAnalyticsService = null;\n/**\n * 初始化默认分析服务\n */ export function initAnalytics(config) {\n if (!defaultAnalyticsService) {\n defaultAnalyticsService = new AnalyticsService(config);\n }\n return defaultAnalyticsService;\n}\n/**\n * 获取默认分析服务\n */ export function getAnalytics() {\n if (!defaultAnalyticsService) {\n return initAnalytics();\n }\n return defaultAnalyticsService;\n}\n\n//# sourceMappingURL=analytics.js.map","export { logger, createLogger, Logger, LogFormat } from \"./logger\";\nexport { LogLevel } from \"./logger.types\";\n// 导出错误处理\nexport * from \"./errors\";\n// 导出验证工具\nexport * from \"./validation\";\n// 导出安全工具\nexport * from \"./security\";\n// 导出 CSRF 防护\nexport { CSRFTokenManager, initCSRFManager, getCSRFManager } from \"./csrf\";\n// 导出追踪 ID\nexport { TraceIdGenerator, initTraceIdGenerator, getTraceIdGenerator, generateTraceId, parseTraceId, setCurrentTraceId, getCurrentTraceId, clearCurrentTraceId } from \"./traceId\";\n// 导出性能监控\nexport { PerformanceMonitor, PERFORMANCE_METRIC_UNITS, convertMetricsToWithUnits } from \"./performance\";\n// 导出监控服务\nexport { MonitoringService, initMonitoring, getMonitoring } from \"./monitoring\";\n// 导出资源加载器\nexport { ResourceLoader, resourceLoader } from \"./resourceLoader\";\n// 导出配置安全\nexport { ConfigSecurity } from \"./configSecurity\";\n// 导出运行时安全\nexport { RuntimeSecurity } from \"./runtimeSecurity\";\n// 导出分析服务\nexport { AnalyticsService, initAnalytics, getAnalytics } from \"./analytics\";\n/**\n * 等待指定时间后解析的 Promise 工具函数\n * \n * @param time - 等待时间(毫秒),默认为 100 毫秒\n * @returns 返回一个 Promise,在指定时间后解析为 true\n * \n * @example\n * ```typescript\n * // 等待 500 毫秒\n * await waitTime(500);\n * \n * // 使用默认等待时间(100 毫秒)\n * await waitTime();\n * ```\n * @deprecated 建议使用基于实际完成状态的机制,而不是固定等待时间\n */ export const waitTime = (time = 100)=>{\n return new Promise((resolve)=>{\n setTimeout(()=>{\n resolve(true);\n }, time);\n });\n};\n\n//# sourceMappingURL=index.js.map","export function resolveStorage(storage) {\n if (storage) {\n return storage;\n }\n if (typeof window === 'undefined' || !window.localStorage) {\n return null;\n }\n return window.localStorage;\n}\nexport function readPersistedValue(options, defaultKey) {\n if (options.enabled === false) {\n return null;\n }\n const targetStorage = resolveStorage(options.storage);\n if (!targetStorage) {\n return null;\n }\n try {\n return targetStorage.getItem(options.key || defaultKey);\n } catch {\n return null;\n }\n}\nexport function writePersistedValue(value, options, defaultKey) {\n if (options.enabled === false || !value) {\n return;\n }\n const targetStorage = resolveStorage(options.storage);\n if (!targetStorage) {\n return;\n }\n try {\n targetStorage.setItem(options.key || defaultKey, value);\n } catch {\n // Ignore storage write failures (private mode / quota / disabled storage).\n }\n}\n\n//# sourceMappingURL=persistence.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport React from \"react\";\nimport { useTheme } from \"../core\";\nimport { readPersistedValue, writePersistedValue } from \"./persistence\";\nconst DEFAULT_THEME_STORAGE_KEY = 'vlian:theme-mode';\nconst DEFAULT_MODES = [\n 'light',\n 'dark',\n 'system'\n];\nconst DEFAULT_PERSISTENCE = {\n enabled: true\n};\nconst DEFAULT_LABELS = {\n light: '浅色',\n dark: '深色',\n system: '跟随系统'\n};\nfunction isThemeMode(value) {\n return value === 'light' || value === 'dark' || value === 'system';\n}\nexport const ThemeSwitch = ({ modes = DEFAULT_MODES, labels = DEFAULT_LABELS, persistence, className, style, onChange, render })=>{\n const { theme, setTheme } = useTheme();\n const persistenceOptions = persistence || DEFAULT_PERSISTENCE;\n const hydratedRef = React.useRef(false);\n const lastWrittenModeRef = React.useRef(undefined);\n const mergedLabels = React.useMemo(()=>({\n ...DEFAULT_LABELS,\n ...labels\n }), [\n labels\n ]);\n React.useEffect(()=>{\n if (hydratedRef.current) {\n return;\n }\n hydratedRef.current = true;\n const persistedMode = readPersistedValue(persistenceOptions, DEFAULT_THEME_STORAGE_KEY);\n if (!persistedMode || !isThemeMode(persistedMode) || !modes.includes(persistedMode)) {\n return;\n }\n if (persistedMode !== theme.mode) {\n setTheme((prev)=>({\n ...prev,\n mode: persistedMode\n }));\n }\n }, [\n modes,\n persistenceOptions,\n setTheme,\n theme.mode\n ]);\n React.useEffect(()=>{\n const mode = theme.mode;\n if (!mode || lastWrittenModeRef.current === mode) {\n return;\n }\n writePersistedValue(mode, persistenceOptions, DEFAULT_THEME_STORAGE_KEY);\n lastWrittenModeRef.current = mode;\n }, [\n persistenceOptions,\n theme.mode\n ]);\n const currentMode = theme.mode || 'light';\n const setMode = React.useCallback((mode)=>{\n if (mode === currentMode) {\n return;\n }\n setTheme((prev)=>({\n ...prev,\n mode\n }));\n onChange?.(mode);\n }, [\n currentMode,\n onChange,\n setTheme\n ]);\n if (render) {\n return render({\n mode: currentMode,\n setMode,\n modes,\n labels: mergedLabels\n });\n }\n return /*#__PURE__*/ _jsx(\"div\", {\n className: className,\n style: style,\n role: \"group\",\n \"aria-label\": \"Theme Switch\",\n children: modes.map((mode)=>/*#__PURE__*/ _jsx(\"button\", {\n type: \"button\",\n onClick: ()=>setMode(mode),\n \"aria-pressed\": currentMode === mode,\n children: mergedLabels[mode]\n }, mode))\n });\n};\n\n//# sourceMappingURL=ThemeSwitch.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport React from \"react\";\nimport { useLocale } from \"../core\";\nimport { readPersistedValue, writePersistedValue } from \"./persistence\";\nconst DEFAULT_LOCALE_STORAGE_KEY = 'vlian:locale';\nconst DEFAULT_LOCALES = [\n 'zh-CN',\n 'en-US'\n];\nconst DEFAULT_PERSISTENCE = {\n enabled: true\n};\nconst DEFAULT_LABELS = {\n 'zh-CN': '中文',\n 'en-US': 'English'\n};\nfunction isLocale(value) {\n return value === 'zh-CN' || value === 'en-US';\n}\nexport const LocaleSwitch = ({ locales = DEFAULT_LOCALES, labels = DEFAULT_LABELS, persistence, className, style, onChange, render })=>{\n const { locale, setLocale, isChanging } = useLocale();\n const persistenceOptions = persistence || DEFAULT_PERSISTENCE;\n const hydratedRef = React.useRef(false);\n const lastWrittenLocaleRef = React.useRef(undefined);\n const mergedLabels = React.useMemo(()=>({\n ...DEFAULT_LABELS,\n ...labels\n }), [\n labels\n ]);\n React.useEffect(()=>{\n if (hydratedRef.current) {\n return;\n }\n hydratedRef.current = true;\n const persistedLocale = readPersistedValue(persistenceOptions, DEFAULT_LOCALE_STORAGE_KEY);\n if (!persistedLocale || !isLocale(persistedLocale) || !locales.includes(persistedLocale)) {\n return;\n }\n if (persistedLocale !== locale) {\n setLocale(persistedLocale);\n }\n }, [\n locale,\n locales,\n persistenceOptions,\n setLocale\n ]);\n React.useEffect(()=>{\n if (lastWrittenLocaleRef.current === locale) {\n return;\n }\n writePersistedValue(locale, persistenceOptions, DEFAULT_LOCALE_STORAGE_KEY);\n lastWrittenLocaleRef.current = locale;\n }, [\n locale,\n persistenceOptions\n ]);\n const handleSetLocale = React.useCallback((nextLocale)=>{\n if (nextLocale === locale) {\n return;\n }\n setLocale(nextLocale);\n onChange?.(nextLocale);\n }, [\n locale,\n onChange,\n setLocale\n ]);\n if (render) {\n return render({\n locale,\n isChanging: Boolean(isChanging),\n setLocale: handleSetLocale,\n locales,\n labels: mergedLabels\n });\n }\n return /*#__PURE__*/ _jsxs(\"label\", {\n className: className,\n style: style,\n children: [\n /*#__PURE__*/ _jsx(\"span\", {\n style: {\n display: 'none'\n },\n children: \"Language Switch\"\n }),\n /*#__PURE__*/ _jsx(\"select\", {\n \"aria-label\": \"Language Switch\",\n value: locale,\n onChange: (event)=>handleSetLocale(event.target.value),\n disabled: Boolean(isChanging),\n children: locales.map((item)=>/*#__PURE__*/ _jsx(\"option\", {\n value: item,\n children: mergedLabels[item]\n }, item))\n })\n ]\n });\n};\n\n//# sourceMappingURL=LocaleSwitch.js.map","import { LogLevel } from \"@vlian/logger\";\nexport const DEFAULT_INSTANCE_ID = 'default';\nexport const DEFAULT_THEME = {\n mode: 'light'\n};\nexport const DEFAULT_I18N = {\n locale: 'zh-CN'\n};\nexport const DEFAULT_CONFIG = {\n logger: {\n level: LogLevel.INFO,\n persistence: {\n enabled: true,\n storage: 'localStorage',\n key: 'vlian:kernel:logger-level'\n }\n },\n cache: {\n enabled: true,\n storageOptions: {\n prefix: 'vlian',\n defaultExpire: 24 * 60 * 60 * 1000\n }\n },\n theme: {\n initial: DEFAULT_THEME,\n persistence: {\n enabled: true,\n storage: 'localStorage',\n key: 'vlian:kernel:theme'\n }\n },\n i18n: {\n initial: DEFAULT_I18N,\n persistence: {\n enabled: true,\n storage: 'localStorage',\n key: 'vlian:kernel:i18n'\n }\n }\n};\n\n//# sourceMappingURL=constants.js.map","import { storage } from \"../../library\";\nfunction resolveWebStorage(driver) {\n if (typeof window === 'undefined') {\n return null;\n }\n if (driver === 'localStorage') {\n return window.localStorage;\n }\n if (driver === 'sessionStorage') {\n return window.sessionStorage;\n }\n return null;\n}\nexport async function readPersistedValue(persistence) {\n if (!persistence || persistence.enabled === false) {\n return null;\n }\n const driver = persistence.storage ?? 'localStorage';\n const key = persistence.key;\n if (!key) {\n return null;\n }\n if (driver === 'indexedDB') {\n try {\n const value = await storage.indexedDB.get(key);\n if (value === null || value === undefined) {\n return null;\n }\n if (typeof value === 'string') {\n return value;\n }\n return JSON.stringify(value);\n } catch {\n return null;\n }\n }\n const targetStorage = resolveWebStorage(driver);\n if (!targetStorage) {\n return null;\n }\n try {\n return targetStorage.getItem(key);\n } catch {\n return null;\n }\n}\nexport async function writePersistedValue(persistence, value) {\n if (!persistence || persistence.enabled === false) {\n return;\n }\n const driver = persistence.storage ?? 'localStorage';\n const key = persistence.key;\n if (!key) {\n return;\n }\n if (driver === 'indexedDB') {\n try {\n await storage.indexedDB.set(key, value);\n } catch {\n // ignore persistence errors\n }\n return;\n }\n const targetStorage = resolveWebStorage(driver);\n if (!targetStorage) {\n return;\n }\n try {\n targetStorage.setItem(key, value);\n } catch {\n // ignore persistence errors\n }\n}\n\n//# sourceMappingURL=persistence.js.map","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 { logger, LogLevel } from \"@vlian/logger\";\nimport { DEFAULT_CONFIG } from \"../constants\";\nimport { readPersistedValue, writePersistedValue } from \"./persistence\";\nfunction normalizeLogLevel(value, fallback) {\n if (!value || typeof value !== 'string') {\n return fallback;\n }\n switch(value.toUpperCase()){\n case 'DEBUG':\n return LogLevel.DEBUG;\n case 'INFO':\n return LogLevel.INFO;\n case 'WARN':\n return LogLevel.WARN;\n case 'ERROR':\n return LogLevel.ERROR;\n default:\n return fallback;\n }\n}\nexport class LoggerManager {\n async initialize(context) {\n this.config = context.config.logger;\n const configuredLevel = normalizeLogLevel(this.config.level, LogLevel.INFO);\n const persisted = await readPersistedValue(this.config.persistence);\n if (persisted !== null) {\n this.level = normalizeLogLevel(persisted, configuredLevel);\n logger.setLevel(this.level);\n return;\n }\n this.level = configuredLevel;\n logger.setLevel(this.level);\n await writePersistedValue(this.config.persistence, String(this.level));\n }\n debug(message, payload) {\n logger.debug(message, payload);\n }\n async setLevel(level) {\n this.level = level;\n logger.setLevel(level);\n await writePersistedValue(this.config.persistence, String(level));\n }\n getSnapshot() {\n return {\n level: this.level\n };\n }\n constructor(){\n _define_property(this, \"level\", LogLevel.INFO);\n _define_property(this, \"config\", DEFAULT_CONFIG.logger);\n }\n}\n\n//# sourceMappingURL=loggerManager.js.map","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 { storage } from \"../../library\";\nimport { DEFAULT_CONFIG } from \"../constants\";\nexport class CacheManager {\n initialize(context) {\n this.snapshot = context.config.cache;\n storage.initialize({\n prefix: this.snapshot.storageOptions?.prefix || 'vlian',\n defaultExpire: this.snapshot.storageOptions?.defaultExpire || 24 * 60 * 60 * 1000,\n tableName: this.snapshot.storageOptions?.tableName,\n cache: {\n enabled: this.snapshot.enabled\n }\n });\n }\n getSnapshot() {\n return this.snapshot;\n }\n constructor(){\n _define_property(this, \"snapshot\", DEFAULT_CONFIG.cache);\n }\n}\n\n//# sourceMappingURL=cacheManager.js.map","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 { DEFAULT_CONFIG, DEFAULT_THEME } from \"../constants\";\nimport { readPersistedValue, writePersistedValue } from \"./persistence\";\nfunction applyThemeToDocument(theme) {\n if (typeof document === 'undefined') {\n return;\n }\n const root = document.documentElement;\n root.classList.remove('light', 'dark');\n const resolvedMode = theme.mode === 'system' ? typeof window !== 'undefined' && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light' : theme.mode;\n root.classList.add(resolvedMode);\n if (theme.primaryColor) {\n root.style.setProperty('--app-primary-color', theme.primaryColor);\n }\n if (theme.tokens) {\n Object.entries(theme.tokens).forEach(([token, tokenValue])=>{\n root.style.setProperty(`--${token}`, String(tokenValue));\n });\n }\n}\nexport class ThemeManager {\n async initialize(context) {\n this.config = context.config.theme;\n this.theme = {\n ...DEFAULT_THEME,\n ...this.config.initial || {}\n };\n const persisted = await readPersistedValue(this.config.persistence);\n if (persisted !== null) {\n try {\n const parsed = JSON.parse(persisted);\n this.theme = {\n ...this.theme,\n ...parsed\n };\n } catch {\n // ignore parse errors\n }\n } else {\n await writePersistedValue(this.config.persistence, JSON.stringify(this.theme));\n }\n applyThemeToDocument(this.theme);\n }\n getTheme() {\n return {\n ...this.theme\n };\n }\n async setTheme(nextTheme) {\n this.theme = {\n ...nextTheme\n };\n applyThemeToDocument(this.theme);\n await writePersistedValue(this.config.persistence, JSON.stringify(this.theme));\n }\n getSnapshot() {\n return this.getTheme();\n }\n constructor(){\n _define_property(this, \"theme\", DEFAULT_THEME);\n _define_property(this, \"config\", DEFAULT_CONFIG.theme);\n }\n}\n\n//# sourceMappingURL=themeManager.js.map","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 { setupI18n, setLang } from \"../../library\";\nimport { DEFAULT_CONFIG, DEFAULT_I18N } from \"../constants\";\nimport { readPersistedValue, writePersistedValue } from \"./persistence\";\nexport class I18nManager {\n async initialize(context) {\n this.config = context.config.i18n;\n this.snapshot = {\n ...DEFAULT_I18N,\n ...this.config.initial || {}\n };\n const persisted = await readPersistedValue(this.config.persistence);\n if (persisted !== null) {\n try {\n const parsed = JSON.parse(persisted);\n this.snapshot = {\n ...this.snapshot,\n ...parsed\n };\n } catch {\n // ignore parse errors\n }\n } else {\n await writePersistedValue(this.config.persistence, JSON.stringify(this.snapshot));\n }\n setupI18n(this.snapshot.resources || {});\n setLang(this.snapshot.locale);\n }\n getSnapshot() {\n return {\n ...this.snapshot\n };\n }\n async setLocale(locale) {\n this.snapshot = {\n ...this.snapshot,\n locale\n };\n setLang(locale);\n await writePersistedValue(this.config.persistence, JSON.stringify(this.snapshot));\n }\n constructor(){\n _define_property(this, \"snapshot\", DEFAULT_I18N);\n _define_property(this, \"config\", DEFAULT_CONFIG.i18n);\n }\n}\n\n//# sourceMappingURL=i18nManager.js.map","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 { DEFAULT_CONFIG, DEFAULT_I18N, DEFAULT_INSTANCE_ID, DEFAULT_THEME } from \"./constants\";\nimport { LoggerManager } from \"./manager/loggerManager\";\nimport { CacheManager } from \"./manager/cacheManager\";\nimport { ThemeManager } from \"./manager/themeManager\";\nimport { I18nManager } from \"./manager/i18nManager\";\nfunction now() {\n return typeof performance !== 'undefined' ? performance.now() : Date.now();\n}\nfunction isRecord(value) {\n return typeof value === 'object' && value !== null;\n}\nexport class Kernel {\n static getInstance(instanceId = DEFAULT_INSTANCE_ID) {\n const existing = Kernel.instances.get(instanceId);\n if (existing) {\n return existing;\n }\n const created = new Kernel(instanceId);\n Kernel.instances.set(instanceId, created);\n return created;\n }\n getId() {\n return this.instanceId;\n }\n getConfig() {\n return this.config;\n }\n getMetrics() {\n return [\n ...this.metrics\n ];\n }\n getLoggerManager() {\n return this.loggerManager;\n }\n getCacheManager() {\n return this.cacheManager;\n }\n getThemeManager() {\n return this.themeManager;\n }\n getI18nManager() {\n return this.i18nManager;\n }\n getManager(name) {\n return this.managers.get(name);\n }\n registerManager(name, manager) {\n if (this.managers.has(name)) {\n throw new Error(`Kernel manager \"${name}\" 已存在`);\n }\n this.managers.set(name, manager);\n }\n async startup(options = {}) {\n if (this.started) {\n this.logDebug('kernel.startup.skip.already-started', {\n instanceId: this.instanceId\n });\n return this;\n }\n if (this.startupPromise) {\n return this.startupPromise;\n }\n this.startupPromise = this.bootstrap(options).finally(()=>{\n this.startupPromise = null;\n });\n return this.startupPromise;\n }\n async bootstrap(options) {\n await this.measurePhase('startup.begin', async ()=>{\n this.logDebug('kernel.startup.begin', {\n instanceId: this.instanceId\n });\n });\n await this.measurePhase('config.load', async ()=>{\n this.config = await this.resolveConfig(options);\n });\n await this.measurePhase('manager.register.custom', async ()=>{\n if (options.customManagers) {\n Object.entries(options.customManagers).forEach(([name, manager])=>{\n if (!this.managers.has(name)) {\n this.managers.set(name, manager);\n }\n });\n }\n });\n await this.measurePhase('manager.initialize.default', async ()=>{\n await this.initializeManager('cache');\n await Promise.all([\n this.initializeManager('logger'),\n this.initializeManager('theme'),\n this.initializeManager('i18n')\n ]);\n });\n await this.measurePhase('manager.initialize.custom', async ()=>{\n const customManagerNames = [\n ...this.managers.keys()\n ].filter((name)=>name !== 'logger' && name !== 'cache' && name !== 'theme' && name !== 'i18n');\n for (const name of customManagerNames){\n await this.initializeManager(name);\n }\n });\n await this.measurePhase('hooks.initialize', async ()=>{\n await options.hooks?.initialize?.();\n await options.lifecycle?.initialization?.();\n });\n await this.measurePhase('render.custom', async ()=>{\n if (options.render) {\n await options.render({\n instanceId: this.instanceId,\n config: this.config\n });\n }\n });\n this.started = true;\n this.logDebug('kernel.startup.end', {\n instanceId: this.instanceId,\n metrics: this.metrics\n });\n return this;\n }\n async resolveConfig(options) {\n let loaded = {};\n if (options.configLoader) {\n const loaderResult = await options.configLoader();\n loaded = loaderResult || {};\n }\n const loadedThemeInitial = loaded.theme?.initial || {};\n const loadedI18nInitial = loaded.i18n?.initial || {};\n const optionTheme = options.theme || {};\n const optionLocale = options.locale;\n return {\n logger: {\n ...DEFAULT_CONFIG.logger,\n ...loaded.logger,\n ...options.config?.logger || {},\n level: options.loggerLevel ?? options.config?.logger?.level ?? loaded.logger?.level ?? DEFAULT_CONFIG.logger.level\n },\n cache: {\n ...DEFAULT_CONFIG.cache,\n ...loaded.cache,\n ...options.config?.cache || {},\n storageOptions: {\n ...DEFAULT_CONFIG.cache.storageOptions,\n ...loaded.cache?.storageOptions || {},\n ...options.config?.cache?.storageOptions || {},\n ...options.storageOptions || {}\n }\n },\n theme: {\n ...DEFAULT_CONFIG.theme,\n ...loaded.theme,\n ...options.config?.theme || {},\n initial: {\n ...DEFAULT_THEME,\n ...loadedThemeInitial,\n ...options.config?.theme?.initial || {},\n ...isRecord(optionTheme) ? optionTheme : {}\n }\n },\n i18n: {\n ...DEFAULT_CONFIG.i18n,\n ...loaded.i18n,\n ...options.config?.i18n || {},\n initial: {\n ...DEFAULT_I18N,\n ...loadedI18nInitial,\n ...options.config?.i18n?.initial || {},\n resources: isRecord(optionLocale) ? optionLocale : loadedI18nInitial.resources\n }\n }\n };\n }\n async initializeManager(name) {\n if (this.initializedManagers.has(name)) {\n return;\n }\n const existingPromise = this.managerInitPromises.get(name);\n if (existingPromise) {\n await existingPromise;\n return;\n }\n const manager = this.managers.get(name);\n if (!manager) {\n throw new Error(`Kernel manager \"${name}\" 不存在`);\n }\n const context = {\n instanceId: this.instanceId,\n config: this.config\n };\n const initPromise = (async ()=>{\n await manager.initialize(context);\n this.initializedManagers.add(name);\n this.logDebug('kernel.manager.initialized', {\n name,\n instanceId: this.instanceId\n });\n })();\n this.managerInitPromises.set(name, initPromise);\n try {\n await initPromise;\n } finally{\n this.managerInitPromises.delete(name);\n }\n }\n async measurePhase(phase, task) {\n const startTime = now();\n this.logDebug('kernel.phase.start', {\n phase,\n startTime,\n instanceId: this.instanceId\n });\n await task();\n const endTime = now();\n const metric = {\n phase,\n startTime,\n endTime,\n duration: endTime - startTime\n };\n this.metrics.push(metric);\n this.logDebug('kernel.phase.end', metric);\n }\n logDebug(message, payload) {\n this.loggerManager.debug(message, payload);\n }\n constructor(instanceId){\n _define_property(this, \"instanceId\", void 0);\n _define_property(this, \"metrics\", []);\n _define_property(this, \"managers\", new Map());\n _define_property(this, \"managerInitPromises\", new Map());\n _define_property(this, \"initializedManagers\", new Set());\n _define_property(this, \"loggerManager\", new LoggerManager());\n _define_property(this, \"cacheManager\", new CacheManager());\n _define_property(this, \"themeManager\", new ThemeManager());\n _define_property(this, \"i18nManager\", new I18nManager());\n _define_property(this, \"config\", DEFAULT_CONFIG);\n _define_property(this, \"startupPromise\", null);\n _define_property(this, \"started\", false);\n this.instanceId = instanceId;\n this.managers.set('logger', this.loggerManager);\n this.managers.set('cache', this.cacheManager);\n this.managers.set('theme', this.themeManager);\n this.managers.set('i18n', this.i18nManager);\n }\n}\n_define_property(Kernel, \"instances\", new Map());\nexport async function startup(options = {}, instanceId = DEFAULT_INSTANCE_ID) {\n const kernel = Kernel.getInstance(instanceId);\n return kernel.startup(options);\n}\nexport function getKernel(instanceId = DEFAULT_INSTANCE_ID) {\n return Kernel.getInstance(instanceId);\n}\nexport async function kernelStartApp(options = {}, instanceId = DEFAULT_INSTANCE_ID) {\n return startup(options, instanceId);\n}\n\n//# sourceMappingURL=kernel.js.map"],"names":["local","enUS","zhCN","initReactI18next","_define_property","createStorage","logger","LogLevel","errorUtils","useState","useEffect","memo","useRef","useCallback","_jsx","_jsxs","initMonitoring","monitoring","PerformanceMonitor","createContext","useMemo","useContext","l","y","d","FrameworkError","ErrorSeverity","defaultErrorHandler","ReactErrorBoundary","SecurityUtils","SecurityError","ValidationError","Navigate","z","vlianUtils","getMonitoring","createBrowserRouter","createHashRouter","createMemoryRouter","matchRoutes","RouterProvider","createRoot","StrictMode","applyThemeToDocument","DEFAULT_THEME","DEFAULT_I18N","initTraceIdGenerator","generateTraceId","setCurrentTraceId","InitializationError","ErrorCode","_Fragment","Validator","readPersistedValue","writePersistedValue","DEFAULT_PERSISTENCE","DEFAULT_LABELS"],"mappings":"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","x_google_ignoreList":[29]}
|
|
1
|
+
{"version":3,"file":"index.umd.js","sources":["library/locale/langs/en-us/index.js","library/locale/langs/zh-cn/index.js","library/locale/index.js","library/storage/cache.js","library/storage/index.js","core/plugin/PluginSandbox.js","core/plugin/PluginEventBus.js","core/plugin.js","core/initialization/initialization.js","core/initialization/initializationErrorState.js","core/initialization/InitializationErrorThrower.js","core/splash/SplashScreen.js","core/splash/splashScreenUtils.js","core/middleware.js","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","core/event/AppEventBus.js","core/startup/initializeServices.js","core/config/AppConfig.js","core/app/AppContext.js","core/app/DefaultApp.js","core/app/BasicLayout.js","../../../node_modules/.pnpm/react-error-boundary@6.1.1_react@19.2.4/node_modules/react-error-boundary/dist/react-error-boundary.js","core/error/ErrorHandler.js","core/error/ErrorBoundary.js","core/router/utils/transform.js","core/router/utils/adapters/react-router/RouteErrorBoundary.js","core/router/utils/adapters/react-router/transform.js","core/router/validation/schema.js","core/config/ConfigValidator.js","core/router/validation/RouterConfigValidator.js","core/router/lifecycle/RouterLifecycleManager.js","core/router/middleware/RouterMiddlewareManager.js","core/router/middleware/auth.js","utils/errors.js","core/router/errors/RouterError.js","core/router/performance/RouteCache.js","core/router/performance/RoutePreloader.js","core/router/plugin/types.js","core/router/plugin/RouterPluginManager.js","core/router/monitoring/RouterMonitoring.js","core/router/adapter/AdapterManager.js","core/router/adapter/react-router/ReactRouterAdapter.js","core/router/RouterManager.js","core/startup/renderApp.js","core/startup/performanceTracker.js","core/startup/AppInstance.js","core/startup/environment.js","core/event/types.js","core/event/frameworkEvents.js","core/kernel/errors.js","core/kernel/defaultAdapters.js","core/kernel/startKernel.js","core/startup/startApp.js","core/config/ConfigLoader.js","core/router/navigation/RouterNavigation.js","core/router/dynamic/DynamicRouteManager.js","core/router/version/RouteVersionManager.js","core/event/hooks.js","core/event/useEventBus.js","core/dev/DevTools.js","core/index.js","utils/configSecurity.js","utils/analytics.js","utils/index.js","components/persistence.js","components/ThemeSwitch.js","components/LocaleSwitch.js","kernel/constants.js","kernel/manager/persistence.js","kernel/manager/loggerManager.js","kernel/manager/cacheManager.js","kernel/manager/themeManager.js","kernel/manager/i18nManager.js","kernel/kernel.js"],"sourcesContent":["const local = {\n notfound: {\n home: \"Back to Home\"\n },\n defaultApp: {\n title: \"Welcome to Secra Framework\",\n description: \"Framework has been successfully started! Please provide your app component to get started.\",\n quickStart: {\n title: \"Quick Start\",\n description: \"Provide the app option in your startup configuration to render your application:\",\n code: \"import { start } from '@vlian/framework';\\nimport App from './App';\\n\\nstart({\\n app: <App />,\\n});\"\n },\n nextSteps: {\n title: \"Next Steps\",\n step1: \"Create your application root component (e.g., App.tsx)\",\n step2: \"Pass the app option in your startup configuration\",\n step3: \"Start developing your application features\"\n },\n footer: \"Secra Framework - Modern Low-Code Frontend Application Framework\"\n }\n};\nexport default local;\n\n//# sourceMappingURL=index.js.map","const local = {\n notfound: {\n home: \"回到首页\"\n },\n defaultApp: {\n title: \"欢迎使用 Secra Framework\",\n description: \"框架已成功启动!请提供您的应用组件以开始使用。\",\n quickStart: {\n title: \"快速开始\",\n description: \"在启动配置中提供 app 选项来渲染您的应用:\",\n code: \"import { start } from '@vlian/framework';\\nimport App from './App';\\n\\nstart({\\n app: <App />,\\n});\"\n },\n nextSteps: {\n title: \"下一步\",\n step1: \"创建您的应用根组件(如 App.tsx)\",\n step2: \"在启动配置中传入 app 选项\",\n step3: \"开始开发您的应用功能\"\n },\n footer: \"Secra Framework - 现代化的低代码前端应用框架\"\n }\n};\nexport default local;\n\n//# sourceMappingURL=index.js.map","import i18n from \"i18next\";\nimport { initReactI18next } from \"react-i18next\";\nimport enUS from \"./langs/en-us\";\nimport zhCN from \"./langs/zh-cn\";\n/** Setup plugin i18n */ export function setupI18n(otherLocales = {\n 'en-US': {},\n 'zh-CN': {}\n}) {\n const locales = {\n 'en-US': {\n translation: Object.assign({}, enUS, otherLocales['en-US'])\n },\n 'zh-CN': {\n translation: Object.assign({}, zhCN, otherLocales['zh-CN'])\n }\n };\n i18n.use(initReactI18next).init({\n interpolation: {\n escapeValue: false\n },\n lng: 'zh-cn',\n resources: locales\n });\n}\nexport const $t = i18n.t;\nexport function setLang(locale) {\n i18n.changeLanguage(locale);\n}\n\n//# sourceMappingURL=index.js.map","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 * 多级缓存管理器(使用 LRU 策略)\n */ export class MultiLevelCache {\n /**\n * 将节点移到链表头部(最近使用)\n */ moveToHead(node) {\n const nodeAsUnknown = node;\n if (nodeAsUnknown === this.head) {\n return;\n }\n // 从当前位置移除\n if (node.prev) {\n node.prev.next = node.next;\n }\n if (node.next) {\n node.next.prev = node.prev;\n }\n if (nodeAsUnknown === this.tail) {\n this.tail = node.prev;\n }\n // 移到头部\n node.prev = null;\n node.next = this.head;\n if (this.head) {\n this.head.prev = nodeAsUnknown;\n }\n this.head = nodeAsUnknown;\n if (!this.tail) {\n this.tail = nodeAsUnknown;\n }\n }\n /**\n * 移除尾部节点(最久未使用)\n */ removeTail() {\n if (!this.tail) {\n return;\n }\n const key = this.tail.key;\n this.memoryCache.delete(key);\n if (this.tail.prev) {\n this.tail.prev.next = null;\n this.tail = this.tail.prev;\n } else {\n this.head = null;\n this.tail = null;\n }\n }\n /**\n * 获取缓存\n */ async get(key) {\n // 先检查内存缓存\n const node = this.memoryCache.get(key);\n if (node) {\n const item = node.value;\n if (item.expiresAt > Date.now()) {\n // 移到头部(最近使用)\n this.moveToHead(node);\n return item.data;\n } else {\n // 已过期,删除\n this.memoryCache.delete(key);\n if (node === this.head) {\n this.head = node.next;\n }\n if (node === this.tail) {\n this.tail = node.prev;\n }\n if (node.prev) {\n node.prev.next = node.next;\n }\n if (node.next) {\n node.next.prev = node.prev;\n }\n }\n }\n // 检查存储缓存\n try {\n const stored = await this.storage.get(key);\n if (stored) {\n const item = JSON.parse(stored);\n if (item.expiresAt > Date.now()) {\n // 更新内存缓存(使用 LRU)\n this.setInMemory(key, item);\n return item.data;\n } else {\n // 已过期,删除\n await this.storage.remove(key);\n }\n }\n } catch (error) {\n // 忽略解析错误\n }\n return null;\n }\n /**\n * 在内存中设置缓存(LRU)\n */ setInMemory(key, item) {\n let node = this.memoryCache.get(key);\n if (node) {\n // 更新现有节点\n node.value = item;\n this.moveToHead(node);\n } else {\n // 创建新节点\n node = {\n key,\n value: item,\n prev: null,\n next: this.head\n };\n if (this.head) {\n this.head.prev = node;\n }\n this.head = node;\n if (!this.tail) {\n this.tail = node;\n }\n this.memoryCache.set(key, node);\n // 如果超过最大大小,移除最久未使用的\n if (this.memoryCache.size > this.config.maxSize) {\n this.removeTail();\n }\n }\n }\n /**\n * 设置缓存\n */ async set(key, data, ttl) {\n const expiresAt = Date.now() + (ttl || this.config.defaultTTL);\n const item = {\n data,\n expiresAt,\n createdAt: Date.now()\n };\n // 更新内存缓存(使用 LRU)\n this.setInMemory(key, item);\n // 更新存储缓存\n try {\n await this.storage.set(key, item);\n } catch (error) {\n // 忽略存储错误\n }\n }\n /**\n * 删除缓存\n */ async delete(key) {\n const node = this.memoryCache.get(key);\n if (node) {\n // 从链表中移除\n if (node.prev) {\n node.prev.next = node.next;\n }\n if (node.next) {\n node.next.prev = node.prev;\n }\n if (node === this.head) {\n this.head = node.next;\n }\n if (node === this.tail) {\n this.tail = node.prev;\n }\n this.memoryCache.delete(key);\n }\n try {\n await this.storage.remove(key);\n } catch (error) {\n // 忽略删除错误\n }\n }\n /**\n * 清空缓存\n */ async clear() {\n this.memoryCache.clear();\n // 注意:这里不清空 storage,因为可能包含其他数据\n }\n /**\n * 清理过期项(优化版本:批量删除,减少 DOM 操作)\n */ async cleanup() {\n const now = Date.now();\n const keysToDelete = [];\n const nodesToRemove = [];\n // 批量收集需要删除的项\n for (const [key, node] of this.memoryCache.entries()){\n if (node.value.expiresAt <= now) {\n keysToDelete.push(key);\n nodesToRemove.push(node);\n }\n }\n // 批量删除(优化性能)\n if (keysToDelete.length > 0) {\n // 从链表中移除节点\n for (const node of nodesToRemove){\n if (node.prev) {\n node.prev.next = node.next;\n }\n if (node.next) {\n node.next.prev = node.prev;\n }\n if (node === this.head) {\n this.head = node.next;\n }\n if (node === this.tail) {\n this.tail = node.prev;\n }\n }\n // 批量删除 Map 中的项\n keysToDelete.forEach((key)=>this.memoryCache.delete(key));\n }\n // 注意:存储缓存的清理由存储系统自己处理(通过过期时间)\n }\n constructor(storage, config = {}){\n _define_property(this, \"memoryCache\", new Map());\n _define_property(this, \"storage\", void 0);\n _define_property(this, \"config\", void 0);\n _define_property(this, \"head\", null);\n _define_property(this, \"tail\", null);\n this.storage = storage;\n this.config = {\n defaultTTL: config.defaultTTL ?? 24 * 60 * 60 * 1000,\n maxSize: config.maxSize ?? 100\n };\n }\n}\n\n//# sourceMappingURL=cache.js.map","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 { createStorage } from \"@vlian/utils\";\nimport { MultiLevelCache } from \"./cache\";\nlet Storage = class Storage {\n get local() {\n return this._local;\n }\n get session() {\n return this._session;\n }\n get indexedDB() {\n return this._indexedDB;\n }\n /**\n * 获取本地存储缓存\n */ get localCache() {\n return this._localCache;\n }\n /**\n * 获取会话存储缓存\n */ get sessionCache() {\n return this._sessionCache;\n }\n /**\n * 获取单例实例\n *\n * @returns Singleton 实例\n */ static getInstance() {\n if (!Storage.instance) {\n Storage.instance = new Storage();\n }\n return Storage.instance;\n }\n initialize(options) {\n const local = createStorage({\n type: 'local',\n prefix: options?.prefix || 'vlian',\n defaultExpire: options?.defaultExpire || 24 * 60 * 60 * 1000\n });\n const session = createStorage({\n type: 'session',\n prefix: options?.prefix || 'vlian',\n defaultExpire: options?.defaultExpire || 24 * 60 * 60 * 1000\n });\n const indexedDB = createStorage({\n type: 'indexedDB',\n prefix: options?.prefix || 'vlian',\n defaultExpire: options?.defaultExpire || 24 * 60 * 60 * 1000,\n dbName: options?.tableName\n });\n this._local = local;\n this._session = session;\n this._indexedDB = indexedDB;\n // 初始化缓存\n this.cacheEnabled = options?.cache?.enabled ?? false;\n if (this.cacheEnabled) {\n this._localCache = new MultiLevelCache(local, {\n defaultTTL: options?.cache?.defaultTTL,\n maxSize: options?.cache?.maxSize\n });\n this._sessionCache = new MultiLevelCache(session, {\n defaultTTL: options?.cache?.defaultTTL,\n maxSize: options?.cache?.maxSize\n });\n }\n }\n /**\n * 清理过期缓存\n */ async cleanupCache() {\n if (this._localCache) {\n await this._localCache.cleanup();\n }\n if (this._sessionCache) {\n await this._sessionCache.cleanup();\n }\n }\n /**\n * 私有构造函数,防止外部直接实例化\n */ constructor(){\n _define_property(this, \"_local\", void 0);\n _define_property(this, \"_session\", void 0);\n _define_property(this, \"_indexedDB\", void 0);\n _define_property(this, \"_localCache\", void 0);\n _define_property(this, \"_sessionCache\", void 0);\n _define_property(this, \"cacheEnabled\", false);\n // 私有构造函数\n }\n};\n_define_property(Storage, \"instance\", null);\nexport const storage = Storage.getInstance();\nexport { MultiLevelCache } from \"./cache\";\nexport { EncryptionUtils } from \"./encryption\";\n\n//# sourceMappingURL=index.js.map","/**\n * 插件沙箱\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 */ export var PluginPermission = /*#__PURE__*/ function(PluginPermission) {\n /**\n * 访问配置\n */ PluginPermission[\"ACCESS_CONFIG\"] = \"access_config\";\n /**\n * 访问状态管理器\n */ PluginPermission[\"ACCESS_STATE_MANAGER\"] = \"access_state_manager\";\n /**\n * 访问存储\n */ PluginPermission[\"ACCESS_STORAGE\"] = \"access_storage\";\n /**\n * 发布事件\n */ PluginPermission[\"EMIT_EVENTS\"] = \"emit_events\";\n /**\n * 订阅事件\n */ PluginPermission[\"SUBSCRIBE_EVENTS\"] = \"subscribe_events\";\n return PluginPermission;\n}({});\n/**\n * 插件沙箱\n */ export class PluginSandbox {\n /**\n * 检查权限\n * \n * @param permission - 权限\n * @returns 是否有权限\n */ hasPermission(permission) {\n if (!this.config.strictMode) {\n return true; // 非严格模式,允许所有权限\n }\n return this.permissions.has(permission);\n }\n /**\n * 检查是否可以访问配置键\n * \n * @param key - 配置键\n * @returns 是否可以访问\n */ canAccessConfig(key) {\n if (!this.hasPermission(\"access_config\")) {\n return false;\n }\n if (this.config.configWhitelist && this.config.configWhitelist.length > 0) {\n return this.config.configWhitelist.includes(key);\n }\n return true;\n }\n /**\n * 检查是否可以访问状态作用域\n * \n * @param scope - 状态作用域\n * @returns 是否可以访问\n */ canAccessStateScope(scope) {\n if (!this.hasPermission(\"access_state_manager\")) {\n return false;\n }\n if (this.config.stateScopeWhitelist && this.config.stateScopeWhitelist.length > 0) {\n return this.config.stateScopeWhitelist.includes(scope);\n }\n return true;\n }\n /**\n * 过滤配置(根据白名单)\n * \n * @param config - 完整配置\n * @returns 过滤后的配置\n */ filterConfig(config) {\n if (!this.hasPermission(\"access_config\")) {\n return {};\n }\n if (!this.config.configWhitelist || this.config.configWhitelist.length === 0) {\n return config;\n }\n const filtered = {};\n for (const key of this.config.configWhitelist){\n if (key in config) {\n filtered[key] = config[key];\n }\n }\n return filtered;\n }\n /**\n * 获取沙箱配置\n */ getConfig() {\n return {\n ...this.config\n };\n }\n /**\n * 更新权限\n * \n * @param permissions - 权限列表\n */ updatePermissions(permissions) {\n this.permissions = new Set(permissions);\n this.config.permissions = permissions;\n }\n constructor(config){\n _define_property(this, \"config\", void 0);\n _define_property(this, \"permissions\", void 0);\n this.config = {\n strictMode: true,\n ...config\n };\n this.permissions = new Set(config.permissions || []);\n }\n}\n\n//# sourceMappingURL=PluginSandbox.js.map","/**\n * 插件事件总线\n * 用于插件间通信\n */ /**\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 */ export class PluginEventBus {\n /**\n * 订阅事件\n * \n * @param event - 事件名称\n * @param listener - 事件监听器(可以接收 EventWrapper 或直接数据)\n * @returns 取消订阅函数\n */ on(event, listener) {\n if (!this.listeners.has(event)) {\n this.listeners.set(event, new Set());\n }\n const listeners = this.listeners.get(event);\n listeners.add(listener);\n // 返回取消订阅函数\n return ()=>{\n listeners.delete(listener);\n if (listeners.size === 0) {\n this.listeners.delete(event);\n }\n };\n }\n /**\n * 取消订阅事件\n * \n * @param event - 事件名称\n * @param listener - 事件监听器\n */ off(event, listener) {\n const listeners = this.listeners.get(event);\n if (listeners) {\n listeners.delete(listener);\n if (listeners.size === 0) {\n this.listeners.delete(event);\n }\n }\n }\n /**\n * 发布事件\n * \n * @param event - 事件名称\n * @param data - 事件数据\n * @param metadata - 事件元数据(可选)\n */ async emit(event, data, metadata) {\n // 事件验证\n if (this.config.enableValidation && !this.config.validator(event, data)) {\n console.warn(`事件 ${event} 验证失败,已忽略`);\n return;\n }\n // 构建事件元数据\n const eventMetadata = {\n source: metadata?.source,\n timestamp: metadata?.timestamp ?? Date.now(),\n eventId: metadata?.eventId ?? `event_${++this.eventCounter}`,\n priority: metadata?.priority ?? 0\n };\n // 记录事件历史\n if (this.config.enableTracking) {\n this.eventHistory.push({\n event,\n data,\n metadata: eventMetadata\n });\n // 限制历史记录大小\n if (this.eventHistory.length > this.config.maxHistorySize) {\n this.eventHistory.shift();\n }\n }\n const listeners = this.listeners.get(event);\n if (!listeners || listeners.size === 0) {\n return;\n }\n // 创建事件包装器\n const eventWrapper = {\n data: data,\n metadata: eventMetadata\n };\n // 按优先级排序监听器(如果有优先级)\n const sortedListeners = Array.from(listeners);\n // 并行执行所有监听器\n const promises = sortedListeners.map((listener)=>{\n try {\n return Promise.resolve(listener(eventWrapper));\n } catch (error) {\n console.error(`事件 ${event} 的监听器执行失败:`, error);\n return Promise.resolve();\n }\n });\n await Promise.allSettled(promises);\n }\n /**\n * 发布事件(仅数据,向后兼容)\n * \n * @param event - 事件名称\n * @param data - 事件数据\n */ async emitData(event, data) {\n return this.emit(event, data);\n }\n /**\n * 一次性订阅事件\n * \n * @param event - 事件名称\n * @param listener - 事件监听器\n */ once(event, listener) {\n const wrappedListener = async (data)=>{\n // 处理 EventWrapper 或直接数据\n const actualData = data.data !== undefined ? data.data : data;\n await listener(actualData);\n this.off(event, wrappedListener);\n };\n this.on(event, wrappedListener);\n }\n /**\n * 清空所有事件监听器\n */ clear() {\n this.listeners.clear();\n }\n /**\n * 获取事件监听器数量\n * \n * @param event - 事件名称,如果不提供则返回所有事件的监听器总数\n */ listenerCount(event) {\n if (event) {\n return this.listeners.get(event)?.size || 0;\n }\n let count = 0;\n for (const listeners of this.listeners.values()){\n count += listeners.size;\n }\n return count;\n }\n /**\n * 获取所有事件名称\n */ eventNames() {\n return Array.from(this.listeners.keys());\n }\n /**\n * 获取事件历史记录\n * \n * @param event - 事件名称(可选,如果提供则只返回该事件的历史)\n * @param limit - 限制返回的记录数\n * @returns 事件历史记录\n */ getEventHistory(event, limit) {\n if (!this.config.enableTracking) {\n return [];\n }\n let history = this.eventHistory;\n if (event) {\n history = history.filter((h)=>h.event === event);\n }\n if (limit) {\n history = history.slice(-limit);\n }\n return [\n ...history\n ];\n }\n /**\n * 清空事件历史记录\n */ clearHistory() {\n this.eventHistory = [];\n }\n /**\n * 请求-响应模式:发送请求并等待响应\n * \n * @param event - 事件名称\n * @param data - 请求数据\n * @param timeout - 超时时间(毫秒)\n * @returns 响应数据\n */ async request(event, data, timeout = 5000) {\n return new Promise((resolve, reject)=>{\n const responseEvent = `${event}:response`;\n const requestId = `req_${Date.now()}_${Math.random()}`;\n // 设置超时\n const timeoutId = setTimeout(()=>{\n this.off(responseEvent, responseHandler);\n reject(new Error(`请求 ${event} 超时`));\n }, timeout);\n // 响应处理器\n const responseHandler = (response)=>{\n // 处理 EventWrapper 或直接数据\n const actualResponse = response.data !== undefined ? response.data : response;\n if (actualResponse.requestId === requestId) {\n clearTimeout(timeoutId);\n this.off(responseEvent, responseHandler);\n resolve(actualResponse.data);\n }\n };\n // 订阅响应事件\n this.on(responseEvent, responseHandler);\n // 发送请求\n this.emit(`${event}:request`, {\n requestId,\n data\n });\n });\n }\n /**\n * 请求-响应模式:注册请求处理器\n * \n * @param event - 事件名称\n * @param handler - 请求处理器\n * @returns 取消注册函数\n */ onRequest(event, handler) {\n const requestEvent = `${event}:request`;\n const responseEvent = `${event}:response`;\n return this.on(requestEvent, async (wrapper)=>{\n try {\n // 处理 EventWrapper 或直接数据\n const actualWrapper = wrapper.data !== undefined ? wrapper : {\n data: wrapper,\n metadata: {\n timestamp: Date.now()\n }\n };\n const response = await handler(actualWrapper.data.data, actualWrapper.metadata);\n this.emit(responseEvent, {\n requestId: actualWrapper.data.requestId,\n data: response\n });\n } catch (error) {\n const actualWrapper = wrapper.data !== undefined ? wrapper : {\n data: wrapper\n };\n this.emit(`${responseEvent}:error`, {\n requestId: actualWrapper.data.requestId,\n error: error instanceof Error ? error.message : String(error)\n });\n }\n });\n }\n /**\n * 获取配置\n */ getConfig() {\n return {\n ...this.config\n };\n }\n /**\n * 更新配置\n */ updateConfig(config) {\n this.config = {\n ...this.config,\n ...config\n };\n }\n constructor(config = {}){\n _define_property(this, \"listeners\", new Map());\n _define_property(this, \"eventHistory\", []);\n _define_property(this, \"config\", void 0);\n _define_property(this, \"eventCounter\", 0);\n this.config = {\n enableTracking: config.enableTracking ?? false,\n maxHistorySize: config.maxHistorySize ?? 100,\n enableValidation: config.enableValidation ?? false,\n validator: config.validator ?? (()=>true)\n };\n }\n}\n/**\n * 全局插件事件总线实例\n */ export const pluginEventBus = new PluginEventBus({\n enableTracking: process.env.NODE_ENV === 'development',\n maxHistorySize: 100,\n enableValidation: false\n});\n\n//# sourceMappingURL=PluginEventBus.js.map","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 { PluginSandbox } from \"./plugin/PluginSandbox\";\nimport { pluginEventBus } from \"./plugin/PluginEventBus\";\n/**\n * 插件管理器\n *\n * 优化:\n * 1. 支持插件依赖管理\n * 2. 支持插件优先级控制\n * 3. 支持插件生命周期管理\n * 4. 支持插件热插拔(动态加载/卸载)\n */ export class PluginManager {\n /**\n * 注册插件\n *\n * 优化:检查插件依赖是否已注册\n */ register(plugin) {\n if (this.plugins.has(plugin.name)) {\n console.warn(`插件 ${plugin.name} 已存在,将被覆盖`);\n }\n // 检查依赖是否已注册\n if (plugin.dependencies && plugin.dependencies.length > 0) {\n const missingDeps = plugin.dependencies.filter((dep)=>!this.plugins.has(dep));\n if (missingDeps.length > 0) {\n console.warn(`插件 ${plugin.name} 的依赖未注册: ${missingDeps.join(', ')}`);\n }\n }\n this.plugins.set(plugin.name, plugin);\n this.pluginStatus.set(plugin.name, 'registered');\n // 创建插件沙箱\n if (plugin.sandbox) {\n const sandbox = new PluginSandbox({\n ...plugin.sandbox,\n name: plugin.name\n });\n this.sandboxes.set(plugin.name, sandbox);\n } else {\n // 如果没有配置沙箱,创建默认沙箱(非严格模式)\n const sandbox = new PluginSandbox({\n strictMode: false,\n name: plugin.name\n });\n this.sandboxes.set(plugin.name, sandbox);\n }\n }\n /**\n * 获取插件加载顺序(考虑依赖和优先级)\n *\n * @returns 插件名称数组,按加载顺序排列\n */ getLoadOrder() {\n const plugins = Array.from(this.plugins.values());\n // 按优先级排序\n const sortedPlugins = plugins.sort((a, b)=>{\n const priorityA = a.priority ?? 100;\n const priorityB = b.priority ?? 100;\n return priorityA - priorityB;\n });\n // 构建依赖图并拓扑排序\n const visited = new Set();\n const visiting = new Set();\n const result = [];\n const visit = (pluginName)=>{\n if (visiting.has(pluginName)) {\n console.warn(`检测到循环依赖,涉及插件: ${pluginName}`);\n return;\n }\n if (visited.has(pluginName)) {\n return;\n }\n visiting.add(pluginName);\n const plugin = this.plugins.get(pluginName);\n if (plugin?.dependencies) {\n for (const dep of plugin.dependencies){\n visit(dep);\n }\n }\n visiting.delete(pluginName);\n visited.add(pluginName);\n result.push(pluginName);\n };\n for (const plugin of sortedPlugins){\n visit(plugin.name);\n }\n return result;\n }\n /**\n * 注销插件\n */ unregister(name) {\n const plugin = this.plugins.get(name);\n if (plugin && plugin.destroy) {\n plugin.destroy();\n }\n this.plugins.delete(name);\n this.sandboxes.delete(name);\n this.pluginStatus.delete(name);\n this.pluginLoaders.delete(name);\n }\n /**\n * 动态加载插件(热插拔)\n *\n * @param options - 插件加载选项\n * @returns 加载的插件\n */ async loadPlugin(options) {\n let plugin;\n if (options.url) {\n // 从URL加载插件\n const response = await fetch(options.url);\n if (!response.ok) {\n throw new Error(`无法加载插件: ${options.url} (${response.status})`);\n }\n const pluginModule = await response.json();\n plugin = pluginModule.default || pluginModule;\n } else if (options.modulePath) {\n // 从模块路径动态导入\n const pluginModule = await import(/* @vite-ignore */ options.modulePath);\n plugin = pluginModule.default || pluginModule;\n } else {\n throw new Error('必须提供 url 或 modulePath');\n }\n if (!plugin || !plugin.name) {\n throw new Error('插件格式无效:必须包含 name 属性');\n }\n // 检查插件是否已加载\n if (this.plugins.has(plugin.name)) {\n throw new Error(`插件 ${plugin.name} 已加载`);\n }\n // 设置加载状态\n this.pluginStatus.set(plugin.name, 'loading');\n try {\n // 注册插件\n this.register(plugin);\n // 如果要求立即初始化\n if (options.initialize && options.initContext && options.startOptions) {\n await this.initializePlugin(plugin.name, options.startOptions, options.initContext);\n }\n return plugin;\n } catch (error) {\n this.pluginStatus.delete(plugin.name);\n throw error;\n }\n }\n /**\n * 初始化单个插件\n *\n * @param name - 插件名称\n * @param options - 启动选项\n * @param context - 初始化上下文\n */ async initializePlugin(name, options, context) {\n const plugin = this.plugins.get(name);\n if (!plugin) {\n throw new Error(`插件 ${name} 未注册`);\n }\n const status = this.pluginStatus.get(name);\n if (status === 'initialized') {\n return; // 已经初始化\n }\n try {\n const sandbox = this.sandboxes.get(name);\n if (!sandbox) {\n throw new Error(`插件 ${name} 的沙箱未找到`);\n }\n // 执行初始化钩子\n if (plugin.init) {\n const filteredOptions = sandbox.filterConfig(options);\n await plugin.init(filteredOptions, context, sandbox, pluginEventBus);\n }\n this.pluginStatus.set(name, 'initialized');\n } catch (error) {\n console.error(`插件 ${name} 初始化失败:`, error);\n throw error;\n }\n }\n /**\n * 卸载插件(热插拔)\n *\n * @param name - 插件名称\n * @param force - 是否强制卸载(即使有依赖)\n */ async unloadPlugin(name, force = false) {\n const plugin = this.plugins.get(name);\n if (!plugin) {\n throw new Error(`插件 ${name} 未加载`);\n }\n // 检查是否有其他插件依赖此插件\n if (!force) {\n const dependents = Array.from(this.plugins.values()).filter((p)=>p.dependencies && p.dependencies.includes(name));\n if (dependents.length > 0) {\n throw new Error(`无法卸载插件 ${name},以下插件依赖它: ${dependents.map((p)=>p.name).join(', ')}`);\n }\n }\n // 执行销毁钩子\n if (plugin.destroy) {\n try {\n await plugin.destroy();\n } catch (error) {\n console.error(`插件 ${name} 的 destroy 钩子执行失败:`, error);\n }\n }\n // 从事件总线移除相关监听器(如果有)\n // 注意:事件总线是全局的,这里只移除插件相关的事件\n // 实际实现可能需要更细粒度的控制\n // 清理插件\n this.unregister(name);\n this.pluginStatus.set(name, 'destroyed');\n }\n /**\n * 检查插件是否可以热加载\n *\n * @param plugin - 插件\n * @returns 是否可以热加载\n */ canHotLoad(plugin) {\n // 检查依赖是否都已加载\n if (plugin.dependencies && plugin.dependencies.length > 0) {\n const missingDeps = plugin.dependencies.filter((dep)=>!this.plugins.has(dep));\n if (missingDeps.length > 0) {\n return false;\n }\n }\n return true;\n }\n /**\n * 注册插件加载器(用于延迟加载)\n *\n * @param name - 插件名称\n * @param loader - 加载器函数\n */ registerLoader(name, loader) {\n this.pluginLoaders.set(name, loader);\n }\n /**\n * 使用加载器加载插件\n *\n * @param name - 插件名称\n * @param options - 加载选项\n * @returns 加载的插件\n */ async loadPluginByLoader(name, options) {\n const loader = this.pluginLoaders.get(name);\n if (!loader) {\n throw new Error(`插件 ${name} 的加载器未注册`);\n }\n const plugin = await loader();\n if (!plugin || !plugin.name) {\n throw new Error('插件格式无效:必须包含 name 属性');\n }\n if (plugin.name !== name) {\n throw new Error(`插件名称不匹配: 期望 ${name},实际 ${plugin.name}`);\n }\n // 检查插件是否已加载\n if (this.plugins.has(plugin.name)) {\n return this.plugins.get(plugin.name);\n }\n // 设置加载状态\n this.pluginStatus.set(plugin.name, 'loading');\n try {\n // 注册插件\n this.register(plugin);\n // 如果要求立即初始化\n if (options?.initialize && options.initContext && options.startOptions) {\n await this.initializePlugin(plugin.name, options.startOptions, options.initContext);\n }\n return plugin;\n } catch (error) {\n this.pluginStatus.delete(plugin.name);\n throw error;\n }\n }\n /**\n * 获取插件\n */ get(name) {\n return this.plugins.get(name);\n }\n /**\n * 获取所有插件\n */ getAll() {\n return Array.from(this.plugins.values());\n }\n /**\n * 执行初始化前钩子\n *\n * 优化:按依赖顺序执行\n */ async executeBeforeInit(options) {\n const loadOrder = this.getLoadOrder();\n for (const pluginName of loadOrder){\n const plugin = this.plugins.get(pluginName);\n if (!plugin || !plugin.beforeInit) {\n continue;\n }\n try {\n const sandbox = this.sandboxes.get(plugin.name);\n if (!sandbox) {\n console.warn(`插件 ${plugin.name} 的沙箱未找到`);\n continue;\n }\n // 根据沙箱配置过滤选项\n const filteredOptions = sandbox.filterConfig(options);\n await plugin.beforeInit(filteredOptions, sandbox, pluginEventBus);\n } catch (error) {\n console.error(`插件 ${plugin.name} 的 beforeInit 钩子执行失败:`, error);\n }\n }\n }\n /**\n * 执行初始化钩子\n *\n * 优化:按依赖顺序执行,并更新插件状态\n */ async executeInit(options, context) {\n const loadOrder = this.getLoadOrder();\n for (const pluginName of loadOrder){\n const plugin = this.plugins.get(pluginName);\n if (!plugin || !plugin.init) {\n continue;\n }\n try {\n const sandbox = this.sandboxes.get(plugin.name);\n if (!sandbox) {\n console.warn(`插件 ${plugin.name} 的沙箱未找到`);\n continue;\n }\n // 根据沙箱配置过滤选项\n const filteredOptions = sandbox.filterConfig(options);\n await plugin.init(filteredOptions, context, sandbox, pluginEventBus);\n this.pluginStatus.set(plugin.name, 'initialized');\n } catch (error) {\n console.error(`插件 ${plugin.name} 的 init 钩子执行失败:`, error);\n }\n }\n }\n /**\n * 执行初始化后钩子\n *\n * 优化:按依赖顺序执行(逆序,确保依赖插件先执行)\n */ async executeAfterInit(options, context) {\n const loadOrder = this.getLoadOrder();\n // 逆序执行,确保依赖插件先执行\n const reverseOrder = [\n ...loadOrder\n ].reverse();\n for (const pluginName of reverseOrder){\n const plugin = this.plugins.get(pluginName);\n if (!plugin || !plugin.afterInit) {\n continue;\n }\n try {\n const sandbox = this.sandboxes.get(plugin.name);\n if (!sandbox) {\n console.warn(`插件 ${plugin.name} 的沙箱未找到`);\n continue;\n }\n // 根据沙箱配置过滤选项\n const filteredOptions = sandbox.filterConfig(options);\n await plugin.afterInit(filteredOptions, context, sandbox, pluginEventBus);\n } catch (error) {\n console.error(`插件 ${plugin.name} 的 afterInit 钩子执行失败:`, error);\n }\n }\n }\n /**\n * 获取插件状态\n *\n * @param name - 插件名称\n * @returns 插件状态\n */ getPluginStatus(name) {\n return this.pluginStatus.get(name);\n }\n /**\n * 检查插件是否已加载\n *\n * @param name - 插件名称\n * @returns 是否已加载\n */ isLoaded(name) {\n return this.plugins.has(name);\n }\n /**\n * 获取已加载的插件列表\n *\n * @returns 插件名称数组\n */ getLoadedPlugins() {\n return Array.from(this.plugins.keys());\n }\n /**\n * 获取所有插件状态\n *\n * @returns 插件状态映射\n */ getAllPluginStatus() {\n return new Map(this.pluginStatus);\n }\n /**\n * 获取插件沙箱\n *\n * @param name - 插件名称\n * @returns 插件沙箱或undefined\n */ getSandbox(name) {\n return this.sandboxes.get(name);\n }\n /**\n * 获取事件总线\n */ getEventBus() {\n return pluginEventBus;\n }\n /**\n * 销毁所有插件\n */ async destroyAll() {\n for (const plugin of this.plugins.values()){\n if (plugin.destroy) {\n try {\n await plugin.destroy();\n } catch (error) {\n console.error(`插件 ${plugin.name} 的 destroy 钩子执行失败:`, error);\n }\n }\n }\n this.plugins.clear();\n }\n constructor(){\n _define_property(this, \"plugins\", new Map());\n _define_property(this, \"sandboxes\", new Map());\n _define_property(this, \"pluginStatus\", new Map());\n _define_property(this, \"pluginLoaders\", new Map());\n }\n}\n/**\n * 默认插件管理器\n */ export const pluginManager = new PluginManager();\n// 导出插件相关类型和工具\nexport { PluginSandbox, PluginPermission } from \"./plugin/PluginSandbox\";\nexport { PluginEventBus, pluginEventBus } from \"./plugin/PluginEventBus\";\n\n//# sourceMappingURL=plugin.js.map","import { logger, LogLevel } from \"@vlian/logger\";\nimport { setupI18n } from \"../../library\";\nimport { pluginManager } from \"../plugin\";\n/**\n * 初始化方法\n * \n * 这是核心的初始化逻辑,可被启动页或直接调用\n * \n * @param options - 初始化选项\n * @param onProgress - 进度回调函数(可选)\n * @returns Promise<InitializationContext>\n * \n * @example\n * ```typescript\n * const context = await initialization({\n * loggerLevel: LogLevel.INFO,\n * lifecycle: {\n * initialization: async () => {\n * // 初始化逻辑\n * },\n * },\n * }, (progress, step) => {\n * console.log(`进度: ${progress}%, 步骤: ${step}`);\n * });\n * ```\n */ export async function initialization(options, onProgress) {\n const startTime = Date.now();\n let config = {};\n try {\n // 0. 执行插件初始化前钩子\n await pluginManager.executeBeforeInit(options);\n // 1. 设置日志级别\n onProgress?.(5, '初始化日志系统...');\n logger.setLevel(options.loggerLevel ?? LogLevel.INFO);\n // 2. 预留配置阶段\n onProgress?.(30);\n // 3. 初始化之前回调\n if (options.lifecycle?.beforeInitialization) {\n onProgress?.(35, '执行初始化前回调...');\n await options.lifecycle.beforeInitialization();\n }\n // 4. 国际化设置\n onProgress?.(40, '设置国际化...');\n setupI18n(options.locale || undefined);\n // 5. 核心初始化\n if (options.lifecycle?.initialization) {\n onProgress?.(50, '初始化核心功能...');\n await options.lifecycle.initialization();\n onProgress?.(70, '核心功能初始化完成');\n } else {\n onProgress?.(70);\n }\n onProgress?.(80, '准备完成...');\n const duration = Date.now() - startTime;\n const context = {\n config,\n progress: 100,\n isReady: true,\n duration\n };\n // 执行插件初始化钩子\n await pluginManager.executeInit(options, context);\n // 执行插件初始化后钩子\n await pluginManager.executeAfterInit(options, context);\n // 6. 初始化之后回调(在 context 创建后执行,可以访问完整的初始化上下文)\n if (options.lifecycle?.afterInitialization) {\n onProgress?.(90, '执行初始化后回调...');\n await options.lifecycle.afterInitialization(context);\n }\n onProgress?.(100, '初始化完成');\n return context;\n } catch (error) {\n logger.error('初始化失败:', error);\n throw error;\n }\n}\n\n//# sourceMappingURL=initialization.js.map","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 { errorUtils } from \"@vlian/utils\";\n/**\n * 初始化错误状态管理器\n * \n * 用于在初始化过程中捕获和存储错误,以便 ErrorBoundary 能够捕获并显示\n */ let InitializationErrorState = class InitializationErrorState {\n /**\n * 设置错误\n */ setError(error) {\n this.error = errorUtils.normalizeError(error);\n // 通知所有监听器\n this.listeners.forEach((listener)=>listener());\n }\n /**\n * 获取错误\n */ getError() {\n return this.error;\n }\n /**\n * 清除错误\n */ clearError() {\n this.error = null;\n this.listeners.forEach((listener)=>listener());\n }\n /**\n * 订阅错误变化\n */ subscribe(listener) {\n this.listeners.add(listener);\n return ()=>{\n this.listeners.delete(listener);\n };\n }\n /**\n * 检查是否有错误\n */ hasError() {\n return this.error !== null;\n }\n constructor(){\n _define_property(this, \"error\", null);\n _define_property(this, \"listeners\", new Set());\n }\n};\n/**\n * 全局初始化错误状态管理器实例\n */ export const initializationErrorState = new InitializationErrorState();\n\n//# sourceMappingURL=initializationErrorState.js.map","import React, { useEffect, useState } from \"react\";\nimport { initializationErrorState } from \"./initializationErrorState\";\n/**\n * 初始化错误抛出组件\n * \n * 当检测到初始化错误时,主动抛出错误给 ErrorBoundary 捕获\n */ export const InitializationErrorThrower = ()=>{\n const [error, setError] = useState(null);\n useEffect(()=>{\n // 检查初始错误\n const currentError = initializationErrorState.getError();\n if (currentError) {\n setError(currentError);\n return;\n }\n // 订阅错误变化\n const unsubscribe = initializationErrorState.subscribe(()=>{\n const newError = initializationErrorState.getError();\n setError(newError);\n });\n return unsubscribe;\n }, []);\n // 如果有错误,抛出错误给 ErrorBoundary\n if (error) {\n throw error;\n }\n return null;\n};\n\n//# sourceMappingURL=InitializationErrorThrower.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport React, { useEffect, useState, useRef, memo, useCallback } from \"react\";\nimport { logger } from \"@vlian/logger\";\nimport { initialization, initializationErrorState } from \"../initialization\";\n/**\n * 启动页组件\n * \n * 在启动页中执行初始化,并使用 Ant Design 5 的 Spin 和 Progress 组件展示启动进度\n */ const SplashScreen = /*#__PURE__*/ memo(({ options, onComplete })=>{\n const [progress, setProgress] = useState(0);\n const [currentStep, setCurrentStep] = useState('准备初始化...');\n const [isInitializing, setIsInitializing] = useState(false);\n const [estimatedTime, setEstimatedTime] = useState(null);\n const [isSystemDark, setIsSystemDark] = useState(()=>{\n if (typeof window === 'undefined') {\n return false;\n }\n return window.matchMedia('(prefers-color-scheme: dark)').matches;\n });\n const hasCompletedRef = useRef(false);\n const onCompleteRef = useRef(onComplete);\n const optionsRef = useRef(options);\n const startTimeRef = useRef(Date.now());\n const minDisplayTimeRef = useRef(options.minSplashScreenTime ?? 500); // 最小显示时间,默认 500ms\n const progressUpdateTimerRef = useRef(null);\n const rafRef = useRef(null);\n const lastProgressRef = useRef(0);\n const progressHistoryRef = useRef([]);\n // 保持引用最新\n useEffect(()=>{\n onCompleteRef.current = onComplete;\n optionsRef.current = options;\n minDisplayTimeRef.current = options.minSplashScreenTime ?? 500;\n }, [\n onComplete,\n options\n ]);\n // 自适应防抖进度更新函数(使用 requestAnimationFrame 优化)\n const debouncedProgressUpdate = useCallback((progressValue, step)=>{\n // 取消之前的更新\n if (rafRef.current !== null) {\n cancelAnimationFrame(rafRef.current);\n }\n // 记录进度历史用于时间预估\n const now = Date.now();\n progressHistoryRef.current.push({\n progress: progressValue,\n time: now\n });\n // 只保留最近10个记录\n if (progressHistoryRef.current.length > 10) {\n progressHistoryRef.current.shift();\n }\n // 计算预估时间\n if (progressHistoryRef.current.length >= 2 && progressValue > 0) {\n const history = progressHistoryRef.current;\n const first = history[0];\n const last = history[history.length - 1];\n const progressDelta = last.progress - first.progress;\n const timeDelta = last.time - first.time;\n if (progressDelta > 0 && timeDelta > 0) {\n const progressPerMs = progressDelta / timeDelta;\n const remainingProgress = 100 - progressValue;\n const estimatedMs = remainingProgress / progressPerMs;\n setEstimatedTime(Math.max(0, Math.round(estimatedMs)));\n }\n }\n // 使用 requestAnimationFrame 优化更新\n rafRef.current = requestAnimationFrame(()=>{\n setProgress(progressValue);\n if (step) {\n setCurrentStep(step);\n }\n lastProgressRef.current = progressValue;\n rafRef.current = null;\n });\n }, []);\n useEffect(()=>{\n if (hasCompletedRef.current) return;\n hasCompletedRef.current = true;\n startTimeRef.current = Date.now();\n const performInitialization = async ()=>{\n try {\n setIsInitializing(true);\n setProgress(0);\n setCurrentStep('开始初始化...');\n logger.info('启动页开始执行初始化');\n // 执行初始化,传入防抖的进度回调\n const context = await initialization(optionsRef.current, (progressValue, step)=>{\n debouncedProgressUpdate(progressValue, step);\n });\n logger.info('启动页初始化完成', context);\n // 动态调整最小显示时间(如果初始化很快,减少最小显示时间)\n const elapsedTime = Date.now() - startTimeRef.current;\n const dynamicMinTime = elapsedTime < 200 ? Math.min(minDisplayTimeRef.current, 300) : minDisplayTimeRef.current;\n const remainingTime = Math.max(0, dynamicMinTime - elapsedTime);\n if (remainingTime > 0) {\n await new Promise((resolve)=>setTimeout(resolve, remainingTime));\n }\n // 清理防抖定时器\n if (progressUpdateTimerRef.current) {\n clearTimeout(progressUpdateTimerRef.current);\n progressUpdateTimerRef.current = null;\n }\n // 确保进度条显示 100%\n setProgress(100);\n setCurrentStep('初始化完成');\n // 初始化完成,调用回调\n onCompleteRef.current(context);\n } catch (error) {\n logger.error('启动页初始化失败:', error);\n // 设置错误状态,让 ErrorBoundary 能够捕获\n initializationErrorState.setError(error);\n setCurrentStep('初始化失败,请刷新页面重试');\n // 即使失败也调用 onComplete,让应用能够处理错误\n onCompleteRef.current({\n config: {},\n progress: 0,\n isReady: false,\n duration: 0\n });\n } finally{\n setIsInitializing(false);\n }\n };\n performInitialization();\n // 清理函数\n return ()=>{\n if (progressUpdateTimerRef.current) {\n clearTimeout(progressUpdateTimerRef.current);\n }\n if (rafRef.current !== null) {\n cancelAnimationFrame(rafRef.current);\n }\n };\n }, [\n debouncedProgressUpdate\n ]);\n useEffect(()=>{\n if (typeof window === 'undefined') {\n return;\n }\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n const onSystemThemeChange = (event)=>{\n setIsSystemDark(event.matches);\n };\n setIsSystemDark(mediaQuery.matches);\n if (typeof mediaQuery.addEventListener === 'function') {\n mediaQuery.addEventListener('change', onSystemThemeChange);\n return ()=>mediaQuery.removeEventListener('change', onSystemThemeChange);\n }\n mediaQuery.addListener(onSystemThemeChange);\n return ()=>mediaQuery.removeListener(onSystemThemeChange);\n }, []);\n const resolvedMode = React.useMemo(()=>{\n const mode = optionsRef.current.theme?.mode || 'light';\n if (mode === 'system') {\n return isSystemDark ? 'dark' : 'light';\n }\n return mode === 'dark' ? 'dark' : 'light';\n }, [\n isSystemDark\n ]);\n const palette = React.useMemo(()=>{\n if (resolvedMode === 'dark') {\n return {\n background: '#0b1220',\n text: '#e2e8f0',\n subText: '#94a3b8',\n track: '#1f2937',\n spinnerTrack: '#334155'\n };\n }\n return {\n background: '#f5f7fb',\n text: '#51606f',\n subText: '#94a3b8',\n track: '#e9eff5',\n spinnerTrack: '#d9e2ec'\n };\n }, [\n resolvedMode\n ]);\n // 如果提供了自定义启动屏组件,使用自定义组件\n const CustomSplashScreen = optionsRef.current.splashScreen;\n if (CustomSplashScreen) {\n const customProps = {\n progress,\n currentStep,\n isInitializing\n };\n return /*#__PURE__*/ _jsx(CustomSplashScreen, {\n ...customProps\n });\n }\n // 默认启动屏 UI\n return /*#__PURE__*/ _jsxs(\"div\", {\n role: \"status\",\n \"aria-live\": \"polite\",\n \"aria-label\": \"应用正在加载\",\n style: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n height: '100vh',\n width: '100%',\n gap: 24,\n background: palette.background,\n color: palette.text\n },\n children: [\n /*#__PURE__*/ _jsx(\"div\", {\n \"aria-label\": \"加载中\",\n style: {\n width: 42,\n height: 42,\n border: `4px solid ${palette.spinnerTrack}`,\n borderTopColor: 'var(--app-primary-color, #2f80ed)',\n borderRadius: '50%',\n animation: 'secra-spin 1s linear infinite'\n }\n }),\n /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n width: '300px'\n },\n children: [\n /*#__PURE__*/ _jsx(\"div\", {\n \"aria-label\": `加载进度 ${progress}%`,\n style: {\n height: 12,\n background: palette.track,\n borderRadius: 999,\n overflow: 'hidden'\n },\n children: /*#__PURE__*/ _jsx(\"div\", {\n style: {\n width: `${Math.max(0, Math.min(100, progress))}%`,\n height: '100%',\n background: 'var(--app-primary-color, #2f80ed)',\n transition: 'width 0.2s ease'\n }\n })\n }),\n /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n marginTop: 8,\n textAlign: 'right',\n fontSize: 12,\n color: palette.text\n },\n children: [\n progress,\n \"%\"\n ]\n })\n ]\n }),\n /*#__PURE__*/ _jsxs(\"div\", {\n role: \"status\",\n \"aria-live\": \"polite\",\n style: {\n fontSize: 14,\n color: palette.text,\n textAlign: 'center'\n },\n children: [\n currentStep,\n estimatedTime !== null && estimatedTime > 0 && /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n fontSize: 12,\n color: palette.subText,\n marginTop: 8\n },\n children: [\n \"预计还需 \",\n Math.ceil(estimatedTime / 1000),\n \" 秒\"\n ]\n })\n ]\n }),\n /*#__PURE__*/ _jsx(\"style\", {\n children: `@keyframes secra-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }`\n })\n ]\n });\n});\nSplashScreen.displayName = 'SplashScreen';\nexport { SplashScreen };\n\n//# sourceMappingURL=SplashScreen.js.map","/**\n * 判断是否应该显示启动页\n * \n * @param showSplashScreen - 启动页显示策略\n * @returns boolean\n */ export function shouldShowSplashScreen(showSplashScreen) {\n // 明确指定不显示\n if (showSplashScreen === 'never') {\n return false;\n }\n // 明确指定总是显示\n if (showSplashScreen === 'always') {\n return true;\n }\n // 仅首次加载显示\n if (showSplashScreen === 'first-time-only') {\n const hasVisited = sessionStorage.getItem('__framework_visited__');\n if (hasVisited) {\n return false;\n }\n sessionStorage.setItem('__framework_visited__', 'true');\n return true;\n }\n // 自动判断(默认策略)\n // 这里可以根据实际情况添加更多判断逻辑\n // 例如:根据启动时间、网络状况等\n return true;\n}\n\n//# sourceMappingURL=splashScreenUtils.js.map","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 */ export class MiddlewareManager {\n /**\n * 添加中间件\n */ use(middleware) {\n this.middlewares.push(middleware);\n }\n /**\n * 移除中间件\n */ remove(middleware) {\n const index = this.middlewares.indexOf(middleware);\n if (index > -1) {\n this.middlewares.splice(index, 1);\n }\n }\n /**\n * 清空所有中间件\n */ clear() {\n this.middlewares = [];\n }\n /**\n * 执行中间件链\n */ async execute(options, finalHandler) {\n let index = 0;\n const next = async ()=>{\n if (index >= this.middlewares.length) {\n return finalHandler();\n }\n const middleware = this.middlewares[index++];\n return middleware(options, next);\n };\n return next();\n }\n /**\n * 获取中间件数量\n */ get count() {\n return this.middlewares.length;\n }\n constructor(){\n _define_property(this, \"middlewares\", []);\n }\n}\n/**\n * 默认中间件管理器\n */ export const middlewareManager = new MiddlewareManager();\n\n//# sourceMappingURL=middleware.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 */ 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","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 */ import { logger } from \"@vlian/logger\";\n/**\n * 应用事件总线\n */ export class AppEventBus {\n /**\n * 订阅事件\n * \n * @param event - 事件名称\n * @param listener - 事件监听器\n * @param options - 监听器选项\n * @returns 取消订阅函数\n * \n * @example\n * ```typescript\n * const unsubscribe = eventBus.on('user:login', (data, metadata) => {\n * console.log('用户登录:', data);\n * });\n * \n * // 取消订阅\n * unsubscribe();\n * ```\n */ on(event, listener, options = {}) {\n const fullEventName = this.getFullEventName(event);\n const listenerId = Symbol(`listener_${++this.listenerIdCounter}`);\n const listenerWithOptions = {\n listener: listener,\n options: {\n priority: options.priority ?? 100,\n once: options.once ?? false,\n namespace: options.namespace ?? this.config.namespacePrefix,\n async: options.async ?? true\n },\n id: listenerId\n };\n if (!this.listeners.has(fullEventName)) {\n this.listeners.set(fullEventName, new Set());\n }\n const listeners = this.listeners.get(fullEventName);\n listeners.add(listenerWithOptions);\n // 按优先级排序(数字越小优先级越高)\n const sortedListeners = Array.from(listeners).sort((a, b)=>a.options.priority - b.options.priority);\n this.listeners.set(fullEventName, new Set(sortedListeners));\n // 返回取消订阅函数\n return ()=>{\n const currentListeners = this.listeners.get(fullEventName);\n if (currentListeners) {\n currentListeners.delete(listenerWithOptions);\n if (currentListeners.size === 0) {\n this.listeners.delete(fullEventName);\n }\n }\n };\n }\n /**\n * 取消订阅事件\n * \n * @param event - 事件名称\n * @param listener - 事件监听器(可选,不提供则取消该事件的所有监听器)\n */ off(event, listener) {\n const fullEventName = this.getFullEventName(event);\n const listeners = this.listeners.get(fullEventName);\n if (!listeners) {\n return;\n }\n if (listener) {\n // 移除指定的监听器\n for (const item of listeners){\n if (item.listener === listener) {\n listeners.delete(item);\n break;\n }\n }\n } else {\n // 移除所有监听器\n listeners.clear();\n }\n if (listeners.size === 0) {\n this.listeners.delete(fullEventName);\n }\n }\n /**\n * 一次性订阅事件\n * \n * @param event - 事件名称\n * @param listener - 事件监听器\n * @param options - 监听器选项\n */ once(event, listener, options) {\n return this.on(event, listener, {\n ...options,\n once: true\n });\n }\n /**\n * 发布事件\n * \n * @param event - 事件名称\n * @param data - 事件数据\n * @param metadata - 事件元数据(可选)\n * \n * @example\n * ```typescript\n * await eventBus.emit('user:login', {\n * userId: '123',\n * username: 'john',\n * });\n * ```\n */ async emit(event, data, metadata) {\n const fullEventName = this.getFullEventName(event);\n const startTime = this.config.enablePerformanceMonitoring ? performance.now() : 0;\n // 事件验证\n if (this.config.enableValidation && !this.config.validator(fullEventName, data)) {\n logger.warn(`事件 ${fullEventName} 验证失败,已忽略`);\n return;\n }\n // 安全检查\n if (this.config.enableSecurityMode && metadata?.source) {\n if (!this.config.allowedSources.includes(metadata.source)) {\n logger.warn(`事件 ${fullEventName} 的来源 ${metadata.source} 不在白名单中,已忽略`);\n return;\n }\n }\n // 构建事件元数据\n const eventMetadata = {\n source: metadata?.source,\n timestamp: metadata?.timestamp ?? Date.now(),\n eventId: metadata?.eventId ?? `event_${++this.eventCounter}`,\n priority: metadata?.priority ?? 0,\n instanceId: metadata?.instanceId ?? this.config.instanceId,\n namespace: metadata?.namespace ?? this.config.namespacePrefix,\n ...metadata\n };\n // 创建事件包装器\n const eventWrapper = {\n data: data,\n metadata: eventMetadata\n };\n // 执行中间件(中间件可以阻止事件传播)\n if (this.middlewares.length > 0) {\n let middlewareIndex = 0;\n let nextCalled = false;\n const executeMiddleware = async ()=>{\n if (middlewareIndex < this.middlewares.length) {\n nextCalled = false;\n const currentIndex = middlewareIndex;\n const middleware = this.middlewares[middlewareIndex++];\n const next = async ()=>{\n nextCalled = true;\n if (currentIndex < this.middlewares.length - 1) {\n await executeMiddleware();\n }\n };\n await Promise.resolve(middleware(fullEventName, data, eventMetadata, next));\n // 如果中间件没有调用 next(),阻止事件传播\n if (!nextCalled) {\n return;\n }\n }\n };\n await executeMiddleware();\n // 如果最后一个中间件没有调用 next(),阻止事件传播\n if (!nextCalled && this.middlewares.length > 0) {\n return;\n }\n }\n // 获取监听器\n const listeners = this.listeners.get(fullEventName);\n // 记录事件历史(无论是否有监听器)\n if (this.config.enableTracking) {\n const executionTime = this.config.enablePerformanceMonitoring ? performance.now() - startTime : undefined;\n this.recordEventHistory(fullEventName, data, eventMetadata, executionTime);\n }\n if (!listeners || listeners.size === 0) {\n // 更新统计(即使没有监听器也记录)\n this.updateStats(fullEventName, 0);\n return;\n }\n // 执行监听器\n const executionPromises = [];\n const listenersToRemove = [];\n for (const listenerWithOptions of listeners){\n const executeListener = async ()=>{\n try {\n if (listenerWithOptions.options.async) {\n await Promise.resolve(listenerWithOptions.listener(eventWrapper.data, eventWrapper.metadata));\n } else {\n listenerWithOptions.listener(eventWrapper.data, eventWrapper.metadata);\n }\n // 如果是一次性监听器,标记为待移除\n if (listenerWithOptions.options.once) {\n listenersToRemove.push(listenerWithOptions);\n }\n } catch (error) {\n logger.error(`事件 ${fullEventName} 的监听器执行失败:`, error);\n }\n };\n executionPromises.push(executeListener());\n }\n // 等待所有监听器执行完成\n await Promise.allSettled(executionPromises);\n // 移除一次性监听器\n for (const listenerToRemove of listenersToRemove){\n listeners.delete(listenerToRemove);\n }\n if (listeners.size === 0) {\n this.listeners.delete(fullEventName);\n }\n // 更新统计信息\n const executionTime = this.config.enablePerformanceMonitoring ? performance.now() - startTime : 0;\n this.updateStats(fullEventName, executionTime, listeners.size);\n }\n /**\n * 同步发布事件(不等待异步监听器完成)\n * \n * @param event - 事件名称\n * @param data - 事件数据\n * @param metadata - 事件元数据(可选)\n */ emitSync(event, data, metadata) {\n // 同步执行 emit,但不等待 Promise 完成\n this.emit(event, data, metadata).catch((error)=>{\n logger.error(`同步发布事件 ${event} 失败:`, error);\n });\n }\n /**\n * 注册事件中间件\n * \n * @param middleware - 中间件函数\n * @returns 取消注册函数\n * \n * @example\n * ```typescript\n * const unsubscribe = eventBus.use((event, data, metadata, next) => {\n * console.log('事件触发:', event);\n * return next();\n * });\n * ```\n */ use(middleware) {\n this.middlewares.push(middleware);\n return ()=>{\n const index = this.middlewares.indexOf(middleware);\n if (index > -1) {\n this.middlewares.splice(index, 1);\n }\n };\n }\n /**\n * 清空所有事件监听器\n */ clear() {\n this.listeners.clear();\n }\n /**\n * 清空事件历史记录\n */ clearHistory() {\n this.eventHistory = [];\n }\n /**\n * 获取事件监听器数量\n * \n * @param event - 事件名称(可选,不提供则返回所有事件的监听器总数)\n */ listenerCount(event) {\n if (event) {\n const fullEventName = this.getFullEventName(event);\n return this.listeners.get(fullEventName)?.size || 0;\n }\n let count = 0;\n for (const listeners of this.listeners.values()){\n count += listeners.size;\n }\n return count;\n }\n /**\n * 获取所有事件名称\n */ eventNames() {\n return Array.from(this.listeners.keys());\n }\n /**\n * 获取事件历史记录\n * \n * @param event - 事件名称(可选,如果提供则只返回该事件的历史)\n * @param limit - 限制返回的记录数\n */ getEventHistory(event, limit) {\n if (!this.config.enableTracking) {\n return [];\n }\n let history = this.eventHistory;\n if (event) {\n const fullEventName = this.getFullEventName(event);\n history = history.filter((h)=>h.event === fullEventName);\n }\n if (limit) {\n history = history.slice(-limit);\n }\n return [\n ...history\n ];\n }\n /**\n * 获取事件统计信息\n * \n * @param event - 事件名称(可选,不提供则返回所有事件的统计)\n */ getStats(event) {\n if (event) {\n const fullEventName = this.getFullEventName(event);\n return this.stats.get(fullEventName) || {\n event: fullEventName,\n count: 0,\n avgExecutionTime: 0,\n listenerCount: 0,\n lastTriggered: 0\n };\n }\n return new Map(this.stats);\n }\n /**\n * 获取配置\n */ getConfig() {\n return {\n ...this.config\n };\n }\n /**\n * 更新配置\n */ updateConfig(config) {\n this.config = {\n ...this.config,\n ...config\n };\n }\n /**\n * 销毁事件总线(清理所有资源)\n */ destroy() {\n this.clear();\n this.clearHistory();\n this.middlewares = [];\n this.stats.clear();\n }\n /**\n * 获取完整事件名称(包含命名空间前缀)\n */ getFullEventName(event) {\n if (this.config.namespacePrefix) {\n return `${this.config.namespacePrefix}${event}`;\n }\n return event;\n }\n /**\n * 记录事件历史\n */ recordEventHistory(event, data, metadata, executionTime) {\n this.eventHistory.push({\n event,\n data,\n metadata,\n executionTime\n });\n // 限制历史记录大小\n if (this.eventHistory.length > this.config.maxHistorySize) {\n this.eventHistory.shift();\n }\n }\n /**\n * 更新统计信息\n */ updateStats(event, executionTime, listenerCount = 0) {\n if (!this.config.enablePerformanceMonitoring) {\n return;\n }\n const existingStats = this.stats.get(event);\n if (existingStats) {\n const totalTime = existingStats.avgExecutionTime * existingStats.count + executionTime;\n const newCount = existingStats.count + 1;\n this.stats.set(event, {\n ...existingStats,\n count: newCount,\n avgExecutionTime: totalTime / newCount,\n listenerCount,\n lastTriggered: Date.now()\n });\n } else {\n this.stats.set(event, {\n event,\n count: 1,\n avgExecutionTime: executionTime,\n listenerCount,\n lastTriggered: Date.now()\n });\n }\n }\n constructor(config = {}){\n /**\n * 事件监听器映射表\n * 使用 Map + Set 结构提高性能\n */ _define_property(this, \"listeners\", new Map());\n /**\n * 事件历史记录\n */ _define_property(this, \"eventHistory\", []);\n /**\n * 事件中间件列表\n */ _define_property(this, \"middlewares\", []);\n /**\n * 事件统计信息\n */ _define_property(this, \"stats\", new Map());\n /**\n * 配置\n */ _define_property(this, \"config\", void 0);\n /**\n * 事件计数器(用于生成唯一事件ID)\n */ _define_property(this, \"eventCounter\", 0);\n /**\n * 监听器ID计数器\n */ _define_property(this, \"listenerIdCounter\", 0);\n this.config = {\n enableTracking: config.enableTracking ?? process.env.NODE_ENV === 'development',\n maxHistorySize: config.maxHistorySize ?? 100,\n enableValidation: config.enableValidation ?? false,\n validator: config.validator ?? (()=>true),\n enablePerformanceMonitoring: config.enablePerformanceMonitoring ?? process.env.NODE_ENV === 'development',\n namespacePrefix: config.namespacePrefix ?? '',\n instanceId: config.instanceId,\n enableSecurityMode: config.enableSecurityMode ?? false,\n allowedSources: config.allowedSources ?? []\n };\n }\n}\n\n//# sourceMappingURL=AppEventBus.js.map","/**\n * 服务初始化模块\n * 负责初始化框架所需的各种服务\n */ import { logger } from \"@vlian/logger\";\nimport { initMonitoring } from \"@vlian/monitoring\";\nimport { PerformanceMonitor } from \"@vlian/utils\";\nimport { storage } from \"../../library\";\nimport { StateManager } from \"../../state\";\nimport { AppEventBus } from \"../event/AppEventBus\";\n/**\n * 带重试的异步函数执行器\n */ async function withRetry(fn, config = {}, serviceName) {\n const maxRetries = config.maxRetries ?? 3;\n const retryDelay = config.retryDelay ?? 1000;\n const exponentialBackoff = config.exponentialBackoff ?? true;\n let lastError;\n for(let attempt = 0; attempt <= maxRetries; attempt++){\n try {\n return await fn();\n } catch (error) {\n lastError = error;\n if (attempt < maxRetries) {\n const delay = exponentialBackoff ? retryDelay * Math.pow(2, attempt) : retryDelay;\n logger.warn(`${serviceName} 初始化失败(尝试 ${attempt + 1}/${maxRetries + 1}),${delay}ms 后重试...`, error);\n await new Promise((resolve)=>setTimeout(resolve, delay));\n }\n }\n }\n logger.error(`${serviceName} 初始化失败,已重试 ${maxRetries} 次`);\n throw lastError;\n}\n/**\n * 初始化所有服务\n * \n * 优化:\n * 1. 区分关键服务和非关键服务\n * 2. 关键服务并行初始化,缩短首屏时间\n * 3. 非关键服务延迟到应用渲染后初始化,使用 requestIdleCallback 在空闲时初始化\n * 4. 实现服务初始化失败重试机制,提高启动成功率\n * \n * @param options - 启动配置选项\n * @returns 服务初始化结果\n */ export async function initializeServices(options = {}) {\n const startTime = performance.now();\n // 重试配置\n const retryConfig = {\n maxRetries: options.serviceRetry?.maxRetries ?? 3,\n retryDelay: options.serviceRetry?.retryDelay ?? 1000,\n exponentialBackoff: options.serviceRetry?.exponentialBackoff ?? true\n };\n // ========== 关键服务:必须在应用渲染前初始化 ==========\n // 这些服务是应用运行的基础,必须并行初始化完成\n // 1. 监控服务(必须最先初始化,因为其他服务可能依赖它)\n const monitoringPromise = withRetry(()=>Promise.resolve(initMonitoring({\n ...options.errorMonitor,\n onError: (error)=>{\n logger.error('监控服务捕获到错误:', error);\n options.errorMonitor?.onError?.(error);\n }\n })), retryConfig, '监控服务');\n // 2. 存储服务(关键服务,应用可能需要立即使用存储)\n const storagePromise = withRetry(()=>Promise.resolve().then(()=>{\n storage.initialize(options.storageOptions);\n return storage;\n }), retryConfig, '存储服务');\n // 3. 状态管理器(关键服务,应用状态管理的基础)\n const stateManagerPromise = withRetry(()=>Promise.resolve().then(()=>{\n if (options.stateManager !== undefined) {\n return new StateManager(options.stateManager);\n } else {\n // 默认初始化状态管理器\n return new StateManager({\n enableRegistry: true,\n defaultScope: 'app'\n });\n }\n }), retryConfig, '状态管理器');\n // 4. 事件总线(关键服务,用于应用内部通信)\n const eventBusPromise = withRetry(()=>Promise.resolve().then(()=>{\n const eventBusConfig = {\n enableTracking: options.eventBus?.enableTracking ?? process.env.NODE_ENV === 'development',\n maxHistorySize: options.eventBus?.maxHistorySize ?? 100,\n enableValidation: options.eventBus?.enableValidation ?? false,\n enablePerformanceMonitoring: options.eventBus?.enablePerformanceMonitoring ?? process.env.NODE_ENV === 'development',\n namespacePrefix: options.eventBus?.namespacePrefix,\n instanceId: options.eventBus?.instanceId,\n enableSecurityMode: options.eventBus?.enableSecurityMode ?? false,\n allowedSources: options.eventBus?.allowedSources\n };\n return new AppEventBus(eventBusConfig);\n }), retryConfig, '事件总线');\n // 并行执行关键服务初始化\n const [monitoring, , stateManager, eventBus] = await Promise.all([\n monitoringPromise,\n storagePromise,\n stateManagerPromise,\n eventBusPromise\n ]);\n logger.info('关键服务初始化完成');\n // 初始化性能监控(依赖监控服务,必须在监控服务初始化后)\n const performanceMonitor = new PerformanceMonitor({\n ...options.performanceMonitor,\n onReport: (metrics)=>{\n monitoring.reportPerformance(metrics);\n options.performanceMonitor?.onReport?.(metrics);\n }\n });\n // 在页面卸载时清理性能监控\n if (typeof window !== 'undefined') {\n const cleanupHandler = ()=>{\n performanceMonitor.disconnect();\n window.removeEventListener('beforeunload', cleanupHandler);\n };\n window.addEventListener('beforeunload', cleanupHandler);\n }\n const criticalServicesDuration = performance.now() - startTime;\n logger.debug(`关键服务初始化完成,耗时: ${criticalServicesDuration.toFixed(2)}ms`);\n // ========== 非关键服务:延迟到应用渲染后初始化 ==========\n // 这些服务不影响首屏渲染,可以在空闲时初始化\n /**\n * 延迟初始化非关键服务\n * 在应用渲染后调用,使用 requestIdleCallback 在空闲时初始化\n */ const initializeNonCriticalServices = async ()=>{\n const nonCriticalStartTime = performance.now();\n // 使用 requestIdleCallback 在浏览器空闲时初始化非关键服务\n // 如果不支持 requestIdleCallback,则使用 setTimeout 延迟执行\n const scheduleInit = (callback)=>{\n if (typeof window !== 'undefined' && 'requestIdleCallback' in window) {\n window.requestIdleCallback(callback, {\n timeout: 5000\n });\n } else {\n setTimeout(callback, 100);\n }\n };\n return new Promise((resolve)=>{\n scheduleInit(async ()=>{\n try {\n // 1. 分析服务(可选,非关键)\n if (options.analytics) {\n try {\n await withRetry(()=>import(\"../../utils/analytics\").then(({ initAnalytics })=>{\n initAnalytics(options.analytics);\n return true;\n }), retryConfig, '分析服务');\n logger.debug('分析服务初始化完成');\n } catch (error) {\n logger.warn('分析服务初始化失败(不影响应用运行):', error);\n }\n }\n // 2. 运行时安全服务(可选,非关键)\n if (options.runtimeSecurity) {\n try {\n await withRetry(()=>import(\"../../utils/runtimeSecurity\").then(({ RuntimeSecurity })=>{\n RuntimeSecurity.initialize(options.runtimeSecurity);\n return true;\n }), retryConfig, '运行时安全服务');\n logger.debug('运行时安全服务初始化完成');\n } catch (error) {\n logger.warn('运行时安全服务初始化失败(不影响应用运行):', error);\n }\n }\n const nonCriticalDuration = performance.now() - nonCriticalStartTime;\n logger.debug(`非关键服务初始化完成,耗时: ${nonCriticalDuration.toFixed(2)}ms`);\n } catch (error) {\n logger.warn('非关键服务初始化过程中出现错误:', error);\n } finally{\n resolve();\n }\n });\n });\n };\n // 记录关键服务初始化性能指标\n if (monitoring.reportPerformance) {\n monitoring.reportPerformance({\n serviceInitDuration: criticalServicesDuration\n });\n }\n return {\n monitoring,\n performanceMonitor,\n stateManager,\n eventBus,\n initializeNonCriticalServices\n };\n}\n\n//# sourceMappingURL=initializeServices.js.map","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 * 用于在非 React 代码中访问全局配置\n */ let AppConfigManager = class AppConfigManager {\n /**\n * 获取单例实例\n * \n * @returns 单例实例\n */ static getInstance() {\n if (!AppConfigManager.instance) {\n AppConfigManager.instance = new AppConfigManager();\n }\n return AppConfigManager.instance;\n }\n /**\n * 初始化配置\n * \n * @param config - 应用配置\n */ initialize(config) {\n this._config = {\n theme: config.theme || {\n mode: 'light'\n },\n locale: config.locale || 'zh-CN',\n antdConfig: config.antdConfig,\n initializationContext: config.initializationContext\n };\n }\n /**\n * 获取完整配置\n * \n * @returns 应用配置\n */ getConfig() {\n return {\n ...this._config\n };\n }\n /**\n * 获取主题配置\n * \n * @returns 主题配置\n */ getTheme() {\n return {\n ...this._config.theme\n };\n }\n /**\n * 更新主题配置\n * \n * @param theme - 主题配置或更新函数\n */ setTheme(theme) {\n if (typeof theme === 'function') {\n this._config.theme = theme(this._config.theme);\n } else {\n this._config.theme = {\n ...theme\n };\n }\n }\n /**\n * 获取当前语言\n * \n * @returns 当前语言\n */ getLocale() {\n return this._config.locale;\n }\n /**\n * 更新语言\n * \n * @param locale - 语言类型\n */ setLocale(locale) {\n this._config.locale = locale;\n }\n /**\n * 获取 Ant Design 配置\n * \n * @returns Ant Design 配置\n */ getAntdConfig() {\n return this._config.antdConfig;\n }\n /**\n * 更新 Ant Design 配置\n * \n * @param config - Ant Design 配置\n */ setAntdConfig(config) {\n this._config.antdConfig = config;\n }\n /**\n * 获取初始化上下文\n * \n * @returns 初始化上下文\n */ getInitializationContext() {\n return this._config.initializationContext;\n }\n /**\n * 更新初始化上下文\n * \n * @param context - 初始化上下文\n */ setInitializationContext(context) {\n this._config.initializationContext = context;\n }\n /**\n * 私有构造函数,防止外部直接实例化\n */ constructor(){\n _define_property(this, \"_config\", void 0);\n this._config = {\n theme: {\n mode: 'light'\n },\n locale: 'zh-CN'\n };\n }\n};\n_define_property(AppConfigManager, \"instance\", null);\n/**\n * 应用配置单例实例\n */ export const appConfig = AppConfigManager.getInstance();\n\n//# sourceMappingURL=AppConfig.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport React, { createContext, useContext, useState, useCallback, useMemo, useEffect } from \"react\";\nimport { setLang } from \"../../library\";\nimport { appConfig } from \"../config/AppConfig\";\n/**\n * 主题上下文\n */ const ThemeContext = /*#__PURE__*/ createContext(undefined);\n/**\n * 国际化上下文\n */ const LocaleContext = /*#__PURE__*/ createContext(undefined);\n/**\n * 配置上下文\n */ const ConfigContext = /*#__PURE__*/ createContext(undefined);\n/**\n * 状态管理器上下文\n */ const StateManagerContext = /*#__PURE__*/ createContext(undefined);\n/**\n * 主题 Provider 组件\n */ const ThemeProvider = /*#__PURE__*/ React.memo(({ children, initialTheme })=>{\n const [theme, setThemeState] = useState(initialTheme || appConfig.getTheme());\n const applyDocumentThemeClass = useCallback((mode)=>{\n if (typeof window === 'undefined') {\n return;\n }\n const html = document.documentElement;\n html.classList.remove('light', 'dark');\n const resolvedMode = mode === 'system' ? window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light' : mode || 'light';\n html.classList.add(resolvedMode);\n }, []);\n // 同步到单例\n useEffect(()=>{\n appConfig.setTheme(theme);\n }, [\n theme\n ]);\n // 同步到文档 class,确保首屏与刷新时也能正确反映主题\n useEffect(()=>{\n if (typeof window === 'undefined') {\n return;\n }\n applyDocumentThemeClass(theme.mode);\n if (theme.mode !== 'system') {\n return;\n }\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n const onSystemThemeChange = ()=>applyDocumentThemeClass('system');\n if (typeof mediaQuery.addEventListener === 'function') {\n mediaQuery.addEventListener('change', onSystemThemeChange);\n return ()=>mediaQuery.removeEventListener('change', onSystemThemeChange);\n }\n mediaQuery.addListener(onSystemThemeChange);\n return ()=>mediaQuery.removeListener(onSystemThemeChange);\n }, [\n applyDocumentThemeClass,\n theme.mode\n ]);\n // 更新主题\n const setTheme = useCallback((newTheme)=>{\n setThemeState((prev)=>{\n return typeof newTheme === 'function' ? newTheme(prev) : newTheme;\n });\n }, []);\n const value = useMemo(()=>({\n theme,\n setTheme\n }), [\n theme,\n setTheme\n ]);\n return /*#__PURE__*/ _jsx(ThemeContext.Provider, {\n value: value,\n children: children\n });\n});\nThemeProvider.displayName = 'ThemeProvider';\n/**\n * 国际化 Provider 组件\n */ const LocaleProvider = /*#__PURE__*/ React.memo(({ children, initialLocale })=>{\n const [locale, setLocaleState] = useState(initialLocale || appConfig.getLocale());\n const [isChanging, setIsChanging] = useState(false);\n // 同步到单例\n useEffect(()=>{\n appConfig.setLocale(locale);\n }, [\n locale\n ]);\n // 更新语言,添加加载状态\n const setLocale = useCallback((newLocale)=>{\n if (newLocale === locale) {\n return;\n }\n setIsChanging(true);\n setLocaleState(newLocale);\n setLang(newLocale);\n // 使用 requestAnimationFrame 确保状态更新在下一帧\n requestAnimationFrame(()=>{\n setIsChanging(false);\n });\n }, [\n locale\n ]);\n const value = useMemo(()=>({\n locale,\n setLocale,\n isChanging\n }), [\n locale,\n setLocale,\n isChanging\n ]);\n return /*#__PURE__*/ _jsx(LocaleContext.Provider, {\n value: value,\n children: children\n });\n});\nLocaleProvider.displayName = 'LocaleProvider';\n/**\n * 配置 Provider 组件\n */ const AppConfigProvider = /*#__PURE__*/ React.memo(({ children, initialAntdConfig, initialInitializationContext })=>{\n const [antdConfig, setAntdConfigState] = useState(initialAntdConfig || appConfig.getAntdConfig());\n const [initializationContext, setInitializationContextState] = useState(initialInitializationContext || appConfig.getInitializationContext());\n // 同步到单例\n useEffect(()=>{\n appConfig.setAntdConfig(antdConfig);\n }, [\n antdConfig\n ]);\n useEffect(()=>{\n appConfig.setInitializationContext(initializationContext);\n }, [\n initializationContext\n ]);\n // 更新 Ant Design 配置\n const setAntdConfig = useCallback((config)=>{\n setAntdConfigState(config);\n }, []);\n // 更新初始化上下文\n const setInitializationContext = useCallback((context)=>{\n setInitializationContextState(context);\n }, []);\n const value = useMemo(()=>({\n antdConfig,\n initializationContext,\n setAntdConfig,\n setInitializationContext\n }), [\n antdConfig,\n initializationContext,\n setAntdConfig,\n setInitializationContext\n ]);\n return /*#__PURE__*/ _jsx(ConfigContext.Provider, {\n value: value,\n children: children\n });\n});\nAppConfigProvider.displayName = 'AppConfigProvider';\n/**\n * 应用上下文 Provider 组件\n * \n * 组合所有 Provider,提供统一的全局上下文\n * \n * @example\n * ```tsx\n * <AppContextProvider\n * initialTheme={{ mode: 'light', primaryColor: '#1890ff' }}\n * initialLocale=\"zh-CN\"\n * >\n * <App />\n * </AppContextProvider>\n * ```\n */ /**\n * 状态管理器 Provider 组件\n */ const StateManagerProvider = /*#__PURE__*/ React.memo(({ children, stateManager })=>{\n const value = useMemo(()=>({\n stateManager: stateManager ?? null\n }), [\n stateManager\n ]);\n return /*#__PURE__*/ _jsx(StateManagerContext.Provider, {\n value: value,\n children: children\n });\n});\nStateManagerProvider.displayName = 'StateManagerProvider';\nexport const AppContextProvider = ({ children, initialTheme, initialLocale, initialAntdConfig, initialInitializationContext, stateManager, antdApp: _antdApp, uiApp: _uiApp })=>{\n // 初始化单例配置(仅执行一次)\n const initializedRef = React.useRef(false);\n React.useEffect(()=>{\n if (!initializedRef.current) {\n appConfig.initialize({\n theme: initialTheme,\n locale: initialLocale,\n antdConfig: initialAntdConfig,\n initializationContext: initialInitializationContext\n });\n initializedRef.current = true;\n }\n }, [\n initialTheme,\n initialLocale,\n initialAntdConfig,\n initialInitializationContext\n ]);\n return /*#__PURE__*/ _jsx(ThemeProvider, {\n initialTheme: initialTheme,\n children: /*#__PURE__*/ _jsx(LocaleProvider, {\n initialLocale: initialLocale,\n children: /*#__PURE__*/ _jsx(AppConfigProvider, {\n initialAntdConfig: initialAntdConfig,\n initialInitializationContext: initialInitializationContext,\n children: /*#__PURE__*/ _jsx(StateManagerProvider, {\n stateManager: stateManager,\n children: children\n })\n })\n })\n });\n};\n/**\n * 使用主题上下文 Hook\n * \n * @returns 主题上下文值\n * @throws 如果不在 ThemeProvider 内使用会抛出错误\n * \n * @example\n * ```tsx\n * const { theme, setTheme } = useTheme();\n * \n * // 切换主题\n * setTheme({ mode: 'dark' });\n * ```\n */ export const useTheme = ()=>{\n const context = useContext(ThemeContext);\n if (context === undefined) {\n throw new Error('useTheme 必须在 AppContextProvider 内使用');\n }\n return context;\n};\n/**\n * 使用国际化上下文 Hook\n * \n * @returns 国际化上下文值\n * @throws 如果不在 LocaleProvider 内使用会抛出错误\n * \n * @example\n * ```tsx\n * const { locale, setLocale } = useLocale();\n * \n * // 切换语言\n * setLocale('en-US');\n * ```\n */ export const useLocale = ()=>{\n const context = useContext(LocaleContext);\n if (context === undefined) {\n throw new Error('useLocale 必须在 AppContextProvider 内使用');\n }\n return context;\n};\n/**\n * 使用配置上下文 Hook\n * \n * @returns 配置上下文值\n * @throws 如果不在 ConfigProvider 内使用会抛出错误\n */ export const useConfig = ()=>{\n const context = useContext(ConfigContext);\n if (context === undefined) {\n throw new Error('useConfig 必须在 AppContextProvider 内使用');\n }\n return context;\n};\n/**\n * 使用应用上下文 Hook(聚合所有上下文)\n * \n * @returns 应用上下文值\n * @throws 如果不在 AppContextProvider 内使用会抛出错误\n * \n * @example\n * ```tsx\n * const { theme, setTheme, locale, setLocale, antdConfig } = useAppContext();\n * \n * // 切换主题\n * setTheme({ mode: 'dark' });\n * \n * // 切换语言\n * setLocale('en-US');\n * ```\n */ /**\n * 使用状态管理器 Hook\n * \n * @returns 状态管理器实例\n * @throws 如果不在 AppContextProvider 内使用会抛出错误\n * \n * @example\n * ```tsx\n * const stateManager = useStateManager();\n * \n * // 创建状态实例\n * const countState = stateManager?.createState(0);\n * ```\n */ export const useStateManager = ()=>{\n const context = useContext(StateManagerContext);\n if (context === undefined) {\n throw new Error('useStateManager 必须在 AppContextProvider 内使用');\n }\n return context.stateManager;\n};\nexport const useAppContext = ()=>{\n const themeContext = useTheme();\n const localeContext = useLocale();\n const configContext = useConfig();\n const stateManagerContext = useStateManager();\n // 优化:使用更细粒度的依赖项,避免不必要的重新计算\n // 只依赖实际变化的值,函数引用是稳定的\n return useMemo(()=>({\n theme: themeContext.theme,\n locale: localeContext.locale,\n antdConfig: configContext.antdConfig,\n initializationContext: configContext.initializationContext,\n stateManager: stateManagerContext,\n setTheme: themeContext.setTheme,\n setLocale: localeContext.setLocale,\n setAntdConfig: configContext.setAntdConfig,\n setInitializationContext: configContext.setInitializationContext\n }), [\n themeContext.theme,\n localeContext.locale,\n configContext.antdConfig,\n configContext.initializationContext,\n stateManagerContext,\n // 函数引用是稳定的,不需要作为依赖\n themeContext.setTheme,\n localeContext.setLocale,\n configContext.setAntdConfig,\n configContext.setInitializationContext\n ]);\n};\n\n//# sourceMappingURL=AppContext.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * 默认应用页面组件\n * 当用户未提供 app 选项时显示的默认页面\n */ import { memo } from \"react\";\nimport { $t } from \"../../library\";\nconst cardStyle = {\n background: 'rgba(255, 255, 255, 0.96)',\n borderRadius: 10,\n boxShadow: '0 6px 20px rgba(0, 0, 0, 0.14)',\n padding: 20\n};\nconst DefaultApp = /*#__PURE__*/ memo(({ title, description })=>{\n const displayTitle = title || $t('defaultApp.title');\n const displayDescription = description || $t('defaultApp.description');\n return /*#__PURE__*/ _jsx(\"div\", {\n style: {\n minHeight: '100vh',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: 24,\n background: 'linear-gradient(130deg, #274c77 0%, #2c7da0 42%, #61a5c2 100%)'\n },\n children: /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n maxWidth: 860,\n width: '100%'\n },\n children: [\n /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n textAlign: 'center',\n marginBottom: 28,\n color: '#fff'\n },\n children: [\n /*#__PURE__*/ _jsx(\"div\", {\n style: {\n fontSize: 56,\n lineHeight: '60px',\n marginBottom: 12\n },\n children: \"🚀\"\n }),\n /*#__PURE__*/ _jsx(\"h1\", {\n style: {\n margin: 0,\n fontSize: 34\n },\n children: displayTitle\n }),\n /*#__PURE__*/ _jsx(\"p\", {\n style: {\n marginTop: 12,\n opacity: 0.9\n },\n children: displayDescription\n })\n ]\n }),\n /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n display: 'grid',\n gap: 16\n },\n children: [\n /*#__PURE__*/ _jsxs(\"section\", {\n style: cardStyle,\n children: [\n /*#__PURE__*/ _jsxs(\"h2\", {\n style: {\n marginTop: 0\n },\n children: [\n \"💻 \",\n $t('defaultApp.quickStart.title')\n ]\n }),\n /*#__PURE__*/ _jsx(\"p\", {\n children: $t('defaultApp.quickStart.description')\n }),\n /*#__PURE__*/ _jsx(\"pre\", {\n style: {\n margin: 0,\n background: '#f4f6f8',\n borderRadius: 8,\n padding: 12,\n overflowX: 'auto'\n },\n children: $t('defaultApp.quickStart.code')\n })\n ]\n }),\n /*#__PURE__*/ _jsxs(\"section\", {\n style: cardStyle,\n children: [\n /*#__PURE__*/ _jsxs(\"h2\", {\n style: {\n marginTop: 0\n },\n children: [\n \"📚 \",\n $t('defaultApp.nextSteps.title')\n ]\n }),\n /*#__PURE__*/ _jsxs(\"ul\", {\n style: {\n paddingLeft: 20,\n marginBottom: 0\n },\n children: [\n /*#__PURE__*/ _jsx(\"li\", {\n children: $t('defaultApp.nextSteps.step1')\n }),\n /*#__PURE__*/ _jsx(\"li\", {\n children: $t('defaultApp.nextSteps.step2')\n }),\n /*#__PURE__*/ _jsx(\"li\", {\n children: $t('defaultApp.nextSteps.step3')\n })\n ]\n })\n ]\n })\n ]\n }),\n /*#__PURE__*/ _jsx(\"p\", {\n style: {\n textAlign: 'center',\n color: 'rgba(255,255,255,0.88)',\n marginTop: 18\n },\n children: $t('defaultApp.footer')\n })\n ]\n })\n });\n});\nDefaultApp.displayName = 'DefaultApp';\nexport { DefaultApp };\n\n//# sourceMappingURL=DefaultApp.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport React, { memo } from \"react\";\nimport { useAppContext } from \"./AppContext\";\nconst BasicLayout = /*#__PURE__*/ memo(({ children, configProps: externalConfigProps, globalProvider })=>{\n const { antdConfig, theme } = useAppContext();\n const [isSystemDark, setIsSystemDark] = React.useState(()=>{\n if (typeof window === 'undefined') {\n return false;\n }\n return window.matchMedia('(prefers-color-scheme: dark)').matches;\n });\n const finalConfigProps = antdConfig || externalConfigProps;\n React.useEffect(()=>{\n if (typeof window === 'undefined') {\n return;\n }\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n const updateSystemTheme = (event)=>{\n setIsSystemDark(event.matches);\n };\n setIsSystemDark(mediaQuery.matches);\n if (typeof mediaQuery.addEventListener === 'function') {\n mediaQuery.addEventListener('change', updateSystemTheme);\n return ()=>mediaQuery.removeEventListener('change', updateSystemTheme);\n }\n mediaQuery.addListener(updateSystemTheme);\n return ()=>mediaQuery.removeListener(updateSystemTheme);\n }, []);\n const resolvedMode = theme.mode === 'system' ? isSystemDark ? 'dark' : 'light' : theme.mode;\n const cssVars = React.useMemo(()=>{\n const vars = {};\n if (theme.primaryColor) {\n vars['--app-primary-color'] = theme.primaryColor;\n }\n if (finalConfigProps && typeof finalConfigProps === 'object') {\n const cssVariables = finalConfigProps.cssVariables;\n if (cssVariables && typeof cssVariables === 'object') {\n Object.entries(cssVariables).forEach(([key, value])=>{\n vars[`--${key}`] = String(value);\n });\n }\n }\n return vars;\n }, [\n finalConfigProps,\n theme.primaryColor\n ]);\n const GlobalProvider = React.useMemo(()=>globalProvider ? /*#__PURE__*/ React.lazy(globalProvider) : null, [\n globalProvider\n ]);\n const renderedContent = React.useMemo(()=>{\n if (!GlobalProvider) {\n return children;\n }\n return /*#__PURE__*/ _jsx(React.Suspense, {\n fallback: null,\n children: /*#__PURE__*/ _jsx(GlobalProvider, {\n children: children\n })\n });\n }, [\n GlobalProvider,\n children\n ]);\n return /*#__PURE__*/ _jsx(\"div\", {\n \"data-theme-mode\": resolvedMode,\n style: cssVars,\n children: renderedContent\n });\n});\nBasicLayout.displayName = 'BasicLayout';\nexport { BasicLayout };\n\n//# sourceMappingURL=BasicLayout.js.map","\"use client\";\nimport { createContext as l, Component as y, createElement as d, useContext as f, useState as p, useMemo as E, forwardRef as B } from \"react\";\nconst h = l(null), c = {\n didCatch: !1,\n error: null\n};\nclass m extends y {\n constructor(e) {\n super(e), this.resetErrorBoundary = this.resetErrorBoundary.bind(this), this.state = c;\n }\n static getDerivedStateFromError(e) {\n return { didCatch: !0, error: e };\n }\n resetErrorBoundary(...e) {\n const { error: t } = this.state;\n t !== null && (this.props.onReset?.({\n args: e,\n reason: \"imperative-api\"\n }), this.setState(c));\n }\n componentDidCatch(e, t) {\n this.props.onError?.(e, t);\n }\n componentDidUpdate(e, t) {\n const { didCatch: o } = this.state, { resetKeys: s } = this.props;\n o && t.error !== null && C(e.resetKeys, s) && (this.props.onReset?.({\n next: s,\n prev: e.resetKeys,\n reason: \"keys\"\n }), this.setState(c));\n }\n render() {\n const { children: e, fallbackRender: t, FallbackComponent: o, fallback: s } = this.props, { didCatch: n, error: a } = this.state;\n let i = e;\n if (n) {\n const u = {\n error: a,\n resetErrorBoundary: this.resetErrorBoundary\n };\n if (typeof t == \"function\")\n i = t(u);\n else if (o)\n i = d(o, u);\n else if (s !== void 0)\n i = s;\n else\n throw a;\n }\n return d(\n h.Provider,\n {\n value: {\n didCatch: n,\n error: a,\n resetErrorBoundary: this.resetErrorBoundary\n }\n },\n i\n );\n }\n}\nfunction C(r = [], e = []) {\n return r.length !== e.length || r.some((t, o) => !Object.is(t, e[o]));\n}\nfunction g(r) {\n return r !== null && typeof r == \"object\" && \"didCatch\" in r && typeof r.didCatch == \"boolean\" && \"error\" in r && \"resetErrorBoundary\" in r && typeof r.resetErrorBoundary == \"function\";\n}\nfunction x(r) {\n if (!g(r))\n throw new Error(\"ErrorBoundaryContext not found\");\n}\nfunction k() {\n const r = f(h);\n x(r);\n const { error: e, resetErrorBoundary: t } = r, [o, s] = p({\n error: null,\n hasError: !1\n }), n = E(\n () => ({\n error: e,\n resetBoundary: () => {\n t(), s({ error: null, hasError: !1 });\n },\n showBoundary: (a) => s({\n error: a,\n hasError: !0\n })\n }),\n [e, t]\n );\n if (o.hasError)\n throw o.error;\n return n;\n}\nfunction S(r) {\n switch (typeof r) {\n case \"object\": {\n if (r !== null && \"message\" in r && typeof r.message == \"string\")\n return r.message;\n break;\n }\n case \"string\":\n return r;\n }\n}\nfunction w(r, e) {\n const t = B(\n (s, n) => d(\n m,\n e,\n d(r, { ...s, ref: n })\n )\n ), o = r.displayName || r.name || \"Unknown\";\n return t.displayName = `withErrorBoundary(${o})`, t;\n}\nexport {\n m as ErrorBoundary,\n h as ErrorBoundaryContext,\n S as getErrorMessage,\n k as useErrorBoundary,\n w as withErrorBoundary\n};\n//# sourceMappingURL=react-error-boundary.js.map\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 * 1. 统一错误处理策略:记录、上报、恢复、降级\n * 2. 错误分类:致命、可恢复、警告\n * 3. 错误恢复机制:自动重试、降级方案\n */ import { logger } from \"@vlian/logger\";\nimport { errorUtils, ErrorSeverity, FrameworkError } from \"@vlian/utils\";\n/**\n * 错误处理策略\n */ export var ErrorHandlingStrategy = /*#__PURE__*/ function(ErrorHandlingStrategy) {\n /**\n * 记录错误(日志)\n */ ErrorHandlingStrategy[\"LOG\"] = \"LOG\";\n /**\n * 上报错误(监控服务)\n */ ErrorHandlingStrategy[\"REPORT\"] = \"REPORT\";\n /**\n * 尝试恢复错误\n */ ErrorHandlingStrategy[\"RECOVER\"] = \"RECOVER\";\n /**\n * 降级处理\n */ ErrorHandlingStrategy[\"FALLBACK\"] = \"FALLBACK\";\n /**\n * 忽略错误\n */ ErrorHandlingStrategy[\"IGNORE\"] = \"IGNORE\";\n return ErrorHandlingStrategy;\n}({});\n/**\n * 统一错误处理器\n */ export class ErrorHandler {\n /**\n * 设置监控服务\n */ setMonitoring(monitoring) {\n this.monitoring = monitoring;\n }\n /**\n * 处理错误\n * \n * @param error - 错误对象\n * @param context - 错误上下文\n * @returns 错误处理结果\n */ async handleError(error, context) {\n // 标准化错误对象\n const normalizedError = errorUtils.normalizeError(error);\n // 创建包含上下文信息的错误对象(由于 context 是只读的,需要创建新对象)\n const errorWithContext = context ? new FrameworkError(normalizedError.message, normalizedError.type, normalizedError.severity, {\n code: normalizedError.code,\n originalError: normalizedError.originalError,\n context: {\n ...normalizedError.context,\n ...context\n },\n recoverable: normalizedError.recoverable\n }) : normalizedError;\n // 确定处理策略\n const strategies = this.determineStrategies(errorWithContext);\n // 执行处理策略\n const handled = await this.executeStrategies(errorWithContext, strategies);\n // 尝试恢复错误\n let recoveredValue;\n let recoverable = false;\n if (handled && errorWithContext.recoverable && this.config.recoveryOptions) {\n const recoveryResult = await this.attemptRecovery(errorWithContext);\n recoverable = recoveryResult.recoverable;\n recoveredValue = recoveryResult.value;\n }\n return {\n handled,\n recoverable,\n recoveredValue,\n strategies,\n error: errorWithContext\n };\n }\n /**\n * 确定错误处理策略\n */ determineStrategies(error) {\n // 1. 检查错误类型对应的策略\n if (this.config.typeStrategies[error.type]) {\n return this.config.typeStrategies[error.type];\n }\n // 2. 检查错误严重程度对应的策略\n if (this.config.severityStrategies[error.severity]) {\n return this.config.severityStrategies[error.severity];\n }\n // 3. 使用默认策略\n return this.config.defaultStrategies;\n }\n /**\n * 执行处理策略\n */ async executeStrategies(error, strategies) {\n let handled = false;\n for (const strategy of strategies){\n try {\n switch(strategy){\n case \"LOG\":\n this.logError(error);\n handled = true;\n break;\n case \"REPORT\":\n await this.reportError(error);\n handled = true;\n break;\n case \"RECOVER\":\n // 恢复策略在 handleError 中统一处理\n handled = true;\n break;\n case \"FALLBACK\":\n // 降级策略在 attemptRecovery 中处理\n handled = true;\n break;\n case \"IGNORE\":\n // 忽略错误,不做任何处理\n handled = true;\n break;\n }\n } catch (strategyError) {\n logger.warn(`错误处理策略 ${strategy} 执行失败:`, strategyError);\n }\n }\n return handled;\n }\n /**\n * 记录错误\n */ logError(error) {\n const errorInfo = errorUtils.extractErrorInfo(error);\n // 根据错误严重程度选择日志级别\n switch(error.severity){\n case ErrorSeverity.CRITICAL:\n case ErrorSeverity.HIGH:\n logger.error('错误:', errorInfo);\n break;\n case ErrorSeverity.MEDIUM:\n logger.warn('警告:', errorInfo);\n break;\n case ErrorSeverity.LOW:\n logger.info('信息:', errorInfo);\n break;\n }\n // 开发环境显示详细错误信息\n if (this.config.showDetailedErrorsInDev && process.env.NODE_ENV === 'development') {\n const detailedError = errorUtils.formatErrorForDev(error);\n console.error(detailedError);\n }\n }\n /**\n * 上报错误\n */ async reportError(error) {\n if (!this.monitoring) {\n logger.debug('监控服务未配置,跳过错误上报');\n return;\n }\n try {\n this.monitoring.captureError(error, {\n severity: error.severity,\n type: error.type,\n code: error.code,\n context: error.context\n });\n } catch (reportError) {\n logger.warn('错误上报失败:', reportError);\n }\n }\n /**\n * 尝试恢复错误\n */ async attemptRecovery(error) {\n const options = this.config.recoveryOptions;\n if (!options) {\n return {\n recoverable: false\n };\n }\n const maxRetries = options.maxRetries ?? 3;\n const retryDelay = options.retryDelay ?? 1000;\n const exponentialBackoff = options.exponentialBackoff ?? true;\n const shouldRetry = options.shouldRetry ?? (()=>true);\n // 如果有降级方案,先尝试降级\n if (options.fallback) {\n try {\n const fallbackValue = await Promise.resolve(options.fallback());\n logger.info('错误已通过降级方案恢复');\n return {\n recoverable: true,\n value: fallbackValue\n };\n } catch (fallbackError) {\n logger.warn('降级方案执行失败:', fallbackError);\n }\n }\n // 尝试重试(如果错误可恢复且满足重试条件)\n if (error.recoverable && shouldRetry(error, 0)) {\n for(let attempt = 0; attempt < maxRetries; attempt++){\n if (!shouldRetry(error, attempt)) {\n break;\n }\n const delay = exponentialBackoff ? retryDelay * Math.pow(2, attempt) : retryDelay;\n logger.debug(`错误恢复重试 ${attempt + 1}/${maxRetries},${delay}ms 后重试...`);\n await new Promise((resolve)=>setTimeout(resolve, delay));\n // 这里应该调用原始操作的重试逻辑\n // 由于错误处理器不知道原始操作,这里只返回可恢复状态\n // 实际的重试应该在调用方实现\n }\n }\n return {\n recoverable: error.recoverable\n };\n }\n /**\n * 创建错误处理器的便捷方法\n */ static create(config) {\n return new ErrorHandler(config);\n }\n constructor(config = {}){\n _define_property(this, \"config\", void 0);\n _define_property(this, \"monitoring\", void 0);\n this.monitoring = config.monitoring;\n this.config = {\n defaultStrategies: config.defaultStrategies ?? [\n \"LOG\",\n \"REPORT\"\n ],\n severityStrategies: config.severityStrategies ?? {},\n typeStrategies: config.typeStrategies ?? {},\n recoveryOptions: config.recoveryOptions ?? {},\n showDetailedErrorsInDev: config.showDetailedErrorsInDev ?? true\n };\n }\n}\n/**\n * 默认错误处理器实例(单例)\n */ let defaultErrorHandler = null;\n/**\n * 获取默认错误处理器\n */ export function getDefaultErrorHandler() {\n if (!defaultErrorHandler) {\n defaultErrorHandler = new ErrorHandler();\n }\n return defaultErrorHandler;\n}\n/**\n * 设置默认错误处理器\n */ export function setDefaultErrorHandler(handler) {\n defaultErrorHandler = handler;\n}\n\n//# sourceMappingURL=ErrorHandler.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport React, { useState, useRef, useEffect, useCallback, useMemo } from \"react\";\nimport { ErrorBoundary as ReactErrorBoundary } from \"react-error-boundary\";\nimport { logger } from \"@vlian/logger\";\nimport { errorUtils } from \"@vlian/utils\";\nimport { initializationErrorState } from \"../initialization\";\nimport { getDefaultErrorHandler } from \"./ErrorHandler\";\n/**\n * 错误边界组件\n * \n * 基于 react-error-boundary 实现,集成了框架的错误处理系统\n * 用于捕获 React 组件树中的错误,防止整个应用崩溃\n * \n * 默认使用框架内置错误 UI,居中显示。\n * 可以通过 fallback 属性自定义错误 UI。\n * \n * @example\n * ```tsx\n * // 使用默认错误 UI(推荐)\n * <ErrorBoundary>\n * <App />\n * </ErrorBoundary>\n * \n * // 自定义错误 UI\n * <ErrorBoundary\n * fallback={(error, reset) => (\n * <div>\n * <h1>出错了</h1>\n * <p>{error.message}</p>\n * <button onClick={reset}>重试</button>\n * </div>\n * )}\n * >\n * <App />\n * </ErrorBoundary>\n * ```\n */ export function ErrorBoundary({ children, fallback, onError, showInConsole = true, resetKeys, onReset, onResetKeysChange }) {\n // 使用 ref 存储重试计数,在多次错误之间保持状态\n const retryCountRef = useRef(0);\n // 优化:使用统一的错误处理器\n const errorHandler = useMemo(()=>getDefaultErrorHandler(), []);\n // 处理错误,将标准 Error 转换为 FrameworkError\n const handleError = useCallback(async (error, errorInfo)=>{\n const normalizedError = errorUtils.normalizeError(error);\n // 将 react-error-boundary 的 errorInfo 转换为 React 的 ErrorInfo 格式\n const reactErrorInfo = {\n componentStack: errorInfo.componentStack || ''\n };\n // 使用统一的错误处理器处理错误\n const handleResult = await errorHandler.handleError(normalizedError, {\n componentStack: reactErrorInfo.componentStack,\n source: 'ErrorBoundary'\n });\n // 如果错误处理器没有处理错误,使用默认处理\n if (!handleResult.handled) {\n logger.error('错误边界捕获到错误:', {\n error: normalizedError.toJSON(),\n errorInfo: {\n componentStack: reactErrorInfo.componentStack\n }\n });\n }\n // 调用错误回调\n if (onError) {\n onError(normalizedError, reactErrorInfo);\n }\n // 在控制台显示错误(如果配置了)\n if (showInConsole) {\n console.error('错误边界捕获到错误:', normalizedError);\n console.error('错误信息:', reactErrorInfo);\n }\n }, [\n errorHandler,\n onError,\n showInConsole\n ]);\n // 处理重置\n const handleReset = ()=>{\n // 清除初始化错误状态\n initializationErrorState.clearError();\n // 调用用户提供的重置回调\n if (onReset) {\n onReset();\n }\n };\n // 默认 fallback UI(使用无框架 HTML 组件)\n // 使用内部组件来管理重试计数状态,使用 React.memo 优化性能\n const DefaultFallbackComponent = /*#__PURE__*/ React.memo(({ error, resetErrorBoundary })=>{\n const normalizedError = errorUtils.normalizeError(error);\n const [retryCount, setRetryCount] = useState(retryCountRef.current);\n const [showDetails, setShowDetails] = useState(false);\n // 同步 ref 的值到 state,确保组件重新创建时能读取到最新的重试计数\n useEffect(()=>{\n setRetryCount(retryCountRef.current);\n }, []);\n const handleRetry = useCallback(()=>{\n // 增加重试计数\n const newCount = retryCount + 1;\n retryCountRef.current = newCount;\n setRetryCount(newCount);\n // 执行重置\n handleReset();\n resetErrorBoundary();\n }, [\n retryCount,\n resetErrorBoundary\n ]);\n const handleReload = useCallback(()=>{\n // 刷新页面\n window.location.reload();\n }, []);\n // 构建用户友好的错误提示\n const userFriendlyMessage = useMemo(()=>{\n // 根据错误类型提供不同的提示\n if (normalizedError.code === 'NETWORK_ERROR') {\n return '网络连接失败,请检查您的网络设置后再尝试';\n }\n if (normalizedError.code === 'TIMEOUT_ERROR') {\n return '请求超时,请稍后再尝试';\n }\n if (normalizedError.code === 'VALIDATION_ERROR') {\n return '数据验证失败,请检查输入内容';\n }\n // 默认提示\n return '应用运行时发生了错误,请稍后再尝试';\n }, [\n normalizedError.code\n ]);\n // 构建按钮数组\n const extraButtons = useMemo(()=>{\n const buttons = [\n /*#__PURE__*/ _jsx(\"button\", {\n onClick: handleRetry,\n \"aria-label\": \"重试加载应用\",\n style: {\n border: 'none',\n background: 'var(--app-primary-color, #2f80ed)',\n color: '#fff',\n borderRadius: 6,\n padding: '8px 14px',\n cursor: 'pointer'\n },\n children: \"重试\"\n }, \"retry\"),\n /*#__PURE__*/ _jsx(\"button\", {\n onClick: ()=>setShowDetails(!showDetails),\n \"aria-label\": showDetails ? '隐藏错误详情' : '显示错误详情',\n style: {\n border: '1px solid #cfd7df',\n background: '#fff',\n color: '#1f2933',\n borderRadius: 6,\n padding: '8px 14px',\n cursor: 'pointer'\n },\n children: showDetails ? '隐藏详情' : '查看详情'\n }, \"details\")\n ];\n // 如果重试次数 >= 1,添加刷新页面按钮(提前显示)\n if (retryCount >= 1) {\n buttons.push(/*#__PURE__*/ _jsx(\"button\", {\n onClick: handleReload,\n \"aria-label\": \"刷新页面\",\n style: {\n border: '1px solid #cfd7df',\n background: '#fff',\n color: '#1f2933',\n borderRadius: 6,\n padding: '8px 14px',\n cursor: 'pointer'\n },\n children: \"刷新页面\"\n }, \"reload\"));\n }\n return buttons;\n }, [\n retryCount,\n handleRetry,\n handleReload,\n showDetails\n ]);\n return /*#__PURE__*/ _jsxs(\"div\", {\n role: \"alert\",\n \"aria-live\": \"assertive\",\n \"aria-atomic\": \"true\",\n style: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: '100vh',\n padding: '24px'\n },\n children: [\n /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n maxWidth: 580,\n width: '100%',\n textAlign: 'center',\n border: '1px solid #dde5ec',\n borderRadius: 10,\n padding: 24,\n background: '#fff'\n },\n children: [\n /*#__PURE__*/ _jsx(\"div\", {\n style: {\n fontSize: 40,\n lineHeight: '44px'\n },\n children: \"⚠️\"\n }),\n /*#__PURE__*/ _jsx(\"h2\", {\n style: {\n margin: '8px 0 4px'\n },\n children: \"出错了\"\n }),\n /*#__PURE__*/ _jsx(\"p\", {\n style: {\n marginTop: 0,\n color: '#52606d'\n },\n children: userFriendlyMessage\n }),\n /*#__PURE__*/ _jsx(\"div\", {\n style: {\n display: 'flex',\n gap: 8,\n justifyContent: 'center',\n flexWrap: 'wrap'\n },\n children: extraButtons\n })\n ]\n }),\n showDetails && /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n marginTop: 24,\n padding: 16,\n backgroundColor: '#f5f5f5',\n borderRadius: 4,\n maxWidth: 800,\n width: '100%',\n maxHeight: 400,\n overflow: 'auto'\n },\n children: [\n /*#__PURE__*/ _jsx(\"div\", {\n style: {\n marginBottom: 8,\n fontWeight: 'bold'\n },\n children: \"错误详情:\"\n }),\n /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n fontFamily: 'monospace',\n fontSize: 12\n },\n children: [\n /*#__PURE__*/ _jsxs(\"div\", {\n children: [\n /*#__PURE__*/ _jsx(\"strong\", {\n children: \"错误类型:\"\n }),\n normalizedError.name\n ]\n }),\n /*#__PURE__*/ _jsxs(\"div\", {\n children: [\n /*#__PURE__*/ _jsx(\"strong\", {\n children: \"错误代码:\"\n }),\n normalizedError.code\n ]\n }),\n /*#__PURE__*/ _jsxs(\"div\", {\n children: [\n /*#__PURE__*/ _jsx(\"strong\", {\n children: \"错误信息:\"\n }),\n normalizedError.message\n ]\n }),\n normalizedError.stack && /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n marginTop: 8\n },\n children: [\n /*#__PURE__*/ _jsx(\"strong\", {\n children: \"堆栈信息:\"\n }),\n /*#__PURE__*/ _jsx(\"pre\", {\n style: {\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word'\n },\n children: normalizedError.stack\n })\n ]\n })\n ]\n })\n ]\n })\n ]\n });\n });\n DefaultFallbackComponent.displayName = 'DefaultFallbackComponent';\n const defaultFallback = ({ error, resetErrorBoundary })=>{\n return /*#__PURE__*/ _jsx(DefaultFallbackComponent, {\n error: error,\n resetErrorBoundary: resetErrorBoundary\n });\n };\n // 如果提供了自定义 fallback,使用自定义的\n const fallbackRender = fallback ? ({ error, resetErrorBoundary })=>{\n const normalizedError = errorUtils.normalizeError(error);\n return fallback(normalizedError, ()=>{\n handleReset();\n resetErrorBoundary();\n });\n } : defaultFallback;\n // 处理重置时清除重试计数\n const handleResetWithCount = ()=>{\n retryCountRef.current = 0;\n handleReset();\n };\n // 处理 resetKeys 变化时清除重试计数\n const handleResetKeysChange = (prevKeys, nextKeys)=>{\n retryCountRef.current = 0;\n if (onResetKeysChange) {\n onResetKeysChange(prevKeys, nextKeys);\n }\n };\n // 构建 react-error-boundary 的 props\n const errorBoundaryProps = {\n fallbackRender,\n onError: handleError,\n onReset: handleResetWithCount,\n resetKeys,\n onResetKeysChange: handleResetKeysChange\n };\n return /*#__PURE__*/ _jsx(ReactErrorBoundary, {\n ...errorBoundaryProps,\n children: children\n });\n}\n/**\n * 带错误边界的 HOC\n */ export function withErrorBoundary(Component, errorBoundaryProps) {\n const WrappedComponent = (props)=>{\n return /*#__PURE__*/ _jsx(ErrorBoundary, {\n ...errorBoundaryProps,\n children: /*#__PURE__*/ _jsx(Component, {\n ...props\n })\n });\n };\n WrappedComponent.displayName = `withErrorBoundary(${Component.displayName || Component.name || 'Component'})`;\n return WrappedComponent;\n}\n/**\n * 使用错误处理器的 Hook\n * \n * 用于在函数组件中处理异步错误\n * \n * 注意:这个 Hook 需要配合 ErrorBoundary 使用。当调用返回的错误处理函数时,\n * 错误会被设置到初始化错误状态,然后通过 InitializationErrorThrower 组件抛出。\n * \n * @example\n * ```tsx\n * import { useErrorHandler } from '@vlian/framework';\n * \n * function MyComponent() {\n * const handleError = useErrorHandler();\n * \n * useEffect(() => {\n * async function fetchData() {\n * try {\n * await someAsyncOperation();\n * } catch (error) {\n * handleError(error);\n * }\n * }\n * fetchData();\n * }, [handleError]);\n * }\n * ```\n */ export function useErrorHandler() {\n return (error)=>{\n // 将错误设置到初始化错误状态\n // InitializationErrorThrower 组件会检测到错误并抛出,让 ErrorBoundary 捕获\n initializationErrorState.setError(error);\n };\n}\n\n//# sourceMappingURL=ErrorBoundary.js.map","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 { logger } from \"@vlian/logger\";\nimport { SecurityUtils, SecurityError, ValidationError } from \"@vlian/utils\";\n/**\n * LRU 缓存实现\n */ let LRUCache = class LRUCache {\n get(key) {\n const item = this.cache.get(key);\n if (item) {\n // 更新访问时间\n item.accessTime = Date.now();\n // 移动到末尾(最近使用)\n this.cache.delete(key);\n this.cache.set(key, item);\n }\n return item;\n }\n set(key, value) {\n // 如果已存在,先删除\n if (this.cache.has(key)) {\n this.cache.delete(key);\n } else if (this.cache.size >= this.maxSize) {\n // 如果达到最大大小,删除最久未使用的项(第一个)\n const firstKey = this.cache.keys().next().value;\n if (firstKey) {\n this.cache.delete(firstKey);\n }\n }\n value.accessTime = Date.now();\n this.cache.set(key, value);\n }\n delete(key) {\n return this.cache.delete(key);\n }\n clear() {\n this.cache.clear();\n }\n size() {\n return this.cache.size;\n }\n cleanupExpired(cacheTTL) {\n const now = Date.now();\n for (const [key, item] of this.cache.entries()){\n if (now - item.timestamp > cacheTTL) {\n this.cache.delete(key);\n }\n }\n }\n constructor(maxSize = 50){\n _define_property(this, \"cache\", new Map());\n _define_property(this, \"maxSize\", void 0);\n this.maxSize = maxSize;\n }\n};\n/**\n * 转换缓存(使用 LRU 缓存)\n */ let transformCache = null;\n/**\n * 默认配置\n */ const DEFAULT_OPTIONS = {\n pathValidation: {\n enablePathValidation: true,\n // 默认仅允许常见本地模块路径,生产环境建议进一步收紧。\n allowedPathPrefixes: [\n '@/',\n './',\n '../'\n ],\n maxPathLength: 500,\n allowAbsolutePaths: false\n },\n performance: {\n enableCache: true,\n cacheTTL: 5 * 60 * 1000,\n maxCacheSize: 50,\n maxRecursionDepth: 100,\n enableParallelProcessing: true,\n parallelBatchSize: 10\n },\n enableDebugLog: false\n};\n/**\n * 优化的字符串哈希函数(用于缓存键)\n * 使用更高效的哈希算法,支持大字符串\n */ function optimizedHash(str) {\n // 对于小字符串,使用快速哈希\n if (str.length < 100) {\n let hash = 0;\n for(let i = 0; i < str.length; i++){\n const char = str.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash = hash & hash; // 转换为 32 位整数\n }\n return Math.abs(hash).toString(36);\n }\n // 对于大字符串,使用分段哈希\n let hash = 0;\n const step = Math.max(1, Math.floor(str.length / 100));\n for(let i = 0; i < str.length; i += step){\n const char = str.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash = hash & hash;\n }\n return Math.abs(hash).toString(36);\n}\n/**\n * 使用 crypto API 的哈希函数(如果可用)\n * 保留此函数供未来使用(异步哈希场景)\n */ // async function cryptoHash(str: string): Promise<string> {\n// // 检查是否支持 crypto API\n// if (typeof crypto !== 'undefined' && crypto.subtle && crypto.subtle.digest) {\n// try {\n// const encoder = new TextEncoder();\n// const data = encoder.encode(str);\n// const hashBuffer = await crypto.subtle.digest('SHA-256', data);\n// const hashArray = Array.from(new Uint8Array(hashBuffer));\n// return hashArray.map(b => b.toString(16).padStart(2, '0')).join('').substring(0, 16);\n// } catch {\n// // 如果 crypto API 失败,回退到优化哈希\n// return optimizedHash(str);\n// }\n// }\n// return optimizedHash(str);\n// }\n/**\n * 同步哈希函数(用于同步场景)\n */ function simpleHash(str) {\n return optimizedHash(str);\n}\nfunction serializeComponentRef(value) {\n if (typeof value === 'string') {\n return {\n str: value\n };\n }\n if (typeof value === 'function') {\n // 函数引用无法稳定序列化源码,使用名称和长度参与哈希,避免同名不同体完全碰撞。\n const fnText = String(value);\n return {\n fn: `${value.name || 'anonymous'}:${fnText.length}`\n };\n }\n return {};\n}\nfunction serializeRouteConfig(route) {\n const page = serializeComponentRef(route.page);\n const layout = serializeComponentRef(route.layout);\n const routeError = serializeComponentRef(route.error ?? route.errors);\n const loading = serializeComponentRef(route.loading);\n return {\n name: route.name,\n path: route.path,\n page: page.str,\n pageFn: page.fn,\n layout: layout.str,\n layoutFn: layout.fn,\n error: routeError.str,\n errorFn: routeError.fn,\n loading: loading.str,\n loadingFn: loading.fn,\n isGroup: route.isGroup,\n enableRedirection: route.enableRedirection,\n handle: route.handle ? {\n title: route.handle.title,\n order: route.handle.order,\n needLogin: route.handle.needLogin,\n roles: Array.isArray(route.handle.roles) ? [\n ...route.handle.roles\n ] : undefined\n } : undefined,\n children: route.children?.map((child)=>serializeRouteConfig(child))\n };\n}\n/**\n * 生成配置哈希(用于缓存键)\n * 优化:缓存序列化结果,避免重复序列化\n */ function generateConfigHash(routes) {\n try {\n if (routes.length === 0) {\n return 'empty';\n }\n const serializedRoutes = routes.map((route)=>serializeRouteConfig(route));\n const configStr = JSON.stringify(serializedRoutes);\n return simpleHash(configStr);\n } catch {\n return '';\n }\n}\n/**\n * 路径验证缓存(已验证的路径)\n */ const validatedPathCache = new Set();\n/**\n * 预编译的正则表达式(用于路径验证)\n */ const PATH_TRAVERSAL_REGEX = /\\.\\.(\\/|\\\\)|\\.\\.%2[Ff]|\\.\\.%5[Cc]|%2[Ee]%2[Ee]%2[Ff]|%2[Ee]%2[Ee]%5[Cc]/i;\nconst ABSOLUTE_PATH_REGEX = /^\\/|^[A-Za-z]:\\\\/;\nconst CONTROL_CHAR_REGEX = /[\\x00-\\x1f\\x7f]/;\nconst NULL_BYTE_REGEX = /%00|\\\\0|\\x00/;\nconst URL_SCHEME_REGEX = /^[A-Za-z][A-Za-z0-9+.-]*:/;\n// 保留供未来使用(命令注入检测)\n// const COMMAND_INJECTION_REGEX = /[;|&$`]/;\n// const ALLOWED_CHARS_REGEX = /^[a-zA-Z0-9\\/\\-_.@]+$/;\n/**\n * 验证路径是否安全\n * 优化:添加验证缓存、预编译正则、早期返回\n */ function validatePath(path, config) {\n // 早期返回:检查缓存\n if (validatedPathCache.has(path)) {\n return {\n valid: true\n };\n }\n // 早期返回:检查路径长度(最快检查)\n if (path.length > config.maxPathLength) {\n return {\n valid: false,\n error: process.env.NODE_ENV === 'development' ? `路径长度超过最大限制 ${config.maxPathLength} 字符` : '路径验证失败'\n };\n }\n // 早期返回:检查空字符串\n if (path.length === 0) {\n return {\n valid: false,\n error: '路径不能为空'\n };\n }\n // 检查路径遍历攻击(使用预编译正则)\n if (PATH_TRAVERSAL_REGEX.test(path)) {\n return {\n valid: false,\n error: process.env.NODE_ENV === 'development' ? '路径包含路径遍历字符(../),可能存在安全风险' : '路径验证失败'\n };\n }\n // 检查空字节注入\n if (NULL_BYTE_REGEX.test(path)) {\n return {\n valid: false,\n error: process.env.NODE_ENV === 'development' ? '路径包含空字节,可能存在安全风险' : '路径验证失败'\n };\n }\n // 检查控制字符\n if (CONTROL_CHAR_REGEX.test(path)) {\n return {\n valid: false,\n error: process.env.NODE_ENV === 'development' ? '路径包含控制字符,可能存在安全风险' : '路径验证失败'\n };\n }\n // 检查命令注入字符(可选,根据需求决定是否启用)\n // if (COMMAND_INJECTION_REGEX.test(path)) {\n // return {\n // valid: false,\n // error: process.env.NODE_ENV === 'development'\n // ? '路径包含潜在的命令注入字符'\n // : '路径验证失败',\n // };\n // }\n // 禁止 URL scheme 导入(如 http:, https:, data:, javascript:)\n if (URL_SCHEME_REGEX.test(path)) {\n return {\n valid: false,\n error: process.env.NODE_ENV === 'development' ? '不允许使用带协议的路径' : '路径验证失败'\n };\n }\n // 检查绝对路径(使用预编译正则)\n if (!config.allowAbsolutePaths && ABSOLUTE_PATH_REGEX.test(path)) {\n return {\n valid: false,\n error: process.env.NODE_ENV === 'development' ? '不允许使用绝对路径' : '路径验证失败'\n };\n }\n // 默认仅允许相对路径和别名路径,避免把第三方包名作为动态入口。\n if (!path.startsWith('@/') && !path.startsWith('./') && !path.startsWith('../')) {\n return {\n valid: false,\n error: process.env.NODE_ENV === 'development' ? '仅允许使用 @/、./、../ 开头的模块路径' : '路径验证失败'\n };\n }\n // 检查路径前缀白名单(优化:使用 Set 提高查找速度)\n if (config.allowedPathPrefixes.length > 0) {\n const prefixSet = new Set(config.allowedPathPrefixes);\n const isAllowed = Array.from(prefixSet).some((prefix)=>path.startsWith(prefix));\n if (!isAllowed) {\n return {\n valid: false,\n error: process.env.NODE_ENV === 'development' ? `路径不在允许的前缀列表中: ${config.allowedPathPrefixes.join(', ')}` : '路径验证失败'\n };\n }\n }\n // 使用 SecurityUtils 验证输入(最后检查,因为可能较慢)\n const validation = SecurityUtils.validateInput(path);\n if (!validation.safe) {\n return {\n valid: false,\n error: process.env.NODE_ENV === 'development' ? validation.reason || '路径包含潜在的危险内容' : '路径验证失败'\n };\n }\n // 验证通过,添加到缓存(限制缓存大小)\n if (validatedPathCache.size < 1000) {\n validatedPathCache.add(path);\n }\n return {\n valid: true\n };\n}\n/**\n * 预编译的正则表达式(用于路径规范化)\n */ const NORMALIZE_REGEX = {\n multipleSlashes: /\\/+/g,\n dotSlash: /\\/\\.\\//g,\n trailingDot: /\\/\\.$/\n};\n/**\n * 规范化路径\n * 优化:合并正则表达式,减少替换次数\n */ function normalizePath(path) {\n // 合并多个替换操作,减少字符串遍历次数\n return path.replace(NORMALIZE_REGEX.multipleSlashes, '/').replace(NORMALIZE_REGEX.dotSlash, '/').replace(NORMALIZE_REGEX.trailingDot, '').trim();\n}\n/**\n * 类型守卫:检查是否为有效路径字符串\n */ function isValidPathString(path) {\n return typeof path === 'string' && path.length > 0;\n}\n/**\n * 类型守卫:检查是否为动态导入函数\n */ function isComponentImport(path) {\n return typeof path === 'function';\n}\n/**\n * 创建动态导入函数\n * \n * 将组件路径字符串转换为动态导入函数,用于代码分割和懒加载\n * \n * @param path - 组件路径字符串,支持相对路径和别名路径(如 '@/pages/home.tsx')\n * @returns 返回动态导入函数,调用后会返回 Promise,resolve 后的值为组件模块对象\n * \n * @remarks\n * - 使用 `@vite-ignore` 注释告诉 Vite 忽略此动态导入的静态分析\n * - 使用类型断言 `as any` 是因为 TypeScript 的 `import()` 需要静态字符串字面量\n * - 在运行时,我们可以使用动态路径进行导入\n * - 组件必须使用默认导出(export default)\n * \n * @example\n * ```typescript\n * const importFn = createDynamicImport('@/pages/home.tsx');\n * const module = await importFn();\n * const HomePage = module.default;\n * ```\n */ function createDynamicImport(path) {\n // 使用类型断言,因为 TypeScript 的 import() 需要静态字符串\n // 但在运行时,我们可以使用动态路径\n return ()=>import(/* @vite-ignore */ path);\n}\n/**\n * 提取并验证组件路径到 Map 中\n * \n * 如果路径有效且 Map 中不存在,则创建动态导入函数并存储到 Map 中\n * 这样可以避免重复创建相同路径的动态导入函数,提高性能\n * \n * @param path - 组件路径,可能是字符串、动态导入函数、null 或 undefined\n * @param map - 目标 Map,用于存储路径到动态导入函数的映射\n * @param config - 路径验证配置\n * @param options - 转换选项\n * @returns 如果成功提取,返回动态导入函数;否则返回 null\n * \n * @remarks\n * - 如果 path 是函数,直接返回,不添加到 Map(函数本身就可以直接使用)\n * - 只有当路径是有效的非空字符串时才会处理并添加到 Map\n * - 如果 Map 中已存在该路径,则直接返回已有的导入函数\n * - 优化:使用 `get()` 一次获取,判断是否为 undefined,减少函数调用\n * - 会进行路径验证和清理\n * \n * @example\n * ```typescript\n * const pages = new Map<string, () => Promise<any>>();\n * const importFn1 = extractAndValidatePath('@/pages/home.tsx', pages, config, options);\n * const importFn2 = extractAndValidatePath(() => import('@/pages/home.tsx'), pages, config, options);\n * ```\n */ function extractAndValidatePath(path, map, config, options) {\n // 早期返回:如果是函数,直接返回,不添加到 Map\n if (isComponentImport(path)) {\n return path;\n }\n // 早期返回:检查是否为有效路径字符串\n if (!isValidPathString(path)) {\n return null;\n }\n // 规范化路径\n const normalizedPath = normalizePath(path);\n // 优化:先检查 Map 中是否已存在(避免不必要的验证)\n const existingImport = map.get(normalizedPath);\n if (existingImport !== undefined) {\n return existingImport;\n }\n // 路径验证(仅在 Map 中不存在时进行)\n if (config.enablePathValidation) {\n const validation = validatePath(normalizedPath, config);\n if (!validation.valid) {\n // 生产环境错误信息脱敏\n const errorMessage = process.env.NODE_ENV === 'development' ? `路径验证失败: ${validation.error}` : '路径验证失败';\n const error = new SecurityError(errorMessage, undefined, process.env.NODE_ENV === 'development' ? {\n path: normalizedPath\n } : {});\n if (options.enableDebugLog) {\n logger.error('路径验证失败:', error);\n }\n // 开发环境抛出错误,生产环境记录警告并跳过\n if (process.env.NODE_ENV === 'development') {\n throw error;\n } else {\n // 生产环境日志脱敏\n logger.warn('路径验证失败,已跳过');\n return null;\n }\n }\n }\n // 创建动态导入函数并存储\n const importFn = createDynamicImport(normalizedPath);\n map.set(normalizedPath, importFn);\n if (options.enableDebugLog) {\n logger.debug('提取路径:', normalizedPath);\n }\n return importFn;\n}\n/**\n * 对象池:复用栈节点对象,减少 GC 压力\n */ let StackNodePool = class StackNodePool {\n acquire(route, depth) {\n if (this.pool.length > 0) {\n const node = this.pool.pop();\n node.route = route;\n node.depth = depth;\n return node;\n }\n return {\n route,\n depth\n };\n }\n release(node) {\n if (this.pool.length < this.maxPoolSize) {\n this.pool.push(node);\n }\n }\n constructor(){\n _define_property(this, \"pool\", []);\n _define_property(this, \"maxPoolSize\", 100);\n }\n};\nconst stackNodePool = new StackNodePool();\n/**\n * 只提取组件路径到 Map 中,不转换路由配置\n * \n * 使用迭代方式遍历所有路由(包括子路由),提取组件路径到对应的 Map 中\n * 这种设计可以确保:\n * - 相同的组件路径只会创建一个动态导入函数\n * - 使用迭代而非递归,避免栈溢出\n * - 优化:支持并行处理、使用对象池、预分配数组\n * \n * @param routes - 原始路由配置列表\n * @param result - 结果对象,用于累积收集的组件路径\n * @param config - 路径验证配置\n * @param options - 转换选项\n * @param maxDepth - 最大递归深度\n */ async function extractPathsOnly(routes, result, config, options, maxDepth) {\n const enableParallel = options.performance?.enableParallelProcessing ?? true;\n const batchSize = options.performance?.parallelBatchSize ?? 10;\n // 如果启用并行处理且路由数量较多,使用并行处理\n if (enableParallel && routes.length > batchSize) {\n // 收集所有需要处理的路径(只收集字符串类型,函数类型不需要处理)\n const pathsToProcess = [];\n // 遍历所有路由,收集路径\n const stack = [];\n for(let i = routes.length - 1; i >= 0; i--){\n stack.push({\n route: routes[i],\n depth: 0\n });\n }\n while(stack.length > 0){\n const { route, depth } = stack.pop();\n if (depth > maxDepth) {\n logger.warn(`路径提取达到最大深度 ${maxDepth},跳过路由:`, route.name);\n continue;\n }\n // 收集路径(只收集字符串类型,函数类型不需要处理,会直接使用)\n if (route.page && typeof route.page === 'string') {\n pathsToProcess.push({\n path: route.page,\n map: result.pages\n });\n }\n if (route.layout && typeof route.layout === 'string') {\n pathsToProcess.push({\n path: route.layout,\n map: result.layouts\n });\n }\n const routeError = route.error ?? route.errors;\n if (routeError && typeof routeError === 'string') {\n pathsToProcess.push({\n path: routeError,\n map: result.errors\n });\n }\n if (route.loading && typeof route.loading === 'string') {\n pathsToProcess.push({\n path: route.loading,\n map: result.loadings\n });\n }\n // 处理子路由\n if (route.children && Array.isArray(route.children) && route.children.length > 0) {\n for(let i = route.children.length - 1; i >= 0; i--){\n stack.push({\n route: route.children[i],\n depth: depth + 1\n });\n }\n }\n }\n // 并行处理路径(分批处理)\n for(let i = 0; i < pathsToProcess.length; i += batchSize){\n const batch = pathsToProcess.slice(i, i + batchSize);\n await Promise.all(batch.map(({ path, map })=>Promise.resolve(extractAndValidatePath(path, map, config, options))));\n }\n } else {\n // 串行处理(原有逻辑,优化:使用对象池)\n const stack = [];\n // 初始化栈:将所有路由推入栈中\n for(let i = routes.length - 1; i >= 0; i--){\n stack.push(stackNodePool.acquire(routes[i], 0));\n }\n // 迭代处理栈中的路由\n while(stack.length > 0){\n const node = stack.pop();\n const { route, depth } = node;\n // 检查递归深度\n if (depth > maxDepth) {\n logger.warn(`路径提取达到最大深度 ${maxDepth},跳过路由:`, route.name);\n stackNodePool.release(node);\n continue;\n }\n // 提取组件路径到 Map 中(同时进行验证)\n extractAndValidatePath(route.page, result.pages, config, options);\n extractAndValidatePath(route.layout, result.layouts, config, options);\n extractAndValidatePath(route.error ?? route.errors, result.errors, config, options);\n extractAndValidatePath(route.loading, result.loadings, config, options);\n // 处理子路由\n if (route.children && Array.isArray(route.children) && route.children.length > 0) {\n // 将子路由推入栈中(逆序推入,保证处理顺序正确)\n for(let i = route.children.length - 1; i >= 0; i--){\n stack.push(stackNodePool.acquire(route.children[i], depth + 1));\n }\n }\n // 释放节点到对象池\n stackNodePool.release(node);\n }\n }\n}\n/**\n * 清理过期缓存\n * 优化:使用 LRU 缓存的清理方法\n */ function cleanupExpiredCache(cacheTTL) {\n if (transformCache) {\n transformCache.cleanupExpired(cacheTTL);\n }\n}\n/**\n * 转换路由配置:提取组件路径到 Map 中,返回原始路由配置\n * \n * 此函数是路由转换的核心函数,主要完成以下任务:\n * 1. 递归提取路由配置中的所有组件路径(page、layout、errors、loading)\n * 2. 将组件路径字符串转换为动态导入函数\n * 3. 将动态导入函数存储在对应的 Map 中,key 为路径字符串,确保不重复\n * 4. 返回原始路由配置列表,不进行转换\n * \n * @param routes - 路由配置列表,可以是:\n * - 路由配置数组(RouteConfig[])\n * - 返回路由配置数组的函数(支持同步或异步:() => RouteConfig[] | Promise<RouteConfig[]>)\n * 支持异步函数是为了支持动态加载路由配置(如从服务器获取)\n * @param options - 转换配置选项\n * @returns 包含以下内容的结果对象:\n * - `pages`: 页面组件路径到动态导入函数的 Map\n * - `layouts`: 布局组件路径到动态导入函数的 Map\n * - `errors`: 错误组件路径到动态导入函数的 Map\n * - `loadings`: 加载组件路径到动态导入函数的 Map\n * - `routes`: 原始路由配置列表,不进行转换\n * \n * @remarks\n * - 如果 `routes` 为 null、undefined 或空数组,返回空结果对象\n * - 如果 `routes` 是函数但返回的不是数组,返回空结果对象\n * - 相同的组件路径只会创建一个动态导入函数,存储在 Map 中复用\n * - 路由配置保持原始格式,组件路径仍为字符串\n * - 支持嵌套路由,会递归处理所有层级的子路由\n * - 支持缓存,相同配置会直接返回缓存结果\n * \n * @example\n * ```typescript\n * // 示例 1: 使用数组配置\n * const result = await transformRoutes([\n * {\n * name: 'home',\n * path: '/',\n * page: '@/pages/home.tsx',\n * errors: '@/pages/error.tsx',\n * handle: { title: '首页', order: 1 },\n * },\n * ]);\n * \n * // 示例 2: 使用异步函数配置\n * const result = await transformRoutes(async () => {\n * const response = await fetch('/api/routes');\n * return response.json();\n * });\n * \n * // 示例 3: 使用配置选项\n * const result = await transformRoutes(routes, {\n * pathValidation: {\n * enablePathValidation: true,\n * allowedPathPrefixes: ['@/pages', '@/components'],\n * },\n * performance: {\n * enableCache: true,\n * cacheTTL: 10 * 60 * 1000, // 10 分钟\n * },\n * });\n * ```\n */ export async function transformRoutes(routes, options = {}) {\n const startTime = performance.now();\n const mergedOptions = {\n pathValidation: {\n ...DEFAULT_OPTIONS.pathValidation,\n ...options.pathValidation\n },\n performance: {\n ...DEFAULT_OPTIONS.performance,\n ...options.performance\n },\n enableDebugLog: options.enableDebugLog ?? DEFAULT_OPTIONS.enableDebugLog\n };\n // 早期返回:如果 routes 为空或未定义,直接返回空结果\n if (!routes) {\n if (mergedOptions.enableDebugLog) {\n logger.debug('路由配置为空,返回空结果');\n }\n return {\n pages: new Map(),\n layouts: new Map(),\n errors: new Map(),\n loadings: new Map(),\n routes: []\n };\n }\n // 处理 routes 可能是函数的情况\n let routesArray;\n try {\n routesArray = typeof routes === 'function' ? await routes() : routes;\n } catch (error) {\n const err = error instanceof Error ? error : new Error('路由配置加载失败');\n logger.error('路由配置加载失败:', err);\n throw new ValidationError('路由配置加载失败', {\n originalError: err\n });\n }\n // 早期返回:如果 routesArray 不是数组,直接返回空结果\n if (!Array.isArray(routesArray) || routesArray.length === 0) {\n if (mergedOptions.enableDebugLog) {\n logger.debug('路由配置不是数组或为空,返回空结果');\n }\n return {\n pages: new Map(),\n layouts: new Map(),\n errors: new Map(),\n loadings: new Map(),\n routes: []\n };\n }\n // 检查缓存\n const cacheTTL = mergedOptions.performance.cacheTTL ?? DEFAULT_OPTIONS.performance.cacheTTL;\n const maxCacheSize = mergedOptions.performance.maxCacheSize ?? DEFAULT_OPTIONS.performance.maxCacheSize;\n if (mergedOptions.performance.enableCache) {\n // 初始化 LRU 缓存(如果尚未初始化或大小发生变化)\n if (!transformCache || transformCache.size() !== maxCacheSize) {\n transformCache = new LRUCache(maxCacheSize);\n }\n const configHash = generateConfigHash(routesArray);\n if (configHash) {\n const cached = transformCache.get(configHash);\n if (cached && Date.now() - cached.timestamp < cacheTTL) {\n if (mergedOptions.enableDebugLog) {\n logger.debug('使用缓存结果');\n }\n // 直接返回缓存结果(LRU 缓存已处理访问时间更新)\n return cached.result;\n }\n }\n // 清理过期缓存\n cleanupExpiredCache(cacheTTL);\n }\n // 初始化结果对象\n const result = {\n pages: new Map(),\n layouts: new Map(),\n errors: new Map(),\n loadings: new Map(),\n routes: []\n };\n try {\n // 性能监控:记录各阶段耗时\n const extractStartTime = performance.now();\n // 提取组件路径到 Map 中(不转换路由配置)\n const pathValidation = {\n enablePathValidation: mergedOptions.pathValidation.enablePathValidation ?? DEFAULT_OPTIONS.pathValidation.enablePathValidation,\n allowedPathPrefixes: mergedOptions.pathValidation.allowedPathPrefixes ?? DEFAULT_OPTIONS.pathValidation.allowedPathPrefixes,\n maxPathLength: mergedOptions.pathValidation.maxPathLength ?? DEFAULT_OPTIONS.pathValidation.maxPathLength,\n allowAbsolutePaths: mergedOptions.pathValidation.allowAbsolutePaths ?? DEFAULT_OPTIONS.pathValidation.allowAbsolutePaths\n };\n const maxRecursionDepth = mergedOptions.performance.maxRecursionDepth ?? DEFAULT_OPTIONS.performance.maxRecursionDepth;\n // 异步提取路径(支持并行处理)\n await extractPathsOnly(routesArray, result, pathValidation, mergedOptions, maxRecursionDepth);\n const extractEndTime = performance.now();\n const extractDuration = extractEndTime - extractStartTime;\n // 直接使用原始路由配置,不进行转换\n result.routes = routesArray;\n // 缓存结果\n const cacheStartTime = performance.now();\n if (mergedOptions.performance.enableCache && transformCache) {\n const configHash = generateConfigHash(routesArray);\n if (configHash) {\n // 注意:Map 中包含函数值,structuredClone 会失败;统一使用手动克隆。\n const cachedResult = {\n pages: new Map(result.pages),\n layouts: new Map(result.layouts),\n errors: new Map(result.errors),\n loadings: new Map(result.loadings),\n routes: JSON.parse(JSON.stringify(result.routes))\n };\n transformCache.set(configHash, {\n result: cachedResult,\n timestamp: Date.now(),\n hash: configHash,\n accessTime: Date.now()\n });\n }\n }\n const cacheEndTime = performance.now();\n const cacheDuration = cacheEndTime - cacheStartTime;\n const endTime = performance.now();\n const totalDuration = endTime - startTime;\n if (mergedOptions.enableDebugLog) {\n // 详细的性能报告\n logger.debug(`路由转换完成,总耗时: ${totalDuration.toFixed(2)}ms`, {\n routeCount: result.routes.length,\n pageCount: result.pages.size,\n layoutCount: result.layouts.size,\n errorCount: result.errors.size,\n loadingCount: result.loadings.size,\n performance: {\n extractDuration: `${extractDuration.toFixed(2)}ms`,\n cacheDuration: `${cacheDuration.toFixed(2)}ms`,\n totalDuration: `${totalDuration.toFixed(2)}ms`\n },\n cache: {\n hit: transformCache ? 'miss' : 'disabled',\n size: transformCache?.size() ?? 0\n }\n });\n }\n return result;\n } catch (error) {\n const err = error instanceof Error ? error : new Error('路由转换失败');\n logger.error('路由转换失败:', err);\n throw new ValidationError('路由转换失败', {\n originalError: err\n });\n }\n}\n\n//# sourceMappingURL=transform.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useState } from \"react\";\nconst isDevelopment = process.env.NODE_ENV === 'development';\nexport const RouteErrorBoundary = ({ error, resetErrorBoundary })=>{\n const [showDetails, setShowDetails] = useState(false);\n const errorObject = error !== null && typeof error === 'object' ? error : null;\n const errorMessage = typeof errorObject?.message === 'string' && errorObject.message !== '' ? errorObject.message : '未知错误';\n const hasCause = errorObject?.cause !== undefined;\n const isNotFoundError = errorObject?.status === 404 || typeof errorObject?.statusText === 'string' && /not\\s*found/i.test(errorObject.statusText) || /no routes matched location|not found|404/i.test(errorMessage);\n const title = isNotFoundError ? '页面不存在(404)' : '出错了,请稍后再试';\n const friendlyMessage = isNotFoundError ? '访问的路由未注册或不存在,请检查访问地址。' : '请稍后再试或联系技术支持';\n const displayMessage = isDevelopment ? errorMessage : friendlyMessage;\n return /*#__PURE__*/ _jsx(\"div\", {\n role: \"alert\",\n style: {\n minHeight: '100vh',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n padding: 24\n },\n children: /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n maxWidth: 760,\n width: '100%',\n border: '1px solid #dde5ec',\n borderRadius: 10,\n padding: 20\n },\n children: [\n /*#__PURE__*/ _jsx(\"h2\", {\n style: {\n marginTop: 0\n },\n children: title\n }),\n /*#__PURE__*/ _jsx(\"p\", {\n children: displayMessage\n }),\n /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n display: 'flex',\n gap: 8,\n marginBottom: 12\n },\n children: [\n /*#__PURE__*/ _jsx(\"button\", {\n onClick: resetErrorBoundary,\n style: {\n border: 'none',\n background: '#2f80ed',\n color: '#fff',\n borderRadius: 6,\n padding: '8px 12px',\n cursor: 'pointer'\n },\n children: \"刷新重试\"\n }),\n isDevelopment && /*#__PURE__*/ _jsx(\"button\", {\n onClick: ()=>setShowDetails(!showDetails),\n style: {\n border: '1px solid #cfd7df',\n background: '#fff',\n borderRadius: 6,\n padding: '8px 12px',\n cursor: 'pointer'\n },\n children: showDetails ? '收起详情' : '展开详情'\n })\n ]\n }),\n isDevelopment && showDetails && /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n background: '#f7fafc',\n borderRadius: 8,\n padding: 12,\n fontSize: 12,\n fontFamily: 'monospace'\n },\n children: [\n /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n marginBottom: 10\n },\n children: [\n /*#__PURE__*/ _jsx(\"strong\", {\n children: \"错误信息:\"\n }),\n errorMessage\n ]\n }),\n errorObject?.stack && /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n marginBottom: 10,\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word'\n },\n children: [\n /*#__PURE__*/ _jsx(\"strong\", {\n children: \"堆栈:\"\n }),\n /*#__PURE__*/ _jsx(\"br\", {}),\n errorObject.stack\n ]\n }),\n hasCause && /*#__PURE__*/ _jsxs(\"div\", {\n children: [\n /*#__PURE__*/ _jsx(\"strong\", {\n children: \"原因:\"\n }),\n errorObject?.cause instanceof Error ? errorObject.cause.message : String(errorObject?.cause)\n ]\n })\n ]\n })\n ]\n })\n });\n};\n\n//# sourceMappingURL=RouteErrorBoundary.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Navigate } from \"react-router-dom\";\nimport { RouteErrorBoundary } from \"./RouteErrorBoundary\";\nimport { logger } from \"@vlian/logger\";\nfunction DefaultRouteHydrateFallback() {\n return /*#__PURE__*/ _jsx(\"div\", {\n style: {\n padding: 16,\n textAlign: 'center',\n color: '#5f6c7b'\n },\n children: \"Loading...\"\n });\n}\nexport const transformRoutesToReactRoutes = async (routes, transformResult, defaultRouteErrorComponent, defaultRouteLoadingComponent, enableHydrateFallback = false)=>{\n /**\n * 批量处理路由\n * @param routes 路由组\n */ function transformRouteToReactRoutes(routes) {\n return routes.flatMap((route)=>transformRouteToReactRoute(route));\n }\n /**\n * 处理单个路由\n * @param route 路由\n */ function transformRouteToReactRoute(route) {\n const { isGroup = false, enableRedirection = false, name, path, handle, children, page, layout, error, errors, loading } = route;\n const routeError = error ?? errors;\n // 获取错误组件\n async function getErrorComponent() {\n // 如果 error/errors 是函数,直接使用\n if (typeof routeError === 'function') {\n return routeError();\n }\n const errorsMap = transformResult.errors;\n // 判断 error/errors 是否为 string 且不是空字符串\n if (typeof routeError === 'string' && routeError !== '') {\n // 使用 routeError 作为 key 获取 transformResult.errors 的值\n const errorResolver = errorsMap.get(routeError);\n // 如果获取不到,返回 null\n if (!errorResolver) {\n return null;\n }\n // 如果获取到,返回对应的值(调用动态导入函数)\n if (typeof errorResolver === 'function') {\n return errorResolver();\n }\n return null;\n }\n // 如果 errors 为空,使用配置的默认错误组件或内置的 RouteErrorBoundary 组件\n if (defaultRouteErrorComponent) {\n // 如果配置了默认错误组件,使用配置的组件\n return defaultRouteErrorComponent();\n }\n // 如果没有配置默认错误组件,使用内置的 RouteErrorBoundary 组件\n // 直接导入而非懒加载,因为:\n // 1. RouteErrorBoundary 是框架核心组件,体积小\n // 2. 错误边界需要快速响应,直接导入速度更快\n // 3. 作为基础设施组件,应该保证可用性\n return {\n default: RouteErrorBoundary\n };\n }\n // 获取转换配置\n function convertConfig(m) {\n if (!m) {\n return null;\n }\n const { action, loader, shouldRevalidate, default: Component } = m;\n // 如果 Component 不存在,记录警告\n if (!Component) {\n logger.warn(`路由组件未找到 default 导出: ${name}`, m);\n }\n return {\n action,\n loader,\n shouldRevalidate,\n Component\n };\n }\n // 获取加载组件\n async function getLoadingComponent() {\n if (typeof loading === 'function') {\n return loading();\n }\n if (typeof loading === 'string' && loading !== '') {\n const loadingResolver = transformResult.loadings.get(loading);\n if (typeof loadingResolver === 'function') {\n return loadingResolver();\n }\n }\n if (defaultRouteLoadingComponent) {\n return defaultRouteLoadingComponent();\n }\n return null;\n }\n // 获取配置\n async function getConfig(index = false) {\n // 如果有layout和不是index,返回布局配置\n if (layout && !index) {\n // 如果 layout 是函数,直接使用\n if (typeof layout === 'function') {\n const config = await layout();\n return convertConfig(config);\n }\n // 如果 layout 是字符串,从 Map 中获取\n if (typeof layout === 'string') {\n const layoutResolver = transformResult.layouts.get(layout);\n if (!layoutResolver) {\n throw new Error(`未找到名为 ${layout} 的布局组件`);\n }\n const config = await layoutResolver();\n return convertConfig(config);\n }\n }\n let pageName = name;\n // 如果是notFound则转成404\n if (pageName === 'notFound') {\n pageName = '404';\n }\n if (page && (!children?.length || index)) {\n // 如果 page 是函数,直接使用\n if (typeof page === 'function') {\n const config = await page();\n return convertConfig(config);\n }\n // 如果 page 是字符串,从 Map 中获取\n if (typeof page === 'string') {\n const viewResolver = transformResult.pages.get(page);\n if (!viewResolver) {\n throw new Error(`未找到名为 ${page} 的页面组件`);\n }\n const config = await viewResolver();\n return convertConfig(config);\n }\n }\n return null;\n }\n // 获取处理信息,即额外的配置信息\n function getHandle(index = false) {\n if ((layout || isGroup) && !index) {\n return null;\n }\n return {\n ...handle,\n name,\n path\n };\n }\n const reactRoute = {\n children: [],\n id: name,\n handle: getHandle(),\n lazy: async ()=>{\n const ErrorBoundary = await getErrorComponent();\n const config = await getConfig();\n const LoadingComponent = await getLoadingComponent();\n const HydrateFallback = LoadingComponent?.default ?? DefaultRouteHydrateFallback;\n // 如果配置为空,确保至少返回一个空对象,避免展开 undefined\n if (!config) {\n return {\n ErrorBoundary: ErrorBoundary?.default,\n HydrateFallback\n };\n }\n return {\n ErrorBoundary: ErrorBoundary?.default,\n HydrateFallback,\n ...config\n };\n },\n path\n };\n if (enableHydrateFallback) {\n reactRoute.hydrateFallbackElement = /*#__PURE__*/ _jsx(DefaultRouteHydrateFallback, {});\n }\n // 处理子路由\n if (children?.length) {\n reactRoute.children = children.flatMap((child)=>transformRouteToReactRoute(child)).sort((a, b)=>{\n const orderA = a.handle?.order ?? 99;\n const orderB = b.handle?.order ?? 99;\n return orderA - orderB;\n });\n if (page && !isGroup) {\n reactRoute.children.unshift({\n handle: getHandle(true),\n index: true,\n lazy: async ()=>{\n const ErrorBoundary = await getErrorComponent();\n const LoadingComponent = await getLoadingComponent();\n const HydrateFallback = LoadingComponent?.default ?? DefaultRouteHydrateFallback;\n const Component = page;\n return {\n ErrorBoundary: ErrorBoundary?.default,\n HydrateFallback,\n Component,\n ...await getConfig(true)\n };\n }\n });\n }\n if (enableRedirection && isGroup) {\n const [firstChild] = reactRoute.children;\n if (firstChild?.path) {\n reactRoute.children.unshift({\n index: true,\n handle: getHandle(true),\n element: /*#__PURE__*/ _jsx(Navigate, {\n to: firstChild.path,\n replace: true\n })\n });\n }\n }\n }\n // 若存在 layout 且没有子路由,但同时声明了 page,则自动生成 index 子路由以渲染页面\n // 场景:/test 使用自定义 layout,且没有 children 时仍应渲染 page\n if ((!children || children.length === 0) && layout && page && !isGroup) {\n reactRoute.children = [\n {\n handle: getHandle(true),\n index: true,\n lazy: async ()=>{\n const ErrorBoundary = await getErrorComponent();\n const LoadingComponent = await getLoadingComponent();\n const HydrateFallback = LoadingComponent?.default ?? DefaultRouteHydrateFallback;\n const Component = page;\n return {\n ErrorBoundary: ErrorBoundary?.default,\n HydrateFallback,\n Component,\n ...await getConfig(true)\n };\n }\n }\n ];\n }\n return reactRoute;\n }\n return transformRouteToReactRoutes(routes);\n};\n\n//# sourceMappingURL=transform.js.map","/**\n * 路由配置验证 Schema(使用 Zod)\n */ import { z } from \"zod\";\n/**\n * RouteItemHandle Schema\n */ export const routeItemHandleSchema = z.object({\n title: z.string().min(1, '路由标题不能为空'),\n i18nKey: z.string().optional(),\n order: z.number().int('排序值必须是整数'),\n icon: z.string().optional(),\n hideInMenu: z.boolean().optional(),\n hideFooter: z.boolean().optional(),\n keepAlive: z.boolean().optional(),\n needLogin: z.boolean().optional(),\n roles: z.array(z.string()).optional(),\n name: z.string().optional()\n}).passthrough(); // 允许其他自定义字段\n/**\n * ComponentImport Schema\n * 可以是字符串路径或函数\n */ export const componentImportSchema = z.union([\n z.string().min(1, '组件路径不能为空'),\n z.function(),\n z.null()\n]);\nconst routerOptionsSchema = z.object({\n basename: z.string().optional(),\n future: z.record(z.string(), z.union([\n z.boolean(),\n z.string(),\n z.number()\n ])).optional(),\n hydrationData: z.unknown().optional(),\n window: z.unknown().optional(),\n initialEntries: z.array(z.string()).optional(),\n initialIndex: z.number().int().nonnegative().optional()\n}).passthrough();\nconst transformOptionsSchema = z.object({\n pathValidation: z.object({\n enablePathValidation: z.boolean().optional(),\n allowedPathPrefixes: z.array(z.string().min(1)).optional(),\n maxPathLength: z.number().int().positive().optional(),\n allowAbsolutePaths: z.boolean().optional()\n }).optional(),\n performance: z.object({\n enableCache: z.boolean().optional(),\n cacheTTL: z.number().int().positive().optional(),\n maxCacheSize: z.number().int().positive().optional(),\n maxRecursionDepth: z.number().int().positive().optional(),\n enableParallelProcessing: z.boolean().optional(),\n parallelBatchSize: z.number().int().positive().optional()\n }).optional(),\n enableDebugLog: z.boolean().optional()\n}).passthrough();\n/**\n * RouteConfig Schema\n */ export const routeConfigSchema = z.lazy(()=>z.object({\n layout: componentImportSchema.optional().nullable(),\n page: componentImportSchema.optional().nullable(),\n loading: componentImportSchema.optional().nullable(),\n error: componentImportSchema.optional().nullable(),\n errors: componentImportSchema.optional().nullable(),\n name: z.string().min(1, '路由名称不能为空'),\n path: z.string().optional(),\n isGroup: z.boolean().optional(),\n enableRedirection: z.boolean().optional(),\n handle: routeItemHandleSchema,\n children: z.array(routeConfigSchema).optional()\n }));\n/**\n * RouterConfig Schema\n */ export const routerConfigSchema = z.object({\n enabled: z.union([\n z.boolean(),\n z.literal('disabled')\n ]).optional(),\n routes: z.union([\n z.array(routeConfigSchema),\n z.function()\n ]).optional(),\n mode: z.enum([\n 'browser',\n 'hash',\n 'memory'\n ]).optional(),\n options: routerOptionsSchema.optional(),\n pathResolve: z.object({\n basePath: z.string().optional(),\n pathAliases: z.record(z.string(), z.string()).optional()\n }).optional(),\n transformOptions: transformOptionsSchema.optional(),\n preload: z.object({\n strategy: z.enum([\n 'none',\n 'next-level',\n 'all',\n 'visible'\n ]).optional(),\n delay: z.number().int().positive().optional(),\n priorityThreshold: z.number().int().nonnegative().optional(),\n timeout: z.number().int().positive().optional()\n }).optional(),\n enableHydrateFallback: z.boolean().optional()\n}).superRefine((config, ctx)=>{\n if (!Array.isArray(config.routes)) {\n return;\n }\n const routeNameMap = new Map();\n const walk = (routes, parentPath)=>{\n routes.forEach((route, index)=>{\n const currentPath = `${parentPath}[${index}]`;\n const existingPath = routeNameMap.get(route.name);\n if (existingPath) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [\n 'routes',\n index,\n 'name'\n ],\n message: `路由名称重复: \"${route.name}\",首次定义位置 ${existingPath}`\n });\n } else {\n routeNameMap.set(route.name, currentPath);\n }\n if (Array.isArray(route.children) && route.children.length > 0) {\n walk(route.children, `${currentPath}.children`);\n }\n });\n };\n walk(config.routes, 'routes');\n});\n/**\n * 验证路由配置\n * \n * @param config - 要验证的路由配置\n * @returns 验证后的路由配置\n * @throws z.ZodError 如果配置验证失败\n */ export function validateRouterConfig(config) {\n return routerConfigSchema.parse(config);\n}\n/**\n * 安全验证路由配置(不抛出异常)\n * \n * @param config - 要验证的路由配置\n * @returns 验证结果\n */ export function safeValidateRouterConfig(config) {\n return routerConfigSchema.safeParse(config);\n}\n\n//# sourceMappingURL=schema.js.map","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 * 使用Zod进行配置验证\n */ import { z } from \"zod\";\n/**\n * 配置验证错误\n */ export class ConfigValidationError extends Error {\n constructor(message, errors){\n super(message), _define_property(this, \"errors\", void 0), this.errors = errors;\n this.name = 'ConfigValidationError';\n }\n}\n/**\n * 配置验证器\n */ export class ConfigValidator {\n /**\n * 验证配置\n * \n * @param config - 要验证的配置\n * @param schema - Zod模式\n * @returns 验证后的配置\n * @throws ConfigValidationError 如果配置验证失败\n */ static validate(config, schema) {\n const result = schema.safeParse(config);\n if (!result.success) {\n throw new ConfigValidationError('配置验证失败', result.error);\n }\n return result.data;\n }\n /**\n * 安全验证配置(不抛出异常)\n * \n * @param config - 要验证的配置\n * @param schema - Zod模式\n * @returns 验证结果\n */ static safeValidate(config, schema) {\n const result = schema.safeParse(config);\n if (result.success) {\n return {\n success: true,\n data: result.data\n };\n }\n return {\n success: false,\n error: result.error\n };\n }\n /**\n * 创建StartOptions的部分验证模式\n * 注意:这是一个基础模式,可以根据需要扩展\n */ static createStartOptionsSchema() {\n return z.object({\n loggerLevel: z.enum([\n 'DEBUG',\n 'INFO',\n 'WARN',\n 'ERROR'\n ]).optional(),\n showSplashScreen: z.enum([\n 'auto',\n 'always',\n 'never',\n 'first-time-only'\n ]).optional(),\n minSplashScreenTime: z.number().positive().optional(),\n security: z.object({\n enableXSSProtection: z.boolean().optional(),\n validateConfig: z.boolean().optional(),\n sanitizeUserInput: z.boolean().optional(),\n csp: z.object({\n defaultSrc: z.array(z.string()).optional(),\n scriptSrc: z.array(z.string()).optional(),\n styleSrc: z.array(z.string()).optional(),\n imgSrc: z.array(z.string()).optional(),\n connectSrc: z.array(z.string()).optional(),\n fontSrc: z.array(z.string()).optional(),\n frameSrc: z.array(z.string()).optional(),\n allowUnsafeInline: z.boolean().optional(),\n allowUnsafeEval: z.boolean().optional()\n }).optional()\n }).optional()\n }).passthrough(); // passthrough允许其他字段通过\n }\n /**\n * 验证配置并提供友好的错误信息\n * \n * @param config - 要验证的配置\n * @param schema - Zod模式\n * @returns 验证后的配置\n * @throws ConfigValidationError 如果配置验证失败,包含详细的错误信息\n */ static validateWithFriendlyErrors(config, schema) {\n const result = schema.safeParse(config);\n if (!result.success) {\n // 构建友好的错误信息\n // 注意:ZodError 使用 issues 属性,不是 errors\n const errorMessages = result.error.issues.map((issue)=>{\n const path = issue.path.length > 0 ? issue.path.join('.') : 'root';\n return `配置项 \"${path}\": ${issue.message}`;\n });\n const friendlyMessage = `配置验证失败:\\n${errorMessages.join('\\n')}`;\n throw new ConfigValidationError(friendlyMessage, result.error);\n }\n return result.data;\n }\n}\n\n//# sourceMappingURL=ConfigValidator.js.map","/**\n * 路由配置验证器\n * 使用 Zod 进行配置验证,并提供友好的错误信息\n */ import { ConfigValidationError } from \"../../config/ConfigValidator\";\nimport { logger } from \"@vlian/logger\";\nimport { safeValidateRouterConfig } from \"./schema\";\n/**\n * 路由配置验证器\n */ export class RouterConfigValidator {\n /**\n * 验证路由配置\n * \n * @param config - 要验证的路由配置\n * @returns 验证后的路由配置\n * @throws ConfigValidationError 如果配置验证失败\n */ static validate(config) {\n const result = safeValidateRouterConfig(config);\n if (!result.success) {\n // 构建友好的错误信息\n const errorMessages = result.error.issues.map((issue)=>{\n const path = issue.path.length > 0 ? issue.path.join('.') : 'root';\n return `路由配置项 \"${path}\": ${issue.message}`;\n });\n const friendlyMessage = `路由配置验证失败:\\n${errorMessages.join('\\n')}`;\n logger.error('路由配置验证失败', {\n errors: result.error.issues,\n config\n });\n throw new ConfigValidationError(friendlyMessage, result.error);\n }\n return result.data;\n }\n /**\n * 安全验证路由配置(不抛出异常)\n * \n * @param config - 要验证的路由配置\n * @returns 验证结果\n */ static safeValidate(config) {\n return safeValidateRouterConfig(config);\n }\n /**\n * 验证路由配置并提供修复建议\n * \n * @param config - 要验证的路由配置\n * @returns 验证结果和修复建议\n */ static validateWithSuggestions(config) {\n const result = safeValidateRouterConfig(config);\n if (!result.success) {\n const suggestions = [];\n result.error.issues.forEach((issue)=>{\n const path = issue.path.join('.');\n // 根据错误类型提供修复建议\n if (issue.code === 'invalid_type') {\n const invalidTypeIssue = issue;\n suggestions.push(`配置项 \"${path}\" 类型错误: 期望 ${invalidTypeIssue.expected},实际 ${invalidTypeIssue.received}`);\n } else if (issue.code === 'too_small') {\n suggestions.push(`配置项 \"${path}\" 值太小: ${issue.message}`);\n } else if (issue.code === 'too_big') {\n suggestions.push(`配置项 \"${path}\" 值太大: ${issue.message}`);\n } else {\n suggestions.push(`配置项 \"${path}\": ${issue.message}`);\n }\n });\n return {\n success: false,\n errors: result.error.issues,\n suggestions\n };\n }\n return {\n success: true,\n data: result.data\n };\n }\n}\n\n//# sourceMappingURL=RouterConfigValidator.js.map","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 */ import { logger } from \"@vlian/logger\";\n/**\n * 路由生命周期管理器\n */ export class RouterLifecycleManager {\n /**\n * 注册生命周期钩子\n * \n * @param hooks - 生命周期钩子配置\n * @returns 取消注册函数\n */ register(hooks) {\n this.hooks.push(hooks);\n logger.debug('路由生命周期钩子已注册');\n // 返回取消注册函数\n return ()=>{\n const index = this.hooks.indexOf(hooks);\n if (index > -1) {\n this.hooks.splice(index, 1);\n logger.debug('路由生命周期钩子已取消注册');\n }\n };\n }\n /**\n * 批量注册生命周期钩子\n * \n * @param hooksArray - 生命周期钩子配置数组\n */ registerBatch(hooksArray) {\n hooksArray.forEach((hooks)=>this.register(hooks));\n }\n /**\n * 清空所有生命周期钩子\n */ clear() {\n this.hooks = [];\n logger.debug('所有路由生命周期钩子已清空');\n }\n /**\n * 执行路由跳转前钩子\n * \n * @param to - 目标路由\n * @param from - 来源路由\n * @returns 如果返回字符串,则跳转到该路径;如果返回 false,则阻止跳转;返回 true 或 undefined 则继续跳转\n */ async beforeEach(to, from) {\n // 按注册顺序执行所有 beforeEach 钩子\n for (const hooks of this.hooks){\n if (hooks.beforeEach) {\n try {\n const result = await hooks.beforeEach(to, from);\n // 如果返回 false,阻止跳转\n if (result === false) {\n logger.debug('路由跳转被阻止: beforeEach 返回 false');\n return false;\n }\n // 如果返回字符串,重定向到该路径\n if (typeof result === 'string') {\n logger.debug(`路由跳转重定向: beforeEach 返回 ${result}`);\n return result;\n }\n } catch (error) {\n logger.error('路由生命周期钩子执行失败: beforeEach', error);\n continue;\n }\n }\n }\n // 所有钩子都通过,允许跳转\n return undefined;\n }\n /**\n * 执行路由跳转后钩子\n * \n * @param to - 目标路由\n * @param from - 来源路由\n */ async afterEach(to, from) {\n // 按注册顺序执行所有 afterEach 钩子\n for (const hooks of this.hooks){\n if (hooks.afterEach) {\n try {\n await hooks.afterEach(to, from);\n } catch (error) {\n logger.error('路由生命周期钩子执行失败: afterEach', error);\n continue;\n }\n }\n }\n }\n /**\n * 获取所有生命周期钩子\n * \n * @returns 生命周期钩子配置数组\n */ getAll() {\n return [\n ...this.hooks\n ];\n }\n /**\n * 获取生命周期钩子数量\n * \n * @returns 生命周期钩子数量\n */ getCount() {\n return this.hooks.length;\n }\n constructor(){\n _define_property(this, \"hooks\", []);\n }\n}\n/**\n * 获取路由生命周期管理器单例\n */ let lifecycleManagerInstance = null;\nexport function getRouterLifecycleManager() {\n if (!lifecycleManagerInstance) {\n lifecycleManagerInstance = new RouterLifecycleManager();\n }\n return lifecycleManagerInstance;\n}\n\n//# sourceMappingURL=RouterLifecycleManager.js.map","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 */ import { logger } from \"@vlian/logger\";\n/**\n * 路由中间件管理器\n */ export class RouterMiddlewareManager {\n /**\n * 注册中间件\n * \n * @param config - 中间件配置\n * @returns 取消注册函数\n */ register(config) {\n // 验证中间件配置\n if (!config.middleware || typeof config.middleware !== 'function') {\n throw new Error('中间件必须是一个函数');\n }\n // 设置默认值\n const middlewareConfig = {\n priority: 100,\n enabled: true,\n ...config\n };\n // 添加到中间件列表\n this.middlewares.push(middlewareConfig);\n // 按优先级排序\n this.middlewares.sort((a, b)=>(a.priority || 100) - (b.priority || 100));\n logger.debug(`路由中间件已注册: ${middlewareConfig.name || 'anonymous'}`);\n // 返回取消注册函数\n return ()=>{\n const index = this.middlewares.indexOf(middlewareConfig);\n if (index > -1) {\n this.middlewares.splice(index, 1);\n logger.debug(`路由中间件已取消注册: ${middlewareConfig.name || 'anonymous'}`);\n }\n };\n }\n /**\n * 批量注册中间件\n * \n * @param configs - 中间件配置数组\n */ registerBatch(configs) {\n configs.forEach((config)=>this.register(config));\n }\n /**\n * 取消注册中间件\n * \n * @param name - 中间件名称\n */ unregister(name) {\n const index = this.middlewares.findIndex((m)=>m.name === name);\n if (index > -1) {\n this.middlewares.splice(index, 1);\n logger.debug(`路由中间件已取消注册: ${name}`);\n }\n }\n /**\n * 清空所有中间件\n */ clear() {\n this.middlewares = [];\n logger.debug('所有路由中间件已清空');\n }\n /**\n * 执行中间件链\n * \n * @param context - 中间件上下文\n * @returns 中间件执行结果\n */ async execute(context) {\n // 过滤启用的中间件\n const enabledMiddlewares = this.middlewares.filter((m)=>{\n if (!m.enabled) {\n return false;\n }\n // 检查条件函数\n if (m.condition && !m.condition(context)) {\n return false;\n }\n return true;\n });\n // 按顺序执行中间件\n for (const middlewareConfig of enabledMiddlewares){\n try {\n const result = await middlewareConfig.middleware(context);\n // 如果中间件返回 false,阻止导航\n if (result === false) {\n logger.debug(`路由中间件阻止导航: ${middlewareConfig.name || 'anonymous'} -> false`);\n return {\n allow: false,\n reason: '中间件返回 false'\n };\n }\n // 如果中间件返回对象且 allow: false,阻止导航\n if (typeof result === 'object' && result !== null && result.allow === false) {\n logger.debug(`路由中间件阻止导航: ${middlewareConfig.name || 'anonymous'}`, result);\n if (result.redirect && !RouterMiddlewareManager.SAFE_REDIRECT_PATH_REGEX.test(result.redirect)) {\n logger.warn(`路由中间件返回了不安全的重定向地址,已拦截: ${middlewareConfig.name || 'anonymous'} -> ${result.redirect}`);\n return {\n allow: false,\n reason: '中间件返回了不安全的重定向地址'\n };\n }\n return result;\n }\n // 如果中间件返回字符串,重定向到该路径\n if (typeof result === 'string') {\n if (!RouterMiddlewareManager.SAFE_REDIRECT_PATH_REGEX.test(result)) {\n logger.warn(`路由中间件返回了不安全的重定向地址,已拦截: ${middlewareConfig.name || 'anonymous'} -> ${result}`);\n return {\n allow: false,\n reason: '中间件返回了不安全的重定向地址'\n };\n }\n logger.debug(`路由中间件重定向: ${middlewareConfig.name || 'anonymous'} -> ${result}`);\n return {\n allow: false,\n redirect: result\n };\n }\n } catch (error) {\n logger.error(`路由中间件执行失败: ${middlewareConfig.name || 'anonymous'}`, error);\n continue;\n }\n }\n // 所有中间件都通过,允许导航\n return {\n allow: true\n };\n }\n /**\n * 获取所有中间件\n * \n * @returns 中间件配置数组\n */ getAll() {\n return [\n ...this.middlewares\n ];\n }\n /**\n * 获取启用的中间件\n * \n * @returns 启用的中间件配置数组\n */ getEnabled() {\n return this.middlewares.filter((m)=>m.enabled);\n }\n /**\n * 获取中间件数量\n * \n * @returns 中间件数量\n */ getCount() {\n return this.middlewares.length;\n }\n constructor(){\n _define_property(this, \"middlewares\", []);\n }\n}\n_define_property(RouterMiddlewareManager, \"SAFE_REDIRECT_PATH_REGEX\", /^(\\/|\\.\\/|\\.\\.\\/|#)/);\n/**\n * 获取路由中间件管理器单例\n */ let middlewareManagerInstance = null;\nexport function getRouterMiddlewareManager() {\n if (!middlewareManagerInstance) {\n middlewareManagerInstance = new RouterMiddlewareManager();\n }\n return middlewareManagerInstance;\n}\n\n//# sourceMappingURL=RouterMiddlewareManager.js.map","/**\n * 路由权限拦截中间件\n */ import { logger } from \"@vlian/logger\";\n/**\n * 创建权限拦截中间件\n * \n * @param config - 权限拦截中间件配置\n * @returns 路由中间件函数\n */ export function createAuthMiddleware(config) {\n const { checkAuth, checkLogin, checkRole, loginRedirect = '/login', forbiddenRedirect = '/403' } = config;\n return async (context)=>{\n const { to } = context;\n // 检查路由是否需要登录\n const needLogin = to.meta?.needLogin || to.meta?.handle?.needLogin;\n if (needLogin) {\n // 检查登录状态\n if (checkLogin) {\n const isLoggedIn = await checkLogin();\n if (!isLoggedIn) {\n logger.debug(`路由权限拦截: 未登录,重定向到 ${loginRedirect}`);\n return {\n allow: false,\n redirect: loginRedirect,\n reason: '需要登录'\n };\n }\n }\n }\n // 检查路由角色权限\n const roles = to.meta?.roles || to.meta?.handle?.roles;\n if (roles && Array.isArray(roles) && roles.length > 0) {\n if (checkRole) {\n const hasRole = await checkRole(roles);\n if (!hasRole) {\n logger.debug(`路由权限拦截: 无权限,重定向到 ${forbiddenRedirect}`);\n return {\n allow: false,\n redirect: forbiddenRedirect,\n reason: '无权限访问'\n };\n }\n }\n }\n // 执行自定义权限检查\n if (checkAuth) {\n const hasAuth = await checkAuth(context);\n if (!hasAuth) {\n logger.debug(`路由权限拦截: 权限检查失败,重定向到 ${forbiddenRedirect}`);\n return {\n allow: false,\n redirect: forbiddenRedirect,\n reason: '权限检查失败'\n };\n }\n }\n // 权限检查通过\n return {\n allow: true\n };\n };\n}\n\n//# sourceMappingURL=auth.js.map","import * as vlianUtils from \"@vlian/utils\";\nconst utils = vlianUtils;\nexport const ErrorCode = utils.ErrorCode;\nexport const ErrorMessages = utils.ErrorMessages;\nexport const getErrorMessage = utils.getErrorMessage;\nexport const getUserFriendlyMessage = utils.getUserFriendlyMessage;\nexport const ErrorType = utils.ErrorType;\nexport const ErrorSeverity = utils.ErrorSeverity;\nexport const FrameworkError = utils.FrameworkError;\nexport const InitializationError = utils.InitializationError;\nexport const ConfigError = utils.ConfigError;\nexport const StorageError = utils.StorageError;\nexport const NetworkError = utils.NetworkError;\nexport const ValidationError = utils.ValidationError;\nexport const SecurityError = utils.SecurityError;\nexport const errorUtils = utils.errorUtils;\n\n//# sourceMappingURL=errors.js.map","/**\n * 路由错误类型定义\n */ import { FrameworkError, ErrorSeverity, ErrorType } from \"../../../utils/errors\";\n/**\n * 路由错误代码\n */ export var RouterErrorCode = /*#__PURE__*/ function(RouterErrorCode) {\n /**\n * 路由未初始化\n */ RouterErrorCode[\"ROUTER_NOT_INITIALIZED\"] = \"ROUTER_NOT_INITIALIZED\";\n /**\n * 路由配置错误\n */ RouterErrorCode[\"ROUTER_CONFIG_ERROR\"] = \"ROUTER_CONFIG_ERROR\";\n /**\n * 路由未找到\n */ RouterErrorCode[\"ROUTE_NOT_FOUND\"] = \"ROUTE_NOT_FOUND\";\n /**\n * 路由导航失败\n */ RouterErrorCode[\"ROUTE_NAVIGATION_FAILED\"] = \"ROUTE_NAVIGATION_FAILED\";\n /**\n * 路由权限不足\n */ RouterErrorCode[\"ROUTE_PERMISSION_DENIED\"] = \"ROUTE_PERMISSION_DENIED\";\n /**\n * 路由组件加载失败\n */ RouterErrorCode[\"ROUTE_COMPONENT_LOAD_FAILED\"] = \"ROUTE_COMPONENT_LOAD_FAILED\";\n /**\n * 路由转换失败\n */ RouterErrorCode[\"ROUTE_TRANSFORM_FAILED\"] = \"ROUTE_TRANSFORM_FAILED\";\n return RouterErrorCode;\n}({});\n/**\n * 路由错误\n */ export class RouterError extends FrameworkError {\n constructor(message, code, severity = ErrorSeverity.MEDIUM, cause, context){\n super(message, ErrorType.RUNTIME, severity, {\n code,\n originalError: cause,\n context: context || {}\n });\n this.name = 'RouterError';\n }\n}\n/**\n * 创建路由错误\n */ export function createRouterError(message, code, severity, cause, context) {\n return new RouterError(message, code, severity, cause, context);\n}\n\n//# sourceMappingURL=RouterError.js.map","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 */ import { logger } from \"@vlian/logger\";\n/**\n * 路由缓存管理器\n */ export class RouteCache {\n /**\n * 初始化持久化缓存\n */ async initPersistence() {\n try {\n // 检查 IndexedDB 是否可用\n if (typeof window !== 'undefined' && 'indexedDB' in window) {\n this.persistenceEnabled = true;\n await this.loadFromPersistence();\n logger.debug('路由缓存持久化已启用');\n }\n } catch (error) {\n logger.warn('路由缓存持久化初始化失败', error);\n this.persistenceEnabled = false;\n }\n }\n /**\n * 从持久化存储加载缓存\n */ async loadFromPersistence() {\n try {\n // 这里可以实现从 IndexedDB 加载缓存的逻辑\n // 由于 IndexedDB 操作较复杂,这里先留空\n // 实际实现可以使用 idb 库或原生 IndexedDB API\n } catch (error) {\n logger.warn('从持久化存储加载缓存失败', error);\n }\n }\n /**\n * 保存到持久化存储\n */ async saveToPersistence(_key, _value) {\n if (!this.persistenceEnabled) {\n return;\n }\n try {\n // 这里可以实现保存到 IndexedDB 的逻辑\n // 实际实现可以使用 idb 库或原生 IndexedDB API\n } catch (error) {\n logger.warn('保存到持久化存储失败', error);\n }\n }\n /**\n * 生成缓存键\n */ generateKey(routes) {\n if (typeof routes === 'function') {\n // 对于函数,使用函数名或随机 ID\n return `fn_${routes.name || Math.random().toString(36).substring(7)}`;\n }\n // 对于数组,使用 JSON.stringify 生成键(注意:这可能会很慢)\n // 实际使用中可以考虑使用路由配置的哈希值\n try {\n const routesStr = JSON.stringify(routes, (_key, value)=>{\n // 过滤掉函数,避免序列化问题\n if (typeof value === 'function') {\n return '[Function]';\n }\n return value;\n });\n return `routes_${this.hashString(routesStr)}`;\n } catch (error) {\n // 如果序列化失败,使用随机键\n return `routes_${Math.random().toString(36).substring(7)}`;\n }\n }\n /**\n * 字符串哈希函数(简单实现)\n */ hashString(str) {\n let hash = 0;\n for(let i = 0; i < str.length; i++){\n const char = str.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash = hash & hash; // 转换为 32 位整数\n }\n return Math.abs(hash).toString(36);\n }\n /**\n * 检查缓存项是否过期\n */ isExpired(item) {\n return Date.now() > item.expiresAt;\n }\n /**\n * 清理过期缓存\n */ cleanup() {\n // 清理转换结果缓存\n for (const [key, item] of this.cache.entries()){\n if (this.isExpired(item)) {\n this.cache.delete(key);\n }\n }\n // 清理匹配结果缓存\n for (const [key, item] of this.matchCache.entries()){\n if (this.isExpired(item)) {\n this.matchCache.delete(key);\n }\n }\n // 如果缓存超过最大大小,删除最久未访问的项(LRU)\n this.evictLRU();\n }\n /**\n * LRU 淘汰策略\n */ evictLRU() {\n // 清理转换结果缓存\n if (this.cache.size > this.config.maxSize) {\n const sorted = Array.from(this.cache.entries()).sort((a, b)=>a[1].lastAccessedAt - b[1].lastAccessedAt);\n const toDelete = sorted.slice(0, this.cache.size - this.config.maxSize);\n toDelete.forEach(([key])=>this.cache.delete(key));\n }\n // 清理匹配结果缓存\n if (this.matchCache.size > this.config.maxSize) {\n const sorted = Array.from(this.matchCache.entries()).sort((a, b)=>a[1].lastAccessedAt - b[1].lastAccessedAt);\n const toDelete = sorted.slice(0, this.matchCache.size - this.config.maxSize);\n toDelete.forEach(([key])=>this.matchCache.delete(key));\n }\n }\n /**\n * 启动定期清理\n */ startCleanupInterval() {\n if (this.cleanupTimer) {\n clearInterval(this.cleanupTimer);\n }\n // 每 1 分钟清理一次过期缓存\n this.cleanupTimer = setInterval(()=>{\n this.cleanup();\n }, 60 * 1000);\n }\n /**\n * 获取转换结果缓存\n */ get(routes) {\n const key = this.generateKey(routes);\n const item = this.cache.get(key);\n if (!item) {\n this.stats.transformMisses++;\n return null;\n }\n if (this.isExpired(item)) {\n this.cache.delete(key);\n this.stats.transformMisses++;\n return null;\n }\n // 更新访问信息\n item.lastAccessedAt = Date.now();\n item.accessCount++;\n this.stats.transformHits++;\n return item.value;\n }\n /**\n * 设置转换结果缓存\n */ set(routes, value) {\n const key = this.generateKey(routes);\n const now = Date.now();\n const item = {\n value,\n expiresAt: now + this.config.ttl,\n createdAt: now,\n accessCount: 0,\n lastAccessedAt: now\n };\n this.cache.set(key, item);\n // 保存到持久化存储\n if (this.persistenceEnabled) {\n this.saveToPersistence(key, value).catch((error)=>{\n logger.warn('保存缓存到持久化存储失败', error);\n });\n }\n // 检查是否需要淘汰\n this.evictLRU();\n }\n /**\n * 获取路由匹配缓存\n */ getMatch(path) {\n const item = this.matchCache.get(path);\n if (!item) {\n this.stats.matchMisses++;\n return undefined;\n }\n if (this.isExpired(item)) {\n this.matchCache.delete(path);\n this.stats.matchMisses++;\n return undefined;\n }\n // 更新访问信息\n item.lastAccessedAt = Date.now();\n item.accessCount++;\n this.stats.matchHits++;\n return item.value;\n }\n /**\n * 设置路由匹配缓存\n */ setMatch(path, route) {\n const now = Date.now();\n const item = {\n value: route,\n expiresAt: now + this.config.ttl,\n createdAt: now,\n accessCount: 0,\n lastAccessedAt: now\n };\n this.matchCache.set(path, item);\n // 检查是否需要淘汰\n this.evictLRU();\n }\n /**\n * 清空所有缓存\n */ clear() {\n this.cache.clear();\n this.matchCache.clear();\n this.stats = {\n transformHits: 0,\n transformMisses: 0,\n matchHits: 0,\n matchMisses: 0\n };\n logger.debug('路由缓存已清空');\n }\n /**\n * 销毁缓存实例并释放资源\n */ destroy() {\n this.clear();\n if (this.cleanupTimer) {\n clearInterval(this.cleanupTimer);\n this.cleanupTimer = null;\n }\n }\n /**\n * 获取缓存统计信息\n */ getStats() {\n const totalHits = this.stats.transformHits + this.stats.matchHits;\n const totalAccess = totalHits + this.stats.transformMisses + this.stats.matchMisses;\n const hitRate = totalAccess > 0 ? totalHits / totalAccess : 0;\n return {\n transformCacheSize: this.cache.size,\n matchCacheSize: this.matchCache.size,\n totalSize: this.cache.size + this.matchCache.size,\n hitRate\n };\n }\n constructor(config = {}){\n _define_property(this, \"cache\", new Map());\n _define_property(this, \"matchCache\", new Map());\n _define_property(this, \"config\", void 0);\n _define_property(this, \"persistenceEnabled\", false);\n _define_property(this, \"cleanupTimer\", null);\n _define_property(this, \"stats\", {\n transformHits: 0,\n transformMisses: 0,\n matchHits: 0,\n matchMisses: 0\n });\n this.config = {\n maxSize: config.maxSize ?? 50,\n ttl: config.ttl ?? 5 * 60 * 1000,\n enablePersistence: config.enablePersistence ?? false,\n persistenceKeyPrefix: config.persistenceKeyPrefix ?? 'router_cache_'\n };\n // 初始化持久化缓存\n if (this.config.enablePersistence && typeof window !== 'undefined' && 'indexedDB' in window) {\n this.initPersistence();\n }\n // 定期清理过期缓存\n this.startCleanupInterval();\n }\n}\n/**\n * 获取路由缓存管理器单例\n */ let routeCacheInstance = null;\nexport function getRouteCache(config) {\n if (!routeCacheInstance) {\n routeCacheInstance = new RouteCache(config);\n }\n return routeCacheInstance;\n}\n\n//# sourceMappingURL=RouteCache.js.map","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 */ import { logger } from \"@vlian/logger\";\n/**\n * 预加载策略\n */ export var PreloadStrategy = /*#__PURE__*/ function(PreloadStrategy) {\n /**\n * 不预加载\n */ PreloadStrategy[\"NONE\"] = \"none\";\n /**\n * 预加载当前路由的下一级路由\n */ PreloadStrategy[\"NEXT_LEVEL\"] = \"next-level\";\n /**\n * 预加载所有路由\n */ PreloadStrategy[\"ALL\"] = \"all\";\n /**\n * 预加载可见路由(根据路由配置的优先级)\n */ PreloadStrategy[\"VISIBLE\"] = \"visible\";\n return PreloadStrategy;\n}({});\n/**\n * 路由预加载管理器\n */ export class RoutePreloader {\n /**\n * 更新预加载配置\n */ updateConfig(config = {}) {\n this.config = {\n strategy: config.strategy ?? \"none\",\n delay: config.delay ?? 1000,\n priorityThreshold: config.priorityThreshold ?? 10,\n timeout: config.timeout ?? 5000\n };\n }\n shouldRegister(priority) {\n if (this.config.strategy === \"none\") {\n return false;\n }\n if (this.config.strategy === \"visible\" && priority > this.config.priorityThreshold) {\n return false;\n }\n return true;\n }\n registerTask(key, importFn, routeName, priority) {\n if (!this.shouldRegister(priority)) {\n return;\n }\n this.tasks.set(key, {\n importFn,\n routeName,\n priority,\n status: 'pending'\n });\n }\n /**\n * 注册路由用于预加载\n */ registerRoute(route) {\n if (!route.page && !route.layout) {\n return;\n }\n const priority = route.handle?.order ?? 999;\n // 注册页面组件\n if (route.page && typeof route.page === 'function') {\n this.registerTask(`${route.name}_page`, route.page, route.name, priority);\n }\n // 注册布局组件\n if (route.layout && typeof route.layout === 'function') {\n this.registerTask(`${route.name}_layout`, route.layout, route.name, priority);\n }\n // 递归注册子路由\n if (route.children) {\n route.children.forEach((child)=>this.registerRoute(child));\n }\n }\n /**\n * 注册多个路由\n */ registerRoutes(routes, resolvers) {\n const priorityByPath = new Map();\n const nameByPath = new Map();\n const collectPriority = (route)=>{\n const priority = route.handle?.order ?? 999;\n const routeName = route.name;\n const record = (value)=>{\n if (typeof value !== 'string') {\n return;\n }\n if (!priorityByPath.has(value) || (priorityByPath.get(value) ?? 999) > priority) {\n priorityByPath.set(value, priority);\n nameByPath.set(value, routeName);\n }\n };\n record(route.page);\n record(route.layout);\n record(route.error ?? route.errors);\n record(route.loading);\n route.children?.forEach(collectPriority);\n };\n routes.forEach(collectPriority);\n routes.forEach((route)=>this.registerRoute(route));\n if (!resolvers) {\n return;\n }\n const registerResolverMap = (map, type)=>{\n for (const [path, importFn] of map.entries()){\n const routeName = nameByPath.get(path) ?? path;\n const priority = priorityByPath.get(path) ?? 999;\n this.registerTask(`${routeName}_${type}_${path}`, importFn, routeName, priority);\n }\n };\n registerResolverMap(resolvers.pages, 'page');\n registerResolverMap(resolvers.layouts, 'layout');\n registerResolverMap(resolvers.errors, 'error');\n registerResolverMap(resolvers.loadings, 'loading');\n }\n /**\n * 预加载指定路由\n */ async preloadRoute(routeName) {\n const tasks = Array.from(this.tasks.values()).filter((task)=>task.routeName === routeName && task.status === 'pending');\n if (tasks.length === 0) {\n return;\n }\n await Promise.all(tasks.map((task)=>this.preloadTask(task)));\n }\n /**\n * 预加载任务\n */ async preloadTask(task) {\n if (task.status !== 'pending') {\n return;\n }\n task.status = 'loading';\n task.startTime = Date.now();\n let timeoutId = null;\n try {\n // 设置超时\n const timeoutPromise = new Promise((_, reject)=>{\n timeoutId = setTimeout(()=>reject(new Error('预加载超时')), this.config.timeout);\n });\n // 执行预加载\n await Promise.race([\n task.importFn(),\n timeoutPromise\n ]);\n task.status = 'loaded';\n const duration = Date.now() - (task.startTime || 0);\n logger.debug(`路由组件预加载成功: ${task.routeName} (${duration}ms)`);\n } catch (error) {\n task.status = 'failed';\n logger.warn(`路由组件预加载失败: ${task.routeName}`, error);\n } finally{\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n }\n }\n /**\n * 开始预加载(根据策略)\n */ startPreload() {\n if (this.config.strategy === \"none\") {\n return;\n }\n this.stopPreload();\n // 延迟预加载,避免影响初始渲染\n this.preloadTimer = setTimeout(()=>{\n const browserWindow = typeof window !== 'undefined' ? window : undefined;\n if (browserWindow?.requestIdleCallback) {\n this.idleHandle = browserWindow.requestIdleCallback(()=>{\n this.executePreload();\n });\n return;\n }\n this.executePreload();\n }, this.config.delay);\n }\n /**\n * 执行预加载\n */ async executePreload() {\n const tasks = Array.from(this.tasks.values()).filter((task)=>task.status === 'pending').sort((a, b)=>a.priority - b.priority);\n if (tasks.length === 0) {\n return;\n }\n logger.debug(`开始预加载 ${tasks.length} 个路由组件`);\n // 根据策略决定预加载哪些任务\n let tasksToPreload = [];\n switch(this.config.strategy){\n case \"all\":\n tasksToPreload = tasks;\n break;\n case \"next-level\":\n // 只预加载优先级最低的(最可能访问的)\n tasksToPreload = tasks.slice(0, Math.min(5, tasks.length));\n break;\n case \"visible\":\n tasksToPreload = tasks.filter((task)=>task.priority <= this.config.priorityThreshold);\n break;\n default:\n return;\n }\n // 并行预加载(限制并发数)\n const concurrency = 3;\n for(let i = 0; i < tasksToPreload.length; i += concurrency){\n const batch = tasksToPreload.slice(i, i + concurrency);\n await Promise.all(batch.map((task)=>this.preloadTask(task)));\n }\n logger.debug('路由组件预加载完成');\n }\n /**\n * 停止预加载\n */ stopPreload() {\n const browserWindow = typeof window !== 'undefined' ? window : undefined;\n if (this.preloadTimer) {\n clearTimeout(this.preloadTimer);\n this.preloadTimer = null;\n }\n if (this.idleHandle !== null && browserWindow?.cancelIdleCallback) {\n browserWindow.cancelIdleCallback(this.idleHandle);\n this.idleHandle = null;\n }\n }\n /**\n * 清空所有任务\n */ clear() {\n this.tasks.clear();\n this.stopPreload();\n logger.debug('路由预加载任务已清空');\n }\n /**\n * 获取预加载统计信息\n */ getStats() {\n const stats = {\n total: this.tasks.size,\n pending: 0,\n loading: 0,\n loaded: 0,\n failed: 0\n };\n for (const task of this.tasks.values()){\n stats[task.status]++;\n }\n return stats;\n }\n constructor(config = {}){\n _define_property(this, \"tasks\", new Map());\n _define_property(this, \"config\", void 0);\n _define_property(this, \"preloadTimer\", null);\n _define_property(this, \"idleHandle\", null);\n this.config = {\n strategy: config.strategy ?? \"none\",\n delay: config.delay ?? 1000,\n priorityThreshold: config.priorityThreshold ?? 10,\n timeout: config.timeout ?? 5000\n };\n }\n}\n/**\n * 获取路由预加载管理器单例\n */ let routePreloaderInstance = null;\nexport function getRoutePreloader(config) {\n if (!routePreloaderInstance) {\n routePreloaderInstance = new RoutePreloader(config);\n }\n return routePreloaderInstance;\n}\n\n//# sourceMappingURL=RoutePreloader.js.map","/**\n * 路由插件类型定义\n */ /**\n * 插件生命周期阶段\n */ export var PluginLifecycleStage = /*#__PURE__*/ function(PluginLifecycleStage) {\n /**\n * 插件注册阶段\n */ PluginLifecycleStage[\"REGISTER\"] = \"register\";\n /**\n * 路由初始化前\n */ PluginLifecycleStage[\"BEFORE_INIT\"] = \"before-init\";\n /**\n * 路由初始化后\n */ PluginLifecycleStage[\"AFTER_INIT\"] = \"after-init\";\n /**\n * 路由转换前\n */ PluginLifecycleStage[\"BEFORE_TRANSFORM\"] = \"before-transform\";\n /**\n * 路由转换后\n */ PluginLifecycleStage[\"AFTER_TRANSFORM\"] = \"after-transform\";\n /**\n * 路由匹配前\n */ PluginLifecycleStage[\"BEFORE_MATCH\"] = \"before-match\";\n /**\n * 路由匹配后\n */ PluginLifecycleStage[\"AFTER_MATCH\"] = \"after-match\";\n /**\n * 插件销毁阶段\n */ PluginLifecycleStage[\"DESTROY\"] = \"destroy\";\n return PluginLifecycleStage;\n}({});\n\n//# sourceMappingURL=types.js.map","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 */ import { logger } from \"@vlian/logger\";\nimport { PluginLifecycleStage } from \"./types\";\n/**\n * 路由插件管理器\n */ export class RouterPluginManager {\n /**\n * 注册插件\n * \n * @param plugin - 插件实例\n * @param options - 注册选项\n * @returns 取消注册函数\n */ register(plugin, options = {}) {\n // 验证插件\n if (!plugin.name) {\n throw new Error('插件必须提供名称');\n }\n // 检查是否已存在\n if (this.plugins.has(plugin.name) && !options.overwrite) {\n throw new Error(`插件 \"${plugin.name}\" 已存在`);\n }\n // 设置默认值\n const pluginWithDefaults = {\n priority: 100,\n enabled: true,\n ...plugin\n };\n // 检查依赖\n if (pluginWithDefaults.dependencies) {\n const missingDeps = pluginWithDefaults.dependencies.filter((dep)=>!this.plugins.has(dep));\n if (missingDeps.length > 0) {\n throw new Error(`插件 \"${plugin.name}\" 缺少依赖: ${missingDeps.join(', ')}`);\n }\n }\n // 注册插件\n this.plugins.set(plugin.name, {\n plugin: pluginWithDefaults,\n status: 'registered',\n registeredAt: Date.now()\n });\n logger.debug(`路由插件已注册: ${plugin.name}`);\n // 调用注册钩子\n if (pluginWithDefaults.hooks?.onRegister) {\n try {\n const context = {\n config: {},\n meta: {\n stage: PluginLifecycleStage.REGISTER\n }\n };\n pluginWithDefaults.hooks.onRegister(context);\n } catch (error) {\n logger.error(`插件注册钩子执行失败: ${plugin.name}`, error);\n }\n }\n // 返回取消注册函数\n return ()=>{\n this.unregister(plugin.name);\n };\n }\n /**\n * 批量注册插件\n * \n * @param plugins - 插件数组\n * @param options - 注册选项\n */ registerBatch(plugins, options = {}) {\n // 按依赖关系排序\n const sortedPlugins = this.sortByDependencies(plugins);\n sortedPlugins.forEach((plugin)=>{\n this.register(plugin, options);\n });\n }\n /**\n * 按依赖关系排序插件(拓扑排序)\n */ sortByDependencies(plugins) {\n const sorted = [];\n const visited = new Set();\n const visiting = new Set();\n const visit = (plugin)=>{\n if (visiting.has(plugin.name || '')) {\n throw new Error(`检测到循环依赖: ${plugin.name}`);\n }\n if (visited.has(plugin.name || '')) {\n return;\n }\n visiting.add(plugin.name || '');\n // 先访问依赖\n if (plugin.dependencies) {\n plugin.dependencies.forEach((depName)=>{\n const dep = plugins.find((p)=>p.name === depName);\n if (dep) {\n visit(dep);\n }\n });\n }\n visiting.delete(plugin.name || '');\n visited.add(plugin.name || '');\n sorted.push(plugin);\n };\n plugins.forEach((plugin)=>{\n if (!visited.has(plugin.name || '')) {\n visit(plugin);\n }\n });\n return sorted;\n }\n /**\n * 取消注册插件\n * \n * @param name - 插件名称\n */ unregister(name) {\n const registration = this.plugins.get(name);\n if (!registration) {\n return;\n }\n // 调用销毁钩子\n if (registration.plugin.hooks?.onDestroy) {\n try {\n const context = {\n config: {},\n meta: {\n stage: PluginLifecycleStage.DESTROY\n }\n };\n registration.plugin.hooks.onDestroy(context);\n } catch (error) {\n logger.error(`插件销毁钩子执行失败: ${name}`, error);\n }\n }\n this.plugins.delete(name);\n logger.debug(`路由插件已取消注册: ${name}`);\n }\n /**\n * 执行插件钩子\n * \n * @param stage - 生命周期阶段\n * @param context - 插件上下文\n */ async executeHooks(stage, context) {\n // 获取启用的插件并按优先级排序\n const enabledPlugins = Array.from(this.plugins.values()).filter((reg)=>reg.plugin.enabled !== false).sort((a, b)=>(a.plugin.priority || 100) - (b.plugin.priority || 100));\n // 根据阶段选择钩子\n const hookMap = {\n [PluginLifecycleStage.REGISTER]: 'onRegister',\n [PluginLifecycleStage.BEFORE_INIT]: 'onBeforeInit',\n [PluginLifecycleStage.AFTER_INIT]: 'onAfterInit',\n [PluginLifecycleStage.BEFORE_TRANSFORM]: 'onBeforeTransform',\n [PluginLifecycleStage.AFTER_TRANSFORM]: 'onAfterTransform',\n [PluginLifecycleStage.BEFORE_MATCH]: 'onBeforeMatch',\n [PluginLifecycleStage.AFTER_MATCH]: 'onAfterMatch',\n [PluginLifecycleStage.DESTROY]: 'onDestroy'\n };\n const hookName = hookMap[stage];\n if (!hookName) {\n return;\n }\n // 执行钩子\n for (const registration of enabledPlugins){\n const hook = registration.plugin.hooks?.[hookName];\n if (hook) {\n try {\n await hook(context);\n } catch (error) {\n logger.error(`插件钩子执行失败: ${registration.plugin.name}.${hookName}`, error);\n }\n }\n }\n }\n /**\n * 获取插件\n * \n * @param name - 插件名称\n * @returns 插件实例,如果不存在返回 undefined\n */ getPlugin(name) {\n return this.plugins.get(name)?.plugin;\n }\n /**\n * 获取所有插件\n * \n * @returns 插件数组\n */ getAllPlugins() {\n return Array.from(this.plugins.values()).map((reg)=>reg.plugin);\n }\n /**\n * 获取启用的插件\n * \n * @returns 启用的插件数组\n */ getEnabledPlugins() {\n return Array.from(this.plugins.values()).filter((reg)=>reg.plugin.enabled !== false).map((reg)=>reg.plugin);\n }\n /**\n * 清空所有插件\n */ clear() {\n // 调用所有插件的销毁钩子\n for (const [name, registration] of this.plugins.entries()){\n if (registration.plugin.hooks?.onDestroy) {\n try {\n const context = {\n config: {},\n meta: {\n stage: PluginLifecycleStage.DESTROY\n }\n };\n registration.plugin.hooks.onDestroy(context);\n } catch (error) {\n logger.error(`插件销毁钩子执行失败: ${name}`, error);\n }\n }\n }\n this.plugins.clear();\n logger.debug('所有路由插件已清空');\n }\n /**\n * 获取插件数量\n * \n * @returns 插件数量\n */ getCount() {\n return this.plugins.size;\n }\n constructor(){\n _define_property(this, \"plugins\", new Map());\n }\n}\n/**\n * 获取路由插件管理器单例\n */ let pluginManagerInstance = null;\nexport function getRouterPluginManager() {\n if (!pluginManagerInstance) {\n pluginManagerInstance = new RouterPluginManager();\n }\n return pluginManagerInstance;\n}\n\n//# sourceMappingURL=RouterPluginManager.js.map","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 */ import { getMonitoring } from \"@vlian/monitoring\";\nimport { logger } from \"@vlian/logger\";\n/**\n * 路由监控服务\n */ export class RouterMonitoring {\n /**\n * 记录路由访问\n */ trackRouteAccess(to, from, success = true, error) {\n if (!this.config.enabled || !this.config.trackAccess) {\n return;\n }\n // 采样检查\n if (Math.random() > this.config.sampleRate) {\n return;\n }\n const record = {\n path: to.path,\n name: to.meta?.name,\n timestamp: Date.now(),\n from: from?.path,\n success,\n error: error?.message\n };\n // 如果有当前路由,计算持续时间\n if (this.currentRoute && this.currentRouteStartTime > 0) {\n record.duration = Date.now() - this.currentRouteStartTime;\n }\n this.accessRecords.push(record);\n // 限制记录数量\n if (this.accessRecords.length > this.config.maxRecords) {\n this.accessRecords.shift();\n }\n // 上报到监控服务\n this.monitoringService.trackEvent('route_access', {\n path: to.path,\n name: to.meta?.name,\n success,\n error: error?.message\n });\n // 更新当前路由\n this.currentRoute = to;\n this.currentRouteStartTime = Date.now();\n logger.debug('路由访问已记录', record);\n }\n /**\n * 记录路由性能指标\n */ trackRoutePerformance(routeName, metrics) {\n if (!this.config.enabled || !this.config.trackPerformance) {\n return;\n }\n // 采样检查\n if (Math.random() > this.config.sampleRate) {\n return;\n }\n const routeMetrics = this.performanceMetrics.get(routeName) || [];\n routeMetrics.push(metrics);\n // 限制记录数量\n if (routeMetrics.length > 100) {\n routeMetrics.shift();\n }\n this.performanceMetrics.set(routeName, routeMetrics);\n // 上报到监控服务\n this.monitoringService.reportPerformance({\n [`route_${routeName}_match`]: metrics.matchTime || 0,\n [`route_${routeName}_load`]: metrics.loadTime || 0,\n [`route_${routeName}_render`]: metrics.renderTime || 0,\n [`route_${routeName}_total`]: metrics.totalTime || 0\n });\n logger.debug(`路由性能指标已记录: ${routeName}`, metrics);\n }\n /**\n * 记录路由错误\n */ trackRouteError(error, context) {\n if (!this.config.enabled || !this.config.trackErrors) {\n return;\n }\n // 采样检查\n if (Math.random() > this.config.sampleRate) {\n return;\n }\n // 上报到监控服务\n this.monitoringService.captureError(error, {\n type: 'router',\n ...context\n });\n logger.error('路由错误已记录', error, context);\n }\n /**\n * 获取路由访问统计\n */ getAccessStats() {\n const stats = {\n total: this.accessRecords.length,\n success: 0,\n failed: 0,\n byPath: {},\n byName: {},\n averageDuration: 0\n };\n let totalDuration = 0;\n let durationCount = 0;\n for (const record of this.accessRecords){\n if (record.success) {\n stats.success++;\n } else {\n stats.failed++;\n }\n stats.byPath[record.path] = (stats.byPath[record.path] || 0) + 1;\n if (record.name) {\n stats.byName[record.name] = (stats.byName[record.name] || 0) + 1;\n }\n if (record.duration) {\n totalDuration += record.duration;\n durationCount++;\n }\n }\n stats.averageDuration = durationCount > 0 ? totalDuration / durationCount : 0;\n return stats;\n }\n /**\n * 获取路由性能统计\n */ getPerformanceStats() {\n const stats = {};\n for (const [routeName, metrics] of this.performanceMetrics.entries()){\n let totalMatchTime = 0;\n let totalLoadTime = 0;\n let totalRenderTime = 0;\n let totalTotalTime = 0;\n let count = 0;\n for (const metric of metrics){\n if (metric.matchTime) {\n totalMatchTime += metric.matchTime;\n }\n if (metric.loadTime) {\n totalLoadTime += metric.loadTime;\n }\n if (metric.renderTime) {\n totalRenderTime += metric.renderTime;\n }\n if (metric.totalTime) {\n totalTotalTime += metric.totalTime;\n }\n count++;\n }\n stats[routeName] = {\n count,\n averageMatchTime: count > 0 ? totalMatchTime / count : 0,\n averageLoadTime: count > 0 ? totalLoadTime / count : 0,\n averageRenderTime: count > 0 ? totalRenderTime / count : 0,\n averageTotalTime: count > 0 ? totalTotalTime / count : 0\n };\n }\n return stats;\n }\n /**\n * 清空所有记录\n */ clear() {\n this.accessRecords = [];\n this.performanceMetrics.clear();\n logger.debug('路由监控记录已清空');\n }\n /**\n * 获取监控报告\n */ getReport() {\n return {\n access: this.getAccessStats(),\n performance: this.getPerformanceStats(),\n timestamp: Date.now()\n };\n }\n constructor(config = {}){\n _define_property(this, \"accessRecords\", []);\n _define_property(this, \"performanceMetrics\", new Map());\n _define_property(this, \"config\", void 0);\n _define_property(this, \"monitoringService\", getMonitoring());\n _define_property(this, \"currentRouteStartTime\", 0);\n _define_property(this, \"currentRoute\", void 0);\n this.config = {\n enabled: config.enabled ?? true,\n trackAccess: config.trackAccess ?? true,\n trackPerformance: config.trackPerformance ?? true,\n trackErrors: config.trackErrors ?? true,\n maxRecords: config.maxRecords ?? 1000,\n sampleRate: config.sampleRate ?? 1.0\n };\n }\n}\n/**\n * 获取路由监控服务单例\n */ let routerMonitoringInstance = null;\nexport function getRouterMonitoring(config) {\n if (!routerMonitoringInstance) {\n routerMonitoringInstance = new RouterMonitoring(config);\n }\n return routerMonitoringInstance;\n}\n\n//# sourceMappingURL=RouterMonitoring.js.map","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 */ import { logger } from \"@vlian/logger\";\nimport { RouterError, RouterErrorCode } from \"../errors\";\n/**\n * 路由适配器管理器\n */ export class AdapterManager {\n /**\n * 注册适配器\n * \n * @param registration - 适配器注册信息\n * @returns 取消注册函数\n */ register(registration) {\n // 验证适配器\n if (!registration.name) {\n throw new Error('适配器必须提供名称');\n }\n if (!registration.factory || typeof registration.factory !== 'function') {\n throw new Error('适配器必须提供工厂函数');\n }\n // 设置默认值\n const adapterRegistration = {\n priority: 100,\n enabled: true,\n ...registration\n };\n // 注册适配器\n this.adapters.set(registration.name, adapterRegistration);\n logger.debug(`路由适配器已注册: ${registration.name}`);\n // 如果没有默认适配器,设置为第一个注册的适配器\n if (!this.defaultAdapterName) {\n this.defaultAdapterName = registration.name;\n }\n // 返回取消注册函数\n return ()=>{\n this.unregister(registration.name);\n };\n }\n /**\n * 批量注册适配器\n * \n * @param registrations - 适配器注册信息数组\n */ registerBatch(registrations) {\n registrations.forEach((registration)=>this.register(registration));\n }\n /**\n * 取消注册适配器\n * \n * @param name - 适配器名称\n */ unregister(name) {\n if (this.adapters.has(name)) {\n this.adapters.delete(name);\n logger.debug(`路由适配器已取消注册: ${name}`);\n // 如果取消的是默认适配器,重置默认适配器\n if (this.defaultAdapterName === name) {\n const firstAdapter = Array.from(this.adapters.keys())[0];\n this.defaultAdapterName = firstAdapter || null;\n }\n }\n }\n /**\n * 创建适配器实例\n * \n * @param name - 适配器名称(可选,使用默认适配器)\n * @param config - 适配器配置\n * @returns 适配器实例\n */ async createAdapter(config, name) {\n const adapterName = name || this.defaultAdapterName;\n if (!adapterName) {\n throw new RouterError('没有可用的路由适配器', RouterErrorCode.ROUTER_NOT_INITIALIZED);\n }\n const registration = this.adapters.get(adapterName);\n if (!registration) {\n throw new RouterError(`路由适配器不存在: ${adapterName}`, RouterErrorCode.ROUTER_CONFIG_ERROR, undefined, undefined, {\n adapterName\n });\n }\n if (!registration.enabled) {\n throw new RouterError(`路由适配器已禁用: ${adapterName}`, RouterErrorCode.ROUTER_CONFIG_ERROR, undefined, undefined, {\n adapterName\n });\n }\n try {\n // 创建适配器实例\n const adapter = await registration.factory(config);\n // 验证适配器\n if (!adapter || typeof adapter.initialize !== 'function') {\n throw new Error('适配器实例无效');\n }\n // 初始化适配器\n await adapter.initialize(config);\n logger.info(`路由适配器已创建并初始化: ${adapterName}`);\n return adapter;\n } catch (error) {\n logger.error(`创建路由适配器失败: ${adapterName}`, error);\n const errorContext = {\n adapterName\n };\n if (error instanceof Error) {\n errorContext.originalError = error;\n }\n throw new RouterError(`创建路由适配器失败: ${adapterName}`, RouterErrorCode.ROUTER_CONFIG_ERROR, undefined, error instanceof Error ? error : undefined, errorContext);\n }\n }\n /**\n * 设置当前适配器\n * \n * @param adapter - 适配器实例\n */ setCurrentAdapter(adapter) {\n // 销毁旧的适配器\n if (this.currentAdapter && this.currentAdapter.destroy) {\n try {\n this.currentAdapter.destroy();\n } catch (error) {\n logger.warn('销毁旧适配器失败', error);\n }\n }\n this.currentAdapter = adapter;\n logger.debug(`当前路由适配器已设置: ${adapter.name}`);\n }\n /**\n * 获取当前适配器\n * \n * @returns 当前适配器实例,如果不存在返回 null\n */ getCurrentAdapter() {\n return this.currentAdapter;\n }\n /**\n * 设置默认适配器\n * \n * @param name - 适配器名称\n */ setDefaultAdapter(name) {\n if (!this.adapters.has(name)) {\n throw new Error(`适配器不存在: ${name}`);\n }\n this.defaultAdapterName = name;\n logger.debug(`默认路由适配器已设置: ${name}`);\n }\n /**\n * 获取默认适配器名称\n * \n * @returns 默认适配器名称\n */ getDefaultAdapterName() {\n return this.defaultAdapterName;\n }\n /**\n * 获取所有适配器\n * \n * @returns 适配器注册信息数组\n */ getAllAdapters() {\n return Array.from(this.adapters.values());\n }\n /**\n * 获取启用的适配器\n * \n * @returns 启用的适配器注册信息数组\n */ getEnabledAdapters() {\n return Array.from(this.adapters.values()).filter((a)=>a.enabled !== false);\n }\n /**\n * 获取适配器\n * \n * @param name - 适配器名称\n * @returns 适配器注册信息,如果不存在返回 undefined\n */ getAdapter(name) {\n return this.adapters.get(name);\n }\n /**\n * 清空所有适配器\n */ clear() {\n // 销毁当前适配器\n if (this.currentAdapter && this.currentAdapter.destroy) {\n try {\n this.currentAdapter.destroy();\n } catch (error) {\n logger.warn('销毁适配器失败', error);\n }\n }\n this.adapters.clear();\n this.currentAdapter = null;\n this.defaultAdapterName = null;\n logger.debug('所有路由适配器已清空');\n }\n /**\n * 获取适配器数量\n * \n * @returns 适配器数量\n */ getCount() {\n return this.adapters.size;\n }\n constructor(){\n _define_property(this, \"adapters\", new Map());\n _define_property(this, \"currentAdapter\", null);\n _define_property(this, \"defaultAdapterName\", null);\n }\n}\n/**\n * 获取路由适配器管理器单例\n */ let adapterManagerInstance = null;\nexport function getAdapterManager() {\n if (!adapterManagerInstance) {\n adapterManagerInstance = new AdapterManager();\n }\n return adapterManagerInstance;\n}\n\n//# sourceMappingURL=AdapterManager.js.map","/**\n * React Router 适配器实现\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 { createBrowserRouter, createHashRouter, createMemoryRouter } from \"react-router-dom\";\nimport { transformRoutesToReactRoutes } from \"../../utils/adapters/react-router/transform\";\nimport { transformRoutes } from \"../../utils/transform\";\nimport { logger } from \"@vlian/logger\";\n/**\n * React Router 适配器\n */ export class ReactRouterAdapter {\n /**\n * 初始化适配器\n */ async initialize(config) {\n // 转换路由配置\n const transformResult = await transformRoutes(config.routes);\n const reactRoutes = await transformRoutesToReactRoutes(transformResult.routes, transformResult, config.defaultRouteErrorComponent, config.defaultRouteLoadingComponent, Boolean(config.options?.hydrationData));\n // 创建路由实例\n const mode = config.mode || 'browser';\n if (mode === 'browser') {\n this.router = createBrowserRouter(reactRoutes, config.options);\n } else if (mode === 'hash') {\n this.router = createHashRouter(reactRoutes, config.options);\n } else if (mode === 'memory') {\n this.router = createMemoryRouter(reactRoutes, config.options);\n } else {\n throw new Error(`不支持的路由模式: ${mode}`);\n }\n logger.debug('React Router 适配器初始化完成');\n }\n /**\n * 挂载到应用实例\n */ mount(_app) {\n if (!this.router) {\n throw new Error('适配器未初始化');\n }\n // React Router 适配器通过 RouterProvider 挂载\n // 实际的挂载逻辑在 renderApp 中处理\n logger.debug('React Router 适配器已挂载');\n }\n /**\n * 导航到指定路径\n */ navigate(to, options) {\n if (!this.router) {\n throw new Error('适配器未初始化');\n }\n if (options?.replace) {\n this.router.navigate(to, {\n replace: true,\n state: options.state\n });\n } else {\n this.router.navigate(to, {\n state: options?.state\n });\n }\n }\n /**\n * 获取当前路由信息\n */ getCurrentRoute() {\n if (!this.router) {\n throw new Error('适配器未初始化');\n }\n const state = this.router.state;\n const location = state.location;\n // 解析查询参数\n const query = {};\n if (location.search) {\n const params = new URLSearchParams(location.search);\n params.forEach((value, key)=>{\n query[key] = value;\n });\n }\n return {\n path: location.pathname + location.hash,\n query,\n params: location.state\n };\n }\n /**\n * 获取路由实例(用于 RouterProvider)\n */ getRouter() {\n return this.router;\n }\n /**\n * 销毁适配器\n */ destroy() {\n this.router = null;\n logger.debug('React Router 适配器已销毁');\n }\n constructor(){\n _define_property(this, \"name\", 'react-router');\n _define_property(this, \"version\", '6.0.0');\n _define_property(this, \"router\", null);\n }\n}\n/**\n * 创建 React Router 适配器工厂函数\n */ export function createReactRouterAdapter() {\n return (_config)=>{\n return new ReactRouterAdapter();\n };\n}\n\n//# sourceMappingURL=ReactRouterAdapter.js.map","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 { logger } from \"@vlian/logger\";\nimport { transformRoutes } from \"./utils/transform\";\nimport { transformRoutesToReactRoutes } from \"./utils/adapters/react-router/transform\";\nimport { createBrowserRouter, createHashRouter, createMemoryRouter, matchRoutes } from \"react-router-dom\";\nimport { RouterConfigValidator } from \"./validation\";\nimport { getRouterLifecycleManager } from \"./lifecycle\";\nimport { getRouterMiddlewareManager } from \"./middleware\";\nimport { RouterError, RouterErrorCode } from \"./errors\";\nimport { getRouteCache } from \"./performance/RouteCache\";\nimport { getRoutePreloader } from \"./performance/RoutePreloader\";\nimport { getRouterPluginManager, PluginLifecycleStage } from \"./plugin\";\nimport { getRouterMonitoring } from \"./monitoring\";\nimport { getAdapterManager } from \"./adapter\";\nimport { createReactRouterAdapter } from \"./adapter/react-router\";\nexport class RouterManager {\n /**\n * 获取单例实例\n */ static getInstance() {\n if (!RouterManager.instance) {\n RouterManager.instance = new RouterManager();\n }\n return RouterManager.instance;\n }\n /**\n * 初始化路由管理器\n * \n * @param config - 路由配置\n * @param _appInstance - 应用实例(保留用于兼容性,当前未使用)\n */ async initialize(config) {\n // 如果路由被禁用,直接返回\n if (config.enabled === false || config.enabled === 'disabled') {\n logger.info('路由系统已禁用');\n return;\n }\n // 配置验证(如果启用)\n if (config.enableValidation !== false) {\n try {\n RouterConfigValidator.validate(config);\n logger.debug('路由配置验证通过');\n } catch (error) {\n logger.error('路由配置验证失败', error);\n // 开发环境下抛出错误,生产环境下记录警告但继续执行\n if (process.env.NODE_ENV === 'development') {\n throw error;\n }\n }\n }\n // 执行插件钩子:路由初始化前\n await this.pluginManager.executeHooks(PluginLifecycleStage.BEFORE_INIT, {\n config\n });\n // 注册生命周期钩子\n if (config.hooks) {\n const lifecycleManager = getRouterLifecycleManager();\n lifecycleManager.register(config.hooks);\n logger.debug('路由生命周期钩子已注册');\n }\n // 转换数据(使用缓存)\n if (!config.routes) {\n throw new RouterError('路由配置不能为空', RouterErrorCode.ROUTER_CONFIG_ERROR);\n }\n // 更新预加载策略(默认关闭,按需懒加载)\n this.preloader.updateConfig(config.preload);\n this.preloader.clear();\n let result;\n const cacheKey = config.routes;\n const cachedResult = this.cache.get(cacheKey);\n if (cachedResult) {\n logger.debug('使用缓存的路由转换结果');\n result = cachedResult;\n } else {\n // 执行插件钩子:路由转换前\n await this.pluginManager.executeHooks(PluginLifecycleStage.BEFORE_TRANSFORM, {\n config\n });\n result = await transformRoutes(config.routes, config.transformOptions);\n // 执行插件钩子:路由转换后\n await this.pluginManager.executeHooks(PluginLifecycleStage.AFTER_TRANSFORM, {\n config,\n routes: result.routes\n });\n // 缓存转换结果\n this.cache.set(cacheKey, result);\n }\n const enableHydrateFallback = config.enableHydrateFallback ?? Boolean(config.options?.hydrationData);\n const reactRoutes = await transformRoutesToReactRoutes(result.routes, result, config.defaultRouteErrorComponent, config.defaultRouteLoadingComponent, enableHydrateFallback);\n // 注册路由到预加载器\n if (result.routes) {\n this.preloader.registerRoutes(result.routes, result);\n // 开始预加载\n this.preloader.startPreload();\n }\n await this.resolveInitialLazyRoutes(reactRoutes, !enableHydrateFallback);\n let routerInstance = null;\n if (config.mode === 'browser') {\n routerInstance = createBrowserRouter(reactRoutes, config.options);\n } else if (config.mode === 'hash') {\n routerInstance = createHashRouter(reactRoutes, config.options);\n } else if (config.mode === 'memory') {\n routerInstance = createMemoryRouter(reactRoutes, config.options);\n }\n if (!routerInstance) {\n throw new RouterError('路由模式不支持', RouterErrorCode.ROUTER_CONFIG_ERROR, undefined, undefined, {\n mode: config.mode\n });\n }\n // 只能在 initialize 方法中赋值\n this.router = routerInstance;\n this.initialized = true;\n // 执行插件钩子:路由初始化后\n await this.pluginManager.executeHooks(PluginLifecycleStage.AFTER_INIT, {\n config,\n routes: result.routes\n });\n // 记录监控:路由初始化完成\n const initialPath = typeof window !== 'undefined' ? `${window.location.pathname}${window.location.search}${window.location.hash}` : this.router?.state?.location?.pathname ?? '/';\n this.monitoring.trackRouteAccess({\n path: initialPath,\n meta: {\n name: 'router-init'\n }\n }, undefined, true);\n logger.info('路由管理器初始化完成');\n }\n /**\n * 预解析 lazy 路由,避免首屏或重定向链路长时间停留在 hydrate fallback。\n * resolveAll=true 时会在初始化阶段解析全部 lazy 路由。\n */ async resolveInitialLazyRoutes(routes, resolveAll = false) {\n if (typeof window === 'undefined') {\n return;\n }\n let targetRoutes = [];\n if (resolveAll) {\n const stack = [\n ...routes\n ];\n while(stack.length > 0){\n const current = stack.shift();\n if (!current) {\n continue;\n }\n targetRoutes.push(current);\n if (current.children && current.children.length > 0) {\n stack.push(...current.children);\n }\n }\n } else {\n const matches = matchRoutes(routes, window.location.pathname) ?? [];\n if (matches.length === 0) {\n return;\n }\n targetRoutes = matches.map((match)=>match.route);\n }\n await Promise.all(targetRoutes.map(async (route)=>{\n const lazy = route.lazy;\n if (typeof lazy !== 'function') {\n return;\n }\n try {\n const resolved = await lazy();\n Object.assign(route, resolved);\n delete route.lazy;\n } catch (error) {\n logger.warn('首屏路由懒加载预解析失败,回退到 Router 默认懒加载', error);\n }\n }));\n }\n /**\n * 获取路由实例\n * \n * @returns 路由实例,如果未初始化则返回 null\n */ getRouter() {\n return this.router;\n }\n /**\n * 检查是否已初始化\n * \n * @returns 如果已初始化返回 true,否则返回 false\n */ isInitialized() {\n return this.initialized;\n }\n /**\n * 销毁路由管理器\n */ destroy() {\n // 执行插件钩子:销毁\n this.pluginManager.executeHooks(PluginLifecycleStage.DESTROY, {\n config: {}\n });\n // 停止预加载\n this.preloader.stopPreload();\n this.router = null;\n this.initialized = false;\n // 清空生命周期钩子和中间件\n const lifecycleManager = getRouterLifecycleManager();\n lifecycleManager.clear();\n const middlewareManager = getRouterMiddlewareManager();\n middlewareManager.clear();\n logger.info('路由管理器已销毁');\n }\n /**\n * 获取路由缓存实例\n */ getCache() {\n return this.cache;\n }\n /**\n * 获取路由预加载器实例\n */ getPreloader() {\n return this.preloader;\n }\n /**\n * 获取路由插件管理器实例\n */ getPluginManager() {\n return this.pluginManager;\n }\n /**\n * 获取路由监控服务实例\n */ getMonitoring() {\n return this.monitoring;\n }\n constructor(){\n /**\n * 路由实例\n * 只能在 initialize 方法中赋值\n */ _define_property(this, \"router\", null);\n /**\n * 是否已初始化\n */ _define_property(this, \"initialized\", false);\n /**\n * 路由缓存实例\n */ _define_property(this, \"cache\", getRouteCache());\n /**\n * 路由预加载器实例\n */ _define_property(this, \"preloader\", getRoutePreloader());\n /**\n * 路由插件管理器实例\n */ _define_property(this, \"pluginManager\", getRouterPluginManager());\n /**\n * 路由监控服务实例\n */ _define_property(this, \"monitoring\", getRouterMonitoring());\n /**\n * 路由适配器管理器实例\n */ _define_property(this, \"adapterManager\", getAdapterManager());\n // 私有构造函数\n // 注册默认的 React Router 适配器\n this.adapterManager.register({\n name: 'react-router',\n factory: createReactRouterAdapter(),\n priority: 10\n });\n }\n}\n_define_property(RouterManager, \"instance\", null);\n/**\n * 获取路由管理器\n */ export function getRouterManager() {\n return RouterManager.getInstance();\n}\n\n//# sourceMappingURL=RouterManager.js.map","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 { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * 应用渲染模块\n * 负责渲染React应用\n */ import { createRoot } from \"react-dom/client\";\nimport { StrictMode, useMemo, useCallback, memo } from \"react\";\nimport { BasicLayout, DefaultApp, AppContextProvider } from \"../app\";\nimport { ErrorBoundary } from \"../error\";\nimport { InitializationErrorThrower } from \"../initialization\";\nimport { SplashScreen } from \"../splash\";\nimport { SecurityUtils } from \"@vlian/utils\";\nimport { getRouterManager } from \"../router/RouterManager\";\nimport { RouterProvider } from \"react-router-dom\";\nconst OptimizedAppContent = /*#__PURE__*/ memo(({ options, services, context, // securityConfig 用于未来扩展,当前暂不使用\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nsecurityConfig: _securityConfig })=>{\n // 优化:使用 useMemo 缓存初始语言计算\n const initialLocale = useMemo(()=>{\n return options.locale ? Object.keys(options.locale)[0] || 'zh-CN' : 'zh-CN';\n }, [\n options.locale\n ]);\n // 优化:使用 useMemo 缓存路由判断结果\n const shouldUseRouter = useMemo(()=>{\n const routerEnabled = options.router ? options.router.enabled !== false && options.router.enabled !== 'disabled' : false;\n if (!routerEnabled) {\n return false;\n }\n const routerManager = getRouterManager();\n const router = routerManager.getRouter();\n return router !== null;\n }, [\n options.router\n ]);\n // 优化:使用 useMemo 缓存路由实例\n const router = useMemo(()=>{\n if (!shouldUseRouter) {\n return null;\n }\n const routerManager = getRouterManager();\n return routerManager.getRouter();\n }, [\n shouldUseRouter\n ]);\n // 优化:使用 useCallback 缓存错误处理函数\n const handleError = useCallback((error)=>{\n services.monitoring.captureError(error);\n }, [\n services.monitoring\n ]);\n // 优化:使用 useMemo 缓存应用内容\n const appContent = useMemo(()=>{\n if (shouldUseRouter && router) {\n return /*#__PURE__*/ _jsx(RouterProvider, {\n router: router\n });\n }\n return options.app || /*#__PURE__*/ _jsx(DefaultApp, {});\n }, [\n shouldUseRouter,\n router,\n options.app\n ]);\n return /*#__PURE__*/ _jsxs(ErrorBoundary, {\n fallback: options.errorFallback,\n onError: handleError,\n children: [\n /*#__PURE__*/ _jsx(InitializationErrorThrower, {}),\n /*#__PURE__*/ _jsx(AppContextProvider, {\n initialTheme: options.theme,\n initialLocale: initialLocale,\n initialAntdConfig: options.uiProvider || options.antd,\n initialInitializationContext: context,\n stateManager: services.stateManager,\n antdApp: options.uiApp || options.antdApp,\n children: /*#__PURE__*/ _jsx(BasicLayout, {\n globalProvider: options.globalProvider,\n children: appContent\n })\n })\n ]\n });\n});\nOptimizedAppContent.displayName = 'OptimizedAppContent';\n/**\n * 应用渲染器\n */ export class AppRenderer {\n /**\n * 初始化渲染器\n *\n * @param container - React应用的挂载容器\n * @param rootOptions - React根节点配置选项\n */ initialize(container, rootOptions) {\n this.container = container;\n if (!this.root) {\n this.root = createRoot(container, rootOptions);\n }\n }\n /**\n * 渲染应用\n *\n * 优化:\n * 1. 默认启用安全防护(XSS防护)\n * 2. 优化组件渲染性能,使用 useMemo 缓存计算结果\n * 3. 将安全配置计算提取到初始化阶段\n *\n * @param options - 启动配置选项\n * @param services - 服务实例\n * @param context - 初始化上下文(可选)\n */ async renderApp(options, services, context) {\n if (!this.root) {\n throw new Error('渲染器未初始化,请先调用 initialize()');\n }\n // 优化:安全配置在初始化阶段计算(在 startApp 中预计算)\n // 这里只使用预计算的值,避免在渲染时重复计算\n const securityConfig = {\n enableXSSProtection: options.security?.enableXSSProtection ?? true,\n validateConfig: options.security?.validateConfig ?? true,\n sanitizeUserInput: options.security?.sanitizeUserInput ?? true,\n csrf: options.security?.csrf\n };\n // 优化:安全验证在初始化阶段完成,这里只进行必要的运行时检查\n // 如果启用了安全模式(默认启用),对配置进行验证\n if (securityConfig.enableXSSProtection && securityConfig.validateConfig) {\n // 异步验证配置,不阻塞渲染\n Promise.resolve().then(()=>{\n try {\n const configStr = JSON.stringify(options);\n const validation = SecurityUtils.validateInput(configStr);\n if (!validation.safe) {\n services.monitoring.captureError(new Error('配置项包含不安全内容'), {\n reason: validation.reason\n });\n }\n } catch (error) {\n // 忽略序列化错误(某些配置项可能包含不可序列化的内容)\n }\n });\n }\n // 初始化 CSRF 防护(如果启用,异步执行,不阻塞渲染)\n if (securityConfig.enableXSSProtection && securityConfig.csrf?.enabled !== false) {\n import(\"@vlian/csrf\").then(({ initCSRFManager })=>{\n initCSRFManager({\n headerName: securityConfig.csrf?.headerName,\n cookieName: securityConfig.csrf?.cookieName,\n getToken: securityConfig.csrf?.getToken,\n validateToken: securityConfig.csrf?.validateToken\n });\n }).catch((error)=>{\n // CSRF 初始化失败不影响应用启动,但记录警告\n if (process.env.NODE_ENV === 'development') {\n console.warn('CSRF 防护初始化失败:', error);\n }\n });\n }\n // 使用优化的应用内容组件,内部使用 useMemo 缓存计算结果\n this.root.render(/*#__PURE__*/ _jsx(StrictMode, {\n children: /*#__PURE__*/ _jsx(OptimizedAppContent, {\n options: options,\n services: services,\n context: context,\n securityConfig: securityConfig\n })\n }));\n }\n /**\n * 渲染启动页\n *\n * 注意:启动页不使用 RouterWrapper,因为启动页应该在路由系统之前渲染\n *\n * @param options - 启动配置选项\n * @param services - 服务实例\n * @param onComplete - 启动页完成回调\n */ renderSplashScreen(options, services, onComplete) {\n if (!this.root) {\n throw new Error('渲染器未初始化,请先调用 initialize()');\n }\n // 获取初始语言(从 locale 配置中推断,或使用默认值)\n const initialLocale = options.locale ? Object.keys(options.locale)[0] || 'zh-CN' : 'zh-CN';\n this.root.render(/*#__PURE__*/ _jsx(StrictMode, {\n children: /*#__PURE__*/ _jsxs(ErrorBoundary, {\n fallback: options.errorFallback,\n onError: (error)=>{\n services.monitoring.captureError(error);\n },\n children: [\n /*#__PURE__*/ _jsx(InitializationErrorThrower, {}),\n /*#__PURE__*/ _jsx(AppContextProvider, {\n initialTheme: options.theme,\n initialLocale: initialLocale,\n initialAntdConfig: options.uiProvider || options.antd,\n stateManager: services.stateManager,\n antdApp: options.uiApp || options.antdApp,\n children: /*#__PURE__*/ _jsx(BasicLayout, {\n globalProvider: options.globalProvider,\n children: /*#__PURE__*/ _jsx(SplashScreen, {\n options: options,\n onComplete: onComplete\n })\n })\n })\n ]\n })\n }));\n }\n /**\n * 渲染错误页面\n *\n * @param options - 启动配置选项\n * @param services - 服务实例\n * @param error - 错误信息\n */ renderError(options, services) {\n if (!this.root) {\n throw new Error('渲染器未初始化,请先调用 initialize()');\n }\n this.root.render(/*#__PURE__*/ _jsx(StrictMode, {\n children: /*#__PURE__*/ _jsxs(ErrorBoundary, {\n fallback: options.errorFallback,\n onError: (err)=>{\n services.monitoring.captureError(err);\n if (options.errorMonitor?.onError) {\n options.errorMonitor.onError(err);\n }\n },\n children: [\n /*#__PURE__*/ _jsx(InitializationErrorThrower, {}),\n /*#__PURE__*/ _jsx(\"div\", {\n children: \"框架启动失败\"\n })\n ]\n })\n }));\n }\n /**\n * 销毁渲染器\n */ destroy() {\n if (this.root) {\n this.root.unmount();\n this.root = null;\n }\n this.container = null;\n }\n /**\n * 获取容器\n */ getContainer() {\n return this.container;\n }\n constructor(){\n _define_property(this, \"root\", null);\n _define_property(this, \"container\", null);\n }\n}\n\n//# sourceMappingURL=renderApp.js.map","/**\n * 性能追踪模块\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 */ export const STARTUP_METRIC_UNITS = {\n /**\n * 毫秒单位\n */ ms: 'ms',\n /**\n * 无单位(分数)\n */ none: ''\n};\n/**\n * 性能追踪器\n */ export class PerformanceTracker {\n /**\n * 记录服务初始化耗时\n */ recordServiceInit(duration) {\n this.metrics.serviceInitDuration = duration;\n }\n /**\n * 记录初始化耗时\n */ recordInitialization(duration) {\n this.metrics.initializationDuration = duration;\n }\n /**\n * 记录首次渲染耗时\n */ recordFirstRender(duration) {\n this.metrics.firstRenderDuration = duration;\n }\n /**\n * 记录总启动耗时\n */ recordTotalStartup(duration) {\n this.metrics.totalStartupDuration = duration;\n }\n /**\n * 收集Web Vitals指标\n */ collectWebVitals() {\n if (typeof window === 'undefined') {\n return;\n }\n // 收集FCP(首次内容绘制)\n if ('PerformanceObserver' in window) {\n try {\n const fcpObserver = new PerformanceObserver((list)=>{\n for (const entry of list.getEntries()){\n if (entry.name === 'first-contentful-paint') {\n this.metrics.fcp = entry.startTime;\n this.report();\n }\n }\n });\n fcpObserver.observe({\n entryTypes: [\n 'paint'\n ]\n });\n } catch (e) {\n // 忽略错误\n }\n }\n // 收集LCP(最大内容绘制)\n if ('PerformanceObserver' in window) {\n try {\n const lcpObserver = new PerformanceObserver((list)=>{\n const entries = list.getEntries();\n const lastEntry = entries[entries.length - 1];\n this.metrics.lcp = lastEntry.startTime;\n this.report();\n });\n lcpObserver.observe({\n entryTypes: [\n 'largest-contentful-paint'\n ]\n });\n } catch (e) {\n // 忽略错误\n }\n }\n // 收集FID(首次输入延迟)\n if ('PerformanceObserver' in window) {\n try {\n const fidObserver = new PerformanceObserver((list)=>{\n for (const entry of list.getEntries()){\n // PerformanceEventTiming 类型检查\n if ('processingStart' in entry && 'startTime' in entry) {\n const eventEntry = entry;\n this.metrics.fid = eventEntry.processingStart - eventEntry.startTime;\n this.report();\n }\n }\n });\n fidObserver.observe({\n entryTypes: [\n 'first-input'\n ]\n });\n } catch (e) {\n // 忽略错误\n }\n }\n // 收集CLS(累积布局偏移)\n if ('PerformanceObserver' in window) {\n try {\n let clsValue = 0;\n const clsObserver = new PerformanceObserver((list)=>{\n for (const entry of list.getEntries()){\n if (!entry.hadRecentInput) {\n clsValue += entry.value;\n }\n }\n this.metrics.cls = clsValue;\n this.report();\n });\n clsObserver.observe({\n entryTypes: [\n 'layout-shift'\n ]\n });\n } catch (e) {\n // 忽略错误\n }\n }\n }\n /**\n * 上报性能指标\n */ report() {\n if (this.monitoring.reportPerformance) {\n this.monitoring.reportPerformance(this.metrics);\n }\n }\n /**\n * 获取所有指标\n */ getMetrics() {\n return {\n ...this.metrics\n };\n }\n /**\n * 获取总启动耗时\n */ getTotalDuration() {\n return performance.now() - this.startTime;\n }\n constructor(monitoring){\n _define_property(this, \"monitoring\", void 0);\n _define_property(this, \"metrics\", {});\n _define_property(this, \"startTime\", void 0);\n this.monitoring = monitoring;\n this.startTime = performance.now();\n }\n}\n\n//# sourceMappingURL=performanceTracker.js.map","/**\n * 应用实例管理模块\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 { AppRenderer } from \"./renderApp\";\nimport { PerformanceTracker } from \"./performanceTracker\";\n/**\n * 应用实例\n */ export class AppInstance {\n /**\n * 初始化应用实例\n * \n * @param container - React应用的挂载容器\n * @param services - 服务实例\n */ initialize(container, services) {\n if (this.initialized) {\n throw new Error(`应用实例 ${this.id} 已经初始化`);\n }\n if (this.destroyed) {\n throw new Error(`应用实例 ${this.id} 已销毁,无法重新初始化`);\n }\n this.services = services;\n this.renderer.initialize(container, this.options.rootOptions);\n this.performanceTracker = new PerformanceTracker(services.monitoring);\n this.performanceTracker.collectWebVitals();\n this.initialized = true;\n }\n /**\n * 获取渲染器\n */ getRenderer() {\n if (!this.initialized) {\n throw new Error(`应用实例 ${this.id} 未初始化`);\n }\n return this.renderer;\n }\n /**\n * 获取服务实例\n */ getServices() {\n if (!this.services) {\n throw new Error(`应用实例 ${this.id} 未初始化`);\n }\n return this.services;\n }\n /**\n * 获取性能追踪器\n */ getPerformanceTracker() {\n return this.performanceTracker;\n }\n /**\n * 获取事件总线\n */ getEventBus() {\n if (!this.services) {\n return null;\n }\n return this.services.eventBus;\n }\n /**\n * 获取启动配置\n */ getOptions() {\n return this.options;\n }\n /**\n * 是否已初始化\n */ isInitialized() {\n return this.initialized;\n }\n /**\n * 是否已销毁\n */ isDestroyed() {\n return this.destroyed;\n }\n /**\n * 销毁应用实例\n */ destroy() {\n if (this.destroyed) {\n return;\n }\n this.renderer.destroy();\n this.services = null;\n this.performanceTracker = null;\n this.destroyed = true;\n }\n constructor(id, options){\n /**\n * 实例ID\n */ _define_property(this, \"id\", void 0);\n /**\n * 应用渲染器\n */ _define_property(this, \"renderer\", void 0);\n /**\n * 服务实例\n */ _define_property(this, \"services\", null);\n /**\n * 性能追踪器\n */ _define_property(this, \"performanceTracker\", null);\n /**\n * 启动配置\n */ _define_property(this, \"options\", void 0);\n /**\n * 是否已初始化\n */ _define_property(this, \"initialized\", false);\n /**\n * 是否已销毁\n */ _define_property(this, \"destroyed\", false);\n this.id = id;\n this.options = options;\n this.renderer = new AppRenderer();\n }\n}\n/**\n * 应用实例管理器\n */ export class AppInstanceManager {\n /**\n * 获取单例实例\n */ static getInstance() {\n if (!AppInstanceManager.instance) {\n AppInstanceManager.instance = new AppInstanceManager();\n }\n return AppInstanceManager.instance;\n }\n /**\n * 创建应用实例\n * \n * @param id - 实例ID,如果不提供则自动生成\n * @param options - 启动配置选项\n * @returns 应用实例\n */ createInstance(id, options = {}) {\n const instanceId = id || `app-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\n if (this.instances.has(instanceId)) {\n throw new Error(`应用实例 ${instanceId} 已存在`);\n }\n const instance = new AppInstance(instanceId, options);\n this.instances.set(instanceId, instance);\n // 如果没有默认实例,设置为默认实例\n if (!this.defaultInstanceId) {\n this.defaultInstanceId = instanceId;\n }\n return instance;\n }\n /**\n * 获取应用实例\n * \n * @param id - 实例ID,如果不提供则返回默认实例\n * @returns 应用实例或undefined\n */ getInstance(id) {\n const instanceId = id || this.defaultInstanceId;\n if (!instanceId) {\n return undefined;\n }\n return this.instances.get(instanceId);\n }\n /**\n * 销毁应用实例\n * \n * @param id - 实例ID,如果不提供则销毁默认实例\n */ destroyInstance(id) {\n const instanceId = id || this.defaultInstanceId;\n if (!instanceId) {\n return;\n }\n const instance = this.instances.get(instanceId);\n if (instance) {\n instance.destroy();\n this.instances.delete(instanceId);\n // 如果销毁的是默认实例,重新设置默认实例\n if (this.defaultInstanceId === instanceId) {\n const remainingInstances = Array.from(this.instances.keys());\n this.defaultInstanceId = remainingInstances.length > 0 ? remainingInstances[0] : null;\n }\n }\n }\n /**\n * 获取所有实例\n */ getAllInstances() {\n return Array.from(this.instances.values());\n }\n /**\n * 设置默认实例\n * \n * @param id - 实例ID\n */ setDefaultInstance(id) {\n if (!this.instances.has(id)) {\n throw new Error(`应用实例 ${id} 不存在`);\n }\n this.defaultInstanceId = id;\n }\n /**\n * 获取默认实例ID\n */ getDefaultInstanceId() {\n return this.defaultInstanceId;\n }\n /**\n * 清空所有实例\n */ clear() {\n for (const instance of this.instances.values()){\n instance.destroy();\n }\n this.instances.clear();\n this.defaultInstanceId = null;\n }\n constructor(){\n _define_property(this, \"instances\", new Map());\n _define_property(this, \"defaultInstanceId\", null);\n // 私有构造函数\n }\n}\n_define_property(AppInstanceManager, \"instance\", null);\n/**\n * 获取应用实例管理器\n */ export function getAppInstanceManager() {\n return AppInstanceManager.getInstance();\n}\n\n//# sourceMappingURL=AppInstance.js.map","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 */ export var RuntimeEnvironment = /*#__PURE__*/ function(RuntimeEnvironment) {\n /**\n * 浏览器环境\n */ RuntimeEnvironment[\"BROWSER\"] = \"browser\";\n /**\n * 服务端渲染环境(SSR)\n */ RuntimeEnvironment[\"SSR\"] = \"ssr\";\n /**\n * 微前端容器环境\n */ RuntimeEnvironment[\"MICRO_FRONTEND\"] = \"micro-frontend\";\n /**\n * Node.js环境\n */ RuntimeEnvironment[\"NODE\"] = \"node\";\n /**\n * 未知环境\n */ RuntimeEnvironment[\"UNKNOWN\"] = \"unknown\";\n return RuntimeEnvironment;\n}({});\n/**\n * 环境检测器\n */ export class EnvironmentDetector {\n /**\n * 获取单例实例\n */ static getInstance() {\n if (!EnvironmentDetector.instance) {\n EnvironmentDetector.instance = new EnvironmentDetector();\n }\n return EnvironmentDetector.instance;\n }\n /**\n * 检测微前端环境\n */ detectMicroFrontend() {\n if (typeof window === 'undefined') {\n return false;\n }\n // 检测是否在微前端容器中\n // 常见的微前端框架标识\n return !!(window.__POWERED_BY_QIANKUN__ || window.__MICRO_APP_ENVIRONMENT__ || window.singleSpa || window.__SINGLE_SPA__);\n }\n /**\n * 检测运行环境\n */ detectEnvironment() {\n if (this.isMicroFrontend) {\n return \"micro-frontend\";\n }\n if (this.isSSR) {\n return \"ssr\";\n }\n if (this.isBrowser) {\n return \"browser\";\n }\n if (typeof process !== 'undefined') {\n return \"node\";\n }\n return \"unknown\";\n }\n /**\n * 获取当前运行环境\n */ getEnvironment() {\n return this.environment;\n }\n /**\n * 是否为浏览器环境\n */ isBrowserEnvironment() {\n return this.isBrowser;\n }\n /**\n * 是否为SSR环境\n */ isSSREnvironment() {\n return this.isSSR;\n }\n /**\n * 是否为微前端环境\n */ isMicroFrontendEnvironment() {\n return this.isMicroFrontend;\n }\n /**\n * 安全获取DOM元素(支持SSR)\n * \n * @param selector - 选择器或元素ID\n * @returns DOM元素或null\n */ safeGetElement(selector) {\n if (!this.isBrowser) {\n return null;\n }\n if (typeof selector === 'function') {\n try {\n return selector();\n } catch {\n return null;\n }\n }\n try {\n if (selector.startsWith('#')) {\n return document.getElementById(selector.slice(1));\n }\n return document.querySelector(selector);\n } catch {\n return null;\n }\n }\n /**\n * 安全执行浏览器API(支持SSR)\n * \n * @param fn - 要执行的函数\n * @param fallback - 非浏览器环境的回退值\n * @returns 执行结果或回退值\n */ safeExecuteBrowserAPI(fn, fallback) {\n if (!this.isBrowser) {\n return fallback;\n }\n try {\n return fn();\n } catch {\n return fallback;\n }\n }\n constructor(){\n _define_property(this, \"environment\", void 0);\n _define_property(this, \"isBrowser\", void 0);\n _define_property(this, \"isSSR\", void 0);\n _define_property(this, \"isMicroFrontend\", void 0);\n this.isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n this.isSSR = typeof window === 'undefined' && typeof process !== 'undefined';\n this.isMicroFrontend = this.detectMicroFrontend();\n this.environment = this.detectEnvironment();\n }\n}\n_define_property(EnvironmentDetector, \"instance\", null);\n/**\n * 获取环境检测器实例\n */ export function getEnvironmentDetector() {\n return EnvironmentDetector.getInstance();\n}\n\n//# sourceMappingURL=environment.js.map","/**\n * 应用级事件系统类型定义\n * 提供类型安全的事件通信能力\n */ /**\n * 事件监听器类型\n * \n * @template T - 事件数据类型\n */ /**\n * 框架内置事件类型\n */ export var FrameworkEventType = /*#__PURE__*/ function(FrameworkEventType) {\n /**\n * 应用启动开始\n */ FrameworkEventType[\"APP_START\"] = \"framework:app:start\";\n /**\n * 应用启动完成\n */ FrameworkEventType[\"APP_STARTED\"] = \"framework:app:started\";\n /**\n * 应用初始化开始\n */ FrameworkEventType[\"APP_INIT_START\"] = \"framework:app:init:start\";\n /**\n * 应用初始化完成\n */ FrameworkEventType[\"APP_INIT_COMPLETE\"] = \"framework:app:init:complete\";\n /**\n * 应用初始化失败\n */ FrameworkEventType[\"APP_INIT_ERROR\"] = \"framework:app:init:error\";\n /**\n * 应用渲染开始\n */ FrameworkEventType[\"APP_RENDER_START\"] = \"framework:app:render:start\";\n /**\n * 应用渲染完成\n */ FrameworkEventType[\"APP_RENDER_COMPLETE\"] = \"framework:app:render:complete\";\n /**\n * 路由变化\n */ FrameworkEventType[\"ROUTE_CHANGE\"] = \"framework:route:change\";\n /**\n * 路由导航开始\n */ FrameworkEventType[\"ROUTE_NAVIGATE_START\"] = \"framework:route:navigate:start\";\n /**\n * 路由导航完成\n */ FrameworkEventType[\"ROUTE_NAVIGATE_COMPLETE\"] = \"framework:route:navigate:complete\";\n /**\n * 错误发生\n */ FrameworkEventType[\"ERROR_OCCURRED\"] = \"framework:error:occurred\";\n /**\n * 实例创建\n */ FrameworkEventType[\"INSTANCE_CREATED\"] = \"framework:instance:created\";\n /**\n * 实例销毁\n */ FrameworkEventType[\"INSTANCE_DESTROYED\"] = \"framework:instance:destroyed\";\n /**\n * 性能指标更新\n */ FrameworkEventType[\"PERFORMANCE_UPDATE\"] = \"framework:performance:update\";\n return FrameworkEventType;\n}({});\n\n//# sourceMappingURL=types.js.map","/**\n * 框架生命周期事件集成\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 { FrameworkEventType } from \"./types\";\n/**\n * 框架事件管理器\n */ export class FrameworkEventManager {\n /**\n * 触发应用启动事件\n */ emitAppStart(instanceId) {\n this.eventBus.emitSync(FrameworkEventType.APP_START, {\n instanceId\n });\n }\n /**\n * 触发应用启动完成事件\n */ emitAppStarted(instanceId, duration) {\n this.eventBus.emitSync(FrameworkEventType.APP_STARTED, {\n instanceId,\n duration\n });\n }\n /**\n * 触发应用初始化开始事件\n */ emitAppInitStart(instanceId) {\n this.eventBus.emitSync(FrameworkEventType.APP_INIT_START, {\n instanceId\n });\n }\n /**\n * 触发应用初始化完成事件\n */ emitAppInitComplete(instanceId, context, duration) {\n this.eventBus.emitSync(FrameworkEventType.APP_INIT_COMPLETE, {\n instanceId,\n context,\n duration\n });\n }\n /**\n * 触发应用初始化错误事件\n */ emitAppInitError(instanceId, error) {\n this.eventBus.emitSync(FrameworkEventType.APP_INIT_ERROR, {\n instanceId,\n error\n });\n }\n /**\n * 触发应用渲染开始事件\n */ emitAppRenderStart(instanceId) {\n this.eventBus.emitSync(FrameworkEventType.APP_RENDER_START, {\n instanceId\n });\n }\n /**\n * 触发应用渲染完成事件\n */ emitAppRenderComplete(instanceId, duration) {\n this.eventBus.emitSync(FrameworkEventType.APP_RENDER_COMPLETE, {\n instanceId,\n duration\n });\n }\n /**\n * 触发路由变化事件\n */ emitRouteChange(from, to, params) {\n this.eventBus.emitSync(FrameworkEventType.ROUTE_CHANGE, {\n from,\n to,\n params\n });\n }\n /**\n * 触发路由导航开始事件\n */ emitRouteNavigateStart(to, options) {\n this.eventBus.emitSync(FrameworkEventType.ROUTE_NAVIGATE_START, {\n to,\n options\n });\n }\n /**\n * 触发路由导航完成事件\n */ emitRouteNavigateComplete(to, duration) {\n this.eventBus.emitSync(FrameworkEventType.ROUTE_NAVIGATE_COMPLETE, {\n to,\n duration\n });\n }\n /**\n * 触发错误发生事件\n */ emitErrorOccurred(error, context) {\n this.eventBus.emitSync(FrameworkEventType.ERROR_OCCURRED, {\n error,\n context\n });\n }\n /**\n * 触发实例创建事件\n */ emitInstanceCreated(instanceId) {\n this.eventBus.emitSync(FrameworkEventType.INSTANCE_CREATED, {\n instanceId\n });\n }\n /**\n * 触发实例销毁事件\n */ emitInstanceDestroyed(instanceId) {\n this.eventBus.emitSync(FrameworkEventType.INSTANCE_DESTROYED, {\n instanceId\n });\n }\n /**\n * 触发性能指标更新事件\n */ emitPerformanceUpdate(metrics) {\n this.eventBus.emitSync(FrameworkEventType.PERFORMANCE_UPDATE, {\n metrics\n });\n }\n constructor(eventBus){\n _define_property(this, \"eventBus\", void 0);\n this.eventBus = eventBus;\n }\n}\n\n//# sourceMappingURL=frameworkEvents.js.map","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}\nfunction inferRetryable(error) {\n if (error instanceof Error) {\n const message = error.message.toLowerCase();\n return message.includes('timeout') || message.includes('network');\n }\n return false;\n}\nexport class KernelBootError extends Error {\n constructor(message, options){\n super(message), _define_property(this, \"code\", void 0), _define_property(this, \"phase\", void 0), _define_property(this, \"severity\", void 0), _define_property(this, \"retryable\", void 0), _define_property(this, \"traceId\", void 0), _define_property(this, \"cause\", void 0);\n this.name = 'KernelBootError';\n this.code = options.code;\n this.phase = options.phase;\n this.traceId = options.traceId;\n this.severity = options.severity ?? 'high';\n this.retryable = options.retryable ?? inferRetryable(options.cause);\n this.cause = options.cause;\n }\n}\nexport function toKernelBootError(error, phase, traceId) {\n if (error instanceof KernelBootError) {\n return error;\n }\n if (error instanceof Error) {\n return new KernelBootError(error.message, {\n code: 'KERNEL_BOOT_FAILURE',\n phase,\n traceId,\n cause: error\n });\n }\n return new KernelBootError(String(error), {\n code: 'KERNEL_BOOT_FAILURE',\n phase,\n traceId,\n cause: error\n });\n}\n\n//# sourceMappingURL=errors.js.map","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 { logger } from \"@vlian/logger\";\nimport { initMonitoring } from \"@vlian/monitoring\";\nimport { StateManager } from \"../../state\";\nimport { AppEventBus } from \"../event/AppEventBus\";\nimport { setupI18n, setLang } from \"../../library\";\nconst defaultLoggerAdapter = {\n initialize (options) {\n if (options.loggerLevel) {\n logger.setLevel(options.loggerLevel);\n }\n },\n setLevel (level) {\n logger.setLevel(level);\n },\n debug (message, ...args) {\n logger.debug(message, ...args);\n },\n info (message, ...args) {\n logger.info(message, ...args);\n },\n warn (message, ...args) {\n logger.warn(message, ...args);\n },\n error (message, ...args) {\n logger.error(message, ...args);\n }\n};\nconst defaultMonitoringAdapter = {\n initialize () {\n initMonitoring();\n },\n captureError (error, metadata) {\n try {\n const service = initMonitoring();\n service.captureError(error, metadata);\n } catch {\n logger.error('监控适配器上报失败', error, metadata);\n }\n },\n reportMetric (name, value, tags) {\n logger.debug(`metric:${name}`, {\n value,\n tags\n });\n },\n reportPhase (metric) {\n logger.debug('kernel.phase.metric', metric);\n }\n};\nlet DefaultStateAdapter = class DefaultStateAdapter {\n initialize() {\n this.instance = new StateManager({\n enableRegistry: true,\n defaultScope: 'app'\n });\n }\n getInstance() {\n if (!this.instance) {\n this.initialize();\n }\n return this.instance;\n }\n destroy() {\n if (this.instance) {\n this.instance.destroy();\n this.instance = null;\n }\n }\n constructor(){\n _define_property(this, \"instance\", null);\n }\n};\nlet DefaultEventBusAdapter = class DefaultEventBusAdapter {\n initialize(options) {\n this.bus = new AppEventBus({\n enableTracking: process.env.NODE_ENV === 'development',\n maxHistorySize: 100,\n enableValidation: false,\n enablePerformanceMonitoring: process.env.NODE_ENV === 'development',\n instanceId: options.instanceId\n });\n }\n emit(event, payload) {\n if (!this.bus) {\n this.initialize({});\n }\n this.bus.emit(event, payload);\n }\n on(event, handler) {\n if (!this.bus) {\n this.initialize({});\n }\n return this.bus.on(event, handler);\n }\n destroy() {\n if (this.bus) {\n this.bus.clear();\n this.bus = null;\n }\n }\n constructor(){\n _define_property(this, \"bus\", null);\n }\n};\nconst defaultI18nAdapter = {\n initialize (snapshot) {\n setupI18n(snapshot.resources || {});\n setLang(snapshot.locale);\n },\n setLocale (locale) {\n setLang(locale);\n }\n};\nconst defaultThemeAdapter = {\n initialize (snapshot) {\n if (typeof document === 'undefined') {\n return;\n }\n applyThemeToDocument(snapshot);\n },\n apply (snapshot) {\n if (typeof document === 'undefined') {\n return;\n }\n applyThemeToDocument(snapshot);\n }\n};\nfunction applyThemeToDocument(theme) {\n const root = document.documentElement;\n root.classList.remove('light', 'dark');\n const resolvedMode = theme.mode === 'system' ? window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light' : theme.mode;\n root.classList.add(resolvedMode);\n if (theme.primaryColor) {\n root.style.setProperty('--app-primary-color', theme.primaryColor);\n }\n if (theme.compatibility?.shadcn) {\n Object.entries(theme.compatibility.shadcn).forEach(([key, value])=>{\n root.style.setProperty(`--${key}`, String(value));\n });\n }\n}\nconst defaultErrorHandler = {\n async handle (error) {\n logger.error('Kernel 启动失败', error);\n return {\n handled: true,\n shouldThrow: true\n };\n }\n};\nexport function resolveKernelAdapters(options) {\n return {\n logger: options.adapters?.logger || defaultLoggerAdapter,\n monitoring: options.adapters?.monitoring || defaultMonitoringAdapter,\n state: options.adapters?.state || new DefaultStateAdapter(),\n eventBus: options.adapters?.eventBus || new DefaultEventBusAdapter(),\n i18n: options.adapters?.i18n || defaultI18nAdapter,\n theme: options.adapters?.theme || defaultThemeAdapter,\n errorHandler: options.adapters?.errorHandler || defaultErrorHandler\n };\n}\n\n//# sourceMappingURL=defaultAdapters.js.map","import { initialization } from \"../initialization\";\nimport { generateTraceId, initTraceIdGenerator, setCurrentTraceId } from \"../../utils/traceId\";\nimport { toKernelBootError } from \"./errors\";\nimport { resolveKernelAdapters } from \"./defaultAdapters\";\nconst DEFAULT_THEME = {\n mode: 'light'\n};\nconst DEFAULT_I18N = {\n locale: 'zh-CN'\n};\nasync function withOptionalTimeout(task, timeoutMs, timeoutMessage = 'Kernel phase timeout') {\n if (!timeoutMs || timeoutMs <= 0) {\n return task();\n }\n return Promise.race([\n task(),\n new Promise((_, reject)=>{\n setTimeout(()=>reject(new Error(timeoutMessage)), timeoutMs);\n })\n ]);\n}\nexport async function startKernel(options = {}) {\n initTraceIdGenerator('kernel');\n const traceId = generateTraceId();\n setCurrentTraceId(traceId);\n const adapters = resolveKernelAdapters(options);\n const metrics = [];\n let config = {};\n let theme = {\n ...DEFAULT_THEME,\n ...options.theme || {}\n };\n let i18n = {\n ...DEFAULT_I18N,\n ...options.locale || {}\n };\n const emitPhaseMetric = (metric)=>{\n metrics.push(metric);\n adapters.monitoring.reportPhase?.(metric);\n adapters.monitoring.reportMetric?.('kernel.phase.duration', metric.duration, {\n phase: metric.phase\n });\n adapters.eventBus.emit('kernel.phase.end', metric);\n };\n const runPhase = async (phase, fn)=>{\n const enabled = options.enabledPhases?.[phase];\n if (enabled === false) {\n adapters.eventBus.emit('kernel.phase.skipped', {\n phase,\n traceId\n });\n return;\n }\n const startTime = performance.now();\n adapters.eventBus.emit('kernel.phase.start', {\n phase,\n traceId,\n startTime\n });\n try {\n await withOptionalTimeout(fn, options.performance?.phaseTimeoutMs?.[phase], `Kernel phase \"${phase}\" timeout`);\n emitPhaseMetric({\n phase,\n startTime,\n endTime: performance.now(),\n duration: performance.now() - startTime\n });\n } catch (error) {\n const bootError = toKernelBootError(error, phase, traceId);\n adapters.monitoring.captureError(bootError, {\n phase,\n traceId\n });\n adapters.eventBus.emit('kernel.phase.error', bootError);\n const result = await adapters.errorHandler.handle(bootError);\n if (result.shouldThrow) {\n throw bootError;\n }\n }\n };\n await runPhase('prepare', async ()=>{\n adapters.logger.initialize?.(options);\n adapters.logger.info('Kernel 启动准备完成', {\n traceId\n });\n });\n await runPhase('services', async ()=>{\n await Promise.all([\n Promise.resolve(adapters.monitoring.initialize?.(options)),\n Promise.resolve(adapters.state.initialize?.(options)),\n Promise.resolve(adapters.eventBus.initialize?.(options))\n ]);\n });\n await runPhase('config', async ()=>{\n if (options.configLoader) {\n try {\n config = await options.configLoader();\n } catch (error) {\n config = options.configFallback || {};\n }\n } else {\n config = options.configFallback || {};\n }\n });\n await runPhase('i18n', async ()=>{\n await adapters.i18n.initialize(i18n);\n });\n await runPhase('theme', async ()=>{\n await Promise.resolve(adapters.theme.initialize?.(theme));\n await adapters.theme.apply(theme);\n });\n await runPhase('init', async ()=>{\n await options.lifecycle?.beforeInitialization?.();\n const initContext = await initialization({\n loggerLevel: options.loggerLevel,\n locale: i18n.resources,\n lifecycle: options.lifecycle\n });\n await options.lifecycle?.afterInitialization?.(initContext);\n });\n await runPhase('ready', async ()=>{\n adapters.eventBus.emit('kernel.ready', {\n traceId,\n theme,\n locale: i18n.locale,\n config\n });\n });\n if (options.enablePostReady !== false) {\n await runPhase('postReady', async ()=>{\n adapters.eventBus.emit('kernel.postReady', {\n traceId\n });\n });\n }\n const setTheme = async (partial)=>{\n theme = {\n ...theme,\n ...partial\n };\n await adapters.theme.apply(theme);\n adapters.eventBus.emit('kernel.theme.changed', {\n traceId,\n theme\n });\n };\n const setThemeMode = async (mode)=>{\n await setTheme({\n mode\n });\n };\n const setLocale = async (locale)=>{\n i18n = {\n ...i18n,\n locale\n };\n await adapters.i18n.setLocale(locale);\n adapters.eventBus.emit('kernel.i18n.changed', {\n traceId,\n locale\n });\n };\n return {\n traceId,\n getTheme: ()=>({\n ...theme\n }),\n setTheme,\n setThemeMode,\n getI18n: ()=>({\n ...i18n\n }),\n setLocale,\n getConfig: ()=>({\n ...config\n }),\n getStateManager: ()=>adapters.state.getInstance(),\n getEventBus: ()=>adapters.eventBus,\n getMetrics: ()=>[\n ...metrics\n ],\n destroy: ()=>{\n adapters.state.destroy?.();\n adapters.eventBus.destroy?.();\n adapters.eventBus.emit('kernel.destroyed', {\n traceId\n });\n }\n };\n}\n\n//# sourceMappingURL=startKernel.js.map","/**\n * 应用启动主函数\n * 重构后的启动逻辑,集成所有新功能\n */ import { logger } from \"@vlian/logger\";\nimport { ErrorCode, InitializationError } from \"@vlian/utils\";\nimport { initTraceIdGenerator, generateTraceId, setCurrentTraceId } from \"../../utils/traceId\";\nimport { shouldShowSplashScreen } from \"../splash\";\nimport { initialization, initializationErrorState } from \"../initialization/index\";\nimport { middlewareManager } from \"../middleware\";\nimport { initializeServices } from \"./initializeServices\";\nimport { getAppInstanceManager } from \"./AppInstance\";\nimport { getEnvironmentDetector } from \"./environment\";\nimport { getRouterManager } from \"../router/RouterManager\";\nimport { FrameworkEventManager } from \"../event/frameworkEvents\";\nimport { startKernel } from \"../kernel\";\n/**\n * 启动应用\n *\n * @param options - 启动配置选项\n * @param instanceId - 应用实例ID(可选,用于多实例场景)\n * @returns 应用实例\n */ export async function startApp(options = {}, instanceId) {\n const startTime = performance.now();\n const envDetector = getEnvironmentDetector();\n const instanceManager = getAppInstanceManager();\n // 初始化追踪 ID 生成器\n initTraceIdGenerator('app');\n const traceId = generateTraceId();\n setCurrentTraceId(traceId);\n // 框架事件管理器(在服务初始化后创建)\n let frameworkEventManager = null;\n let kernelTraceId = null;\n try {\n // 1. 环境检测和容器获取\n const container = options.container || envDetector.safeGetElement('#root');\n if (!container) {\n throw new InitializationError('未找到挂载容器', undefined, {\n container: options.container\n }, ErrorCode.CONTAINER_NOT_FOUND);\n }\n logger.info('框架启动中...');\n if (options.antd && !options.uiProvider) {\n logger.warn('[deprecated] StartOptions.antd 即将废弃,请迁移到 StartOptions.uiProvider');\n }\n if (options.antdApp && !options.uiApp) {\n logger.warn('[deprecated] StartOptions.antdApp 即将废弃,请迁移到 StartOptions.uiApp');\n }\n // 2. 创建应用实例\n const appInstance = instanceManager.createInstance(instanceId, options);\n const finalInstanceId = appInstance.id;\n let services = null;\n // 使用单次 Promise 防止重复初始化,提升加载速度并保证可观测数据一致。\n let servicesInitPromise = null;\n const ensureServicesInitialized = async ()=>{\n if (services) {\n return services;\n }\n if (!servicesInitPromise) {\n servicesInitPromise = initializeServices({\n ...options,\n eventBus: {\n ...options.eventBus,\n instanceId: finalInstanceId\n }\n });\n }\n services = await servicesInitPromise;\n return services;\n };\n // 3. 使用无 UI Kernel 管理启动阶段(配置、主题、i18n、服务注入、统一错误处理)\n const kernelRuntime = await startKernel({\n loggerLevel: options.loggerLevel,\n locale: {\n locale: (options.locale ? Object.keys(options.locale)[0] : 'zh-CN') || 'zh-CN',\n resources: options.locale\n },\n theme: {\n mode: options.theme?.mode || 'light',\n primaryColor: options.theme?.primaryColor,\n compatibility: {\n antd: options.uiProvider || options.antd\n }\n },\n adapters: {\n monitoring: {\n initialize: async ()=>{\n await ensureServicesInitialized();\n },\n captureError: (error, metadata)=>{\n if (services) {\n services.monitoring.captureError(error, metadata);\n } else {\n logger.error('Kernel 监控上报失败(服务尚未初始化):', error, metadata);\n }\n },\n reportMetric: (name, value, tags)=>{\n logger.debug(`[kernel.metric] ${name}`, {\n value,\n tags,\n instanceId: finalInstanceId\n });\n }\n },\n state: {\n initialize: async ()=>{\n await ensureServicesInitialized();\n },\n getInstance: ()=>services?.stateManager ?? null\n },\n eventBus: {\n initialize: async ()=>{\n await ensureServicesInitialized();\n },\n emit: (event, payload)=>{\n if (services) {\n services.eventBus.emit(event, payload);\n }\n },\n on: (event, handler)=>{\n if (!services) {\n return ()=>{};\n }\n return services.eventBus.on(event, handler);\n }\n },\n errorHandler: {\n async handle (error) {\n logger.error('Kernel 启动阶段失败:', error);\n return {\n handled: true,\n shouldThrow: true\n };\n }\n }\n },\n enabledPhases: {\n init: false\n },\n enablePostReady: false\n });\n kernelTraceId = kernelRuntime.traceId;\n const servicesInitStart = performance.now();\n const resolvedServices = await ensureServicesInitialized();\n const servicesInitDuration = performance.now() - servicesInitStart;\n // 创建框架事件管理器\n frameworkEventManager = new FrameworkEventManager(resolvedServices.eventBus);\n // 触发应用启动事件(使用真实的事件总线)\n frameworkEventManager.emitAppStart(finalInstanceId);\n // 触发实例创建事件\n frameworkEventManager.emitInstanceCreated(finalInstanceId);\n // 4. 初始化应用实例\n appInstance.initialize(container, resolvedServices);\n // 5. 初始化路由管理器\n const routerManager = getRouterManager();\n if (options.router) {\n await routerManager.initialize(options.router);\n }\n // 6. 性能追踪\n const performanceTracker = appInstance.getPerformanceTracker();\n if (performanceTracker) {\n performanceTracker.recordServiceInit(servicesInitDuration);\n }\n // 6. 是否显示启动页\n const shouldShowSplash = shouldShowSplashScreen(options.showSplashScreen);\n const renderer = appInstance.getRenderer();\n // 8. 渲染应用函数\n const renderApp = async (context)=>{\n const renderStart = performance.now();\n // 触发渲染开始事件\n if (frameworkEventManager) {\n frameworkEventManager.emitAppRenderStart(finalInstanceId);\n }\n await renderer.renderApp(options, resolvedServices, context);\n const renderDuration = performance.now() - renderStart;\n // 触发渲染完成事件\n if (frameworkEventManager) {\n frameworkEventManager.emitAppRenderComplete(finalInstanceId, renderDuration);\n }\n // 优化:在应用渲染完成后,延迟初始化非关键服务\n // 使用 requestIdleCallback 在浏览器空闲时初始化,不影响用户体验\n if (resolvedServices.initializeNonCriticalServices) {\n resolvedServices.initializeNonCriticalServices().catch((error)=>{\n logger.warn('非关键服务初始化失败(不影响应用运行):', error);\n });\n }\n if (performanceTracker) {\n performanceTracker.recordFirstRender(renderDuration);\n const totalDuration = performance.now() - startTime;\n performanceTracker.recordTotalStartup(totalDuration);\n performanceTracker.report();\n }\n // 触发应用启动完成事件\n if (frameworkEventManager) {\n frameworkEventManager.emitAppStarted(finalInstanceId, performance.now() - startTime);\n }\n // 统一发出 Kernel post-ready 事件,供可观测系统消费。\n kernelRuntime.getEventBus().emit('kernel.postReady', {\n traceId: kernelRuntime.traceId,\n instanceId: finalInstanceId,\n startupDuration: performance.now() - startTime\n });\n // 开发模式下显示开发工具\n if (process.env.NODE_ENV === 'development' && typeof window !== 'undefined') {\n // 延迟显示开发工具,避免影响首次渲染\n setTimeout(()=>{\n const devToolsContainer = document.createElement('div');\n devToolsContainer.id = '__framework_dev_tools__';\n document.body.appendChild(devToolsContainer);\n // 这里需要动态导入React来渲染开发工具\n // 为了简化,暂时注释掉,后续可以完善\n // import('react-dom/client').then(({ createRoot }) => {\n // const root = createRoot(devToolsContainer);\n // root.render(<DevToolsTrigger appInstance={appInstance} />);\n // });\n }, 1000);\n }\n };\n if (shouldShowSplash) {\n // 场景1: 显示启动页,初始化在启动页中完成\n const onSplashComplete = (context)=>{\n logger.info('启动页初始化完成');\n // 触发初始化完成事件\n if (frameworkEventManager) {\n const initDuration = context.duration || 0;\n frameworkEventManager.emitAppInitComplete(finalInstanceId, context, initDuration);\n }\n if (options.onSplashComplete) {\n Promise.resolve(options.onSplashComplete(()=>{\n logger.info('框架加载完成');\n renderApp(context);\n }, context)).catch((error)=>{\n logger.error('onSplashComplete 回调执行失败:', error);\n initializationErrorState.setError(error);\n renderApp(context);\n });\n } else {\n logger.info('框架加载完成');\n renderApp(context);\n }\n };\n // 触发初始化开始事件\n if (frameworkEventManager) {\n frameworkEventManager.emitAppInitStart(finalInstanceId);\n }\n // 渲染启动页\n renderer.renderSplashScreen(options, resolvedServices, onSplashComplete);\n } else {\n // 场景2: 不显示启动页,直接执行初始化\n logger.info('开始执行初始化(无启动页)');\n // 触发初始化开始事件\n if (frameworkEventManager) {\n frameworkEventManager.emitAppInitStart(finalInstanceId);\n }\n try {\n const initStart = performance.now();\n // 使用中间件包装初始化函数\n const initContext = await middlewareManager.execute(options, async ()=>{\n return await initialization(options, (progress, step)=>{\n logger.debug(`初始化进度: ${progress}%${step ? ` - ${step}` : ''}`);\n });\n });\n const initDuration = performance.now() - initStart;\n // 触发初始化完成事件\n if (frameworkEventManager) {\n frameworkEventManager.emitAppInitComplete(finalInstanceId, initContext, initDuration);\n }\n if (performanceTracker) {\n performanceTracker.recordInitialization(initDuration);\n }\n logger.info('初始化完成(无启动页)', initContext);\n logger.info('框架加载完成');\n void renderApp(initContext);\n } catch (error) {\n logger.error('初始化失败:', error);\n // 触发初始化错误事件\n if (frameworkEventManager) {\n frameworkEventManager.emitAppInitError(finalInstanceId, error instanceof Error ? error : new Error(String(error)));\n }\n initializationErrorState.setError(error);\n void renderApp();\n }\n }\n return instanceManager;\n } catch (error) {\n logger.error('框架启动失败:', error);\n // 触发错误事件\n if (frameworkEventManager) {\n const errorInstanceId = instanceId || instanceManager.getInstance()?.id;\n if (errorInstanceId) {\n frameworkEventManager.emitErrorOccurred(error instanceof Error ? error : new Error(String(error)), {\n phase: 'startup'\n });\n }\n }\n if (kernelTraceId) {\n logger.error('Kernel Trace 失败上下文', {\n traceId: kernelTraceId\n });\n }\n // 如果容器存在,尝试渲染错误页面\n const container = options.container || envDetector.safeGetElement('#root');\n if (container) {\n const errorInstance = instanceManager.getInstance();\n if (errorInstance && errorInstance.isInitialized()) {\n const renderer = errorInstance.getRenderer();\n const services = errorInstance.getServices();\n initializationErrorState.setError(error);\n renderer.renderError(options, services);\n }\n }\n throw error;\n }\n}\n\n//# sourceMappingURL=startApp.js.map","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 * 支持从JSON/YAML文件加载配置\n * 优化:支持环境变量配置、配置热更新\n */ import { logger } from \"@vlian/logger\";\n/**\n * 配置文件格式\n */ export var ConfigFileFormat = /*#__PURE__*/ function(ConfigFileFormat) {\n ConfigFileFormat[\"JSON\"] = \"json\";\n ConfigFileFormat[\"YAML\"] = \"yaml\";\n return ConfigFileFormat;\n}({});\n/**\n * 配置变更通知管理器\n */ let ConfigChangeNotifier = class ConfigChangeNotifier {\n /**\n * 添加配置变更监听器\n */ addListener(listener) {\n this.listeners.add(listener);\n // 返回取消监听的函数\n return ()=>{\n this.listeners.delete(listener);\n };\n }\n /**\n * 移除配置变更监听器\n */ removeListener(listener) {\n this.listeners.delete(listener);\n }\n /**\n * 通知配置变更\n */ notify(newConfig, oldConfig) {\n this.listeners.forEach((listener)=>{\n try {\n listener(newConfig, oldConfig);\n } catch (error) {\n logger.warn('配置变更监听器执行失败:', error);\n }\n });\n }\n /**\n * 清除所有监听器\n */ clear() {\n this.listeners.clear();\n }\n constructor(){\n _define_property(this, \"listeners\", new Set());\n }\n};\n/**\n * 全局配置变更通知器实例\n */ const configChangeNotifier = new ConfigChangeNotifier();\n/**\n * 配置加载器\n */ export class ConfigLoader {\n /**\n * 从JSON文件加载配置\n * \n * @param path - 文件路径\n * @returns 配置对象\n */ static async loadFromJSON(path) {\n try {\n // 在浏览器环境中,需要通过网络请求加载\n if (typeof window !== 'undefined') {\n const response = await fetch(path);\n if (!response.ok) {\n throw new Error(`无法加载配置文件: ${path} (${response.status})`);\n }\n return await response.json();\n }\n // 在Node.js环境中,使用fs模块\n if (typeof require !== 'undefined') {\n const fs = require('fs');\n const content = fs.readFileSync(path, 'utf-8');\n return JSON.parse(content);\n }\n throw new Error('不支持的环境:无法加载配置文件');\n } catch (error) {\n logger.error(`加载JSON配置文件失败: ${path}`, error);\n throw error;\n }\n }\n /**\n * 从YAML文件加载配置\n * \n * @param path - 文件路径\n * @returns 配置对象\n */ static async loadFromYAML(path) {\n try {\n // 在浏览器环境中,需要通过网络请求加载\n if (typeof window !== 'undefined') {\n const response = await fetch(path);\n if (!response.ok) {\n throw new Error(`无法加载配置文件: ${path} (${response.status})`);\n }\n const text = await response.text();\n // 需要YAML解析库,这里假设有yaml库\n // 如果没有,可以提示用户安装\n if (typeof window.YAML !== 'undefined') {\n return window.YAML.parse(text);\n }\n // 降级:尝试作为JSON解析(如果YAML格式简单)\n try {\n return JSON.parse(text);\n } catch {\n throw new Error('需要YAML解析库,请安装 yaml 包');\n }\n }\n // 在Node.js环境中,使用fs模块和yaml库\n if (typeof require !== 'undefined') {\n const fs = require('fs');\n const yaml = require('yaml');\n const content = fs.readFileSync(path, 'utf-8');\n return yaml.parse(content);\n }\n throw new Error('不支持的环境:无法加载配置文件');\n } catch (error) {\n logger.error(`加载YAML配置文件失败: ${path}`, error);\n throw error;\n }\n }\n /**\n * 从文件加载配置\n * \n * @param options - 加载选项\n * @returns 配置对象\n */ static async loadFromFile(options) {\n const { path, format = \"json\", required = false, defaultConfig = {} } = options;\n if (!path) {\n if (required) {\n throw new Error('配置文件路径未指定');\n }\n return defaultConfig;\n }\n try {\n let config;\n switch(format){\n case \"json\":\n config = await this.loadFromJSON(path);\n break;\n case \"yaml\":\n config = await this.loadFromYAML(path);\n break;\n default:\n throw new Error(`不支持的配置文件格式: ${format}`);\n }\n logger.info(`成功加载配置文件: ${path}`);\n return config;\n } catch (error) {\n if (required) {\n throw error;\n }\n logger.warn(`配置文件加载失败,使用默认配置: ${path}`, error);\n return defaultConfig;\n }\n }\n /**\n * 合并配置(深度合并)\n * \n * @param base - 基础配置\n * @param override - 覆盖配置\n * @returns 合并后的配置\n */ static mergeConfig(base, override) {\n const merged = {\n ...base\n };\n for(const key in override){\n if (!Object.prototype.hasOwnProperty.call(override, key)) {\n continue;\n }\n const baseValue = merged[key];\n const overrideValue = override[key];\n if (baseValue && overrideValue && typeof baseValue === 'object' && typeof overrideValue === 'object' && !Array.isArray(baseValue) && !Array.isArray(overrideValue)) {\n // 深度合并对象\n merged[key] = this.mergeConfig(baseValue, overrideValue);\n } else {\n // 直接覆盖\n merged[key] = overrideValue;\n }\n }\n return merged;\n }\n /**\n * 从多个源加载并合并配置\n * \n * @param sources - 配置源列表(按优先级从低到高)\n * @returns 合并后的配置\n */ static async loadFromMultipleSources(sources) {\n let merged = {};\n for (const source of sources){\n if ('path' in source && 'format' in source) {\n // 配置文件\n const fileConfig = await this.loadFromFile(source);\n merged = this.mergeConfig(merged, fileConfig);\n } else if (!('path' in source) && !('format' in source)) {\n // 配置对象\n merged = this.mergeConfig(merged, source);\n }\n }\n return merged;\n }\n /**\n * 从环境变量加载配置\n * \n * 支持以下环境变量格式:\n * - FRAMEWORK_LOGGER_LEVEL=DEBUG\n * - FRAMEWORK_SHOW_SPLASH_SCREEN=always\n * - FRAMEWORK_MIN_SPLASH_SCREEN_TIME=1000\n * \n * @param prefix - 环境变量前缀,默认为 'FRAMEWORK_'\n * @returns 配置对象\n */ static loadFromEnv(prefix = 'FRAMEWORK_') {\n const config = {};\n if (typeof process === 'undefined' || !process.env) {\n return config;\n }\n // 遍历所有环境变量\n for (const [key, value] of Object.entries(process.env)){\n if (!key.startsWith(prefix)) {\n continue;\n }\n // 移除前缀并转换为驼峰命名\n const configKey = key.slice(prefix.length).toLowerCase().split('_').map((part, index)=>index === 0 ? part : part.charAt(0).toUpperCase() + part.slice(1)).join('');\n // 尝试解析值\n let parsedValue = value;\n if (value === 'true' || value === 'false') {\n parsedValue = value === 'true';\n } else if (!isNaN(Number(value))) {\n parsedValue = Number(value);\n } else if (value?.startsWith('{') || value?.startsWith('[')) {\n try {\n parsedValue = JSON.parse(value);\n } catch {\n // 解析失败,使用原始值\n }\n }\n // 设置配置值\n config[configKey] = parsedValue;\n }\n logger.debug('从环境变量加载配置:', config);\n return config;\n }\n /**\n * 从多个源加载配置(包括环境变量)\n * \n * 优化:明确优先级,从低到高:\n * 1. 默认配置\n * 2. 配置文件\n * 3. 环境变量\n * 4. 代码配置(通过 sources 参数传入)\n * \n * @param sources - 配置源列表(代码配置,优先级最高)\n * @param defaultConfig - 默认配置(优先级最低)\n * @param includeEnv - 是否包含环境变量,默认为 true\n * @param envPrefix - 环境变量前缀,默认为 'FRAMEWORK_'\n * @returns 合并后的配置\n */ static async loadFromAllSources(sources = [], defaultConfig = {}, includeEnv = true, envPrefix = 'FRAMEWORK_') {\n // 保存旧配置用于变更通知\n const oldConfig = {\n ...defaultConfig\n };\n // 1. 从默认配置开始\n let merged = {\n ...defaultConfig\n };\n // 2. 加载配置文件(优先级高于默认配置)\n const fileConfigs = await this.loadFromMultipleSources(sources.filter((source)=>typeof source === 'object' && 'path' in source));\n merged = this.mergeConfig(merged, fileConfigs);\n // 3. 加载环境变量(优先级高于配置文件)\n if (includeEnv) {\n const envConfig = this.loadFromEnv(envPrefix);\n merged = this.mergeConfig(merged, envConfig);\n }\n // 4. 合并代码配置(优先级最高)\n const codeConfigs = sources.filter((source)=>typeof source === 'object' && !('path' in source));\n for (const codeConfig of codeConfigs){\n merged = this.mergeConfig(merged, codeConfig);\n }\n // 通知配置变更\n configChangeNotifier.notify(merged, oldConfig);\n return merged;\n }\n /**\n * 添加配置变更监听器\n * \n * @param listener - 配置变更监听器\n * @returns 取消监听的函数\n */ static onConfigChange(listener) {\n return configChangeNotifier.addListener(listener);\n }\n /**\n * 移除配置变更监听器\n */ static removeConfigChangeListener(listener) {\n configChangeNotifier.removeListener(listener);\n }\n}\n\n//# sourceMappingURL=ConfigLoader.js.map","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 * 路由导航 API\n * 提供框架级别的路由导航能力,封装 react-router-dom 的导航功能\n */ import { logger } from \"@vlian/logger\";\nimport { getRouterLifecycleManager } from \"../lifecycle\";\nimport { getRouterMiddlewareManager } from \"../middleware\";\n/**\n * 路由导航器\n */ export class RouterNavigation {\n static buildTargetPath(to, query) {\n const base = typeof window !== 'undefined' && window.location?.origin ? window.location.origin : 'http://localhost';\n const url = new URL(to, base);\n if (query && Object.keys(query).length > 0) {\n const params = new URLSearchParams(url.search);\n Object.entries(query).forEach(([key, value])=>{\n if (value === undefined || value === null) {\n params.delete(key);\n return;\n }\n params.set(key, String(value));\n });\n url.search = params.toString();\n }\n return `${url.pathname}${url.search}${url.hash}`;\n }\n static async navigateInternal(to, options, depth, visited) {\n const startTime = performance.now();\n if (depth > this.MAX_REDIRECTS) {\n throw new Error(`路由重定向次数超过上限(${this.MAX_REDIRECTS}),可能存在循环重定向`);\n }\n const targetPath = this.buildTargetPath(to, options?.query);\n if (visited.has(targetPath)) {\n throw new Error(`检测到循环重定向: ${targetPath}`);\n }\n visited.add(targetPath);\n const routerManager = await import(\"../RouterManager\").then((m)=>m.getRouterManager());\n const router = routerManager.getRouter();\n if (!router) {\n throw new Error('路由未初始化,无法导航');\n }\n // 获取当前路由信息\n const currentLocation = this.getCurrentRoute();\n // 构建目标路由位置\n const targetLocation = {\n path: targetPath,\n query: options?.query\n };\n // 执行生命周期钩子\n const lifecycleManager = getRouterLifecycleManager();\n const beforeEachResult = await lifecycleManager.beforeEach(targetLocation, currentLocation);\n let finalPath = targetPath;\n // 如果 beforeEach 返回 false,阻止导航\n if (beforeEachResult === false) {\n logger.debug('路由导航被阻止: beforeEach 返回 false');\n return;\n }\n // 如果 beforeEach 返回字符串,重定向到该路径\n if (typeof beforeEachResult === 'string') {\n logger.debug(`路由导航重定向: ${beforeEachResult}`);\n finalPath = this.buildTargetPath(beforeEachResult);\n }\n // 执行中间件\n const middlewareManager = getRouterMiddlewareManager();\n const middlewareContext = {\n to: {\n ...targetLocation,\n path: finalPath\n },\n from: currentLocation,\n options\n };\n const middlewareResult = await middlewareManager.execute(middlewareContext);\n // 如果中间件阻止导航\n if (!middlewareResult.allow) {\n if (middlewareResult.redirect) {\n logger.debug(`路由导航被中间件重定向: ${middlewareResult.redirect}`);\n return this.navigateInternal(middlewareResult.redirect, {\n ...options,\n query: undefined\n }, depth + 1, visited);\n }\n logger.debug(`路由导航被中间件阻止: ${middlewareResult.reason || '未知原因'}`);\n return;\n }\n // 执行导航\n try {\n if (options?.replace) {\n router.navigate(finalPath, {\n replace: true,\n state: options.state\n });\n } else {\n router.navigate(finalPath, {\n state: options?.state\n });\n }\n // 执行 afterEach 钩子\n await lifecycleManager.afterEach({\n ...targetLocation,\n path: finalPath\n }, currentLocation);\n const duration = performance.now() - startTime;\n routerManager.getMonitoring().trackRoutePerformance(finalPath, {\n totalTime: duration\n });\n } catch (error) {\n logger.error('路由导航失败', error);\n throw error;\n }\n }\n /**\n * 导航到指定路径\n * \n * @param to - 目标路径或路由名称\n * @param options - 导航选项\n */ static async navigate(to, options) {\n return this.navigateInternal(to, options, 0, new Set());\n }\n /**\n * 获取当前路由信息\n * \n * @returns 当前路由位置信息\n */ static getCurrentRoute() {\n if (typeof window === 'undefined') {\n return {\n path: '/',\n query: {}\n };\n }\n // 从 window.location 获取当前路由信息\n const pathname = window.location.pathname;\n const search = window.location.search;\n const hash = window.location.hash;\n // 解析查询参数\n const query = {};\n if (search) {\n const params = new URLSearchParams(search);\n params.forEach((value, key)=>{\n query[key] = value;\n });\n }\n return {\n path: pathname + hash,\n query\n };\n }\n /**\n * 返回上一页\n * \n * @param fallback - 如果没有历史记录,跳转到该路径\n */ static async goBack(fallback) {\n if (window.history.length > 1) {\n window.history.back();\n } else if (fallback) {\n await this.navigate(fallback);\n } else {\n logger.warn('没有历史记录,无法返回');\n }\n }\n /**\n * 前进到下一页\n */ static goForward() {\n window.history.forward();\n }\n /**\n * 替换当前路由\n * \n * @param to - 目标路径\n * @param options - 导航选项\n */ static async replace(to, options) {\n return this.navigate(to, {\n ...options,\n replace: true\n });\n }\n}\n_define_property(RouterNavigation, \"MAX_REDIRECTS\", 10);\n\n//# sourceMappingURL=RouterNavigation.js.map","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 */ import { logger } from \"@vlian/logger\";\nimport { getRouterManager } from \"../RouterManager\";\nimport { transformRoutes } from \"../utils/transform\";\nimport { RouterError, RouterErrorCode } from \"../errors\";\n/**\n * 动态路由注册管理器\n */ export class DynamicRouteManager {\n /**\n * 注册路由\n * \n * @param routes - 要注册的路由配置\n * @param namespace - 路由命名空间(可选,用于分组管理)\n * @returns 取消注册函数\n */ async register(routes, namespace) {\n const ns = namespace || 'default';\n // 验证路由配置\n if (!Array.isArray(routes) || routes.length === 0) {\n throw new RouterError('路由配置必须是非空数组', RouterErrorCode.ROUTER_CONFIG_ERROR);\n }\n // 检查路由名称是否冲突\n const existingRoutes = this.registeredRoutes.get(ns) || [];\n const existingNames = new Set(existingRoutes.map((r)=>r.name));\n const newNames = routes.map((r)=>r.name);\n const conflicts = newNames.filter((name)=>existingNames.has(name));\n if (conflicts.length > 0) {\n throw new RouterError(`路由名称冲突: ${conflicts.join(', ')}`, RouterErrorCode.ROUTER_CONFIG_ERROR, undefined, undefined, {\n conflicts,\n namespace: ns\n });\n }\n // 添加到注册表\n const currentRoutes = this.registeredRoutes.get(ns) || [];\n this.registeredRoutes.set(ns, [\n ...currentRoutes,\n ...routes\n ]);\n // 更新版本号\n this.routeVersion++;\n logger.info(`路由已注册: ${routes.length} 个路由到命名空间 \"${ns}\"`);\n // 返回取消注册函数\n return async ()=>{\n await this.unregister(routes.map((r)=>r.name), ns);\n };\n }\n /**\n * 取消注册路由\n * \n * @param routeNames - 要取消注册的路由名称数组\n * @param namespace - 路由命名空间(可选)\n */ async unregister(routeNames, namespace) {\n const ns = namespace || 'default';\n const routes = this.registeredRoutes.get(ns) || [];\n // 过滤掉要取消注册的路由\n const filteredRoutes = routes.filter((r)=>!routeNames.includes(r.name));\n if (filteredRoutes.length === routes.length) {\n logger.warn(`未找到要取消注册的路由: ${routeNames.join(', ')}`);\n return;\n }\n // 更新注册表\n if (filteredRoutes.length === 0) {\n this.registeredRoutes.delete(ns);\n } else {\n this.registeredRoutes.set(ns, filteredRoutes);\n }\n // 更新版本号\n this.routeVersion++;\n logger.info(`路由已取消注册: ${routeNames.length} 个路由从命名空间 \"${ns}\"`);\n }\n /**\n * 获取指定命名空间的路由\n * \n * @param namespace - 路由命名空间(可选)\n * @returns 路由配置数组\n */ getRoutes(namespace) {\n const ns = namespace || 'default';\n return [\n ...this.registeredRoutes.get(ns) || []\n ];\n }\n /**\n * 获取所有路由\n * \n * @returns 所有命名空间的路由配置\n */ getAllRoutes() {\n return new Map(this.registeredRoutes);\n }\n /**\n * 清空指定命名空间的路由\n * \n * @param namespace - 路由命名空间(可选)\n */ clear(namespace) {\n const ns = namespace || 'default';\n this.registeredRoutes.delete(ns);\n this.routeVersion++;\n logger.info(`路由命名空间已清空: \"${ns}\"`);\n }\n /**\n * 清空所有路由\n */ clearAll() {\n this.registeredRoutes.clear();\n this.routeVersion++;\n logger.info('所有路由已清空');\n }\n /**\n * 获取路由版本号\n * \n * @returns 路由版本号\n */ getVersion() {\n return this.routeVersion;\n }\n /**\n * 检查路由是否已注册\n * \n * @param routeName - 路由名称\n * @param namespace - 路由命名空间(可选)\n * @returns 如果已注册返回 true,否则返回 false\n */ isRegistered(routeName, namespace) {\n const ns = namespace || 'default';\n const routes = this.registeredRoutes.get(ns) || [];\n return routes.some((r)=>r.name === routeName);\n }\n /**\n * 重新加载路由\n * \n * 注意:此方法会重新初始化路由管理器,需要谨慎使用\n */ async reload() {\n const routerManager = getRouterManager();\n if (!routerManager.isInitialized()) {\n throw new RouterError('路由管理器未初始化', RouterErrorCode.ROUTER_NOT_INITIALIZED);\n }\n // 获取所有路由\n const allRoutes = [];\n this.registeredRoutes.forEach((routes)=>{\n allRoutes.push(...routes);\n });\n if (allRoutes.length === 0) {\n logger.warn('没有已注册的路由,无法重新加载');\n return;\n }\n // 转换路由\n await transformRoutes(allRoutes);\n // const reactRoutes = await transformRoutesToReactRoutes(result.routes, result);\n // 重新创建路由实例\n // 注意:这里需要获取原始配置的模式和选项\n // 由于当前架构限制,这里只是示例实现\n logger.info('路由重新加载完成');\n }\n constructor(){\n _define_property(this, \"registeredRoutes\", new Map());\n _define_property(this, \"routeVersion\", 0);\n }\n}\n/**\n * 获取动态路由管理器单例\n */ let dynamicRouteManagerInstance = null;\nexport function getDynamicRouteManager() {\n if (!dynamicRouteManagerInstance) {\n dynamicRouteManagerInstance = new DynamicRouteManager();\n }\n return dynamicRouteManagerInstance;\n}\n\n//# sourceMappingURL=DynamicRouteManager.js.map","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 */ import { logger } from \"@vlian/logger\";\nimport { RouterError, RouterErrorCode } from \"../errors\";\n/**\n * 路由版本管理器\n */ export class RouteVersionManager {\n /**\n * 注册路由版本\n * \n * @param version - 版本信息\n */ registerVersion(version) {\n // 验证版本号格式(简单的语义化版本检查)\n if (!/^\\d+\\.\\d+\\.\\d+/.test(version.version)) {\n throw new Error(`无效的版本号格式: ${version.version}`);\n }\n this.versions.set(version.version, {\n ...version,\n createdAt: version.createdAt || Date.now()\n });\n logger.debug(`路由版本已注册: ${version.version}`);\n }\n /**\n * 注册版本迁移函数\n * \n * @param fromVersion - 源版本\n * @param toVersion - 目标版本\n * @param migration - 迁移函数\n */ registerMigration(fromVersion, toVersion, migration) {\n const key = `${fromVersion}->${toVersion}`;\n this.migrations.set(key, migration);\n logger.debug(`路由版本迁移已注册: ${key}`);\n }\n /**\n * 检查版本兼容性\n * \n * @param version - 要检查的版本\n * @returns 是否兼容\n */ checkCompatibility(version) {\n const versionInfo = this.versions.get(version);\n if (!versionInfo) {\n return false;\n }\n // 如果明确标记为不兼容,返回 false\n if (versionInfo.compatible === false) {\n return false;\n }\n // 简单的版本兼容性检查(主版本号相同)\n const currentMajor = parseInt(this.config.currentVersion.split('.')[0]);\n const targetMajor = parseInt(version.split('.')[0]);\n return currentMajor === targetMajor;\n }\n /**\n * 迁移路由配置\n * \n * @param fromVersion - 源版本\n * @param toVersion - 目标版本\n * @param routes - 路由配置\n * @returns 迁移后的路由配置\n */ async migrate(fromVersion, toVersion, routes) {\n if (fromVersion === toVersion) {\n return routes;\n }\n const migrationKey = `${fromVersion}->${toVersion}`;\n const migration = this.migrations.get(migrationKey);\n if (!migration) {\n // 如果没有直接迁移,尝试逐步迁移\n return this.migrateStepwise(fromVersion, toVersion, routes);\n }\n try {\n const migratedRoutes = await migration(fromVersion, toVersion, routes);\n logger.info(`路由版本迁移完成: ${fromVersion} -> ${toVersion}`);\n return migratedRoutes;\n } catch (error) {\n logger.error(`路由版本迁移失败: ${fromVersion} -> ${toVersion}`, error);\n const errorContext = {\n fromVersion,\n toVersion\n };\n if (error instanceof Error) {\n errorContext.originalError = error;\n }\n throw new RouterError(`路由版本迁移失败: ${fromVersion} -> ${toVersion}`, RouterErrorCode.ROUTE_TRANSFORM_FAILED, undefined, error instanceof Error ? error : undefined, errorContext);\n }\n }\n /**\n * 逐步迁移(通过中间版本)\n */ async migrateStepwise(fromVersion, toVersion, routes) {\n // 获取所有版本并按版本号排序\n const allVersions = Array.from(this.versions.keys()).sort((a, b)=>{\n const aParts = a.split('.').map(Number);\n const bParts = b.split('.').map(Number);\n for(let i = 0; i < 3; i++){\n if (aParts[i] !== bParts[i]) {\n return aParts[i] - bParts[i];\n }\n }\n return 0;\n });\n // 找到从 fromVersion 到 toVersion 的路径\n const fromIndex = allVersions.indexOf(fromVersion);\n const toIndex = allVersions.indexOf(toVersion);\n if (fromIndex === -1 || toIndex === -1) {\n throw new Error(`无法找到版本迁移路径: ${fromVersion} -> ${toVersion}`);\n }\n let currentRoutes = routes;\n const step = fromIndex < toIndex ? 1 : -1;\n for(let i = fromIndex; i !== toIndex; i += step){\n const currentVersion = allVersions[i];\n const nextVersion = allVersions[i + step];\n const migrationKey = `${currentVersion}->${nextVersion}`;\n const migration = this.migrations.get(migrationKey);\n if (migration) {\n currentRoutes = await migration(currentVersion, nextVersion, currentRoutes);\n } else {\n // 如果没有迁移函数,直接使用当前路由(可能不兼容)\n logger.warn(`缺少迁移函数: ${migrationKey},跳过迁移`);\n }\n }\n return currentRoutes;\n }\n /**\n * 获取版本信息\n * \n * @param version - 版本号\n * @returns 版本信息,如果不存在返回 undefined\n */ getVersion(version) {\n return this.versions.get(version);\n }\n /**\n * 获取所有版本\n * \n * @returns 版本信息数组\n */ getAllVersions() {\n return Array.from(this.versions.values());\n }\n /**\n * 获取当前版本\n * \n * @returns 当前版本信息\n */ getCurrentVersion() {\n return this.versions.get(this.config.currentVersion);\n }\n /**\n * 回滚到指定版本\n * \n * @param version - 目标版本\n * @param routes - 当前路由配置\n * @returns 回滚后的路由配置\n */ async rollback(version, routes) {\n return this.migrate(this.config.currentVersion, version, routes);\n }\n constructor(config){\n _define_property(this, \"versions\", new Map());\n _define_property(this, \"migrations\", new Map());\n _define_property(this, \"config\", void 0);\n this.config = {\n enableVersionCheck: config.enableVersionCheck ?? true,\n enableAutoMigration: config.enableAutoMigration ?? false,\n currentVersion: config.currentVersion\n };\n }\n}\n/**\n * 获取路由版本管理器单例\n */ let versionManagerInstance = null;\nexport function getRouteVersionManager(config) {\n if (!versionManagerInstance && config) {\n versionManagerInstance = new RouteVersionManager(config);\n }\n if (!versionManagerInstance) {\n throw new Error('路由版本管理器未初始化,请先提供配置');\n }\n return versionManagerInstance;\n}\n\n//# sourceMappingURL=RouteVersionManager.js.map","/**\n * React Hooks 支持\n * 提供便捷的 React 组件事件订阅能力\n */ import { useEffect, useRef, useCallback } from \"react\";\n/**\n * 使用事件总线的 Hook\n * \n * @param eventBus - 事件总线实例\n * @param event - 事件名称\n * @param listener - 事件监听器\n * @param options - 监听器选项\n * \n * @example\n * ```tsx\n * import { useAppEventBus } from '@vlian/framework';\n * \n * function MyComponent() {\n * useAppEvent('user:login', (data, metadata) => {\n * console.log('用户登录:', data);\n * });\n * \n * return <div>My Component</div>;\n * }\n * ```\n */ export function useAppEvent(eventBus, event, listener, options) {\n // 使用 ref 保存最新的 listener,避免重复订阅\n const listenerRef = useRef(listener);\n listenerRef.current = listener;\n // 使用 ref 保存 options\n const optionsRef = useRef(options);\n optionsRef.current = options;\n useEffect(()=>{\n // 创建包装的监听器,使用最新的 listener\n const wrappedListener = (data, metadata)=>{\n return listenerRef.current(data, metadata);\n };\n // 订阅事件\n const unsubscribe = eventBus.on(event, wrappedListener, optionsRef.current);\n // 清理函数:取消订阅\n return unsubscribe;\n }, [\n eventBus,\n event\n ]); // 只在 eventBus 或 event 变化时重新订阅\n}\n/**\n * 一次性事件订阅 Hook\n * \n * @param eventBus - 事件总线实例\n * @param event - 事件名称\n * @param listener - 事件监听器\n * @param options - 监听器选项\n */ export function useAppEventOnce(eventBus, event, listener, options) {\n const listenerRef = useRef(listener);\n listenerRef.current = listener;\n const optionsRef = useRef(options);\n optionsRef.current = options;\n useEffect(()=>{\n const wrappedListener = (data, metadata)=>{\n return listenerRef.current(data, metadata);\n };\n const unsubscribe = eventBus.once(event, wrappedListener, optionsRef.current);\n return unsubscribe;\n }, [\n eventBus,\n event\n ]);\n}\n/**\n * 创建事件发射器 Hook\n * \n * @param eventBus - 事件总线实例\n * @returns 事件发射函数\n * \n * @example\n * ```tsx\n * function MyComponent() {\n * const emit = useAppEventEmitter(eventBus);\n * \n * const handleClick = () => {\n * emit('button:click', { buttonId: 'submit' });\n * };\n * \n * return <button onClick={handleClick}>Click</button>;\n * }\n * ```\n */ export function useAppEventEmitter(eventBus) {\n return useCallback((event, data, metadata)=>{\n return eventBus.emit(event, data, metadata);\n }, [\n eventBus\n ]);\n}\n\n//# sourceMappingURL=hooks.js.map","/**\n * 便捷的 Hook:获取当前应用实例的事件总线\n */ import { getAppInstanceManager } from \"../startup/AppInstance\";\n/**\n * 获取当前应用实例的事件总线\n * \n * @returns 事件总线实例\n * \n * @example\n * ```tsx\n * import { useEventBus } from '@vlian/framework';\n * \n * function MyComponent() {\n * const eventBus = useEventBus();\n * \n * useEffect(() => {\n * const unsubscribe = eventBus.on('user:login', (data) => {\n * console.log('用户登录:', data);\n * });\n * return unsubscribe;\n * }, [eventBus]);\n * \n * return <div>My Component</div>;\n * }\n * ```\n */ export function useEventBus() {\n const instanceManager = getAppInstanceManager();\n const instance = instanceManager.getInstance();\n if (!instance) {\n throw new Error('应用实例未找到');\n }\n const eventBus = instance.getEventBus();\n if (!eventBus) {\n throw new Error('事件总线未初始化');\n }\n return eventBus;\n}\n\n//# sourceMappingURL=useEventBus.js.map","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\n/**\n * 开发工具模块(无 UI 框架依赖)\n */ import { useState, useEffect } from \"react\";\nimport { useStateManager } from \"../app\";\nfunction toPrettyJson(value) {\n try {\n return JSON.stringify(value, null, 2);\n } catch {\n return String(value);\n }\n}\nexport function DevTools({ appInstance, visible, onClose }) {\n const [performanceMetrics, setPerformanceMetrics] = useState({});\n const stateManager = useStateManager();\n useEffect(()=>{\n if (!visible) {\n return;\n }\n const tracker = appInstance.getPerformanceTracker();\n if (!tracker) {\n return;\n }\n const metrics = tracker.getMetrics();\n setPerformanceMetrics({\n serviceInitDuration: metrics.serviceInitDuration || 0,\n initializationDuration: metrics.initializationDuration || 0,\n firstRenderDuration: metrics.firstRenderDuration || 0,\n totalStartupDuration: metrics.totalStartupDuration || 0,\n fcp: metrics.fcp || 0,\n lcp: metrics.lcp || 0,\n fid: metrics.fid || 0,\n cls: metrics.cls || 0\n });\n }, [\n visible,\n appInstance\n ]);\n if (!visible) {\n return null;\n }\n const options = appInstance.getOptions();\n const allStates = stateManager?.getAllStates?.() || [];\n return /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n position: 'fixed',\n top: 0,\n right: 0,\n width: 'min(680px, 95vw)',\n height: '100vh',\n zIndex: 9999,\n background: '#fff',\n borderLeft: '1px solid #d9e2ec',\n padding: 16,\n overflowY: 'auto',\n boxShadow: '-8px 0 20px rgba(0, 0, 0, 0.08)'\n },\n children: [\n /*#__PURE__*/ _jsxs(\"div\", {\n style: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n children: [\n /*#__PURE__*/ _jsx(\"h3\", {\n style: {\n margin: 0\n },\n children: \"DevTools\"\n }),\n /*#__PURE__*/ _jsx(\"button\", {\n onClick: onClose,\n style: {\n border: 'none',\n background: 'transparent',\n cursor: 'pointer'\n },\n children: \"关闭\"\n })\n ]\n }),\n /*#__PURE__*/ _jsxs(\"section\", {\n style: {\n marginTop: 12\n },\n children: [\n /*#__PURE__*/ _jsx(\"h4\", {\n children: \"实例\"\n }),\n /*#__PURE__*/ _jsxs(\"div\", {\n children: [\n \"id: \",\n appInstance.id\n ]\n }),\n /*#__PURE__*/ _jsxs(\"div\", {\n children: [\n \"initialized: \",\n String(appInstance.isInitialized())\n ]\n })\n ]\n }),\n /*#__PURE__*/ _jsxs(\"section\", {\n style: {\n marginTop: 12\n },\n children: [\n /*#__PURE__*/ _jsx(\"h4\", {\n children: \"性能\"\n }),\n /*#__PURE__*/ _jsx(\"pre\", {\n style: {\n background: '#f7fafc',\n padding: 10,\n borderRadius: 8\n },\n children: toPrettyJson(performanceMetrics)\n })\n ]\n }),\n /*#__PURE__*/ _jsxs(\"section\", {\n style: {\n marginTop: 12\n },\n children: [\n /*#__PURE__*/ _jsx(\"h4\", {\n children: \"状态管理\"\n }),\n /*#__PURE__*/ _jsxs(\"div\", {\n children: [\n \"stateCount: \",\n allStates.length\n ]\n }),\n /*#__PURE__*/ _jsx(\"pre\", {\n style: {\n background: '#f7fafc',\n padding: 10,\n borderRadius: 8\n },\n children: toPrettyJson(allStates.slice(0, 10))\n })\n ]\n }),\n /*#__PURE__*/ _jsxs(\"section\", {\n style: {\n marginTop: 12\n },\n children: [\n /*#__PURE__*/ _jsx(\"h4\", {\n children: \"配置\"\n }),\n /*#__PURE__*/ _jsx(\"pre\", {\n style: {\n background: '#f7fafc',\n padding: 10,\n borderRadius: 8,\n whiteSpace: 'pre-wrap'\n },\n children: toPrettyJson(options)\n })\n ]\n })\n ]\n });\n}\nfunction resolvePosition(position) {\n const style = {\n position: 'fixed',\n zIndex: 9998\n };\n const pos = position || 'bottom-right';\n if (pos.includes('bottom')) style.bottom = 16;\n if (pos.includes('top')) style.top = 16;\n if (pos.includes('right')) style.right = 16;\n if (pos.includes('left')) style.left = 16;\n return style;\n}\nexport function DevToolsTrigger({ appInstance, position = 'bottom-right' }) {\n const [visible, setVisible] = useState(false);\n if (process.env.NODE_ENV !== 'development') {\n return null;\n }\n return /*#__PURE__*/ _jsxs(_Fragment, {\n children: [\n /*#__PURE__*/ _jsx(\"button\", {\n onClick: ()=>setVisible(true),\n style: {\n ...resolvePosition(position),\n border: 'none',\n background: '#2f80ed',\n color: '#fff',\n borderRadius: 999,\n padding: '8px 14px',\n cursor: 'pointer'\n },\n children: \"DevTools\"\n }),\n /*#__PURE__*/ _jsx(DevTools, {\n appInstance: appInstance,\n visible: visible,\n onClose: ()=>setVisible(false)\n })\n ]\n });\n}\n\n//# sourceMappingURL=DevTools.js.map","import { storage } from \"../library\";\nimport { startApp } from \"./startup/startApp\";\nimport { getAppInstanceManager } from \"./startup/AppInstance\";\n/**\n * 启动框架\n * \n * @param options - 启动配置选项\n * @returns Promise<void>\n * \n * @example\n * ```typescript\n * import { start } from '@vlian/framework';\n * \n * start({\n * loggerLevel: LogLevel.DEBUG,\n * lifecycle: {\n * beforeInitialization: async () => {\n * console.log('初始化前执行');\n * },\n * },\n * });\n * ```\n */ /**\n * 启动框架(向后兼容的API)\n * \n * @param options - 启动配置选项\n * @returns Promise<void>\n * \n * @deprecated 建议使用 startApp 函数,支持多实例\n */ const start = async (options = {})=>{\n // 使用新的启动函数,保持向后兼容\n await startApp(options);\n};\n// 导出新的启动函数\nexport { startApp } from \"./startup/startApp\";\nexport { getAppInstanceManager } from \"./startup/AppInstance\";\n// 导出向后兼容的start函数\nexport { start, storage };\n// 导出getStateManager(向后兼容)\nexport const getStateManager = ()=>{\n const instanceManager = getAppInstanceManager();\n const instance = instanceManager.getInstance();\n if (instance) {\n return instance.getServices().stateManager;\n }\n return null;\n};\n// 导出应用上下文相关功能\nexport { AppContextProvider, useAppContext, useTheme, useLocale, useConfig, useStateManager } from \"./app\";\n// 导出错误边界\nexport { ErrorBoundary, withErrorBoundary, useErrorHandler } from \"./error\";\n// 导出应用配置单例\nexport { appConfig } from \"./config/AppConfig\";\n// 导出中间件\nexport { MiddlewareManager, middlewareManager } from \"./middleware\";\n// 导出插件\nexport { PluginManager, pluginManager } from \"./plugin\";\n// 导出启动相关模块\nexport * from \"./startup\";\nexport * from \"./config\";\nexport * from \"./kernel\";\n// 导出路由相关模块\nexport * from \"./router\";\n// 导出事件系统\nexport * from \"./event\";\n// 导出开发工具\nexport { DevTools, DevToolsTrigger } from \"./dev/DevTools\";\n\n//# sourceMappingURL=index.js.map","import { SecurityError } from \"./errors\";\nimport { SecurityUtils } from \"./security\";\nimport { Validator } from \"./validation\";\n/**\n * 配置安全工具类\n */ export class ConfigSecurity {\n /**\n * 验证配置签名\n */ static async verifySignature(config, signature, options) {\n if (!options.enabled) {\n return true;\n }\n if (!options.publicKey) {\n throw new SecurityError('签名验证需要提供公钥');\n }\n if (!signature || signature.length === 0) {\n throw new SecurityError('签名不能为空');\n }\n try {\n // 使用 Web Crypto API 验证签名\n if (typeof window === 'undefined' || !window.crypto || !window.crypto.subtle) {\n throw new SecurityError('签名验证需要浏览器支持 Web Crypto API');\n }\n // 将配置转换为字符串(用于签名验证)\n // 使用稳定的 JSON 序列化(按键排序)\n const configString = JSON.stringify(config, Object.keys(config).sort());\n const encoder = new TextEncoder();\n const data = encoder.encode(configString);\n // 将签名从 Base64 解码\n const signatureBuffer = Uint8Array.from(atob(signature), (c)=>c.charCodeAt(0));\n // 导入公钥(支持 PEM 格式)\n const algorithm = options.algorithm || 'RSASSA-PKCS1-v1_5';\n let publicKey;\n try {\n // 尝试导入 PEM 格式的公钥\n const pemHeader = '-----BEGIN PUBLIC KEY-----';\n const pemFooter = '-----END PUBLIC KEY-----';\n let pemKey = options.publicKey;\n if (!pemKey.includes(pemHeader)) {\n pemKey = `${pemHeader}\\n${pemKey}\\n${pemFooter}`;\n }\n // 将 PEM 转换为 ArrayBuffer\n const pemContents = pemKey.replace(pemHeader, '').replace(pemFooter, '').replace(/\\s/g, '');\n const binaryDer = Uint8Array.from(atob(pemContents), (c)=>c.charCodeAt(0));\n publicKey = await window.crypto.subtle.importKey('spki', binaryDer.buffer, {\n name: algorithm,\n hash: 'SHA-256'\n }, false, [\n 'verify'\n ]);\n } catch (importError) {\n throw new SecurityError('公钥导入失败', importError instanceof Error ? importError : undefined);\n }\n // 验证签名\n const isValid = await window.crypto.subtle.verify({\n name: algorithm\n }, publicKey, signatureBuffer, data);\n return isValid;\n } catch (error) {\n if (error instanceof SecurityError) {\n throw error;\n }\n throw new SecurityError('签名验证失败', error instanceof Error ? error : undefined);\n }\n }\n /**\n * 验证配置来源\n */ static verifyOrigin(options) {\n if (!options.allowedOrigins || options.allowedOrigins.length === 0) {\n return true; // 如果没有配置白名单,允许所有来源\n }\n if (typeof window === 'undefined') {\n return true; // 非浏览器环境,跳过验证\n }\n const currentOrigin = window.location.origin;\n const referer = document.referrer;\n // 验证当前来源\n if (options.allowedOrigins.includes(currentOrigin)) {\n return true;\n }\n // 验证 Referer\n if (options.verifyReferer && referer) {\n try {\n const refererOrigin = new URL(referer).origin;\n if (options.allowedOrigins.includes(refererOrigin)) {\n return true;\n }\n } catch {\n // Referer 解析失败\n }\n }\n return false;\n }\n /**\n * 验证配置白名单\n */ static verifyWhitelist(config, options) {\n const errors = [];\n // 检查允许的键\n if (options.allowedKeys && options.allowedKeys.length > 0) {\n const configKeys = Object.keys(config);\n const invalidKeys = configKeys.filter((key)=>!options.allowedKeys.includes(key));\n if (invalidKeys.length > 0) {\n errors.push(`配置包含不允许的键: ${invalidKeys.join(', ')}`);\n }\n }\n // 检查禁止的键\n if (options.forbiddenKeys && options.forbiddenKeys.length > 0) {\n const configKeys = Object.keys(config);\n const forbiddenFound = configKeys.filter((key)=>options.forbiddenKeys.includes(key));\n if (forbiddenFound.length > 0) {\n errors.push(`配置包含禁止的键: ${forbiddenFound.join(', ')}`);\n }\n }\n // 验证配置值\n if (options.valueSchema) {\n const result = Validator.validateObject(options.valueSchema, config);\n if (!result.valid) {\n errors.push(...result.errors);\n }\n }\n return {\n valid: errors.length === 0,\n errors\n };\n }\n /**\n * 清理配置中的危险内容\n */ static sanitizeConfig(config) {\n const sanitized = {};\n for (const [key, value] of Object.entries(config)){\n if (typeof value === 'string') {\n // 检查是否包含危险内容\n const validation = SecurityUtils.validateInput(value);\n if (validation.safe && validation.sanitized) {\n sanitized[key] = validation.sanitized;\n } else {\n // 包含危险内容,跳过或记录警告\n console.warn(`配置项 ${key} 包含潜在危险内容,已跳过`);\n }\n } else if (value && typeof value === 'object' && !Array.isArray(value)) {\n // 递归清理对象\n sanitized[key] = this.sanitizeConfig(value);\n } else {\n sanitized[key] = value;\n }\n }\n return sanitized;\n }\n /**\n * 验证配置安全性\n */ static async validateConfigSecurity(config, options) {\n const errors = [];\n // 验证来源\n if (options.origin) {\n const originValid = this.verifyOrigin(options.origin);\n if (!originValid) {\n errors.push('配置来源验证失败');\n }\n }\n // 验证白名单\n if (options.whitelist) {\n const whitelistResult = this.verifyWhitelist(config, options.whitelist);\n if (!whitelistResult.valid) {\n errors.push(...whitelistResult.errors);\n }\n }\n // 清理配置(已实现但暂不使用返回值)\n // const sanitizedConfig = this.sanitizeConfig(config);\n return {\n valid: errors.length === 0,\n errors\n };\n }\n}\n\n//# sourceMappingURL=configSecurity.js.map","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 { logger } from \"./logger\";\nimport { SecurityUtils } from \"./security\";\n/**\n * 分析服务类\n */ export class AnalyticsService {\n /**\n * 启动批量上报定时器\n */ startBatchTimer() {\n if (this.batchTimer) {\n return;\n }\n this.batchTimer = setInterval(()=>{\n this.flush();\n }, this.config.batchInterval);\n }\n /**\n * 停止批量上报定时器\n */ stopBatchTimer() {\n if (this.batchTimer) {\n clearInterval(this.batchTimer);\n this.batchTimer = null;\n }\n }\n /**\n * 记录事件\n */ track(event) {\n if (!this.config.enabled) {\n return;\n }\n // 采样检查\n if (Math.random() > this.config.sampleRate) {\n return;\n }\n // 匿名化处理\n const anonymizedEvent = {\n ...event,\n timestamp: Date.now(),\n properties: this.anonymizeProperties(event.properties)\n };\n // 添加到队列\n this.eventQueue.push(anonymizedEvent);\n // 立即上报单个事件\n if (this.config.onEvent) {\n this.config.onEvent(anonymizedEvent);\n }\n // 检查是否需要批量上报\n if (this.eventQueue.length >= this.config.batchSize) {\n this.flush();\n }\n }\n /**\n * 记录页面浏览\n */ trackPageView(page, properties) {\n this.track({\n type: 'pageview',\n name: 'page_view',\n properties: {\n page,\n ...properties\n }\n });\n }\n /**\n * 记录点击事件\n */ trackClick(element, properties) {\n this.track({\n type: 'click',\n name: 'click',\n properties: {\n element,\n ...properties\n }\n });\n }\n /**\n * 记录自定义事件\n */ trackCustom(name, properties) {\n this.track({\n type: 'custom',\n name,\n properties\n });\n }\n /**\n * 记录错误事件\n */ trackError(error, properties) {\n this.track({\n type: 'error',\n name: 'error',\n properties: {\n errorName: error.name,\n errorMessage: error.message,\n errorStack: error.stack,\n ...properties\n }\n });\n }\n /**\n * 记录性能事件\n */ trackPerformance(metrics, properties) {\n this.track({\n type: 'performance',\n name: 'performance',\n properties: {\n ...metrics,\n ...properties\n }\n });\n }\n /**\n * 匿名化属性(使用深度脱敏)\n */ anonymizeProperties(properties) {\n if (!this.config.anonymize || !properties) {\n return properties;\n }\n // 使用深度脱敏处理\n return SecurityUtils.deepSanitize(properties);\n }\n /**\n * 刷新队列(批量上报)\n */ flush() {\n if (this.eventQueue.length === 0) {\n return;\n }\n const events = [\n ...this.eventQueue\n ];\n this.eventQueue = [];\n if (this.config.onBatch) {\n this.config.onBatch(events);\n }\n logger.debug(`分析服务批量上报 ${events.length} 个事件`);\n }\n /**\n * 启用分析\n */ enable() {\n this.config.enabled = true;\n this.startBatchTimer();\n }\n /**\n * 禁用分析\n */ disable() {\n this.config.enabled = false;\n this.stopBatchTimer();\n this.flush();\n }\n /**\n * 销毁服务\n */ destroy() {\n this.stopBatchTimer();\n this.flush();\n }\n constructor(config = {}){\n _define_property(this, \"config\", void 0);\n _define_property(this, \"eventQueue\", []);\n _define_property(this, \"batchTimer\", null);\n this.config = {\n enabled: config.enabled ?? true,\n sampleRate: config.sampleRate ?? 1.0,\n anonymize: config.anonymize ?? true,\n onEvent: config.onEvent ?? (()=>{}),\n onBatch: config.onBatch ?? (()=>{}),\n batchSize: config.batchSize ?? 10,\n batchInterval: config.batchInterval ?? 5000\n };\n if (this.config.enabled) {\n this.startBatchTimer();\n }\n }\n}\n/**\n * 默认分析服务实例\n */ let defaultAnalyticsService = null;\n/**\n * 初始化默认分析服务\n */ export function initAnalytics(config) {\n if (!defaultAnalyticsService) {\n defaultAnalyticsService = new AnalyticsService(config);\n }\n return defaultAnalyticsService;\n}\n/**\n * 获取默认分析服务\n */ export function getAnalytics() {\n if (!defaultAnalyticsService) {\n return initAnalytics();\n }\n return defaultAnalyticsService;\n}\n\n//# sourceMappingURL=analytics.js.map","export { logger, createLogger, Logger, LogFormat } from \"./logger\";\nexport { LogLevel } from \"./logger.types\";\n// 导出错误处理\nexport * from \"./errors\";\n// 导出验证工具\nexport * from \"./validation\";\n// 导出安全工具\nexport * from \"./security\";\n// 导出 CSRF 防护\nexport { CSRFTokenManager, initCSRFManager, getCSRFManager } from \"./csrf\";\n// 导出追踪 ID\nexport { TraceIdGenerator, initTraceIdGenerator, getTraceIdGenerator, generateTraceId, parseTraceId, setCurrentTraceId, getCurrentTraceId, clearCurrentTraceId } from \"./traceId\";\n// 导出性能监控\nexport { PerformanceMonitor, PERFORMANCE_METRIC_UNITS, convertMetricsToWithUnits } from \"./performance\";\n// 导出监控服务\nexport { MonitoringService, initMonitoring, getMonitoring } from \"./monitoring\";\n// 导出资源加载器\nexport { ResourceLoader, resourceLoader } from \"./resourceLoader\";\n// 导出配置安全\nexport { ConfigSecurity } from \"./configSecurity\";\n// 导出运行时安全\nexport { RuntimeSecurity } from \"./runtimeSecurity\";\n// 导出分析服务\nexport { AnalyticsService, initAnalytics, getAnalytics } from \"./analytics\";\n/**\n * 等待指定时间后解析的 Promise 工具函数\n * \n * @param time - 等待时间(毫秒),默认为 100 毫秒\n * @returns 返回一个 Promise,在指定时间后解析为 true\n * \n * @example\n * ```typescript\n * // 等待 500 毫秒\n * await waitTime(500);\n * \n * // 使用默认等待时间(100 毫秒)\n * await waitTime();\n * ```\n * @deprecated 建议使用基于实际完成状态的机制,而不是固定等待时间\n */ export const waitTime = (time = 100)=>{\n return new Promise((resolve)=>{\n setTimeout(()=>{\n resolve(true);\n }, time);\n });\n};\n\n//# sourceMappingURL=index.js.map","export function resolveStorage(storage) {\n if (storage) {\n return storage;\n }\n if (typeof window === 'undefined' || !window.localStorage) {\n return null;\n }\n return window.localStorage;\n}\nexport function readPersistedValue(options, defaultKey) {\n if (options.enabled === false) {\n return null;\n }\n const targetStorage = resolveStorage(options.storage);\n if (!targetStorage) {\n return null;\n }\n try {\n return targetStorage.getItem(options.key || defaultKey);\n } catch {\n return null;\n }\n}\nexport function writePersistedValue(value, options, defaultKey) {\n if (options.enabled === false || !value) {\n return;\n }\n const targetStorage = resolveStorage(options.storage);\n if (!targetStorage) {\n return;\n }\n try {\n targetStorage.setItem(options.key || defaultKey, value);\n } catch {\n // Ignore storage write failures (private mode / quota / disabled storage).\n }\n}\n\n//# sourceMappingURL=persistence.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport React from \"react\";\nimport { useTheme } from \"../core\";\nimport { readPersistedValue, writePersistedValue } from \"./persistence\";\nconst DEFAULT_THEME_STORAGE_KEY = 'vlian:theme-mode';\nconst DEFAULT_MODES = [\n 'light',\n 'dark',\n 'system'\n];\nconst DEFAULT_PERSISTENCE = {\n enabled: true\n};\nconst DEFAULT_LABELS = {\n light: '浅色',\n dark: '深色',\n system: '跟随系统'\n};\nfunction isThemeMode(value) {\n return value === 'light' || value === 'dark' || value === 'system';\n}\nexport const ThemeSwitch = ({ modes = DEFAULT_MODES, labels = DEFAULT_LABELS, persistence, className, style, onChange, render })=>{\n const { theme, setTheme } = useTheme();\n const persistenceOptions = persistence || DEFAULT_PERSISTENCE;\n const hydratedRef = React.useRef(false);\n const lastWrittenModeRef = React.useRef(undefined);\n const mergedLabels = React.useMemo(()=>({\n ...DEFAULT_LABELS,\n ...labels\n }), [\n labels\n ]);\n React.useEffect(()=>{\n if (hydratedRef.current) {\n return;\n }\n hydratedRef.current = true;\n const persistedMode = readPersistedValue(persistenceOptions, DEFAULT_THEME_STORAGE_KEY);\n if (!persistedMode || !isThemeMode(persistedMode) || !modes.includes(persistedMode)) {\n return;\n }\n if (persistedMode !== theme.mode) {\n setTheme((prev)=>({\n ...prev,\n mode: persistedMode\n }));\n }\n }, [\n modes,\n persistenceOptions,\n setTheme,\n theme.mode\n ]);\n React.useEffect(()=>{\n const mode = theme.mode;\n if (!mode || lastWrittenModeRef.current === mode) {\n return;\n }\n writePersistedValue(mode, persistenceOptions, DEFAULT_THEME_STORAGE_KEY);\n lastWrittenModeRef.current = mode;\n }, [\n persistenceOptions,\n theme.mode\n ]);\n const currentMode = theme.mode || 'light';\n const setMode = React.useCallback((mode)=>{\n if (mode === currentMode) {\n return;\n }\n setTheme((prev)=>({\n ...prev,\n mode\n }));\n onChange?.(mode);\n }, [\n currentMode,\n onChange,\n setTheme\n ]);\n if (render) {\n return render({\n mode: currentMode,\n setMode,\n modes,\n labels: mergedLabels\n });\n }\n return /*#__PURE__*/ _jsx(\"div\", {\n className: className,\n style: style,\n role: \"group\",\n \"aria-label\": \"Theme Switch\",\n children: modes.map((mode)=>/*#__PURE__*/ _jsx(\"button\", {\n type: \"button\",\n onClick: ()=>setMode(mode),\n \"aria-pressed\": currentMode === mode,\n children: mergedLabels[mode]\n }, mode))\n });\n};\n\n//# sourceMappingURL=ThemeSwitch.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport React from \"react\";\nimport { useLocale } from \"../core\";\nimport { readPersistedValue, writePersistedValue } from \"./persistence\";\nconst DEFAULT_LOCALE_STORAGE_KEY = 'vlian:locale';\nconst DEFAULT_LOCALES = [\n 'zh-CN',\n 'en-US'\n];\nconst DEFAULT_PERSISTENCE = {\n enabled: true\n};\nconst DEFAULT_LABELS = {\n 'zh-CN': '中文',\n 'en-US': 'English'\n};\nfunction isLocale(value) {\n return value === 'zh-CN' || value === 'en-US';\n}\nexport const LocaleSwitch = ({ locales = DEFAULT_LOCALES, labels = DEFAULT_LABELS, persistence, className, style, onChange, render })=>{\n const { locale, setLocale, isChanging } = useLocale();\n const persistenceOptions = persistence || DEFAULT_PERSISTENCE;\n const hydratedRef = React.useRef(false);\n const lastWrittenLocaleRef = React.useRef(undefined);\n const mergedLabels = React.useMemo(()=>({\n ...DEFAULT_LABELS,\n ...labels\n }), [\n labels\n ]);\n React.useEffect(()=>{\n if (hydratedRef.current) {\n return;\n }\n hydratedRef.current = true;\n const persistedLocale = readPersistedValue(persistenceOptions, DEFAULT_LOCALE_STORAGE_KEY);\n if (!persistedLocale || !isLocale(persistedLocale) || !locales.includes(persistedLocale)) {\n return;\n }\n if (persistedLocale !== locale) {\n setLocale(persistedLocale);\n }\n }, [\n locale,\n locales,\n persistenceOptions,\n setLocale\n ]);\n React.useEffect(()=>{\n if (lastWrittenLocaleRef.current === locale) {\n return;\n }\n writePersistedValue(locale, persistenceOptions, DEFAULT_LOCALE_STORAGE_KEY);\n lastWrittenLocaleRef.current = locale;\n }, [\n locale,\n persistenceOptions\n ]);\n const handleSetLocale = React.useCallback((nextLocale)=>{\n if (nextLocale === locale) {\n return;\n }\n setLocale(nextLocale);\n onChange?.(nextLocale);\n }, [\n locale,\n onChange,\n setLocale\n ]);\n if (render) {\n return render({\n locale,\n isChanging: Boolean(isChanging),\n setLocale: handleSetLocale,\n locales,\n labels: mergedLabels\n });\n }\n return /*#__PURE__*/ _jsxs(\"label\", {\n className: className,\n style: style,\n children: [\n /*#__PURE__*/ _jsx(\"span\", {\n style: {\n display: 'none'\n },\n children: \"Language Switch\"\n }),\n /*#__PURE__*/ _jsx(\"select\", {\n \"aria-label\": \"Language Switch\",\n value: locale,\n onChange: (event)=>handleSetLocale(event.target.value),\n disabled: Boolean(isChanging),\n children: locales.map((item)=>/*#__PURE__*/ _jsx(\"option\", {\n value: item,\n children: mergedLabels[item]\n }, item))\n })\n ]\n });\n};\n\n//# sourceMappingURL=LocaleSwitch.js.map","import { LogLevel } from \"@vlian/logger\";\nexport const DEFAULT_INSTANCE_ID = 'default';\nexport const DEFAULT_THEME = {\n mode: 'light'\n};\nexport const DEFAULT_I18N = {\n locale: 'zh-CN'\n};\nexport const DEFAULT_CONFIG = {\n logger: {\n level: LogLevel.INFO,\n persistence: {\n enabled: true,\n storage: 'localStorage',\n key: 'vlian:kernel:logger-level'\n }\n },\n cache: {\n enabled: true,\n storageOptions: {\n prefix: 'vlian',\n defaultExpire: 24 * 60 * 60 * 1000\n }\n },\n theme: {\n initial: DEFAULT_THEME,\n persistence: {\n enabled: true,\n storage: 'localStorage',\n key: 'vlian:kernel:theme'\n }\n },\n i18n: {\n initial: DEFAULT_I18N,\n persistence: {\n enabled: true,\n storage: 'localStorage',\n key: 'vlian:kernel:i18n'\n }\n }\n};\n\n//# sourceMappingURL=constants.js.map","import { storage } from \"../../library\";\nfunction resolveWebStorage(driver) {\n if (typeof window === 'undefined') {\n return null;\n }\n if (driver === 'localStorage') {\n return window.localStorage;\n }\n if (driver === 'sessionStorage') {\n return window.sessionStorage;\n }\n return null;\n}\nexport async function readPersistedValue(persistence) {\n if (!persistence || persistence.enabled === false) {\n return null;\n }\n const driver = persistence.storage ?? 'localStorage';\n const key = persistence.key;\n if (!key) {\n return null;\n }\n if (driver === 'indexedDB') {\n try {\n const value = await storage.indexedDB.get(key);\n if (value === null || value === undefined) {\n return null;\n }\n if (typeof value === 'string') {\n return value;\n }\n return JSON.stringify(value);\n } catch {\n return null;\n }\n }\n const targetStorage = resolveWebStorage(driver);\n if (!targetStorage) {\n return null;\n }\n try {\n return targetStorage.getItem(key);\n } catch {\n return null;\n }\n}\nexport async function writePersistedValue(persistence, value) {\n if (!persistence || persistence.enabled === false) {\n return;\n }\n const driver = persistence.storage ?? 'localStorage';\n const key = persistence.key;\n if (!key) {\n return;\n }\n if (driver === 'indexedDB') {\n try {\n await storage.indexedDB.set(key, value);\n } catch {\n // ignore persistence errors\n }\n return;\n }\n const targetStorage = resolveWebStorage(driver);\n if (!targetStorage) {\n return;\n }\n try {\n targetStorage.setItem(key, value);\n } catch {\n // ignore persistence errors\n }\n}\n\n//# sourceMappingURL=persistence.js.map","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 { logger, LogLevel } from \"@vlian/logger\";\nimport { DEFAULT_CONFIG } from \"../constants\";\nimport { readPersistedValue, writePersistedValue } from \"./persistence\";\nfunction normalizeLogLevel(value, fallback) {\n if (typeof value === 'number' && Number.isInteger(value)) {\n switch(value){\n case LogLevel.DEBUG:\n case LogLevel.INFO:\n case LogLevel.WARN:\n case LogLevel.ERROR:\n case LogLevel.NONE:\n return value;\n default:\n return fallback;\n }\n }\n if (typeof value !== 'string') {\n return fallback;\n }\n const normalized = value.trim();\n if (!normalized) {\n return fallback;\n }\n if (/^\\d+$/.test(normalized)) {\n return normalizeLogLevel(Number(normalized), fallback);\n }\n switch(normalized.toUpperCase()){\n case 'DEBUG':\n return LogLevel.DEBUG;\n case 'INFO':\n return LogLevel.INFO;\n case 'WARN':\n return LogLevel.WARN;\n case 'ERROR':\n return LogLevel.ERROR;\n case 'NONE':\n return LogLevel.NONE;\n default:\n return fallback;\n }\n}\nexport class LoggerManager {\n async initialize(context) {\n this.config = context.config.logger;\n const hasConfiguredLevel = this.config.level !== undefined && this.config.level !== null;\n const configuredLevel = normalizeLogLevel(this.config.level, LogLevel.INFO);\n if (hasConfiguredLevel) {\n this.level = configuredLevel;\n logger.setLevel(this.level);\n await writePersistedValue(this.config.persistence, String(this.level));\n return;\n }\n const persisted = await readPersistedValue(this.config.persistence);\n if (persisted !== null) {\n this.level = normalizeLogLevel(persisted, configuredLevel);\n logger.setLevel(this.level);\n return;\n }\n this.level = configuredLevel;\n logger.setLevel(this.level);\n await writePersistedValue(this.config.persistence, String(this.level));\n }\n debug(message, payload) {\n logger.debug(message, payload);\n }\n async setLevel(level) {\n this.level = level;\n logger.setLevel(level);\n await writePersistedValue(this.config.persistence, String(level));\n }\n getSnapshot() {\n return {\n level: this.level\n };\n }\n constructor(){\n _define_property(this, \"level\", LogLevel.INFO);\n _define_property(this, \"config\", DEFAULT_CONFIG.logger);\n }\n}\n\n//# sourceMappingURL=loggerManager.js.map","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 { storage } from \"../../library\";\nimport { DEFAULT_CONFIG } from \"../constants\";\nexport class CacheManager {\n initialize(context) {\n this.snapshot = context.config.cache;\n storage.initialize({\n prefix: this.snapshot.storageOptions?.prefix || 'vlian',\n defaultExpire: this.snapshot.storageOptions?.defaultExpire || 24 * 60 * 60 * 1000,\n tableName: this.snapshot.storageOptions?.tableName,\n cache: {\n enabled: this.snapshot.enabled\n }\n });\n }\n getSnapshot() {\n return this.snapshot;\n }\n constructor(){\n _define_property(this, \"snapshot\", DEFAULT_CONFIG.cache);\n }\n}\n\n//# sourceMappingURL=cacheManager.js.map","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 { DEFAULT_CONFIG, DEFAULT_THEME } from \"../constants\";\nimport { readPersistedValue, writePersistedValue } from \"./persistence\";\nfunction applyThemeToDocument(theme) {\n if (typeof document === 'undefined') {\n return;\n }\n const root = document.documentElement;\n root.classList.remove('light', 'dark');\n const resolvedMode = theme.mode === 'system' ? typeof window !== 'undefined' && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light' : theme.mode;\n root.classList.add(resolvedMode);\n if (theme.primaryColor) {\n root.style.setProperty('--app-primary-color', theme.primaryColor);\n }\n if (theme.tokens) {\n Object.entries(theme.tokens).forEach(([token, tokenValue])=>{\n root.style.setProperty(`--${token}`, String(tokenValue));\n });\n }\n}\nexport class ThemeManager {\n async initialize(context) {\n this.config = context.config.theme;\n this.theme = {\n ...DEFAULT_THEME,\n ...this.config.initial || {}\n };\n const persisted = await readPersistedValue(this.config.persistence);\n if (persisted !== null) {\n try {\n const parsed = JSON.parse(persisted);\n this.theme = {\n ...this.theme,\n ...parsed\n };\n } catch {\n // ignore parse errors\n }\n } else {\n await writePersistedValue(this.config.persistence, JSON.stringify(this.theme));\n }\n applyThemeToDocument(this.theme);\n }\n getTheme() {\n return {\n ...this.theme\n };\n }\n async setTheme(nextTheme) {\n this.theme = {\n ...nextTheme\n };\n applyThemeToDocument(this.theme);\n await writePersistedValue(this.config.persistence, JSON.stringify(this.theme));\n }\n getSnapshot() {\n return this.getTheme();\n }\n constructor(){\n _define_property(this, \"theme\", DEFAULT_THEME);\n _define_property(this, \"config\", DEFAULT_CONFIG.theme);\n }\n}\n\n//# sourceMappingURL=themeManager.js.map","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 { setupI18n, setLang } from \"../../library\";\nimport { DEFAULT_CONFIG, DEFAULT_I18N } from \"../constants\";\nimport { readPersistedValue, writePersistedValue } from \"./persistence\";\nexport class I18nManager {\n async initialize(context) {\n this.config = context.config.i18n;\n this.snapshot = {\n ...DEFAULT_I18N,\n ...this.config.initial || {}\n };\n const persisted = await readPersistedValue(this.config.persistence);\n if (persisted !== null) {\n try {\n const parsed = JSON.parse(persisted);\n this.snapshot = {\n ...this.snapshot,\n ...parsed\n };\n } catch {\n // ignore parse errors\n }\n } else {\n await writePersistedValue(this.config.persistence, JSON.stringify(this.snapshot));\n }\n setupI18n(this.snapshot.resources || {});\n setLang(this.snapshot.locale);\n }\n getSnapshot() {\n return {\n ...this.snapshot\n };\n }\n async setLocale(locale) {\n this.snapshot = {\n ...this.snapshot,\n locale\n };\n setLang(locale);\n await writePersistedValue(this.config.persistence, JSON.stringify(this.snapshot));\n }\n constructor(){\n _define_property(this, \"snapshot\", DEFAULT_I18N);\n _define_property(this, \"config\", DEFAULT_CONFIG.i18n);\n }\n}\n\n//# sourceMappingURL=i18nManager.js.map","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 { DEFAULT_CONFIG, DEFAULT_I18N, DEFAULT_INSTANCE_ID, DEFAULT_THEME } from \"./constants\";\nimport { LoggerManager } from \"./manager/loggerManager\";\nimport { CacheManager } from \"./manager/cacheManager\";\nimport { ThemeManager } from \"./manager/themeManager\";\nimport { I18nManager } from \"./manager/i18nManager\";\nfunction now() {\n return typeof performance !== 'undefined' ? performance.now() : Date.now();\n}\nfunction isRecord(value) {\n return typeof value === 'object' && value !== null;\n}\nexport class Kernel {\n static getInstance(instanceId = DEFAULT_INSTANCE_ID) {\n const existing = Kernel.instances.get(instanceId);\n if (existing) {\n return existing;\n }\n const created = new Kernel(instanceId);\n Kernel.instances.set(instanceId, created);\n return created;\n }\n getId() {\n return this.instanceId;\n }\n getConfig() {\n return this.config;\n }\n getMetrics() {\n return [\n ...this.metrics\n ];\n }\n getLoggerManager() {\n return this.loggerManager;\n }\n getCacheManager() {\n return this.cacheManager;\n }\n getThemeManager() {\n return this.themeManager;\n }\n getI18nManager() {\n return this.i18nManager;\n }\n getManager(name) {\n return this.managers.get(name);\n }\n registerManager(name, manager) {\n if (this.managers.has(name)) {\n throw new Error(`Kernel manager \"${name}\" 已存在`);\n }\n this.managers.set(name, manager);\n }\n async startup(options = {}) {\n if (this.started) {\n this.logDebug('kernel.startup.skip.already-started', {\n instanceId: this.instanceId\n });\n return this;\n }\n if (this.startupPromise) {\n return this.startupPromise;\n }\n this.startupPromise = this.bootstrap(options).finally(()=>{\n this.startupPromise = null;\n });\n return this.startupPromise;\n }\n async bootstrap(options) {\n await this.measurePhase('startup.begin', async ()=>{\n this.logDebug('kernel.startup.begin', {\n instanceId: this.instanceId\n });\n });\n await this.measurePhase('config.load', async ()=>{\n this.config = await this.resolveConfig(options);\n });\n await this.measurePhase('manager.register.custom', async ()=>{\n if (options.customManagers) {\n Object.entries(options.customManagers).forEach(([name, manager])=>{\n if (!this.managers.has(name)) {\n this.managers.set(name, manager);\n }\n });\n }\n });\n await this.measurePhase('manager.initialize.default', async ()=>{\n await this.initializeManager('cache');\n await Promise.all([\n this.initializeManager('logger'),\n this.initializeManager('theme'),\n this.initializeManager('i18n')\n ]);\n });\n await this.measurePhase('manager.initialize.custom', async ()=>{\n const customManagerNames = [\n ...this.managers.keys()\n ].filter((name)=>name !== 'logger' && name !== 'cache' && name !== 'theme' && name !== 'i18n');\n for (const name of customManagerNames){\n await this.initializeManager(name);\n }\n });\n await this.measurePhase('hooks.initialize', async ()=>{\n await options.hooks?.initialize?.();\n await options.lifecycle?.initialization?.();\n });\n await this.measurePhase('render.custom', async ()=>{\n if (options.render) {\n await options.render({\n instanceId: this.instanceId,\n config: this.config\n });\n }\n });\n this.started = true;\n this.logDebug('kernel.startup.end', {\n instanceId: this.instanceId,\n metrics: this.metrics\n });\n return this;\n }\n async resolveConfig(options) {\n let loaded = {};\n if (options.configLoader) {\n const loaderResult = await options.configLoader();\n loaded = loaderResult || {};\n }\n const loadedThemeInitial = loaded.theme?.initial || {};\n const loadedI18nInitial = loaded.i18n?.initial || {};\n const optionTheme = options.theme || {};\n const optionLocale = options.locale;\n return {\n logger: {\n ...DEFAULT_CONFIG.logger,\n ...loaded.logger,\n ...options.config?.logger || {},\n level: options.loggerLevel ?? options.config?.logger?.level ?? loaded.logger?.level\n },\n cache: {\n ...DEFAULT_CONFIG.cache,\n ...loaded.cache,\n ...options.config?.cache || {},\n storageOptions: {\n ...DEFAULT_CONFIG.cache.storageOptions,\n ...loaded.cache?.storageOptions || {},\n ...options.config?.cache?.storageOptions || {},\n ...options.storageOptions || {}\n }\n },\n theme: {\n ...DEFAULT_CONFIG.theme,\n ...loaded.theme,\n ...options.config?.theme || {},\n initial: {\n ...DEFAULT_THEME,\n ...loadedThemeInitial,\n ...options.config?.theme?.initial || {},\n ...isRecord(optionTheme) ? optionTheme : {}\n }\n },\n i18n: {\n ...DEFAULT_CONFIG.i18n,\n ...loaded.i18n,\n ...options.config?.i18n || {},\n initial: {\n ...DEFAULT_I18N,\n ...loadedI18nInitial,\n ...options.config?.i18n?.initial || {},\n resources: isRecord(optionLocale) ? optionLocale : loadedI18nInitial.resources\n }\n }\n };\n }\n async initializeManager(name) {\n if (this.initializedManagers.has(name)) {\n return;\n }\n const existingPromise = this.managerInitPromises.get(name);\n if (existingPromise) {\n await existingPromise;\n return;\n }\n const manager = this.managers.get(name);\n if (!manager) {\n throw new Error(`Kernel manager \"${name}\" 不存在`);\n }\n const context = {\n instanceId: this.instanceId,\n config: this.config\n };\n const initPromise = (async ()=>{\n await manager.initialize(context);\n this.initializedManagers.add(name);\n this.logDebug('kernel.manager.initialized', {\n name,\n instanceId: this.instanceId\n });\n })();\n this.managerInitPromises.set(name, initPromise);\n try {\n await initPromise;\n } finally{\n this.managerInitPromises.delete(name);\n }\n }\n async measurePhase(phase, task) {\n const startTime = now();\n this.logDebug('kernel.phase.start', {\n phase,\n startTime,\n instanceId: this.instanceId\n });\n await task();\n const endTime = now();\n const metric = {\n phase,\n startTime,\n endTime,\n duration: endTime - startTime\n };\n this.metrics.push(metric);\n this.logDebug('kernel.phase.end', metric);\n }\n logDebug(message, payload) {\n this.loggerManager.debug(message, payload);\n }\n constructor(instanceId){\n _define_property(this, \"instanceId\", void 0);\n _define_property(this, \"metrics\", []);\n _define_property(this, \"managers\", new Map());\n _define_property(this, \"managerInitPromises\", new Map());\n _define_property(this, \"initializedManagers\", new Set());\n _define_property(this, \"loggerManager\", new LoggerManager());\n _define_property(this, \"cacheManager\", new CacheManager());\n _define_property(this, \"themeManager\", new ThemeManager());\n _define_property(this, \"i18nManager\", new I18nManager());\n _define_property(this, \"config\", DEFAULT_CONFIG);\n _define_property(this, \"startupPromise\", null);\n _define_property(this, \"started\", false);\n this.instanceId = instanceId;\n this.managers.set('logger', this.loggerManager);\n this.managers.set('cache', this.cacheManager);\n this.managers.set('theme', this.themeManager);\n this.managers.set('i18n', this.i18nManager);\n }\n}\n_define_property(Kernel, \"instances\", new Map());\nexport async function startup(options = {}, instanceId = DEFAULT_INSTANCE_ID) {\n const kernel = Kernel.getInstance(instanceId);\n return kernel.startup(options);\n}\nexport function getKernel(instanceId = DEFAULT_INSTANCE_ID) {\n return Kernel.getInstance(instanceId);\n}\nexport async function kernelStartApp(options = {}, instanceId = DEFAULT_INSTANCE_ID) {\n return startup(options, instanceId);\n}\n\n//# sourceMappingURL=kernel.js.map"],"names":["local","enUS","zhCN","initReactI18next","_define_property","createStorage","logger","LogLevel","errorUtils","useState","useEffect","memo","useRef","useCallback","_jsx","_jsxs","initMonitoring","monitoring","PerformanceMonitor","createContext","useMemo","useContext","l","y","d","FrameworkError","ErrorSeverity","defaultErrorHandler","ReactErrorBoundary","SecurityUtils","SecurityError","ValidationError","Navigate","z","vlianUtils","getMonitoring","createBrowserRouter","createHashRouter","createMemoryRouter","matchRoutes","RouterProvider","createRoot","StrictMode","applyThemeToDocument","DEFAULT_THEME","DEFAULT_I18N","initTraceIdGenerator","generateTraceId","setCurrentTraceId","InitializationError","ErrorCode","_Fragment","Validator","readPersistedValue","writePersistedValue","DEFAULT_PERSISTENCE","DEFAULT_LABELS"],"mappings":"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","x_google_ignoreList":[29]}
|