{"version":3,"file":"strong-password-rule.mjs","names":[],"sources":["../../../../../../../../@warlock.js/seal/src/rules/string/strong-password-rule.ts"],"sourcesContent":["import { invalidRule, VALID_RULE } from \"../../helpers\";\r\nimport type { SchemaRule } from \"../../types\";\r\n\r\n/**\r\n * Strong Password rule - validates password strength\r\n * Requirements:\r\n * - At least 8 characters\r\n * - At least 1 uppercase letter\r\n * - At least 1 lowercase letter\r\n * - At least 1 number\r\n * - At least 1 special character\r\n */\r\nexport const strongPasswordRule: SchemaRule<{ minLength?: number }> = {\r\n  name: \"strongPassword\",\r\n  defaultErrorMessage:\r\n    \"The :input must be at least 8 characters and contain at least one uppercase letter, one lowercase letter, one number, and one special character\",\r\n  async validate(value: any, context) {\r\n    const password = String(value);\r\n    const minLength = this.context.options.minLength ?? 8;\r\n\r\n    // Check minimum length\r\n    if (password.length < minLength) {\r\n      return invalidRule(this, context);\r\n    }\r\n\r\n    // Check for at least one uppercase letter\r\n    if (!/[A-Z]/.test(password)) {\r\n      return invalidRule(this, context);\r\n    }\r\n\r\n    // Check for at least one lowercase letter\r\n    if (!/[a-z]/.test(password)) {\r\n      return invalidRule(this, context);\r\n    }\r\n\r\n    // Check for at least one number\r\n    if (!/[0-9]/.test(password)) {\r\n      return invalidRule(this, context);\r\n    }\r\n\r\n    // Check for at least one special character\r\n    if (!/[!@#$%^&*()_+\\-=[\\]{};':\"\\\\|,.<>/?]/.test(password)) {\r\n      return invalidRule(this, context);\r\n    }\r\n\r\n    return VALID_RULE;\r\n  },\r\n};\r\n"],"mappings":";;;;;;;;;;;;;AAYA,MAAa,qBAAyD;CACpE,MAAM;CACN,qBACE;CACF,MAAM,SAAS,OAAY,SAAS;EAClC,MAAM,WAAW,OAAO,KAAK;EAC7B,MAAM,YAAY,KAAK,QAAQ,QAAQ,aAAa;EAGpD,IAAI,SAAS,SAAS,WACpB,OAAO,YAAY,MAAM,OAAO;EAIlC,IAAI,CAAC,QAAQ,KAAK,QAAQ,GACxB,OAAO,YAAY,MAAM,OAAO;EAIlC,IAAI,CAAC,QAAQ,KAAK,QAAQ,GACxB,OAAO,YAAY,MAAM,OAAO;EAIlC,IAAI,CAAC,QAAQ,KAAK,QAAQ,GACxB,OAAO,YAAY,MAAM,OAAO;EAIlC,IAAI,CAAC,sCAAsC,KAAK,QAAQ,GACtD,OAAO,YAAY,MAAM,OAAO;EAGlC,OAAO;CACT;AACF"}