{"version":3,"file":"strength-DPtAse7d.mjs","names":["createValidatePasswordStrength: CreateValidatePasswordStrength"],"sources":["../../src/internal/clerk-js/passwords/strength.ts"],"sourcesContent":["import type { PasswordSettingsData, ZxcvbnResult } from '@/types';\n\ntype zxcvbnFN = (password: string, userInputs?: (string | number)[]) => ZxcvbnResult;\n\ntype PasswordStrength =\n | {\n state: 'excellent';\n result: ZxcvbnResult;\n }\n | {\n state: 'pass' | 'fail';\n keys: string[];\n result: ZxcvbnResult;\n };\n\ntype CreateValidatePasswordStrength = (\n options: Pick & { onResult?: (res: ZxcvbnResult) => void },\n) => (zxcvbn: zxcvbnFN) => (password: string) => PasswordStrength;\n\nexport const createValidatePasswordStrength: CreateValidatePasswordStrength = ({ min_zxcvbn_strength, onResult }) => {\n return zxcvbn => password => {\n const result = zxcvbn(password);\n onResult?.(result);\n\n if (result.score >= min_zxcvbn_strength && result.score < 3) {\n return {\n state: 'pass',\n keys: ['unstable__errors.zxcvbn.couldBeStronger'],\n result,\n };\n }\n\n if (result.score >= min_zxcvbn_strength) {\n return {\n state: 'excellent',\n result,\n };\n }\n\n return {\n state: 'fail',\n keys: [\n 'unstable__errors.zxcvbn.notEnough',\n ...result.feedback.suggestions.map(er => `unstable__errors.zxcvbn.suggestions.${er}` as any),\n ],\n result,\n };\n };\n};\n"],"mappings":";AAmBA,MAAaA,kCAAkE,EAAE,qBAAqB,eAAe;AACnH,SAAO,YAAU,aAAY;EAC3B,MAAM,SAAS,OAAO,SAAS;AAC/B,aAAW,OAAO;AAElB,MAAI,OAAO,SAAS,uBAAuB,OAAO,QAAQ,EACxD,QAAO;GACL,OAAO;GACP,MAAM,CAAC,0CAA0C;GACjD;GACD;AAGH,MAAI,OAAO,SAAS,oBAClB,QAAO;GACL,OAAO;GACP;GACD;AAGH,SAAO;GACL,OAAO;GACP,MAAM,CACJ,qCACA,GAAG,OAAO,SAAS,YAAY,KAAI,OAAM,uCAAuC,KAAY,CAC7F;GACD;GACD"}