Aller au contenu

Vous lisez la documentation de la version 0.6, qui n'est pas la dernière publiée.

Masquer les secrets

redact masque les correspondances dans le message rendu — console du navigateur, terminal de développement et SSR — en les remplaçant par [redacted]. Le masquage s'applique à la charge utile sérialisée, donc les valeurs d'objets imbriqués sont couvertes aussi.

ts
mtDebug({
  redact: [
    "supersecret", // chaîne littérale, toutes les occurrences
    /x-api-key:\s*\S+/, // RegExp, appliquée globalement
    /("password"\s*:\s*)"[^"]*"/, // $1 conservé → seule la valeur est masquée
  ],
  redactDefaults: true, // masque aussi JWT, jetons Bearer, e-mails, clés sk_/pk_, valeurs JSON secrètes
});
ts
$debug("info", { user: "ada@example.com", token: "Bearer abc.def" });
// MARS-TECH Info - {"user":"[redacted]","token":[redacted]}   (avec redactDefaults)

Le motif par défaut des valeurs JSON secrètes remplace toute la valeur entre guillemets de clés comme token ou password, guillemets compris : c'est pourquoi token affiche [redacted] sans guillemets.

Une RegExp est appliquée avec le drapeau global forcé ; si elle porte un groupe de capture $1, ce groupe est conservé et seul le reste de la correspondance est remplacé. redactDefaults est facultatif (désactivé par défaut) — il privilégie les motifs à forte confiance et évite les suites de chiffres nues pour ne pas avaler les identifiants de commande et les horodatages.

En 0.6, le masquage ne s'applique qu'au message : la pile d'appels affichée avec showStack: true n'est pas masquée (corrigé en 1.0).