import svgCaptcha from "svg-captcha"; import { captchaCreate } from "./store"; import { env } from "env"; /** 易混淆字符已剔除,长度 5 */ const CHAR_PRESET = "abcdefghjkmnpqrstuvwxyz23456789"; export function createCaptchaChallenge(): { captchaId: string; imageSvg: string } { if (env.E2E_TEST_MODE === "true" && env.E2E_FIXED_CAPTCHA) { const { captchaId } = captchaCreate(env.E2E_FIXED_CAPTCHA); return { captchaId, imageSvg: "" }; } const { data: imageSvg, text } = svgCaptcha.create({ size: 5, noise: 2, color: true, charPreset: CHAR_PRESET, background: "#f4f4f5", }); const answerNormalized = text.toLowerCase(); const { captchaId } = captchaCreate(answerNormalized); return { captchaId, imageSvg }; }