tele_number_utils 1.0.6 → 1.0.8

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.
@@ -1 +1 @@
1
- {"version":3,"file":"getCountry.d.ts","sourceRoot":"","sources":["../../src/country/getCountry.ts"],"names":[],"mappings":"AA6BA,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAuEF,oBAAoB;AACpB,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,KAAG,OAuB3C,CAAC"}
1
+ {"version":3,"file":"getCountry.d.ts","sourceRoot":"","sources":["../../src/country/getCountry.ts"],"names":[],"mappings":"AA8BA,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAkFF,oBAAoB;AACpB,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,KAAG,OA0B3C,CAAC"}
@@ -1,12 +1,22 @@
1
1
  import { parsePhoneNumber } from "../parsed";
2
2
  import { country_list } from "./country";
3
- import { UK_COUNTRY_CODE, UK_DEPENDENCIES, CANADIAN_AREA_CODES, US_CANADA_COUNTRY_CODE, PUERTO_RICO_COUNTRY_CODE, AMERICAN_SAMOA_AREA_CODE, ANGUILLA_AREA_CODE, ANTIGUA_AND_BARBUDA_AREA_CODE, BAHAMAS_AREA_CODE, BARBADOS_AREA_CODE, BERMUDA_AREA_CODE, BRITISH_VIRGIN_ISLANDS_AREA_CODE, CAYMAN_ISLANDS_AREA_CODE, DOMINICAN_REPUBLIC_AREA_CODE, GRENADA_AREA_CODE, JAMAICA_AREA_CODE, MONTSERRAT_AREA_CODE, SAINT_KITTS_AND_NEVIS_AREA_CODE, SAINT_LUCIA_AREA_CODE, SAINT_VINCENT_AND_THE_GRENADINES_AREA_CODE, SINT_MAARTEN_AREA_CODE, TRINIDAD_AND_TOBAGO_AREA_CODE, TURKS_AND_CAICOS_ISLANDS_AREA_CODE, UNITED_STATES_VIRGIN_ISLANDS_AREA_CODE, } from "./util";
3
+ import { UK_COUNTRY_CODE, UK_DEPENDENCIES, CANADIAN_AREA_CODES, US_CANADA_COUNTRY_CODE, PUERTO_RICO_COUNTRY_CODE, AMERICAN_SAMOA_AREA_CODE, ANGUILLA_AREA_CODE, ANTIGUA_AND_BARBUDA_AREA_CODE, BAHAMAS_AREA_CODE, BARBADOS_AREA_CODE, BERMUDA_AREA_CODE, BRITISH_VIRGIN_ISLANDS_AREA_CODE, CAYMAN_ISLANDS_AREA_CODE, DOMINICAN_REPUBLIC_AREA_CODE, GRENADA_AREA_CODE, JAMAICA_AREA_CODE, MONTSERRAT_AREA_CODE, SAINT_KITTS_AND_NEVIS_AREA_CODE, SAINT_LUCIA_AREA_CODE, SAINT_VINCENT_AND_THE_GRENADINES_AREA_CODE, SINT_MAARTEN_AREA_CODE, TRINIDAD_AND_TOBAGO_AREA_CODE, TURKS_AND_CAICOS_ISLANDS_AREA_CODE, UNITED_STATES_VIRGIN_ISLANDS_AREA_CODE, RUSSIA_KAZAKHSTAN_COUNTRY_CODE, } from "./util";
4
4
  const NOT_FOUND_RESULT = {
5
5
  name: "Not found",
6
6
  dialingCode: "Invalid dialing code",
7
7
  flagUrl: "Invalid Flag url",
8
8
  alphaTwoCode: "Invalid alpha tow code",
9
9
  };
10
+ /** Handle Russia & Kazakhstan (+7) */
11
+ const handleRussiaKazakhstan = (nationalNumber) => {
12
+ if (!nationalNumber)
13
+ return null;
14
+ // Kazakhstan numbers start with 6
15
+ if (nationalNumber.startsWith("6")) {
16
+ return getCountryByAlpha("KZ");
17
+ }
18
+ return getCountryByAlpha("RU");
19
+ };
10
20
  /** Get country by alphaTwoCode */
11
21
  const getCountryByAlpha = (alpha) => country_list.find((c) => c.alphaTwoCode === alpha) || null;
12
22
  /** Get country by dialing code */
@@ -78,6 +88,9 @@ export const getCountry = (number) => {
78
88
  case UK_COUNTRY_CODE:
79
89
  matched = handleUK(parsed.nationalNumber || "");
80
90
  break;
91
+ case RUSSIA_KAZAKHSTAN_COUNTRY_CODE:
92
+ matched = handleRussiaKazakhstan(parsed.nationalNumber || "");
93
+ break;
81
94
  default:
82
95
  matched =
83
96
  getCountryByAlpha(parsed.country || "") ||
@@ -45,4 +45,5 @@ export declare const SINT_MAARTEN_AREA_CODE: string[];
45
45
  export declare const TRINIDAD_AND_TOBAGO_AREA_CODE: string[];
46
46
  export declare const TURKS_AND_CAICOS_ISLANDS_AREA_CODE: string[];
47
47
  export declare const UNITED_STATES_VIRGIN_ISLANDS_AREA_CODE: string[];
48
+ export declare const RUSSIA_KAZAKHSTAN_COUNTRY_CODE = "7";
48
49
  //# sourceMappingURL=util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/country/util.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC,eAAO,MAAM,OAAO;;;CAGnB,CAAC;AAEF,eAAO,MAAM,WAAW;;;;CAIvB,CAAC;AAEF,eAAO,MAAM,MAAM;;;;CAIlB,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;CAIpB,CAAC;AAEF,eAAO,MAAM,mBAAmB,UA4C/B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;GAAkC,CAAC;AAC/D,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAC1C,eAAO,MAAM,wBAAwB,UAAiB,CAAC;AACvD,eAAO,MAAM,wBAAwB,UAAU,CAAC;AAChD,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAC1C,eAAO,MAAM,6BAA6B,UAAU,CAAC;AACrD,eAAO,MAAM,iBAAiB,UAAU,CAAC;AACzC,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAC1C,eAAO,MAAM,iBAAiB,UAAU,CAAC;AACzC,eAAO,MAAM,gCAAgC,UAAU,CAAC;AACxD,eAAO,MAAM,wBAAwB,UAAU,CAAC;AAChD,eAAO,MAAM,4BAA4B,UAAwB,CAAC;AAClE,eAAO,MAAM,iBAAiB,UAAU,CAAC;AACzC,eAAO,MAAM,iBAAiB,UAAiB,CAAC;AAChD,eAAO,MAAM,oBAAoB,UAAU,CAAC;AAC5C,eAAO,MAAM,+BAA+B,UAAU,CAAC;AACvD,eAAO,MAAM,qBAAqB,UAAU,CAAC;AAC7C,eAAO,MAAM,0CAA0C,UAAU,CAAC;AAClE,eAAO,MAAM,sBAAsB,UAAU,CAAC;AAC9C,eAAO,MAAM,6BAA6B,UAAU,CAAC;AACrD,eAAO,MAAM,kCAAkC,UAAU,CAAC;AAC1D,eAAO,MAAM,sCAAsC,UAAU,CAAC"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/country/util.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC,eAAO,MAAM,OAAO;;;CAGnB,CAAC;AAEF,eAAO,MAAM,WAAW;;;;CAIvB,CAAC;AAEF,eAAO,MAAM,MAAM;;;;CAIlB,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;CAIpB,CAAC;AAEF,eAAO,MAAM,mBAAmB,UA4C/B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;GAAkC,CAAC;AAC/D,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAC1C,eAAO,MAAM,wBAAwB,UAAiB,CAAC;AACvD,eAAO,MAAM,wBAAwB,UAAU,CAAC;AAChD,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAC1C,eAAO,MAAM,6BAA6B,UAAU,CAAC;AACrD,eAAO,MAAM,iBAAiB,UAAU,CAAC;AACzC,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAC1C,eAAO,MAAM,iBAAiB,UAAU,CAAC;AACzC,eAAO,MAAM,gCAAgC,UAAU,CAAC;AACxD,eAAO,MAAM,wBAAwB,UAAU,CAAC;AAChD,eAAO,MAAM,4BAA4B,UAAwB,CAAC;AAClE,eAAO,MAAM,iBAAiB,UAAU,CAAC;AACzC,eAAO,MAAM,iBAAiB,UAAiB,CAAC;AAChD,eAAO,MAAM,oBAAoB,UAAU,CAAC;AAC5C,eAAO,MAAM,+BAA+B,UAAU,CAAC;AACvD,eAAO,MAAM,qBAAqB,UAAU,CAAC;AAC7C,eAAO,MAAM,0CAA0C,UAAU,CAAC;AAClE,eAAO,MAAM,sBAAsB,UAAU,CAAC;AAC9C,eAAO,MAAM,6BAA6B,UAAU,CAAC;AACrD,eAAO,MAAM,kCAAkC,UAAU,CAAC;AAC1D,eAAO,MAAM,sCAAsC,UAAU,CAAC;AAC9D,eAAO,MAAM,8BAA8B,MAAM,CAAC"}
@@ -85,3 +85,4 @@ export const SINT_MAARTEN_AREA_CODE = ["721"];
85
85
  export const TRINIDAD_AND_TOBAGO_AREA_CODE = ["868"];
86
86
  export const TURKS_AND_CAICOS_ISLANDS_AREA_CODE = ["649"];
87
87
  export const UNITED_STATES_VIRGIN_ISLANDS_AREA_CODE = ["340"];
88
+ export const RUSSIA_KAZAKHSTAN_COUNTRY_CODE = "7";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/formatter/index.ts"],"names":[],"mappings":"AAEA,KAAK,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;AAElC,eAAO,MAAM,SAAS,GACpB,QAAO,MAAW,EAClB,aAAY,MAAM,EAAc,EAChC,YAAW,SAAe,KACzB,MA6DF,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/formatter/index.ts"],"names":[],"mappings":"AAEA,KAAK,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;AAuBlC,eAAO,MAAM,SAAS,GACpB,QAAO,MAAW,EAClB,aAAY,MAAM,EAAc,EAChC,YAAW,SAAe,KACzB,MA2BF,CAAC"}
@@ -1,56 +1,35 @@
1
1
  import { parsePhoneNumber } from "../parsed/index.js";
2
+ const formatGroups = (number, groupSizes, separator) => {
3
+ const groups = [];
4
+ let start = 0;
5
+ for (const size of groupSizes) {
6
+ if (start >= number.length)
7
+ break;
8
+ groups.push(number.slice(start, start + size));
9
+ start += size;
10
+ }
11
+ if (start < number.length) {
12
+ groups.push(number.slice(start));
13
+ }
14
+ return groups.join(separator);
15
+ };
2
16
  export const formatter = (value = "", groupSizes = [3, 3, 4], separator = " ") => {
3
17
  const trimmed = value.trim();
4
18
  if (!trimmed)
5
19
  return "";
6
- const hasPlus = trimmed.startsWith("+");
7
20
  const digits = trimmed.replace(/\D/g, "");
8
21
  if (!digits)
9
22
  return "";
10
- if (hasPlus) {
11
- try {
12
- const parsed = parsePhoneNumber(trimmed);
13
- if (separator === "()") {
14
- return `(+${parsed.callingCode}) ${parsed.nationalNumber}`;
15
- }
16
- return parsed.formatted || "";
17
- }
18
- catch {
19
- return value;
20
- }
21
- }
22
- let callingCode = "";
23
- let nationalNumber = digits;
24
- for (let i = 1; i <= 3; i++) {
25
- const code = digits.slice(0, i);
26
- try {
27
- parsePhoneNumber(`+${code}`);
28
- callingCode = code;
29
- nationalNumber = digits.slice(i);
30
- break;
31
- }
32
- catch {
33
- continue;
23
+ try {
24
+ // Always parse full number
25
+ const parsed = parsePhoneNumber(trimmed.startsWith("+") ? trimmed : `+${digits}`);
26
+ const formattedNational = formatGroups(parsed.nationalNumber || "", groupSizes, separator === "()" ? " " : separator);
27
+ if (separator === "()") {
28
+ return `(+${parsed.callingCode}) ${formattedNational}`;
34
29
  }
30
+ return `+${parsed.callingCode} ${formattedNational}`;
35
31
  }
36
- if (!callingCode)
32
+ catch {
37
33
  return value;
38
- // Format national number
39
- const groups = [];
40
- let start = 0;
41
- for (const size of groupSizes) {
42
- if (start >= nationalNumber.length)
43
- break;
44
- groups.push(nationalNumber.slice(start, start + size));
45
- start += size;
46
- }
47
- if (start < nationalNumber.length) {
48
- groups.push(nationalNumber.slice(start));
49
- }
50
- const formattedNational = groups.join(" ");
51
- // ✅ Parentheses wrap ONLY country code
52
- if (separator === "()") {
53
- return `(+${callingCode}) ${formattedNational}`;
54
34
  }
55
- return `+${callingCode} ${groups.join(separator)}`;
56
35
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parsed/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAgKjD,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAwD5C,CAAC;AAEF,eAAO,MAAM,eAAe,OAAO,CAAC;AACpC,eAAO,MAAM,OAAO;;;CAAyC,CAAC;AAC9D,eAAO,MAAM,WAAW;;;;CAAsD,CAAC;AAC/E,eAAO,MAAM,MAAM;;;;CAAiD,CAAC;AACrE,eAAO,MAAM,QAAQ;;;;CAAmD,CAAC;AACzE,eAAO,MAAM,eAAe;;;;GAAkC,CAAC;AAE/D,eAAO,MAAM,sBAAsB,UAAU,CAAC;AAE9C,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAoDjE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parsed/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAgKjD,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAsF5C,CAAC;AAEF,eAAO,MAAM,eAAe,OAAO,CAAC;AACpC,eAAO,MAAM,OAAO;;;CAAyC,CAAC;AAC9D,eAAO,MAAM,WAAW;;;;CAAsD,CAAC;AAC/E,eAAO,MAAM,MAAM;;;;CAAiD,CAAC;AACrE,eAAO,MAAM,QAAQ;;;;CAAmD,CAAC;AACzE,eAAO,MAAM,eAAe;;;;GAAkC,CAAC;AAE/D,eAAO,MAAM,sBAAsB,UAAU,CAAC;AAE9C,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAoDjE"}
@@ -213,6 +213,34 @@ export const NANPA_MAP = {
213
213
  "312": "US",
214
214
  "305": "US",
215
215
  "415": "US",
216
+ /* =========================
217
+ * U.S. Territories
218
+ * ========================= */
219
+ "684": "AS", // American Samoa
220
+ "340": "VI", // U.S. Virgin Islands
221
+ /* =========================
222
+ * Caribbean / Atlantic NANP
223
+ * ========================= */
224
+ "264": "AI", // Anguilla
225
+ "268": "AG", // Antigua & Barbuda
226
+ "242": "BS", // Bahamas
227
+ "246": "BB", // Barbados
228
+ "441": "BM", // Bermuda
229
+ "284": "VG", // British Virgin Islands
230
+ "345": "KY", // Cayman Islands
231
+ "809": "DO", // Dominican Republic
232
+ "829": "DO",
233
+ "849": "DO",
234
+ "473": "GD", // Grenada
235
+ "658": "JM", // Jamaica
236
+ "876": "JM",
237
+ "664": "MS", // Montserrat
238
+ "869": "KN", // Saint Kitts & Nevis
239
+ "758": "LC", // Saint Lucia
240
+ "784": "VC", // Saint Vincent & the Grenadines
241
+ "721": "SX", // Sint Maarten
242
+ "868": "TT", // Trinidad & Tobago
243
+ "649": "TC", // Turks & Caicos
216
244
  };
217
245
  export const UK_COUNTRY_CODE = "44";
218
246
  export const UK_MAIN = { CODE: "GB", NAME: "United Kingdom" };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tele_number_utils",
3
- "version": "1.0.6",
3
+ "version": "1.0.8",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",