{"version":3,"sources":["../src/validators/countries/brasil.ts"],"sourcesContent":["// Validation of CPF\r\nexport const validateCPF = (cpf: string): boolean => {\r\n  cpf = cpf.replace(/\\D/g, \"\");\r\n\r\n  if (cpf.length !== 11) return false;\r\n  if (/^(\\d)\\1{10}$/.test(cpf)) return false;\r\n\r\n  let sum = 0;\r\n  for (let i = 0; i < 9; i++) {\r\n    sum += parseInt(cpf.charAt(i)) * (10 - i);\r\n  }\r\n  let remainder = (sum * 10) % 11;\r\n  if (remainder === 10 || remainder === 11) remainder = 0;\r\n  if (remainder !== parseInt(cpf.charAt(9))) return false;\r\n\r\n  sum = 0;\r\n  for (let i = 0; i < 10; i++) {\r\n    sum += parseInt(cpf.charAt(i)) * (11 - i);\r\n  }\r\n  remainder = (sum * 10) % 11;\r\n  if (remainder === 10 || remainder === 11) remainder = 0;\r\n  if (remainder !== parseInt(cpf.charAt(10))) return false;\r\n\r\n  return true;\r\n};\r\n\r\n// Validation of CNPJ\r\nexport const validateCNPJ = (cnpj: string): boolean => {\r\n  cnpj = cnpj.replace(/\\D/g, \"\");\r\n\r\n  if (cnpj.length !== 14) return false;\r\n\r\n  if (/^(\\d)\\1{13}$/.test(cnpj)) return false;\r\n\r\n  let sum = 0;\r\n  let weight = 5;\r\n  for (let i = 0; i < 12; i++) {\r\n    sum += parseInt(cnpj.charAt(i)) * weight;\r\n    weight = weight === 2 ? 9 : weight - 1;\r\n  }\r\n  let remainder = sum % 11;\r\n  let digit1 = remainder < 2 ? 0 : 11 - remainder;\r\n\r\n  sum = 0;\r\n  weight = 6;\r\n  for (let i = 0; i < 13; i++) {\r\n    sum += parseInt(cnpj.charAt(i)) * weight;\r\n    weight = weight === 2 ? 9 : weight - 1;\r\n  }\r\n  remainder = sum % 11;\r\n  let digit2 = remainder < 2 ? 0 : 11 - remainder;\r\n\r\n  return (\r\n    digit1 === parseInt(cnpj.charAt(12)) && digit2 === parseInt(cnpj.charAt(13))\r\n  );\r\n};\r\n\r\n// Validation of phone number in Brazil\r\nexport const validatePhoneBR = (\r\n  phone: string,\r\n  requireCountryCode: boolean = false\r\n): boolean => {\r\n  const countryCodeRegex = requireCountryCode ? \"(\\\\+55|55)\" : \"(\\\\+55|55)?\";\r\n  const regex = new RegExp(\r\n    `^${countryCodeRegex}\\\\s?\\\\d{2}\\\\s?\\\\d{4,5}\\\\s?\\\\d{4}$`\r\n  );\r\n  return regex.test(phone);\r\n};\r\n"],"mappings":";AACO,IAAM,cAAc,CAAC,QAAyB;AACnD,QAAM,IAAI,QAAQ,OAAO,EAAE;AAE3B,MAAI,IAAI,WAAW,GAAI,QAAO;AAC9B,MAAI,eAAe,KAAK,GAAG,EAAG,QAAO;AAErC,MAAI,MAAM;AACV,WAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AAC1B,WAAO,SAAS,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK;AAAA,EACzC;AACA,MAAI,YAAa,MAAM,KAAM;AAC7B,MAAI,cAAc,MAAM,cAAc,GAAI,aAAY;AACtD,MAAI,cAAc,SAAS,IAAI,OAAO,CAAC,CAAC,EAAG,QAAO;AAElD,QAAM;AACN,WAAS,IAAI,GAAG,IAAI,IAAI,KAAK;AAC3B,WAAO,SAAS,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK;AAAA,EACzC;AACA,cAAa,MAAM,KAAM;AACzB,MAAI,cAAc,MAAM,cAAc,GAAI,aAAY;AACtD,MAAI,cAAc,SAAS,IAAI,OAAO,EAAE,CAAC,EAAG,QAAO;AAEnD,SAAO;AACT;AAGO,IAAM,eAAe,CAAC,SAA0B;AACrD,SAAO,KAAK,QAAQ,OAAO,EAAE;AAE7B,MAAI,KAAK,WAAW,GAAI,QAAO;AAE/B,MAAI,eAAe,KAAK,IAAI,EAAG,QAAO;AAEtC,MAAI,MAAM;AACV,MAAI,SAAS;AACb,WAAS,IAAI,GAAG,IAAI,IAAI,KAAK;AAC3B,WAAO,SAAS,KAAK,OAAO,CAAC,CAAC,IAAI;AAClC,aAAS,WAAW,IAAI,IAAI,SAAS;AAAA,EACvC;AACA,MAAI,YAAY,MAAM;AACtB,MAAI,SAAS,YAAY,IAAI,IAAI,KAAK;AAEtC,QAAM;AACN,WAAS;AACT,WAAS,IAAI,GAAG,IAAI,IAAI,KAAK;AAC3B,WAAO,SAAS,KAAK,OAAO,CAAC,CAAC,IAAI;AAClC,aAAS,WAAW,IAAI,IAAI,SAAS;AAAA,EACvC;AACA,cAAY,MAAM;AAClB,MAAI,SAAS,YAAY,IAAI,IAAI,KAAK;AAEtC,SACE,WAAW,SAAS,KAAK,OAAO,EAAE,CAAC,KAAK,WAAW,SAAS,KAAK,OAAO,EAAE,CAAC;AAE/E;AAGO,IAAM,kBAAkB,CAC7B,OACA,qBAA8B,UAClB;AACZ,QAAM,mBAAmB,qBAAqB,eAAe;AAC7D,QAAM,QAAQ,IAAI;AAAA,IAChB,IAAI,gBAAgB;AAAA,EACtB;AACA,SAAO,MAAM,KAAK,KAAK;AACzB;","names":[]}