gscdump 0.0.1 → 0.1.1

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,1841 @@
1
+ //#region src/query/resolver.ts
2
+ const DATE_OPERATORS = [
3
+ "gte",
4
+ "gt",
5
+ "lte",
6
+ "lt",
7
+ "between"
8
+ ];
9
+ function isDateOperator(op) {
10
+ return DATE_OPERATORS.includes(op);
11
+ }
12
+ function addDays(dateStr, days) {
13
+ const d = new Date(dateStr);
14
+ d.setDate(d.getDate() + days);
15
+ return d.toISOString().split("T")[0];
16
+ }
17
+ /**
18
+ * Extract date range from filters. Used by analysis functions to get the period.
19
+ */
20
+ function extractDateRange(filters) {
21
+ const { startDate, endDate } = extractDateFilters(filters);
22
+ return {
23
+ startDate,
24
+ endDate
25
+ };
26
+ }
27
+ function extractDateFilters(filters) {
28
+ let startDate;
29
+ let endDate;
30
+ const nonDateFilters = [];
31
+ for (const filter of filters) {
32
+ const dateFilters = [];
33
+ const otherFilters = [];
34
+ for (const f of filter._filters) if (f.dimension === "date" && isDateOperator(f.operator)) dateFilters.push(f);
35
+ else otherFilters.push(f);
36
+ for (const df of dateFilters) switch (df.operator) {
37
+ case "gte":
38
+ startDate = df.expression;
39
+ break;
40
+ case "gt":
41
+ startDate = addDays(df.expression, 1);
42
+ break;
43
+ case "lte":
44
+ endDate = df.expression;
45
+ break;
46
+ case "lt":
47
+ endDate = addDays(df.expression, -1);
48
+ break;
49
+ case "between":
50
+ startDate = df.expression;
51
+ endDate = df.expression2;
52
+ break;
53
+ }
54
+ if (otherFilters.length > 0) nonDateFilters.push({
55
+ ...filter,
56
+ _filters: otherFilters
57
+ });
58
+ }
59
+ return {
60
+ startDate,
61
+ endDate,
62
+ nonDateFilters
63
+ };
64
+ }
65
+ function resolveToBody(state) {
66
+ const { startDate, endDate, nonDateFilters } = extractDateFilters(state.filters);
67
+ if (!startDate || !endDate) throw new Error("Date range required: use .where(between(date, start, end)) or .where(gte(date, start)).where(lte(date, end))");
68
+ const body = {
69
+ dimensions: state.dimensions,
70
+ startDate,
71
+ endDate
72
+ };
73
+ if (state.rowLimit) body.rowLimit = state.rowLimit;
74
+ const filterGroups = resolveFilters(nonDateFilters);
75
+ if (filterGroups.length > 0) body.dimensionFilterGroups = filterGroups;
76
+ return body;
77
+ }
78
+ function resolveFilters(filters) {
79
+ const groups = [];
80
+ for (const filter of filters) if ((filter._groupType ?? "and") === "or" && filter._filters.length > 1) groups.push({
81
+ groupType: "or",
82
+ filters: filter._filters.map((f) => ({
83
+ dimension: f.dimension,
84
+ operator: f.operator,
85
+ expression: f.expression
86
+ }))
87
+ });
88
+ else if (filter._filters.length > 0) groups.push({ filters: filter._filters.map((f) => ({
89
+ dimension: f.dimension,
90
+ operator: f.operator,
91
+ expression: f.expression
92
+ })) });
93
+ return groups;
94
+ }
95
+
96
+ //#endregion
97
+ //#region src/query/builder.ts
98
+ function transformResponse(response, dimensions) {
99
+ return { rows: (response.rows ?? []).map((row) => {
100
+ const result = {
101
+ clicks: row.clicks,
102
+ impressions: row.impressions,
103
+ ctr: row.ctr,
104
+ position: row.position
105
+ };
106
+ dimensions.forEach((dim, i) => {
107
+ result[dim] = row.keys?.[i];
108
+ });
109
+ return result;
110
+ }) };
111
+ }
112
+ function createBuilder(state) {
113
+ return {
114
+ select(...dims) {
115
+ return createBuilder({
116
+ ...state,
117
+ dimensions: dims
118
+ });
119
+ },
120
+ where(filter) {
121
+ return createBuilder({
122
+ ...state,
123
+ filters: [...state.filters, filter]
124
+ });
125
+ },
126
+ siteUrl(url) {
127
+ return createBuilder({
128
+ ...state,
129
+ siteUrl: url
130
+ });
131
+ },
132
+ limit(n) {
133
+ return createBuilder({
134
+ ...state,
135
+ rowLimit: n
136
+ });
137
+ },
138
+ async execute(client) {
139
+ const body = resolveToBody(state);
140
+ return transformResponse(await client.searchAnalytics.query(state.siteUrl, body), state.dimensions);
141
+ },
142
+ toBody() {
143
+ return resolveToBody(state);
144
+ },
145
+ getState() {
146
+ return { ...state };
147
+ }
148
+ };
149
+ }
150
+ const gsc = createBuilder({
151
+ dimensions: [],
152
+ filters: []
153
+ });
154
+
155
+ //#endregion
156
+ //#region src/query/columns.ts
157
+ function createColumn(dimension) {
158
+ return { dimension };
159
+ }
160
+ const page = createColumn("page");
161
+ const query = createColumn("query");
162
+ const device = createColumn("device");
163
+ const country = createColumn("country");
164
+ const searchAppearance = createColumn("searchAppearance");
165
+ const date = createColumn("date");
166
+
167
+ //#endregion
168
+ //#region src/utils/countries.ts
169
+ var countries_default = [
170
+ {
171
+ "name": "Afghanistan",
172
+ "alpha-2": "AF",
173
+ "alpha-3": "AFG",
174
+ "country-code": "004"
175
+ },
176
+ {
177
+ "name": "Åland Islands",
178
+ "alpha-2": "AX",
179
+ "alpha-3": "ALA",
180
+ "country-code": "248"
181
+ },
182
+ {
183
+ "name": "Albania",
184
+ "alpha-2": "AL",
185
+ "alpha-3": "ALB",
186
+ "country-code": "008"
187
+ },
188
+ {
189
+ "name": "Algeria",
190
+ "alpha-2": "DZ",
191
+ "alpha-3": "DZA",
192
+ "country-code": "012"
193
+ },
194
+ {
195
+ "name": "American Samoa",
196
+ "alpha-2": "AS",
197
+ "alpha-3": "ASM",
198
+ "country-code": "016"
199
+ },
200
+ {
201
+ "name": "Andorra",
202
+ "alpha-2": "AD",
203
+ "alpha-3": "AND",
204
+ "country-code": "020"
205
+ },
206
+ {
207
+ "name": "Angola",
208
+ "alpha-2": "AO",
209
+ "alpha-3": "AGO",
210
+ "country-code": "024"
211
+ },
212
+ {
213
+ "name": "Anguilla",
214
+ "alpha-2": "AI",
215
+ "alpha-3": "AIA",
216
+ "country-code": "660"
217
+ },
218
+ {
219
+ "name": "Antarctica",
220
+ "alpha-2": "AQ",
221
+ "alpha-3": "ATA",
222
+ "country-code": "010"
223
+ },
224
+ {
225
+ "name": "Antigua and Barbuda",
226
+ "alpha-2": "AG",
227
+ "alpha-3": "ATG",
228
+ "country-code": "028"
229
+ },
230
+ {
231
+ "name": "Argentina",
232
+ "alpha-2": "AR",
233
+ "alpha-3": "ARG",
234
+ "country-code": "032"
235
+ },
236
+ {
237
+ "name": "Armenia",
238
+ "alpha-2": "AM",
239
+ "alpha-3": "ARM",
240
+ "country-code": "051"
241
+ },
242
+ {
243
+ "name": "Aruba",
244
+ "alpha-2": "AW",
245
+ "alpha-3": "ABW",
246
+ "country-code": "533"
247
+ },
248
+ {
249
+ "name": "Australia",
250
+ "alpha-2": "AU",
251
+ "alpha-3": "AUS",
252
+ "country-code": "036"
253
+ },
254
+ {
255
+ "name": "Austria",
256
+ "alpha-2": "AT",
257
+ "alpha-3": "AUT",
258
+ "country-code": "040"
259
+ },
260
+ {
261
+ "name": "Azerbaijan",
262
+ "alpha-2": "AZ",
263
+ "alpha-3": "AZE",
264
+ "country-code": "031"
265
+ },
266
+ {
267
+ "name": "Bahamas",
268
+ "alpha-2": "BS",
269
+ "alpha-3": "BHS",
270
+ "country-code": "044"
271
+ },
272
+ {
273
+ "name": "Bahrain",
274
+ "alpha-2": "BH",
275
+ "alpha-3": "BHR",
276
+ "country-code": "048"
277
+ },
278
+ {
279
+ "name": "Bangladesh",
280
+ "alpha-2": "BD",
281
+ "alpha-3": "BGD",
282
+ "country-code": "050"
283
+ },
284
+ {
285
+ "name": "Barbados",
286
+ "alpha-2": "BB",
287
+ "alpha-3": "BRB",
288
+ "country-code": "052"
289
+ },
290
+ {
291
+ "name": "Belarus",
292
+ "alpha-2": "BY",
293
+ "alpha-3": "BLR",
294
+ "country-code": "112"
295
+ },
296
+ {
297
+ "name": "Belgium",
298
+ "alpha-2": "BE",
299
+ "alpha-3": "BEL",
300
+ "country-code": "056"
301
+ },
302
+ {
303
+ "name": "Belize",
304
+ "alpha-2": "BZ",
305
+ "alpha-3": "BLZ",
306
+ "country-code": "084"
307
+ },
308
+ {
309
+ "name": "Benin",
310
+ "alpha-2": "BJ",
311
+ "alpha-3": "BEN",
312
+ "country-code": "204"
313
+ },
314
+ {
315
+ "name": "Bermuda",
316
+ "alpha-2": "BM",
317
+ "alpha-3": "BMU",
318
+ "country-code": "060"
319
+ },
320
+ {
321
+ "name": "Bhutan",
322
+ "alpha-2": "BT",
323
+ "alpha-3": "BTN",
324
+ "country-code": "064"
325
+ },
326
+ {
327
+ "name": "Bolivia (Plurinational State of)",
328
+ "alpha-2": "BO",
329
+ "alpha-3": "BOL",
330
+ "country-code": "068"
331
+ },
332
+ {
333
+ "name": "Bonaire, Sint Eustatius and Saba",
334
+ "alpha-2": "BQ",
335
+ "alpha-3": "BES",
336
+ "country-code": "535"
337
+ },
338
+ {
339
+ "name": "Bosnia and Herzegovina",
340
+ "alpha-2": "BA",
341
+ "alpha-3": "BIH",
342
+ "country-code": "070"
343
+ },
344
+ {
345
+ "name": "Botswana",
346
+ "alpha-2": "BW",
347
+ "alpha-3": "BWA",
348
+ "country-code": "072"
349
+ },
350
+ {
351
+ "name": "Bouvet Island",
352
+ "alpha-2": "BV",
353
+ "alpha-3": "BVT",
354
+ "country-code": "074"
355
+ },
356
+ {
357
+ "name": "Brazil",
358
+ "alpha-2": "BR",
359
+ "alpha-3": "BRA",
360
+ "country-code": "076"
361
+ },
362
+ {
363
+ "name": "British Indian Ocean Territory",
364
+ "alpha-2": "IO",
365
+ "alpha-3": "IOT",
366
+ "country-code": "086"
367
+ },
368
+ {
369
+ "name": "Brunei Darussalam",
370
+ "alpha-2": "BN",
371
+ "alpha-3": "BRN",
372
+ "country-code": "096"
373
+ },
374
+ {
375
+ "name": "Bulgaria",
376
+ "alpha-2": "BG",
377
+ "alpha-3": "BGR",
378
+ "country-code": "100"
379
+ },
380
+ {
381
+ "name": "Burkina Faso",
382
+ "alpha-2": "BF",
383
+ "alpha-3": "BFA",
384
+ "country-code": "854"
385
+ },
386
+ {
387
+ "name": "Burundi",
388
+ "alpha-2": "BI",
389
+ "alpha-3": "BDI",
390
+ "country-code": "108"
391
+ },
392
+ {
393
+ "name": "Cabo Verde",
394
+ "alpha-2": "CV",
395
+ "alpha-3": "CPV",
396
+ "country-code": "132"
397
+ },
398
+ {
399
+ "name": "Cambodia",
400
+ "alpha-2": "KH",
401
+ "alpha-3": "KHM",
402
+ "country-code": "116"
403
+ },
404
+ {
405
+ "name": "Cameroon",
406
+ "alpha-2": "CM",
407
+ "alpha-3": "CMR",
408
+ "country-code": "120"
409
+ },
410
+ {
411
+ "name": "Canada",
412
+ "alpha-2": "CA",
413
+ "alpha-3": "CAN",
414
+ "country-code": "124"
415
+ },
416
+ {
417
+ "name": "Cayman Islands",
418
+ "alpha-2": "KY",
419
+ "alpha-3": "CYM",
420
+ "country-code": "136"
421
+ },
422
+ {
423
+ "name": "Central African Republic",
424
+ "alpha-2": "CF",
425
+ "alpha-3": "CAF",
426
+ "country-code": "140"
427
+ },
428
+ {
429
+ "name": "Chad",
430
+ "alpha-2": "TD",
431
+ "alpha-3": "TCD",
432
+ "country-code": "148"
433
+ },
434
+ {
435
+ "name": "Chile",
436
+ "alpha-2": "CL",
437
+ "alpha-3": "CHL",
438
+ "country-code": "152"
439
+ },
440
+ {
441
+ "name": "China",
442
+ "alpha-2": "CN",
443
+ "alpha-3": "CHN",
444
+ "country-code": "156"
445
+ },
446
+ {
447
+ "name": "Christmas Island",
448
+ "alpha-2": "CX",
449
+ "alpha-3": "CXR",
450
+ "country-code": "162"
451
+ },
452
+ {
453
+ "name": "Cocos (Keeling) Islands",
454
+ "alpha-2": "CC",
455
+ "alpha-3": "CCK",
456
+ "country-code": "166"
457
+ },
458
+ {
459
+ "name": "Colombia",
460
+ "alpha-2": "CO",
461
+ "alpha-3": "COL",
462
+ "country-code": "170"
463
+ },
464
+ {
465
+ "name": "Comoros",
466
+ "alpha-2": "KM",
467
+ "alpha-3": "COM",
468
+ "country-code": "174"
469
+ },
470
+ {
471
+ "name": "Congo",
472
+ "alpha-2": "CG",
473
+ "alpha-3": "COG",
474
+ "country-code": "178"
475
+ },
476
+ {
477
+ "name": "Congo, Democratic Republic of the",
478
+ "alpha-2": "CD",
479
+ "alpha-3": "COD",
480
+ "country-code": "180"
481
+ },
482
+ {
483
+ "name": "Cook Islands",
484
+ "alpha-2": "CK",
485
+ "alpha-3": "COK",
486
+ "country-code": "184"
487
+ },
488
+ {
489
+ "name": "Costa Rica",
490
+ "alpha-2": "CR",
491
+ "alpha-3": "CRI",
492
+ "country-code": "188"
493
+ },
494
+ {
495
+ "name": "Côte d'Ivoire",
496
+ "alpha-2": "CI",
497
+ "alpha-3": "CIV",
498
+ "country-code": "384"
499
+ },
500
+ {
501
+ "name": "Croatia",
502
+ "alpha-2": "HR",
503
+ "alpha-3": "HRV",
504
+ "country-code": "191"
505
+ },
506
+ {
507
+ "name": "Cuba",
508
+ "alpha-2": "CU",
509
+ "alpha-3": "CUB",
510
+ "country-code": "192"
511
+ },
512
+ {
513
+ "name": "Curaçao",
514
+ "alpha-2": "CW",
515
+ "alpha-3": "CUW",
516
+ "country-code": "531"
517
+ },
518
+ {
519
+ "name": "Cyprus",
520
+ "alpha-2": "CY",
521
+ "alpha-3": "CYP",
522
+ "country-code": "196"
523
+ },
524
+ {
525
+ "name": "Czechia",
526
+ "alpha-2": "CZ",
527
+ "alpha-3": "CZE",
528
+ "country-code": "203"
529
+ },
530
+ {
531
+ "name": "Denmark",
532
+ "alpha-2": "DK",
533
+ "alpha-3": "DNK",
534
+ "country-code": "208"
535
+ },
536
+ {
537
+ "name": "Djibouti",
538
+ "alpha-2": "DJ",
539
+ "alpha-3": "DJI",
540
+ "country-code": "262"
541
+ },
542
+ {
543
+ "name": "Dominica",
544
+ "alpha-2": "DM",
545
+ "alpha-3": "DMA",
546
+ "country-code": "212"
547
+ },
548
+ {
549
+ "name": "Dominican Republic",
550
+ "alpha-2": "DO",
551
+ "alpha-3": "DOM",
552
+ "country-code": "214"
553
+ },
554
+ {
555
+ "name": "Ecuador",
556
+ "alpha-2": "EC",
557
+ "alpha-3": "ECU",
558
+ "country-code": "218"
559
+ },
560
+ {
561
+ "name": "Egypt",
562
+ "alpha-2": "EG",
563
+ "alpha-3": "EGY",
564
+ "country-code": "818"
565
+ },
566
+ {
567
+ "name": "El Salvador",
568
+ "alpha-2": "SV",
569
+ "alpha-3": "SLV",
570
+ "country-code": "222"
571
+ },
572
+ {
573
+ "name": "Equatorial Guinea",
574
+ "alpha-2": "GQ",
575
+ "alpha-3": "GNQ",
576
+ "country-code": "226"
577
+ },
578
+ {
579
+ "name": "Eritrea",
580
+ "alpha-2": "ER",
581
+ "alpha-3": "ERI",
582
+ "country-code": "232"
583
+ },
584
+ {
585
+ "name": "Estonia",
586
+ "alpha-2": "EE",
587
+ "alpha-3": "EST",
588
+ "country-code": "233"
589
+ },
590
+ {
591
+ "name": "Eswatini",
592
+ "alpha-2": "SZ",
593
+ "alpha-3": "SWZ",
594
+ "country-code": "748"
595
+ },
596
+ {
597
+ "name": "Ethiopia",
598
+ "alpha-2": "ET",
599
+ "alpha-3": "ETH",
600
+ "country-code": "231"
601
+ },
602
+ {
603
+ "name": "Falkland Islands (Malvinas)",
604
+ "alpha-2": "FK",
605
+ "alpha-3": "FLK",
606
+ "country-code": "238"
607
+ },
608
+ {
609
+ "name": "Faroe Islands",
610
+ "alpha-2": "FO",
611
+ "alpha-3": "FRO",
612
+ "country-code": "234"
613
+ },
614
+ {
615
+ "name": "Fiji",
616
+ "alpha-2": "FJ",
617
+ "alpha-3": "FJI",
618
+ "country-code": "242"
619
+ },
620
+ {
621
+ "name": "Finland",
622
+ "alpha-2": "FI",
623
+ "alpha-3": "FIN",
624
+ "country-code": "246"
625
+ },
626
+ {
627
+ "name": "France",
628
+ "alpha-2": "FR",
629
+ "alpha-3": "FRA",
630
+ "country-code": "250"
631
+ },
632
+ {
633
+ "name": "French Guiana",
634
+ "alpha-2": "GF",
635
+ "alpha-3": "GUF",
636
+ "country-code": "254"
637
+ },
638
+ {
639
+ "name": "French Polynesia",
640
+ "alpha-2": "PF",
641
+ "alpha-3": "PYF",
642
+ "country-code": "258"
643
+ },
644
+ {
645
+ "name": "French Southern Territories",
646
+ "alpha-2": "TF",
647
+ "alpha-3": "ATF",
648
+ "country-code": "260"
649
+ },
650
+ {
651
+ "name": "Gabon",
652
+ "alpha-2": "GA",
653
+ "alpha-3": "GAB",
654
+ "country-code": "266"
655
+ },
656
+ {
657
+ "name": "Gambia",
658
+ "alpha-2": "GM",
659
+ "alpha-3": "GMB",
660
+ "country-code": "270"
661
+ },
662
+ {
663
+ "name": "Georgia",
664
+ "alpha-2": "GE",
665
+ "alpha-3": "GEO",
666
+ "country-code": "268"
667
+ },
668
+ {
669
+ "name": "Germany",
670
+ "alpha-2": "DE",
671
+ "alpha-3": "DEU",
672
+ "country-code": "276"
673
+ },
674
+ {
675
+ "name": "Ghana",
676
+ "alpha-2": "GH",
677
+ "alpha-3": "GHA",
678
+ "country-code": "288"
679
+ },
680
+ {
681
+ "name": "Gibraltar",
682
+ "alpha-2": "GI",
683
+ "alpha-3": "GIB",
684
+ "country-code": "292"
685
+ },
686
+ {
687
+ "name": "Greece",
688
+ "alpha-2": "GR",
689
+ "alpha-3": "GRC",
690
+ "country-code": "300"
691
+ },
692
+ {
693
+ "name": "Greenland",
694
+ "alpha-2": "GL",
695
+ "alpha-3": "GRL",
696
+ "country-code": "304"
697
+ },
698
+ {
699
+ "name": "Grenada",
700
+ "alpha-2": "GD",
701
+ "alpha-3": "GRD",
702
+ "country-code": "308"
703
+ },
704
+ {
705
+ "name": "Guadeloupe",
706
+ "alpha-2": "GP",
707
+ "alpha-3": "GLP",
708
+ "country-code": "312"
709
+ },
710
+ {
711
+ "name": "Guam",
712
+ "alpha-2": "GU",
713
+ "alpha-3": "GUM",
714
+ "country-code": "316"
715
+ },
716
+ {
717
+ "name": "Guatemala",
718
+ "alpha-2": "GT",
719
+ "alpha-3": "GTM",
720
+ "country-code": "320"
721
+ },
722
+ {
723
+ "name": "Guernsey",
724
+ "alpha-2": "GG",
725
+ "alpha-3": "GGY",
726
+ "country-code": "831"
727
+ },
728
+ {
729
+ "name": "Guinea",
730
+ "alpha-2": "GN",
731
+ "alpha-3": "GIN",
732
+ "country-code": "324"
733
+ },
734
+ {
735
+ "name": "Guinea-Bissau",
736
+ "alpha-2": "GW",
737
+ "alpha-3": "GNB",
738
+ "country-code": "624"
739
+ },
740
+ {
741
+ "name": "Guyana",
742
+ "alpha-2": "GY",
743
+ "alpha-3": "GUY",
744
+ "country-code": "328"
745
+ },
746
+ {
747
+ "name": "Haiti",
748
+ "alpha-2": "HT",
749
+ "alpha-3": "HTI",
750
+ "country-code": "332"
751
+ },
752
+ {
753
+ "name": "Heard Island and McDonald Islands",
754
+ "alpha-2": "HM",
755
+ "alpha-3": "HMD",
756
+ "country-code": "334"
757
+ },
758
+ {
759
+ "name": "Holy See",
760
+ "alpha-2": "VA",
761
+ "alpha-3": "VAT",
762
+ "country-code": "336"
763
+ },
764
+ {
765
+ "name": "Honduras",
766
+ "alpha-2": "HN",
767
+ "alpha-3": "HND",
768
+ "country-code": "340"
769
+ },
770
+ {
771
+ "name": "Hong Kong",
772
+ "alpha-2": "HK",
773
+ "alpha-3": "HKG",
774
+ "country-code": "344"
775
+ },
776
+ {
777
+ "name": "Hungary",
778
+ "alpha-2": "HU",
779
+ "alpha-3": "HUN",
780
+ "country-code": "348"
781
+ },
782
+ {
783
+ "name": "Iceland",
784
+ "alpha-2": "IS",
785
+ "alpha-3": "ISL",
786
+ "country-code": "352"
787
+ },
788
+ {
789
+ "name": "India",
790
+ "alpha-2": "IN",
791
+ "alpha-3": "IND",
792
+ "country-code": "356"
793
+ },
794
+ {
795
+ "name": "Indonesia",
796
+ "alpha-2": "ID",
797
+ "alpha-3": "IDN",
798
+ "country-code": "360"
799
+ },
800
+ {
801
+ "name": "Iran (Islamic Republic of)",
802
+ "alpha-2": "IR",
803
+ "alpha-3": "IRN",
804
+ "country-code": "364"
805
+ },
806
+ {
807
+ "name": "Iraq",
808
+ "alpha-2": "IQ",
809
+ "alpha-3": "IRQ",
810
+ "country-code": "368"
811
+ },
812
+ {
813
+ "name": "Ireland",
814
+ "alpha-2": "IE",
815
+ "alpha-3": "IRL",
816
+ "country-code": "372"
817
+ },
818
+ {
819
+ "name": "Isle of Man",
820
+ "alpha-2": "IM",
821
+ "alpha-3": "IMN",
822
+ "country-code": "833"
823
+ },
824
+ {
825
+ "name": "Israel",
826
+ "alpha-2": "IL",
827
+ "alpha-3": "ISR",
828
+ "country-code": "376"
829
+ },
830
+ {
831
+ "name": "Italy",
832
+ "alpha-2": "IT",
833
+ "alpha-3": "ITA",
834
+ "country-code": "380"
835
+ },
836
+ {
837
+ "name": "Jamaica",
838
+ "alpha-2": "JM",
839
+ "alpha-3": "JAM",
840
+ "country-code": "388"
841
+ },
842
+ {
843
+ "name": "Japan",
844
+ "alpha-2": "JP",
845
+ "alpha-3": "JPN",
846
+ "country-code": "392"
847
+ },
848
+ {
849
+ "name": "Jersey",
850
+ "alpha-2": "JE",
851
+ "alpha-3": "JEY",
852
+ "country-code": "832"
853
+ },
854
+ {
855
+ "name": "Jordan",
856
+ "alpha-2": "JO",
857
+ "alpha-3": "JOR",
858
+ "country-code": "400"
859
+ },
860
+ {
861
+ "name": "Kazakhstan",
862
+ "alpha-2": "KZ",
863
+ "alpha-3": "KAZ",
864
+ "country-code": "398"
865
+ },
866
+ {
867
+ "name": "Kenya",
868
+ "alpha-2": "KE",
869
+ "alpha-3": "KEN",
870
+ "country-code": "404"
871
+ },
872
+ {
873
+ "name": "Kiribati",
874
+ "alpha-2": "KI",
875
+ "alpha-3": "KIR",
876
+ "country-code": "296"
877
+ },
878
+ {
879
+ "name": "Korea (Democratic People's Republic of)",
880
+ "alpha-2": "KP",
881
+ "alpha-3": "PRK",
882
+ "country-code": "408"
883
+ },
884
+ {
885
+ "name": "Korea, Republic of",
886
+ "alpha-2": "KR",
887
+ "alpha-3": "KOR",
888
+ "country-code": "410"
889
+ },
890
+ {
891
+ "name": "Kuwait",
892
+ "alpha-2": "KW",
893
+ "alpha-3": "KWT",
894
+ "country-code": "414"
895
+ },
896
+ {
897
+ "name": "Kyrgyzstan",
898
+ "alpha-2": "KG",
899
+ "alpha-3": "KGZ",
900
+ "country-code": "417"
901
+ },
902
+ {
903
+ "name": "Lao People's Democratic Republic",
904
+ "alpha-2": "LA",
905
+ "alpha-3": "LAO",
906
+ "country-code": "418"
907
+ },
908
+ {
909
+ "name": "Latvia",
910
+ "alpha-2": "LV",
911
+ "alpha-3": "LVA",
912
+ "country-code": "428"
913
+ },
914
+ {
915
+ "name": "Lebanon",
916
+ "alpha-2": "LB",
917
+ "alpha-3": "LBN",
918
+ "country-code": "422"
919
+ },
920
+ {
921
+ "name": "Lesotho",
922
+ "alpha-2": "LS",
923
+ "alpha-3": "LSO",
924
+ "country-code": "426"
925
+ },
926
+ {
927
+ "name": "Liberia",
928
+ "alpha-2": "LR",
929
+ "alpha-3": "LBR",
930
+ "country-code": "430"
931
+ },
932
+ {
933
+ "name": "Libya",
934
+ "alpha-2": "LY",
935
+ "alpha-3": "LBY",
936
+ "country-code": "434"
937
+ },
938
+ {
939
+ "name": "Liechtenstein",
940
+ "alpha-2": "LI",
941
+ "alpha-3": "LIE",
942
+ "country-code": "438"
943
+ },
944
+ {
945
+ "name": "Lithuania",
946
+ "alpha-2": "LT",
947
+ "alpha-3": "LTU",
948
+ "country-code": "440"
949
+ },
950
+ {
951
+ "name": "Luxembourg",
952
+ "alpha-2": "LU",
953
+ "alpha-3": "LUX",
954
+ "country-code": "442"
955
+ },
956
+ {
957
+ "name": "Macao",
958
+ "alpha-2": "MO",
959
+ "alpha-3": "MAC",
960
+ "country-code": "446"
961
+ },
962
+ {
963
+ "name": "Madagascar",
964
+ "alpha-2": "MG",
965
+ "alpha-3": "MDG",
966
+ "country-code": "450"
967
+ },
968
+ {
969
+ "name": "Malawi",
970
+ "alpha-2": "MW",
971
+ "alpha-3": "MWI",
972
+ "country-code": "454"
973
+ },
974
+ {
975
+ "name": "Malaysia",
976
+ "alpha-2": "MY",
977
+ "alpha-3": "MYS",
978
+ "country-code": "458"
979
+ },
980
+ {
981
+ "name": "Maldives",
982
+ "alpha-2": "MV",
983
+ "alpha-3": "MDV",
984
+ "country-code": "462"
985
+ },
986
+ {
987
+ "name": "Mali",
988
+ "alpha-2": "ML",
989
+ "alpha-3": "MLI",
990
+ "country-code": "466"
991
+ },
992
+ {
993
+ "name": "Malta",
994
+ "alpha-2": "MT",
995
+ "alpha-3": "MLT",
996
+ "country-code": "470"
997
+ },
998
+ {
999
+ "name": "Marshall Islands",
1000
+ "alpha-2": "MH",
1001
+ "alpha-3": "MHL",
1002
+ "country-code": "584"
1003
+ },
1004
+ {
1005
+ "name": "Martinique",
1006
+ "alpha-2": "MQ",
1007
+ "alpha-3": "MTQ",
1008
+ "country-code": "474"
1009
+ },
1010
+ {
1011
+ "name": "Mauritania",
1012
+ "alpha-2": "MR",
1013
+ "alpha-3": "MRT",
1014
+ "country-code": "478"
1015
+ },
1016
+ {
1017
+ "name": "Mauritius",
1018
+ "alpha-2": "MU",
1019
+ "alpha-3": "MUS",
1020
+ "country-code": "480"
1021
+ },
1022
+ {
1023
+ "name": "Mayotte",
1024
+ "alpha-2": "YT",
1025
+ "alpha-3": "MYT",
1026
+ "country-code": "175"
1027
+ },
1028
+ {
1029
+ "name": "Mexico",
1030
+ "alpha-2": "MX",
1031
+ "alpha-3": "MEX",
1032
+ "country-code": "484"
1033
+ },
1034
+ {
1035
+ "name": "Micronesia (Federated States of)",
1036
+ "alpha-2": "FM",
1037
+ "alpha-3": "FSM",
1038
+ "country-code": "583"
1039
+ },
1040
+ {
1041
+ "name": "Moldova, Republic of",
1042
+ "alpha-2": "MD",
1043
+ "alpha-3": "MDA",
1044
+ "country-code": "498"
1045
+ },
1046
+ {
1047
+ "name": "Monaco",
1048
+ "alpha-2": "MC",
1049
+ "alpha-3": "MCO",
1050
+ "country-code": "492"
1051
+ },
1052
+ {
1053
+ "name": "Mongolia",
1054
+ "alpha-2": "MN",
1055
+ "alpha-3": "MNG",
1056
+ "country-code": "496"
1057
+ },
1058
+ {
1059
+ "name": "Montenegro",
1060
+ "alpha-2": "ME",
1061
+ "alpha-3": "MNE",
1062
+ "country-code": "499"
1063
+ },
1064
+ {
1065
+ "name": "Montserrat",
1066
+ "alpha-2": "MS",
1067
+ "alpha-3": "MSR",
1068
+ "country-code": "500"
1069
+ },
1070
+ {
1071
+ "name": "Morocco",
1072
+ "alpha-2": "MA",
1073
+ "alpha-3": "MAR",
1074
+ "country-code": "504"
1075
+ },
1076
+ {
1077
+ "name": "Mozambique",
1078
+ "alpha-2": "MZ",
1079
+ "alpha-3": "MOZ",
1080
+ "country-code": "508"
1081
+ },
1082
+ {
1083
+ "name": "Myanmar",
1084
+ "alpha-2": "MM",
1085
+ "alpha-3": "MMR",
1086
+ "country-code": "104"
1087
+ },
1088
+ {
1089
+ "name": "Namibia",
1090
+ "alpha-2": "NA",
1091
+ "alpha-3": "NAM",
1092
+ "country-code": "516"
1093
+ },
1094
+ {
1095
+ "name": "Nauru",
1096
+ "alpha-2": "NR",
1097
+ "alpha-3": "NRU",
1098
+ "country-code": "520"
1099
+ },
1100
+ {
1101
+ "name": "Nepal",
1102
+ "alpha-2": "NP",
1103
+ "alpha-3": "NPL",
1104
+ "country-code": "524"
1105
+ },
1106
+ {
1107
+ "name": "Netherlands",
1108
+ "alpha-2": "NL",
1109
+ "alpha-3": "NLD",
1110
+ "country-code": "528"
1111
+ },
1112
+ {
1113
+ "name": "New Caledonia",
1114
+ "alpha-2": "NC",
1115
+ "alpha-3": "NCL",
1116
+ "country-code": "540"
1117
+ },
1118
+ {
1119
+ "name": "New Zealand",
1120
+ "alpha-2": "NZ",
1121
+ "alpha-3": "NZL",
1122
+ "country-code": "554"
1123
+ },
1124
+ {
1125
+ "name": "Nicaragua",
1126
+ "alpha-2": "NI",
1127
+ "alpha-3": "NIC",
1128
+ "country-code": "558"
1129
+ },
1130
+ {
1131
+ "name": "Niger",
1132
+ "alpha-2": "NE",
1133
+ "alpha-3": "NER",
1134
+ "country-code": "562"
1135
+ },
1136
+ {
1137
+ "name": "Nigeria",
1138
+ "alpha-2": "NG",
1139
+ "alpha-3": "NGA",
1140
+ "country-code": "566"
1141
+ },
1142
+ {
1143
+ "name": "Niue",
1144
+ "alpha-2": "NU",
1145
+ "alpha-3": "NIU",
1146
+ "country-code": "570"
1147
+ },
1148
+ {
1149
+ "name": "Norfolk Island",
1150
+ "alpha-2": "NF",
1151
+ "alpha-3": "NFK",
1152
+ "country-code": "574"
1153
+ },
1154
+ {
1155
+ "name": "North Macedonia",
1156
+ "alpha-2": "MK",
1157
+ "alpha-3": "MKD",
1158
+ "country-code": "807"
1159
+ },
1160
+ {
1161
+ "name": "Northern Mariana Islands",
1162
+ "alpha-2": "MP",
1163
+ "alpha-3": "MNP",
1164
+ "country-code": "580"
1165
+ },
1166
+ {
1167
+ "name": "Norway",
1168
+ "alpha-2": "NO",
1169
+ "alpha-3": "NOR",
1170
+ "country-code": "578"
1171
+ },
1172
+ {
1173
+ "name": "Oman",
1174
+ "alpha-2": "OM",
1175
+ "alpha-3": "OMN",
1176
+ "country-code": "512"
1177
+ },
1178
+ {
1179
+ "name": "Pakistan",
1180
+ "alpha-2": "PK",
1181
+ "alpha-3": "PAK",
1182
+ "country-code": "586"
1183
+ },
1184
+ {
1185
+ "name": "Palau",
1186
+ "alpha-2": "PW",
1187
+ "alpha-3": "PLW",
1188
+ "country-code": "585"
1189
+ },
1190
+ {
1191
+ "name": "Palestine, State of",
1192
+ "alpha-2": "PS",
1193
+ "alpha-3": "PSE",
1194
+ "country-code": "275"
1195
+ },
1196
+ {
1197
+ "name": "Panama",
1198
+ "alpha-2": "PA",
1199
+ "alpha-3": "PAN",
1200
+ "country-code": "591"
1201
+ },
1202
+ {
1203
+ "name": "Papua New Guinea",
1204
+ "alpha-2": "PG",
1205
+ "alpha-3": "PNG",
1206
+ "country-code": "598"
1207
+ },
1208
+ {
1209
+ "name": "Paraguay",
1210
+ "alpha-2": "PY",
1211
+ "alpha-3": "PRY",
1212
+ "country-code": "600"
1213
+ },
1214
+ {
1215
+ "name": "Peru",
1216
+ "alpha-2": "PE",
1217
+ "alpha-3": "PER",
1218
+ "country-code": "604"
1219
+ },
1220
+ {
1221
+ "name": "Philippines",
1222
+ "alpha-2": "PH",
1223
+ "alpha-3": "PHL",
1224
+ "country-code": "608"
1225
+ },
1226
+ {
1227
+ "name": "Pitcairn",
1228
+ "alpha-2": "PN",
1229
+ "alpha-3": "PCN",
1230
+ "country-code": "612"
1231
+ },
1232
+ {
1233
+ "name": "Poland",
1234
+ "alpha-2": "PL",
1235
+ "alpha-3": "POL",
1236
+ "country-code": "616"
1237
+ },
1238
+ {
1239
+ "name": "Portugal",
1240
+ "alpha-2": "PT",
1241
+ "alpha-3": "PRT",
1242
+ "country-code": "620"
1243
+ },
1244
+ {
1245
+ "name": "Puerto Rico",
1246
+ "alpha-2": "PR",
1247
+ "alpha-3": "PRI",
1248
+ "country-code": "630"
1249
+ },
1250
+ {
1251
+ "name": "Qatar",
1252
+ "alpha-2": "QA",
1253
+ "alpha-3": "QAT",
1254
+ "country-code": "634"
1255
+ },
1256
+ {
1257
+ "name": "Réunion",
1258
+ "alpha-2": "RE",
1259
+ "alpha-3": "REU",
1260
+ "country-code": "638"
1261
+ },
1262
+ {
1263
+ "name": "Romania",
1264
+ "alpha-2": "RO",
1265
+ "alpha-3": "ROU",
1266
+ "country-code": "642"
1267
+ },
1268
+ {
1269
+ "name": "Russian Federation",
1270
+ "alpha-2": "RU",
1271
+ "alpha-3": "RUS",
1272
+ "country-code": "643"
1273
+ },
1274
+ {
1275
+ "name": "Rwanda",
1276
+ "alpha-2": "RW",
1277
+ "alpha-3": "RWA",
1278
+ "country-code": "646"
1279
+ },
1280
+ {
1281
+ "name": "Saint Barthélemy",
1282
+ "alpha-2": "BL",
1283
+ "alpha-3": "BLM",
1284
+ "country-code": "652"
1285
+ },
1286
+ {
1287
+ "name": "Saint Helena, Ascension and Tristan da Cunha",
1288
+ "alpha-2": "SH",
1289
+ "alpha-3": "SHN",
1290
+ "country-code": "654"
1291
+ },
1292
+ {
1293
+ "name": "Saint Kitts and Nevis",
1294
+ "alpha-2": "KN",
1295
+ "alpha-3": "KNA",
1296
+ "country-code": "659"
1297
+ },
1298
+ {
1299
+ "name": "Saint Lucia",
1300
+ "alpha-2": "LC",
1301
+ "alpha-3": "LCA",
1302
+ "country-code": "662"
1303
+ },
1304
+ {
1305
+ "name": "Saint Martin (French part)",
1306
+ "alpha-2": "MF",
1307
+ "alpha-3": "MAF",
1308
+ "country-code": "663"
1309
+ },
1310
+ {
1311
+ "name": "Saint Pierre and Miquelon",
1312
+ "alpha-2": "PM",
1313
+ "alpha-3": "SPM",
1314
+ "country-code": "666"
1315
+ },
1316
+ {
1317
+ "name": "Saint Vincent and the Grenadines",
1318
+ "alpha-2": "VC",
1319
+ "alpha-3": "VCT",
1320
+ "country-code": "670"
1321
+ },
1322
+ {
1323
+ "name": "Samoa",
1324
+ "alpha-2": "WS",
1325
+ "alpha-3": "WSM",
1326
+ "country-code": "882"
1327
+ },
1328
+ {
1329
+ "name": "San Marino",
1330
+ "alpha-2": "SM",
1331
+ "alpha-3": "SMR",
1332
+ "country-code": "674"
1333
+ },
1334
+ {
1335
+ "name": "Sao Tome and Principe",
1336
+ "alpha-2": "ST",
1337
+ "alpha-3": "STP",
1338
+ "country-code": "678"
1339
+ },
1340
+ {
1341
+ "name": "Saudi Arabia",
1342
+ "alpha-2": "SA",
1343
+ "alpha-3": "SAU",
1344
+ "country-code": "682"
1345
+ },
1346
+ {
1347
+ "name": "Senegal",
1348
+ "alpha-2": "SN",
1349
+ "alpha-3": "SEN",
1350
+ "country-code": "686"
1351
+ },
1352
+ {
1353
+ "name": "Serbia",
1354
+ "alpha-2": "RS",
1355
+ "alpha-3": "SRB",
1356
+ "country-code": "688"
1357
+ },
1358
+ {
1359
+ "name": "Seychelles",
1360
+ "alpha-2": "SC",
1361
+ "alpha-3": "SYC",
1362
+ "country-code": "690"
1363
+ },
1364
+ {
1365
+ "name": "Sierra Leone",
1366
+ "alpha-2": "SL",
1367
+ "alpha-3": "SLE",
1368
+ "country-code": "694"
1369
+ },
1370
+ {
1371
+ "name": "Singapore",
1372
+ "alpha-2": "SG",
1373
+ "alpha-3": "SGP",
1374
+ "country-code": "702"
1375
+ },
1376
+ {
1377
+ "name": "Sint Maarten (Dutch part)",
1378
+ "alpha-2": "SX",
1379
+ "alpha-3": "SXM",
1380
+ "country-code": "534"
1381
+ },
1382
+ {
1383
+ "name": "Slovakia",
1384
+ "alpha-2": "SK",
1385
+ "alpha-3": "SVK",
1386
+ "country-code": "703"
1387
+ },
1388
+ {
1389
+ "name": "Slovenia",
1390
+ "alpha-2": "SI",
1391
+ "alpha-3": "SVN",
1392
+ "country-code": "705"
1393
+ },
1394
+ {
1395
+ "name": "Solomon Islands",
1396
+ "alpha-2": "SB",
1397
+ "alpha-3": "SLB",
1398
+ "country-code": "090"
1399
+ },
1400
+ {
1401
+ "name": "Somalia",
1402
+ "alpha-2": "SO",
1403
+ "alpha-3": "SOM",
1404
+ "country-code": "706"
1405
+ },
1406
+ {
1407
+ "name": "South Africa",
1408
+ "alpha-2": "ZA",
1409
+ "alpha-3": "ZAF",
1410
+ "country-code": "710"
1411
+ },
1412
+ {
1413
+ "name": "South Georgia and the South Sandwich Islands",
1414
+ "alpha-2": "GS",
1415
+ "alpha-3": "SGS",
1416
+ "country-code": "239"
1417
+ },
1418
+ {
1419
+ "name": "South Sudan",
1420
+ "alpha-2": "SS",
1421
+ "alpha-3": "SSD",
1422
+ "country-code": "728"
1423
+ },
1424
+ {
1425
+ "name": "Spain",
1426
+ "alpha-2": "ES",
1427
+ "alpha-3": "ESP",
1428
+ "country-code": "724"
1429
+ },
1430
+ {
1431
+ "name": "Sri Lanka",
1432
+ "alpha-2": "LK",
1433
+ "alpha-3": "LKA",
1434
+ "country-code": "144"
1435
+ },
1436
+ {
1437
+ "name": "Sudan",
1438
+ "alpha-2": "SD",
1439
+ "alpha-3": "SDN",
1440
+ "country-code": "729"
1441
+ },
1442
+ {
1443
+ "name": "Suriname",
1444
+ "alpha-2": "SR",
1445
+ "alpha-3": "SUR",
1446
+ "country-code": "740"
1447
+ },
1448
+ {
1449
+ "name": "Svalbard and Jan Mayen",
1450
+ "alpha-2": "SJ",
1451
+ "alpha-3": "SJM",
1452
+ "country-code": "744"
1453
+ },
1454
+ {
1455
+ "name": "Sweden",
1456
+ "alpha-2": "SE",
1457
+ "alpha-3": "SWE",
1458
+ "country-code": "752"
1459
+ },
1460
+ {
1461
+ "name": "Switzerland",
1462
+ "alpha-2": "CH",
1463
+ "alpha-3": "CHE",
1464
+ "country-code": "756"
1465
+ },
1466
+ {
1467
+ "name": "Syrian Arab Republic",
1468
+ "alpha-2": "SY",
1469
+ "alpha-3": "SYR",
1470
+ "country-code": "760"
1471
+ },
1472
+ {
1473
+ "name": "Taiwan",
1474
+ "alpha-2": "TW",
1475
+ "alpha-3": "TWN",
1476
+ "country-code": "158"
1477
+ },
1478
+ {
1479
+ "name": "Tajikistan",
1480
+ "alpha-2": "TJ",
1481
+ "alpha-3": "TJK",
1482
+ "country-code": "762"
1483
+ },
1484
+ {
1485
+ "name": "Tanzania, United Republic of",
1486
+ "alpha-2": "TZ",
1487
+ "alpha-3": "TZA",
1488
+ "country-code": "834"
1489
+ },
1490
+ {
1491
+ "name": "Thailand",
1492
+ "alpha-2": "TH",
1493
+ "alpha-3": "THA",
1494
+ "country-code": "764"
1495
+ },
1496
+ {
1497
+ "name": "Timor-Leste",
1498
+ "alpha-2": "TL",
1499
+ "alpha-3": "TLS",
1500
+ "country-code": "626"
1501
+ },
1502
+ {
1503
+ "name": "Togo",
1504
+ "alpha-2": "TG",
1505
+ "alpha-3": "TGO",
1506
+ "country-code": "768"
1507
+ },
1508
+ {
1509
+ "name": "Tokelau",
1510
+ "alpha-2": "TK",
1511
+ "alpha-3": "TKL",
1512
+ "country-code": "772"
1513
+ },
1514
+ {
1515
+ "name": "Tonga",
1516
+ "alpha-2": "TO",
1517
+ "alpha-3": "TON",
1518
+ "country-code": "776"
1519
+ },
1520
+ {
1521
+ "name": "Trinidad and Tobago",
1522
+ "alpha-2": "TT",
1523
+ "alpha-3": "TTO",
1524
+ "country-code": "780"
1525
+ },
1526
+ {
1527
+ "name": "Tunisia",
1528
+ "alpha-2": "TN",
1529
+ "alpha-3": "TUN",
1530
+ "country-code": "788"
1531
+ },
1532
+ {
1533
+ "name": "Turkey",
1534
+ "alpha-2": "TR",
1535
+ "alpha-3": "TUR",
1536
+ "country-code": "792"
1537
+ },
1538
+ {
1539
+ "name": "Turkmenistan",
1540
+ "alpha-2": "TM",
1541
+ "alpha-3": "TKM",
1542
+ "country-code": "795"
1543
+ },
1544
+ {
1545
+ "name": "Turks and Caicos Islands",
1546
+ "alpha-2": "TC",
1547
+ "alpha-3": "TCA",
1548
+ "country-code": "796"
1549
+ },
1550
+ {
1551
+ "name": "Tuvalu",
1552
+ "alpha-2": "TV",
1553
+ "alpha-3": "TUV",
1554
+ "country-code": "798"
1555
+ },
1556
+ {
1557
+ "name": "Uganda",
1558
+ "alpha-2": "UG",
1559
+ "alpha-3": "UGA",
1560
+ "country-code": "800"
1561
+ },
1562
+ {
1563
+ "name": "Ukraine",
1564
+ "alpha-2": "UA",
1565
+ "alpha-3": "UKR",
1566
+ "country-code": "804"
1567
+ },
1568
+ {
1569
+ "name": "United Arab Emirates",
1570
+ "alpha-2": "AE",
1571
+ "alpha-3": "ARE",
1572
+ "country-code": "784"
1573
+ },
1574
+ {
1575
+ "name": "United Kingdom",
1576
+ "alpha-2": "GB",
1577
+ "alpha-3": "GBR",
1578
+ "country-code": "826"
1579
+ },
1580
+ {
1581
+ "name": "America",
1582
+ "alpha-2": "US",
1583
+ "alpha-3": "USA",
1584
+ "country-code": "840"
1585
+ },
1586
+ {
1587
+ "name": "United States Minor Outlying Islands",
1588
+ "alpha-2": "UM",
1589
+ "alpha-3": "UMI",
1590
+ "country-code": "581"
1591
+ },
1592
+ {
1593
+ "name": "Uruguay",
1594
+ "alpha-2": "UY",
1595
+ "alpha-3": "URY",
1596
+ "country-code": "858"
1597
+ },
1598
+ {
1599
+ "name": "Uzbekistan",
1600
+ "alpha-2": "UZ",
1601
+ "alpha-3": "UZB",
1602
+ "country-code": "860"
1603
+ },
1604
+ {
1605
+ "name": "Vanuatu",
1606
+ "alpha-2": "VU",
1607
+ "alpha-3": "VUT",
1608
+ "country-code": "548"
1609
+ },
1610
+ {
1611
+ "name": "Venezuela (Bolivarian Republic of)",
1612
+ "alpha-2": "VE",
1613
+ "alpha-3": "VEN",
1614
+ "country-code": "862"
1615
+ },
1616
+ {
1617
+ "name": "Vietnam",
1618
+ "alpha-2": "VN",
1619
+ "alpha-3": "VNM",
1620
+ "country-code": "704"
1621
+ },
1622
+ {
1623
+ "name": "Virgin Islands (British)",
1624
+ "alpha-2": "VG",
1625
+ "alpha-3": "VGB",
1626
+ "country-code": "092"
1627
+ },
1628
+ {
1629
+ "name": "Virgin Islands (U.S.)",
1630
+ "alpha-2": "VI",
1631
+ "alpha-3": "VIR",
1632
+ "country-code": "850"
1633
+ },
1634
+ {
1635
+ "name": "Wallis and Futuna",
1636
+ "alpha-2": "WF",
1637
+ "alpha-3": "WLF",
1638
+ "country-code": "876"
1639
+ },
1640
+ {
1641
+ "name": "Western Sahara",
1642
+ "alpha-2": "EH",
1643
+ "alpha-3": "ESH",
1644
+ "country-code": "732"
1645
+ },
1646
+ {
1647
+ "name": "Yemen",
1648
+ "alpha-2": "YE",
1649
+ "alpha-3": "YEM",
1650
+ "country-code": "887"
1651
+ },
1652
+ {
1653
+ "name": "Zambia",
1654
+ "alpha-2": "ZM",
1655
+ "alpha-3": "ZMB",
1656
+ "country-code": "894"
1657
+ },
1658
+ {
1659
+ "name": "Zimbabwe",
1660
+ "alpha-2": "ZW",
1661
+ "alpha-3": "ZWE",
1662
+ "country-code": "716"
1663
+ }
1664
+ ];
1665
+
1666
+ //#endregion
1667
+ //#region src/query/constants.ts
1668
+ const Device = {
1669
+ MOBILE: "MOBILE",
1670
+ DESKTOP: "DESKTOP",
1671
+ TABLET: "TABLET"
1672
+ };
1673
+ const Country = Object.fromEntries(countries_default.map((c) => [c["alpha-3"], c["alpha-3"].toLowerCase()]));
1674
+
1675
+ //#endregion
1676
+ //#region src/query/operators.ts
1677
+ function eq(column, value) {
1678
+ return {
1679
+ _constraints: {},
1680
+ _filters: [{
1681
+ dimension: column.dimension,
1682
+ operator: "equals",
1683
+ expression: String(value)
1684
+ }]
1685
+ };
1686
+ }
1687
+ function ne(column, value) {
1688
+ return {
1689
+ _constraints: {},
1690
+ _filters: [{
1691
+ dimension: column.dimension,
1692
+ operator: "notEquals",
1693
+ expression: String(value)
1694
+ }]
1695
+ };
1696
+ }
1697
+ function inArray(column, values) {
1698
+ return {
1699
+ _constraints: {},
1700
+ _filters: values.map((v) => ({
1701
+ dimension: column.dimension,
1702
+ operator: "equals",
1703
+ expression: String(v)
1704
+ })),
1705
+ _groupType: "or"
1706
+ };
1707
+ }
1708
+ function contains(column, pattern) {
1709
+ return {
1710
+ _constraints: {},
1711
+ _filters: [{
1712
+ dimension: column.dimension,
1713
+ operator: "contains",
1714
+ expression: pattern
1715
+ }]
1716
+ };
1717
+ }
1718
+ function like(column, pattern) {
1719
+ return {
1720
+ _constraints: {},
1721
+ _filters: [{
1722
+ dimension: column.dimension,
1723
+ operator: "contains",
1724
+ expression: pattern.replace(/%/g, "")
1725
+ }]
1726
+ };
1727
+ }
1728
+ function regex(column, pattern) {
1729
+ return {
1730
+ _constraints: {},
1731
+ _filters: [{
1732
+ dimension: column.dimension,
1733
+ operator: "includingRegex",
1734
+ expression: typeof pattern === "string" ? pattern : pattern.source
1735
+ }]
1736
+ };
1737
+ }
1738
+ function notRegex(column, pattern) {
1739
+ return {
1740
+ _constraints: {},
1741
+ _filters: [{
1742
+ dimension: column.dimension,
1743
+ operator: "excludingRegex",
1744
+ expression: typeof pattern === "string" ? pattern : pattern.source
1745
+ }]
1746
+ };
1747
+ }
1748
+ function and(...filters) {
1749
+ return {
1750
+ _constraints: {},
1751
+ _filters: filters.flatMap((f) => f._filters),
1752
+ _groupType: "and"
1753
+ };
1754
+ }
1755
+ function or(...filters) {
1756
+ return {
1757
+ _constraints: {},
1758
+ _filters: filters.flatMap((f) => f._filters),
1759
+ _groupType: "or"
1760
+ };
1761
+ }
1762
+ const DATE_OPS = [
1763
+ "gte",
1764
+ "gt",
1765
+ "lte",
1766
+ "lt",
1767
+ "between"
1768
+ ];
1769
+ function not(filter) {
1770
+ return {
1771
+ _constraints: {},
1772
+ _filters: filter._filters.filter((f) => !DATE_OPS.includes(f.operator)).map((f) => ({
1773
+ ...f,
1774
+ operator: invertOperator(f.operator)
1775
+ }))
1776
+ };
1777
+ }
1778
+ function invertOperator(op) {
1779
+ return {
1780
+ equals: "notEquals",
1781
+ notEquals: "equals",
1782
+ contains: "notContains",
1783
+ notContains: "contains",
1784
+ includingRegex: "excludingRegex",
1785
+ excludingRegex: "includingRegex"
1786
+ }[op];
1787
+ }
1788
+ function gte(column, value) {
1789
+ return {
1790
+ _constraints: {},
1791
+ _filters: [{
1792
+ dimension: column.dimension,
1793
+ operator: "gte",
1794
+ expression: String(value)
1795
+ }]
1796
+ };
1797
+ }
1798
+ function gt(column, value) {
1799
+ return {
1800
+ _constraints: {},
1801
+ _filters: [{
1802
+ dimension: column.dimension,
1803
+ operator: "gt",
1804
+ expression: String(value)
1805
+ }]
1806
+ };
1807
+ }
1808
+ function lte(column, value) {
1809
+ return {
1810
+ _constraints: {},
1811
+ _filters: [{
1812
+ dimension: column.dimension,
1813
+ operator: "lte",
1814
+ expression: String(value)
1815
+ }]
1816
+ };
1817
+ }
1818
+ function lt(column, value) {
1819
+ return {
1820
+ _constraints: {},
1821
+ _filters: [{
1822
+ dimension: column.dimension,
1823
+ operator: "lt",
1824
+ expression: String(value)
1825
+ }]
1826
+ };
1827
+ }
1828
+ function between(column, start, end) {
1829
+ return {
1830
+ _constraints: {},
1831
+ _filters: [{
1832
+ dimension: column.dimension,
1833
+ operator: "between",
1834
+ expression: String(start),
1835
+ expression2: String(end)
1836
+ }]
1837
+ };
1838
+ }
1839
+
1840
+ //#endregion
1841
+ export { Country, Device, and, between, contains, country, date, device, eq, extractDateRange, gsc, gt, gte, inArray, like, lt, lte, ne, not, notRegex, or, page, query, regex, searchAppearance };