@dangahagan/weather-mcp 0.2.0 → 0.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.
- package/README.md +252 -53
- package/dist/config/cache.d.ts +1 -0
- package/dist/config/cache.d.ts.map +1 -1
- package/dist/config/cache.js +45 -2
- package/dist/config/cache.js.map +1 -1
- package/dist/config/displayThresholds.d.ts +83 -0
- package/dist/config/displayThresholds.d.ts.map +1 -0
- package/dist/config/displayThresholds.js +83 -0
- package/dist/config/displayThresholds.js.map +1 -0
- package/dist/errors/ApiError.d.ts +62 -0
- package/dist/errors/ApiError.d.ts.map +1 -0
- package/dist/errors/ApiError.js +147 -0
- package/dist/errors/ApiError.js.map +1 -0
- package/dist/handlers/alertsHandler.d.ts +11 -0
- package/dist/handlers/alertsHandler.d.ts.map +1 -0
- package/dist/handlers/alertsHandler.js +79 -0
- package/dist/handlers/alertsHandler.js.map +1 -0
- package/dist/handlers/currentConditionsHandler.d.ts +11 -0
- package/dist/handlers/currentConditionsHandler.d.ts.map +1 -0
- package/dist/handlers/currentConditionsHandler.js +168 -0
- package/dist/handlers/currentConditionsHandler.js.map +1 -0
- package/dist/handlers/forecastHandler.d.ts +13 -0
- package/dist/handlers/forecastHandler.d.ts.map +1 -0
- package/dist/handlers/forecastHandler.js +226 -0
- package/dist/handlers/forecastHandler.js.map +1 -0
- package/dist/handlers/historicalWeatherHandler.d.ts +12 -0
- package/dist/handlers/historicalWeatherHandler.d.ts.map +1 -0
- package/dist/handlers/historicalWeatherHandler.js +188 -0
- package/dist/handlers/historicalWeatherHandler.js.map +1 -0
- package/dist/handlers/locationHandler.d.ts +11 -0
- package/dist/handlers/locationHandler.d.ts.map +1 -0
- package/dist/handlers/locationHandler.js +113 -0
- package/dist/handlers/locationHandler.js.map +1 -0
- package/dist/handlers/statusHandler.d.ts +12 -0
- package/dist/handlers/statusHandler.d.ts.map +1 -0
- package/dist/handlers/statusHandler.js +106 -0
- package/dist/handlers/statusHandler.js.map +1 -0
- package/dist/index.js +148 -376
- package/dist/index.js.map +1 -1
- package/dist/services/noaa.d.ts +14 -1
- package/dist/services/noaa.d.ts.map +1 -1
- package/dist/services/noaa.js +74 -42
- package/dist/services/noaa.js.map +1 -1
- package/dist/services/openmeteo.d.ts +54 -3
- package/dist/services/openmeteo.d.ts.map +1 -1
- package/dist/services/openmeteo.js +256 -112
- package/dist/services/openmeteo.js.map +1 -1
- package/dist/types/noaa.d.ts +64 -12
- package/dist/types/noaa.d.ts.map +1 -1
- package/dist/types/openmeteo.d.ts +156 -0
- package/dist/types/openmeteo.d.ts.map +1 -1
- package/dist/utils/cache.d.ts +11 -4
- package/dist/utils/cache.d.ts.map +1 -1
- package/dist/utils/cache.js +33 -4
- package/dist/utils/cache.js.map +1 -1
- package/dist/utils/logger.d.ts +59 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +128 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/temperatureConversion.d.ts +12 -0
- package/dist/utils/temperatureConversion.d.ts.map +1 -0
- package/dist/utils/temperatureConversion.js +17 -0
- package/dist/utils/temperatureConversion.js.map +1 -0
- package/dist/utils/validation.d.ts +89 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +177 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +10 -3
|
@@ -1,28 +1,56 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Service for interacting with the Open-Meteo
|
|
3
|
-
* Documentation:
|
|
2
|
+
* Service for interacting with the Open-Meteo APIs
|
|
3
|
+
* Documentation:
|
|
4
|
+
* - Historical Weather: https://open-meteo.com/en/docs/historical-weather-api
|
|
5
|
+
* - Forecast: https://open-meteo.com/en/docs
|
|
6
|
+
* - Geocoding: https://open-meteo.com/en/docs/geocoding-api
|
|
4
7
|
*/
|
|
5
8
|
import axios from 'axios';
|
|
6
9
|
import { Cache } from '../utils/cache.js';
|
|
7
10
|
import { CacheConfig, getHistoricalDataTTL } from '../config/cache.js';
|
|
11
|
+
import { validateLatitude, validateLongitude } from '../utils/validation.js';
|
|
12
|
+
import { RateLimitError, ServiceUnavailableError, InvalidLocationError, DataNotFoundError, ApiError } from '../errors/ApiError.js';
|
|
8
13
|
export class OpenMeteoService {
|
|
9
14
|
client;
|
|
15
|
+
geocodingClient;
|
|
16
|
+
forecastClient;
|
|
10
17
|
maxRetries;
|
|
11
18
|
cache;
|
|
12
19
|
constructor(config = {}) {
|
|
13
|
-
const { baseURL = 'https://archive-api.open-meteo.com/v1', timeout = 30000, maxRetries = 3 } = config;
|
|
20
|
+
const { baseURL = 'https://archive-api.open-meteo.com/v1', geocodingURL = 'https://geocoding-api.open-meteo.com/v1', forecastURL = 'https://api.open-meteo.com/v1', timeout = 30000, maxRetries = 3 } = config;
|
|
14
21
|
this.maxRetries = maxRetries;
|
|
15
22
|
this.cache = new Cache(CacheConfig.maxSize);
|
|
23
|
+
// Historical weather client
|
|
16
24
|
this.client = axios.create({
|
|
17
25
|
baseURL,
|
|
18
26
|
timeout,
|
|
19
27
|
headers: {
|
|
20
28
|
'Accept': 'application/json',
|
|
21
|
-
'User-Agent': 'weather-mcp/0.
|
|
29
|
+
'User-Agent': 'weather-mcp/0.4.0'
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
// Geocoding client
|
|
33
|
+
this.geocodingClient = axios.create({
|
|
34
|
+
baseURL: geocodingURL,
|
|
35
|
+
timeout,
|
|
36
|
+
headers: {
|
|
37
|
+
'Accept': 'application/json',
|
|
38
|
+
'User-Agent': 'weather-mcp/0.4.0'
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
// Forecast client
|
|
42
|
+
this.forecastClient = axios.create({
|
|
43
|
+
baseURL: forecastURL,
|
|
44
|
+
timeout,
|
|
45
|
+
headers: {
|
|
46
|
+
'Accept': 'application/json',
|
|
47
|
+
'User-Agent': 'weather-mcp/0.4.0'
|
|
22
48
|
}
|
|
23
49
|
});
|
|
24
50
|
// Add response interceptor for error handling
|
|
25
51
|
this.client.interceptors.response.use(response => response, error => this.handleError(error));
|
|
52
|
+
this.geocodingClient.interceptors.response.use(response => response, error => this.handleError(error));
|
|
53
|
+
this.forecastClient.interceptors.response.use(response => response, error => this.handleError(error));
|
|
26
54
|
}
|
|
27
55
|
/**
|
|
28
56
|
* Handle API errors with helpful status information
|
|
@@ -34,58 +62,37 @@ export class OpenMeteoService {
|
|
|
34
62
|
// Bad request
|
|
35
63
|
if (status === 400) {
|
|
36
64
|
const reason = data.reason || 'Invalid request parameters';
|
|
37
|
-
throw new
|
|
38
|
-
`Please verify:\n` +
|
|
65
|
+
throw new InvalidLocationError('OpenMeteo', `${reason}\n\nPlease verify:\n` +
|
|
39
66
|
`- Coordinates are valid (latitude: -90 to 90, longitude: -180 to 180)\n` +
|
|
40
67
|
`- Date range is valid (1940 to 5 days ago)\n` +
|
|
41
|
-
`- Parameters are correctly formatted
|
|
42
|
-
`API documentation: https://open-meteo.com/en/docs/historical-weather-api`);
|
|
68
|
+
`- Parameters are correctly formatted`);
|
|
43
69
|
}
|
|
44
70
|
// Rate limit error
|
|
45
71
|
if (status === 429) {
|
|
46
|
-
throw new
|
|
47
|
-
`Please retry later or consider:\n` +
|
|
48
|
-
`- Reducing request frequency\n` +
|
|
49
|
-
`- Using daily instead of hourly data for longer periods\n` +
|
|
50
|
-
`- Upgrading to a commercial plan for higher limits\n\n` +
|
|
51
|
-
`More info: https://open-meteo.com/en/pricing`);
|
|
72
|
+
throw new RateLimitError('OpenMeteo');
|
|
52
73
|
}
|
|
53
74
|
// Server errors
|
|
54
75
|
if (status >= 500) {
|
|
55
|
-
throw new
|
|
56
|
-
`The Open-Meteo API may be experiencing an outage.\n\n` +
|
|
57
|
-
`Check service status:\n` +
|
|
58
|
-
`- Production status: https://open-meteo.com/en/docs/model-updates\n` +
|
|
59
|
-
`- GitHub issues: https://github.com/open-meteo/open-meteo/issues`);
|
|
76
|
+
throw new ServiceUnavailableError('OpenMeteo', error);
|
|
60
77
|
}
|
|
61
78
|
// Other errors
|
|
62
|
-
throw new
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
79
|
+
throw new ApiError(`Open-Meteo API error (${status})`, status, 'OpenMeteo', data.reason || 'Request failed', [
|
|
80
|
+
'https://open-meteo.com/en/docs',
|
|
81
|
+
'https://github.com/open-meteo/open-meteo/issues'
|
|
82
|
+
]);
|
|
66
83
|
}
|
|
67
84
|
// Network errors
|
|
68
85
|
if (error.code === 'ECONNABORTED') {
|
|
69
|
-
throw new
|
|
70
|
-
`If timeouts persist, check:\n` +
|
|
71
|
-
`- Your internet connection\n` +
|
|
72
|
-
`- Service status: https://open-meteo.com/en/docs/model-updates`);
|
|
86
|
+
throw new ServiceUnavailableError('OpenMeteo', error);
|
|
73
87
|
}
|
|
74
88
|
if (error.code === 'ENOTFOUND' || error.code === 'ECONNREFUSED') {
|
|
75
|
-
throw new
|
|
76
|
-
`Possible causes:\n` +
|
|
77
|
-
`- Internet connection issues\n` +
|
|
78
|
-
`- Open-Meteo API service outage\n` +
|
|
79
|
-
`- DNS resolution problems\n\n` +
|
|
80
|
-
`Check:\n` +
|
|
81
|
-
`- Your internet connection\n` +
|
|
82
|
-
`- Service status: https://open-meteo.com/en/docs/model-updates`);
|
|
89
|
+
throw new ServiceUnavailableError('OpenMeteo', error);
|
|
83
90
|
}
|
|
84
91
|
// Generic error
|
|
85
|
-
throw new
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
92
|
+
throw new ApiError(`Open-Meteo API request failed: ${error.message}`, 500, 'OpenMeteo', `Request failed: ${error.message}`, [
|
|
93
|
+
'https://github.com/open-meteo/open-meteo/issues',
|
|
94
|
+
'https://open-meteo.com/en/docs'
|
|
95
|
+
], true);
|
|
89
96
|
}
|
|
90
97
|
/**
|
|
91
98
|
* Make request with retry logic
|
|
@@ -102,7 +109,9 @@ export class OpenMeteoService {
|
|
|
102
109
|
error.message.includes('server error') ||
|
|
103
110
|
error.message.includes('timed out');
|
|
104
111
|
if (shouldRetry) {
|
|
105
|
-
|
|
112
|
+
// Exponential backoff with jitter to prevent thundering herd
|
|
113
|
+
const baseDelay = Math.pow(2, retries) * 1000;
|
|
114
|
+
const delay = baseDelay * (0.5 + Math.random() * 0.5);
|
|
106
115
|
await new Promise(resolve => setTimeout(resolve, delay));
|
|
107
116
|
return this.makeRequest(url, params, retries + 1);
|
|
108
117
|
}
|
|
@@ -203,13 +212,11 @@ export class OpenMeteoService {
|
|
|
203
212
|
* @returns Historical weather data
|
|
204
213
|
*/
|
|
205
214
|
async getHistoricalWeather(latitude, longitude, startDate, endDate, useHourly = true) {
|
|
206
|
-
// Validate coordinates
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
throw new Error(`Invalid longitude: ${longitude}. Must be between -180 and 180.`);
|
|
212
|
-
}
|
|
215
|
+
// Validate coordinates (checks for NaN, Infinity, and range)
|
|
216
|
+
validateLatitude(latitude);
|
|
217
|
+
validateLongitude(longitude);
|
|
218
|
+
// Build parameters once
|
|
219
|
+
const params = this.buildHistoricalParams(latitude, longitude, startDate, endDate, useHourly);
|
|
213
220
|
// Check cache first (if enabled)
|
|
214
221
|
if (CacheConfig.enabled) {
|
|
215
222
|
const cacheKey = Cache.generateKey('openmeteo-historical', latitude, longitude, startDate, endDate, useHourly);
|
|
@@ -217,74 +224,23 @@ export class OpenMeteoService {
|
|
|
217
224
|
if (cached) {
|
|
218
225
|
return cached;
|
|
219
226
|
}
|
|
220
|
-
// Build request parameters
|
|
221
|
-
const params = {
|
|
222
|
-
latitude,
|
|
223
|
-
longitude,
|
|
224
|
-
start_date: startDate,
|
|
225
|
-
end_date: endDate,
|
|
226
|
-
temperature_unit: 'fahrenheit',
|
|
227
|
-
wind_speed_unit: 'mph',
|
|
228
|
-
precipitation_unit: 'inch',
|
|
229
|
-
timezone: 'auto'
|
|
230
|
-
};
|
|
231
|
-
// Request appropriate data granularity
|
|
232
|
-
if (useHourly) {
|
|
233
|
-
// Hourly data for detailed observations
|
|
234
|
-
params.hourly = [
|
|
235
|
-
'temperature_2m',
|
|
236
|
-
'relative_humidity_2m',
|
|
237
|
-
'dewpoint_2m',
|
|
238
|
-
'apparent_temperature',
|
|
239
|
-
'precipitation',
|
|
240
|
-
'rain',
|
|
241
|
-
'snowfall',
|
|
242
|
-
'weather_code',
|
|
243
|
-
'pressure_msl',
|
|
244
|
-
'cloud_cover',
|
|
245
|
-
'wind_speed_10m',
|
|
246
|
-
'wind_direction_10m',
|
|
247
|
-
'wind_gusts_10m'
|
|
248
|
-
].join(',');
|
|
249
|
-
}
|
|
250
|
-
else {
|
|
251
|
-
// Daily summaries for longer time periods
|
|
252
|
-
params.daily = [
|
|
253
|
-
'temperature_2m_max',
|
|
254
|
-
'temperature_2m_min',
|
|
255
|
-
'temperature_2m_mean',
|
|
256
|
-
'apparent_temperature_max',
|
|
257
|
-
'apparent_temperature_min',
|
|
258
|
-
'precipitation_sum',
|
|
259
|
-
'rain_sum',
|
|
260
|
-
'snowfall_sum',
|
|
261
|
-
'precipitation_hours',
|
|
262
|
-
'weather_code',
|
|
263
|
-
'wind_speed_10m_max',
|
|
264
|
-
'wind_gusts_10m_max',
|
|
265
|
-
'wind_direction_10m_dominant'
|
|
266
|
-
].join(',');
|
|
267
|
-
}
|
|
268
227
|
const response = await this.makeRequest('/archive', params);
|
|
269
|
-
|
|
270
|
-
if (useHourly && (!response.hourly || !response.hourly.time || response.hourly.time.length === 0)) {
|
|
271
|
-
throw new Error(`No historical weather data available for the specified date range (${startDate} to ${endDate}).\n\n` +
|
|
272
|
-
'This may occur because:\n' +
|
|
273
|
-
'- The dates are too recent (data has a 5-day delay for most models)\n' +
|
|
274
|
-
'- The dates are before 1940 (earliest available data)\n\n' +
|
|
275
|
-
'Please try adjusting your date range.');
|
|
276
|
-
}
|
|
277
|
-
if (!useHourly && (!response.daily || !response.daily.time || response.daily.time.length === 0)) {
|
|
278
|
-
throw new Error(`No historical weather data available for the specified date range (${startDate} to ${endDate}).\n\n` +
|
|
279
|
-
'Please try adjusting your date range.');
|
|
280
|
-
}
|
|
228
|
+
this.validateResponse(response, startDate, endDate, useHourly);
|
|
281
229
|
// Use smart TTL based on date range
|
|
282
230
|
const ttl = getHistoricalDataTTL(startDate);
|
|
283
231
|
this.cache.set(cacheKey, response, ttl);
|
|
284
232
|
return response;
|
|
285
233
|
}
|
|
286
|
-
// No caching
|
|
287
|
-
|
|
234
|
+
// No caching
|
|
235
|
+
const response = await this.makeRequest('/archive', params);
|
|
236
|
+
this.validateResponse(response, startDate, endDate, useHourly);
|
|
237
|
+
return response;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Build request parameters for historical weather data
|
|
241
|
+
* @private
|
|
242
|
+
*/
|
|
243
|
+
buildHistoricalParams(latitude, longitude, startDate, endDate, useHourly) {
|
|
288
244
|
const params = {
|
|
289
245
|
latitude,
|
|
290
246
|
longitude,
|
|
@@ -332,8 +288,13 @@ export class OpenMeteoService {
|
|
|
332
288
|
'wind_direction_10m_dominant'
|
|
333
289
|
].join(',');
|
|
334
290
|
}
|
|
335
|
-
|
|
336
|
-
|
|
291
|
+
return params;
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Validate that the response contains the expected data
|
|
295
|
+
* @private
|
|
296
|
+
*/
|
|
297
|
+
validateResponse(response, startDate, endDate, useHourly) {
|
|
337
298
|
if (useHourly && (!response.hourly || !response.hourly.time || response.hourly.time.length === 0)) {
|
|
338
299
|
throw new Error(`No historical weather data available for the specified date range (${startDate} to ${endDate}).\n\n` +
|
|
339
300
|
'This may occur because:\n' +
|
|
@@ -345,7 +306,6 @@ export class OpenMeteoService {
|
|
|
345
306
|
throw new Error(`No historical weather data available for the specified date range (${startDate} to ${endDate}).\n\n` +
|
|
346
307
|
'Please try adjusting your date range.');
|
|
347
308
|
}
|
|
348
|
-
return response;
|
|
349
309
|
}
|
|
350
310
|
/**
|
|
351
311
|
* Get weather description from WMO weather code
|
|
@@ -384,5 +344,189 @@ export class OpenMeteoService {
|
|
|
384
344
|
};
|
|
385
345
|
return weatherCodes[code] || `Unknown (code: ${code})`;
|
|
386
346
|
}
|
|
347
|
+
/**
|
|
348
|
+
* Search for locations by name using the Open-Meteo Geocoding API
|
|
349
|
+
*
|
|
350
|
+
* @param query - Location name to search for (e.g., "Paris", "New York, NY", "Tokyo")
|
|
351
|
+
* @param limit - Maximum number of results to return (default: 5, max: 100)
|
|
352
|
+
* @param language - Language for results (default: 'en')
|
|
353
|
+
* @returns Geocoding results with coordinates and metadata
|
|
354
|
+
*/
|
|
355
|
+
async searchLocation(query, limit = 5, language = 'en') {
|
|
356
|
+
if (!query || query.trim().length === 0) {
|
|
357
|
+
throw new InvalidLocationError('OpenMeteo', 'Search query cannot be empty');
|
|
358
|
+
}
|
|
359
|
+
if (query.trim().length === 1) {
|
|
360
|
+
throw new InvalidLocationError('OpenMeteo', 'Search query must be at least 2 characters long');
|
|
361
|
+
}
|
|
362
|
+
// Validate limit
|
|
363
|
+
if (limit < 1 || limit > 100) {
|
|
364
|
+
throw new InvalidLocationError('OpenMeteo', 'Limit must be between 1 and 100');
|
|
365
|
+
}
|
|
366
|
+
// Check cache first (locations don't move, so cache indefinitely)
|
|
367
|
+
if (CacheConfig.enabled) {
|
|
368
|
+
const cacheKey = Cache.generateKey('openmeteo-geocoding', query, limit, language);
|
|
369
|
+
const cached = this.cache.get(cacheKey);
|
|
370
|
+
if (cached) {
|
|
371
|
+
return cached;
|
|
372
|
+
}
|
|
373
|
+
const params = {
|
|
374
|
+
name: query.trim(),
|
|
375
|
+
count: limit,
|
|
376
|
+
language,
|
|
377
|
+
format: 'json'
|
|
378
|
+
};
|
|
379
|
+
const response = await this.geocodingClient.get('/search', { params });
|
|
380
|
+
// Cache indefinitely (locations don't change)
|
|
381
|
+
// Using 30 days as TTL to keep cache from growing unbounded
|
|
382
|
+
this.cache.set(cacheKey, response.data, 30 * 24 * 60 * 60 * 1000);
|
|
383
|
+
return response.data;
|
|
384
|
+
}
|
|
385
|
+
// No caching
|
|
386
|
+
const params = {
|
|
387
|
+
name: query.trim(),
|
|
388
|
+
count: limit,
|
|
389
|
+
language,
|
|
390
|
+
format: 'json'
|
|
391
|
+
};
|
|
392
|
+
const response = await this.geocodingClient.get('/search', { params });
|
|
393
|
+
return response.data;
|
|
394
|
+
}
|
|
395
|
+
/**
|
|
396
|
+
* Get weather forecast from Open-Meteo Forecast API
|
|
397
|
+
*
|
|
398
|
+
* @param latitude - Latitude coordinate (-90 to 90)
|
|
399
|
+
* @param longitude - Longitude coordinate (-180 to 180)
|
|
400
|
+
* @param days - Number of forecast days (1-16, default: 7)
|
|
401
|
+
* @param hourly - Whether to include hourly data (default: false)
|
|
402
|
+
* @returns Weather forecast data
|
|
403
|
+
*/
|
|
404
|
+
async getForecast(latitude, longitude, days = 7, hourly = false) {
|
|
405
|
+
// Validate coordinates
|
|
406
|
+
validateLatitude(latitude);
|
|
407
|
+
validateLongitude(longitude);
|
|
408
|
+
// Validate days
|
|
409
|
+
if (days < 1 || days > 16) {
|
|
410
|
+
throw new InvalidLocationError('OpenMeteo', 'Forecast days must be between 1 and 16');
|
|
411
|
+
}
|
|
412
|
+
// Build parameters
|
|
413
|
+
const params = this.buildForecastParams(latitude, longitude, days, hourly);
|
|
414
|
+
// Check cache first
|
|
415
|
+
if (CacheConfig.enabled) {
|
|
416
|
+
const cacheKey = Cache.generateKey('openmeteo-forecast', latitude, longitude, days, hourly);
|
|
417
|
+
const cached = this.cache.get(cacheKey);
|
|
418
|
+
if (cached) {
|
|
419
|
+
return cached;
|
|
420
|
+
}
|
|
421
|
+
const response = await this.makeRequestToForecast('/forecast', params);
|
|
422
|
+
this.validateForecastResponse(response, hourly);
|
|
423
|
+
// Cache for 2 hours (forecasts update regularly)
|
|
424
|
+
this.cache.set(cacheKey, response, 2 * 60 * 60 * 1000);
|
|
425
|
+
return response;
|
|
426
|
+
}
|
|
427
|
+
// No caching
|
|
428
|
+
const response = await this.makeRequestToForecast('/forecast', params);
|
|
429
|
+
this.validateForecastResponse(response, hourly);
|
|
430
|
+
return response;
|
|
431
|
+
}
|
|
432
|
+
/**
|
|
433
|
+
* Build request parameters for forecast data
|
|
434
|
+
* @private
|
|
435
|
+
*/
|
|
436
|
+
buildForecastParams(latitude, longitude, days, hourly) {
|
|
437
|
+
const params = {
|
|
438
|
+
latitude,
|
|
439
|
+
longitude,
|
|
440
|
+
forecast_days: days,
|
|
441
|
+
temperature_unit: 'fahrenheit',
|
|
442
|
+
wind_speed_unit: 'mph',
|
|
443
|
+
precipitation_unit: 'inch',
|
|
444
|
+
timezone: 'auto'
|
|
445
|
+
};
|
|
446
|
+
// Always include daily data with sunrise/sunset
|
|
447
|
+
params.daily = [
|
|
448
|
+
'weather_code',
|
|
449
|
+
'temperature_2m_max',
|
|
450
|
+
'temperature_2m_min',
|
|
451
|
+
'apparent_temperature_max',
|
|
452
|
+
'apparent_temperature_min',
|
|
453
|
+
'sunrise',
|
|
454
|
+
'sunset',
|
|
455
|
+
'daylight_duration',
|
|
456
|
+
'sunshine_duration',
|
|
457
|
+
'uv_index_max',
|
|
458
|
+
'precipitation_sum',
|
|
459
|
+
'rain_sum',
|
|
460
|
+
'showers_sum',
|
|
461
|
+
'snowfall_sum',
|
|
462
|
+
'precipitation_hours',
|
|
463
|
+
'precipitation_probability_max',
|
|
464
|
+
'wind_speed_10m_max',
|
|
465
|
+
'wind_gusts_10m_max',
|
|
466
|
+
'wind_direction_10m_dominant'
|
|
467
|
+
].join(',');
|
|
468
|
+
// Optionally include hourly data
|
|
469
|
+
if (hourly) {
|
|
470
|
+
params.hourly = [
|
|
471
|
+
'temperature_2m',
|
|
472
|
+
'relative_humidity_2m',
|
|
473
|
+
'dewpoint_2m',
|
|
474
|
+
'apparent_temperature',
|
|
475
|
+
'precipitation_probability',
|
|
476
|
+
'precipitation',
|
|
477
|
+
'rain',
|
|
478
|
+
'showers',
|
|
479
|
+
'snowfall',
|
|
480
|
+
'snow_depth',
|
|
481
|
+
'weather_code',
|
|
482
|
+
'pressure_msl',
|
|
483
|
+
'cloud_cover',
|
|
484
|
+
'visibility',
|
|
485
|
+
'wind_speed_10m',
|
|
486
|
+
'wind_direction_10m',
|
|
487
|
+
'wind_gusts_10m',
|
|
488
|
+
'uv_index',
|
|
489
|
+
'is_day'
|
|
490
|
+
].join(',');
|
|
491
|
+
}
|
|
492
|
+
return params;
|
|
493
|
+
}
|
|
494
|
+
/**
|
|
495
|
+
* Make request to forecast API with retry logic
|
|
496
|
+
* @private
|
|
497
|
+
*/
|
|
498
|
+
async makeRequestToForecast(url, params, retries = 0) {
|
|
499
|
+
try {
|
|
500
|
+
const response = await this.forecastClient.get(url, { params });
|
|
501
|
+
return response.data;
|
|
502
|
+
}
|
|
503
|
+
catch (error) {
|
|
504
|
+
// Retry on rate limit or server errors
|
|
505
|
+
if (retries < this.maxRetries) {
|
|
506
|
+
const shouldRetry = error.message.includes('rate limit') ||
|
|
507
|
+
error.message.includes('server error') ||
|
|
508
|
+
error.message.includes('timed out');
|
|
509
|
+
if (shouldRetry) {
|
|
510
|
+
const baseDelay = Math.pow(2, retries) * 1000;
|
|
511
|
+
const delay = baseDelay * (0.5 + Math.random() * 0.5);
|
|
512
|
+
await new Promise(resolve => setTimeout(resolve, delay));
|
|
513
|
+
return this.makeRequestToForecast(url, params, retries + 1);
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
throw error;
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
/**
|
|
520
|
+
* Validate that the forecast response contains the expected data
|
|
521
|
+
* @private
|
|
522
|
+
*/
|
|
523
|
+
validateForecastResponse(response, hourly) {
|
|
524
|
+
if (hourly && (!response.hourly || !response.hourly.time || response.hourly.time.length === 0)) {
|
|
525
|
+
throw new DataNotFoundError('OpenMeteo', 'No hourly forecast data available for the specified location');
|
|
526
|
+
}
|
|
527
|
+
if (!response.daily || !response.daily.time || response.daily.time.length === 0) {
|
|
528
|
+
throw new DataNotFoundError('OpenMeteo', 'No daily forecast data available for the specified location');
|
|
529
|
+
}
|
|
530
|
+
}
|
|
387
531
|
}
|
|
388
532
|
//# sourceMappingURL=openmeteo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openmeteo.js","sourceRoot":"","sources":["../../src/services/openmeteo.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAoC,MAAM,OAAO,CAAC;AAKzD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAQvE,MAAM,OAAO,gBAAgB;IACnB,MAAM,CAAgB;IACtB,UAAU,CAAS;IACnB,KAAK,CAAQ;IAErB,YAAY,SAAiC,EAAE;QAC7C,MAAM,EACJ,OAAO,GAAG,uCAAuC,EACjD,OAAO,GAAG,KAAK,EACf,UAAU,GAAG,CAAC,EACf,GAAG,MAAM,CAAC;QAEX,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE5C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YACzB,OAAO;YACP,OAAO;YACP,OAAO,EAAE;gBACP,QAAQ,EAAE,kBAAkB;gBAC5B,YAAY,EAAE,mBAAmB;aAClC;SACF,CAAC,CAAC;QAEH,8CAA8C;QAC9C,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CACnC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EACpB,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CACjC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW,CAAC,KAAiB;QACzC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;YACrC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAA8B,CAAC;YAE3D,cAAc;YACd,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;gBACnB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,4BAA4B,CAAC;gBAC3D,MAAM,IAAI,KAAK,CACb,yBAAyB,MAAM,MAAM;oBACrC,kBAAkB;oBAClB,yEAAyE;oBACzE,8CAA8C;oBAC9C,0CAA0C;oBAC1C,0EAA0E,CAC3E,CAAC;YACJ,CAAC;YAED,mBAAmB;YACnB,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CACb,sFAAsF;oBACtF,mCAAmC;oBACnC,gCAAgC;oBAChC,2DAA2D;oBAC3D,wDAAwD;oBACxD,8CAA8C,CAC/C,CAAC;YACJ,CAAC;YAED,gBAAgB;YAChB,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CACb,kEAAkE;oBAClE,uDAAuD;oBACvD,yBAAyB;oBACzB,qEAAqE;oBACrE,kEAAkE,CACnE,CAAC;YACJ,CAAC;YAED,eAAe;YACf,MAAM,IAAI,KAAK,CACb,yBAAyB,MAAM,MAAM,IAAI,CAAC,MAAM,IAAI,gBAAgB,MAAM;gBAC1E,0BAA0B;gBAC1B,uDAAuD;gBACvD,kEAAkE,CACnE,CAAC;QACJ,CAAC;QAED,iBAAiB;QACjB,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CACb,4DAA4D;gBAC5D,+BAA+B;gBAC/B,8BAA8B;gBAC9B,gEAAgE,CACjE,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CACb,0CAA0C;gBAC1C,oBAAoB;gBACpB,gCAAgC;gBAChC,mCAAmC;gBACnC,+BAA+B;gBAC/B,UAAU;gBACV,8BAA8B;gBAC9B,gEAAgE,CACjE,CAAC;QACJ,CAAC;QAED,gBAAgB;QAChB,MAAM,IAAI,KAAK,CACb,kCAAkC,KAAK,CAAC,OAAO,MAAM;YACrD,0BAA0B;YAC1B,oEAAoE;YACpE,iDAAiD,CAClD,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW,CACvB,GAAW,EACX,MAAuC,EACvC,OAAO,GAAG,CAAC;QAEX,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAI,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YAC3D,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,uCAAuC;YACvC,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC9B,MAAM,WAAW,GACd,KAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;oBAC9C,KAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;oBAChD,KAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBAEjD,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,sBAAsB;oBACjE,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;oBACzD,OAAO,IAAI,CAAC,WAAW,CAAI,GAAG,EAAE,MAAM,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,kBAAkB;QAMtB,IAAI,CAAC;YACH,0EAA0E;YAC1E,sEAAsE;YACtE,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;YAC5B,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAErD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE;gBACjD,MAAM,EAAE;oBACN,QAAQ,EAAE,OAAO;oBACjB,SAAS,EAAE,CAAC,MAAM;oBAClB,UAAU,EAAE,OAAO;oBACnB,QAAQ,EAAE,OAAO;oBACjB,KAAK,EAAE,oBAAoB;oBAC3B,QAAQ,EAAE,KAAK;iBAChB;gBACD,OAAO,EAAE,KAAK,CAAC,mCAAmC;aACnD,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC7C,OAAO;oBACL,WAAW,EAAE,IAAI;oBACjB,OAAO,EAAE,+BAA+B;oBACxC,UAAU,EAAE,8CAA8C;oBAC1D,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE,8CAA8C,QAAQ,CAAC,MAAM,EAAE;gBACxE,UAAU,EAAE,8CAA8C;gBAC1D,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,UAAU,GAAG,KAAmB,CAAC;YACvC,IAAI,OAAO,GAAG,2CAA2C,CAAC;YAC1D,IAAI,WAAW,GAAG,KAAK,CAAC;YAExB,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC1C,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;oBACnB,WAAW,GAAG,IAAI,CAAC,CAAC,+BAA+B;oBACnD,OAAO,GAAG,gDAAgD,CAAC;gBAC7D,CAAC;qBAAM,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;oBACzB,OAAO,GAAG,gEAAgE,CAAC;gBAC7E,CAAC;qBAAM,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;oBAC1B,WAAW,GAAG,IAAI,CAAC,CAAC,6DAA6D;oBACjF,OAAO,GAAG,iEAAiE,CAAC;gBAC9E,CAAC;YACH,CAAC;iBAAM,IAAI,UAAU,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBAC9C,OAAO,GAAG,4CAA4C,CAAC;YACzD,CAAC;iBAAM,IAAI,UAAU,CAAC,IAAI,KAAK,WAAW,IAAI,UAAU,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBACjF,OAAO,GAAG,8DAA8D,CAAC;YAC3E,CAAC;YAED,OAAO;gBACL,WAAW;gBACX,OAAO;gBACP,UAAU,EAAE,8CAA8C;gBAC1D,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,oBAAoB,CACxB,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,OAAe,EACf,YAAqB,IAAI;QAEzB,uBAAuB;QACvB,IAAI,QAAQ,GAAG,CAAC,EAAE,IAAI,QAAQ,GAAG,EAAE,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,+BAA+B,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,SAAS,GAAG,CAAC,GAAG,IAAI,SAAS,GAAG,GAAG,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,iCAAiC,CAAC,CAAC;QACpF,CAAC;QAED,iCAAiC;QACjC,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,sBAAsB,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YAC/G,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,MAAqC,CAAC;YAC/C,CAAC;YAED,2BAA2B;YAC3B,MAAM,MAAM,GAAoC;gBAC9C,QAAQ;gBACR,SAAS;gBACT,UAAU,EAAE,SAAS;gBACrB,QAAQ,EAAE,OAAO;gBACjB,gBAAgB,EAAE,YAAY;gBAC9B,eAAe,EAAE,KAAK;gBACtB,kBAAkB,EAAE,MAAM;gBAC1B,QAAQ,EAAE,MAAM;aACjB,CAAC;YAEF,uCAAuC;YACvC,IAAI,SAAS,EAAE,CAAC;gBACd,wCAAwC;gBACxC,MAAM,CAAC,MAAM,GAAG;oBACd,gBAAgB;oBAChB,sBAAsB;oBACtB,aAAa;oBACb,sBAAsB;oBACtB,eAAe;oBACf,MAAM;oBACN,UAAU;oBACV,cAAc;oBACd,cAAc;oBACd,aAAa;oBACb,gBAAgB;oBAChB,oBAAoB;oBACpB,gBAAgB;iBACjB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,0CAA0C;gBAC1C,MAAM,CAAC,KAAK,GAAG;oBACb,oBAAoB;oBACpB,oBAAoB;oBACpB,qBAAqB;oBACrB,0BAA0B;oBAC1B,0BAA0B;oBAC1B,mBAAmB;oBACnB,UAAU;oBACV,cAAc;oBACd,qBAAqB;oBACrB,cAAc;oBACd,oBAAoB;oBACpB,oBAAoB;oBACpB,6BAA6B;iBAC9B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CACrC,UAAU,EACV,MAAM,CACP,CAAC;YAEF,6BAA6B;YAC7B,IAAI,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;gBAClG,MAAM,IAAI,KAAK,CACb,sEAAsE,SAAS,OAAO,OAAO,QAAQ;oBACrG,2BAA2B;oBAC3B,uEAAuE;oBACvE,2DAA2D;oBAC3D,uCAAuC,CACxC,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;gBAChG,MAAM,IAAI,KAAK,CACb,sEAAsE,SAAS,OAAO,OAAO,QAAQ;oBACrG,uCAAuC,CACxC,CAAC;YACJ,CAAC;YAED,oCAAoC;YACpC,MAAM,GAAG,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;YAExC,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,8BAA8B;QAC9B,2BAA2B;QAC3B,MAAM,MAAM,GAAoC;YAC9C,QAAQ;YACR,SAAS;YACT,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,OAAO;YACjB,gBAAgB,EAAE,YAAY;YAC9B,eAAe,EAAE,KAAK;YACtB,kBAAkB,EAAE,MAAM;YAC1B,QAAQ,EAAE,MAAM;SACjB,CAAC;QAEF,uCAAuC;QACvC,IAAI,SAAS,EAAE,CAAC;YACd,wCAAwC;YACxC,MAAM,CAAC,MAAM,GAAG;gBACd,gBAAgB;gBAChB,sBAAsB;gBACtB,aAAa;gBACb,sBAAsB;gBACtB,eAAe;gBACf,MAAM;gBACN,UAAU;gBACV,cAAc;gBACd,cAAc;gBACd,aAAa;gBACb,gBAAgB;gBAChB,oBAAoB;gBACpB,gBAAgB;aACjB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACd,CAAC;aAAM,CAAC;YACN,0CAA0C;YAC1C,MAAM,CAAC,KAAK,GAAG;gBACb,oBAAoB;gBACpB,oBAAoB;gBACpB,qBAAqB;gBACrB,0BAA0B;gBAC1B,0BAA0B;gBAC1B,mBAAmB;gBACnB,UAAU;gBACV,cAAc;gBACd,qBAAqB;gBACrB,cAAc;gBACd,oBAAoB;gBACpB,oBAAoB;gBACpB,6BAA6B;aAC9B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CACrC,UAAU,EACV,MAAM,CACP,CAAC;QAEF,6BAA6B;QAC7B,IAAI,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YAClG,MAAM,IAAI,KAAK,CACb,sEAAsE,SAAS,OAAO,OAAO,QAAQ;gBACrG,2BAA2B;gBAC3B,uEAAuE;gBACvE,2DAA2D;gBAC3D,uCAAuC,CACxC,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YAChG,MAAM,IAAI,KAAK,CACb,sEAAsE,SAAS,OAAO,OAAO,QAAQ;gBACrG,uCAAuC,CACxC,CAAC;QACJ,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,qBAAqB,CAAC,IAAY;QAChC,MAAM,YAAY,GAA8B;YAC9C,CAAC,EAAE,WAAW;YACd,CAAC,EAAE,cAAc;YACjB,CAAC,EAAE,eAAe;YAClB,CAAC,EAAE,UAAU;YACb,EAAE,EAAE,OAAO;YACX,EAAE,EAAE,qBAAqB;YACzB,EAAE,EAAE,eAAe;YACnB,EAAE,EAAE,kBAAkB;YACtB,EAAE,EAAE,eAAe;YACnB,EAAE,EAAE,wBAAwB;YAC5B,EAAE,EAAE,wBAAwB;YAC5B,EAAE,EAAE,aAAa;YACjB,EAAE,EAAE,eAAe;YACnB,EAAE,EAAE,YAAY;YAChB,EAAE,EAAE,qBAAqB;YACzB,EAAE,EAAE,qBAAqB;YACzB,EAAE,EAAE,aAAa;YACjB,EAAE,EAAE,eAAe;YACnB,EAAE,EAAE,YAAY;YAChB,EAAE,EAAE,aAAa;YACjB,EAAE,EAAE,qBAAqB;YACzB,EAAE,EAAE,uBAAuB;YAC3B,EAAE,EAAE,sBAAsB;YAC1B,EAAE,EAAE,qBAAqB;YACzB,EAAE,EAAE,oBAAoB;YACxB,EAAE,EAAE,cAAc;YAClB,EAAE,EAAE,+BAA+B;YACnC,EAAE,EAAE,8BAA8B;SACnC,CAAC;QAEF,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,kBAAkB,IAAI,GAAG,CAAC;IACzD,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"openmeteo.js","sourceRoot":"","sources":["../../src/services/openmeteo.ts"],"names":[],"mappings":"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"}
|
package/dist/types/noaa.d.ts
CHANGED
|
@@ -128,20 +128,20 @@ export interface ObservationProperties {
|
|
|
128
128
|
}>;
|
|
129
129
|
temperature: QuantitativeValue;
|
|
130
130
|
dewpoint: QuantitativeValue;
|
|
131
|
-
windDirection
|
|
131
|
+
windDirection?: QuantitativeValue;
|
|
132
132
|
windSpeed: QuantitativeValue;
|
|
133
|
-
windGust
|
|
134
|
-
barometricPressure
|
|
135
|
-
seaLevelPressure
|
|
136
|
-
visibility
|
|
137
|
-
maxTemperatureLast24Hours
|
|
138
|
-
minTemperatureLast24Hours
|
|
139
|
-
precipitationLastHour
|
|
140
|
-
precipitationLast3Hours
|
|
141
|
-
precipitationLast6Hours
|
|
133
|
+
windGust?: QuantitativeValue;
|
|
134
|
+
barometricPressure?: QuantitativeValue;
|
|
135
|
+
seaLevelPressure?: QuantitativeValue;
|
|
136
|
+
visibility?: QuantitativeValue;
|
|
137
|
+
maxTemperatureLast24Hours?: QuantitativeValue;
|
|
138
|
+
minTemperatureLast24Hours?: QuantitativeValue;
|
|
139
|
+
precipitationLastHour?: QuantitativeValue;
|
|
140
|
+
precipitationLast3Hours?: QuantitativeValue;
|
|
141
|
+
precipitationLast6Hours?: QuantitativeValue;
|
|
142
142
|
relativeHumidity: QuantitativeValue;
|
|
143
|
-
windChill
|
|
144
|
-
heatIndex
|
|
143
|
+
windChill?: QuantitativeValue;
|
|
144
|
+
heatIndex?: QuantitativeValue;
|
|
145
145
|
cloudLayers?: Array<{
|
|
146
146
|
base: QuantitativeValue;
|
|
147
147
|
amount: string;
|
|
@@ -191,6 +191,58 @@ export interface NOAAErrorResponse {
|
|
|
191
191
|
detail: string;
|
|
192
192
|
instance?: string;
|
|
193
193
|
}
|
|
194
|
+
/**
|
|
195
|
+
* Weather alert properties from /alerts endpoint
|
|
196
|
+
*/
|
|
197
|
+
export interface AlertProperties {
|
|
198
|
+
'@id': string;
|
|
199
|
+
'@type': string;
|
|
200
|
+
id: string;
|
|
201
|
+
areaDesc: string;
|
|
202
|
+
geocode: {
|
|
203
|
+
SAME?: string[];
|
|
204
|
+
UGC?: string[];
|
|
205
|
+
};
|
|
206
|
+
affectedZones: string[];
|
|
207
|
+
references: Array<{
|
|
208
|
+
'@id': string;
|
|
209
|
+
identifier: string;
|
|
210
|
+
sender: string;
|
|
211
|
+
sent: string;
|
|
212
|
+
}>;
|
|
213
|
+
sent: string;
|
|
214
|
+
effective: string;
|
|
215
|
+
onset: string | null;
|
|
216
|
+
expires: string;
|
|
217
|
+
ends: string | null;
|
|
218
|
+
status: 'Actual' | 'Exercise' | 'System' | 'Test' | 'Draft';
|
|
219
|
+
messageType: 'Alert' | 'Update' | 'Cancel' | 'Ack' | 'Error';
|
|
220
|
+
category: 'Met' | 'Geo' | 'Safety' | 'Security' | 'Rescue' | 'Fire' | 'Health' | 'Env' | 'Transport' | 'Infra' | 'CBRNE' | 'Other';
|
|
221
|
+
severity: 'Extreme' | 'Severe' | 'Moderate' | 'Minor' | 'Unknown';
|
|
222
|
+
certainty: 'Observed' | 'Likely' | 'Possible' | 'Unlikely' | 'Unknown';
|
|
223
|
+
urgency: 'Immediate' | 'Expected' | 'Future' | 'Past' | 'Unknown';
|
|
224
|
+
event: string;
|
|
225
|
+
sender: string;
|
|
226
|
+
senderName: string;
|
|
227
|
+
headline: string | null;
|
|
228
|
+
description: string;
|
|
229
|
+
instruction: string | null;
|
|
230
|
+
response: 'Shelter' | 'Evacuate' | 'Prepare' | 'Execute' | 'Avoid' | 'Monitor' | 'Assess' | 'AllClear' | 'None';
|
|
231
|
+
parameters: {
|
|
232
|
+
[key: string]: string[];
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
export type AlertResponse = NOAAResponse<AlertProperties>;
|
|
236
|
+
/**
|
|
237
|
+
* Collection of alerts from /alerts endpoint
|
|
238
|
+
*/
|
|
239
|
+
export interface AlertCollectionResponse {
|
|
240
|
+
'@context'?: unknown;
|
|
241
|
+
type: string;
|
|
242
|
+
features: AlertResponse[];
|
|
243
|
+
title?: string;
|
|
244
|
+
updated?: string;
|
|
245
|
+
}
|
|
194
246
|
/**
|
|
195
247
|
* Helper type for converting units
|
|
196
248
|
*/
|
package/dist/types/noaa.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"noaa.d.ts","sourceRoot":"","sources":["../../src/types/noaa.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"noaa.d.ts","sourceRoot":"","sources":["../../src/types/noaa.ts"],"names":[],"mappings":"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"}
|