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.
Files changed (151) hide show
  1. package/dist/{ar-GEGiRgO-.d.cts → ar-CoG6alvv.d.cts} +1 -1
  2. package/dist/{ar-tFIt4w8t.d.ts → ar-DflcS_NX.d.ts} +1 -1
  3. package/dist/{br-DDdWmYiI.d.ts → br-DUpSkSAW.d.ts} +1 -1
  4. package/dist/{br-BT6qg54j.d.cts → br-wLM9wWJU.d.cts} +1 -1
  5. package/dist/{ca-DCSAnAM6.d.cts → ca-CrMz6MFF.d.cts} +1 -1
  6. package/dist/{ca-_dlgNQpK.d.ts → ca-DgJh2Fn8.d.ts} +1 -1
  7. package/dist/{cl-BnJa59XK.d.ts → cl-BlYnSeBu.d.ts} +1 -1
  8. package/dist/{cl-FomUh7u7.d.cts → cl-Bsw7oXO1.d.cts} +1 -1
  9. package/dist/{co-D3zWUbcg.d.ts → co-Ds64GC27.d.ts} +1 -1
  10. package/dist/{co-HLHZhdf-.d.cts → co-DsNqMeJC.d.cts} +1 -1
  11. package/dist/{cr-TYetkCTg.d.cts → cr-D1nfQd5a.d.cts} +1 -1
  12. package/dist/{cr-CkAZd-e7.d.ts → cr-DZo_UJeA.d.ts} +1 -1
  13. package/dist/{de-D-lK2VKQ.d.ts → de-B0lClAaa.d.ts} +1 -1
  14. package/dist/{de-l5sbcQdU.d.cts → de-D8Dy5ZLN.d.cts} +1 -1
  15. package/dist/{ec-CLItBhMX.d.ts → ec-DMEwGX4e.d.ts} +1 -1
  16. package/dist/{ec-G_GvdmHT.d.cts → ec-Dmvg9ZEu.d.cts} +1 -1
  17. package/dist/{es-C0cTzz5Q.d.ts → es-C9fnTkGA.d.ts} +1 -1
  18. package/dist/{es-DBWm_0BJ.d.cts → es-nCje-ks0.d.cts} +1 -1
  19. package/dist/{fr-BFsuh3v2.d.cts → fr-6elCkAaM.d.cts} +1 -1
  20. package/dist/{fr-BE6W1TEy.d.ts → fr-DhJ1s23l.d.ts} +1 -1
  21. package/dist/{gb-Dsiq1sFD.d.cts → gb-B25B912T.d.cts} +1 -1
  22. package/dist/{gb-Cvog8XpH.d.ts → gb-ehC5-Ys2.d.ts} +1 -1
  23. package/dist/{gt-CHOp9jw8.d.cts → gt-DKGg-Cq-.d.cts} +1 -1
  24. package/dist/{gt-BJOTX_KH.d.ts → gt-wRdkBW-T.d.ts} +1 -1
  25. package/dist/index.cjs +1 -1
  26. package/dist/index.cjs.map +1 -1
  27. package/dist/index.d.cts +18 -18
  28. package/dist/index.d.ts +18 -18
  29. package/dist/index.js +1 -1
  30. package/dist/index.js.map +1 -1
  31. package/dist/{it-Cvn0ckKc.d.cts → it-B434bcYI.d.cts} +1 -1
  32. package/dist/{it-DRkyyTTW.d.ts → it-fKUkvQel.d.ts} +1 -1
  33. package/dist/locales/ar.cjs +1 -1
  34. package/dist/locales/ar.cjs.map +1 -1
  35. package/dist/locales/ar.d.cts +1 -1
  36. package/dist/locales/ar.d.ts +1 -1
  37. package/dist/locales/ar.js +1 -1
  38. package/dist/locales/ar.js.map +1 -1
  39. package/dist/locales/br.cjs +1 -1
  40. package/dist/locales/br.cjs.map +1 -1
  41. package/dist/locales/br.d.cts +1 -1
  42. package/dist/locales/br.d.ts +1 -1
  43. package/dist/locales/br.js +1 -1
  44. package/dist/locales/br.js.map +1 -1
  45. package/dist/locales/ca.cjs +1 -1
  46. package/dist/locales/ca.cjs.map +1 -1
  47. package/dist/locales/ca.d.cts +1 -1
  48. package/dist/locales/ca.d.ts +1 -1
  49. package/dist/locales/ca.js +1 -1
  50. package/dist/locales/ca.js.map +1 -1
  51. package/dist/locales/cl.cjs +1 -1
  52. package/dist/locales/cl.cjs.map +1 -1
  53. package/dist/locales/cl.d.cts +1 -1
  54. package/dist/locales/cl.d.ts +1 -1
  55. package/dist/locales/cl.js +1 -1
  56. package/dist/locales/cl.js.map +1 -1
  57. package/dist/locales/co.cjs +1 -1
  58. package/dist/locales/co.cjs.map +1 -1
  59. package/dist/locales/co.d.cts +1 -1
  60. package/dist/locales/co.d.ts +1 -1
  61. package/dist/locales/co.js +1 -1
  62. package/dist/locales/co.js.map +1 -1
  63. package/dist/locales/cr.cjs +1 -1
  64. package/dist/locales/cr.cjs.map +1 -1
  65. package/dist/locales/cr.d.cts +1 -1
  66. package/dist/locales/cr.d.ts +1 -1
  67. package/dist/locales/cr.js +1 -1
  68. package/dist/locales/cr.js.map +1 -1
  69. package/dist/locales/de.cjs +1 -1
  70. package/dist/locales/de.cjs.map +1 -1
  71. package/dist/locales/de.d.cts +1 -1
  72. package/dist/locales/de.d.ts +1 -1
  73. package/dist/locales/de.js +1 -1
  74. package/dist/locales/de.js.map +1 -1
  75. package/dist/locales/ec.cjs +1 -1
  76. package/dist/locales/ec.cjs.map +1 -1
  77. package/dist/locales/ec.d.cts +1 -1
  78. package/dist/locales/ec.d.ts +1 -1
  79. package/dist/locales/ec.js +1 -1
  80. package/dist/locales/ec.js.map +1 -1
  81. package/dist/locales/es.cjs +1 -1
  82. package/dist/locales/es.cjs.map +1 -1
  83. package/dist/locales/es.d.cts +1 -1
  84. package/dist/locales/es.d.ts +1 -1
  85. package/dist/locales/es.js +1 -1
  86. package/dist/locales/es.js.map +1 -1
  87. package/dist/locales/fr.cjs +1 -1
  88. package/dist/locales/fr.cjs.map +1 -1
  89. package/dist/locales/fr.d.cts +1 -1
  90. package/dist/locales/fr.d.ts +1 -1
  91. package/dist/locales/fr.js +1 -1
  92. package/dist/locales/fr.js.map +1 -1
  93. package/dist/locales/gb.cjs +1 -1
  94. package/dist/locales/gb.cjs.map +1 -1
  95. package/dist/locales/gb.d.cts +1 -1
  96. package/dist/locales/gb.d.ts +1 -1
  97. package/dist/locales/gb.js +1 -1
  98. package/dist/locales/gb.js.map +1 -1
  99. package/dist/locales/gt.cjs +1 -1
  100. package/dist/locales/gt.cjs.map +1 -1
  101. package/dist/locales/gt.d.cts +1 -1
  102. package/dist/locales/gt.d.ts +1 -1
  103. package/dist/locales/gt.js +1 -1
  104. package/dist/locales/gt.js.map +1 -1
  105. package/dist/locales/it.cjs +1 -1
  106. package/dist/locales/it.cjs.map +1 -1
  107. package/dist/locales/it.d.cts +1 -1
  108. package/dist/locales/it.d.ts +1 -1
  109. package/dist/locales/it.js +1 -1
  110. package/dist/locales/it.js.map +1 -1
  111. package/dist/locales/mx.cjs +1 -1
  112. package/dist/locales/mx.cjs.map +1 -1
  113. package/dist/locales/mx.d.cts +1 -1
  114. package/dist/locales/mx.d.ts +1 -1
  115. package/dist/locales/mx.js +1 -1
  116. package/dist/locales/mx.js.map +1 -1
  117. package/dist/locales/pa.cjs +1 -1
  118. package/dist/locales/pa.cjs.map +1 -1
  119. package/dist/locales/pa.d.cts +1 -1
  120. package/dist/locales/pa.d.ts +1 -1
  121. package/dist/locales/pa.js +1 -1
  122. package/dist/locales/pa.js.map +1 -1
  123. package/dist/locales/pe.cjs +1 -1
  124. package/dist/locales/pe.cjs.map +1 -1
  125. package/dist/locales/pe.d.cts +1 -1
  126. package/dist/locales/pe.d.ts +1 -1
  127. package/dist/locales/pe.js +1 -1
  128. package/dist/locales/pe.js.map +1 -1
  129. package/dist/locales/us.cjs +1 -1
  130. package/dist/locales/us.cjs.map +1 -1
  131. package/dist/locales/us.d.cts +1 -1
  132. package/dist/locales/us.d.ts +1 -1
  133. package/dist/locales/us.js +1 -1
  134. package/dist/locales/us.js.map +1 -1
  135. package/dist/locales/ve.cjs +1 -1
  136. package/dist/locales/ve.cjs.map +1 -1
  137. package/dist/locales/ve.d.cts +1 -1
  138. package/dist/locales/ve.d.ts +1 -1
  139. package/dist/locales/ve.js +1 -1
  140. package/dist/locales/ve.js.map +1 -1
  141. package/dist/{mx-CmkrNDw0.d.cts → mx-CIn7fuEP.d.cts} +1 -1
  142. package/dist/{mx-DkRS3Aa-.d.ts → mx-Cqj3ptQG.d.ts} +1 -1
  143. package/dist/{pa-BPfQzrBx.d.cts → pa-CJU86P1e.d.cts} +1 -1
  144. package/dist/{pa-Dyi3iuWW.d.ts → pa-DuqdSeyg.d.ts} +1 -1
  145. package/dist/{pe-B_5pgsR0.d.cts → pe-9EBUjBeW.d.cts} +1 -1
  146. package/dist/{pe-NCsXTXmc.d.ts → pe-DlAD1sw9.d.ts} +1 -1
  147. package/dist/{us-BaYu0g3a.d.cts → us-n2Rg22p3.d.cts} +1 -1
  148. package/dist/{us-KOpobREo.d.ts → us-oR1xJLtG.d.ts} +1 -1
  149. package/dist/{ve-BFLV2qGp.d.ts → ve-D0yC7va3.d.ts} +1 -1
  150. package/dist/{ve-BomxppQL.d.cts → ve-DZM4BR8e.d.cts} +1 -1
  151. package/package.json +6 -6
@@ -1,2 +1,2 @@
1
- function l(e){return e.replace(/\D/g,"")}function s(e,n){return `+${e}${n}`}var i="56";function d(e,n){let r=l(e),t=r;if(r.startsWith(i)&&r.length>9&&(t=r.slice(i.length)),t.length!==9)return {isValid:false,error:"Phone number must be 9 digits"};let a=t.startsWith("9")?"mobile":/^[2-7]/.test(t)?"landline":void 0;if(!a)return {isValid:false,error:"Invalid prefix for Chile"};let o=t;return n?.format==="e164"?o=s(i,t):n?.format==="international"&&(o=`+${i} ${t}`),{isValid:true,type:a,formatted:o}}export{d as validate};//# sourceMappingURL=cl.js.map
1
+ 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"}});export{c as validate};//# sourceMappingURL=cl.js.map
2
2
  //# sourceMappingURL=cl.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/utils.ts","../../src/locales/cl.ts"],"names":["cleanPhone","phone","formatE164","countryCode","COUNTRY_CODE","validate","options","cleaned","national","type","formatted"],"mappings":"AAAO,SAASA,CAAAA,CAAWC,CAAAA,CAAuB,CAChD,OAAOA,CAAAA,CAAM,QAAQ,KAAA,CAAO,EAAE,CAChC,CAEO,SAASC,CAAAA,CAAWC,EAAqBF,CAAAA,CAAuB,CACrE,OAAO,CAAA,CAAA,EAAIE,CAAW,CAAA,EAAGF,CAAK,CAAA,CAChC,CCHA,IAAMG,CAAAA,CAAe,IAAA,CAEd,SAASC,CAAAA,CAASJ,EAAeK,CAAAA,CAA+C,CACrF,IAAMC,CAAAA,CAAUP,CAAAA,CAAWC,CAAK,EAG5BO,CAAAA,CAAWD,CAAAA,CAMf,GALIA,CAAAA,CAAQ,UAAA,CAAWH,CAAY,GAAKG,CAAAA,CAAQ,MAAA,CAAS,CAAA,GACvDC,CAAAA,CAAWD,CAAAA,CAAQ,KAAA,CAAMH,CAAAA,CAAa,MAAM,CAAA,CAAA,CAI1CI,CAAAA,CAAS,MAAA,GAAW,CAAA,CACtB,OAAO,CAAE,QAAS,KAAA,CAAO,KAAA,CAAO,+BAAgC,CAAA,CAGlE,IAAMC,CAAAA,CAAOD,EAAS,UAAA,CAAW,GAAG,CAAA,CAChC,QAAA,CACA,QAAA,CAAS,IAAA,CAAKA,CAAQ,CAAA,CACpB,UAAA,CACA,MAAA,CAEN,GAAI,CAACC,CAAAA,CACH,OAAO,CAAE,OAAA,CAAS,KAAA,CAAO,KAAA,CAAO,0BAA2B,CAAA,CAG7D,IAAIC,EAAYF,CAAAA,CAChB,OAAIF,CAAAA,EAAS,MAAA,GAAW,MAAA,CACtBI,CAAAA,CAAYR,EAAWE,CAAAA,CAAcI,CAAQ,CAAA,CACpCF,CAAAA,EAAS,MAAA,GAAW,eAAA,GAC7BI,EAAY,CAAA,CAAA,EAAIN,CAAY,CAAA,CAAA,EAAII,CAAQ,CAAA,CAAA,CAAA,CAGnC,CAAE,OAAA,CAAS,IAAA,CAAM,IAAA,CAAAC,CAAAA,CAAM,SAAA,CAAAC,CAAU,CAC1C","file":"cl.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 = '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"]}
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.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: '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"]}
@@ -1,2 +1,2 @@
1
- 'use strict';function s(e){return e.replace(/\D/g,"")}function l(e,n){return `+${e}${n}`}var i="57";function d(e,n){let r=s(e),t=r;if(r.startsWith(i)&&r.length>10&&(t=r.slice(i.length)),t.length!==10)return {isValid:false,error:"Phone number must be 10 digits"};let a=t.startsWith("3")?"mobile":t.startsWith("60")?"landline":void 0;if(!a)return {isValid:false,error:"Invalid prefix for Colombia"};let o=t;return n?.format==="e164"?o=l(i,t):n?.format==="international"&&(o=`+${i} ${t}`),{isValid:true,type:a,formatted:o}}exports.validate=d;//# sourceMappingURL=co.cjs.map
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:"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"}});exports.validate=c;//# sourceMappingURL=co.cjs.map
2
2
  //# sourceMappingURL=co.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/utils.ts","../../src/locales/co.ts"],"names":["cleanPhone","phone","formatE164","countryCode","COUNTRY_CODE","validate","options","cleaned","national","type","formatted"],"mappings":"aAAO,SAASA,CAAAA,CAAWC,CAAAA,CAAuB,CAChD,OAAOA,CAAAA,CAAM,QAAQ,KAAA,CAAO,EAAE,CAChC,CAEO,SAASC,CAAAA,CAAWC,EAAqBF,CAAAA,CAAuB,CACrE,OAAO,CAAA,CAAA,EAAIE,CAAW,CAAA,EAAGF,CAAK,CAAA,CAChC,CCHA,IAAMG,CAAAA,CAAe,IAAA,CAEd,SAASC,CAAAA,CAASJ,EAAeK,CAAAA,CAA+C,CACrF,IAAMC,CAAAA,CAAUP,CAAAA,CAAWC,CAAK,EAG5BO,CAAAA,CAAWD,CAAAA,CAKf,GAJIA,CAAAA,CAAQ,UAAA,CAAWH,CAAY,GAAKG,CAAAA,CAAQ,MAAA,CAAS,EAAA,GACvDC,CAAAA,CAAWD,CAAAA,CAAQ,KAAA,CAAMH,CAAAA,CAAa,MAAM,CAAA,CAAA,CAG1CI,CAAAA,CAAS,MAAA,GAAW,EAAA,CACtB,OAAO,CAAE,QAAS,KAAA,CAAO,KAAA,CAAO,gCAAiC,CAAA,CAGnE,IAAMC,CAAAA,CAAOD,EAAS,UAAA,CAAW,GAAG,CAAA,CAChC,QAAA,CACAA,CAAAA,CAAS,UAAA,CAAW,IAAI,CAAA,CACtB,UAAA,CACA,MAAA,CAEN,GAAI,CAACC,CAAAA,CACH,OAAO,CAAE,OAAA,CAAS,KAAA,CAAO,KAAA,CAAO,6BAA8B,CAAA,CAGhE,IAAIC,EAAYF,CAAAA,CAChB,OAAIF,CAAAA,EAAS,MAAA,GAAW,MAAA,CACtBI,CAAAA,CAAYR,EAAWE,CAAAA,CAAcI,CAAQ,CAAA,CACpCF,CAAAA,EAAS,MAAA,GAAW,eAAA,GAC7BI,EAAY,CAAA,CAAA,EAAIN,CAAY,CAAA,CAAA,EAAII,CAAQ,CAAA,CAAA,CAAA,CAGnC,CAAE,OAAA,CAAS,IAAA,CAAM,IAAA,CAAAC,CAAAA,CAAM,SAAA,CAAAC,CAAU,CAC1C","file":"co.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 '../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"]}
1
+ {"version":3,"sources":["../../src/core/utils.ts","../../src/core/validator.ts","../../src/locales/co.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,CAErCA,CAAAA,CAAS,UAAA,CAAW,IAAI,CAAA,CACnB,CAAE,QAAS,IAAA,CAAM,IAAA,CAAM,UAAW,CAAA,CAEpC,CAAE,OAAA,CAAS,KAAA,CAAO,KAAA,CAAO,6BAA8B,CAElE,CAAC","file":"co.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: '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"]}
@@ -1,2 +1,2 @@
1
1
  import '../types-BCr040RT.cjs';
2
- export { v as validate } from '../co-HLHZhdf-.cjs';
2
+ export { v as validate } from '../co-DsNqMeJC.cjs';
@@ -1,2 +1,2 @@
1
1
  import '../types-BCr040RT.js';
2
- export { v as validate } from '../co-D3zWUbcg.js';
2
+ export { v as validate } from '../co-Ds64GC27.js';
@@ -1,2 +1,2 @@
1
- function s(e){return e.replace(/\D/g,"")}function l(e,n){return `+${e}${n}`}var i="57";function d(e,n){let r=s(e),t=r;if(r.startsWith(i)&&r.length>10&&(t=r.slice(i.length)),t.length!==10)return {isValid:false,error:"Phone number must be 10 digits"};let a=t.startsWith("3")?"mobile":t.startsWith("60")?"landline":void 0;if(!a)return {isValid:false,error:"Invalid prefix for Colombia"};let o=t;return n?.format==="e164"?o=l(i,t):n?.format==="international"&&(o=`+${i} ${t}`),{isValid:true,type:a,formatted:o}}export{d as validate};//# sourceMappingURL=co.js.map
1
+ 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:"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"}});export{c as validate};//# sourceMappingURL=co.js.map
2
2
  //# sourceMappingURL=co.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/utils.ts","../../src/locales/co.ts"],"names":["cleanPhone","phone","formatE164","countryCode","COUNTRY_CODE","validate","options","cleaned","national","type","formatted"],"mappings":"AAAO,SAASA,CAAAA,CAAWC,CAAAA,CAAuB,CAChD,OAAOA,CAAAA,CAAM,QAAQ,KAAA,CAAO,EAAE,CAChC,CAEO,SAASC,CAAAA,CAAWC,EAAqBF,CAAAA,CAAuB,CACrE,OAAO,CAAA,CAAA,EAAIE,CAAW,CAAA,EAAGF,CAAK,CAAA,CAChC,CCHA,IAAMG,CAAAA,CAAe,IAAA,CAEd,SAASC,CAAAA,CAASJ,EAAeK,CAAAA,CAA+C,CACrF,IAAMC,CAAAA,CAAUP,CAAAA,CAAWC,CAAK,EAG5BO,CAAAA,CAAWD,CAAAA,CAKf,GAJIA,CAAAA,CAAQ,UAAA,CAAWH,CAAY,GAAKG,CAAAA,CAAQ,MAAA,CAAS,EAAA,GACvDC,CAAAA,CAAWD,CAAAA,CAAQ,KAAA,CAAMH,CAAAA,CAAa,MAAM,CAAA,CAAA,CAG1CI,CAAAA,CAAS,MAAA,GAAW,EAAA,CACtB,OAAO,CAAE,QAAS,KAAA,CAAO,KAAA,CAAO,gCAAiC,CAAA,CAGnE,IAAMC,CAAAA,CAAOD,EAAS,UAAA,CAAW,GAAG,CAAA,CAChC,QAAA,CACAA,CAAAA,CAAS,UAAA,CAAW,IAAI,CAAA,CACtB,UAAA,CACA,MAAA,CAEN,GAAI,CAACC,CAAAA,CACH,OAAO,CAAE,OAAA,CAAS,KAAA,CAAO,KAAA,CAAO,6BAA8B,CAAA,CAGhE,IAAIC,EAAYF,CAAAA,CAChB,OAAIF,CAAAA,EAAS,MAAA,GAAW,MAAA,CACtBI,CAAAA,CAAYR,EAAWE,CAAAA,CAAcI,CAAQ,CAAA,CACpCF,CAAAA,EAAS,MAAA,GAAW,eAAA,GAC7BI,EAAY,CAAA,CAAA,EAAIN,CAAY,CAAA,CAAA,EAAII,CAAQ,CAAA,CAAA,CAAA,CAGnC,CAAE,OAAA,CAAS,IAAA,CAAM,IAAA,CAAAC,CAAAA,CAAM,SAAA,CAAAC,CAAU,CAC1C","file":"co.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 = '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"]}
1
+ {"version":3,"sources":["../../src/core/utils.ts","../../src/core/validator.ts","../../src/locales/co.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,CAErCA,CAAAA,CAAS,UAAA,CAAW,IAAI,CAAA,CACnB,CAAE,QAAS,IAAA,CAAM,IAAA,CAAM,UAAW,CAAA,CAEpC,CAAE,OAAA,CAAS,KAAA,CAAO,KAAA,CAAO,6BAA8B,CAElE,CAAC","file":"co.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: '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"]}
@@ -1,2 +1,2 @@
1
- 'use strict';function a(e){return e.replace(/\D/g,"")}function s(e,n){return `+${e}${n}`}var r="506";function m(e,n){let i=a(e),t=i;if(i.startsWith(r)&&i.length>8&&(t=i.slice(r.length)),t.length!==8)return {isValid:false,error:"Phone number must be 8 digits"};let o="unknown";/^[5678]/.test(t)?o="mobile":t.startsWith("2")&&(o="landline");let l=t;return n?.format==="e164"?l=s(r,t):n?.format==="international"&&(l=`+${r} ${t}`),{isValid:true,type:o,formatted:l}}exports.validate=m;//# sourceMappingURL=cr.cjs.map
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:"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"}});exports.validate=c;//# sourceMappingURL=cr.cjs.map
2
2
  //# sourceMappingURL=cr.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/utils.ts","../../src/locales/cr.ts"],"names":["cleanPhone","phone","formatE164","countryCode","COUNTRY_CODE","validate","options","cleaned","national","type","formatted"],"mappings":"aAAO,SAASA,CAAAA,CAAWC,EAAuB,CAChD,OAAOA,EAAM,OAAA,CAAQ,KAAA,CAAO,EAAE,CAChC,CAEO,SAASC,EAAWC,CAAAA,CAAqBF,CAAAA,CAAuB,CACrE,OAAO,CAAA,CAAA,EAAIE,CAAW,GAAGF,CAAK,CAAA,CAChC,CCHA,IAAMG,CAAAA,CAAe,KAAA,CAEd,SAASC,CAAAA,CAASJ,CAAAA,CAAeK,EAA+C,CACrF,IAAMC,EAAUP,CAAAA,CAAWC,CAAK,CAAA,CAG5BO,CAAAA,CAAWD,CAAAA,CAMf,GALIA,EAAQ,UAAA,CAAWH,CAAY,CAAA,EAAKG,CAAAA,CAAQ,MAAA,CAAS,CAAA,GACvDC,EAAWD,CAAAA,CAAQ,KAAA,CAAMH,CAAAA,CAAa,MAAM,CAAA,CAAA,CAI1CI,CAAAA,CAAS,SAAW,CAAA,CACtB,OAAO,CAAE,OAAA,CAAS,KAAA,CAAO,MAAO,+BAAgC,CAAA,CAGlE,IAAIC,CAAAA,CAA0C,SAAA,CAG1C,SAAA,CAAU,KAAKD,CAAQ,CAAA,CACzBC,CAAAA,CAAO,QAAA,CAGAD,CAAAA,CAAS,UAAA,CAAW,GAAG,CAAA,GAC9BC,CAAAA,CAAO,UAAA,CAAA,CAGT,IAAIC,CAAAA,CAAYF,CAAAA,CAChB,OAAIF,CAAAA,EAAS,MAAA,GAAW,OACtBI,CAAAA,CAAYR,CAAAA,CAAWE,EAAcI,CAAQ,CAAA,CACpCF,CAAAA,EAAS,MAAA,GAAW,eAAA,GAC7BI,CAAAA,CAAY,IAAIN,CAAY,CAAA,CAAA,EAAII,CAAQ,CAAA,CAAA,CAAA,CAGnC,CAAE,OAAA,CAAS,KAAM,IAAA,CAAAC,CAAAA,CAAM,SAAA,CAAAC,CAAU,CAC1C","file":"cr.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 '../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"]}
1
+ {"version":3,"sources":["../../src/core/utils.ts","../../src/core/validator.ts","../../src/locales/cr.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,KAAA,CACb,iBAAA,CAAoBG,CAAAA,EAClBA,CAAAA,CAAQ,WAAW,KAAK,CAAA,EAAKA,CAAAA,CAAQ,MAAA,CAAS,EAAIA,CAAAA,CAAQ,KAAA,CAAM,CAAC,CAAA,CAAIA,EACvE,sBAAA,CAAyBC,CAAAA,EACnBA,CAAAA,CAAS,MAAA,GAAW,CAAA,CACf,CAAE,OAAA,CAAS,KAAA,CAAO,MAAO,+BAAgC,CAAA,CAE9D,SAAA,CAAU,IAAA,CAAKA,CAAQ,CAAA,CAClB,CAAE,OAAA,CAAS,KAAM,IAAA,CAAM,QAAS,CAAA,CAErCA,CAAAA,CAAS,UAAA,CAAW,GAAG,CAAA,CAClB,CAAE,QAAS,IAAA,CAAM,IAAA,CAAM,UAAW,CAAA,CAEpC,CAAE,OAAA,CAAS,IAAA,CAAM,IAAA,CAAM,SAAU,CAE5C,CAAC","file":"cr.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: '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"]}
@@ -1,2 +1,2 @@
1
1
  import '../types-BCr040RT.cjs';
2
- export { v as validate } from '../cr-TYetkCTg.cjs';
2
+ export { v as validate } from '../cr-D1nfQd5a.cjs';
@@ -1,2 +1,2 @@
1
1
  import '../types-BCr040RT.js';
2
- export { v as validate } from '../cr-CkAZd-e7.js';
2
+ export { v as validate } from '../cr-DZo_UJeA.js';
@@ -1,2 +1,2 @@
1
- function a(e){return e.replace(/\D/g,"")}function s(e,n){return `+${e}${n}`}var r="506";function m(e,n){let i=a(e),t=i;if(i.startsWith(r)&&i.length>8&&(t=i.slice(r.length)),t.length!==8)return {isValid:false,error:"Phone number must be 8 digits"};let o="unknown";/^[5678]/.test(t)?o="mobile":t.startsWith("2")&&(o="landline");let l=t;return n?.format==="e164"?l=s(r,t):n?.format==="international"&&(l=`+${r} ${t}`),{isValid:true,type:o,formatted:l}}export{m as validate};//# sourceMappingURL=cr.js.map
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:"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"}});export{c as validate};//# sourceMappingURL=cr.js.map
2
2
  //# sourceMappingURL=cr.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/utils.ts","../../src/locales/cr.ts"],"names":["cleanPhone","phone","formatE164","countryCode","COUNTRY_CODE","validate","options","cleaned","national","type","formatted"],"mappings":"AAAO,SAASA,CAAAA,CAAWC,EAAuB,CAChD,OAAOA,EAAM,OAAA,CAAQ,KAAA,CAAO,EAAE,CAChC,CAEO,SAASC,EAAWC,CAAAA,CAAqBF,CAAAA,CAAuB,CACrE,OAAO,CAAA,CAAA,EAAIE,CAAW,GAAGF,CAAK,CAAA,CAChC,CCHA,IAAMG,CAAAA,CAAe,KAAA,CAEd,SAASC,CAAAA,CAASJ,CAAAA,CAAeK,EAA+C,CACrF,IAAMC,EAAUP,CAAAA,CAAWC,CAAK,CAAA,CAG5BO,CAAAA,CAAWD,CAAAA,CAMf,GALIA,EAAQ,UAAA,CAAWH,CAAY,CAAA,EAAKG,CAAAA,CAAQ,MAAA,CAAS,CAAA,GACvDC,EAAWD,CAAAA,CAAQ,KAAA,CAAMH,CAAAA,CAAa,MAAM,CAAA,CAAA,CAI1CI,CAAAA,CAAS,SAAW,CAAA,CACtB,OAAO,CAAE,OAAA,CAAS,KAAA,CAAO,MAAO,+BAAgC,CAAA,CAGlE,IAAIC,CAAAA,CAA0C,SAAA,CAG1C,SAAA,CAAU,KAAKD,CAAQ,CAAA,CACzBC,CAAAA,CAAO,QAAA,CAGAD,CAAAA,CAAS,UAAA,CAAW,GAAG,CAAA,GAC9BC,CAAAA,CAAO,UAAA,CAAA,CAGT,IAAIC,CAAAA,CAAYF,CAAAA,CAChB,OAAIF,CAAAA,EAAS,MAAA,GAAW,OACtBI,CAAAA,CAAYR,CAAAA,CAAWE,EAAcI,CAAQ,CAAA,CACpCF,CAAAA,EAAS,MAAA,GAAW,eAAA,GAC7BI,CAAAA,CAAY,IAAIN,CAAY,CAAA,CAAA,EAAII,CAAQ,CAAA,CAAA,CAAA,CAGnC,CAAE,OAAA,CAAS,KAAM,IAAA,CAAAC,CAAAA,CAAM,SAAA,CAAAC,CAAU,CAC1C","file":"cr.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 = '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"]}
1
+ {"version":3,"sources":["../../src/core/utils.ts","../../src/core/validator.ts","../../src/locales/cr.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,KAAA,CACb,iBAAA,CAAoBG,CAAAA,EAClBA,CAAAA,CAAQ,WAAW,KAAK,CAAA,EAAKA,CAAAA,CAAQ,MAAA,CAAS,EAAIA,CAAAA,CAAQ,KAAA,CAAM,CAAC,CAAA,CAAIA,EACvE,sBAAA,CAAyBC,CAAAA,EACnBA,CAAAA,CAAS,MAAA,GAAW,CAAA,CACf,CAAE,OAAA,CAAS,KAAA,CAAO,MAAO,+BAAgC,CAAA,CAE9D,SAAA,CAAU,IAAA,CAAKA,CAAQ,CAAA,CAClB,CAAE,OAAA,CAAS,KAAM,IAAA,CAAM,QAAS,CAAA,CAErCA,CAAAA,CAAS,UAAA,CAAW,GAAG,CAAA,CAClB,CAAE,QAAS,IAAA,CAAM,IAAA,CAAM,UAAW,CAAA,CAEpC,CAAE,OAAA,CAAS,IAAA,CAAM,IAAA,CAAM,SAAU,CAE5C,CAAC","file":"cr.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: '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"]}
@@ -1,2 +1,2 @@
1
- 'use strict';function s(e){return e.replace(/\D/g,"")}function a(e,n){return `+${e}${n}`}var i="49";function h(e,n){let r=s(e),t=r;if(r.startsWith(i)&&(t=r.slice(i.length)),t.startsWith("0")&&(t=t.slice(1)),t.length<9||t.length>11)return {isValid:false,error:"Phone number must be 9-11 digits"};let l=/^1[567]/.test(t)?"mobile":"landline",o=t;return n?.format==="e164"?o=a(i,t):n?.format==="international"&&(o=`+${i} ${t}`),{isValid:true,type:l,formatted:o}}exports.validate=h;//# sourceMappingURL=de.cjs.map
1
+ 'use strict';function o(t){return t.replace(/\D/g,"")}function l(t,e){return `+${t}${e}`}function s(t){return function(u,a){let d=o(u),r=t.getNationalNumber(d),n=t.evaluateNationalNumber(r);if(!n.isValid)return n;let i=r;return a?.format==="e164"?i=l(t.countryCode,r):a?.format==="international"&&(i=`+${t.countryCode} ${r}`),{isValid:true,type:n.type,formatted:i}}}var p=s({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"}});exports.validate=p;//# sourceMappingURL=de.cjs.map
2
2
  //# sourceMappingURL=de.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/utils.ts","../../src/locales/de.ts"],"names":["cleanPhone","phone","formatE164","countryCode","COUNTRY_CODE","validate","options","cleaned","national","type","formatted"],"mappings":"aAAO,SAASA,CAAAA,CAAWC,EAAuB,CAChD,OAAOA,EAAM,OAAA,CAAQ,KAAA,CAAO,EAAE,CAChC,CAEO,SAASC,EAAWC,CAAAA,CAAqBF,CAAAA,CAAuB,CACrE,OAAO,CAAA,CAAA,EAAIE,CAAW,GAAGF,CAAK,CAAA,CAChC,CCHA,IAAMG,CAAAA,CAAe,IAAA,CAEd,SAASC,CAAAA,CAASJ,CAAAA,CAAeK,EAA+C,CACrF,IAAMC,EAAUP,CAAAA,CAAWC,CAAK,CAAA,CAG5BO,CAAAA,CAAWD,CAAAA,CAWf,GAVIA,EAAQ,UAAA,CAAWH,CAAY,CAAA,GACjCI,CAAAA,CAAWD,CAAAA,CAAQ,KAAA,CAAMH,EAAa,MAAM,CAAA,CAAA,CAK1CI,CAAAA,CAAS,UAAA,CAAW,GAAG,CAAA,GACzBA,EAAWA,CAAAA,CAAS,KAAA,CAAM,CAAC,CAAA,CAAA,CAGzBA,CAAAA,CAAS,OAAS,CAAA,EAAKA,CAAAA,CAAS,MAAA,CAAS,EAAA,CAC3C,OAAO,CAAE,QAAS,KAAA,CAAO,KAAA,CAAO,kCAAmC,CAAA,CAGrE,IAAMC,CAAAA,CAAO,UAAU,IAAA,CAAKD,CAAQ,CAAA,CAAI,QAAA,CAAW,UAAA,CAE/CE,CAAAA,CAAYF,EAChB,OAAIF,CAAAA,EAAS,MAAA,GAAW,MAAA,CACtBI,CAAAA,CAAYR,CAAAA,CAAWE,EAAcI,CAAQ,CAAA,CACpCF,CAAAA,EAAS,MAAA,GAAW,eAAA,GAC7BI,CAAAA,CAAY,IAAIN,CAAY,CAAA,CAAA,EAAII,CAAQ,CAAA,CAAA,CAAA,CAGnC,CAAE,OAAA,CAAS,KAAM,IAAA,CAAAC,CAAAA,CAAM,SAAA,CAAAC,CAAU,CAC1C","file":"de.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 '../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"]}
1
+ {"version":3,"sources":["../../src/core/utils.ts","../../src/core/validator.ts","../../src/locales/de.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,EAAY,CAC9B,IAAIC,CAAAA,CAAWD,CAAAA,CAAQ,UAAA,CAAW,IAAI,CAAA,CAAIA,CAAAA,CAAQ,KAAA,CAAM,CAAC,EAAIA,CAAAA,CAC7D,OAAIC,CAAAA,CAAS,UAAA,CAAW,GAAG,CAAA,GACzBA,CAAAA,CAAWA,CAAAA,CAAS,KAAA,CAAM,CAAC,CAAA,CAAA,CAEtBA,CACT,CAAA,CACA,uBAAyBA,CAAAA,EACnBA,CAAAA,CAAS,MAAA,CAAS,CAAA,EAAKA,EAAS,MAAA,CAAS,EAAA,CACpC,CAAE,OAAA,CAAS,MAAO,KAAA,CAAO,kCAAmC,CAAA,CAEjE,SAAA,CAAU,IAAA,CAAKA,CAAQ,CAAA,CAClB,CAAE,QAAS,IAAA,CAAM,IAAA,CAAM,QAAS,CAAA,CAElC,CAAE,OAAA,CAAS,IAAA,CAAM,IAAA,CAAM,UAAW,CAE7C,CAAC","file":"de.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: '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"]}
@@ -1,2 +1,2 @@
1
1
  import '../types-BCr040RT.cjs';
2
- export { v as validate } from '../de-l5sbcQdU.cjs';
2
+ export { v as validate } from '../de-D8Dy5ZLN.cjs';
@@ -1,2 +1,2 @@
1
1
  import '../types-BCr040RT.js';
2
- export { v as validate } from '../de-D-lK2VKQ.js';
2
+ export { v as validate } from '../de-B0lClAaa.js';
@@ -1,2 +1,2 @@
1
- function s(e){return e.replace(/\D/g,"")}function a(e,n){return `+${e}${n}`}var i="49";function h(e,n){let r=s(e),t=r;if(r.startsWith(i)&&(t=r.slice(i.length)),t.startsWith("0")&&(t=t.slice(1)),t.length<9||t.length>11)return {isValid:false,error:"Phone number must be 9-11 digits"};let l=/^1[567]/.test(t)?"mobile":"landline",o=t;return n?.format==="e164"?o=a(i,t):n?.format==="international"&&(o=`+${i} ${t}`),{isValid:true,type:l,formatted:o}}export{h as validate};//# sourceMappingURL=de.js.map
1
+ function o(t){return t.replace(/\D/g,"")}function l(t,e){return `+${t}${e}`}function s(t){return function(u,a){let d=o(u),r=t.getNationalNumber(d),n=t.evaluateNationalNumber(r);if(!n.isValid)return n;let i=r;return a?.format==="e164"?i=l(t.countryCode,r):a?.format==="international"&&(i=`+${t.countryCode} ${r}`),{isValid:true,type:n.type,formatted:i}}}var p=s({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"}});export{p as validate};//# sourceMappingURL=de.js.map
2
2
  //# sourceMappingURL=de.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/utils.ts","../../src/locales/de.ts"],"names":["cleanPhone","phone","formatE164","countryCode","COUNTRY_CODE","validate","options","cleaned","national","type","formatted"],"mappings":"AAAO,SAASA,CAAAA,CAAWC,EAAuB,CAChD,OAAOA,EAAM,OAAA,CAAQ,KAAA,CAAO,EAAE,CAChC,CAEO,SAASC,EAAWC,CAAAA,CAAqBF,CAAAA,CAAuB,CACrE,OAAO,CAAA,CAAA,EAAIE,CAAW,GAAGF,CAAK,CAAA,CAChC,CCHA,IAAMG,CAAAA,CAAe,IAAA,CAEd,SAASC,CAAAA,CAASJ,CAAAA,CAAeK,EAA+C,CACrF,IAAMC,EAAUP,CAAAA,CAAWC,CAAK,CAAA,CAG5BO,CAAAA,CAAWD,CAAAA,CAWf,GAVIA,EAAQ,UAAA,CAAWH,CAAY,CAAA,GACjCI,CAAAA,CAAWD,CAAAA,CAAQ,KAAA,CAAMH,EAAa,MAAM,CAAA,CAAA,CAK1CI,CAAAA,CAAS,UAAA,CAAW,GAAG,CAAA,GACzBA,EAAWA,CAAAA,CAAS,KAAA,CAAM,CAAC,CAAA,CAAA,CAGzBA,CAAAA,CAAS,OAAS,CAAA,EAAKA,CAAAA,CAAS,MAAA,CAAS,EAAA,CAC3C,OAAO,CAAE,QAAS,KAAA,CAAO,KAAA,CAAO,kCAAmC,CAAA,CAGrE,IAAMC,CAAAA,CAAO,UAAU,IAAA,CAAKD,CAAQ,CAAA,CAAI,QAAA,CAAW,UAAA,CAE/CE,CAAAA,CAAYF,EAChB,OAAIF,CAAAA,EAAS,MAAA,GAAW,MAAA,CACtBI,CAAAA,CAAYR,CAAAA,CAAWE,EAAcI,CAAQ,CAAA,CACpCF,CAAAA,EAAS,MAAA,GAAW,eAAA,GAC7BI,CAAAA,CAAY,IAAIN,CAAY,CAAA,CAAA,EAAII,CAAQ,CAAA,CAAA,CAAA,CAGnC,CAAE,OAAA,CAAS,KAAM,IAAA,CAAAC,CAAAA,CAAM,SAAA,CAAAC,CAAU,CAC1C","file":"de.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 = '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"]}
1
+ {"version":3,"sources":["../../src/core/utils.ts","../../src/core/validator.ts","../../src/locales/de.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,EAAY,CAC9B,IAAIC,CAAAA,CAAWD,CAAAA,CAAQ,UAAA,CAAW,IAAI,CAAA,CAAIA,CAAAA,CAAQ,KAAA,CAAM,CAAC,EAAIA,CAAAA,CAC7D,OAAIC,CAAAA,CAAS,UAAA,CAAW,GAAG,CAAA,GACzBA,CAAAA,CAAWA,CAAAA,CAAS,KAAA,CAAM,CAAC,CAAA,CAAA,CAEtBA,CACT,CAAA,CACA,uBAAyBA,CAAAA,EACnBA,CAAAA,CAAS,MAAA,CAAS,CAAA,EAAKA,EAAS,MAAA,CAAS,EAAA,CACpC,CAAE,OAAA,CAAS,MAAO,KAAA,CAAO,kCAAmC,CAAA,CAEjE,SAAA,CAAU,IAAA,CAAKA,CAAQ,CAAA,CAClB,CAAE,QAAS,IAAA,CAAM,IAAA,CAAM,QAAS,CAAA,CAElC,CAAE,OAAA,CAAS,IAAA,CAAM,IAAA,CAAM,UAAW,CAE7C,CAAC","file":"de.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: '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"]}
@@ -1,2 +1,2 @@
1
- 'use strict';function s(e){return e.replace(/\D/g,"")}function l(e,n){return `+${e}${n}`}var i="593";function d(e,n){let r=s(e),t=r;if(r.startsWith(i)&&r.length>9&&(t=r.slice(i.length)),t.length!==9)return {isValid:false,error:"Phone number must be 9 digits"};let a=t.startsWith("9")?"mobile":/^[2-7]/.test(t)?"landline":void 0;if(!a)return {isValid:false,error:"Invalid prefix for Ecuador"};let o=t;return n?.format==="e164"?o=l(i,t):n?.format==="international"&&(o=`+${i} ${t}`),{isValid:true,type:a,formatted:o}}exports.validate=d;//# sourceMappingURL=ec.cjs.map
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:"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"}});exports.validate=c;//# sourceMappingURL=ec.cjs.map
2
2
  //# sourceMappingURL=ec.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/utils.ts","../../src/locales/ec.ts"],"names":["cleanPhone","phone","formatE164","countryCode","COUNTRY_CODE","validate","options","cleaned","national","type","formatted"],"mappings":"aAAO,SAASA,CAAAA,CAAWC,CAAAA,CAAuB,CAChD,OAAOA,CAAAA,CAAM,QAAQ,KAAA,CAAO,EAAE,CAChC,CAEO,SAASC,CAAAA,CAAWC,EAAqBF,CAAAA,CAAuB,CACrE,OAAO,CAAA,CAAA,EAAIE,CAAW,CAAA,EAAGF,CAAK,CAAA,CAChC,CCHA,IAAMG,CAAAA,CAAe,KAAA,CAEd,SAASC,CAAAA,CAASJ,EAAeK,CAAAA,CAA+C,CACrF,IAAMC,CAAAA,CAAUP,CAAAA,CAAWC,CAAK,EAG5BO,CAAAA,CAAWD,CAAAA,CAMf,GALIA,CAAAA,CAAQ,UAAA,CAAWH,CAAY,GAAKG,CAAAA,CAAQ,MAAA,CAAS,CAAA,GACvDC,CAAAA,CAAWD,CAAAA,CAAQ,KAAA,CAAMH,CAAAA,CAAa,MAAM,CAAA,CAAA,CAI1CI,CAAAA,CAAS,MAAA,GAAW,CAAA,CACtB,OAAO,CAAE,QAAS,KAAA,CAAO,KAAA,CAAO,+BAAgC,CAAA,CAGlE,IAAMC,CAAAA,CAAOD,EAAS,UAAA,CAAW,GAAG,CAAA,CAChC,QAAA,CACA,QAAA,CAAS,IAAA,CAAKA,CAAQ,CAAA,CACpB,UAAA,CACA,MAAA,CAEN,GAAI,CAACC,CAAAA,CACH,OAAO,CAAE,OAAA,CAAS,KAAA,CAAO,KAAA,CAAO,4BAA6B,CAAA,CAG/D,IAAIC,EAAYF,CAAAA,CAChB,OAAIF,CAAAA,EAAS,MAAA,GAAW,MAAA,CACtBI,CAAAA,CAAYR,EAAWE,CAAAA,CAAcI,CAAQ,CAAA,CACpCF,CAAAA,EAAS,MAAA,GAAW,eAAA,GAC7BI,EAAY,CAAA,CAAA,EAAIN,CAAY,CAAA,CAAA,EAAII,CAAQ,CAAA,CAAA,CAAA,CAGnC,CAAE,OAAA,CAAS,IAAA,CAAM,IAAA,CAAAC,CAAAA,CAAM,SAAA,CAAAC,CAAU,CAC1C","file":"ec.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 '../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"]}
1
+ {"version":3,"sources":["../../src/core/utils.ts","../../src/core/validator.ts","../../src/locales/ec.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,KAAA,CACb,iBAAA,CAAoBG,CAAAA,EAClBA,CAAAA,CAAQ,WAAW,KAAK,CAAA,EAAKA,CAAAA,CAAQ,MAAA,CAAS,EAAIA,CAAAA,CAAQ,KAAA,CAAM,CAAC,CAAA,CAAIA,EACvE,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,4BAA6B,CAEjE,CAAC","file":"ec.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: '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"]}
@@ -1,2 +1,2 @@
1
1
  import '../types-BCr040RT.cjs';
2
- export { v as validate } from '../ec-G_GvdmHT.cjs';
2
+ export { v as validate } from '../ec-Dmvg9ZEu.cjs';
@@ -1,2 +1,2 @@
1
1
  import '../types-BCr040RT.js';
2
- export { v as validate } from '../ec-CLItBhMX.js';
2
+ export { v as validate } from '../ec-DMEwGX4e.js';
@@ -1,2 +1,2 @@
1
- function s(e){return e.replace(/\D/g,"")}function l(e,n){return `+${e}${n}`}var i="593";function d(e,n){let r=s(e),t=r;if(r.startsWith(i)&&r.length>9&&(t=r.slice(i.length)),t.length!==9)return {isValid:false,error:"Phone number must be 9 digits"};let a=t.startsWith("9")?"mobile":/^[2-7]/.test(t)?"landline":void 0;if(!a)return {isValid:false,error:"Invalid prefix for Ecuador"};let o=t;return n?.format==="e164"?o=l(i,t):n?.format==="international"&&(o=`+${i} ${t}`),{isValid:true,type:a,formatted:o}}export{d as validate};//# sourceMappingURL=ec.js.map
1
+ 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:"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"}});export{c as validate};//# sourceMappingURL=ec.js.map
2
2
  //# sourceMappingURL=ec.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/utils.ts","../../src/locales/ec.ts"],"names":["cleanPhone","phone","formatE164","countryCode","COUNTRY_CODE","validate","options","cleaned","national","type","formatted"],"mappings":"AAAO,SAASA,CAAAA,CAAWC,CAAAA,CAAuB,CAChD,OAAOA,CAAAA,CAAM,QAAQ,KAAA,CAAO,EAAE,CAChC,CAEO,SAASC,CAAAA,CAAWC,EAAqBF,CAAAA,CAAuB,CACrE,OAAO,CAAA,CAAA,EAAIE,CAAW,CAAA,EAAGF,CAAK,CAAA,CAChC,CCHA,IAAMG,CAAAA,CAAe,KAAA,CAEd,SAASC,CAAAA,CAASJ,EAAeK,CAAAA,CAA+C,CACrF,IAAMC,CAAAA,CAAUP,CAAAA,CAAWC,CAAK,EAG5BO,CAAAA,CAAWD,CAAAA,CAMf,GALIA,CAAAA,CAAQ,UAAA,CAAWH,CAAY,GAAKG,CAAAA,CAAQ,MAAA,CAAS,CAAA,GACvDC,CAAAA,CAAWD,CAAAA,CAAQ,KAAA,CAAMH,CAAAA,CAAa,MAAM,CAAA,CAAA,CAI1CI,CAAAA,CAAS,MAAA,GAAW,CAAA,CACtB,OAAO,CAAE,QAAS,KAAA,CAAO,KAAA,CAAO,+BAAgC,CAAA,CAGlE,IAAMC,CAAAA,CAAOD,EAAS,UAAA,CAAW,GAAG,CAAA,CAChC,QAAA,CACA,QAAA,CAAS,IAAA,CAAKA,CAAQ,CAAA,CACpB,UAAA,CACA,MAAA,CAEN,GAAI,CAACC,CAAAA,CACH,OAAO,CAAE,OAAA,CAAS,KAAA,CAAO,KAAA,CAAO,4BAA6B,CAAA,CAG/D,IAAIC,EAAYF,CAAAA,CAChB,OAAIF,CAAAA,EAAS,MAAA,GAAW,MAAA,CACtBI,CAAAA,CAAYR,EAAWE,CAAAA,CAAcI,CAAQ,CAAA,CACpCF,CAAAA,EAAS,MAAA,GAAW,eAAA,GAC7BI,EAAY,CAAA,CAAA,EAAIN,CAAY,CAAA,CAAA,EAAII,CAAQ,CAAA,CAAA,CAAA,CAGnC,CAAE,OAAA,CAAS,IAAA,CAAM,IAAA,CAAAC,CAAAA,CAAM,SAAA,CAAAC,CAAU,CAC1C","file":"ec.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 = '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"]}
1
+ {"version":3,"sources":["../../src/core/utils.ts","../../src/core/validator.ts","../../src/locales/ec.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,KAAA,CACb,iBAAA,CAAoBG,CAAAA,EAClBA,CAAAA,CAAQ,WAAW,KAAK,CAAA,EAAKA,CAAAA,CAAQ,MAAA,CAAS,EAAIA,CAAAA,CAAQ,KAAA,CAAM,CAAC,CAAA,CAAIA,EACvE,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,4BAA6B,CAEjE,CAAC","file":"ec.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: '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"]}
@@ -1,2 +1,2 @@
1
- 'use strict';function l(e){return e.replace(/\D/g,"")}function s(e,n){return `+${e}${n}`}var i="34";function d(e,n){let r=l(e),t=r;if(r.startsWith(i)&&r.length>9&&(t=r.slice(i.length)),t.length!==9)return {isValid:false,error:"Phone number must be 9 digits"};let a=/^[67]/.test(t)?"mobile":/^[89]/.test(t)?"landline":void 0;if(!a)return {isValid:false,error:"Invalid prefix for Spain"};let o=t;return n?.format==="e164"?o=s(i,t):n?.format==="international"&&(o=`+${i} ${t}`),{isValid:true,type:a,formatted:o}}exports.validate=d;//# sourceMappingURL=es.cjs.map
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:"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"}});exports.validate=c;//# sourceMappingURL=es.cjs.map
2
2
  //# sourceMappingURL=es.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/utils.ts","../../src/locales/es.ts"],"names":["cleanPhone","phone","formatE164","countryCode","COUNTRY_CODE","validate","options","cleaned","national","type","formatted"],"mappings":"aAAO,SAASA,CAAAA,CAAWC,CAAAA,CAAuB,CAChD,OAAOA,CAAAA,CAAM,QAAQ,KAAA,CAAO,EAAE,CAChC,CAEO,SAASC,CAAAA,CAAWC,EAAqBF,CAAAA,CAAuB,CACrE,OAAO,CAAA,CAAA,EAAIE,CAAW,CAAA,EAAGF,CAAK,CAAA,CAChC,CCHA,IAAMG,CAAAA,CAAe,IAAA,CAEd,SAASC,CAAAA,CAASJ,EAAeK,CAAAA,CAA+C,CACrF,IAAMC,CAAAA,CAAUP,CAAAA,CAAWC,CAAK,EAG5BO,CAAAA,CAAWD,CAAAA,CAMf,GALIA,CAAAA,CAAQ,UAAA,CAAWH,CAAY,GAAKG,CAAAA,CAAQ,MAAA,CAAS,CAAA,GACvDC,CAAAA,CAAWD,CAAAA,CAAQ,KAAA,CAAMH,CAAAA,CAAa,MAAM,CAAA,CAAA,CAI1CI,CAAAA,CAAS,MAAA,GAAW,CAAA,CACtB,OAAO,CAAE,QAAS,KAAA,CAAO,KAAA,CAAO,+BAAgC,CAAA,CAGlE,IAAMC,CAAAA,CAAO,QAAQ,IAAA,CAAKD,CAAQ,CAAA,CAAI,QAAA,CAAW,OAAA,CAAQ,IAAA,CAAKA,CAAQ,CAAA,CAAI,UAAA,CAAa,MAAA,CAEvF,GAAI,CAACC,CAAAA,CACH,OAAO,CAAE,OAAA,CAAS,KAAA,CAAO,KAAA,CAAO,0BAA2B,CAAA,CAG7D,IAAIC,EAAYF,CAAAA,CAChB,OAAIF,CAAAA,EAAS,MAAA,GAAW,MAAA,CACtBI,CAAAA,CAAYR,EAAWE,CAAAA,CAAcI,CAAQ,CAAA,CACpCF,CAAAA,EAAS,MAAA,GAAW,eAAA,GAC7BI,EAAY,CAAA,CAAA,EAAIN,CAAY,CAAA,CAAA,EAAII,CAAQ,CAAA,CAAA,CAAA,CAGnC,CAAE,OAAA,CAAS,IAAA,CAAM,IAAA,CAAAC,CAAAA,CAAM,SAAA,CAAAC,CAAU,CAC1C","file":"es.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 '../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"]}
1
+ {"version":3,"sources":["../../src/core/utils.ts","../../src/core/validator.ts","../../src/locales/es.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,CAE9D,OAAA,CAAQ,IAAA,CAAKA,CAAQ,CAAA,CAChB,CAAE,OAAA,CAAS,KAAM,IAAA,CAAM,QAAS,CAAA,CAErC,OAAA,CAAQ,IAAA,CAAKA,CAAQ,CAAA,CAChB,CAAE,QAAS,IAAA,CAAM,IAAA,CAAM,UAAW,CAAA,CAEpC,CAAE,OAAA,CAAS,KAAA,CAAO,KAAA,CAAO,0BAA2B,CAE/D,CAAC","file":"es.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: '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"]}
@@ -1,2 +1,2 @@
1
1
  import '../types-BCr040RT.cjs';
2
- export { v as validate } from '../es-DBWm_0BJ.cjs';
2
+ export { v as validate } from '../es-nCje-ks0.cjs';
@@ -1,2 +1,2 @@
1
1
  import '../types-BCr040RT.js';
2
- export { v as validate } from '../es-C0cTzz5Q.js';
2
+ export { v as validate } from '../es-C9fnTkGA.js';
@@ -1,2 +1,2 @@
1
- function l(e){return e.replace(/\D/g,"")}function s(e,n){return `+${e}${n}`}var i="34";function d(e,n){let r=l(e),t=r;if(r.startsWith(i)&&r.length>9&&(t=r.slice(i.length)),t.length!==9)return {isValid:false,error:"Phone number must be 9 digits"};let a=/^[67]/.test(t)?"mobile":/^[89]/.test(t)?"landline":void 0;if(!a)return {isValid:false,error:"Invalid prefix for Spain"};let o=t;return n?.format==="e164"?o=s(i,t):n?.format==="international"&&(o=`+${i} ${t}`),{isValid:true,type:a,formatted:o}}export{d as validate};//# sourceMappingURL=es.js.map
1
+ 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:"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"}});export{c as validate};//# sourceMappingURL=es.js.map
2
2
  //# sourceMappingURL=es.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/utils.ts","../../src/locales/es.ts"],"names":["cleanPhone","phone","formatE164","countryCode","COUNTRY_CODE","validate","options","cleaned","national","type","formatted"],"mappings":"AAAO,SAASA,CAAAA,CAAWC,CAAAA,CAAuB,CAChD,OAAOA,CAAAA,CAAM,QAAQ,KAAA,CAAO,EAAE,CAChC,CAEO,SAASC,CAAAA,CAAWC,EAAqBF,CAAAA,CAAuB,CACrE,OAAO,CAAA,CAAA,EAAIE,CAAW,CAAA,EAAGF,CAAK,CAAA,CAChC,CCHA,IAAMG,CAAAA,CAAe,IAAA,CAEd,SAASC,CAAAA,CAASJ,EAAeK,CAAAA,CAA+C,CACrF,IAAMC,CAAAA,CAAUP,CAAAA,CAAWC,CAAK,EAG5BO,CAAAA,CAAWD,CAAAA,CAMf,GALIA,CAAAA,CAAQ,UAAA,CAAWH,CAAY,GAAKG,CAAAA,CAAQ,MAAA,CAAS,CAAA,GACvDC,CAAAA,CAAWD,CAAAA,CAAQ,KAAA,CAAMH,CAAAA,CAAa,MAAM,CAAA,CAAA,CAI1CI,CAAAA,CAAS,MAAA,GAAW,CAAA,CACtB,OAAO,CAAE,QAAS,KAAA,CAAO,KAAA,CAAO,+BAAgC,CAAA,CAGlE,IAAMC,CAAAA,CAAO,QAAQ,IAAA,CAAKD,CAAQ,CAAA,CAAI,QAAA,CAAW,OAAA,CAAQ,IAAA,CAAKA,CAAQ,CAAA,CAAI,UAAA,CAAa,MAAA,CAEvF,GAAI,CAACC,CAAAA,CACH,OAAO,CAAE,OAAA,CAAS,KAAA,CAAO,KAAA,CAAO,0BAA2B,CAAA,CAG7D,IAAIC,EAAYF,CAAAA,CAChB,OAAIF,CAAAA,EAAS,MAAA,GAAW,MAAA,CACtBI,CAAAA,CAAYR,EAAWE,CAAAA,CAAcI,CAAQ,CAAA,CACpCF,CAAAA,EAAS,MAAA,GAAW,eAAA,GAC7BI,EAAY,CAAA,CAAA,EAAIN,CAAY,CAAA,CAAA,EAAII,CAAQ,CAAA,CAAA,CAAA,CAGnC,CAAE,OAAA,CAAS,IAAA,CAAM,IAAA,CAAAC,CAAAA,CAAM,SAAA,CAAAC,CAAU,CAC1C","file":"es.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 = '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"]}
1
+ {"version":3,"sources":["../../src/core/utils.ts","../../src/core/validator.ts","../../src/locales/es.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,CAE9D,OAAA,CAAQ,IAAA,CAAKA,CAAQ,CAAA,CAChB,CAAE,OAAA,CAAS,KAAM,IAAA,CAAM,QAAS,CAAA,CAErC,OAAA,CAAQ,IAAA,CAAKA,CAAQ,CAAA,CAChB,CAAE,QAAS,IAAA,CAAM,IAAA,CAAM,UAAW,CAAA,CAEpC,CAAE,OAAA,CAAS,KAAA,CAAO,KAAA,CAAO,0BAA2B,CAE/D,CAAC","file":"es.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: '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"]}
@@ -1,2 +1,2 @@
1
- 'use strict';function s(e){return e.replace(/\D/g,"")}function a(e,n){return `+${e}${n}`}var r="33";function m(e,n){let i=s(e),t=i;if(i.startsWith(r)&&i.length>9&&(t=i.slice(r.length)),t.startsWith("0")&&(t=t.slice(1)),t.length!==9)return {isValid:false,error:"Phone number must be 9 digits"};let o="unknown";/^[67]/.test(t)?o="mobile":/^[1-5,9]/.test(t)&&(o="landline");let l=t;return n?.format==="e164"?l=a(r,t):n?.format==="international"&&(l=`+${r} ${t}`),{isValid:true,type:o,formatted:l}}exports.validate=m;//# sourceMappingURL=fr.cjs.map
1
+ 'use strict';function o(t){return t.replace(/\D/g,"")}function l(t,e){return `+${t}${e}`}function s(t){return function(u,a){let d=o(u),r=t.getNationalNumber(d),n=t.evaluateNationalNumber(r);if(!n.isValid)return n;let i=r;return a?.format==="e164"?i=l(t.countryCode,r):a?.format==="international"&&(i=`+${t.countryCode} ${r}`),{isValid:true,type:n.type,formatted:i}}}var c=s({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"}});exports.validate=c;//# sourceMappingURL=fr.cjs.map
2
2
  //# sourceMappingURL=fr.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/utils.ts","../../src/locales/fr.ts"],"names":["cleanPhone","phone","formatE164","countryCode","COUNTRY_CODE","validate","options","cleaned","national","type","formatted"],"mappings":"aAAO,SAASA,CAAAA,CAAWC,CAAAA,CAAuB,CAChD,OAAOA,CAAAA,CAAM,QAAQ,KAAA,CAAO,EAAE,CAChC,CAEO,SAASC,CAAAA,CAAWC,EAAqBF,CAAAA,CAAuB,CACrE,OAAO,CAAA,CAAA,EAAIE,CAAW,CAAA,EAAGF,CAAK,CAAA,CAChC,CCHA,IAAMG,CAAAA,CAAe,IAAA,CAEd,SAASC,CAAAA,CAASJ,EAAeK,CAAAA,CAA+C,CACrF,IAAMC,CAAAA,CAAUP,CAAAA,CAAWC,CAAK,EAG5BO,CAAAA,CAAWD,CAAAA,CAWf,GAVIA,CAAAA,CAAQ,UAAA,CAAWH,CAAY,GAAKG,CAAAA,CAAQ,MAAA,CAAS,CAAA,GACvDC,CAAAA,CAAWD,CAAAA,CAAQ,KAAA,CAAMH,CAAAA,CAAa,MAAM,CAAA,CAAA,CAK1CI,CAAAA,CAAS,UAAA,CAAW,GAAG,CAAA,GACzBA,CAAAA,CAAWA,EAAS,KAAA,CAAM,CAAC,CAAA,CAAA,CAGzBA,CAAAA,CAAS,MAAA,GAAW,CAAA,CACtB,OAAO,CAAE,OAAA,CAAS,KAAA,CAAO,KAAA,CAAO,+BAAgC,CAAA,CAGlE,IAAIC,CAAAA,CAA0C,SAAA,CAG1C,OAAA,CAAQ,IAAA,CAAKD,CAAQ,CAAA,CACvBC,CAAAA,CAAO,QAAA,CAGA,UAAA,CAAW,IAAA,CAAKD,CAAQ,CAAA,GAC/BC,CAAAA,CAAO,UAAA,CAAA,CAGT,IAAIC,CAAAA,CAAYF,CAAAA,CAChB,OAAIF,CAAAA,EAAS,MAAA,GAAW,MAAA,CACtBI,CAAAA,CAAYR,CAAAA,CAAWE,CAAAA,CAAcI,CAAQ,CAAA,CACpCF,CAAAA,EAAS,MAAA,GAAW,eAAA,GAC7BI,EAAY,CAAA,CAAA,EAAIN,CAAY,CAAA,CAAA,EAAII,CAAQ,CAAA,CAAA,CAAA,CAGnC,CAAE,OAAA,CAAS,IAAA,CAAM,IAAA,CAAAC,CAAAA,CAAM,SAAA,CAAAC,CAAU,CAC1C","file":"fr.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 '../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"]}
1
+ {"version":3,"sources":["../../src/core/utils.ts","../../src/core/validator.ts","../../src/locales/fr.ts"],"names":["cleanPhone","phone","formatE164","countryCode","createValidator","config","options","cleaned","national","evaluation","formatted","validate"],"mappings":"aAAO,SAASA,EAAWC,CAAAA,CAAuB,CAChD,OAAOA,CAAAA,CAAM,QAAQ,KAAA,CAAO,EAAE,CAChC,CAEO,SAASC,CAAAA,CAAWC,CAAAA,CAAqBF,CAAAA,CAAuB,CACrE,OAAO,CAAA,CAAA,EAAIE,CAAW,CAAA,EAAGF,CAAK,EAChC,CCOO,SAASG,CAAAA,CAAgBC,CAAAA,CAA8B,CAC5D,OAAO,SAAkBJ,CAAAA,CAAeK,CAAAA,CAA+C,CACrF,IAAMC,CAAAA,CAAUP,CAAAA,CAAWC,CAAK,EAC1BO,CAAAA,CAAWH,CAAAA,CAAO,iBAAA,CAAkBE,CAAO,EAE3CE,CAAAA,CAAaJ,CAAAA,CAAO,sBAAA,CAAuBG,CAAQ,EACzD,GAAI,CAACC,CAAAA,CAAW,OAAA,CACd,OAAOA,CAAAA,CAGT,IAAIC,CAAAA,CAAYF,CAAAA,CAChB,OAAIF,CAAAA,EAAS,MAAA,GAAW,MAAA,CACtBI,CAAAA,CAAYR,EAAWG,CAAAA,CAAO,WAAA,CAAaG,CAAQ,CAAA,CAC1CF,GAAS,MAAA,GAAW,eAAA,GAC7BI,CAAAA,CAAY,CAAA,CAAA,EAAIL,EAAO,WAAW,CAAA,CAAA,EAAIG,CAAQ,CAAA,CAAA,CAAA,CAGzC,CAAE,QAAS,IAAA,CAAM,IAAA,CAAMC,CAAAA,CAAW,IAAA,CAAM,UAAAC,CAAU,CAC3D,CACF,KC9BaC,CAAAA,CAAWP,CAAAA,CAAgB,CACtC,WAAA,CAAa,KACb,iBAAA,CAAoBG,CAAAA,EAAY,CAC9B,IAAIC,EAAWD,CAAAA,CAAQ,UAAA,CAAW,IAAI,CAAA,EAAKA,EAAQ,MAAA,CAAS,CAAA,CAAIA,CAAAA,CAAQ,KAAA,CAAM,CAAC,CAAA,CAAIA,CAAAA,CACnF,OAAIC,CAAAA,CAAS,WAAW,GAAG,CAAA,GACzBA,CAAAA,CAAWA,CAAAA,CAAS,MAAM,CAAC,CAAA,CAAA,CAEtBA,CACT,CAAA,CACA,uBAAyBA,CAAAA,EACnBA,CAAAA,CAAS,MAAA,GAAW,CAAA,CACf,CAAE,OAAA,CAAS,KAAA,CAAO,KAAA,CAAO,+BAAgC,EAE9D,OAAA,CAAQ,IAAA,CAAKA,CAAQ,CAAA,CAChB,CAAE,OAAA,CAAS,IAAA,CAAM,IAAA,CAAM,QAAS,EAErC,UAAA,CAAW,IAAA,CAAKA,CAAQ,CAAA,CACnB,CAAE,OAAA,CAAS,IAAA,CAAM,IAAA,CAAM,UAAW,EAEpC,CAAE,OAAA,CAAS,KAAM,IAAA,CAAM,SAAU,CAE5C,CAAC","file":"fr.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: '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"]}
@@ -1,2 +1,2 @@
1
1
  import '../types-BCr040RT.cjs';
2
- export { v as validate } from '../fr-BFsuh3v2.cjs';
2
+ export { v as validate } from '../fr-6elCkAaM.cjs';
@@ -1,2 +1,2 @@
1
1
  import '../types-BCr040RT.js';
2
- export { v as validate } from '../fr-BE6W1TEy.js';
2
+ export { v as validate } from '../fr-DhJ1s23l.js';
@@ -1,2 +1,2 @@
1
- function s(e){return e.replace(/\D/g,"")}function a(e,n){return `+${e}${n}`}var r="33";function m(e,n){let i=s(e),t=i;if(i.startsWith(r)&&i.length>9&&(t=i.slice(r.length)),t.startsWith("0")&&(t=t.slice(1)),t.length!==9)return {isValid:false,error:"Phone number must be 9 digits"};let o="unknown";/^[67]/.test(t)?o="mobile":/^[1-5,9]/.test(t)&&(o="landline");let l=t;return n?.format==="e164"?l=a(r,t):n?.format==="international"&&(l=`+${r} ${t}`),{isValid:true,type:o,formatted:l}}export{m as validate};//# sourceMappingURL=fr.js.map
1
+ function o(t){return t.replace(/\D/g,"")}function l(t,e){return `+${t}${e}`}function s(t){return function(u,a){let d=o(u),r=t.getNationalNumber(d),n=t.evaluateNationalNumber(r);if(!n.isValid)return n;let i=r;return a?.format==="e164"?i=l(t.countryCode,r):a?.format==="international"&&(i=`+${t.countryCode} ${r}`),{isValid:true,type:n.type,formatted:i}}}var c=s({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"}});export{c as validate};//# sourceMappingURL=fr.js.map
2
2
  //# sourceMappingURL=fr.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/utils.ts","../../src/locales/fr.ts"],"names":["cleanPhone","phone","formatE164","countryCode","COUNTRY_CODE","validate","options","cleaned","national","type","formatted"],"mappings":"AAAO,SAASA,CAAAA,CAAWC,CAAAA,CAAuB,CAChD,OAAOA,CAAAA,CAAM,QAAQ,KAAA,CAAO,EAAE,CAChC,CAEO,SAASC,CAAAA,CAAWC,EAAqBF,CAAAA,CAAuB,CACrE,OAAO,CAAA,CAAA,EAAIE,CAAW,CAAA,EAAGF,CAAK,CAAA,CAChC,CCHA,IAAMG,CAAAA,CAAe,IAAA,CAEd,SAASC,CAAAA,CAASJ,EAAeK,CAAAA,CAA+C,CACrF,IAAMC,CAAAA,CAAUP,CAAAA,CAAWC,CAAK,EAG5BO,CAAAA,CAAWD,CAAAA,CAWf,GAVIA,CAAAA,CAAQ,UAAA,CAAWH,CAAY,GAAKG,CAAAA,CAAQ,MAAA,CAAS,CAAA,GACvDC,CAAAA,CAAWD,CAAAA,CAAQ,KAAA,CAAMH,CAAAA,CAAa,MAAM,CAAA,CAAA,CAK1CI,CAAAA,CAAS,UAAA,CAAW,GAAG,CAAA,GACzBA,CAAAA,CAAWA,EAAS,KAAA,CAAM,CAAC,CAAA,CAAA,CAGzBA,CAAAA,CAAS,MAAA,GAAW,CAAA,CACtB,OAAO,CAAE,OAAA,CAAS,KAAA,CAAO,KAAA,CAAO,+BAAgC,CAAA,CAGlE,IAAIC,CAAAA,CAA0C,SAAA,CAG1C,OAAA,CAAQ,IAAA,CAAKD,CAAQ,CAAA,CACvBC,CAAAA,CAAO,QAAA,CAGA,UAAA,CAAW,IAAA,CAAKD,CAAQ,CAAA,GAC/BC,CAAAA,CAAO,UAAA,CAAA,CAGT,IAAIC,CAAAA,CAAYF,CAAAA,CAChB,OAAIF,CAAAA,EAAS,MAAA,GAAW,MAAA,CACtBI,CAAAA,CAAYR,CAAAA,CAAWE,CAAAA,CAAcI,CAAQ,CAAA,CACpCF,CAAAA,EAAS,MAAA,GAAW,eAAA,GAC7BI,EAAY,CAAA,CAAA,EAAIN,CAAY,CAAA,CAAA,EAAII,CAAQ,CAAA,CAAA,CAAA,CAGnC,CAAE,OAAA,CAAS,IAAA,CAAM,IAAA,CAAAC,CAAAA,CAAM,SAAA,CAAAC,CAAU,CAC1C","file":"fr.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 = '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"]}
1
+ {"version":3,"sources":["../../src/core/utils.ts","../../src/core/validator.ts","../../src/locales/fr.ts"],"names":["cleanPhone","phone","formatE164","countryCode","createValidator","config","options","cleaned","national","evaluation","formatted","validate"],"mappings":"AAAO,SAASA,EAAWC,CAAAA,CAAuB,CAChD,OAAOA,CAAAA,CAAM,QAAQ,KAAA,CAAO,EAAE,CAChC,CAEO,SAASC,CAAAA,CAAWC,CAAAA,CAAqBF,CAAAA,CAAuB,CACrE,OAAO,CAAA,CAAA,EAAIE,CAAW,CAAA,EAAGF,CAAK,EAChC,CCOO,SAASG,CAAAA,CAAgBC,CAAAA,CAA8B,CAC5D,OAAO,SAAkBJ,CAAAA,CAAeK,CAAAA,CAA+C,CACrF,IAAMC,CAAAA,CAAUP,CAAAA,CAAWC,CAAK,EAC1BO,CAAAA,CAAWH,CAAAA,CAAO,iBAAA,CAAkBE,CAAO,EAE3CE,CAAAA,CAAaJ,CAAAA,CAAO,sBAAA,CAAuBG,CAAQ,EACzD,GAAI,CAACC,CAAAA,CAAW,OAAA,CACd,OAAOA,CAAAA,CAGT,IAAIC,CAAAA,CAAYF,CAAAA,CAChB,OAAIF,CAAAA,EAAS,MAAA,GAAW,MAAA,CACtBI,CAAAA,CAAYR,EAAWG,CAAAA,CAAO,WAAA,CAAaG,CAAQ,CAAA,CAC1CF,GAAS,MAAA,GAAW,eAAA,GAC7BI,CAAAA,CAAY,CAAA,CAAA,EAAIL,EAAO,WAAW,CAAA,CAAA,EAAIG,CAAQ,CAAA,CAAA,CAAA,CAGzC,CAAE,QAAS,IAAA,CAAM,IAAA,CAAMC,CAAAA,CAAW,IAAA,CAAM,UAAAC,CAAU,CAC3D,CACF,KC9BaC,CAAAA,CAAWP,CAAAA,CAAgB,CACtC,WAAA,CAAa,KACb,iBAAA,CAAoBG,CAAAA,EAAY,CAC9B,IAAIC,EAAWD,CAAAA,CAAQ,UAAA,CAAW,IAAI,CAAA,EAAKA,EAAQ,MAAA,CAAS,CAAA,CAAIA,CAAAA,CAAQ,KAAA,CAAM,CAAC,CAAA,CAAIA,CAAAA,CACnF,OAAIC,CAAAA,CAAS,WAAW,GAAG,CAAA,GACzBA,CAAAA,CAAWA,CAAAA,CAAS,MAAM,CAAC,CAAA,CAAA,CAEtBA,CACT,CAAA,CACA,uBAAyBA,CAAAA,EACnBA,CAAAA,CAAS,MAAA,GAAW,CAAA,CACf,CAAE,OAAA,CAAS,KAAA,CAAO,KAAA,CAAO,+BAAgC,EAE9D,OAAA,CAAQ,IAAA,CAAKA,CAAQ,CAAA,CAChB,CAAE,OAAA,CAAS,IAAA,CAAM,IAAA,CAAM,QAAS,EAErC,UAAA,CAAW,IAAA,CAAKA,CAAQ,CAAA,CACnB,CAAE,OAAA,CAAS,IAAA,CAAM,IAAA,CAAM,UAAW,EAEpC,CAAE,OAAA,CAAS,KAAM,IAAA,CAAM,SAAU,CAE5C,CAAC","file":"fr.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: '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"]}