/** * 请求密码重置:只有已注册邮箱可以接收重置验证码。 */ import { AuthError } from './errors.js' /** * @param {Object} deps * @param {import('./index.js').UserRepo} deps.userRepo * @param {(args: { email: string, purpose: 'reset', locale?: string, ip?: string }) => Promise<{ ok: true }>} deps.sendCode * @returns {(args: { email: string, locale?: string, ip?: string }) => Promise<{ ok: true }>} */ export function makeRequestPasswordReset({ userRepo, sendCode }) { return async function requestPasswordReset({ email, locale, ip }) { const normalized = String(email).trim().toLowerCase() const user = await userRepo.findByEmail(normalized) if (!user) throw new AuthError({ code: 'USER_NOT_FOUND' }) return sendCode({ email: normalized, purpose: 'reset', locale, ip, }) } }