{"version":3,"sources":["../../src/development-server/index.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["/**\n * @fileoverview OrdoJS Dev Tools - Development Server\n *\n * Enhanced development server with all dev tools integration.\n */\n\nimport { EventEmitter } from 'events';\nimport type { DevServerConfig } from '../types/index.js';\n\n/**\n * Enhanced development server with dev tools integration\n */\nexport class DevelopmentServer extends EventEmitter {\n  private config: DevServerConfig;\n  private isRunning: boolean;\n  private server: any; // Express server instance\n\n  /**\n   * Create a new DevelopmentServer instance\n   *\n   * @param config - Development server configuration\n   */\n  constructor(config: DevServerConfig) {\n    super();\n\n    this.config = config;\n    this.isRunning = false;\n    this.server = null;\n  }\n\n  /**\n   * Start the development server\n   */\n  async start(): Promise<void> {\n    if (this.isRunning) {\n      console.warn('Development server is already running');\n      return;\n    }\n\n    try {\n      // Initialize Express server\n      await this.initializeServer();\n\n      // Start the server\n      await this.startServer();\n\n      this.isRunning = true;\n      console.log(`Development server started on http://${this.config.host}:${this.config.port}`);\n\n      this.emit('started');\n    } catch (error) {\n      console.error('Failed to start development server:', error);\n      this.emit('error', error);\n      throw error;\n    }\n  }\n\n  /**\n   * Stop the development server\n   */\n  async stop(): Promise<void> {\n    if (!this.isRunning) {\n      console.warn('Development server is not running');\n      return;\n    }\n\n    try {\n      // Stop the server\n      await this.stopServer();\n\n      this.isRunning = false;\n      console.log('Development server stopped');\n\n      this.emit('stopped');\n    } catch (error) {\n      console.error('Failed to stop development server:', error);\n      this.emit('error', error);\n      throw error;\n    }\n  }\n\n  /**\n   * Get server status\n   *\n   * @returns Server status information\n   */\n  getStatus(): {\n    isRunning: boolean;\n    port: number;\n    host: string;\n    config: DevServerConfig;\n  } {\n    return {\n      isRunning: this.isRunning,\n      port: this.config.port,\n      host: this.config.host,\n      config: this.config\n    };\n  }\n\n  /**\n   * Update server configuration\n   *\n   * @param newConfig - New configuration\n   */\n  updateConfig(newConfig: Partial<DevServerConfig>): void {\n    this.config = { ...this.config, ...newConfig };\n    this.emit('configUpdated', this.config);\n  }\n\n  /**\n   * Initialize Express server\n   */\n  private async initializeServer(): Promise<void> {\n    try {\n      const express = await import('express');\n      const cors = await import('cors');\n      const compression = await import('compression');\n      const serveStatic = await import('serve-static');\n      const morgan = await import('morgan');\n      const helmet = await import('helmet');\n\n      const app = express.default();\n\n      // Security middleware\n      if (this.config.cors) {\n        app.use(cors.default());\n      }\n\n      if (this.config.compression) {\n        app.use(compression.default());\n      }\n\n      app.use(helmet.default());\n\n      // Logging middleware\n      app.use(morgan.default('combined'));\n\n      // Static file serving\n      app.use(serveStatic.default(this.config.staticDir));\n\n      // API routes for dev tools\n      this.setupDevToolsRoutes(app);\n\n      // Error handling middleware\n      app.use(this.errorHandler.bind(this));\n\n      this.server = app;\n    } catch (error) {\n      console.error('Failed to initialize Express server:', error);\n      throw error;\n    }\n  }\n\n  /**\n   * Start the server\n   */\n  private async startServer(): Promise<void> {\n    return new Promise((resolve, reject) => {\n      if (!this.server) {\n        reject(new Error('Server not initialized'));\n        return;\n      }\n\n      const server = this.server.listen(this.config.port, this.config.host, () => {\n        console.log(`Development server listening on http://${this.config.host}:${this.config.port}`);\n        resolve();\n      });\n\n      server.on('error', (error: Error) => {\n        console.error('Server error:', error);\n        reject(error);\n      });\n    });\n  }\n\n  /**\n   * Stop the server\n   */\n  private async stopServer(): Promise<void> {\n    return new Promise((resolve, reject) => {\n      if (!this.server) {\n        resolve();\n        return;\n      }\n\n      const server = this.server;\n      server.close((error: Error | undefined) => {\n        if (error) {\n          console.error('Error stopping server:', error);\n          reject(error);\n        } else {\n          console.log('Server stopped');\n          resolve();\n        }\n      });\n    });\n  }\n\n  /**\n   * Setup dev tools API routes\n   *\n   * @param app - Express app instance\n   */\n  private setupDevToolsRoutes(app: any): void {\n    // Health check endpoint\n    app.get('/api/dev-tools/health', (req: any, res: any) => {\n      res.json({\n        status: 'healthy',\n        timestamp: new Date().toISOString(),\n        config: this.config\n      });\n    });\n\n    // Component inspector endpoint\n    app.get('/api/dev-tools/inspector', (req: any, res: any) => {\n      res.json({\n        components: [],\n        stats: {\n          totalComponents: 0,\n          totalRenderCount: 0,\n          averageRenderTime: 0,\n          peakMemoryUsage: 0\n        }\n      });\n    });\n\n    // Performance profiler endpoint\n    app.get('/api/dev-tools/profiler', (req: any, res: any) => {\n      res.json({\n        profiles: [],\n        stats: {\n          totalProfiles: 0,\n          activeProfiles: 0,\n          totalMeasurements: 0,\n          averageProfileDuration: 0\n        }\n      });\n    });\n\n    // AST explorer endpoint\n    app.get('/api/dev-tools/ast-explorer', (req: any, res: any) => {\n      res.json({\n        asts: [],\n        stats: {\n          totalASTs: 0,\n          totalNodes: 0,\n          averageDepth: 0\n        }\n      });\n    });\n\n    // Bundle analyzer endpoint\n    app.get('/api/dev-tools/bundle-analyzer', (req: any, res: any) => {\n      res.json({\n        analyses: [],\n        stats: {\n          totalAnalyses: 0,\n          totalSize: 0,\n          averageSize: 0\n        }\n      });\n    });\n\n    // Error overlay endpoint\n    app.get('/api/dev-tools/error-overlay', (req: any, res: any) => {\n      res.json({\n        errors: [],\n        stats: {\n          totalErrors: 0,\n          errorsByType: {},\n          errorsByFile: {}\n        }\n      });\n    });\n\n    // HMR endpoint\n    app.get('/api/dev-tools/hmr', (req: any, res: any) => {\n      res.json({\n        updates: [],\n        stats: {\n          totalUpdates: 0,\n          updatesByType: {},\n          updatesByFile: {},\n          averageUpdateTime: 0\n        }\n      });\n    });\n  }\n\n  /**\n   * Error handling middleware\n   *\n   * @param err - Error object\n   * @param req - Request object\n   * @param res - Response object\n   * @param next - Next function\n   */\n  private errorHandler(err: Error, req: any, res: any, next: any): void {\n    console.error('Server error:', err);\n\n    res.status(500).json({\n      error: {\n        message: err.message,\n        stack: process.env.NODE_ENV === 'development' ? err.stack : undefined\n      }\n    });\n  }\n}\n"]}