mostlyright 1.2.0 → 1.4.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.
@@ -35,6 +35,13 @@ var mostlyright = (() => {
35
35
  }
36
36
  });
37
37
 
38
+ // ../core/src/schemas/generated/forecast.station.v1.ts
39
+ var init_forecast_station_v1 = __esm({
40
+ "../core/src/schemas/generated/forecast.station.v1.ts"() {
41
+ "use strict";
42
+ }
43
+ });
44
+
38
45
  // ../core/src/schemas/generated/settlement.cli.v1.ts
39
46
  var init_settlement_cli_v1 = __esm({
40
47
  "../core/src/schemas/generated/settlement.cli.v1.ts"() {
@@ -62,6 +69,7 @@ var mostlyright = (() => {
62
69
  "use strict";
63
70
  init_observation_v1();
64
71
  init_forecast_iem_mos_v1();
72
+ init_forecast_station_v1();
65
73
  init_settlement_cli_v1();
66
74
  init_observation_ledger_v1();
67
75
  init_observation_qc_v1();
@@ -82,7 +90,10 @@ var mostlyright = (() => {
82
90
  latitude: 52.3667,
83
91
  longitude: 13.5033,
84
92
  name: "Berlin Brandenburg",
85
- tz: "Europe/Berlin"
93
+ tz: "Europe/Berlin",
94
+ venues: [
95
+ "polymarket"
96
+ ]
86
97
  },
87
98
  {
88
99
  code: "EDDF",
@@ -92,7 +103,10 @@ var mostlyright = (() => {
92
103
  latitude: 50.0379,
93
104
  longitude: 8.5622,
94
105
  name: "Frankfurt am Main",
95
- tz: "Europe/Berlin"
106
+ tz: "Europe/Berlin",
107
+ venues: [
108
+ "polymarket"
109
+ ]
96
110
  },
97
111
  {
98
112
  code: "EDDM",
@@ -102,7 +116,10 @@ var mostlyright = (() => {
102
116
  latitude: 48.3538,
103
117
  longitude: 11.7861,
104
118
  name: "Munich Franz Josef Strauss",
105
- tz: "Europe/Berlin"
119
+ tz: "Europe/Berlin",
120
+ venues: [
121
+ "polymarket"
122
+ ]
106
123
  },
107
124
  {
108
125
  code: "EFHK",
@@ -112,7 +129,10 @@ var mostlyright = (() => {
112
129
  latitude: 60.3172,
113
130
  longitude: 24.9633,
114
131
  name: "Helsinki-Vantaa",
115
- tz: "Europe/Helsinki"
132
+ tz: "Europe/Helsinki",
133
+ venues: [
134
+ "polymarket"
135
+ ]
116
136
  },
117
137
  {
118
138
  code: "EGKK",
@@ -122,7 +142,10 @@ var mostlyright = (() => {
122
142
  latitude: 51.1481,
123
143
  longitude: -0.1903,
124
144
  name: "London Gatwick",
125
- tz: "Europe/London"
145
+ tz: "Europe/London",
146
+ venues: [
147
+ "polymarket"
148
+ ]
126
149
  },
127
150
  {
128
151
  code: "EGLL",
@@ -132,7 +155,10 @@ var mostlyright = (() => {
132
155
  latitude: 51.4706,
133
156
  longitude: -0.4619,
134
157
  name: "London Heathrow",
135
- tz: "Europe/London"
158
+ tz: "Europe/London",
159
+ venues: [
160
+ "polymarket"
161
+ ]
136
162
  },
137
163
  {
138
164
  code: "EHAM",
@@ -142,7 +168,10 @@ var mostlyright = (() => {
142
168
  latitude: 52.3086,
143
169
  longitude: 4.7639,
144
170
  name: "Amsterdam Schiphol",
145
- tz: "Europe/Amsterdam"
171
+ tz: "Europe/Amsterdam",
172
+ venues: [
173
+ "polymarket"
174
+ ]
146
175
  },
147
176
  {
148
177
  code: "EKCH",
@@ -152,7 +181,10 @@ var mostlyright = (() => {
152
181
  latitude: 55.6181,
153
182
  longitude: 12.6561,
154
183
  name: "Copenhagen Kastrup",
155
- tz: "Europe/Copenhagen"
184
+ tz: "Europe/Copenhagen",
185
+ venues: [
186
+ "polymarket"
187
+ ]
156
188
  },
157
189
  {
158
190
  code: "EPWA",
@@ -162,7 +194,10 @@ var mostlyright = (() => {
162
194
  latitude: 52.1657,
163
195
  longitude: 20.9671,
164
196
  name: "Warsaw Chopin",
165
- tz: "Europe/Warsaw"
197
+ tz: "Europe/Warsaw",
198
+ venues: [
199
+ "polymarket"
200
+ ]
166
201
  },
167
202
  {
168
203
  code: "ESSA",
@@ -172,7 +207,10 @@ var mostlyright = (() => {
172
207
  latitude: 59.6519,
173
208
  longitude: 17.9186,
174
209
  name: "Stockholm Arlanda",
175
- tz: "Europe/Stockholm"
210
+ tz: "Europe/Stockholm",
211
+ venues: [
212
+ "polymarket"
213
+ ]
176
214
  },
177
215
  {
178
216
  code: "ATL",
@@ -182,7 +220,11 @@ var mostlyright = (() => {
182
220
  latitude: 33.6407,
183
221
  longitude: -84.4277,
184
222
  name: "Hartsfield-Jackson Atlanta International",
185
- tz: "America/New_York"
223
+ tz: "America/New_York",
224
+ venues: [
225
+ "kalshi",
226
+ "polymarket"
227
+ ]
186
228
  },
187
229
  {
188
230
  code: "AUS",
@@ -192,7 +234,24 @@ var mostlyright = (() => {
192
234
  latitude: 30.1975,
193
235
  longitude: -97.6664,
194
236
  name: "Austin-Bergstrom International",
195
- tz: "America/Chicago"
237
+ tz: "America/Chicago",
238
+ venues: [
239
+ "kalshi",
240
+ "polymarket"
241
+ ]
242
+ },
243
+ {
244
+ code: "BNA",
245
+ country: "US",
246
+ ghcnh_id: "USW00013897",
247
+ icao: "KBNA",
248
+ latitude: 36.1245,
249
+ longitude: -86.6782,
250
+ name: "Nashville International",
251
+ tz: "America/Chicago",
252
+ venues: [
253
+ "kalshi"
254
+ ]
196
255
  },
197
256
  {
198
257
  code: "BOS",
@@ -202,7 +261,24 @@ var mostlyright = (() => {
202
261
  latitude: 42.3656,
203
262
  longitude: -71.0096,
204
263
  name: "Boston Logan International",
205
- tz: "America/New_York"
264
+ tz: "America/New_York",
265
+ venues: [
266
+ "kalshi",
267
+ "polymarket"
268
+ ]
269
+ },
270
+ {
271
+ code: "CVG",
272
+ country: "US",
273
+ ghcnh_id: "USW00093814",
274
+ icao: "KCVG",
275
+ latitude: 39.0488,
276
+ longitude: -84.6678,
277
+ name: "Cincinnati/Northern Kentucky International",
278
+ tz: "America/New_York",
279
+ venues: [
280
+ "kalshi"
281
+ ]
206
282
  },
207
283
  {
208
284
  code: "DCA",
@@ -212,7 +288,11 @@ var mostlyright = (() => {
212
288
  latitude: 38.8512,
213
289
  longitude: -77.0402,
214
290
  name: "Washington Reagan National",
215
- tz: "America/New_York"
291
+ tz: "America/New_York",
292
+ venues: [
293
+ "kalshi",
294
+ "polymarket"
295
+ ]
216
296
  },
217
297
  {
218
298
  code: "DEN",
@@ -222,7 +302,11 @@ var mostlyright = (() => {
222
302
  latitude: 39.8561,
223
303
  longitude: -104.6737,
224
304
  name: "Denver International",
225
- tz: "America/Denver"
305
+ tz: "America/Denver",
306
+ venues: [
307
+ "kalshi",
308
+ "polymarket"
309
+ ]
226
310
  },
227
311
  {
228
312
  code: "DFW",
@@ -232,7 +316,25 @@ var mostlyright = (() => {
232
316
  latitude: 32.8998,
233
317
  longitude: -97.0403,
234
318
  name: "Dallas-Fort Worth International",
235
- tz: "America/Chicago"
319
+ tz: "America/Chicago",
320
+ venues: [
321
+ "kalshi",
322
+ "polymarket"
323
+ ]
324
+ },
325
+ {
326
+ code: "DTW",
327
+ country: "US",
328
+ ghcnh_id: "USW00094847",
329
+ icao: "KDTW",
330
+ latitude: 42.2124,
331
+ longitude: -83.3534,
332
+ name: "Detroit Metropolitan Wayne County",
333
+ tz: "America/New_York",
334
+ venues: [
335
+ "kalshi",
336
+ "polymarket"
337
+ ]
236
338
  },
237
339
  {
238
340
  code: "HOU",
@@ -242,7 +344,22 @@ var mostlyright = (() => {
242
344
  latitude: 29.6454,
243
345
  longitude: -95.2789,
244
346
  name: "Houston Hobby",
245
- tz: "America/Chicago"
347
+ tz: "America/Chicago",
348
+ venues: []
349
+ },
350
+ {
351
+ code: "IAH",
352
+ country: "US",
353
+ ghcnh_id: "USW00012960",
354
+ icao: "KIAH",
355
+ latitude: 29.9844,
356
+ longitude: -95.3414,
357
+ name: "Houston George Bush Intercontinental",
358
+ tz: "America/Chicago",
359
+ venues: [
360
+ "kalshi",
361
+ "polymarket"
362
+ ]
246
363
  },
247
364
  {
248
365
  code: "LAS",
@@ -252,7 +369,10 @@ var mostlyright = (() => {
252
369
  latitude: 36.084,
253
370
  longitude: -115.1537,
254
371
  name: "Harry Reid (McCarran) International",
255
- tz: "America/Los_Angeles"
372
+ tz: "America/Los_Angeles",
373
+ venues: [
374
+ "kalshi"
375
+ ]
256
376
  },
257
377
  {
258
378
  code: "LAX",
@@ -262,7 +382,11 @@ var mostlyright = (() => {
262
382
  latitude: 33.9425,
263
383
  longitude: -118.4081,
264
384
  name: "Los Angeles International",
265
- tz: "America/Los_Angeles"
385
+ tz: "America/Los_Angeles",
386
+ venues: [
387
+ "kalshi",
388
+ "polymarket"
389
+ ]
266
390
  },
267
391
  {
268
392
  code: "MDW",
@@ -272,7 +396,10 @@ var mostlyright = (() => {
272
396
  latitude: 41.7868,
273
397
  longitude: -87.7522,
274
398
  name: "Chicago Midway International",
275
- tz: "America/Chicago"
399
+ tz: "America/Chicago",
400
+ venues: [
401
+ "kalshi"
402
+ ]
276
403
  },
277
404
  {
278
405
  code: "MIA",
@@ -282,7 +409,11 @@ var mostlyright = (() => {
282
409
  latitude: 25.7959,
283
410
  longitude: -80.287,
284
411
  name: "Miami International",
285
- tz: "America/New_York"
412
+ tz: "America/New_York",
413
+ venues: [
414
+ "kalshi",
415
+ "polymarket"
416
+ ]
286
417
  },
287
418
  {
288
419
  code: "MSP",
@@ -292,7 +423,11 @@ var mostlyright = (() => {
292
423
  latitude: 44.8848,
293
424
  longitude: -93.2223,
294
425
  name: "Minneapolis-St Paul International",
295
- tz: "America/Chicago"
426
+ tz: "America/Chicago",
427
+ venues: [
428
+ "kalshi",
429
+ "polymarket"
430
+ ]
296
431
  },
297
432
  {
298
433
  code: "MSY",
@@ -302,7 +437,8 @@ var mostlyright = (() => {
302
437
  latitude: 29.9934,
303
438
  longitude: -90.258,
304
439
  name: "New Orleans Louis Armstrong International",
305
- tz: "America/Chicago"
440
+ tz: "America/Chicago",
441
+ venues: []
306
442
  },
307
443
  {
308
444
  code: "NYC",
@@ -312,7 +448,10 @@ var mostlyright = (() => {
312
448
  latitude: 40.7789,
313
449
  longitude: -73.9692,
314
450
  name: "Central Park, New York",
315
- tz: "America/New_York"
451
+ tz: "America/New_York",
452
+ venues: [
453
+ "kalshi"
454
+ ]
316
455
  },
317
456
  {
318
457
  code: "OKC",
@@ -322,7 +461,8 @@ var mostlyright = (() => {
322
461
  latitude: 35.3931,
323
462
  longitude: -97.6007,
324
463
  name: "Oklahoma City Will Rogers World",
325
- tz: "America/Chicago"
464
+ tz: "America/Chicago",
465
+ venues: []
326
466
  },
327
467
  {
328
468
  code: "PHL",
@@ -332,7 +472,11 @@ var mostlyright = (() => {
332
472
  latitude: 39.8721,
333
473
  longitude: -75.2411,
334
474
  name: "Philadelphia International",
335
- tz: "America/New_York"
475
+ tz: "America/New_York",
476
+ venues: [
477
+ "kalshi",
478
+ "polymarket"
479
+ ]
336
480
  },
337
481
  {
338
482
  code: "PHX",
@@ -342,7 +486,11 @@ var mostlyright = (() => {
342
486
  latitude: 33.4373,
343
487
  longitude: -112.0078,
344
488
  name: "Phoenix Sky Harbor International",
345
- tz: "America/Phoenix"
489
+ tz: "America/Phoenix",
490
+ venues: [
491
+ "kalshi",
492
+ "polymarket"
493
+ ]
346
494
  },
347
495
  {
348
496
  code: "SAT",
@@ -352,7 +500,8 @@ var mostlyright = (() => {
352
500
  latitude: 29.5337,
353
501
  longitude: -98.4698,
354
502
  name: "San Antonio International",
355
- tz: "America/Chicago"
503
+ tz: "America/Chicago",
504
+ venues: []
356
505
  },
357
506
  {
358
507
  code: "SEA",
@@ -362,7 +511,11 @@ var mostlyright = (() => {
362
511
  latitude: 47.4502,
363
512
  longitude: -122.3088,
364
513
  name: "Seattle-Tacoma International",
365
- tz: "America/Los_Angeles"
514
+ tz: "America/Los_Angeles",
515
+ venues: [
516
+ "kalshi",
517
+ "polymarket"
518
+ ]
366
519
  },
367
520
  {
368
521
  code: "SFO",
@@ -372,7 +525,24 @@ var mostlyright = (() => {
372
525
  latitude: 37.6213,
373
526
  longitude: -122.379,
374
527
  name: "San Francisco International",
375
- tz: "America/Los_Angeles"
528
+ tz: "America/Los_Angeles",
529
+ venues: [
530
+ "kalshi",
531
+ "polymarket"
532
+ ]
533
+ },
534
+ {
535
+ code: "SLC",
536
+ country: "US",
537
+ ghcnh_id: "USW00024127",
538
+ icao: "KSLC",
539
+ latitude: 40.7884,
540
+ longitude: -111.9778,
541
+ name: "Salt Lake City International",
542
+ tz: "America/Denver",
543
+ venues: [
544
+ "kalshi"
545
+ ]
376
546
  },
377
547
  {
378
548
  code: "LEBL",
@@ -382,7 +552,10 @@ var mostlyright = (() => {
382
552
  latitude: 41.2974,
383
553
  longitude: 2.0833,
384
554
  name: "Barcelona El Prat",
385
- tz: "Europe/Madrid"
555
+ tz: "Europe/Madrid",
556
+ venues: [
557
+ "polymarket"
558
+ ]
386
559
  },
387
560
  {
388
561
  code: "LEMD",
@@ -392,7 +565,10 @@ var mostlyright = (() => {
392
565
  latitude: 40.4719,
393
566
  longitude: -3.5626,
394
567
  name: "Madrid Barajas",
395
- tz: "Europe/Madrid"
568
+ tz: "Europe/Madrid",
569
+ venues: [
570
+ "polymarket"
571
+ ]
396
572
  },
397
573
  {
398
574
  code: "LFPB",
@@ -402,7 +578,10 @@ var mostlyright = (() => {
402
578
  latitude: 48.9694,
403
579
  longitude: 2.4414,
404
580
  name: "Paris Le Bourget",
405
- tz: "Europe/Paris"
581
+ tz: "Europe/Paris",
582
+ venues: [
583
+ "polymarket"
584
+ ]
406
585
  },
407
586
  {
408
587
  code: "LFPG",
@@ -412,7 +591,10 @@ var mostlyright = (() => {
412
591
  latitude: 49.0097,
413
592
  longitude: 2.5479,
414
593
  name: "Paris Charles de Gaulle",
415
- tz: "Europe/Paris"
594
+ tz: "Europe/Paris",
595
+ venues: [
596
+ "polymarket"
597
+ ]
416
598
  },
417
599
  {
418
600
  code: "LFPO",
@@ -422,7 +604,10 @@ var mostlyright = (() => {
422
604
  latitude: 48.7233,
423
605
  longitude: 2.3794,
424
606
  name: "Paris Orly",
425
- tz: "Europe/Paris"
607
+ tz: "Europe/Paris",
608
+ venues: [
609
+ "polymarket"
610
+ ]
426
611
  },
427
612
  {
428
613
  code: "LIMC",
@@ -432,7 +617,10 @@ var mostlyright = (() => {
432
617
  latitude: 45.6306,
433
618
  longitude: 8.7281,
434
619
  name: "Milan Malpensa",
435
- tz: "Europe/Rome"
620
+ tz: "Europe/Rome",
621
+ venues: [
622
+ "polymarket"
623
+ ]
436
624
  },
437
625
  {
438
626
  code: "LIRF",
@@ -442,7 +630,10 @@ var mostlyright = (() => {
442
630
  latitude: 41.8003,
443
631
  longitude: 12.2389,
444
632
  name: "Rome Fiumicino",
445
- tz: "Europe/Rome"
633
+ tz: "Europe/Rome",
634
+ venues: [
635
+ "polymarket"
636
+ ]
446
637
  },
447
638
  {
448
639
  code: "LOWW",
@@ -452,7 +643,10 @@ var mostlyright = (() => {
452
643
  latitude: 48.1103,
453
644
  longitude: 16.5697,
454
645
  name: "Vienna International",
455
- tz: "Europe/Vienna"
646
+ tz: "Europe/Vienna",
647
+ venues: [
648
+ "polymarket"
649
+ ]
456
650
  },
457
651
  {
458
652
  code: "LSZH",
@@ -462,7 +656,10 @@ var mostlyright = (() => {
462
656
  latitude: 47.4647,
463
657
  longitude: 8.5492,
464
658
  name: "Zurich",
465
- tz: "Europe/Zurich"
659
+ tz: "Europe/Zurich",
660
+ venues: [
661
+ "polymarket"
662
+ ]
466
663
  },
467
664
  {
468
665
  code: "NZAA",
@@ -472,7 +669,10 @@ var mostlyright = (() => {
472
669
  latitude: -37.0081,
473
670
  longitude: 174.7917,
474
671
  name: "Auckland",
475
- tz: "Pacific/Auckland"
672
+ tz: "Pacific/Auckland",
673
+ venues: [
674
+ "polymarket"
675
+ ]
476
676
  },
477
677
  {
478
678
  code: "NZWN",
@@ -482,7 +682,10 @@ var mostlyright = (() => {
482
682
  latitude: -41.3272,
483
683
  longitude: 174.8053,
484
684
  name: "Wellington",
485
- tz: "Pacific/Auckland"
685
+ tz: "Pacific/Auckland",
686
+ venues: [
687
+ "polymarket"
688
+ ]
486
689
  },
487
690
  {
488
691
  code: "OERK",
@@ -492,7 +695,10 @@ var mostlyright = (() => {
492
695
  latitude: 24.9576,
493
696
  longitude: 46.6988,
494
697
  name: "Riyadh King Khalid International",
495
- tz: "Asia/Riyadh"
698
+ tz: "Asia/Riyadh",
699
+ venues: [
700
+ "polymarket"
701
+ ]
496
702
  },
497
703
  {
498
704
  code: "OMDB",
@@ -502,7 +708,10 @@ var mostlyright = (() => {
502
708
  latitude: 25.2532,
503
709
  longitude: 55.3657,
504
710
  name: "Dubai International",
505
- tz: "Asia/Dubai"
711
+ tz: "Asia/Dubai",
712
+ venues: [
713
+ "polymarket"
714
+ ]
506
715
  },
507
716
  {
508
717
  code: "OTHH",
@@ -512,7 +721,10 @@ var mostlyright = (() => {
512
721
  latitude: 25.2731,
513
722
  longitude: 51.608,
514
723
  name: "Doha Hamad International",
515
- tz: "Asia/Qatar"
724
+ tz: "Asia/Qatar",
725
+ venues: [
726
+ "polymarket"
727
+ ]
516
728
  },
517
729
  {
518
730
  code: "RCTP",
@@ -522,7 +734,10 @@ var mostlyright = (() => {
522
734
  latitude: 25.0777,
523
735
  longitude: 121.2328,
524
736
  name: "Taipei Taoyuan",
525
- tz: "Asia/Taipei"
737
+ tz: "Asia/Taipei",
738
+ venues: [
739
+ "polymarket"
740
+ ]
526
741
  },
527
742
  {
528
743
  code: "RJAA",
@@ -532,7 +747,10 @@ var mostlyright = (() => {
532
747
  latitude: 35.7647,
533
748
  longitude: 140.3864,
534
749
  name: "Tokyo Narita",
535
- tz: "Asia/Tokyo"
750
+ tz: "Asia/Tokyo",
751
+ venues: [
752
+ "polymarket"
753
+ ]
536
754
  },
537
755
  {
538
756
  code: "RJTT",
@@ -542,7 +760,10 @@ var mostlyright = (() => {
542
760
  latitude: 35.5522,
543
761
  longitude: 139.78,
544
762
  name: "Tokyo Haneda",
545
- tz: "Asia/Tokyo"
763
+ tz: "Asia/Tokyo",
764
+ venues: [
765
+ "polymarket"
766
+ ]
546
767
  },
547
768
  {
548
769
  code: "RKSI",
@@ -552,7 +773,10 @@ var mostlyright = (() => {
552
773
  latitude: 37.4691,
553
774
  longitude: 126.4505,
554
775
  name: "Seoul Incheon",
555
- tz: "Asia/Seoul"
776
+ tz: "Asia/Seoul",
777
+ venues: [
778
+ "polymarket"
779
+ ]
556
780
  },
557
781
  {
558
782
  code: "SAEZ",
@@ -562,7 +786,10 @@ var mostlyright = (() => {
562
786
  latitude: -34.8222,
563
787
  longitude: -58.5358,
564
788
  name: "Buenos Aires Ezeiza",
565
- tz: "America/Argentina/Buenos_Aires"
789
+ tz: "America/Argentina/Buenos_Aires",
790
+ venues: [
791
+ "polymarket"
792
+ ]
566
793
  },
567
794
  {
568
795
  code: "SBGR",
@@ -572,7 +799,10 @@ var mostlyright = (() => {
572
799
  latitude: -23.4356,
573
800
  longitude: -46.4731,
574
801
  name: "S\xE3o Paulo Guarulhos",
575
- tz: "America/Sao_Paulo"
802
+ tz: "America/Sao_Paulo",
803
+ venues: [
804
+ "polymarket"
805
+ ]
576
806
  },
577
807
  {
578
808
  code: "UUEE",
@@ -582,7 +812,10 @@ var mostlyright = (() => {
582
812
  latitude: 55.9728,
583
813
  longitude: 37.4147,
584
814
  name: "Moscow Sheremetyevo",
585
- tz: "Europe/Moscow"
815
+ tz: "Europe/Moscow",
816
+ venues: [
817
+ "polymarket"
818
+ ]
586
819
  },
587
820
  {
588
821
  code: "VABB",
@@ -592,7 +825,10 @@ var mostlyright = (() => {
592
825
  latitude: 19.0887,
593
826
  longitude: 72.8679,
594
827
  name: "Mumbai Chhatrapati Shivaji",
595
- tz: "Asia/Kolkata"
828
+ tz: "Asia/Kolkata",
829
+ venues: [
830
+ "polymarket"
831
+ ]
596
832
  },
597
833
  {
598
834
  code: "VHHH",
@@ -602,7 +838,10 @@ var mostlyright = (() => {
602
838
  latitude: 22.308,
603
839
  longitude: 113.9185,
604
840
  name: "Hong Kong International",
605
- tz: "Asia/Hong_Kong"
841
+ tz: "Asia/Hong_Kong",
842
+ venues: [
843
+ "polymarket"
844
+ ]
606
845
  },
607
846
  {
608
847
  code: "VIDP",
@@ -612,7 +851,10 @@ var mostlyright = (() => {
612
851
  latitude: 28.5562,
613
852
  longitude: 77.1,
614
853
  name: "Delhi Indira Gandhi",
615
- tz: "Asia/Kolkata"
854
+ tz: "Asia/Kolkata",
855
+ venues: [
856
+ "polymarket"
857
+ ]
616
858
  },
617
859
  {
618
860
  code: "VTBS",
@@ -622,7 +864,10 @@ var mostlyright = (() => {
622
864
  latitude: 13.69,
623
865
  longitude: 100.7501,
624
866
  name: "Bangkok Suvarnabhumi",
625
- tz: "Asia/Bangkok"
867
+ tz: "Asia/Bangkok",
868
+ venues: [
869
+ "polymarket"
870
+ ]
626
871
  },
627
872
  {
628
873
  code: "WSSS",
@@ -632,7 +877,10 @@ var mostlyright = (() => {
632
877
  latitude: 1.3644,
633
878
  longitude: 103.9915,
634
879
  name: "Singapore Changi",
635
- tz: "Asia/Singapore"
880
+ tz: "Asia/Singapore",
881
+ venues: [
882
+ "polymarket"
883
+ ]
636
884
  },
637
885
  {
638
886
  code: "YBBN",
@@ -642,7 +890,10 @@ var mostlyright = (() => {
642
890
  latitude: -27.3842,
643
891
  longitude: 153.1175,
644
892
  name: "Brisbane",
645
- tz: "Australia/Brisbane"
893
+ tz: "Australia/Brisbane",
894
+ venues: [
895
+ "polymarket"
896
+ ]
646
897
  },
647
898
  {
648
899
  code: "YMML",
@@ -652,7 +903,10 @@ var mostlyright = (() => {
652
903
  latitude: -37.6733,
653
904
  longitude: 144.8433,
654
905
  name: "Melbourne Tullamarine",
655
- tz: "Australia/Melbourne"
906
+ tz: "Australia/Melbourne",
907
+ venues: [
908
+ "polymarket"
909
+ ]
656
910
  },
657
911
  {
658
912
  code: "YSSY",
@@ -662,7 +916,10 @@ var mostlyright = (() => {
662
916
  latitude: -33.9461,
663
917
  longitude: 151.1772,
664
918
  name: "Sydney Kingsford Smith",
665
- tz: "Australia/Sydney"
919
+ tz: "Australia/Sydney",
920
+ venues: [
921
+ "polymarket"
922
+ ]
666
923
  },
667
924
  {
668
925
  code: "ZBAA",
@@ -672,7 +929,10 @@ var mostlyright = (() => {
672
929
  latitude: 40.0801,
673
930
  longitude: 116.5846,
674
931
  name: "Beijing Capital",
675
- tz: "Asia/Shanghai"
932
+ tz: "Asia/Shanghai",
933
+ venues: [
934
+ "polymarket"
935
+ ]
676
936
  },
677
937
  {
678
938
  code: "ZSPD",
@@ -682,16 +942,22 @@ var mostlyright = (() => {
682
942
  latitude: 31.1443,
683
943
  longitude: 121.8083,
684
944
  name: "Shanghai Pudong",
685
- tz: "Asia/Shanghai"
945
+ tz: "Asia/Shanghai",
946
+ venues: [
947
+ "polymarket"
948
+ ]
686
949
  }
687
950
  ];
688
951
  STATION_BY_CODE = /* @__PURE__ */ new Map([
689
952
  ["ATL", STATIONS[10]],
690
953
  ["AUS", STATIONS[11]],
691
- ["BOS", STATIONS[12]],
692
- ["DCA", STATIONS[13]],
693
- ["DEN", STATIONS[14]],
694
- ["DFW", STATIONS[15]],
954
+ ["BNA", STATIONS[12]],
955
+ ["BOS", STATIONS[13]],
956
+ ["CVG", STATIONS[14]],
957
+ ["DCA", STATIONS[15]],
958
+ ["DEN", STATIONS[16]],
959
+ ["DFW", STATIONS[17]],
960
+ ["DTW", STATIONS[18]],
695
961
  ["EDDB", STATIONS[0]],
696
962
  ["EDDF", STATIONS[1]],
697
963
  ["EDDM", STATIONS[2]],
@@ -702,51 +968,53 @@ var mostlyright = (() => {
702
968
  ["EKCH", STATIONS[7]],
703
969
  ["EPWA", STATIONS[8]],
704
970
  ["ESSA", STATIONS[9]],
705
- ["HOU", STATIONS[16]],
706
- ["LAS", STATIONS[17]],
707
- ["LAX", STATIONS[18]],
708
- ["LEBL", STATIONS[30]],
709
- ["LEMD", STATIONS[31]],
710
- ["LFPB", STATIONS[32]],
711
- ["LFPG", STATIONS[33]],
712
- ["LFPO", STATIONS[34]],
713
- ["LIMC", STATIONS[35]],
714
- ["LIRF", STATIONS[36]],
715
- ["LOWW", STATIONS[37]],
716
- ["LSZH", STATIONS[38]],
717
- ["MDW", STATIONS[19]],
718
- ["MIA", STATIONS[20]],
719
- ["MSP", STATIONS[21]],
720
- ["MSY", STATIONS[22]],
721
- ["NYC", STATIONS[23]],
722
- ["NZAA", STATIONS[39]],
723
- ["NZWN", STATIONS[40]],
724
- ["OERK", STATIONS[41]],
725
- ["OKC", STATIONS[24]],
726
- ["OMDB", STATIONS[42]],
727
- ["OTHH", STATIONS[43]],
728
- ["PHL", STATIONS[25]],
729
- ["PHX", STATIONS[26]],
730
- ["RCTP", STATIONS[44]],
731
- ["RJAA", STATIONS[45]],
732
- ["RJTT", STATIONS[46]],
733
- ["RKSI", STATIONS[47]],
734
- ["SAEZ", STATIONS[48]],
735
- ["SAT", STATIONS[27]],
736
- ["SBGR", STATIONS[49]],
737
- ["SEA", STATIONS[28]],
738
- ["SFO", STATIONS[29]],
739
- ["UUEE", STATIONS[50]],
740
- ["VABB", STATIONS[51]],
741
- ["VHHH", STATIONS[52]],
742
- ["VIDP", STATIONS[53]],
743
- ["VTBS", STATIONS[54]],
744
- ["WSSS", STATIONS[55]],
745
- ["YBBN", STATIONS[56]],
746
- ["YMML", STATIONS[57]],
747
- ["YSSY", STATIONS[58]],
748
- ["ZBAA", STATIONS[59]],
749
- ["ZSPD", STATIONS[60]]
971
+ ["HOU", STATIONS[19]],
972
+ ["IAH", STATIONS[20]],
973
+ ["LAS", STATIONS[21]],
974
+ ["LAX", STATIONS[22]],
975
+ ["LEBL", STATIONS[35]],
976
+ ["LEMD", STATIONS[36]],
977
+ ["LFPB", STATIONS[37]],
978
+ ["LFPG", STATIONS[38]],
979
+ ["LFPO", STATIONS[39]],
980
+ ["LIMC", STATIONS[40]],
981
+ ["LIRF", STATIONS[41]],
982
+ ["LOWW", STATIONS[42]],
983
+ ["LSZH", STATIONS[43]],
984
+ ["MDW", STATIONS[23]],
985
+ ["MIA", STATIONS[24]],
986
+ ["MSP", STATIONS[25]],
987
+ ["MSY", STATIONS[26]],
988
+ ["NYC", STATIONS[27]],
989
+ ["NZAA", STATIONS[44]],
990
+ ["NZWN", STATIONS[45]],
991
+ ["OERK", STATIONS[46]],
992
+ ["OKC", STATIONS[28]],
993
+ ["OMDB", STATIONS[47]],
994
+ ["OTHH", STATIONS[48]],
995
+ ["PHL", STATIONS[29]],
996
+ ["PHX", STATIONS[30]],
997
+ ["RCTP", STATIONS[49]],
998
+ ["RJAA", STATIONS[50]],
999
+ ["RJTT", STATIONS[51]],
1000
+ ["RKSI", STATIONS[52]],
1001
+ ["SAEZ", STATIONS[53]],
1002
+ ["SAT", STATIONS[31]],
1003
+ ["SBGR", STATIONS[54]],
1004
+ ["SEA", STATIONS[32]],
1005
+ ["SFO", STATIONS[33]],
1006
+ ["SLC", STATIONS[34]],
1007
+ ["UUEE", STATIONS[55]],
1008
+ ["VABB", STATIONS[56]],
1009
+ ["VHHH", STATIONS[57]],
1010
+ ["VIDP", STATIONS[58]],
1011
+ ["VTBS", STATIONS[59]],
1012
+ ["WSSS", STATIONS[60]],
1013
+ ["YBBN", STATIONS[61]],
1014
+ ["YMML", STATIONS[62]],
1015
+ ["YSSY", STATIONS[63]],
1016
+ ["ZBAA", STATIONS[64]],
1017
+ ["ZSPD", STATIONS[65]]
750
1018
  ]);
751
1019
  STATION_BY_ICAO = /* @__PURE__ */ new Map([
752
1020
  ["EDDB", STATIONS[0]],
@@ -761,55 +1029,60 @@ var mostlyright = (() => {
761
1029
  ["ESSA", STATIONS[9]],
762
1030
  ["KATL", STATIONS[10]],
763
1031
  ["KAUS", STATIONS[11]],
764
- ["KBOS", STATIONS[12]],
765
- ["KDCA", STATIONS[13]],
766
- ["KDEN", STATIONS[14]],
767
- ["KDFW", STATIONS[15]],
768
- ["KHOU", STATIONS[16]],
769
- ["KLAS", STATIONS[17]],
770
- ["KLAX", STATIONS[18]],
771
- ["KMDW", STATIONS[19]],
772
- ["KMIA", STATIONS[20]],
773
- ["KMSP", STATIONS[21]],
774
- ["KMSY", STATIONS[22]],
775
- ["KNYC", STATIONS[23]],
776
- ["KOKC", STATIONS[24]],
777
- ["KPHL", STATIONS[25]],
778
- ["KPHX", STATIONS[26]],
779
- ["KSAT", STATIONS[27]],
780
- ["KSEA", STATIONS[28]],
781
- ["KSFO", STATIONS[29]],
782
- ["LEBL", STATIONS[30]],
783
- ["LEMD", STATIONS[31]],
784
- ["LFPB", STATIONS[32]],
785
- ["LFPG", STATIONS[33]],
786
- ["LFPO", STATIONS[34]],
787
- ["LIMC", STATIONS[35]],
788
- ["LIRF", STATIONS[36]],
789
- ["LOWW", STATIONS[37]],
790
- ["LSZH", STATIONS[38]],
791
- ["NZAA", STATIONS[39]],
792
- ["NZWN", STATIONS[40]],
793
- ["OERK", STATIONS[41]],
794
- ["OMDB", STATIONS[42]],
795
- ["OTHH", STATIONS[43]],
796
- ["RCTP", STATIONS[44]],
797
- ["RJAA", STATIONS[45]],
798
- ["RJTT", STATIONS[46]],
799
- ["RKSI", STATIONS[47]],
800
- ["SAEZ", STATIONS[48]],
801
- ["SBGR", STATIONS[49]],
802
- ["UUEE", STATIONS[50]],
803
- ["VABB", STATIONS[51]],
804
- ["VHHH", STATIONS[52]],
805
- ["VIDP", STATIONS[53]],
806
- ["VTBS", STATIONS[54]],
807
- ["WSSS", STATIONS[55]],
808
- ["YBBN", STATIONS[56]],
809
- ["YMML", STATIONS[57]],
810
- ["YSSY", STATIONS[58]],
811
- ["ZBAA", STATIONS[59]],
812
- ["ZSPD", STATIONS[60]]
1032
+ ["KBNA", STATIONS[12]],
1033
+ ["KBOS", STATIONS[13]],
1034
+ ["KCVG", STATIONS[14]],
1035
+ ["KDCA", STATIONS[15]],
1036
+ ["KDEN", STATIONS[16]],
1037
+ ["KDFW", STATIONS[17]],
1038
+ ["KDTW", STATIONS[18]],
1039
+ ["KHOU", STATIONS[19]],
1040
+ ["KIAH", STATIONS[20]],
1041
+ ["KLAS", STATIONS[21]],
1042
+ ["KLAX", STATIONS[22]],
1043
+ ["KMDW", STATIONS[23]],
1044
+ ["KMIA", STATIONS[24]],
1045
+ ["KMSP", STATIONS[25]],
1046
+ ["KMSY", STATIONS[26]],
1047
+ ["KNYC", STATIONS[27]],
1048
+ ["KOKC", STATIONS[28]],
1049
+ ["KPHL", STATIONS[29]],
1050
+ ["KPHX", STATIONS[30]],
1051
+ ["KSAT", STATIONS[31]],
1052
+ ["KSEA", STATIONS[32]],
1053
+ ["KSFO", STATIONS[33]],
1054
+ ["KSLC", STATIONS[34]],
1055
+ ["LEBL", STATIONS[35]],
1056
+ ["LEMD", STATIONS[36]],
1057
+ ["LFPB", STATIONS[37]],
1058
+ ["LFPG", STATIONS[38]],
1059
+ ["LFPO", STATIONS[39]],
1060
+ ["LIMC", STATIONS[40]],
1061
+ ["LIRF", STATIONS[41]],
1062
+ ["LOWW", STATIONS[42]],
1063
+ ["LSZH", STATIONS[43]],
1064
+ ["NZAA", STATIONS[44]],
1065
+ ["NZWN", STATIONS[45]],
1066
+ ["OERK", STATIONS[46]],
1067
+ ["OMDB", STATIONS[47]],
1068
+ ["OTHH", STATIONS[48]],
1069
+ ["RCTP", STATIONS[49]],
1070
+ ["RJAA", STATIONS[50]],
1071
+ ["RJTT", STATIONS[51]],
1072
+ ["RKSI", STATIONS[52]],
1073
+ ["SAEZ", STATIONS[53]],
1074
+ ["SBGR", STATIONS[54]],
1075
+ ["UUEE", STATIONS[55]],
1076
+ ["VABB", STATIONS[56]],
1077
+ ["VHHH", STATIONS[57]],
1078
+ ["VIDP", STATIONS[58]],
1079
+ ["VTBS", STATIONS[59]],
1080
+ ["WSSS", STATIONS[60]],
1081
+ ["YBBN", STATIONS[61]],
1082
+ ["YMML", STATIONS[62]],
1083
+ ["YSSY", STATIONS[63]],
1084
+ ["ZBAA", STATIONS[64]],
1085
+ ["ZSPD", STATIONS[65]]
813
1086
  ]);
814
1087
  }
815
1088
  });
@@ -962,13 +1235,13 @@ var mostlyright = (() => {
962
1235
  }
963
1236
  return { _repr_only: true, value: String(value) };
964
1237
  }
965
- var TradewindsError, SourceUnavailableError, DATA_AVAILABILITY_REASONS, DataAvailabilityError, SchemaValidationError, SourceMismatchError, LeakageError, TemporalDriftError, PayloadTooLargeError, DeferredMarketError, PolymarketEventError, TherminalError, NotFoundError, RateLimitError, ValidationError, AuthenticationError, ForbiddenError, ServerError, LiveStreamError, NoLiveDataError;
1238
+ var MostlyRightError, SourceUnavailableError, DATA_AVAILABILITY_REASONS, DataAvailabilityError, NwpNotAvailableError, SchemaValidationError, SourceMismatchError, LeakageError, IssuedAtMissingError, OpenMeteoSeamlessLeakageError, TemporalDriftError, PayloadTooLargeError, DeferredMarketError, PolymarketEventError, TherminalError, NotFoundError, RateLimitError, ValidationError, AuthenticationError, ForbiddenError, ServerError, LiveStreamError, NoLiveDataError;
966
1239
  var init_exceptions = __esm({
967
1240
  "../core/src/exceptions/index.ts"() {
968
1241
  "use strict";
969
- TradewindsError = class extends Error {
1242
+ MostlyRightError = class extends Error {
970
1243
  /** Subclass override — the stable string enum surfaced via `errorCode`. */
971
- static defaultErrorCode = "TRADEWINDS_ERROR";
1244
+ static defaultErrorCode = "MOSTLYRIGHT_ERROR";
972
1245
  errorCode;
973
1246
  source;
974
1247
  requestId;
@@ -1000,7 +1273,7 @@ var mostlyright = (() => {
1000
1273
  return safe;
1001
1274
  }
1002
1275
  };
1003
- SourceUnavailableError = class extends TradewindsError {
1276
+ SourceUnavailableError = class extends MostlyRightError {
1004
1277
  static defaultErrorCode = "SOURCE_UNAVAILABLE";
1005
1278
  httpStatus;
1006
1279
  retryable;
@@ -1034,7 +1307,7 @@ var mostlyright = (() => {
1034
1307
  "source_5xx",
1035
1308
  "rate_limited"
1036
1309
  ];
1037
- DataAvailabilityError = class extends TradewindsError {
1310
+ DataAvailabilityError = class extends MostlyRightError {
1038
1311
  static defaultErrorCode = "DATA_AVAILABILITY";
1039
1312
  reason;
1040
1313
  hint;
@@ -1060,7 +1333,32 @@ var mostlyright = (() => {
1060
1333
  };
1061
1334
  }
1062
1335
  };
1063
- SchemaValidationError = class extends TradewindsError {
1336
+ NwpNotAvailableError = class extends DataAvailabilityError {
1337
+ static defaultErrorCode = "NWP_NOT_AVAILABLE";
1338
+ station;
1339
+ model;
1340
+ constructor(options) {
1341
+ const parentOpts = {
1342
+ reason: "model_unavailable",
1343
+ hint: options.hint,
1344
+ source: options.source ?? `nwp.${options.model}`
1345
+ };
1346
+ if (options.requestId !== void 0 && options.requestId !== null) {
1347
+ parentOpts.requestId = options.requestId;
1348
+ }
1349
+ super(parentOpts);
1350
+ this.station = options.station;
1351
+ this.model = options.model;
1352
+ }
1353
+ payload() {
1354
+ return {
1355
+ ...super.payload(),
1356
+ station: this.station,
1357
+ model: this.model
1358
+ };
1359
+ }
1360
+ };
1361
+ SchemaValidationError = class extends MostlyRightError {
1064
1362
  static defaultErrorCode = "SCHEMA_VALIDATION_FAILED";
1065
1363
  schemaId;
1066
1364
  violations;
@@ -1083,7 +1381,7 @@ var mostlyright = (() => {
1083
1381
  };
1084
1382
  }
1085
1383
  };
1086
- SourceMismatchError = class extends TradewindsError {
1384
+ SourceMismatchError = class extends MostlyRightError {
1087
1385
  static defaultErrorCode = "SOURCE_MISMATCH";
1088
1386
  /** Canonical role-name vocabulary (design.md §R). */
1089
1387
  static VALID_ROLES = /* @__PURE__ */ new Set([
@@ -1112,7 +1410,7 @@ var mostlyright = (() => {
1112
1410
  };
1113
1411
  }
1114
1412
  };
1115
- LeakageError = class extends TradewindsError {
1413
+ LeakageError = class extends MostlyRightError {
1116
1414
  static defaultErrorCode = "LEAKAGE_DETECTED";
1117
1415
  asOf;
1118
1416
  violatingCount;
@@ -1132,7 +1430,50 @@ var mostlyright = (() => {
1132
1430
  };
1133
1431
  }
1134
1432
  };
1135
- TemporalDriftError = class extends TradewindsError {
1433
+ IssuedAtMissingError = class extends SchemaValidationError {
1434
+ static defaultErrorCode = "ISSUED_AT_MISSING";
1435
+ violatingCountRows;
1436
+ constructor(message, options = {}) {
1437
+ super(message, {
1438
+ ...options,
1439
+ schemaId: "schema.forecast.station.v1",
1440
+ violations: [{ column: "issued_at", rule: "non_null" }]
1441
+ });
1442
+ this.violatingCountRows = options.violatingCount ?? 0;
1443
+ }
1444
+ payload() {
1445
+ return {
1446
+ ...super.payload(),
1447
+ name: "IssuedAtMissingError",
1448
+ violating_count: this.violatingCountRows,
1449
+ origin_issue: "Tarabcak/mostlyright#70"
1450
+ };
1451
+ }
1452
+ };
1453
+ OpenMeteoSeamlessLeakageError = class extends LeakageError {
1454
+ static defaultErrorCode = "OPEN_METEO_SEAMLESS_LEAKAGE";
1455
+ model;
1456
+ endpointUrl;
1457
+ constructor(message, options) {
1458
+ super(message, {
1459
+ ...options,
1460
+ asOf: options.asOf ?? "(seamless-endpoint-refused-before-fetch)",
1461
+ violatingCount: 0
1462
+ });
1463
+ this.model = options.model;
1464
+ this.endpointUrl = options.endpointUrl;
1465
+ }
1466
+ payload() {
1467
+ return {
1468
+ ...super.payload(),
1469
+ name: "OpenMeteoSeamlessLeakageError",
1470
+ model: this.model,
1471
+ endpoint_url: this.endpointUrl,
1472
+ origin_issue: "Tarabcak/mostlyright#70"
1473
+ };
1474
+ }
1475
+ };
1476
+ TemporalDriftError = class extends MostlyRightError {
1136
1477
  static defaultErrorCode = "TEMPORAL_DRIFT";
1137
1478
  schemaId;
1138
1479
  assertedRange;
@@ -1155,7 +1496,7 @@ var mostlyright = (() => {
1155
1496
  };
1156
1497
  }
1157
1498
  };
1158
- PayloadTooLargeError = class extends TradewindsError {
1499
+ PayloadTooLargeError = class extends MostlyRightError {
1159
1500
  static defaultErrorCode = "PAYLOAD_TOO_LARGE";
1160
1501
  declaredSize;
1161
1502
  limit;
@@ -1175,13 +1516,13 @@ var mostlyright = (() => {
1175
1516
  };
1176
1517
  }
1177
1518
  };
1178
- DeferredMarketError = class extends TradewindsError {
1519
+ DeferredMarketError = class extends MostlyRightError {
1179
1520
  static defaultErrorCode = "DEFERRED_MARKET";
1180
1521
  };
1181
- PolymarketEventError = class extends TradewindsError {
1522
+ PolymarketEventError = class extends MostlyRightError {
1182
1523
  static defaultErrorCode = "POLYMARKET_EVENT_INVALID";
1183
1524
  };
1184
- TherminalError = class extends TradewindsError {
1525
+ TherminalError = class extends MostlyRightError {
1185
1526
  static defaultErrorCode = "HTTP_ERROR";
1186
1527
  statusCode;
1187
1528
  constructor(message, options = {}) {
@@ -1240,7 +1581,7 @@ var mostlyright = (() => {
1240
1581
  super(message, { ...options, statusCode: options.statusCode ?? 500 });
1241
1582
  }
1242
1583
  };
1243
- LiveStreamError = class extends TradewindsError {
1584
+ LiveStreamError = class extends MostlyRightError {
1244
1585
  static defaultErrorCode = "LIVE_STREAM_ERROR";
1245
1586
  };
1246
1587
  NoLiveDataError = class extends LiveStreamError {
@@ -1504,6 +1845,76 @@ var mostlyright = (() => {
1504
1845
  }
1505
1846
  });
1506
1847
 
1848
+ // ../core/src/stations/index.ts
1849
+ var StationCatalog, CATALOG;
1850
+ var init_stations2 = __esm({
1851
+ "../core/src/stations/index.ts"() {
1852
+ "use strict";
1853
+ init_stations();
1854
+ StationCatalog = class {
1855
+ stations;
1856
+ byCode;
1857
+ byIcao;
1858
+ constructor(stations = STATIONS) {
1859
+ this.stations = stations;
1860
+ if (stations === STATIONS) {
1861
+ this.byCode = STATION_BY_CODE;
1862
+ this.byIcao = STATION_BY_ICAO;
1863
+ } else {
1864
+ const byCode = /* @__PURE__ */ new Map();
1865
+ const byIcao = /* @__PURE__ */ new Map();
1866
+ for (const s of stations) {
1867
+ if (s.code !== null) byCode.set(s.code, s);
1868
+ byIcao.set(s.icao, s);
1869
+ }
1870
+ this.byCode = byCode;
1871
+ this.byIcao = byIcao;
1872
+ }
1873
+ }
1874
+ /**
1875
+ * Return the station for `code` (registry code or ICAO).
1876
+ * @throws if no station matches.
1877
+ */
1878
+ get(code) {
1879
+ const station = this.byCode.get(code) ?? this.byIcao.get(code);
1880
+ if (station === void 0) {
1881
+ throw new Error(
1882
+ `Unknown station ${JSON.stringify(code)}. Expected a registry code (e.g. "NYC", "EGLL") or a 4-letter ICAO (e.g. "KNYC").`
1883
+ );
1884
+ }
1885
+ return station;
1886
+ }
1887
+ /** Stations tagged with `venue` (e.g. "kalshi"), sorted by ICAO. */
1888
+ filterByVenue(venue) {
1889
+ return this.stations.filter((s) => s.venues.includes(venue)).sort((a, b) => a.icao.localeCompare(b.icao));
1890
+ }
1891
+ /** Stations whose ISO 3166-1 alpha-2 `country` matches, sorted by ICAO. */
1892
+ filterByCountry(country) {
1893
+ return this.stations.filter((s) => s.country === country).sort((a, b) => a.icao.localeCompare(b.icao));
1894
+ }
1895
+ /** Union of all venue tags present in the catalog. */
1896
+ venues() {
1897
+ const out = /* @__PURE__ */ new Set();
1898
+ for (const s of this.stations) {
1899
+ for (const v of s.venues) out.add(v);
1900
+ }
1901
+ return out;
1902
+ }
1903
+ /** True iff `code` resolves to a station (by registry code or ICAO). */
1904
+ has(code) {
1905
+ return this.byCode.has(code) || this.byIcao.has(code);
1906
+ }
1907
+ get size() {
1908
+ return this.stations.length;
1909
+ }
1910
+ [Symbol.iterator]() {
1911
+ return this.stations[Symbol.iterator]();
1912
+ }
1913
+ };
1914
+ CATALOG = new StationCatalog();
1915
+ }
1916
+ });
1917
+
1507
1918
  // ../core/src/internal/http.ts
1508
1919
  function sleep(ms, signal) {
1509
1920
  return new Promise((resolve, reject) => {
@@ -1661,17 +2072,22 @@ var mostlyright = (() => {
1661
2072
  var src_exports = {};
1662
2073
  __export(src_exports, {
1663
2074
  AuthenticationError: () => AuthenticationError,
2075
+ CATALOG: () => CATALOG,
1664
2076
  CLIMATE_REPORT_TYPE_PRIORITY: () => CLIMATE_REPORT_TYPE_PRIORITY,
1665
2077
  DATA_AVAILABILITY_REASONS: () => DATA_AVAILABILITY_REASONS,
1666
2078
  DataAvailabilityError: () => DataAvailabilityError,
1667
2079
  DeferredMarketError: () => DeferredMarketError,
1668
2080
  ForbiddenError: () => ForbiddenError,
2081
+ IssuedAtMissingError: () => IssuedAtMissingError,
1669
2082
  LIVE_V1_POLICY: () => LIVE_V1_POLICY,
1670
2083
  LeakageError: () => LeakageError,
1671
2084
  LiveStreamError: () => LiveStreamError,
2085
+ MostlyRightError: () => MostlyRightError,
1672
2086
  NoLiveDataError: () => NoLiveDataError,
1673
2087
  NotFoundError: () => NotFoundError,
2088
+ NwpNotAvailableError: () => NwpNotAvailableError,
1674
2089
  OBSERVATION_SOURCE_PRIORITY: () => OBSERVATION_SOURCE_PRIORITY,
2090
+ OpenMeteoSeamlessLeakageError: () => OpenMeteoSeamlessLeakageError,
1675
2091
  PayloadTooLargeError: () => PayloadTooLargeError,
1676
2092
  PolymarketEventError: () => PolymarketEventError,
1677
2093
  QC_ALPHA_RULES: () => QC_ALPHA_RULES,
@@ -1684,9 +2100,9 @@ var mostlyright = (() => {
1684
2100
  ServerError: () => ServerError,
1685
2101
  SourceMismatchError: () => SourceMismatchError,
1686
2102
  SourceUnavailableError: () => SourceUnavailableError,
2103
+ StationCatalog: () => StationCatalog,
1687
2104
  TemporalDriftError: () => TemporalDriftError,
1688
2105
  TherminalError: () => TherminalError,
1689
- TradewindsError: () => TradewindsError,
1690
2106
  ValidationError: () => ValidationError,
1691
2107
  _CLI_PUBLICATION_DELAY_HOURS: () => _CLI_PUBLICATION_DELAY_HOURS,
1692
2108
  _JAN_REF: () => _JAN_REF,
@@ -1715,6 +2131,7 @@ var mostlyright = (() => {
1715
2131
  init_generated2();
1716
2132
  init_exceptions();
1717
2133
  init_snapshot();
2134
+ init_stations2();
1718
2135
  init_http();
1719
2136
  version = "0.0.0";
1720
2137
  }
@@ -2435,6 +2852,11 @@ var mostlyright = (() => {
2435
2852
  LiveStreamError: () => LiveStreamError,
2436
2853
  NCEI_POLITE_DELAY_MS: () => NCEI_POLITE_DELAY_MS,
2437
2854
  NoLiveDataError: () => NoLiveDataError,
2855
+ OPEN_METEO_LIVE_URL: () => OPEN_METEO_LIVE_URL,
2856
+ OPEN_METEO_MODELS: () => OPEN_METEO_MODELS,
2857
+ OPEN_METEO_PREVIOUS_RUNS_URL: () => OPEN_METEO_PREVIOUS_RUNS_URL,
2858
+ OPEN_METEO_SEAMLESS_URL: () => OPEN_METEO_SEAMLESS_URL,
2859
+ OPEN_METEO_SINGLE_RUNS_URL: () => OPEN_METEO_SINGLE_RUNS_URL,
2438
2860
  POLITE_FLOORS_S: () => POLITE_FLOORS_S,
2439
2861
  SOURCE_IDENTITY_TAGS: () => SOURCE_IDENTITY_TAGS,
2440
2862
  SSID_COLUMNS: () => SSID_COLUMNS,
@@ -2461,6 +2883,7 @@ var mostlyright = (() => {
2461
2883
  mapCloudCover: () => mapCloudCover,
2462
2884
  mergeClimate: () => mergeClimate,
2463
2885
  obs: () => obs,
2886
+ openMeteoForecasts: () => openMeteoForecasts,
2464
2887
  parseAwcVisibility: () => parseAwcVisibility,
2465
2888
  parseCliRecord: () => parseCliRecord,
2466
2889
  parseCliResponse: () => parseCliResponse,
@@ -3415,16 +3838,381 @@ var mostlyright = (() => {
3415
3838
  function buildHint(station, model) {
3416
3839
  const hasMosCoverage = IEM_MOS_COVERED_STATIONS.has(station.toUpperCase());
3417
3840
  const mosLine = hasMosCoverage ? `Workaround for ${station}: iemMosForecasts("${station}", ...) is available (IEM MOS catalog covers this station).` : `Workaround: this station has no IEM MOS coverage; use the Python SDK's mostlyright.forecast_nwp() in v1.x.`;
3418
- return `forecastNwp(${station}, "${model}") is a v1.x stub. Browser GRIB2 decode is not production-ready in May 2026 (no eccodes / cfgrib equivalent for the browser; WASM compile time + bundle size make it impractical for v1.x). ${mosLine} See https://mostlyright.md/docs/sdk/typescript/forecasts#typescript-lane for the architectural reason + v1.1+ tracking.`;
3841
+ return `forecastNwp(${station}, "${model}") is a v1.x stub. Browser GRIB2 decode is not production-ready in May 2026 (no eccodes / cfgrib equivalent for the browser; WASM compile time + bundle size make it impractical for v1.x). ${mosLine} See https://mostlyright.md/docs/sdk/typescript/nwp-forecasts/ for the architectural reason + v2.0+ tracking.`;
3419
3842
  }
3420
3843
  async function forecastNwp(station, model, _opts = {}) {
3421
- throw new DataAvailabilityError({
3422
- reason: "model_unavailable",
3423
- source: "nwp-stub",
3844
+ throw new NwpNotAvailableError({
3845
+ station,
3846
+ model,
3424
3847
  hint: buildHint(station, model)
3425
3848
  });
3426
3849
  }
3427
3850
 
3851
+ // ../weather/src/forecasts/open-meteo.ts
3852
+ init_src();
3853
+
3854
+ // ../weather/src/forecasts/open-meteo-models.ts
3855
+ var OPEN_METEO_MODELS = /* @__PURE__ */ new Set([
3856
+ // NCEP (8)
3857
+ "gfs_seamless",
3858
+ "gfs_global",
3859
+ "gfs_graphcast025",
3860
+ "aigfs025",
3861
+ "hgefs025",
3862
+ "ncep_hrrr_conus",
3863
+ "ncep_nbm_conus",
3864
+ "ncep_nam_conus",
3865
+ // ECMWF (3)
3866
+ "ecmwf_ifs025",
3867
+ "ecmwf_ifs_hres",
3868
+ "ecmwf_aifs025_single",
3869
+ // DWD (5)
3870
+ "dwd_icon_seamless",
3871
+ "dwd_icon_global",
3872
+ "dwd_icon_eu",
3873
+ "dwd_icon_d2",
3874
+ "dwd_icon_d2_15min",
3875
+ // Météo-France (6)
3876
+ "meteofrance_seamless",
3877
+ "meteofrance_arpege_world025",
3878
+ "meteofrance_arpege_europe",
3879
+ "meteofrance_arome_france0025",
3880
+ "meteofrance_arome_france_hd",
3881
+ "meteofrance_arome_france_hd_15min",
3882
+ // Asia + Oceania (8)
3883
+ "jma_seamless",
3884
+ "jma_gsm",
3885
+ "jma_msm",
3886
+ "kma_seamless",
3887
+ "kma_gdps",
3888
+ "kma_ldps",
3889
+ "cma_grapes_global",
3890
+ "bom_access_global",
3891
+ // Europe (3)
3892
+ "ukmo_global_deterministic_10km",
3893
+ "ukmo_uk_deterministic_2km",
3894
+ "metno_nordic_pp",
3895
+ // GEM Canada (3)
3896
+ "cmc_gem_gdps",
3897
+ "cmc_gem_rdps",
3898
+ "cmc_gem_hrdps"
3899
+ ]);
3900
+ var SIX_HOURLY = [0, 6, 12, 18];
3901
+ var THREE_HOURLY = [0, 3, 6, 9, 12, 15, 18, 21];
3902
+ var HOURLY = Array.from({ length: 24 }, (_, i) => i);
3903
+ var TWELVE_HOURLY = [0, 12];
3904
+ var CYCLE_HOURS = /* @__PURE__ */ new Map([
3905
+ // NCEP
3906
+ ["gfs_seamless", SIX_HOURLY],
3907
+ ["gfs_global", SIX_HOURLY],
3908
+ ["gfs_graphcast025", SIX_HOURLY],
3909
+ ["aigfs025", SIX_HOURLY],
3910
+ ["hgefs025", SIX_HOURLY],
3911
+ ["ncep_hrrr_conus", HOURLY],
3912
+ ["ncep_nbm_conus", HOURLY],
3913
+ ["ncep_nam_conus", SIX_HOURLY],
3914
+ // ECMWF
3915
+ ["ecmwf_ifs025", SIX_HOURLY],
3916
+ ["ecmwf_ifs_hres", SIX_HOURLY],
3917
+ ["ecmwf_aifs025_single", SIX_HOURLY],
3918
+ // DWD
3919
+ ["dwd_icon_seamless", SIX_HOURLY],
3920
+ ["dwd_icon_global", SIX_HOURLY],
3921
+ ["dwd_icon_eu", SIX_HOURLY],
3922
+ ["dwd_icon_d2", THREE_HOURLY],
3923
+ ["dwd_icon_d2_15min", THREE_HOURLY],
3924
+ // Météo-France
3925
+ ["meteofrance_seamless", SIX_HOURLY],
3926
+ ["meteofrance_arpege_world025", SIX_HOURLY],
3927
+ ["meteofrance_arpege_europe", SIX_HOURLY],
3928
+ ["meteofrance_arome_france0025", THREE_HOURLY],
3929
+ ["meteofrance_arome_france_hd", THREE_HOURLY],
3930
+ ["meteofrance_arome_france_hd_15min", THREE_HOURLY],
3931
+ // Asia + Oceania
3932
+ ["jma_seamless", SIX_HOURLY],
3933
+ ["jma_gsm", SIX_HOURLY],
3934
+ ["jma_msm", THREE_HOURLY],
3935
+ ["kma_seamless", SIX_HOURLY],
3936
+ ["kma_gdps", SIX_HOURLY],
3937
+ ["kma_ldps", THREE_HOURLY],
3938
+ ["cma_grapes_global", SIX_HOURLY],
3939
+ ["bom_access_global", SIX_HOURLY],
3940
+ // Europe
3941
+ ["ukmo_global_deterministic_10km", SIX_HOURLY],
3942
+ ["ukmo_uk_deterministic_2km", THREE_HOURLY],
3943
+ ["metno_nordic_pp", HOURLY],
3944
+ // GEM Canada
3945
+ ["cmc_gem_gdps", TWELVE_HOURLY],
3946
+ ["cmc_gem_rdps", SIX_HOURLY],
3947
+ ["cmc_gem_hrdps", SIX_HOURLY]
3948
+ ]);
3949
+ var PUBLISH_LAG_HOURS = /* @__PURE__ */ new Map([
3950
+ // NCEP — global 6h, regional/mesoscale 2h
3951
+ ["gfs_seamless", 6],
3952
+ ["gfs_global", 6],
3953
+ ["gfs_graphcast025", 6],
3954
+ ["aigfs025", 6],
3955
+ ["hgefs025", 6],
3956
+ ["ncep_hrrr_conus", 2],
3957
+ ["ncep_nbm_conus", 2],
3958
+ ["ncep_nam_conus", 2],
3959
+ // ECMWF — global 6h
3960
+ ["ecmwf_ifs025", 6],
3961
+ ["ecmwf_ifs_hres", 6],
3962
+ ["ecmwf_aifs025_single", 6],
3963
+ // DWD
3964
+ ["dwd_icon_seamless", 4],
3965
+ ["dwd_icon_global", 4],
3966
+ ["dwd_icon_eu", 4],
3967
+ ["dwd_icon_d2", 2],
3968
+ ["dwd_icon_d2_15min", 2],
3969
+ // Météo-France
3970
+ ["meteofrance_seamless", 4],
3971
+ ["meteofrance_arpege_world025", 6],
3972
+ ["meteofrance_arpege_europe", 4],
3973
+ ["meteofrance_arome_france0025", 2],
3974
+ ["meteofrance_arome_france_hd", 2],
3975
+ ["meteofrance_arome_france_hd_15min", 2],
3976
+ // Asia + Oceania
3977
+ ["jma_seamless", 6],
3978
+ ["jma_gsm", 6],
3979
+ ["jma_msm", 2],
3980
+ ["kma_seamless", 6],
3981
+ ["kma_gdps", 6],
3982
+ ["kma_ldps", 2],
3983
+ ["cma_grapes_global", 6],
3984
+ ["bom_access_global", 6],
3985
+ // Europe
3986
+ ["ukmo_global_deterministic_10km", 6],
3987
+ ["ukmo_uk_deterministic_2km", 2],
3988
+ ["metno_nordic_pp", 2],
3989
+ // GEM Canada
3990
+ ["cmc_gem_gdps", 6],
3991
+ ["cmc_gem_rdps", 4],
3992
+ ["cmc_gem_hrdps", 2]
3993
+ ]);
3994
+ function floorToCycleMs(valueUtcMs, cycleHours) {
3995
+ if (cycleHours.length === 0) {
3996
+ throw new Error("cycleHours must be non-empty");
3997
+ }
3998
+ const d = new Date(valueUtcMs);
3999
+ const hour = d.getUTCHours();
4000
+ const sorted = [...cycleHours].sort((a, b) => a - b);
4001
+ const candidates = sorted.filter((h) => h <= hour);
4002
+ if (candidates.length > 0) {
4003
+ const targetHour = candidates[candidates.length - 1];
4004
+ return Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate(), targetHour, 0, 0, 0);
4005
+ }
4006
+ const lastCycle = sorted[sorted.length - 1];
4007
+ const prior = new Date(valueUtcMs - 864e5);
4008
+ return Date.UTC(
4009
+ prior.getUTCFullYear(),
4010
+ prior.getUTCMonth(),
4011
+ prior.getUTCDate(),
4012
+ lastCycle,
4013
+ 0,
4014
+ 0,
4015
+ 0
4016
+ );
4017
+ }
4018
+ function issuedAtFromPreviousDayMs(validAtUtcMs, N, cycleHours) {
4019
+ if (N < 1 || N > 7) {
4020
+ throw new Error(`N must be in 1..7 (Open-Meteo previous_dayN limit); got ${N}`);
4021
+ }
4022
+ return floorToCycleMs(validAtUtcMs - N * 864e5, cycleHours);
4023
+ }
4024
+ function issuedAtFromLiveCycleMathMs(nowUtcMs, publishLagHours, cycleHours) {
4025
+ return floorToCycleMs(nowUtcMs - publishLagHours * 36e5, cycleHours);
4026
+ }
4027
+
4028
+ // ../weather/src/forecasts/open-meteo.ts
4029
+ var OPEN_METEO_PREVIOUS_RUNS_URL = "https://previous-runs-api.open-meteo.com/v1/forecast";
4030
+ var OPEN_METEO_SINGLE_RUNS_URL = "https://single-runs-api.open-meteo.com/v1/forecast";
4031
+ var OPEN_METEO_LIVE_URL = "https://api.open-meteo.com/v1/forecast";
4032
+ var OPEN_METEO_SEAMLESS_URL = "https://historical-forecast-api.open-meteo.com/v1/forecast";
4033
+ var VALID_MODES = /* @__PURE__ */ new Set(["training", "live", "seamless"]);
4034
+ var HOURLY_VARIABLES = [
4035
+ "temperature_2m",
4036
+ "dew_point_2m",
4037
+ "apparent_temperature",
4038
+ "wind_speed_10m",
4039
+ "wind_direction_10m",
4040
+ "wind_gusts_10m",
4041
+ "precipitation",
4042
+ "precipitation_probability",
4043
+ "cloud_cover",
4044
+ "surface_pressure",
4045
+ "pressure_msl",
4046
+ "shortwave_radiation",
4047
+ "direct_radiation",
4048
+ "cape",
4049
+ "freezing_level_height",
4050
+ "snow_depth",
4051
+ "visibility",
4052
+ "weather_code"
4053
+ ];
4054
+ var STATION_COORDS = /* @__PURE__ */ new Map([
4055
+ ["KNYC", { lat: 40.78, lon: -73.97 }],
4056
+ ["KORD", { lat: 41.98, lon: -87.9 }],
4057
+ ["KDEN", { lat: 39.86, lon: -104.67 }],
4058
+ ["KMIA", { lat: 25.79, lon: -80.29 }],
4059
+ ["KSEA", { lat: 47.45, lon: -122.31 }]
4060
+ ]);
4061
+ function resolveCoords(station) {
4062
+ const coords = STATION_COORDS.get(station);
4063
+ if (coords) return coords;
4064
+ throw new Error(
4065
+ `openMeteoForecasts: station=${JSON.stringify(station)} not in built-in coords table; add to STATION_COORDS`
4066
+ );
4067
+ }
4068
+ function buildHourlyParam(endpoint) {
4069
+ if (endpoint === OPEN_METEO_PREVIOUS_RUNS_URL) {
4070
+ return HOURLY_VARIABLES.map((v) => `${v}_previous_day1`).join(",");
4071
+ }
4072
+ return HOURLY_VARIABLES.join(",");
4073
+ }
4074
+ function dispatchEndpoint(mode, opts) {
4075
+ if (mode === "training") {
4076
+ return opts.issuedAt ? OPEN_METEO_SINGLE_RUNS_URL : OPEN_METEO_PREVIOUS_RUNS_URL;
4077
+ }
4078
+ if (mode === "live") {
4079
+ return OPEN_METEO_LIVE_URL;
4080
+ }
4081
+ if (mode === "seamless") {
4082
+ if (!opts.allowLeakage) {
4083
+ throw new OpenMeteoSeamlessLeakageError(
4084
+ "Open-Meteo seamless endpoint is banned for training data (see Tarabcak/mostlyright#70). Pass allowLeakage: true to opt in; LeakageDetector will still reject these rows when asOf is asserted.",
4085
+ {
4086
+ model: opts.model,
4087
+ endpointUrl: OPEN_METEO_SEAMLESS_URL
4088
+ }
4089
+ );
4090
+ }
4091
+ return OPEN_METEO_SEAMLESS_URL;
4092
+ }
4093
+ throw new Error(`openMeteoForecasts: unknown mode ${JSON.stringify(mode)}`);
4094
+ }
4095
+ function isoIfNotNull(ms) {
4096
+ return ms === null ? null : new Date(ms).toISOString();
4097
+ }
4098
+ function maybeNumber2(value) {
4099
+ if (value === null || value === void 0) return null;
4100
+ const n = typeof value === "number" ? value : Number(value);
4101
+ return Number.isFinite(n) ? n : null;
4102
+ }
4103
+ function pickHourlyValue(hourly, key, isPreviousRuns, idx) {
4104
+ const arr = isPreviousRuns ? hourly[`${key}_previous_day1`] ?? hourly[key] : hourly[key];
4105
+ if (!Array.isArray(arr) || idx >= arr.length) return null;
4106
+ return arr[idx];
4107
+ }
4108
+ async function openMeteoForecasts(station, fromDate, toDate, opts = {}) {
4109
+ const model = opts.model ?? "gfs_global";
4110
+ if (!OPEN_METEO_MODELS.has(model)) {
4111
+ throw new Error(
4112
+ `openMeteoForecasts: model must be one of OPEN_METEO_MODELS (36 keys); got ${JSON.stringify(model)}`
4113
+ );
4114
+ }
4115
+ const mode = opts.mode ?? "training";
4116
+ if (!VALID_MODES.has(mode)) {
4117
+ throw new Error(
4118
+ `openMeteoForecasts: mode must be one of training,live,seamless; got ${JSON.stringify(mode)}`
4119
+ );
4120
+ }
4121
+ const endpoint = dispatchEndpoint(mode, {
4122
+ allowLeakage: opts.allowLeakage ?? false,
4123
+ model,
4124
+ issuedAt: opts.issuedAt
4125
+ });
4126
+ const { lat, lon } = resolveCoords(station);
4127
+ const params = new URLSearchParams();
4128
+ params.set("latitude", String(lat));
4129
+ params.set("longitude", String(lon));
4130
+ params.set("start_date", fromDate);
4131
+ params.set("end_date", toDate);
4132
+ params.set("hourly", buildHourlyParam(endpoint));
4133
+ params.set("models", model);
4134
+ params.set("timezone", "UTC");
4135
+ if (endpoint === OPEN_METEO_SINGLE_RUNS_URL && opts.issuedAt) {
4136
+ params.set("run", opts.issuedAt);
4137
+ }
4138
+ const fetchFn = opts.fetchFn ?? fetch;
4139
+ const url = `${endpoint}?${params.toString()}`;
4140
+ const resp = await fetchFn(url);
4141
+ if (resp.status === 404) return [];
4142
+ if (!resp.ok) {
4143
+ throw new Error(`openMeteoForecasts: HTTP ${resp.status} on ${url}`);
4144
+ }
4145
+ const payload = await resp.json();
4146
+ const hourly = payload.hourly ?? {};
4147
+ const times = hourly.time ?? [];
4148
+ if (times.length === 0) return [];
4149
+ let source;
4150
+ if (endpoint === OPEN_METEO_PREVIOUS_RUNS_URL) {
4151
+ source = "open_meteo.previous_runs";
4152
+ } else if (endpoint === OPEN_METEO_SINGLE_RUNS_URL) {
4153
+ source = "open_meteo.single_run";
4154
+ } else if (endpoint === OPEN_METEO_LIVE_URL) {
4155
+ source = "open_meteo.live";
4156
+ } else {
4157
+ source = "open_meteo.seamless";
4158
+ }
4159
+ const cycleHours = CYCLE_HOURS.get(model) ?? [0, 6, 12, 18];
4160
+ const publishLag = PUBLISH_LAG_HOURS.get(model) ?? 6;
4161
+ const retrievedAt = (/* @__PURE__ */ new Date()).toISOString();
4162
+ const nowMs = Date.now();
4163
+ const rows = [];
4164
+ for (let i = 0; i < times.length; i++) {
4165
+ const tIso = times[i] ?? "";
4166
+ if (!tIso) continue;
4167
+ const validAtMs = Date.parse(tIso.endsWith("Z") || tIso.includes("+") ? tIso : `${tIso}Z`);
4168
+ let issuedAtMs;
4169
+ if (source === "open_meteo.previous_runs") {
4170
+ issuedAtMs = issuedAtFromPreviousDayMs(validAtMs, 1, cycleHours);
4171
+ } else if (source === "open_meteo.single_run") {
4172
+ issuedAtMs = opts.issuedAt ? Date.parse(
4173
+ opts.issuedAt.endsWith("Z") || opts.issuedAt.includes("+") ? opts.issuedAt : `${opts.issuedAt}Z`
4174
+ ) : null;
4175
+ } else if (source === "open_meteo.live") {
4176
+ issuedAtMs = issuedAtFromLiveCycleMathMs(nowMs, publishLag, cycleHours);
4177
+ } else {
4178
+ issuedAtMs = null;
4179
+ }
4180
+ const validAtIso = new Date(validAtMs).toISOString();
4181
+ const forecastHour = issuedAtMs === null ? null : Math.round((validAtMs - issuedAtMs) / 36e5);
4182
+ const isPrev = source === "open_meteo.previous_runs";
4183
+ const h = hourly;
4184
+ const popPct = maybeNumber2(pickHourlyValue(h, "precipitation_probability", isPrev, i));
4185
+ rows.push({
4186
+ station,
4187
+ model,
4188
+ issuedAt: isoIfNotNull(issuedAtMs),
4189
+ validAt: validAtIso,
4190
+ forecastHour,
4191
+ tempC: maybeNumber2(pickHourlyValue(h, "temperature_2m", isPrev, i)),
4192
+ dewPointC: maybeNumber2(pickHourlyValue(h, "dew_point_2m", isPrev, i)),
4193
+ apparentTempC: maybeNumber2(pickHourlyValue(h, "apparent_temperature", isPrev, i)),
4194
+ windSpeedMs: maybeNumber2(pickHourlyValue(h, "wind_speed_10m", isPrev, i)),
4195
+ windDirDeg: maybeNumber2(pickHourlyValue(h, "wind_direction_10m", isPrev, i)),
4196
+ windGustsMs: maybeNumber2(pickHourlyValue(h, "wind_gusts_10m", isPrev, i)),
4197
+ precipProbability: popPct === null ? null : popPct / 100,
4198
+ precipitationMm: maybeNumber2(pickHourlyValue(h, "precipitation", isPrev, i)),
4199
+ cloudCoverPct: maybeNumber2(pickHourlyValue(h, "cloud_cover", isPrev, i)),
4200
+ surfacePressureHpa: maybeNumber2(pickHourlyValue(h, "surface_pressure", isPrev, i)),
4201
+ pressureMslHpa: maybeNumber2(pickHourlyValue(h, "pressure_msl", isPrev, i)),
4202
+ shortwaveRadiationWm2: maybeNumber2(pickHourlyValue(h, "shortwave_radiation", isPrev, i)),
4203
+ directRadiationWm2: maybeNumber2(pickHourlyValue(h, "direct_radiation", isPrev, i)),
4204
+ capeJkg: maybeNumber2(pickHourlyValue(h, "cape", isPrev, i)),
4205
+ freezingLevelM: maybeNumber2(pickHourlyValue(h, "freezing_level_height", isPrev, i)),
4206
+ snowDepthM: maybeNumber2(pickHourlyValue(h, "snow_depth", isPrev, i)),
4207
+ visibilityM: maybeNumber2(pickHourlyValue(h, "visibility", isPrev, i)),
4208
+ weatherCode: maybeNumber2(pickHourlyValue(h, "weather_code", isPrev, i)),
4209
+ source,
4210
+ retrievedAt
4211
+ });
4212
+ }
4213
+ return rows;
4214
+ }
4215
+
3428
4216
  // ../weather/src/dailyExtremes.ts
3429
4217
  init_src();
3430
4218
 
@@ -3438,7 +4226,10 @@ var mostlyright = (() => {
3438
4226
  latitude: 52.3667,
3439
4227
  longitude: 13.5033,
3440
4228
  name: "Berlin Brandenburg",
3441
- tz: "Europe/Berlin"
4229
+ tz: "Europe/Berlin",
4230
+ venues: [
4231
+ "polymarket"
4232
+ ]
3442
4233
  },
3443
4234
  {
3444
4235
  code: "EDDF",
@@ -3448,7 +4239,10 @@ var mostlyright = (() => {
3448
4239
  latitude: 50.0379,
3449
4240
  longitude: 8.5622,
3450
4241
  name: "Frankfurt am Main",
3451
- tz: "Europe/Berlin"
4242
+ tz: "Europe/Berlin",
4243
+ venues: [
4244
+ "polymarket"
4245
+ ]
3452
4246
  },
3453
4247
  {
3454
4248
  code: "EDDM",
@@ -3458,7 +4252,10 @@ var mostlyright = (() => {
3458
4252
  latitude: 48.3538,
3459
4253
  longitude: 11.7861,
3460
4254
  name: "Munich Franz Josef Strauss",
3461
- tz: "Europe/Berlin"
4255
+ tz: "Europe/Berlin",
4256
+ venues: [
4257
+ "polymarket"
4258
+ ]
3462
4259
  },
3463
4260
  {
3464
4261
  code: "EFHK",
@@ -3468,7 +4265,10 @@ var mostlyright = (() => {
3468
4265
  latitude: 60.3172,
3469
4266
  longitude: 24.9633,
3470
4267
  name: "Helsinki-Vantaa",
3471
- tz: "Europe/Helsinki"
4268
+ tz: "Europe/Helsinki",
4269
+ venues: [
4270
+ "polymarket"
4271
+ ]
3472
4272
  },
3473
4273
  {
3474
4274
  code: "EGKK",
@@ -3478,7 +4278,10 @@ var mostlyright = (() => {
3478
4278
  latitude: 51.1481,
3479
4279
  longitude: -0.1903,
3480
4280
  name: "London Gatwick",
3481
- tz: "Europe/London"
4281
+ tz: "Europe/London",
4282
+ venues: [
4283
+ "polymarket"
4284
+ ]
3482
4285
  },
3483
4286
  {
3484
4287
  code: "EGLL",
@@ -3488,7 +4291,10 @@ var mostlyright = (() => {
3488
4291
  latitude: 51.4706,
3489
4292
  longitude: -0.4619,
3490
4293
  name: "London Heathrow",
3491
- tz: "Europe/London"
4294
+ tz: "Europe/London",
4295
+ venues: [
4296
+ "polymarket"
4297
+ ]
3492
4298
  },
3493
4299
  {
3494
4300
  code: "EHAM",
@@ -3498,7 +4304,10 @@ var mostlyright = (() => {
3498
4304
  latitude: 52.3086,
3499
4305
  longitude: 4.7639,
3500
4306
  name: "Amsterdam Schiphol",
3501
- tz: "Europe/Amsterdam"
4307
+ tz: "Europe/Amsterdam",
4308
+ venues: [
4309
+ "polymarket"
4310
+ ]
3502
4311
  },
3503
4312
  {
3504
4313
  code: "EKCH",
@@ -3508,7 +4317,10 @@ var mostlyright = (() => {
3508
4317
  latitude: 55.6181,
3509
4318
  longitude: 12.6561,
3510
4319
  name: "Copenhagen Kastrup",
3511
- tz: "Europe/Copenhagen"
4320
+ tz: "Europe/Copenhagen",
4321
+ venues: [
4322
+ "polymarket"
4323
+ ]
3512
4324
  },
3513
4325
  {
3514
4326
  code: "EPWA",
@@ -3518,7 +4330,10 @@ var mostlyright = (() => {
3518
4330
  latitude: 52.1657,
3519
4331
  longitude: 20.9671,
3520
4332
  name: "Warsaw Chopin",
3521
- tz: "Europe/Warsaw"
4333
+ tz: "Europe/Warsaw",
4334
+ venues: [
4335
+ "polymarket"
4336
+ ]
3522
4337
  },
3523
4338
  {
3524
4339
  code: "ESSA",
@@ -3528,7 +4343,10 @@ var mostlyright = (() => {
3528
4343
  latitude: 59.6519,
3529
4344
  longitude: 17.9186,
3530
4345
  name: "Stockholm Arlanda",
3531
- tz: "Europe/Stockholm"
4346
+ tz: "Europe/Stockholm",
4347
+ venues: [
4348
+ "polymarket"
4349
+ ]
3532
4350
  },
3533
4351
  {
3534
4352
  code: "ATL",
@@ -3538,7 +4356,11 @@ var mostlyright = (() => {
3538
4356
  latitude: 33.6407,
3539
4357
  longitude: -84.4277,
3540
4358
  name: "Hartsfield-Jackson Atlanta International",
3541
- tz: "America/New_York"
4359
+ tz: "America/New_York",
4360
+ venues: [
4361
+ "kalshi",
4362
+ "polymarket"
4363
+ ]
3542
4364
  },
3543
4365
  {
3544
4366
  code: "AUS",
@@ -3548,7 +4370,24 @@ var mostlyright = (() => {
3548
4370
  latitude: 30.1975,
3549
4371
  longitude: -97.6664,
3550
4372
  name: "Austin-Bergstrom International",
3551
- tz: "America/Chicago"
4373
+ tz: "America/Chicago",
4374
+ venues: [
4375
+ "kalshi",
4376
+ "polymarket"
4377
+ ]
4378
+ },
4379
+ {
4380
+ code: "BNA",
4381
+ country: "US",
4382
+ ghcnh_id: "USW00013897",
4383
+ icao: "KBNA",
4384
+ latitude: 36.1245,
4385
+ longitude: -86.6782,
4386
+ name: "Nashville International",
4387
+ tz: "America/Chicago",
4388
+ venues: [
4389
+ "kalshi"
4390
+ ]
3552
4391
  },
3553
4392
  {
3554
4393
  code: "BOS",
@@ -3558,7 +4397,24 @@ var mostlyright = (() => {
3558
4397
  latitude: 42.3656,
3559
4398
  longitude: -71.0096,
3560
4399
  name: "Boston Logan International",
3561
- tz: "America/New_York"
4400
+ tz: "America/New_York",
4401
+ venues: [
4402
+ "kalshi",
4403
+ "polymarket"
4404
+ ]
4405
+ },
4406
+ {
4407
+ code: "CVG",
4408
+ country: "US",
4409
+ ghcnh_id: "USW00093814",
4410
+ icao: "KCVG",
4411
+ latitude: 39.0488,
4412
+ longitude: -84.6678,
4413
+ name: "Cincinnati/Northern Kentucky International",
4414
+ tz: "America/New_York",
4415
+ venues: [
4416
+ "kalshi"
4417
+ ]
3562
4418
  },
3563
4419
  {
3564
4420
  code: "DCA",
@@ -3568,7 +4424,11 @@ var mostlyright = (() => {
3568
4424
  latitude: 38.8512,
3569
4425
  longitude: -77.0402,
3570
4426
  name: "Washington Reagan National",
3571
- tz: "America/New_York"
4427
+ tz: "America/New_York",
4428
+ venues: [
4429
+ "kalshi",
4430
+ "polymarket"
4431
+ ]
3572
4432
  },
3573
4433
  {
3574
4434
  code: "DEN",
@@ -3578,7 +4438,11 @@ var mostlyright = (() => {
3578
4438
  latitude: 39.8561,
3579
4439
  longitude: -104.6737,
3580
4440
  name: "Denver International",
3581
- tz: "America/Denver"
4441
+ tz: "America/Denver",
4442
+ venues: [
4443
+ "kalshi",
4444
+ "polymarket"
4445
+ ]
3582
4446
  },
3583
4447
  {
3584
4448
  code: "DFW",
@@ -3588,7 +4452,25 @@ var mostlyright = (() => {
3588
4452
  latitude: 32.8998,
3589
4453
  longitude: -97.0403,
3590
4454
  name: "Dallas-Fort Worth International",
3591
- tz: "America/Chicago"
4455
+ tz: "America/Chicago",
4456
+ venues: [
4457
+ "kalshi",
4458
+ "polymarket"
4459
+ ]
4460
+ },
4461
+ {
4462
+ code: "DTW",
4463
+ country: "US",
4464
+ ghcnh_id: "USW00094847",
4465
+ icao: "KDTW",
4466
+ latitude: 42.2124,
4467
+ longitude: -83.3534,
4468
+ name: "Detroit Metropolitan Wayne County",
4469
+ tz: "America/New_York",
4470
+ venues: [
4471
+ "kalshi",
4472
+ "polymarket"
4473
+ ]
3592
4474
  },
3593
4475
  {
3594
4476
  code: "HOU",
@@ -3598,7 +4480,22 @@ var mostlyright = (() => {
3598
4480
  latitude: 29.6454,
3599
4481
  longitude: -95.2789,
3600
4482
  name: "Houston Hobby",
3601
- tz: "America/Chicago"
4483
+ tz: "America/Chicago",
4484
+ venues: []
4485
+ },
4486
+ {
4487
+ code: "IAH",
4488
+ country: "US",
4489
+ ghcnh_id: "USW00012960",
4490
+ icao: "KIAH",
4491
+ latitude: 29.9844,
4492
+ longitude: -95.3414,
4493
+ name: "Houston George Bush Intercontinental",
4494
+ tz: "America/Chicago",
4495
+ venues: [
4496
+ "kalshi",
4497
+ "polymarket"
4498
+ ]
3602
4499
  },
3603
4500
  {
3604
4501
  code: "LAS",
@@ -3608,7 +4505,10 @@ var mostlyright = (() => {
3608
4505
  latitude: 36.084,
3609
4506
  longitude: -115.1537,
3610
4507
  name: "Harry Reid (McCarran) International",
3611
- tz: "America/Los_Angeles"
4508
+ tz: "America/Los_Angeles",
4509
+ venues: [
4510
+ "kalshi"
4511
+ ]
3612
4512
  },
3613
4513
  {
3614
4514
  code: "LAX",
@@ -3618,7 +4518,11 @@ var mostlyright = (() => {
3618
4518
  latitude: 33.9425,
3619
4519
  longitude: -118.4081,
3620
4520
  name: "Los Angeles International",
3621
- tz: "America/Los_Angeles"
4521
+ tz: "America/Los_Angeles",
4522
+ venues: [
4523
+ "kalshi",
4524
+ "polymarket"
4525
+ ]
3622
4526
  },
3623
4527
  {
3624
4528
  code: "MDW",
@@ -3628,7 +4532,10 @@ var mostlyright = (() => {
3628
4532
  latitude: 41.7868,
3629
4533
  longitude: -87.7522,
3630
4534
  name: "Chicago Midway International",
3631
- tz: "America/Chicago"
4535
+ tz: "America/Chicago",
4536
+ venues: [
4537
+ "kalshi"
4538
+ ]
3632
4539
  },
3633
4540
  {
3634
4541
  code: "MIA",
@@ -3638,7 +4545,11 @@ var mostlyright = (() => {
3638
4545
  latitude: 25.7959,
3639
4546
  longitude: -80.287,
3640
4547
  name: "Miami International",
3641
- tz: "America/New_York"
4548
+ tz: "America/New_York",
4549
+ venues: [
4550
+ "kalshi",
4551
+ "polymarket"
4552
+ ]
3642
4553
  },
3643
4554
  {
3644
4555
  code: "MSP",
@@ -3648,7 +4559,11 @@ var mostlyright = (() => {
3648
4559
  latitude: 44.8848,
3649
4560
  longitude: -93.2223,
3650
4561
  name: "Minneapolis-St Paul International",
3651
- tz: "America/Chicago"
4562
+ tz: "America/Chicago",
4563
+ venues: [
4564
+ "kalshi",
4565
+ "polymarket"
4566
+ ]
3652
4567
  },
3653
4568
  {
3654
4569
  code: "MSY",
@@ -3658,7 +4573,8 @@ var mostlyright = (() => {
3658
4573
  latitude: 29.9934,
3659
4574
  longitude: -90.258,
3660
4575
  name: "New Orleans Louis Armstrong International",
3661
- tz: "America/Chicago"
4576
+ tz: "America/Chicago",
4577
+ venues: []
3662
4578
  },
3663
4579
  {
3664
4580
  code: "NYC",
@@ -3668,7 +4584,10 @@ var mostlyright = (() => {
3668
4584
  latitude: 40.7789,
3669
4585
  longitude: -73.9692,
3670
4586
  name: "Central Park, New York",
3671
- tz: "America/New_York"
4587
+ tz: "America/New_York",
4588
+ venues: [
4589
+ "kalshi"
4590
+ ]
3672
4591
  },
3673
4592
  {
3674
4593
  code: "OKC",
@@ -3678,7 +4597,8 @@ var mostlyright = (() => {
3678
4597
  latitude: 35.3931,
3679
4598
  longitude: -97.6007,
3680
4599
  name: "Oklahoma City Will Rogers World",
3681
- tz: "America/Chicago"
4600
+ tz: "America/Chicago",
4601
+ venues: []
3682
4602
  },
3683
4603
  {
3684
4604
  code: "PHL",
@@ -3688,7 +4608,11 @@ var mostlyright = (() => {
3688
4608
  latitude: 39.8721,
3689
4609
  longitude: -75.2411,
3690
4610
  name: "Philadelphia International",
3691
- tz: "America/New_York"
4611
+ tz: "America/New_York",
4612
+ venues: [
4613
+ "kalshi",
4614
+ "polymarket"
4615
+ ]
3692
4616
  },
3693
4617
  {
3694
4618
  code: "PHX",
@@ -3698,7 +4622,11 @@ var mostlyright = (() => {
3698
4622
  latitude: 33.4373,
3699
4623
  longitude: -112.0078,
3700
4624
  name: "Phoenix Sky Harbor International",
3701
- tz: "America/Phoenix"
4625
+ tz: "America/Phoenix",
4626
+ venues: [
4627
+ "kalshi",
4628
+ "polymarket"
4629
+ ]
3702
4630
  },
3703
4631
  {
3704
4632
  code: "SAT",
@@ -3708,7 +4636,8 @@ var mostlyright = (() => {
3708
4636
  latitude: 29.5337,
3709
4637
  longitude: -98.4698,
3710
4638
  name: "San Antonio International",
3711
- tz: "America/Chicago"
4639
+ tz: "America/Chicago",
4640
+ venues: []
3712
4641
  },
3713
4642
  {
3714
4643
  code: "SEA",
@@ -3718,7 +4647,11 @@ var mostlyright = (() => {
3718
4647
  latitude: 47.4502,
3719
4648
  longitude: -122.3088,
3720
4649
  name: "Seattle-Tacoma International",
3721
- tz: "America/Los_Angeles"
4650
+ tz: "America/Los_Angeles",
4651
+ venues: [
4652
+ "kalshi",
4653
+ "polymarket"
4654
+ ]
3722
4655
  },
3723
4656
  {
3724
4657
  code: "SFO",
@@ -3728,7 +4661,24 @@ var mostlyright = (() => {
3728
4661
  latitude: 37.6213,
3729
4662
  longitude: -122.379,
3730
4663
  name: "San Francisco International",
3731
- tz: "America/Los_Angeles"
4664
+ tz: "America/Los_Angeles",
4665
+ venues: [
4666
+ "kalshi",
4667
+ "polymarket"
4668
+ ]
4669
+ },
4670
+ {
4671
+ code: "SLC",
4672
+ country: "US",
4673
+ ghcnh_id: "USW00024127",
4674
+ icao: "KSLC",
4675
+ latitude: 40.7884,
4676
+ longitude: -111.9778,
4677
+ name: "Salt Lake City International",
4678
+ tz: "America/Denver",
4679
+ venues: [
4680
+ "kalshi"
4681
+ ]
3732
4682
  },
3733
4683
  {
3734
4684
  code: "LEBL",
@@ -3738,7 +4688,10 @@ var mostlyright = (() => {
3738
4688
  latitude: 41.2974,
3739
4689
  longitude: 2.0833,
3740
4690
  name: "Barcelona El Prat",
3741
- tz: "Europe/Madrid"
4691
+ tz: "Europe/Madrid",
4692
+ venues: [
4693
+ "polymarket"
4694
+ ]
3742
4695
  },
3743
4696
  {
3744
4697
  code: "LEMD",
@@ -3748,7 +4701,10 @@ var mostlyright = (() => {
3748
4701
  latitude: 40.4719,
3749
4702
  longitude: -3.5626,
3750
4703
  name: "Madrid Barajas",
3751
- tz: "Europe/Madrid"
4704
+ tz: "Europe/Madrid",
4705
+ venues: [
4706
+ "polymarket"
4707
+ ]
3752
4708
  },
3753
4709
  {
3754
4710
  code: "LFPB",
@@ -3758,7 +4714,10 @@ var mostlyright = (() => {
3758
4714
  latitude: 48.9694,
3759
4715
  longitude: 2.4414,
3760
4716
  name: "Paris Le Bourget",
3761
- tz: "Europe/Paris"
4717
+ tz: "Europe/Paris",
4718
+ venues: [
4719
+ "polymarket"
4720
+ ]
3762
4721
  },
3763
4722
  {
3764
4723
  code: "LFPG",
@@ -3768,7 +4727,10 @@ var mostlyright = (() => {
3768
4727
  latitude: 49.0097,
3769
4728
  longitude: 2.5479,
3770
4729
  name: "Paris Charles de Gaulle",
3771
- tz: "Europe/Paris"
4730
+ tz: "Europe/Paris",
4731
+ venues: [
4732
+ "polymarket"
4733
+ ]
3772
4734
  },
3773
4735
  {
3774
4736
  code: "LFPO",
@@ -3778,7 +4740,10 @@ var mostlyright = (() => {
3778
4740
  latitude: 48.7233,
3779
4741
  longitude: 2.3794,
3780
4742
  name: "Paris Orly",
3781
- tz: "Europe/Paris"
4743
+ tz: "Europe/Paris",
4744
+ venues: [
4745
+ "polymarket"
4746
+ ]
3782
4747
  },
3783
4748
  {
3784
4749
  code: "LIMC",
@@ -3788,7 +4753,10 @@ var mostlyright = (() => {
3788
4753
  latitude: 45.6306,
3789
4754
  longitude: 8.7281,
3790
4755
  name: "Milan Malpensa",
3791
- tz: "Europe/Rome"
4756
+ tz: "Europe/Rome",
4757
+ venues: [
4758
+ "polymarket"
4759
+ ]
3792
4760
  },
3793
4761
  {
3794
4762
  code: "LIRF",
@@ -3798,7 +4766,10 @@ var mostlyright = (() => {
3798
4766
  latitude: 41.8003,
3799
4767
  longitude: 12.2389,
3800
4768
  name: "Rome Fiumicino",
3801
- tz: "Europe/Rome"
4769
+ tz: "Europe/Rome",
4770
+ venues: [
4771
+ "polymarket"
4772
+ ]
3802
4773
  },
3803
4774
  {
3804
4775
  code: "LOWW",
@@ -3808,7 +4779,10 @@ var mostlyright = (() => {
3808
4779
  latitude: 48.1103,
3809
4780
  longitude: 16.5697,
3810
4781
  name: "Vienna International",
3811
- tz: "Europe/Vienna"
4782
+ tz: "Europe/Vienna",
4783
+ venues: [
4784
+ "polymarket"
4785
+ ]
3812
4786
  },
3813
4787
  {
3814
4788
  code: "LSZH",
@@ -3818,7 +4792,10 @@ var mostlyright = (() => {
3818
4792
  latitude: 47.4647,
3819
4793
  longitude: 8.5492,
3820
4794
  name: "Zurich",
3821
- tz: "Europe/Zurich"
4795
+ tz: "Europe/Zurich",
4796
+ venues: [
4797
+ "polymarket"
4798
+ ]
3822
4799
  },
3823
4800
  {
3824
4801
  code: "NZAA",
@@ -3828,7 +4805,10 @@ var mostlyright = (() => {
3828
4805
  latitude: -37.0081,
3829
4806
  longitude: 174.7917,
3830
4807
  name: "Auckland",
3831
- tz: "Pacific/Auckland"
4808
+ tz: "Pacific/Auckland",
4809
+ venues: [
4810
+ "polymarket"
4811
+ ]
3832
4812
  },
3833
4813
  {
3834
4814
  code: "NZWN",
@@ -3838,7 +4818,10 @@ var mostlyright = (() => {
3838
4818
  latitude: -41.3272,
3839
4819
  longitude: 174.8053,
3840
4820
  name: "Wellington",
3841
- tz: "Pacific/Auckland"
4821
+ tz: "Pacific/Auckland",
4822
+ venues: [
4823
+ "polymarket"
4824
+ ]
3842
4825
  },
3843
4826
  {
3844
4827
  code: "OERK",
@@ -3848,7 +4831,10 @@ var mostlyright = (() => {
3848
4831
  latitude: 24.9576,
3849
4832
  longitude: 46.6988,
3850
4833
  name: "Riyadh King Khalid International",
3851
- tz: "Asia/Riyadh"
4834
+ tz: "Asia/Riyadh",
4835
+ venues: [
4836
+ "polymarket"
4837
+ ]
3852
4838
  },
3853
4839
  {
3854
4840
  code: "OMDB",
@@ -3858,7 +4844,10 @@ var mostlyright = (() => {
3858
4844
  latitude: 25.2532,
3859
4845
  longitude: 55.3657,
3860
4846
  name: "Dubai International",
3861
- tz: "Asia/Dubai"
4847
+ tz: "Asia/Dubai",
4848
+ venues: [
4849
+ "polymarket"
4850
+ ]
3862
4851
  },
3863
4852
  {
3864
4853
  code: "OTHH",
@@ -3868,7 +4857,10 @@ var mostlyright = (() => {
3868
4857
  latitude: 25.2731,
3869
4858
  longitude: 51.608,
3870
4859
  name: "Doha Hamad International",
3871
- tz: "Asia/Qatar"
4860
+ tz: "Asia/Qatar",
4861
+ venues: [
4862
+ "polymarket"
4863
+ ]
3872
4864
  },
3873
4865
  {
3874
4866
  code: "RCTP",
@@ -3878,7 +4870,10 @@ var mostlyright = (() => {
3878
4870
  latitude: 25.0777,
3879
4871
  longitude: 121.2328,
3880
4872
  name: "Taipei Taoyuan",
3881
- tz: "Asia/Taipei"
4873
+ tz: "Asia/Taipei",
4874
+ venues: [
4875
+ "polymarket"
4876
+ ]
3882
4877
  },
3883
4878
  {
3884
4879
  code: "RJAA",
@@ -3888,7 +4883,10 @@ var mostlyright = (() => {
3888
4883
  latitude: 35.7647,
3889
4884
  longitude: 140.3864,
3890
4885
  name: "Tokyo Narita",
3891
- tz: "Asia/Tokyo"
4886
+ tz: "Asia/Tokyo",
4887
+ venues: [
4888
+ "polymarket"
4889
+ ]
3892
4890
  },
3893
4891
  {
3894
4892
  code: "RJTT",
@@ -3898,7 +4896,10 @@ var mostlyright = (() => {
3898
4896
  latitude: 35.5522,
3899
4897
  longitude: 139.78,
3900
4898
  name: "Tokyo Haneda",
3901
- tz: "Asia/Tokyo"
4899
+ tz: "Asia/Tokyo",
4900
+ venues: [
4901
+ "polymarket"
4902
+ ]
3902
4903
  },
3903
4904
  {
3904
4905
  code: "RKSI",
@@ -3908,7 +4909,10 @@ var mostlyright = (() => {
3908
4909
  latitude: 37.4691,
3909
4910
  longitude: 126.4505,
3910
4911
  name: "Seoul Incheon",
3911
- tz: "Asia/Seoul"
4912
+ tz: "Asia/Seoul",
4913
+ venues: [
4914
+ "polymarket"
4915
+ ]
3912
4916
  },
3913
4917
  {
3914
4918
  code: "SAEZ",
@@ -3918,7 +4922,10 @@ var mostlyright = (() => {
3918
4922
  latitude: -34.8222,
3919
4923
  longitude: -58.5358,
3920
4924
  name: "Buenos Aires Ezeiza",
3921
- tz: "America/Argentina/Buenos_Aires"
4925
+ tz: "America/Argentina/Buenos_Aires",
4926
+ venues: [
4927
+ "polymarket"
4928
+ ]
3922
4929
  },
3923
4930
  {
3924
4931
  code: "SBGR",
@@ -3928,7 +4935,10 @@ var mostlyright = (() => {
3928
4935
  latitude: -23.4356,
3929
4936
  longitude: -46.4731,
3930
4937
  name: "S\xE3o Paulo Guarulhos",
3931
- tz: "America/Sao_Paulo"
4938
+ tz: "America/Sao_Paulo",
4939
+ venues: [
4940
+ "polymarket"
4941
+ ]
3932
4942
  },
3933
4943
  {
3934
4944
  code: "UUEE",
@@ -3938,7 +4948,10 @@ var mostlyright = (() => {
3938
4948
  latitude: 55.9728,
3939
4949
  longitude: 37.4147,
3940
4950
  name: "Moscow Sheremetyevo",
3941
- tz: "Europe/Moscow"
4951
+ tz: "Europe/Moscow",
4952
+ venues: [
4953
+ "polymarket"
4954
+ ]
3942
4955
  },
3943
4956
  {
3944
4957
  code: "VABB",
@@ -3948,7 +4961,10 @@ var mostlyright = (() => {
3948
4961
  latitude: 19.0887,
3949
4962
  longitude: 72.8679,
3950
4963
  name: "Mumbai Chhatrapati Shivaji",
3951
- tz: "Asia/Kolkata"
4964
+ tz: "Asia/Kolkata",
4965
+ venues: [
4966
+ "polymarket"
4967
+ ]
3952
4968
  },
3953
4969
  {
3954
4970
  code: "VHHH",
@@ -3958,7 +4974,10 @@ var mostlyright = (() => {
3958
4974
  latitude: 22.308,
3959
4975
  longitude: 113.9185,
3960
4976
  name: "Hong Kong International",
3961
- tz: "Asia/Hong_Kong"
4977
+ tz: "Asia/Hong_Kong",
4978
+ venues: [
4979
+ "polymarket"
4980
+ ]
3962
4981
  },
3963
4982
  {
3964
4983
  code: "VIDP",
@@ -3968,7 +4987,10 @@ var mostlyright = (() => {
3968
4987
  latitude: 28.5562,
3969
4988
  longitude: 77.1,
3970
4989
  name: "Delhi Indira Gandhi",
3971
- tz: "Asia/Kolkata"
4990
+ tz: "Asia/Kolkata",
4991
+ venues: [
4992
+ "polymarket"
4993
+ ]
3972
4994
  },
3973
4995
  {
3974
4996
  code: "VTBS",
@@ -3978,7 +5000,10 @@ var mostlyright = (() => {
3978
5000
  latitude: 13.69,
3979
5001
  longitude: 100.7501,
3980
5002
  name: "Bangkok Suvarnabhumi",
3981
- tz: "Asia/Bangkok"
5003
+ tz: "Asia/Bangkok",
5004
+ venues: [
5005
+ "polymarket"
5006
+ ]
3982
5007
  },
3983
5008
  {
3984
5009
  code: "WSSS",
@@ -3988,7 +5013,10 @@ var mostlyright = (() => {
3988
5013
  latitude: 1.3644,
3989
5014
  longitude: 103.9915,
3990
5015
  name: "Singapore Changi",
3991
- tz: "Asia/Singapore"
5016
+ tz: "Asia/Singapore",
5017
+ venues: [
5018
+ "polymarket"
5019
+ ]
3992
5020
  },
3993
5021
  {
3994
5022
  code: "YBBN",
@@ -3998,7 +5026,10 @@ var mostlyright = (() => {
3998
5026
  latitude: -27.3842,
3999
5027
  longitude: 153.1175,
4000
5028
  name: "Brisbane",
4001
- tz: "Australia/Brisbane"
5029
+ tz: "Australia/Brisbane",
5030
+ venues: [
5031
+ "polymarket"
5032
+ ]
4002
5033
  },
4003
5034
  {
4004
5035
  code: "YMML",
@@ -4008,7 +5039,10 @@ var mostlyright = (() => {
4008
5039
  latitude: -37.6733,
4009
5040
  longitude: 144.8433,
4010
5041
  name: "Melbourne Tullamarine",
4011
- tz: "Australia/Melbourne"
5042
+ tz: "Australia/Melbourne",
5043
+ venues: [
5044
+ "polymarket"
5045
+ ]
4012
5046
  },
4013
5047
  {
4014
5048
  code: "YSSY",
@@ -4018,7 +5052,10 @@ var mostlyright = (() => {
4018
5052
  latitude: -33.9461,
4019
5053
  longitude: 151.1772,
4020
5054
  name: "Sydney Kingsford Smith",
4021
- tz: "Australia/Sydney"
5055
+ tz: "Australia/Sydney",
5056
+ venues: [
5057
+ "polymarket"
5058
+ ]
4022
5059
  },
4023
5060
  {
4024
5061
  code: "ZBAA",
@@ -4028,7 +5065,10 @@ var mostlyright = (() => {
4028
5065
  latitude: 40.0801,
4029
5066
  longitude: 116.5846,
4030
5067
  name: "Beijing Capital",
4031
- tz: "Asia/Shanghai"
5068
+ tz: "Asia/Shanghai",
5069
+ venues: [
5070
+ "polymarket"
5071
+ ]
4032
5072
  },
4033
5073
  {
4034
5074
  code: "ZSPD",
@@ -4038,16 +5078,22 @@ var mostlyright = (() => {
4038
5078
  latitude: 31.1443,
4039
5079
  longitude: 121.8083,
4040
5080
  name: "Shanghai Pudong",
4041
- tz: "Asia/Shanghai"
5081
+ tz: "Asia/Shanghai",
5082
+ venues: [
5083
+ "polymarket"
5084
+ ]
4042
5085
  }
4043
5086
  ];
4044
5087
  var STATION_BY_CODE2 = /* @__PURE__ */ new Map([
4045
5088
  ["ATL", STATIONS2[10]],
4046
5089
  ["AUS", STATIONS2[11]],
4047
- ["BOS", STATIONS2[12]],
4048
- ["DCA", STATIONS2[13]],
4049
- ["DEN", STATIONS2[14]],
4050
- ["DFW", STATIONS2[15]],
5090
+ ["BNA", STATIONS2[12]],
5091
+ ["BOS", STATIONS2[13]],
5092
+ ["CVG", STATIONS2[14]],
5093
+ ["DCA", STATIONS2[15]],
5094
+ ["DEN", STATIONS2[16]],
5095
+ ["DFW", STATIONS2[17]],
5096
+ ["DTW", STATIONS2[18]],
4051
5097
  ["EDDB", STATIONS2[0]],
4052
5098
  ["EDDF", STATIONS2[1]],
4053
5099
  ["EDDM", STATIONS2[2]],
@@ -4058,51 +5104,53 @@ var mostlyright = (() => {
4058
5104
  ["EKCH", STATIONS2[7]],
4059
5105
  ["EPWA", STATIONS2[8]],
4060
5106
  ["ESSA", STATIONS2[9]],
4061
- ["HOU", STATIONS2[16]],
4062
- ["LAS", STATIONS2[17]],
4063
- ["LAX", STATIONS2[18]],
4064
- ["LEBL", STATIONS2[30]],
4065
- ["LEMD", STATIONS2[31]],
4066
- ["LFPB", STATIONS2[32]],
4067
- ["LFPG", STATIONS2[33]],
4068
- ["LFPO", STATIONS2[34]],
4069
- ["LIMC", STATIONS2[35]],
4070
- ["LIRF", STATIONS2[36]],
4071
- ["LOWW", STATIONS2[37]],
4072
- ["LSZH", STATIONS2[38]],
4073
- ["MDW", STATIONS2[19]],
4074
- ["MIA", STATIONS2[20]],
4075
- ["MSP", STATIONS2[21]],
4076
- ["MSY", STATIONS2[22]],
4077
- ["NYC", STATIONS2[23]],
4078
- ["NZAA", STATIONS2[39]],
4079
- ["NZWN", STATIONS2[40]],
4080
- ["OERK", STATIONS2[41]],
4081
- ["OKC", STATIONS2[24]],
4082
- ["OMDB", STATIONS2[42]],
4083
- ["OTHH", STATIONS2[43]],
4084
- ["PHL", STATIONS2[25]],
4085
- ["PHX", STATIONS2[26]],
4086
- ["RCTP", STATIONS2[44]],
4087
- ["RJAA", STATIONS2[45]],
4088
- ["RJTT", STATIONS2[46]],
4089
- ["RKSI", STATIONS2[47]],
4090
- ["SAEZ", STATIONS2[48]],
4091
- ["SAT", STATIONS2[27]],
4092
- ["SBGR", STATIONS2[49]],
4093
- ["SEA", STATIONS2[28]],
4094
- ["SFO", STATIONS2[29]],
4095
- ["UUEE", STATIONS2[50]],
4096
- ["VABB", STATIONS2[51]],
4097
- ["VHHH", STATIONS2[52]],
4098
- ["VIDP", STATIONS2[53]],
4099
- ["VTBS", STATIONS2[54]],
4100
- ["WSSS", STATIONS2[55]],
4101
- ["YBBN", STATIONS2[56]],
4102
- ["YMML", STATIONS2[57]],
4103
- ["YSSY", STATIONS2[58]],
4104
- ["ZBAA", STATIONS2[59]],
4105
- ["ZSPD", STATIONS2[60]]
5107
+ ["HOU", STATIONS2[19]],
5108
+ ["IAH", STATIONS2[20]],
5109
+ ["LAS", STATIONS2[21]],
5110
+ ["LAX", STATIONS2[22]],
5111
+ ["LEBL", STATIONS2[35]],
5112
+ ["LEMD", STATIONS2[36]],
5113
+ ["LFPB", STATIONS2[37]],
5114
+ ["LFPG", STATIONS2[38]],
5115
+ ["LFPO", STATIONS2[39]],
5116
+ ["LIMC", STATIONS2[40]],
5117
+ ["LIRF", STATIONS2[41]],
5118
+ ["LOWW", STATIONS2[42]],
5119
+ ["LSZH", STATIONS2[43]],
5120
+ ["MDW", STATIONS2[23]],
5121
+ ["MIA", STATIONS2[24]],
5122
+ ["MSP", STATIONS2[25]],
5123
+ ["MSY", STATIONS2[26]],
5124
+ ["NYC", STATIONS2[27]],
5125
+ ["NZAA", STATIONS2[44]],
5126
+ ["NZWN", STATIONS2[45]],
5127
+ ["OERK", STATIONS2[46]],
5128
+ ["OKC", STATIONS2[28]],
5129
+ ["OMDB", STATIONS2[47]],
5130
+ ["OTHH", STATIONS2[48]],
5131
+ ["PHL", STATIONS2[29]],
5132
+ ["PHX", STATIONS2[30]],
5133
+ ["RCTP", STATIONS2[49]],
5134
+ ["RJAA", STATIONS2[50]],
5135
+ ["RJTT", STATIONS2[51]],
5136
+ ["RKSI", STATIONS2[52]],
5137
+ ["SAEZ", STATIONS2[53]],
5138
+ ["SAT", STATIONS2[31]],
5139
+ ["SBGR", STATIONS2[54]],
5140
+ ["SEA", STATIONS2[32]],
5141
+ ["SFO", STATIONS2[33]],
5142
+ ["SLC", STATIONS2[34]],
5143
+ ["UUEE", STATIONS2[55]],
5144
+ ["VABB", STATIONS2[56]],
5145
+ ["VHHH", STATIONS2[57]],
5146
+ ["VIDP", STATIONS2[58]],
5147
+ ["VTBS", STATIONS2[59]],
5148
+ ["WSSS", STATIONS2[60]],
5149
+ ["YBBN", STATIONS2[61]],
5150
+ ["YMML", STATIONS2[62]],
5151
+ ["YSSY", STATIONS2[63]],
5152
+ ["ZBAA", STATIONS2[64]],
5153
+ ["ZSPD", STATIONS2[65]]
4106
5154
  ]);
4107
5155
  var STATION_BY_ICAO2 = /* @__PURE__ */ new Map([
4108
5156
  ["EDDB", STATIONS2[0]],
@@ -4117,55 +5165,60 @@ var mostlyright = (() => {
4117
5165
  ["ESSA", STATIONS2[9]],
4118
5166
  ["KATL", STATIONS2[10]],
4119
5167
  ["KAUS", STATIONS2[11]],
4120
- ["KBOS", STATIONS2[12]],
4121
- ["KDCA", STATIONS2[13]],
4122
- ["KDEN", STATIONS2[14]],
4123
- ["KDFW", STATIONS2[15]],
4124
- ["KHOU", STATIONS2[16]],
4125
- ["KLAS", STATIONS2[17]],
4126
- ["KLAX", STATIONS2[18]],
4127
- ["KMDW", STATIONS2[19]],
4128
- ["KMIA", STATIONS2[20]],
4129
- ["KMSP", STATIONS2[21]],
4130
- ["KMSY", STATIONS2[22]],
4131
- ["KNYC", STATIONS2[23]],
4132
- ["KOKC", STATIONS2[24]],
4133
- ["KPHL", STATIONS2[25]],
4134
- ["KPHX", STATIONS2[26]],
4135
- ["KSAT", STATIONS2[27]],
4136
- ["KSEA", STATIONS2[28]],
4137
- ["KSFO", STATIONS2[29]],
4138
- ["LEBL", STATIONS2[30]],
4139
- ["LEMD", STATIONS2[31]],
4140
- ["LFPB", STATIONS2[32]],
4141
- ["LFPG", STATIONS2[33]],
4142
- ["LFPO", STATIONS2[34]],
4143
- ["LIMC", STATIONS2[35]],
4144
- ["LIRF", STATIONS2[36]],
4145
- ["LOWW", STATIONS2[37]],
4146
- ["LSZH", STATIONS2[38]],
4147
- ["NZAA", STATIONS2[39]],
4148
- ["NZWN", STATIONS2[40]],
4149
- ["OERK", STATIONS2[41]],
4150
- ["OMDB", STATIONS2[42]],
4151
- ["OTHH", STATIONS2[43]],
4152
- ["RCTP", STATIONS2[44]],
4153
- ["RJAA", STATIONS2[45]],
4154
- ["RJTT", STATIONS2[46]],
4155
- ["RKSI", STATIONS2[47]],
4156
- ["SAEZ", STATIONS2[48]],
4157
- ["SBGR", STATIONS2[49]],
4158
- ["UUEE", STATIONS2[50]],
4159
- ["VABB", STATIONS2[51]],
4160
- ["VHHH", STATIONS2[52]],
4161
- ["VIDP", STATIONS2[53]],
4162
- ["VTBS", STATIONS2[54]],
4163
- ["WSSS", STATIONS2[55]],
4164
- ["YBBN", STATIONS2[56]],
4165
- ["YMML", STATIONS2[57]],
4166
- ["YSSY", STATIONS2[58]],
4167
- ["ZBAA", STATIONS2[59]],
4168
- ["ZSPD", STATIONS2[60]]
5168
+ ["KBNA", STATIONS2[12]],
5169
+ ["KBOS", STATIONS2[13]],
5170
+ ["KCVG", STATIONS2[14]],
5171
+ ["KDCA", STATIONS2[15]],
5172
+ ["KDEN", STATIONS2[16]],
5173
+ ["KDFW", STATIONS2[17]],
5174
+ ["KDTW", STATIONS2[18]],
5175
+ ["KHOU", STATIONS2[19]],
5176
+ ["KIAH", STATIONS2[20]],
5177
+ ["KLAS", STATIONS2[21]],
5178
+ ["KLAX", STATIONS2[22]],
5179
+ ["KMDW", STATIONS2[23]],
5180
+ ["KMIA", STATIONS2[24]],
5181
+ ["KMSP", STATIONS2[25]],
5182
+ ["KMSY", STATIONS2[26]],
5183
+ ["KNYC", STATIONS2[27]],
5184
+ ["KOKC", STATIONS2[28]],
5185
+ ["KPHL", STATIONS2[29]],
5186
+ ["KPHX", STATIONS2[30]],
5187
+ ["KSAT", STATIONS2[31]],
5188
+ ["KSEA", STATIONS2[32]],
5189
+ ["KSFO", STATIONS2[33]],
5190
+ ["KSLC", STATIONS2[34]],
5191
+ ["LEBL", STATIONS2[35]],
5192
+ ["LEMD", STATIONS2[36]],
5193
+ ["LFPB", STATIONS2[37]],
5194
+ ["LFPG", STATIONS2[38]],
5195
+ ["LFPO", STATIONS2[39]],
5196
+ ["LIMC", STATIONS2[40]],
5197
+ ["LIRF", STATIONS2[41]],
5198
+ ["LOWW", STATIONS2[42]],
5199
+ ["LSZH", STATIONS2[43]],
5200
+ ["NZAA", STATIONS2[44]],
5201
+ ["NZWN", STATIONS2[45]],
5202
+ ["OERK", STATIONS2[46]],
5203
+ ["OMDB", STATIONS2[47]],
5204
+ ["OTHH", STATIONS2[48]],
5205
+ ["RCTP", STATIONS2[49]],
5206
+ ["RJAA", STATIONS2[50]],
5207
+ ["RJTT", STATIONS2[51]],
5208
+ ["RKSI", STATIONS2[52]],
5209
+ ["SAEZ", STATIONS2[53]],
5210
+ ["SBGR", STATIONS2[54]],
5211
+ ["UUEE", STATIONS2[55]],
5212
+ ["VABB", STATIONS2[56]],
5213
+ ["VHHH", STATIONS2[57]],
5214
+ ["VIDP", STATIONS2[58]],
5215
+ ["VTBS", STATIONS2[59]],
5216
+ ["WSSS", STATIONS2[60]],
5217
+ ["YBBN", STATIONS2[61]],
5218
+ ["YMML", STATIONS2[62]],
5219
+ ["YSSY", STATIONS2[63]],
5220
+ ["ZBAA", STATIONS2[64]],
5221
+ ["ZSPD", STATIONS2[65]]
4169
5222
  ]);
4170
5223
  var LOW_COVERAGE_THRESHOLD = 12;
4171
5224
  var PARTS_CACHE = /* @__PURE__ */ new Map();
@@ -4889,6 +5942,10 @@ var mostlyright = (() => {
4889
5942
  SLC: {
4890
5943
  citation: "https://kalshi.com/markets/khighslc (Salt Lake City International)",
4891
5944
  station: "KSLC"
5945
+ },
5946
+ TLV: {
5947
+ citation: "https://kalshi.com/markets/kxhightlv (Harry Reid/McCarran; settles vs NWS CLILAS)",
5948
+ station: "KLAS"
4892
5949
  }
4893
5950
  };
4894
5951
  var KNOWN_WRONG_STATIONS = /* @__PURE__ */ new Set([
@@ -5480,7 +6537,7 @@ var mostlyright = (() => {
5480
6537
  }
5481
6538
  }));
5482
6539
 
5483
- // ../core/dist/internal/chunk-IPC4XUYW.mjs
6540
+ // ../core/dist/internal/chunk-QDQSYUFW.mjs
5484
6541
  function lockKeyFor(key) {
5485
6542
  return `mostlyright:cache:lock:${key}`;
5486
6543
  }
@@ -5704,7 +6761,10 @@ var mostlyright = (() => {
5704
6761
  latitude: 52.3667,
5705
6762
  longitude: 13.5033,
5706
6763
  name: "Berlin Brandenburg",
5707
- tz: "Europe/Berlin"
6764
+ tz: "Europe/Berlin",
6765
+ venues: [
6766
+ "polymarket"
6767
+ ]
5708
6768
  },
5709
6769
  {
5710
6770
  code: "EDDF",
@@ -5714,7 +6774,10 @@ var mostlyright = (() => {
5714
6774
  latitude: 50.0379,
5715
6775
  longitude: 8.5622,
5716
6776
  name: "Frankfurt am Main",
5717
- tz: "Europe/Berlin"
6777
+ tz: "Europe/Berlin",
6778
+ venues: [
6779
+ "polymarket"
6780
+ ]
5718
6781
  },
5719
6782
  {
5720
6783
  code: "EDDM",
@@ -5724,7 +6787,10 @@ var mostlyright = (() => {
5724
6787
  latitude: 48.3538,
5725
6788
  longitude: 11.7861,
5726
6789
  name: "Munich Franz Josef Strauss",
5727
- tz: "Europe/Berlin"
6790
+ tz: "Europe/Berlin",
6791
+ venues: [
6792
+ "polymarket"
6793
+ ]
5728
6794
  },
5729
6795
  {
5730
6796
  code: "EFHK",
@@ -5734,7 +6800,10 @@ var mostlyright = (() => {
5734
6800
  latitude: 60.3172,
5735
6801
  longitude: 24.9633,
5736
6802
  name: "Helsinki-Vantaa",
5737
- tz: "Europe/Helsinki"
6803
+ tz: "Europe/Helsinki",
6804
+ venues: [
6805
+ "polymarket"
6806
+ ]
5738
6807
  },
5739
6808
  {
5740
6809
  code: "EGKK",
@@ -5744,7 +6813,10 @@ var mostlyright = (() => {
5744
6813
  latitude: 51.1481,
5745
6814
  longitude: -0.1903,
5746
6815
  name: "London Gatwick",
5747
- tz: "Europe/London"
6816
+ tz: "Europe/London",
6817
+ venues: [
6818
+ "polymarket"
6819
+ ]
5748
6820
  },
5749
6821
  {
5750
6822
  code: "EGLL",
@@ -5754,7 +6826,10 @@ var mostlyright = (() => {
5754
6826
  latitude: 51.4706,
5755
6827
  longitude: -0.4619,
5756
6828
  name: "London Heathrow",
5757
- tz: "Europe/London"
6829
+ tz: "Europe/London",
6830
+ venues: [
6831
+ "polymarket"
6832
+ ]
5758
6833
  },
5759
6834
  {
5760
6835
  code: "EHAM",
@@ -5764,7 +6839,10 @@ var mostlyright = (() => {
5764
6839
  latitude: 52.3086,
5765
6840
  longitude: 4.7639,
5766
6841
  name: "Amsterdam Schiphol",
5767
- tz: "Europe/Amsterdam"
6842
+ tz: "Europe/Amsterdam",
6843
+ venues: [
6844
+ "polymarket"
6845
+ ]
5768
6846
  },
5769
6847
  {
5770
6848
  code: "EKCH",
@@ -5774,7 +6852,10 @@ var mostlyright = (() => {
5774
6852
  latitude: 55.6181,
5775
6853
  longitude: 12.6561,
5776
6854
  name: "Copenhagen Kastrup",
5777
- tz: "Europe/Copenhagen"
6855
+ tz: "Europe/Copenhagen",
6856
+ venues: [
6857
+ "polymarket"
6858
+ ]
5778
6859
  },
5779
6860
  {
5780
6861
  code: "EPWA",
@@ -5784,7 +6865,10 @@ var mostlyright = (() => {
5784
6865
  latitude: 52.1657,
5785
6866
  longitude: 20.9671,
5786
6867
  name: "Warsaw Chopin",
5787
- tz: "Europe/Warsaw"
6868
+ tz: "Europe/Warsaw",
6869
+ venues: [
6870
+ "polymarket"
6871
+ ]
5788
6872
  },
5789
6873
  {
5790
6874
  code: "ESSA",
@@ -5794,7 +6878,10 @@ var mostlyright = (() => {
5794
6878
  latitude: 59.6519,
5795
6879
  longitude: 17.9186,
5796
6880
  name: "Stockholm Arlanda",
5797
- tz: "Europe/Stockholm"
6881
+ tz: "Europe/Stockholm",
6882
+ venues: [
6883
+ "polymarket"
6884
+ ]
5798
6885
  },
5799
6886
  {
5800
6887
  code: "ATL",
@@ -5804,7 +6891,11 @@ var mostlyright = (() => {
5804
6891
  latitude: 33.6407,
5805
6892
  longitude: -84.4277,
5806
6893
  name: "Hartsfield-Jackson Atlanta International",
5807
- tz: "America/New_York"
6894
+ tz: "America/New_York",
6895
+ venues: [
6896
+ "kalshi",
6897
+ "polymarket"
6898
+ ]
5808
6899
  },
5809
6900
  {
5810
6901
  code: "AUS",
@@ -5814,7 +6905,24 @@ var mostlyright = (() => {
5814
6905
  latitude: 30.1975,
5815
6906
  longitude: -97.6664,
5816
6907
  name: "Austin-Bergstrom International",
5817
- tz: "America/Chicago"
6908
+ tz: "America/Chicago",
6909
+ venues: [
6910
+ "kalshi",
6911
+ "polymarket"
6912
+ ]
6913
+ },
6914
+ {
6915
+ code: "BNA",
6916
+ country: "US",
6917
+ ghcnh_id: "USW00013897",
6918
+ icao: "KBNA",
6919
+ latitude: 36.1245,
6920
+ longitude: -86.6782,
6921
+ name: "Nashville International",
6922
+ tz: "America/Chicago",
6923
+ venues: [
6924
+ "kalshi"
6925
+ ]
5818
6926
  },
5819
6927
  {
5820
6928
  code: "BOS",
@@ -5824,7 +6932,24 @@ var mostlyright = (() => {
5824
6932
  latitude: 42.3656,
5825
6933
  longitude: -71.0096,
5826
6934
  name: "Boston Logan International",
5827
- tz: "America/New_York"
6935
+ tz: "America/New_York",
6936
+ venues: [
6937
+ "kalshi",
6938
+ "polymarket"
6939
+ ]
6940
+ },
6941
+ {
6942
+ code: "CVG",
6943
+ country: "US",
6944
+ ghcnh_id: "USW00093814",
6945
+ icao: "KCVG",
6946
+ latitude: 39.0488,
6947
+ longitude: -84.6678,
6948
+ name: "Cincinnati/Northern Kentucky International",
6949
+ tz: "America/New_York",
6950
+ venues: [
6951
+ "kalshi"
6952
+ ]
5828
6953
  },
5829
6954
  {
5830
6955
  code: "DCA",
@@ -5834,7 +6959,11 @@ var mostlyright = (() => {
5834
6959
  latitude: 38.8512,
5835
6960
  longitude: -77.0402,
5836
6961
  name: "Washington Reagan National",
5837
- tz: "America/New_York"
6962
+ tz: "America/New_York",
6963
+ venues: [
6964
+ "kalshi",
6965
+ "polymarket"
6966
+ ]
5838
6967
  },
5839
6968
  {
5840
6969
  code: "DEN",
@@ -5844,7 +6973,11 @@ var mostlyright = (() => {
5844
6973
  latitude: 39.8561,
5845
6974
  longitude: -104.6737,
5846
6975
  name: "Denver International",
5847
- tz: "America/Denver"
6976
+ tz: "America/Denver",
6977
+ venues: [
6978
+ "kalshi",
6979
+ "polymarket"
6980
+ ]
5848
6981
  },
5849
6982
  {
5850
6983
  code: "DFW",
@@ -5854,7 +6987,25 @@ var mostlyright = (() => {
5854
6987
  latitude: 32.8998,
5855
6988
  longitude: -97.0403,
5856
6989
  name: "Dallas-Fort Worth International",
5857
- tz: "America/Chicago"
6990
+ tz: "America/Chicago",
6991
+ venues: [
6992
+ "kalshi",
6993
+ "polymarket"
6994
+ ]
6995
+ },
6996
+ {
6997
+ code: "DTW",
6998
+ country: "US",
6999
+ ghcnh_id: "USW00094847",
7000
+ icao: "KDTW",
7001
+ latitude: 42.2124,
7002
+ longitude: -83.3534,
7003
+ name: "Detroit Metropolitan Wayne County",
7004
+ tz: "America/New_York",
7005
+ venues: [
7006
+ "kalshi",
7007
+ "polymarket"
7008
+ ]
5858
7009
  },
5859
7010
  {
5860
7011
  code: "HOU",
@@ -5864,7 +7015,22 @@ var mostlyright = (() => {
5864
7015
  latitude: 29.6454,
5865
7016
  longitude: -95.2789,
5866
7017
  name: "Houston Hobby",
5867
- tz: "America/Chicago"
7018
+ tz: "America/Chicago",
7019
+ venues: []
7020
+ },
7021
+ {
7022
+ code: "IAH",
7023
+ country: "US",
7024
+ ghcnh_id: "USW00012960",
7025
+ icao: "KIAH",
7026
+ latitude: 29.9844,
7027
+ longitude: -95.3414,
7028
+ name: "Houston George Bush Intercontinental",
7029
+ tz: "America/Chicago",
7030
+ venues: [
7031
+ "kalshi",
7032
+ "polymarket"
7033
+ ]
5868
7034
  },
5869
7035
  {
5870
7036
  code: "LAS",
@@ -5874,7 +7040,10 @@ var mostlyright = (() => {
5874
7040
  latitude: 36.084,
5875
7041
  longitude: -115.1537,
5876
7042
  name: "Harry Reid (McCarran) International",
5877
- tz: "America/Los_Angeles"
7043
+ tz: "America/Los_Angeles",
7044
+ venues: [
7045
+ "kalshi"
7046
+ ]
5878
7047
  },
5879
7048
  {
5880
7049
  code: "LAX",
@@ -5884,7 +7053,11 @@ var mostlyright = (() => {
5884
7053
  latitude: 33.9425,
5885
7054
  longitude: -118.4081,
5886
7055
  name: "Los Angeles International",
5887
- tz: "America/Los_Angeles"
7056
+ tz: "America/Los_Angeles",
7057
+ venues: [
7058
+ "kalshi",
7059
+ "polymarket"
7060
+ ]
5888
7061
  },
5889
7062
  {
5890
7063
  code: "MDW",
@@ -5894,7 +7067,10 @@ var mostlyright = (() => {
5894
7067
  latitude: 41.7868,
5895
7068
  longitude: -87.7522,
5896
7069
  name: "Chicago Midway International",
5897
- tz: "America/Chicago"
7070
+ tz: "America/Chicago",
7071
+ venues: [
7072
+ "kalshi"
7073
+ ]
5898
7074
  },
5899
7075
  {
5900
7076
  code: "MIA",
@@ -5904,7 +7080,11 @@ var mostlyright = (() => {
5904
7080
  latitude: 25.7959,
5905
7081
  longitude: -80.287,
5906
7082
  name: "Miami International",
5907
- tz: "America/New_York"
7083
+ tz: "America/New_York",
7084
+ venues: [
7085
+ "kalshi",
7086
+ "polymarket"
7087
+ ]
5908
7088
  },
5909
7089
  {
5910
7090
  code: "MSP",
@@ -5914,7 +7094,11 @@ var mostlyright = (() => {
5914
7094
  latitude: 44.8848,
5915
7095
  longitude: -93.2223,
5916
7096
  name: "Minneapolis-St Paul International",
5917
- tz: "America/Chicago"
7097
+ tz: "America/Chicago",
7098
+ venues: [
7099
+ "kalshi",
7100
+ "polymarket"
7101
+ ]
5918
7102
  },
5919
7103
  {
5920
7104
  code: "MSY",
@@ -5924,7 +7108,8 @@ var mostlyright = (() => {
5924
7108
  latitude: 29.9934,
5925
7109
  longitude: -90.258,
5926
7110
  name: "New Orleans Louis Armstrong International",
5927
- tz: "America/Chicago"
7111
+ tz: "America/Chicago",
7112
+ venues: []
5928
7113
  },
5929
7114
  {
5930
7115
  code: "NYC",
@@ -5934,7 +7119,10 @@ var mostlyright = (() => {
5934
7119
  latitude: 40.7789,
5935
7120
  longitude: -73.9692,
5936
7121
  name: "Central Park, New York",
5937
- tz: "America/New_York"
7122
+ tz: "America/New_York",
7123
+ venues: [
7124
+ "kalshi"
7125
+ ]
5938
7126
  },
5939
7127
  {
5940
7128
  code: "OKC",
@@ -5944,7 +7132,8 @@ var mostlyright = (() => {
5944
7132
  latitude: 35.3931,
5945
7133
  longitude: -97.6007,
5946
7134
  name: "Oklahoma City Will Rogers World",
5947
- tz: "America/Chicago"
7135
+ tz: "America/Chicago",
7136
+ venues: []
5948
7137
  },
5949
7138
  {
5950
7139
  code: "PHL",
@@ -5954,7 +7143,11 @@ var mostlyright = (() => {
5954
7143
  latitude: 39.8721,
5955
7144
  longitude: -75.2411,
5956
7145
  name: "Philadelphia International",
5957
- tz: "America/New_York"
7146
+ tz: "America/New_York",
7147
+ venues: [
7148
+ "kalshi",
7149
+ "polymarket"
7150
+ ]
5958
7151
  },
5959
7152
  {
5960
7153
  code: "PHX",
@@ -5964,7 +7157,11 @@ var mostlyright = (() => {
5964
7157
  latitude: 33.4373,
5965
7158
  longitude: -112.0078,
5966
7159
  name: "Phoenix Sky Harbor International",
5967
- tz: "America/Phoenix"
7160
+ tz: "America/Phoenix",
7161
+ venues: [
7162
+ "kalshi",
7163
+ "polymarket"
7164
+ ]
5968
7165
  },
5969
7166
  {
5970
7167
  code: "SAT",
@@ -5974,7 +7171,8 @@ var mostlyright = (() => {
5974
7171
  latitude: 29.5337,
5975
7172
  longitude: -98.4698,
5976
7173
  name: "San Antonio International",
5977
- tz: "America/Chicago"
7174
+ tz: "America/Chicago",
7175
+ venues: []
5978
7176
  },
5979
7177
  {
5980
7178
  code: "SEA",
@@ -5984,7 +7182,11 @@ var mostlyright = (() => {
5984
7182
  latitude: 47.4502,
5985
7183
  longitude: -122.3088,
5986
7184
  name: "Seattle-Tacoma International",
5987
- tz: "America/Los_Angeles"
7185
+ tz: "America/Los_Angeles",
7186
+ venues: [
7187
+ "kalshi",
7188
+ "polymarket"
7189
+ ]
5988
7190
  },
5989
7191
  {
5990
7192
  code: "SFO",
@@ -5994,7 +7196,24 @@ var mostlyright = (() => {
5994
7196
  latitude: 37.6213,
5995
7197
  longitude: -122.379,
5996
7198
  name: "San Francisco International",
5997
- tz: "America/Los_Angeles"
7199
+ tz: "America/Los_Angeles",
7200
+ venues: [
7201
+ "kalshi",
7202
+ "polymarket"
7203
+ ]
7204
+ },
7205
+ {
7206
+ code: "SLC",
7207
+ country: "US",
7208
+ ghcnh_id: "USW00024127",
7209
+ icao: "KSLC",
7210
+ latitude: 40.7884,
7211
+ longitude: -111.9778,
7212
+ name: "Salt Lake City International",
7213
+ tz: "America/Denver",
7214
+ venues: [
7215
+ "kalshi"
7216
+ ]
5998
7217
  },
5999
7218
  {
6000
7219
  code: "LEBL",
@@ -6004,7 +7223,10 @@ var mostlyright = (() => {
6004
7223
  latitude: 41.2974,
6005
7224
  longitude: 2.0833,
6006
7225
  name: "Barcelona El Prat",
6007
- tz: "Europe/Madrid"
7226
+ tz: "Europe/Madrid",
7227
+ venues: [
7228
+ "polymarket"
7229
+ ]
6008
7230
  },
6009
7231
  {
6010
7232
  code: "LEMD",
@@ -6014,7 +7236,10 @@ var mostlyright = (() => {
6014
7236
  latitude: 40.4719,
6015
7237
  longitude: -3.5626,
6016
7238
  name: "Madrid Barajas",
6017
- tz: "Europe/Madrid"
7239
+ tz: "Europe/Madrid",
7240
+ venues: [
7241
+ "polymarket"
7242
+ ]
6018
7243
  },
6019
7244
  {
6020
7245
  code: "LFPB",
@@ -6024,7 +7249,10 @@ var mostlyright = (() => {
6024
7249
  latitude: 48.9694,
6025
7250
  longitude: 2.4414,
6026
7251
  name: "Paris Le Bourget",
6027
- tz: "Europe/Paris"
7252
+ tz: "Europe/Paris",
7253
+ venues: [
7254
+ "polymarket"
7255
+ ]
6028
7256
  },
6029
7257
  {
6030
7258
  code: "LFPG",
@@ -6034,7 +7262,10 @@ var mostlyright = (() => {
6034
7262
  latitude: 49.0097,
6035
7263
  longitude: 2.5479,
6036
7264
  name: "Paris Charles de Gaulle",
6037
- tz: "Europe/Paris"
7265
+ tz: "Europe/Paris",
7266
+ venues: [
7267
+ "polymarket"
7268
+ ]
6038
7269
  },
6039
7270
  {
6040
7271
  code: "LFPO",
@@ -6044,7 +7275,10 @@ var mostlyright = (() => {
6044
7275
  latitude: 48.7233,
6045
7276
  longitude: 2.3794,
6046
7277
  name: "Paris Orly",
6047
- tz: "Europe/Paris"
7278
+ tz: "Europe/Paris",
7279
+ venues: [
7280
+ "polymarket"
7281
+ ]
6048
7282
  },
6049
7283
  {
6050
7284
  code: "LIMC",
@@ -6054,7 +7288,10 @@ var mostlyright = (() => {
6054
7288
  latitude: 45.6306,
6055
7289
  longitude: 8.7281,
6056
7290
  name: "Milan Malpensa",
6057
- tz: "Europe/Rome"
7291
+ tz: "Europe/Rome",
7292
+ venues: [
7293
+ "polymarket"
7294
+ ]
6058
7295
  },
6059
7296
  {
6060
7297
  code: "LIRF",
@@ -6064,7 +7301,10 @@ var mostlyright = (() => {
6064
7301
  latitude: 41.8003,
6065
7302
  longitude: 12.2389,
6066
7303
  name: "Rome Fiumicino",
6067
- tz: "Europe/Rome"
7304
+ tz: "Europe/Rome",
7305
+ venues: [
7306
+ "polymarket"
7307
+ ]
6068
7308
  },
6069
7309
  {
6070
7310
  code: "LOWW",
@@ -6074,7 +7314,10 @@ var mostlyright = (() => {
6074
7314
  latitude: 48.1103,
6075
7315
  longitude: 16.5697,
6076
7316
  name: "Vienna International",
6077
- tz: "Europe/Vienna"
7317
+ tz: "Europe/Vienna",
7318
+ venues: [
7319
+ "polymarket"
7320
+ ]
6078
7321
  },
6079
7322
  {
6080
7323
  code: "LSZH",
@@ -6084,7 +7327,10 @@ var mostlyright = (() => {
6084
7327
  latitude: 47.4647,
6085
7328
  longitude: 8.5492,
6086
7329
  name: "Zurich",
6087
- tz: "Europe/Zurich"
7330
+ tz: "Europe/Zurich",
7331
+ venues: [
7332
+ "polymarket"
7333
+ ]
6088
7334
  },
6089
7335
  {
6090
7336
  code: "NZAA",
@@ -6094,7 +7340,10 @@ var mostlyright = (() => {
6094
7340
  latitude: -37.0081,
6095
7341
  longitude: 174.7917,
6096
7342
  name: "Auckland",
6097
- tz: "Pacific/Auckland"
7343
+ tz: "Pacific/Auckland",
7344
+ venues: [
7345
+ "polymarket"
7346
+ ]
6098
7347
  },
6099
7348
  {
6100
7349
  code: "NZWN",
@@ -6104,7 +7353,10 @@ var mostlyright = (() => {
6104
7353
  latitude: -41.3272,
6105
7354
  longitude: 174.8053,
6106
7355
  name: "Wellington",
6107
- tz: "Pacific/Auckland"
7356
+ tz: "Pacific/Auckland",
7357
+ venues: [
7358
+ "polymarket"
7359
+ ]
6108
7360
  },
6109
7361
  {
6110
7362
  code: "OERK",
@@ -6114,7 +7366,10 @@ var mostlyright = (() => {
6114
7366
  latitude: 24.9576,
6115
7367
  longitude: 46.6988,
6116
7368
  name: "Riyadh King Khalid International",
6117
- tz: "Asia/Riyadh"
7369
+ tz: "Asia/Riyadh",
7370
+ venues: [
7371
+ "polymarket"
7372
+ ]
6118
7373
  },
6119
7374
  {
6120
7375
  code: "OMDB",
@@ -6124,7 +7379,10 @@ var mostlyright = (() => {
6124
7379
  latitude: 25.2532,
6125
7380
  longitude: 55.3657,
6126
7381
  name: "Dubai International",
6127
- tz: "Asia/Dubai"
7382
+ tz: "Asia/Dubai",
7383
+ venues: [
7384
+ "polymarket"
7385
+ ]
6128
7386
  },
6129
7387
  {
6130
7388
  code: "OTHH",
@@ -6134,7 +7392,10 @@ var mostlyright = (() => {
6134
7392
  latitude: 25.2731,
6135
7393
  longitude: 51.608,
6136
7394
  name: "Doha Hamad International",
6137
- tz: "Asia/Qatar"
7395
+ tz: "Asia/Qatar",
7396
+ venues: [
7397
+ "polymarket"
7398
+ ]
6138
7399
  },
6139
7400
  {
6140
7401
  code: "RCTP",
@@ -6144,7 +7405,10 @@ var mostlyright = (() => {
6144
7405
  latitude: 25.0777,
6145
7406
  longitude: 121.2328,
6146
7407
  name: "Taipei Taoyuan",
6147
- tz: "Asia/Taipei"
7408
+ tz: "Asia/Taipei",
7409
+ venues: [
7410
+ "polymarket"
7411
+ ]
6148
7412
  },
6149
7413
  {
6150
7414
  code: "RJAA",
@@ -6154,7 +7418,10 @@ var mostlyright = (() => {
6154
7418
  latitude: 35.7647,
6155
7419
  longitude: 140.3864,
6156
7420
  name: "Tokyo Narita",
6157
- tz: "Asia/Tokyo"
7421
+ tz: "Asia/Tokyo",
7422
+ venues: [
7423
+ "polymarket"
7424
+ ]
6158
7425
  },
6159
7426
  {
6160
7427
  code: "RJTT",
@@ -6164,7 +7431,10 @@ var mostlyright = (() => {
6164
7431
  latitude: 35.5522,
6165
7432
  longitude: 139.78,
6166
7433
  name: "Tokyo Haneda",
6167
- tz: "Asia/Tokyo"
7434
+ tz: "Asia/Tokyo",
7435
+ venues: [
7436
+ "polymarket"
7437
+ ]
6168
7438
  },
6169
7439
  {
6170
7440
  code: "RKSI",
@@ -6174,7 +7444,10 @@ var mostlyright = (() => {
6174
7444
  latitude: 37.4691,
6175
7445
  longitude: 126.4505,
6176
7446
  name: "Seoul Incheon",
6177
- tz: "Asia/Seoul"
7447
+ tz: "Asia/Seoul",
7448
+ venues: [
7449
+ "polymarket"
7450
+ ]
6178
7451
  },
6179
7452
  {
6180
7453
  code: "SAEZ",
@@ -6184,7 +7457,10 @@ var mostlyright = (() => {
6184
7457
  latitude: -34.8222,
6185
7458
  longitude: -58.5358,
6186
7459
  name: "Buenos Aires Ezeiza",
6187
- tz: "America/Argentina/Buenos_Aires"
7460
+ tz: "America/Argentina/Buenos_Aires",
7461
+ venues: [
7462
+ "polymarket"
7463
+ ]
6188
7464
  },
6189
7465
  {
6190
7466
  code: "SBGR",
@@ -6194,7 +7470,10 @@ var mostlyright = (() => {
6194
7470
  latitude: -23.4356,
6195
7471
  longitude: -46.4731,
6196
7472
  name: "S\xE3o Paulo Guarulhos",
6197
- tz: "America/Sao_Paulo"
7473
+ tz: "America/Sao_Paulo",
7474
+ venues: [
7475
+ "polymarket"
7476
+ ]
6198
7477
  },
6199
7478
  {
6200
7479
  code: "UUEE",
@@ -6204,7 +7483,10 @@ var mostlyright = (() => {
6204
7483
  latitude: 55.9728,
6205
7484
  longitude: 37.4147,
6206
7485
  name: "Moscow Sheremetyevo",
6207
- tz: "Europe/Moscow"
7486
+ tz: "Europe/Moscow",
7487
+ venues: [
7488
+ "polymarket"
7489
+ ]
6208
7490
  },
6209
7491
  {
6210
7492
  code: "VABB",
@@ -6214,7 +7496,10 @@ var mostlyright = (() => {
6214
7496
  latitude: 19.0887,
6215
7497
  longitude: 72.8679,
6216
7498
  name: "Mumbai Chhatrapati Shivaji",
6217
- tz: "Asia/Kolkata"
7499
+ tz: "Asia/Kolkata",
7500
+ venues: [
7501
+ "polymarket"
7502
+ ]
6218
7503
  },
6219
7504
  {
6220
7505
  code: "VHHH",
@@ -6224,7 +7509,10 @@ var mostlyright = (() => {
6224
7509
  latitude: 22.308,
6225
7510
  longitude: 113.9185,
6226
7511
  name: "Hong Kong International",
6227
- tz: "Asia/Hong_Kong"
7512
+ tz: "Asia/Hong_Kong",
7513
+ venues: [
7514
+ "polymarket"
7515
+ ]
6228
7516
  },
6229
7517
  {
6230
7518
  code: "VIDP",
@@ -6234,7 +7522,10 @@ var mostlyright = (() => {
6234
7522
  latitude: 28.5562,
6235
7523
  longitude: 77.1,
6236
7524
  name: "Delhi Indira Gandhi",
6237
- tz: "Asia/Kolkata"
7525
+ tz: "Asia/Kolkata",
7526
+ venues: [
7527
+ "polymarket"
7528
+ ]
6238
7529
  },
6239
7530
  {
6240
7531
  code: "VTBS",
@@ -6244,7 +7535,10 @@ var mostlyright = (() => {
6244
7535
  latitude: 13.69,
6245
7536
  longitude: 100.7501,
6246
7537
  name: "Bangkok Suvarnabhumi",
6247
- tz: "Asia/Bangkok"
7538
+ tz: "Asia/Bangkok",
7539
+ venues: [
7540
+ "polymarket"
7541
+ ]
6248
7542
  },
6249
7543
  {
6250
7544
  code: "WSSS",
@@ -6254,7 +7548,10 @@ var mostlyright = (() => {
6254
7548
  latitude: 1.3644,
6255
7549
  longitude: 103.9915,
6256
7550
  name: "Singapore Changi",
6257
- tz: "Asia/Singapore"
7551
+ tz: "Asia/Singapore",
7552
+ venues: [
7553
+ "polymarket"
7554
+ ]
6258
7555
  },
6259
7556
  {
6260
7557
  code: "YBBN",
@@ -6264,7 +7561,10 @@ var mostlyright = (() => {
6264
7561
  latitude: -27.3842,
6265
7562
  longitude: 153.1175,
6266
7563
  name: "Brisbane",
6267
- tz: "Australia/Brisbane"
7564
+ tz: "Australia/Brisbane",
7565
+ venues: [
7566
+ "polymarket"
7567
+ ]
6268
7568
  },
6269
7569
  {
6270
7570
  code: "YMML",
@@ -6274,7 +7574,10 @@ var mostlyright = (() => {
6274
7574
  latitude: -37.6733,
6275
7575
  longitude: 144.8433,
6276
7576
  name: "Melbourne Tullamarine",
6277
- tz: "Australia/Melbourne"
7577
+ tz: "Australia/Melbourne",
7578
+ venues: [
7579
+ "polymarket"
7580
+ ]
6278
7581
  },
6279
7582
  {
6280
7583
  code: "YSSY",
@@ -6284,7 +7587,10 @@ var mostlyright = (() => {
6284
7587
  latitude: -33.9461,
6285
7588
  longitude: 151.1772,
6286
7589
  name: "Sydney Kingsford Smith",
6287
- tz: "Australia/Sydney"
7590
+ tz: "Australia/Sydney",
7591
+ venues: [
7592
+ "polymarket"
7593
+ ]
6288
7594
  },
6289
7595
  {
6290
7596
  code: "ZBAA",
@@ -6294,7 +7600,10 @@ var mostlyright = (() => {
6294
7600
  latitude: 40.0801,
6295
7601
  longitude: 116.5846,
6296
7602
  name: "Beijing Capital",
6297
- tz: "Asia/Shanghai"
7603
+ tz: "Asia/Shanghai",
7604
+ venues: [
7605
+ "polymarket"
7606
+ ]
6298
7607
  },
6299
7608
  {
6300
7609
  code: "ZSPD",
@@ -6304,16 +7613,22 @@ var mostlyright = (() => {
6304
7613
  latitude: 31.1443,
6305
7614
  longitude: 121.8083,
6306
7615
  name: "Shanghai Pudong",
6307
- tz: "Asia/Shanghai"
7616
+ tz: "Asia/Shanghai",
7617
+ venues: [
7618
+ "polymarket"
7619
+ ]
6308
7620
  }
6309
7621
  ];
6310
7622
  var STATION_BY_CODE3 = /* @__PURE__ */ new Map([
6311
7623
  ["ATL", STATIONS3[10]],
6312
7624
  ["AUS", STATIONS3[11]],
6313
- ["BOS", STATIONS3[12]],
6314
- ["DCA", STATIONS3[13]],
6315
- ["DEN", STATIONS3[14]],
6316
- ["DFW", STATIONS3[15]],
7625
+ ["BNA", STATIONS3[12]],
7626
+ ["BOS", STATIONS3[13]],
7627
+ ["CVG", STATIONS3[14]],
7628
+ ["DCA", STATIONS3[15]],
7629
+ ["DEN", STATIONS3[16]],
7630
+ ["DFW", STATIONS3[17]],
7631
+ ["DTW", STATIONS3[18]],
6317
7632
  ["EDDB", STATIONS3[0]],
6318
7633
  ["EDDF", STATIONS3[1]],
6319
7634
  ["EDDM", STATIONS3[2]],
@@ -6324,51 +7639,53 @@ var mostlyright = (() => {
6324
7639
  ["EKCH", STATIONS3[7]],
6325
7640
  ["EPWA", STATIONS3[8]],
6326
7641
  ["ESSA", STATIONS3[9]],
6327
- ["HOU", STATIONS3[16]],
6328
- ["LAS", STATIONS3[17]],
6329
- ["LAX", STATIONS3[18]],
6330
- ["LEBL", STATIONS3[30]],
6331
- ["LEMD", STATIONS3[31]],
6332
- ["LFPB", STATIONS3[32]],
6333
- ["LFPG", STATIONS3[33]],
6334
- ["LFPO", STATIONS3[34]],
6335
- ["LIMC", STATIONS3[35]],
6336
- ["LIRF", STATIONS3[36]],
6337
- ["LOWW", STATIONS3[37]],
6338
- ["LSZH", STATIONS3[38]],
6339
- ["MDW", STATIONS3[19]],
6340
- ["MIA", STATIONS3[20]],
6341
- ["MSP", STATIONS3[21]],
6342
- ["MSY", STATIONS3[22]],
6343
- ["NYC", STATIONS3[23]],
6344
- ["NZAA", STATIONS3[39]],
6345
- ["NZWN", STATIONS3[40]],
6346
- ["OERK", STATIONS3[41]],
6347
- ["OKC", STATIONS3[24]],
6348
- ["OMDB", STATIONS3[42]],
6349
- ["OTHH", STATIONS3[43]],
6350
- ["PHL", STATIONS3[25]],
6351
- ["PHX", STATIONS3[26]],
6352
- ["RCTP", STATIONS3[44]],
6353
- ["RJAA", STATIONS3[45]],
6354
- ["RJTT", STATIONS3[46]],
6355
- ["RKSI", STATIONS3[47]],
6356
- ["SAEZ", STATIONS3[48]],
6357
- ["SAT", STATIONS3[27]],
6358
- ["SBGR", STATIONS3[49]],
6359
- ["SEA", STATIONS3[28]],
6360
- ["SFO", STATIONS3[29]],
6361
- ["UUEE", STATIONS3[50]],
6362
- ["VABB", STATIONS3[51]],
6363
- ["VHHH", STATIONS3[52]],
6364
- ["VIDP", STATIONS3[53]],
6365
- ["VTBS", STATIONS3[54]],
6366
- ["WSSS", STATIONS3[55]],
6367
- ["YBBN", STATIONS3[56]],
6368
- ["YMML", STATIONS3[57]],
6369
- ["YSSY", STATIONS3[58]],
6370
- ["ZBAA", STATIONS3[59]],
6371
- ["ZSPD", STATIONS3[60]]
7642
+ ["HOU", STATIONS3[19]],
7643
+ ["IAH", STATIONS3[20]],
7644
+ ["LAS", STATIONS3[21]],
7645
+ ["LAX", STATIONS3[22]],
7646
+ ["LEBL", STATIONS3[35]],
7647
+ ["LEMD", STATIONS3[36]],
7648
+ ["LFPB", STATIONS3[37]],
7649
+ ["LFPG", STATIONS3[38]],
7650
+ ["LFPO", STATIONS3[39]],
7651
+ ["LIMC", STATIONS3[40]],
7652
+ ["LIRF", STATIONS3[41]],
7653
+ ["LOWW", STATIONS3[42]],
7654
+ ["LSZH", STATIONS3[43]],
7655
+ ["MDW", STATIONS3[23]],
7656
+ ["MIA", STATIONS3[24]],
7657
+ ["MSP", STATIONS3[25]],
7658
+ ["MSY", STATIONS3[26]],
7659
+ ["NYC", STATIONS3[27]],
7660
+ ["NZAA", STATIONS3[44]],
7661
+ ["NZWN", STATIONS3[45]],
7662
+ ["OERK", STATIONS3[46]],
7663
+ ["OKC", STATIONS3[28]],
7664
+ ["OMDB", STATIONS3[47]],
7665
+ ["OTHH", STATIONS3[48]],
7666
+ ["PHL", STATIONS3[29]],
7667
+ ["PHX", STATIONS3[30]],
7668
+ ["RCTP", STATIONS3[49]],
7669
+ ["RJAA", STATIONS3[50]],
7670
+ ["RJTT", STATIONS3[51]],
7671
+ ["RKSI", STATIONS3[52]],
7672
+ ["SAEZ", STATIONS3[53]],
7673
+ ["SAT", STATIONS3[31]],
7674
+ ["SBGR", STATIONS3[54]],
7675
+ ["SEA", STATIONS3[32]],
7676
+ ["SFO", STATIONS3[33]],
7677
+ ["SLC", STATIONS3[34]],
7678
+ ["UUEE", STATIONS3[55]],
7679
+ ["VABB", STATIONS3[56]],
7680
+ ["VHHH", STATIONS3[57]],
7681
+ ["VIDP", STATIONS3[58]],
7682
+ ["VTBS", STATIONS3[59]],
7683
+ ["WSSS", STATIONS3[60]],
7684
+ ["YBBN", STATIONS3[61]],
7685
+ ["YMML", STATIONS3[62]],
7686
+ ["YSSY", STATIONS3[63]],
7687
+ ["ZBAA", STATIONS3[64]],
7688
+ ["ZSPD", STATIONS3[65]]
6372
7689
  ]);
6373
7690
  var STATION_BY_ICAO3 = /* @__PURE__ */ new Map([
6374
7691
  ["EDDB", STATIONS3[0]],
@@ -6383,55 +7700,60 @@ var mostlyright = (() => {
6383
7700
  ["ESSA", STATIONS3[9]],
6384
7701
  ["KATL", STATIONS3[10]],
6385
7702
  ["KAUS", STATIONS3[11]],
6386
- ["KBOS", STATIONS3[12]],
6387
- ["KDCA", STATIONS3[13]],
6388
- ["KDEN", STATIONS3[14]],
6389
- ["KDFW", STATIONS3[15]],
6390
- ["KHOU", STATIONS3[16]],
6391
- ["KLAS", STATIONS3[17]],
6392
- ["KLAX", STATIONS3[18]],
6393
- ["KMDW", STATIONS3[19]],
6394
- ["KMIA", STATIONS3[20]],
6395
- ["KMSP", STATIONS3[21]],
6396
- ["KMSY", STATIONS3[22]],
6397
- ["KNYC", STATIONS3[23]],
6398
- ["KOKC", STATIONS3[24]],
6399
- ["KPHL", STATIONS3[25]],
6400
- ["KPHX", STATIONS3[26]],
6401
- ["KSAT", STATIONS3[27]],
6402
- ["KSEA", STATIONS3[28]],
6403
- ["KSFO", STATIONS3[29]],
6404
- ["LEBL", STATIONS3[30]],
6405
- ["LEMD", STATIONS3[31]],
6406
- ["LFPB", STATIONS3[32]],
6407
- ["LFPG", STATIONS3[33]],
6408
- ["LFPO", STATIONS3[34]],
6409
- ["LIMC", STATIONS3[35]],
6410
- ["LIRF", STATIONS3[36]],
6411
- ["LOWW", STATIONS3[37]],
6412
- ["LSZH", STATIONS3[38]],
6413
- ["NZAA", STATIONS3[39]],
6414
- ["NZWN", STATIONS3[40]],
6415
- ["OERK", STATIONS3[41]],
6416
- ["OMDB", STATIONS3[42]],
6417
- ["OTHH", STATIONS3[43]],
6418
- ["RCTP", STATIONS3[44]],
6419
- ["RJAA", STATIONS3[45]],
6420
- ["RJTT", STATIONS3[46]],
6421
- ["RKSI", STATIONS3[47]],
6422
- ["SAEZ", STATIONS3[48]],
6423
- ["SBGR", STATIONS3[49]],
6424
- ["UUEE", STATIONS3[50]],
6425
- ["VABB", STATIONS3[51]],
6426
- ["VHHH", STATIONS3[52]],
6427
- ["VIDP", STATIONS3[53]],
6428
- ["VTBS", STATIONS3[54]],
6429
- ["WSSS", STATIONS3[55]],
6430
- ["YBBN", STATIONS3[56]],
6431
- ["YMML", STATIONS3[57]],
6432
- ["YSSY", STATIONS3[58]],
6433
- ["ZBAA", STATIONS3[59]],
6434
- ["ZSPD", STATIONS3[60]]
7703
+ ["KBNA", STATIONS3[12]],
7704
+ ["KBOS", STATIONS3[13]],
7705
+ ["KCVG", STATIONS3[14]],
7706
+ ["KDCA", STATIONS3[15]],
7707
+ ["KDEN", STATIONS3[16]],
7708
+ ["KDFW", STATIONS3[17]],
7709
+ ["KDTW", STATIONS3[18]],
7710
+ ["KHOU", STATIONS3[19]],
7711
+ ["KIAH", STATIONS3[20]],
7712
+ ["KLAS", STATIONS3[21]],
7713
+ ["KLAX", STATIONS3[22]],
7714
+ ["KMDW", STATIONS3[23]],
7715
+ ["KMIA", STATIONS3[24]],
7716
+ ["KMSP", STATIONS3[25]],
7717
+ ["KMSY", STATIONS3[26]],
7718
+ ["KNYC", STATIONS3[27]],
7719
+ ["KOKC", STATIONS3[28]],
7720
+ ["KPHL", STATIONS3[29]],
7721
+ ["KPHX", STATIONS3[30]],
7722
+ ["KSAT", STATIONS3[31]],
7723
+ ["KSEA", STATIONS3[32]],
7724
+ ["KSFO", STATIONS3[33]],
7725
+ ["KSLC", STATIONS3[34]],
7726
+ ["LEBL", STATIONS3[35]],
7727
+ ["LEMD", STATIONS3[36]],
7728
+ ["LFPB", STATIONS3[37]],
7729
+ ["LFPG", STATIONS3[38]],
7730
+ ["LFPO", STATIONS3[39]],
7731
+ ["LIMC", STATIONS3[40]],
7732
+ ["LIRF", STATIONS3[41]],
7733
+ ["LOWW", STATIONS3[42]],
7734
+ ["LSZH", STATIONS3[43]],
7735
+ ["NZAA", STATIONS3[44]],
7736
+ ["NZWN", STATIONS3[45]],
7737
+ ["OERK", STATIONS3[46]],
7738
+ ["OMDB", STATIONS3[47]],
7739
+ ["OTHH", STATIONS3[48]],
7740
+ ["RCTP", STATIONS3[49]],
7741
+ ["RJAA", STATIONS3[50]],
7742
+ ["RJTT", STATIONS3[51]],
7743
+ ["RKSI", STATIONS3[52]],
7744
+ ["SAEZ", STATIONS3[53]],
7745
+ ["SBGR", STATIONS3[54]],
7746
+ ["UUEE", STATIONS3[55]],
7747
+ ["VABB", STATIONS3[56]],
7748
+ ["VHHH", STATIONS3[57]],
7749
+ ["VIDP", STATIONS3[58]],
7750
+ ["VTBS", STATIONS3[59]],
7751
+ ["WSSS", STATIONS3[60]],
7752
+ ["YBBN", STATIONS3[61]],
7753
+ ["YMML", STATIONS3[62]],
7754
+ ["YSSY", STATIONS3[63]],
7755
+ ["ZBAA", STATIONS3[64]],
7756
+ ["ZSPD", STATIONS3[65]]
6435
7757
  ]);
6436
7758
  var _STATION_TZ2 = Object.freeze({
6437
7759
  // Eastern (UTC-5 standard / UTC-4 DST)