UNPKG

@clerk/shared

Version:

Internal package utils used by the Clerk SDKs

50 lines (48 loc) 1.92 kB
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); const require_noop = require('../../../_chunks/noop-DCQKAlxF.js'); const require_internal_clerk_js_passwords_complexity = require('./complexity.js'); const require_internal_clerk_js_passwords_strength = require('./strength.js'); //#region src/internal/clerk-js/passwords/password.ts const createValidatePassword = (loadZxcvbn, config, callbacks) => { const { onValidation = require_noop.noop, onValidationComplexity = require_noop.noop } = callbacks || {}; const { show_zxcvbn, validatePassword: validatePasswordProp } = config; const getComplexity = require_internal_clerk_js_passwords_complexity.createValidateComplexity(config); const getScore = require_internal_clerk_js_passwords_strength.createValidatePasswordStrength(config); let result = {}; return (password, internalCallbacks) => { const { onValidation: internalOnValidation = onValidation, onValidationComplexity: internalOnValidationComplexity = onValidationComplexity } = internalCallbacks || {}; if (!validatePasswordProp) return; /** * Validate Complexity */ const failedValidationsComplexity = getComplexity(password); internalOnValidationComplexity(Object.keys(failedValidationsComplexity).length === 0); result = { ...result, complexity: failedValidationsComplexity }; /** * Validate score */ if (show_zxcvbn) /** * Lazy load zxcvbn without preventing a complexityError to be thrown if it exists */ loadZxcvbn().then((zxcvbn) => { const strength = getScore(zxcvbn)(password); result = { ...result, strength }; internalOnValidation({ ...result, strength }); }); if (result.complexity && Object.keys(result.complexity).length === 0 && show_zxcvbn) return; internalOnValidation(result); }; }; //#endregion exports.createValidatePassword = createValidatePassword; //# sourceMappingURL=password.js.map