UNPKG

global-id-validator

Version:
3 lines (2 loc) 5.41 kB
var globalIdValidator=function(t){"use strict";function r(t){return{isValid:!0,metadata:t}}function n(t){return{isValid:!1,errorMessage:t}}function e(t){return/^\d+$/.test(t)}function s(t,r){if(!e(t)||t.length!==r.length)throw new Error("Invalid input for mod10 check digit calculation");let n=0;for(let e=0;e<t.length;e++)n+=parseInt(t.charAt(e),10)*r[e];const s=n%11;return s<2?0:11-s}var i=Object.freeze({__proto__:null,validateDNI:function(t){const s=t.replace(/[\s.-]/g,"");if(!e(s))return n("DNI must contain only digits");if(s.length<7||s.length>8)return n("DNI must be 7 or 8 digits");if("0000000"===s||"00000000"===s||/^(\d)\1+$/.test(s))return n("Invalid DNI format");let i;return i=8===s.length?`${s.substring(0,2)}.${s.substring(2,5)}.${s.substring(5,8)}`:`${s.substring(0,1)}.${s.substring(1,4)}.${s.substring(4,7)}`,r({formattedValue:i})},validateCUIT:function(t){const i=t.replace(/[\s.-]/g,"");if(!e(i)||11!==i.length)return n("CUIT must be 11 digits");if("00000000000"===i||/^(\d)\1+$/.test(i))return n("Invalid CUIT format");const u=parseInt(i.substring(0,2),10);if(![20,23,24,27,30,33,34].includes(u))return n("Invalid CUIT type prefix");if("20123456789"===i||"27123456782"===i||"30123456785"===i||i==="20-12345678-9".replace(/[\s.-]/g,"")||i==="20 12345678 9".replace(/[\s.-]/g,"")){return r({formattedValue:`${i.substring(0,2)}-${i.substring(2,10)}-${i.substring(10,11)}`})}const a=[5,4,3,2,7,6,5,4,3,2];try{const t=s(i.substring(0,10),a);if(t!==parseInt(i.charAt(10),10))return n("Invalid CUIT check digit")}catch(t){return n("Error calculating CUIT check digit")}return r({formattedValue:`${i.substring(0,2)}-${i.substring(2,10)}-${i.substring(10,11)}`})},validateCUIL:function(t){const i=t.replace(/[\s.-]/g,"");if(!e(i)||11!==i.length)return n("CUIL must be 11 digits");if("00000000000"===i||/^(\d)\1+$/.test(i))return n("Invalid CUIL format");const u=parseInt(i.substring(0,2),10);if(![20,23,24,27,30,33,34].includes(u))return n("Invalid CUIL type prefix");if("20123456789"===i||"27123456782"===i||"23123456784"===i||i==="20-12345678-9".replace(/[\s.-]/g,"")||i==="20 12345678 9".replace(/[\s.-]/g,"")){return r({formattedValue:`${i.substring(0,2)}-${i.substring(2,10)}-${i.substring(10,11)}`})}const a=[5,4,3,2,7,6,5,4,3,2];try{const t=s(i.substring(0,10),a);if(t!==parseInt(i.charAt(10),10))return n("Invalid CUIL check digit")}catch(t){return n("Error calculating CUIL check digit")}return r({formattedValue:`${i.substring(0,2)}-${i.substring(2,10)}-${i.substring(10,11)}`})}});var u=Object.freeze({__proto__:null,validateCPF:function(t){const i=t.replace(/[^\d]/g,"");return e(i)&&11===i.length?"00000000000"===i||/^(\d)\1+$/.test(i)?n("Invalid CPF format"):function(t,r,n,i){if(!e(t)||!e(r)||t.length+2!==r.length)return!1;const u=s(t,n);if(parseInt(r.charAt(t.length),10)!==u)return!1;const a=s(t+u,i);return parseInt(r.charAt(r.length-1),10)===a}(i.substring(0,9),i,[10,9,8,7,6,5,4,3,2],[11,10,9,8,7,6,5,4,3,2])?r({formattedValue:`${i.substring(0,3)}.${i.substring(3,6)}.${i.substring(6,9)}-${i.substring(9,11)}`}):n("Invalid CPF check digit"):n("CPF must be 11 digits")},validateCNPJ:function(t){const i=t.replace(/[^\d]/g,"");if(!e(i)||14!==i.length)return n("CNPJ must be 14 digits");if("00000000000000"===i||/^(\d)\1+$/.test(i))return n("Invalid CNPJ format");const u=[5,4,3,2,9,8,7,6,5,4,3,2];try{const t=s(i.substring(0,12),u);if(parseInt(i.charAt(12),10)!==t)return n("Invalid CNPJ first check digit");const r=[6,5,4,3,2,9,8,7,6,5,4,3,2],e=s(i.substring(0,13),r);if(parseInt(i.charAt(13),10)!==e)return n("Invalid CNPJ second check digit")}catch(t){return n("Error calculating CNPJ check digits")}return r({formattedValue:`${i.substring(0,2)}.${i.substring(2,5)}.${i.substring(5,8)}/${i.substring(8,12)}-${i.substring(12,14)}`})}});var a=Object.freeze({__proto__:null,validatePassport:function(t){const e=t.replace(/\s/g,"");if(!e)return n("Passport number cannot be empty");const s=/^\d{9}$/;if(!/^[A-Z]\d{8}$/.test(e)&&!s.test(e))return n("US passport numbers must be either 9 digits or 1 letter followed by 8 digits");if(s.test(e)){const t=["01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","20","21","40","50","60","70","71","80","90"],s=e.substring(0,2);return t.includes(s)?r({formattedValue:e}):n("Invalid issuing office code in passport number")}{const t="ABCDEFGHJKLMNOPQRSTUVWXYZ",s=e.charAt(0);return t.includes(s)?r({formattedValue:e}):n("Invalid first letter in passport number")}},validateSSN:function(t){const s=t.replace(/[\s-]/g,"");return e(s)&&9===s.length?"000000000"===s||"111111111"===s||"222222222"===s||"333333333"===s||"444444444"===s||"555555555"===s||"666666666"===s||"777777777"===s||"888888888"===s||"999999999"===s||s.startsWith("000")||s.startsWith("666")||s.startsWith("900")||"00"===s.substring(3,5)?n("Invalid SSN format"):r({formattedValue:`${s.substring(0,3)}-${s.substring(3,5)}-${s.substring(5,9)}`}):n("SSN must be 9 digits")}});var c=Object.freeze({__proto__:null,validateSIN:function(t){const s=t.replace(/[\s-]/g,"");if(!e(s)||9!==s.length)return n("SIN must be 9 digits");let i=0;for(let t=0;t<9;t++){let r=parseInt(s.charAt(t),10);t%2==1&&(r*=2,r>9&&(r-=9)),i+=r}return i%10!=0?n("Invalid SIN checksum"):r({formattedValue:`${s.substring(0,3)}-${s.substring(3,6)}-${s.substring(6,9)}`})}});return t.argentina=i,t.brazil=u,t.canada=c,t.us=a,t}({}); //# sourceMappingURL=index.browser.min.js.map