headless-countries 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,155 @@
1
+ # headless-countries 🌍
2
+
3
+ A massive, lightweight, headless utility package providing comprehensive data for all 247 recognized world countries and territories.
4
+
5
+ Build anything from dynamic country selectors, currency pickers, and language filters, to complete phone number validation and masking systems.
6
+
7
+ **Zero UI dependencies.** You bring your own UI (React, Vue, Svelte, Vanilla JS, etc.) and use this data to power your apps.
8
+
9
+ ## Installation
10
+
11
+ ```bash
12
+ npm install headless-countries
13
+ ```
14
+
15
+ ## 🚀 Key Features
16
+
17
+ ### 🌎 Universal Country Data
18
+ Data for **247 ISO 3166-1** countries and territories, including:
19
+ - **`name`**: Full country name (e.g. `Japan`)
20
+ - **`code`**: ISO alpha-2 country code (e.g. `JP`)
21
+ - **`flag`**: Native emoji flag (e.g. 🇯🇵)
22
+ - **`continent`**: Continent abbreviation (e.g. `AS` for Asia)
23
+ - **`capital`**: Capital city (e.g. `Tokyo`)
24
+ - **`currency`**: Primary 3-letter currency code (e.g. `JPY`)
25
+ - **`languages`**: Array of spoken languages (e.g. `['ja']`)
26
+
27
+ ### 📱 Phone Number Utilities
28
+ - **`dial`**: International dial code (e.g. `+81`)
29
+ - **`digits`**: Expected number of digits for local numbers
30
+ - **`format`**: Localized visual format (e.g. `## #### ####`)
31
+ - **`formatPhone()`**: Maps raw digits to a country's localized format.
32
+ - **`validatePhone()`**: Checks if a given input has the exact required digits.
33
+ - **`guessCountryByNumber()`**: Detect the country dynamically from a full phone number.
34
+ - **`formatAsE164()`**: Convert local numbers into E.164 standard format for API submissions.
35
+ - **`getMaskArray()`**: Generate regex array masks out-of-the-box (ideal for `react-text-mask`).
36
+
37
+ ### 🔍 Advanced Filtering & Search
38
+ - **`searchCountries(query)`**: Search across names, ISO codes, and dial codes.
39
+ - **`getCountriesByContinent(continent)`**: Filter by continent.
40
+ - **`getCountriesByCurrency(currency)`**: Find all countries using a specific currency.
41
+ - **`getCountriesByLanguage(language)`**: Find all countries that speak a specific language.
42
+ - **`getAllCurrencies()`, `getAllLanguages()`, `getAllContinents()`**: Get unique sets for building dropdown filters.
43
+
44
+ ---
45
+
46
+ ## 💻 Usage & Examples
47
+
48
+ ### 1. Basic Country Data
49
+ ```typescript
50
+ import { COUNTRIES, getCountryByCode } from 'headless-countries';
51
+
52
+ console.log(getCountryByCode('AF'));
53
+ /*
54
+ {
55
+ code: 'AF',
56
+ name: 'Afghanistan',
57
+ dial: '+93',
58
+ flag: '🇦🇫',
59
+ digits: 9,
60
+ format: '## ### ####',
61
+ continent: 'AS',
62
+ capital: 'Kabul',
63
+ currency: 'AFN',
64
+ languages: ['ps', 'uz', 'tk']
65
+ }
66
+ */
67
+ ```
68
+
69
+ ### 2. Geographical Filtering
70
+ Perfect for building contextual forms.
71
+ ```typescript
72
+ import {
73
+ getCountriesByContinent,
74
+ getCountriesByCurrency,
75
+ getCountriesByLanguage
76
+ } from 'headless-countries';
77
+
78
+ // Get all countries in Europe
79
+ const europeanCountries = getCountriesByContinent('EU');
80
+
81
+ // Find who uses the Euro
82
+ const euroZone = getCountriesByCurrency('EUR');
83
+
84
+ // Find all English speaking countries
85
+ const englishSpeaking = getCountriesByLanguage('en');
86
+ ```
87
+
88
+ ### 3. Phone Number Processing
89
+ Build a world-class phone input.
90
+ ```typescript
91
+ import {
92
+ formatPhone,
93
+ validatePhone,
94
+ guessCountryByNumber,
95
+ formatAsE164,
96
+ getCountryByCode,
97
+ getMaskArray
98
+ } from 'headless-countries';
99
+
100
+ const country = getCountryByCode('IN'); // India
101
+
102
+ // Format a raw string
103
+ console.log(formatPhone('9876543210', country.format)); // "98765 43210"
104
+
105
+ // Validate length
106
+ console.log(validatePhone('123', country)); // false
107
+
108
+ // Convert to E.164 for your database (e.g. +919876543210)
109
+ console.log(formatAsE164('9876543210', country));
110
+
111
+ // Auto-detect a country from user input
112
+ const detected = guessCountryByNumber('+12125550198');
113
+ console.log(detected.name); // "United States"
114
+
115
+ // Generate a mask for input masking libraries
116
+ console.log(getMaskArray(country.format));
117
+ // [/\d/, /\d/, /\d/, /\d/, /\d/, ' ', /\d/, /\d/, /\d/, /\d/, /\d/]
118
+ ```
119
+
120
+ ### 4. Search and Dropdown Helpers
121
+ ```typescript
122
+ import {
123
+ searchCountries,
124
+ getAllCurrencies,
125
+ getAllLanguages
126
+ } from 'headless-countries';
127
+
128
+ // Fuzzy search (matches name, code, dial)
129
+ const searchResults = searchCountries('united');
130
+ // Returns: UAE, United Kingdom, United States, etc.
131
+
132
+ // Get arrays of all unique global values for your `<select>` elements
133
+ const currencies = getAllCurrencies(); // ['AED', 'AFN', 'ALL', 'AMD', ...]
134
+ const languages = getAllLanguages(); // ['aa', 'ab', 'ae', 'af', 'ak', ...]
135
+ ```
136
+
137
+ ## 🛡️ Types
138
+
139
+ ```typescript
140
+ export interface CountryData {
141
+ code: string;
142
+ name: string;
143
+ dial: string;
144
+ flag: string;
145
+ digits: number;
146
+ format: string;
147
+ continent?: string;
148
+ capital?: string;
149
+ currency?: string;
150
+ languages?: string[];
151
+ }
152
+ ```
153
+
154
+ ## 📄 License
155
+ MIT License. Free for personal and commercial use.
@@ -0,0 +1,97 @@
1
+ interface CountryData {
2
+ code: string;
3
+ name: string;
4
+ dial: string;
5
+ flag: string;
6
+ digits: number;
7
+ format: string;
8
+ continent?: string;
9
+ capital?: string;
10
+ currency?: string;
11
+ languages?: string[];
12
+ }
13
+ declare const COUNTRIES: CountryData[];
14
+ /**
15
+ * Format a raw phone number string based on a specific country format template.
16
+ * @param value The raw string containing numbers
17
+ * @param format The format string where "#" represents a digit (e.g. "## ### ####")
18
+ * @returns The formatted phone number string
19
+ */
20
+ declare function formatPhone(value: string, format: string): string;
21
+ /**
22
+ * Validates a phone number based on the expected number of digits for a given country.
23
+ * @param phone The input phone string
24
+ * @param country The CountryData object
25
+ * @returns True if the number of digits matches the expected digits for the country
26
+ */
27
+ declare function validatePhone(phone: string, country: CountryData): boolean;
28
+ /**
29
+ * Helper to get a CountryData object by its 2-letter ISO code.
30
+ * @param code The 2-letter ISO country code (e.g. "IN", "US")
31
+ * @returns The matching CountryData or undefined
32
+ */
33
+ declare function getCountryByCode(code: string): CountryData | undefined;
34
+ /**
35
+ * Tries to guess the country based on the dial code present in a full phone number.
36
+ * Note: Some dial codes are shared (e.g. +1 for US/Canada). This returns the first match,
37
+ * usually the primary country for that dial code.
38
+ * @param phone The raw phone string starting with a country code (e.g. "+919876543210")
39
+ * @returns The guessed CountryData or undefined
40
+ */
41
+ declare function guessCountryByNumber(phone: string): CountryData | undefined;
42
+ /**
43
+ * Formats a local phone number into the international E.164 standard format.
44
+ * @param phone The local phone number (e.g. "9876543210")
45
+ * @param country The CountryData object
46
+ * @returns The E.164 formatted string (e.g. "+919876543210")
47
+ */
48
+ declare function formatAsE164(phone: string, country: CountryData): string;
49
+ /**
50
+ * Searches for countries by name, iso code, or dial code.
51
+ * Perfect for building dropdown filtering and search bars.
52
+ * @param query The search query string
53
+ * @returns Array of matching CountryData objects
54
+ */
55
+ declare function searchCountries(query: string): CountryData[];
56
+ /**
57
+ * Generates an array mask based on the country's format.
58
+ * Useful for integrating with masked input libraries (like react-text-mask).
59
+ * @param format The country's format string (e.g. "## ### ####")
60
+ * @returns Array of strings and RegExps (e.g. [/\d/, /\d/, ' ', /\d/, /\d/, /\d/, ' ', /\d/, /\d/, /\d/, /\d/])
61
+ */
62
+ declare function getMaskArray(format: string): Array<string | RegExp>;
63
+ /**
64
+ * Returns all countries belonging to a specific continent.
65
+ * @param continent The continent code (e.g., 'AS', 'EU', 'AF', 'NA', 'SA', 'OC', 'AN')
66
+ * @returns Array of CountryData objects
67
+ */
68
+ declare function getCountriesByContinent(continent: string): CountryData[];
69
+ /**
70
+ * Returns all countries that use a specific currency.
71
+ * @param currency The 3-letter currency code (e.g., 'USD', 'EUR', 'INR')
72
+ * @returns Array of CountryData objects
73
+ */
74
+ declare function getCountriesByCurrency(currency: string): CountryData[];
75
+ /**
76
+ * Returns all countries that speak a specific language.
77
+ * @param language The 2-letter language code (e.g., 'en', 'es', 'fr')
78
+ * @returns Array of CountryData objects
79
+ */
80
+ declare function getCountriesByLanguage(language: string): CountryData[];
81
+ /**
82
+ * Returns a unique list of all currencies used globally.
83
+ * @returns Array of unique currency strings (e.g., 'USD', 'EUR')
84
+ */
85
+ declare function getAllCurrencies(): string[];
86
+ /**
87
+ * Returns a unique list of all languages spoken globally.
88
+ * @returns Array of unique language strings (e.g., 'en', 'es')
89
+ */
90
+ declare function getAllLanguages(): string[];
91
+ /**
92
+ * Returns a unique list of all continents.
93
+ * @returns Array of unique continent strings
94
+ */
95
+ declare function getAllContinents(): string[];
96
+
97
+ export { COUNTRIES, type CountryData, formatAsE164, formatPhone, getAllContinents, getAllCurrencies, getAllLanguages, getCountriesByContinent, getCountriesByCurrency, getCountriesByLanguage, getCountryByCode, getMaskArray, guessCountryByNumber, searchCountries, validatePhone };
@@ -0,0 +1,97 @@
1
+ interface CountryData {
2
+ code: string;
3
+ name: string;
4
+ dial: string;
5
+ flag: string;
6
+ digits: number;
7
+ format: string;
8
+ continent?: string;
9
+ capital?: string;
10
+ currency?: string;
11
+ languages?: string[];
12
+ }
13
+ declare const COUNTRIES: CountryData[];
14
+ /**
15
+ * Format a raw phone number string based on a specific country format template.
16
+ * @param value The raw string containing numbers
17
+ * @param format The format string where "#" represents a digit (e.g. "## ### ####")
18
+ * @returns The formatted phone number string
19
+ */
20
+ declare function formatPhone(value: string, format: string): string;
21
+ /**
22
+ * Validates a phone number based on the expected number of digits for a given country.
23
+ * @param phone The input phone string
24
+ * @param country The CountryData object
25
+ * @returns True if the number of digits matches the expected digits for the country
26
+ */
27
+ declare function validatePhone(phone: string, country: CountryData): boolean;
28
+ /**
29
+ * Helper to get a CountryData object by its 2-letter ISO code.
30
+ * @param code The 2-letter ISO country code (e.g. "IN", "US")
31
+ * @returns The matching CountryData or undefined
32
+ */
33
+ declare function getCountryByCode(code: string): CountryData | undefined;
34
+ /**
35
+ * Tries to guess the country based on the dial code present in a full phone number.
36
+ * Note: Some dial codes are shared (e.g. +1 for US/Canada). This returns the first match,
37
+ * usually the primary country for that dial code.
38
+ * @param phone The raw phone string starting with a country code (e.g. "+919876543210")
39
+ * @returns The guessed CountryData or undefined
40
+ */
41
+ declare function guessCountryByNumber(phone: string): CountryData | undefined;
42
+ /**
43
+ * Formats a local phone number into the international E.164 standard format.
44
+ * @param phone The local phone number (e.g. "9876543210")
45
+ * @param country The CountryData object
46
+ * @returns The E.164 formatted string (e.g. "+919876543210")
47
+ */
48
+ declare function formatAsE164(phone: string, country: CountryData): string;
49
+ /**
50
+ * Searches for countries by name, iso code, or dial code.
51
+ * Perfect for building dropdown filtering and search bars.
52
+ * @param query The search query string
53
+ * @returns Array of matching CountryData objects
54
+ */
55
+ declare function searchCountries(query: string): CountryData[];
56
+ /**
57
+ * Generates an array mask based on the country's format.
58
+ * Useful for integrating with masked input libraries (like react-text-mask).
59
+ * @param format The country's format string (e.g. "## ### ####")
60
+ * @returns Array of strings and RegExps (e.g. [/\d/, /\d/, ' ', /\d/, /\d/, /\d/, ' ', /\d/, /\d/, /\d/, /\d/])
61
+ */
62
+ declare function getMaskArray(format: string): Array<string | RegExp>;
63
+ /**
64
+ * Returns all countries belonging to a specific continent.
65
+ * @param continent The continent code (e.g., 'AS', 'EU', 'AF', 'NA', 'SA', 'OC', 'AN')
66
+ * @returns Array of CountryData objects
67
+ */
68
+ declare function getCountriesByContinent(continent: string): CountryData[];
69
+ /**
70
+ * Returns all countries that use a specific currency.
71
+ * @param currency The 3-letter currency code (e.g., 'USD', 'EUR', 'INR')
72
+ * @returns Array of CountryData objects
73
+ */
74
+ declare function getCountriesByCurrency(currency: string): CountryData[];
75
+ /**
76
+ * Returns all countries that speak a specific language.
77
+ * @param language The 2-letter language code (e.g., 'en', 'es', 'fr')
78
+ * @returns Array of CountryData objects
79
+ */
80
+ declare function getCountriesByLanguage(language: string): CountryData[];
81
+ /**
82
+ * Returns a unique list of all currencies used globally.
83
+ * @returns Array of unique currency strings (e.g., 'USD', 'EUR')
84
+ */
85
+ declare function getAllCurrencies(): string[];
86
+ /**
87
+ * Returns a unique list of all languages spoken globally.
88
+ * @returns Array of unique language strings (e.g., 'en', 'es')
89
+ */
90
+ declare function getAllLanguages(): string[];
91
+ /**
92
+ * Returns a unique list of all continents.
93
+ * @returns Array of unique continent strings
94
+ */
95
+ declare function getAllContinents(): string[];
96
+
97
+ export { COUNTRIES, type CountryData, formatAsE164, formatPhone, getAllContinents, getAllCurrencies, getAllLanguages, getCountriesByContinent, getCountriesByCurrency, getCountriesByLanguage, getCountryByCode, getMaskArray, guessCountryByNumber, searchCountries, validatePhone };
package/dist/index.js ADDED
@@ -0,0 +1 @@
1
+ var l=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var s=(n,a)=>{for(var e in a)l(n,e,{get:a[e],enumerable:!0})},u=(n,a,e,c)=>{if(a&&typeof a=="object"||typeof a=="function")for(let t of o(a))!d.call(n,t)&&t!==e&&l(n,t,{get:()=>a[t],enumerable:!(c=g(a,t))||c.enumerable});return n};var m=n=>u(l({},"__esModule",{value:!0}),n);var R={};s(R,{COUNTRIES:()=>i,formatAsE164:()=>S,formatPhone:()=>f,getAllContinents:()=>B,getAllCurrencies:()=>M,getAllLanguages:()=>F,getCountriesByContinent:()=>E,getCountriesByCurrency:()=>D,getCountriesByLanguage:()=>N,getCountryByCode:()=>p,getMaskArray:()=>U,guessCountryByNumber:()=>A,searchCountries:()=>C,validatePhone:()=>y});module.exports=m(R);var i=[{code:"AF",name:"Afghanistan",dial:"+93",flag:"\u{1F1E6}\u{1F1EB}",digits:9,format:"## ### ####",continent:"AS",capital:"Kabul",currency:"AFN",languages:["ps","fa","uz","tk"]},{code:"AL",name:"Albania",dial:"+355",flag:"\u{1F1E6}\u{1F1F1}",digits:9,format:"## ### ####",continent:"EU",capital:"Tirana",currency:"ALL",languages:["sq"]},{code:"DZ",name:"Algeria",dial:"+213",flag:"\u{1F1E9}\u{1F1FF}",digits:9,format:"### ## ## ##",continent:"AF",capital:"Algiers",currency:"DZD",languages:["ar"]},{code:"AS",name:"American Samoa",dial:"+1684",flag:"\u{1F1E6}\u{1F1F8}",digits:7,format:"### ####",continent:"OC",capital:"Pago Pago",currency:"USD",languages:["en","sm"]},{code:"AD",name:"Andorra",dial:"+376",flag:"\u{1F1E6}\u{1F1E9}",digits:6,format:"### ###",continent:"EU",capital:"Andorra la Vella",currency:"EUR",languages:["ca"]},{code:"AO",name:"Angola",dial:"+244",flag:"\u{1F1E6}\u{1F1F4}",digits:9,format:"### ### ###",continent:"AF",capital:"Luanda",currency:"AOA",languages:["pt"]},{code:"AI",name:"Anguilla",dial:"+1264",flag:"\u{1F1E6}\u{1F1EE}",digits:7,format:"### ####",continent:"NA",capital:"The Valley",currency:"XCD",languages:["en"]},{code:"AG",name:"Antigua & Barbuda",dial:"+1268",flag:"\u{1F1E6}\u{1F1EC}",digits:7,format:"### ####",continent:"NA",capital:"Saint John's",currency:"XCD",languages:["en"]},{code:"AR",name:"Argentina",dial:"+54",flag:"\u{1F1E6}\u{1F1F7}",digits:10,format:"## #### ####",continent:"SA",capital:"Buenos Aires",currency:"ARS",languages:["es","gn"]},{code:"AM",name:"Armenia",dial:"+374",flag:"\u{1F1E6}\u{1F1F2}",digits:8,format:"## ######",continent:"AS",capital:"Yerevan",currency:"AMD",languages:["hy","ru"]},{code:"AW",name:"Aruba",dial:"+297",flag:"\u{1F1E6}\u{1F1FC}",digits:7,format:"### ####",continent:"NA",capital:"Oranjestad",currency:"AWG",languages:["nl","pa"]},{code:"AU",name:"Australia",dial:"+61",flag:"\u{1F1E6}\u{1F1FA}",digits:9,format:"### ### ###",continent:"OC",capital:"Canberra",currency:"AUD",languages:["en"]},{code:"AT",name:"Austria",dial:"+43",flag:"\u{1F1E6}\u{1F1F9}",digits:10,format:"### ### ####",continent:"EU",capital:"Vienna",currency:"EUR",languages:["de"]},{code:"AZ",name:"Azerbaijan",dial:"+994",flag:"\u{1F1E6}\u{1F1FF}",digits:9,format:"## ### ## ##",continent:"AS",capital:"Baku",currency:"AZN",languages:["az"]},{code:"BS",name:"Bahamas",dial:"+1242",flag:"\u{1F1E7}\u{1F1F8}",digits:7,format:"### ####",continent:"NA",capital:"Nassau",currency:"BSD",languages:["en"]},{code:"BH",name:"Bahrain",dial:"+973",flag:"\u{1F1E7}\u{1F1ED}",digits:8,format:"#### ####",continent:"AS",capital:"Manama",currency:"BHD",languages:["ar"]},{code:"BD",name:"Bangladesh",dial:"+880",flag:"\u{1F1E7}\u{1F1E9}",digits:10,format:"#### ######",continent:"AS",capital:"Dhaka",currency:"BDT",languages:["bn"]},{code:"BB",name:"Barbados",dial:"+1246",flag:"\u{1F1E7}\u{1F1E7}",digits:7,format:"### ####",continent:"NA",capital:"Bridgetown",currency:"BBD",languages:["en"]},{code:"BY",name:"Belarus",dial:"+375",flag:"\u{1F1E7}\u{1F1FE}",digits:9,format:"## ###-##-##",continent:"EU",capital:"Minsk",currency:"BYN",languages:["be","ru"]},{code:"BE",name:"Belgium",dial:"+32",flag:"\u{1F1E7}\u{1F1EA}",digits:9,format:"### ## ## ##",continent:"EU",capital:"Brussels",currency:"EUR",languages:["nl","fr","de"]},{code:"BZ",name:"Belize",dial:"+501",flag:"\u{1F1E7}\u{1F1FF}",digits:7,format:"### ####",continent:"NA",capital:"Belmopan",currency:"BZD",languages:["en","es"]},{code:"BJ",name:"Benin",dial:"+229",flag:"\u{1F1E7}\u{1F1EF}",digits:8,format:"## ## ## ##",continent:"AF",capital:"Porto-Novo",currency:"XOF",languages:["fr"]},{code:"BM",name:"Bermuda",dial:"+1441",flag:"\u{1F1E7}\u{1F1F2}",digits:7,format:"### ####",continent:"NA",capital:"Hamilton",currency:"BMD",languages:["en"]},{code:"BT",name:"Bhutan",dial:"+975",flag:"\u{1F1E7}\u{1F1F9}",digits:8,format:"## ## ## ##",continent:"AS",capital:"Thimphu",currency:"BTN",languages:["dz"]},{code:"BO",name:"Bolivia",dial:"+591",flag:"\u{1F1E7}\u{1F1F4}",digits:8,format:"#### ####",continent:"SA",capital:"Sucre",currency:"BOB",languages:["es","ay","qu"]},{code:"BA",name:"Bosnia & Herzegovina",dial:"+387",flag:"\u{1F1E7}\u{1F1E6}",digits:8,format:"## ### ###",continent:"EU",capital:"Sarajevo",currency:"BAM",languages:["bs","hr","sr"]},{code:"BW",name:"Botswana",dial:"+267",flag:"\u{1F1E7}\u{1F1FC}",digits:7,format:"## ### ##",continent:"AF",capital:"Gaborone",currency:"BWP",languages:["en","tn"]},{code:"BR",name:"Brazil",dial:"+55",flag:"\u{1F1E7}\u{1F1F7}",digits:11,format:"## ##### ####",continent:"SA",capital:"Bras\xEDlia",currency:"BRL",languages:["pt"]},{code:"IO",name:"British Indian Ocean Territory",dial:"+246",flag:"\u{1F1EE}\u{1F1F4}",digits:7,format:"### ####",continent:"AS",capital:"Diego Garcia",currency:"USD",languages:["en"]},{code:"VG",name:"British Virgin Islands",dial:"+1284",flag:"\u{1F1FB}\u{1F1EC}",digits:7,format:"### ####",continent:"NA",capital:"Road Town",currency:"USD",languages:["en"]},{code:"BN",name:"Brunei",dial:"+673",flag:"\u{1F1E7}\u{1F1F3}",digits:7,format:"### ####",continent:"AS",capital:"Bandar Seri Begawan",currency:"BND",languages:["ms"]},{code:"BG",name:"Bulgaria",dial:"+359",flag:"\u{1F1E7}\u{1F1EC}",digits:9,format:"### ### ###",continent:"EU",capital:"Sofia",currency:"EUR",languages:["bg"]},{code:"BF",name:"Burkina Faso",dial:"+226",flag:"\u{1F1E7}\u{1F1EB}",digits:8,format:"## ## ## ##",continent:"AF",capital:"Ouagadougou",currency:"XOF",languages:["fr","ff"]},{code:"BI",name:"Burundi",dial:"+257",flag:"\u{1F1E7}\u{1F1EE}",digits:8,format:"## ## ## ##",continent:"AF",capital:"Gitega",currency:"BIF",languages:["fr","rn"]},{code:"CV",name:"Cabo Verde",dial:"+238",flag:"\u{1F1E8}\u{1F1FB}",digits:7,format:"### ## ##",continent:"AF",capital:"Praia",currency:"CVE",languages:["pt"]},{code:"KH",name:"Cambodia",dial:"+855",flag:"\u{1F1F0}\u{1F1ED}",digits:9,format:"## ### ####",continent:"AS",capital:"Phnom Penh",currency:"KHR",languages:["km"]},{code:"CM",name:"Cameroon",dial:"+237",flag:"\u{1F1E8}\u{1F1F2}",digits:9,format:"#### #####",continent:"AF",capital:"Yaound\xE9",currency:"XAF",languages:["en","fr"]},{code:"CA",name:"Canada",dial:"+1",flag:"\u{1F1E8}\u{1F1E6}",digits:10,format:"### ### ####",continent:"NA",capital:"Ottawa",currency:"CAD",languages:["en","fr"]},{code:"KY",name:"Cayman Islands",dial:"+1345",flag:"\u{1F1F0}\u{1F1FE}",digits:7,format:"### ####",continent:"NA",capital:"George Town",currency:"KYD",languages:["en"]},{code:"CF",name:"Central African Republic",dial:"+236",flag:"\u{1F1E8}\u{1F1EB}",digits:8,format:"## ## ## ##",continent:"AF",capital:"Bangui",currency:"XAF",languages:["fr","sg"]},{code:"TD",name:"Chad",dial:"+235",flag:"\u{1F1F9}\u{1F1E9}",digits:8,format:"## ## ## ##",continent:"AF",capital:"N'Djamena",currency:"XAF",languages:["fr","ar"]},{code:"CL",name:"Chile",dial:"+56",flag:"\u{1F1E8}\u{1F1F1}",digits:9,format:"# #### ####",continent:"SA",capital:"Santiago",currency:"CLP",languages:["es"]},{code:"CN",name:"China",dial:"+86",flag:"\u{1F1E8}\u{1F1F3}",digits:11,format:"### #### ####",continent:"AS",capital:"Beijing",currency:"CNY",languages:["zh"]},{code:"CX",name:"Christmas Island",dial:"+61",flag:"\u{1F1E8}\u{1F1FD}",digits:9,format:"### ### ###",continent:"AS",capital:"Flying Fish Cove",currency:"AUD",languages:["en"]},{code:"CC",name:"Cocos (Keeling) Islands",dial:"+61",flag:"\u{1F1E8}\u{1F1E8}",digits:9,format:"### ### ###",continent:"AS",capital:"West Island",currency:"AUD",languages:["en"]},{code:"CO",name:"Colombia",dial:"+57",flag:"\u{1F1E8}\u{1F1F4}",digits:10,format:"### ### ####",continent:"SA",capital:"Bogot\xE1",currency:"COP",languages:["es"]},{code:"KM",name:"Comoros",dial:"+269",flag:"\u{1F1F0}\u{1F1F2}",digits:7,format:"### ## ##",continent:"AF",capital:"Moroni",currency:"KMF",languages:["ar","fr"]},{code:"CG",name:"Congo",dial:"+242",flag:"\u{1F1E8}\u{1F1EC}",digits:9,format:"## ### ####",continent:"AF",capital:"Brazzaville",currency:"XAF",languages:["fr","ln"]},{code:"CD",name:"Congo (DRC)",dial:"+243",flag:"\u{1F1E8}\u{1F1E9}",digits:9,format:"### ### ###",continent:"AF",capital:"Kinshasa",currency:"CDF",languages:["fr","ln","kg","sw","lu"]},{code:"CK",name:"Cook Islands",dial:"+682",flag:"\u{1F1E8}\u{1F1F0}",digits:5,format:"#####",continent:"OC",capital:"Avarua",currency:"NZD",languages:["en"]},{code:"CR",name:"Costa Rica",dial:"+506",flag:"\u{1F1E8}\u{1F1F7}",digits:8,format:"#### ####",continent:"NA",capital:"San Jos\xE9",currency:"CRC",languages:["es"]},{code:"HR",name:"Croatia",dial:"+385",flag:"\u{1F1ED}\u{1F1F7}",digits:9,format:"## ### ####",continent:"EU",capital:"Zagreb",currency:"EUR",languages:["hr"]},{code:"CU",name:"Cuba",dial:"+53",flag:"\u{1F1E8}\u{1F1FA}",digits:8,format:"# ### ####",continent:"NA",capital:"Havana",currency:"CUP",languages:["es"]},{code:"CW",name:"Cura\xE7ao",dial:"+599",flag:"\u{1F1E8}\u{1F1FC}",digits:7,format:"### ####",continent:"NA",capital:"Willemstad",currency:"ANG",languages:["nl","pa","en"]},{code:"CY",name:"Cyprus",dial:"+357",flag:"\u{1F1E8}\u{1F1FE}",digits:8,format:"## ######",continent:"EU",capital:"Nicosia",currency:"EUR",languages:["el","tr","hy"]},{code:"CZ",name:"Czech Republic",dial:"+420",flag:"\u{1F1E8}\u{1F1FF}",digits:9,format:"### ### ###",continent:"EU",capital:"Prague",currency:"CZK",languages:["cs"]},{code:"DK",name:"Denmark",dial:"+45",flag:"\u{1F1E9}\u{1F1F0}",digits:8,format:"## ## ## ##",continent:"EU",capital:"Copenhagen",currency:"DKK",languages:["da"]},{code:"DJ",name:"Djibouti",dial:"+253",flag:"\u{1F1E9}\u{1F1EF}",digits:8,format:"## ## ## ##",continent:"AF",capital:"Djibouti",currency:"DJF",languages:["fr","ar"]},{code:"DM",name:"Dominica",dial:"+1767",flag:"\u{1F1E9}\u{1F1F2}",digits:7,format:"### ####",continent:"NA",capital:"Roseau",currency:"XCD",languages:["en"]},{code:"DO",name:"Dominican Republic",dial:"+1809",flag:"\u{1F1E9}\u{1F1F4}",digits:7,format:"### ####",continent:"NA",capital:"Santo Domingo",currency:"DOP",languages:["es"]},{code:"EC",name:"Ecuador",dial:"+593",flag:"\u{1F1EA}\u{1F1E8}",digits:9,format:"## ### ####",continent:"SA",capital:"Quito",currency:"USD",languages:["es"]},{code:"EG",name:"Egypt",dial:"+20",flag:"\u{1F1EA}\u{1F1EC}",digits:10,format:"### ### ####",continent:"AF",capital:"Cairo",currency:"EGP",languages:["ar"]},{code:"SV",name:"El Salvador",dial:"+503",flag:"\u{1F1F8}\u{1F1FB}",digits:8,format:"#### ####",continent:"NA",capital:"San Salvador",currency:"USD",languages:["es"]},{code:"GQ",name:"Equatorial Guinea",dial:"+240",flag:"\u{1F1EC}\u{1F1F6}",digits:9,format:"## ### ####",continent:"AF",capital:"Malabo",currency:"XAF",languages:["es","fr"]},{code:"ER",name:"Eritrea",dial:"+291",flag:"\u{1F1EA}\u{1F1F7}",digits:7,format:"# ### ###",continent:"AF",capital:"Asmara",currency:"ERN",languages:["ti","ar","en"]},{code:"EE",name:"Estonia",dial:"+372",flag:"\u{1F1EA}\u{1F1EA}",digits:8,format:"#### ####",continent:"EU",capital:"Tallinn",currency:"EUR",languages:["et"]},{code:"SZ",name:"Eswatini",dial:"+268",flag:"\u{1F1F8}\u{1F1FF}",digits:8,format:"#### ####",continent:"AF",capital:"Lobamba",currency:"SZL",languages:["en","ss"]},{code:"ET",name:"Ethiopia",dial:"+251",flag:"\u{1F1EA}\u{1F1F9}",digits:9,format:"## ### ####",continent:"AF",capital:"Addis Ababa",currency:"ETB",languages:["am"]},{code:"FK",name:"Falkland Islands",dial:"+500",flag:"\u{1F1EB}\u{1F1F0}",digits:5,format:"#####",continent:"SA",capital:"Stanley",currency:"FKP",languages:["en"]},{code:"FO",name:"Faroe Islands",dial:"+298",flag:"\u{1F1EB}\u{1F1F4}",digits:6,format:"######",continent:"EU",capital:"T\xF3rshavn",currency:"DKK",languages:["fo"]},{code:"FJ",name:"Fiji",dial:"+679",flag:"\u{1F1EB}\u{1F1EF}",digits:7,format:"### ####",continent:"OC",capital:"Suva",currency:"FJD",languages:["en","fj","hi","ur"]},{code:"FI",name:"Finland",dial:"+358",flag:"\u{1F1EB}\u{1F1EE}",digits:10,format:"## ### ## ###",continent:"EU",capital:"Helsinki",currency:"EUR",languages:["fi","sv"]},{code:"FR",name:"France",dial:"+33",flag:"\u{1F1EB}\u{1F1F7}",digits:9,format:"# ## ## ## ##",continent:"EU",capital:"Paris",currency:"EUR",languages:["fr"]},{code:"GF",name:"French Guiana",dial:"+594",flag:"\u{1F1EC}\u{1F1EB}",digits:9,format:"### ## ## ##",continent:"SA",capital:"Cayenne",currency:"EUR",languages:["fr"]},{code:"PF",name:"French Polynesia",dial:"+689",flag:"\u{1F1F5}\u{1F1EB}",digits:8,format:"## ## ## ##",continent:"OC",capital:"Papeet\u0113",currency:"XPF",languages:["fr"]},{code:"GA",name:"Gabon",dial:"+241",flag:"\u{1F1EC}\u{1F1E6}",digits:8,format:"## ## ## ##",continent:"AF",capital:"Libreville",currency:"XAF",languages:["fr"]},{code:"GM",name:"Gambia",dial:"+220",flag:"\u{1F1EC}\u{1F1F2}",digits:7,format:"### ####",continent:"AF",capital:"Banjul",currency:"GMD",languages:["en"]},{code:"GE",name:"Georgia",dial:"+995",flag:"\u{1F1EC}\u{1F1EA}",digits:9,format:"### ## ## ##",continent:"AS",capital:"Tbilisi",currency:"GEL",languages:["ka"]},{code:"DE",name:"Germany",dial:"+49",flag:"\u{1F1E9}\u{1F1EA}",digits:11,format:"### ## ## ####",continent:"EU",capital:"Berlin",currency:"EUR",languages:["de"]},{code:"GH",name:"Ghana",dial:"+233",flag:"\u{1F1EC}\u{1F1ED}",digits:9,format:"## ### ####",continent:"AF",capital:"Accra",currency:"GHS",languages:["en"]},{code:"GI",name:"Gibraltar",dial:"+350",flag:"\u{1F1EC}\u{1F1EE}",digits:8,format:"#### ####",continent:"EU",capital:"Gibraltar",currency:"GIP",languages:["en"]},{code:"GR",name:"Greece",dial:"+30",flag:"\u{1F1EC}\u{1F1F7}",digits:10,format:"### ### ####",continent:"EU",capital:"Athens",currency:"EUR",languages:["el"]},{code:"GL",name:"Greenland",dial:"+299",flag:"\u{1F1EC}\u{1F1F1}",digits:6,format:"## ## ##",continent:"NA",capital:"Nuuk",currency:"DKK",languages:["kl"]},{code:"GD",name:"Grenada",dial:"+1473",flag:"\u{1F1EC}\u{1F1E9}",digits:7,format:"### ####",continent:"NA",capital:"St. George's",currency:"XCD",languages:["en"]},{code:"GP",name:"Guadeloupe",dial:"+590",flag:"\u{1F1EC}\u{1F1F5}",digits:9,format:"### ## ## ##",continent:"NA",capital:"Basse-Terre",currency:"EUR",languages:["fr"]},{code:"GU",name:"Guam",dial:"+1671",flag:"\u{1F1EC}\u{1F1FA}",digits:7,format:"### ####",continent:"OC",capital:"Hag\xE5t\xF1a",currency:"USD",languages:["en","ch","es"]},{code:"GT",name:"Guatemala",dial:"+502",flag:"\u{1F1EC}\u{1F1F9}",digits:8,format:"#### ####",continent:"NA",capital:"Guatemala City",currency:"GTQ",languages:["es"]},{code:"GG",name:"Guernsey",dial:"+44",flag:"\u{1F1EC}\u{1F1EC}",digits:10,format:"#### ######",continent:"EU",capital:"St. Peter Port",currency:"GBP",languages:["en","fr"]},{code:"GN",name:"Guinea",dial:"+224",flag:"\u{1F1EC}\u{1F1F3}",digits:9,format:"### ## ## ##",continent:"AF",capital:"Conakry",currency:"GNF",languages:["fr","ff"]},{code:"GW",name:"Guinea-Bissau",dial:"+245",flag:"\u{1F1EC}\u{1F1FC}",digits:7,format:"### ####",continent:"AF",capital:"Bissau",currency:"XOF",languages:["pt"]},{code:"GY",name:"Guyana",dial:"+592",flag:"\u{1F1EC}\u{1F1FE}",digits:7,format:"### ####",continent:"SA",capital:"Georgetown",currency:"GYD",languages:["en"]},{code:"HT",name:"Haiti",dial:"+509",flag:"\u{1F1ED}\u{1F1F9}",digits:8,format:"#### ####",continent:"NA",capital:"Port-au-Prince",currency:"HTG",languages:["fr","ht"]},{code:"HN",name:"Honduras",dial:"+504",flag:"\u{1F1ED}\u{1F1F3}",digits:8,format:"#### ####",continent:"NA",capital:"Tegucigalpa",currency:"HNL",languages:["es"]},{code:"HK",name:"Hong Kong",dial:"+852",flag:"\u{1F1ED}\u{1F1F0}",digits:8,format:"#### ####",continent:"AS",capital:"City of Victoria",currency:"HKD",languages:["zh","en"]},{code:"HU",name:"Hungary",dial:"+36",flag:"\u{1F1ED}\u{1F1FA}",digits:9,format:"## ### ####",continent:"EU",capital:"Budapest",currency:"HUF",languages:["hu"]},{code:"IS",name:"Iceland",dial:"+354",flag:"\u{1F1EE}\u{1F1F8}",digits:7,format:"### ####",continent:"EU",capital:"Reykjavik",currency:"ISK",languages:["is"]},{code:"IN",name:"India",dial:"+91",flag:"\u{1F1EE}\u{1F1F3}",digits:10,format:"##### #####",continent:"AS",capital:"New Delhi",currency:"INR",languages:["hi","en"]},{code:"ID",name:"Indonesia",dial:"+62",flag:"\u{1F1EE}\u{1F1E9}",digits:11,format:"### #### #####",continent:"AS",capital:"Jakarta",currency:"IDR",languages:["id"]},{code:"IR",name:"Iran",dial:"+98",flag:"\u{1F1EE}\u{1F1F7}",digits:10,format:"### ### ####",continent:"AS",capital:"Tehran",currency:"IRR",languages:["fa"]},{code:"IQ",name:"Iraq",dial:"+964",flag:"\u{1F1EE}\u{1F1F6}",digits:10,format:"### ### ####",continent:"AS",capital:"Baghdad",currency:"IQD",languages:["ar","ku"]},{code:"IE",name:"Ireland",dial:"+353",flag:"\u{1F1EE}\u{1F1EA}",digits:9,format:"## ### ####",continent:"EU",capital:"Dublin",currency:"EUR",languages:["ga","en"]},{code:"IM",name:"Isle of Man",dial:"+44",flag:"\u{1F1EE}\u{1F1F2}",digits:10,format:"#### ######",continent:"EU",capital:"Douglas",currency:"GBP",languages:["en","gv"]},{code:"IL",name:"Israel",dial:"+972",flag:"\u{1F1EE}\u{1F1F1}",digits:9,format:"## ### ####",continent:"AS",capital:"Jerusalem",currency:"ILS",languages:["he","ar"]},{code:"IT",name:"Italy",dial:"+39",flag:"\u{1F1EE}\u{1F1F9}",digits:10,format:"### ### ####",continent:"EU",capital:"Rome",currency:"EUR",languages:["it"]},{code:"JM",name:"Jamaica",dial:"+1876",flag:"\u{1F1EF}\u{1F1F2}",digits:7,format:"### ####",continent:"NA",capital:"Kingston",currency:"JMD",languages:["en"]},{code:"JP",name:"Japan",dial:"+81",flag:"\u{1F1EF}\u{1F1F5}",digits:10,format:"## #### ####",continent:"AS",capital:"Tokyo",currency:"JPY",languages:["ja"]},{code:"JE",name:"Jersey",dial:"+44",flag:"\u{1F1EF}\u{1F1EA}",digits:10,format:"#### ######",continent:"EU",capital:"Saint Helier",currency:"GBP",languages:["en","fr"]},{code:"JO",name:"Jordan",dial:"+962",flag:"\u{1F1EF}\u{1F1F4}",digits:9,format:"# ### ####",continent:"AS",capital:"Amman",currency:"JOD",languages:["ar"]},{code:"KZ",name:"Kazakhstan",dial:"+7",flag:"\u{1F1F0}\u{1F1FF}",digits:10,format:"### ### ## ##",continent:"AS",capital:"Astana",currency:"KZT",languages:["kk","ru"]},{code:"KE",name:"Kenya",dial:"+254",flag:"\u{1F1F0}\u{1F1EA}",digits:9,format:"### ######",continent:"AF",capital:"Nairobi",currency:"KES",languages:["en","sw"]},{code:"KI",name:"Kiribati",dial:"+686",flag:"\u{1F1F0}\u{1F1EE}",digits:5,format:"#####",continent:"OC",capital:"South Tarawa",currency:"AUD",languages:["en"]},{code:"XK",name:"Kosovo",dial:"+383",flag:"\u{1F1FD}\u{1F1F0}",digits:8,format:"## ### ###",continent:"EU",capital:"Pristina",currency:"EUR",languages:["sq","sr"]},{code:"KW",name:"Kuwait",dial:"+965",flag:"\u{1F1F0}\u{1F1FC}",digits:8,format:"#### ####",continent:"AS",capital:"Kuwait City",currency:"KWD",languages:["ar"]},{code:"KG",name:"Kyrgyzstan",dial:"+996",flag:"\u{1F1F0}\u{1F1EC}",digits:9,format:"### ## ## ##",continent:"AS",capital:"Bishkek",currency:"KGS",languages:["ky","ru"]},{code:"LA",name:"Laos",dial:"+856",flag:"\u{1F1F1}\u{1F1E6}",digits:9,format:"## ## ### ##",continent:"AS",capital:"Vientiane",currency:"LAK",languages:["lo"]},{code:"LV",name:"Latvia",dial:"+371",flag:"\u{1F1F1}\u{1F1FB}",digits:8,format:"## ### ###",continent:"EU",capital:"Riga",currency:"EUR",languages:["lv"]},{code:"LB",name:"Lebanon",dial:"+961",flag:"\u{1F1F1}\u{1F1E7}",digits:8,format:"## ### ###",continent:"AS",capital:"Beirut",currency:"LBP",languages:["ar","fr"]},{code:"LS",name:"Lesotho",dial:"+266",flag:"\u{1F1F1}\u{1F1F8}",digits:8,format:"## ## ## ##",continent:"AF",capital:"Maseru",currency:"LSL",languages:["en","st"]},{code:"LR",name:"Liberia",dial:"+231",flag:"\u{1F1F1}\u{1F1F7}",digits:8,format:"## ### ###",continent:"AF",capital:"Monrovia",currency:"LRD",languages:["en"]},{code:"LY",name:"Libya",dial:"+218",flag:"\u{1F1F1}\u{1F1FE}",digits:9,format:"## ### ## ##",continent:"AF",capital:"Tripoli",currency:"LYD",languages:["ar"]},{code:"LI",name:"Liechtenstein",dial:"+423",flag:"\u{1F1F1}\u{1F1EE}",digits:7,format:"### ####",continent:"EU",capital:"Vaduz",currency:"CHF",languages:["de"]},{code:"LT",name:"Lithuania",dial:"+370",flag:"\u{1F1F1}\u{1F1F9}",digits:8,format:"## ## ## ##",continent:"EU",capital:"Vilnius",currency:"EUR",languages:["lt"]},{code:"LU",name:"Luxembourg",dial:"+352",flag:"\u{1F1F1}\u{1F1FA}",digits:9,format:"## ## ## ###",continent:"EU",capital:"Luxembourg",currency:"EUR",languages:["fr","de","lb"]},{code:"MO",name:"Macao",dial:"+853",flag:"\u{1F1F2}\u{1F1F4}",digits:8,format:"#### ####",continent:"AS",capital:"",currency:"MOP",languages:["zh","pt"]},{code:"MG",name:"Madagascar",dial:"+261",flag:"\u{1F1F2}\u{1F1EC}",digits:9,format:"## ## ### ##",continent:"AF",capital:"Antananarivo",currency:"MGA",languages:["fr","mg"]},{code:"MW",name:"Malawi",dial:"+265",flag:"\u{1F1F2}\u{1F1FC}",digits:9,format:"### ## ## ##",continent:"AF",capital:"Lilongwe",currency:"MWK",languages:["en","ny"]},{code:"MY",name:"Malaysia",dial:"+60",flag:"\u{1F1F2}\u{1F1FE}",digits:10,format:"##-#### ####",continent:"AS",capital:"Kuala Lumpur",currency:"MYR",languages:["ms"]},{code:"MV",name:"Maldives",dial:"+960",flag:"\u{1F1F2}\u{1F1FB}",digits:7,format:"### ####",continent:"AS",capital:"Mal\xE9",currency:"MVR",languages:["dv"]},{code:"ML",name:"Mali",dial:"+223",flag:"\u{1F1F2}\u{1F1F1}",digits:8,format:"## ## ## ##",continent:"AF",capital:"Bamako",currency:"XOF",languages:["fr"]},{code:"MT",name:"Malta",dial:"+356",flag:"\u{1F1F2}\u{1F1F9}",digits:8,format:"## ## ## ##",continent:"EU",capital:"Valletta",currency:"EUR",languages:["mt","en"]},{code:"MH",name:"Marshall Islands",dial:"+692",flag:"\u{1F1F2}\u{1F1ED}",digits:7,format:"### ####",continent:"OC",capital:"Majuro",currency:"USD",languages:["en","mh"]},{code:"MQ",name:"Martinique",dial:"+596",flag:"\u{1F1F2}\u{1F1F6}",digits:9,format:"### ## ## ##",continent:"NA",capital:"Fort-de-France",currency:"EUR",languages:["fr"]},{code:"MR",name:"Mauritania",dial:"+222",flag:"\u{1F1F2}\u{1F1F7}",digits:8,format:"## ## ## ##",continent:"AF",capital:"Nouakchott",currency:"MRU",languages:["ar"]},{code:"MU",name:"Mauritius",dial:"+230",flag:"\u{1F1F2}\u{1F1FA}",digits:8,format:"#### ####",continent:"AF",capital:"Port Louis",currency:"MUR",languages:["en"]},{code:"YT",name:"Mayotte",dial:"+262",flag:"\u{1F1FE}\u{1F1F9}",digits:9,format:"### ## ## ##",continent:"AF",capital:"Mamoudzou",currency:"EUR",languages:["fr"]},{code:"MX",name:"Mexico",dial:"+52",flag:"\u{1F1F2}\u{1F1FD}",digits:10,format:"### ### ####",continent:"NA",capital:"Mexico City",currency:"MXN",languages:["es"]},{code:"FM",name:"Micronesia",dial:"+691",flag:"\u{1F1EB}\u{1F1F2}",digits:7,format:"### ####",continent:"OC",capital:"Palikir",currency:"USD",languages:["en"]},{code:"MD",name:"Moldova",dial:"+373",flag:"\u{1F1F2}\u{1F1E9}",digits:8,format:"## ## ## ##",continent:"EU",capital:"Chi\u0219in\u0103u",currency:"MDL",languages:["ro"]},{code:"MC",name:"Monaco",dial:"+377",flag:"\u{1F1F2}\u{1F1E8}",digits:8,format:"## ## ## ##",continent:"EU",capital:"Monaco",currency:"EUR",languages:["fr"]},{code:"MN",name:"Mongolia",dial:"+976",flag:"\u{1F1F2}\u{1F1F3}",digits:8,format:"#### ####",continent:"AS",capital:"Ulan Bator",currency:"MNT",languages:["mn"]},{code:"ME",name:"Montenegro",dial:"+382",flag:"\u{1F1F2}\u{1F1EA}",digits:8,format:"## ### ###",continent:"EU",capital:"Podgorica",currency:"EUR",languages:["sr","bs","sq","hr"]},{code:"MS",name:"Montserrat",dial:"+1664",flag:"\u{1F1F2}\u{1F1F8}",digits:7,format:"### ####",continent:"NA",capital:"Plymouth",currency:"XCD",languages:["en"]},{code:"MA",name:"Morocco",dial:"+212",flag:"\u{1F1F2}\u{1F1E6}",digits:9,format:"## ## ## ###",continent:"AF",capital:"Rabat",currency:"MAD",languages:["ar"]},{code:"MZ",name:"Mozambique",dial:"+258",flag:"\u{1F1F2}\u{1F1FF}",digits:9,format:"## ### ####",continent:"AF",capital:"Maputo",currency:"MZN",languages:["pt"]},{code:"MM",name:"Myanmar",dial:"+95",flag:"\u{1F1F2}\u{1F1F2}",digits:9,format:"## ### ####",continent:"AS",capital:"Naypyidaw",currency:"MMK",languages:["my"]},{code:"NA",name:"Namibia",dial:"+264",flag:"\u{1F1F3}\u{1F1E6}",digits:9,format:"## ### ####",continent:"AF",capital:"Windhoek",currency:"NAD",languages:["en","af"]},{code:"NR",name:"Nauru",dial:"+674",flag:"\u{1F1F3}\u{1F1F7}",digits:7,format:"### ####",continent:"OC",capital:"Yaren",currency:"AUD",languages:["en","na"]},{code:"NP",name:"Nepal",dial:"+977",flag:"\u{1F1F3}\u{1F1F5}",digits:10,format:"## ### #####",continent:"AS",capital:"Kathmandu",currency:"NPR",languages:["ne"]},{code:"NL",name:"Netherlands",dial:"+31",flag:"\u{1F1F3}\u{1F1F1}",digits:9,format:"# ## ## ## ##",continent:"EU",capital:"Amsterdam",currency:"EUR",languages:["nl"]},{code:"NC",name:"New Caledonia",dial:"+687",flag:"\u{1F1F3}\u{1F1E8}",digits:6,format:"## ## ##",continent:"OC",capital:"Noum\xE9a",currency:"XPF",languages:["fr"]},{code:"NZ",name:"New Zealand",dial:"+64",flag:"\u{1F1F3}\u{1F1FF}",digits:9,format:"## ### ####",continent:"OC",capital:"Wellington",currency:"NZD",languages:["en","mi"]},{code:"NI",name:"Nicaragua",dial:"+505",flag:"\u{1F1F3}\u{1F1EE}",digits:8,format:"#### ####",continent:"NA",capital:"Managua",currency:"NIO",languages:["es"]},{code:"NE",name:"Niger",dial:"+227",flag:"\u{1F1F3}\u{1F1EA}",digits:8,format:"## ## ## ##",continent:"AF",capital:"Niamey",currency:"XOF",languages:["fr"]},{code:"NG",name:"Nigeria",dial:"+234",flag:"\u{1F1F3}\u{1F1EC}",digits:10,format:"### ### ####",continent:"AF",capital:"Abuja",currency:"NGN",languages:["en"]},{code:"NU",name:"Niue",dial:"+683",flag:"\u{1F1F3}\u{1F1FA}",digits:4,format:"####",continent:"OC",capital:"Alofi",currency:"NZD",languages:["en"]},{code:"NF",name:"Norfolk Island",dial:"+672",flag:"\u{1F1F3}\u{1F1EB}",digits:6,format:"######",continent:"OC",capital:"Kingston",currency:"AUD",languages:["en"]},{code:"KP",name:"North Korea",dial:"+850",flag:"\u{1F1F0}\u{1F1F5}",digits:10,format:"### ### ####",continent:"AS",capital:"Pyongyang",currency:"KPW",languages:["ko"]},{code:"MK",name:"North Macedonia",dial:"+389",flag:"\u{1F1F2}\u{1F1F0}",digits:8,format:"## ### ###",continent:"EU",capital:"Skopje",currency:"MKD",languages:["mk"]},{code:"MP",name:"Northern Mariana Islands",dial:"+1670",flag:"\u{1F1F2}\u{1F1F5}",digits:7,format:"### ####",continent:"OC",capital:"Saipan",currency:"USD",languages:["en","ch"]},{code:"NO",name:"Norway",dial:"+47",flag:"\u{1F1F3}\u{1F1F4}",digits:8,format:"### ## ###",continent:"EU",capital:"Oslo",currency:"NOK",languages:["no","nb","nn"]},{code:"OM",name:"Oman",dial:"+968",flag:"\u{1F1F4}\u{1F1F2}",digits:8,format:"#### ####",continent:"AS",capital:"Muscat",currency:"OMR",languages:["ar"]},{code:"PK",name:"Pakistan",dial:"+92",flag:"\u{1F1F5}\u{1F1F0}",digits:10,format:"### ### ####",continent:"AS",capital:"Islamabad",currency:"PKR",languages:["en","ur"]},{code:"PW",name:"Palau",dial:"+680",flag:"\u{1F1F5}\u{1F1FC}",digits:7,format:"### ####",continent:"OC",capital:"Ngerulmud",currency:"USD",languages:["en"]},{code:"PS",name:"Palestine",dial:"+970",flag:"\u{1F1F5}\u{1F1F8}",digits:9,format:"## ### ####",continent:"AS",capital:"Ramallah",currency:"ILS",languages:["ar"]},{code:"PA",name:"Panama",dial:"+507",flag:"\u{1F1F5}\u{1F1E6}",digits:8,format:"#### ####",continent:"NA",capital:"Panama City",currency:"PAB",languages:["es"]},{code:"PG",name:"Papua New Guinea",dial:"+675",flag:"\u{1F1F5}\u{1F1EC}",digits:8,format:"#### ####",continent:"OC",capital:"Port Moresby",currency:"PGK",languages:["en"]},{code:"PY",name:"Paraguay",dial:"+595",flag:"\u{1F1F5}\u{1F1FE}",digits:9,format:"### ### ###",continent:"SA",capital:"Asunci\xF3n",currency:"PYG",languages:["es","gn"]},{code:"PE",name:"Peru",dial:"+51",flag:"\u{1F1F5}\u{1F1EA}",digits:9,format:"### ### ###",continent:"SA",capital:"Lima",currency:"PEN",languages:["es"]},{code:"PH",name:"Philippines",dial:"+63",flag:"\u{1F1F5}\u{1F1ED}",digits:10,format:"### ### ####",continent:"AS",capital:"Manila",currency:"PHP",languages:["en","tl"]},{code:"PN",name:"Pitcairn Islands",dial:"+870",flag:"\u{1F1F5}\u{1F1F3}",digits:9,format:"#########",continent:"OC",capital:"Adamstown",currency:"NZD",languages:["en"]},{code:"PL",name:"Poland",dial:"+48",flag:"\u{1F1F5}\u{1F1F1}",digits:9,format:"## ### ## ##",continent:"EU",capital:"Warsaw",currency:"PLN",languages:["pl"]},{code:"PT",name:"Portugal",dial:"+351",flag:"\u{1F1F5}\u{1F1F9}",digits:9,format:"### ### ###",continent:"EU",capital:"Lisbon",currency:"EUR",languages:["pt"]},{code:"PR",name:"Puerto Rico",dial:"+1787",flag:"\u{1F1F5}\u{1F1F7}",digits:7,format:"### ####",continent:"NA",capital:"San Juan",currency:"USD",languages:["es","en"]},{code:"QA",name:"Qatar",dial:"+974",flag:"\u{1F1F6}\u{1F1E6}",digits:8,format:"#### ####",continent:"AS",capital:"Doha",currency:"QAR",languages:["ar"]},{code:"RE",name:"R\xE9union",dial:"+262",flag:"\u{1F1F7}\u{1F1EA}",digits:9,format:"### ## ## ##",continent:"AF",capital:"Saint-Denis",currency:"EUR",languages:["fr"]},{code:"RO",name:"Romania",dial:"+40",flag:"\u{1F1F7}\u{1F1F4}",digits:9,format:"### ### ###",continent:"EU",capital:"Bucharest",currency:"RON",languages:["ro"]},{code:"RU",name:"Russia",dial:"+7",flag:"\u{1F1F7}\u{1F1FA}",digits:10,format:"### ###-##-##",continent:"AS",capital:"Moscow",currency:"RUB",languages:["ru"]},{code:"RW",name:"Rwanda",dial:"+250",flag:"\u{1F1F7}\u{1F1FC}",digits:9,format:"### ### ###",continent:"AF",capital:"Kigali",currency:"RWF",languages:["rw","en","fr"]},{code:"BL",name:"Saint Barth\xE9lemy",dial:"+590",flag:"\u{1F1E7}\u{1F1F1}",digits:9,format:"### ## ## ##",continent:"NA",capital:"Gustavia",currency:"EUR",languages:["fr"]},{code:"SH",name:"Saint Helena",dial:"+290",flag:"\u{1F1F8}\u{1F1ED}",digits:4,format:"####",continent:"AF",capital:"Jamestown",currency:"SHP",languages:["en"]},{code:"KN",name:"Saint Kitts & Nevis",dial:"+1869",flag:"\u{1F1F0}\u{1F1F3}",digits:7,format:"### ####",continent:"NA",capital:"Basseterre",currency:"XCD",languages:["en"]},{code:"LC",name:"Saint Lucia",dial:"+1758",flag:"\u{1F1F1}\u{1F1E8}",digits:7,format:"### ####",continent:"NA",capital:"Castries",currency:"XCD",languages:["en"]},{code:"MF",name:"Saint Martin",dial:"+590",flag:"\u{1F1F2}\u{1F1EB}",digits:9,format:"### ## ## ##",continent:"NA",capital:"Marigot",currency:"EUR",languages:["en","fr","nl"]},{code:"PM",name:"Saint Pierre & Miquelon",dial:"+508",flag:"\u{1F1F5}\u{1F1F2}",digits:6,format:"## ## ##",continent:"NA",capital:"Saint-Pierre",currency:"EUR",languages:["fr"]},{code:"VC",name:"Saint Vincent & Grenadines",dial:"+1784",flag:"\u{1F1FB}\u{1F1E8}",digits:7,format:"### ####",continent:"NA",capital:"Kingstown",currency:"XCD",languages:["en"]},{code:"WS",name:"Samoa",dial:"+685",flag:"\u{1F1FC}\u{1F1F8}",digits:7,format:"## #####",continent:"OC",capital:"Apia",currency:"WST",languages:["sm","en"]},{code:"SM",name:"San Marino",dial:"+378",flag:"\u{1F1F8}\u{1F1F2}",digits:10,format:"## ## ## ## ##",continent:"EU",capital:"City of San Marino",currency:"EUR",languages:["it"]},{code:"ST",name:"S\xE3o Tom\xE9 & Pr\xEDncipe",dial:"+239",flag:"\u{1F1F8}\u{1F1F9}",digits:7,format:"### ####",continent:"AF",capital:"S\xE3o Tom\xE9",currency:"STN",languages:["pt"]},{code:"SA",name:"Saudi Arabia",dial:"+966",flag:"\u{1F1F8}\u{1F1E6}",digits:9,format:"## ### ####",continent:"AS",capital:"Riyadh",currency:"SAR",languages:["ar"]},{code:"SN",name:"Senegal",dial:"+221",flag:"\u{1F1F8}\u{1F1F3}",digits:9,format:"## ### ## ##",continent:"AF",capital:"Dakar",currency:"XOF",languages:["fr"]},{code:"RS",name:"Serbia",dial:"+381",flag:"\u{1F1F7}\u{1F1F8}",digits:9,format:"## ### ####",continent:"EU",capital:"Belgrade",currency:"RSD",languages:["sr"]},{code:"SC",name:"Seychelles",dial:"+248",flag:"\u{1F1F8}\u{1F1E8}",digits:7,format:"# ### ###",continent:"AF",capital:"Victoria",currency:"SCR",languages:["fr","en"]},{code:"SL",name:"Sierra Leone",dial:"+232",flag:"\u{1F1F8}\u{1F1F1}",digits:8,format:"## ######",continent:"AF",capital:"Freetown",currency:"SLL",languages:["en"]},{code:"SG",name:"Singapore",dial:"+65",flag:"\u{1F1F8}\u{1F1EC}",digits:8,format:"#### ####",continent:"AS",capital:"Singapore",currency:"SGD",languages:["en","ms","ta","zh"]},{code:"SX",name:"Sint Maarten",dial:"+1721",flag:"\u{1F1F8}\u{1F1FD}",digits:7,format:"### ####",continent:"NA",capital:"Philipsburg",currency:"ANG",languages:["nl","en"]},{code:"SK",name:"Slovakia",dial:"+421",flag:"\u{1F1F8}\u{1F1F0}",digits:9,format:"### ### ###",continent:"EU",capital:"Bratislava",currency:"EUR",languages:["sk"]},{code:"SI",name:"Slovenia",dial:"+386",flag:"\u{1F1F8}\u{1F1EE}",digits:8,format:"## ### ###",continent:"EU",capital:"Ljubljana",currency:"EUR",languages:["sl"]},{code:"SB",name:"Solomon Islands",dial:"+677",flag:"\u{1F1F8}\u{1F1E7}",digits:7,format:"### ####",continent:"OC",capital:"Honiara",currency:"SBD",languages:["en"]},{code:"SO",name:"Somalia",dial:"+252",flag:"\u{1F1F8}\u{1F1F4}",digits:8,format:"## ### ###",continent:"AF",capital:"Mogadishu",currency:"SOS",languages:["so","ar"]},{code:"ZA",name:"South Africa",dial:"+27",flag:"\u{1F1FF}\u{1F1E6}",digits:9,format:"## ### ####",continent:"AF",capital:"Pretoria",currency:"ZAR",languages:["af","en","nr","st","ss","tn","ts","ve","xh","zu"]},{code:"SS",name:"South Sudan",dial:"+211",flag:"\u{1F1F8}\u{1F1F8}",digits:9,format:"### ### ###",continent:"AF",capital:"Juba",currency:"SSP",languages:["en"]},{code:"ES",name:"Spain",dial:"+34",flag:"\u{1F1EA}\u{1F1F8}",digits:9,format:"### ### ###",continent:"EU",capital:"Madrid",currency:"EUR",languages:["es","eu","ca","gl","oc"]},{code:"LK",name:"Sri Lanka",dial:"+94",flag:"\u{1F1F1}\u{1F1F0}",digits:9,format:"## ### ####",continent:"AS",capital:"Colombo",currency:"LKR",languages:["si","ta"]},{code:"SD",name:"Sudan",dial:"+249",flag:"\u{1F1F8}\u{1F1E9}",digits:9,format:"## ### ####",continent:"AF",capital:"Khartoum",currency:"SDG",languages:["ar","en"]},{code:"SR",name:"Suriname",dial:"+597",flag:"\u{1F1F8}\u{1F1F7}",digits:7,format:"### ####",continent:"SA",capital:"Paramaribo",currency:"SRD",languages:["nl"]},{code:"SE",name:"Sweden",dial:"+46",flag:"\u{1F1F8}\u{1F1EA}",digits:9,format:"## ### ## ##",continent:"EU",capital:"Stockholm",currency:"SEK",languages:["sv"]},{code:"CH",name:"Switzerland",dial:"+41",flag:"\u{1F1E8}\u{1F1ED}",digits:9,format:"## ### ## ##",continent:"EU",capital:"Bern",currency:"CHF",languages:["de","fr","it"]},{code:"SY",name:"Syria",dial:"+963",flag:"\u{1F1F8}\u{1F1FE}",digits:9,format:"### ### ###",continent:"AS",capital:"Damascus",currency:"SYP",languages:["ar"]},{code:"TW",name:"Taiwan",dial:"+886",flag:"\u{1F1F9}\u{1F1FC}",digits:9,format:"### ### ###",continent:"AS",capital:"Taipei",currency:"TWD",languages:["zh"]},{code:"TJ",name:"Tajikistan",dial:"+992",flag:"\u{1F1F9}\u{1F1EF}",digits:9,format:"## ### ####",continent:"AS",capital:"Dushanbe",currency:"TJS",languages:["tg","ru"]},{code:"TZ",name:"Tanzania",dial:"+255",flag:"\u{1F1F9}\u{1F1FF}",digits:9,format:"### ### ###",continent:"AF",capital:"Dodoma",currency:"TZS",languages:["sw","en"]},{code:"TH",name:"Thailand",dial:"+66",flag:"\u{1F1F9}\u{1F1ED}",digits:9,format:"## ### ####",continent:"AS",capital:"Bangkok",currency:"THB",languages:["th"]},{code:"TL",name:"Timor-Leste",dial:"+670",flag:"\u{1F1F9}\u{1F1F1}",digits:8,format:"#### ####",continent:"OC",capital:"Dili",currency:"USD",languages:["pt"]},{code:"TG",name:"Togo",dial:"+228",flag:"\u{1F1F9}\u{1F1EC}",digits:8,format:"## ## ## ##",continent:"AF",capital:"Lom\xE9",currency:"XOF",languages:["fr"]},{code:"TK",name:"Tokelau",dial:"+690",flag:"\u{1F1F9}\u{1F1F0}",digits:4,format:"####",continent:"OC",capital:"Fakaofo",currency:"NZD",languages:["en"]},{code:"TO",name:"Tonga",dial:"+676",flag:"\u{1F1F9}\u{1F1F4}",digits:7,format:"### ####",continent:"OC",capital:"Nuku'alofa",currency:"TOP",languages:["en","to"]},{code:"TT",name:"Trinidad & Tobago",dial:"+1868",flag:"\u{1F1F9}\u{1F1F9}",digits:7,format:"### ####",continent:"NA",capital:"Port of Spain",currency:"TTD",languages:["en"]},{code:"TN",name:"Tunisia",dial:"+216",flag:"\u{1F1F9}\u{1F1F3}",digits:8,format:"## ### ###",continent:"AF",capital:"Tunis",currency:"TND",languages:["ar"]},{code:"TR",name:"Turkey",dial:"+90",flag:"\u{1F1F9}\u{1F1F7}",digits:10,format:"### ### ## ##",continent:"AS",capital:"Ankara",currency:"TRY",languages:["tr"]},{code:"TM",name:"Turkmenistan",dial:"+993",flag:"\u{1F1F9}\u{1F1F2}",digits:8,format:"## ## ## ##",continent:"AS",capital:"Ashgabat",currency:"TMT",languages:["tk","ru"]},{code:"TC",name:"Turks & Caicos Islands",dial:"+1649",flag:"\u{1F1F9}\u{1F1E8}",digits:7,format:"### ####",continent:"NA",capital:"Cockburn Town",currency:"USD",languages:["en"]},{code:"TV",name:"Tuvalu",dial:"+688",flag:"\u{1F1F9}\u{1F1FB}",digits:5,format:"#####",continent:"OC",capital:"Funafuti",currency:"AUD",languages:["en"]},{code:"UG",name:"Uganda",dial:"+256",flag:"\u{1F1FA}\u{1F1EC}",digits:9,format:"### ### ###",continent:"AF",capital:"Kampala",currency:"UGX",languages:["en","sw"]},{code:"UA",name:"Ukraine",dial:"+380",flag:"\u{1F1FA}\u{1F1E6}",digits:9,format:"## ### ## ##",continent:"EU",capital:"Kyiv",currency:"UAH",languages:["uk"]},{code:"AE",name:"United Arab Emirates",dial:"+971",flag:"\u{1F1E6}\u{1F1EA}",digits:9,format:"## ### ####",continent:"AS",capital:"Abu Dhabi",currency:"AED",languages:["ar"]},{code:"GB",name:"United Kingdom",dial:"+44",flag:"\u{1F1EC}\u{1F1E7}",digits:10,format:"#### ######",continent:"EU",capital:"London",currency:"GBP",languages:["en"]},{code:"US",name:"United States",dial:"+1",flag:"\u{1F1FA}\u{1F1F8}",digits:10,format:"### ### ####",continent:"NA",capital:"Washington D.C.",currency:"USD",languages:["en"]},{code:"VI",name:"U.S. Virgin Islands",dial:"+1340",flag:"\u{1F1FB}\u{1F1EE}",digits:7,format:"### ####",continent:"NA",capital:"Charlotte Amalie",currency:"USD",languages:["en"]},{code:"UY",name:"Uruguay",dial:"+598",flag:"\u{1F1FA}\u{1F1FE}",digits:9,format:"## ### ## ##",continent:"SA",capital:"Montevideo",currency:"UYU",languages:["es"]},{code:"UZ",name:"Uzbekistan",dial:"+998",flag:"\u{1F1FA}\u{1F1FF}",digits:9,format:"## ### ## ##",continent:"AS",capital:"Tashkent",currency:"UZS",languages:["uz","ru"]},{code:"VU",name:"Vanuatu",dial:"+678",flag:"\u{1F1FB}\u{1F1FA}",digits:7,format:"### ####",continent:"OC",capital:"Port Vila",currency:"VUV",languages:["bi","en","fr"]},{code:"VA",name:"Vatican City",dial:"+379",flag:"\u{1F1FB}\u{1F1E6}",digits:10,format:"## #### ####",continent:"EU",capital:"Vatican City",currency:"EUR",languages:["it","la"]},{code:"VE",name:"Venezuela",dial:"+58",flag:"\u{1F1FB}\u{1F1EA}",digits:10,format:"### ### ####",continent:"SA",capital:"Caracas",currency:"VES",languages:["es"]},{code:"VN",name:"Vietnam",dial:"+84",flag:"\u{1F1FB}\u{1F1F3}",digits:10,format:"### ### ####",continent:"AS",capital:"Hanoi",currency:"VND",languages:["vi"]},{code:"WF",name:"Wallis & Futuna",dial:"+681",flag:"\u{1F1FC}\u{1F1EB}",digits:6,format:"## ## ##",continent:"OC",capital:"Mata-Utu",currency:"XPF",languages:["fr"]},{code:"EH",name:"Western Sahara",dial:"+212",flag:"\u{1F1EA}\u{1F1ED}",digits:9,format:"## ## ## ###",continent:"AF",capital:"El Aai\xFAn",currency:"MAD",languages:["es"]},{code:"YE",name:"Yemen",dial:"+967",flag:"\u{1F1FE}\u{1F1EA}",digits:9,format:"### ### ###",continent:"AS",capital:"Sana'a",currency:"YER",languages:["ar"]},{code:"ZM",name:"Zambia",dial:"+260",flag:"\u{1F1FF}\u{1F1F2}",digits:9,format:"### ### ###",continent:"AF",capital:"Lusaka",currency:"ZMW",languages:["en"]},{code:"ZW",name:"Zimbabwe",dial:"+263",flag:"\u{1F1FF}\u{1F1FC}",digits:9,format:"## ### ####",continent:"AF",capital:"Harare",currency:"USD",languages:["en","sn","nd"]}];function f(n,a){let e=n.replace(/\D/g,""),c="",t=0;for(let r=0;r<a.length&&t<e.length;r++)a[r]==="#"?c+=e[t++]:t<e.length&&(c+=a[r]);return c}function y(n,a){return n.replace(/\D/g,"").length===a.digits}function p(n){return i.find(a=>a.code.toUpperCase()===n.toUpperCase())}function A(n){return n.startsWith("+")?[...i].sort((e,c)=>c.dial.length-e.dial.length).find(e=>n.startsWith(e.dial)):void 0}function S(n,a){let e=n.replace(/\D/g,"");return`${a.dial}${e}`}function C(n){let a=n.toLowerCase().trim();return a?i.filter(e=>e.name.toLowerCase().includes(a)||e.code.toLowerCase().includes(a)||e.dial.includes(a)):i}function U(n){return n.split("").map(a=>a==="#"?/\d/:a)}function E(n){return i.filter(a=>a.continent&&a.continent.toUpperCase()===n.toUpperCase())}function D(n){return i.filter(a=>a.currency&&a.currency.toUpperCase()===n.toUpperCase())}function N(n){return i.filter(a=>a.languages&&a.languages.some(e=>e.toLowerCase()===n.toLowerCase()))}function M(){let n=new Set;return i.forEach(a=>{a.currency&&n.add(a.currency)}),Array.from(n).sort()}function F(){let n=new Set;return i.forEach(a=>{a.languages&&a.languages.forEach(e=>n.add(e))}),Array.from(n).sort()}function B(){let n=new Set;return i.forEach(a=>{a.continent&&n.add(a.continent)}),Array.from(n).sort()}0&&(module.exports={COUNTRIES,formatAsE164,formatPhone,getAllContinents,getAllCurrencies,getAllLanguages,getCountriesByContinent,getCountriesByCurrency,getCountriesByLanguage,getCountryByCode,getMaskArray,guessCountryByNumber,searchCountries,validatePhone});