soff-phone 0.0.7 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ar-GEGiRgO-.d.cts → ar-CoG6alvv.d.cts} +1 -1
- package/dist/{ar-tFIt4w8t.d.ts → ar-DflcS_NX.d.ts} +1 -1
- package/dist/{br-DDdWmYiI.d.ts → br-DUpSkSAW.d.ts} +1 -1
- package/dist/{br-BT6qg54j.d.cts → br-wLM9wWJU.d.cts} +1 -1
- package/dist/{ca-DCSAnAM6.d.cts → ca-CrMz6MFF.d.cts} +1 -1
- package/dist/{ca-_dlgNQpK.d.ts → ca-DgJh2Fn8.d.ts} +1 -1
- package/dist/{cl-BnJa59XK.d.ts → cl-BlYnSeBu.d.ts} +1 -1
- package/dist/{cl-FomUh7u7.d.cts → cl-Bsw7oXO1.d.cts} +1 -1
- package/dist/{co-D3zWUbcg.d.ts → co-Ds64GC27.d.ts} +1 -1
- package/dist/{co-HLHZhdf-.d.cts → co-DsNqMeJC.d.cts} +1 -1
- package/dist/{cr-TYetkCTg.d.cts → cr-D1nfQd5a.d.cts} +1 -1
- package/dist/{cr-CkAZd-e7.d.ts → cr-DZo_UJeA.d.ts} +1 -1
- package/dist/{de-D-lK2VKQ.d.ts → de-B0lClAaa.d.ts} +1 -1
- package/dist/{de-l5sbcQdU.d.cts → de-D8Dy5ZLN.d.cts} +1 -1
- package/dist/{ec-CLItBhMX.d.ts → ec-DMEwGX4e.d.ts} +1 -1
- package/dist/{ec-G_GvdmHT.d.cts → ec-Dmvg9ZEu.d.cts} +1 -1
- package/dist/{es-C0cTzz5Q.d.ts → es-C9fnTkGA.d.ts} +1 -1
- package/dist/{es-DBWm_0BJ.d.cts → es-nCje-ks0.d.cts} +1 -1
- package/dist/{fr-BFsuh3v2.d.cts → fr-6elCkAaM.d.cts} +1 -1
- package/dist/{fr-BE6W1TEy.d.ts → fr-DhJ1s23l.d.ts} +1 -1
- package/dist/{gb-Dsiq1sFD.d.cts → gb-B25B912T.d.cts} +1 -1
- package/dist/{gb-Cvog8XpH.d.ts → gb-ehC5-Ys2.d.ts} +1 -1
- package/dist/{gt-CHOp9jw8.d.cts → gt-DKGg-Cq-.d.cts} +1 -1
- package/dist/{gt-BJOTX_KH.d.ts → gt-wRdkBW-T.d.ts} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +18 -18
- package/dist/index.d.ts +18 -18
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/{it-Cvn0ckKc.d.cts → it-B434bcYI.d.cts} +1 -1
- package/dist/{it-DRkyyTTW.d.ts → it-fKUkvQel.d.ts} +1 -1
- package/dist/locales/ar.cjs +1 -1
- package/dist/locales/ar.cjs.map +1 -1
- package/dist/locales/ar.d.cts +1 -1
- package/dist/locales/ar.d.ts +1 -1
- package/dist/locales/ar.js +1 -1
- package/dist/locales/ar.js.map +1 -1
- package/dist/locales/br.cjs +1 -1
- package/dist/locales/br.cjs.map +1 -1
- package/dist/locales/br.d.cts +1 -1
- package/dist/locales/br.d.ts +1 -1
- package/dist/locales/br.js +1 -1
- package/dist/locales/br.js.map +1 -1
- package/dist/locales/ca.cjs +1 -1
- package/dist/locales/ca.cjs.map +1 -1
- package/dist/locales/ca.d.cts +1 -1
- package/dist/locales/ca.d.ts +1 -1
- package/dist/locales/ca.js +1 -1
- package/dist/locales/ca.js.map +1 -1
- package/dist/locales/cl.cjs +1 -1
- package/dist/locales/cl.cjs.map +1 -1
- package/dist/locales/cl.d.cts +1 -1
- package/dist/locales/cl.d.ts +1 -1
- package/dist/locales/cl.js +1 -1
- package/dist/locales/cl.js.map +1 -1
- package/dist/locales/co.cjs +1 -1
- package/dist/locales/co.cjs.map +1 -1
- package/dist/locales/co.d.cts +1 -1
- package/dist/locales/co.d.ts +1 -1
- package/dist/locales/co.js +1 -1
- package/dist/locales/co.js.map +1 -1
- package/dist/locales/cr.cjs +1 -1
- package/dist/locales/cr.cjs.map +1 -1
- package/dist/locales/cr.d.cts +1 -1
- package/dist/locales/cr.d.ts +1 -1
- package/dist/locales/cr.js +1 -1
- package/dist/locales/cr.js.map +1 -1
- package/dist/locales/de.cjs +1 -1
- package/dist/locales/de.cjs.map +1 -1
- package/dist/locales/de.d.cts +1 -1
- package/dist/locales/de.d.ts +1 -1
- package/dist/locales/de.js +1 -1
- package/dist/locales/de.js.map +1 -1
- package/dist/locales/ec.cjs +1 -1
- package/dist/locales/ec.cjs.map +1 -1
- package/dist/locales/ec.d.cts +1 -1
- package/dist/locales/ec.d.ts +1 -1
- package/dist/locales/ec.js +1 -1
- package/dist/locales/ec.js.map +1 -1
- package/dist/locales/es.cjs +1 -1
- package/dist/locales/es.cjs.map +1 -1
- package/dist/locales/es.d.cts +1 -1
- package/dist/locales/es.d.ts +1 -1
- package/dist/locales/es.js +1 -1
- package/dist/locales/es.js.map +1 -1
- package/dist/locales/fr.cjs +1 -1
- package/dist/locales/fr.cjs.map +1 -1
- package/dist/locales/fr.d.cts +1 -1
- package/dist/locales/fr.d.ts +1 -1
- package/dist/locales/fr.js +1 -1
- package/dist/locales/fr.js.map +1 -1
- package/dist/locales/gb.cjs +1 -1
- package/dist/locales/gb.cjs.map +1 -1
- package/dist/locales/gb.d.cts +1 -1
- package/dist/locales/gb.d.ts +1 -1
- package/dist/locales/gb.js +1 -1
- package/dist/locales/gb.js.map +1 -1
- package/dist/locales/gt.cjs +1 -1
- package/dist/locales/gt.cjs.map +1 -1
- package/dist/locales/gt.d.cts +1 -1
- package/dist/locales/gt.d.ts +1 -1
- package/dist/locales/gt.js +1 -1
- package/dist/locales/gt.js.map +1 -1
- package/dist/locales/it.cjs +1 -1
- package/dist/locales/it.cjs.map +1 -1
- package/dist/locales/it.d.cts +1 -1
- package/dist/locales/it.d.ts +1 -1
- package/dist/locales/it.js +1 -1
- package/dist/locales/it.js.map +1 -1
- package/dist/locales/mx.cjs +1 -1
- package/dist/locales/mx.cjs.map +1 -1
- package/dist/locales/mx.d.cts +1 -1
- package/dist/locales/mx.d.ts +1 -1
- package/dist/locales/mx.js +1 -1
- package/dist/locales/mx.js.map +1 -1
- package/dist/locales/pa.cjs +1 -1
- package/dist/locales/pa.cjs.map +1 -1
- package/dist/locales/pa.d.cts +1 -1
- package/dist/locales/pa.d.ts +1 -1
- package/dist/locales/pa.js +1 -1
- package/dist/locales/pa.js.map +1 -1
- package/dist/locales/pe.cjs +1 -1
- package/dist/locales/pe.cjs.map +1 -1
- package/dist/locales/pe.d.cts +1 -1
- package/dist/locales/pe.d.ts +1 -1
- package/dist/locales/pe.js +1 -1
- package/dist/locales/pe.js.map +1 -1
- package/dist/locales/us.cjs +1 -1
- package/dist/locales/us.cjs.map +1 -1
- package/dist/locales/us.d.cts +1 -1
- package/dist/locales/us.d.ts +1 -1
- package/dist/locales/us.js +1 -1
- package/dist/locales/us.js.map +1 -1
- package/dist/locales/ve.cjs +1 -1
- package/dist/locales/ve.cjs.map +1 -1
- package/dist/locales/ve.d.cts +1 -1
- package/dist/locales/ve.d.ts +1 -1
- package/dist/locales/ve.js +1 -1
- package/dist/locales/ve.js.map +1 -1
- package/dist/{mx-CmkrNDw0.d.cts → mx-CIn7fuEP.d.cts} +1 -1
- package/dist/{mx-DkRS3Aa-.d.ts → mx-Cqj3ptQG.d.ts} +1 -1
- package/dist/{pa-BPfQzrBx.d.cts → pa-CJU86P1e.d.cts} +1 -1
- package/dist/{pa-Dyi3iuWW.d.ts → pa-DuqdSeyg.d.ts} +1 -1
- package/dist/{pe-B_5pgsR0.d.cts → pe-9EBUjBeW.d.cts} +1 -1
- package/dist/{pe-NCsXTXmc.d.ts → pe-DlAD1sw9.d.ts} +1 -1
- package/dist/{us-BaYu0g3a.d.cts → us-n2Rg22p3.d.cts} +1 -1
- package/dist/{us-KOpobREo.d.ts → us-oR1xJLtG.d.ts} +1 -1
- package/dist/{ve-BFLV2qGp.d.ts → ve-D0yC7va3.d.ts} +1 -1
- package/dist/{ve-BomxppQL.d.cts → ve-DZM4BR8e.d.cts} +1 -1
- package/package.json +6 -6
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var
|
|
1
|
+
var E=Object.defineProperty;var i=(t,e)=>{for(var a in e)E(t,a,{get:e[a],enumerable:true});};function u(t){return t.replace(/\D/g,"")}function n(t,e){return `+${t}${e}`}var f={};i(f,{validate:()=>O});function r(t){return function(a,m){let $=u(a),o=t.getNationalNumber($),s=t.evaluateNationalNumber(o);if(!s.isValid)return s;let l=o;return m?.format==="e164"?l=n(t.countryCode,o):m?.format==="international"&&(l=`+${t.countryCode} ${o}`),{isValid:true,type:s.type,formatted:l}}}var O=r({countryCode:"54",getNationalNumber:t=>t.startsWith("54")&&t.length>10?t.slice(2):t,evaluateNationalNumber:t=>t.length!==10?{isValid:false,error:"Phone number must be 10 digits"}:t.startsWith("9")?{isValid:true,type:"mobile"}:/^(11|2|3|4)/.test(t)?{isValid:true,type:"landline"}:{isValid:true,type:"unknown"}});var d={};i(d,{validate:()=>R});var R=r({countryCode:"55",getNationalNumber:t=>t.startsWith("55")&&t.length>10?t.slice(2):t,evaluateNationalNumber:t=>t.length!==10&&t.length!==11?{isValid:false,error:"Phone number must be 10 or 11 digits"}:t.length===11&&t[2]==="9"?{isValid:true,type:"mobile"}:t.length===10?{isValid:true,type:"landline"}:{isValid:false,error:"Invalid phone format for Brazil"}});var p={};i(p,{validate:()=>j});var j=r({countryCode:"56",getNationalNumber:t=>t.startsWith("56")&&t.length>9?t.slice(2):t,evaluateNationalNumber:t=>t.length!==9?{isValid:false,error:"Phone number must be 9 digits"}:t.startsWith("9")?{isValid:true,type:"mobile"}:/^[2-7]/.test(t)?{isValid:true,type:"landline"}:{isValid:false,error:"Invalid prefix for Chile"}});var h={};i(h,{validate:()=>z});var z=r({countryCode:"57",getNationalNumber:t=>t.startsWith("57")&&t.length>10?t.slice(2):t,evaluateNationalNumber:t=>t.length!==10?{isValid:false,error:"Phone number must be 10 digits"}:t.startsWith("3")?{isValid:true,type:"mobile"}:t.startsWith("60")?{isValid:true,type:"landline"}:{isValid:false,error:"Invalid prefix for Colombia"}});var b={};i(b,{validate:()=>B});var B=r({countryCode:"506",getNationalNumber:t=>t.startsWith("506")&&t.length>8?t.slice(3):t,evaluateNationalNumber:t=>t.length!==8?{isValid:false,error:"Phone number must be 8 digits"}:/^[5678]/.test(t)?{isValid:true,type:"mobile"}:t.startsWith("2")?{isValid:true,type:"landline"}:{isValid:true,type:"unknown"}});var g={};i(g,{validate:()=>D});var D=r({countryCode:"593",getNationalNumber:t=>t.startsWith("593")&&t.length>9?t.slice(3):t,evaluateNationalNumber:t=>t.length!==9?{isValid:false,error:"Phone number must be 9 digits"}:t.startsWith("9")?{isValid:true,type:"mobile"}:/^[2-7]/.test(t)?{isValid:true,type:"landline"}:{isValid:false,error:"Invalid prefix for Ecuador"}});var V={};i(V,{validate:()=>S});var S=r({countryCode:"502",getNationalNumber:t=>t.startsWith("502")&&t.length>8?t.slice(3):t,evaluateNationalNumber:t=>t.length!==8?{isValid:false,error:"Phone number must be 8 digits"}:/^[345]/.test(t)?{isValid:true,type:"mobile"}:/^[267]/.test(t)?{isValid:true,type:"landline"}:{isValid:true,type:"unknown"}});var N={};i(N,{validate:()=>q});var q=r({countryCode:"52",getNationalNumber:t=>t.startsWith("52")&&t.length>10?t.slice(2):t,evaluateNationalNumber:t=>t.length!==10?{isValid:false,error:"Phone number must be 10 digits"}:{isValid:true,type:"unknown"}});var y={};i(y,{validate:()=>A});var A=r({countryCode:"507",getNationalNumber:t=>t.startsWith("507")&&t.length>8?t.slice(3):t,evaluateNationalNumber:t=>t.length!==8?{isValid:false,error:"Phone number must be 8 digits"}:t.startsWith("6")?{isValid:true,type:"mobile"}:/^[2-57-9]/.test(t)?{isValid:true,type:"landline"}:{isValid:true,type:"unknown"}});var c={};i(c,{validate:()=>F});var F=r({countryCode:"51",getNationalNumber:t=>t.startsWith("51")&&t.length>9?t.slice(2):t,evaluateNationalNumber:t=>t.length!==9?{isValid:false,error:"Phone number must be 9 digits"}:t.startsWith("9")?{isValid:true,type:"mobile"}:/^[01]/.test(t)?{isValid:true,type:"landline"}:{isValid:false,error:"Invalid prefix for Peru"}});var x={};i(x,{validate:()=>G});var G=r({countryCode:"58",getNationalNumber:t=>t.startsWith("58")&&t.length>10?t.slice(2):t,evaluateNationalNumber:t=>t.length!==10?{isValid:false,error:"Phone number must be 10 digits"}:t.startsWith("4")?{isValid:true,type:"mobile"}:/^[2]/.test(t)?{isValid:true,type:"landline"}:{isValid:true,type:"unknown"}});var v={};i(v,{validate:()=>H});var H=r({countryCode:"1",getNationalNumber:t=>t.startsWith("1")&&t.length===11?t.slice(1):t,evaluateNationalNumber:t=>{if(t.length!==10)return {isValid:false,error:"Phone number must be 10 digits"};let e=t.substring(0,3);if(!/^[2-9][0-8][0-9]$/.test(e))return {isValid:false,error:"Invalid area code"};let a=t.substring(3,6);return /^[2-9]\d{2}$/.test(a)?{isValid:true,type:"unknown"}:{isValid:false,error:"Invalid exchange code"}}});var W={};i(W,{validate:()=>J});var J=r({countryCode:"1",getNationalNumber:t=>t.startsWith("1")&&t.length===11?t.slice(1):t,evaluateNationalNumber:t=>{if(t.length!==10)return {isValid:false,error:"Phone number must be 10 digits"};let e=t.substring(0,3);if(!/^[2-9][0-8][0-9]$/.test(e))return {isValid:false,error:"Invalid area code"};let a=t.substring(3,6);return /^[2-9]\d{2}$/.test(a)?{isValid:true,type:"unknown"}:{isValid:false,error:"Invalid exchange code"}}});var P={};i(P,{validate:()=>K});var K=r({countryCode:"49",getNationalNumber:t=>{let e=t.startsWith("49")?t.slice(2):t;return e.startsWith("0")&&(e=e.slice(1)),e},evaluateNationalNumber:t=>t.length<9||t.length>11?{isValid:false,error:"Phone number must be 9-11 digits"}:/^1[567]/.test(t)?{isValid:true,type:"mobile"}:{isValid:true,type:"landline"}});var C={};i(C,{validate:()=>L});var L=r({countryCode:"34",getNationalNumber:t=>t.startsWith("34")&&t.length>9?t.slice(2):t,evaluateNationalNumber:t=>t.length!==9?{isValid:false,error:"Phone number must be 9 digits"}:/^[67]/.test(t)?{isValid:true,type:"mobile"}:/^[89]/.test(t)?{isValid:true,type:"landline"}:{isValid:false,error:"Invalid prefix for Spain"}});var k={};i(k,{validate:()=>M});var M=r({countryCode:"33",getNationalNumber:t=>{let e=t.startsWith("33")&&t.length>9?t.slice(2):t;return e.startsWith("0")&&(e=e.slice(1)),e},evaluateNationalNumber:t=>t.length!==9?{isValid:false,error:"Phone number must be 9 digits"}:/^[67]/.test(t)?{isValid:true,type:"mobile"}:/^[1-5,9]/.test(t)?{isValid:true,type:"landline"}:{isValid:true,type:"unknown"}});var w={};i(w,{validate:()=>Q});var Q=r({countryCode:"44",getNationalNumber:t=>{let e=t.startsWith("44")&&t.length>10?t.slice(2):t;return e.startsWith("0")&&(e=e.slice(1)),e},evaluateNationalNumber:t=>t.length!==10?{isValid:false,error:"Phone number must be 10 digits"}:t.startsWith("7")?{isValid:true,type:"mobile"}:/^[123]/.test(t)?{isValid:true,type:"landline"}:{isValid:true,type:"unknown"}});var I={};i(I,{validate:()=>T});var T=r({countryCode:"39",getNationalNumber:t=>{let e=t.startsWith("39")&&t.length>9?t.slice(2):t;return e.startsWith("0")&&(e=e.slice(1)),e},evaluateNationalNumber:t=>t.length<9||t.length>10?{isValid:false,error:"Phone number must be 9-10 digits"}:t.startsWith("3")?{isValid:true,type:"mobile"}:{isValid:true,type:"landline"}});export{f as ar,d as br,v as ca,p as cl,u as cleanPhone,h as co,b as cr,P as de,g as ec,C as es,n as formatE164,k as fr,w as gb,V as gt,I as it,N as mx,y as pa,c as pe,W as us,x as ve};//# sourceMappingURL=index.js.map
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/utils.ts","../src/locales/ar.ts","../src/locales/br.ts","../src/locales/cl.ts","../src/locales/co.ts","../src/locales/cr.ts","../src/locales/ec.ts","../src/locales/gt.ts","../src/locales/mx.ts","../src/locales/pa.ts","../src/locales/pe.ts","../src/locales/ve.ts","../src/locales/ca.ts","../src/locales/us.ts","../src/locales/de.ts","../src/locales/es.ts","../src/locales/fr.ts","../src/locales/gb.ts","../src/locales/it.ts"],"names":["cleanPhone","phone","formatE164","countryCode","ar_exports","__export","validate","COUNTRY_CODE","options","cleaned","national","type","formatted","br_exports","cl_exports","co_exports","cr_exports","ec_exports","gt_exports","mx_exports","pa_exports","pe_exports","ve_exports","ca_exports","areaCode","exchangeCode","us_exports","de_exports","es_exports","fr_exports","gb_exports","it_exports"],"mappings":"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","file":"index.js","sourcesContent":["export function cleanPhone(phone: string): string {\n return phone.replace(/\\D/g, '');\n}\n\nexport function formatE164(countryCode: string, phone: string): string {\n return `+${countryCode}${phone}`;\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '54';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 10) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Argentine numbers: 10 digits (including area code)\n if (national.length !== 10) {\n return { isValid: false, error: 'Phone number must be 10 digits' };\n }\n\n let type: 'mobile' | 'landline' | 'unknown' = 'unknown';\n\n // Mobile: Starts with 9 (e.g., 9 11 xxxx-xxxx)\n if (national.startsWith('9')) {\n type = 'mobile';\n }\n // Landline: Starts with 11, 2, 3, 4 or other area codes\n else if (/^(11|2|3|4)/.test(national)) {\n type = 'landline';\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '55';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 10) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Brazilian numbers: 10 digits (landline) or 11 digits (mobile with 9 prefix)\n if (national.length !== 10 && national.length !== 11) {\n return { isValid: false, error: 'Phone number must be 10 or 11 digits' };\n }\n\n const type =\n national.length === 11 && national[2] === '9'\n ? 'mobile'\n : national.length === 10\n ? 'landline'\n : undefined;\n\n if (!type) {\n return { isValid: false, error: 'Invalid phone format for Brazil' };\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '56';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 9) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Chilean numbers: 9 digits\n if (national.length !== 9) {\n return { isValid: false, error: 'Phone number must be 9 digits' };\n }\n\n const type = national.startsWith('9')\n ? 'mobile'\n : /^[2-7]/.test(national)\n ? 'landline'\n : undefined;\n\n if (!type) {\n return { isValid: false, error: 'Invalid prefix for Chile' };\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '57';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 10) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n if (national.length !== 10) {\n return { isValid: false, error: 'Phone number must be 10 digits' };\n }\n\n const type = national.startsWith('3')\n ? 'mobile'\n : national.startsWith('60')\n ? 'landline'\n : undefined;\n\n if (!type) {\n return { isValid: false, error: 'Invalid prefix for Colombia' };\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '506';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 8) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Costa Rican numbers: 8 digits\n if (national.length !== 8) {\n return { isValid: false, error: 'Phone number must be 8 digits' };\n }\n\n let type: 'mobile' | 'landline' | 'unknown' = 'unknown';\n\n // Mobile: Starts with 5, 6, 7, 8\n if (/^[5678]/.test(national)) {\n type = 'mobile';\n }\n // Landline: Starts with 2\n else if (national.startsWith('2')) {\n type = 'landline';\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '593';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 9) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Ecuadorian numbers: 9 digits\n if (national.length !== 9) {\n return { isValid: false, error: 'Phone number must be 9 digits' };\n }\n\n const type = national.startsWith('9')\n ? 'mobile'\n : /^[2-7]/.test(national)\n ? 'landline'\n : undefined;\n\n if (!type) {\n return { isValid: false, error: 'Invalid prefix for Ecuador' };\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '502';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 8) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Guatemalan numbers: 8 digits\n if (national.length !== 8) {\n return { isValid: false, error: 'Phone number must be 8 digits' };\n }\n\n let type: 'mobile' | 'landline' | 'unknown' = 'unknown';\n\n // Mobile: Starts with 3, 4, 5\n if (/^[345]/.test(national)) {\n type = 'mobile';\n }\n // Landline: Starts with 2, 6, 7\n else if (/^[267]/.test(national)) {\n type = 'landline';\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '52';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 10) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n if (national.length !== 10) {\n return { isValid: false, error: 'Phone number must be 10 digits' };\n }\n\n // Mexico doesn't strictly separate mobile/landline ranges as clearly in the first digit anymore for all cases,\n // but generally we can just validate length.\n // Distinction is harder without a massive database of area codes.\n // We will mark as 'unknown' type unless we want to implement complex area code logic.\n // For now, let's assume valid if 10 digits.\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type: 'unknown', formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '507';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 8) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Panamanian numbers: 8 digits\n if (national.length !== 8) {\n return { isValid: false, error: 'Phone number must be 8 digits' };\n }\n\n let type: 'mobile' | 'landline' | 'unknown' = 'unknown';\n\n // Mobile: Starts with 6\n if (national.startsWith('6')) {\n type = 'mobile';\n }\n // Landline: Starts with 2-5, 7-9\n else if (/^[2-57-9]/.test(national)) {\n type = 'landline';\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '51';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 9) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Peruvian numbers: 9 digits\n if (national.length !== 9) {\n return { isValid: false, error: 'Phone number must be 9 digits' };\n }\n\n const type = national.startsWith('9')\n ? 'mobile'\n : /^[01]/.test(national)\n ? 'landline'\n : undefined;\n\n if (!type) {\n return { isValid: false, error: 'Invalid prefix for Peru' };\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '58';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 10) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Venezuelan numbers: 10 digits (including area code)\n if (national.length !== 10) {\n return { isValid: false, error: 'Phone number must be 10 digits' };\n }\n\n let type: 'mobile' | 'landline' | 'unknown' = 'unknown';\n\n // Mobile: Starts with 4\n if (national.startsWith('4')) {\n type = 'mobile';\n }\n // Landline: Starts with 2 (Caracas) or other area codes\n else if (/^[2]/.test(national)) {\n type = 'landline';\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '1';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length === 11) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Canadian numbers: 10 digits (NPA-NXX-XXXX) - same format as US\n if (national.length !== 10) {\n return { isValid: false, error: 'Phone number must be 10 digits' };\n }\n\n // Check valid area code (NPA): first digit 2-9, second digit 0-8, third digit 0-9\n const areaCode = national.substring(0, 3);\n if (!/^[2-9][0-8][0-9]$/.test(areaCode)) {\n return { isValid: false, error: 'Invalid area code' };\n }\n\n // Check valid exchange code (NXX): first digit 2-9\n const exchangeCode = national.substring(3, 6);\n if (!/^[2-9]\\d{2}$/.test(exchangeCode)) {\n return { isValid: false, error: 'Invalid exchange code' };\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type: 'unknown', formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '1';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length === 11) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // US/Canada numbers: 10 digits (NPA-NXX-XXXX)\n if (national.length !== 10) {\n return { isValid: false, error: 'Phone number must be 10 digits' };\n }\n\n // Check valid area code (NPA): first digit 2-9, second digit 0-8, third digit 0-9\n const areaCode = national.substring(0, 3);\n if (!/^[2-9][0-8][0-9]$/.test(areaCode)) {\n return { isValid: false, error: 'Invalid area code' };\n }\n\n // Check valid exchange code (NXX): first digit 2-9\n const exchangeCode = national.substring(3, 6);\n if (!/^[2-9]\\d{2}$/.test(exchangeCode)) {\n return { isValid: false, error: 'Invalid exchange code' };\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type: 'unknown', formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '49';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE)) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // German numbers: variable length (10-11 digits including area code)\n // Often start with 0 for domestic dialing\n if (national.startsWith('0')) {\n national = national.slice(1);\n }\n\n if (national.length < 9 || national.length > 11) {\n return { isValid: false, error: 'Phone number must be 9-11 digits' };\n }\n\n const type = /^1[567]/.test(national) ? 'mobile' : 'landline';\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '34';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 9) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Spanish numbers: 9 digits\n if (national.length !== 9) {\n return { isValid: false, error: 'Phone number must be 9 digits' };\n }\n\n const type = /^[67]/.test(national) ? 'mobile' : /^[89]/.test(national) ? 'landline' : undefined;\n\n if (!type) {\n return { isValid: false, error: 'Invalid prefix for Spain' };\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '33';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 9) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // French numbers: 9 digits (excluding the leading 0)\n // But users often include the leading 0, so we accept both formats\n if (national.startsWith('0')) {\n national = national.slice(1);\n }\n\n if (national.length !== 9) {\n return { isValid: false, error: 'Phone number must be 9 digits' };\n }\n\n let type: 'mobile' | 'landline' | 'unknown' = 'unknown';\n\n // Mobile: Starts with 6 or 7\n if (/^[67]/.test(national)) {\n type = 'mobile';\n }\n // Landline: Starts with 1, 2, 3, 4, 5, 9\n else if (/^[1-5,9]/.test(national)) {\n type = 'landline';\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '44';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 10) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // UK numbers: 10 digits (excluding the leading 0)\n // But users often include the leading 0, so we accept both formats\n if (national.startsWith('0')) {\n national = national.slice(1);\n }\n\n if (national.length !== 10) {\n return { isValid: false, error: 'Phone number must be 10 digits' };\n }\n\n let type: 'mobile' | 'landline' | 'unknown' = 'unknown';\n\n // Mobile: Starts with 7\n if (national.startsWith('7')) {\n type = 'mobile';\n }\n // Landline: Starts with 1, 2, 3\n else if (/^[123]/.test(national)) {\n type = 'landline';\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '39';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 9) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Italian numbers: variable length (9-10 digits)\n // Often start with 0 for domestic dialing\n if (national.startsWith('0')) {\n national = national.slice(1);\n }\n\n if (national.length < 9 || national.length > 10) {\n return { isValid: false, error: 'Phone number must be 9-10 digits' };\n }\n\n const type = national.startsWith('3') ? 'mobile' : 'landline';\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/core/utils.ts","../src/locales/ar.ts","../src/core/validator.ts","../src/locales/br.ts","../src/locales/cl.ts","../src/locales/co.ts","../src/locales/cr.ts","../src/locales/ec.ts","../src/locales/gt.ts","../src/locales/mx.ts","../src/locales/pa.ts","../src/locales/pe.ts","../src/locales/ve.ts","../src/locales/ca.ts","../src/locales/us.ts","../src/locales/de.ts","../src/locales/es.ts","../src/locales/fr.ts","../src/locales/gb.ts","../src/locales/it.ts"],"names":["cleanPhone","phone","formatE164","countryCode","ar_exports","__export","validate","createValidator","config","options","cleaned","national","evaluation","formatted","br_exports","cl_exports","co_exports","cr_exports","ec_exports","gt_exports","mx_exports","pa_exports","pe_exports","ve_exports","ca_exports","areaCode","exchangeCode","us_exports","de_exports","es_exports","fr_exports","gb_exports","it_exports"],"mappings":"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","file":"index.js","sourcesContent":["export function cleanPhone(phone: string): string {\n return phone.replace(/\\D/g, '');\n}\n\nexport function formatE164(countryCode: string, phone: string): string {\n return `+${countryCode}${phone}`;\n}\n","import { createValidator } from '../core/validator.js';\n\nexport const validate = createValidator({\n countryCode: '54',\n getNationalNumber: (cleaned) =>\n cleaned.startsWith('54') && cleaned.length > 10 ? cleaned.slice(2) : cleaned,\n evaluateNationalNumber: (national) => {\n if (national.length !== 10) {\n return { isValid: false, error: 'Phone number must be 10 digits' };\n }\n if (national.startsWith('9')) {\n return { isValid: true, type: 'mobile' };\n }\n if (/^(11|2|3|4)/.test(national)) {\n return { isValid: true, type: 'landline' };\n }\n return { isValid: true, type: 'unknown' };\n },\n});\n","import type { PhoneValidationResult, PhoneOptions } from './types.js';\nimport { cleanPhone, formatE164 } from './utils.js';\n\nexport interface PhoneValidatorConfig {\n countryCode: string;\n getNationalNumber: (cleaned: string) => string;\n evaluateNationalNumber: (\n national: string\n ) =>\n | { isValid: true; type: 'mobile' | 'landline' | 'unknown' }\n | { isValid: false; error: string };\n}\n\nexport function createValidator(config: PhoneValidatorConfig) {\n return function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n const national = config.getNationalNumber(cleaned);\n\n const evaluation = config.evaluateNationalNumber(national);\n if (!evaluation.isValid) {\n return evaluation;\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(config.countryCode, national);\n } else if (options?.format === 'international') {\n formatted = `+${config.countryCode} ${national}`;\n }\n\n return { isValid: true, type: evaluation.type, formatted };\n };\n}\n","import { createValidator } from '../core/validator.js';\n\nexport const validate = createValidator({\n countryCode: '55',\n getNationalNumber: (cleaned) =>\n cleaned.startsWith('55') && cleaned.length > 10 ? cleaned.slice(2) : cleaned,\n evaluateNationalNumber: (national) => {\n if (national.length !== 10 && national.length !== 11) {\n return { isValid: false, error: 'Phone number must be 10 or 11 digits' };\n }\n if (national.length === 11 && national[2] === '9') {\n return { isValid: true, type: 'mobile' };\n }\n if (national.length === 10) {\n return { isValid: true, type: 'landline' };\n }\n return { isValid: false, error: 'Invalid phone format for Brazil' };\n },\n});\n","import { createValidator } from '../core/validator.js';\n\nexport const validate = createValidator({\n countryCode: '56',\n getNationalNumber: (cleaned) =>\n cleaned.startsWith('56') && cleaned.length > 9 ? cleaned.slice(2) : cleaned,\n evaluateNationalNumber: (national) => {\n if (national.length !== 9) {\n return { isValid: false, error: 'Phone number must be 9 digits' };\n }\n if (national.startsWith('9')) {\n return { isValid: true, type: 'mobile' };\n }\n if (/^[2-7]/.test(national)) {\n return { isValid: true, type: 'landline' };\n }\n return { isValid: false, error: 'Invalid prefix for Chile' };\n },\n});\n","import { createValidator } from '../core/validator.js';\n\nexport const validate = createValidator({\n countryCode: '57',\n getNationalNumber: (cleaned) =>\n cleaned.startsWith('57') && cleaned.length > 10 ? cleaned.slice(2) : cleaned,\n evaluateNationalNumber: (national) => {\n if (national.length !== 10) {\n return { isValid: false, error: 'Phone number must be 10 digits' };\n }\n if (national.startsWith('3')) {\n return { isValid: true, type: 'mobile' };\n }\n if (national.startsWith('60')) {\n return { isValid: true, type: 'landline' };\n }\n return { isValid: false, error: 'Invalid prefix for Colombia' };\n },\n});\n","import { createValidator } from '../core/validator.js';\n\nexport const validate = createValidator({\n countryCode: '506',\n getNationalNumber: (cleaned) =>\n cleaned.startsWith('506') && cleaned.length > 8 ? cleaned.slice(3) : cleaned,\n evaluateNationalNumber: (national) => {\n if (national.length !== 8) {\n return { isValid: false, error: 'Phone number must be 8 digits' };\n }\n if (/^[5678]/.test(national)) {\n return { isValid: true, type: 'mobile' };\n }\n if (national.startsWith('2')) {\n return { isValid: true, type: 'landline' };\n }\n return { isValid: true, type: 'unknown' };\n },\n});\n","import { createValidator } from '../core/validator.js';\n\nexport const validate = createValidator({\n countryCode: '593',\n getNationalNumber: (cleaned) =>\n cleaned.startsWith('593') && cleaned.length > 9 ? cleaned.slice(3) : cleaned,\n evaluateNationalNumber: (national) => {\n if (national.length !== 9) {\n return { isValid: false, error: 'Phone number must be 9 digits' };\n }\n if (national.startsWith('9')) {\n return { isValid: true, type: 'mobile' };\n }\n if (/^[2-7]/.test(national)) {\n return { isValid: true, type: 'landline' };\n }\n return { isValid: false, error: 'Invalid prefix for Ecuador' };\n },\n});\n","import { createValidator } from '../core/validator.js';\n\nexport const validate = createValidator({\n countryCode: '502',\n getNationalNumber: (cleaned) =>\n cleaned.startsWith('502') && cleaned.length > 8 ? cleaned.slice(3) : cleaned,\n evaluateNationalNumber: (national) => {\n if (national.length !== 8) {\n return { isValid: false, error: 'Phone number must be 8 digits' };\n }\n if (/^[345]/.test(national)) {\n return { isValid: true, type: 'mobile' };\n }\n if (/^[267]/.test(national)) {\n return { isValid: true, type: 'landline' };\n }\n return { isValid: true, type: 'unknown' };\n },\n});\n","import { createValidator } from '../core/validator.js';\n\nexport const validate = createValidator({\n countryCode: '52',\n getNationalNumber: (cleaned) =>\n cleaned.startsWith('52') && cleaned.length > 10 ? cleaned.slice(2) : cleaned,\n evaluateNationalNumber: (national) => {\n if (national.length !== 10) {\n return { isValid: false, error: 'Phone number must be 10 digits' };\n }\n return { isValid: true, type: 'unknown' };\n },\n});\n","import { createValidator } from '../core/validator.js';\n\nexport const validate = createValidator({\n countryCode: '507',\n getNationalNumber: (cleaned) =>\n cleaned.startsWith('507') && cleaned.length > 8 ? cleaned.slice(3) : cleaned,\n evaluateNationalNumber: (national) => {\n if (national.length !== 8) {\n return { isValid: false, error: 'Phone number must be 8 digits' };\n }\n if (national.startsWith('6')) {\n return { isValid: true, type: 'mobile' };\n }\n if (/^[2-57-9]/.test(national)) {\n return { isValid: true, type: 'landline' };\n }\n return { isValid: true, type: 'unknown' };\n },\n});\n","import { createValidator } from '../core/validator.js';\n\nexport const validate = createValidator({\n countryCode: '51',\n getNationalNumber: (cleaned) =>\n cleaned.startsWith('51') && cleaned.length > 9 ? cleaned.slice(2) : cleaned,\n evaluateNationalNumber: (national) => {\n if (national.length !== 9) {\n return { isValid: false, error: 'Phone number must be 9 digits' };\n }\n if (national.startsWith('9')) {\n return { isValid: true, type: 'mobile' };\n }\n if (/^[01]/.test(national)) {\n return { isValid: true, type: 'landline' };\n }\n return { isValid: false, error: 'Invalid prefix for Peru' };\n },\n});\n","import { createValidator } from '../core/validator.js';\n\nexport const validate = createValidator({\n countryCode: '58',\n getNationalNumber: (cleaned) =>\n cleaned.startsWith('58') && cleaned.length > 10 ? cleaned.slice(2) : cleaned,\n evaluateNationalNumber: (national) => {\n if (national.length !== 10) {\n return { isValid: false, error: 'Phone number must be 10 digits' };\n }\n if (national.startsWith('4')) {\n return { isValid: true, type: 'mobile' };\n }\n if (/^[2]/.test(national)) {\n return { isValid: true, type: 'landline' };\n }\n return { isValid: true, type: 'unknown' };\n },\n});\n","import { createValidator } from '../core/validator.js';\n\nexport const validate = createValidator({\n countryCode: '1',\n getNationalNumber: (cleaned) =>\n cleaned.startsWith('1') && cleaned.length === 11 ? cleaned.slice(1) : cleaned,\n evaluateNationalNumber: (national) => {\n if (national.length !== 10) {\n return { isValid: false, error: 'Phone number must be 10 digits' };\n }\n const areaCode = national.substring(0, 3);\n if (!/^[2-9][0-8][0-9]$/.test(areaCode)) {\n return { isValid: false, error: 'Invalid area code' };\n }\n const exchangeCode = national.substring(3, 6);\n if (!/^[2-9]\\d{2}$/.test(exchangeCode)) {\n return { isValid: false, error: 'Invalid exchange code' };\n }\n return { isValid: true, type: 'unknown' };\n },\n});\n","import { createValidator } from '../core/validator.js';\n\nexport const validate = createValidator({\n countryCode: '1',\n getNationalNumber: (cleaned) =>\n cleaned.startsWith('1') && cleaned.length === 11 ? cleaned.slice(1) : cleaned,\n evaluateNationalNumber: (national) => {\n if (national.length !== 10) {\n return { isValid: false, error: 'Phone number must be 10 digits' };\n }\n const areaCode = national.substring(0, 3);\n if (!/^[2-9][0-8][0-9]$/.test(areaCode)) {\n return { isValid: false, error: 'Invalid area code' };\n }\n const exchangeCode = national.substring(3, 6);\n if (!/^[2-9]\\d{2}$/.test(exchangeCode)) {\n return { isValid: false, error: 'Invalid exchange code' };\n }\n return { isValid: true, type: 'unknown' };\n },\n});\n","import { createValidator } from '../core/validator.js';\n\nexport const validate = createValidator({\n countryCode: '49',\n getNationalNumber: (cleaned) => {\n let national = cleaned.startsWith('49') ? cleaned.slice(2) : cleaned;\n if (national.startsWith('0')) {\n national = national.slice(1);\n }\n return national;\n },\n evaluateNationalNumber: (national) => {\n if (national.length < 9 || national.length > 11) {\n return { isValid: false, error: 'Phone number must be 9-11 digits' };\n }\n if (/^1[567]/.test(national)) {\n return { isValid: true, type: 'mobile' };\n }\n return { isValid: true, type: 'landline' };\n },\n});\n","import { createValidator } from '../core/validator.js';\n\nexport const validate = createValidator({\n countryCode: '34',\n getNationalNumber: (cleaned) =>\n cleaned.startsWith('34') && cleaned.length > 9 ? cleaned.slice(2) : cleaned,\n evaluateNationalNumber: (national) => {\n if (national.length !== 9) {\n return { isValid: false, error: 'Phone number must be 9 digits' };\n }\n if (/^[67]/.test(national)) {\n return { isValid: true, type: 'mobile' };\n }\n if (/^[89]/.test(national)) {\n return { isValid: true, type: 'landline' };\n }\n return { isValid: false, error: 'Invalid prefix for Spain' };\n },\n});\n","import { createValidator } from '../core/validator.js';\n\nexport const validate = createValidator({\n countryCode: '33',\n getNationalNumber: (cleaned) => {\n let national = cleaned.startsWith('33') && cleaned.length > 9 ? cleaned.slice(2) : cleaned;\n if (national.startsWith('0')) {\n national = national.slice(1);\n }\n return national;\n },\n evaluateNationalNumber: (national) => {\n if (national.length !== 9) {\n return { isValid: false, error: 'Phone number must be 9 digits' };\n }\n if (/^[67]/.test(national)) {\n return { isValid: true, type: 'mobile' };\n }\n if (/^[1-5,9]/.test(national)) {\n return { isValid: true, type: 'landline' };\n }\n return { isValid: true, type: 'unknown' };\n },\n});\n","import { createValidator } from '../core/validator.js';\n\nexport const validate = createValidator({\n countryCode: '44',\n getNationalNumber: (cleaned) => {\n let national = cleaned.startsWith('44') && cleaned.length > 10 ? cleaned.slice(2) : cleaned;\n if (national.startsWith('0')) {\n national = national.slice(1);\n }\n return national;\n },\n evaluateNationalNumber: (national) => {\n if (national.length !== 10) {\n return { isValid: false, error: 'Phone number must be 10 digits' };\n }\n if (national.startsWith('7')) {\n return { isValid: true, type: 'mobile' };\n }\n if (/^[123]/.test(national)) {\n return { isValid: true, type: 'landline' };\n }\n return { isValid: true, type: 'unknown' };\n },\n});\n","import { createValidator } from '../core/validator.js';\n\nexport const validate = createValidator({\n countryCode: '39',\n getNationalNumber: (cleaned) => {\n let national = cleaned.startsWith('39') && cleaned.length > 9 ? cleaned.slice(2) : cleaned;\n if (national.startsWith('0')) {\n national = national.slice(1);\n }\n return national;\n },\n evaluateNationalNumber: (national) => {\n if (national.length < 9 || national.length > 10) {\n return { isValid: false, error: 'Phone number must be 9-10 digits' };\n }\n if (national.startsWith('3')) {\n return { isValid: true, type: 'mobile' };\n }\n return { isValid: true, type: 'landline' };\n },\n});\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { P as PhoneOptions, a as PhoneValidationResult } from './types-BCr040RT.cjs';
|
|
2
2
|
|
|
3
|
-
declare
|
|
3
|
+
declare const validate: (phone: string, options?: PhoneOptions) => PhoneValidationResult;
|
|
4
4
|
|
|
5
5
|
declare const it_validate: typeof validate;
|
|
6
6
|
declare namespace it {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { P as PhoneOptions, a as PhoneValidationResult } from './types-BCr040RT.js';
|
|
2
2
|
|
|
3
|
-
declare
|
|
3
|
+
declare const validate: (phone: string, options?: PhoneOptions) => PhoneValidationResult;
|
|
4
4
|
|
|
5
5
|
declare const it_validate: typeof validate;
|
|
6
6
|
declare namespace it {
|
package/dist/locales/ar.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';function
|
|
1
|
+
'use strict';function o(t){return t.replace(/\D/g,"")}function l(t,i){return `+${t}${i}`}function s(t){return function(u,a){let d=o(u),e=t.getNationalNumber(d),r=t.evaluateNationalNumber(e);if(!r.isValid)return r;let n=e;return a?.format==="e164"?n=l(t.countryCode,e):a?.format==="international"&&(n=`+${t.countryCode} ${e}`),{isValid:true,type:r.type,formatted:n}}}var c=s({countryCode:"54",getNationalNumber:t=>t.startsWith("54")&&t.length>10?t.slice(2):t,evaluateNationalNumber:t=>t.length!==10?{isValid:false,error:"Phone number must be 10 digits"}:t.startsWith("9")?{isValid:true,type:"mobile"}:/^(11|2|3|4)/.test(t)?{isValid:true,type:"landline"}:{isValid:true,type:"unknown"}});exports.validate=c;//# sourceMappingURL=ar.cjs.map
|
|
2
2
|
//# sourceMappingURL=ar.cjs.map
|
package/dist/locales/ar.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/utils.ts","../../src/locales/ar.ts"],"names":["cleanPhone","phone","formatE164","countryCode","
|
|
1
|
+
{"version":3,"sources":["../../src/core/utils.ts","../../src/core/validator.ts","../../src/locales/ar.ts"],"names":["cleanPhone","phone","formatE164","countryCode","createValidator","config","options","cleaned","national","evaluation","formatted","validate"],"mappings":"aAAO,SAASA,CAAAA,CAAWC,CAAAA,CAAuB,CAChD,OAAOA,EAAM,OAAA,CAAQ,KAAA,CAAO,EAAE,CAChC,CAEO,SAASC,CAAAA,CAAWC,CAAAA,CAAqBF,EAAuB,CACrE,OAAO,CAAA,CAAA,EAAIE,CAAW,CAAA,EAAGF,CAAK,CAAA,CAChC,CCOO,SAASG,CAAAA,CAAgBC,CAAAA,CAA8B,CAC5D,OAAO,SAAkBJ,CAAAA,CAAeK,CAAAA,CAA+C,CACrF,IAAMC,CAAAA,CAAUP,CAAAA,CAAWC,CAAK,CAAA,CAC1BO,CAAAA,CAAWH,CAAAA,CAAO,iBAAA,CAAkBE,CAAO,EAE3CE,CAAAA,CAAaJ,CAAAA,CAAO,sBAAA,CAAuBG,CAAQ,CAAA,CACzD,GAAI,CAACC,CAAAA,CAAW,QACd,OAAOA,CAAAA,CAGT,IAAIC,CAAAA,CAAYF,CAAAA,CAChB,OAAIF,CAAAA,EAAS,MAAA,GAAW,OACtBI,CAAAA,CAAYR,CAAAA,CAAWG,CAAAA,CAAO,WAAA,CAAaG,CAAQ,CAAA,CAC1CF,CAAAA,EAAS,MAAA,GAAW,eAAA,GAC7BI,EAAY,CAAA,CAAA,EAAIL,CAAAA,CAAO,WAAW,CAAA,CAAA,EAAIG,CAAQ,CAAA,CAAA,CAAA,CAGzC,CAAE,OAAA,CAAS,KAAM,IAAA,CAAMC,CAAAA,CAAW,IAAA,CAAM,SAAA,CAAAC,CAAU,CAC3D,CACF,KC9BaC,CAAAA,CAAWP,CAAAA,CAAgB,CACtC,WAAA,CAAa,IAAA,CACb,iBAAA,CAAoBG,CAAAA,EAClBA,CAAAA,CAAQ,WAAW,IAAI,CAAA,EAAKA,CAAAA,CAAQ,MAAA,CAAS,GAAKA,CAAAA,CAAQ,KAAA,CAAM,CAAC,CAAA,CAAIA,EACvE,sBAAA,CAAyBC,CAAAA,EACnBA,CAAAA,CAAS,MAAA,GAAW,EAAA,CACf,CAAE,OAAA,CAAS,KAAA,CAAO,MAAO,gCAAiC,CAAA,CAE/DA,CAAAA,CAAS,UAAA,CAAW,GAAG,CAAA,CAClB,CAAE,OAAA,CAAS,KAAM,IAAA,CAAM,QAAS,CAAA,CAErC,aAAA,CAAc,IAAA,CAAKA,CAAQ,CAAA,CACtB,CAAE,QAAS,IAAA,CAAM,IAAA,CAAM,UAAW,CAAA,CAEpC,CAAE,OAAA,CAAS,IAAA,CAAM,IAAA,CAAM,SAAU,CAE5C,CAAC","file":"ar.cjs","sourcesContent":["export function cleanPhone(phone: string): string {\n return phone.replace(/\\D/g, '');\n}\n\nexport function formatE164(countryCode: string, phone: string): string {\n return `+${countryCode}${phone}`;\n}\n","import type { PhoneValidationResult, PhoneOptions } from './types.js';\nimport { cleanPhone, formatE164 } from './utils.js';\n\nexport interface PhoneValidatorConfig {\n countryCode: string;\n getNationalNumber: (cleaned: string) => string;\n evaluateNationalNumber: (\n national: string\n ) =>\n | { isValid: true; type: 'mobile' | 'landline' | 'unknown' }\n | { isValid: false; error: string };\n}\n\nexport function createValidator(config: PhoneValidatorConfig) {\n return function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n const national = config.getNationalNumber(cleaned);\n\n const evaluation = config.evaluateNationalNumber(national);\n if (!evaluation.isValid) {\n return evaluation;\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(config.countryCode, national);\n } else if (options?.format === 'international') {\n formatted = `+${config.countryCode} ${national}`;\n }\n\n return { isValid: true, type: evaluation.type, formatted };\n };\n}\n","import { createValidator } from '../core/validator.js';\n\nexport const validate = createValidator({\n countryCode: '54',\n getNationalNumber: (cleaned) =>\n cleaned.startsWith('54') && cleaned.length > 10 ? cleaned.slice(2) : cleaned,\n evaluateNationalNumber: (national) => {\n if (national.length !== 10) {\n return { isValid: false, error: 'Phone number must be 10 digits' };\n }\n if (national.startsWith('9')) {\n return { isValid: true, type: 'mobile' };\n }\n if (/^(11|2|3|4)/.test(national)) {\n return { isValid: true, type: 'landline' };\n }\n return { isValid: true, type: 'unknown' };\n },\n});\n"]}
|
package/dist/locales/ar.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import '../types-BCr040RT.cjs';
|
|
2
|
-
export { v as validate } from '../ar-
|
|
2
|
+
export { v as validate } from '../ar-CoG6alvv.cjs';
|
package/dist/locales/ar.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import '../types-BCr040RT.js';
|
|
2
|
-
export { v as validate } from '../ar-
|
|
2
|
+
export { v as validate } from '../ar-DflcS_NX.js';
|
package/dist/locales/ar.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function
|
|
1
|
+
function o(t){return t.replace(/\D/g,"")}function l(t,i){return `+${t}${i}`}function s(t){return function(u,a){let d=o(u),e=t.getNationalNumber(d),r=t.evaluateNationalNumber(e);if(!r.isValid)return r;let n=e;return a?.format==="e164"?n=l(t.countryCode,e):a?.format==="international"&&(n=`+${t.countryCode} ${e}`),{isValid:true,type:r.type,formatted:n}}}var c=s({countryCode:"54",getNationalNumber:t=>t.startsWith("54")&&t.length>10?t.slice(2):t,evaluateNationalNumber:t=>t.length!==10?{isValid:false,error:"Phone number must be 10 digits"}:t.startsWith("9")?{isValid:true,type:"mobile"}:/^(11|2|3|4)/.test(t)?{isValid:true,type:"landline"}:{isValid:true,type:"unknown"}});export{c as validate};//# sourceMappingURL=ar.js.map
|
|
2
2
|
//# sourceMappingURL=ar.js.map
|
package/dist/locales/ar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/utils.ts","../../src/locales/ar.ts"],"names":["cleanPhone","phone","formatE164","countryCode","
|
|
1
|
+
{"version":3,"sources":["../../src/core/utils.ts","../../src/core/validator.ts","../../src/locales/ar.ts"],"names":["cleanPhone","phone","formatE164","countryCode","createValidator","config","options","cleaned","national","evaluation","formatted","validate"],"mappings":"AAAO,SAASA,CAAAA,CAAWC,CAAAA,CAAuB,CAChD,OAAOA,EAAM,OAAA,CAAQ,KAAA,CAAO,EAAE,CAChC,CAEO,SAASC,CAAAA,CAAWC,CAAAA,CAAqBF,EAAuB,CACrE,OAAO,CAAA,CAAA,EAAIE,CAAW,CAAA,EAAGF,CAAK,CAAA,CAChC,CCOO,SAASG,CAAAA,CAAgBC,CAAAA,CAA8B,CAC5D,OAAO,SAAkBJ,CAAAA,CAAeK,CAAAA,CAA+C,CACrF,IAAMC,CAAAA,CAAUP,CAAAA,CAAWC,CAAK,CAAA,CAC1BO,CAAAA,CAAWH,CAAAA,CAAO,iBAAA,CAAkBE,CAAO,EAE3CE,CAAAA,CAAaJ,CAAAA,CAAO,sBAAA,CAAuBG,CAAQ,CAAA,CACzD,GAAI,CAACC,CAAAA,CAAW,QACd,OAAOA,CAAAA,CAGT,IAAIC,CAAAA,CAAYF,CAAAA,CAChB,OAAIF,CAAAA,EAAS,MAAA,GAAW,OACtBI,CAAAA,CAAYR,CAAAA,CAAWG,CAAAA,CAAO,WAAA,CAAaG,CAAQ,CAAA,CAC1CF,CAAAA,EAAS,MAAA,GAAW,eAAA,GAC7BI,EAAY,CAAA,CAAA,EAAIL,CAAAA,CAAO,WAAW,CAAA,CAAA,EAAIG,CAAQ,CAAA,CAAA,CAAA,CAGzC,CAAE,OAAA,CAAS,KAAM,IAAA,CAAMC,CAAAA,CAAW,IAAA,CAAM,SAAA,CAAAC,CAAU,CAC3D,CACF,KC9BaC,CAAAA,CAAWP,CAAAA,CAAgB,CACtC,WAAA,CAAa,IAAA,CACb,iBAAA,CAAoBG,CAAAA,EAClBA,CAAAA,CAAQ,WAAW,IAAI,CAAA,EAAKA,CAAAA,CAAQ,MAAA,CAAS,GAAKA,CAAAA,CAAQ,KAAA,CAAM,CAAC,CAAA,CAAIA,EACvE,sBAAA,CAAyBC,CAAAA,EACnBA,CAAAA,CAAS,MAAA,GAAW,EAAA,CACf,CAAE,OAAA,CAAS,KAAA,CAAO,MAAO,gCAAiC,CAAA,CAE/DA,CAAAA,CAAS,UAAA,CAAW,GAAG,CAAA,CAClB,CAAE,OAAA,CAAS,KAAM,IAAA,CAAM,QAAS,CAAA,CAErC,aAAA,CAAc,IAAA,CAAKA,CAAQ,CAAA,CACtB,CAAE,QAAS,IAAA,CAAM,IAAA,CAAM,UAAW,CAAA,CAEpC,CAAE,OAAA,CAAS,IAAA,CAAM,IAAA,CAAM,SAAU,CAE5C,CAAC","file":"ar.js","sourcesContent":["export function cleanPhone(phone: string): string {\n return phone.replace(/\\D/g, '');\n}\n\nexport function formatE164(countryCode: string, phone: string): string {\n return `+${countryCode}${phone}`;\n}\n","import type { PhoneValidationResult, PhoneOptions } from './types.js';\nimport { cleanPhone, formatE164 } from './utils.js';\n\nexport interface PhoneValidatorConfig {\n countryCode: string;\n getNationalNumber: (cleaned: string) => string;\n evaluateNationalNumber: (\n national: string\n ) =>\n | { isValid: true; type: 'mobile' | 'landline' | 'unknown' }\n | { isValid: false; error: string };\n}\n\nexport function createValidator(config: PhoneValidatorConfig) {\n return function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n const national = config.getNationalNumber(cleaned);\n\n const evaluation = config.evaluateNationalNumber(national);\n if (!evaluation.isValid) {\n return evaluation;\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(config.countryCode, national);\n } else if (options?.format === 'international') {\n formatted = `+${config.countryCode} ${national}`;\n }\n\n return { isValid: true, type: evaluation.type, formatted };\n };\n}\n","import { createValidator } from '../core/validator.js';\n\nexport const validate = createValidator({\n countryCode: '54',\n getNationalNumber: (cleaned) =>\n cleaned.startsWith('54') && cleaned.length > 10 ? cleaned.slice(2) : cleaned,\n evaluateNationalNumber: (national) => {\n if (national.length !== 10) {\n return { isValid: false, error: 'Phone number must be 10 digits' };\n }\n if (national.startsWith('9')) {\n return { isValid: true, type: 'mobile' };\n }\n if (/^(11|2|3|4)/.test(national)) {\n return { isValid: true, type: 'landline' };\n }\n return { isValid: true, type: 'unknown' };\n },\n});\n"]}
|
package/dist/locales/br.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';function a(
|
|
1
|
+
'use strict';function a(t){return t.replace(/\D/g,"")}function l(t,i){return `+${t}${i}`}function s(t){return function(u,o){let d=a(u),e=t.getNationalNumber(d),r=t.evaluateNationalNumber(e);if(!r.isValid)return r;let n=e;return o?.format==="e164"?n=l(t.countryCode,e):o?.format==="international"&&(n=`+${t.countryCode} ${e}`),{isValid:true,type:r.type,formatted:n}}}var h=s({countryCode:"55",getNationalNumber:t=>t.startsWith("55")&&t.length>10?t.slice(2):t,evaluateNationalNumber:t=>t.length!==10&&t.length!==11?{isValid:false,error:"Phone number must be 10 or 11 digits"}:t.length===11&&t[2]==="9"?{isValid:true,type:"mobile"}:t.length===10?{isValid:true,type:"landline"}:{isValid:false,error:"Invalid phone format for Brazil"}});exports.validate=h;//# sourceMappingURL=br.cjs.map
|
|
2
2
|
//# sourceMappingURL=br.cjs.map
|
package/dist/locales/br.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/utils.ts","../../src/locales/br.ts"],"names":["cleanPhone","phone","formatE164","countryCode","
|
|
1
|
+
{"version":3,"sources":["../../src/core/utils.ts","../../src/core/validator.ts","../../src/locales/br.ts"],"names":["cleanPhone","phone","formatE164","countryCode","createValidator","config","options","cleaned","national","evaluation","formatted","validate"],"mappings":"aAAO,SAASA,CAAAA,CAAWC,CAAAA,CAAuB,CAChD,OAAOA,EAAM,OAAA,CAAQ,KAAA,CAAO,EAAE,CAChC,CAEO,SAASC,CAAAA,CAAWC,CAAAA,CAAqBF,CAAAA,CAAuB,CACrE,OAAO,CAAA,CAAA,EAAIE,CAAW,CAAA,EAAGF,CAAK,CAAA,CAChC,CCOO,SAASG,EAAgBC,CAAAA,CAA8B,CAC5D,OAAO,SAAkBJ,EAAeK,CAAAA,CAA+C,CACrF,IAAMC,CAAAA,CAAUP,EAAWC,CAAK,CAAA,CAC1BO,CAAAA,CAAWH,CAAAA,CAAO,iBAAA,CAAkBE,CAAO,CAAA,CAE3CE,CAAAA,CAAaJ,EAAO,sBAAA,CAAuBG,CAAQ,CAAA,CACzD,GAAI,CAACC,CAAAA,CAAW,OAAA,CACd,OAAOA,CAAAA,CAGT,IAAIC,CAAAA,CAAYF,CAAAA,CAChB,OAAIF,CAAAA,EAAS,MAAA,GAAW,MAAA,CACtBI,CAAAA,CAAYR,CAAAA,CAAWG,EAAO,WAAA,CAAaG,CAAQ,CAAA,CAC1CF,CAAAA,EAAS,SAAW,eAAA,GAC7BI,CAAAA,CAAY,CAAA,CAAA,EAAIL,CAAAA,CAAO,WAAW,CAAA,CAAA,EAAIG,CAAQ,CAAA,CAAA,CAAA,CAGzC,CAAE,OAAA,CAAS,IAAA,CAAM,IAAA,CAAMC,CAAAA,CAAW,KAAM,SAAA,CAAAC,CAAU,CAC3D,CACF,CC9BO,IAAMC,CAAAA,CAAWP,CAAAA,CAAgB,CACtC,YAAa,IAAA,CACb,iBAAA,CAAoBG,CAAAA,EAClBA,CAAAA,CAAQ,UAAA,CAAW,IAAI,CAAA,EAAKA,CAAAA,CAAQ,OAAS,EAAA,CAAKA,CAAAA,CAAQ,KAAA,CAAM,CAAC,EAAIA,CAAAA,CACvE,sBAAA,CAAyBC,CAAAA,EACnBA,CAAAA,CAAS,SAAW,EAAA,EAAMA,CAAAA,CAAS,MAAA,GAAW,EAAA,CACzC,CAAE,OAAA,CAAS,KAAA,CAAO,KAAA,CAAO,sCAAuC,CAAA,CAErEA,CAAAA,CAAS,MAAA,GAAW,EAAA,EAAMA,EAAS,CAAC,CAAA,GAAM,GAAA,CACrC,CAAE,QAAS,IAAA,CAAM,IAAA,CAAM,QAAS,CAAA,CAErCA,CAAAA,CAAS,MAAA,GAAW,EAAA,CACf,CAAE,QAAS,IAAA,CAAM,IAAA,CAAM,UAAW,CAAA,CAEpC,CAAE,OAAA,CAAS,KAAA,CAAO,KAAA,CAAO,iCAAkC,CAEtE,CAAC","file":"br.cjs","sourcesContent":["export function cleanPhone(phone: string): string {\n return phone.replace(/\\D/g, '');\n}\n\nexport function formatE164(countryCode: string, phone: string): string {\n return `+${countryCode}${phone}`;\n}\n","import type { PhoneValidationResult, PhoneOptions } from './types.js';\nimport { cleanPhone, formatE164 } from './utils.js';\n\nexport interface PhoneValidatorConfig {\n countryCode: string;\n getNationalNumber: (cleaned: string) => string;\n evaluateNationalNumber: (\n national: string\n ) =>\n | { isValid: true; type: 'mobile' | 'landline' | 'unknown' }\n | { isValid: false; error: string };\n}\n\nexport function createValidator(config: PhoneValidatorConfig) {\n return function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n const national = config.getNationalNumber(cleaned);\n\n const evaluation = config.evaluateNationalNumber(national);\n if (!evaluation.isValid) {\n return evaluation;\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(config.countryCode, national);\n } else if (options?.format === 'international') {\n formatted = `+${config.countryCode} ${national}`;\n }\n\n return { isValid: true, type: evaluation.type, formatted };\n };\n}\n","import { createValidator } from '../core/validator.js';\n\nexport const validate = createValidator({\n countryCode: '55',\n getNationalNumber: (cleaned) =>\n cleaned.startsWith('55') && cleaned.length > 10 ? cleaned.slice(2) : cleaned,\n evaluateNationalNumber: (national) => {\n if (national.length !== 10 && national.length !== 11) {\n return { isValid: false, error: 'Phone number must be 10 or 11 digits' };\n }\n if (national.length === 11 && national[2] === '9') {\n return { isValid: true, type: 'mobile' };\n }\n if (national.length === 10) {\n return { isValid: true, type: 'landline' };\n }\n return { isValid: false, error: 'Invalid phone format for Brazil' };\n },\n});\n"]}
|
package/dist/locales/br.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import '../types-BCr040RT.cjs';
|
|
2
|
-
export { v as validate } from '../br-
|
|
2
|
+
export { v as validate } from '../br-wLM9wWJU.cjs';
|
package/dist/locales/br.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import '../types-BCr040RT.js';
|
|
2
|
-
export { v as validate } from '../br-
|
|
2
|
+
export { v as validate } from '../br-DUpSkSAW.js';
|
package/dist/locales/br.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function a(
|
|
1
|
+
function a(t){return t.replace(/\D/g,"")}function l(t,i){return `+${t}${i}`}function s(t){return function(u,o){let d=a(u),e=t.getNationalNumber(d),r=t.evaluateNationalNumber(e);if(!r.isValid)return r;let n=e;return o?.format==="e164"?n=l(t.countryCode,e):o?.format==="international"&&(n=`+${t.countryCode} ${e}`),{isValid:true,type:r.type,formatted:n}}}var h=s({countryCode:"55",getNationalNumber:t=>t.startsWith("55")&&t.length>10?t.slice(2):t,evaluateNationalNumber:t=>t.length!==10&&t.length!==11?{isValid:false,error:"Phone number must be 10 or 11 digits"}:t.length===11&&t[2]==="9"?{isValid:true,type:"mobile"}:t.length===10?{isValid:true,type:"landline"}:{isValid:false,error:"Invalid phone format for Brazil"}});export{h as validate};//# sourceMappingURL=br.js.map
|
|
2
2
|
//# sourceMappingURL=br.js.map
|
package/dist/locales/br.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/utils.ts","../../src/locales/br.ts"],"names":["cleanPhone","phone","formatE164","countryCode","
|
|
1
|
+
{"version":3,"sources":["../../src/core/utils.ts","../../src/core/validator.ts","../../src/locales/br.ts"],"names":["cleanPhone","phone","formatE164","countryCode","createValidator","config","options","cleaned","national","evaluation","formatted","validate"],"mappings":"AAAO,SAASA,CAAAA,CAAWC,CAAAA,CAAuB,CAChD,OAAOA,EAAM,OAAA,CAAQ,KAAA,CAAO,EAAE,CAChC,CAEO,SAASC,CAAAA,CAAWC,CAAAA,CAAqBF,CAAAA,CAAuB,CACrE,OAAO,CAAA,CAAA,EAAIE,CAAW,CAAA,EAAGF,CAAK,CAAA,CAChC,CCOO,SAASG,EAAgBC,CAAAA,CAA8B,CAC5D,OAAO,SAAkBJ,EAAeK,CAAAA,CAA+C,CACrF,IAAMC,CAAAA,CAAUP,EAAWC,CAAK,CAAA,CAC1BO,CAAAA,CAAWH,CAAAA,CAAO,iBAAA,CAAkBE,CAAO,CAAA,CAE3CE,CAAAA,CAAaJ,EAAO,sBAAA,CAAuBG,CAAQ,CAAA,CACzD,GAAI,CAACC,CAAAA,CAAW,OAAA,CACd,OAAOA,CAAAA,CAGT,IAAIC,CAAAA,CAAYF,CAAAA,CAChB,OAAIF,CAAAA,EAAS,MAAA,GAAW,MAAA,CACtBI,CAAAA,CAAYR,CAAAA,CAAWG,EAAO,WAAA,CAAaG,CAAQ,CAAA,CAC1CF,CAAAA,EAAS,SAAW,eAAA,GAC7BI,CAAAA,CAAY,CAAA,CAAA,EAAIL,CAAAA,CAAO,WAAW,CAAA,CAAA,EAAIG,CAAQ,CAAA,CAAA,CAAA,CAGzC,CAAE,OAAA,CAAS,IAAA,CAAM,IAAA,CAAMC,CAAAA,CAAW,KAAM,SAAA,CAAAC,CAAU,CAC3D,CACF,CC9BO,IAAMC,CAAAA,CAAWP,CAAAA,CAAgB,CACtC,YAAa,IAAA,CACb,iBAAA,CAAoBG,CAAAA,EAClBA,CAAAA,CAAQ,UAAA,CAAW,IAAI,CAAA,EAAKA,CAAAA,CAAQ,OAAS,EAAA,CAAKA,CAAAA,CAAQ,KAAA,CAAM,CAAC,EAAIA,CAAAA,CACvE,sBAAA,CAAyBC,CAAAA,EACnBA,CAAAA,CAAS,SAAW,EAAA,EAAMA,CAAAA,CAAS,MAAA,GAAW,EAAA,CACzC,CAAE,OAAA,CAAS,KAAA,CAAO,KAAA,CAAO,sCAAuC,CAAA,CAErEA,CAAAA,CAAS,MAAA,GAAW,EAAA,EAAMA,EAAS,CAAC,CAAA,GAAM,GAAA,CACrC,CAAE,QAAS,IAAA,CAAM,IAAA,CAAM,QAAS,CAAA,CAErCA,CAAAA,CAAS,MAAA,GAAW,EAAA,CACf,CAAE,QAAS,IAAA,CAAM,IAAA,CAAM,UAAW,CAAA,CAEpC,CAAE,OAAA,CAAS,KAAA,CAAO,KAAA,CAAO,iCAAkC,CAEtE,CAAC","file":"br.js","sourcesContent":["export function cleanPhone(phone: string): string {\n return phone.replace(/\\D/g, '');\n}\n\nexport function formatE164(countryCode: string, phone: string): string {\n return `+${countryCode}${phone}`;\n}\n","import type { PhoneValidationResult, PhoneOptions } from './types.js';\nimport { cleanPhone, formatE164 } from './utils.js';\n\nexport interface PhoneValidatorConfig {\n countryCode: string;\n getNationalNumber: (cleaned: string) => string;\n evaluateNationalNumber: (\n national: string\n ) =>\n | { isValid: true; type: 'mobile' | 'landline' | 'unknown' }\n | { isValid: false; error: string };\n}\n\nexport function createValidator(config: PhoneValidatorConfig) {\n return function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n const national = config.getNationalNumber(cleaned);\n\n const evaluation = config.evaluateNationalNumber(national);\n if (!evaluation.isValid) {\n return evaluation;\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(config.countryCode, national);\n } else if (options?.format === 'international') {\n formatted = `+${config.countryCode} ${national}`;\n }\n\n return { isValid: true, type: evaluation.type, formatted };\n };\n}\n","import { createValidator } from '../core/validator.js';\n\nexport const validate = createValidator({\n countryCode: '55',\n getNationalNumber: (cleaned) =>\n cleaned.startsWith('55') && cleaned.length > 10 ? cleaned.slice(2) : cleaned,\n evaluateNationalNumber: (national) => {\n if (national.length !== 10 && national.length !== 11) {\n return { isValid: false, error: 'Phone number must be 10 or 11 digits' };\n }\n if (national.length === 11 && national[2] === '9') {\n return { isValid: true, type: 'mobile' };\n }\n if (national.length === 10) {\n return { isValid: true, type: 'landline' };\n }\n return { isValid: false, error: 'Invalid phone format for Brazil' };\n },\n});\n"]}
|
package/dist/locales/ca.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';function
|
|
1
|
+
'use strict';function s(t){return t.replace(/\D/g,"")}function l(t,e){return `+${t}${e}`}function u(t){return function(n,o){let d=s(n),r=t.getNationalNumber(d),a=t.evaluateNationalNumber(r);if(!a.isValid)return a;let i=r;return o?.format==="e164"?i=l(t.countryCode,r):o?.format==="international"&&(i=`+${t.countryCode} ${r}`),{isValid:true,type:a.type,formatted:i}}}var p=u({countryCode:"1",getNationalNumber:t=>t.startsWith("1")&&t.length===11?t.slice(1):t,evaluateNationalNumber:t=>{if(t.length!==10)return {isValid:false,error:"Phone number must be 10 digits"};let e=t.substring(0,3);if(!/^[2-9][0-8][0-9]$/.test(e))return {isValid:false,error:"Invalid area code"};let n=t.substring(3,6);return /^[2-9]\d{2}$/.test(n)?{isValid:true,type:"unknown"}:{isValid:false,error:"Invalid exchange code"}}});exports.validate=p;//# sourceMappingURL=ca.cjs.map
|
|
2
2
|
//# sourceMappingURL=ca.cjs.map
|
package/dist/locales/ca.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/utils.ts","../../src/locales/ca.ts"],"names":["cleanPhone","phone","formatE164","countryCode","
|
|
1
|
+
{"version":3,"sources":["../../src/core/utils.ts","../../src/core/validator.ts","../../src/locales/ca.ts"],"names":["cleanPhone","phone","formatE164","countryCode","createValidator","config","options","cleaned","national","evaluation","formatted","validate","areaCode","exchangeCode"],"mappings":"aAAO,SAASA,EAAWC,CAAAA,CAAuB,CAChD,OAAOA,CAAAA,CAAM,QAAQ,KAAA,CAAO,EAAE,CAChC,CAEO,SAASC,CAAAA,CAAWC,CAAAA,CAAqBF,EAAuB,CACrE,OAAO,IAAIE,CAAW,CAAA,EAAGF,CAAK,CAAA,CAChC,CCOO,SAASG,CAAAA,CAAgBC,CAAAA,CAA8B,CAC5D,OAAO,SAAkBJ,CAAAA,CAAeK,CAAAA,CAA+C,CACrF,IAAMC,CAAAA,CAAUP,CAAAA,CAAWC,CAAK,CAAA,CAC1BO,CAAAA,CAAWH,EAAO,iBAAA,CAAkBE,CAAO,CAAA,CAE3CE,CAAAA,CAAaJ,EAAO,sBAAA,CAAuBG,CAAQ,CAAA,CACzD,GAAI,CAACC,CAAAA,CAAW,OAAA,CACd,OAAOA,CAAAA,CAGT,IAAIC,CAAAA,CAAYF,CAAAA,CAChB,OAAIF,CAAAA,EAAS,MAAA,GAAW,OACtBI,CAAAA,CAAYR,CAAAA,CAAWG,CAAAA,CAAO,WAAA,CAAaG,CAAQ,CAAA,CAC1CF,CAAAA,EAAS,MAAA,GAAW,eAAA,GAC7BI,EAAY,CAAA,CAAA,EAAIL,CAAAA,CAAO,WAAW,CAAA,CAAA,EAAIG,CAAQ,CAAA,CAAA,CAAA,CAGzC,CAAE,QAAS,IAAA,CAAM,IAAA,CAAMC,EAAW,IAAA,CAAM,SAAA,CAAAC,CAAU,CAC3D,CACF,CC9BO,IAAMC,CAAAA,CAAWP,CAAAA,CAAgB,CACtC,WAAA,CAAa,GAAA,CACb,iBAAA,CAAoBG,CAAAA,EAClBA,EAAQ,UAAA,CAAW,GAAG,GAAKA,CAAAA,CAAQ,MAAA,GAAW,GAAKA,CAAAA,CAAQ,KAAA,CAAM,CAAC,CAAA,CAAIA,EACxE,sBAAA,CAAyBC,CAAAA,EAAa,CACpC,GAAIA,EAAS,MAAA,GAAW,EAAA,CACtB,OAAO,CAAE,QAAS,KAAA,CAAO,KAAA,CAAO,gCAAiC,CAAA,CAEnE,IAAMI,EAAWJ,CAAAA,CAAS,SAAA,CAAU,CAAA,CAAG,CAAC,EACxC,GAAI,CAAC,mBAAA,CAAoB,IAAA,CAAKI,CAAQ,CAAA,CACpC,OAAO,CAAE,OAAA,CAAS,MAAO,KAAA,CAAO,mBAAoB,EAEtD,IAAMC,CAAAA,CAAeL,EAAS,SAAA,CAAU,CAAA,CAAG,CAAC,CAAA,CAC5C,OAAK,cAAA,CAAe,IAAA,CAAKK,CAAY,CAAA,CAG9B,CAAE,QAAS,IAAA,CAAM,IAAA,CAAM,SAAU,CAAA,CAF/B,CAAE,OAAA,CAAS,KAAA,CAAO,MAAO,uBAAwB,CAG5D,CACF,CAAC","file":"ca.cjs","sourcesContent":["export function cleanPhone(phone: string): string {\n return phone.replace(/\\D/g, '');\n}\n\nexport function formatE164(countryCode: string, phone: string): string {\n return `+${countryCode}${phone}`;\n}\n","import type { PhoneValidationResult, PhoneOptions } from './types.js';\nimport { cleanPhone, formatE164 } from './utils.js';\n\nexport interface PhoneValidatorConfig {\n countryCode: string;\n getNationalNumber: (cleaned: string) => string;\n evaluateNationalNumber: (\n national: string\n ) =>\n | { isValid: true; type: 'mobile' | 'landline' | 'unknown' }\n | { isValid: false; error: string };\n}\n\nexport function createValidator(config: PhoneValidatorConfig) {\n return function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n const national = config.getNationalNumber(cleaned);\n\n const evaluation = config.evaluateNationalNumber(national);\n if (!evaluation.isValid) {\n return evaluation;\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(config.countryCode, national);\n } else if (options?.format === 'international') {\n formatted = `+${config.countryCode} ${national}`;\n }\n\n return { isValid: true, type: evaluation.type, formatted };\n };\n}\n","import { createValidator } from '../core/validator.js';\n\nexport const validate = createValidator({\n countryCode: '1',\n getNationalNumber: (cleaned) =>\n cleaned.startsWith('1') && cleaned.length === 11 ? cleaned.slice(1) : cleaned,\n evaluateNationalNumber: (national) => {\n if (national.length !== 10) {\n return { isValid: false, error: 'Phone number must be 10 digits' };\n }\n const areaCode = national.substring(0, 3);\n if (!/^[2-9][0-8][0-9]$/.test(areaCode)) {\n return { isValid: false, error: 'Invalid area code' };\n }\n const exchangeCode = national.substring(3, 6);\n if (!/^[2-9]\\d{2}$/.test(exchangeCode)) {\n return { isValid: false, error: 'Invalid exchange code' };\n }\n return { isValid: true, type: 'unknown' };\n },\n});\n"]}
|
package/dist/locales/ca.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import '../types-BCr040RT.cjs';
|
|
2
|
-
export { v as validate } from '../ca-
|
|
2
|
+
export { v as validate } from '../ca-CrMz6MFF.cjs';
|
package/dist/locales/ca.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import '../types-BCr040RT.js';
|
|
2
|
-
export { v as validate } from '../ca-
|
|
2
|
+
export { v as validate } from '../ca-DgJh2Fn8.js';
|
package/dist/locales/ca.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function
|
|
1
|
+
function s(t){return t.replace(/\D/g,"")}function l(t,e){return `+${t}${e}`}function u(t){return function(n,o){let d=s(n),r=t.getNationalNumber(d),a=t.evaluateNationalNumber(r);if(!a.isValid)return a;let i=r;return o?.format==="e164"?i=l(t.countryCode,r):o?.format==="international"&&(i=`+${t.countryCode} ${r}`),{isValid:true,type:a.type,formatted:i}}}var p=u({countryCode:"1",getNationalNumber:t=>t.startsWith("1")&&t.length===11?t.slice(1):t,evaluateNationalNumber:t=>{if(t.length!==10)return {isValid:false,error:"Phone number must be 10 digits"};let e=t.substring(0,3);if(!/^[2-9][0-8][0-9]$/.test(e))return {isValid:false,error:"Invalid area code"};let n=t.substring(3,6);return /^[2-9]\d{2}$/.test(n)?{isValid:true,type:"unknown"}:{isValid:false,error:"Invalid exchange code"}}});export{p as validate};//# sourceMappingURL=ca.js.map
|
|
2
2
|
//# sourceMappingURL=ca.js.map
|
package/dist/locales/ca.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/utils.ts","../../src/locales/ca.ts"],"names":["cleanPhone","phone","formatE164","countryCode","
|
|
1
|
+
{"version":3,"sources":["../../src/core/utils.ts","../../src/core/validator.ts","../../src/locales/ca.ts"],"names":["cleanPhone","phone","formatE164","countryCode","createValidator","config","options","cleaned","national","evaluation","formatted","validate","areaCode","exchangeCode"],"mappings":"AAAO,SAASA,EAAWC,CAAAA,CAAuB,CAChD,OAAOA,CAAAA,CAAM,QAAQ,KAAA,CAAO,EAAE,CAChC,CAEO,SAASC,CAAAA,CAAWC,CAAAA,CAAqBF,EAAuB,CACrE,OAAO,IAAIE,CAAW,CAAA,EAAGF,CAAK,CAAA,CAChC,CCOO,SAASG,CAAAA,CAAgBC,CAAAA,CAA8B,CAC5D,OAAO,SAAkBJ,CAAAA,CAAeK,CAAAA,CAA+C,CACrF,IAAMC,CAAAA,CAAUP,CAAAA,CAAWC,CAAK,CAAA,CAC1BO,CAAAA,CAAWH,EAAO,iBAAA,CAAkBE,CAAO,CAAA,CAE3CE,CAAAA,CAAaJ,EAAO,sBAAA,CAAuBG,CAAQ,CAAA,CACzD,GAAI,CAACC,CAAAA,CAAW,OAAA,CACd,OAAOA,CAAAA,CAGT,IAAIC,CAAAA,CAAYF,CAAAA,CAChB,OAAIF,CAAAA,EAAS,MAAA,GAAW,OACtBI,CAAAA,CAAYR,CAAAA,CAAWG,CAAAA,CAAO,WAAA,CAAaG,CAAQ,CAAA,CAC1CF,CAAAA,EAAS,MAAA,GAAW,eAAA,GAC7BI,EAAY,CAAA,CAAA,EAAIL,CAAAA,CAAO,WAAW,CAAA,CAAA,EAAIG,CAAQ,CAAA,CAAA,CAAA,CAGzC,CAAE,QAAS,IAAA,CAAM,IAAA,CAAMC,EAAW,IAAA,CAAM,SAAA,CAAAC,CAAU,CAC3D,CACF,CC9BO,IAAMC,CAAAA,CAAWP,CAAAA,CAAgB,CACtC,WAAA,CAAa,GAAA,CACb,iBAAA,CAAoBG,CAAAA,EAClBA,EAAQ,UAAA,CAAW,GAAG,GAAKA,CAAAA,CAAQ,MAAA,GAAW,GAAKA,CAAAA,CAAQ,KAAA,CAAM,CAAC,CAAA,CAAIA,EACxE,sBAAA,CAAyBC,CAAAA,EAAa,CACpC,GAAIA,EAAS,MAAA,GAAW,EAAA,CACtB,OAAO,CAAE,QAAS,KAAA,CAAO,KAAA,CAAO,gCAAiC,CAAA,CAEnE,IAAMI,EAAWJ,CAAAA,CAAS,SAAA,CAAU,CAAA,CAAG,CAAC,EACxC,GAAI,CAAC,mBAAA,CAAoB,IAAA,CAAKI,CAAQ,CAAA,CACpC,OAAO,CAAE,OAAA,CAAS,MAAO,KAAA,CAAO,mBAAoB,EAEtD,IAAMC,CAAAA,CAAeL,EAAS,SAAA,CAAU,CAAA,CAAG,CAAC,CAAA,CAC5C,OAAK,cAAA,CAAe,IAAA,CAAKK,CAAY,CAAA,CAG9B,CAAE,QAAS,IAAA,CAAM,IAAA,CAAM,SAAU,CAAA,CAF/B,CAAE,OAAA,CAAS,KAAA,CAAO,MAAO,uBAAwB,CAG5D,CACF,CAAC","file":"ca.js","sourcesContent":["export function cleanPhone(phone: string): string {\n return phone.replace(/\\D/g, '');\n}\n\nexport function formatE164(countryCode: string, phone: string): string {\n return `+${countryCode}${phone}`;\n}\n","import type { PhoneValidationResult, PhoneOptions } from './types.js';\nimport { cleanPhone, formatE164 } from './utils.js';\n\nexport interface PhoneValidatorConfig {\n countryCode: string;\n getNationalNumber: (cleaned: string) => string;\n evaluateNationalNumber: (\n national: string\n ) =>\n | { isValid: true; type: 'mobile' | 'landline' | 'unknown' }\n | { isValid: false; error: string };\n}\n\nexport function createValidator(config: PhoneValidatorConfig) {\n return function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n const national = config.getNationalNumber(cleaned);\n\n const evaluation = config.evaluateNationalNumber(national);\n if (!evaluation.isValid) {\n return evaluation;\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(config.countryCode, national);\n } else if (options?.format === 'international') {\n formatted = `+${config.countryCode} ${national}`;\n }\n\n return { isValid: true, type: evaluation.type, formatted };\n };\n}\n","import { createValidator } from '../core/validator.js';\n\nexport const validate = createValidator({\n countryCode: '1',\n getNationalNumber: (cleaned) =>\n cleaned.startsWith('1') && cleaned.length === 11 ? cleaned.slice(1) : cleaned,\n evaluateNationalNumber: (national) => {\n if (national.length !== 10) {\n return { isValid: false, error: 'Phone number must be 10 digits' };\n }\n const areaCode = national.substring(0, 3);\n if (!/^[2-9][0-8][0-9]$/.test(areaCode)) {\n return { isValid: false, error: 'Invalid area code' };\n }\n const exchangeCode = national.substring(3, 6);\n if (!/^[2-9]\\d{2}$/.test(exchangeCode)) {\n return { isValid: false, error: 'Invalid exchange code' };\n }\n return { isValid: true, type: 'unknown' };\n },\n});\n"]}
|
package/dist/locales/cl.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';function
|
|
1
|
+
'use strict';function o(t){return t.replace(/\D/g,"")}function l(t,n){return `+${t}${n}`}function s(t){return function(u,a){let d=o(u),e=t.getNationalNumber(d),r=t.evaluateNationalNumber(e);if(!r.isValid)return r;let i=e;return a?.format==="e164"?i=l(t.countryCode,e):a?.format==="international"&&(i=`+${t.countryCode} ${e}`),{isValid:true,type:r.type,formatted:i}}}var c=s({countryCode:"56",getNationalNumber:t=>t.startsWith("56")&&t.length>9?t.slice(2):t,evaluateNationalNumber:t=>t.length!==9?{isValid:false,error:"Phone number must be 9 digits"}:t.startsWith("9")?{isValid:true,type:"mobile"}:/^[2-7]/.test(t)?{isValid:true,type:"landline"}:{isValid:false,error:"Invalid prefix for Chile"}});exports.validate=c;//# sourceMappingURL=cl.cjs.map
|
|
2
2
|
//# sourceMappingURL=cl.cjs.map
|
package/dist/locales/cl.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/utils.ts","../../src/locales/cl.ts"],"names":["cleanPhone","phone","formatE164","countryCode","
|
|
1
|
+
{"version":3,"sources":["../../src/core/utils.ts","../../src/core/validator.ts","../../src/locales/cl.ts"],"names":["cleanPhone","phone","formatE164","countryCode","createValidator","config","options","cleaned","national","evaluation","formatted","validate"],"mappings":"aAAO,SAASA,CAAAA,CAAWC,CAAAA,CAAuB,CAChD,OAAOA,EAAM,OAAA,CAAQ,KAAA,CAAO,EAAE,CAChC,CAEO,SAASC,CAAAA,CAAWC,CAAAA,CAAqBF,EAAuB,CACrE,OAAO,CAAA,CAAA,EAAIE,CAAW,CAAA,EAAGF,CAAK,CAAA,CAChC,CCOO,SAASG,CAAAA,CAAgBC,CAAAA,CAA8B,CAC5D,OAAO,SAAkBJ,CAAAA,CAAeK,CAAAA,CAA+C,CACrF,IAAMC,CAAAA,CAAUP,CAAAA,CAAWC,CAAK,CAAA,CAC1BO,CAAAA,CAAWH,CAAAA,CAAO,iBAAA,CAAkBE,CAAO,EAE3CE,CAAAA,CAAaJ,CAAAA,CAAO,sBAAA,CAAuBG,CAAQ,CAAA,CACzD,GAAI,CAACC,CAAAA,CAAW,QACd,OAAOA,CAAAA,CAGT,IAAIC,CAAAA,CAAYF,CAAAA,CAChB,OAAIF,CAAAA,EAAS,MAAA,GAAW,OACtBI,CAAAA,CAAYR,CAAAA,CAAWG,CAAAA,CAAO,WAAA,CAAaG,CAAQ,CAAA,CAC1CF,CAAAA,EAAS,MAAA,GAAW,eAAA,GAC7BI,EAAY,CAAA,CAAA,EAAIL,CAAAA,CAAO,WAAW,CAAA,CAAA,EAAIG,CAAQ,CAAA,CAAA,CAAA,CAGzC,CAAE,OAAA,CAAS,KAAM,IAAA,CAAMC,CAAAA,CAAW,IAAA,CAAM,SAAA,CAAAC,CAAU,CAC3D,CACF,KC9BaC,CAAAA,CAAWP,CAAAA,CAAgB,CACtC,WAAA,CAAa,IAAA,CACb,iBAAA,CAAoBG,CAAAA,EAClBA,CAAAA,CAAQ,WAAW,IAAI,CAAA,EAAKA,CAAAA,CAAQ,MAAA,CAAS,EAAIA,CAAAA,CAAQ,KAAA,CAAM,CAAC,CAAA,CAAIA,EACtE,sBAAA,CAAyBC,CAAAA,EACnBA,CAAAA,CAAS,MAAA,GAAW,CAAA,CACf,CAAE,OAAA,CAAS,KAAA,CAAO,MAAO,+BAAgC,CAAA,CAE9DA,CAAAA,CAAS,UAAA,CAAW,GAAG,CAAA,CAClB,CAAE,OAAA,CAAS,KAAM,IAAA,CAAM,QAAS,CAAA,CAErC,QAAA,CAAS,IAAA,CAAKA,CAAQ,CAAA,CACjB,CAAE,QAAS,IAAA,CAAM,IAAA,CAAM,UAAW,CAAA,CAEpC,CAAE,OAAA,CAAS,KAAA,CAAO,KAAA,CAAO,0BAA2B,CAE/D,CAAC","file":"cl.cjs","sourcesContent":["export function cleanPhone(phone: string): string {\n return phone.replace(/\\D/g, '');\n}\n\nexport function formatE164(countryCode: string, phone: string): string {\n return `+${countryCode}${phone}`;\n}\n","import type { PhoneValidationResult, PhoneOptions } from './types.js';\nimport { cleanPhone, formatE164 } from './utils.js';\n\nexport interface PhoneValidatorConfig {\n countryCode: string;\n getNationalNumber: (cleaned: string) => string;\n evaluateNationalNumber: (\n national: string\n ) =>\n | { isValid: true; type: 'mobile' | 'landline' | 'unknown' }\n | { isValid: false; error: string };\n}\n\nexport function createValidator(config: PhoneValidatorConfig) {\n return function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n const national = config.getNationalNumber(cleaned);\n\n const evaluation = config.evaluateNationalNumber(national);\n if (!evaluation.isValid) {\n return evaluation;\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(config.countryCode, national);\n } else if (options?.format === 'international') {\n formatted = `+${config.countryCode} ${national}`;\n }\n\n return { isValid: true, type: evaluation.type, formatted };\n };\n}\n","import { createValidator } from '../core/validator.js';\n\nexport const validate = createValidator({\n countryCode: '56',\n getNationalNumber: (cleaned) =>\n cleaned.startsWith('56') && cleaned.length > 9 ? cleaned.slice(2) : cleaned,\n evaluateNationalNumber: (national) => {\n if (national.length !== 9) {\n return { isValid: false, error: 'Phone number must be 9 digits' };\n }\n if (national.startsWith('9')) {\n return { isValid: true, type: 'mobile' };\n }\n if (/^[2-7]/.test(national)) {\n return { isValid: true, type: 'landline' };\n }\n return { isValid: false, error: 'Invalid prefix for Chile' };\n },\n});\n"]}
|
package/dist/locales/cl.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import '../types-BCr040RT.cjs';
|
|
2
|
-
export { v as validate } from '../cl-
|
|
2
|
+
export { v as validate } from '../cl-Bsw7oXO1.cjs';
|
package/dist/locales/cl.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import '../types-BCr040RT.js';
|
|
2
|
-
export { v as validate } from '../cl-
|
|
2
|
+
export { v as validate } from '../cl-BlYnSeBu.js';
|