This commit is contained in:
nBiqoz
2025-08-04 00:14:55 +02:00
parent b1de50cbc2
commit ad92302461
8 changed files with 371 additions and 222 deletions

View File

@@ -17,108 +17,97 @@ export const AnonymizationInterface = ({
const anonymizedTypes = new Set<string>();
// ✅ NOUVEAUX PATTERNS PRESIDIO
// Correspondance exacte avec les patterns de highlightEntities.tsx
// Noms (PERSON)
// PERSON -> Prénoms/Noms
// PERSON -> Prénoms, Noms de famille ET Noms complets
if (outputText.includes("<PERSON>")) {
anonymizedTypes.add("Prénoms");
anonymizedTypes.add("Noms de famille");
anonymizedTypes.add("Noms complets");
}
// Emails (EMAIL_ADDRESS)
// EMAIL_ADDRESS -> Adresses e-mail
if (outputText.includes("<EMAIL_ADDRESS>")) {
anonymizedTypes.add("Adresses e-mail");
}
// Téléphones (PHONE_NUMBER)
// PHONE_NUMBER -> Numéros de téléphone
if (outputText.includes("<PHONE_NUMBER>")) {
anonymizedTypes.add("Numéros de téléphone");
}
// Adresses (LOCATION)
// BE_PHONE_NUMBER -> aussi Numéros de téléphone
if (outputText.includes("<BE_PHONE_NUMBER>")) {
anonymizedTypes.add("Numéros de téléphone");
}
// LOCATION -> Adresses
if (outputText.includes("<LOCATION>")) {
anonymizedTypes.add("Adresses");
}
// IBAN (IBAN)
if (outputText.includes("<IBAN>")) {
anonymizedTypes.add("Numéros d'ID"); // Ou créer une nouvelle catégorie "IBAN"
// BE_ADDRESS -> aussi Adresses
if (outputText.includes("<BE_ADDRESS>")) {
anonymizedTypes.add("Adresses");
}
// Organisations (ORGANIZATION)
if (outputText.includes("<ORGANIZATION>")) {
anonymizedTypes.add("Noms de domaine"); // Ou adapter selon vos besoins
}
// Dates personnalisées (CUSTOM_DATE)
if (outputText.includes("<CUSTOM_DATE>")) {
// FLEXIBLE_DATE ou DATE_TIME -> Dates
if (
outputText.includes("<FLEXIBLE_DATE>") ||
outputText.includes("<DATE_TIME>")
) {
anonymizedTypes.add("Dates");
}
// Numéros d'entreprise belges (BE_ENTERPRISE_NUMBER)
// IBAN -> Coordonnées bancaires (au lieu de Numéros d'ID)
if (outputText.includes("<IBAN>")) {
anonymizedTypes.add("Coordonnées bancaires");
}
// CREDIT_CARD -> aussi Coordonnées bancaires (au lieu de Valeurs numériques)
if (outputText.includes("<CREDIT_CARD>")) {
anonymizedTypes.add("Coordonnées bancaires");
}
// NRP -> Numéros d'ID
if (outputText.includes("<NRP>")) {
anonymizedTypes.add("Numéros d'ID");
}
// BE_PRO_ID -> Numéros d'ID
if (outputText.includes("<BE_PRO_ID>")) {
anonymizedTypes.add("Numéros d'ID");
}
// BE_ENTERPRISE_NUMBER -> Numéros d'ID
if (outputText.includes("<BE_ENTERPRISE_NUMBER>")) {
anonymizedTypes.add("Numéros d'ID");
}
// ✅ ANCIENS PATTERNS (pour compatibilité)
// Noms (anciens patterns [Nom1], [Nom2]...)
if (outputText.includes("[Nom1]") || outputText.includes("[Nom")) {
anonymizedTypes.add("Prénoms");
anonymizedTypes.add("Noms de famille");
anonymizedTypes.add("Noms complets");
}
// Emails (anciens patterns)
if (outputText.includes("[Email1]") || outputText.includes("[Email")) {
anonymizedTypes.add("Adresses e-mail");
}
// Téléphones (anciens patterns)
if (
outputText.includes("[Téléphone1]") ||
outputText.includes("[Téléphone")
) {
anonymizedTypes.add("Numéros de téléphone");
}
// Adresses (anciens patterns)
if (outputText.includes("[Adresse1]") || outputText.includes("[Adresse")) {
anonymizedTypes.add("Adresses");
}
// Numéros d'ID / Sécurité sociale (anciens patterns)
if (
outputText.includes("[NuméroSS1]") ||
outputText.includes("[NuméroSS") ||
outputText.includes("[ID")
) {
anonymizedTypes.add("Numéros d'ID");
}
// Valeurs monétaires
if (outputText.includes("[Montant") || /\[\d+[€$]\]/.test(outputText)) {
anonymizedTypes.add("Valeurs monétaires");
}
// Noms de domaine
if (outputText.includes("[Domaine") || /\[.*\.com\]/.test(outputText)) {
// URL -> Noms de domaine
if (outputText.includes("<URL>")) {
anonymizedTypes.add("Noms de domaine");
}
// Valeurs numériques
if (
/\[\d+\]/.test(outputText) &&
!outputText.includes("[Téléphone") &&
!outputText.includes("[Montant")
) {
// CREDIT_CARD -> Coordonnées bancaires (supprimer la duplication)
if (outputText.includes("<CREDIT_CARD>")) {
anonymizedTypes.add("Coordonnées bancaires");
}
// Supprimer cette ligne dupliquée :
// if (outputText.includes("<CREDIT_CARD>")) {
// anonymizedTypes.add("Valeurs numériques");
// }
// IP_ADDRESS -> Valeurs numériques
if (outputText.includes("<IP_ADDRESS>")) {
anonymizedTypes.add("Valeurs numériques");
}
// Texte personnalisé (si du texte a été modifié mais pas avec les patterns spécifiques)
if (sourceText !== outputText && anonymizedTypes.size === 0) {
anonymizedTypes.add("Texte personnalisé");
// BE_VAT -> Valeurs numériques
if (outputText.includes("<BE_VAT>")) {
anonymizedTypes.add("Valeurs numériques");
}
return anonymizedTypes;
@@ -133,7 +122,7 @@ export const AnonymizationInterface = ({
items: ["Noms de famille", "Adresses", "Dates"],
},
{
items: ["Noms complets", "Numéros d'ID", "Valeurs numériques"],
items: ["Noms complets", "Numéros d'ID", "Coordonnées bancaires"],
},
{
items: ["Adresses e-mail", "Valeurs monétaires", "Texte personnalisé"],