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