/** * Generate a QR code data URL from text * qrcode imported lazily to avoid canvas crash at module load * @param text - Text to encode in QR code * @returns Promise resolving to data URL */ export async function generateQRCode(text: string): Promise { try { const { default: QRCode } = await import('qrcode'); const dataUrl = await QRCode.toDataURL(text, { width: 300, margin: 2, color: { dark: '#000000', light: '#FFFFFF', }, errorCorrectionLevel: 'M', }); return dataUrl; } catch (err) { console.error('[QR] Failed to generate QR code:', err); throw new Error('Failed to generate QR code'); } }