/** * Types for the build pipeline */ /** * Optimized endpoint definition that will be bundled with the server * NOTE: Response schemas are stored separately in response-schemas.json * for transformation logic. This keeps endpoints.json lean while preserving * response descriptions for MCP resources. */ export interface OptimizedEndpoint { path: string; method: string; operationId?: string; summary?: string; description?: string; deprecated?: boolean; parameters?: OptimizedParameter[]; requestBody?: OptimizedRequestBody; responses?: Record; tags?: string[]; } /** * Optimized parameter definition (fully dereferenced) */ export interface OptimizedParameter { name: string; in: "query" | "header" | "path" | "cookie"; description?: string; required?: boolean; schema?: any; example?: any; } /** * Optimized request body definition */ export interface OptimizedRequestBody { description?: string; required?: boolean; content?: Record; } /** * Optimized media type definition */ export interface OptimizedMediaType { schema?: any; example?: any; examples?: Record; } /** * Optimized response definition (for MCP resources) * NOTE: Schemas are NOT included here - they're stored separately * in response-schemas.json for transformation use only */ export interface OptimizedResponse { description: string; } /** * Response schema map for transformation logic * Indexed by operationId for fast lookup at runtime * Stored in separate response-schemas.json file */ export interface ResponseSchemaMap { [operationId: string]: { [statusCode: string]: { schema?: any; }; }; } /** * Build output that will be saved and bundled with the server */ export interface BuildOutput { endpoints: OptimizedEndpoint[]; info: { title: string; version: string; description?: string; }; servers?: Array<{ url: string; description?: string; }>; buildTimestamp: string; stats: BuildStats; } /** * Build statistics for monitoring optimization effectiveness */ export interface BuildStats { totalEndpoints: number; originalSize: number; optimizedSize: number; reductionPercent: number; buildDuration: number; responseSchemas?: { total: number; withSchemas: number; totalSchemaSize: number; averageSchemaSize: number; }; } /** * Configuration for the build pipeline */ export interface BuildConfig { inputPath: string; outputPath: string; enableFlattening: boolean; enableOptimization: boolean; enableZodGeneration: boolean; verbose: boolean; } //# sourceMappingURL=types.d.ts.map