import { ApiClient } from './base' interface UsernameAvailability { available: boolean } export class AuthApiClient extends ApiClient { async login(username: string, password: string): Promise { return await super.postText('/login', { username, password }) } async register(username: string, password: string): Promise { await super.postJson('/register', { username, password }) } async getUsernameAvailability(username: string): Promise { const r = (await super.getJson( '/register/username-availability?username=' + username, )) as UsernameAvailability return r.available } async getMyUser(): Promise { return await super.getText('/me') } async deleteMyUser(): Promise { await super.delete('/me') } async getNewToken(): Promise { return await super.getText('/me/token') } }