register method
Implementation
Future<UserAccount> register({
required String username,
required String email,
required String password,
}) async {
final users = await _readUsers();
if (users.any((u) => u.email == email)) {
throw StateError('email already registered');
}
if (users.any((u) => u.username == username)) {
throw StateError('username already registered');
}
final account = UserAccount(
username: username,
email: email,
passwordHash: _hash(password),
tokenHashes: const [],
createdAt: DateTime.now(),
updatedAt: DateTime.now(),
bio: '',
likedPackages: const [],
activities: const [],
);
users.add(account);
return _issueTokenForUser(users, users.length - 1);
}