Compare commits

...

2 Commits

Author SHA1 Message Date
nBiqoz
a0e033b7eb fr 2025-09-07 13:39:30 +02:00
nBiqoz
f3c2cb6ff5 fr 2025-09-07 13:36:00 +02:00

View File

@@ -252,13 +252,13 @@ export async function POST(req: NextRequest) {
) => {
const replacementMap: Record<string, string> = {};
// Créer une copie du texte anonymisé pour le traitement
const workingText = anonymizedText; // ✅ Changé de 'let' à 'const'
// Supprimer workingOriginal car elle n'est jamais utilisée
// Approche simple : comparer caractère par caractère
let originalIndex = 0;
let anonymizedIndex = 0;
// Trier les résultats par position (du plus grand au plus petit pour éviter les décalages)
// Trier les résultats par position
const sortedResults = [...analyzerResults].sort(
(a, b) => b.start - a.start
(a, b) => a.start - b.start
);
for (const result of sortedResults) {
@@ -267,30 +267,42 @@ export async function POST(req: NextRequest) {
result.end
);
// Extraire les parties avant et après l'entité dans le texte original
const beforeOriginal = originalText.substring(0, result.start);
const afterOriginal = originalText.substring(result.end);
// Avancer jusqu'à la position de l'entité dans le texte original
while (originalIndex < result.start) {
originalIndex++;
anonymizedIndex++;
}
// Trouver les mêmes parties dans le texte anonymisé
const beforeIndex = workingText.indexOf(beforeOriginal);
const afterIndex = workingText.lastIndexOf(afterOriginal);
if (beforeIndex !== -1 && afterIndex !== -1) {
// Extraire la valeur de remplacement entre ces deux parties
const startPos = beforeIndex + beforeOriginal.length;
const endPos = afterIndex;
const replacementValue = workingText.substring(startPos, endPos);
// Vérifier que c'est bien un remplacement (commence par [ et finit par ])
if (
replacementValue.startsWith("[") &&
replacementValue.endsWith("]")
// Maintenant on est au début de l'entité
// Dans le texte anonymisé, on doit avoir un remplacement qui commence par '['
if (anonymizedText[anonymizedIndex] === "[") {
// Trouver la fin du remplacement (le ']')
let endBracket = anonymizedIndex;
while (
endBracket < anonymizedText.length &&
anonymizedText[endBracket] !== "]"
) {
replacementMap[originalValue] = replacementValue;
endBracket++;
}
endBracket++; // Inclure le ']'
const replacementValue = anonymizedText.substring(
anonymizedIndex,
endBracket
);
replacementMap[originalValue] = replacementValue;
// Avancer les index
originalIndex = result.end;
anonymizedIndex = endBracket;
} else {
// Si pas de '[', avancer normalement
originalIndex = result.end;
anonymizedIndex += result.end - result.start;
}
}
console.log("🔧 Valeurs de remplacement extraites:", replacementMap);
return replacementMap;
};