export function serializeID(input: string): string { const tokens = input .trim() .normalize("NFD") .replace(/\p{M}/gu, "") .split(/[^A-Za-z0-9]+/) .filter(Boolean) if (tokens.length === 0) { throw new Error(`Cannot serialize "${input}": result is empty.`) } const [first, ...rest] = tokens return ( first.toLowerCase() + rest.map((token) => token.charAt(0).toUpperCase() + token.slice(1).toLowerCase()).join("") ) }