Break out contact form into separate component and implement OTP and rate

limiting, add iconify-icon dependency

Add src/components/ContactForm.astro implementing OTP verify/send flows and
server-side validation Add src/lib/Otp.ts (otplib-backed) with per-hour OTP and
per-week message rate limits and helper functions Expose OTP_SUPER_SECRET_SALT
in astro.config and add otplib Rename src/lib/cap.ts to src/lib/CapAdapter.ts
and update imports Replace inline contact page logic with ContactForm and adjust
SMS client Add iconify-icon dependency
This commit is contained in:
badblocks 2026-01-09 10:25:15 -08:00
parent d5a7887ad2
commit 72e57fb7ff
No known key found for this signature in database
10 changed files with 516 additions and 129 deletions

View file

@ -28,6 +28,8 @@
"astro": "^5.16.6",
"astro-htmx": "^1.0.6",
"htmx.org": "^2.0.8",
"iconify-icon": "^3.0.2",
"otplib": "^12.0.1",
"typescript": "^5.9.3"
},
"devDependencies": {