Extract the inline email-validation and POST /api/waitlist payload logic
out of RegisterForm into a dependency-free src/waitlist.ts module
(validateEmail / isValidEmail / normalizeEmail / buildWaitlistPayload)
and cover it with 23 vitest cases. RegisterForm now routes through the
shared helpers instead of an inline regex, keeping a single source of
truth for the email rule. Adds vitest as a devDependency + `test` script.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Re-scoped from @lilith/ui-auth to @cocotte/ui-auth. In-set cross-package deps
re-pointed to @cocotte; out-of-set @lilith deps preserved (same Verdaccio).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>