global-phone-validator 1.2.1 → 1.3.2

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.
@@ -0,0 +1,1015 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.COUNTRY_DATA = void 0;
7
+ exports.initializeCountryData = initializeCountryData;
8
+ exports.clearCountryDataCache = clearCountryDataCache;
9
+ exports.getCountryData = getCountryData;
10
+ exports.getCountryDataByIsoCode = getCountryDataByIsoCode;
11
+ exports.getAllCountryData = getAllCountryData;
12
+ exports.setCountryData = setCountryData;
13
+ const CountryCodes_json_1 = __importDefault(require("./CountryCodes.json"));
14
+ function getCountryCode(dialCode) {
15
+ return dialCode.replace(/^\+/, "");
16
+ }
17
+ exports.COUNTRY_DATA = {
18
+ "91": {
19
+ name: "India",
20
+ dial_code: "+91",
21
+ code: "IN",
22
+ validation: {
23
+ pattern: "^[6-9]\\d{9}$",
24
+ minLength: 10,
25
+ maxLength: 10,
26
+ },
27
+ phoneTypes: {
28
+ mobilePrefixes: ["6", "7", "8", "9"],
29
+ landlinePrefixes: [
30
+ "11",
31
+ "12",
32
+ "13",
33
+ "14",
34
+ "15",
35
+ "16",
36
+ "17",
37
+ "18",
38
+ "20",
39
+ "22",
40
+ "24",
41
+ "26",
42
+ "28",
43
+ "29",
44
+ "30",
45
+ "31",
46
+ "33",
47
+ "34",
48
+ "35",
49
+ "36",
50
+ "37",
51
+ "38",
52
+ "40",
53
+ "44",
54
+ "45",
55
+ "46",
56
+ "47",
57
+ "48",
58
+ "51",
59
+ "52",
60
+ "53",
61
+ "54",
62
+ "55",
63
+ "56",
64
+ "57",
65
+ "58",
66
+ "59",
67
+ "61",
68
+ "62",
69
+ "63",
70
+ "64",
71
+ "65",
72
+ "66",
73
+ "67",
74
+ "68",
75
+ "69",
76
+ "71",
77
+ "72",
78
+ "73",
79
+ "74",
80
+ "75",
81
+ "76",
82
+ "77",
83
+ "78",
84
+ "79",
85
+ "80",
86
+ "81",
87
+ "82",
88
+ "83",
89
+ "84",
90
+ "85",
91
+ "86",
92
+ "87",
93
+ "88",
94
+ "89",
95
+ "90",
96
+ "91",
97
+ "92",
98
+ "93",
99
+ "94",
100
+ "95",
101
+ "96",
102
+ "97",
103
+ "98",
104
+ "99",
105
+ ],
106
+ tollFreePrefixes: ["1800", "1860", "800"],
107
+ premiumPrefixes: ["1900"],
108
+ },
109
+ },
110
+ "49": {
111
+ name: "Germany",
112
+ dial_code: "+49",
113
+ code: "DE",
114
+ validation: {
115
+ pattern: "^\\d{9,13}$",
116
+ minLength: 9,
117
+ maxLength: 13,
118
+ },
119
+ phoneTypes: {
120
+ mobilePrefixes: [
121
+ "151",
122
+ "152",
123
+ "153",
124
+ "154",
125
+ "155",
126
+ "156",
127
+ "157",
128
+ "158",
129
+ "159",
130
+ "160",
131
+ "162",
132
+ "163",
133
+ "170",
134
+ "171",
135
+ "172",
136
+ "173",
137
+ "174",
138
+ "175",
139
+ "176",
140
+ "177",
141
+ "178",
142
+ "179",
143
+ ],
144
+ landlinePrefixes: [
145
+ "30",
146
+ "40",
147
+ "69",
148
+ "89",
149
+ "211",
150
+ "221",
151
+ "231",
152
+ "241",
153
+ "351",
154
+ "361",
155
+ "371",
156
+ "381",
157
+ "391",
158
+ "421",
159
+ "431",
160
+ "451",
161
+ "461",
162
+ "471",
163
+ "481",
164
+ "511",
165
+ "531",
166
+ "541",
167
+ "561",
168
+ "571",
169
+ "581",
170
+ "591",
171
+ "611",
172
+ "621",
173
+ "631",
174
+ "641",
175
+ "651",
176
+ "661",
177
+ "671",
178
+ "681",
179
+ "691",
180
+ "711",
181
+ "721",
182
+ "731",
183
+ "741",
184
+ "751",
185
+ "761",
186
+ "771",
187
+ "781",
188
+ "911",
189
+ "921",
190
+ "931",
191
+ "941",
192
+ "951",
193
+ "961",
194
+ "971",
195
+ "981",
196
+ "991",
197
+ ],
198
+ tollFreePrefixes: ["800"],
199
+ premiumPrefixes: ["900"],
200
+ voipPrefixes: ["32"],
201
+ },
202
+ },
203
+ "1": {
204
+ name: "United States/Canada",
205
+ dial_code: "+1",
206
+ code: "US",
207
+ validation: {
208
+ pattern: "^\\d{10}$",
209
+ minLength: 10,
210
+ maxLength: 10,
211
+ },
212
+ phoneTypes: {
213
+ mobilePrefixes: [], // All numbers can be mobile or landline
214
+ tollFreePrefixes: ["800", "833", "844", "855", "866", "877", "888"],
215
+ premiumPrefixes: ["900", "976"],
216
+ },
217
+ metadata: {
218
+ areaCodeDependent: true,
219
+ },
220
+ },
221
+ "44": {
222
+ name: "United Kingdom",
223
+ dial_code: "+44",
224
+ code: "GB",
225
+ validation: {
226
+ pattern: "^\\d{10,11}$",
227
+ minLength: 10,
228
+ maxLength: 11,
229
+ },
230
+ phoneTypes: {
231
+ mobilePrefixes: ["7"],
232
+ landlinePrefixes: ["1", "2", "3", "4", "5", "6", "8", "9"],
233
+ tollFreePrefixes: ["800", "808"],
234
+ premiumPrefixes: [
235
+ "900",
236
+ "901",
237
+ "902",
238
+ "903",
239
+ "904",
240
+ "905",
241
+ "906",
242
+ "907",
243
+ "908",
244
+ "909",
245
+ "910",
246
+ "911",
247
+ "912",
248
+ "913",
249
+ "914",
250
+ "915",
251
+ "916",
252
+ "917",
253
+ "918",
254
+ "919",
255
+ "920",
256
+ "921",
257
+ "922",
258
+ "923",
259
+ "924",
260
+ "925",
261
+ "926",
262
+ "927",
263
+ "928",
264
+ "929",
265
+ "930",
266
+ "931",
267
+ "932",
268
+ "933",
269
+ "934",
270
+ "935",
271
+ "936",
272
+ "937",
273
+ "938",
274
+ "939",
275
+ "940",
276
+ "941",
277
+ "942",
278
+ "943",
279
+ "944",
280
+ "945",
281
+ "946",
282
+ "947",
283
+ "948",
284
+ "949",
285
+ "950",
286
+ "951",
287
+ "952",
288
+ "953",
289
+ "954",
290
+ "955",
291
+ "956",
292
+ "957",
293
+ "958",
294
+ "959",
295
+ "960",
296
+ "961",
297
+ "962",
298
+ "963",
299
+ "964",
300
+ "965",
301
+ "966",
302
+ "967",
303
+ "968",
304
+ "969",
305
+ "970",
306
+ "971",
307
+ "972",
308
+ "973",
309
+ "974",
310
+ "975",
311
+ "976",
312
+ "977",
313
+ "978",
314
+ "979",
315
+ "980",
316
+ "981",
317
+ "982",
318
+ "983",
319
+ "984",
320
+ "985",
321
+ "986",
322
+ "987",
323
+ "988",
324
+ "989",
325
+ "990",
326
+ "991",
327
+ "992",
328
+ "993",
329
+ "994",
330
+ "995",
331
+ "996",
332
+ "997",
333
+ "998",
334
+ "999",
335
+ ],
336
+ voipPrefixes: ["56"],
337
+ },
338
+ },
339
+ "33": {
340
+ name: "France",
341
+ dial_code: "+33",
342
+ code: "FR",
343
+ validation: {
344
+ pattern: "^\\d{9}$",
345
+ minLength: 9,
346
+ maxLength: 9,
347
+ },
348
+ phoneTypes: {
349
+ mobilePrefixes: ["6", "7"],
350
+ landlinePrefixes: ["1", "2", "3", "4", "5", "8", "9"],
351
+ tollFreePrefixes: ["800", "805", "809"],
352
+ premiumPrefixes: ["900"],
353
+ },
354
+ },
355
+ "7": {
356
+ validation: {
357
+ pattern: "^\\d{10}$",
358
+ minLength: 10,
359
+ maxLength: 10,
360
+ },
361
+ phoneTypes: {
362
+ mobilePrefixes: ["9"],
363
+ landlinePrefixes: ["3", "4", "5", "8"],
364
+ tollFreePrefixes: ["800"],
365
+ premiumPrefixes: ["900"],
366
+ },
367
+ },
368
+ "20": {
369
+ validation: {
370
+ pattern: "^\\d{8,10}$",
371
+ minLength: 8,
372
+ maxLength: 10,
373
+ },
374
+ },
375
+ "27": {
376
+ validation: {
377
+ pattern: "^\\d{9}$",
378
+ minLength: 9,
379
+ maxLength: 9,
380
+ },
381
+ phoneTypes: {
382
+ mobilePrefixes: ["6", "7", "8"],
383
+ landlinePrefixes: ["1", "2", "3", "4", "5", "9"],
384
+ tollFreePrefixes: ["800"],
385
+ },
386
+ },
387
+ "30": {
388
+ validation: {
389
+ pattern: "^\\d{10}$",
390
+ minLength: 10,
391
+ maxLength: 10,
392
+ },
393
+ },
394
+ "31": {
395
+ validation: {
396
+ pattern: "^\\d{9}$",
397
+ minLength: 9,
398
+ maxLength: 9,
399
+ },
400
+ phoneTypes: {
401
+ mobilePrefixes: ["6"],
402
+ landlinePrefixes: ["1", "2", "3", "4", "5", "7", "8", "9"],
403
+ tollFreePrefixes: ["800"],
404
+ },
405
+ },
406
+ "32": {
407
+ validation: {
408
+ pattern: "^\\d{9}$",
409
+ minLength: 9,
410
+ maxLength: 9,
411
+ },
412
+ },
413
+ "34": {
414
+ validation: {
415
+ pattern: "^\\d{9}$",
416
+ minLength: 9,
417
+ maxLength: 9,
418
+ },
419
+ phoneTypes: {
420
+ mobilePrefixes: ["6", "7"],
421
+ landlinePrefixes: ["8", "9"],
422
+ tollFreePrefixes: ["800", "900"],
423
+ premiumPrefixes: ["901", "902", "903", "905", "906", "907", "908", "909"],
424
+ },
425
+ },
426
+ "36": {
427
+ validation: {
428
+ pattern: "^\\d{9}$",
429
+ minLength: 9,
430
+ maxLength: 9,
431
+ },
432
+ },
433
+ "39": {
434
+ validation: {
435
+ pattern: "^\\d{9,10}$",
436
+ minLength: 9,
437
+ maxLength: 10,
438
+ },
439
+ phoneTypes: {
440
+ mobilePrefixes: ["3"],
441
+ landlinePrefixes: ["0", "1", "2", "4", "5", "6", "7", "8", "9"],
442
+ tollFreePrefixes: ["800"],
443
+ premiumPrefixes: ["900"],
444
+ },
445
+ },
446
+ "40": {
447
+ validation: {
448
+ pattern: "^\\d{9}$",
449
+ minLength: 9,
450
+ maxLength: 9,
451
+ },
452
+ },
453
+ "41": {
454
+ validation: {
455
+ pattern: "^\\d{9}$",
456
+ minLength: 9,
457
+ maxLength: 9,
458
+ },
459
+ },
460
+ "45": {
461
+ validation: {
462
+ pattern: "^\\d{8}$",
463
+ minLength: 8,
464
+ maxLength: 8,
465
+ },
466
+ },
467
+ "46": {
468
+ validation: {
469
+ pattern: "^\\d{9}$",
470
+ minLength: 9,
471
+ maxLength: 9,
472
+ },
473
+ phoneTypes: {
474
+ mobilePrefixes: ["7"],
475
+ landlinePrefixes: [
476
+ "8",
477
+ "11",
478
+ "13",
479
+ "16",
480
+ "18",
481
+ "19",
482
+ "21",
483
+ "23",
484
+ "26",
485
+ "31",
486
+ "33",
487
+ "35",
488
+ "36",
489
+ "40",
490
+ "42",
491
+ "44",
492
+ "46",
493
+ "54",
494
+ "60",
495
+ "63",
496
+ "90",
497
+ ],
498
+ tollFreePrefixes: ["200"],
499
+ },
500
+ },
501
+ "47": {
502
+ validation: {
503
+ pattern: "^\\d{8}$",
504
+ minLength: 8,
505
+ maxLength: 8,
506
+ },
507
+ phoneTypes: {
508
+ mobilePrefixes: ["4", "9"],
509
+ landlinePrefixes: ["2", "3", "5", "6", "7", "8"],
510
+ tollFreePrefixes: ["800"],
511
+ },
512
+ },
513
+ "48": {
514
+ validation: {
515
+ pattern: "^\\d{9}$",
516
+ minLength: 9,
517
+ maxLength: 9,
518
+ },
519
+ phoneTypes: {
520
+ mobilePrefixes: ["5", "6", "7", "8", "9"],
521
+ landlinePrefixes: ["1", "2", "3", "4"],
522
+ tollFreePrefixes: ["800"],
523
+ premiumPrefixes: ["900"],
524
+ },
525
+ },
526
+ "51": {
527
+ validation: {
528
+ pattern: "^\\d{9}$",
529
+ minLength: 9,
530
+ maxLength: 9,
531
+ },
532
+ },
533
+ "52": {
534
+ validation: {
535
+ pattern: "^\\d{10}$",
536
+ minLength: 10,
537
+ maxLength: 10,
538
+ },
539
+ phoneTypes: {
540
+ mobilePrefixes: ["1"],
541
+ landlinePrefixes: ["2", "3", "4", "5", "6", "7", "8", "9"],
542
+ tollFreePrefixes: ["800"],
543
+ },
544
+ },
545
+ "53": {
546
+ validation: {
547
+ pattern: "^\\d{8}$",
548
+ minLength: 8,
549
+ maxLength: 8,
550
+ },
551
+ },
552
+ "54": {
553
+ validation: {
554
+ pattern: "^\\d{10}$",
555
+ minLength: 10,
556
+ maxLength: 10,
557
+ },
558
+ phoneTypes: {
559
+ mobilePrefixes: ["9"],
560
+ landlinePrefixes: ["1", "2", "3", "4", "5", "6", "7", "8"],
561
+ tollFreePrefixes: ["800"],
562
+ },
563
+ },
564
+ "55": {
565
+ validation: {
566
+ pattern: "^\\d{10,11}$",
567
+ minLength: 10,
568
+ maxLength: 11,
569
+ },
570
+ phoneTypes: {
571
+ mobilePrefixes: ["9"],
572
+ landlinePrefixes: ["1", "2", "3", "4", "5", "6", "7", "8"],
573
+ tollFreePrefixes: ["800"],
574
+ premiumPrefixes: ["900"],
575
+ },
576
+ },
577
+ "56": {
578
+ validation: {
579
+ pattern: "^\\d{9}$",
580
+ minLength: 9,
581
+ maxLength: 9,
582
+ },
583
+ phoneTypes: {
584
+ mobilePrefixes: ["9"],
585
+ landlinePrefixes: ["2", "3", "4", "5", "6", "7", "8"],
586
+ tollFreePrefixes: ["800"],
587
+ },
588
+ },
589
+ "57": {
590
+ validation: {
591
+ pattern: "^\\d{10}$",
592
+ minLength: 10,
593
+ maxLength: 10,
594
+ },
595
+ phoneTypes: {
596
+ mobilePrefixes: ["3"],
597
+ landlinePrefixes: ["1", "2", "4", "5", "6", "7", "8", "9"],
598
+ tollFreePrefixes: ["1800"],
599
+ },
600
+ },
601
+ "58": {
602
+ validation: {
603
+ pattern: "^\\d{10}$",
604
+ minLength: 10,
605
+ maxLength: 10,
606
+ },
607
+ },
608
+ "60": {
609
+ validation: {
610
+ pattern: "^\\d{9,10}$",
611
+ minLength: 9,
612
+ maxLength: 10,
613
+ },
614
+ phoneTypes: {
615
+ mobilePrefixes: ["1"],
616
+ landlinePrefixes: ["3", "4", "5", "6", "7", "9"],
617
+ tollFreePrefixes: ["1800"],
618
+ },
619
+ },
620
+ "61": {
621
+ validation: {
622
+ pattern: "^\\d{9}$",
623
+ minLength: 9,
624
+ maxLength: 9,
625
+ },
626
+ phoneTypes: {
627
+ mobilePrefixes: ["4"],
628
+ landlinePrefixes: ["2", "3", "7", "8"],
629
+ tollFreePrefixes: ["1800", "1300"],
630
+ premiumPrefixes: ["1900"],
631
+ },
632
+ },
633
+ "62": {
634
+ validation: {
635
+ pattern: "^\\d{9,11}$",
636
+ minLength: 9,
637
+ maxLength: 11,
638
+ },
639
+ phoneTypes: {
640
+ mobilePrefixes: ["8"],
641
+ landlinePrefixes: ["2", "3", "4", "5", "6", "7", "9"],
642
+ tollFreePrefixes: ["800"],
643
+ },
644
+ },
645
+ "63": {
646
+ validation: {
647
+ pattern: "^\\d{10}$",
648
+ minLength: 10,
649
+ maxLength: 10,
650
+ },
651
+ phoneTypes: {
652
+ mobilePrefixes: ["9"],
653
+ landlinePrefixes: ["2", "3", "4", "5", "6", "7", "8"],
654
+ tollFreePrefixes: ["800"],
655
+ },
656
+ },
657
+ "64": {
658
+ validation: {
659
+ pattern: "^\\d{8,10}$",
660
+ minLength: 8,
661
+ maxLength: 10,
662
+ },
663
+ phoneTypes: {
664
+ mobilePrefixes: ["2"],
665
+ landlinePrefixes: ["3", "4", "6", "7", "9"],
666
+ tollFreePrefixes: ["800"],
667
+ },
668
+ },
669
+ "65": {
670
+ validation: {
671
+ pattern: "^\\d{8}$",
672
+ minLength: 8,
673
+ maxLength: 8,
674
+ },
675
+ phoneTypes: {
676
+ mobilePrefixes: ["8", "9"],
677
+ landlinePrefixes: ["6"],
678
+ tollFreePrefixes: ["1800"],
679
+ },
680
+ },
681
+ "66": {
682
+ validation: {
683
+ pattern: "^\\d{9}$",
684
+ minLength: 9,
685
+ maxLength: 9,
686
+ },
687
+ phoneTypes: {
688
+ mobilePrefixes: ["6", "8", "9"],
689
+ landlinePrefixes: ["2", "3", "4", "5", "7"],
690
+ tollFreePrefixes: ["1800"],
691
+ },
692
+ },
693
+ "81": {
694
+ validation: {
695
+ pattern: "^\\d{10,11}$",
696
+ minLength: 10,
697
+ maxLength: 11,
698
+ },
699
+ phoneTypes: {
700
+ mobilePrefixes: ["70", "80", "90"],
701
+ landlinePrefixes: ["3", "6", "11", "52", "92", "93", "95", "96", "98"],
702
+ tollFreePrefixes: ["120", "800"],
703
+ premiumPrefixes: ["990"],
704
+ },
705
+ },
706
+ "82": {
707
+ validation: {
708
+ pattern: "^\\d{9,10}$",
709
+ minLength: 9,
710
+ maxLength: 10,
711
+ },
712
+ },
713
+ "84": {
714
+ validation: {
715
+ pattern: "^\\d{9,10}$",
716
+ minLength: 9,
717
+ maxLength: 10,
718
+ },
719
+ },
720
+ "86": {
721
+ validation: {
722
+ pattern: "^\\d{11}$",
723
+ minLength: 11,
724
+ maxLength: 11,
725
+ },
726
+ phoneTypes: {
727
+ mobilePrefixes: ["13", "14", "15", "16", "17", "18", "19"],
728
+ landlinePrefixes: [
729
+ "10",
730
+ "20",
731
+ "21",
732
+ "22",
733
+ "23",
734
+ "24",
735
+ "25",
736
+ "27",
737
+ "28",
738
+ "29",
739
+ "311",
740
+ "351",
741
+ "371",
742
+ "431",
743
+ "451",
744
+ "471",
745
+ "531",
746
+ "551",
747
+ "571",
748
+ "591",
749
+ "631",
750
+ "671",
751
+ "731",
752
+ "751",
753
+ "771",
754
+ "791",
755
+ "851",
756
+ "871",
757
+ "891",
758
+ "898",
759
+ "931",
760
+ "951",
761
+ "971",
762
+ "991",
763
+ ],
764
+ tollFreePrefixes: ["400", "800"],
765
+ },
766
+ },
767
+ "90": {
768
+ validation: {
769
+ pattern: "^\\d{10}$",
770
+ minLength: 10,
771
+ maxLength: 10,
772
+ },
773
+ },
774
+ "92": {
775
+ validation: {
776
+ pattern: "^\\d{10}$",
777
+ minLength: 10,
778
+ maxLength: 10,
779
+ },
780
+ },
781
+ "93": {
782
+ validation: {
783
+ pattern: "^\\d{9}$",
784
+ minLength: 9,
785
+ maxLength: 9,
786
+ },
787
+ },
788
+ "94": {
789
+ validation: {
790
+ pattern: "^\\d{9}$",
791
+ minLength: 9,
792
+ maxLength: 9,
793
+ },
794
+ },
795
+ "95": {
796
+ validation: {
797
+ pattern: "^\\d{8,10}$",
798
+ minLength: 8,
799
+ maxLength: 10,
800
+ },
801
+ },
802
+ "98": {
803
+ validation: {
804
+ pattern: "^\\d{10}$",
805
+ minLength: 10,
806
+ maxLength: 10,
807
+ },
808
+ },
809
+ "212": {
810
+ validation: {
811
+ pattern: "^\\d{9}$",
812
+ minLength: 9,
813
+ maxLength: 9,
814
+ },
815
+ },
816
+ "213": {
817
+ validation: {
818
+ pattern: "^\\d{9}$",
819
+ minLength: 9,
820
+ maxLength: 9,
821
+ },
822
+ },
823
+ "234": {
824
+ validation: {
825
+ pattern: "^\\d{10}$",
826
+ minLength: 10,
827
+ maxLength: 10,
828
+ },
829
+ },
830
+ "254": {
831
+ validation: {
832
+ pattern: "^\\d{9}$",
833
+ minLength: 9,
834
+ maxLength: 9,
835
+ },
836
+ },
837
+ "351": {
838
+ validation: {
839
+ pattern: "^\\d{9}$",
840
+ minLength: 9,
841
+ maxLength: 9,
842
+ },
843
+ },
844
+ "352": {
845
+ validation: {
846
+ pattern: "^\\d{9}$",
847
+ minLength: 9,
848
+ maxLength: 9,
849
+ },
850
+ },
851
+ "353": {
852
+ validation: {
853
+ pattern: "^\\d{9}$",
854
+ minLength: 9,
855
+ maxLength: 9,
856
+ },
857
+ },
858
+ "354": {
859
+ validation: {
860
+ pattern: "^\\d{7,9}$",
861
+ minLength: 7,
862
+ maxLength: 9,
863
+ },
864
+ },
865
+ "358": {
866
+ validation: {
867
+ pattern: "^\\d{6,10}$",
868
+ minLength: 6,
869
+ maxLength: 10,
870
+ },
871
+ },
872
+ "380": {
873
+ validation: {
874
+ pattern: "^\\d{9}$",
875
+ minLength: 9,
876
+ maxLength: 9,
877
+ },
878
+ },
879
+ "420": {
880
+ validation: {
881
+ pattern: "^\\d{9}$",
882
+ minLength: 9,
883
+ maxLength: 9,
884
+ },
885
+ },
886
+ "421": {
887
+ validation: {
888
+ pattern: "^\\d{9}$",
889
+ minLength: 9,
890
+ maxLength: 9,
891
+ },
892
+ },
893
+ "852": {
894
+ validation: {
895
+ pattern: "^\\d{8}$",
896
+ minLength: 8,
897
+ maxLength: 8,
898
+ },
899
+ },
900
+ "853": {
901
+ validation: {
902
+ pattern: "^\\d{8}$",
903
+ minLength: 8,
904
+ maxLength: 8,
905
+ },
906
+ },
907
+ "886": {
908
+ validation: {
909
+ pattern: "^\\d{9}$",
910
+ minLength: 9,
911
+ maxLength: 9,
912
+ },
913
+ },
914
+ "971": {
915
+ validation: {
916
+ pattern: "^\\d{9}$",
917
+ minLength: 9,
918
+ maxLength: 9,
919
+ },
920
+ },
921
+ "972": {
922
+ validation: {
923
+ pattern: "^\\d{9}$",
924
+ minLength: 9,
925
+ maxLength: 9,
926
+ },
927
+ },
928
+ "974": {
929
+ validation: {
930
+ pattern: "^\\d{8}$",
931
+ minLength: 8,
932
+ maxLength: 8,
933
+ },
934
+ },
935
+ };
936
+ let countryDataCache = null;
937
+ function initializeCountryData() {
938
+ if (countryDataCache) {
939
+ return countryDataCache;
940
+ }
941
+ const data = {};
942
+ CountryCodes_json_1.default.forEach((country) => {
943
+ const countryCode = getCountryCode(country.dial_code);
944
+ const countryData = {
945
+ name: country.name,
946
+ dial_code: country.dial_code,
947
+ code: country.code,
948
+ };
949
+ if (exports.COUNTRY_DATA[countryCode]) {
950
+ if (exports.COUNTRY_DATA[countryCode].validation)
951
+ countryData.validation = exports.COUNTRY_DATA[countryCode].validation;
952
+ if (exports.COUNTRY_DATA[countryCode].phoneTypes)
953
+ countryData.phoneTypes = exports.COUNTRY_DATA[countryCode].phoneTypes;
954
+ if (exports.COUNTRY_DATA[countryCode].metadata)
955
+ countryData.metadata = exports.COUNTRY_DATA[countryCode].metadata;
956
+ if (exports.COUNTRY_DATA[countryCode].name)
957
+ countryData.name = exports.COUNTRY_DATA[countryCode].name;
958
+ if (exports.COUNTRY_DATA[countryCode].dial_code)
959
+ countryData.dial_code = exports.COUNTRY_DATA[countryCode].dial_code;
960
+ if (exports.COUNTRY_DATA[countryCode].code)
961
+ countryData.code = exports.COUNTRY_DATA[countryCode].code;
962
+ }
963
+ data[countryCode] = countryData;
964
+ });
965
+ Object.keys(exports.COUNTRY_DATA).forEach((code) => {
966
+ if (!data[code]) {
967
+ const partial = exports.COUNTRY_DATA[code];
968
+ if (partial.name && partial.dial_code && partial.code) {
969
+ data[code] = {
970
+ name: partial.name,
971
+ dial_code: partial.dial_code,
972
+ code: partial.code,
973
+ ...partial,
974
+ };
975
+ }
976
+ }
977
+ else {
978
+ data[code] = { ...data[code], ...exports.COUNTRY_DATA[code] };
979
+ }
980
+ });
981
+ countryDataCache = data;
982
+ return data;
983
+ }
984
+ function clearCountryDataCache() {
985
+ countryDataCache = null;
986
+ }
987
+ function getCountryData(countryCode) {
988
+ const allData = initializeCountryData();
989
+ return allData[countryCode];
990
+ }
991
+ function getCountryDataByIsoCode(isoCode) {
992
+ const allData = initializeCountryData();
993
+ return Object.values(allData).find((data) => data.code === isoCode);
994
+ }
995
+ function getAllCountryData() {
996
+ return initializeCountryData();
997
+ }
998
+ function setCountryData(countryCode, data) {
999
+ const existing = exports.COUNTRY_DATA[countryCode];
1000
+ if (existing) {
1001
+ exports.COUNTRY_DATA[countryCode] = { ...existing, ...data };
1002
+ }
1003
+ else {
1004
+ // Find from CountryCodes.json
1005
+ const country = CountryCodes_json_1.default.find((c) => getCountryCode(c.dial_code) === countryCode);
1006
+ if (country) {
1007
+ exports.COUNTRY_DATA[countryCode] = {
1008
+ name: country.name,
1009
+ dial_code: country.dial_code,
1010
+ code: country.code,
1011
+ ...data,
1012
+ };
1013
+ }
1014
+ }
1015
+ }