UNPKG

@tuoyuan/micro-app-vue

Version:

拓源微前端解决方案 - 基于Vue的微前端库

2,139 lines (2,065 loc) 51.7 kB
import { ComponentOptionsMixin } from 'vue'; import { ComponentProvideOptions } from 'vue'; import { ComputedRef } from 'vue'; import { DefineComponent } from 'vue'; import { ExtractPropTypes } from 'vue'; import { PublicProps } from 'vue'; import { Ref } from 'vue'; /** * 分析配置 */ declare interface AnalyticsConfig { /** * 是否启用分析 */ enabled?: boolean; /** * 分析服务端点 */ endpoint?: string; /** * 批量发送间隔(毫秒) */ batchInterval?: number; /** * 批量大小 */ batchSize?: number; /** * 是否自动发送 */ autoSend?: boolean; /** * 用户ID获取函数 */ getUserId?: () => string | null; /** * 会话ID获取函数 */ getSessionId?: () => string; /** * 自定义属性 */ customProperties?: Record<string, any>; } /** * 分析事件类型 */ declare interface AnalyticsEvent { /** * 事件名称 */ name: string; /** * 事件数据 */ data?: Record<string, any>; /** * 时间戳 */ timestamp: number; /** * 应用ID */ appId?: string; /** * 用户ID */ userId?: string; /** * 会话ID */ sessionId?: string; } /** * 分析插件 */ export declare class AnalyticsPlugin extends BasePlugin { id: string; name: string; version: string; description: string; author: string; private config; private events; private batchTimer; private sessionId; private logger; constructor(config?: AnalyticsConfig); install(manager: MicroAppManager): Promise<void>; uninstall(manager: MicroAppManager): Promise<void>; beforeAppLoad(config: MicroAppConfig): Promise<void>; afterAppLoad(config: MicroAppConfig): Promise<void>; beforeAppUnload(appId: string): Promise<void>; afterAppUnload(appId: string): Promise<void>; beforeRouteChange(routeParams: any): Promise<void>; afterRouteChange(routeParams: any): Promise<void>; beforeMessageSend(message: any): Promise<void>; afterMessageReceive(message: any): Promise<void>; onError(error: Error, context?: any): Promise<void>; /** * 跟踪事件 */ track(name: string, data?: Record<string, any>, appId?: string): void; /** * 跟踪页面浏览 */ trackPageView(page: string, title?: string, appId?: string): void; /** * 跟踪用户行为 */ trackUserAction(action: string, target?: string, appId?: string): void; /** * 跟踪性能指标 */ trackPerformance(metrics: Record<string, number>, appId?: string): void; /** * 设置用户属性 */ setUserProperties(properties: Record<string, any>): void; /** * 设置用户ID */ setUserId(userId: string): void; /** * 获取用户ID */ getUserId(): string | null; /** * 获取会话ID */ getSessionId(): string; /** * 生成会话ID */ private generateSessionId; /** * 启动批量发送定时器 */ private startBatchTimer; /** * 停止批量发送定时器 */ private stopBatchTimer; /** * 发送事件到分析服务 */ private flush; /** * 手动发送事件 */ send(): Promise<void>; /** * 获取事件统计 */ getEventStats(): { total: number; byName: Record<string, number>; byApp: Record<string, number>; recentEvents: AnalyticsEvent[]; }; /** * 获取分析报告 */ getAnalyticsReport(): { events: { total: number; byName: Record<string, number>; byApp: Record<string, number>; }; users: { total: number; active: number; }; sessions: { current: string; duration: number; }; performance: { averageEventSize: number; sendSuccessRate: number; }; }; /** * 清空事件 */ clearEvents(): void; /** * 导出事件数据 */ exportEvents(): string; } /** * 基础插件类 */ export declare abstract class BasePlugin implements Plugin_2 { abstract id: string; abstract name: string; abstract version: string; description?: string; author?: string; dependencies?: string[]; options?: Record<string, any>; install?(manager: MicroAppManager): void | Promise<void>; uninstall?(manager: MicroAppManager): void | Promise<void>; beforeAppLoad?(config: MicroAppConfig): void | Promise<void>; afterAppLoad?(config: MicroAppConfig): void | Promise<void>; beforeAppUnload?(appId: string): void | Promise<void>; afterAppUnload?(appId: string): void | Promise<void>; beforeRouteChange?(routeParams: any): void | Promise<void>; afterRouteChange?(routeParams: any): void | Promise<void>; beforeMessageSend?(message: any): void | Promise<void>; afterMessageReceive?(message: any): void | Promise<void>; onError?(error: Error, context?: any): void | Promise<void>; } /** * 构建路由URL */ export declare function buildRouteUrl(config: MicroAppConfig, routeParams: RouteParams): string; /** * 缓存配置 */ declare interface CacheConfig { /** * 是否启用缓存 */ enabled?: boolean; /** * 默认过期时间(毫秒) */ defaultTTL?: number; /** * 最大缓存大小(字节) */ maxSize?: number; /** * 缓存策略 */ strategy?: 'memory' | 'localStorage' | 'sessionStorage' | 'hybrid'; /** * 是否启用压缩 */ enableCompression?: boolean; /** * 是否启用加密 */ enableEncryption?: boolean; /** * 加密密钥 */ encryptionKey?: string; } /** * 缓存项 */ declare interface CacheItem<T = any> { /** * 键 */ key: string; /** * 值 */ value: T; /** * 过期时间 */ expires: number; /** * 创建时间 */ createdAt: number; /** * 访问次数 */ accessCount: number; /** * 最后访问时间 */ lastAccessed: number; } /** * 缓存插件 */ export declare class CachePlugin extends BasePlugin { id: string; name: string; version: string; description: string; author: string; private config; private memoryCache; private cacheStats; private logger; constructor(config?: CacheConfig); install(manager: MicroAppManager): Promise<void>; uninstall(manager: MicroAppManager): Promise<void>; /** * 设置缓存 */ set<T>(key: string, value: T, ttl?: number): void; /** * 获取缓存 */ get<T>(key: string): T | null; /** * 删除缓存 */ delete(key: string): boolean; /** * 检查缓存是否存在 */ has(key: string): boolean; /** * 清空所有缓存 */ clear(): void; /** * 获取缓存统计 */ getStats(): { hits: number; misses: number; sets: number; deletes: number; size: number; hitRate: number; itemCount: number; }; /** * 获取缓存项 */ getItem(key: string): CacheItem | null; /** * 获取所有缓存键 */ keys(): string[]; /** * 获取缓存大小 */ size(): number; /** * 清理过期缓存 */ cleanup(): void; /** * 处理值(压缩/加密) */ private processValue; /** * 更新访问统计 */ private updateAccessStats; /** * 更新缓存大小 */ private updateSize; /** * 检查是否需要淘汰缓存 */ private shouldEvict; /** * 淘汰缓存(LRU策略) */ private evict; /** * 同步到存储 */ private syncToStorage; /** * 从存储恢复 */ private restoreFromStorage; /** * 从存储中移除 */ private removeFromStorage; /** * 清空存储 */ private clearStorage; /** * 创建缓存高阶函数 * @param keyOrGetKey 缓存键或获取缓存键的函数 * @param getter 数据获取函数 * @param ttl 过期时间(毫秒) * @returns 返回一个带缓存的数据获取函数,支持强制刷新 */ createCachedGetter<T, Args extends any[] = []>(keyOrGetKey: string | ((...args: Args) => string), getter: (...args: Args) => Promise<T> | T, ttl?: number): (...args: Args) => Promise<T> & { forceRefresh: (...args: Args) => Promise<T>; }; } declare interface ConfigCenter { getConfig: (appId: string) => MicroAppConfig; updateConfig: (appId: string, config: Partial<MicroAppConfig>) => void; getAppList: () => MicroAppConfig[]; } declare class ConfigManager implements ConfigCenter { private ctx; private configs; private configCache; private cacheExpiry; private preloadManager; private logger; constructor(ctx: InstanceContainer, logger?: Logger); /** * 设置预加载管理器引用 */ setPreloadManager(preloadManager: any): void; /** * 设置日志记录器 */ setLogger(logger: Logger): void; /** * 获取应用配置 */ getConfig(appId: string): MicroAppConfig; /** * 更新应用配置 */ updateConfig(appId: string, config: Partial<MicroAppConfig>): void; /** * 获取应用列表 */ getAppList(): MicroAppConfig[]; /** * 添加应用配置 */ addConfig(config: MicroAppConfig): void; /** * 移除应用配置 */ removeConfig(appId: string): void; /** * 批量添加配置 */ addConfigs(configs: MicroAppConfig[]): void; /** * 清空所有配置 */ clearConfigs(): void; /** * 获取配置统计信息 */ getConfigStats(): { totalConfigs: number; cachedConfigs: number; cacheHitRate: number; }; /** * 设置缓存过期时间 */ setCacheExpiry(expiry: number): void; /** * 清理过期缓存 */ clearExpiredCache(): void; /** * 更新缓存 */ private updateCache; /** * 设置事件监听器 */ private setupEventListeners; /** * 导出配置 */ exportConfigs(): string; /** * 导入配置 */ importConfigs(configsJson: string): void; } /** * 创建 Logger 实例的便捷函数 */ export declare function createLogger(options: LoggerOptions): Logger; /** * 便捷函数:创建 MicroAppManager */ export declare function createMicroAppManager(options?: MicroAppFactoryOptions): MicroAppManager; /** * 防抖函数 */ export declare function debounce<T extends (...args: any[]) => any>(func: T, wait: number): (...args: Parameters<T>) => void; /** * 深度合并对象 */ export declare function deepMerge<T extends object>(target: T, source: Partial<T>): T; declare const _default: { MicroAppContainer: DefineComponent<ExtractPropTypes< { config: { type: () => MicroAppConfig; required: true; }; hooks: { type: () => LifecycleHooks; default: () => {}; }; loadingTimeout: { type: NumberConstructor; default: number; }; iframeClass: { type: StringConstructor; default: string; }; instanceId: { type: StringConstructor; default: string; }; }>, { iframeRef: Ref<HTMLIFrameElement | undefined, HTMLIFrameElement | undefined>; isLoading: Ref<boolean, boolean>; error: Ref<Error | null, Error | null>; iframeSrc: ComputedRef<string>; handleIframeLoad: () => Promise<void>; handleIframeError: () => void; retry: () => Promise<void>; sendMessage: (type: string, data?: any) => void; }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("error" | "message" | "loaded" | "mounted" | "unmounted")[], "error" | "message" | "loaded" | "mounted" | "unmounted", PublicProps, Readonly<ExtractPropTypes< { config: { type: () => MicroAppConfig; required: true; }; hooks: { type: () => LifecycleHooks; default: () => {}; }; loadingTimeout: { type: NumberConstructor; default: number; }; iframeClass: { type: StringConstructor; default: string; }; instanceId: { type: StringConstructor; default: string; }; }>> & Readonly<{ onError?: ((...args: any[]) => any) | undefined; onMessage?: ((...args: any[]) => any) | undefined; onLoaded?: ((...args: any[]) => any) | undefined; onMounted?: ((...args: any[]) => any) | undefined; onUnmounted?: ((...args: any[]) => any) | undefined; }>, { hooks: LifecycleHooks; loadingTimeout: number; iframeClass: string; instanceId: string; }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>; startMicroApp: typeof startMicroApp; getMicroAppManager: (id?: string) => MicroAppManager; getEventBus: (id?: string) => EventBus; getErrorHandler: (id?: string) => ErrorHandler; getPerformanceMonitor: (id?: string) => PerformanceMonitor; getConfigManager: (id?: string) => ConfigManager; getPreloadManager: (id?: string) => PreloadManager; ErrorType: typeof ErrorType; BasePlugin: typeof BasePlugin; LoggingPlugin: typeof LoggingPlugin; PerformancePlugin: typeof PerformancePlugin; SecurityPlugin: typeof SecurityPlugin; AnalyticsPlugin: typeof AnalyticsPlugin; CachePlugin: typeof CachePlugin; ErrorHandlingPlugin: typeof ErrorHandlingPlugin; generateId: typeof generateId; isValidUrl: typeof isValidUrl; validateMicroAppConfig: typeof validateMicroAppConfig; buildRouteUrl: typeof buildRouteUrl; deepMerge: typeof deepMerge; debounce: typeof debounce; throttle: typeof throttle; Logger: typeof Logger; LogLevel: typeof LogLevel; createLogger: typeof createLogger; }; export default _default; declare class ErrorHandler { private ctx; private errorQueue; private maxErrorQueueSize; private errorHandlers; private logger; constructor(ctx: InstanceContainer, logger?: Logger); /** * 处理错误 */ handleError(error: Error, type: ErrorType, appId?: string, details?: any): void; /** * 添加错误到队列 */ private addToErrorQueue; /** * 通知错误处理器 */ private notifyErrorHandlers; /** * 发送错误事件 */ private emitErrorEvent; /** * 注册错误处理器 */ registerErrorHandler(type: ErrorType, handler: Function): void; /** * 移除错误处理器 */ removeErrorHandler(type: ErrorType, handler: Function): void; /** * 获取错误历史 */ getErrorHistory(): MicroAppError[]; /** * 设置日志记录器 */ setLogger(logger: Logger): void; /** * 清空错误队列 */ clearErrorQueue(): void; /** * 获取错误统计 */ getErrorStats(): Record<ErrorType, number>; /** * 设置全局错误处理 */ private setupGlobalErrorHandling; /** * 创建超时错误 */ createTimeoutError(appId: string, timeout: number): Error; /** * 创建通信错误 */ createCommunicationError(appId: string, details?: any): Error; /** * 创建路由错误 */ createRouteError(appId: string, route: string, details?: any): Error; } /** * 错误处理插件 */ export declare class ErrorHandlingPlugin extends BasePlugin { id: string; name: string; version: string; description: string; author: string; private logger; constructor(); install(manager: MicroAppManager): Promise<void>; uninstall(manager: MicroAppManager): Promise<void>; onError(error: Error, context?: any): Promise<void>; } export declare enum ErrorType { LOAD_TIMEOUT = "LOAD_TIMEOUT", COMMUNICATION_ERROR = "COMMUNICATION_ERROR", ROUTE_ERROR = "ROUTE_ERROR", LIFECYCLE_ERROR = "LIFECYCLE_ERROR" } declare class EventBus { private events; private onceEvents; private messageQueue; private maxQueueSize; private maxListeners; private logger; constructor(logger?: Logger); /** * 添加事件监听器 */ on(event: string, listener: EventListener_2): this; /** * 添加一次性事件监听器 */ once(event: string, listener: EventListener_2): this; /** * 移除事件监听器 */ off(event: string, listener?: EventListener_2): this; /** * 发送事件 */ emit(event: string, ...args: any[]): boolean; /** * 添加消息到队列 */ private addToQueue; /** * 获取消息历史 */ getMessageHistory(): MicroAppMessage[]; /** * 清空消息队列 */ clearMessageQueue(): void; /** * 生成消息ID */ private generateMessageId; /** * 设置最大监听器数量 */ setMaxListeners(count: number): this; /** * 获取最大监听器数量 */ getMaxListeners(): number; /** * 获取监听器数量 */ listenerCount(event: string): number; /** * 获取所有事件名称 */ eventNames(): string[]; /** * 带确认的消息发送 */ emitWithAck(event: string, data?: any, timeout?: number): Promise<any>; /** * 批量发送消息 */ emitBatch(events: Array<{ event: string; data?: any; }>): Promise<void>; /** * 获取监听器数量(兼容方法) */ getListenerCount(event: string): number; /** * 获取所有事件名称(兼容方法) */ getEventNames(): string[]; /** * 设置消息队列 */ private setupMessageQueue; /** * 移除所有监听器 */ removeAllListeners(event?: string): this; /** * 获取事件的所有监听器 */ listeners(event: string): EventListener_2[]; /** * 检查是否有监听器 */ hasListeners(event: string): boolean; /** * 设置日志记录器 */ setLogger(logger: Logger): void; } declare type EventListener_2<T = any> = (data: T) => void; declare type EventListener_3<T = any> = (data: T) => void; /** * 生成唯一ID */ export declare function generateId(): string; export declare const getConfigManager: (id?: string) => ConfigManager; export declare const getErrorHandler: (id?: string) => ErrorHandler; export declare const getEventBus: (id?: string) => EventBus; export declare const getMicroAppManager: (id?: string) => MicroAppManager; export declare const getPerformanceMonitor: (id?: string) => PerformanceMonitor; export declare const getPreloadManager: (id?: string) => PreloadManager; export declare interface GlobalData { [key: string]: any; } declare interface InstanceContainer { eventBus: EventBus; errorHandler: ErrorHandler; performanceMonitor: PerformanceMonitor; configManager: ConfigManager; preloadManager: PreloadManager; storeManager: StoreManager; } /** * 验证URL格式 */ export declare function isValidUrl(url: string): boolean; export declare interface LifecycleHooks { beforeLoad?: () => void | Promise<void>; afterLoad?: () => void | Promise<void>; beforeMount?: () => void | Promise<void>; afterMount?: () => void | Promise<void>; beforeUnmount?: () => void | Promise<void>; afterUnmount?: () => void | Promise<void>; onError?: (error: Error) => void; } declare enum LoadErrorType { TIMEOUT = "timeout", NETWORK = "network", CORS = "cors", SCRIPT = "script", COMMUNICATION = "communication", UNKNOWN = "unknown" } /** * 日志条目 */ declare interface LogEntry { timestamp: number; level: LogLevel_2; message: string; appId?: string; context?: Record<string, any>; error?: Error; } /** * Logger 类 * 用于在控制台输出格式化的日志 */ export declare class Logger { private moduleName; private level; private timestamp; private format; private colors; constructor(options: LoggerOptions); /** * 输出调试日志 */ debug(message: string, ...context: any[]): void; /** * 输出信息日志 */ info(message: string, ...context: any[]): void; /** * 输出警告日志 */ warn(message: string, ...context: any[]): void; /** * 输出错误日志 */ error(message: string, ...context: any[]): void; /** * 输出致命错误日志 */ fatal(message: string, ...context: any[]): void; /** * 日志输出方法 */ log(level: LogLevel, message: string, context: any[]): void; /** * 带颜色的日志输出 */ private logWithColors; /** * 输出到控制台 */ private outputToConsole; /** * 格式化日志消息 */ private formatMessage; /** * 设置模块名称 */ setModuleName(moduleName: string): void; /** * 设置日志等级 */ setLevel(level: LogLevel): void; /** * 获取当前日志等级 */ getLevel(): LogLevel; /** * 设置时间戳显示 */ setTimestamp(enabled: boolean): void; /** * 设置日志格式 */ setFormat(format: string): void; /** * 设置颜色显示 */ setColors(enabled: boolean): void; /** * 创建子 Logger */ child(subModule: string): Logger; } /** * Logger 配置选项 */ export declare interface LoggerOptions { /** 模块名称 */ moduleName: string; /** 输出的日志等级,默认 INFO */ level?: LogLevel; /** 是否显示时间戳,默认 true */ timestamp?: boolean; /** 日志格式模板,默认 '[{ts}] [{level}] [{module}] {message}' */ format?: string; /** 是否启用颜色,默认 true */ colors?: boolean; } /** * 日志配置 */ declare interface LoggingConfig { /** * 日志级别 */ level?: LogLevel_2; /** * 是否启用控制台输出 */ console?: boolean; /** * 是否启用远程日志 */ remote?: boolean; /** * 远程日志端点 */ remoteEndpoint?: string; /** * 日志格式 */ format?: 'json' | 'text'; /** * 是否包含时间戳 */ includeTimestamp?: boolean; /** * 是否包含应用ID */ includeAppId?: boolean; } /** * 日志插件 */ export declare class LoggingPlugin extends BasePlugin { id: string; name: string; version: string; description: string; author: string; private config; private logs; private maxLogs; private logger; constructor(config?: LoggingConfig); install(manager: MicroAppManager): Promise<void>; uninstall(manager: MicroAppManager): Promise<void>; beforeAppLoad(config: MicroAppConfig): Promise<void>; afterAppLoad(config: MicroAppConfig): Promise<void>; beforeAppUnload(appId: string): Promise<void>; afterAppUnload(appId: string): Promise<void>; beforeRouteChange(routeParams: any): Promise<void>; afterRouteChange(routeParams: any): Promise<void>; beforeMessageSend(message: any): Promise<void>; afterMessageReceive(message: any): Promise<void>; onError(error: Error, context?: any): Promise<void>; /** * 记录日志 */ log(level: LogLevel_2, message: string, context?: Record<string, any>, appId?: string): void; /** * 输出到控制台 */ private outputToConsole; /** * 发送到远程 */ private sendToRemote; /** * 获取日志 */ getLogs(level?: LogLevel_2, limit?: number): LogEntry[]; /** * 清空日志 */ clearLogs(): void; /** * 导出日志 */ exportLogs(): string; /** * 获取日志统计 */ getLogStats(): Record<string, any>; /** * 便捷方法 */ debug(message: string, context?: Record<string, any>, appId?: string): void; info(message: string, context?: Record<string, any>, appId?: string): void; warn(message: string, context?: Record<string, any>, appId?: string): void; error(message: string, context?: Record<string, any>, appId?: string): void; fatal(message: string, context?: Record<string, any>, appId?: string): void; } /** * 日志等级枚举 */ export declare enum LogLevel { DEBUG = 0, INFO = 1, WARN = 2, ERROR = 3, FATAL = 4 } /** * 日志级别 */ declare enum LogLevel_2 { DEBUG = 0, INFO = 1, WARN = 2, ERROR = 3, FATAL = 4 } export declare interface MicroAppClientAPI { isMicroApp: boolean; appId: string | null; appName: string | null; dispatch: (name: string, data?: any, options?: { global?: boolean; app_name?: string; }) => void; addEventListener: (name: string, listener: EventListener_2, once?: boolean) => void; removeEventListener: (name: string, listener: EventListener_2) => void; getGlobalData: (key: string) => Promise<any>; setGlobalData: (key: string, value: any) => Promise<void>; addHookListener: (name: string, listener: EventListener_2, once?: boolean) => void; removeHookListener: (name: string, listener: EventListener_2) => void; setToken: (token: string) => void; sendMessageToMain: (messageType: string, payload?: any) => void; sendMessageToApp: (targetAppId: string, messageType: string, payload?: any) => void; broadcastMessage: (messageType: string, payload?: any) => void; } declare interface MicroAppClientOptions { router?: any; setToken?: (token: string) => void; debug?: boolean; routerMode?: 'hash' | 'history'; accessibleRouter?: boolean; routeQueryOptions?: Record<string, string | { type: string; payload?: any; }>; } export declare interface MicroAppConfig { /** 应用ID */ appId: string; /** 应用名称 */ name: string; /** 应用URL */ url: string; /** 路由模式 */ routerMode?: 'hash' | 'history'; /** 是否可访问路由 */ accessibleRouter?: boolean; /** 路由查询参数配置 */ routeQueryOptions?: Record<string, string | RouteQueryOption>; /** 预加载配置 */ preload?: boolean; /** 超时时间(ms) */ timeout?: number; } export declare const MicroAppContainer: DefineComponent<ExtractPropTypes< { config: { type: () => MicroAppConfig; required: true; }; hooks: { type: () => LifecycleHooks; default: () => {}; }; loadingTimeout: { type: NumberConstructor; default: number; }; iframeClass: { type: StringConstructor; default: string; }; instanceId: { type: StringConstructor; default: string; }; }>, { iframeRef: Ref<HTMLIFrameElement | undefined, HTMLIFrameElement | undefined>; isLoading: Ref<boolean, boolean>; error: Ref<Error | null, Error | null>; iframeSrc: ComputedRef<string>; handleIframeLoad: () => Promise<void>; handleIframeError: () => void; retry: () => Promise<void>; sendMessage: (type: string, data?: any) => void; }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("error" | "message" | "loaded" | "mounted" | "unmounted")[], "error" | "message" | "loaded" | "mounted" | "unmounted", PublicProps, Readonly<ExtractPropTypes< { config: { type: () => MicroAppConfig; required: true; }; hooks: { type: () => LifecycleHooks; default: () => {}; }; loadingTimeout: { type: NumberConstructor; default: number; }; iframeClass: { type: StringConstructor; default: string; }; instanceId: { type: StringConstructor; default: string; }; }>> & Readonly<{ onError?: ((...args: any[]) => any) | undefined; onMessage?: ((...args: any[]) => any) | undefined; onLoaded?: ((...args: any[]) => any) | undefined; onMounted?: ((...args: any[]) => any) | undefined; onUnmounted?: ((...args: any[]) => any) | undefined; }>, { hooks: LifecycleHooks; loadingTimeout: number; iframeClass: string; instanceId: string; }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>; declare interface MicroAppError { type: ErrorType; message: string; appId?: string; timestamp: number; details?: any; loadErrorType?: LoadErrorType; } /** * 微应用管理器工厂 * 用于创建和管理 MicroAppManager 实例 */ export declare class MicroAppFactory { private static instances; /** * 创建或获取 MicroAppManager 实例 */ static create(options?: MicroAppFactoryOptions): MicroAppManager; /** * 获取指定容器ID的实例 */ static getInstance(containerId?: string): MicroAppManager | null; /** * 获取默认实例(兼容性方法) */ static getDefault(): MicroAppManager | null; /** * 销毁指定容器ID的管理器实例 */ static destroyContainer(containerId: string): void; /** * 获取所有容器ID */ static getContainerIds(): string[]; /** * 检查容器是否存在 */ static hasContainer(containerId: string): boolean; /** * 重置所有容器和实例(主要用于测试) */ static reset(): void; } /** * 微应用管理器工厂配置选项 */ declare interface MicroAppFactoryOptions { /** 日志等级 */ logLevel?: LogLevel; /** 容器ID,不传时使用 'default' */ containerId?: string; } /** * 微应用管理器 - 协调各个功能模块 */ export declare class MicroAppManager { private isInitialized; private id; private logLevel; private getTokenFn?; private pluginManager; private configManager; private preloadManager; private performanceMonitor; private eventBus; private errorHandler; private storeManager; private logger; constructor(options: MicroAppManagerOptions); /** * 初始化管理器 */ initialize(): Promise<void>; /** * 为各个管理器设置子 logger */ private setupManagerLoggers; /** * 添加应用配置(集成版本) */ addApp(config: MicroAppConfig): Promise<void>; /** * 批量添加应用配置 */ addApps(configs: MicroAppConfig[]): Promise<void>; /** * 移除应用配置 */ removeApp(appId: string): Promise<void>; /** * 获取应用配置 */ getAppConfig(appId: string): MicroAppConfig; /** * 获取所有应用配置 */ getAllAppConfigs(): MicroAppConfig[]; /** * 预加载应用 */ preloadApp(appId: string): Promise<void>; /** * 检查应用是否已预加载 */ isAppPreloaded(appId: string): boolean; /** * 获取应用性能指标 */ getAppPerformance(appId: string): any; /** * 获取所有性能指标 */ getAllPerformanceMetrics(): any; /** * 生成性能报告 */ generatePerformanceReport(): any; /** * 智能预加载 */ smartPreload(currentAppId: string): void; /** * 清理资源 */ cleanup(): Promise<void>; /** * 获取系统状态 */ getSystemStatus(): any; /** * 设置获取token的函数 */ setGetTokenFunction(fn: () => string | null): void; /** * 获取token */ getToken(): string | null; /** * 打开应用路由 */ openAppRoute(appId: string, routeParams: RouteParams): Promise<void>; /** * 打开应用(默认路由) */ openApp(appId: string): void; /** * 向指定应用发送消息 */ sendMessageToApp(targetAppId: string, messageType: string, payload?: any, options?: { from?: string; }): Promise<void>; /** * 广播消息到所有应用 */ broadcastMessage(messageType: string, payload?: any, options?: { from?: string; excludeAppIds?: string[]; }): void; /** * 确保已初始化 */ private ensureInitialized; /** * 设置事件监听器 */ private setupEventListeners; /** * 注册插件 */ registerPlugin(plugin: any): Promise<void>; /** * 卸载插件 */ unregisterPlugin(pluginId: string): Promise<void>; /** * 获取插件 */ getPlugin(pluginId: string): any; /** * 获取所有插件 */ getAllPlugins(): any[]; /** * 检查是否有插件 */ hasPlugin(pluginId: string): boolean; /** * 获取插件管理器 */ getPluginManager(): PluginManager; /** * 检查是否启用调试模式 */ isDebugEnabled(): boolean; /** * 获取日志记录器 */ getLogger(): Logger; /** * 创建子日志记录器 */ createChildLogger(moduleName: string): Logger; /** * 添加事件监听器 */ addEventListener(name: string, listener: EventListener_3, once?: boolean): void; /** * 移除事件监听器 */ removeEventListener(name: string, listener: EventListener_3): void; setGlobalData(key: string, value: any): void; getGlobalData(key: string): any; removeGlobalData(key: string): void; clearGlobalData(): void; } /** * 微应用管理器配置选项 */ declare interface MicroAppManagerOptions { /** 容器ID */ id: string; /** 日志等级 */ logLevel?: LogLevel; /** 配置管理器 */ configManager: ConfigManager; /** 预加载管理器 */ preloadManager: PreloadManager; /** 性能监控器 */ performanceMonitor: PerformanceMonitor; /** 事件总线 */ eventBus: EventBus; /** 错误处理器 */ errorHandler: ErrorHandler; /** 数据仓库管理器 */ storeManager: StoreManager; /** 父级日志记录器(可选) */ parentLogger?: Logger; /** 是否自动为各个管理器设置子 logger(默认 true) */ autoSetupLoggers?: boolean; } declare interface MicroAppMessage<T = any> { id: string; type: string; payload: T; timestamp: number; source: string; target: string; } export declare const MicroAppVuePlugin: { install: (app: any) => void; }; /** * 性能配置 */ declare interface PerformanceConfig { /** * 是否启用性能监控 */ enabled?: boolean; /** * 监控间隔(毫秒) */ interval?: number; /** * 是否启用内存监控 */ memoryMonitoring?: boolean; /** * 是否启用CPU监控 */ cpuMonitoring?: boolean; /** * 是否启用网络监控 */ networkMonitoring?: boolean; /** * 性能阈值警告 */ thresholds?: { loadTime?: number; mountTime?: number; renderTime?: number; memoryUsage?: number; cpuUsage?: number; }; /** * 是否自动上报 */ autoReport?: boolean; /** * 上报端点 */ reportEndpoint?: string; } declare interface PerformanceMetrics { loadTime: number; mountTime: number; memoryUsage?: number; errorCount: number; } /** * 性能指标类型 */ declare interface PerformanceMetrics_2 { /** * 应用ID */ appId: string; /** * 加载时间(毫秒) */ loadTime: number; /** * 挂载时间(毫秒) */ mountTime: number; /** * 渲染时间(毫秒) */ renderTime: number; /** * 内存使用量(MB) */ memoryUsage: number; /** * CPU使用率(%) */ cpuUsage: number; /** * 网络请求数量 */ networkRequests: number; /** * 错误数量 */ errorCount: number; /** * 时间戳 */ timestamp: number; } declare class PerformanceMonitor { private ctx; private metrics; private observers; private logger; constructor(ctx: InstanceContainer, logger?: Logger); /** * 开始监控应用性能 */ startMonitoring(appId: string): void; /** * 记录错误 */ recordError(appId: string): void; /** * 获取应用性能指标 */ getMetrics(appId: string): PerformanceMetrics | undefined; /** * 获取所有性能指标 */ getAllMetrics(): Map<string, PerformanceMetrics>; /** * 获取平均加载时间 */ getAverageLoadTime(): number; /** * 获取平均挂载时间 */ getAverageMountTime(): number; /** * 获取内存使用情况 */ getMemoryUsage(): number; /** * 清理性能数据 */ clearMetrics(appId?: string): void; /** * 设置性能观察器 */ private setupPerformanceObservers; /** * 生成性能报告 */ generateReport(): object; /** * 生成性能优化建议 */ private generateRecommendations; /** * 销毁观察器 */ destroy(): void; /** * 设置日志记录器 */ setLogger(logger: Logger): void; } /** * 性能监控插件 */ export declare class PerformancePlugin extends BasePlugin { id: string; name: string; version: string; description: string; author: string; private config; private metrics; private timers; private intervals; private observers; private logger; constructor(config?: PerformanceConfig); install(manager: MicroAppManager): Promise<void>; uninstall(manager: MicroAppManager): Promise<void>; beforeAppLoad(config: MicroAppConfig): Promise<void>; afterAppLoad(config: MicroAppConfig): Promise<void>; beforeAppUnload(appId: string): Promise<void>; afterAppUnload(appId: string): Promise<void>; /** * 开始监控 */ private startMonitoring; /** * 停止监控 */ private stopMonitoring; /** * 收集性能指标 */ private collectMetrics; /** * 记录指标 */ private recordMetrics; /** * 记录单个指标 */ private recordMetric; /** * 记录最终指标 */ private recordFinalMetrics; /** * 计算平均指标 */ private calculateAverageMetrics; /** * 获取网络请求数量 */ private getNetworkRequestCount; /** * 上报指标 */ private reportMetrics; /** * 初始化性能观察器 */ private initializeObservers; /** * 获取应用性能指标 */ getAppMetrics(appId: string): PerformanceMetrics_2[]; /** * 获取所有应用性能指标 */ getAllMetrics(): Map<string, PerformanceMetrics_2[]>; /** * 获取性能报告 */ getPerformanceReport(): { apps: Record<string, { average: Partial<PerformanceMetrics_2>; latest: PerformanceMetrics_2 | null; count: number; }>; summary: { totalApps: number; totalMetrics: number; averageLoadTime: number; averageMemoryUsage: number; }; }; /** * 清空指标 */ clearMetrics(appId?: string): void; } /** * 插件接口 */ declare interface Plugin_2 extends PluginLifecycle, PluginMetadata { /** * 插件唯一标识 */ id: string; } export { Plugin_2 as Plugin } /** * 插件生命周期钩子 */ export declare interface PluginLifecycle { /** * 插件安装时调用 */ install?(manager: MicroAppManager): void | Promise<void>; /** * 插件卸载时调用 */ uninstall?(manager: MicroAppManager): void | Promise<void>; /** * 应用加载前调用 */ beforeAppLoad?(config: MicroAppConfig): void | Promise<void>; /** * 应用加载后调用 */ afterAppLoad?(config: MicroAppConfig): void | Promise<void>; /** * 应用卸载前调用 */ beforeAppUnload?(appId: string): void | Promise<void>; /** * 应用卸载后调用 */ afterAppUnload?(appId: string): void | Promise<void>; /** * 路由变化前调用 */ beforeRouteChange?(routeParams: any): void | Promise<void>; /** * 路由变化后调用 */ afterRouteChange?(routeParams: any): void | Promise<void>; /** * 消息发送前调用 */ beforeMessageSend?(message: any): void | Promise<void>; /** * 消息接收后调用 */ afterMessageReceive?(message: any): void | Promise<void>; /** * 错误发生时调用 */ onError?(error: Error, context?: any): void | Promise<void>; } /** * 插件管理器 */ declare class PluginManager { private plugins; private lifecycleHooks; private manager; private logger; constructor(); /** * 设置 MicroAppManager 实例 */ setManager(manager: MicroAppManager): void; /** * 设置日志记录器 */ setLogger(logger: Logger): void; /** * 注册插件 */ registerPlugin(plugin: Plugin_2): Promise<void>; /** * 卸载插件 */ unregisterPlugin(pluginId: string): Promise<void>; /** * 获取插件 */ getPlugin(pluginId: string): Plugin_2 | undefined; /** * 获取所有插件 */ getAllPlugins(): Plugin_2[]; /** * 检查插件是否已注册 */ hasPlugin(pluginId: string): boolean; /** * 触发生命周期钩子 */ triggerHook(hookName: string, ...args: any[]): Promise<void>; /** * 初始化生命周期钩子映射 */ private initializeLifecycleHooks; /** * 注册插件的生命周期钩子 */ private registerLifecycleHooks; /** * 移除插件的生命周期钩子 */ private unregisterLifecycleHooks; /** * 获取插件统计信息 */ getPluginStats(): { total: number; active: number; plugins: Array<{ id: string; name: string; version: string; }>; }; } /** * 插件元数据 */ export declare interface PluginMetadata { /** * 插件名称 */ name: string; /** * 插件版本 */ version: string; /** * 插件描述 */ description?: string; /** * 插件作者 */ author?: string; /** * 依赖的其他插件 */ dependencies?: string[]; /** * 插件配置选项 */ options?: Record<string, any>; } declare class PreloadManager { private ctx; private preloadedApps; private preloadErrors; private preloadQueue; private isPreloading; private maxPreloadCount; private configGetter; private logger; constructor(ctx: InstanceContainer, logger?: Logger); /** * 预加载应用(增强版) */ preloadApp(config: MicroAppConfig): Promise<void>; /** * 批量预加载应用 */ preloadApps(configs: MicroAppConfig[]): Promise<void>; /** * 处理预加载队列 */ private processPreloadQueue; /** * 创建预加载iframe */ private createPreloadIframe; /** * 检测跨域错误 */ private detectCorsError; /** * 检测网络连接 */ private detectNetworkError; /** * 获取预加载的iframe */ getPreloadedIframe(appId: string): HTMLIFrameElement | undefined; /** * 移除预加载的iframe */ removePreloadedIframe(appId: string): void; /** * 清理所有预加载的iframe */ clearAllPreloadedIframes(): void; /** * 获取预加载状态 */ getPreloadStatus(appId: string): boolean; /** * 获取预加载错误 */ getPreloadError(appId: string): Error | undefined; /** * 检查是否有预加载错误 */ hasPreloadError(appId: string): boolean; /** * 重试预加载 */ retryPreload(appId: string): Promise<void>; /** * 获取所有预加载的应用 */ getPreloadedApps(): string[]; /** * 获取所有预加载失败的应用 */ getFailedPreloadApps(): string[]; /** * 设置最大预加载数量 */ setMaxPreloadCount(count: number): void; /** * 智能预加载(基于用户行为) */ smartPreload(configs: MicroAppConfig[], currentAppId: string): void; /** * 获取相关应用(基于配置或使用模式) */ private getRelatedApps; /** * 设置事件监听器 */ private setupEventListeners; /** * 获取应用配置(修复后的方法) */ private getAppConfig; /** * 设置配置获取方法 */ setConfigGetter(getter: (appId: string) => MicroAppConfig | null): void; /** * 设置日志记录器 */ setLogger(logger: Logger): void; /** * 获取预加载统计信息 */ getPreloadStats(): object; } export declare interface RouteParams { route: string; query?: string | Record<string, string>; params?: Record<string, string>; } declare interface RouteQueryOption { type: 'static' | 'globalData' | 'dynamic'; value?: string; key?: string; } /** * 安全配置 */ declare interface SecurityConfig { /** * 是否启用CSP */ enableCSP?: boolean; /** * CSP策略 */ cspPolicy?: string; /** * 是否启用沙箱 */ enableSandbox?: boolean; /** * 沙箱配置 */ sandboxConfig?: { allowScripts?: boolean; allowSameOrigin?: boolean; allowForms?: boolean; allowPopups?: boolean; allowModals?: boolean; allowTopNavigation?: boolean; }; /** * 允许的域名白名单 */ allowedDomains?: string[]; /** * 是否启用XSS防护 */ enableXSSProtection?: boolean; /** * 是否启用CSRF防护 */ enableCSRFProtection?: boolean; /** * CSRF Token名称 */ csrfTokenName?: string; } /** * 安全插件 */ export declare class SecurityPlugin extends BasePlugin { id: string; name: string; version: string; description: string; author: string; private config; private securityEvents; private logger; constructor(config?: SecurityConfig); install(manager: MicroAppManager): Promise<void>; uninstall(manager: MicroAppManager): Promise<void>; beforeAppLoad(config: MicroAppConfig): Promise<void>; beforeMessageSend(message: any): Promise<void>; afterMessageReceive(message: any): Promise<void>; onError(error: Error, context?: any): Promise<void>; /** * 设置CSP策略 */ private setupCSP; /** * 设置安全头 */ private setupSecurityHeaders; /** * 验证应用URL安全性 */ private validateAppUrl; /** * 检查域名白名单 */ private checkDomainWhitelist; /** * 验证消息安全性 */ private validateMessage; /** * 检查接收到的消息 */ private checkReceivedMessage; /** * 检查XSS攻击 */ private checkForXSS; /** * 检查对象中的XSS */ private checkObjectForXSS; /** * 生成CSRF Token */ generateCSRFToken(): string; /** * 验证CSRF Token */ validateCSRFToken(token: string): boolean; /** * 获取沙箱配置 */ getSandboxConfig(): string; /** * 记录安全事件 */ private recordSecurityEvent; /** * 获取安全事件 */ getSecurityEvents(type?: string): Array<{ type: string; timestamp: number; details: any; }>; /** * 获取安全报告 */ getSecurityReport(): { totalEvents: number; eventsByType: Record<string, number>; recentEvents: Array<{ type: string; timestamp: number; details: any; }>; securityStatus: { cspEnabled: boolean; sandboxEnabled: boolean; xssProtectionEnabled: boolean; csrfProtectionEnabled: boolean; }; }; /** * 清空安全事件 */ clearSecurityEvents(): void; } export declare function startMicroApp(options?: MicroAppClientOptions): Promise<MicroAppClientAPI>; declare class StoreManager { private ctx; private stores; private logger; constructor(ctx: InstanceContainer, logger?: Logger); get(name: string): any; set(name: string, store: any): void; remove(name: string): void; clear(): void; /** * 设置日志记录器 */ setLogger(logger: Logger): void; } /** * 节流函数 */ export declare function throttle<T extends (...args: any[]) => any>(func: T, limit: number): (...args: Parameters<T>) => void; /** * 验证微应用配置 */ export declare function validateMicroAppConfig(config: MicroAppConfig): string[]; export { } declare global { interface Window { __MICRO_APP__: boolean; __MICRO_APP_DEBUGGER__?: boolean; microApp?: MicroAppClientAPI; __START_MICRO_APP__: (options?: MicroAppClientOptions) => Promise<MicroAppClientAPI>; } }