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.
@@ -4,13 +4,15 @@ import {
4
4
  buildIemUrl,
5
5
  downloadIemAsos,
6
6
  yearlyChunksExclusiveEnd
7
- } from "./chunk-64FNXDHG.mjs";
7
+ } from "./chunk-TT6J2BKH.mjs";
8
8
  import {
9
9
  CLIMATE_REPORT_TYPE_PRIORITY,
10
10
  DataAvailabilityError,
11
11
  LiveStreamError,
12
12
  NoLiveDataError,
13
13
  NotFoundError,
14
+ NwpNotAvailableError,
15
+ OpenMeteoSeamlessLeakageError,
14
16
  STATIONS,
15
17
  STATION_BY_CODE,
16
18
  STATION_BY_ICAO,
@@ -20,7 +22,7 @@ import {
20
22
  helloCore,
21
23
  settlementDateFor,
22
24
  src_exports
23
- } from "./chunk-WKPNA46C.mjs";
25
+ } from "./chunk-7XWX6QZG.mjs";
24
26
  import {
25
27
  awcToObservation,
26
28
  celsiusToFahrenheit,
@@ -68,6 +70,11 @@ __export(src_exports2, {
68
70
  LiveStreamError: () => LiveStreamError,
69
71
  NCEI_POLITE_DELAY_MS: () => NCEI_POLITE_DELAY_MS,
70
72
  NoLiveDataError: () => NoLiveDataError,
73
+ OPEN_METEO_LIVE_URL: () => OPEN_METEO_LIVE_URL,
74
+ OPEN_METEO_MODELS: () => OPEN_METEO_MODELS,
75
+ OPEN_METEO_PREVIOUS_RUNS_URL: () => OPEN_METEO_PREVIOUS_RUNS_URL,
76
+ OPEN_METEO_SEAMLESS_URL: () => OPEN_METEO_SEAMLESS_URL,
77
+ OPEN_METEO_SINGLE_RUNS_URL: () => OPEN_METEO_SINGLE_RUNS_URL,
71
78
  POLITE_FLOORS_S: () => POLITE_FLOORS_S,
72
79
  SOURCE_IDENTITY_TAGS: () => SOURCE_IDENTITY_TAGS,
73
80
  SSID_COLUMNS: () => SSID_COLUMNS,
@@ -94,6 +101,7 @@ __export(src_exports2, {
94
101
  mapCloudCover: () => mapCloudCover,
95
102
  mergeClimate: () => mergeClimate,
96
103
  obs: () => obs,
104
+ openMeteoForecasts: () => openMeteoForecasts,
97
105
  parseAwcVisibility: () => parseAwcVisibility,
98
106
  parseCliRecord: () => parseCliRecord,
99
107
  parseCliResponse: () => parseCliResponse,
@@ -767,9 +775,9 @@ function previousDayIso(iso) {
767
775
  }
768
776
  async function fetchIemLatest(station) {
769
777
  const [{ fetchWithRetry: fetchWithRetry2 }, { STATION_CODE_RE: STATION_CODE_RE3 }, { buildIemUrl: buildIemUrl2 }, { parseIemCsv: parseIemCsv2 }] = await Promise.all([
770
- import("./src-BBELB6SP.mjs"),
778
+ import("./src-JXVFCGSQ.mjs"),
771
779
  import("./bounds-KSTXL77E.mjs"),
772
- import("./iem-asos-2D5EP2FT.mjs"),
780
+ import("./iem-asos-OLJNQPEM.mjs"),
773
781
  import("./iem-IO2HIL5V.mjs")
774
782
  ]);
775
783
  const icao = normalizeStation(station);
@@ -1017,16 +1025,378 @@ var IEM_MOS_COVERED_STATIONS = /* @__PURE__ */ new Set([
1017
1025
  function buildHint(station, model) {
1018
1026
  const hasMosCoverage = IEM_MOS_COVERED_STATIONS.has(station.toUpperCase());
1019
1027
  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.`;
1020
- 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.`;
1028
+ 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.`;
1021
1029
  }
1022
1030
  async function forecastNwp(station, model, _opts = {}) {
1023
- throw new DataAvailabilityError({
1024
- reason: "model_unavailable",
1025
- source: "nwp-stub",
1031
+ throw new NwpNotAvailableError({
1032
+ station,
1033
+ model,
1026
1034
  hint: buildHint(station, model)
1027
1035
  });
1028
1036
  }
1029
1037
 
1038
+ // ../weather/src/forecasts/open-meteo-models.ts
1039
+ var OPEN_METEO_MODELS = /* @__PURE__ */ new Set([
1040
+ // NCEP (8)
1041
+ "gfs_seamless",
1042
+ "gfs_global",
1043
+ "gfs_graphcast025",
1044
+ "aigfs025",
1045
+ "hgefs025",
1046
+ "ncep_hrrr_conus",
1047
+ "ncep_nbm_conus",
1048
+ "ncep_nam_conus",
1049
+ // ECMWF (3)
1050
+ "ecmwf_ifs025",
1051
+ "ecmwf_ifs_hres",
1052
+ "ecmwf_aifs025_single",
1053
+ // DWD (5)
1054
+ "dwd_icon_seamless",
1055
+ "dwd_icon_global",
1056
+ "dwd_icon_eu",
1057
+ "dwd_icon_d2",
1058
+ "dwd_icon_d2_15min",
1059
+ // Météo-France (6)
1060
+ "meteofrance_seamless",
1061
+ "meteofrance_arpege_world025",
1062
+ "meteofrance_arpege_europe",
1063
+ "meteofrance_arome_france0025",
1064
+ "meteofrance_arome_france_hd",
1065
+ "meteofrance_arome_france_hd_15min",
1066
+ // Asia + Oceania (8)
1067
+ "jma_seamless",
1068
+ "jma_gsm",
1069
+ "jma_msm",
1070
+ "kma_seamless",
1071
+ "kma_gdps",
1072
+ "kma_ldps",
1073
+ "cma_grapes_global",
1074
+ "bom_access_global",
1075
+ // Europe (3)
1076
+ "ukmo_global_deterministic_10km",
1077
+ "ukmo_uk_deterministic_2km",
1078
+ "metno_nordic_pp",
1079
+ // GEM Canada (3)
1080
+ "cmc_gem_gdps",
1081
+ "cmc_gem_rdps",
1082
+ "cmc_gem_hrdps"
1083
+ ]);
1084
+ var SIX_HOURLY = [0, 6, 12, 18];
1085
+ var THREE_HOURLY = [0, 3, 6, 9, 12, 15, 18, 21];
1086
+ var HOURLY = Array.from({ length: 24 }, (_, i) => i);
1087
+ var TWELVE_HOURLY = [0, 12];
1088
+ var CYCLE_HOURS = /* @__PURE__ */ new Map([
1089
+ // NCEP
1090
+ ["gfs_seamless", SIX_HOURLY],
1091
+ ["gfs_global", SIX_HOURLY],
1092
+ ["gfs_graphcast025", SIX_HOURLY],
1093
+ ["aigfs025", SIX_HOURLY],
1094
+ ["hgefs025", SIX_HOURLY],
1095
+ ["ncep_hrrr_conus", HOURLY],
1096
+ ["ncep_nbm_conus", HOURLY],
1097
+ ["ncep_nam_conus", SIX_HOURLY],
1098
+ // ECMWF
1099
+ ["ecmwf_ifs025", SIX_HOURLY],
1100
+ ["ecmwf_ifs_hres", SIX_HOURLY],
1101
+ ["ecmwf_aifs025_single", SIX_HOURLY],
1102
+ // DWD
1103
+ ["dwd_icon_seamless", SIX_HOURLY],
1104
+ ["dwd_icon_global", SIX_HOURLY],
1105
+ ["dwd_icon_eu", SIX_HOURLY],
1106
+ ["dwd_icon_d2", THREE_HOURLY],
1107
+ ["dwd_icon_d2_15min", THREE_HOURLY],
1108
+ // Météo-France
1109
+ ["meteofrance_seamless", SIX_HOURLY],
1110
+ ["meteofrance_arpege_world025", SIX_HOURLY],
1111
+ ["meteofrance_arpege_europe", SIX_HOURLY],
1112
+ ["meteofrance_arome_france0025", THREE_HOURLY],
1113
+ ["meteofrance_arome_france_hd", THREE_HOURLY],
1114
+ ["meteofrance_arome_france_hd_15min", THREE_HOURLY],
1115
+ // Asia + Oceania
1116
+ ["jma_seamless", SIX_HOURLY],
1117
+ ["jma_gsm", SIX_HOURLY],
1118
+ ["jma_msm", THREE_HOURLY],
1119
+ ["kma_seamless", SIX_HOURLY],
1120
+ ["kma_gdps", SIX_HOURLY],
1121
+ ["kma_ldps", THREE_HOURLY],
1122
+ ["cma_grapes_global", SIX_HOURLY],
1123
+ ["bom_access_global", SIX_HOURLY],
1124
+ // Europe
1125
+ ["ukmo_global_deterministic_10km", SIX_HOURLY],
1126
+ ["ukmo_uk_deterministic_2km", THREE_HOURLY],
1127
+ ["metno_nordic_pp", HOURLY],
1128
+ // GEM Canada
1129
+ ["cmc_gem_gdps", TWELVE_HOURLY],
1130
+ ["cmc_gem_rdps", SIX_HOURLY],
1131
+ ["cmc_gem_hrdps", SIX_HOURLY]
1132
+ ]);
1133
+ var PUBLISH_LAG_HOURS = /* @__PURE__ */ new Map([
1134
+ // NCEP — global 6h, regional/mesoscale 2h
1135
+ ["gfs_seamless", 6],
1136
+ ["gfs_global", 6],
1137
+ ["gfs_graphcast025", 6],
1138
+ ["aigfs025", 6],
1139
+ ["hgefs025", 6],
1140
+ ["ncep_hrrr_conus", 2],
1141
+ ["ncep_nbm_conus", 2],
1142
+ ["ncep_nam_conus", 2],
1143
+ // ECMWF — global 6h
1144
+ ["ecmwf_ifs025", 6],
1145
+ ["ecmwf_ifs_hres", 6],
1146
+ ["ecmwf_aifs025_single", 6],
1147
+ // DWD
1148
+ ["dwd_icon_seamless", 4],
1149
+ ["dwd_icon_global", 4],
1150
+ ["dwd_icon_eu", 4],
1151
+ ["dwd_icon_d2", 2],
1152
+ ["dwd_icon_d2_15min", 2],
1153
+ // Météo-France
1154
+ ["meteofrance_seamless", 4],
1155
+ ["meteofrance_arpege_world025", 6],
1156
+ ["meteofrance_arpege_europe", 4],
1157
+ ["meteofrance_arome_france0025", 2],
1158
+ ["meteofrance_arome_france_hd", 2],
1159
+ ["meteofrance_arome_france_hd_15min", 2],
1160
+ // Asia + Oceania
1161
+ ["jma_seamless", 6],
1162
+ ["jma_gsm", 6],
1163
+ ["jma_msm", 2],
1164
+ ["kma_seamless", 6],
1165
+ ["kma_gdps", 6],
1166
+ ["kma_ldps", 2],
1167
+ ["cma_grapes_global", 6],
1168
+ ["bom_access_global", 6],
1169
+ // Europe
1170
+ ["ukmo_global_deterministic_10km", 6],
1171
+ ["ukmo_uk_deterministic_2km", 2],
1172
+ ["metno_nordic_pp", 2],
1173
+ // GEM Canada
1174
+ ["cmc_gem_gdps", 6],
1175
+ ["cmc_gem_rdps", 4],
1176
+ ["cmc_gem_hrdps", 2]
1177
+ ]);
1178
+ function floorToCycleMs(valueUtcMs, cycleHours) {
1179
+ if (cycleHours.length === 0) {
1180
+ throw new Error("cycleHours must be non-empty");
1181
+ }
1182
+ const d = new Date(valueUtcMs);
1183
+ const hour = d.getUTCHours();
1184
+ const sorted = [...cycleHours].sort((a, b) => a - b);
1185
+ const candidates = sorted.filter((h) => h <= hour);
1186
+ if (candidates.length > 0) {
1187
+ const targetHour = candidates[candidates.length - 1];
1188
+ return Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate(), targetHour, 0, 0, 0);
1189
+ }
1190
+ const lastCycle = sorted[sorted.length - 1];
1191
+ const prior = new Date(valueUtcMs - 864e5);
1192
+ return Date.UTC(
1193
+ prior.getUTCFullYear(),
1194
+ prior.getUTCMonth(),
1195
+ prior.getUTCDate(),
1196
+ lastCycle,
1197
+ 0,
1198
+ 0,
1199
+ 0
1200
+ );
1201
+ }
1202
+ function issuedAtFromPreviousDayMs(validAtUtcMs, N, cycleHours) {
1203
+ if (N < 1 || N > 7) {
1204
+ throw new Error(`N must be in 1..7 (Open-Meteo previous_dayN limit); got ${N}`);
1205
+ }
1206
+ return floorToCycleMs(validAtUtcMs - N * 864e5, cycleHours);
1207
+ }
1208
+ function issuedAtFromLiveCycleMathMs(nowUtcMs, publishLagHours, cycleHours) {
1209
+ return floorToCycleMs(nowUtcMs - publishLagHours * 36e5, cycleHours);
1210
+ }
1211
+
1212
+ // ../weather/src/forecasts/open-meteo.ts
1213
+ var OPEN_METEO_PREVIOUS_RUNS_URL = "https://previous-runs-api.open-meteo.com/v1/forecast";
1214
+ var OPEN_METEO_SINGLE_RUNS_URL = "https://single-runs-api.open-meteo.com/v1/forecast";
1215
+ var OPEN_METEO_LIVE_URL = "https://api.open-meteo.com/v1/forecast";
1216
+ var OPEN_METEO_SEAMLESS_URL = "https://historical-forecast-api.open-meteo.com/v1/forecast";
1217
+ var VALID_MODES = /* @__PURE__ */ new Set(["training", "live", "seamless"]);
1218
+ var HOURLY_VARIABLES = [
1219
+ "temperature_2m",
1220
+ "dew_point_2m",
1221
+ "apparent_temperature",
1222
+ "wind_speed_10m",
1223
+ "wind_direction_10m",
1224
+ "wind_gusts_10m",
1225
+ "precipitation",
1226
+ "precipitation_probability",
1227
+ "cloud_cover",
1228
+ "surface_pressure",
1229
+ "pressure_msl",
1230
+ "shortwave_radiation",
1231
+ "direct_radiation",
1232
+ "cape",
1233
+ "freezing_level_height",
1234
+ "snow_depth",
1235
+ "visibility",
1236
+ "weather_code"
1237
+ ];
1238
+ var STATION_COORDS = /* @__PURE__ */ new Map([
1239
+ ["KNYC", { lat: 40.78, lon: -73.97 }],
1240
+ ["KORD", { lat: 41.98, lon: -87.9 }],
1241
+ ["KDEN", { lat: 39.86, lon: -104.67 }],
1242
+ ["KMIA", { lat: 25.79, lon: -80.29 }],
1243
+ ["KSEA", { lat: 47.45, lon: -122.31 }]
1244
+ ]);
1245
+ function resolveCoords(station) {
1246
+ const coords = STATION_COORDS.get(station);
1247
+ if (coords) return coords;
1248
+ throw new Error(
1249
+ `openMeteoForecasts: station=${JSON.stringify(station)} not in built-in coords table; add to STATION_COORDS`
1250
+ );
1251
+ }
1252
+ function buildHourlyParam(endpoint) {
1253
+ if (endpoint === OPEN_METEO_PREVIOUS_RUNS_URL) {
1254
+ return HOURLY_VARIABLES.map((v) => `${v}_previous_day1`).join(",");
1255
+ }
1256
+ return HOURLY_VARIABLES.join(",");
1257
+ }
1258
+ function dispatchEndpoint(mode, opts) {
1259
+ if (mode === "training") {
1260
+ return opts.issuedAt ? OPEN_METEO_SINGLE_RUNS_URL : OPEN_METEO_PREVIOUS_RUNS_URL;
1261
+ }
1262
+ if (mode === "live") {
1263
+ return OPEN_METEO_LIVE_URL;
1264
+ }
1265
+ if (mode === "seamless") {
1266
+ if (!opts.allowLeakage) {
1267
+ throw new OpenMeteoSeamlessLeakageError(
1268
+ "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.",
1269
+ {
1270
+ model: opts.model,
1271
+ endpointUrl: OPEN_METEO_SEAMLESS_URL
1272
+ }
1273
+ );
1274
+ }
1275
+ return OPEN_METEO_SEAMLESS_URL;
1276
+ }
1277
+ throw new Error(`openMeteoForecasts: unknown mode ${JSON.stringify(mode)}`);
1278
+ }
1279
+ function isoIfNotNull(ms) {
1280
+ return ms === null ? null : new Date(ms).toISOString();
1281
+ }
1282
+ function maybeNumber2(value) {
1283
+ if (value === null || value === void 0) return null;
1284
+ const n = typeof value === "number" ? value : Number(value);
1285
+ return Number.isFinite(n) ? n : null;
1286
+ }
1287
+ function pickHourlyValue(hourly, key, isPreviousRuns, idx) {
1288
+ const arr = isPreviousRuns ? hourly[`${key}_previous_day1`] ?? hourly[key] : hourly[key];
1289
+ if (!Array.isArray(arr) || idx >= arr.length) return null;
1290
+ return arr[idx];
1291
+ }
1292
+ async function openMeteoForecasts(station, fromDate, toDate, opts = {}) {
1293
+ const model = opts.model ?? "gfs_global";
1294
+ if (!OPEN_METEO_MODELS.has(model)) {
1295
+ throw new Error(
1296
+ `openMeteoForecasts: model must be one of OPEN_METEO_MODELS (36 keys); got ${JSON.stringify(model)}`
1297
+ );
1298
+ }
1299
+ const mode = opts.mode ?? "training";
1300
+ if (!VALID_MODES.has(mode)) {
1301
+ throw new Error(
1302
+ `openMeteoForecasts: mode must be one of training,live,seamless; got ${JSON.stringify(mode)}`
1303
+ );
1304
+ }
1305
+ const endpoint = dispatchEndpoint(mode, {
1306
+ allowLeakage: opts.allowLeakage ?? false,
1307
+ model,
1308
+ issuedAt: opts.issuedAt
1309
+ });
1310
+ const { lat, lon } = resolveCoords(station);
1311
+ const params = new URLSearchParams();
1312
+ params.set("latitude", String(lat));
1313
+ params.set("longitude", String(lon));
1314
+ params.set("start_date", fromDate);
1315
+ params.set("end_date", toDate);
1316
+ params.set("hourly", buildHourlyParam(endpoint));
1317
+ params.set("models", model);
1318
+ params.set("timezone", "UTC");
1319
+ if (endpoint === OPEN_METEO_SINGLE_RUNS_URL && opts.issuedAt) {
1320
+ params.set("run", opts.issuedAt);
1321
+ }
1322
+ const fetchFn = opts.fetchFn ?? fetch;
1323
+ const url = `${endpoint}?${params.toString()}`;
1324
+ const resp = await fetchFn(url);
1325
+ if (resp.status === 404) return [];
1326
+ if (!resp.ok) {
1327
+ throw new Error(`openMeteoForecasts: HTTP ${resp.status} on ${url}`);
1328
+ }
1329
+ const payload = await resp.json();
1330
+ const hourly = payload.hourly ?? {};
1331
+ const times = hourly.time ?? [];
1332
+ if (times.length === 0) return [];
1333
+ let source;
1334
+ if (endpoint === OPEN_METEO_PREVIOUS_RUNS_URL) {
1335
+ source = "open_meteo.previous_runs";
1336
+ } else if (endpoint === OPEN_METEO_SINGLE_RUNS_URL) {
1337
+ source = "open_meteo.single_run";
1338
+ } else if (endpoint === OPEN_METEO_LIVE_URL) {
1339
+ source = "open_meteo.live";
1340
+ } else {
1341
+ source = "open_meteo.seamless";
1342
+ }
1343
+ const cycleHours = CYCLE_HOURS.get(model) ?? [0, 6, 12, 18];
1344
+ const publishLag = PUBLISH_LAG_HOURS.get(model) ?? 6;
1345
+ const retrievedAt = (/* @__PURE__ */ new Date()).toISOString();
1346
+ const nowMs = Date.now();
1347
+ const rows = [];
1348
+ for (let i = 0; i < times.length; i++) {
1349
+ const tIso = times[i] ?? "";
1350
+ if (!tIso) continue;
1351
+ const validAtMs = Date.parse(tIso.endsWith("Z") || tIso.includes("+") ? tIso : `${tIso}Z`);
1352
+ let issuedAtMs;
1353
+ if (source === "open_meteo.previous_runs") {
1354
+ issuedAtMs = issuedAtFromPreviousDayMs(validAtMs, 1, cycleHours);
1355
+ } else if (source === "open_meteo.single_run") {
1356
+ issuedAtMs = opts.issuedAt ? Date.parse(
1357
+ opts.issuedAt.endsWith("Z") || opts.issuedAt.includes("+") ? opts.issuedAt : `${opts.issuedAt}Z`
1358
+ ) : null;
1359
+ } else if (source === "open_meteo.live") {
1360
+ issuedAtMs = issuedAtFromLiveCycleMathMs(nowMs, publishLag, cycleHours);
1361
+ } else {
1362
+ issuedAtMs = null;
1363
+ }
1364
+ const validAtIso = new Date(validAtMs).toISOString();
1365
+ const forecastHour = issuedAtMs === null ? null : Math.round((validAtMs - issuedAtMs) / 36e5);
1366
+ const isPrev = source === "open_meteo.previous_runs";
1367
+ const h = hourly;
1368
+ const popPct = maybeNumber2(pickHourlyValue(h, "precipitation_probability", isPrev, i));
1369
+ rows.push({
1370
+ station,
1371
+ model,
1372
+ issuedAt: isoIfNotNull(issuedAtMs),
1373
+ validAt: validAtIso,
1374
+ forecastHour,
1375
+ tempC: maybeNumber2(pickHourlyValue(h, "temperature_2m", isPrev, i)),
1376
+ dewPointC: maybeNumber2(pickHourlyValue(h, "dew_point_2m", isPrev, i)),
1377
+ apparentTempC: maybeNumber2(pickHourlyValue(h, "apparent_temperature", isPrev, i)),
1378
+ windSpeedMs: maybeNumber2(pickHourlyValue(h, "wind_speed_10m", isPrev, i)),
1379
+ windDirDeg: maybeNumber2(pickHourlyValue(h, "wind_direction_10m", isPrev, i)),
1380
+ windGustsMs: maybeNumber2(pickHourlyValue(h, "wind_gusts_10m", isPrev, i)),
1381
+ precipProbability: popPct === null ? null : popPct / 100,
1382
+ precipitationMm: maybeNumber2(pickHourlyValue(h, "precipitation", isPrev, i)),
1383
+ cloudCoverPct: maybeNumber2(pickHourlyValue(h, "cloud_cover", isPrev, i)),
1384
+ surfacePressureHpa: maybeNumber2(pickHourlyValue(h, "surface_pressure", isPrev, i)),
1385
+ pressureMslHpa: maybeNumber2(pickHourlyValue(h, "pressure_msl", isPrev, i)),
1386
+ shortwaveRadiationWm2: maybeNumber2(pickHourlyValue(h, "shortwave_radiation", isPrev, i)),
1387
+ directRadiationWm2: maybeNumber2(pickHourlyValue(h, "direct_radiation", isPrev, i)),
1388
+ capeJkg: maybeNumber2(pickHourlyValue(h, "cape", isPrev, i)),
1389
+ freezingLevelM: maybeNumber2(pickHourlyValue(h, "freezing_level_height", isPrev, i)),
1390
+ snowDepthM: maybeNumber2(pickHourlyValue(h, "snow_depth", isPrev, i)),
1391
+ visibilityM: maybeNumber2(pickHourlyValue(h, "visibility", isPrev, i)),
1392
+ weatherCode: maybeNumber2(pickHourlyValue(h, "weather_code", isPrev, i)),
1393
+ source,
1394
+ retrievedAt
1395
+ });
1396
+ }
1397
+ return rows;
1398
+ }
1399
+
1030
1400
  // ../core/dist/discovery/index.mjs
1031
1401
  var STATIONS2 = [
1032
1402
  {
@@ -1037,7 +1407,10 @@ var STATIONS2 = [
1037
1407
  latitude: 52.3667,
1038
1408
  longitude: 13.5033,
1039
1409
  name: "Berlin Brandenburg",
1040
- tz: "Europe/Berlin"
1410
+ tz: "Europe/Berlin",
1411
+ venues: [
1412
+ "polymarket"
1413
+ ]
1041
1414
  },
1042
1415
  {
1043
1416
  code: "EDDF",
@@ -1047,7 +1420,10 @@ var STATIONS2 = [
1047
1420
  latitude: 50.0379,
1048
1421
  longitude: 8.5622,
1049
1422
  name: "Frankfurt am Main",
1050
- tz: "Europe/Berlin"
1423
+ tz: "Europe/Berlin",
1424
+ venues: [
1425
+ "polymarket"
1426
+ ]
1051
1427
  },
1052
1428
  {
1053
1429
  code: "EDDM",
@@ -1057,7 +1433,10 @@ var STATIONS2 = [
1057
1433
  latitude: 48.3538,
1058
1434
  longitude: 11.7861,
1059
1435
  name: "Munich Franz Josef Strauss",
1060
- tz: "Europe/Berlin"
1436
+ tz: "Europe/Berlin",
1437
+ venues: [
1438
+ "polymarket"
1439
+ ]
1061
1440
  },
1062
1441
  {
1063
1442
  code: "EFHK",
@@ -1067,7 +1446,10 @@ var STATIONS2 = [
1067
1446
  latitude: 60.3172,
1068
1447
  longitude: 24.9633,
1069
1448
  name: "Helsinki-Vantaa",
1070
- tz: "Europe/Helsinki"
1449
+ tz: "Europe/Helsinki",
1450
+ venues: [
1451
+ "polymarket"
1452
+ ]
1071
1453
  },
1072
1454
  {
1073
1455
  code: "EGKK",
@@ -1077,7 +1459,10 @@ var STATIONS2 = [
1077
1459
  latitude: 51.1481,
1078
1460
  longitude: -0.1903,
1079
1461
  name: "London Gatwick",
1080
- tz: "Europe/London"
1462
+ tz: "Europe/London",
1463
+ venues: [
1464
+ "polymarket"
1465
+ ]
1081
1466
  },
1082
1467
  {
1083
1468
  code: "EGLL",
@@ -1087,7 +1472,10 @@ var STATIONS2 = [
1087
1472
  latitude: 51.4706,
1088
1473
  longitude: -0.4619,
1089
1474
  name: "London Heathrow",
1090
- tz: "Europe/London"
1475
+ tz: "Europe/London",
1476
+ venues: [
1477
+ "polymarket"
1478
+ ]
1091
1479
  },
1092
1480
  {
1093
1481
  code: "EHAM",
@@ -1097,7 +1485,10 @@ var STATIONS2 = [
1097
1485
  latitude: 52.3086,
1098
1486
  longitude: 4.7639,
1099
1487
  name: "Amsterdam Schiphol",
1100
- tz: "Europe/Amsterdam"
1488
+ tz: "Europe/Amsterdam",
1489
+ venues: [
1490
+ "polymarket"
1491
+ ]
1101
1492
  },
1102
1493
  {
1103
1494
  code: "EKCH",
@@ -1107,7 +1498,10 @@ var STATIONS2 = [
1107
1498
  latitude: 55.6181,
1108
1499
  longitude: 12.6561,
1109
1500
  name: "Copenhagen Kastrup",
1110
- tz: "Europe/Copenhagen"
1501
+ tz: "Europe/Copenhagen",
1502
+ venues: [
1503
+ "polymarket"
1504
+ ]
1111
1505
  },
1112
1506
  {
1113
1507
  code: "EPWA",
@@ -1117,7 +1511,10 @@ var STATIONS2 = [
1117
1511
  latitude: 52.1657,
1118
1512
  longitude: 20.9671,
1119
1513
  name: "Warsaw Chopin",
1120
- tz: "Europe/Warsaw"
1514
+ tz: "Europe/Warsaw",
1515
+ venues: [
1516
+ "polymarket"
1517
+ ]
1121
1518
  },
1122
1519
  {
1123
1520
  code: "ESSA",
@@ -1127,7 +1524,10 @@ var STATIONS2 = [
1127
1524
  latitude: 59.6519,
1128
1525
  longitude: 17.9186,
1129
1526
  name: "Stockholm Arlanda",
1130
- tz: "Europe/Stockholm"
1527
+ tz: "Europe/Stockholm",
1528
+ venues: [
1529
+ "polymarket"
1530
+ ]
1131
1531
  },
1132
1532
  {
1133
1533
  code: "ATL",
@@ -1137,7 +1537,11 @@ var STATIONS2 = [
1137
1537
  latitude: 33.6407,
1138
1538
  longitude: -84.4277,
1139
1539
  name: "Hartsfield-Jackson Atlanta International",
1140
- tz: "America/New_York"
1540
+ tz: "America/New_York",
1541
+ venues: [
1542
+ "kalshi",
1543
+ "polymarket"
1544
+ ]
1141
1545
  },
1142
1546
  {
1143
1547
  code: "AUS",
@@ -1147,7 +1551,24 @@ var STATIONS2 = [
1147
1551
  latitude: 30.1975,
1148
1552
  longitude: -97.6664,
1149
1553
  name: "Austin-Bergstrom International",
1150
- tz: "America/Chicago"
1554
+ tz: "America/Chicago",
1555
+ venues: [
1556
+ "kalshi",
1557
+ "polymarket"
1558
+ ]
1559
+ },
1560
+ {
1561
+ code: "BNA",
1562
+ country: "US",
1563
+ ghcnh_id: "USW00013897",
1564
+ icao: "KBNA",
1565
+ latitude: 36.1245,
1566
+ longitude: -86.6782,
1567
+ name: "Nashville International",
1568
+ tz: "America/Chicago",
1569
+ venues: [
1570
+ "kalshi"
1571
+ ]
1151
1572
  },
1152
1573
  {
1153
1574
  code: "BOS",
@@ -1157,7 +1578,24 @@ var STATIONS2 = [
1157
1578
  latitude: 42.3656,
1158
1579
  longitude: -71.0096,
1159
1580
  name: "Boston Logan International",
1160
- tz: "America/New_York"
1581
+ tz: "America/New_York",
1582
+ venues: [
1583
+ "kalshi",
1584
+ "polymarket"
1585
+ ]
1586
+ },
1587
+ {
1588
+ code: "CVG",
1589
+ country: "US",
1590
+ ghcnh_id: "USW00093814",
1591
+ icao: "KCVG",
1592
+ latitude: 39.0488,
1593
+ longitude: -84.6678,
1594
+ name: "Cincinnati/Northern Kentucky International",
1595
+ tz: "America/New_York",
1596
+ venues: [
1597
+ "kalshi"
1598
+ ]
1161
1599
  },
1162
1600
  {
1163
1601
  code: "DCA",
@@ -1167,7 +1605,11 @@ var STATIONS2 = [
1167
1605
  latitude: 38.8512,
1168
1606
  longitude: -77.0402,
1169
1607
  name: "Washington Reagan National",
1170
- tz: "America/New_York"
1608
+ tz: "America/New_York",
1609
+ venues: [
1610
+ "kalshi",
1611
+ "polymarket"
1612
+ ]
1171
1613
  },
1172
1614
  {
1173
1615
  code: "DEN",
@@ -1177,7 +1619,11 @@ var STATIONS2 = [
1177
1619
  latitude: 39.8561,
1178
1620
  longitude: -104.6737,
1179
1621
  name: "Denver International",
1180
- tz: "America/Denver"
1622
+ tz: "America/Denver",
1623
+ venues: [
1624
+ "kalshi",
1625
+ "polymarket"
1626
+ ]
1181
1627
  },
1182
1628
  {
1183
1629
  code: "DFW",
@@ -1187,7 +1633,25 @@ var STATIONS2 = [
1187
1633
  latitude: 32.8998,
1188
1634
  longitude: -97.0403,
1189
1635
  name: "Dallas-Fort Worth International",
1190
- tz: "America/Chicago"
1636
+ tz: "America/Chicago",
1637
+ venues: [
1638
+ "kalshi",
1639
+ "polymarket"
1640
+ ]
1641
+ },
1642
+ {
1643
+ code: "DTW",
1644
+ country: "US",
1645
+ ghcnh_id: "USW00094847",
1646
+ icao: "KDTW",
1647
+ latitude: 42.2124,
1648
+ longitude: -83.3534,
1649
+ name: "Detroit Metropolitan Wayne County",
1650
+ tz: "America/New_York",
1651
+ venues: [
1652
+ "kalshi",
1653
+ "polymarket"
1654
+ ]
1191
1655
  },
1192
1656
  {
1193
1657
  code: "HOU",
@@ -1197,7 +1661,22 @@ var STATIONS2 = [
1197
1661
  latitude: 29.6454,
1198
1662
  longitude: -95.2789,
1199
1663
  name: "Houston Hobby",
1200
- tz: "America/Chicago"
1664
+ tz: "America/Chicago",
1665
+ venues: []
1666
+ },
1667
+ {
1668
+ code: "IAH",
1669
+ country: "US",
1670
+ ghcnh_id: "USW00012960",
1671
+ icao: "KIAH",
1672
+ latitude: 29.9844,
1673
+ longitude: -95.3414,
1674
+ name: "Houston George Bush Intercontinental",
1675
+ tz: "America/Chicago",
1676
+ venues: [
1677
+ "kalshi",
1678
+ "polymarket"
1679
+ ]
1201
1680
  },
1202
1681
  {
1203
1682
  code: "LAS",
@@ -1207,7 +1686,10 @@ var STATIONS2 = [
1207
1686
  latitude: 36.084,
1208
1687
  longitude: -115.1537,
1209
1688
  name: "Harry Reid (McCarran) International",
1210
- tz: "America/Los_Angeles"
1689
+ tz: "America/Los_Angeles",
1690
+ venues: [
1691
+ "kalshi"
1692
+ ]
1211
1693
  },
1212
1694
  {
1213
1695
  code: "LAX",
@@ -1217,7 +1699,11 @@ var STATIONS2 = [
1217
1699
  latitude: 33.9425,
1218
1700
  longitude: -118.4081,
1219
1701
  name: "Los Angeles International",
1220
- tz: "America/Los_Angeles"
1702
+ tz: "America/Los_Angeles",
1703
+ venues: [
1704
+ "kalshi",
1705
+ "polymarket"
1706
+ ]
1221
1707
  },
1222
1708
  {
1223
1709
  code: "MDW",
@@ -1227,7 +1713,10 @@ var STATIONS2 = [
1227
1713
  latitude: 41.7868,
1228
1714
  longitude: -87.7522,
1229
1715
  name: "Chicago Midway International",
1230
- tz: "America/Chicago"
1716
+ tz: "America/Chicago",
1717
+ venues: [
1718
+ "kalshi"
1719
+ ]
1231
1720
  },
1232
1721
  {
1233
1722
  code: "MIA",
@@ -1237,7 +1726,11 @@ var STATIONS2 = [
1237
1726
  latitude: 25.7959,
1238
1727
  longitude: -80.287,
1239
1728
  name: "Miami International",
1240
- tz: "America/New_York"
1729
+ tz: "America/New_York",
1730
+ venues: [
1731
+ "kalshi",
1732
+ "polymarket"
1733
+ ]
1241
1734
  },
1242
1735
  {
1243
1736
  code: "MSP",
@@ -1247,7 +1740,11 @@ var STATIONS2 = [
1247
1740
  latitude: 44.8848,
1248
1741
  longitude: -93.2223,
1249
1742
  name: "Minneapolis-St Paul International",
1250
- tz: "America/Chicago"
1743
+ tz: "America/Chicago",
1744
+ venues: [
1745
+ "kalshi",
1746
+ "polymarket"
1747
+ ]
1251
1748
  },
1252
1749
  {
1253
1750
  code: "MSY",
@@ -1257,7 +1754,8 @@ var STATIONS2 = [
1257
1754
  latitude: 29.9934,
1258
1755
  longitude: -90.258,
1259
1756
  name: "New Orleans Louis Armstrong International",
1260
- tz: "America/Chicago"
1757
+ tz: "America/Chicago",
1758
+ venues: []
1261
1759
  },
1262
1760
  {
1263
1761
  code: "NYC",
@@ -1267,7 +1765,10 @@ var STATIONS2 = [
1267
1765
  latitude: 40.7789,
1268
1766
  longitude: -73.9692,
1269
1767
  name: "Central Park, New York",
1270
- tz: "America/New_York"
1768
+ tz: "America/New_York",
1769
+ venues: [
1770
+ "kalshi"
1771
+ ]
1271
1772
  },
1272
1773
  {
1273
1774
  code: "OKC",
@@ -1277,7 +1778,8 @@ var STATIONS2 = [
1277
1778
  latitude: 35.3931,
1278
1779
  longitude: -97.6007,
1279
1780
  name: "Oklahoma City Will Rogers World",
1280
- tz: "America/Chicago"
1781
+ tz: "America/Chicago",
1782
+ venues: []
1281
1783
  },
1282
1784
  {
1283
1785
  code: "PHL",
@@ -1287,7 +1789,11 @@ var STATIONS2 = [
1287
1789
  latitude: 39.8721,
1288
1790
  longitude: -75.2411,
1289
1791
  name: "Philadelphia International",
1290
- tz: "America/New_York"
1792
+ tz: "America/New_York",
1793
+ venues: [
1794
+ "kalshi",
1795
+ "polymarket"
1796
+ ]
1291
1797
  },
1292
1798
  {
1293
1799
  code: "PHX",
@@ -1297,7 +1803,11 @@ var STATIONS2 = [
1297
1803
  latitude: 33.4373,
1298
1804
  longitude: -112.0078,
1299
1805
  name: "Phoenix Sky Harbor International",
1300
- tz: "America/Phoenix"
1806
+ tz: "America/Phoenix",
1807
+ venues: [
1808
+ "kalshi",
1809
+ "polymarket"
1810
+ ]
1301
1811
  },
1302
1812
  {
1303
1813
  code: "SAT",
@@ -1307,7 +1817,8 @@ var STATIONS2 = [
1307
1817
  latitude: 29.5337,
1308
1818
  longitude: -98.4698,
1309
1819
  name: "San Antonio International",
1310
- tz: "America/Chicago"
1820
+ tz: "America/Chicago",
1821
+ venues: []
1311
1822
  },
1312
1823
  {
1313
1824
  code: "SEA",
@@ -1317,7 +1828,11 @@ var STATIONS2 = [
1317
1828
  latitude: 47.4502,
1318
1829
  longitude: -122.3088,
1319
1830
  name: "Seattle-Tacoma International",
1320
- tz: "America/Los_Angeles"
1831
+ tz: "America/Los_Angeles",
1832
+ venues: [
1833
+ "kalshi",
1834
+ "polymarket"
1835
+ ]
1321
1836
  },
1322
1837
  {
1323
1838
  code: "SFO",
@@ -1327,7 +1842,24 @@ var STATIONS2 = [
1327
1842
  latitude: 37.6213,
1328
1843
  longitude: -122.379,
1329
1844
  name: "San Francisco International",
1330
- tz: "America/Los_Angeles"
1845
+ tz: "America/Los_Angeles",
1846
+ venues: [
1847
+ "kalshi",
1848
+ "polymarket"
1849
+ ]
1850
+ },
1851
+ {
1852
+ code: "SLC",
1853
+ country: "US",
1854
+ ghcnh_id: "USW00024127",
1855
+ icao: "KSLC",
1856
+ latitude: 40.7884,
1857
+ longitude: -111.9778,
1858
+ name: "Salt Lake City International",
1859
+ tz: "America/Denver",
1860
+ venues: [
1861
+ "kalshi"
1862
+ ]
1331
1863
  },
1332
1864
  {
1333
1865
  code: "LEBL",
@@ -1337,7 +1869,10 @@ var STATIONS2 = [
1337
1869
  latitude: 41.2974,
1338
1870
  longitude: 2.0833,
1339
1871
  name: "Barcelona El Prat",
1340
- tz: "Europe/Madrid"
1872
+ tz: "Europe/Madrid",
1873
+ venues: [
1874
+ "polymarket"
1875
+ ]
1341
1876
  },
1342
1877
  {
1343
1878
  code: "LEMD",
@@ -1347,7 +1882,10 @@ var STATIONS2 = [
1347
1882
  latitude: 40.4719,
1348
1883
  longitude: -3.5626,
1349
1884
  name: "Madrid Barajas",
1350
- tz: "Europe/Madrid"
1885
+ tz: "Europe/Madrid",
1886
+ venues: [
1887
+ "polymarket"
1888
+ ]
1351
1889
  },
1352
1890
  {
1353
1891
  code: "LFPB",
@@ -1357,7 +1895,10 @@ var STATIONS2 = [
1357
1895
  latitude: 48.9694,
1358
1896
  longitude: 2.4414,
1359
1897
  name: "Paris Le Bourget",
1360
- tz: "Europe/Paris"
1898
+ tz: "Europe/Paris",
1899
+ venues: [
1900
+ "polymarket"
1901
+ ]
1361
1902
  },
1362
1903
  {
1363
1904
  code: "LFPG",
@@ -1367,7 +1908,10 @@ var STATIONS2 = [
1367
1908
  latitude: 49.0097,
1368
1909
  longitude: 2.5479,
1369
1910
  name: "Paris Charles de Gaulle",
1370
- tz: "Europe/Paris"
1911
+ tz: "Europe/Paris",
1912
+ venues: [
1913
+ "polymarket"
1914
+ ]
1371
1915
  },
1372
1916
  {
1373
1917
  code: "LFPO",
@@ -1377,7 +1921,10 @@ var STATIONS2 = [
1377
1921
  latitude: 48.7233,
1378
1922
  longitude: 2.3794,
1379
1923
  name: "Paris Orly",
1380
- tz: "Europe/Paris"
1924
+ tz: "Europe/Paris",
1925
+ venues: [
1926
+ "polymarket"
1927
+ ]
1381
1928
  },
1382
1929
  {
1383
1930
  code: "LIMC",
@@ -1387,7 +1934,10 @@ var STATIONS2 = [
1387
1934
  latitude: 45.6306,
1388
1935
  longitude: 8.7281,
1389
1936
  name: "Milan Malpensa",
1390
- tz: "Europe/Rome"
1937
+ tz: "Europe/Rome",
1938
+ venues: [
1939
+ "polymarket"
1940
+ ]
1391
1941
  },
1392
1942
  {
1393
1943
  code: "LIRF",
@@ -1397,7 +1947,10 @@ var STATIONS2 = [
1397
1947
  latitude: 41.8003,
1398
1948
  longitude: 12.2389,
1399
1949
  name: "Rome Fiumicino",
1400
- tz: "Europe/Rome"
1950
+ tz: "Europe/Rome",
1951
+ venues: [
1952
+ "polymarket"
1953
+ ]
1401
1954
  },
1402
1955
  {
1403
1956
  code: "LOWW",
@@ -1407,7 +1960,10 @@ var STATIONS2 = [
1407
1960
  latitude: 48.1103,
1408
1961
  longitude: 16.5697,
1409
1962
  name: "Vienna International",
1410
- tz: "Europe/Vienna"
1963
+ tz: "Europe/Vienna",
1964
+ venues: [
1965
+ "polymarket"
1966
+ ]
1411
1967
  },
1412
1968
  {
1413
1969
  code: "LSZH",
@@ -1417,7 +1973,10 @@ var STATIONS2 = [
1417
1973
  latitude: 47.4647,
1418
1974
  longitude: 8.5492,
1419
1975
  name: "Zurich",
1420
- tz: "Europe/Zurich"
1976
+ tz: "Europe/Zurich",
1977
+ venues: [
1978
+ "polymarket"
1979
+ ]
1421
1980
  },
1422
1981
  {
1423
1982
  code: "NZAA",
@@ -1427,7 +1986,10 @@ var STATIONS2 = [
1427
1986
  latitude: -37.0081,
1428
1987
  longitude: 174.7917,
1429
1988
  name: "Auckland",
1430
- tz: "Pacific/Auckland"
1989
+ tz: "Pacific/Auckland",
1990
+ venues: [
1991
+ "polymarket"
1992
+ ]
1431
1993
  },
1432
1994
  {
1433
1995
  code: "NZWN",
@@ -1437,7 +1999,10 @@ var STATIONS2 = [
1437
1999
  latitude: -41.3272,
1438
2000
  longitude: 174.8053,
1439
2001
  name: "Wellington",
1440
- tz: "Pacific/Auckland"
2002
+ tz: "Pacific/Auckland",
2003
+ venues: [
2004
+ "polymarket"
2005
+ ]
1441
2006
  },
1442
2007
  {
1443
2008
  code: "OERK",
@@ -1447,7 +2012,10 @@ var STATIONS2 = [
1447
2012
  latitude: 24.9576,
1448
2013
  longitude: 46.6988,
1449
2014
  name: "Riyadh King Khalid International",
1450
- tz: "Asia/Riyadh"
2015
+ tz: "Asia/Riyadh",
2016
+ venues: [
2017
+ "polymarket"
2018
+ ]
1451
2019
  },
1452
2020
  {
1453
2021
  code: "OMDB",
@@ -1457,7 +2025,10 @@ var STATIONS2 = [
1457
2025
  latitude: 25.2532,
1458
2026
  longitude: 55.3657,
1459
2027
  name: "Dubai International",
1460
- tz: "Asia/Dubai"
2028
+ tz: "Asia/Dubai",
2029
+ venues: [
2030
+ "polymarket"
2031
+ ]
1461
2032
  },
1462
2033
  {
1463
2034
  code: "OTHH",
@@ -1467,7 +2038,10 @@ var STATIONS2 = [
1467
2038
  latitude: 25.2731,
1468
2039
  longitude: 51.608,
1469
2040
  name: "Doha Hamad International",
1470
- tz: "Asia/Qatar"
2041
+ tz: "Asia/Qatar",
2042
+ venues: [
2043
+ "polymarket"
2044
+ ]
1471
2045
  },
1472
2046
  {
1473
2047
  code: "RCTP",
@@ -1477,7 +2051,10 @@ var STATIONS2 = [
1477
2051
  latitude: 25.0777,
1478
2052
  longitude: 121.2328,
1479
2053
  name: "Taipei Taoyuan",
1480
- tz: "Asia/Taipei"
2054
+ tz: "Asia/Taipei",
2055
+ venues: [
2056
+ "polymarket"
2057
+ ]
1481
2058
  },
1482
2059
  {
1483
2060
  code: "RJAA",
@@ -1487,7 +2064,10 @@ var STATIONS2 = [
1487
2064
  latitude: 35.7647,
1488
2065
  longitude: 140.3864,
1489
2066
  name: "Tokyo Narita",
1490
- tz: "Asia/Tokyo"
2067
+ tz: "Asia/Tokyo",
2068
+ venues: [
2069
+ "polymarket"
2070
+ ]
1491
2071
  },
1492
2072
  {
1493
2073
  code: "RJTT",
@@ -1497,7 +2077,10 @@ var STATIONS2 = [
1497
2077
  latitude: 35.5522,
1498
2078
  longitude: 139.78,
1499
2079
  name: "Tokyo Haneda",
1500
- tz: "Asia/Tokyo"
2080
+ tz: "Asia/Tokyo",
2081
+ venues: [
2082
+ "polymarket"
2083
+ ]
1501
2084
  },
1502
2085
  {
1503
2086
  code: "RKSI",
@@ -1507,7 +2090,10 @@ var STATIONS2 = [
1507
2090
  latitude: 37.4691,
1508
2091
  longitude: 126.4505,
1509
2092
  name: "Seoul Incheon",
1510
- tz: "Asia/Seoul"
2093
+ tz: "Asia/Seoul",
2094
+ venues: [
2095
+ "polymarket"
2096
+ ]
1511
2097
  },
1512
2098
  {
1513
2099
  code: "SAEZ",
@@ -1517,7 +2103,10 @@ var STATIONS2 = [
1517
2103
  latitude: -34.8222,
1518
2104
  longitude: -58.5358,
1519
2105
  name: "Buenos Aires Ezeiza",
1520
- tz: "America/Argentina/Buenos_Aires"
2106
+ tz: "America/Argentina/Buenos_Aires",
2107
+ venues: [
2108
+ "polymarket"
2109
+ ]
1521
2110
  },
1522
2111
  {
1523
2112
  code: "SBGR",
@@ -1527,7 +2116,10 @@ var STATIONS2 = [
1527
2116
  latitude: -23.4356,
1528
2117
  longitude: -46.4731,
1529
2118
  name: "S\xE3o Paulo Guarulhos",
1530
- tz: "America/Sao_Paulo"
2119
+ tz: "America/Sao_Paulo",
2120
+ venues: [
2121
+ "polymarket"
2122
+ ]
1531
2123
  },
1532
2124
  {
1533
2125
  code: "UUEE",
@@ -1537,7 +2129,10 @@ var STATIONS2 = [
1537
2129
  latitude: 55.9728,
1538
2130
  longitude: 37.4147,
1539
2131
  name: "Moscow Sheremetyevo",
1540
- tz: "Europe/Moscow"
2132
+ tz: "Europe/Moscow",
2133
+ venues: [
2134
+ "polymarket"
2135
+ ]
1541
2136
  },
1542
2137
  {
1543
2138
  code: "VABB",
@@ -1547,7 +2142,10 @@ var STATIONS2 = [
1547
2142
  latitude: 19.0887,
1548
2143
  longitude: 72.8679,
1549
2144
  name: "Mumbai Chhatrapati Shivaji",
1550
- tz: "Asia/Kolkata"
2145
+ tz: "Asia/Kolkata",
2146
+ venues: [
2147
+ "polymarket"
2148
+ ]
1551
2149
  },
1552
2150
  {
1553
2151
  code: "VHHH",
@@ -1557,7 +2155,10 @@ var STATIONS2 = [
1557
2155
  latitude: 22.308,
1558
2156
  longitude: 113.9185,
1559
2157
  name: "Hong Kong International",
1560
- tz: "Asia/Hong_Kong"
2158
+ tz: "Asia/Hong_Kong",
2159
+ venues: [
2160
+ "polymarket"
2161
+ ]
1561
2162
  },
1562
2163
  {
1563
2164
  code: "VIDP",
@@ -1567,7 +2168,10 @@ var STATIONS2 = [
1567
2168
  latitude: 28.5562,
1568
2169
  longitude: 77.1,
1569
2170
  name: "Delhi Indira Gandhi",
1570
- tz: "Asia/Kolkata"
2171
+ tz: "Asia/Kolkata",
2172
+ venues: [
2173
+ "polymarket"
2174
+ ]
1571
2175
  },
1572
2176
  {
1573
2177
  code: "VTBS",
@@ -1577,7 +2181,10 @@ var STATIONS2 = [
1577
2181
  latitude: 13.69,
1578
2182
  longitude: 100.7501,
1579
2183
  name: "Bangkok Suvarnabhumi",
1580
- tz: "Asia/Bangkok"
2184
+ tz: "Asia/Bangkok",
2185
+ venues: [
2186
+ "polymarket"
2187
+ ]
1581
2188
  },
1582
2189
  {
1583
2190
  code: "WSSS",
@@ -1587,7 +2194,10 @@ var STATIONS2 = [
1587
2194
  latitude: 1.3644,
1588
2195
  longitude: 103.9915,
1589
2196
  name: "Singapore Changi",
1590
- tz: "Asia/Singapore"
2197
+ tz: "Asia/Singapore",
2198
+ venues: [
2199
+ "polymarket"
2200
+ ]
1591
2201
  },
1592
2202
  {
1593
2203
  code: "YBBN",
@@ -1597,7 +2207,10 @@ var STATIONS2 = [
1597
2207
  latitude: -27.3842,
1598
2208
  longitude: 153.1175,
1599
2209
  name: "Brisbane",
1600
- tz: "Australia/Brisbane"
2210
+ tz: "Australia/Brisbane",
2211
+ venues: [
2212
+ "polymarket"
2213
+ ]
1601
2214
  },
1602
2215
  {
1603
2216
  code: "YMML",
@@ -1607,7 +2220,10 @@ var STATIONS2 = [
1607
2220
  latitude: -37.6733,
1608
2221
  longitude: 144.8433,
1609
2222
  name: "Melbourne Tullamarine",
1610
- tz: "Australia/Melbourne"
2223
+ tz: "Australia/Melbourne",
2224
+ venues: [
2225
+ "polymarket"
2226
+ ]
1611
2227
  },
1612
2228
  {
1613
2229
  code: "YSSY",
@@ -1617,7 +2233,10 @@ var STATIONS2 = [
1617
2233
  latitude: -33.9461,
1618
2234
  longitude: 151.1772,
1619
2235
  name: "Sydney Kingsford Smith",
1620
- tz: "Australia/Sydney"
2236
+ tz: "Australia/Sydney",
2237
+ venues: [
2238
+ "polymarket"
2239
+ ]
1621
2240
  },
1622
2241
  {
1623
2242
  code: "ZBAA",
@@ -1627,7 +2246,10 @@ var STATIONS2 = [
1627
2246
  latitude: 40.0801,
1628
2247
  longitude: 116.5846,
1629
2248
  name: "Beijing Capital",
1630
- tz: "Asia/Shanghai"
2249
+ tz: "Asia/Shanghai",
2250
+ venues: [
2251
+ "polymarket"
2252
+ ]
1631
2253
  },
1632
2254
  {
1633
2255
  code: "ZSPD",
@@ -1637,16 +2259,22 @@ var STATIONS2 = [
1637
2259
  latitude: 31.1443,
1638
2260
  longitude: 121.8083,
1639
2261
  name: "Shanghai Pudong",
1640
- tz: "Asia/Shanghai"
2262
+ tz: "Asia/Shanghai",
2263
+ venues: [
2264
+ "polymarket"
2265
+ ]
1641
2266
  }
1642
2267
  ];
1643
2268
  var STATION_BY_CODE2 = /* @__PURE__ */ new Map([
1644
2269
  ["ATL", STATIONS2[10]],
1645
2270
  ["AUS", STATIONS2[11]],
1646
- ["BOS", STATIONS2[12]],
1647
- ["DCA", STATIONS2[13]],
1648
- ["DEN", STATIONS2[14]],
1649
- ["DFW", STATIONS2[15]],
2271
+ ["BNA", STATIONS2[12]],
2272
+ ["BOS", STATIONS2[13]],
2273
+ ["CVG", STATIONS2[14]],
2274
+ ["DCA", STATIONS2[15]],
2275
+ ["DEN", STATIONS2[16]],
2276
+ ["DFW", STATIONS2[17]],
2277
+ ["DTW", STATIONS2[18]],
1650
2278
  ["EDDB", STATIONS2[0]],
1651
2279
  ["EDDF", STATIONS2[1]],
1652
2280
  ["EDDM", STATIONS2[2]],
@@ -1657,51 +2285,53 @@ var STATION_BY_CODE2 = /* @__PURE__ */ new Map([
1657
2285
  ["EKCH", STATIONS2[7]],
1658
2286
  ["EPWA", STATIONS2[8]],
1659
2287
  ["ESSA", STATIONS2[9]],
1660
- ["HOU", STATIONS2[16]],
1661
- ["LAS", STATIONS2[17]],
1662
- ["LAX", STATIONS2[18]],
1663
- ["LEBL", STATIONS2[30]],
1664
- ["LEMD", STATIONS2[31]],
1665
- ["LFPB", STATIONS2[32]],
1666
- ["LFPG", STATIONS2[33]],
1667
- ["LFPO", STATIONS2[34]],
1668
- ["LIMC", STATIONS2[35]],
1669
- ["LIRF", STATIONS2[36]],
1670
- ["LOWW", STATIONS2[37]],
1671
- ["LSZH", STATIONS2[38]],
1672
- ["MDW", STATIONS2[19]],
1673
- ["MIA", STATIONS2[20]],
1674
- ["MSP", STATIONS2[21]],
1675
- ["MSY", STATIONS2[22]],
1676
- ["NYC", STATIONS2[23]],
1677
- ["NZAA", STATIONS2[39]],
1678
- ["NZWN", STATIONS2[40]],
1679
- ["OERK", STATIONS2[41]],
1680
- ["OKC", STATIONS2[24]],
1681
- ["OMDB", STATIONS2[42]],
1682
- ["OTHH", STATIONS2[43]],
1683
- ["PHL", STATIONS2[25]],
1684
- ["PHX", STATIONS2[26]],
1685
- ["RCTP", STATIONS2[44]],
1686
- ["RJAA", STATIONS2[45]],
1687
- ["RJTT", STATIONS2[46]],
1688
- ["RKSI", STATIONS2[47]],
1689
- ["SAEZ", STATIONS2[48]],
1690
- ["SAT", STATIONS2[27]],
1691
- ["SBGR", STATIONS2[49]],
1692
- ["SEA", STATIONS2[28]],
1693
- ["SFO", STATIONS2[29]],
1694
- ["UUEE", STATIONS2[50]],
1695
- ["VABB", STATIONS2[51]],
1696
- ["VHHH", STATIONS2[52]],
1697
- ["VIDP", STATIONS2[53]],
1698
- ["VTBS", STATIONS2[54]],
1699
- ["WSSS", STATIONS2[55]],
1700
- ["YBBN", STATIONS2[56]],
1701
- ["YMML", STATIONS2[57]],
1702
- ["YSSY", STATIONS2[58]],
1703
- ["ZBAA", STATIONS2[59]],
1704
- ["ZSPD", STATIONS2[60]]
2288
+ ["HOU", STATIONS2[19]],
2289
+ ["IAH", STATIONS2[20]],
2290
+ ["LAS", STATIONS2[21]],
2291
+ ["LAX", STATIONS2[22]],
2292
+ ["LEBL", STATIONS2[35]],
2293
+ ["LEMD", STATIONS2[36]],
2294
+ ["LFPB", STATIONS2[37]],
2295
+ ["LFPG", STATIONS2[38]],
2296
+ ["LFPO", STATIONS2[39]],
2297
+ ["LIMC", STATIONS2[40]],
2298
+ ["LIRF", STATIONS2[41]],
2299
+ ["LOWW", STATIONS2[42]],
2300
+ ["LSZH", STATIONS2[43]],
2301
+ ["MDW", STATIONS2[23]],
2302
+ ["MIA", STATIONS2[24]],
2303
+ ["MSP", STATIONS2[25]],
2304
+ ["MSY", STATIONS2[26]],
2305
+ ["NYC", STATIONS2[27]],
2306
+ ["NZAA", STATIONS2[44]],
2307
+ ["NZWN", STATIONS2[45]],
2308
+ ["OERK", STATIONS2[46]],
2309
+ ["OKC", STATIONS2[28]],
2310
+ ["OMDB", STATIONS2[47]],
2311
+ ["OTHH", STATIONS2[48]],
2312
+ ["PHL", STATIONS2[29]],
2313
+ ["PHX", STATIONS2[30]],
2314
+ ["RCTP", STATIONS2[49]],
2315
+ ["RJAA", STATIONS2[50]],
2316
+ ["RJTT", STATIONS2[51]],
2317
+ ["RKSI", STATIONS2[52]],
2318
+ ["SAEZ", STATIONS2[53]],
2319
+ ["SAT", STATIONS2[31]],
2320
+ ["SBGR", STATIONS2[54]],
2321
+ ["SEA", STATIONS2[32]],
2322
+ ["SFO", STATIONS2[33]],
2323
+ ["SLC", STATIONS2[34]],
2324
+ ["UUEE", STATIONS2[55]],
2325
+ ["VABB", STATIONS2[56]],
2326
+ ["VHHH", STATIONS2[57]],
2327
+ ["VIDP", STATIONS2[58]],
2328
+ ["VTBS", STATIONS2[59]],
2329
+ ["WSSS", STATIONS2[60]],
2330
+ ["YBBN", STATIONS2[61]],
2331
+ ["YMML", STATIONS2[62]],
2332
+ ["YSSY", STATIONS2[63]],
2333
+ ["ZBAA", STATIONS2[64]],
2334
+ ["ZSPD", STATIONS2[65]]
1705
2335
  ]);
1706
2336
  var STATION_BY_ICAO2 = /* @__PURE__ */ new Map([
1707
2337
  ["EDDB", STATIONS2[0]],
@@ -1716,55 +2346,60 @@ var STATION_BY_ICAO2 = /* @__PURE__ */ new Map([
1716
2346
  ["ESSA", STATIONS2[9]],
1717
2347
  ["KATL", STATIONS2[10]],
1718
2348
  ["KAUS", STATIONS2[11]],
1719
- ["KBOS", STATIONS2[12]],
1720
- ["KDCA", STATIONS2[13]],
1721
- ["KDEN", STATIONS2[14]],
1722
- ["KDFW", STATIONS2[15]],
1723
- ["KHOU", STATIONS2[16]],
1724
- ["KLAS", STATIONS2[17]],
1725
- ["KLAX", STATIONS2[18]],
1726
- ["KMDW", STATIONS2[19]],
1727
- ["KMIA", STATIONS2[20]],
1728
- ["KMSP", STATIONS2[21]],
1729
- ["KMSY", STATIONS2[22]],
1730
- ["KNYC", STATIONS2[23]],
1731
- ["KOKC", STATIONS2[24]],
1732
- ["KPHL", STATIONS2[25]],
1733
- ["KPHX", STATIONS2[26]],
1734
- ["KSAT", STATIONS2[27]],
1735
- ["KSEA", STATIONS2[28]],
1736
- ["KSFO", STATIONS2[29]],
1737
- ["LEBL", STATIONS2[30]],
1738
- ["LEMD", STATIONS2[31]],
1739
- ["LFPB", STATIONS2[32]],
1740
- ["LFPG", STATIONS2[33]],
1741
- ["LFPO", STATIONS2[34]],
1742
- ["LIMC", STATIONS2[35]],
1743
- ["LIRF", STATIONS2[36]],
1744
- ["LOWW", STATIONS2[37]],
1745
- ["LSZH", STATIONS2[38]],
1746
- ["NZAA", STATIONS2[39]],
1747
- ["NZWN", STATIONS2[40]],
1748
- ["OERK", STATIONS2[41]],
1749
- ["OMDB", STATIONS2[42]],
1750
- ["OTHH", STATIONS2[43]],
1751
- ["RCTP", STATIONS2[44]],
1752
- ["RJAA", STATIONS2[45]],
1753
- ["RJTT", STATIONS2[46]],
1754
- ["RKSI", STATIONS2[47]],
1755
- ["SAEZ", STATIONS2[48]],
1756
- ["SBGR", STATIONS2[49]],
1757
- ["UUEE", STATIONS2[50]],
1758
- ["VABB", STATIONS2[51]],
1759
- ["VHHH", STATIONS2[52]],
1760
- ["VIDP", STATIONS2[53]],
1761
- ["VTBS", STATIONS2[54]],
1762
- ["WSSS", STATIONS2[55]],
1763
- ["YBBN", STATIONS2[56]],
1764
- ["YMML", STATIONS2[57]],
1765
- ["YSSY", STATIONS2[58]],
1766
- ["ZBAA", STATIONS2[59]],
1767
- ["ZSPD", STATIONS2[60]]
2349
+ ["KBNA", STATIONS2[12]],
2350
+ ["KBOS", STATIONS2[13]],
2351
+ ["KCVG", STATIONS2[14]],
2352
+ ["KDCA", STATIONS2[15]],
2353
+ ["KDEN", STATIONS2[16]],
2354
+ ["KDFW", STATIONS2[17]],
2355
+ ["KDTW", STATIONS2[18]],
2356
+ ["KHOU", STATIONS2[19]],
2357
+ ["KIAH", STATIONS2[20]],
2358
+ ["KLAS", STATIONS2[21]],
2359
+ ["KLAX", STATIONS2[22]],
2360
+ ["KMDW", STATIONS2[23]],
2361
+ ["KMIA", STATIONS2[24]],
2362
+ ["KMSP", STATIONS2[25]],
2363
+ ["KMSY", STATIONS2[26]],
2364
+ ["KNYC", STATIONS2[27]],
2365
+ ["KOKC", STATIONS2[28]],
2366
+ ["KPHL", STATIONS2[29]],
2367
+ ["KPHX", STATIONS2[30]],
2368
+ ["KSAT", STATIONS2[31]],
2369
+ ["KSEA", STATIONS2[32]],
2370
+ ["KSFO", STATIONS2[33]],
2371
+ ["KSLC", STATIONS2[34]],
2372
+ ["LEBL", STATIONS2[35]],
2373
+ ["LEMD", STATIONS2[36]],
2374
+ ["LFPB", STATIONS2[37]],
2375
+ ["LFPG", STATIONS2[38]],
2376
+ ["LFPO", STATIONS2[39]],
2377
+ ["LIMC", STATIONS2[40]],
2378
+ ["LIRF", STATIONS2[41]],
2379
+ ["LOWW", STATIONS2[42]],
2380
+ ["LSZH", STATIONS2[43]],
2381
+ ["NZAA", STATIONS2[44]],
2382
+ ["NZWN", STATIONS2[45]],
2383
+ ["OERK", STATIONS2[46]],
2384
+ ["OMDB", STATIONS2[47]],
2385
+ ["OTHH", STATIONS2[48]],
2386
+ ["RCTP", STATIONS2[49]],
2387
+ ["RJAA", STATIONS2[50]],
2388
+ ["RJTT", STATIONS2[51]],
2389
+ ["RKSI", STATIONS2[52]],
2390
+ ["SAEZ", STATIONS2[53]],
2391
+ ["SBGR", STATIONS2[54]],
2392
+ ["UUEE", STATIONS2[55]],
2393
+ ["VABB", STATIONS2[56]],
2394
+ ["VHHH", STATIONS2[57]],
2395
+ ["VIDP", STATIONS2[58]],
2396
+ ["VTBS", STATIONS2[59]],
2397
+ ["WSSS", STATIONS2[60]],
2398
+ ["YBBN", STATIONS2[61]],
2399
+ ["YMML", STATIONS2[62]],
2400
+ ["YSSY", STATIONS2[63]],
2401
+ ["ZBAA", STATIONS2[64]],
2402
+ ["ZSPD", STATIONS2[65]]
1768
2403
  ]);
1769
2404
  var LOW_COVERAGE_THRESHOLD = 12;
1770
2405
  var PARTS_CACHE = /* @__PURE__ */ new Map();
@@ -2481,6 +3116,10 @@ var KALSHI_SETTLEMENT_STATIONS = {
2481
3116
  SLC: {
2482
3117
  citation: "https://kalshi.com/markets/khighslc (Salt Lake City International)",
2483
3118
  station: "KSLC"
3119
+ },
3120
+ TLV: {
3121
+ citation: "https://kalshi.com/markets/kxhightlv (Harry Reid/McCarran; settles vs NWS CLILAS)",
3122
+ station: "KLAS"
2484
3123
  }
2485
3124
  };
2486
3125
  var KNOWN_WRONG_STATIONS = /* @__PURE__ */ new Set([
@@ -3066,7 +3705,7 @@ replaceTraps((oldTraps) => ({
3066
3705
  }
3067
3706
  }));
3068
3707
 
3069
- // ../core/dist/internal/chunk-IPC4XUYW.mjs
3708
+ // ../core/dist/internal/chunk-QDQSYUFW.mjs
3070
3709
  function lockKeyFor(key) {
3071
3710
  return `mostlyright:cache:lock:${key}`;
3072
3711
  }
@@ -3290,7 +3929,10 @@ var STATIONS3 = [
3290
3929
  latitude: 52.3667,
3291
3930
  longitude: 13.5033,
3292
3931
  name: "Berlin Brandenburg",
3293
- tz: "Europe/Berlin"
3932
+ tz: "Europe/Berlin",
3933
+ venues: [
3934
+ "polymarket"
3935
+ ]
3294
3936
  },
3295
3937
  {
3296
3938
  code: "EDDF",
@@ -3300,7 +3942,10 @@ var STATIONS3 = [
3300
3942
  latitude: 50.0379,
3301
3943
  longitude: 8.5622,
3302
3944
  name: "Frankfurt am Main",
3303
- tz: "Europe/Berlin"
3945
+ tz: "Europe/Berlin",
3946
+ venues: [
3947
+ "polymarket"
3948
+ ]
3304
3949
  },
3305
3950
  {
3306
3951
  code: "EDDM",
@@ -3310,7 +3955,10 @@ var STATIONS3 = [
3310
3955
  latitude: 48.3538,
3311
3956
  longitude: 11.7861,
3312
3957
  name: "Munich Franz Josef Strauss",
3313
- tz: "Europe/Berlin"
3958
+ tz: "Europe/Berlin",
3959
+ venues: [
3960
+ "polymarket"
3961
+ ]
3314
3962
  },
3315
3963
  {
3316
3964
  code: "EFHK",
@@ -3320,7 +3968,10 @@ var STATIONS3 = [
3320
3968
  latitude: 60.3172,
3321
3969
  longitude: 24.9633,
3322
3970
  name: "Helsinki-Vantaa",
3323
- tz: "Europe/Helsinki"
3971
+ tz: "Europe/Helsinki",
3972
+ venues: [
3973
+ "polymarket"
3974
+ ]
3324
3975
  },
3325
3976
  {
3326
3977
  code: "EGKK",
@@ -3330,7 +3981,10 @@ var STATIONS3 = [
3330
3981
  latitude: 51.1481,
3331
3982
  longitude: -0.1903,
3332
3983
  name: "London Gatwick",
3333
- tz: "Europe/London"
3984
+ tz: "Europe/London",
3985
+ venues: [
3986
+ "polymarket"
3987
+ ]
3334
3988
  },
3335
3989
  {
3336
3990
  code: "EGLL",
@@ -3340,7 +3994,10 @@ var STATIONS3 = [
3340
3994
  latitude: 51.4706,
3341
3995
  longitude: -0.4619,
3342
3996
  name: "London Heathrow",
3343
- tz: "Europe/London"
3997
+ tz: "Europe/London",
3998
+ venues: [
3999
+ "polymarket"
4000
+ ]
3344
4001
  },
3345
4002
  {
3346
4003
  code: "EHAM",
@@ -3350,7 +4007,10 @@ var STATIONS3 = [
3350
4007
  latitude: 52.3086,
3351
4008
  longitude: 4.7639,
3352
4009
  name: "Amsterdam Schiphol",
3353
- tz: "Europe/Amsterdam"
4010
+ tz: "Europe/Amsterdam",
4011
+ venues: [
4012
+ "polymarket"
4013
+ ]
3354
4014
  },
3355
4015
  {
3356
4016
  code: "EKCH",
@@ -3360,7 +4020,10 @@ var STATIONS3 = [
3360
4020
  latitude: 55.6181,
3361
4021
  longitude: 12.6561,
3362
4022
  name: "Copenhagen Kastrup",
3363
- tz: "Europe/Copenhagen"
4023
+ tz: "Europe/Copenhagen",
4024
+ venues: [
4025
+ "polymarket"
4026
+ ]
3364
4027
  },
3365
4028
  {
3366
4029
  code: "EPWA",
@@ -3370,7 +4033,10 @@ var STATIONS3 = [
3370
4033
  latitude: 52.1657,
3371
4034
  longitude: 20.9671,
3372
4035
  name: "Warsaw Chopin",
3373
- tz: "Europe/Warsaw"
4036
+ tz: "Europe/Warsaw",
4037
+ venues: [
4038
+ "polymarket"
4039
+ ]
3374
4040
  },
3375
4041
  {
3376
4042
  code: "ESSA",
@@ -3380,7 +4046,10 @@ var STATIONS3 = [
3380
4046
  latitude: 59.6519,
3381
4047
  longitude: 17.9186,
3382
4048
  name: "Stockholm Arlanda",
3383
- tz: "Europe/Stockholm"
4049
+ tz: "Europe/Stockholm",
4050
+ venues: [
4051
+ "polymarket"
4052
+ ]
3384
4053
  },
3385
4054
  {
3386
4055
  code: "ATL",
@@ -3390,7 +4059,11 @@ var STATIONS3 = [
3390
4059
  latitude: 33.6407,
3391
4060
  longitude: -84.4277,
3392
4061
  name: "Hartsfield-Jackson Atlanta International",
3393
- tz: "America/New_York"
4062
+ tz: "America/New_York",
4063
+ venues: [
4064
+ "kalshi",
4065
+ "polymarket"
4066
+ ]
3394
4067
  },
3395
4068
  {
3396
4069
  code: "AUS",
@@ -3400,7 +4073,24 @@ var STATIONS3 = [
3400
4073
  latitude: 30.1975,
3401
4074
  longitude: -97.6664,
3402
4075
  name: "Austin-Bergstrom International",
3403
- tz: "America/Chicago"
4076
+ tz: "America/Chicago",
4077
+ venues: [
4078
+ "kalshi",
4079
+ "polymarket"
4080
+ ]
4081
+ },
4082
+ {
4083
+ code: "BNA",
4084
+ country: "US",
4085
+ ghcnh_id: "USW00013897",
4086
+ icao: "KBNA",
4087
+ latitude: 36.1245,
4088
+ longitude: -86.6782,
4089
+ name: "Nashville International",
4090
+ tz: "America/Chicago",
4091
+ venues: [
4092
+ "kalshi"
4093
+ ]
3404
4094
  },
3405
4095
  {
3406
4096
  code: "BOS",
@@ -3410,7 +4100,24 @@ var STATIONS3 = [
3410
4100
  latitude: 42.3656,
3411
4101
  longitude: -71.0096,
3412
4102
  name: "Boston Logan International",
3413
- tz: "America/New_York"
4103
+ tz: "America/New_York",
4104
+ venues: [
4105
+ "kalshi",
4106
+ "polymarket"
4107
+ ]
4108
+ },
4109
+ {
4110
+ code: "CVG",
4111
+ country: "US",
4112
+ ghcnh_id: "USW00093814",
4113
+ icao: "KCVG",
4114
+ latitude: 39.0488,
4115
+ longitude: -84.6678,
4116
+ name: "Cincinnati/Northern Kentucky International",
4117
+ tz: "America/New_York",
4118
+ venues: [
4119
+ "kalshi"
4120
+ ]
3414
4121
  },
3415
4122
  {
3416
4123
  code: "DCA",
@@ -3420,7 +4127,11 @@ var STATIONS3 = [
3420
4127
  latitude: 38.8512,
3421
4128
  longitude: -77.0402,
3422
4129
  name: "Washington Reagan National",
3423
- tz: "America/New_York"
4130
+ tz: "America/New_York",
4131
+ venues: [
4132
+ "kalshi",
4133
+ "polymarket"
4134
+ ]
3424
4135
  },
3425
4136
  {
3426
4137
  code: "DEN",
@@ -3430,7 +4141,11 @@ var STATIONS3 = [
3430
4141
  latitude: 39.8561,
3431
4142
  longitude: -104.6737,
3432
4143
  name: "Denver International",
3433
- tz: "America/Denver"
4144
+ tz: "America/Denver",
4145
+ venues: [
4146
+ "kalshi",
4147
+ "polymarket"
4148
+ ]
3434
4149
  },
3435
4150
  {
3436
4151
  code: "DFW",
@@ -3440,7 +4155,25 @@ var STATIONS3 = [
3440
4155
  latitude: 32.8998,
3441
4156
  longitude: -97.0403,
3442
4157
  name: "Dallas-Fort Worth International",
3443
- tz: "America/Chicago"
4158
+ tz: "America/Chicago",
4159
+ venues: [
4160
+ "kalshi",
4161
+ "polymarket"
4162
+ ]
4163
+ },
4164
+ {
4165
+ code: "DTW",
4166
+ country: "US",
4167
+ ghcnh_id: "USW00094847",
4168
+ icao: "KDTW",
4169
+ latitude: 42.2124,
4170
+ longitude: -83.3534,
4171
+ name: "Detroit Metropolitan Wayne County",
4172
+ tz: "America/New_York",
4173
+ venues: [
4174
+ "kalshi",
4175
+ "polymarket"
4176
+ ]
3444
4177
  },
3445
4178
  {
3446
4179
  code: "HOU",
@@ -3450,7 +4183,22 @@ var STATIONS3 = [
3450
4183
  latitude: 29.6454,
3451
4184
  longitude: -95.2789,
3452
4185
  name: "Houston Hobby",
3453
- tz: "America/Chicago"
4186
+ tz: "America/Chicago",
4187
+ venues: []
4188
+ },
4189
+ {
4190
+ code: "IAH",
4191
+ country: "US",
4192
+ ghcnh_id: "USW00012960",
4193
+ icao: "KIAH",
4194
+ latitude: 29.9844,
4195
+ longitude: -95.3414,
4196
+ name: "Houston George Bush Intercontinental",
4197
+ tz: "America/Chicago",
4198
+ venues: [
4199
+ "kalshi",
4200
+ "polymarket"
4201
+ ]
3454
4202
  },
3455
4203
  {
3456
4204
  code: "LAS",
@@ -3460,7 +4208,10 @@ var STATIONS3 = [
3460
4208
  latitude: 36.084,
3461
4209
  longitude: -115.1537,
3462
4210
  name: "Harry Reid (McCarran) International",
3463
- tz: "America/Los_Angeles"
4211
+ tz: "America/Los_Angeles",
4212
+ venues: [
4213
+ "kalshi"
4214
+ ]
3464
4215
  },
3465
4216
  {
3466
4217
  code: "LAX",
@@ -3470,7 +4221,11 @@ var STATIONS3 = [
3470
4221
  latitude: 33.9425,
3471
4222
  longitude: -118.4081,
3472
4223
  name: "Los Angeles International",
3473
- tz: "America/Los_Angeles"
4224
+ tz: "America/Los_Angeles",
4225
+ venues: [
4226
+ "kalshi",
4227
+ "polymarket"
4228
+ ]
3474
4229
  },
3475
4230
  {
3476
4231
  code: "MDW",
@@ -3480,7 +4235,10 @@ var STATIONS3 = [
3480
4235
  latitude: 41.7868,
3481
4236
  longitude: -87.7522,
3482
4237
  name: "Chicago Midway International",
3483
- tz: "America/Chicago"
4238
+ tz: "America/Chicago",
4239
+ venues: [
4240
+ "kalshi"
4241
+ ]
3484
4242
  },
3485
4243
  {
3486
4244
  code: "MIA",
@@ -3490,7 +4248,11 @@ var STATIONS3 = [
3490
4248
  latitude: 25.7959,
3491
4249
  longitude: -80.287,
3492
4250
  name: "Miami International",
3493
- tz: "America/New_York"
4251
+ tz: "America/New_York",
4252
+ venues: [
4253
+ "kalshi",
4254
+ "polymarket"
4255
+ ]
3494
4256
  },
3495
4257
  {
3496
4258
  code: "MSP",
@@ -3500,7 +4262,11 @@ var STATIONS3 = [
3500
4262
  latitude: 44.8848,
3501
4263
  longitude: -93.2223,
3502
4264
  name: "Minneapolis-St Paul International",
3503
- tz: "America/Chicago"
4265
+ tz: "America/Chicago",
4266
+ venues: [
4267
+ "kalshi",
4268
+ "polymarket"
4269
+ ]
3504
4270
  },
3505
4271
  {
3506
4272
  code: "MSY",
@@ -3510,7 +4276,8 @@ var STATIONS3 = [
3510
4276
  latitude: 29.9934,
3511
4277
  longitude: -90.258,
3512
4278
  name: "New Orleans Louis Armstrong International",
3513
- tz: "America/Chicago"
4279
+ tz: "America/Chicago",
4280
+ venues: []
3514
4281
  },
3515
4282
  {
3516
4283
  code: "NYC",
@@ -3520,7 +4287,10 @@ var STATIONS3 = [
3520
4287
  latitude: 40.7789,
3521
4288
  longitude: -73.9692,
3522
4289
  name: "Central Park, New York",
3523
- tz: "America/New_York"
4290
+ tz: "America/New_York",
4291
+ venues: [
4292
+ "kalshi"
4293
+ ]
3524
4294
  },
3525
4295
  {
3526
4296
  code: "OKC",
@@ -3530,7 +4300,8 @@ var STATIONS3 = [
3530
4300
  latitude: 35.3931,
3531
4301
  longitude: -97.6007,
3532
4302
  name: "Oklahoma City Will Rogers World",
3533
- tz: "America/Chicago"
4303
+ tz: "America/Chicago",
4304
+ venues: []
3534
4305
  },
3535
4306
  {
3536
4307
  code: "PHL",
@@ -3540,7 +4311,11 @@ var STATIONS3 = [
3540
4311
  latitude: 39.8721,
3541
4312
  longitude: -75.2411,
3542
4313
  name: "Philadelphia International",
3543
- tz: "America/New_York"
4314
+ tz: "America/New_York",
4315
+ venues: [
4316
+ "kalshi",
4317
+ "polymarket"
4318
+ ]
3544
4319
  },
3545
4320
  {
3546
4321
  code: "PHX",
@@ -3550,7 +4325,11 @@ var STATIONS3 = [
3550
4325
  latitude: 33.4373,
3551
4326
  longitude: -112.0078,
3552
4327
  name: "Phoenix Sky Harbor International",
3553
- tz: "America/Phoenix"
4328
+ tz: "America/Phoenix",
4329
+ venues: [
4330
+ "kalshi",
4331
+ "polymarket"
4332
+ ]
3554
4333
  },
3555
4334
  {
3556
4335
  code: "SAT",
@@ -3560,7 +4339,8 @@ var STATIONS3 = [
3560
4339
  latitude: 29.5337,
3561
4340
  longitude: -98.4698,
3562
4341
  name: "San Antonio International",
3563
- tz: "America/Chicago"
4342
+ tz: "America/Chicago",
4343
+ venues: []
3564
4344
  },
3565
4345
  {
3566
4346
  code: "SEA",
@@ -3570,7 +4350,11 @@ var STATIONS3 = [
3570
4350
  latitude: 47.4502,
3571
4351
  longitude: -122.3088,
3572
4352
  name: "Seattle-Tacoma International",
3573
- tz: "America/Los_Angeles"
4353
+ tz: "America/Los_Angeles",
4354
+ venues: [
4355
+ "kalshi",
4356
+ "polymarket"
4357
+ ]
3574
4358
  },
3575
4359
  {
3576
4360
  code: "SFO",
@@ -3580,7 +4364,24 @@ var STATIONS3 = [
3580
4364
  latitude: 37.6213,
3581
4365
  longitude: -122.379,
3582
4366
  name: "San Francisco International",
3583
- tz: "America/Los_Angeles"
4367
+ tz: "America/Los_Angeles",
4368
+ venues: [
4369
+ "kalshi",
4370
+ "polymarket"
4371
+ ]
4372
+ },
4373
+ {
4374
+ code: "SLC",
4375
+ country: "US",
4376
+ ghcnh_id: "USW00024127",
4377
+ icao: "KSLC",
4378
+ latitude: 40.7884,
4379
+ longitude: -111.9778,
4380
+ name: "Salt Lake City International",
4381
+ tz: "America/Denver",
4382
+ venues: [
4383
+ "kalshi"
4384
+ ]
3584
4385
  },
3585
4386
  {
3586
4387
  code: "LEBL",
@@ -3590,7 +4391,10 @@ var STATIONS3 = [
3590
4391
  latitude: 41.2974,
3591
4392
  longitude: 2.0833,
3592
4393
  name: "Barcelona El Prat",
3593
- tz: "Europe/Madrid"
4394
+ tz: "Europe/Madrid",
4395
+ venues: [
4396
+ "polymarket"
4397
+ ]
3594
4398
  },
3595
4399
  {
3596
4400
  code: "LEMD",
@@ -3600,7 +4404,10 @@ var STATIONS3 = [
3600
4404
  latitude: 40.4719,
3601
4405
  longitude: -3.5626,
3602
4406
  name: "Madrid Barajas",
3603
- tz: "Europe/Madrid"
4407
+ tz: "Europe/Madrid",
4408
+ venues: [
4409
+ "polymarket"
4410
+ ]
3604
4411
  },
3605
4412
  {
3606
4413
  code: "LFPB",
@@ -3610,7 +4417,10 @@ var STATIONS3 = [
3610
4417
  latitude: 48.9694,
3611
4418
  longitude: 2.4414,
3612
4419
  name: "Paris Le Bourget",
3613
- tz: "Europe/Paris"
4420
+ tz: "Europe/Paris",
4421
+ venues: [
4422
+ "polymarket"
4423
+ ]
3614
4424
  },
3615
4425
  {
3616
4426
  code: "LFPG",
@@ -3620,7 +4430,10 @@ var STATIONS3 = [
3620
4430
  latitude: 49.0097,
3621
4431
  longitude: 2.5479,
3622
4432
  name: "Paris Charles de Gaulle",
3623
- tz: "Europe/Paris"
4433
+ tz: "Europe/Paris",
4434
+ venues: [
4435
+ "polymarket"
4436
+ ]
3624
4437
  },
3625
4438
  {
3626
4439
  code: "LFPO",
@@ -3630,7 +4443,10 @@ var STATIONS3 = [
3630
4443
  latitude: 48.7233,
3631
4444
  longitude: 2.3794,
3632
4445
  name: "Paris Orly",
3633
- tz: "Europe/Paris"
4446
+ tz: "Europe/Paris",
4447
+ venues: [
4448
+ "polymarket"
4449
+ ]
3634
4450
  },
3635
4451
  {
3636
4452
  code: "LIMC",
@@ -3640,7 +4456,10 @@ var STATIONS3 = [
3640
4456
  latitude: 45.6306,
3641
4457
  longitude: 8.7281,
3642
4458
  name: "Milan Malpensa",
3643
- tz: "Europe/Rome"
4459
+ tz: "Europe/Rome",
4460
+ venues: [
4461
+ "polymarket"
4462
+ ]
3644
4463
  },
3645
4464
  {
3646
4465
  code: "LIRF",
@@ -3650,7 +4469,10 @@ var STATIONS3 = [
3650
4469
  latitude: 41.8003,
3651
4470
  longitude: 12.2389,
3652
4471
  name: "Rome Fiumicino",
3653
- tz: "Europe/Rome"
4472
+ tz: "Europe/Rome",
4473
+ venues: [
4474
+ "polymarket"
4475
+ ]
3654
4476
  },
3655
4477
  {
3656
4478
  code: "LOWW",
@@ -3660,7 +4482,10 @@ var STATIONS3 = [
3660
4482
  latitude: 48.1103,
3661
4483
  longitude: 16.5697,
3662
4484
  name: "Vienna International",
3663
- tz: "Europe/Vienna"
4485
+ tz: "Europe/Vienna",
4486
+ venues: [
4487
+ "polymarket"
4488
+ ]
3664
4489
  },
3665
4490
  {
3666
4491
  code: "LSZH",
@@ -3670,7 +4495,10 @@ var STATIONS3 = [
3670
4495
  latitude: 47.4647,
3671
4496
  longitude: 8.5492,
3672
4497
  name: "Zurich",
3673
- tz: "Europe/Zurich"
4498
+ tz: "Europe/Zurich",
4499
+ venues: [
4500
+ "polymarket"
4501
+ ]
3674
4502
  },
3675
4503
  {
3676
4504
  code: "NZAA",
@@ -3680,7 +4508,10 @@ var STATIONS3 = [
3680
4508
  latitude: -37.0081,
3681
4509
  longitude: 174.7917,
3682
4510
  name: "Auckland",
3683
- tz: "Pacific/Auckland"
4511
+ tz: "Pacific/Auckland",
4512
+ venues: [
4513
+ "polymarket"
4514
+ ]
3684
4515
  },
3685
4516
  {
3686
4517
  code: "NZWN",
@@ -3690,7 +4521,10 @@ var STATIONS3 = [
3690
4521
  latitude: -41.3272,
3691
4522
  longitude: 174.8053,
3692
4523
  name: "Wellington",
3693
- tz: "Pacific/Auckland"
4524
+ tz: "Pacific/Auckland",
4525
+ venues: [
4526
+ "polymarket"
4527
+ ]
3694
4528
  },
3695
4529
  {
3696
4530
  code: "OERK",
@@ -3700,7 +4534,10 @@ var STATIONS3 = [
3700
4534
  latitude: 24.9576,
3701
4535
  longitude: 46.6988,
3702
4536
  name: "Riyadh King Khalid International",
3703
- tz: "Asia/Riyadh"
4537
+ tz: "Asia/Riyadh",
4538
+ venues: [
4539
+ "polymarket"
4540
+ ]
3704
4541
  },
3705
4542
  {
3706
4543
  code: "OMDB",
@@ -3710,7 +4547,10 @@ var STATIONS3 = [
3710
4547
  latitude: 25.2532,
3711
4548
  longitude: 55.3657,
3712
4549
  name: "Dubai International",
3713
- tz: "Asia/Dubai"
4550
+ tz: "Asia/Dubai",
4551
+ venues: [
4552
+ "polymarket"
4553
+ ]
3714
4554
  },
3715
4555
  {
3716
4556
  code: "OTHH",
@@ -3720,7 +4560,10 @@ var STATIONS3 = [
3720
4560
  latitude: 25.2731,
3721
4561
  longitude: 51.608,
3722
4562
  name: "Doha Hamad International",
3723
- tz: "Asia/Qatar"
4563
+ tz: "Asia/Qatar",
4564
+ venues: [
4565
+ "polymarket"
4566
+ ]
3724
4567
  },
3725
4568
  {
3726
4569
  code: "RCTP",
@@ -3730,7 +4573,10 @@ var STATIONS3 = [
3730
4573
  latitude: 25.0777,
3731
4574
  longitude: 121.2328,
3732
4575
  name: "Taipei Taoyuan",
3733
- tz: "Asia/Taipei"
4576
+ tz: "Asia/Taipei",
4577
+ venues: [
4578
+ "polymarket"
4579
+ ]
3734
4580
  },
3735
4581
  {
3736
4582
  code: "RJAA",
@@ -3740,7 +4586,10 @@ var STATIONS3 = [
3740
4586
  latitude: 35.7647,
3741
4587
  longitude: 140.3864,
3742
4588
  name: "Tokyo Narita",
3743
- tz: "Asia/Tokyo"
4589
+ tz: "Asia/Tokyo",
4590
+ venues: [
4591
+ "polymarket"
4592
+ ]
3744
4593
  },
3745
4594
  {
3746
4595
  code: "RJTT",
@@ -3750,7 +4599,10 @@ var STATIONS3 = [
3750
4599
  latitude: 35.5522,
3751
4600
  longitude: 139.78,
3752
4601
  name: "Tokyo Haneda",
3753
- tz: "Asia/Tokyo"
4602
+ tz: "Asia/Tokyo",
4603
+ venues: [
4604
+ "polymarket"
4605
+ ]
3754
4606
  },
3755
4607
  {
3756
4608
  code: "RKSI",
@@ -3760,7 +4612,10 @@ var STATIONS3 = [
3760
4612
  latitude: 37.4691,
3761
4613
  longitude: 126.4505,
3762
4614
  name: "Seoul Incheon",
3763
- tz: "Asia/Seoul"
4615
+ tz: "Asia/Seoul",
4616
+ venues: [
4617
+ "polymarket"
4618
+ ]
3764
4619
  },
3765
4620
  {
3766
4621
  code: "SAEZ",
@@ -3770,7 +4625,10 @@ var STATIONS3 = [
3770
4625
  latitude: -34.8222,
3771
4626
  longitude: -58.5358,
3772
4627
  name: "Buenos Aires Ezeiza",
3773
- tz: "America/Argentina/Buenos_Aires"
4628
+ tz: "America/Argentina/Buenos_Aires",
4629
+ venues: [
4630
+ "polymarket"
4631
+ ]
3774
4632
  },
3775
4633
  {
3776
4634
  code: "SBGR",
@@ -3780,7 +4638,10 @@ var STATIONS3 = [
3780
4638
  latitude: -23.4356,
3781
4639
  longitude: -46.4731,
3782
4640
  name: "S\xE3o Paulo Guarulhos",
3783
- tz: "America/Sao_Paulo"
4641
+ tz: "America/Sao_Paulo",
4642
+ venues: [
4643
+ "polymarket"
4644
+ ]
3784
4645
  },
3785
4646
  {
3786
4647
  code: "UUEE",
@@ -3790,7 +4651,10 @@ var STATIONS3 = [
3790
4651
  latitude: 55.9728,
3791
4652
  longitude: 37.4147,
3792
4653
  name: "Moscow Sheremetyevo",
3793
- tz: "Europe/Moscow"
4654
+ tz: "Europe/Moscow",
4655
+ venues: [
4656
+ "polymarket"
4657
+ ]
3794
4658
  },
3795
4659
  {
3796
4660
  code: "VABB",
@@ -3800,7 +4664,10 @@ var STATIONS3 = [
3800
4664
  latitude: 19.0887,
3801
4665
  longitude: 72.8679,
3802
4666
  name: "Mumbai Chhatrapati Shivaji",
3803
- tz: "Asia/Kolkata"
4667
+ tz: "Asia/Kolkata",
4668
+ venues: [
4669
+ "polymarket"
4670
+ ]
3804
4671
  },
3805
4672
  {
3806
4673
  code: "VHHH",
@@ -3810,7 +4677,10 @@ var STATIONS3 = [
3810
4677
  latitude: 22.308,
3811
4678
  longitude: 113.9185,
3812
4679
  name: "Hong Kong International",
3813
- tz: "Asia/Hong_Kong"
4680
+ tz: "Asia/Hong_Kong",
4681
+ venues: [
4682
+ "polymarket"
4683
+ ]
3814
4684
  },
3815
4685
  {
3816
4686
  code: "VIDP",
@@ -3820,7 +4690,10 @@ var STATIONS3 = [
3820
4690
  latitude: 28.5562,
3821
4691
  longitude: 77.1,
3822
4692
  name: "Delhi Indira Gandhi",
3823
- tz: "Asia/Kolkata"
4693
+ tz: "Asia/Kolkata",
4694
+ venues: [
4695
+ "polymarket"
4696
+ ]
3824
4697
  },
3825
4698
  {
3826
4699
  code: "VTBS",
@@ -3830,7 +4703,10 @@ var STATIONS3 = [
3830
4703
  latitude: 13.69,
3831
4704
  longitude: 100.7501,
3832
4705
  name: "Bangkok Suvarnabhumi",
3833
- tz: "Asia/Bangkok"
4706
+ tz: "Asia/Bangkok",
4707
+ venues: [
4708
+ "polymarket"
4709
+ ]
3834
4710
  },
3835
4711
  {
3836
4712
  code: "WSSS",
@@ -3840,7 +4716,10 @@ var STATIONS3 = [
3840
4716
  latitude: 1.3644,
3841
4717
  longitude: 103.9915,
3842
4718
  name: "Singapore Changi",
3843
- tz: "Asia/Singapore"
4719
+ tz: "Asia/Singapore",
4720
+ venues: [
4721
+ "polymarket"
4722
+ ]
3844
4723
  },
3845
4724
  {
3846
4725
  code: "YBBN",
@@ -3850,7 +4729,10 @@ var STATIONS3 = [
3850
4729
  latitude: -27.3842,
3851
4730
  longitude: 153.1175,
3852
4731
  name: "Brisbane",
3853
- tz: "Australia/Brisbane"
4732
+ tz: "Australia/Brisbane",
4733
+ venues: [
4734
+ "polymarket"
4735
+ ]
3854
4736
  },
3855
4737
  {
3856
4738
  code: "YMML",
@@ -3860,7 +4742,10 @@ var STATIONS3 = [
3860
4742
  latitude: -37.6733,
3861
4743
  longitude: 144.8433,
3862
4744
  name: "Melbourne Tullamarine",
3863
- tz: "Australia/Melbourne"
4745
+ tz: "Australia/Melbourne",
4746
+ venues: [
4747
+ "polymarket"
4748
+ ]
3864
4749
  },
3865
4750
  {
3866
4751
  code: "YSSY",
@@ -3870,7 +4755,10 @@ var STATIONS3 = [
3870
4755
  latitude: -33.9461,
3871
4756
  longitude: 151.1772,
3872
4757
  name: "Sydney Kingsford Smith",
3873
- tz: "Australia/Sydney"
4758
+ tz: "Australia/Sydney",
4759
+ venues: [
4760
+ "polymarket"
4761
+ ]
3874
4762
  },
3875
4763
  {
3876
4764
  code: "ZBAA",
@@ -3880,7 +4768,10 @@ var STATIONS3 = [
3880
4768
  latitude: 40.0801,
3881
4769
  longitude: 116.5846,
3882
4770
  name: "Beijing Capital",
3883
- tz: "Asia/Shanghai"
4771
+ tz: "Asia/Shanghai",
4772
+ venues: [
4773
+ "polymarket"
4774
+ ]
3884
4775
  },
3885
4776
  {
3886
4777
  code: "ZSPD",
@@ -3890,16 +4781,22 @@ var STATIONS3 = [
3890
4781
  latitude: 31.1443,
3891
4782
  longitude: 121.8083,
3892
4783
  name: "Shanghai Pudong",
3893
- tz: "Asia/Shanghai"
4784
+ tz: "Asia/Shanghai",
4785
+ venues: [
4786
+ "polymarket"
4787
+ ]
3894
4788
  }
3895
4789
  ];
3896
4790
  var STATION_BY_CODE3 = /* @__PURE__ */ new Map([
3897
4791
  ["ATL", STATIONS3[10]],
3898
4792
  ["AUS", STATIONS3[11]],
3899
- ["BOS", STATIONS3[12]],
3900
- ["DCA", STATIONS3[13]],
3901
- ["DEN", STATIONS3[14]],
3902
- ["DFW", STATIONS3[15]],
4793
+ ["BNA", STATIONS3[12]],
4794
+ ["BOS", STATIONS3[13]],
4795
+ ["CVG", STATIONS3[14]],
4796
+ ["DCA", STATIONS3[15]],
4797
+ ["DEN", STATIONS3[16]],
4798
+ ["DFW", STATIONS3[17]],
4799
+ ["DTW", STATIONS3[18]],
3903
4800
  ["EDDB", STATIONS3[0]],
3904
4801
  ["EDDF", STATIONS3[1]],
3905
4802
  ["EDDM", STATIONS3[2]],
@@ -3910,51 +4807,53 @@ var STATION_BY_CODE3 = /* @__PURE__ */ new Map([
3910
4807
  ["EKCH", STATIONS3[7]],
3911
4808
  ["EPWA", STATIONS3[8]],
3912
4809
  ["ESSA", STATIONS3[9]],
3913
- ["HOU", STATIONS3[16]],
3914
- ["LAS", STATIONS3[17]],
3915
- ["LAX", STATIONS3[18]],
3916
- ["LEBL", STATIONS3[30]],
3917
- ["LEMD", STATIONS3[31]],
3918
- ["LFPB", STATIONS3[32]],
3919
- ["LFPG", STATIONS3[33]],
3920
- ["LFPO", STATIONS3[34]],
3921
- ["LIMC", STATIONS3[35]],
3922
- ["LIRF", STATIONS3[36]],
3923
- ["LOWW", STATIONS3[37]],
3924
- ["LSZH", STATIONS3[38]],
3925
- ["MDW", STATIONS3[19]],
3926
- ["MIA", STATIONS3[20]],
3927
- ["MSP", STATIONS3[21]],
3928
- ["MSY", STATIONS3[22]],
3929
- ["NYC", STATIONS3[23]],
3930
- ["NZAA", STATIONS3[39]],
3931
- ["NZWN", STATIONS3[40]],
3932
- ["OERK", STATIONS3[41]],
3933
- ["OKC", STATIONS3[24]],
3934
- ["OMDB", STATIONS3[42]],
3935
- ["OTHH", STATIONS3[43]],
3936
- ["PHL", STATIONS3[25]],
3937
- ["PHX", STATIONS3[26]],
3938
- ["RCTP", STATIONS3[44]],
3939
- ["RJAA", STATIONS3[45]],
3940
- ["RJTT", STATIONS3[46]],
3941
- ["RKSI", STATIONS3[47]],
3942
- ["SAEZ", STATIONS3[48]],
3943
- ["SAT", STATIONS3[27]],
3944
- ["SBGR", STATIONS3[49]],
3945
- ["SEA", STATIONS3[28]],
3946
- ["SFO", STATIONS3[29]],
3947
- ["UUEE", STATIONS3[50]],
3948
- ["VABB", STATIONS3[51]],
3949
- ["VHHH", STATIONS3[52]],
3950
- ["VIDP", STATIONS3[53]],
3951
- ["VTBS", STATIONS3[54]],
3952
- ["WSSS", STATIONS3[55]],
3953
- ["YBBN", STATIONS3[56]],
3954
- ["YMML", STATIONS3[57]],
3955
- ["YSSY", STATIONS3[58]],
3956
- ["ZBAA", STATIONS3[59]],
3957
- ["ZSPD", STATIONS3[60]]
4810
+ ["HOU", STATIONS3[19]],
4811
+ ["IAH", STATIONS3[20]],
4812
+ ["LAS", STATIONS3[21]],
4813
+ ["LAX", STATIONS3[22]],
4814
+ ["LEBL", STATIONS3[35]],
4815
+ ["LEMD", STATIONS3[36]],
4816
+ ["LFPB", STATIONS3[37]],
4817
+ ["LFPG", STATIONS3[38]],
4818
+ ["LFPO", STATIONS3[39]],
4819
+ ["LIMC", STATIONS3[40]],
4820
+ ["LIRF", STATIONS3[41]],
4821
+ ["LOWW", STATIONS3[42]],
4822
+ ["LSZH", STATIONS3[43]],
4823
+ ["MDW", STATIONS3[23]],
4824
+ ["MIA", STATIONS3[24]],
4825
+ ["MSP", STATIONS3[25]],
4826
+ ["MSY", STATIONS3[26]],
4827
+ ["NYC", STATIONS3[27]],
4828
+ ["NZAA", STATIONS3[44]],
4829
+ ["NZWN", STATIONS3[45]],
4830
+ ["OERK", STATIONS3[46]],
4831
+ ["OKC", STATIONS3[28]],
4832
+ ["OMDB", STATIONS3[47]],
4833
+ ["OTHH", STATIONS3[48]],
4834
+ ["PHL", STATIONS3[29]],
4835
+ ["PHX", STATIONS3[30]],
4836
+ ["RCTP", STATIONS3[49]],
4837
+ ["RJAA", STATIONS3[50]],
4838
+ ["RJTT", STATIONS3[51]],
4839
+ ["RKSI", STATIONS3[52]],
4840
+ ["SAEZ", STATIONS3[53]],
4841
+ ["SAT", STATIONS3[31]],
4842
+ ["SBGR", STATIONS3[54]],
4843
+ ["SEA", STATIONS3[32]],
4844
+ ["SFO", STATIONS3[33]],
4845
+ ["SLC", STATIONS3[34]],
4846
+ ["UUEE", STATIONS3[55]],
4847
+ ["VABB", STATIONS3[56]],
4848
+ ["VHHH", STATIONS3[57]],
4849
+ ["VIDP", STATIONS3[58]],
4850
+ ["VTBS", STATIONS3[59]],
4851
+ ["WSSS", STATIONS3[60]],
4852
+ ["YBBN", STATIONS3[61]],
4853
+ ["YMML", STATIONS3[62]],
4854
+ ["YSSY", STATIONS3[63]],
4855
+ ["ZBAA", STATIONS3[64]],
4856
+ ["ZSPD", STATIONS3[65]]
3958
4857
  ]);
3959
4858
  var STATION_BY_ICAO3 = /* @__PURE__ */ new Map([
3960
4859
  ["EDDB", STATIONS3[0]],
@@ -3969,55 +4868,60 @@ var STATION_BY_ICAO3 = /* @__PURE__ */ new Map([
3969
4868
  ["ESSA", STATIONS3[9]],
3970
4869
  ["KATL", STATIONS3[10]],
3971
4870
  ["KAUS", STATIONS3[11]],
3972
- ["KBOS", STATIONS3[12]],
3973
- ["KDCA", STATIONS3[13]],
3974
- ["KDEN", STATIONS3[14]],
3975
- ["KDFW", STATIONS3[15]],
3976
- ["KHOU", STATIONS3[16]],
3977
- ["KLAS", STATIONS3[17]],
3978
- ["KLAX", STATIONS3[18]],
3979
- ["KMDW", STATIONS3[19]],
3980
- ["KMIA", STATIONS3[20]],
3981
- ["KMSP", STATIONS3[21]],
3982
- ["KMSY", STATIONS3[22]],
3983
- ["KNYC", STATIONS3[23]],
3984
- ["KOKC", STATIONS3[24]],
3985
- ["KPHL", STATIONS3[25]],
3986
- ["KPHX", STATIONS3[26]],
3987
- ["KSAT", STATIONS3[27]],
3988
- ["KSEA", STATIONS3[28]],
3989
- ["KSFO", STATIONS3[29]],
3990
- ["LEBL", STATIONS3[30]],
3991
- ["LEMD", STATIONS3[31]],
3992
- ["LFPB", STATIONS3[32]],
3993
- ["LFPG", STATIONS3[33]],
3994
- ["LFPO", STATIONS3[34]],
3995
- ["LIMC", STATIONS3[35]],
3996
- ["LIRF", STATIONS3[36]],
3997
- ["LOWW", STATIONS3[37]],
3998
- ["LSZH", STATIONS3[38]],
3999
- ["NZAA", STATIONS3[39]],
4000
- ["NZWN", STATIONS3[40]],
4001
- ["OERK", STATIONS3[41]],
4002
- ["OMDB", STATIONS3[42]],
4003
- ["OTHH", STATIONS3[43]],
4004
- ["RCTP", STATIONS3[44]],
4005
- ["RJAA", STATIONS3[45]],
4006
- ["RJTT", STATIONS3[46]],
4007
- ["RKSI", STATIONS3[47]],
4008
- ["SAEZ", STATIONS3[48]],
4009
- ["SBGR", STATIONS3[49]],
4010
- ["UUEE", STATIONS3[50]],
4011
- ["VABB", STATIONS3[51]],
4012
- ["VHHH", STATIONS3[52]],
4013
- ["VIDP", STATIONS3[53]],
4014
- ["VTBS", STATIONS3[54]],
4015
- ["WSSS", STATIONS3[55]],
4016
- ["YBBN", STATIONS3[56]],
4017
- ["YMML", STATIONS3[57]],
4018
- ["YSSY", STATIONS3[58]],
4019
- ["ZBAA", STATIONS3[59]],
4020
- ["ZSPD", STATIONS3[60]]
4871
+ ["KBNA", STATIONS3[12]],
4872
+ ["KBOS", STATIONS3[13]],
4873
+ ["KCVG", STATIONS3[14]],
4874
+ ["KDCA", STATIONS3[15]],
4875
+ ["KDEN", STATIONS3[16]],
4876
+ ["KDFW", STATIONS3[17]],
4877
+ ["KDTW", STATIONS3[18]],
4878
+ ["KHOU", STATIONS3[19]],
4879
+ ["KIAH", STATIONS3[20]],
4880
+ ["KLAS", STATIONS3[21]],
4881
+ ["KLAX", STATIONS3[22]],
4882
+ ["KMDW", STATIONS3[23]],
4883
+ ["KMIA", STATIONS3[24]],
4884
+ ["KMSP", STATIONS3[25]],
4885
+ ["KMSY", STATIONS3[26]],
4886
+ ["KNYC", STATIONS3[27]],
4887
+ ["KOKC", STATIONS3[28]],
4888
+ ["KPHL", STATIONS3[29]],
4889
+ ["KPHX", STATIONS3[30]],
4890
+ ["KSAT", STATIONS3[31]],
4891
+ ["KSEA", STATIONS3[32]],
4892
+ ["KSFO", STATIONS3[33]],
4893
+ ["KSLC", STATIONS3[34]],
4894
+ ["LEBL", STATIONS3[35]],
4895
+ ["LEMD", STATIONS3[36]],
4896
+ ["LFPB", STATIONS3[37]],
4897
+ ["LFPG", STATIONS3[38]],
4898
+ ["LFPO", STATIONS3[39]],
4899
+ ["LIMC", STATIONS3[40]],
4900
+ ["LIRF", STATIONS3[41]],
4901
+ ["LOWW", STATIONS3[42]],
4902
+ ["LSZH", STATIONS3[43]],
4903
+ ["NZAA", STATIONS3[44]],
4904
+ ["NZWN", STATIONS3[45]],
4905
+ ["OERK", STATIONS3[46]],
4906
+ ["OMDB", STATIONS3[47]],
4907
+ ["OTHH", STATIONS3[48]],
4908
+ ["RCTP", STATIONS3[49]],
4909
+ ["RJAA", STATIONS3[50]],
4910
+ ["RJTT", STATIONS3[51]],
4911
+ ["RKSI", STATIONS3[52]],
4912
+ ["SAEZ", STATIONS3[53]],
4913
+ ["SBGR", STATIONS3[54]],
4914
+ ["UUEE", STATIONS3[55]],
4915
+ ["VABB", STATIONS3[56]],
4916
+ ["VHHH", STATIONS3[57]],
4917
+ ["VIDP", STATIONS3[58]],
4918
+ ["VTBS", STATIONS3[59]],
4919
+ ["WSSS", STATIONS3[60]],
4920
+ ["YBBN", STATIONS3[61]],
4921
+ ["YMML", STATIONS3[62]],
4922
+ ["YSSY", STATIONS3[63]],
4923
+ ["ZBAA", STATIONS3[64]],
4924
+ ["ZSPD", STATIONS3[65]]
4021
4925
  ]);
4022
4926
  var _STATION_TZ = Object.freeze({
4023
4927
  // Eastern (UTC-5 standard / UTC-4 DST)