// src/lib/validators.ts // Copyright (C) 2026 Robert Colbert // All Rights Reserved /** * Validates if a given string is a valid Firebase user ID. * * A valid Firebase user ID must meet the following criteria: * 1. Must be between 6 and 50 characters long (inclusive) * 2. Can only contain alphanumeric characters, underscore (_), dot (.), * hyphen (-), plus (+), and slash (/) characters * 3. Cannot start or end with a special character * * @param {string} userId - The string to validate as a Firebase user ID * @returns {boolean} True if the string is a valid Firebase user ID, false * otherwise */ export function isValidFirebaseUserId(userId: string): boolean { // Check length requirements const minLength = 6; const maxLength = 50; if ( typeof userId !== "string" || userId.length < minLength || userId.length > maxLength ) { return false; } // Define allowed special characters const specialChars = ["_", ".", "-", "+", "/"]; // Regular expression to match the Firebase user ID pattern const regex = new RegExp( `^[A-Za-z0-9]+(${specialChars .map((c) => `\\${c}`) .join("|")}[A-Za-z0-9]*)*$` ); return regex.test(userId); }