// src/lib/api/jwt-utils.ts
// Décode le payload d'un JWT sans vérification de signature (lecture seule)

export function decodeJwtPayload(token: string): Record<string, any> | null {
  try {
    const parts = token.split(".")
    if (parts.length !== 3) return null
    // Le payload est la 2ème partie, encodé en base64url
    const base64 = parts[1].replace(/-/g, "+").replace(/_/g, "/")
    const json = atob(base64.padEnd(base64.length + (4 - base64.length % 4) % 4, "="))
    return JSON.parse(json)
  } catch {
    return null
  }
}

export function getJwtClaim<T = any>(token: string, claim: string): T | null {
  const payload = decodeJwtPayload(token)
  if (!payload) return null
  return payload[claim] ?? null
}
