@ak--47/dungeon-master 1.0.0

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.
Files changed (66) hide show
  1. package/README.md +518 -0
  2. package/dungeons/array-of-object-lookup-schema.json +327 -0
  3. package/dungeons/array-of-object-lookup.js +220 -0
  4. package/dungeons/ecommerce-schema.json +462 -0
  5. package/dungeons/ecommerce.js +447 -0
  6. package/dungeons/education-schema.json +2409 -0
  7. package/dungeons/education.js +768 -0
  8. package/dungeons/fintech-schema.json +14034 -0
  9. package/dungeons/fintech.js +696 -0
  10. package/dungeons/foobar-schema.json +403 -0
  11. package/dungeons/foobar.js +296 -0
  12. package/dungeons/food-delivery-schema.json +192 -0
  13. package/dungeons/food-delivery.js +602 -0
  14. package/dungeons/food-schema.json +1152 -0
  15. package/dungeons/food.js +754 -0
  16. package/dungeons/gaming-schema.json +1270 -0
  17. package/dungeons/gaming.js +508 -0
  18. package/dungeons/insurance-application-schema.json +204 -0
  19. package/dungeons/insurance-application.js +605 -0
  20. package/dungeons/media-schema.json +906 -0
  21. package/dungeons/media.js +790 -0
  22. package/dungeons/retention-cadence-schema.json +78 -0
  23. package/dungeons/retention-cadence.js +244 -0
  24. package/dungeons/rpg-schema.json +4526 -0
  25. package/dungeons/rpg.js +919 -0
  26. package/dungeons/sanity-schema.json +255 -0
  27. package/dungeons/sanity.js +152 -0
  28. package/dungeons/sass-schema.json +1291 -0
  29. package/dungeons/sass.js +795 -0
  30. package/dungeons/scd-schema.json +919 -0
  31. package/dungeons/scd.js +277 -0
  32. package/dungeons/simple-schema.json +608 -0
  33. package/dungeons/simple.js +285 -0
  34. package/dungeons/simplest-schema.json +1418 -0
  35. package/dungeons/simplest.js +392 -0
  36. package/dungeons/social-schema.json +1118 -0
  37. package/dungeons/social.js +686 -0
  38. package/dungeons/text-generation-schema.json +3096 -0
  39. package/dungeons/text-generation.js +812 -0
  40. package/index.js +567 -0
  41. package/lib/core/config-validator.js +395 -0
  42. package/lib/core/context.js +204 -0
  43. package/lib/core/dungeon-loader.js +337 -0
  44. package/lib/core/storage.js +379 -0
  45. package/lib/generators/adspend.js +132 -0
  46. package/lib/generators/events.js +271 -0
  47. package/lib/generators/funnels.js +407 -0
  48. package/lib/generators/mirror.js +167 -0
  49. package/lib/generators/product-lookup.js +262 -0
  50. package/lib/generators/product-names.js +195 -0
  51. package/lib/generators/profiles.js +93 -0
  52. package/lib/generators/scd.js +124 -0
  53. package/lib/generators/text.js +1192 -0
  54. package/lib/orchestrators/mixpanel-sender.js +266 -0
  55. package/lib/orchestrators/user-loop.js +335 -0
  56. package/lib/templates/abbreviated.d.ts +169 -0
  57. package/lib/templates/defaults.js +1405 -0
  58. package/lib/templates/phrases.js +2526 -0
  59. package/lib/templates/schema.d.ts +173 -0
  60. package/lib/templates/soup-presets.js +188 -0
  61. package/lib/utils/function-registry.js +302 -0
  62. package/lib/utils/json-evaluator.js +172 -0
  63. package/lib/utils/logger.js +34 -0
  64. package/lib/utils/utils.js +1490 -0
  65. package/package.json +89 -0
  66. package/types.d.ts +865 -0
@@ -0,0 +1,1405 @@
1
+ /* cSpell:disable */
2
+ /**
3
+ * Default data sets for generating realistic test data
4
+ * @fileoverview Contains default values for campaigns, devices, locations, and domains
5
+ */
6
+
7
+ /** @typedef {import('../../types.js').Dungeon} Config */
8
+ /** @typedef {import('../../types.js').ValueValid} ValueValid */
9
+
10
+ //? https://docs.mixpanel.com/docs/data-structure/property-reference#default-properties
11
+
12
+ const domainSuffix = ["com", "com", "com", "com", "net", "org", "net", "org", "io", "co", "co.uk", "us", "biz", "info", "gov", "edu"];
13
+ const domainPrefix = ["gmail", "gmail", "gmail", "gmail", "gmail", "gmail", "yahoo", "yahoo", "icloud", "icloud", "icloud", "icloud", "hotmail", "hotmail", "gmail", "gmail", "gmail", "gmail", "gmail", "gmail", "yahoo", "yahoo", "icloud", "icloud", "icloud", "hotmail", "hotmail", "outlook", "aol", "outlook", "aol", "protonmail", "zoho", "gmx", "yandex", "mail", "inbox", "fastmail", "tutanota", "mailfence", "disroot", "riseup", "posteo", "runbox", "kolabnow", "mailbox", "scryptmail", "ctemplar", "countermail", "hushmail", "startmail", "privatemail"];
14
+
15
+ const campaigns = [
16
+ {
17
+ utm_campaign: ["$organic"],
18
+ utm_medium: ["$organic"],
19
+ utm_source: ["$organic"],
20
+ utm_content: ["$organic"],
21
+ utm_term: ["$organic"]
22
+ },
23
+ {
24
+ utm_source: ["snapchat"],
25
+ utm_campaign: ["sc_free_trial", "sc_discount_US", "sc_spring_sale", "sc_cyber_monday", "sc_lookalike_audience"],
26
+ utm_medium: ["promoted_tweet", "sponsored_post", "sidebar_ad", "search_ad"],
27
+ utm_content: ["sc_control_group", "sc_variant_A", "sc_variant_B", "sc_variant_C", "sc_variant_D"],
28
+ utm_term: ["sc_jan_feb", "sc_mar_apr", "sc_may_jun", "sc_jul_aug", "sc_sep_oct", "sc_nov_dec"]
29
+ },
30
+ {
31
+ utm_source: ["linkedin"],
32
+ utm_campaign: ["li_free_trial", "li_discount_US", "li_fall_sale", "li_holiday_special", "li_lookalike_audience"],
33
+ utm_medium: ["influencer_post", "promoted_content", "sidebar_ad", "search_ad"],
34
+ utm_content: ["li_control_group", "li_variant_A", "li_variant_B", "li_variant_C", "li_variant_D"],
35
+ utm_term: ["li_jan_feb", "li_mar_apr", "li_may_jun", "li_jul_aug", "li_sep_oct", "li_nov_dec"]
36
+ },
37
+ {
38
+ utm_source: ["instagram"],
39
+ utm_campaign: ["ig_free_trial", "ig_discount_US", "ig_winter_sale", "ig_flash_sale", "ig_lookalike_audience"],
40
+ utm_medium: ["story_ad", "influencer_post", "promoted_post", "search_ad"],
41
+ utm_content: ["ig_control_group", "ig_variant_A", "ig_variant_B", "ig_variant_C", "ig_variant_D"],
42
+ utm_term: ["ig_jan_feb", "ig_mar_apr", "ig_may_jun", "ig_jul_aug", "ig_sep_oct", "ig_nov_dec"]
43
+ },
44
+ {
45
+ utm_source: ["google"],
46
+ utm_campaign: ["ga_free_trial", "ga_discount_US", "ga_spring_promo", "ga_summer_promo", "ga_lookalike_audience"],
47
+ utm_medium: ["search_ad", "display_ad", "sidebar_ad"],
48
+ utm_content: ["ga_control_group", "ga_variant_A", "ga_variant_B", "ga_variant_C", "ga_variant_D"],
49
+ utm_term: ["ga_jan_feb", "ga_mar_apr", "ga_may_jun", "ga_jul_aug", "ga_sep_oct", "ga_nov_dec"]
50
+ },
51
+ {
52
+ utm_source: ["youtube"],
53
+ utm_campaign: ["yt_free_trial", "yt_discount_US", "yt_autumn_promo", "yt_end_of_year", "yt_lookalike_audience"],
54
+ utm_medium: ["video_ad", "display_ad", "sidebar_ad"],
55
+ utm_content: ["yt_control_group", "yt_variant_A", "yt_variant_B", "yt_variant_C", "yt_variant_D"],
56
+ utm_term: ["yt_jan_feb", "yt_mar_apr", "yt_may_jun", "yt_jul_aug", "yt_sep_oct", "yt_nov_dec"]
57
+ },
58
+ {
59
+ utm_source: ["tiktok"],
60
+ utm_campaign: ["tt_free_trial", "tt_discount_US", "tt_flash_sale", "tt_special_offer", "tt_lookalike_audience"],
61
+ utm_medium: ["video_ad", "promoted_content", "sidebar_ad"],
62
+ utm_content: ["tt_control_group", "tt_variant_A", "tt_variant_B", "tt_variant_C", "tt_variant_D"],
63
+ utm_term: ["tt_jan_feb", "tt_mar_apr", "tt_may_jun", "tt_jul_aug", "tt_sep_oct", "tt_nov_dec"]
64
+ },
65
+ {
66
+ utm_source: ["reddit"],
67
+ utm_campaign: ["rd_free_trial", "rd_discount_US", "rd_winter_promo", "rd_new_year_offer", "rd_lookalike_audience"],
68
+ utm_medium: ["promoted_post", "display_ad", "sidebar_ad"],
69
+ utm_content: ["rd_control_group", "rd_variant_A", "rd_variant_B", "rd_variant_C", "rd_variant_D"],
70
+ utm_term: ["rd_jan_feb", "rd_mar_apr", "rd_may_jun", "rd_jul_aug", "rd_sep_oct", "rd_nov_dec"]
71
+ },
72
+ {
73
+ utm_source: ["x"],
74
+ utm_campaign: ["x_premium_ads", "x_community_notes", "x_creator_monetization", "x_grok_integration", "x_ai_targeting"],
75
+ utm_medium: ["sponsored_post", "promoted_reply", "trending_topic", "premium_placement"],
76
+ utm_content: ["x_control_group", "x_variant_A", "x_variant_B", "x_variant_C", "x_variant_D"],
77
+ utm_term: ["x_q1", "x_q2", "x_q3", "x_q4", "x_ongoing"]
78
+ }
79
+
80
+ ];
81
+
82
+ const browsers = [
83
+ // 2025 Modern browsers (most common)
84
+ "Chrome",
85
+ "Chrome",
86
+ "Chrome", // Chrome dominance
87
+ "Safari",
88
+ "Safari",
89
+ "Microsoft Edge",
90
+ "Microsoft Edge",
91
+ "Firefox",
92
+ "Opera",
93
+ "Samsung Internet",
94
+ "DuckDuckGo Browser",
95
+ "Brave",
96
+ "Arc",
97
+ "Vivaldi",
98
+
99
+ // Mobile specific
100
+ "Mobile Safari",
101
+ "Chrome Mobile",
102
+ "Chrome iOS",
103
+ "Firefox iOS",
104
+ "Samsung Internet",
105
+ "Opera Mobile",
106
+ "DuckDuckGo Mobile",
107
+ "Brave Mobile",
108
+
109
+ // Specialized/niche
110
+ "Opera GX",
111
+ "Tor Browser",
112
+ "Yandex Browser",
113
+ "UC Browser",
114
+ "QQ Browser",
115
+
116
+ // Legacy (rare but still around)
117
+ "Internet Explorer",
118
+ "BlackBerry",
119
+ "Opera Mini",
120
+ "Konqueror",
121
+ "Mozilla"
122
+ ];
123
+
124
+ const iosDevices = [
125
+ // iPhone 16 series (2024-2025 latest)
126
+ {
127
+ model: 'iPhone17,1', // iPhone 16 Pro
128
+ screen_height: '2868',
129
+ screen_width: '1320',
130
+ os: 'iOS',
131
+ Platform: 'iOS',
132
+ carrier: ['verizon', 'at&t', 't-mobile', 'cricket', 'us cellular', 'mint mobile', 'visible'],
133
+ radio: ['4G', 'LTE', '5G', '5G mmWave', 'Wifi', 'WiFi6', 'WiFi6E', 'WiFi7']
134
+ }, {
135
+ model: 'iPhone17,2', // iPhone 16 Pro Max
136
+ screen_height: '2868',
137
+ screen_width: '1320',
138
+ os: 'iOS',
139
+ Platform: 'iOS',
140
+ carrier: ['verizon', 'at&t', 't-mobile', 'cricket', 'us cellular', 'mint mobile', 'visible'],
141
+ radio: ['4G', 'LTE', '5G', '5G mmWave', 'Wifi', 'WiFi6', 'WiFi6E', 'WiFi7']
142
+ }, {
143
+ model: 'iPhone16,2', // iPhone 16 Plus
144
+ screen_height: '2796',
145
+ screen_width: '1290',
146
+ os: 'iOS',
147
+ Platform: 'iOS',
148
+ carrier: ['verizon', 'at&t', 't-mobile', 'cricket', 'us cellular', 'mint mobile', 'visible'],
149
+ radio: ['4G', 'LTE', '5G', 'Wifi', 'WiFi6', 'WiFi6E', 'WiFi7']
150
+ }, {
151
+ model: 'iPhone16,1', // iPhone 16
152
+ screen_height: '2556',
153
+ screen_width: '1179',
154
+ os: 'iOS',
155
+ Platform: 'iOS',
156
+ carrier: ['verizon', 'at&t', 't-mobile', 'cricket', 'us cellular', 'mint mobile', 'visible'],
157
+ radio: ['4G', 'LTE', '5G', 'Wifi', 'WiFi6', 'WiFi6E', 'WiFi7']
158
+ },
159
+
160
+ // iPhone 15 series (still popular)
161
+ {
162
+ model: 'iPhone15,3', // iPhone 15 Pro Max
163
+ screen_height: '2796',
164
+ screen_width: '1290',
165
+ os: 'iOS',
166
+ Platform: 'iOS',
167
+ carrier: ['verizon', 'at&t', 't-mobile', 'cricket', 'us cellular', 'mint mobile'],
168
+ radio: ['4G', 'LTE', '5G', 'Wifi', 'WiFi6', 'WiFi6E']
169
+ }, {
170
+ model: 'iPhone15,2', // iPhone 15 Pro
171
+ screen_height: '2556',
172
+ screen_width: '1179',
173
+ os: 'iOS',
174
+ Platform: 'iOS',
175
+ carrier: ['verizon', 'at&t', 't-mobile', 'cricket', 'us cellular', 'mint mobile'],
176
+ radio: ['4G', 'LTE', '5G', 'Wifi', 'WiFi6', 'WiFi6E']
177
+ }, {
178
+ model: 'iPhone15,4', // iPhone 15 Plus
179
+ screen_height: '2796',
180
+ screen_width: '1290',
181
+ os: 'iOS',
182
+ Platform: 'iOS',
183
+ carrier: ['verizon', 'at&t', 't-mobile', 'cricket', 'us cellular'],
184
+ radio: ['4G', 'LTE', '5G', 'Wifi', 'WiFi6']
185
+ }, {
186
+ model: 'iPhone15,1', // iPhone 15
187
+ screen_height: '2556',
188
+ screen_width: '1179',
189
+ os: 'iOS',
190
+ Platform: 'iOS',
191
+ carrier: ['verizon', 'at&t', 't-mobile', 'cricket', 'us cellular'],
192
+ radio: ['4G', 'LTE', '5G', 'Wifi', 'WiFi6']
193
+ },
194
+
195
+ // iPhone 14 (still common)
196
+ {
197
+ model: 'iPhone14,7', // iPhone 14
198
+ screen_height: '2532',
199
+ screen_width: '1170',
200
+ os: 'iOS',
201
+ Platform: 'iOS',
202
+ carrier: ['verizon', 'at&t', 't-mobile', 'cricket', 'us cellular'],
203
+ radio: ['4G', 'LTE', '5G', 'Wifi', 'WiFi6']
204
+ }, {
205
+ model: 'iPhone14,6', // iPhone SE 3rd gen
206
+ screen_height: '1334',
207
+ screen_width: '750',
208
+ os: 'iOS',
209
+ Platform: 'iOS',
210
+ carrier: ['verizon', 'at&t', 't-mobile', 'cricket', 'us cellular'],
211
+ radio: ['4G', 'LTE', '5G', 'Wifi', 'WiFi6']
212
+ },
213
+
214
+ // iPad Pro M4 (2024-2025 latest)
215
+ {
216
+ model: 'iPad16,3', // iPad Pro 11" M4
217
+ screen_height: '2420',
218
+ screen_width: '1668',
219
+ os: 'iPadOS',
220
+ Platform: 'iOS',
221
+ carrier: ['verizon', 'at&t', 't-mobile', 'cricket', 'us cellular'],
222
+ radio: ['4G', 'LTE', '5G', 'Wifi', 'WiFi6', 'WiFi6E', 'WiFi7']
223
+ }, {
224
+ model: 'iPad16,4', // iPad Pro 13" M4
225
+ screen_height: '2752',
226
+ screen_width: '2064',
227
+ os: 'iPadOS',
228
+ Platform: 'iOS',
229
+ carrier: ['verizon', 'at&t', 't-mobile', 'cricket', 'us cellular'],
230
+ radio: ['4G', 'LTE', '5G', 'Wifi', 'WiFi6', 'WiFi6E', 'WiFi7']
231
+ },
232
+
233
+ // iPad Air M2 (2024)
234
+ {
235
+ model: 'iPad14,8', // iPad Air 11" M2
236
+ screen_height: '2360',
237
+ screen_width: '1640',
238
+ os: 'iPadOS',
239
+ Platform: 'iOS',
240
+ carrier: ['verizon', 'at&t', 't-mobile', 'cricket', 'us cellular'],
241
+ radio: ['4G', 'LTE', '5G', 'Wifi', 'WiFi6', 'WiFi6E']
242
+ }, {
243
+ model: 'iPad14,9', // iPad Air 13" M2
244
+ screen_height: '2752',
245
+ screen_width: '2064',
246
+ os: 'iPadOS',
247
+ Platform: 'iOS',
248
+ carrier: ['verizon', 'at&t', 't-mobile', 'cricket', 'us cellular'],
249
+ radio: ['4G', 'LTE', '5G', 'Wifi', 'WiFi6', 'WiFi6E']
250
+ },
251
+
252
+ // iPad 10th gen (budget option)
253
+ {
254
+ model: 'iPad13,18', // iPad 10th generation
255
+ screen_height: '2360',
256
+ screen_width: '1640',
257
+ os: 'iPadOS',
258
+ Platform: 'iOS',
259
+ carrier: ['verizon', 'at&t', 't-mobile', 'cricket', 'us cellular'],
260
+ radio: ['4G', 'LTE', 'Wifi', 'WiFi6']
261
+ }
262
+ ];
263
+
264
+ const androidDevices = [
265
+ // Google Pixel (2024-2025 latest)
266
+ {
267
+ model: 'Pixel 9 Pro XL',
268
+ screen_height: '2992',
269
+ screen_width: '1344',
270
+ os: 'Android',
271
+ Platform: 'Android',
272
+ carrier: ['verizon', 'at&t', 't-mobile', 'cricket', 'us cellular', 'mint mobile', 'visible', 'google fi'],
273
+ radio: ['4G', 'LTE', '5G', '5G mmWave', 'Wifi', 'WiFi6', 'WiFi6E', 'WiFi7']
274
+ }, {
275
+ model: 'Pixel 9 Pro',
276
+ screen_height: '2856',
277
+ screen_width: '1280',
278
+ os: 'Android',
279
+ Platform: 'Android',
280
+ carrier: ['verizon', 'at&t', 't-mobile', 'cricket', 'us cellular', 'mint mobile', 'visible', 'google fi'],
281
+ radio: ['4G', 'LTE', '5G', '5G mmWave', 'Wifi', 'WiFi6', 'WiFi6E', 'WiFi7']
282
+ }, {
283
+ model: 'Pixel 9',
284
+ screen_height: '2424',
285
+ screen_width: '1080',
286
+ os: 'Android',
287
+ Platform: 'Android',
288
+ carrier: ['verizon', 'at&t', 't-mobile', 'cricket', 'us cellular', 'mint mobile', 'visible', 'google fi'],
289
+ radio: ['4G', 'LTE', '5G', 'Wifi', 'WiFi6', 'WiFi6E', 'WiFi7']
290
+ }, {
291
+ model: 'Pixel 8a',
292
+ screen_height: '2400',
293
+ screen_width: '1080',
294
+ os: 'Android',
295
+ Platform: 'Android',
296
+ carrier: ['verizon', 'at&t', 't-mobile', 'cricket', 'us cellular', 'mint mobile', 'google fi'],
297
+ radio: ['4G', 'LTE', '5G', 'Wifi', 'WiFi6', 'WiFi6E']
298
+ },
299
+
300
+ // Samsung Galaxy S25 series (2025 latest)
301
+ {
302
+ model: 'Galaxy S25 Ultra',
303
+ screen_height: '3120',
304
+ screen_width: '1440',
305
+ os: 'Android',
306
+ Platform: 'Android',
307
+ carrier: ['verizon', 'at&t', 't-mobile', 'cricket', 'us cellular', 'mint mobile', 'visible'],
308
+ radio: ['4G', 'LTE', '5G', '5G mmWave', 'Wifi', 'WiFi6', 'WiFi6E', 'WiFi7']
309
+ }, {
310
+ model: 'Galaxy S25+',
311
+ screen_height: '3120',
312
+ screen_width: '1440',
313
+ os: 'Android',
314
+ Platform: 'Android',
315
+ carrier: ['verizon', 'at&t', 't-mobile', 'cricket', 'us cellular', 'mint mobile', 'visible'],
316
+ radio: ['4G', 'LTE', '5G', 'Wifi', 'WiFi6', 'WiFi6E', 'WiFi7']
317
+ }, {
318
+ model: 'Galaxy S25',
319
+ screen_height: '2340',
320
+ screen_width: '1080',
321
+ os: 'Android',
322
+ Platform: 'Android',
323
+ carrier: ['verizon', 'at&t', 't-mobile', 'cricket', 'us cellular', 'mint mobile'],
324
+ radio: ['4G', 'LTE', '5G', 'Wifi', 'WiFi6', 'WiFi6E', 'WiFi7']
325
+ },
326
+
327
+ // Samsung Foldables (2024-2025)
328
+ {
329
+ model: 'Galaxy Z Fold 6',
330
+ screen_height: '2160',
331
+ screen_width: '1856',
332
+ os: 'Android',
333
+ Platform: 'Android',
334
+ carrier: ['verizon', 'at&t', 't-mobile', 'cricket', 'us cellular'],
335
+ radio: ['4G', 'LTE', '5G', 'Wifi', 'WiFi6', 'WiFi6E', 'WiFi7']
336
+ }, {
337
+ model: 'Galaxy Z Flip 6',
338
+ screen_height: '2640',
339
+ screen_width: '1080',
340
+ os: 'Android',
341
+ Platform: 'Android',
342
+ carrier: ['verizon', 'at&t', 't-mobile', 'cricket', 'us cellular'],
343
+ radio: ['4G', 'LTE', '5G', 'Wifi', 'WiFi6', 'WiFi6E', 'WiFi7']
344
+ },
345
+
346
+ // OnePlus (2024-2025)
347
+ {
348
+ model: 'OnePlus 13',
349
+ screen_height: '3168',
350
+ screen_width: '1440',
351
+ os: 'Android',
352
+ Platform: 'Android',
353
+ carrier: ['verizon', 'at&t', 't-mobile', 'cricket', 'us cellular', 'mint mobile'],
354
+ radio: ['4G', 'LTE', '5G', 'Wifi', 'WiFi6', 'WiFi6E', 'WiFi7']
355
+ }, {
356
+ model: 'OnePlus 12',
357
+ screen_height: '3168',
358
+ screen_width: '1440',
359
+ os: 'Android',
360
+ Platform: 'Android',
361
+ carrier: ['verizon', 'at&t', 't-mobile', 'cricket', 'us cellular', 'mint mobile'],
362
+ radio: ['4G', 'LTE', '5G', 'Wifi', 'WiFi6', 'WiFi6E']
363
+ },
364
+
365
+ // Nothing Phone (trendy brand)
366
+ {
367
+ model: 'Nothing Phone (2a)',
368
+ screen_height: '2412',
369
+ screen_width: '1084',
370
+ os: 'Android',
371
+ Platform: 'Android',
372
+ carrier: ['verizon', 'at&t', 't-mobile', 'cricket', 'us cellular'],
373
+ radio: ['4G', 'LTE', '5G', 'Wifi', 'WiFi6']
374
+ },
375
+
376
+ // Xiaomi (global presence)
377
+ {
378
+ model: 'Xiaomi 14 Ultra',
379
+ screen_height: '3200',
380
+ screen_width: '1440',
381
+ os: 'Android',
382
+ Platform: 'Android',
383
+ carrier: ['verizon', 'at&t', 't-mobile', 'cricket', 'us cellular'],
384
+ radio: ['4G', 'LTE', '5G', 'Wifi', 'WiFi6', 'WiFi6E', 'WiFi7']
385
+ }, {
386
+ model: 'Redmi Note 13 Pro',
387
+ screen_height: '2712',
388
+ screen_width: '1220',
389
+ os: 'Android',
390
+ Platform: 'Android',
391
+ carrier: ['verizon', 'at&t', 't-mobile', 'cricket', 'us cellular'],
392
+ radio: ['4G', 'LTE', '5G', 'Wifi', 'WiFi6']
393
+ },
394
+
395
+ // Sony Xperia (still premium)
396
+ {
397
+ model: 'Sony Xperia 1 VI',
398
+ screen_height: '3840',
399
+ screen_width: '1644',
400
+ os: 'Android',
401
+ Platform: 'Android',
402
+ carrier: ['verizon', 'at&t', 't-mobile', 'cricket', 'us cellular'],
403
+ radio: ['4G', 'LTE', '5G', 'Wifi', 'WiFi6', 'WiFi6E']
404
+ }
405
+ ];
406
+
407
+ const desktopDevices = [
408
+ // Apple Silicon Macs (2024-2025 latest)
409
+ {
410
+ model: 'iMac 24-inch (M4, 2024)',
411
+ screen_height: '2520',
412
+ screen_width: '4480',
413
+ os: 'macOS',
414
+ Platform: 'Desktop'
415
+ }, {
416
+ model: 'Mac Studio (M4 Ultra, 2024)',
417
+ screen_height: '2880',
418
+ screen_width: '5120',
419
+ os: 'macOS',
420
+ Platform: 'Desktop'
421
+ }, {
422
+ model: 'Mac Pro (M3 Ultra, 2024)',
423
+ screen_height: '2160',
424
+ screen_width: '3840',
425
+ os: 'macOS',
426
+ Platform: 'Desktop'
427
+ }, {
428
+ model: 'Mac Mini (M4, 2024)',
429
+ screen_height: '2160',
430
+ screen_width: '3840',
431
+ os: 'macOS',
432
+ Platform: 'Desktop'
433
+ }, {
434
+ model: 'MacBook Air 15-inch (M3, 2024)',
435
+ screen_height: '1964',
436
+ screen_width: '2880',
437
+ os: 'macOS',
438
+ Platform: 'Desktop'
439
+ }, {
440
+ model: 'MacBook Air 13-inch (M3, 2024)',
441
+ screen_height: '1664',
442
+ screen_width: '2560',
443
+ os: 'macOS',
444
+ Platform: 'Desktop'
445
+ }, {
446
+ model: 'MacBook Pro 14-inch (M4 Pro, 2024)',
447
+ screen_height: '1964',
448
+ screen_width: '3024',
449
+ os: 'macOS',
450
+ Platform: 'Desktop'
451
+ }, {
452
+ model: 'MacBook Pro 16-inch (M4 Max, 2024)',
453
+ screen_height: '2234',
454
+ screen_width: '3456',
455
+ os: 'macOS',
456
+ Platform: 'Desktop'
457
+ },
458
+
459
+ // Windows Laptops (2024-2025)
460
+ {
461
+ model: 'Dell XPS 13 Plus (Intel Core Ultra)',
462
+ screen_height: '2160',
463
+ screen_width: '2880',
464
+ os: 'Windows',
465
+ Platform: 'Desktop'
466
+ }, {
467
+ model: 'Dell XPS 15 (Intel Core Ultra 9)',
468
+ screen_height: '2160',
469
+ screen_width: '3840',
470
+ os: 'Windows',
471
+ Platform: 'Desktop'
472
+ }, {
473
+ model: 'Dell XPS 17 (RTX 4080)',
474
+ screen_height: '2400',
475
+ screen_width: '3840',
476
+ os: 'Windows',
477
+ Platform: 'Desktop'
478
+ }, {
479
+ model: 'Microsoft Surface Laptop Studio 2',
480
+ screen_height: '1504',
481
+ screen_width: '2256',
482
+ os: 'Windows',
483
+ Platform: 'Desktop'
484
+ }, {
485
+ model: 'Microsoft Surface Pro 11',
486
+ screen_height: '1944',
487
+ screen_width: '2880',
488
+ os: 'Windows',
489
+ Platform: 'Desktop'
490
+ }, {
491
+ model: 'HP Spectre x360 16 (Intel Core Ultra)',
492
+ screen_height: '2160',
493
+ screen_width: '3840',
494
+ os: 'Windows',
495
+ Platform: 'Desktop'
496
+ }, {
497
+ model: 'HP EliteBook 840 G11',
498
+ screen_height: '1200',
499
+ screen_width: '1920',
500
+ os: 'Windows',
501
+ Platform: 'Desktop'
502
+ }, {
503
+ model: 'Lenovo ThinkPad X1 Carbon Gen 12',
504
+ screen_height: '1200',
505
+ screen_width: '1920',
506
+ os: 'Windows',
507
+ Platform: 'Desktop'
508
+ }, {
509
+ model: 'Lenovo Yoga Pro 9i (RTX 4070)',
510
+ screen_height: '1600',
511
+ screen_width: '2560',
512
+ os: 'Windows',
513
+ Platform: 'Desktop'
514
+ }, {
515
+ model: 'ASUS ZenBook Pro 16X OLED',
516
+ screen_height: '2160',
517
+ screen_width: '3840',
518
+ os: 'Windows',
519
+ Platform: 'Desktop'
520
+ }, {
521
+ model: 'ASUS ROG Zephyrus G16',
522
+ screen_height: '1200',
523
+ screen_width: '1920',
524
+ os: 'Windows',
525
+ Platform: 'Desktop'
526
+ },
527
+
528
+ // Gaming Desktops (2024-2025)
529
+ {
530
+ model: 'Alienware Aurora R16 (RTX 4090)',
531
+ screen_height: '2160',
532
+ screen_width: '3840',
533
+ os: 'Windows',
534
+ Platform: 'Desktop'
535
+ }, {
536
+ model: 'HP OMEN 45L (RTX 4080 Super)',
537
+ screen_height: '1440',
538
+ screen_width: '2560',
539
+ os: 'Windows',
540
+ Platform: 'Desktop'
541
+ }, {
542
+ model: 'Corsair One i500 (RTX 4090)',
543
+ screen_height: '2160',
544
+ screen_width: '3840',
545
+ os: 'Windows',
546
+ Platform: 'Desktop'
547
+ }, {
548
+ model: 'NZXT BLD H5 Elite',
549
+ screen_height: '1440',
550
+ screen_width: '2560',
551
+ os: 'Windows',
552
+ Platform: 'Desktop'
553
+ },
554
+
555
+ // Business/Office Desktops
556
+ {
557
+ model: 'Dell OptiPlex 7020 Plus',
558
+ screen_height: '1080',
559
+ screen_width: '1920',
560
+ os: 'Windows',
561
+ Platform: 'Desktop'
562
+ }, {
563
+ model: 'HP EliteDesk 805 G8',
564
+ screen_height: '1440',
565
+ screen_width: '2560',
566
+ os: 'Windows',
567
+ Platform: 'Desktop'
568
+ }, {
569
+ model: 'Lenovo ThinkCentre M90a Pro',
570
+ screen_height: '1440',
571
+ screen_width: '2560',
572
+ os: 'Windows',
573
+ Platform: 'Desktop'
574
+ },
575
+
576
+ // Linux/Alternative OS (growing presence)
577
+ {
578
+ model: 'System76 Thelio Major',
579
+ screen_height: '2160',
580
+ screen_width: '3840',
581
+ os: 'Pop!_OS',
582
+ Platform: 'Desktop'
583
+ }, {
584
+ model: 'Framework Laptop 16',
585
+ screen_height: '1600',
586
+ screen_width: '2560',
587
+ os: 'Linux',
588
+ Platform: 'Desktop'
589
+ }, {
590
+ model: 'Purism Librem 14',
591
+ screen_height: '1080',
592
+ screen_width: '1920',
593
+ os: 'PureOS',
594
+ Platform: 'Desktop'
595
+ }
596
+ ];
597
+
598
+ const locations = [
599
+ {
600
+ "country": "United States",
601
+ "country_code": "US",
602
+ "region": "Vermont",
603
+ "city": "Coventry"
604
+ },
605
+ {
606
+ "country": "United States",
607
+ "country_code": "US",
608
+ "region": "California",
609
+ "city": "Los Angeles"
610
+ },
611
+ {
612
+ "country": "United States",
613
+ "country_code": "US",
614
+ "region": "New York",
615
+ "city": "New York"
616
+ },
617
+ {
618
+ "country": "United States",
619
+ "country_code": "US",
620
+ "region": "Illinois",
621
+ "city": "Chicago"
622
+ },
623
+ {
624
+ "country": "United States",
625
+ "country_code": "US",
626
+ "region": "Texas",
627
+ "city": "Houston"
628
+ },
629
+ {
630
+ "country": "United States",
631
+ "country_code": "US",
632
+ "region": "Arizona",
633
+ "city": "Phoenix"
634
+ },
635
+ {
636
+ "country": "United States",
637
+ "country_code": "US",
638
+ "region": "Pennsylvania",
639
+ "city": "Philadelphia"
640
+ },
641
+ {
642
+ "country": "United States",
643
+ "country_code": "US",
644
+ "region": "Texas",
645
+ "city": "San Antonio"
646
+ },
647
+ {
648
+ "country": "United States",
649
+ "country_code": "US",
650
+ "region": "California",
651
+ "city": "San Diego"
652
+ },
653
+ {
654
+ "country": "United States",
655
+ "country_code": "US",
656
+ "region": "Texas",
657
+ "city": "Dallas"
658
+ },
659
+ {
660
+ "country": "United States",
661
+ "country_code": "US",
662
+ "region": "California",
663
+ "city": "San Jose"
664
+ },
665
+ {
666
+ "country": "United States",
667
+ "country_code": "US",
668
+ "region": "Texas",
669
+ "city": "Austin"
670
+ },
671
+ {
672
+ "country": "United States",
673
+ "country_code": "US",
674
+ "region": "Florida",
675
+ "city": "Jacksonville"
676
+ },
677
+ {
678
+ "country": "United States",
679
+ "country_code": "US",
680
+ "region": "Ohio",
681
+ "city": "Columbus"
682
+ },
683
+ {
684
+ "country": "United States",
685
+ "country_code": "US",
686
+ "region": "California",
687
+ "city": "San Francisco"
688
+ },
689
+ {
690
+ "country": "United States",
691
+ "country_code": "US",
692
+ "region": "Indiana",
693
+ "city": "Indianapolis"
694
+ },
695
+ {
696
+ "country": "United States",
697
+ "country_code": "US",
698
+ "region": "Washington",
699
+ "city": "Seattle"
700
+ },
701
+ {
702
+ "country": "United States",
703
+ "country_code": "US",
704
+ "region": "Colorado",
705
+ "city": "Denver"
706
+ },
707
+ {
708
+ "country": "United States",
709
+ "country_code": "US",
710
+ "region": "Washington",
711
+ "city": "Spokane"
712
+ },
713
+ {
714
+ "country": "United States",
715
+ "country_code": "US",
716
+ "region": "Tennessee",
717
+ "city": "Nashville"
718
+ },
719
+ {
720
+ "country": "United States",
721
+ "country_code": "US",
722
+ "region": "Tennessee",
723
+ "city": "Memphis"
724
+ },
725
+ {
726
+ "country": "United States",
727
+ "country_code": "US",
728
+ "region": "Nevada",
729
+ "city": "Las Vegas"
730
+ },
731
+ {
732
+ "country": "United States",
733
+ "country_code": "US",
734
+ "region": "California",
735
+ "city": "Fresno"
736
+ },
737
+ {
738
+ "country": "United States",
739
+ "country_code": "US",
740
+ "region": "California",
741
+ "city": "Sacramento"
742
+ },
743
+ {
744
+ "country": "United States",
745
+ "country_code": "US",
746
+ "region": "Oregon",
747
+ "city": "Portland"
748
+ },
749
+ {
750
+ "country": "United States",
751
+ "country_code": "US",
752
+ "region": "Oklahoma",
753
+ "city": "Oklahoma City"
754
+ },
755
+ {
756
+ "country": "United States",
757
+ "country_code": "US",
758
+ "region": "Alabama",
759
+ "city": "Birmingham"
760
+ },
761
+ {
762
+ "country": "United States",
763
+ "country_code": "US",
764
+ "region": "Alaska",
765
+ "city": "Anchorage"
766
+ },
767
+ {
768
+ "country": "United States",
769
+ "country_code": "US",
770
+ "region": "Arizona",
771
+ "city": "Tucson"
772
+ },
773
+ {
774
+ "country": "United States",
775
+ "country_code": "US",
776
+ "region": "Arkansas",
777
+ "city": "Little Rock"
778
+ },
779
+ {
780
+ "country": "United States",
781
+ "country_code": "US",
782
+ "region": "California",
783
+ "city": "Long Beach"
784
+ },
785
+ {
786
+ "country": "United States",
787
+ "country_code": "US",
788
+ "region": "Colorado",
789
+ "city": "Colorado Springs"
790
+ },
791
+ {
792
+ "country": "United States",
793
+ "country_code": "US",
794
+ "region": "Connecticut",
795
+ "city": "Hartford"
796
+ },
797
+ {
798
+ "country": "United States",
799
+ "country_code": "US",
800
+ "region": "Delaware",
801
+ "city": "Wilmington"
802
+ },
803
+ {
804
+ "country": "United States",
805
+ "country_code": "US",
806
+ "region": "Florida",
807
+ "city": "Miami"
808
+ },
809
+ {
810
+ "country": "United States",
811
+ "country_code": "US",
812
+ "region": "Georgia",
813
+ "city": "Atlanta"
814
+ },
815
+ {
816
+ "country": "United States",
817
+ "country_code": "US",
818
+ "region": "Hawaii",
819
+ "city": "Honolulu"
820
+ },
821
+ {
822
+ "country": "United States",
823
+ "country_code": "US",
824
+ "region": "Idaho",
825
+ "city": "Boise"
826
+ },
827
+ {
828
+ "country": "United States",
829
+ "country_code": "US",
830
+ "region": "Illinois",
831
+ "city": "Naperville"
832
+ },
833
+ {
834
+ "country": "United States",
835
+ "country_code": "US",
836
+ "region": "Indiana",
837
+ "city": "Fort Wayne"
838
+ },
839
+ {
840
+ "country": "United States",
841
+ "country_code": "US",
842
+ "region": "Iowa",
843
+ "city": "Des Moines"
844
+ },
845
+ {
846
+ "country": "United States",
847
+ "country_code": "US",
848
+ "region": "Kansas",
849
+ "city": "Wichita"
850
+ },
851
+ {
852
+ "country": "United States",
853
+ "country_code": "US",
854
+ "region": "Kentucky",
855
+ "city": "Louisville"
856
+ },
857
+ {
858
+ "country": "United States",
859
+ "country_code": "US",
860
+ "region": "Louisiana",
861
+ "city": "New Orleans"
862
+ },
863
+ {
864
+ "country": "United States",
865
+ "country_code": "US",
866
+ "region": "Maine",
867
+ "city": "Portland"
868
+ },
869
+ {
870
+ "country": "United States",
871
+ "country_code": "US",
872
+ "region": "Maryland",
873
+ "city": "Baltimore"
874
+ },
875
+ {
876
+ "country": "United States",
877
+ "country_code": "US",
878
+ "region": "Massachusetts",
879
+ "city": "Boston"
880
+ },
881
+ {
882
+ "country": "United States",
883
+ "country_code": "US",
884
+ "region": "Michigan",
885
+ "city": "Detroit"
886
+ },
887
+ {
888
+ "country": "United States",
889
+ "country_code": "US",
890
+ "region": "Minnesota",
891
+ "city": "Minneapolis"
892
+ },
893
+ {
894
+ "country": "United States",
895
+ "country_code": "US",
896
+ "region": "Mississippi",
897
+ "city": "Jackson"
898
+ },
899
+ {
900
+ "country": "United States",
901
+ "country_code": "US",
902
+ "region": "Missouri",
903
+ "city": "Kansas City"
904
+ },
905
+ {
906
+ "country": "United States",
907
+ "country_code": "US",
908
+ "region": "Montana",
909
+ "city": "Billings"
910
+ },
911
+ {
912
+ "country": "United States",
913
+ "country_code": "US",
914
+ "region": "Nebraska",
915
+ "city": "Omaha"
916
+ },
917
+ {
918
+ "country": "United States",
919
+ "country_code": "US",
920
+ "region": "Nevada",
921
+ "city": "Reno"
922
+ },
923
+ {
924
+ "country": "United States",
925
+ "country_code": "US",
926
+ "region": "New Hampshire",
927
+ "city": "Manchester"
928
+ },
929
+ {
930
+ "country": "United States",
931
+ "country_code": "US",
932
+ "region": "New Jersey",
933
+ "city": "Newark"
934
+ },
935
+ {
936
+ "country": "United States",
937
+ "country_code": "US",
938
+ "region": "New Mexico",
939
+ "city": "Albuquerque"
940
+ },
941
+ {
942
+ "country": "United States",
943
+ "country_code": "US",
944
+ "region": "New York",
945
+ "city": "Buffalo"
946
+ },
947
+ {
948
+ "country": "United States",
949
+ "country_code": "US",
950
+ "region": "North Carolina",
951
+ "city": "Charlotte"
952
+ },
953
+ {
954
+ "country": "United States",
955
+ "country_code": "US",
956
+ "region": "North Dakota",
957
+ "city": "Fargo"
958
+ },
959
+ {
960
+ "country": "United States",
961
+ "country_code": "US",
962
+ "region": "Ohio",
963
+ "city": "Cleveland"
964
+ },
965
+ {
966
+ "country": "United States",
967
+ "country_code": "US",
968
+ "region": "Oklahoma",
969
+ "city": "Tulsa"
970
+ },
971
+ {
972
+ "country": "United States",
973
+ "country_code": "US",
974
+ "region": "Oregon",
975
+ "city": "Salem"
976
+ },
977
+ {
978
+ "country": "United States",
979
+ "country_code": "US",
980
+ "region": "Pennsylvania",
981
+ "city": "Pittsburgh"
982
+ },
983
+ {
984
+ "country": "United States",
985
+ "country_code": "US",
986
+ "region": "Rhode Island",
987
+ "city": "Providence"
988
+ },
989
+ {
990
+ "country": "United States",
991
+ "country_code": "US",
992
+ "region": "South Carolina",
993
+ "city": "Columbia"
994
+ },
995
+ {
996
+ "country": "United States",
997
+ "country_code": "US",
998
+ "region": "South Dakota",
999
+ "city": "Sioux Falls"
1000
+ },
1001
+ {
1002
+ "country": "United States",
1003
+ "country_code": "US",
1004
+ "region": "Tennessee",
1005
+ "city": "Knoxville"
1006
+ },
1007
+ {
1008
+ "country": "United States",
1009
+ "country_code": "US",
1010
+ "region": "Texas",
1011
+ "city": "El Paso"
1012
+ },
1013
+ {
1014
+ "country": "United States",
1015
+ "country_code": "US",
1016
+ "region": "Utah",
1017
+ "city": "Salt Lake City"
1018
+ },
1019
+ {
1020
+ "country": "United States",
1021
+ "country_code": "US",
1022
+ "region": "Vermont",
1023
+ "city": "Burlington"
1024
+ },
1025
+ {
1026
+ "country": "United States",
1027
+ "country_code": "US",
1028
+ "region": "Virginia",
1029
+ "city": "Virginia Beach"
1030
+ },
1031
+ {
1032
+ "country": "United States",
1033
+ "country_code": "US",
1034
+ "region": "Washington",
1035
+ "city": "Tacoma"
1036
+ },
1037
+ {
1038
+ "country": "United States",
1039
+ "country_code": "US",
1040
+ "region": "West Virginia",
1041
+ "city": "Charleston"
1042
+ },
1043
+ {
1044
+ "country": "United States",
1045
+ "country_code": "US",
1046
+ "region": "Wisconsin",
1047
+ "city": "Milwaukee"
1048
+ },
1049
+ {
1050
+ "country": "United States",
1051
+ "country_code": "US",
1052
+ "region": "Wyoming",
1053
+ "city": "Cheyenne"
1054
+ },
1055
+ {
1056
+ "country": "China",
1057
+ "country_code": "CN",
1058
+ "region": "Beijing",
1059
+ "city": "Beijing"
1060
+ },
1061
+ {
1062
+ "country": "China",
1063
+ "country_code": "CN",
1064
+ "region": "Shanghai",
1065
+ "city": "Shanghai"
1066
+ },
1067
+ {
1068
+ "country": "China",
1069
+ "country_code": "CN",
1070
+ "region": "Guangdong",
1071
+ "city": "Guangzhou"
1072
+ },
1073
+ {
1074
+ "country": "China",
1075
+ "country_code": "CN",
1076
+ "region": "Shenzhen",
1077
+ "city": "Shenzhen"
1078
+ },
1079
+ {
1080
+ "country": "Japan",
1081
+ "country_code": "JP",
1082
+ "region": "Tokyo",
1083
+ "city": "Tokyo"
1084
+ },
1085
+ {
1086
+ "country": "Japan",
1087
+ "country_code": "JP",
1088
+ "region": "Osaka",
1089
+ "city": "Osaka"
1090
+ },
1091
+ {
1092
+ "country": "Japan",
1093
+ "country_code": "JP",
1094
+ "region": "Kanagawa",
1095
+ "city": "Yokohama"
1096
+ },
1097
+ {
1098
+ "country": "India",
1099
+ "country_code": "IN",
1100
+ "region": "Maharashtra",
1101
+ "city": "Mumbai"
1102
+ },
1103
+ {
1104
+ "country": "India",
1105
+ "country_code": "IN",
1106
+ "region": "Delhi",
1107
+ "city": "New Delhi"
1108
+ },
1109
+ {
1110
+ "country": "India",
1111
+ "country_code": "IN",
1112
+ "region": "Karnataka",
1113
+ "city": "Bengaluru"
1114
+ },
1115
+ {
1116
+ "country": "India",
1117
+ "country_code": "IN",
1118
+ "region": "Tamil Nadu",
1119
+ "city": "Chennai"
1120
+ },
1121
+ {
1122
+ "country": "Australia",
1123
+ "country_code": "AU",
1124
+ "region": "New South Wales",
1125
+ "city": "Sydney"
1126
+ },
1127
+ {
1128
+ "country": "Australia",
1129
+ "country_code": "AU",
1130
+ "region": "Victoria",
1131
+ "city": "Melbourne"
1132
+ },
1133
+ {
1134
+ "country": "Australia",
1135
+ "country_code": "AU",
1136
+ "region": "Queensland",
1137
+ "city": "Brisbane"
1138
+ },
1139
+ {
1140
+ "country": "South Korea",
1141
+ "country_code": "KR",
1142
+ "region": "Seoul",
1143
+ "city": "Seoul"
1144
+ },
1145
+ {
1146
+ "country": "South Korea",
1147
+ "country_code": "KR",
1148
+ "region": "Busan",
1149
+ "city": "Busan"
1150
+ },
1151
+ {
1152
+ "country": "South Korea",
1153
+ "country_code": "KR",
1154
+ "region": "Incheon",
1155
+ "city": "Incheon"
1156
+ },
1157
+ {
1158
+ "country": "Israel",
1159
+ "country_code": "IL",
1160
+ "region": "Tel Aviv",
1161
+ "city": "Tel Aviv"
1162
+ },
1163
+ {
1164
+ "country": "Israel",
1165
+ "country_code": "IL",
1166
+ "region": "Jerusalem",
1167
+ "city": "Jerusalem"
1168
+ },
1169
+ {
1170
+ "country": "Israel",
1171
+ "country_code": "IL",
1172
+ "region": "Haifa",
1173
+ "city": "Haifa"
1174
+ },
1175
+ {
1176
+ "country": "United Kingdom",
1177
+ "country_code": "GB",
1178
+ "region": "England",
1179
+ "city": "London"
1180
+ },
1181
+ {
1182
+ "country": "United Kingdom",
1183
+ "country_code": "GB",
1184
+ "region": "England",
1185
+ "city": "Manchester"
1186
+ },
1187
+ {
1188
+ "country": "United Kingdom",
1189
+ "country_code": "GB",
1190
+ "region": "Scotland",
1191
+ "city": "Edinburgh"
1192
+ },
1193
+ {
1194
+ "country": "Germany",
1195
+ "country_code": "DE",
1196
+ "region": "Berlin",
1197
+ "city": "Berlin"
1198
+ },
1199
+ {
1200
+ "country": "Germany",
1201
+ "country_code": "DE",
1202
+ "region": "Bavaria",
1203
+ "city": "Munich"
1204
+ },
1205
+ {
1206
+ "country": "Germany",
1207
+ "country_code": "DE",
1208
+ "region": "Hamburg",
1209
+ "city": "Hamburg"
1210
+ },
1211
+ {
1212
+ "country": "France",
1213
+ "country_code": "FR",
1214
+ "region": "Île-de-France",
1215
+ "city": "Paris"
1216
+ },
1217
+ {
1218
+ "country": "France",
1219
+ "country_code": "FR",
1220
+ "region": "Provence-Alpes-Côte d'Azur",
1221
+ "city": "Marseille"
1222
+ },
1223
+ {
1224
+ "country": "France",
1225
+ "country_code": "FR",
1226
+ "region": "Auvergne-Rhône-Alpes",
1227
+ "city": "Lyon"
1228
+ },
1229
+ {
1230
+ "country": "Italy",
1231
+ "country_code": "IT",
1232
+ "region": "Lazio",
1233
+ "city": "Rome"
1234
+ },
1235
+ {
1236
+ "country": "Italy",
1237
+ "country_code": "IT",
1238
+ "region": "Lombardy",
1239
+ "city": "Milan"
1240
+ },
1241
+ {
1242
+ "country": "Italy",
1243
+ "country_code": "IT",
1244
+ "region": "Campania",
1245
+ "city": "Naples"
1246
+ },
1247
+ {
1248
+ "country": "Spain",
1249
+ "country_code": "ES",
1250
+ "region": "Community of Madrid",
1251
+ "city": "Madrid"
1252
+ },
1253
+ {
1254
+ "country": "Spain",
1255
+ "country_code": "ES",
1256
+ "region": "Catalonia",
1257
+ "city": "Barcelona"
1258
+ },
1259
+ {
1260
+ "country": "Spain",
1261
+ "country_code": "ES",
1262
+ "region": "Valencian Community",
1263
+ "city": "Valencia"
1264
+ },
1265
+ {
1266
+ "country": "Russia",
1267
+ "country_code": "RU",
1268
+ "region": "Moscow",
1269
+ "city": "Moscow"
1270
+ },
1271
+ {
1272
+ "country": "Russia",
1273
+ "country_code": "RU",
1274
+ "region": "Saint Petersburg",
1275
+ "city": "Saint Petersburg"
1276
+ },
1277
+ {
1278
+ "country": "Russia",
1279
+ "country_code": "RU",
1280
+ "region": "Novosibirsk Oblast",
1281
+ "city": "Novosibirsk"
1282
+ },
1283
+ {
1284
+ "country": "South Africa",
1285
+ "country_code": "ZA",
1286
+ "region": "Gauteng",
1287
+ "city": "Johannesburg"
1288
+ },
1289
+ {
1290
+ "country": "South Africa",
1291
+ "country_code": "ZA",
1292
+ "region": "Western Cape",
1293
+ "city": "Cape Town"
1294
+ },
1295
+ {
1296
+ "country": "South Africa",
1297
+ "country_code": "ZA",
1298
+ "region": "KwaZulu-Natal",
1299
+ "city": "Durban"
1300
+ },
1301
+ {
1302
+ "country": "Nigeria",
1303
+ "country_code": "NG",
1304
+ "region": "Lagos",
1305
+ "city": "Lagos"
1306
+ },
1307
+ {
1308
+ "country": "Nigeria",
1309
+ "country_code": "NG",
1310
+ "region": "Rivers",
1311
+ "city": "Port Harcourt"
1312
+ },
1313
+ {
1314
+ "country": "Nigeria",
1315
+ "country_code": "NG",
1316
+ "region": "Abuja",
1317
+ "city": "Abuja"
1318
+ },
1319
+ {
1320
+ "country": "Brazil",
1321
+ "country_code": "BR",
1322
+ "region": "São Paulo",
1323
+ "city": "São Paulo"
1324
+ },
1325
+ {
1326
+ "country": "Brazil",
1327
+ "country_code": "BR",
1328
+ "region": "Rio de Janeiro",
1329
+ "city": "Rio de Janeiro"
1330
+ },
1331
+ {
1332
+ "country": "Brazil",
1333
+ "country_code": "BR",
1334
+ "region": "Bahia",
1335
+ "city": "Salvador"
1336
+ },
1337
+ {
1338
+ "country": "Mexico",
1339
+ "country_code": "MX",
1340
+ "region": "Mexico City",
1341
+ "city": "Mexico City"
1342
+ },
1343
+ {
1344
+ "country": "Mexico",
1345
+ "country_code": "MX",
1346
+ "region": "Jalisco",
1347
+ "city": "Guadalajara"
1348
+ },
1349
+ {
1350
+ "country": "Mexico",
1351
+ "country_code": "MX",
1352
+ "region": "Nuevo León",
1353
+ "city": "Monterrey"
1354
+ },
1355
+ {
1356
+ "country": "Turkey",
1357
+ "country_code": "TR",
1358
+ "region": "Istanbul",
1359
+ "city": "Istanbul"
1360
+ },
1361
+ {
1362
+ "country": "Turkey",
1363
+ "country_code": "TR",
1364
+ "region": "Ankara",
1365
+ "city": "Ankara"
1366
+ },
1367
+ {
1368
+ "country": "Turkey",
1369
+ "country_code": "TR",
1370
+ "region": "Izmir",
1371
+ "city": "Izmir"
1372
+ },
1373
+ {
1374
+ "country": "Egypt",
1375
+ "country_code": "EG",
1376
+ "region": "Cairo",
1377
+ "city": "Cairo"
1378
+ },
1379
+ {
1380
+ "country": "Egypt",
1381
+ "country_code": "EG",
1382
+ "region": "Giza",
1383
+ "city": "Giza"
1384
+ },
1385
+ {
1386
+ "country": "Egypt",
1387
+ "country_code": "EG",
1388
+ "region": "Alexandria",
1389
+ "city": "Alexandria"
1390
+ }
1391
+ ];
1392
+
1393
+ export {
1394
+ campaigns,
1395
+ locations,
1396
+ domainSuffix,
1397
+ domainPrefix
1398
+ };
1399
+
1400
+ export const devices = {
1401
+ browsers,
1402
+ androidDevices,
1403
+ iosDevices,
1404
+ desktopDevices
1405
+ };