const Auth = { TK: 'mc_token', US: 'mc_user', token() { return localStorage.getItem(this.TK); }, user() { try { return JSON.parse(localStorage.getItem(this.US)); } catch { return null; } }, logged() { return !!this.token(); }, async login(username, password) { const d = await API.post('/auth/login', { username, password }); localStorage.setItem(this.TK, d.token); localStorage.setItem(this.US, JSON.stringify(d.user)); return d.user; }, async register(data) { return API.post('/auth/register', data); }, logout() { localStorage.removeItem(this.TK); localStorage.removeItem(this.US); location.hash = '#/login'; }, role(...r) { const u = this.user(); return u && r.includes(u.role); }, isStaff() { return this.role('owner', 'admin'); }, isAdmin() { return this.role('owner', 'admin'); }, isOwner() { return this.role('owner'); }, };