// Micara bridge — deep link micara://open (device activation, t_ec4c7c04)
// Le dashboard crée un ticket à usage unique (5 min) via /api/bridge/link-token
// puis ouvre micara://open?link=<ticket> ; l'app le consomme et se connecte
// TOUTE SEULE (zéro login manuel). Fonctions pures → testables sans Electron.
const SCHEME = 'micara';
const HOST = 'open';

// Extrait le ticket d'une URL micara://open?link=… (null si absent/malformé).
// Sécurité : le ticket n'est JAMAIS loggé (l'appelant ne loggue que le fait
// qu'un deep link a été reçu, jamais l'URL complète).
function parseDeepLinkTicket(url) {
  if (typeof url !== 'string' || !url.startsWith(`${SCHEME}://`)) return null;
  try {
    const u = new URL(url);
    if (u.protocol !== `${SCHEME}:` || u.host !== HOST) return null;
    const ticket = (u.searchParams.get('link') || '').trim();
    return ticket ? ticket : null;
  } catch {
    return null;
  }
}

module.exports = { SCHEME, HOST, parseDeepLinkTicket };
