mostlyright 1.1.3 → 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.
@@ -6,15 +6,22 @@ import {
6
6
  var src_exports = {};
7
7
  __export(src_exports, {
8
8
  AuthenticationError: () => AuthenticationError,
9
+ CATALOG: () => CATALOG,
9
10
  CLIMATE_REPORT_TYPE_PRIORITY: () => CLIMATE_REPORT_TYPE_PRIORITY,
11
+ DATA_AVAILABILITY_REASONS: () => DATA_AVAILABILITY_REASONS,
12
+ DataAvailabilityError: () => DataAvailabilityError,
10
13
  DeferredMarketError: () => DeferredMarketError,
11
14
  ForbiddenError: () => ForbiddenError,
15
+ IssuedAtMissingError: () => IssuedAtMissingError,
12
16
  LIVE_V1_POLICY: () => LIVE_V1_POLICY,
13
17
  LeakageError: () => LeakageError,
14
18
  LiveStreamError: () => LiveStreamError,
19
+ MostlyRightError: () => MostlyRightError,
15
20
  NoLiveDataError: () => NoLiveDataError,
16
21
  NotFoundError: () => NotFoundError,
22
+ NwpNotAvailableError: () => NwpNotAvailableError,
17
23
  OBSERVATION_SOURCE_PRIORITY: () => OBSERVATION_SOURCE_PRIORITY,
24
+ OpenMeteoSeamlessLeakageError: () => OpenMeteoSeamlessLeakageError,
18
25
  PayloadTooLargeError: () => PayloadTooLargeError,
19
26
  PolymarketEventError: () => PolymarketEventError,
20
27
  QC_ALPHA_RULES: () => QC_ALPHA_RULES,
@@ -27,9 +34,9 @@ __export(src_exports, {
27
34
  ServerError: () => ServerError,
28
35
  SourceMismatchError: () => SourceMismatchError,
29
36
  SourceUnavailableError: () => SourceUnavailableError,
37
+ StationCatalog: () => StationCatalog,
30
38
  TemporalDriftError: () => TemporalDriftError,
31
39
  TherminalError: () => TherminalError,
32
- TradewindsError: () => TradewindsError,
33
40
  ValidationError: () => ValidationError,
34
41
  _CLI_PUBLICATION_DELAY_HOURS: () => _CLI_PUBLICATION_DELAY_HOURS,
35
42
  _JAN_REF: () => _JAN_REF,
@@ -58,7 +65,10 @@ var STATIONS = [
58
65
  latitude: 52.3667,
59
66
  longitude: 13.5033,
60
67
  name: "Berlin Brandenburg",
61
- tz: "Europe/Berlin"
68
+ tz: "Europe/Berlin",
69
+ venues: [
70
+ "polymarket"
71
+ ]
62
72
  },
63
73
  {
64
74
  code: "EDDF",
@@ -68,7 +78,10 @@ var STATIONS = [
68
78
  latitude: 50.0379,
69
79
  longitude: 8.5622,
70
80
  name: "Frankfurt am Main",
71
- tz: "Europe/Berlin"
81
+ tz: "Europe/Berlin",
82
+ venues: [
83
+ "polymarket"
84
+ ]
72
85
  },
73
86
  {
74
87
  code: "EDDM",
@@ -78,7 +91,10 @@ var STATIONS = [
78
91
  latitude: 48.3538,
79
92
  longitude: 11.7861,
80
93
  name: "Munich Franz Josef Strauss",
81
- tz: "Europe/Berlin"
94
+ tz: "Europe/Berlin",
95
+ venues: [
96
+ "polymarket"
97
+ ]
82
98
  },
83
99
  {
84
100
  code: "EFHK",
@@ -88,7 +104,10 @@ var STATIONS = [
88
104
  latitude: 60.3172,
89
105
  longitude: 24.9633,
90
106
  name: "Helsinki-Vantaa",
91
- tz: "Europe/Helsinki"
107
+ tz: "Europe/Helsinki",
108
+ venues: [
109
+ "polymarket"
110
+ ]
92
111
  },
93
112
  {
94
113
  code: "EGKK",
@@ -98,7 +117,10 @@ var STATIONS = [
98
117
  latitude: 51.1481,
99
118
  longitude: -0.1903,
100
119
  name: "London Gatwick",
101
- tz: "Europe/London"
120
+ tz: "Europe/London",
121
+ venues: [
122
+ "polymarket"
123
+ ]
102
124
  },
103
125
  {
104
126
  code: "EGLL",
@@ -108,7 +130,10 @@ var STATIONS = [
108
130
  latitude: 51.4706,
109
131
  longitude: -0.4619,
110
132
  name: "London Heathrow",
111
- tz: "Europe/London"
133
+ tz: "Europe/London",
134
+ venues: [
135
+ "polymarket"
136
+ ]
112
137
  },
113
138
  {
114
139
  code: "EHAM",
@@ -118,7 +143,10 @@ var STATIONS = [
118
143
  latitude: 52.3086,
119
144
  longitude: 4.7639,
120
145
  name: "Amsterdam Schiphol",
121
- tz: "Europe/Amsterdam"
146
+ tz: "Europe/Amsterdam",
147
+ venues: [
148
+ "polymarket"
149
+ ]
122
150
  },
123
151
  {
124
152
  code: "EKCH",
@@ -128,7 +156,10 @@ var STATIONS = [
128
156
  latitude: 55.6181,
129
157
  longitude: 12.6561,
130
158
  name: "Copenhagen Kastrup",
131
- tz: "Europe/Copenhagen"
159
+ tz: "Europe/Copenhagen",
160
+ venues: [
161
+ "polymarket"
162
+ ]
132
163
  },
133
164
  {
134
165
  code: "EPWA",
@@ -138,7 +169,10 @@ var STATIONS = [
138
169
  latitude: 52.1657,
139
170
  longitude: 20.9671,
140
171
  name: "Warsaw Chopin",
141
- tz: "Europe/Warsaw"
172
+ tz: "Europe/Warsaw",
173
+ venues: [
174
+ "polymarket"
175
+ ]
142
176
  },
143
177
  {
144
178
  code: "ESSA",
@@ -148,7 +182,10 @@ var STATIONS = [
148
182
  latitude: 59.6519,
149
183
  longitude: 17.9186,
150
184
  name: "Stockholm Arlanda",
151
- tz: "Europe/Stockholm"
185
+ tz: "Europe/Stockholm",
186
+ venues: [
187
+ "polymarket"
188
+ ]
152
189
  },
153
190
  {
154
191
  code: "ATL",
@@ -158,7 +195,11 @@ var STATIONS = [
158
195
  latitude: 33.6407,
159
196
  longitude: -84.4277,
160
197
  name: "Hartsfield-Jackson Atlanta International",
161
- tz: "America/New_York"
198
+ tz: "America/New_York",
199
+ venues: [
200
+ "kalshi",
201
+ "polymarket"
202
+ ]
162
203
  },
163
204
  {
164
205
  code: "AUS",
@@ -168,7 +209,24 @@ var STATIONS = [
168
209
  latitude: 30.1975,
169
210
  longitude: -97.6664,
170
211
  name: "Austin-Bergstrom International",
171
- tz: "America/Chicago"
212
+ tz: "America/Chicago",
213
+ venues: [
214
+ "kalshi",
215
+ "polymarket"
216
+ ]
217
+ },
218
+ {
219
+ code: "BNA",
220
+ country: "US",
221
+ ghcnh_id: "USW00013897",
222
+ icao: "KBNA",
223
+ latitude: 36.1245,
224
+ longitude: -86.6782,
225
+ name: "Nashville International",
226
+ tz: "America/Chicago",
227
+ venues: [
228
+ "kalshi"
229
+ ]
172
230
  },
173
231
  {
174
232
  code: "BOS",
@@ -178,7 +236,24 @@ var STATIONS = [
178
236
  latitude: 42.3656,
179
237
  longitude: -71.0096,
180
238
  name: "Boston Logan International",
181
- tz: "America/New_York"
239
+ tz: "America/New_York",
240
+ venues: [
241
+ "kalshi",
242
+ "polymarket"
243
+ ]
244
+ },
245
+ {
246
+ code: "CVG",
247
+ country: "US",
248
+ ghcnh_id: "USW00093814",
249
+ icao: "KCVG",
250
+ latitude: 39.0488,
251
+ longitude: -84.6678,
252
+ name: "Cincinnati/Northern Kentucky International",
253
+ tz: "America/New_York",
254
+ venues: [
255
+ "kalshi"
256
+ ]
182
257
  },
183
258
  {
184
259
  code: "DCA",
@@ -188,7 +263,11 @@ var STATIONS = [
188
263
  latitude: 38.8512,
189
264
  longitude: -77.0402,
190
265
  name: "Washington Reagan National",
191
- tz: "America/New_York"
266
+ tz: "America/New_York",
267
+ venues: [
268
+ "kalshi",
269
+ "polymarket"
270
+ ]
192
271
  },
193
272
  {
194
273
  code: "DEN",
@@ -198,7 +277,11 @@ var STATIONS = [
198
277
  latitude: 39.8561,
199
278
  longitude: -104.6737,
200
279
  name: "Denver International",
201
- tz: "America/Denver"
280
+ tz: "America/Denver",
281
+ venues: [
282
+ "kalshi",
283
+ "polymarket"
284
+ ]
202
285
  },
203
286
  {
204
287
  code: "DFW",
@@ -208,7 +291,25 @@ var STATIONS = [
208
291
  latitude: 32.8998,
209
292
  longitude: -97.0403,
210
293
  name: "Dallas-Fort Worth International",
211
- tz: "America/Chicago"
294
+ tz: "America/Chicago",
295
+ venues: [
296
+ "kalshi",
297
+ "polymarket"
298
+ ]
299
+ },
300
+ {
301
+ code: "DTW",
302
+ country: "US",
303
+ ghcnh_id: "USW00094847",
304
+ icao: "KDTW",
305
+ latitude: 42.2124,
306
+ longitude: -83.3534,
307
+ name: "Detroit Metropolitan Wayne County",
308
+ tz: "America/New_York",
309
+ venues: [
310
+ "kalshi",
311
+ "polymarket"
312
+ ]
212
313
  },
213
314
  {
214
315
  code: "HOU",
@@ -218,7 +319,22 @@ var STATIONS = [
218
319
  latitude: 29.6454,
219
320
  longitude: -95.2789,
220
321
  name: "Houston Hobby",
221
- tz: "America/Chicago"
322
+ tz: "America/Chicago",
323
+ venues: []
324
+ },
325
+ {
326
+ code: "IAH",
327
+ country: "US",
328
+ ghcnh_id: "USW00012960",
329
+ icao: "KIAH",
330
+ latitude: 29.9844,
331
+ longitude: -95.3414,
332
+ name: "Houston George Bush Intercontinental",
333
+ tz: "America/Chicago",
334
+ venues: [
335
+ "kalshi",
336
+ "polymarket"
337
+ ]
222
338
  },
223
339
  {
224
340
  code: "LAS",
@@ -228,7 +344,10 @@ var STATIONS = [
228
344
  latitude: 36.084,
229
345
  longitude: -115.1537,
230
346
  name: "Harry Reid (McCarran) International",
231
- tz: "America/Los_Angeles"
347
+ tz: "America/Los_Angeles",
348
+ venues: [
349
+ "kalshi"
350
+ ]
232
351
  },
233
352
  {
234
353
  code: "LAX",
@@ -238,7 +357,11 @@ var STATIONS = [
238
357
  latitude: 33.9425,
239
358
  longitude: -118.4081,
240
359
  name: "Los Angeles International",
241
- tz: "America/Los_Angeles"
360
+ tz: "America/Los_Angeles",
361
+ venues: [
362
+ "kalshi",
363
+ "polymarket"
364
+ ]
242
365
  },
243
366
  {
244
367
  code: "MDW",
@@ -248,7 +371,10 @@ var STATIONS = [
248
371
  latitude: 41.7868,
249
372
  longitude: -87.7522,
250
373
  name: "Chicago Midway International",
251
- tz: "America/Chicago"
374
+ tz: "America/Chicago",
375
+ venues: [
376
+ "kalshi"
377
+ ]
252
378
  },
253
379
  {
254
380
  code: "MIA",
@@ -258,7 +384,11 @@ var STATIONS = [
258
384
  latitude: 25.7959,
259
385
  longitude: -80.287,
260
386
  name: "Miami International",
261
- tz: "America/New_York"
387
+ tz: "America/New_York",
388
+ venues: [
389
+ "kalshi",
390
+ "polymarket"
391
+ ]
262
392
  },
263
393
  {
264
394
  code: "MSP",
@@ -268,7 +398,11 @@ var STATIONS = [
268
398
  latitude: 44.8848,
269
399
  longitude: -93.2223,
270
400
  name: "Minneapolis-St Paul International",
271
- tz: "America/Chicago"
401
+ tz: "America/Chicago",
402
+ venues: [
403
+ "kalshi",
404
+ "polymarket"
405
+ ]
272
406
  },
273
407
  {
274
408
  code: "MSY",
@@ -278,7 +412,8 @@ var STATIONS = [
278
412
  latitude: 29.9934,
279
413
  longitude: -90.258,
280
414
  name: "New Orleans Louis Armstrong International",
281
- tz: "America/Chicago"
415
+ tz: "America/Chicago",
416
+ venues: []
282
417
  },
283
418
  {
284
419
  code: "NYC",
@@ -288,7 +423,10 @@ var STATIONS = [
288
423
  latitude: 40.7789,
289
424
  longitude: -73.9692,
290
425
  name: "Central Park, New York",
291
- tz: "America/New_York"
426
+ tz: "America/New_York",
427
+ venues: [
428
+ "kalshi"
429
+ ]
292
430
  },
293
431
  {
294
432
  code: "OKC",
@@ -298,7 +436,8 @@ var STATIONS = [
298
436
  latitude: 35.3931,
299
437
  longitude: -97.6007,
300
438
  name: "Oklahoma City Will Rogers World",
301
- tz: "America/Chicago"
439
+ tz: "America/Chicago",
440
+ venues: []
302
441
  },
303
442
  {
304
443
  code: "PHL",
@@ -308,7 +447,11 @@ var STATIONS = [
308
447
  latitude: 39.8721,
309
448
  longitude: -75.2411,
310
449
  name: "Philadelphia International",
311
- tz: "America/New_York"
450
+ tz: "America/New_York",
451
+ venues: [
452
+ "kalshi",
453
+ "polymarket"
454
+ ]
312
455
  },
313
456
  {
314
457
  code: "PHX",
@@ -318,7 +461,11 @@ var STATIONS = [
318
461
  latitude: 33.4373,
319
462
  longitude: -112.0078,
320
463
  name: "Phoenix Sky Harbor International",
321
- tz: "America/Phoenix"
464
+ tz: "America/Phoenix",
465
+ venues: [
466
+ "kalshi",
467
+ "polymarket"
468
+ ]
322
469
  },
323
470
  {
324
471
  code: "SAT",
@@ -328,7 +475,8 @@ var STATIONS = [
328
475
  latitude: 29.5337,
329
476
  longitude: -98.4698,
330
477
  name: "San Antonio International",
331
- tz: "America/Chicago"
478
+ tz: "America/Chicago",
479
+ venues: []
332
480
  },
333
481
  {
334
482
  code: "SEA",
@@ -338,7 +486,11 @@ var STATIONS = [
338
486
  latitude: 47.4502,
339
487
  longitude: -122.3088,
340
488
  name: "Seattle-Tacoma International",
341
- tz: "America/Los_Angeles"
489
+ tz: "America/Los_Angeles",
490
+ venues: [
491
+ "kalshi",
492
+ "polymarket"
493
+ ]
342
494
  },
343
495
  {
344
496
  code: "SFO",
@@ -348,7 +500,24 @@ var STATIONS = [
348
500
  latitude: 37.6213,
349
501
  longitude: -122.379,
350
502
  name: "San Francisco International",
351
- tz: "America/Los_Angeles"
503
+ tz: "America/Los_Angeles",
504
+ venues: [
505
+ "kalshi",
506
+ "polymarket"
507
+ ]
508
+ },
509
+ {
510
+ code: "SLC",
511
+ country: "US",
512
+ ghcnh_id: "USW00024127",
513
+ icao: "KSLC",
514
+ latitude: 40.7884,
515
+ longitude: -111.9778,
516
+ name: "Salt Lake City International",
517
+ tz: "America/Denver",
518
+ venues: [
519
+ "kalshi"
520
+ ]
352
521
  },
353
522
  {
354
523
  code: "LEBL",
@@ -358,7 +527,10 @@ var STATIONS = [
358
527
  latitude: 41.2974,
359
528
  longitude: 2.0833,
360
529
  name: "Barcelona El Prat",
361
- tz: "Europe/Madrid"
530
+ tz: "Europe/Madrid",
531
+ venues: [
532
+ "polymarket"
533
+ ]
362
534
  },
363
535
  {
364
536
  code: "LEMD",
@@ -368,7 +540,10 @@ var STATIONS = [
368
540
  latitude: 40.4719,
369
541
  longitude: -3.5626,
370
542
  name: "Madrid Barajas",
371
- tz: "Europe/Madrid"
543
+ tz: "Europe/Madrid",
544
+ venues: [
545
+ "polymarket"
546
+ ]
372
547
  },
373
548
  {
374
549
  code: "LFPB",
@@ -378,7 +553,10 @@ var STATIONS = [
378
553
  latitude: 48.9694,
379
554
  longitude: 2.4414,
380
555
  name: "Paris Le Bourget",
381
- tz: "Europe/Paris"
556
+ tz: "Europe/Paris",
557
+ venues: [
558
+ "polymarket"
559
+ ]
382
560
  },
383
561
  {
384
562
  code: "LFPG",
@@ -388,7 +566,10 @@ var STATIONS = [
388
566
  latitude: 49.0097,
389
567
  longitude: 2.5479,
390
568
  name: "Paris Charles de Gaulle",
391
- tz: "Europe/Paris"
569
+ tz: "Europe/Paris",
570
+ venues: [
571
+ "polymarket"
572
+ ]
392
573
  },
393
574
  {
394
575
  code: "LFPO",
@@ -398,7 +579,10 @@ var STATIONS = [
398
579
  latitude: 48.7233,
399
580
  longitude: 2.3794,
400
581
  name: "Paris Orly",
401
- tz: "Europe/Paris"
582
+ tz: "Europe/Paris",
583
+ venues: [
584
+ "polymarket"
585
+ ]
402
586
  },
403
587
  {
404
588
  code: "LIMC",
@@ -408,7 +592,10 @@ var STATIONS = [
408
592
  latitude: 45.6306,
409
593
  longitude: 8.7281,
410
594
  name: "Milan Malpensa",
411
- tz: "Europe/Rome"
595
+ tz: "Europe/Rome",
596
+ venues: [
597
+ "polymarket"
598
+ ]
412
599
  },
413
600
  {
414
601
  code: "LIRF",
@@ -418,7 +605,10 @@ var STATIONS = [
418
605
  latitude: 41.8003,
419
606
  longitude: 12.2389,
420
607
  name: "Rome Fiumicino",
421
- tz: "Europe/Rome"
608
+ tz: "Europe/Rome",
609
+ venues: [
610
+ "polymarket"
611
+ ]
422
612
  },
423
613
  {
424
614
  code: "LOWW",
@@ -428,7 +618,10 @@ var STATIONS = [
428
618
  latitude: 48.1103,
429
619
  longitude: 16.5697,
430
620
  name: "Vienna International",
431
- tz: "Europe/Vienna"
621
+ tz: "Europe/Vienna",
622
+ venues: [
623
+ "polymarket"
624
+ ]
432
625
  },
433
626
  {
434
627
  code: "LSZH",
@@ -438,7 +631,10 @@ var STATIONS = [
438
631
  latitude: 47.4647,
439
632
  longitude: 8.5492,
440
633
  name: "Zurich",
441
- tz: "Europe/Zurich"
634
+ tz: "Europe/Zurich",
635
+ venues: [
636
+ "polymarket"
637
+ ]
442
638
  },
443
639
  {
444
640
  code: "NZAA",
@@ -448,7 +644,10 @@ var STATIONS = [
448
644
  latitude: -37.0081,
449
645
  longitude: 174.7917,
450
646
  name: "Auckland",
451
- tz: "Pacific/Auckland"
647
+ tz: "Pacific/Auckland",
648
+ venues: [
649
+ "polymarket"
650
+ ]
452
651
  },
453
652
  {
454
653
  code: "NZWN",
@@ -458,7 +657,10 @@ var STATIONS = [
458
657
  latitude: -41.3272,
459
658
  longitude: 174.8053,
460
659
  name: "Wellington",
461
- tz: "Pacific/Auckland"
660
+ tz: "Pacific/Auckland",
661
+ venues: [
662
+ "polymarket"
663
+ ]
462
664
  },
463
665
  {
464
666
  code: "OERK",
@@ -468,7 +670,10 @@ var STATIONS = [
468
670
  latitude: 24.9576,
469
671
  longitude: 46.6988,
470
672
  name: "Riyadh King Khalid International",
471
- tz: "Asia/Riyadh"
673
+ tz: "Asia/Riyadh",
674
+ venues: [
675
+ "polymarket"
676
+ ]
472
677
  },
473
678
  {
474
679
  code: "OMDB",
@@ -478,7 +683,10 @@ var STATIONS = [
478
683
  latitude: 25.2532,
479
684
  longitude: 55.3657,
480
685
  name: "Dubai International",
481
- tz: "Asia/Dubai"
686
+ tz: "Asia/Dubai",
687
+ venues: [
688
+ "polymarket"
689
+ ]
482
690
  },
483
691
  {
484
692
  code: "OTHH",
@@ -488,7 +696,10 @@ var STATIONS = [
488
696
  latitude: 25.2731,
489
697
  longitude: 51.608,
490
698
  name: "Doha Hamad International",
491
- tz: "Asia/Qatar"
699
+ tz: "Asia/Qatar",
700
+ venues: [
701
+ "polymarket"
702
+ ]
492
703
  },
493
704
  {
494
705
  code: "RCTP",
@@ -498,7 +709,10 @@ var STATIONS = [
498
709
  latitude: 25.0777,
499
710
  longitude: 121.2328,
500
711
  name: "Taipei Taoyuan",
501
- tz: "Asia/Taipei"
712
+ tz: "Asia/Taipei",
713
+ venues: [
714
+ "polymarket"
715
+ ]
502
716
  },
503
717
  {
504
718
  code: "RJAA",
@@ -508,7 +722,10 @@ var STATIONS = [
508
722
  latitude: 35.7647,
509
723
  longitude: 140.3864,
510
724
  name: "Tokyo Narita",
511
- tz: "Asia/Tokyo"
725
+ tz: "Asia/Tokyo",
726
+ venues: [
727
+ "polymarket"
728
+ ]
512
729
  },
513
730
  {
514
731
  code: "RJTT",
@@ -518,7 +735,10 @@ var STATIONS = [
518
735
  latitude: 35.5522,
519
736
  longitude: 139.78,
520
737
  name: "Tokyo Haneda",
521
- tz: "Asia/Tokyo"
738
+ tz: "Asia/Tokyo",
739
+ venues: [
740
+ "polymarket"
741
+ ]
522
742
  },
523
743
  {
524
744
  code: "RKSI",
@@ -528,7 +748,10 @@ var STATIONS = [
528
748
  latitude: 37.4691,
529
749
  longitude: 126.4505,
530
750
  name: "Seoul Incheon",
531
- tz: "Asia/Seoul"
751
+ tz: "Asia/Seoul",
752
+ venues: [
753
+ "polymarket"
754
+ ]
532
755
  },
533
756
  {
534
757
  code: "SAEZ",
@@ -538,7 +761,10 @@ var STATIONS = [
538
761
  latitude: -34.8222,
539
762
  longitude: -58.5358,
540
763
  name: "Buenos Aires Ezeiza",
541
- tz: "America/Argentina/Buenos_Aires"
764
+ tz: "America/Argentina/Buenos_Aires",
765
+ venues: [
766
+ "polymarket"
767
+ ]
542
768
  },
543
769
  {
544
770
  code: "SBGR",
@@ -548,7 +774,10 @@ var STATIONS = [
548
774
  latitude: -23.4356,
549
775
  longitude: -46.4731,
550
776
  name: "S\xE3o Paulo Guarulhos",
551
- tz: "America/Sao_Paulo"
777
+ tz: "America/Sao_Paulo",
778
+ venues: [
779
+ "polymarket"
780
+ ]
552
781
  },
553
782
  {
554
783
  code: "UUEE",
@@ -558,7 +787,10 @@ var STATIONS = [
558
787
  latitude: 55.9728,
559
788
  longitude: 37.4147,
560
789
  name: "Moscow Sheremetyevo",
561
- tz: "Europe/Moscow"
790
+ tz: "Europe/Moscow",
791
+ venues: [
792
+ "polymarket"
793
+ ]
562
794
  },
563
795
  {
564
796
  code: "VABB",
@@ -568,7 +800,10 @@ var STATIONS = [
568
800
  latitude: 19.0887,
569
801
  longitude: 72.8679,
570
802
  name: "Mumbai Chhatrapati Shivaji",
571
- tz: "Asia/Kolkata"
803
+ tz: "Asia/Kolkata",
804
+ venues: [
805
+ "polymarket"
806
+ ]
572
807
  },
573
808
  {
574
809
  code: "VHHH",
@@ -578,7 +813,10 @@ var STATIONS = [
578
813
  latitude: 22.308,
579
814
  longitude: 113.9185,
580
815
  name: "Hong Kong International",
581
- tz: "Asia/Hong_Kong"
816
+ tz: "Asia/Hong_Kong",
817
+ venues: [
818
+ "polymarket"
819
+ ]
582
820
  },
583
821
  {
584
822
  code: "VIDP",
@@ -588,7 +826,10 @@ var STATIONS = [
588
826
  latitude: 28.5562,
589
827
  longitude: 77.1,
590
828
  name: "Delhi Indira Gandhi",
591
- tz: "Asia/Kolkata"
829
+ tz: "Asia/Kolkata",
830
+ venues: [
831
+ "polymarket"
832
+ ]
592
833
  },
593
834
  {
594
835
  code: "VTBS",
@@ -598,7 +839,10 @@ var STATIONS = [
598
839
  latitude: 13.69,
599
840
  longitude: 100.7501,
600
841
  name: "Bangkok Suvarnabhumi",
601
- tz: "Asia/Bangkok"
842
+ tz: "Asia/Bangkok",
843
+ venues: [
844
+ "polymarket"
845
+ ]
602
846
  },
603
847
  {
604
848
  code: "WSSS",
@@ -608,7 +852,10 @@ var STATIONS = [
608
852
  latitude: 1.3644,
609
853
  longitude: 103.9915,
610
854
  name: "Singapore Changi",
611
- tz: "Asia/Singapore"
855
+ tz: "Asia/Singapore",
856
+ venues: [
857
+ "polymarket"
858
+ ]
612
859
  },
613
860
  {
614
861
  code: "YBBN",
@@ -618,7 +865,10 @@ var STATIONS = [
618
865
  latitude: -27.3842,
619
866
  longitude: 153.1175,
620
867
  name: "Brisbane",
621
- tz: "Australia/Brisbane"
868
+ tz: "Australia/Brisbane",
869
+ venues: [
870
+ "polymarket"
871
+ ]
622
872
  },
623
873
  {
624
874
  code: "YMML",
@@ -628,7 +878,10 @@ var STATIONS = [
628
878
  latitude: -37.6733,
629
879
  longitude: 144.8433,
630
880
  name: "Melbourne Tullamarine",
631
- tz: "Australia/Melbourne"
881
+ tz: "Australia/Melbourne",
882
+ venues: [
883
+ "polymarket"
884
+ ]
632
885
  },
633
886
  {
634
887
  code: "YSSY",
@@ -638,7 +891,10 @@ var STATIONS = [
638
891
  latitude: -33.9461,
639
892
  longitude: 151.1772,
640
893
  name: "Sydney Kingsford Smith",
641
- tz: "Australia/Sydney"
894
+ tz: "Australia/Sydney",
895
+ venues: [
896
+ "polymarket"
897
+ ]
642
898
  },
643
899
  {
644
900
  code: "ZBAA",
@@ -648,7 +904,10 @@ var STATIONS = [
648
904
  latitude: 40.0801,
649
905
  longitude: 116.5846,
650
906
  name: "Beijing Capital",
651
- tz: "Asia/Shanghai"
907
+ tz: "Asia/Shanghai",
908
+ venues: [
909
+ "polymarket"
910
+ ]
652
911
  },
653
912
  {
654
913
  code: "ZSPD",
@@ -658,16 +917,22 @@ var STATIONS = [
658
917
  latitude: 31.1443,
659
918
  longitude: 121.8083,
660
919
  name: "Shanghai Pudong",
661
- tz: "Asia/Shanghai"
920
+ tz: "Asia/Shanghai",
921
+ venues: [
922
+ "polymarket"
923
+ ]
662
924
  }
663
925
  ];
664
926
  var STATION_BY_CODE = /* @__PURE__ */ new Map([
665
927
  ["ATL", STATIONS[10]],
666
928
  ["AUS", STATIONS[11]],
667
- ["BOS", STATIONS[12]],
668
- ["DCA", STATIONS[13]],
669
- ["DEN", STATIONS[14]],
670
- ["DFW", STATIONS[15]],
929
+ ["BNA", STATIONS[12]],
930
+ ["BOS", STATIONS[13]],
931
+ ["CVG", STATIONS[14]],
932
+ ["DCA", STATIONS[15]],
933
+ ["DEN", STATIONS[16]],
934
+ ["DFW", STATIONS[17]],
935
+ ["DTW", STATIONS[18]],
671
936
  ["EDDB", STATIONS[0]],
672
937
  ["EDDF", STATIONS[1]],
673
938
  ["EDDM", STATIONS[2]],
@@ -678,51 +943,53 @@ var STATION_BY_CODE = /* @__PURE__ */ new Map([
678
943
  ["EKCH", STATIONS[7]],
679
944
  ["EPWA", STATIONS[8]],
680
945
  ["ESSA", STATIONS[9]],
681
- ["HOU", STATIONS[16]],
682
- ["LAS", STATIONS[17]],
683
- ["LAX", STATIONS[18]],
684
- ["LEBL", STATIONS[30]],
685
- ["LEMD", STATIONS[31]],
686
- ["LFPB", STATIONS[32]],
687
- ["LFPG", STATIONS[33]],
688
- ["LFPO", STATIONS[34]],
689
- ["LIMC", STATIONS[35]],
690
- ["LIRF", STATIONS[36]],
691
- ["LOWW", STATIONS[37]],
692
- ["LSZH", STATIONS[38]],
693
- ["MDW", STATIONS[19]],
694
- ["MIA", STATIONS[20]],
695
- ["MSP", STATIONS[21]],
696
- ["MSY", STATIONS[22]],
697
- ["NYC", STATIONS[23]],
698
- ["NZAA", STATIONS[39]],
699
- ["NZWN", STATIONS[40]],
700
- ["OERK", STATIONS[41]],
701
- ["OKC", STATIONS[24]],
702
- ["OMDB", STATIONS[42]],
703
- ["OTHH", STATIONS[43]],
704
- ["PHL", STATIONS[25]],
705
- ["PHX", STATIONS[26]],
706
- ["RCTP", STATIONS[44]],
707
- ["RJAA", STATIONS[45]],
708
- ["RJTT", STATIONS[46]],
709
- ["RKSI", STATIONS[47]],
710
- ["SAEZ", STATIONS[48]],
711
- ["SAT", STATIONS[27]],
712
- ["SBGR", STATIONS[49]],
713
- ["SEA", STATIONS[28]],
714
- ["SFO", STATIONS[29]],
715
- ["UUEE", STATIONS[50]],
716
- ["VABB", STATIONS[51]],
717
- ["VHHH", STATIONS[52]],
718
- ["VIDP", STATIONS[53]],
719
- ["VTBS", STATIONS[54]],
720
- ["WSSS", STATIONS[55]],
721
- ["YBBN", STATIONS[56]],
722
- ["YMML", STATIONS[57]],
723
- ["YSSY", STATIONS[58]],
724
- ["ZBAA", STATIONS[59]],
725
- ["ZSPD", STATIONS[60]]
946
+ ["HOU", STATIONS[19]],
947
+ ["IAH", STATIONS[20]],
948
+ ["LAS", STATIONS[21]],
949
+ ["LAX", STATIONS[22]],
950
+ ["LEBL", STATIONS[35]],
951
+ ["LEMD", STATIONS[36]],
952
+ ["LFPB", STATIONS[37]],
953
+ ["LFPG", STATIONS[38]],
954
+ ["LFPO", STATIONS[39]],
955
+ ["LIMC", STATIONS[40]],
956
+ ["LIRF", STATIONS[41]],
957
+ ["LOWW", STATIONS[42]],
958
+ ["LSZH", STATIONS[43]],
959
+ ["MDW", STATIONS[23]],
960
+ ["MIA", STATIONS[24]],
961
+ ["MSP", STATIONS[25]],
962
+ ["MSY", STATIONS[26]],
963
+ ["NYC", STATIONS[27]],
964
+ ["NZAA", STATIONS[44]],
965
+ ["NZWN", STATIONS[45]],
966
+ ["OERK", STATIONS[46]],
967
+ ["OKC", STATIONS[28]],
968
+ ["OMDB", STATIONS[47]],
969
+ ["OTHH", STATIONS[48]],
970
+ ["PHL", STATIONS[29]],
971
+ ["PHX", STATIONS[30]],
972
+ ["RCTP", STATIONS[49]],
973
+ ["RJAA", STATIONS[50]],
974
+ ["RJTT", STATIONS[51]],
975
+ ["RKSI", STATIONS[52]],
976
+ ["SAEZ", STATIONS[53]],
977
+ ["SAT", STATIONS[31]],
978
+ ["SBGR", STATIONS[54]],
979
+ ["SEA", STATIONS[32]],
980
+ ["SFO", STATIONS[33]],
981
+ ["SLC", STATIONS[34]],
982
+ ["UUEE", STATIONS[55]],
983
+ ["VABB", STATIONS[56]],
984
+ ["VHHH", STATIONS[57]],
985
+ ["VIDP", STATIONS[58]],
986
+ ["VTBS", STATIONS[59]],
987
+ ["WSSS", STATIONS[60]],
988
+ ["YBBN", STATIONS[61]],
989
+ ["YMML", STATIONS[62]],
990
+ ["YSSY", STATIONS[63]],
991
+ ["ZBAA", STATIONS[64]],
992
+ ["ZSPD", STATIONS[65]]
726
993
  ]);
727
994
  var STATION_BY_ICAO = /* @__PURE__ */ new Map([
728
995
  ["EDDB", STATIONS[0]],
@@ -737,55 +1004,60 @@ var STATION_BY_ICAO = /* @__PURE__ */ new Map([
737
1004
  ["ESSA", STATIONS[9]],
738
1005
  ["KATL", STATIONS[10]],
739
1006
  ["KAUS", STATIONS[11]],
740
- ["KBOS", STATIONS[12]],
741
- ["KDCA", STATIONS[13]],
742
- ["KDEN", STATIONS[14]],
743
- ["KDFW", STATIONS[15]],
744
- ["KHOU", STATIONS[16]],
745
- ["KLAS", STATIONS[17]],
746
- ["KLAX", STATIONS[18]],
747
- ["KMDW", STATIONS[19]],
748
- ["KMIA", STATIONS[20]],
749
- ["KMSP", STATIONS[21]],
750
- ["KMSY", STATIONS[22]],
751
- ["KNYC", STATIONS[23]],
752
- ["KOKC", STATIONS[24]],
753
- ["KPHL", STATIONS[25]],
754
- ["KPHX", STATIONS[26]],
755
- ["KSAT", STATIONS[27]],
756
- ["KSEA", STATIONS[28]],
757
- ["KSFO", STATIONS[29]],
758
- ["LEBL", STATIONS[30]],
759
- ["LEMD", STATIONS[31]],
760
- ["LFPB", STATIONS[32]],
761
- ["LFPG", STATIONS[33]],
762
- ["LFPO", STATIONS[34]],
763
- ["LIMC", STATIONS[35]],
764
- ["LIRF", STATIONS[36]],
765
- ["LOWW", STATIONS[37]],
766
- ["LSZH", STATIONS[38]],
767
- ["NZAA", STATIONS[39]],
768
- ["NZWN", STATIONS[40]],
769
- ["OERK", STATIONS[41]],
770
- ["OMDB", STATIONS[42]],
771
- ["OTHH", STATIONS[43]],
772
- ["RCTP", STATIONS[44]],
773
- ["RJAA", STATIONS[45]],
774
- ["RJTT", STATIONS[46]],
775
- ["RKSI", STATIONS[47]],
776
- ["SAEZ", STATIONS[48]],
777
- ["SBGR", STATIONS[49]],
778
- ["UUEE", STATIONS[50]],
779
- ["VABB", STATIONS[51]],
780
- ["VHHH", STATIONS[52]],
781
- ["VIDP", STATIONS[53]],
782
- ["VTBS", STATIONS[54]],
783
- ["WSSS", STATIONS[55]],
784
- ["YBBN", STATIONS[56]],
785
- ["YMML", STATIONS[57]],
786
- ["YSSY", STATIONS[58]],
787
- ["ZBAA", STATIONS[59]],
788
- ["ZSPD", STATIONS[60]]
1007
+ ["KBNA", STATIONS[12]],
1008
+ ["KBOS", STATIONS[13]],
1009
+ ["KCVG", STATIONS[14]],
1010
+ ["KDCA", STATIONS[15]],
1011
+ ["KDEN", STATIONS[16]],
1012
+ ["KDFW", STATIONS[17]],
1013
+ ["KDTW", STATIONS[18]],
1014
+ ["KHOU", STATIONS[19]],
1015
+ ["KIAH", STATIONS[20]],
1016
+ ["KLAS", STATIONS[21]],
1017
+ ["KLAX", STATIONS[22]],
1018
+ ["KMDW", STATIONS[23]],
1019
+ ["KMIA", STATIONS[24]],
1020
+ ["KMSP", STATIONS[25]],
1021
+ ["KMSY", STATIONS[26]],
1022
+ ["KNYC", STATIONS[27]],
1023
+ ["KOKC", STATIONS[28]],
1024
+ ["KPHL", STATIONS[29]],
1025
+ ["KPHX", STATIONS[30]],
1026
+ ["KSAT", STATIONS[31]],
1027
+ ["KSEA", STATIONS[32]],
1028
+ ["KSFO", STATIONS[33]],
1029
+ ["KSLC", STATIONS[34]],
1030
+ ["LEBL", STATIONS[35]],
1031
+ ["LEMD", STATIONS[36]],
1032
+ ["LFPB", STATIONS[37]],
1033
+ ["LFPG", STATIONS[38]],
1034
+ ["LFPO", STATIONS[39]],
1035
+ ["LIMC", STATIONS[40]],
1036
+ ["LIRF", STATIONS[41]],
1037
+ ["LOWW", STATIONS[42]],
1038
+ ["LSZH", STATIONS[43]],
1039
+ ["NZAA", STATIONS[44]],
1040
+ ["NZWN", STATIONS[45]],
1041
+ ["OERK", STATIONS[46]],
1042
+ ["OMDB", STATIONS[47]],
1043
+ ["OTHH", STATIONS[48]],
1044
+ ["RCTP", STATIONS[49]],
1045
+ ["RJAA", STATIONS[50]],
1046
+ ["RJTT", STATIONS[51]],
1047
+ ["RKSI", STATIONS[52]],
1048
+ ["SAEZ", STATIONS[53]],
1049
+ ["SBGR", STATIONS[54]],
1050
+ ["UUEE", STATIONS[55]],
1051
+ ["VABB", STATIONS[56]],
1052
+ ["VHHH", STATIONS[57]],
1053
+ ["VIDP", STATIONS[58]],
1054
+ ["VTBS", STATIONS[59]],
1055
+ ["WSSS", STATIONS[60]],
1056
+ ["YBBN", STATIONS[61]],
1057
+ ["YMML", STATIONS[62]],
1058
+ ["YSSY", STATIONS[63]],
1059
+ ["ZBAA", STATIONS[64]],
1060
+ ["ZSPD", STATIONS[65]]
789
1061
  ]);
790
1062
 
791
1063
  // ../core/src/data/generated/source-priority.ts
@@ -914,9 +1186,9 @@ function toJsonSafe(value, seen) {
914
1186
  }
915
1187
  return { _repr_only: true, value: String(value) };
916
1188
  }
917
- var TradewindsError = class extends Error {
1189
+ var MostlyRightError = class extends Error {
918
1190
  /** Subclass override — the stable string enum surfaced via `errorCode`. */
919
- static defaultErrorCode = "TRADEWINDS_ERROR";
1191
+ static defaultErrorCode = "MOSTLYRIGHT_ERROR";
920
1192
  errorCode;
921
1193
  source;
922
1194
  requestId;
@@ -948,7 +1220,7 @@ var TradewindsError = class extends Error {
948
1220
  return safe;
949
1221
  }
950
1222
  };
951
- var SourceUnavailableError = class extends TradewindsError {
1223
+ var SourceUnavailableError = class extends MostlyRightError {
952
1224
  static defaultErrorCode = "SOURCE_UNAVAILABLE";
953
1225
  httpStatus;
954
1226
  retryable;
@@ -974,7 +1246,66 @@ var SourceUnavailableError = class extends TradewindsError {
974
1246
  };
975
1247
  }
976
1248
  };
977
- var SchemaValidationError = class extends TradewindsError {
1249
+ var DATA_AVAILABILITY_REASONS = [
1250
+ "model_unavailable",
1251
+ "out_of_window",
1252
+ "cache_miss",
1253
+ "source_404",
1254
+ "source_5xx",
1255
+ "rate_limited"
1256
+ ];
1257
+ var DataAvailabilityError = class extends MostlyRightError {
1258
+ static defaultErrorCode = "DATA_AVAILABILITY";
1259
+ reason;
1260
+ hint;
1261
+ constructor(options) {
1262
+ if (!DATA_AVAILABILITY_REASONS.includes(options.reason)) {
1263
+ throw new RangeError(
1264
+ `DataAvailabilityError: unknown reason "${String(options.reason)}". Valid reasons: ${DATA_AVAILABILITY_REASONS.join(", ")}`
1265
+ );
1266
+ }
1267
+ if (typeof options.hint !== "string" || options.hint.length === 0) {
1268
+ throw new TypeError("DataAvailabilityError: hint is required and must be a non-empty string");
1269
+ }
1270
+ const message = `[${options.reason}] ${options.hint}`;
1271
+ super(message, options);
1272
+ this.reason = options.reason;
1273
+ this.hint = options.hint;
1274
+ }
1275
+ payload() {
1276
+ return {
1277
+ ...super.payload(),
1278
+ reason: this.reason,
1279
+ hint: this.hint
1280
+ };
1281
+ }
1282
+ };
1283
+ var NwpNotAvailableError = class extends DataAvailabilityError {
1284
+ static defaultErrorCode = "NWP_NOT_AVAILABLE";
1285
+ station;
1286
+ model;
1287
+ constructor(options) {
1288
+ const parentOpts = {
1289
+ reason: "model_unavailable",
1290
+ hint: options.hint,
1291
+ source: options.source ?? `nwp.${options.model}`
1292
+ };
1293
+ if (options.requestId !== void 0 && options.requestId !== null) {
1294
+ parentOpts.requestId = options.requestId;
1295
+ }
1296
+ super(parentOpts);
1297
+ this.station = options.station;
1298
+ this.model = options.model;
1299
+ }
1300
+ payload() {
1301
+ return {
1302
+ ...super.payload(),
1303
+ station: this.station,
1304
+ model: this.model
1305
+ };
1306
+ }
1307
+ };
1308
+ var SchemaValidationError = class extends MostlyRightError {
978
1309
  static defaultErrorCode = "SCHEMA_VALIDATION_FAILED";
979
1310
  schemaId;
980
1311
  violations;
@@ -997,7 +1328,7 @@ var SchemaValidationError = class extends TradewindsError {
997
1328
  };
998
1329
  }
999
1330
  };
1000
- var SourceMismatchError = class extends TradewindsError {
1331
+ var SourceMismatchError = class extends MostlyRightError {
1001
1332
  static defaultErrorCode = "SOURCE_MISMATCH";
1002
1333
  /** Canonical role-name vocabulary (design.md §R). */
1003
1334
  static VALID_ROLES = /* @__PURE__ */ new Set([
@@ -1026,7 +1357,7 @@ var SourceMismatchError = class extends TradewindsError {
1026
1357
  };
1027
1358
  }
1028
1359
  };
1029
- var LeakageError = class extends TradewindsError {
1360
+ var LeakageError = class extends MostlyRightError {
1030
1361
  static defaultErrorCode = "LEAKAGE_DETECTED";
1031
1362
  asOf;
1032
1363
  violatingCount;
@@ -1046,7 +1377,50 @@ var LeakageError = class extends TradewindsError {
1046
1377
  };
1047
1378
  }
1048
1379
  };
1049
- var TemporalDriftError = class extends TradewindsError {
1380
+ var IssuedAtMissingError = class extends SchemaValidationError {
1381
+ static defaultErrorCode = "ISSUED_AT_MISSING";
1382
+ violatingCountRows;
1383
+ constructor(message, options = {}) {
1384
+ super(message, {
1385
+ ...options,
1386
+ schemaId: "schema.forecast.station.v1",
1387
+ violations: [{ column: "issued_at", rule: "non_null" }]
1388
+ });
1389
+ this.violatingCountRows = options.violatingCount ?? 0;
1390
+ }
1391
+ payload() {
1392
+ return {
1393
+ ...super.payload(),
1394
+ name: "IssuedAtMissingError",
1395
+ violating_count: this.violatingCountRows,
1396
+ origin_issue: "Tarabcak/mostlyright#70"
1397
+ };
1398
+ }
1399
+ };
1400
+ var OpenMeteoSeamlessLeakageError = class extends LeakageError {
1401
+ static defaultErrorCode = "OPEN_METEO_SEAMLESS_LEAKAGE";
1402
+ model;
1403
+ endpointUrl;
1404
+ constructor(message, options) {
1405
+ super(message, {
1406
+ ...options,
1407
+ asOf: options.asOf ?? "(seamless-endpoint-refused-before-fetch)",
1408
+ violatingCount: 0
1409
+ });
1410
+ this.model = options.model;
1411
+ this.endpointUrl = options.endpointUrl;
1412
+ }
1413
+ payload() {
1414
+ return {
1415
+ ...super.payload(),
1416
+ name: "OpenMeteoSeamlessLeakageError",
1417
+ model: this.model,
1418
+ endpoint_url: this.endpointUrl,
1419
+ origin_issue: "Tarabcak/mostlyright#70"
1420
+ };
1421
+ }
1422
+ };
1423
+ var TemporalDriftError = class extends MostlyRightError {
1050
1424
  static defaultErrorCode = "TEMPORAL_DRIFT";
1051
1425
  schemaId;
1052
1426
  assertedRange;
@@ -1069,7 +1443,7 @@ var TemporalDriftError = class extends TradewindsError {
1069
1443
  };
1070
1444
  }
1071
1445
  };
1072
- var PayloadTooLargeError = class extends TradewindsError {
1446
+ var PayloadTooLargeError = class extends MostlyRightError {
1073
1447
  static defaultErrorCode = "PAYLOAD_TOO_LARGE";
1074
1448
  declaredSize;
1075
1449
  limit;
@@ -1089,13 +1463,13 @@ var PayloadTooLargeError = class extends TradewindsError {
1089
1463
  };
1090
1464
  }
1091
1465
  };
1092
- var DeferredMarketError = class extends TradewindsError {
1466
+ var DeferredMarketError = class extends MostlyRightError {
1093
1467
  static defaultErrorCode = "DEFERRED_MARKET";
1094
1468
  };
1095
- var PolymarketEventError = class extends TradewindsError {
1469
+ var PolymarketEventError = class extends MostlyRightError {
1096
1470
  static defaultErrorCode = "POLYMARKET_EVENT_INVALID";
1097
1471
  };
1098
- var TherminalError = class extends TradewindsError {
1472
+ var TherminalError = class extends MostlyRightError {
1099
1473
  static defaultErrorCode = "HTTP_ERROR";
1100
1474
  statusCode;
1101
1475
  constructor(message, options = {}) {
@@ -1154,13 +1528,13 @@ var ServerError = class extends TherminalError {
1154
1528
  super(message, { ...options, statusCode: options.statusCode ?? 500 });
1155
1529
  }
1156
1530
  };
1157
- var LiveStreamError = class extends TradewindsError {
1531
+ var LiveStreamError = class extends MostlyRightError {
1158
1532
  static defaultErrorCode = "LIVE_STREAM_ERROR";
1159
1533
  };
1160
1534
  var NoLiveDataError = class extends LiveStreamError {
1161
1535
  static defaultErrorCode = "NO_LIVE_DATA";
1162
1536
  station;
1163
- constructor(message = "", options) {
1537
+ constructor(message, options) {
1164
1538
  super(message, { ...options, source: options.source });
1165
1539
  this.station = options.station;
1166
1540
  }
@@ -1410,6 +1784,69 @@ function marketCloseUtc(dateStr, station, tzOverride) {
1410
1784
  return new Date(marketCloseAsUtcMs - offsetHours * 36e5);
1411
1785
  }
1412
1786
 
1787
+ // ../core/src/stations/index.ts
1788
+ var StationCatalog = class {
1789
+ stations;
1790
+ byCode;
1791
+ byIcao;
1792
+ constructor(stations = STATIONS) {
1793
+ this.stations = stations;
1794
+ if (stations === STATIONS) {
1795
+ this.byCode = STATION_BY_CODE;
1796
+ this.byIcao = STATION_BY_ICAO;
1797
+ } else {
1798
+ const byCode = /* @__PURE__ */ new Map();
1799
+ const byIcao = /* @__PURE__ */ new Map();
1800
+ for (const s of stations) {
1801
+ if (s.code !== null) byCode.set(s.code, s);
1802
+ byIcao.set(s.icao, s);
1803
+ }
1804
+ this.byCode = byCode;
1805
+ this.byIcao = byIcao;
1806
+ }
1807
+ }
1808
+ /**
1809
+ * Return the station for `code` (registry code or ICAO).
1810
+ * @throws if no station matches.
1811
+ */
1812
+ get(code) {
1813
+ const station = this.byCode.get(code) ?? this.byIcao.get(code);
1814
+ if (station === void 0) {
1815
+ throw new Error(
1816
+ `Unknown station ${JSON.stringify(code)}. Expected a registry code (e.g. "NYC", "EGLL") or a 4-letter ICAO (e.g. "KNYC").`
1817
+ );
1818
+ }
1819
+ return station;
1820
+ }
1821
+ /** Stations tagged with `venue` (e.g. "kalshi"), sorted by ICAO. */
1822
+ filterByVenue(venue) {
1823
+ return this.stations.filter((s) => s.venues.includes(venue)).sort((a, b) => a.icao.localeCompare(b.icao));
1824
+ }
1825
+ /** Stations whose ISO 3166-1 alpha-2 `country` matches, sorted by ICAO. */
1826
+ filterByCountry(country) {
1827
+ return this.stations.filter((s) => s.country === country).sort((a, b) => a.icao.localeCompare(b.icao));
1828
+ }
1829
+ /** Union of all venue tags present in the catalog. */
1830
+ venues() {
1831
+ const out = /* @__PURE__ */ new Set();
1832
+ for (const s of this.stations) {
1833
+ for (const v of s.venues) out.add(v);
1834
+ }
1835
+ return out;
1836
+ }
1837
+ /** True iff `code` resolves to a station (by registry code or ICAO). */
1838
+ has(code) {
1839
+ return this.byCode.has(code) || this.byIcao.has(code);
1840
+ }
1841
+ get size() {
1842
+ return this.stations.length;
1843
+ }
1844
+ [Symbol.iterator]() {
1845
+ return this.stations[Symbol.iterator]();
1846
+ }
1847
+ };
1848
+ var CATALOG = new StationCatalog();
1849
+
1413
1850
  // ../core/src/internal/http.ts
1414
1851
  var DEFAULT_BASE_DELAY_MS = 1e3;
1415
1852
  var DEFAULT_MAX_RETRIES = 3;
@@ -1572,11 +2009,16 @@ export {
1572
2009
  QC_ALPHA_RULES,
1573
2010
  QC_ALPHA_RULES_BY_ID,
1574
2011
  toJsonSafe,
1575
- TradewindsError,
2012
+ MostlyRightError,
1576
2013
  SourceUnavailableError,
2014
+ DATA_AVAILABILITY_REASONS,
2015
+ DataAvailabilityError,
2016
+ NwpNotAvailableError,
1577
2017
  SchemaValidationError,
1578
2018
  SourceMismatchError,
1579
2019
  LeakageError,
2020
+ IssuedAtMissingError,
2021
+ OpenMeteoSeamlessLeakageError,
1580
2022
  TemporalDriftError,
1581
2023
  PayloadTooLargeError,
1582
2024
  DeferredMarketError,
@@ -1601,9 +2043,11 @@ export {
1601
2043
  settlementWindowUtc,
1602
2044
  cliAvailableAt,
1603
2045
  marketCloseUtc,
2046
+ StationCatalog,
2047
+ CATALOG,
1604
2048
  fetchWithRetry,
1605
2049
  version,
1606
2050
  helloCore,
1607
2051
  src_exports
1608
2052
  };
1609
- //# sourceMappingURL=chunk-IN2UOZYO.mjs.map
2053
+ //# sourceMappingURL=chunk-7XWX6QZG.mjs.map