diff --git a/development/src/phone-hooks/metadata/countries.json b/development/src/phone-hooks/metadata/countries.json index cde19ed..1aaad69 100644 --- a/development/src/phone-hooks/metadata/countries.json +++ b/development/src/phone-hooks/metadata/countries.json @@ -51,139 +51,217 @@ "ar", "Argentina", "5411", - "+54 (11.) ... ....." + "+54 (11) ... ... ..." ], [ "ar", "Argentina", - "54221", - "+54 (221) ... ....." + "5422", + "+54 (22.) .... ...." ], [ "ar", "Argentina", - "54223", - "+54 (223) ... ....." + "5423", + "+54 (23.) .... ...." ], [ "ar", "Argentina", - "54261", - "+54 (261) ... ....." + "5424", + "+54 (24.) .... ...." ], [ "ar", "Argentina", - "54264", - "+54 (264) ... ....." + "5425", + "+54 (25.) .... ...." ], [ "ar", "Argentina", - "542652", - "+54 (265) 2.. ....." + "5426", + "+54 (26.) .... ...." + ], + [ + "ar", + "Argentina", + "5427", + "+54 (27.) .... ...." + ], + [ + "ar", + "Argentina", + "5428", + "+54 (28.) .... ...." + ], + [ + "ar", + "Argentina", + "5429", + "+54 (29.) .... ...." + ], + [ + "ar", + "Argentina", + "5433", + "+54 (33.) .... ...." + ], + [ + "ar", + "Argentina", + "5434", + "+54 (34.) .... ...." + ], + [ + "ar", + "Argentina", + "5435", + "+54 (35.) .... ...." + ], + [ + "ar", + "Argentina", + "5436", + "+54 (36.) .... ...." + ], + [ + "ar", + "Argentina", + "5437", + "+54 (37.) .... ...." + ], + [ + "ar", + "Argentina", + "5438", + "+54 (38.) .... ...." ], [ "ar", "Argentina", - "54280", - "+54 (280) ... ....." + "542652", + "+54 (2652) .... ..." ], [ "ar", "Argentina", "542905", - "+54 (290) 5.. ....." + "+54 (2905) .... ..." ], [ "ar", "Argentina", - "54291", - "+54 (291) ... ....." + "543833", + "+54 (3833) .... ..." ], [ "ar", "Argentina", - "542920", - "+54 (292) 0.. ....." + "54911", + "+54 9 (11) ... ... ..." ], [ "ar", "Argentina", - "542966", - "+54 (296) 6.. ....." + "54922", + "+54 9 (22.) .... ...." ], [ "ar", "Argentina", - "54299", - "+54 (299) ... ....." + "54923", + "+54 9 (23.) .... ...." ], [ "ar", "Argentina", - "54341", - "+54 (341) ... ....." + "54924", + "+54 9 (24.) .... ...." ], [ "ar", "Argentina", - "54342", - "+54 (342) ... ....." + "54925", + "+54 9 (25.) .... ...." ], [ "ar", "Argentina", - "54343", - "+54 (343) ... ....." + "54926", + "+54 9 (26.) .... ...." ], [ "ar", "Argentina", - "54351", - "+54 (351) ... ....." + "54927", + "+54 9 (27.) .... ...." ], [ "ar", "Argentina", - "54376", - "+54 (376) ... ....." + "54928", + "+54 9 (28.) .... ...." ], [ "ar", "Argentina", - "54379", - "+54 (379) ... ....." + "54929", + "+54 9 (29.) .... ...." ], [ "ar", "Argentina", - "54381", - "+54 (381) ... ....." + "54933", + "+54 9 (33.) .... ...." ], [ "ar", "Argentina", - "543833", - "+54 (383) 3.. ....." + "54934", + "+54 9 (34.) .... ...." + ], + [ + "ar", + "Argentina", + "54935", + "+54 9 (35.) .... ...." + ], + [ + "ar", + "Argentina", + "54936", + "+54 9 (36.) .... ...." + ], + [ + "ar", + "Argentina", + "54937", + "+54 9 (37.) .... ...." + ], + [ + "ar", + "Argentina", + "54938", + "+54 9 (38.) .... ...." ], [ "ar", "Argentina", - "54385", - "+54 (385) ... ....." + "5492652", + "+54 9 (2652) .... ..." ], [ "ar", "Argentina", - "54387", - "+54 (387) ... ....." + "5492905", + "+54 9 (2905) .... ..." ], [ "ar", "Argentina", - "54388", - "+54 (388) ... ....." + "5493833", + "+54 9 (3833) .... ..." ], [ "am", @@ -285,7 +363,7 @@ "bd", "Bangladesh", "880", - "+880 (..) ... ....." + "+880 (..) .... ...." ], [ "bb", @@ -315,7 +393,7 @@ "bj", "Benin", "229", - "+229 (..) ... ..." + "+229 (..) .... ...." ], [ "bm", @@ -333,7 +411,7 @@ "bo", "Bolivia", "591", - "+591 (.) ... ....." + "+591 (.) .... ...." ], [ "ba", @@ -393,7 +471,7 @@ "kh", "Cambodia", "855", - "+855 (..) ... ....." + "+855 (..) .... ...." ], [ "cm", @@ -693,13 +771,13 @@ "cn", "China", "86", - "+86 (..) ..... ....." + "+86 (...) .... ....." ], [ "co", "Colombia", "57", - "+57 (...) ... ....." + "+57 (...) .... ...." ], [ "km", @@ -765,7 +843,7 @@ "ci", "C\u00f4te d\u2019Ivoire", "225", - "+225 (..) ... ....." + "+225 (..) .... ...." ], [ "dk", @@ -993,7 +1071,7 @@ "gw", "Guinea-Bissau", "245", - "+245 (.) ... ....." + "+245 (.) .... ...." ], [ "gy", @@ -1089,97 +1167,19 @@ "je", "Jersey", "44", - "+44 (..) ... ....." + "+44 (..) .... ...." ], [ "jo", "Jordan", "962", - "+962 (.) ... ....." - ], - [ - "kz", - "Kazakhstan", - "7310", - "+7 (310) ... ...." - ], - [ - "kz", - "Kazakhstan", - "7311", - "+7 (311) ... ...." - ], - [ - "kz", - "Kazakhstan", - "7312", - "+7 (312) ... ...." - ], - [ - "kz", - "Kazakhstan", - "7313", - "+7 (313) ... ...." - ], - [ - "kz", - "Kazakhstan", - "7315", - "+7 (315) ... ...." - ], - [ - "kz", - "Kazakhstan", - "7318", - "+7 (318) ... ...." - ], - [ - "kz", - "Kazakhstan", - "7321", - "+7 (321) ... ...." - ], - [ - "kz", - "Kazakhstan", - "7324", - "+7 (324) ... ...." - ], - [ - "kz", - "Kazakhstan", - "7325", - "+7 (325) ... ...." - ], - [ - "kz", - "Kazakhstan", - "7326", - "+7 (326) ... ...." - ], - [ - "kz", - "Kazakhstan", - "7327", - "+7 (327) ... ...." - ], - [ - "kz", - "Kazakhstan", - "7336", - "+7 (336) ... ...." - ], - [ - "kz", - "Kazakhstan", - "77172", - "+7 (717) 2.. ...." + "+962 (.) .... ...." ], [ "kz", "Kazakhstan", - "773622", - "+7 (736) 22. ...." + "77", + "+7 (7..) ... ...." ], [ "ke", @@ -1215,7 +1215,7 @@ "la", "Laos", "856", - "+856 (..) ... ....." + "+856 (..) .... ...." ], [ "lv", @@ -1263,7 +1263,7 @@ "lu", "Luxembourg", "352", - "+352 (...) ... ....." + "+352 (...) .... ...." ], [ "mo", @@ -1287,7 +1287,7 @@ "mw", "Malawi", "265", - "+265 (.) ... ....." + "+265 (.) .... ...." ], [ "my", @@ -1635,7 +1635,7 @@ "mn", "Mongolia", "976", - "+976 (..) ... ....." + "+976 (..) .... ...." ], [ "me", @@ -1665,7 +1665,7 @@ "mm", "Myanmar", "95", - "+95 (..) ... ....." + "+95 (..) .... ...." ], [ "na", @@ -1683,7 +1683,7 @@ "np", "Nepal", "977", - "+977 (..) ... ....." + "+977 (..) .... ...." ], [ "nl", @@ -1773,7 +1773,7 @@ "ps", "Palestine", "970", - "+970 (..) ... ....." + "+970 (..) .... ...." ], [ "pa", @@ -1881,7 +1881,7 @@ "ws", "Samoa", "685", - "+685 (..) ... ....." + "+685 (..) .... ...." ], [ "sm", @@ -1893,7 +1893,7 @@ "sa", "Saudi Arabia", "966", - "+966 (.) ... ... ..." + "+966 (.) .... ...." ], [ "sn", @@ -1959,7 +1959,7 @@ "za", "South Africa", "27", - "+27 (..) ... ....." + "+27 (..) .... ...." ], [ "kr", @@ -1977,7 +1977,7 @@ "es", "Spain", "34", - "+34 (...) .. .. .." + "+34 (...) ... ..." ], [ "lk", @@ -2061,7 +2061,7 @@ "th", "Thailand", "66", - "+66 (..) ... ....." + "+66 (..) .... ...." ], [ "tl", @@ -2103,7 +2103,7 @@ "tr", "Turkey", "90", - "+90 (...) ... .. .." + "+90 (...) ... ...." ], [ "tm", @@ -2139,13 +2139,13 @@ "ua", "Ukraine", "380", - "+380 (..) ... ....." + "+380 (..) .... ...." ], [ "ae", "United Arab Emirates", "971", - "+971 (.) ... ....." + "+971 (.) .... ...." ], [ "ae", @@ -2157,7 +2157,7 @@ "gb", "United Kingdom", "44", - "+44 (..) ... ....." + "+44 (..) .... ...." ], [ "us", diff --git a/package.json b/package.json index 8dc360d..d020518 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "version": "0.1.19", + "version": "0.1.20", "name": "react-phone-hooks", "description": "React hooks and utility functions for parsing and validating phone numbers.", "keywords": [ diff --git a/scripts/prepare-metadata/__main__.py b/scripts/prepare-metadata/__main__.py index 05b9137..aa314fb 100644 --- a/scripts/prepare-metadata/__main__.py +++ b/scripts/prepare-metadata/__main__.py @@ -13,21 +13,20 @@ def update_mask(mask, length): - length_without_cc = len(re.findall(r"[\d.]", re.sub(r"\+\d+\s", "", mask))) + length_without_cc = re.sub(r"^[^)]+\)\s", "", mask).count(".") if length_without_cc != length: - cc_mask = re.match(r"(\+\d+)\s", mask).group(1) - ac_mask = re.match(r"\+\d+\s(?:(\S+)\s)?", mask).group(1) or "" - ac_mask_length = len(re.findall(r"[\d.]", ac_mask)) - pn_mask_expected_length = length - ac_mask_length - pn_mask_prefix = re.sub(r"\+\d+\s(?:\S+\s)?", "", mask).split()[0] + cc_mask = re.match(r"(\+[^(]+)\s", mask).group(1) + ac_mask = re.match(r"\+[^(]+(?:(\S+)\s)?", mask).group(1) or "" + pn_mask_prefix = re.sub(r"\+[^(]+(?:\S+\s)?", "", mask).split()[0] + pn_mask_expected_length = length - len(re.findall(r"[\d.]", ac_mask)) - len(re.findall(r"\d", pn_mask_prefix)) pn_mask_parts = [pn_mask_prefix] while len("".join(pn_mask_parts)) < pn_mask_expected_length: pn_mask_parts.append("." * len(pn_mask_prefix)) pn_mask = " ".join(pn_mask_parts) - while len(pn_mask.replace(" ", "")) > pn_mask_expected_length: + while pn_mask.count(".") > pn_mask_expected_length: pn_mask = pn_mask[:-1] mask = f"{cc_mask} {ac_mask} {pn_mask}" if ac_mask else f"{cc_mask} {pn_mask}" - return re.sub(r"\s(\.)$", r"\1", mask) + return re.sub(r"\s(\.{1,2})$", r"\1", mask) with open(patterns_path) as fp: diff --git a/src/metadata/countries.json b/src/metadata/countries.json index 53c8525..1aaad69 100644 --- a/src/metadata/countries.json +++ b/src/metadata/countries.json @@ -51,139 +51,217 @@ "ar", "Argentina", "5411", - "+54 (11.) ... ....." + "+54 (11) ... ... ..." ], [ "ar", "Argentina", - "54221", - "+54 (221) ... ....." + "5422", + "+54 (22.) .... ...." ], [ "ar", "Argentina", - "54223", - "+54 (223) ... ....." + "5423", + "+54 (23.) .... ...." ], [ "ar", "Argentina", - "54261", - "+54 (261) ... ....." + "5424", + "+54 (24.) .... ...." ], [ "ar", "Argentina", - "54264", - "+54 (264) ... ....." + "5425", + "+54 (25.) .... ...." ], [ "ar", "Argentina", - "542652", - "+54 (265) 2.. ....." + "5426", + "+54 (26.) .... ...." + ], + [ + "ar", + "Argentina", + "5427", + "+54 (27.) .... ...." + ], + [ + "ar", + "Argentina", + "5428", + "+54 (28.) .... ...." + ], + [ + "ar", + "Argentina", + "5429", + "+54 (29.) .... ...." + ], + [ + "ar", + "Argentina", + "5433", + "+54 (33.) .... ...." + ], + [ + "ar", + "Argentina", + "5434", + "+54 (34.) .... ...." + ], + [ + "ar", + "Argentina", + "5435", + "+54 (35.) .... ...." + ], + [ + "ar", + "Argentina", + "5436", + "+54 (36.) .... ...." + ], + [ + "ar", + "Argentina", + "5437", + "+54 (37.) .... ...." + ], + [ + "ar", + "Argentina", + "5438", + "+54 (38.) .... ...." ], [ "ar", "Argentina", - "54280", - "+54 (280) ... ....." + "542652", + "+54 (2652) .... ..." ], [ "ar", "Argentina", "542905", - "+54 (290) 5.. ....." + "+54 (2905) .... ..." ], [ "ar", "Argentina", - "54291", - "+54 (291) ... ....." + "543833", + "+54 (3833) .... ..." ], [ "ar", "Argentina", - "542920", - "+54 (292) 0.. ....." + "54911", + "+54 9 (11) ... ... ..." ], [ "ar", "Argentina", - "542966", - "+54 (296) 6.. ....." + "54922", + "+54 9 (22.) .... ...." ], [ "ar", "Argentina", - "54299", - "+54 (299) ... ....." + "54923", + "+54 9 (23.) .... ...." ], [ "ar", "Argentina", - "54341", - "+54 (341) ... ....." + "54924", + "+54 9 (24.) .... ...." ], [ "ar", "Argentina", - "54342", - "+54 (342) ... ....." + "54925", + "+54 9 (25.) .... ...." ], [ "ar", "Argentina", - "54343", - "+54 (343) ... ....." + "54926", + "+54 9 (26.) .... ...." ], [ "ar", "Argentina", - "54351", - "+54 (351) ... ....." + "54927", + "+54 9 (27.) .... ...." ], [ "ar", "Argentina", - "54376", - "+54 (376) ... ....." + "54928", + "+54 9 (28.) .... ...." ], [ "ar", "Argentina", - "54379", - "+54 (379) ... ....." + "54929", + "+54 9 (29.) .... ...." ], [ "ar", "Argentina", - "54381", - "+54 (381) ... ....." + "54933", + "+54 9 (33.) .... ...." ], [ "ar", "Argentina", - "543833", - "+54 (383) 3.. ....." + "54934", + "+54 9 (34.) .... ...." + ], + [ + "ar", + "Argentina", + "54935", + "+54 9 (35.) .... ...." + ], + [ + "ar", + "Argentina", + "54936", + "+54 9 (36.) .... ...." + ], + [ + "ar", + "Argentina", + "54937", + "+54 9 (37.) .... ...." + ], + [ + "ar", + "Argentina", + "54938", + "+54 9 (38.) .... ...." ], [ "ar", "Argentina", - "54385", - "+54 (385) ... ....." + "5492652", + "+54 9 (2652) .... ..." ], [ "ar", "Argentina", - "54387", - "+54 (387) ... ....." + "5492905", + "+54 9 (2905) .... ..." ], [ "ar", "Argentina", - "54388", - "+54 (388) ... ....." + "5493833", + "+54 9 (3833) .... ..." ], [ "am", @@ -285,7 +363,7 @@ "bd", "Bangladesh", "880", - "+880 (..) ... ....." + "+880 (..) .... ...." ], [ "bb", @@ -315,7 +393,7 @@ "bj", "Benin", "229", - "+229 (..) ... ... .." + "+229 (..) .... ...." ], [ "bm", @@ -333,7 +411,7 @@ "bo", "Bolivia", "591", - "+591 (.) ... ....." + "+591 (.) .... ...." ], [ "ba", @@ -393,7 +471,7 @@ "kh", "Cambodia", "855", - "+855 (..) ... ....." + "+855 (..) .... ...." ], [ "cm", @@ -699,7 +777,7 @@ "co", "Colombia", "57", - "+57 (...) ... ....." + "+57 (...) .... ...." ], [ "km", @@ -765,7 +843,7 @@ "ci", "C\u00f4te d\u2019Ivoire", "225", - "+225 (..) ... ....." + "+225 (..) .... ...." ], [ "dk", @@ -993,7 +1071,7 @@ "gw", "Guinea-Bissau", "245", - "+245 (.) ... ....." + "+245 (.) .... ...." ], [ "gy", @@ -1089,13 +1167,13 @@ "je", "Jersey", "44", - "+44 (..) ... ....." + "+44 (..) .... ...." ], [ "jo", "Jordan", "962", - "+962 (.) ... ....." + "+962 (.) .... ...." ], [ "kz", @@ -1137,7 +1215,7 @@ "la", "Laos", "856", - "+856 (..) ... ....." + "+856 (..) .... ...." ], [ "lv", @@ -1185,7 +1263,7 @@ "lu", "Luxembourg", "352", - "+352 (...) ... ....." + "+352 (...) .... ...." ], [ "mo", @@ -1209,7 +1287,7 @@ "mw", "Malawi", "265", - "+265 (.) ... ....." + "+265 (.) .... ...." ], [ "my", @@ -1557,7 +1635,7 @@ "mn", "Mongolia", "976", - "+976 (..) ... ....." + "+976 (..) .... ...." ], [ "me", @@ -1587,7 +1665,7 @@ "mm", "Myanmar", "95", - "+95 (..) ... ....." + "+95 (..) .... ...." ], [ "na", @@ -1605,7 +1683,7 @@ "np", "Nepal", "977", - "+977 (..) ... ....." + "+977 (..) .... ...." ], [ "nl", @@ -1695,7 +1773,7 @@ "ps", "Palestine", "970", - "+970 (..) ... ....." + "+970 (..) .... ...." ], [ "pa", @@ -1803,7 +1881,7 @@ "ws", "Samoa", "685", - "+685 (..) ... ....." + "+685 (..) .... ...." ], [ "sm", @@ -1815,7 +1893,7 @@ "sa", "Saudi Arabia", "966", - "+966 (.) ... ... .." + "+966 (.) .... ...." ], [ "sn", @@ -1881,7 +1959,7 @@ "za", "South Africa", "27", - "+27 (..) ... ....." + "+27 (..) .... ...." ], [ "kr", @@ -1899,7 +1977,7 @@ "es", "Spain", "34", - "+34 (...) .. .. .." + "+34 (...) ... ..." ], [ "lk", @@ -1983,7 +2061,7 @@ "th", "Thailand", "66", - "+66 (..) ... ....." + "+66 (..) .... ...." ], [ "tl", @@ -2025,7 +2103,7 @@ "tr", "Turkey", "90", - "+90 (...) ... .. .." + "+90 (...) ... ...." ], [ "tm", @@ -2061,13 +2139,13 @@ "ua", "Ukraine", "380", - "+380 (..) ... ....." + "+380 (..) .... ...." ], [ "ae", "United Arab Emirates", "971", - "+971 (.) ... ....." + "+971 (.) .... ...." ], [ "ae", @@ -2079,7 +2157,7 @@ "gb", "United Kingdom", "44", - "+44 (..) ... ....." + "+44 (..) .... ...." ], [ "us",