soff-phone 0.0.5 → 0.0.7

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 (114) hide show
  1. package/README.md +58 -6
  2. package/dist/{ar-JxzqPct0.d.cts → ar-GEGiRgO-.d.cts} +1 -1
  3. package/dist/{ar-BRemFHRv.d.ts → ar-tFIt4w8t.d.ts} +1 -1
  4. package/dist/{br-COFIo49r.d.cts → br-BT6qg54j.d.cts} +1 -1
  5. package/dist/{br-Ct41H5gk.d.ts → br-DDdWmYiI.d.ts} +1 -1
  6. package/dist/{ca-C0PYBvZK.d.cts → ca-DCSAnAM6.d.cts} +1 -1
  7. package/dist/{ca-CNnuf6qY.d.ts → ca-_dlgNQpK.d.ts} +1 -1
  8. package/dist/{cl-W_f2Hza8.d.ts → cl-BnJa59XK.d.ts} +1 -1
  9. package/dist/{cl-BSQlXUww.d.cts → cl-FomUh7u7.d.cts} +1 -1
  10. package/dist/{co-XlKvHbFg.d.ts → co-D3zWUbcg.d.ts} +1 -1
  11. package/dist/{co-Cmyehxbk.d.cts → co-HLHZhdf-.d.cts} +1 -1
  12. package/dist/{cr-UzSwttKD.d.ts → cr-CkAZd-e7.d.ts} +1 -1
  13. package/dist/{cr-C3m9H-RU.d.cts → cr-TYetkCTg.d.cts} +1 -1
  14. package/dist/{de-bIFBVR-K.d.ts → de-D-lK2VKQ.d.ts} +1 -1
  15. package/dist/{de-ZAyw44MG.d.cts → de-l5sbcQdU.d.cts} +1 -1
  16. package/dist/{ec-CCV5mLhv.d.ts → ec-CLItBhMX.d.ts} +1 -1
  17. package/dist/{ec-D7HUkRKn.d.cts → ec-G_GvdmHT.d.cts} +1 -1
  18. package/dist/{es-DVVnhfSE.d.ts → es-C0cTzz5Q.d.ts} +1 -1
  19. package/dist/{es-C7dIuFpf.d.cts → es-DBWm_0BJ.d.cts} +1 -1
  20. package/dist/{fr-C8OxubJ3.d.ts → fr-BE6W1TEy.d.ts} +1 -1
  21. package/dist/{fr-BSghMzs5.d.cts → fr-BFsuh3v2.d.cts} +1 -1
  22. package/dist/{gb-DDivDdMy.d.ts → gb-Cvog8XpH.d.ts} +1 -1
  23. package/dist/{gb-B5NBNoma.d.cts → gb-Dsiq1sFD.d.cts} +1 -1
  24. package/dist/{gt-DiiNa6Vm.d.ts → gt-BJOTX_KH.d.ts} +1 -1
  25. package/dist/{gt-uZfIOMWw.d.cts → gt-CHOp9jw8.d.cts} +1 -1
  26. package/dist/index.cjs +1 -1
  27. package/dist/index.cjs.map +1 -1
  28. package/dist/index.d.cts +19 -19
  29. package/dist/index.d.ts +19 -19
  30. package/dist/index.js +1 -1
  31. package/dist/index.js.map +1 -1
  32. package/dist/{it-BtfZnlF6.d.cts → it-Cvn0ckKc.d.cts} +1 -1
  33. package/dist/{it-DollYcFl.d.ts → it-DRkyyTTW.d.ts} +1 -1
  34. package/dist/locales/ar.d.cts +2 -2
  35. package/dist/locales/ar.d.ts +2 -2
  36. package/dist/locales/br.cjs +1 -1
  37. package/dist/locales/br.cjs.map +1 -1
  38. package/dist/locales/br.d.cts +2 -2
  39. package/dist/locales/br.d.ts +2 -2
  40. package/dist/locales/br.js +1 -1
  41. package/dist/locales/br.js.map +1 -1
  42. package/dist/locales/ca.d.cts +2 -2
  43. package/dist/locales/ca.d.ts +2 -2
  44. package/dist/locales/cl.cjs +1 -1
  45. package/dist/locales/cl.cjs.map +1 -1
  46. package/dist/locales/cl.d.cts +2 -2
  47. package/dist/locales/cl.d.ts +2 -2
  48. package/dist/locales/cl.js +1 -1
  49. package/dist/locales/cl.js.map +1 -1
  50. package/dist/locales/co.cjs +1 -1
  51. package/dist/locales/co.cjs.map +1 -1
  52. package/dist/locales/co.d.cts +2 -2
  53. package/dist/locales/co.d.ts +2 -2
  54. package/dist/locales/co.js +1 -1
  55. package/dist/locales/co.js.map +1 -1
  56. package/dist/locales/cr.d.cts +2 -2
  57. package/dist/locales/cr.d.ts +2 -2
  58. package/dist/locales/de.cjs +1 -1
  59. package/dist/locales/de.cjs.map +1 -1
  60. package/dist/locales/de.d.cts +2 -2
  61. package/dist/locales/de.d.ts +2 -2
  62. package/dist/locales/de.js +1 -1
  63. package/dist/locales/de.js.map +1 -1
  64. package/dist/locales/ec.cjs +1 -1
  65. package/dist/locales/ec.cjs.map +1 -1
  66. package/dist/locales/ec.d.cts +2 -2
  67. package/dist/locales/ec.d.ts +2 -2
  68. package/dist/locales/ec.js +1 -1
  69. package/dist/locales/ec.js.map +1 -1
  70. package/dist/locales/es.cjs +1 -1
  71. package/dist/locales/es.cjs.map +1 -1
  72. package/dist/locales/es.d.cts +2 -2
  73. package/dist/locales/es.d.ts +2 -2
  74. package/dist/locales/es.js +1 -1
  75. package/dist/locales/es.js.map +1 -1
  76. package/dist/locales/fr.d.cts +2 -2
  77. package/dist/locales/fr.d.ts +2 -2
  78. package/dist/locales/gb.d.cts +2 -2
  79. package/dist/locales/gb.d.ts +2 -2
  80. package/dist/locales/gt.d.cts +2 -2
  81. package/dist/locales/gt.d.ts +2 -2
  82. package/dist/locales/it.cjs +1 -1
  83. package/dist/locales/it.cjs.map +1 -1
  84. package/dist/locales/it.d.cts +2 -2
  85. package/dist/locales/it.d.ts +2 -2
  86. package/dist/locales/it.js +1 -1
  87. package/dist/locales/it.js.map +1 -1
  88. package/dist/locales/mx.d.cts +2 -2
  89. package/dist/locales/mx.d.ts +2 -2
  90. package/dist/locales/pa.d.cts +2 -2
  91. package/dist/locales/pa.d.ts +2 -2
  92. package/dist/locales/pe.cjs +1 -1
  93. package/dist/locales/pe.cjs.map +1 -1
  94. package/dist/locales/pe.d.cts +2 -2
  95. package/dist/locales/pe.d.ts +2 -2
  96. package/dist/locales/pe.js +1 -1
  97. package/dist/locales/pe.js.map +1 -1
  98. package/dist/locales/us.d.cts +2 -2
  99. package/dist/locales/us.d.ts +2 -2
  100. package/dist/locales/ve.d.cts +2 -2
  101. package/dist/locales/ve.d.ts +2 -2
  102. package/dist/{mx-BaMV1Q-C.d.cts → mx-CmkrNDw0.d.cts} +1 -1
  103. package/dist/{mx-gjjuvO94.d.ts → mx-DkRS3Aa-.d.ts} +1 -1
  104. package/dist/{pa-CEAa_MLu.d.cts → pa-BPfQzrBx.d.cts} +1 -1
  105. package/dist/{pa-CeerPsSh.d.ts → pa-Dyi3iuWW.d.ts} +1 -1
  106. package/dist/{pe-CHVFUsc1.d.cts → pe-B_5pgsR0.d.cts} +1 -1
  107. package/dist/{pe-ZpTRwvEa.d.ts → pe-NCsXTXmc.d.ts} +1 -1
  108. package/dist/{types-ClMaPMkH.d.cts → types-BCr040RT.d.cts} +1 -1
  109. package/dist/{types-ClMaPMkH.d.ts → types-BCr040RT.d.ts} +1 -1
  110. package/dist/{us-BV-jF4X9.d.cts → us-BaYu0g3a.d.cts} +1 -1
  111. package/dist/{us-DcxF3Jrz.d.ts → us-KOpobREo.d.ts} +1 -1
  112. package/dist/{ve-Czf_bYd9.d.ts → ve-BFLV2qGp.d.ts} +1 -1
  113. package/dist/{ve-DMPrCtKR.d.cts → ve-BomxppQL.d.cts} +1 -1
  114. package/package.json +10 -10
package/README.md CHANGED
@@ -6,11 +6,31 @@
6
6
 
7
7
  <div align="center">
8
8
 
9
+ [![npm](https://img.shields.io/npm/v/soff-phone)](https://www.npmjs.com/package/soff-phone)
10
+ [![License](https://img.shields.io/github/license/bledxs/soff-monorepo)](LICENSE)
11
+ [![Build Status](https://github.com/bledxs/soff-monorepo/actions/workflows/ci.yml/badge.svg)](https://github.com/bledxs/soff-monorepo/actions)
12
+ [![codecov](https://codecov.io/gh/bledxs/soff-monorepo/branch/master/graph/badge.svg)](https://codecov.io/gh/bledxs/soff-monorepo)
13
+ [![minzipped size](https://img.shields.io/bundlephobia/minzip/soff-phone)](https://bundlephobia.com/package/soff-phone)
14
+ [![All Contributors](https://img.shields.io/github/all-contributors/bledxs/soff-monorepo?color=ee8449&style=flat-square)](#contributors)
15
+
9
16
  </div>
10
17
 
11
18
  ---
12
19
 
13
- ## Features
20
+ **Zero dependencies** · **TypeScript** · **Tree-shakeable**
21
+
22
+ ## Table of Contents
23
+
24
+ - [Why?](#why)
25
+ - [Supported Countries](#supported-countries)
26
+ - [Install](#install)
27
+ - [Quick Start](#quick-start)
28
+ - [Bundle Size](#bundle-size)
29
+ - [Contributing](#contributing)
30
+ - [License](#license)
31
+ - [Contributors](#contributors)
32
+
33
+ ## Why?
14
34
 
15
35
  - 🌲 **Tree-shakeable**: Import only the locales you need
16
36
  - 📦 **Zero dependencies**: Lightweight and fast
@@ -47,17 +67,23 @@
47
67
  - 🇬🇧 **United Kingdom** (gb) - 10 digits
48
68
  - 🇮🇹 **Italy** (it) - 9-10 digits
49
69
 
50
- ## Installation
70
+ ## Install
51
71
 
52
72
  ```bash
73
+ # npm
53
74
  npm install soff-phone
54
- # or
75
+
76
+ # pnpm
55
77
  pnpm add soff-phone
56
- # or
78
+
79
+ # yarn
57
80
  yarn add soff-phone
81
+
82
+ # bun
83
+ bun add soff-phone
58
84
  ```
59
85
 
60
- ## Usage
86
+ ## Quick Start
61
87
 
62
88
  ### Colombia 🇨🇴
63
89
 
@@ -148,6 +174,32 @@ Each locale is individually tree-shakeable, so you only pay for what you use.
148
174
 
149
175
  **Example**: If you only import Colombia validation, your bundle will be ~1KB minified (~0.6KB gzipped).
150
176
 
177
+ ## Contributing
178
+
179
+ Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.
180
+
151
181
  ## License
152
182
 
153
- MIT © [Luis C. Rojas](https://github.com/bledxs)
183
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
184
+
185
+ ## Contributors
186
+
187
+ Thanks goes to these wonderful people ([emoji key](https://all-contributors.js.org/docs/en/emoji-key)):
188
+
189
+ <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
190
+ <!-- prettier-ignore-start -->
191
+ <!-- markdownlint-disable -->
192
+ <table>
193
+ <tbody>
194
+ <tr>
195
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/bledxs"><img src="https://avatars.githubusercontent.com/u/90062924?v=4" width="100px;" alt="Luis C. Rojas"/><br /><sub><b>Luis C. Rojas</b></sub></a><br /><a href="https://github.com/bledxs/soff-monorepo/commits?author=bledxs" title="Code">💻</a> <a href="https://github.com/bledxs/soff-monorepo/commits?author=bledxs" title="Documentation">📖</a> <a href="#maintenance-bledxs" title="Maintenance">🚧</a></td>
196
+ </tr>
197
+ </tbody>
198
+ </table>
199
+
200
+ <!-- markdownlint-restore -->
201
+ <!-- prettier-ignore-end -->
202
+
203
+ <!-- ALL-CONTRIBUTORS-LIST:END -->
204
+
205
+ This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
@@ -1,4 +1,4 @@
1
- import { a as PhoneOptions, P as PhoneValidationResult } from './types-ClMaPMkH.cjs';
1
+ import { P as PhoneOptions, a as PhoneValidationResult } from './types-BCr040RT.cjs';
2
2
 
3
3
  declare function validate(phone: string, options?: PhoneOptions): PhoneValidationResult;
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as PhoneOptions, P as PhoneValidationResult } from './types-ClMaPMkH.js';
1
+ import { P as PhoneOptions, a as PhoneValidationResult } from './types-BCr040RT.js';
2
2
 
3
3
  declare function validate(phone: string, options?: PhoneOptions): PhoneValidationResult;
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as PhoneOptions, P as PhoneValidationResult } from './types-ClMaPMkH.cjs';
1
+ import { P as PhoneOptions, a as PhoneValidationResult } from './types-BCr040RT.cjs';
2
2
 
3
3
  declare function validate(phone: string, options?: PhoneOptions): PhoneValidationResult;
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as PhoneOptions, P as PhoneValidationResult } from './types-ClMaPMkH.js';
1
+ import { P as PhoneOptions, a as PhoneValidationResult } from './types-BCr040RT.js';
2
2
 
3
3
  declare function validate(phone: string, options?: PhoneOptions): PhoneValidationResult;
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as PhoneOptions, P as PhoneValidationResult } from './types-ClMaPMkH.cjs';
1
+ import { P as PhoneOptions, a as PhoneValidationResult } from './types-BCr040RT.cjs';
2
2
 
3
3
  declare function validate(phone: string, options?: PhoneOptions): PhoneValidationResult;
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as PhoneOptions, P as PhoneValidationResult } from './types-ClMaPMkH.js';
1
+ import { P as PhoneOptions, a as PhoneValidationResult } from './types-BCr040RT.js';
2
2
 
3
3
  declare function validate(phone: string, options?: PhoneOptions): PhoneValidationResult;
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as PhoneOptions, P as PhoneValidationResult } from './types-ClMaPMkH.js';
1
+ import { P as PhoneOptions, a as PhoneValidationResult } from './types-BCr040RT.js';
2
2
 
3
3
  declare function validate(phone: string, options?: PhoneOptions): PhoneValidationResult;
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as PhoneOptions, P as PhoneValidationResult } from './types-ClMaPMkH.cjs';
1
+ import { P as PhoneOptions, a as PhoneValidationResult } from './types-BCr040RT.cjs';
2
2
 
3
3
  declare function validate(phone: string, options?: PhoneOptions): PhoneValidationResult;
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as PhoneOptions, P as PhoneValidationResult } from './types-ClMaPMkH.js';
1
+ import { P as PhoneOptions, a as PhoneValidationResult } from './types-BCr040RT.js';
2
2
 
3
3
  declare function validate(phone: string, options?: PhoneOptions): PhoneValidationResult;
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as PhoneOptions, P as PhoneValidationResult } from './types-ClMaPMkH.cjs';
1
+ import { P as PhoneOptions, a as PhoneValidationResult } from './types-BCr040RT.cjs';
2
2
 
3
3
  declare function validate(phone: string, options?: PhoneOptions): PhoneValidationResult;
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as PhoneOptions, P as PhoneValidationResult } from './types-ClMaPMkH.js';
1
+ import { P as PhoneOptions, a as PhoneValidationResult } from './types-BCr040RT.js';
2
2
 
3
3
  declare function validate(phone: string, options?: PhoneOptions): PhoneValidationResult;
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as PhoneOptions, P as PhoneValidationResult } from './types-ClMaPMkH.cjs';
1
+ import { P as PhoneOptions, a as PhoneValidationResult } from './types-BCr040RT.cjs';
2
2
 
3
3
  declare function validate(phone: string, options?: PhoneOptions): PhoneValidationResult;
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as PhoneOptions, P as PhoneValidationResult } from './types-ClMaPMkH.js';
1
+ import { P as PhoneOptions, a as PhoneValidationResult } from './types-BCr040RT.js';
2
2
 
3
3
  declare function validate(phone: string, options?: PhoneOptions): PhoneValidationResult;
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as PhoneOptions, P as PhoneValidationResult } from './types-ClMaPMkH.cjs';
1
+ import { P as PhoneOptions, a as PhoneValidationResult } from './types-BCr040RT.cjs';
2
2
 
3
3
  declare function validate(phone: string, options?: PhoneOptions): PhoneValidationResult;
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as PhoneOptions, P as PhoneValidationResult } from './types-ClMaPMkH.js';
1
+ import { P as PhoneOptions, a as PhoneValidationResult } from './types-BCr040RT.js';
2
2
 
3
3
  declare function validate(phone: string, options?: PhoneOptions): PhoneValidationResult;
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as PhoneOptions, P as PhoneValidationResult } from './types-ClMaPMkH.cjs';
1
+ import { P as PhoneOptions, a as PhoneValidationResult } from './types-BCr040RT.cjs';
2
2
 
3
3
  declare function validate(phone: string, options?: PhoneOptions): PhoneValidationResult;
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as PhoneOptions, P as PhoneValidationResult } from './types-ClMaPMkH.js';
1
+ import { P as PhoneOptions, a as PhoneValidationResult } from './types-BCr040RT.js';
2
2
 
3
3
  declare function validate(phone: string, options?: PhoneOptions): PhoneValidationResult;
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as PhoneOptions, P as PhoneValidationResult } from './types-ClMaPMkH.cjs';
1
+ import { P as PhoneOptions, a as PhoneValidationResult } from './types-BCr040RT.cjs';
2
2
 
3
3
  declare function validate(phone: string, options?: PhoneOptions): PhoneValidationResult;
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as PhoneOptions, P as PhoneValidationResult } from './types-ClMaPMkH.js';
1
+ import { P as PhoneOptions, a as PhoneValidationResult } from './types-BCr040RT.js';
2
2
 
3
3
  declare function validate(phone: string, options?: PhoneOptions): PhoneValidationResult;
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as PhoneOptions, P as PhoneValidationResult } from './types-ClMaPMkH.cjs';
1
+ import { P as PhoneOptions, a as PhoneValidationResult } from './types-BCr040RT.cjs';
2
2
 
3
3
  declare function validate(phone: string, options?: PhoneOptions): PhoneValidationResult;
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as PhoneOptions, P as PhoneValidationResult } from './types-ClMaPMkH.js';
1
+ import { P as PhoneOptions, a as PhoneValidationResult } from './types-BCr040RT.js';
2
2
 
3
3
  declare function validate(phone: string, options?: PhoneOptions): PhoneValidationResult;
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as PhoneOptions, P as PhoneValidationResult } from './types-ClMaPMkH.cjs';
1
+ import { P as PhoneOptions, a as PhoneValidationResult } from './types-BCr040RT.cjs';
2
2
 
3
3
  declare function validate(phone: string, options?: PhoneOptions): PhoneValidationResult;
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as PhoneOptions, P as PhoneValidationResult } from './types-ClMaPMkH.js';
1
+ import { P as PhoneOptions, a as PhoneValidationResult } from './types-BCr040RT.js';
2
2
 
3
3
  declare function validate(phone: string, options?: PhoneOptions): PhoneValidationResult;
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as PhoneOptions, P as PhoneValidationResult } from './types-ClMaPMkH.cjs';
1
+ import { P as PhoneOptions, a as PhoneValidationResult } from './types-BCr040RT.cjs';
2
2
 
3
3
  declare function validate(phone: string, options?: PhoneOptions): PhoneValidationResult;
4
4
 
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- 'use strict';var H=Object.defineProperty;var s=(r,o)=>{for(var t in o)H(r,t,{get:o[t],enumerable:true});};function l(r){return r.replace(/\D/g,"")}function a(r,o){return `+${r}${o}`}var w={};s(w,{validate:()=>J});var m="54";function J(r,o){let t=l(r),e=t;if(t.startsWith(m)&&t.length>10&&(e=t.slice(m.length)),e.length!==10)return {isValid:false,error:"Phone number must be 10 digits"};let n="unknown";e.startsWith("9")?n="mobile":/^(11|2|3|4)/.test(e)&&(n="landline");let i=e;return o?.format==="e164"?i=a(m,e):o?.format==="international"&&(i=`+${m} ${e}`),{isValid:true,type:n,formatted:i}}var W={};s(W,{validate:()=>K});var h="55";function K(r,o){let t=l(r),e=t;if(t.startsWith(h)&&t.length>10&&(e=t.slice(h.length)),e.length!==10&&e.length!==11)return {isValid:false,error:"Phone number must be 10 or 11 digits"};let n="unknown";if(e.length===11&&e[2]==="9")n="mobile";else if(e.length===10)n="landline";else return {isValid:false,error:"Invalid phone format for Brazil"};let i=e;return o?.format==="e164"?i=a(h,e):o?.format==="international"&&(i=`+${h} ${e}`),{isValid:true,type:n,formatted:i}}var v={};s(v,{validate:()=>L});var d="56";function L(r,o){let t=l(r),e=t;if(t.startsWith(d)&&t.length>9&&(e=t.slice(d.length)),e.length!==9)return {isValid:false,error:"Phone number must be 9 digits"};let n="unknown";if(e.startsWith("9"))n="mobile";else if(/^[2-7]/.test(e))n="landline";else return {isValid:false,error:"Invalid prefix for Chile"};let i=e;return o?.format==="e164"?i=a(d,e):o?.format==="international"&&(i=`+${d} ${e}`),{isValid:true,type:n,formatted:i}}var j={};s(j,{validate:()=>M});var u="57";function M(r,o){let t=l(r),e=t;if(t.startsWith(u)&&t.length>10&&(e=t.slice(u.length)),e.length!==10)return {isValid:false,error:"Phone number must be 10 digits"};let n="unknown";if(e.startsWith("3"))n="mobile";else if(e.startsWith("60"))n="landline";else return {isValid:false,error:"Invalid prefix for Colombia"};let i=e;return o?.format==="e164"?i=a(u,e):o?.format==="international"&&(i=`+${u} ${e}`),{isValid:true,type:n,formatted:i}}var D={};s(D,{validate:()=>Q});var p="506";function Q(r,o){let t=l(r),e=t;if(t.startsWith(p)&&t.length>8&&(e=t.slice(p.length)),e.length!==8)return {isValid:false,error:"Phone number must be 8 digits"};let n="unknown";/^[5678]/.test(e)?n="mobile":e.startsWith("2")&&(n="landline");let i=e;return o?.format==="e164"?i=a(p,e):o?.format==="international"&&(i=`+${p} ${e}`),{isValid:true,type:n,formatted:i}}var N={};s(N,{validate:()=>X});var c="593";function X(r,o){let t=l(r),e=t;if(t.startsWith(c)&&t.length>9&&(e=t.slice(c.length)),e.length!==9)return {isValid:false,error:"Phone number must be 9 digits"};let n="unknown";if(e.startsWith("9"))n="mobile";else if(/^[2-7]/.test(e))n="landline";else return {isValid:false,error:"Invalid prefix for Ecuador"};let i=e;return o?.format==="e164"?i=a(c,e):o?.format==="international"&&(i=`+${c} ${e}`),{isValid:true,type:n,formatted:i}}var T={};s(T,{validate:()=>Z});var P="502";function Z(r,o){let t=l(r),e=t;if(t.startsWith(P)&&t.length>8&&(e=t.slice(P.length)),e.length!==8)return {isValid:false,error:"Phone number must be 8 digits"};let n="unknown";/^[345]/.test(e)?n="mobile":/^[267]/.test(e)&&(n="landline");let i=e;return o?.format==="e164"?i=a(P,e):o?.format==="international"&&(i=`+${P} ${e}`),{isValid:true,type:n,formatted:i}}var U={};s(U,{validate:()=>ee});var g="52";function ee(r,o){let t=l(r),e=t;if(t.startsWith(g)&&t.length>10&&(e=t.slice(g.length)),e.length!==10)return {isValid:false,error:"Phone number must be 10 digits"};let n=e;return o?.format==="e164"?n=a(g,e):o?.format==="international"&&(n=`+${g} ${e}`),{isValid:true,type:"unknown",formatted:n}}var Y={};s(Y,{validate:()=>te});var V="507";function te(r,o){let t=l(r),e=t;if(t.startsWith(V)&&t.length>8&&(e=t.slice(V.length)),e.length!==8)return {isValid:false,error:"Phone number must be 8 digits"};let n="unknown";e.startsWith("6")?n="mobile":/^[2-57-9]/.test(e)&&(n="landline");let i=e;return o?.format==="e164"?i=a(V,e):o?.format==="international"&&(i=`+${V} ${e}`),{isValid:true,type:n,formatted:i}}var _={};s(_,{validate:()=>ne});var b="51";function ne(r,o){let t=l(r),e=t;if(t.startsWith(b)&&t.length>9&&(e=t.slice(b.length)),e.length!==9)return {isValid:false,error:"Phone number must be 9 digits"};let n="unknown";if(e.startsWith("9"))n="mobile";else if(/^[01]/.test(e))n="landline";else return {isValid:false,error:"Invalid prefix for Peru"};let i=e;return o?.format==="e164"?i=a(b,e):o?.format==="international"&&(i=`+${b} ${e}`),{isValid:true,type:n,formatted:i}}var I={};s(I,{validate:()=>ie});var O="58";function ie(r,o){let t=l(r),e=t;if(t.startsWith(O)&&t.length>10&&(e=t.slice(O.length)),e.length!==10)return {isValid:false,error:"Phone number must be 10 digits"};let n="unknown";e.startsWith("4")?n="mobile":/^[2]/.test(e)&&(n="landline");let i=e;return o?.format==="e164"?i=a(O,e):o?.format==="international"&&(i=`+${O} ${e}`),{isValid:true,type:n,formatted:i}}var z={};s(z,{validate:()=>oe});var y="1";function oe(r,o){let t=l(r),e=t;if(t.startsWith(y)&&t.length===11&&(e=t.slice(y.length)),e.length!==10)return {isValid:false,error:"Phone number must be 10 digits"};let n=e.substring(0,3);if(!/^[2-9][0-8][0-9]$/.test(n))return {isValid:false,error:"Invalid area code"};let i=e.substring(3,6);if(!/^[2-9]\d{2}$/.test(i))return {isValid:false,error:"Invalid exchange code"};let f=e;return o?.format==="e164"?f=a(y,e):o?.format==="international"&&(f=`+${y} ${e}`),{isValid:true,type:"unknown",formatted:f}}var B={};s(B,{validate:()=>re});var R="1";function re(r,o){let t=l(r),e=t;if(t.startsWith(R)&&t.length===11&&(e=t.slice(R.length)),e.length!==10)return {isValid:false,error:"Phone number must be 10 digits"};let n=e.substring(0,3);if(!/^[2-9][0-8][0-9]$/.test(n))return {isValid:false,error:"Invalid area code"};let i=e.substring(3,6);if(!/^[2-9]\d{2}$/.test(i))return {isValid:false,error:"Invalid exchange code"};let f=e;return o?.format==="e164"?f=a(R,e):o?.format==="international"&&(f=`+${R} ${e}`),{isValid:true,type:"unknown",formatted:f}}var S={};s(S,{validate:()=>le});var x="49";function le(r,o){let t=l(r),e=t;if(t.startsWith(x)&&(e=t.slice(x.length)),e.startsWith("0")&&(e=e.slice(1)),e.length<9||e.length>11)return {isValid:false,error:"Phone number must be 9-11 digits"};let n="unknown";/^1[567]/.test(e)?n="mobile":n="landline";let i=e;return o?.format==="e164"?i=a(x,e):o?.format==="international"&&(i=`+${x} ${e}`),{isValid:true,type:n,formatted:i}}var q={};s(q,{validate:()=>ae});var C="34";function ae(r,o){let t=l(r),e=t;if(t.startsWith(C)&&t.length>9&&(e=t.slice(C.length)),e.length!==9)return {isValid:false,error:"Phone number must be 9 digits"};let n="unknown";if(/^[67]/.test(e))n="mobile";else if(/^[89]/.test(e))n="landline";else return {isValid:false,error:"Invalid prefix for Spain"};let i=e;return o?.format==="e164"?i=a(C,e):o?.format==="international"&&(i=`+${C} ${e}`),{isValid:true,type:n,formatted:i}}var A={};s(A,{validate:()=>se});var $="33";function se(r,o){let t=l(r),e=t;if(t.startsWith($)&&t.length>9&&(e=t.slice($.length)),e.startsWith("0")&&(e=e.slice(1)),e.length!==9)return {isValid:false,error:"Phone number must be 9 digits"};let n="unknown";/^[67]/.test(e)?n="mobile":/^[1-5,9]/.test(e)&&(n="landline");let i=e;return o?.format==="e164"?i=a($,e):o?.format==="international"&&(i=`+${$} ${e}`),{isValid:true,type:n,formatted:i}}var F={};s(F,{validate:()=>fe});var E="44";function fe(r,o){let t=l(r),e=t;if(t.startsWith(E)&&t.length>10&&(e=t.slice(E.length)),e.startsWith("0")&&(e=e.slice(1)),e.length!==10)return {isValid:false,error:"Phone number must be 10 digits"};let n="unknown";e.startsWith("7")?n="mobile":/^[123]/.test(e)&&(n="landline");let i=e;return o?.format==="e164"?i=a(E,e):o?.format==="international"&&(i=`+${E} ${e}`),{isValid:true,type:n,formatted:i}}var G={};s(G,{validate:()=>me});var k="39";function me(r,o){let t=l(r),e=t;if(t.startsWith(k)&&t.length>9&&(e=t.slice(k.length)),e.startsWith("0")&&(e=e.slice(1)),e.length<9||e.length>10)return {isValid:false,error:"Phone number must be 9-10 digits"};let n="unknown";e.startsWith("3")?n="mobile":n="landline";let i=e;return o?.format==="e164"?i=a(k,e):o?.format==="international"&&(i=`+${k} ${e}`),{isValid:true,type:n,formatted:i}}exports.ar=w;exports.br=W;exports.ca=z;exports.cl=v;exports.cleanPhone=l;exports.co=j;exports.cr=D;exports.de=S;exports.ec=N;exports.es=q;exports.formatE164=a;exports.fr=A;exports.gb=F;exports.gt=T;exports.it=G;exports.mx=U;exports.pa=Y;exports.pe=_;exports.us=B;exports.ve=I;//# sourceMappingURL=index.cjs.map
1
+ 'use strict';var H=Object.defineProperty;var s=(r,i)=>{for(var t in i)H(r,t,{get:i[t],enumerable:true});};function a(r){return r.replace(/\D/g,"")}function l(r,i){return `+${r}${i}`}var v={};s(v,{validate:()=>J});var m="54";function J(r,i){let t=a(r),e=t;if(t.startsWith(m)&&t.length>10&&(e=t.slice(m.length)),e.length!==10)return {isValid:false,error:"Phone number must be 10 digits"};let o="unknown";e.startsWith("9")?o="mobile":/^(11|2|3|4)/.test(e)&&(o="landline");let n=e;return i?.format==="e164"?n=l(m,e):i?.format==="international"&&(n=`+${m} ${e}`),{isValid:true,type:o,formatted:n}}var j={};s(j,{validate:()=>K});var d="55";function K(r,i){let t=a(r),e=t;if(t.startsWith(d)&&t.length>10&&(e=t.slice(d.length)),e.length!==10&&e.length!==11)return {isValid:false,error:"Phone number must be 10 or 11 digits"};let o=e.length===11&&e[2]==="9"?"mobile":e.length===10?"landline":void 0;if(!o)return {isValid:false,error:"Invalid phone format for Brazil"};let n=e;return i?.format==="e164"?n=l(d,e):i?.format==="international"&&(n=`+${d} ${e}`),{isValid:true,type:o,formatted:n}}var D={};s(D,{validate:()=>L});var h="56";function L(r,i){let t=a(r),e=t;if(t.startsWith(h)&&t.length>9&&(e=t.slice(h.length)),e.length!==9)return {isValid:false,error:"Phone number must be 9 digits"};let o=e.startsWith("9")?"mobile":/^[2-7]/.test(e)?"landline":void 0;if(!o)return {isValid:false,error:"Invalid prefix for Chile"};let n=e;return i?.format==="e164"?n=l(h,e):i?.format==="international"&&(n=`+${h} ${e}`),{isValid:true,type:o,formatted:n}}var N={};s(N,{validate:()=>M});var u="57";function M(r,i){let t=a(r),e=t;if(t.startsWith(u)&&t.length>10&&(e=t.slice(u.length)),e.length!==10)return {isValid:false,error:"Phone number must be 10 digits"};let o=e.startsWith("3")?"mobile":e.startsWith("60")?"landline":void 0;if(!o)return {isValid:false,error:"Invalid prefix for Colombia"};let n=e;return i?.format==="e164"?n=l(u,e):i?.format==="international"&&(n=`+${u} ${e}`),{isValid:true,type:o,formatted:n}}var T={};s(T,{validate:()=>Q});var p="506";function Q(r,i){let t=a(r),e=t;if(t.startsWith(p)&&t.length>8&&(e=t.slice(p.length)),e.length!==8)return {isValid:false,error:"Phone number must be 8 digits"};let o="unknown";/^[5678]/.test(e)?o="mobile":e.startsWith("2")&&(o="landline");let n=e;return i?.format==="e164"?n=l(p,e):i?.format==="international"&&(n=`+${p} ${e}`),{isValid:true,type:o,formatted:n}}var U={};s(U,{validate:()=>X});var c="593";function X(r,i){let t=a(r),e=t;if(t.startsWith(c)&&t.length>9&&(e=t.slice(c.length)),e.length!==9)return {isValid:false,error:"Phone number must be 9 digits"};let o=e.startsWith("9")?"mobile":/^[2-7]/.test(e)?"landline":void 0;if(!o)return {isValid:false,error:"Invalid prefix for Ecuador"};let n=e;return i?.format==="e164"?n=l(c,e):i?.format==="international"&&(n=`+${c} ${e}`),{isValid:true,type:o,formatted:n}}var Y={};s(Y,{validate:()=>Z});var P="502";function Z(r,i){let t=a(r),e=t;if(t.startsWith(P)&&t.length>8&&(e=t.slice(P.length)),e.length!==8)return {isValid:false,error:"Phone number must be 8 digits"};let o="unknown";/^[345]/.test(e)?o="mobile":/^[267]/.test(e)&&(o="landline");let n=e;return i?.format==="e164"?n=l(P,e):i?.format==="international"&&(n=`+${P} ${e}`),{isValid:true,type:o,formatted:n}}var _={};s(_,{validate:()=>ee});var g="52";function ee(r,i){let t=a(r),e=t;if(t.startsWith(g)&&t.length>10&&(e=t.slice(g.length)),e.length!==10)return {isValid:false,error:"Phone number must be 10 digits"};let o=e;return i?.format==="e164"?o=l(g,e):i?.format==="international"&&(o=`+${g} ${e}`),{isValid:true,type:"unknown",formatted:o}}var k={};s(k,{validate:()=>te});var V="507";function te(r,i){let t=a(r),e=t;if(t.startsWith(V)&&t.length>8&&(e=t.slice(V.length)),e.length!==8)return {isValid:false,error:"Phone number must be 8 digits"};let o="unknown";e.startsWith("6")?o="mobile":/^[2-57-9]/.test(e)&&(o="landline");let n=e;return i?.format==="e164"?n=l(V,e):i?.format==="international"&&(n=`+${V} ${e}`),{isValid:true,type:o,formatted:n}}var w={};s(w,{validate:()=>ne});var O="51";function ne(r,i){let t=a(r),e=t;if(t.startsWith(O)&&t.length>9&&(e=t.slice(O.length)),e.length!==9)return {isValid:false,error:"Phone number must be 9 digits"};let o=e.startsWith("9")?"mobile":/^[01]/.test(e)?"landline":void 0;if(!o)return {isValid:false,error:"Invalid prefix for Peru"};let n=e;return i?.format==="e164"?n=l(O,e):i?.format==="international"&&(n=`+${O} ${e}`),{isValid:true,type:o,formatted:n}}var I={};s(I,{validate:()=>ie});var b="58";function ie(r,i){let t=a(r),e=t;if(t.startsWith(b)&&t.length>10&&(e=t.slice(b.length)),e.length!==10)return {isValid:false,error:"Phone number must be 10 digits"};let o="unknown";e.startsWith("4")?o="mobile":/^[2]/.test(e)&&(o="landline");let n=e;return i?.format==="e164"?n=l(b,e):i?.format==="international"&&(n=`+${b} ${e}`),{isValid:true,type:o,formatted:n}}var z={};s(z,{validate:()=>oe});var y="1";function oe(r,i){let t=a(r),e=t;if(t.startsWith(y)&&t.length===11&&(e=t.slice(y.length)),e.length!==10)return {isValid:false,error:"Phone number must be 10 digits"};let o=e.substring(0,3);if(!/^[2-9][0-8][0-9]$/.test(o))return {isValid:false,error:"Invalid area code"};let n=e.substring(3,6);if(!/^[2-9]\d{2}$/.test(n))return {isValid:false,error:"Invalid exchange code"};let f=e;return i?.format==="e164"?f=l(y,e):i?.format==="international"&&(f=`+${y} ${e}`),{isValid:true,type:"unknown",formatted:f}}var B={};s(B,{validate:()=>re});var R="1";function re(r,i){let t=a(r),e=t;if(t.startsWith(R)&&t.length===11&&(e=t.slice(R.length)),e.length!==10)return {isValid:false,error:"Phone number must be 10 digits"};let o=e.substring(0,3);if(!/^[2-9][0-8][0-9]$/.test(o))return {isValid:false,error:"Invalid area code"};let n=e.substring(3,6);if(!/^[2-9]\d{2}$/.test(n))return {isValid:false,error:"Invalid exchange code"};let f=e;return i?.format==="e164"?f=l(R,e):i?.format==="international"&&(f=`+${R} ${e}`),{isValid:true,type:"unknown",formatted:f}}var S={};s(S,{validate:()=>ae});var x="49";function ae(r,i){let t=a(r),e=t;if(t.startsWith(x)&&(e=t.slice(x.length)),e.startsWith("0")&&(e=e.slice(1)),e.length<9||e.length>11)return {isValid:false,error:"Phone number must be 9-11 digits"};let o=/^1[567]/.test(e)?"mobile":"landline",n=e;return i?.format==="e164"?n=l(x,e):i?.format==="international"&&(n=`+${x} ${e}`),{isValid:true,type:o,formatted:n}}var q={};s(q,{validate:()=>le});var C="34";function le(r,i){let t=a(r),e=t;if(t.startsWith(C)&&t.length>9&&(e=t.slice(C.length)),e.length!==9)return {isValid:false,error:"Phone number must be 9 digits"};let o=/^[67]/.test(e)?"mobile":/^[89]/.test(e)?"landline":void 0;if(!o)return {isValid:false,error:"Invalid prefix for Spain"};let n=e;return i?.format==="e164"?n=l(C,e):i?.format==="international"&&(n=`+${C} ${e}`),{isValid:true,type:o,formatted:n}}var A={};s(A,{validate:()=>se});var $="33";function se(r,i){let t=a(r),e=t;if(t.startsWith($)&&t.length>9&&(e=t.slice($.length)),e.startsWith("0")&&(e=e.slice(1)),e.length!==9)return {isValid:false,error:"Phone number must be 9 digits"};let o="unknown";/^[67]/.test(e)?o="mobile":/^[1-5,9]/.test(e)&&(o="landline");let n=e;return i?.format==="e164"?n=l($,e):i?.format==="international"&&(n=`+${$} ${e}`),{isValid:true,type:o,formatted:n}}var F={};s(F,{validate:()=>fe});var E="44";function fe(r,i){let t=a(r),e=t;if(t.startsWith(E)&&t.length>10&&(e=t.slice(E.length)),e.startsWith("0")&&(e=e.slice(1)),e.length!==10)return {isValid:false,error:"Phone number must be 10 digits"};let o="unknown";e.startsWith("7")?o="mobile":/^[123]/.test(e)&&(o="landline");let n=e;return i?.format==="e164"?n=l(E,e):i?.format==="international"&&(n=`+${E} ${e}`),{isValid:true,type:o,formatted:n}}var G={};s(G,{validate:()=>me});var W="39";function me(r,i){let t=a(r),e=t;if(t.startsWith(W)&&t.length>9&&(e=t.slice(W.length)),e.startsWith("0")&&(e=e.slice(1)),e.length<9||e.length>10)return {isValid:false,error:"Phone number must be 9-10 digits"};let o=e.startsWith("3")?"mobile":"landline",n=e;return i?.format==="e164"?n=l(W,e):i?.format==="international"&&(n=`+${W} ${e}`),{isValid:true,type:o,formatted:n}}exports.ar=v;exports.br=j;exports.ca=z;exports.cl=D;exports.cleanPhone=a;exports.co=N;exports.cr=T;exports.de=S;exports.ec=U;exports.es=q;exports.formatE164=l;exports.fr=A;exports.gb=F;exports.gt=Y;exports.it=G;exports.mx=_;exports.pa=k;exports.pe=w;exports.us=B;exports.ve=I;//# sourceMappingURL=index.cjs.map
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/utils.ts","../src/locales/ar.ts","../src/locales/br.ts","../src/locales/cl.ts","../src/locales/co.ts","../src/locales/cr.ts","../src/locales/ec.ts","../src/locales/gt.ts","../src/locales/mx.ts","../src/locales/pa.ts","../src/locales/pe.ts","../src/locales/ve.ts","../src/locales/ca.ts","../src/locales/us.ts","../src/locales/de.ts","../src/locales/es.ts","../src/locales/fr.ts","../src/locales/gb.ts","../src/locales/it.ts"],"names":["cleanPhone","phone","formatE164","countryCode","ar_exports","__export","validate","COUNTRY_CODE","options","cleaned","national","type","formatted","br_exports","cl_exports","co_exports","cr_exports","ec_exports","gt_exports","mx_exports","pa_exports","pe_exports","ve_exports","ca_exports","areaCode","exchangeCode","us_exports","de_exports","es_exports","fr_exports","gb_exports","it_exports"],"mappings":"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","file":"index.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 = '54';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 10) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Argentine numbers: 10 digits (including area code)\n if (national.length !== 10) {\n return { isValid: false, error: 'Phone number must be 10 digits' };\n }\n\n let type: 'mobile' | 'landline' | 'unknown' = 'unknown';\n\n // Mobile: Starts with 9 (e.g., 9 11 xxxx-xxxx)\n if (national.startsWith('9')) {\n type = 'mobile';\n }\n // Landline: Starts with 11, 2, 3, 4 or other area codes\n else if (/^(11|2|3|4)/.test(national)) {\n type = 'landline';\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '55';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 10) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Brazilian numbers: 10 digits (landline) or 11 digits (mobile with 9 prefix)\n if (national.length !== 10 && national.length !== 11) {\n return { isValid: false, error: 'Phone number must be 10 or 11 digits' };\n }\n\n let type: 'mobile' | 'landline' | 'unknown' = 'unknown';\n\n // Mobile: 11 digits starting with 9 (e.g., 11 98765-4321)\n if (national.length === 11 && national[2] === '9') {\n type = 'mobile';\n }\n // Landline: 10 digits\n else if (national.length === 10) {\n type = 'landline';\n } else {\n return { isValid: false, error: 'Invalid phone format for Brazil' };\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '56';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 9) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Chilean numbers: 9 digits\n if (national.length !== 9) {\n return { isValid: false, error: 'Phone number must be 9 digits' };\n }\n\n let type: 'mobile' | 'landline' | 'unknown' = 'unknown';\n\n // Mobile: Starts with 9\n if (national.startsWith('9')) {\n type = 'mobile';\n }\n // Landline: Starts with 2 (Santiago) or other area codes\n else if (/^[2-7]/.test(national)) {\n type = 'landline';\n } else {\n return { isValid: false, error: 'Invalid prefix for Chile' };\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '57';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 10) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n if (national.length !== 10) {\n return { isValid: false, error: 'Phone number must be 10 digits' };\n }\n\n let type: 'mobile' | 'landline' | 'unknown' = 'unknown';\n\n // Mobile: Starts with 3\n if (national.startsWith('3')) {\n type = 'mobile';\n }\n // Landline: Starts with 60\n else if (national.startsWith('60')) {\n type = 'landline';\n } else {\n return { isValid: false, error: 'Invalid prefix for Colombia' };\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '506';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 8) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Costa Rican numbers: 8 digits\n if (national.length !== 8) {\n return { isValid: false, error: 'Phone number must be 8 digits' };\n }\n\n let type: 'mobile' | 'landline' | 'unknown' = 'unknown';\n\n // Mobile: Starts with 5, 6, 7, 8\n if (/^[5678]/.test(national)) {\n type = 'mobile';\n }\n // Landline: Starts with 2\n else if (national.startsWith('2')) {\n type = 'landline';\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '593';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 9) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Ecuadorian numbers: 9 digits\n if (national.length !== 9) {\n return { isValid: false, error: 'Phone number must be 9 digits' };\n }\n\n let type: 'mobile' | 'landline' | 'unknown' = 'unknown';\n\n // Mobile: Starts with 9\n if (national.startsWith('9')) {\n type = 'mobile';\n }\n // Landline: Starts with 2-7 (area codes)\n else if (/^[2-7]/.test(national)) {\n type = 'landline';\n } else {\n return { isValid: false, error: 'Invalid prefix for Ecuador' };\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '502';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 8) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Guatemalan numbers: 8 digits\n if (national.length !== 8) {\n return { isValid: false, error: 'Phone number must be 8 digits' };\n }\n\n let type: 'mobile' | 'landline' | 'unknown' = 'unknown';\n\n // Mobile: Starts with 3, 4, 5\n if (/^[345]/.test(national)) {\n type = 'mobile';\n }\n // Landline: Starts with 2, 6, 7\n else if (/^[267]/.test(national)) {\n type = 'landline';\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '52';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 10) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n if (national.length !== 10) {\n return { isValid: false, error: 'Phone number must be 10 digits' };\n }\n\n // Mexico doesn't strictly separate mobile/landline ranges as clearly in the first digit anymore for all cases,\n // but generally we can just validate length.\n // Distinction is harder without a massive database of area codes.\n // We will mark as 'unknown' type unless we want to implement complex area code logic.\n // For now, let's assume valid if 10 digits.\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type: 'unknown', formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '507';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 8) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Panamanian numbers: 8 digits\n if (national.length !== 8) {\n return { isValid: false, error: 'Phone number must be 8 digits' };\n }\n\n let type: 'mobile' | 'landline' | 'unknown' = 'unknown';\n\n // Mobile: Starts with 6\n if (national.startsWith('6')) {\n type = 'mobile';\n }\n // Landline: Starts with 2-5, 7-9\n else if (/^[2-57-9]/.test(national)) {\n type = 'landline';\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '51';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 9) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Peruvian numbers: 9 digits\n if (national.length !== 9) {\n return { isValid: false, error: 'Phone number must be 9 digits' };\n }\n\n let type: 'mobile' | 'landline' | 'unknown' = 'unknown';\n\n // Mobile: Starts with 9\n if (national.startsWith('9')) {\n type = 'mobile';\n }\n // Landline: Starts with 1 (Lima) or other area codes (0)\n else if (/^[01]/.test(national)) {\n type = 'landline';\n } else {\n return { isValid: false, error: 'Invalid prefix for Peru' };\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '58';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 10) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Venezuelan numbers: 10 digits (including area code)\n if (national.length !== 10) {\n return { isValid: false, error: 'Phone number must be 10 digits' };\n }\n\n let type: 'mobile' | 'landline' | 'unknown' = 'unknown';\n\n // Mobile: Starts with 4\n if (national.startsWith('4')) {\n type = 'mobile';\n }\n // Landline: Starts with 2 (Caracas) or other area codes\n else if (/^[2]/.test(national)) {\n type = 'landline';\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '1';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length === 11) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Canadian numbers: 10 digits (NPA-NXX-XXXX) - same format as US\n if (national.length !== 10) {\n return { isValid: false, error: 'Phone number must be 10 digits' };\n }\n\n // Check valid area code (NPA): first digit 2-9, second digit 0-8, third digit 0-9\n const areaCode = national.substring(0, 3);\n if (!/^[2-9][0-8][0-9]$/.test(areaCode)) {\n return { isValid: false, error: 'Invalid area code' };\n }\n\n // Check valid exchange code (NXX): first digit 2-9\n const exchangeCode = national.substring(3, 6);\n if (!/^[2-9]\\d{2}$/.test(exchangeCode)) {\n return { isValid: false, error: 'Invalid exchange code' };\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type: 'unknown', formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '1';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length === 11) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // US/Canada numbers: 10 digits (NPA-NXX-XXXX)\n if (national.length !== 10) {\n return { isValid: false, error: 'Phone number must be 10 digits' };\n }\n\n // Check valid area code (NPA): first digit 2-9, second digit 0-8, third digit 0-9\n const areaCode = national.substring(0, 3);\n if (!/^[2-9][0-8][0-9]$/.test(areaCode)) {\n return { isValid: false, error: 'Invalid area code' };\n }\n\n // Check valid exchange code (NXX): first digit 2-9\n const exchangeCode = national.substring(3, 6);\n if (!/^[2-9]\\d{2}$/.test(exchangeCode)) {\n return { isValid: false, error: 'Invalid exchange code' };\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type: 'unknown', formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '49';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE)) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // German numbers: variable length (10-11 digits including area code)\n // Often start with 0 for domestic dialing\n if (national.startsWith('0')) {\n national = national.slice(1);\n }\n\n if (national.length < 9 || national.length > 11) {\n return { isValid: false, error: 'Phone number must be 9-11 digits' };\n }\n\n let type: 'mobile' | 'landline' | 'unknown' = 'unknown';\n\n // Mobile: Starts with 15, 16, 17\n if (/^1[567]/.test(national)) {\n type = 'mobile';\n }\n // Landline: various area codes\n else {\n type = 'landline';\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '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 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 8 or 9\n else if (/^[89]/.test(national)) {\n type = 'landline';\n } else {\n return { isValid: false, error: 'Invalid prefix for Spain' };\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '33';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 9) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // French numbers: 9 digits (excluding the leading 0)\n // But users often include the leading 0, so we accept both formats\n if (national.startsWith('0')) {\n national = national.slice(1);\n }\n\n if (national.length !== 9) {\n return { isValid: false, error: 'Phone number must be 9 digits' };\n }\n\n let type: 'mobile' | 'landline' | 'unknown' = 'unknown';\n\n // Mobile: Starts with 6 or 7\n if (/^[67]/.test(national)) {\n type = 'mobile';\n }\n // Landline: Starts with 1, 2, 3, 4, 5, 9\n else if (/^[1-5,9]/.test(national)) {\n type = 'landline';\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '44';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 10) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // UK numbers: 10 digits (excluding the leading 0)\n // But users often include the leading 0, so we accept both formats\n if (national.startsWith('0')) {\n national = national.slice(1);\n }\n\n if (national.length !== 10) {\n return { isValid: false, error: 'Phone number must be 10 digits' };\n }\n\n let type: 'mobile' | 'landline' | 'unknown' = 'unknown';\n\n // Mobile: Starts with 7\n if (national.startsWith('7')) {\n type = 'mobile';\n }\n // Landline: Starts with 1, 2, 3\n else if (/^[123]/.test(national)) {\n type = 'landline';\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '39';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 9) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Italian numbers: variable length (9-10 digits)\n // Often start with 0 for domestic dialing\n if (national.startsWith('0')) {\n national = national.slice(1);\n }\n\n if (national.length < 9 || national.length > 10) {\n return { isValid: false, error: 'Phone number must be 9-10 digits' };\n }\n\n let type: 'mobile' | 'landline' | 'unknown' = 'unknown';\n\n // Mobile: Starts with 3\n if (national.startsWith('3')) {\n type = 'mobile';\n }\n // Landline: various area codes (0, 1, 2, 4, 5, 6, 7, 8, 9)\n else {\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/locales/ar.ts","../src/locales/br.ts","../src/locales/cl.ts","../src/locales/co.ts","../src/locales/cr.ts","../src/locales/ec.ts","../src/locales/gt.ts","../src/locales/mx.ts","../src/locales/pa.ts","../src/locales/pe.ts","../src/locales/ve.ts","../src/locales/ca.ts","../src/locales/us.ts","../src/locales/de.ts","../src/locales/es.ts","../src/locales/fr.ts","../src/locales/gb.ts","../src/locales/it.ts"],"names":["cleanPhone","phone","formatE164","countryCode","ar_exports","__export","validate","COUNTRY_CODE","options","cleaned","national","type","formatted","br_exports","cl_exports","co_exports","cr_exports","ec_exports","gt_exports","mx_exports","pa_exports","pe_exports","ve_exports","ca_exports","areaCode","exchangeCode","us_exports","de_exports","es_exports","fr_exports","gb_exports","it_exports"],"mappings":"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","file":"index.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 = '54';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 10) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Argentine numbers: 10 digits (including area code)\n if (national.length !== 10) {\n return { isValid: false, error: 'Phone number must be 10 digits' };\n }\n\n let type: 'mobile' | 'landline' | 'unknown' = 'unknown';\n\n // Mobile: Starts with 9 (e.g., 9 11 xxxx-xxxx)\n if (national.startsWith('9')) {\n type = 'mobile';\n }\n // Landline: Starts with 11, 2, 3, 4 or other area codes\n else if (/^(11|2|3|4)/.test(national)) {\n type = 'landline';\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '55';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 10) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Brazilian numbers: 10 digits (landline) or 11 digits (mobile with 9 prefix)\n if (national.length !== 10 && national.length !== 11) {\n return { isValid: false, error: 'Phone number must be 10 or 11 digits' };\n }\n\n const type =\n national.length === 11 && national[2] === '9'\n ? 'mobile'\n : national.length === 10\n ? 'landline'\n : undefined;\n\n if (!type) {\n return { isValid: false, error: 'Invalid phone format for Brazil' };\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '56';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 9) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Chilean numbers: 9 digits\n if (national.length !== 9) {\n return { isValid: false, error: 'Phone number must be 9 digits' };\n }\n\n const type = national.startsWith('9')\n ? 'mobile'\n : /^[2-7]/.test(national)\n ? 'landline'\n : undefined;\n\n if (!type) {\n return { isValid: false, error: 'Invalid prefix for Chile' };\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '57';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 10) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n if (national.length !== 10) {\n return { isValid: false, error: 'Phone number must be 10 digits' };\n }\n\n const type = national.startsWith('3')\n ? 'mobile'\n : national.startsWith('60')\n ? 'landline'\n : undefined;\n\n if (!type) {\n return { isValid: false, error: 'Invalid prefix for Colombia' };\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '506';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 8) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Costa Rican numbers: 8 digits\n if (national.length !== 8) {\n return { isValid: false, error: 'Phone number must be 8 digits' };\n }\n\n let type: 'mobile' | 'landline' | 'unknown' = 'unknown';\n\n // Mobile: Starts with 5, 6, 7, 8\n if (/^[5678]/.test(national)) {\n type = 'mobile';\n }\n // Landline: Starts with 2\n else if (national.startsWith('2')) {\n type = 'landline';\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '593';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 9) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Ecuadorian numbers: 9 digits\n if (national.length !== 9) {\n return { isValid: false, error: 'Phone number must be 9 digits' };\n }\n\n const type = national.startsWith('9')\n ? 'mobile'\n : /^[2-7]/.test(national)\n ? 'landline'\n : undefined;\n\n if (!type) {\n return { isValid: false, error: 'Invalid prefix for Ecuador' };\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '502';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 8) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Guatemalan numbers: 8 digits\n if (national.length !== 8) {\n return { isValid: false, error: 'Phone number must be 8 digits' };\n }\n\n let type: 'mobile' | 'landline' | 'unknown' = 'unknown';\n\n // Mobile: Starts with 3, 4, 5\n if (/^[345]/.test(national)) {\n type = 'mobile';\n }\n // Landline: Starts with 2, 6, 7\n else if (/^[267]/.test(national)) {\n type = 'landline';\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '52';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 10) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n if (national.length !== 10) {\n return { isValid: false, error: 'Phone number must be 10 digits' };\n }\n\n // Mexico doesn't strictly separate mobile/landline ranges as clearly in the first digit anymore for all cases,\n // but generally we can just validate length.\n // Distinction is harder without a massive database of area codes.\n // We will mark as 'unknown' type unless we want to implement complex area code logic.\n // For now, let's assume valid if 10 digits.\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type: 'unknown', formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '507';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 8) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Panamanian numbers: 8 digits\n if (national.length !== 8) {\n return { isValid: false, error: 'Phone number must be 8 digits' };\n }\n\n let type: 'mobile' | 'landline' | 'unknown' = 'unknown';\n\n // Mobile: Starts with 6\n if (national.startsWith('6')) {\n type = 'mobile';\n }\n // Landline: Starts with 2-5, 7-9\n else if (/^[2-57-9]/.test(national)) {\n type = 'landline';\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '51';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 9) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Peruvian numbers: 9 digits\n if (national.length !== 9) {\n return { isValid: false, error: 'Phone number must be 9 digits' };\n }\n\n const type = national.startsWith('9')\n ? 'mobile'\n : /^[01]/.test(national)\n ? 'landline'\n : undefined;\n\n if (!type) {\n return { isValid: false, error: 'Invalid prefix for Peru' };\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '58';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 10) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Venezuelan numbers: 10 digits (including area code)\n if (national.length !== 10) {\n return { isValid: false, error: 'Phone number must be 10 digits' };\n }\n\n let type: 'mobile' | 'landline' | 'unknown' = 'unknown';\n\n // Mobile: Starts with 4\n if (national.startsWith('4')) {\n type = 'mobile';\n }\n // Landline: Starts with 2 (Caracas) or other area codes\n else if (/^[2]/.test(national)) {\n type = 'landline';\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '1';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length === 11) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Canadian numbers: 10 digits (NPA-NXX-XXXX) - same format as US\n if (national.length !== 10) {\n return { isValid: false, error: 'Phone number must be 10 digits' };\n }\n\n // Check valid area code (NPA): first digit 2-9, second digit 0-8, third digit 0-9\n const areaCode = national.substring(0, 3);\n if (!/^[2-9][0-8][0-9]$/.test(areaCode)) {\n return { isValid: false, error: 'Invalid area code' };\n }\n\n // Check valid exchange code (NXX): first digit 2-9\n const exchangeCode = national.substring(3, 6);\n if (!/^[2-9]\\d{2}$/.test(exchangeCode)) {\n return { isValid: false, error: 'Invalid exchange code' };\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type: 'unknown', formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '1';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length === 11) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // US/Canada numbers: 10 digits (NPA-NXX-XXXX)\n if (national.length !== 10) {\n return { isValid: false, error: 'Phone number must be 10 digits' };\n }\n\n // Check valid area code (NPA): first digit 2-9, second digit 0-8, third digit 0-9\n const areaCode = national.substring(0, 3);\n if (!/^[2-9][0-8][0-9]$/.test(areaCode)) {\n return { isValid: false, error: 'Invalid area code' };\n }\n\n // Check valid exchange code (NXX): first digit 2-9\n const exchangeCode = national.substring(3, 6);\n if (!/^[2-9]\\d{2}$/.test(exchangeCode)) {\n return { isValid: false, error: 'Invalid exchange code' };\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type: 'unknown', formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '49';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE)) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // German numbers: variable length (10-11 digits including area code)\n // Often start with 0 for domestic dialing\n if (national.startsWith('0')) {\n national = national.slice(1);\n }\n\n if (national.length < 9 || national.length > 11) {\n return { isValid: false, error: 'Phone number must be 9-11 digits' };\n }\n\n const type = /^1[567]/.test(national) ? 'mobile' : 'landline';\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '34';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 9) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Spanish numbers: 9 digits\n if (national.length !== 9) {\n return { isValid: false, error: 'Phone number must be 9 digits' };\n }\n\n const type = /^[67]/.test(national) ? 'mobile' : /^[89]/.test(national) ? 'landline' : undefined;\n\n if (!type) {\n return { isValid: false, error: 'Invalid prefix for Spain' };\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '33';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 9) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // French numbers: 9 digits (excluding the leading 0)\n // But users often include the leading 0, so we accept both formats\n if (national.startsWith('0')) {\n national = national.slice(1);\n }\n\n if (national.length !== 9) {\n return { isValid: false, error: 'Phone number must be 9 digits' };\n }\n\n let type: 'mobile' | 'landline' | 'unknown' = 'unknown';\n\n // Mobile: Starts with 6 or 7\n if (/^[67]/.test(national)) {\n type = 'mobile';\n }\n // Landline: Starts with 1, 2, 3, 4, 5, 9\n else if (/^[1-5,9]/.test(national)) {\n type = 'landline';\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '44';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 10) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // UK numbers: 10 digits (excluding the leading 0)\n // But users often include the leading 0, so we accept both formats\n if (national.startsWith('0')) {\n national = national.slice(1);\n }\n\n if (national.length !== 10) {\n return { isValid: false, error: 'Phone number must be 10 digits' };\n }\n\n let type: 'mobile' | 'landline' | 'unknown' = 'unknown';\n\n // Mobile: Starts with 7\n if (national.startsWith('7')) {\n type = 'mobile';\n }\n // Landline: Starts with 1, 2, 3\n else if (/^[123]/.test(national)) {\n type = 'landline';\n }\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n","import type { PhoneValidationResult, PhoneOptions } from '../core/types.js';\nimport { cleanPhone, formatE164 } from '../core/utils.js';\n\nconst COUNTRY_CODE = '39';\n\nexport function validate(phone: string, options?: PhoneOptions): PhoneValidationResult {\n const cleaned = cleanPhone(phone);\n\n // Check if it includes country code\n let national = cleaned;\n if (cleaned.startsWith(COUNTRY_CODE) && cleaned.length > 9) {\n national = cleaned.slice(COUNTRY_CODE.length);\n }\n\n // Italian numbers: variable length (9-10 digits)\n // Often start with 0 for domestic dialing\n if (national.startsWith('0')) {\n national = national.slice(1);\n }\n\n if (national.length < 9 || national.length > 10) {\n return { isValid: false, error: 'Phone number must be 9-10 digits' };\n }\n\n const type = national.startsWith('3') ? 'mobile' : 'landline';\n\n let formatted = national;\n if (options?.format === 'e164') {\n formatted = formatE164(COUNTRY_CODE, national);\n } else if (options?.format === 'international') {\n formatted = `+${COUNTRY_CODE} ${national}`;\n }\n\n return { isValid: true, type, formatted };\n}\n"]}
package/dist/index.d.cts CHANGED
@@ -1,22 +1,22 @@
1
- export { a as PhoneOptions, P as PhoneValidationResult } from './types-ClMaPMkH.cjs';
2
- export { a as ar } from './ar-JxzqPct0.cjs';
3
- export { b as br } from './br-COFIo49r.cjs';
4
- export { c as cl } from './cl-BSQlXUww.cjs';
5
- export { c as co } from './co-Cmyehxbk.cjs';
6
- export { c as cr } from './cr-C3m9H-RU.cjs';
7
- export { e as ec } from './ec-D7HUkRKn.cjs';
8
- export { g as gt } from './gt-uZfIOMWw.cjs';
9
- export { m as mx } from './mx-BaMV1Q-C.cjs';
10
- export { p as pa } from './pa-CEAa_MLu.cjs';
11
- export { p as pe } from './pe-CHVFUsc1.cjs';
12
- export { v as ve } from './ve-DMPrCtKR.cjs';
13
- export { c as ca } from './ca-C0PYBvZK.cjs';
14
- export { u as us } from './us-BV-jF4X9.cjs';
15
- export { d as de } from './de-ZAyw44MG.cjs';
16
- export { e as es } from './es-C7dIuFpf.cjs';
17
- export { f as fr } from './fr-BSghMzs5.cjs';
18
- export { g as gb } from './gb-B5NBNoma.cjs';
19
- export { i as it } from './it-BtfZnlF6.cjs';
1
+ export { P as PhoneOptions, a as PhoneValidationResult } from './types-BCr040RT.cjs';
2
+ export { a as ar } from './ar-GEGiRgO-.cjs';
3
+ export { b as br } from './br-BT6qg54j.cjs';
4
+ export { c as cl } from './cl-FomUh7u7.cjs';
5
+ export { c as co } from './co-HLHZhdf-.cjs';
6
+ export { c as cr } from './cr-TYetkCTg.cjs';
7
+ export { e as ec } from './ec-G_GvdmHT.cjs';
8
+ export { g as gt } from './gt-CHOp9jw8.cjs';
9
+ export { m as mx } from './mx-CmkrNDw0.cjs';
10
+ export { p as pa } from './pa-BPfQzrBx.cjs';
11
+ export { p as pe } from './pe-B_5pgsR0.cjs';
12
+ export { v as ve } from './ve-BomxppQL.cjs';
13
+ export { c as ca } from './ca-DCSAnAM6.cjs';
14
+ export { u as us } from './us-BaYu0g3a.cjs';
15
+ export { d as de } from './de-l5sbcQdU.cjs';
16
+ export { e as es } from './es-DBWm_0BJ.cjs';
17
+ export { f as fr } from './fr-BFsuh3v2.cjs';
18
+ export { g as gb } from './gb-Dsiq1sFD.cjs';
19
+ export { i as it } from './it-Cvn0ckKc.cjs';
20
20
 
21
21
  declare function cleanPhone(phone: string): string;
22
22
  declare function formatE164(countryCode: string, phone: string): string;