@inso_web/els-mcp
Version:
MCP-сервер поверх INSO Error Logs Service. Read-only tools (search, analytics, fingerprinting, correlations) для подключения Claude Desktop/Code и ChatGPT к логам ошибок. Streamable HTTP transport + stdio для npx-запуска.
64 lines • 3.27 kB
TypeScript
/**
* Regex-паттерны и маскировщики для PII redaction.
*
* Контракт: все функции — pure (без side effects), принимают строку и
* возвращают строку с применённой маской. Поведение детерминировано;
* порядок применения — IP → email → JWT → credit card → phone, чтобы более
* специфичные совпадения (например IP внутри текста) не были разрушены
* последующими более «жадными» regex'ами.
*/
/** IPv4: четыре октета 0–255, разделены `.`. */
export declare const IPV4_RE: RegExp;
/**
* IPv6 (упрощённо): 2–8 групп hex, разделённых `:`, с поддержкой `::`-сжатия.
* Не идеально, но покрывает типичные случаи в логах. False-positives на адресах
* вида `aaaa:bbbb` принимаемы — мы перестрахуемся.
*/
export declare const IPV6_RE: RegExp;
/** Email: local-part + @ + domain. */
export declare const EMAIL_RE: RegExp;
/**
* JWT: три base64url-сегмента, разделённые точкой. Начало `eyJ` (header `{"`)
* добавлено как anchor для снижения false-positives.
*/
export declare const JWT_RE: RegExp;
/** Bearer/Authorization header value. */
export declare const BEARER_RE: RegExp;
/**
* Phone: loose — от 8 цифр, **обязательно** с `+` префиксом или хотя бы
* одним разделителем (пробел / скобка / дефис). Это исключает совпадения
* с длинными числовыми ID и неаутентичными номерами карт.
*/
export declare const PHONE_RE: RegExp;
/**
* Credit card: 13–19 цифр с опциональными разделителями. После regex применяем
* Luhn-check, чтобы не маскировать обычные числовые ID.
*/
export declare const CARD_RE: RegExp;
/**
* Заменить IPv4 на «анонимизированный»: 192.168.1.42 → 192.168.1.0.
* IPv6 → /64 prefix (первые 4 группы + ::).
*/
export declare function maskIpv4(ip: string): string;
export declare function maskIpv6(ip: string): string;
/** Luhn algorithm для credit card validation. */
export declare function luhnValid(digits: string): boolean;
export declare const REDACTION_TOKENS: {
readonly ip: "[IP_REDACTED]";
readonly email: "[EMAIL_REDACTED]";
readonly jwt: "[JWT_REDACTED]";
readonly bearer: "[BEARER_REDACTED]";
readonly phone: "[PHONE_REDACTED]";
readonly card: "[CARD_REDACTED]";
};
/**
* Применить все базовые правки к строке. Порядок важен (см. §1).
*
* Возвращает { value, fieldsHit } — массив имён полей, которые сработали
* (для метрик / `_meta.redactionFields`).
*/
export declare function redactString(input: string): {
value: string;
fieldsHit: string[];
};
//# sourceMappingURL=fields.d.ts.map