// Stockage du token dans le SecretStorage de VS Code (chiffré par l'hôte). Les tokens du daemon sont
// stockés hashés côté serveur et le bootstrap ne s'affiche qu'une fois → on ne peut pas « lire » un
// token existant : l'utilisateur le saisit une fois (commande Sign In), on le conserve ici.
import type { SecretStorage } from 'vscode';

const TOKEN_KEY = 'arboretum.token';

export class Auth {
  constructor(private readonly secrets: SecretStorage) {}

  getToken(): Thenable<string | undefined> {
    return this.secrets.get(TOKEN_KEY);
  }

  storeToken(token: string): Thenable<void> {
    return this.secrets.store(TOKEN_KEY, token);
  }

  clearToken(): Thenable<void> {
    return this.secrets.delete(TOKEN_KEY);
  }
}
