{
  "version": 3,
  "sources": ["../../Validators/mobile.js", "../../Validators/aadhar.js", "../../src/index.js", "../../Validators/email.js", "../../Validators/zipcode.js", "../../Validators/panCard.js", "../../Validators/gst.js", "../../Validators/passwordValidator.js", "../../Formatters/india/aadhar.js", "../../Formatters/india/licence-plate.js", "../../Formatters/india/phone.js", "../../Formatters/universal/currency.js", "../../Formatters/universal/creditcard.js"],
  "sourcesContent": ["// validators/phone.js\r\n\r\nexport default function validatePhone(number, countryCode) {\r\n    const patterns = {\r\n        IN: /^[6-9]\\d{9}$/,                     // India\r\n        US: /^([2-9][0-9]{2})[- ]?[2-9][0-9]{2}[- ]?[0-9]{4}$/, // USA\r\n        UK: /^(?:\\+44|0)7\\d{3}[- ]?\\d{6}$/,                      // UK\r\n        AU: /^(\\+61|0)?\\s?4\\d{2}[\\s-]?\\d{3}[\\s-]?\\d{3}$/,                // Australia\r\n        CA: /^\\(?\\d{3}\\)?[- ]?\\d{3}[- ]?\\d{4}$/,  // Canada\r\n    };\r\n\r\n    const pattern = patterns[countryCode.toUpperCase()];\r\n    return pattern ? pattern.test(number) : false;\r\n}\r\n\r\n\r\n\r\n ", "export default function validateAadhaar(aadhaar) {\r\n    if (typeof aadhaar !== 'string') return false;\r\n\r\n    const str = aadhaar.replace(/\\s+/g, ''); // remove spaces\r\n    if (!/^\\d{12}$/.test(str)) return false;\r\n\r\n    // Verhoeff algorithm to validate Aadhaar checksum\r\n    const d = [\r\n        [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],\r\n        [1, 2, 3, 4, 0, 6, 7, 8, 9, 5],\r\n        [2, 3, 4, 0, 1, 7, 8, 9, 5, 6],\r\n        [3, 4, 0, 1, 2, 8, 9, 5, 6, 7],\r\n        [4, 0, 1, 2, 3, 9, 5, 6, 7, 8],\r\n        [5, 9, 8, 7, 6, 0, 4, 3, 2, 1],\r\n        [6, 5, 9, 8, 7, 1, 0, 4, 3, 2],\r\n        [7, 6, 5, 9, 8, 2, 1, 0, 4, 3],\r\n        [8, 7, 6, 5, 9, 3, 2, 1, 0, 4],\r\n        [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]\r\n    ];\r\n    const p = [\r\n        [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],\r\n        [1, 5, 7, 6, 2, 8, 3, 0, 9, 4],\r\n        [5, 8, 0, 3, 7, 9, 6, 1, 4, 2],\r\n        [8, 9, 1, 6, 0, 4, 3, 5, 2, 7],\r\n        [9, 4, 5, 3, 1, 2, 6, 8, 7, 0],\r\n        [4, 2, 8, 6, 5, 7, 3, 9, 0, 1],\r\n        [2, 7, 9, 3, 8, 0, 6, 4, 1, 5],\r\n        [7, 0, 4, 6, 9, 1, 3, 2, 5, 8]\r\n    ];\r\n    const inv = [0, 4, 3, 2, 1, 5, 6, 7, 8, 9];\r\n\r\n    let c = 0;\r\n    for (let i = 0; i < str.length; i++) {\r\n        c = d[c][p[(i % 8)][parseInt(str.charAt(str.length - i - 1), 10)]];\r\n    }\r\n\r\n    return c === 0;\r\n};\r\n\r\n\r\n", "export { default as validateEmail } from '../Validators/email'\r\nexport { default as validateZipCode } from '../Validators/zipcode'\r\nexport { default as validatePanCard } from '../Validators/panCard'\r\nexport { default as validatePhone } from '../Validators/mobile'\r\nexport { default as validateGST } from '../Validators/gst'\r\nexport { default as validateAadhaar } from '../Validators/aadhar'\r\nexport { default as validateStrongPassword } from '../Validators/passwordValidator'\r\n\r\n\r\n// formatters  of india \r\nexport { default as formatAadhaar } from '../Formatters/india/aadhar'\r\nexport { default as formatLicensePlate } from '../Formatters/india/licence-plate'\r\nexport { default as formatPhoneIN } from '../Formatters/india/phone'\r\n\r\n\r\n// universal formatters \r\nexport { default as formatCurrency } from '../Formatters/universal/currency'\r\nexport { default as formatCreditCard } from '../Formatters/universal/creditcard'\r\n\r\n\r\n\r\n\r\n", "export default function validateEmail(email) {\r\n    if (typeof email !== 'string') return false;\r\n    const str = email.trim();\r\n\r\n    // Basic RFC 5322 simplified regex for email format\r\n    const regex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(\\.[a-zA-Z0-9-]+)*\\.[a-zA-Z]{2,}$/;\r\n    if (!regex.test(str)) return false;\r\n\r\n    // Additional checks:\r\n\r\n    // 1. No consecutive dots in local or domain parts\r\n    const [local, domain] = str.split('@');\r\n    if (local.includes('..') || domain.includes('..')) return false;\r\n\r\n    // 2. Local part cannot start or end with dot\r\n    if (local.startsWith('.') || local.endsWith('.')) return false;\r\n\r\n    // 3. Domain part cannot start or end with hyphen or dot\r\n    if (domain.startsWith('-') || domain.endsWith('-')) return false;\r\n    if (domain.startsWith('.') || domain.endsWith('.')) return false;\r\n\r\n    // 4. Domain labels (parts between dots) cannot start or end with hyphen\r\n    const domainLabels = domain.split('.');\r\n    if (domainLabels.some(label => label.startsWith('-') || label.endsWith('-'))) return false;\r\n\r\n    return true;\r\n};\r\n\r\n", "function isFakePattern(zip) {\r\n    // All digits same (e.g., 000000, 1111)\r\n    if (/^(\\d)\\1+$/.test(zip)) return true;\r\n\r\n    // Known fake-like sequences\r\n    const fakeSequences = ['123456', '987654', '1234', '9876'];\r\n    if (fakeSequences.includes(zip)) return true;\r\n\r\n    return false;\r\n}\r\n\r\nexport default function validateZipCode(zip, country) {\r\n    let regex;\r\n    switch (country.toLowerCase()) {\r\n        case 'us':\r\n            regex = /^\\d{5}(-\\d{4})?$/;\r\n            break;\r\n        case 'canada':\r\n            regex = /^[A-Za-z]\\d[A-Za-z][ ]?\\d[A-Za-z]\\d$/;\r\n            break;\r\n        case 'uk':\r\n            regex = /^[A-Z]{1,2}\\d[A-Z\\d]?\\s?\\d[A-Z]{2}$/i;\r\n            break;\r\n        case 'au':\r\n            regex = /^\\d{4}$/;\r\n            break;\r\n        case 'in':\r\n            regex = /^\\d{6}$/;\r\n            break;\r\n        default:\r\n            return false;\r\n    }\r\n\r\n    // Check format\r\n    if (!regex.test(zip)) return false;\r\n\r\n    // Check for fake numeric patterns\r\n    if (/^\\d+$/.test(zip) && isFakePattern(zip)) return false;\r\n\r\n    return true;\r\n}\r\n\r\n", "export default function validatePanCard(pan) {\r\n    if (typeof pan !== 'string' ) return false;\r\n\r\n    const str = pan.trim().toUpperCase();\r\n\r\n    if (str.length !== 10) return false;\r\n\r\n    // Basic pattern check: 5 letters, 4 digits, 1 letter\r\n    const regex = /^[A-Z]{5}[0-9]{4}[A-Z]$/;\r\n    if (!regex.test(str)) return false;\r\n\r\n    const validStatusCodes = ['P', 'C', 'H', 'A', 'B', 'G', 'J', 'L', 'F', 'T'];\r\n    if (!validStatusCodes.includes(str[3])) return false;\r\n\r\n    return true;\r\n};\r\n", "export default  function validateGST(gst) {\r\n    if (typeof gst !== 'string') return false;\r\n    const str = gst.trim().toUpperCase();\r\n\r\n    // GST format: 2 digits (state code), 10 char PAN, 1 char entity code, 1 char Z by default, 1 checksum char\r\n    const regex = /^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z][1-9A-Z]Z[0-9A-Z]$/;\r\n    if (!regex.test(str)) return false;\r\n\r\n    return true;\r\n};\r\n\r\n", "export default function validateStrongPassword(password, minLength = 8) {\r\n    if (typeof password !== 'string') return false;\r\n    if (password.length < minLength) return false;\r\n\r\n    // Must contain at least one lowercase, one uppercase, one number, and one special character\r\n    const pattern = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?#&])/;\r\n    return pattern.test(password);\r\n}\r\n\r\n", "const validateAadhaar = require('../../Validators/aadhar')\r\n\r\nexport default function formatAadhaar(input) {\r\n    if (!validateAadhaar(input)) return 'invalid aadhar' ; // or return null/error\r\n    const digits = input.replace(/\\D/g, '');\r\n    return `${digits.slice(0, 4)} ${digits.slice(4, 8)} ${digits.slice(8, 12)}`;\r\n}\r\n", "export default function formatLicensePlate(input) {\r\n    const cleaned = input.replace(/[^A-Z0-9]/gi, '').toUpperCase();\r\n\r\n    // Validate the cleaned string\r\n    const validPattern = /^[A-Z]{2}\\d{2}[A-Z]{2}\\d{4}$/;\r\n    if (!validPattern.test(cleaned)) {\r\n        return  'not a valid license plate number'; // or return null / throw error depending on your use case\r\n    }\r\n\r\n    const stateCode = cleaned.slice(0, 2);\r\n    const districtCode = cleaned.slice(2, 4);\r\n    const series = cleaned.slice(4, 6);\r\n    const number = cleaned.slice(6);\r\n\r\n    return `${stateCode} ${districtCode} ${series} ${number}`;\r\n}\r\n", "const validatePhone = require('../../Validators/mobile')\r\n\r\nexport default  function formatPhoneIN(input) {\r\n    if (!validatePhone(input, 'IN')) return 'invalid mobile number'\r\n    return input.replace(/\\D/g, '').replace(/(\\d{5})(\\d{5})/, '$1 $2');\r\n}\r\n", "export default   function formatCurrency(amount, currency = 'INR', locale = 'en-IN') {\r\n    if (typeof amount !== 'number') {\r\n        amount = parseFloat(amount);\r\n    }\r\n\r\n    if (isNaN(amount)) return 'Invalid amount';\r\n\r\n    return new Intl.NumberFormat(locale, {\r\n        style: 'currency',\r\n        currency,\r\n        minimumFractionDigits: 2,\r\n    }).format(amount);\r\n}\r\n", "export default function formatCreditCard(input) {\r\n    const digits = input.replace(/\\D/g, '');\r\n\r\n    // Handle American Express (15 digits, format 4-6-5)\r\n    if (/^3[47]\\d{13}$/.test(digits)) {\r\n        return `${digits.slice(0, 4)} ${digits.slice(4, 10)} ${digits.slice(10)}`;\r\n    }\r\n\r\n    // Handle Diners Club (14 digits, format 4-6-4)\r\n    if (/^3(?:0[0-5]|[68]\\d)\\d{11}$/.test(digits)) {\r\n        return `${digits.slice(0, 4)} ${digits.slice(4, 10)} ${digits.slice(10)}`;\r\n    }\r\n\r\n    // Handle standard 16-digit cards (Visa, MasterCard, Discover, etc.) \u2192 format 4-4-4-4\r\n    if (/^\\d{16}$/.test(digits)) {\r\n        return digits.replace(/(\\d{4})(?=\\d)/g, '$1 ').trim();\r\n    }\r\n\r\n    // Fallback: Group in 4s for any other length up to 19\r\n    return digits.replace(/(\\d{4})(?=\\d)/g, '$1 ').trim();\r\n}\r\n"],
  "mappings": "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",
  "names": ["validateAadhaar", "validatePhone"]
}
