@adyen/kyc-components
Version:
This guide assumes that you have already an account with Adyen. A legalEntity needs to be created, and you need to have a `legalEntityId` to instatiate a Component.
108 lines (107 loc) • 5.79 kB
JavaScript
try {
let e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "a02f46a9-dac3-4ceb-ab69-b0674125728b", e._sentryDebugIdIdentifier = "sentry-dbid-a02f46a9-dac3-4ceb-ab69-b0674125728b");
} catch (e) {}
var MAX_LENGTH = 30;
var getMaxLengthByFieldAndCountry = (formattingRules, field, country, ignoreIfFormatterExists) => {
if (!country) return void 0;
if (ignoreIfFormatterExists && formattingRules[country]?.[field]?.formatter) return;
return formattingRules[country]?.[field]?.maxlength || MAX_LENGTH;
};
var isUndefinedOrNull = (input) => input === void 0 || input === null;
var isEmpty = (input) => isUndefinedOrNull(input) || typeof input === "object" && Object.keys(input).length === 0 || typeof input === "string" && /^\s*$/.test(input);
var hasEmptyFields = (input) => input !== void 0 && (Object.keys(input).length === 0 || Object.values(input).some((value) => value === void 0 || value === null || value === ""));
var isAccountIdentifierObscured = (payload) => {
const accountIdentifier = payload?.type === "iban" ? payload.iban : payload?.accountNumber;
return Boolean(accountIdentifier) && accountIdentifier.includes("*");
};
var extractFieldName = (inputString) => {
const fieldNames = inputString?.split(".");
return fieldNames?.length > 0 ? fieldNames[fieldNames.length - 1] : "";
};
var concatenateFieldNames = (fieldNames) => fieldNames?.join(", ");
var isString = (input) => typeof input === "string" || input instanceof String;
var hasText = (input) => isString(input) && !isEmpty(input);
var SPECIAL_CHARS = "?\\-\\+_=!@#$%^&*(){}~<>\\[\\]\\/\\\\";
var getFormattingRegEx = (specChars, flags = "g") => new RegExp(`[${specChars}]`, flags);
var trimValWithOneSpace = (val) => val.trimStart().replace(/\s+/g, " ");
var EMOJI_REGEX = /(\p{Emoji}\uFE0F|\p{Emoji_Presentation}|\p{Extended_Pictographic})/gu;
var NO_ALPHABET_REGEX = /^[^a-zA-Z]*$/;
var NO_ALPHABET_UNICODE_REGEX = /^[^\p{L}]*$/u;
var INDIVIDUAL_VALID_CHAR_REGEX = /^[\p{L}\p{M}\d\s\-—./']*$/u;
var ADDRESS_VALID_CHAR_REGEX = /^[\p{L}\p{M}\d\s\-—.,/']*$/u;
var OTHER_ENTITIES_VALID_CHAR_REGEX = /^[\w\s,.;:\-—&!?@()"'/\\+\p{L}\p{M}]+$/u;
var LATIN_SPACE_MARK_PUNCTUATION_NUMBERS_REGEX = /^[\p{sc=Latin}\p{Zs}\p{M}\p{Punctuation}\p{N}]+$/u;
var matchesRegex = (regex, input) => isString(input) && regex.test(input ?? "");
var hasRepeatedCharacters = (input) => !isEmpty(input) && input.length > 1 && new Set(input.toLowerCase()).size === 1;
var hasMaximumTwoRepeatedCharacters = (input) => !isEmpty(input) && input.length > 2 && new Set(input.toLowerCase()).size === 1;
var isValidMinLength = (input, minLength = 1) => !isEmpty(input) && input.length >= minLength;
var isInvalidName = (input) => {
return new Set([
"John Doe",
"Jane Doe",
"ABCD",
"ABCDE",
"ABCDEF",
"ABCDEFG",
"My Customer",
"An other",
"n/a",
"not applicable",
"n/A",
"N/A",
"N/a",
"N\\ /A",
"not app",
"null"
]).has(input || "");
};
var standardKanjiValidator = (input) => {
const regex = /* @__PURE__ */ new RegExp("^[一-鿿㐀-䶿豈-ぁ-ゖァ-ヺー-ヿ0-9A-Za-z・ー‐-−’,.& Ⅰ-Ⅺ・-゚A-Za-z0-9,.& ]+$");
return !isEmpty(input) && regex.test(input);
};
var standardKatakanaValidator = (input) => {
const regex = /* @__PURE__ */ new RegExp("^[ァ-ヶㇰ-ㇿA-Za-z0-9・ー‐-−’,.& Ⅰ-Ⅺ・-゚A-Za-z0-9 ,.& へべぺ]+$");
return !isEmpty(input) && regex.test(input);
};
var chomeAndBanchiValidator = (input) => {
const regex = /* @__PURE__ */ new RegExp("^([0-9]{1,2}-[0-9]{1,3}|[0-9]{1,2}-[0-9]{1,3}-[0-9]{1,3})$");
return !isEmpty(input) && regex.test(input);
};
function assertString(input) {
if (input === void 0 || input === null) throw new TypeError(`Expected a string but received a ${input}`);
if (input.constructor.name !== "String") throw new TypeError(`Expected a string but received a ${input.constructor.name}`);
}
var isin = /^[A-Z]{2}[0-9A-Z]{9}[0-9]$/;
function isISIN(str) {
assertString(str);
if (!isin.test(str)) return false;
let double = true;
let sum = 0;
for (let i = str.length - 2; i >= 0; i--) {
const char = str[i];
if (char >= "A" && char <= "Z") {
const value = char.charCodeAt(0) - 55;
const lo = value % 10;
const hi = Math.trunc(value / 10);
for (const digit of [lo, hi]) {
if (double) if (digit >= 5) sum += 1 + (digit - 5) * 2;
else sum += digit * 2;
else sum += digit;
double = !double;
}
} else {
const digit = parseInt(char, 10);
if (double) if (digit >= 5) sum += 1 + (digit - 5) * 2;
else sum += digit * 2;
else sum += digit;
double = !double;
}
}
const check = Math.trunc((sum + 9) / 10) * 10 - sum;
const lastChar = str[str.length - 1];
if (lastChar === void 0 || isNaN(parseInt(lastChar, 10))) return false;
return parseInt(lastChar, 10) === check;
}
//#endregion
export { isValidMinLength as C, trimValWithOneSpace as D, standardKatakanaValidator as E, isUndefinedOrNull as S, standardKanjiValidator as T, hasText as _, NO_ALPHABET_REGEX as a, isISIN as b, SPECIAL_CHARS as c, extractFieldName as d, getFormattingRegEx as f, hasRepeatedCharacters as g, hasMaximumTwoRepeatedCharacters as h, LATIN_SPACE_MARK_PUNCTUATION_NUMBERS_REGEX as i, chomeAndBanchiValidator as l, hasEmptyFields as m, EMOJI_REGEX as n, NO_ALPHABET_UNICODE_REGEX as o, getMaxLengthByFieldAndCountry as p, INDIVIDUAL_VALID_CHAR_REGEX as r, OTHER_ENTITIES_VALID_CHAR_REGEX as s, ADDRESS_VALID_CHAR_REGEX as t, concatenateFieldNames as u, isAccountIdentifierObscured as v, matchesRegex as w, isInvalidName as x, isEmpty as y };