UNPKG

@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
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 };