{"name":"auth-worker","version":"1.0.0","endpoints":[{"path":"/health","method":"GET","description":"Health check endpoint"},{"path":"/otp/generate","method":"POST","description":"Generate and store OTP for email","body":{"email":"string"}},{"path":"/otp/verify","method":"POST","description":"Verify OTP for email","body":{"email":"string","otp":"string"}},{"path":"/otp/status/:email","method":"GET","description":"Get OTP status for email"},{"path":"/otp/:email","method":"DELETE","description":"Delete OTP for email (admin endpoint)"},{"path":"/email/send-verification","method":"POST","description":"Send verification email manually","body":{"email":"string","otp":"string","expiryMinutes":"number (optional)"}},{"path":"/auth/validate","method":"POST","description":"Validate JWT","body":{"token":"string"}},{"path":"/auth/refresh","method":"POST","description":"Refresh JWT","body":{"token":"string"}},{"path":"/passkey/register/options","method":"POST","description":"Begin passkey registration (requires Authorization: Bearer <JWT>)"},{"path":"/passkey/register/verify","method":"POST","description":"Complete passkey registration (requires Authorization: Bearer <JWT>)","body":{"response":"RegistrationResponseJSON","name":"string (optional)"}},{"path":"/passkey/authenticate/options","method":"POST","description":"Begin passkey authentication; returns sessionId + options","body":{"email":"string (optional)"}},{"path":"/passkey/authenticate/verify","method":"POST","description":"Complete passkey authentication; returns JWT on success","body":{"sessionId":"string","response":"AuthenticationResponseJSON"}},{"path":"/passkey/list","method":"GET","description":"List the authenticated user's passkeys (requires Authorization: Bearer <JWT>)"},{"path":"/passkey/:credentialId","method":"DELETE","description":"Delete a passkey owned by the authenticated user (requires Authorization: Bearer <JWT>)"}]}