/** URL-safe username: letters, digits, and . _ - @ + */
export const USERNAME_PATTERN = /^[A-Za-z0-9._@+-]+$/;
export const USERNAME_MAX_LENGTH = 64;
export const USERNAME_HINT =
  'Letters, numbers, and . _ - @ + (uppercase and lowercase allowed)';

export function normalizeUsername(username: string): string {
  return username.trim();
}

export function isValidUsername(username: string): boolean {
  const value = normalizeUsername(username);
  return (
    value.length > 0 &&
    value.length <= USERNAME_MAX_LENGTH &&
    USERNAME_PATTERN.test(value)
  );
}
