{"version":3,"sources":["../../src/manual/generics-countries.ts"],"sourcesContent":["import { ValidationResult, UsernameValidationOptions, UserValidationOptions, EmailValidationOptions, PasswordValidationOptions, AgeValidationOptions } from \"../types\";\r\nimport {\r\n  validateUsername,\r\n  validateUser,\r\n  validateEmail,\r\n  validatePassword,\r\n  validateBirthDate,\r\n  validateAge,\r\n} from \"../validators/generics.js\";\r\nimport {\r\n  validateNIFAO,\r\n  validatePhoneAO,\r\n} from \"../validators/countries/angola.js\";\r\nimport {\r\n  validateCPF,\r\n  validateCNPJ,\r\n  validatePhoneBR,\r\n} from \"../validators/countries/brasil\";\r\nimport {\r\n  validateSSN,\r\n  validatePhoneUS,\r\n  validateZIPCode,\r\n} from \"../validators/countries/usa\";\r\n\r\ntype TestCase<T> = {\r\n  description: string;\r\n  value: any;\r\n  options?: T;\r\n  expected: boolean;\r\n  requireCountryCode?: boolean;\r\n};\r\n\r\nconst runTest = <T>(\r\n  label: string,\r\n  testCases: TestCase<T>[],\r\n  validator: (value: any, options?: T) => ValidationResult\r\n) => {\r\n  console.log(`\\n🔵 Testing ${label}:`);\r\n  testCases.forEach(({ description, value, options, expected }) => {\r\n    const result = validator(value, options).valid;\r\n    console.log(\r\n      `${result ? \"✅\" : \"❌\"} ${description}: \"${value}\" → ${\r\n        result ? \"✅\" : \"❌\"\r\n      }`\r\n    );\r\n  });\r\n};\r\n\r\nconst runTestCountries = (\r\n  label: string,\r\n  testCases: TestCase<undefined>[],\r\n  validator: (value: any) => boolean\r\n) => {\r\n  console.log(`\\n🔵 Testing ${label}:`);\r\n  testCases.forEach(({ description, value, expected }) => {\r\n    const result = validator(value);\r\n    console.log(\r\n      `${result ? \"✅\" : \"❌\"} ${description}: \"${value}\" → ${\r\n        result ? \"✅\" : \"❌\"\r\n      }`\r\n    );\r\n  });\r\n};\r\n\r\n// Username Validation\r\nrunTest<UsernameValidationOptions>(\r\n  \"Username\",\r\n  [\r\n    { description: \"Valid username\", value: \"otoniel123\", expected: true },\r\n    { description: \"Too short\", value: \"ot\", expected: false },\r\n    {\r\n      description: \"Too long\",\r\n      value: \"otoniel_emanuel_luanda_dev\",\r\n      expected: false,\r\n    },\r\n    { description: \"Invalid characters\", value: \"otoniel!@#\", expected: false },\r\n    {\r\n      description: \"Contains banned word\",\r\n      value: \"badwordUser\",\r\n      options: { bannedWords: [\"badword\"] },\r\n      expected: false,\r\n    },\r\n    {\r\n      description: \"Custom length (5-15)\",\r\n      value: \"otoni123\",\r\n      options: { min: 5, max: 15 },\r\n      expected: true,\r\n    },\r\n  ],\r\n  validateUsername\r\n);\r\n\r\n// User Validation\r\nrunTest<UserValidationOptions>(\r\n  \"User\",\r\n  [\r\n    { description: \"Valid name\", value: \"Otoniel\", expected: true },\r\n    { description: \"Too short\", value: \"O\", expected: false },\r\n    {\r\n      description: \"Banned word\",\r\n      value: \"HackerMaster\",\r\n      options: { bannedWords: [\"Hacker\"] },\r\n      expected: false,\r\n    },\r\n    {\r\n      description: \"Custom allowed special chars\",\r\n      value: \"D'Angelo\",\r\n      options: { allowSpecialChars: \"'-\" },\r\n      expected: true,\r\n    },\r\n  ],\r\n  validateUser\r\n);\r\n\r\n// Email Validation\r\nrunTest<EmailValidationOptions>(\r\n  \"Email\",\r\n  [\r\n    { description: \"Valid email\", value: \"test@example.com\", expected: true },\r\n    { description: \"Invalid format\", value: \"invalid-email\", expected: false },\r\n    {\r\n      description: \"Not in allowed domains\",\r\n      value: \"user@gmail.com\",\r\n      options: { allowedDomains: [\"outlook.com\"] },\r\n      expected: false,\r\n    },\r\n    {\r\n      description: \"Allowed domain\",\r\n      value: \"user@outlook.com\",\r\n      options: { allowedDomains: [\"outlook.com\"] },\r\n      expected: true,\r\n    },\r\n  ],\r\n  validateEmail\r\n);\r\n\r\n// Password Validation\r\nrunTest<PasswordValidationOptions>(\r\n  \"Password\",\r\n  [\r\n    { description: \"Valid password\", value: \"Pass1234!\", expected: true },\r\n    { description: \"Too short\", value: \"short1!\", expected: false },\r\n    {\r\n      description: \"Missing special character\",\r\n      value: \"Password123\",\r\n      expected: false,\r\n    },\r\n    {\r\n      description: \"Contains banned word\",\r\n      value: \"badpassword!\",\r\n      options: { bannedWords: [\"badpassword\"] },\r\n      expected: false,\r\n    },\r\n    {\r\n      description: \"Custom length (12-50)\",\r\n      value: \"StrongPass123!\",\r\n      options: { min: 12, max: 50 },\r\n      expected: true,\r\n    },\r\n  ],\r\n  validatePassword\r\n);\r\n\r\n// Birth Date Validation\r\nrunTest<undefined>(\r\n  \"Birth Date\",\r\n  [\r\n    { description: \"Valid birthdate\", value: \"2000-01-01\", expected: true },\r\n    { description: \"Future date\", value: \"2050-01-01\", expected: false },\r\n    { description: \"Invalid format\", value: \"not-a-date\", expected: false },\r\n  ],\r\n  validateBirthDate\r\n);\r\n\r\n// Age Validation\r\nrunTest<AgeValidationOptions>(\r\n  \"Age\",\r\n  [\r\n    { description: \"Valid age\", value: 25, expected: true },\r\n    { description: \"Too high\", value: 150, expected: false },\r\n    { description: \"Negative age\", value: -5, expected: false },\r\n    {\r\n      description: \"Below minimum age\",\r\n      value: 18,\r\n      options: { min: 21 },\r\n      expected: false,\r\n    },\r\n    {\r\n      description: \"Above maximum age\",\r\n      value: 40,\r\n      options: { max: 35 },\r\n      expected: false,\r\n    },\r\n  ],\r\n  validateAge\r\n);\r\n\r\n// Tests for Angola\r\nrunTestCountries(\r\n  \"Angola - NIF\",\r\n  [\r\n    { description: \"Valid NIF\", value: \"123456789\", expected: true },\r\n    {\r\n      description: \"Invalid NIF (letters)\",\r\n      value: \"ABC123456\",\r\n      expected: false,\r\n    },\r\n  ],\r\n  validateNIFAO\r\n);\r\n\r\nrunTestCountries(\r\n  \"Angola - Phone\",\r\n  [\r\n    {\r\n      description: \"Valid number\",\r\n      value: \"+244923456789\",\r\n      expected: true,\r\n      requireCountryCode: true,\r\n    },\r\n    {\r\n      description: \"Invalid number (short)\",\r\n      value: \"92345\",\r\n      expected: false,\r\n      requireCountryCode: true,\r\n    },\r\n    {\r\n      description: \"Number with spaces\",\r\n      value: \"+244 923 456 789\",\r\n      expected: true,\r\n      requireCountryCode: true,\r\n    },\r\n    {\r\n      description: \"Number with separators\",\r\n      value: \"+244-923-456-789\",\r\n      expected: false,\r\n      requireCountryCode: true,\r\n    },\r\n    {\r\n      description: \"Number longer than expected\",\r\n      value: \"+244923456789123\",\r\n      expected: false,\r\n      requireCountryCode: true,\r\n    },\r\n    {\r\n      description: \"Number without country code\",\r\n      value: \"923456789\",\r\n      expected: true,\r\n      requireCountryCode: false,\r\n    },\r\n    {\r\n      description: \"Number without country code\",\r\n      value: \"923 456 789\",\r\n      expected: true,\r\n      requireCountryCode: false,\r\n    },\r\n  ],\r\n  validatePhoneAO\r\n);\r\n\r\n// Tests for Brazil\r\nrunTestCountries(\r\n  \"Brazil - CPF\",\r\n  [\r\n    { description: \"Valid CPF\", value: \"123.456.789-09\", expected: true },\r\n    {\r\n      description: \"Invalid CPF (repeated sequence)\",\r\n      value: \"111.111.111-11\",\r\n      expected: false,\r\n    },\r\n  ],\r\n  validateCPF\r\n);\r\n\r\nrunTestCountries(\r\n  \"Brazil - CNPJ\",\r\n  [\r\n    { description: \"Valid CNPJ\", value: \"12.345.678/0001-95\", expected: true },\r\n    {\r\n      description: \"Invalid CNPJ (incorrect length)\",\r\n      value: \"12345\",\r\n      expected: false,\r\n    },\r\n  ],\r\n  validateCNPJ\r\n);\r\n\r\nrunTestCountries(\r\n  \"Brazil - Phone\",\r\n  [\r\n    {\r\n      description: \"Valid number\",\r\n      value: \"+5511987654321\",\r\n      expected: true,\r\n      requireCountryCode: true,\r\n    },\r\n    {\r\n      description: \"Invalid number (short)\",\r\n      value: \"1198765\",\r\n      expected: false,\r\n      requireCountryCode: true,\r\n    },\r\n    {\r\n      description: \"Number with spaces\",\r\n      value: \"+55 11 98765 4321\",\r\n      expected: true,\r\n      requireCountryCode: true,\r\n    },\r\n    {\r\n      description: \"Number with separators\",\r\n      value: \"+55-11-98765-4321\",\r\n      expected: false,\r\n      requireCountryCode: true,\r\n    },\r\n    {\r\n      description: \"Number longer than expected\",\r\n      value: \"+5511987654321123\",\r\n      expected: false,\r\n      requireCountryCode: true,\r\n    },\r\n    {\r\n      description: \"Number without country code\",\r\n      value: \"11987654321\",\r\n      expected: true,\r\n      requireCountryCode: false,\r\n    },\r\n    {\r\n      description: \"Number without country code\",\r\n      value: \"11 98765 4321\",\r\n      expected: true,\r\n      requireCountryCode: false,\r\n    },\r\n  ],\r\n  validatePhoneBR\r\n);\r\n\r\n// Tests for USA\r\nrunTestCountries(\r\n  \"USA - SSN\",\r\n  [\r\n    { description: \"Valid SSN\", value: \"123-45-6789\", expected: true },\r\n    {\r\n      description: \"Invalid SSN (wrong format)\",\r\n      value: \"123456789\",\r\n      expected: false,\r\n    },\r\n  ],\r\n  validateSSN\r\n);\r\n\r\nrunTestCountries(\r\n  \"USA - Phone\",\r\n  [\r\n    {\r\n      description: \"Valid number\",\r\n      value: \"+11234567890\",\r\n      expected: true,\r\n      requireCountryCode: true,\r\n    },\r\n    {\r\n      description: \"Invalid number (short)\",\r\n      value: \"12345\",\r\n      expected: false,\r\n      requireCountryCode: true,\r\n    },\r\n    {\r\n      description: \"Number with spaces\",\r\n      value: \"+1 123 456 7890\",\r\n      expected: true,\r\n      requireCountryCode: true,\r\n    },\r\n    {\r\n      description: \"Number with separators\",\r\n      value: \"+1-123-456-7890\",\r\n      expected: false,\r\n      requireCountryCode: true,\r\n    },\r\n    {\r\n      description: \"Number longer than expected\",\r\n      value: \"+11234567890123\",\r\n      expected: false,\r\n      requireCountryCode: true,\r\n    },\r\n    {\r\n      description: \"Number without country code\",\r\n      value: \"1234567890\",\r\n      expected: true,\r\n      requireCountryCode: false,\r\n    },\r\n    {\r\n      description: \"Number without country code\",\r\n      value: \"123 456 7890\",\r\n      expected: true,\r\n      requireCountryCode: false,\r\n    },\r\n  ],\r\n  validatePhoneUS\r\n);\r\n\r\nrunTestCountries(\r\n  \"USA - ZIP Code\",\r\n  [\r\n    { description: \"Valid ZIP\", value: \"12345\", expected: true },\r\n    { description: \"Invalid ZIP (short)\", value: \"12\", expected: false },\r\n  ],\r\n  validateZIPCode\r\n);\r\n\r\n// npm run build\r\n// node dist/manual/generics-countries.js"],"mappings":"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","names":[]}