const { z } = require("zod"); // Règle de mot de passe, reprise à l'identique par le front // (frontend/src/utils/passwordRules.js) : plus de 7 caractères et au moins un // caractère spécial, c'est-à-dire ni lettre (accentuée comprise), ni chiffre, // ni espace. const SPECIAL_CHARACTER = /[^\p{L}\p{N}\s]/u; const passwordSchema = z .string() .min(8, "Le mot de passe doit contenir au moins 8 caractères") .regex(SPECIAL_CHARACTER, "Le mot de passe doit contenir au moins un caractère spécial"); // Pour les contrôleurs qui valident à la main : message de la première règle // non respectée, ou null si le mot de passe est valide. function passwordRuleError(password) { const result = passwordSchema.safeParse(password ?? ""); return result.success ? null : `${result.error.issues[0].message}.`; } module.exports = { passwordSchema, passwordRuleError, SPECIAL_CHARACTER };