/** * @author: jasonHzq * @description: Web 服务器,提供 API 接口和调试界面 */ import type { Logger } from "../logger/types.d.ts"; import { PontxManager } from "../manager.d.ts"; /** * Web 服务器 */ export declare class WebServer { /** 日志记录器 */ private logger; /** 服务器端口 */ private port; /** 服务器实例 */ private server; /** PontxManager 实例 */ private manager; /** CDN 上的 app.html 缓存 */ private appHtmlCache; /** 本地 @pontx/shadcn-ui dist/app 目录路径缓存 */ private localAppDir; /** @pontx/shadcn-ui CDN 基础地址 */ private static CDN_BASE; /** 内置 SDK 代码生成 case(无插件时使用) */ private static SDK_BUILTIN_CASES; /** CLI 代码生成 case(始终包含,不会从插件 listSamples 返回) */ private static CLI_CASE; constructor(port: number, logger: Logger); /** * 获取实际使用的端口 */ getPort(): number; /** * 设置 PontxManager 实例 */ setManager(manager: PontxManager): void; /** 最大端口重试次数 */ private static MAX_PORT_RETRIES; /** * 启动 Web 服务器(端口冲突时自动尝试下一个端口) */ start(): Promise; /** * 尝试在指定端口启动监听 */ private tryListen; /** * 停止 Web 服务器 */ stop(): Promise; /** * 处理 Web 请求 */ private handleRequest; /** * 处理根路径请求 - 从 CDN 加载 @pontx/shadcn-ui SPA */ private handleRootRequest; /** * 获取 SPA HTML(带缓存) */ private getAppHtml; /** * 从 CDN 获取 app.html */ private fetchCdnAppHtml; /** * 从本地 node_modules 获取 app.html */ private getLocalAppHtml; /** * 解析本地 @pontx/shadcn-ui 包的 dist/app 目录 */ private resolveLocalAppDir; /** * MIME type 映射 */ private static MIME_TYPES; /** * 处理本地静态资源请求(/assets/*) */ private handleLocalAssetRequest; /** * 降级 HTML 页面(CDN 不可用时) */ private handleFallbackHtml; /** * 处理状态请求 */ private handleStatusRequest; /** * 处理 Specs 请求 */ private handleSpecsRequest; /** * 处理同步请求 */ private handleSyncRequest; /** * 处理 Spec 请求 */ private handleSpecRequest; /** * 解析 POST 请求的 JSON Body */ private parseJsonBody; /** * 处理代码生成场景列表请求 */ private handleCodeGenScenariosRequest; /** * 处理代码生成请求 */ private handleCodeGenGenerateRequest; }