@mostlyrightmd/core 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.
@@ -22,17 +22,22 @@ var mostlyrightCore = (() => {
22
22
  var index_exports = {};
23
23
  __export(index_exports, {
24
24
  AuthenticationError: () => AuthenticationError,
25
+ CATALOG: () => CATALOG,
25
26
  CLIMATE_REPORT_TYPE_PRIORITY: () => CLIMATE_REPORT_TYPE_PRIORITY,
26
27
  DATA_AVAILABILITY_REASONS: () => DATA_AVAILABILITY_REASONS,
27
28
  DataAvailabilityError: () => DataAvailabilityError,
28
29
  DeferredMarketError: () => DeferredMarketError,
29
30
  ForbiddenError: () => ForbiddenError,
31
+ IssuedAtMissingError: () => IssuedAtMissingError,
30
32
  LIVE_V1_POLICY: () => LIVE_V1_POLICY,
31
33
  LeakageError: () => LeakageError,
32
34
  LiveStreamError: () => LiveStreamError,
35
+ MostlyRightError: () => MostlyRightError,
33
36
  NoLiveDataError: () => NoLiveDataError,
34
37
  NotFoundError: () => NotFoundError,
38
+ NwpNotAvailableError: () => NwpNotAvailableError,
35
39
  OBSERVATION_SOURCE_PRIORITY: () => OBSERVATION_SOURCE_PRIORITY,
40
+ OpenMeteoSeamlessLeakageError: () => OpenMeteoSeamlessLeakageError,
36
41
  PayloadTooLargeError: () => PayloadTooLargeError,
37
42
  PolymarketEventError: () => PolymarketEventError,
38
43
  QC_ALPHA_RULES: () => QC_ALPHA_RULES,
@@ -45,9 +50,9 @@ var mostlyrightCore = (() => {
45
50
  ServerError: () => ServerError,
46
51
  SourceMismatchError: () => SourceMismatchError,
47
52
  SourceUnavailableError: () => SourceUnavailableError,
53
+ StationCatalog: () => StationCatalog,
48
54
  TemporalDriftError: () => TemporalDriftError,
49
55
  TherminalError: () => TherminalError,
50
- TradewindsError: () => TradewindsError,
51
56
  ValidationError: () => ValidationError,
52
57
  _CLI_PUBLICATION_DELAY_HOURS: () => _CLI_PUBLICATION_DELAY_HOURS,
53
58
  _JAN_REF: () => _JAN_REF,
@@ -76,7 +81,10 @@ var mostlyrightCore = (() => {
76
81
  latitude: 52.3667,
77
82
  longitude: 13.5033,
78
83
  name: "Berlin Brandenburg",
79
- tz: "Europe/Berlin"
84
+ tz: "Europe/Berlin",
85
+ venues: [
86
+ "polymarket"
87
+ ]
80
88
  },
81
89
  {
82
90
  code: "EDDF",
@@ -86,7 +94,10 @@ var mostlyrightCore = (() => {
86
94
  latitude: 50.0379,
87
95
  longitude: 8.5622,
88
96
  name: "Frankfurt am Main",
89
- tz: "Europe/Berlin"
97
+ tz: "Europe/Berlin",
98
+ venues: [
99
+ "polymarket"
100
+ ]
90
101
  },
91
102
  {
92
103
  code: "EDDM",
@@ -96,7 +107,10 @@ var mostlyrightCore = (() => {
96
107
  latitude: 48.3538,
97
108
  longitude: 11.7861,
98
109
  name: "Munich Franz Josef Strauss",
99
- tz: "Europe/Berlin"
110
+ tz: "Europe/Berlin",
111
+ venues: [
112
+ "polymarket"
113
+ ]
100
114
  },
101
115
  {
102
116
  code: "EFHK",
@@ -106,7 +120,10 @@ var mostlyrightCore = (() => {
106
120
  latitude: 60.3172,
107
121
  longitude: 24.9633,
108
122
  name: "Helsinki-Vantaa",
109
- tz: "Europe/Helsinki"
123
+ tz: "Europe/Helsinki",
124
+ venues: [
125
+ "polymarket"
126
+ ]
110
127
  },
111
128
  {
112
129
  code: "EGKK",
@@ -116,7 +133,10 @@ var mostlyrightCore = (() => {
116
133
  latitude: 51.1481,
117
134
  longitude: -0.1903,
118
135
  name: "London Gatwick",
119
- tz: "Europe/London"
136
+ tz: "Europe/London",
137
+ venues: [
138
+ "polymarket"
139
+ ]
120
140
  },
121
141
  {
122
142
  code: "EGLL",
@@ -126,7 +146,10 @@ var mostlyrightCore = (() => {
126
146
  latitude: 51.4706,
127
147
  longitude: -0.4619,
128
148
  name: "London Heathrow",
129
- tz: "Europe/London"
149
+ tz: "Europe/London",
150
+ venues: [
151
+ "polymarket"
152
+ ]
130
153
  },
131
154
  {
132
155
  code: "EHAM",
@@ -136,7 +159,10 @@ var mostlyrightCore = (() => {
136
159
  latitude: 52.3086,
137
160
  longitude: 4.7639,
138
161
  name: "Amsterdam Schiphol",
139
- tz: "Europe/Amsterdam"
162
+ tz: "Europe/Amsterdam",
163
+ venues: [
164
+ "polymarket"
165
+ ]
140
166
  },
141
167
  {
142
168
  code: "EKCH",
@@ -146,7 +172,10 @@ var mostlyrightCore = (() => {
146
172
  latitude: 55.6181,
147
173
  longitude: 12.6561,
148
174
  name: "Copenhagen Kastrup",
149
- tz: "Europe/Copenhagen"
175
+ tz: "Europe/Copenhagen",
176
+ venues: [
177
+ "polymarket"
178
+ ]
150
179
  },
151
180
  {
152
181
  code: "EPWA",
@@ -156,7 +185,10 @@ var mostlyrightCore = (() => {
156
185
  latitude: 52.1657,
157
186
  longitude: 20.9671,
158
187
  name: "Warsaw Chopin",
159
- tz: "Europe/Warsaw"
188
+ tz: "Europe/Warsaw",
189
+ venues: [
190
+ "polymarket"
191
+ ]
160
192
  },
161
193
  {
162
194
  code: "ESSA",
@@ -166,7 +198,10 @@ var mostlyrightCore = (() => {
166
198
  latitude: 59.6519,
167
199
  longitude: 17.9186,
168
200
  name: "Stockholm Arlanda",
169
- tz: "Europe/Stockholm"
201
+ tz: "Europe/Stockholm",
202
+ venues: [
203
+ "polymarket"
204
+ ]
170
205
  },
171
206
  {
172
207
  code: "ATL",
@@ -176,7 +211,11 @@ var mostlyrightCore = (() => {
176
211
  latitude: 33.6407,
177
212
  longitude: -84.4277,
178
213
  name: "Hartsfield-Jackson Atlanta International",
179
- tz: "America/New_York"
214
+ tz: "America/New_York",
215
+ venues: [
216
+ "kalshi",
217
+ "polymarket"
218
+ ]
180
219
  },
181
220
  {
182
221
  code: "AUS",
@@ -186,7 +225,24 @@ var mostlyrightCore = (() => {
186
225
  latitude: 30.1975,
187
226
  longitude: -97.6664,
188
227
  name: "Austin-Bergstrom International",
189
- tz: "America/Chicago"
228
+ tz: "America/Chicago",
229
+ venues: [
230
+ "kalshi",
231
+ "polymarket"
232
+ ]
233
+ },
234
+ {
235
+ code: "BNA",
236
+ country: "US",
237
+ ghcnh_id: "USW00013897",
238
+ icao: "KBNA",
239
+ latitude: 36.1245,
240
+ longitude: -86.6782,
241
+ name: "Nashville International",
242
+ tz: "America/Chicago",
243
+ venues: [
244
+ "kalshi"
245
+ ]
190
246
  },
191
247
  {
192
248
  code: "BOS",
@@ -196,7 +252,24 @@ var mostlyrightCore = (() => {
196
252
  latitude: 42.3656,
197
253
  longitude: -71.0096,
198
254
  name: "Boston Logan International",
199
- tz: "America/New_York"
255
+ tz: "America/New_York",
256
+ venues: [
257
+ "kalshi",
258
+ "polymarket"
259
+ ]
260
+ },
261
+ {
262
+ code: "CVG",
263
+ country: "US",
264
+ ghcnh_id: "USW00093814",
265
+ icao: "KCVG",
266
+ latitude: 39.0488,
267
+ longitude: -84.6678,
268
+ name: "Cincinnati/Northern Kentucky International",
269
+ tz: "America/New_York",
270
+ venues: [
271
+ "kalshi"
272
+ ]
200
273
  },
201
274
  {
202
275
  code: "DCA",
@@ -206,7 +279,11 @@ var mostlyrightCore = (() => {
206
279
  latitude: 38.8512,
207
280
  longitude: -77.0402,
208
281
  name: "Washington Reagan National",
209
- tz: "America/New_York"
282
+ tz: "America/New_York",
283
+ venues: [
284
+ "kalshi",
285
+ "polymarket"
286
+ ]
210
287
  },
211
288
  {
212
289
  code: "DEN",
@@ -216,7 +293,11 @@ var mostlyrightCore = (() => {
216
293
  latitude: 39.8561,
217
294
  longitude: -104.6737,
218
295
  name: "Denver International",
219
- tz: "America/Denver"
296
+ tz: "America/Denver",
297
+ venues: [
298
+ "kalshi",
299
+ "polymarket"
300
+ ]
220
301
  },
221
302
  {
222
303
  code: "DFW",
@@ -226,7 +307,25 @@ var mostlyrightCore = (() => {
226
307
  latitude: 32.8998,
227
308
  longitude: -97.0403,
228
309
  name: "Dallas-Fort Worth International",
229
- tz: "America/Chicago"
310
+ tz: "America/Chicago",
311
+ venues: [
312
+ "kalshi",
313
+ "polymarket"
314
+ ]
315
+ },
316
+ {
317
+ code: "DTW",
318
+ country: "US",
319
+ ghcnh_id: "USW00094847",
320
+ icao: "KDTW",
321
+ latitude: 42.2124,
322
+ longitude: -83.3534,
323
+ name: "Detroit Metropolitan Wayne County",
324
+ tz: "America/New_York",
325
+ venues: [
326
+ "kalshi",
327
+ "polymarket"
328
+ ]
230
329
  },
231
330
  {
232
331
  code: "HOU",
@@ -236,7 +335,22 @@ var mostlyrightCore = (() => {
236
335
  latitude: 29.6454,
237
336
  longitude: -95.2789,
238
337
  name: "Houston Hobby",
239
- tz: "America/Chicago"
338
+ tz: "America/Chicago",
339
+ venues: []
340
+ },
341
+ {
342
+ code: "IAH",
343
+ country: "US",
344
+ ghcnh_id: "USW00012960",
345
+ icao: "KIAH",
346
+ latitude: 29.9844,
347
+ longitude: -95.3414,
348
+ name: "Houston George Bush Intercontinental",
349
+ tz: "America/Chicago",
350
+ venues: [
351
+ "kalshi",
352
+ "polymarket"
353
+ ]
240
354
  },
241
355
  {
242
356
  code: "LAS",
@@ -246,7 +360,10 @@ var mostlyrightCore = (() => {
246
360
  latitude: 36.084,
247
361
  longitude: -115.1537,
248
362
  name: "Harry Reid (McCarran) International",
249
- tz: "America/Los_Angeles"
363
+ tz: "America/Los_Angeles",
364
+ venues: [
365
+ "kalshi"
366
+ ]
250
367
  },
251
368
  {
252
369
  code: "LAX",
@@ -256,7 +373,11 @@ var mostlyrightCore = (() => {
256
373
  latitude: 33.9425,
257
374
  longitude: -118.4081,
258
375
  name: "Los Angeles International",
259
- tz: "America/Los_Angeles"
376
+ tz: "America/Los_Angeles",
377
+ venues: [
378
+ "kalshi",
379
+ "polymarket"
380
+ ]
260
381
  },
261
382
  {
262
383
  code: "MDW",
@@ -266,7 +387,10 @@ var mostlyrightCore = (() => {
266
387
  latitude: 41.7868,
267
388
  longitude: -87.7522,
268
389
  name: "Chicago Midway International",
269
- tz: "America/Chicago"
390
+ tz: "America/Chicago",
391
+ venues: [
392
+ "kalshi"
393
+ ]
270
394
  },
271
395
  {
272
396
  code: "MIA",
@@ -276,7 +400,11 @@ var mostlyrightCore = (() => {
276
400
  latitude: 25.7959,
277
401
  longitude: -80.287,
278
402
  name: "Miami International",
279
- tz: "America/New_York"
403
+ tz: "America/New_York",
404
+ venues: [
405
+ "kalshi",
406
+ "polymarket"
407
+ ]
280
408
  },
281
409
  {
282
410
  code: "MSP",
@@ -286,7 +414,11 @@ var mostlyrightCore = (() => {
286
414
  latitude: 44.8848,
287
415
  longitude: -93.2223,
288
416
  name: "Minneapolis-St Paul International",
289
- tz: "America/Chicago"
417
+ tz: "America/Chicago",
418
+ venues: [
419
+ "kalshi",
420
+ "polymarket"
421
+ ]
290
422
  },
291
423
  {
292
424
  code: "MSY",
@@ -296,7 +428,8 @@ var mostlyrightCore = (() => {
296
428
  latitude: 29.9934,
297
429
  longitude: -90.258,
298
430
  name: "New Orleans Louis Armstrong International",
299
- tz: "America/Chicago"
431
+ tz: "America/Chicago",
432
+ venues: []
300
433
  },
301
434
  {
302
435
  code: "NYC",
@@ -306,7 +439,10 @@ var mostlyrightCore = (() => {
306
439
  latitude: 40.7789,
307
440
  longitude: -73.9692,
308
441
  name: "Central Park, New York",
309
- tz: "America/New_York"
442
+ tz: "America/New_York",
443
+ venues: [
444
+ "kalshi"
445
+ ]
310
446
  },
311
447
  {
312
448
  code: "OKC",
@@ -316,7 +452,8 @@ var mostlyrightCore = (() => {
316
452
  latitude: 35.3931,
317
453
  longitude: -97.6007,
318
454
  name: "Oklahoma City Will Rogers World",
319
- tz: "America/Chicago"
455
+ tz: "America/Chicago",
456
+ venues: []
320
457
  },
321
458
  {
322
459
  code: "PHL",
@@ -326,7 +463,11 @@ var mostlyrightCore = (() => {
326
463
  latitude: 39.8721,
327
464
  longitude: -75.2411,
328
465
  name: "Philadelphia International",
329
- tz: "America/New_York"
466
+ tz: "America/New_York",
467
+ venues: [
468
+ "kalshi",
469
+ "polymarket"
470
+ ]
330
471
  },
331
472
  {
332
473
  code: "PHX",
@@ -336,7 +477,11 @@ var mostlyrightCore = (() => {
336
477
  latitude: 33.4373,
337
478
  longitude: -112.0078,
338
479
  name: "Phoenix Sky Harbor International",
339
- tz: "America/Phoenix"
480
+ tz: "America/Phoenix",
481
+ venues: [
482
+ "kalshi",
483
+ "polymarket"
484
+ ]
340
485
  },
341
486
  {
342
487
  code: "SAT",
@@ -346,7 +491,8 @@ var mostlyrightCore = (() => {
346
491
  latitude: 29.5337,
347
492
  longitude: -98.4698,
348
493
  name: "San Antonio International",
349
- tz: "America/Chicago"
494
+ tz: "America/Chicago",
495
+ venues: []
350
496
  },
351
497
  {
352
498
  code: "SEA",
@@ -356,7 +502,11 @@ var mostlyrightCore = (() => {
356
502
  latitude: 47.4502,
357
503
  longitude: -122.3088,
358
504
  name: "Seattle-Tacoma International",
359
- tz: "America/Los_Angeles"
505
+ tz: "America/Los_Angeles",
506
+ venues: [
507
+ "kalshi",
508
+ "polymarket"
509
+ ]
360
510
  },
361
511
  {
362
512
  code: "SFO",
@@ -366,7 +516,24 @@ var mostlyrightCore = (() => {
366
516
  latitude: 37.6213,
367
517
  longitude: -122.379,
368
518
  name: "San Francisco International",
369
- tz: "America/Los_Angeles"
519
+ tz: "America/Los_Angeles",
520
+ venues: [
521
+ "kalshi",
522
+ "polymarket"
523
+ ]
524
+ },
525
+ {
526
+ code: "SLC",
527
+ country: "US",
528
+ ghcnh_id: "USW00024127",
529
+ icao: "KSLC",
530
+ latitude: 40.7884,
531
+ longitude: -111.9778,
532
+ name: "Salt Lake City International",
533
+ tz: "America/Denver",
534
+ venues: [
535
+ "kalshi"
536
+ ]
370
537
  },
371
538
  {
372
539
  code: "LEBL",
@@ -376,7 +543,10 @@ var mostlyrightCore = (() => {
376
543
  latitude: 41.2974,
377
544
  longitude: 2.0833,
378
545
  name: "Barcelona El Prat",
379
- tz: "Europe/Madrid"
546
+ tz: "Europe/Madrid",
547
+ venues: [
548
+ "polymarket"
549
+ ]
380
550
  },
381
551
  {
382
552
  code: "LEMD",
@@ -386,7 +556,10 @@ var mostlyrightCore = (() => {
386
556
  latitude: 40.4719,
387
557
  longitude: -3.5626,
388
558
  name: "Madrid Barajas",
389
- tz: "Europe/Madrid"
559
+ tz: "Europe/Madrid",
560
+ venues: [
561
+ "polymarket"
562
+ ]
390
563
  },
391
564
  {
392
565
  code: "LFPB",
@@ -396,7 +569,10 @@ var mostlyrightCore = (() => {
396
569
  latitude: 48.9694,
397
570
  longitude: 2.4414,
398
571
  name: "Paris Le Bourget",
399
- tz: "Europe/Paris"
572
+ tz: "Europe/Paris",
573
+ venues: [
574
+ "polymarket"
575
+ ]
400
576
  },
401
577
  {
402
578
  code: "LFPG",
@@ -406,7 +582,10 @@ var mostlyrightCore = (() => {
406
582
  latitude: 49.0097,
407
583
  longitude: 2.5479,
408
584
  name: "Paris Charles de Gaulle",
409
- tz: "Europe/Paris"
585
+ tz: "Europe/Paris",
586
+ venues: [
587
+ "polymarket"
588
+ ]
410
589
  },
411
590
  {
412
591
  code: "LFPO",
@@ -416,7 +595,10 @@ var mostlyrightCore = (() => {
416
595
  latitude: 48.7233,
417
596
  longitude: 2.3794,
418
597
  name: "Paris Orly",
419
- tz: "Europe/Paris"
598
+ tz: "Europe/Paris",
599
+ venues: [
600
+ "polymarket"
601
+ ]
420
602
  },
421
603
  {
422
604
  code: "LIMC",
@@ -426,7 +608,10 @@ var mostlyrightCore = (() => {
426
608
  latitude: 45.6306,
427
609
  longitude: 8.7281,
428
610
  name: "Milan Malpensa",
429
- tz: "Europe/Rome"
611
+ tz: "Europe/Rome",
612
+ venues: [
613
+ "polymarket"
614
+ ]
430
615
  },
431
616
  {
432
617
  code: "LIRF",
@@ -436,7 +621,10 @@ var mostlyrightCore = (() => {
436
621
  latitude: 41.8003,
437
622
  longitude: 12.2389,
438
623
  name: "Rome Fiumicino",
439
- tz: "Europe/Rome"
624
+ tz: "Europe/Rome",
625
+ venues: [
626
+ "polymarket"
627
+ ]
440
628
  },
441
629
  {
442
630
  code: "LOWW",
@@ -446,7 +634,10 @@ var mostlyrightCore = (() => {
446
634
  latitude: 48.1103,
447
635
  longitude: 16.5697,
448
636
  name: "Vienna International",
449
- tz: "Europe/Vienna"
637
+ tz: "Europe/Vienna",
638
+ venues: [
639
+ "polymarket"
640
+ ]
450
641
  },
451
642
  {
452
643
  code: "LSZH",
@@ -456,7 +647,10 @@ var mostlyrightCore = (() => {
456
647
  latitude: 47.4647,
457
648
  longitude: 8.5492,
458
649
  name: "Zurich",
459
- tz: "Europe/Zurich"
650
+ tz: "Europe/Zurich",
651
+ venues: [
652
+ "polymarket"
653
+ ]
460
654
  },
461
655
  {
462
656
  code: "NZAA",
@@ -466,7 +660,10 @@ var mostlyrightCore = (() => {
466
660
  latitude: -37.0081,
467
661
  longitude: 174.7917,
468
662
  name: "Auckland",
469
- tz: "Pacific/Auckland"
663
+ tz: "Pacific/Auckland",
664
+ venues: [
665
+ "polymarket"
666
+ ]
470
667
  },
471
668
  {
472
669
  code: "NZWN",
@@ -476,7 +673,10 @@ var mostlyrightCore = (() => {
476
673
  latitude: -41.3272,
477
674
  longitude: 174.8053,
478
675
  name: "Wellington",
479
- tz: "Pacific/Auckland"
676
+ tz: "Pacific/Auckland",
677
+ venues: [
678
+ "polymarket"
679
+ ]
480
680
  },
481
681
  {
482
682
  code: "OERK",
@@ -486,7 +686,10 @@ var mostlyrightCore = (() => {
486
686
  latitude: 24.9576,
487
687
  longitude: 46.6988,
488
688
  name: "Riyadh King Khalid International",
489
- tz: "Asia/Riyadh"
689
+ tz: "Asia/Riyadh",
690
+ venues: [
691
+ "polymarket"
692
+ ]
490
693
  },
491
694
  {
492
695
  code: "OMDB",
@@ -496,7 +699,10 @@ var mostlyrightCore = (() => {
496
699
  latitude: 25.2532,
497
700
  longitude: 55.3657,
498
701
  name: "Dubai International",
499
- tz: "Asia/Dubai"
702
+ tz: "Asia/Dubai",
703
+ venues: [
704
+ "polymarket"
705
+ ]
500
706
  },
501
707
  {
502
708
  code: "OTHH",
@@ -506,7 +712,10 @@ var mostlyrightCore = (() => {
506
712
  latitude: 25.2731,
507
713
  longitude: 51.608,
508
714
  name: "Doha Hamad International",
509
- tz: "Asia/Qatar"
715
+ tz: "Asia/Qatar",
716
+ venues: [
717
+ "polymarket"
718
+ ]
510
719
  },
511
720
  {
512
721
  code: "RCTP",
@@ -516,7 +725,10 @@ var mostlyrightCore = (() => {
516
725
  latitude: 25.0777,
517
726
  longitude: 121.2328,
518
727
  name: "Taipei Taoyuan",
519
- tz: "Asia/Taipei"
728
+ tz: "Asia/Taipei",
729
+ venues: [
730
+ "polymarket"
731
+ ]
520
732
  },
521
733
  {
522
734
  code: "RJAA",
@@ -526,7 +738,10 @@ var mostlyrightCore = (() => {
526
738
  latitude: 35.7647,
527
739
  longitude: 140.3864,
528
740
  name: "Tokyo Narita",
529
- tz: "Asia/Tokyo"
741
+ tz: "Asia/Tokyo",
742
+ venues: [
743
+ "polymarket"
744
+ ]
530
745
  },
531
746
  {
532
747
  code: "RJTT",
@@ -536,7 +751,10 @@ var mostlyrightCore = (() => {
536
751
  latitude: 35.5522,
537
752
  longitude: 139.78,
538
753
  name: "Tokyo Haneda",
539
- tz: "Asia/Tokyo"
754
+ tz: "Asia/Tokyo",
755
+ venues: [
756
+ "polymarket"
757
+ ]
540
758
  },
541
759
  {
542
760
  code: "RKSI",
@@ -546,7 +764,10 @@ var mostlyrightCore = (() => {
546
764
  latitude: 37.4691,
547
765
  longitude: 126.4505,
548
766
  name: "Seoul Incheon",
549
- tz: "Asia/Seoul"
767
+ tz: "Asia/Seoul",
768
+ venues: [
769
+ "polymarket"
770
+ ]
550
771
  },
551
772
  {
552
773
  code: "SAEZ",
@@ -556,7 +777,10 @@ var mostlyrightCore = (() => {
556
777
  latitude: -34.8222,
557
778
  longitude: -58.5358,
558
779
  name: "Buenos Aires Ezeiza",
559
- tz: "America/Argentina/Buenos_Aires"
780
+ tz: "America/Argentina/Buenos_Aires",
781
+ venues: [
782
+ "polymarket"
783
+ ]
560
784
  },
561
785
  {
562
786
  code: "SBGR",
@@ -566,7 +790,10 @@ var mostlyrightCore = (() => {
566
790
  latitude: -23.4356,
567
791
  longitude: -46.4731,
568
792
  name: "S\xE3o Paulo Guarulhos",
569
- tz: "America/Sao_Paulo"
793
+ tz: "America/Sao_Paulo",
794
+ venues: [
795
+ "polymarket"
796
+ ]
570
797
  },
571
798
  {
572
799
  code: "UUEE",
@@ -576,7 +803,10 @@ var mostlyrightCore = (() => {
576
803
  latitude: 55.9728,
577
804
  longitude: 37.4147,
578
805
  name: "Moscow Sheremetyevo",
579
- tz: "Europe/Moscow"
806
+ tz: "Europe/Moscow",
807
+ venues: [
808
+ "polymarket"
809
+ ]
580
810
  },
581
811
  {
582
812
  code: "VABB",
@@ -586,7 +816,10 @@ var mostlyrightCore = (() => {
586
816
  latitude: 19.0887,
587
817
  longitude: 72.8679,
588
818
  name: "Mumbai Chhatrapati Shivaji",
589
- tz: "Asia/Kolkata"
819
+ tz: "Asia/Kolkata",
820
+ venues: [
821
+ "polymarket"
822
+ ]
590
823
  },
591
824
  {
592
825
  code: "VHHH",
@@ -596,7 +829,10 @@ var mostlyrightCore = (() => {
596
829
  latitude: 22.308,
597
830
  longitude: 113.9185,
598
831
  name: "Hong Kong International",
599
- tz: "Asia/Hong_Kong"
832
+ tz: "Asia/Hong_Kong",
833
+ venues: [
834
+ "polymarket"
835
+ ]
600
836
  },
601
837
  {
602
838
  code: "VIDP",
@@ -606,7 +842,10 @@ var mostlyrightCore = (() => {
606
842
  latitude: 28.5562,
607
843
  longitude: 77.1,
608
844
  name: "Delhi Indira Gandhi",
609
- tz: "Asia/Kolkata"
845
+ tz: "Asia/Kolkata",
846
+ venues: [
847
+ "polymarket"
848
+ ]
610
849
  },
611
850
  {
612
851
  code: "VTBS",
@@ -616,7 +855,10 @@ var mostlyrightCore = (() => {
616
855
  latitude: 13.69,
617
856
  longitude: 100.7501,
618
857
  name: "Bangkok Suvarnabhumi",
619
- tz: "Asia/Bangkok"
858
+ tz: "Asia/Bangkok",
859
+ venues: [
860
+ "polymarket"
861
+ ]
620
862
  },
621
863
  {
622
864
  code: "WSSS",
@@ -626,7 +868,10 @@ var mostlyrightCore = (() => {
626
868
  latitude: 1.3644,
627
869
  longitude: 103.9915,
628
870
  name: "Singapore Changi",
629
- tz: "Asia/Singapore"
871
+ tz: "Asia/Singapore",
872
+ venues: [
873
+ "polymarket"
874
+ ]
630
875
  },
631
876
  {
632
877
  code: "YBBN",
@@ -636,7 +881,10 @@ var mostlyrightCore = (() => {
636
881
  latitude: -27.3842,
637
882
  longitude: 153.1175,
638
883
  name: "Brisbane",
639
- tz: "Australia/Brisbane"
884
+ tz: "Australia/Brisbane",
885
+ venues: [
886
+ "polymarket"
887
+ ]
640
888
  },
641
889
  {
642
890
  code: "YMML",
@@ -646,7 +894,10 @@ var mostlyrightCore = (() => {
646
894
  latitude: -37.6733,
647
895
  longitude: 144.8433,
648
896
  name: "Melbourne Tullamarine",
649
- tz: "Australia/Melbourne"
897
+ tz: "Australia/Melbourne",
898
+ venues: [
899
+ "polymarket"
900
+ ]
650
901
  },
651
902
  {
652
903
  code: "YSSY",
@@ -656,7 +907,10 @@ var mostlyrightCore = (() => {
656
907
  latitude: -33.9461,
657
908
  longitude: 151.1772,
658
909
  name: "Sydney Kingsford Smith",
659
- tz: "Australia/Sydney"
910
+ tz: "Australia/Sydney",
911
+ venues: [
912
+ "polymarket"
913
+ ]
660
914
  },
661
915
  {
662
916
  code: "ZBAA",
@@ -666,7 +920,10 @@ var mostlyrightCore = (() => {
666
920
  latitude: 40.0801,
667
921
  longitude: 116.5846,
668
922
  name: "Beijing Capital",
669
- tz: "Asia/Shanghai"
923
+ tz: "Asia/Shanghai",
924
+ venues: [
925
+ "polymarket"
926
+ ]
670
927
  },
671
928
  {
672
929
  code: "ZSPD",
@@ -676,16 +933,22 @@ var mostlyrightCore = (() => {
676
933
  latitude: 31.1443,
677
934
  longitude: 121.8083,
678
935
  name: "Shanghai Pudong",
679
- tz: "Asia/Shanghai"
936
+ tz: "Asia/Shanghai",
937
+ venues: [
938
+ "polymarket"
939
+ ]
680
940
  }
681
941
  ];
682
942
  var STATION_BY_CODE = /* @__PURE__ */ new Map([
683
943
  ["ATL", STATIONS[10]],
684
944
  ["AUS", STATIONS[11]],
685
- ["BOS", STATIONS[12]],
686
- ["DCA", STATIONS[13]],
687
- ["DEN", STATIONS[14]],
688
- ["DFW", STATIONS[15]],
945
+ ["BNA", STATIONS[12]],
946
+ ["BOS", STATIONS[13]],
947
+ ["CVG", STATIONS[14]],
948
+ ["DCA", STATIONS[15]],
949
+ ["DEN", STATIONS[16]],
950
+ ["DFW", STATIONS[17]],
951
+ ["DTW", STATIONS[18]],
689
952
  ["EDDB", STATIONS[0]],
690
953
  ["EDDF", STATIONS[1]],
691
954
  ["EDDM", STATIONS[2]],
@@ -696,51 +959,53 @@ var mostlyrightCore = (() => {
696
959
  ["EKCH", STATIONS[7]],
697
960
  ["EPWA", STATIONS[8]],
698
961
  ["ESSA", STATIONS[9]],
699
- ["HOU", STATIONS[16]],
700
- ["LAS", STATIONS[17]],
701
- ["LAX", STATIONS[18]],
702
- ["LEBL", STATIONS[30]],
703
- ["LEMD", STATIONS[31]],
704
- ["LFPB", STATIONS[32]],
705
- ["LFPG", STATIONS[33]],
706
- ["LFPO", STATIONS[34]],
707
- ["LIMC", STATIONS[35]],
708
- ["LIRF", STATIONS[36]],
709
- ["LOWW", STATIONS[37]],
710
- ["LSZH", STATIONS[38]],
711
- ["MDW", STATIONS[19]],
712
- ["MIA", STATIONS[20]],
713
- ["MSP", STATIONS[21]],
714
- ["MSY", STATIONS[22]],
715
- ["NYC", STATIONS[23]],
716
- ["NZAA", STATIONS[39]],
717
- ["NZWN", STATIONS[40]],
718
- ["OERK", STATIONS[41]],
719
- ["OKC", STATIONS[24]],
720
- ["OMDB", STATIONS[42]],
721
- ["OTHH", STATIONS[43]],
722
- ["PHL", STATIONS[25]],
723
- ["PHX", STATIONS[26]],
724
- ["RCTP", STATIONS[44]],
725
- ["RJAA", STATIONS[45]],
726
- ["RJTT", STATIONS[46]],
727
- ["RKSI", STATIONS[47]],
728
- ["SAEZ", STATIONS[48]],
729
- ["SAT", STATIONS[27]],
730
- ["SBGR", STATIONS[49]],
731
- ["SEA", STATIONS[28]],
732
- ["SFO", STATIONS[29]],
733
- ["UUEE", STATIONS[50]],
734
- ["VABB", STATIONS[51]],
735
- ["VHHH", STATIONS[52]],
736
- ["VIDP", STATIONS[53]],
737
- ["VTBS", STATIONS[54]],
738
- ["WSSS", STATIONS[55]],
739
- ["YBBN", STATIONS[56]],
740
- ["YMML", STATIONS[57]],
741
- ["YSSY", STATIONS[58]],
742
- ["ZBAA", STATIONS[59]],
743
- ["ZSPD", STATIONS[60]]
962
+ ["HOU", STATIONS[19]],
963
+ ["IAH", STATIONS[20]],
964
+ ["LAS", STATIONS[21]],
965
+ ["LAX", STATIONS[22]],
966
+ ["LEBL", STATIONS[35]],
967
+ ["LEMD", STATIONS[36]],
968
+ ["LFPB", STATIONS[37]],
969
+ ["LFPG", STATIONS[38]],
970
+ ["LFPO", STATIONS[39]],
971
+ ["LIMC", STATIONS[40]],
972
+ ["LIRF", STATIONS[41]],
973
+ ["LOWW", STATIONS[42]],
974
+ ["LSZH", STATIONS[43]],
975
+ ["MDW", STATIONS[23]],
976
+ ["MIA", STATIONS[24]],
977
+ ["MSP", STATIONS[25]],
978
+ ["MSY", STATIONS[26]],
979
+ ["NYC", STATIONS[27]],
980
+ ["NZAA", STATIONS[44]],
981
+ ["NZWN", STATIONS[45]],
982
+ ["OERK", STATIONS[46]],
983
+ ["OKC", STATIONS[28]],
984
+ ["OMDB", STATIONS[47]],
985
+ ["OTHH", STATIONS[48]],
986
+ ["PHL", STATIONS[29]],
987
+ ["PHX", STATIONS[30]],
988
+ ["RCTP", STATIONS[49]],
989
+ ["RJAA", STATIONS[50]],
990
+ ["RJTT", STATIONS[51]],
991
+ ["RKSI", STATIONS[52]],
992
+ ["SAEZ", STATIONS[53]],
993
+ ["SAT", STATIONS[31]],
994
+ ["SBGR", STATIONS[54]],
995
+ ["SEA", STATIONS[32]],
996
+ ["SFO", STATIONS[33]],
997
+ ["SLC", STATIONS[34]],
998
+ ["UUEE", STATIONS[55]],
999
+ ["VABB", STATIONS[56]],
1000
+ ["VHHH", STATIONS[57]],
1001
+ ["VIDP", STATIONS[58]],
1002
+ ["VTBS", STATIONS[59]],
1003
+ ["WSSS", STATIONS[60]],
1004
+ ["YBBN", STATIONS[61]],
1005
+ ["YMML", STATIONS[62]],
1006
+ ["YSSY", STATIONS[63]],
1007
+ ["ZBAA", STATIONS[64]],
1008
+ ["ZSPD", STATIONS[65]]
744
1009
  ]);
745
1010
  var STATION_BY_ICAO = /* @__PURE__ */ new Map([
746
1011
  ["EDDB", STATIONS[0]],
@@ -755,55 +1020,60 @@ var mostlyrightCore = (() => {
755
1020
  ["ESSA", STATIONS[9]],
756
1021
  ["KATL", STATIONS[10]],
757
1022
  ["KAUS", STATIONS[11]],
758
- ["KBOS", STATIONS[12]],
759
- ["KDCA", STATIONS[13]],
760
- ["KDEN", STATIONS[14]],
761
- ["KDFW", STATIONS[15]],
762
- ["KHOU", STATIONS[16]],
763
- ["KLAS", STATIONS[17]],
764
- ["KLAX", STATIONS[18]],
765
- ["KMDW", STATIONS[19]],
766
- ["KMIA", STATIONS[20]],
767
- ["KMSP", STATIONS[21]],
768
- ["KMSY", STATIONS[22]],
769
- ["KNYC", STATIONS[23]],
770
- ["KOKC", STATIONS[24]],
771
- ["KPHL", STATIONS[25]],
772
- ["KPHX", STATIONS[26]],
773
- ["KSAT", STATIONS[27]],
774
- ["KSEA", STATIONS[28]],
775
- ["KSFO", STATIONS[29]],
776
- ["LEBL", STATIONS[30]],
777
- ["LEMD", STATIONS[31]],
778
- ["LFPB", STATIONS[32]],
779
- ["LFPG", STATIONS[33]],
780
- ["LFPO", STATIONS[34]],
781
- ["LIMC", STATIONS[35]],
782
- ["LIRF", STATIONS[36]],
783
- ["LOWW", STATIONS[37]],
784
- ["LSZH", STATIONS[38]],
785
- ["NZAA", STATIONS[39]],
786
- ["NZWN", STATIONS[40]],
787
- ["OERK", STATIONS[41]],
788
- ["OMDB", STATIONS[42]],
789
- ["OTHH", STATIONS[43]],
790
- ["RCTP", STATIONS[44]],
791
- ["RJAA", STATIONS[45]],
792
- ["RJTT", STATIONS[46]],
793
- ["RKSI", STATIONS[47]],
794
- ["SAEZ", STATIONS[48]],
795
- ["SBGR", STATIONS[49]],
796
- ["UUEE", STATIONS[50]],
797
- ["VABB", STATIONS[51]],
798
- ["VHHH", STATIONS[52]],
799
- ["VIDP", STATIONS[53]],
800
- ["VTBS", STATIONS[54]],
801
- ["WSSS", STATIONS[55]],
802
- ["YBBN", STATIONS[56]],
803
- ["YMML", STATIONS[57]],
804
- ["YSSY", STATIONS[58]],
805
- ["ZBAA", STATIONS[59]],
806
- ["ZSPD", STATIONS[60]]
1023
+ ["KBNA", STATIONS[12]],
1024
+ ["KBOS", STATIONS[13]],
1025
+ ["KCVG", STATIONS[14]],
1026
+ ["KDCA", STATIONS[15]],
1027
+ ["KDEN", STATIONS[16]],
1028
+ ["KDFW", STATIONS[17]],
1029
+ ["KDTW", STATIONS[18]],
1030
+ ["KHOU", STATIONS[19]],
1031
+ ["KIAH", STATIONS[20]],
1032
+ ["KLAS", STATIONS[21]],
1033
+ ["KLAX", STATIONS[22]],
1034
+ ["KMDW", STATIONS[23]],
1035
+ ["KMIA", STATIONS[24]],
1036
+ ["KMSP", STATIONS[25]],
1037
+ ["KMSY", STATIONS[26]],
1038
+ ["KNYC", STATIONS[27]],
1039
+ ["KOKC", STATIONS[28]],
1040
+ ["KPHL", STATIONS[29]],
1041
+ ["KPHX", STATIONS[30]],
1042
+ ["KSAT", STATIONS[31]],
1043
+ ["KSEA", STATIONS[32]],
1044
+ ["KSFO", STATIONS[33]],
1045
+ ["KSLC", STATIONS[34]],
1046
+ ["LEBL", STATIONS[35]],
1047
+ ["LEMD", STATIONS[36]],
1048
+ ["LFPB", STATIONS[37]],
1049
+ ["LFPG", STATIONS[38]],
1050
+ ["LFPO", STATIONS[39]],
1051
+ ["LIMC", STATIONS[40]],
1052
+ ["LIRF", STATIONS[41]],
1053
+ ["LOWW", STATIONS[42]],
1054
+ ["LSZH", STATIONS[43]],
1055
+ ["NZAA", STATIONS[44]],
1056
+ ["NZWN", STATIONS[45]],
1057
+ ["OERK", STATIONS[46]],
1058
+ ["OMDB", STATIONS[47]],
1059
+ ["OTHH", STATIONS[48]],
1060
+ ["RCTP", STATIONS[49]],
1061
+ ["RJAA", STATIONS[50]],
1062
+ ["RJTT", STATIONS[51]],
1063
+ ["RKSI", STATIONS[52]],
1064
+ ["SAEZ", STATIONS[53]],
1065
+ ["SBGR", STATIONS[54]],
1066
+ ["UUEE", STATIONS[55]],
1067
+ ["VABB", STATIONS[56]],
1068
+ ["VHHH", STATIONS[57]],
1069
+ ["VIDP", STATIONS[58]],
1070
+ ["VTBS", STATIONS[59]],
1071
+ ["WSSS", STATIONS[60]],
1072
+ ["YBBN", STATIONS[61]],
1073
+ ["YMML", STATIONS[62]],
1074
+ ["YSSY", STATIONS[63]],
1075
+ ["ZBAA", STATIONS[64]],
1076
+ ["ZSPD", STATIONS[65]]
807
1077
  ]);
808
1078
 
809
1079
  // src/data/generated/source-priority.ts
@@ -932,9 +1202,9 @@ var mostlyrightCore = (() => {
932
1202
  }
933
1203
  return { _repr_only: true, value: String(value) };
934
1204
  }
935
- var TradewindsError = class extends Error {
1205
+ var MostlyRightError = class extends Error {
936
1206
  /** Subclass override — the stable string enum surfaced via `errorCode`. */
937
- static defaultErrorCode = "TRADEWINDS_ERROR";
1207
+ static defaultErrorCode = "MOSTLYRIGHT_ERROR";
938
1208
  errorCode;
939
1209
  source;
940
1210
  requestId;
@@ -966,7 +1236,7 @@ var mostlyrightCore = (() => {
966
1236
  return safe;
967
1237
  }
968
1238
  };
969
- var SourceUnavailableError = class extends TradewindsError {
1239
+ var SourceUnavailableError = class extends MostlyRightError {
970
1240
  static defaultErrorCode = "SOURCE_UNAVAILABLE";
971
1241
  httpStatus;
972
1242
  retryable;
@@ -1000,7 +1270,7 @@ var mostlyrightCore = (() => {
1000
1270
  "source_5xx",
1001
1271
  "rate_limited"
1002
1272
  ];
1003
- var DataAvailabilityError = class extends TradewindsError {
1273
+ var DataAvailabilityError = class extends MostlyRightError {
1004
1274
  static defaultErrorCode = "DATA_AVAILABILITY";
1005
1275
  reason;
1006
1276
  hint;
@@ -1026,7 +1296,32 @@ var mostlyrightCore = (() => {
1026
1296
  };
1027
1297
  }
1028
1298
  };
1029
- var SchemaValidationError = class extends TradewindsError {
1299
+ var NwpNotAvailableError = class extends DataAvailabilityError {
1300
+ static defaultErrorCode = "NWP_NOT_AVAILABLE";
1301
+ station;
1302
+ model;
1303
+ constructor(options) {
1304
+ const parentOpts = {
1305
+ reason: "model_unavailable",
1306
+ hint: options.hint,
1307
+ source: options.source ?? `nwp.${options.model}`
1308
+ };
1309
+ if (options.requestId !== void 0 && options.requestId !== null) {
1310
+ parentOpts.requestId = options.requestId;
1311
+ }
1312
+ super(parentOpts);
1313
+ this.station = options.station;
1314
+ this.model = options.model;
1315
+ }
1316
+ payload() {
1317
+ return {
1318
+ ...super.payload(),
1319
+ station: this.station,
1320
+ model: this.model
1321
+ };
1322
+ }
1323
+ };
1324
+ var SchemaValidationError = class extends MostlyRightError {
1030
1325
  static defaultErrorCode = "SCHEMA_VALIDATION_FAILED";
1031
1326
  schemaId;
1032
1327
  violations;
@@ -1049,7 +1344,7 @@ var mostlyrightCore = (() => {
1049
1344
  };
1050
1345
  }
1051
1346
  };
1052
- var SourceMismatchError = class extends TradewindsError {
1347
+ var SourceMismatchError = class extends MostlyRightError {
1053
1348
  static defaultErrorCode = "SOURCE_MISMATCH";
1054
1349
  /** Canonical role-name vocabulary (design.md §R). */
1055
1350
  static VALID_ROLES = /* @__PURE__ */ new Set([
@@ -1078,7 +1373,7 @@ var mostlyrightCore = (() => {
1078
1373
  };
1079
1374
  }
1080
1375
  };
1081
- var LeakageError = class extends TradewindsError {
1376
+ var LeakageError = class extends MostlyRightError {
1082
1377
  static defaultErrorCode = "LEAKAGE_DETECTED";
1083
1378
  asOf;
1084
1379
  violatingCount;
@@ -1098,7 +1393,50 @@ var mostlyrightCore = (() => {
1098
1393
  };
1099
1394
  }
1100
1395
  };
1101
- var TemporalDriftError = class extends TradewindsError {
1396
+ var IssuedAtMissingError = class extends SchemaValidationError {
1397
+ static defaultErrorCode = "ISSUED_AT_MISSING";
1398
+ violatingCountRows;
1399
+ constructor(message, options = {}) {
1400
+ super(message, {
1401
+ ...options,
1402
+ schemaId: "schema.forecast.station.v1",
1403
+ violations: [{ column: "issued_at", rule: "non_null" }]
1404
+ });
1405
+ this.violatingCountRows = options.violatingCount ?? 0;
1406
+ }
1407
+ payload() {
1408
+ return {
1409
+ ...super.payload(),
1410
+ name: "IssuedAtMissingError",
1411
+ violating_count: this.violatingCountRows,
1412
+ origin_issue: "Tarabcak/mostlyright#70"
1413
+ };
1414
+ }
1415
+ };
1416
+ var OpenMeteoSeamlessLeakageError = class extends LeakageError {
1417
+ static defaultErrorCode = "OPEN_METEO_SEAMLESS_LEAKAGE";
1418
+ model;
1419
+ endpointUrl;
1420
+ constructor(message, options) {
1421
+ super(message, {
1422
+ ...options,
1423
+ asOf: options.asOf ?? "(seamless-endpoint-refused-before-fetch)",
1424
+ violatingCount: 0
1425
+ });
1426
+ this.model = options.model;
1427
+ this.endpointUrl = options.endpointUrl;
1428
+ }
1429
+ payload() {
1430
+ return {
1431
+ ...super.payload(),
1432
+ name: "OpenMeteoSeamlessLeakageError",
1433
+ model: this.model,
1434
+ endpoint_url: this.endpointUrl,
1435
+ origin_issue: "Tarabcak/mostlyright#70"
1436
+ };
1437
+ }
1438
+ };
1439
+ var TemporalDriftError = class extends MostlyRightError {
1102
1440
  static defaultErrorCode = "TEMPORAL_DRIFT";
1103
1441
  schemaId;
1104
1442
  assertedRange;
@@ -1121,7 +1459,7 @@ var mostlyrightCore = (() => {
1121
1459
  };
1122
1460
  }
1123
1461
  };
1124
- var PayloadTooLargeError = class extends TradewindsError {
1462
+ var PayloadTooLargeError = class extends MostlyRightError {
1125
1463
  static defaultErrorCode = "PAYLOAD_TOO_LARGE";
1126
1464
  declaredSize;
1127
1465
  limit;
@@ -1141,13 +1479,13 @@ var mostlyrightCore = (() => {
1141
1479
  };
1142
1480
  }
1143
1481
  };
1144
- var DeferredMarketError = class extends TradewindsError {
1482
+ var DeferredMarketError = class extends MostlyRightError {
1145
1483
  static defaultErrorCode = "DEFERRED_MARKET";
1146
1484
  };
1147
- var PolymarketEventError = class extends TradewindsError {
1485
+ var PolymarketEventError = class extends MostlyRightError {
1148
1486
  static defaultErrorCode = "POLYMARKET_EVENT_INVALID";
1149
1487
  };
1150
- var TherminalError = class extends TradewindsError {
1488
+ var TherminalError = class extends MostlyRightError {
1151
1489
  static defaultErrorCode = "HTTP_ERROR";
1152
1490
  statusCode;
1153
1491
  constructor(message, options = {}) {
@@ -1206,7 +1544,7 @@ var mostlyrightCore = (() => {
1206
1544
  super(message, { ...options, statusCode: options.statusCode ?? 500 });
1207
1545
  }
1208
1546
  };
1209
- var LiveStreamError = class extends TradewindsError {
1547
+ var LiveStreamError = class extends MostlyRightError {
1210
1548
  static defaultErrorCode = "LIVE_STREAM_ERROR";
1211
1549
  };
1212
1550
  var NoLiveDataError = class extends LiveStreamError {
@@ -1462,6 +1800,69 @@ var mostlyrightCore = (() => {
1462
1800
  return new Date(marketCloseAsUtcMs - offsetHours * 36e5);
1463
1801
  }
1464
1802
 
1803
+ // src/stations/index.ts
1804
+ var StationCatalog = class {
1805
+ stations;
1806
+ byCode;
1807
+ byIcao;
1808
+ constructor(stations = STATIONS) {
1809
+ this.stations = stations;
1810
+ if (stations === STATIONS) {
1811
+ this.byCode = STATION_BY_CODE;
1812
+ this.byIcao = STATION_BY_ICAO;
1813
+ } else {
1814
+ const byCode = /* @__PURE__ */ new Map();
1815
+ const byIcao = /* @__PURE__ */ new Map();
1816
+ for (const s of stations) {
1817
+ if (s.code !== null) byCode.set(s.code, s);
1818
+ byIcao.set(s.icao, s);
1819
+ }
1820
+ this.byCode = byCode;
1821
+ this.byIcao = byIcao;
1822
+ }
1823
+ }
1824
+ /**
1825
+ * Return the station for `code` (registry code or ICAO).
1826
+ * @throws if no station matches.
1827
+ */
1828
+ get(code) {
1829
+ const station = this.byCode.get(code) ?? this.byIcao.get(code);
1830
+ if (station === void 0) {
1831
+ throw new Error(
1832
+ `Unknown station ${JSON.stringify(code)}. Expected a registry code (e.g. "NYC", "EGLL") or a 4-letter ICAO (e.g. "KNYC").`
1833
+ );
1834
+ }
1835
+ return station;
1836
+ }
1837
+ /** Stations tagged with `venue` (e.g. "kalshi"), sorted by ICAO. */
1838
+ filterByVenue(venue) {
1839
+ return this.stations.filter((s) => s.venues.includes(venue)).sort((a, b) => a.icao.localeCompare(b.icao));
1840
+ }
1841
+ /** Stations whose ISO 3166-1 alpha-2 `country` matches, sorted by ICAO. */
1842
+ filterByCountry(country) {
1843
+ return this.stations.filter((s) => s.country === country).sort((a, b) => a.icao.localeCompare(b.icao));
1844
+ }
1845
+ /** Union of all venue tags present in the catalog. */
1846
+ venues() {
1847
+ const out = /* @__PURE__ */ new Set();
1848
+ for (const s of this.stations) {
1849
+ for (const v of s.venues) out.add(v);
1850
+ }
1851
+ return out;
1852
+ }
1853
+ /** True iff `code` resolves to a station (by registry code or ICAO). */
1854
+ has(code) {
1855
+ return this.byCode.has(code) || this.byIcao.has(code);
1856
+ }
1857
+ get size() {
1858
+ return this.stations.length;
1859
+ }
1860
+ [Symbol.iterator]() {
1861
+ return this.stations[Symbol.iterator]();
1862
+ }
1863
+ };
1864
+ var CATALOG = new StationCatalog();
1865
+
1465
1866
  // src/internal/http.ts
1466
1867
  var DEFAULT_BASE_DELAY_MS = 1e3;
1467
1868
  var DEFAULT_MAX_RETRIES = 3;