import { NextApiRequest, NextApiResponse } from 'next' import { SerialPort } from 'serialport' export default async function handler( req: NextApiRequest, res: NextApiResponse ) { if (req.method !== 'GET') { return res.status(405).json({ message: 'Method not allowed' }) } try { const ports = await SerialPort.list() // Filter for ESP32 devices (common VID/PID patterns) const esp32Ports = ports.filter(port => port.vendorId === '10C4' || // Silicon Labs CP210x port.vendorId === '1A86' || // QinHeng Electronics CH340 port.vendorId === '0403' || // FTDI port.manufacturer?.includes('Silicon Labs') || port.manufacturer?.includes('FTDI') || port.productId === 'EA60' // CP2102 ) res.status(200).json({ allPorts: ports, esp32Ports, count: esp32Ports.length }) } catch (error) { console.error('Error listing serial ports:', error) res.status(500).json({ message: 'Failed to list serial ports', error: error instanceof Error ? error.message : 'Unknown error' }) } }