"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.TextUtils = void 0;
class TextUtils {
    constructor() { }
    /**
    * Нормализует текст, приводит к нижнему регистру, удаляет переносы и табы, пробелы и двоеточия
    * @param text - текст для нормализации
    * @returns нормализованный текст
    */
    normalizeText(text) {
        return (text ?? '')
            .toLowerCase()
            .replace(/[\n\r\t]+/g, ' ') // заменяем переносы и табы на пробел
            .replace(/\s+/g, ' ') // все подряд идущие пробелы → один
            .trim();
    }
    /**
   * Нормализует текст для сравнения, удаляя пробелы вокруг определенных символов
   * для более гибкого сравнения (игнорирует различия в пробелах)
   * @param text - текст для нормализации
   * @returns нормализованный текст
   */
    normalizeTextForComparison(text) {
        return (text ?? '')
            .toLowerCase()
            .replace(/[\n\r\t]+/g, ' ') // заменяем переносы и табы на пробел
            .replace(/\s*[«»]\s*/g, '"') // заменяем типографские кавычки с пробелами на обычные без пробелов
            .replace(/\s*"\s*/g, '"') // удаляем пробелы вокруг обычных кавычек
            .replace(/\s*:\s*/g, ':') // удаляем пробелы вокруг двоеточий (до и после)
            .replace(/"\s+([а-яёa-z0-9])/gi, '"$1') // удаляем пробелы между кавычкой и буквой/цифрой
            .replace(/([а-яёa-z0-9])\s+"/gi, '$1"') // удаляем пробелы между буквой/цифрой и кавычкой
            .replace(/\s+/g, ' ') // все подряд идущие пробелы → один
            .trim();
    }
}
exports.TextUtils = TextUtils;
