47 lines
1.7 KiB
JavaScript
47 lines
1.7 KiB
JavaScript
"use strict";
|
||
Object.defineProperty(exports, "__esModule", { value: true });
|
||
exports.isLikelyFinancialInstitutionCounterparty = isLikelyFinancialInstitutionCounterparty;
|
||
exports.counterpartyRoleHintForName = counterpartyRoleHintForName;
|
||
const FINANCIAL_INSTITUTION_PATTERNS = [
|
||
/(?:^|[\s"«(,-])банк(?:$|[\s"»),.-])/u,
|
||
/сбербанк/u,
|
||
/(?:^|[\s"«(,-])сбер(?:$|[\s"»),.-])/u,
|
||
/(?:^|[\s"«(,-])втб(?:$|[\s"»),.-])/u,
|
||
/альфа[\s-]*банк/u,
|
||
/тинькофф/u,
|
||
/(?:^|[\s"«(,-])т[\s-]*банк(?:$|[\s"»),.-])/u,
|
||
/газпромбанк/u,
|
||
/росбанк/u,
|
||
/райффайзен/u,
|
||
/совкомбанк/u,
|
||
/промсвязьбанк/u,
|
||
/(?:^|[\s"«(,-])псб(?:$|[\s"»),.-])/u,
|
||
/(?:^|[\s"«(,-])мкб(?:$|[\s"»),.-])/u,
|
||
/ак[\s-]*барс/u,
|
||
/уралсиб/u,
|
||
/юникредит/u,
|
||
/почта[\s-]*банк/u,
|
||
/(?:^|[\s"«(,-])открытие(?:$|[\s"»),.-])/u,
|
||
/кредитн(?:ая|ый|ое|ые)\s+организац/u
|
||
];
|
||
function normalizeCounterpartyRoleText(value) {
|
||
return String(value ?? "")
|
||
.toLowerCase()
|
||
.replace(/ё/g, "е")
|
||
.replace(/[._]+/g, " ")
|
||
.replace(/\s+/g, " ")
|
||
.trim();
|
||
}
|
||
function isLikelyFinancialInstitutionCounterparty(value) {
|
||
const normalized = normalizeCounterpartyRoleText(value);
|
||
if (!normalized) {
|
||
return false;
|
||
}
|
||
return FINANCIAL_INSTITUTION_PATTERNS.some((pattern) => pattern.test(normalized));
|
||
}
|
||
function counterpartyRoleHintForName(value) {
|
||
return isLikelyFinancialInstitutionCounterparty(value)
|
||
? "bank_or_financial_institution"
|
||
: "ordinary_counterparty";
|
||
}
|