@clerk/shared
Version:
Internal package utils used by the Clerk SDKs
50 lines (48 loc) • 1.92 kB
JavaScript
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