@dangahagan/weather-mcp 0.1.2 → 0.2.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 +46 -2
- package/dist/config/cache.d.ts +29 -0
- package/dist/config/cache.d.ts.map +1 -0
- package/dist/config/cache.js +62 -0
- package/dist/config/cache.js.map +1 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -1
- package/dist/services/noaa.d.ts +9 -0
- package/dist/services/noaa.d.ts.map +1 -1
- package/dist/services/noaa.js +81 -0
- package/dist/services/noaa.js.map +1 -1
- package/dist/services/openmeteo.d.ts +9 -0
- package/dist/services/openmeteo.d.ts.map +1 -1
- package/dist/services/openmeteo.js +90 -0
- package/dist/services/openmeteo.js.map +1 -1
- package/dist/utils/cache.d.ts +62 -0
- package/dist/utils/cache.d.ts.map +1 -0
- package/dist/utils/cache.js +135 -0
- package/dist/utils/cache.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -19,6 +19,49 @@ An MCP (Model Context Protocol) server that provides weather data to AI systems
|
|
|
19
19
|
- Archival data (>7 days old): Hourly/daily weather data from 1940-present via Open-Meteo (global coverage)
|
|
20
20
|
- **Service Status Checking**: Proactively verify API availability with health checks
|
|
21
21
|
- **Enhanced Error Handling**: Detailed, actionable error messages with status page links
|
|
22
|
+
- **Intelligent Caching**: Built-in in-memory cache reduces API calls and improves performance
|
|
23
|
+
|
|
24
|
+
## Caching
|
|
25
|
+
|
|
26
|
+
The Weather MCP server includes an intelligent in-memory caching system that significantly improves performance for AI-driven weather queries.
|
|
27
|
+
|
|
28
|
+
### Benefits
|
|
29
|
+
|
|
30
|
+
- **Faster Responses**: Cached queries return in <10ms vs 200-1000ms for API calls
|
|
31
|
+
- **Reduced API Load**: 50-80% fewer API calls for typical AI conversation patterns
|
|
32
|
+
- **Rate Limit Protection**: Prevents hitting API rate limits during heavy usage
|
|
33
|
+
- **Automatic Management**: Smart TTL-based expiration with LRU eviction
|
|
34
|
+
|
|
35
|
+
### How It Works
|
|
36
|
+
|
|
37
|
+
The cache automatically stores and retrieves weather data with intelligent expiration:
|
|
38
|
+
|
|
39
|
+
- **Forecasts**: Cached for 2 hours (updated approximately hourly)
|
|
40
|
+
- **Current Conditions**: Cached for 15 minutes (observations update every 20-60 minutes)
|
|
41
|
+
- **Historical Data (>1 day old)**: Cached indefinitely (finalized data never changes)
|
|
42
|
+
- **Recent Historical (<1 day)**: Cached for 1 hour (may still be updated)
|
|
43
|
+
- **Grid Coordinates**: Cached indefinitely (geographic mappings are static)
|
|
44
|
+
|
|
45
|
+
### Configuration
|
|
46
|
+
|
|
47
|
+
Caching is **enabled by default** with sensible settings. To customize:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
# Disable caching (not recommended)
|
|
51
|
+
export CACHE_ENABLED=false
|
|
52
|
+
|
|
53
|
+
# Adjust maximum cache size (default: 1000 entries)
|
|
54
|
+
export CACHE_MAX_SIZE=1500
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Monitoring
|
|
58
|
+
|
|
59
|
+
Use the `check_service_status` tool to view cache statistics including:
|
|
60
|
+
- Hit rate percentage
|
|
61
|
+
- Cache size and utilization
|
|
62
|
+
- API call reduction metrics
|
|
63
|
+
|
|
64
|
+
For detailed information about caching architecture and configuration, see [.github/CACHING.md](./.github/CACHING.md).
|
|
22
65
|
|
|
23
66
|
## Installation
|
|
24
67
|
|
|
@@ -128,12 +171,12 @@ All tools require latitude and longitude coordinates. You can find coordinates f
|
|
|
128
171
|
## Available Tools
|
|
129
172
|
|
|
130
173
|
### 1. check_service_status
|
|
131
|
-
Check the operational status of weather APIs.
|
|
174
|
+
Check the operational status of weather APIs and cache performance.
|
|
132
175
|
|
|
133
176
|
**Parameters:** None
|
|
134
177
|
|
|
135
178
|
**Description:**
|
|
136
|
-
Performs health checks on both NOAA and Open-Meteo APIs to verify they are operational. Use this tool when experiencing errors or to proactively verify service availability before making weather data requests. Returns current status, helpful messages,
|
|
179
|
+
Performs health checks on both NOAA and Open-Meteo APIs to verify they are operational. Use this tool when experiencing errors or to proactively verify service availability before making weather data requests. Returns current status, helpful messages, links to official status pages, and cache statistics.
|
|
137
180
|
|
|
138
181
|
**Example:**
|
|
139
182
|
```
|
|
@@ -143,6 +186,7 @@ Check if the weather services are operational
|
|
|
143
186
|
**Returns:**
|
|
144
187
|
- Operational status for NOAA API (forecasts & current conditions)
|
|
145
188
|
- Operational status for Open-Meteo API (historical data)
|
|
189
|
+
- Cache statistics (hit rate, size, API call reduction)
|
|
146
190
|
- Status page links and recommended actions if issues are detected
|
|
147
191
|
- Overall service availability summary
|
|
148
192
|
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cache configuration for weather data
|
|
3
|
+
*
|
|
4
|
+
* TTL (Time To Live) values are set based on data volatility:
|
|
5
|
+
* - Historical data: Never changes once recorded
|
|
6
|
+
* - Geographic data: Static (grid coordinates, station locations)
|
|
7
|
+
* - Forecasts: Updated approximately hourly
|
|
8
|
+
* - Current conditions: Observations typically update every 20-60 minutes
|
|
9
|
+
*/
|
|
10
|
+
export declare const CacheConfig: {
|
|
11
|
+
readonly enabled: boolean;
|
|
12
|
+
readonly maxSize: number;
|
|
13
|
+
readonly ttl: {
|
|
14
|
+
readonly gridCoordinates: number;
|
|
15
|
+
readonly stations: number;
|
|
16
|
+
readonly forecast: number;
|
|
17
|
+
readonly currentConditions: number;
|
|
18
|
+
readonly recentHistorical: number;
|
|
19
|
+
readonly historicalData: number;
|
|
20
|
+
readonly serviceStatus: number;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Determine appropriate TTL for historical weather data based on date
|
|
25
|
+
* @param startDate Start date of the historical query
|
|
26
|
+
* @returns TTL in milliseconds
|
|
27
|
+
*/
|
|
28
|
+
export declare function getHistoricalDataTTL(startDate: string | Date): number;
|
|
29
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/config/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,eAAO,MAAM,WAAW;;;;;;;;;;;;CAqCd,CAAC;AAEX;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAYrE"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cache configuration for weather data
|
|
3
|
+
*
|
|
4
|
+
* TTL (Time To Live) values are set based on data volatility:
|
|
5
|
+
* - Historical data: Never changes once recorded
|
|
6
|
+
* - Geographic data: Static (grid coordinates, station locations)
|
|
7
|
+
* - Forecasts: Updated approximately hourly
|
|
8
|
+
* - Current conditions: Observations typically update every 20-60 minutes
|
|
9
|
+
*/
|
|
10
|
+
// Time constants in milliseconds
|
|
11
|
+
const MINUTE = 60 * 1000;
|
|
12
|
+
const HOUR = 60 * MINUTE;
|
|
13
|
+
const DAY = 24 * HOUR;
|
|
14
|
+
export const CacheConfig = {
|
|
15
|
+
// Enable/disable caching globally
|
|
16
|
+
enabled: process.env.CACHE_ENABLED !== 'false', // Default: enabled
|
|
17
|
+
// Maximum number of entries in cache before LRU eviction
|
|
18
|
+
maxSize: parseInt(process.env.CACHE_MAX_SIZE || '1000', 10),
|
|
19
|
+
// TTL values for different data types
|
|
20
|
+
ttl: {
|
|
21
|
+
// Grid coordinate lookups (lat/lon -> grid mapping)
|
|
22
|
+
// These are geographic and never change
|
|
23
|
+
gridCoordinates: Infinity,
|
|
24
|
+
// Weather station lists
|
|
25
|
+
// Stations rarely change
|
|
26
|
+
stations: 24 * HOUR,
|
|
27
|
+
// 7-day forecasts
|
|
28
|
+
// NOAA updates forecasts approximately hourly
|
|
29
|
+
forecast: 2 * HOUR,
|
|
30
|
+
// Current weather conditions
|
|
31
|
+
// Observations typically update every 20-60 minutes
|
|
32
|
+
currentConditions: 15 * MINUTE,
|
|
33
|
+
// Recent historical data (< 7 days old)
|
|
34
|
+
// Recent data may still be updated/corrected
|
|
35
|
+
recentHistorical: 1 * HOUR,
|
|
36
|
+
// Historical data (> 1 day old from current time)
|
|
37
|
+
// Historical data beyond 1 day is finalized and won't change
|
|
38
|
+
historicalData: Infinity,
|
|
39
|
+
// Service health check status
|
|
40
|
+
// Check freshness periodically
|
|
41
|
+
serviceStatus: 5 * MINUTE,
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Determine appropriate TTL for historical weather data based on date
|
|
46
|
+
* @param startDate Start date of the historical query
|
|
47
|
+
* @returns TTL in milliseconds
|
|
48
|
+
*/
|
|
49
|
+
export function getHistoricalDataTTL(startDate) {
|
|
50
|
+
const start = typeof startDate === 'string' ? new Date(startDate) : startDate;
|
|
51
|
+
const now = new Date();
|
|
52
|
+
const daysDiff = (now.getTime() - start.getTime()) / DAY;
|
|
53
|
+
if (daysDiff > 1) {
|
|
54
|
+
// Data is more than 1 day old - it's finalized and won't change
|
|
55
|
+
return CacheConfig.ttl.historicalData;
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
// Recent data may still be updated
|
|
59
|
+
return CacheConfig.ttl.recentHistorical;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/config/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,iCAAiC;AACjC,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC;AACzB,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC;AACzB,MAAM,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC;AAEtB,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,kCAAkC;IAClC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,OAAO,EAAE,mBAAmB;IAEnE,yDAAyD;IACzD,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,MAAM,EAAE,EAAE,CAAC;IAE3D,sCAAsC;IACtC,GAAG,EAAE;QACH,oDAAoD;QACpD,wCAAwC;QACxC,eAAe,EAAE,QAAQ;QAEzB,wBAAwB;QACxB,yBAAyB;QACzB,QAAQ,EAAE,EAAE,GAAG,IAAI;QAEnB,kBAAkB;QAClB,8CAA8C;QAC9C,QAAQ,EAAE,CAAC,GAAG,IAAI;QAElB,6BAA6B;QAC7B,oDAAoD;QACpD,iBAAiB,EAAE,EAAE,GAAG,MAAM;QAE9B,wCAAwC;QACxC,6CAA6C;QAC7C,gBAAgB,EAAE,CAAC,GAAG,IAAI;QAE1B,kDAAkD;QAClD,6DAA6D;QAC7D,cAAc,EAAE,QAAQ;QAExB,8BAA8B;QAC9B,+BAA+B;QAC/B,aAAa,EAAE,CAAC,GAAG,MAAM;KAC1B;CACO,CAAC;AAEX;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAAwB;IAC3D,MAAM,KAAK,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG,CAAC;IAEzD,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACjB,gEAAgE;QAChE,OAAO,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,mCAAmC;QACnC,OAAO,WAAW,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC1C,CAAC;AACH,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -10,6 +10,7 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
|
|
|
10
10
|
import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
11
11
|
import { NOAAService } from './services/noaa.js';
|
|
12
12
|
import { OpenMeteoService } from './services/openmeteo.js';
|
|
13
|
+
import { CacheConfig } from './config/cache.js';
|
|
13
14
|
/**
|
|
14
15
|
* Server information
|
|
15
16
|
*/
|
|
@@ -451,6 +452,39 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
451
452
|
output += `- View GitHub issues: https://github.com/open-meteo/open-meteo/issues\n`;
|
|
452
453
|
output += `- Review documentation: https://open-meteo.com/en/docs\n\n`;
|
|
453
454
|
}
|
|
455
|
+
// Cache Statistics
|
|
456
|
+
if (CacheConfig.enabled) {
|
|
457
|
+
output += `## Cache Statistics\n\n`;
|
|
458
|
+
const noaaStats = noaaService.getCacheStats();
|
|
459
|
+
const openMeteoStats = openMeteoService.getCacheStats();
|
|
460
|
+
const totalHits = noaaStats.hits + openMeteoStats.hits;
|
|
461
|
+
const totalMisses = noaaStats.misses + openMeteoStats.misses;
|
|
462
|
+
const totalRequests = totalHits + totalMisses;
|
|
463
|
+
const overallHitRate = totalRequests > 0 ? ((totalHits / totalRequests) * 100).toFixed(1) : '0.0';
|
|
464
|
+
output += `**Cache Status:** ✅ Enabled\n`;
|
|
465
|
+
output += `**Overall Hit Rate:** ${overallHitRate}%\n`;
|
|
466
|
+
output += `**Total Cache Hits:** ${totalHits}\n`;
|
|
467
|
+
output += `**Total Cache Misses:** ${totalMisses}\n`;
|
|
468
|
+
output += `**Total Requests:** ${totalRequests}\n\n`;
|
|
469
|
+
output += `### NOAA Service Cache\n`;
|
|
470
|
+
output += `- Entries: ${noaaStats.size} / ${noaaStats.maxSize}\n`;
|
|
471
|
+
output += `- Hit Rate: ${noaaService.cache.getHitRate().toFixed(1)}%\n`;
|
|
472
|
+
output += `- Hits: ${noaaStats.hits}\n`;
|
|
473
|
+
output += `- Misses: ${noaaStats.misses}\n`;
|
|
474
|
+
output += `- Evictions: ${noaaStats.evictions}\n\n`;
|
|
475
|
+
output += `### Open-Meteo Service Cache\n`;
|
|
476
|
+
output += `- Entries: ${openMeteoStats.size} / ${openMeteoStats.maxSize}\n`;
|
|
477
|
+
output += `- Hit Rate: ${openMeteoService.cache.getHitRate().toFixed(1)}%\n`;
|
|
478
|
+
output += `- Hits: ${openMeteoStats.hits}\n`;
|
|
479
|
+
output += `- Misses: ${openMeteoStats.misses}\n`;
|
|
480
|
+
output += `- Evictions: ${openMeteoStats.evictions}\n\n`;
|
|
481
|
+
output += `*Cache reduces API calls and improves performance for repeated queries.*\n\n`;
|
|
482
|
+
}
|
|
483
|
+
else {
|
|
484
|
+
output += `## Cache Statistics\n\n`;
|
|
485
|
+
output += `**Cache Status:** ❌ Disabled\n`;
|
|
486
|
+
output += `*Set CACHE_ENABLED=true in environment to enable caching.*\n\n`;
|
|
487
|
+
}
|
|
454
488
|
// Overall status summary
|
|
455
489
|
const bothOperational = noaaStatus.operational && openMeteoStatus.operational;
|
|
456
490
|
const neitherOperational = !noaaStatus.operational && !openMeteoStatus.operational;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/services/noaa.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export interface NOAAServiceConfig {
|
|
|
11
11
|
export declare class NOAAService {
|
|
12
12
|
private client;
|
|
13
13
|
private maxRetries;
|
|
14
|
+
private cache;
|
|
14
15
|
constructor(config?: NOAAServiceConfig);
|
|
15
16
|
/**
|
|
16
17
|
* Handle API errors with retry logic and helpful status information
|
|
@@ -20,6 +21,14 @@ export declare class NOAAService {
|
|
|
20
21
|
* Make request with retry logic
|
|
21
22
|
*/
|
|
22
23
|
private makeRequest;
|
|
24
|
+
/**
|
|
25
|
+
* Get cache statistics
|
|
26
|
+
*/
|
|
27
|
+
getCacheStats(): import("../utils/cache.js").CacheStats;
|
|
28
|
+
/**
|
|
29
|
+
* Clear the cache
|
|
30
|
+
*/
|
|
31
|
+
clearCache(): void;
|
|
23
32
|
/**
|
|
24
33
|
* Check if the NOAA API is operational
|
|
25
34
|
* Performs a lightweight health check by requesting a well-known endpoint
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"noaa.d.ts","sourceRoot":"","sources":["../../src/services/noaa.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,6BAA6B,EAC7B,yBAAyB,EAE1B,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"noaa.d.ts","sourceRoot":"","sources":["../../src/services/noaa.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,6BAA6B,EAC7B,yBAAyB,EAE1B,MAAM,kBAAkB,CAAC;AAI1B,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,KAAK,CAAQ;gBAET,MAAM,GAAE,iBAAsB;IA2B1C;;OAEG;YACW,WAAW;IA2EzB;;OAEG;YACW,WAAW;IAyBzB;;OAEG;IACH,aAAa;IAIb;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;;;OAIG;IACG,kBAAkB,IAAI,OAAO,CAAC;QAClC,WAAW,EAAE,OAAO,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAqDF;;;OAGG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA6BhF;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqB1F;;OAEG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAKhG;;;OAGG;IACG,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAM9F;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAqB1F;;OAEG;IACG,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAqB3E;;OAEG;IACG,eAAe,CACnB,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,IAAI,EAChB,OAAO,CAAC,EAAE,IAAI,EACd,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,6BAA6B,CAAC;IAuDzC;;;OAGG;IACG,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAqB7F;;OAEG;IACG,yBAAyB,CAC7B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,IAAI,EACf,OAAO,EAAE,IAAI,EACb,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,6BAA6B,CAAC;CAyB1C"}
|
package/dist/services/noaa.js
CHANGED
|
@@ -2,12 +2,16 @@
|
|
|
2
2
|
* Service for interacting with the NOAA Weather API
|
|
3
3
|
*/
|
|
4
4
|
import axios from 'axios';
|
|
5
|
+
import { Cache } from '../utils/cache.js';
|
|
6
|
+
import { CacheConfig, getHistoricalDataTTL } from '../config/cache.js';
|
|
5
7
|
export class NOAAService {
|
|
6
8
|
client;
|
|
7
9
|
maxRetries;
|
|
10
|
+
cache;
|
|
8
11
|
constructor(config = {}) {
|
|
9
12
|
const { userAgent = '(weather-mcp, contact@example.com)', baseURL = 'https://api.weather.gov', timeout = 30000, maxRetries = 3 } = config;
|
|
10
13
|
this.maxRetries = maxRetries;
|
|
14
|
+
this.cache = new Cache(CacheConfig.maxSize);
|
|
11
15
|
this.client = axios.create({
|
|
12
16
|
baseURL,
|
|
13
17
|
timeout,
|
|
@@ -100,6 +104,18 @@ export class NOAAService {
|
|
|
100
104
|
throw error;
|
|
101
105
|
}
|
|
102
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Get cache statistics
|
|
109
|
+
*/
|
|
110
|
+
getCacheStats() {
|
|
111
|
+
return this.cache.getStats();
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Clear the cache
|
|
115
|
+
*/
|
|
116
|
+
clearCache() {
|
|
117
|
+
this.cache.clear();
|
|
118
|
+
}
|
|
103
119
|
/**
|
|
104
120
|
* Check if the NOAA API is operational
|
|
105
121
|
* Performs a lightweight health check by requesting a well-known endpoint
|
|
@@ -170,6 +186,19 @@ export class NOAAService {
|
|
|
170
186
|
if (longitude < -180 || longitude > 180) {
|
|
171
187
|
throw new Error(`Invalid longitude: ${longitude}. Must be between -180 and 180.`);
|
|
172
188
|
}
|
|
189
|
+
// Check cache first (if enabled)
|
|
190
|
+
if (CacheConfig.enabled) {
|
|
191
|
+
const cacheKey = Cache.generateKey('points', latitude.toFixed(4), longitude.toFixed(4));
|
|
192
|
+
const cached = this.cache.get(cacheKey);
|
|
193
|
+
if (cached) {
|
|
194
|
+
return cached;
|
|
195
|
+
}
|
|
196
|
+
const url = `/points/${latitude.toFixed(4)},${longitude.toFixed(4)}`;
|
|
197
|
+
const result = await this.makeRequest(url);
|
|
198
|
+
// Cache with infinite TTL (grid coordinates never change)
|
|
199
|
+
this.cache.set(cacheKey, result, CacheConfig.ttl.gridCoordinates);
|
|
200
|
+
return result;
|
|
201
|
+
}
|
|
173
202
|
const url = `/points/${latitude.toFixed(4)},${longitude.toFixed(4)}`;
|
|
174
203
|
return this.makeRequest(url);
|
|
175
204
|
}
|
|
@@ -177,6 +206,19 @@ export class NOAAService {
|
|
|
177
206
|
* Get forecast for a location using grid coordinates
|
|
178
207
|
*/
|
|
179
208
|
async getForecast(office, gridX, gridY) {
|
|
209
|
+
// Check cache first (if enabled)
|
|
210
|
+
if (CacheConfig.enabled) {
|
|
211
|
+
const cacheKey = Cache.generateKey('forecast', office, gridX, gridY);
|
|
212
|
+
const cached = this.cache.get(cacheKey);
|
|
213
|
+
if (cached) {
|
|
214
|
+
return cached;
|
|
215
|
+
}
|
|
216
|
+
const url = `/gridpoints/${office}/${gridX},${gridY}/forecast`;
|
|
217
|
+
const result = await this.makeRequest(url);
|
|
218
|
+
// Cache with forecast TTL (2 hours)
|
|
219
|
+
this.cache.set(cacheKey, result, CacheConfig.ttl.forecast);
|
|
220
|
+
return result;
|
|
221
|
+
}
|
|
180
222
|
const url = `/gridpoints/${office}/${gridX},${gridY}/forecast`;
|
|
181
223
|
return this.makeRequest(url);
|
|
182
224
|
}
|
|
@@ -200,6 +242,19 @@ export class NOAAService {
|
|
|
200
242
|
* Get nearest observation stations for a location
|
|
201
243
|
*/
|
|
202
244
|
async getStations(latitude, longitude) {
|
|
245
|
+
// Check cache first (if enabled)
|
|
246
|
+
if (CacheConfig.enabled) {
|
|
247
|
+
const cacheKey = Cache.generateKey('stations', latitude.toFixed(4), longitude.toFixed(4));
|
|
248
|
+
const cached = this.cache.get(cacheKey);
|
|
249
|
+
if (cached) {
|
|
250
|
+
return cached;
|
|
251
|
+
}
|
|
252
|
+
const url = `/points/${latitude.toFixed(4)},${longitude.toFixed(4)}/stations`;
|
|
253
|
+
const result = await this.makeRequest(url);
|
|
254
|
+
// Cache with stations TTL (24 hours - stations rarely change)
|
|
255
|
+
this.cache.set(cacheKey, result, CacheConfig.ttl.stations);
|
|
256
|
+
return result;
|
|
257
|
+
}
|
|
203
258
|
const url = `/points/${latitude.toFixed(4)},${longitude.toFixed(4)}/stations`;
|
|
204
259
|
return this.makeRequest(url);
|
|
205
260
|
}
|
|
@@ -207,6 +262,19 @@ export class NOAAService {
|
|
|
207
262
|
* Get the latest observation from a station
|
|
208
263
|
*/
|
|
209
264
|
async getLatestObservation(stationId) {
|
|
265
|
+
// Check cache first (if enabled)
|
|
266
|
+
if (CacheConfig.enabled) {
|
|
267
|
+
const cacheKey = Cache.generateKey('latest-observation', stationId);
|
|
268
|
+
const cached = this.cache.get(cacheKey);
|
|
269
|
+
if (cached) {
|
|
270
|
+
return cached;
|
|
271
|
+
}
|
|
272
|
+
const url = `/stations/${stationId}/observations/latest`;
|
|
273
|
+
const result = await this.makeRequest(url);
|
|
274
|
+
// Cache with current conditions TTL (15 minutes)
|
|
275
|
+
this.cache.set(cacheKey, result, CacheConfig.ttl.currentConditions);
|
|
276
|
+
return result;
|
|
277
|
+
}
|
|
210
278
|
const url = `/stations/${stationId}/observations/latest`;
|
|
211
279
|
return this.makeRequest(url);
|
|
212
280
|
}
|
|
@@ -244,6 +312,19 @@ export class NOAAService {
|
|
|
244
312
|
if (params.toString()) {
|
|
245
313
|
url += `?${params.toString()}`;
|
|
246
314
|
}
|
|
315
|
+
// Check cache first (if enabled)
|
|
316
|
+
if (CacheConfig.enabled) {
|
|
317
|
+
const cacheKey = Cache.generateKey('observations', stationId, startTime?.toISOString(), endTime?.toISOString(), limit);
|
|
318
|
+
const cached = this.cache.get(cacheKey);
|
|
319
|
+
if (cached) {
|
|
320
|
+
return cached;
|
|
321
|
+
}
|
|
322
|
+
const result = await this.makeRequest(url);
|
|
323
|
+
// Use smart TTL based on date range
|
|
324
|
+
const ttl = startTime ? getHistoricalDataTTL(startTime) : CacheConfig.ttl.recentHistorical;
|
|
325
|
+
this.cache.set(cacheKey, result, ttl);
|
|
326
|
+
return result;
|
|
327
|
+
}
|
|
247
328
|
return this.makeRequest(url);
|
|
248
329
|
}
|
|
249
330
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"noaa.js","sourceRoot":"","sources":["../../src/services/noaa.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAoC,MAAM,OAAO,CAAC;AAiBzD,MAAM,OAAO,WAAW;IACd,MAAM,CAAgB;IACtB,UAAU,CAAS;IAE3B,YAAY,SAA4B,EAAE;QACxC,MAAM,EACJ,SAAS,GAAG,oCAAoC,EAChD,OAAO,GAAG,yBAAyB,EACnC,OAAO,GAAG,KAAK,EACf,UAAU,GAAG,CAAC,EACf,GAAG,MAAM,CAAC;QAEX,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YACzB,OAAO;YACP,OAAO;YACP,OAAO,EAAE;gBACP,YAAY,EAAE,SAAS;gBACvB,QAAQ,EAAE,sBAAsB;aACjC;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,IAAyB,CAAC;YAEtD,mCAAmC;YACnC,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CACb,kEAAkE;oBAClE,YAAY,IAAI,CAAC,MAAM,IAAI,mBAAmB,MAAM;oBACpD,kDAAkD;oBAClD,oCAAoC,CACrC,CAAC;YACJ,CAAC;YAED,sBAAsB;YACtB,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;gBAClC,IAAI,QAAQ,GAAG,mBAAmB,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,IAAI,iBAAiB,MAAM,CAAC;gBAEvF,0CAA0C;gBAC1C,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;oBACnB,QAAQ,IAAI,kEAAkE,CAAC;gBACjF,CAAC;gBAED,QAAQ,IAAI,4BAA4B;oBACtC,wEAAwE;oBACxE,2DAA2D;oBAC3D,qEAAqE,CAAC;gBAExE,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC5B,CAAC;YAED,gBAAgB;YAChB,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CACb,0BAA0B,IAAI,CAAC,MAAM,IAAI,iCAAiC,MAAM;oBAChF,yDAAyD;oBACzD,yBAAyB;oBACzB,wEAAwE;oBACxE,2DAA2D;oBAC3D,qDAAqD,CACtD,CAAC;YACJ,CAAC;QACH,CAAC;QAED,iBAAiB;QACjB,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CACb,sDAAsD;gBACtD,gEAAgE;gBAChE,mDAAmD,CACpD,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CACb,oCAAoC;gBACpC,oBAAoB;gBACpB,gCAAgC;gBAChC,6BAA6B;gBAC7B,+BAA+B;gBAC/B,UAAU;gBACV,8BAA8B;gBAC9B,qEAAqE,CACtE,CAAC;QACJ,CAAC;QAED,gBAAgB;QAChB,MAAM,IAAI,KAAK,CACb,4BAA4B,KAAK,CAAC,OAAO,MAAM;YAC/C,0BAA0B;YAC1B,oDAAoD,CACrD,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW,CACvB,GAAW,EACX,OAAO,GAAG,CAAC;QAEX,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAI,GAAG,CAAC,CAAC;YAC/C,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,OAAO,GAAG,CAAC,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,kBAAkB;QAMtB,IAAI,CAAC;YACH,0EAA0E;YAC1E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,0BAA0B,EAAE;gBACjE,OAAO,EAAE,KAAK,CAAC,mCAAmC;aACnD,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,OAAO;oBACL,WAAW,EAAE,IAAI;oBACjB,OAAO,EAAE,iCAAiC;oBAC1C,UAAU,EAAE,mDAAmD;oBAC/D,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE,wCAAwC,QAAQ,CAAC,MAAM,EAAE;gBAClE,UAAU,EAAE,mDAAmD;gBAC/D,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,6CAA6C,CAAC;YAC5D,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,0CAA0C,CAAC;gBACvD,CAAC;qBAAM,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;oBACzB,OAAO,GAAG,0DAA0D,CAAC;gBACvE,CAAC;qBAAM,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;oBAC1B,WAAW,GAAG,IAAI,CAAC,CAAC,kDAAkD;oBACtE,OAAO,GAAG,iEAAiE,CAAC;gBAC9E,CAAC;YACH,CAAC;iBAAM,IAAI,UAAU,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBAC9C,OAAO,GAAG,sCAAsC,CAAC;YACnD,CAAC;iBAAM,IAAI,UAAU,CAAC,IAAI,KAAK,WAAW,IAAI,UAAU,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBACjF,OAAO,GAAG,wDAAwD,CAAC;YACrE,CAAC;YAED,OAAO;gBACL,WAAW;gBACX,OAAO;gBACP,UAAU,EAAE,mDAAmD;gBAC/D,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,CAAC,QAAgB,EAAE,SAAiB;QACpD,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,MAAM,GAAG,GAAG,WAAW,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,OAAO,IAAI,CAAC,WAAW,CAAiB,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,MAAc,EAAE,KAAa,EAAE,KAAa;QAC5D,MAAM,GAAG,GAAG,eAAe,MAAM,IAAI,KAAK,IAAI,KAAK,WAAW,CAAC;QAC/D,OAAO,IAAI,CAAC,WAAW,CAAmB,GAAG,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,MAAc,EAAE,KAAa,EAAE,KAAa;QAClE,MAAM,GAAG,GAAG,eAAe,MAAM,IAAI,KAAK,IAAI,KAAK,kBAAkB,CAAC;QACtE,OAAO,IAAI,CAAC,WAAW,CAAmB,GAAG,CAAC,CAAC;IACjD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,wBAAwB,CAAC,QAAgB,EAAE,SAAiB;QAChE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC/D,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,UAAU,CAAC;QACtD,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,SAAiB;QACnD,MAAM,GAAG,GAAG,WAAW,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;QAC9E,OAAO,IAAI,CAAC,WAAW,CAA4B,GAAG,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB,CAAC,SAAiB;QAC1C,MAAM,GAAG,GAAG,aAAa,SAAS,sBAAsB,CAAC;QACzD,OAAO,IAAI,CAAC,WAAW,CAAsB,GAAG,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CACnB,SAAiB,EACjB,SAAgB,EAChB,OAAc,EACd,KAAc;QAEd,iDAAiD;QACjD,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;YACzB,IAAI,SAAS,GAAG,OAAO,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,mCAAmC,SAAS,CAAC,WAAW,EAAE,8BAA8B,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YACpI,CAAC;QACH,CAAC;QAED,uCAAuC;QACvC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,SAAS,IAAI,SAAS,GAAG,GAAG,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,eAAe,SAAS,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAC;QACrF,CAAC;QACD,IAAI,OAAO,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,aAAa,OAAO,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAC;QACjF,CAAC;QAED,IAAI,GAAG,GAAG,aAAa,SAAS,eAAe,CAAC;QAEhD,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,KAAK,EAAE,CAAC;YACV,oCAAoC;YACpC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;YACrD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;YACtB,GAAG,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;QACjC,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAgC,GAAG,CAAC,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,oBAAoB,CAAC,QAAgB,EAAE,SAAiB;QAC5D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAE7D,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,CAAC;QAED,wDAAwD;QACxD,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACxC,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC;gBACvD,OAAO,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,mBAAmB;gBACnB,SAAS;YACX,CAAC;QACH,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,yBAAyB,CAC7B,QAAgB,EAChB,SAAiB,EACjB,SAAe,EACf,OAAa,EACb,KAAc;QAEd,sBAAsB;QACtB,IAAI,SAAS,GAAG,OAAO,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,mCAAmC,SAAS,CAAC,WAAW,EAAE,8BAA8B,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACpI,CAAC;QAED,uCAAuC;QACvC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,SAAS,GAAG,GAAG,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,eAAe,SAAS,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAC;QACrF,CAAC;QACD,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,aAAa,OAAO,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAC;QACjF,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAE7D,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,CAAC;QAED,4CAA4C;QAC5C,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC;QACpE,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACpE,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"noaa.js","sourceRoot":"","sources":["../../src/services/noaa.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@ export interface OpenMeteoServiceConfig {
|
|
|
11
11
|
export declare class OpenMeteoService {
|
|
12
12
|
private client;
|
|
13
13
|
private maxRetries;
|
|
14
|
+
private cache;
|
|
14
15
|
constructor(config?: OpenMeteoServiceConfig);
|
|
15
16
|
/**
|
|
16
17
|
* Handle API errors with helpful status information
|
|
@@ -20,6 +21,14 @@ export declare class OpenMeteoService {
|
|
|
20
21
|
* Make request with retry logic
|
|
21
22
|
*/
|
|
22
23
|
private makeRequest;
|
|
24
|
+
/**
|
|
25
|
+
* Get cache statistics
|
|
26
|
+
*/
|
|
27
|
+
getCacheStats(): import("../utils/cache.js").CacheStats;
|
|
28
|
+
/**
|
|
29
|
+
* Clear the cache
|
|
30
|
+
*/
|
|
31
|
+
clearCache(): void;
|
|
23
32
|
/**
|
|
24
33
|
* Check if the Open-Meteo API is operational
|
|
25
34
|
* Performs a lightweight health check by requesting a simple query
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openmeteo.d.ts","sourceRoot":"","sources":["../../src/services/openmeteo.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EACV,2BAA2B,EAE5B,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"openmeteo.d.ts","sourceRoot":"","sources":["../../src/services/openmeteo.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EACV,2BAA2B,EAE5B,MAAM,uBAAuB,CAAC;AAI/B,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,KAAK,CAAQ;gBAET,MAAM,GAAE,sBAA2B;IA0B/C;;OAEG;YACW,WAAW;IAkFzB;;OAEG;YACW,WAAW;IA0BzB;;OAEG;IACH,aAAa;IAIb;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;;;OAIG;IACG,kBAAkB,IAAI,OAAO,CAAC;QAClC,WAAW,EAAE,OAAO,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAkEF;;;;;;;;;OASG;IACG,oBAAoB,CACxB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,OAAc,GACxB,OAAO,CAAC,2BAA2B,CAAC;IA4KvC;;;OAGG;IACH,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAkC5C"}
|
|
@@ -3,12 +3,16 @@
|
|
|
3
3
|
* Documentation: https://open-meteo.com/en/docs/historical-weather-api
|
|
4
4
|
*/
|
|
5
5
|
import axios from 'axios';
|
|
6
|
+
import { Cache } from '../utils/cache.js';
|
|
7
|
+
import { CacheConfig, getHistoricalDataTTL } from '../config/cache.js';
|
|
6
8
|
export class OpenMeteoService {
|
|
7
9
|
client;
|
|
8
10
|
maxRetries;
|
|
11
|
+
cache;
|
|
9
12
|
constructor(config = {}) {
|
|
10
13
|
const { baseURL = 'https://archive-api.open-meteo.com/v1', timeout = 30000, maxRetries = 3 } = config;
|
|
11
14
|
this.maxRetries = maxRetries;
|
|
15
|
+
this.cache = new Cache(CacheConfig.maxSize);
|
|
12
16
|
this.client = axios.create({
|
|
13
17
|
baseURL,
|
|
14
18
|
timeout,
|
|
@@ -106,6 +110,18 @@ export class OpenMeteoService {
|
|
|
106
110
|
throw error;
|
|
107
111
|
}
|
|
108
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* Get cache statistics
|
|
115
|
+
*/
|
|
116
|
+
getCacheStats() {
|
|
117
|
+
return this.cache.getStats();
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Clear the cache
|
|
121
|
+
*/
|
|
122
|
+
clearCache() {
|
|
123
|
+
this.cache.clear();
|
|
124
|
+
}
|
|
109
125
|
/**
|
|
110
126
|
* Check if the Open-Meteo API is operational
|
|
111
127
|
* Performs a lightweight health check by requesting a simple query
|
|
@@ -194,6 +210,80 @@ export class OpenMeteoService {
|
|
|
194
210
|
if (longitude < -180 || longitude > 180) {
|
|
195
211
|
throw new Error(`Invalid longitude: ${longitude}. Must be between -180 and 180.`);
|
|
196
212
|
}
|
|
213
|
+
// Check cache first (if enabled)
|
|
214
|
+
if (CacheConfig.enabled) {
|
|
215
|
+
const cacheKey = Cache.generateKey('openmeteo-historical', latitude, longitude, startDate, endDate, useHourly);
|
|
216
|
+
const cached = this.cache.get(cacheKey);
|
|
217
|
+
if (cached) {
|
|
218
|
+
return cached;
|
|
219
|
+
}
|
|
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
|
+
const response = await this.makeRequest('/archive', params);
|
|
269
|
+
// Validate response has data
|
|
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
|
+
}
|
|
281
|
+
// Use smart TTL based on date range
|
|
282
|
+
const ttl = getHistoricalDataTTL(startDate);
|
|
283
|
+
this.cache.set(cacheKey, response, ttl);
|
|
284
|
+
return response;
|
|
285
|
+
}
|
|
286
|
+
// No caching - original logic
|
|
197
287
|
// Build request parameters
|
|
198
288
|
const params = {
|
|
199
289
|
latitude,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openmeteo.js","sourceRoot":"","sources":["../../src/services/openmeteo.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAoC,MAAM,OAAO,CAAC;
|
|
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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-memory cache with TTL (Time To Live) and LRU (Least Recently Used) eviction
|
|
3
|
+
*
|
|
4
|
+
* Features:
|
|
5
|
+
* - Configurable TTL per cache entry
|
|
6
|
+
* - LRU eviction when max size is reached
|
|
7
|
+
* - Type-safe generic implementation
|
|
8
|
+
* - Cache statistics tracking (hits, misses, evictions)
|
|
9
|
+
*/
|
|
10
|
+
export interface CacheStats {
|
|
11
|
+
hits: number;
|
|
12
|
+
misses: number;
|
|
13
|
+
evictions: number;
|
|
14
|
+
size: number;
|
|
15
|
+
maxSize: number;
|
|
16
|
+
}
|
|
17
|
+
export declare class Cache<T = any> {
|
|
18
|
+
private cache;
|
|
19
|
+
private stats;
|
|
20
|
+
private maxSize;
|
|
21
|
+
constructor(maxSize?: number);
|
|
22
|
+
/**
|
|
23
|
+
* Get a value from the cache
|
|
24
|
+
* @param key Cache key
|
|
25
|
+
* @returns Cached value or undefined if not found or expired
|
|
26
|
+
*/
|
|
27
|
+
get(key: string): T | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* Set a value in the cache with TTL
|
|
30
|
+
* @param key Cache key
|
|
31
|
+
* @param value Value to cache
|
|
32
|
+
* @param ttlMs Time to live in milliseconds (Infinity for no expiration)
|
|
33
|
+
*/
|
|
34
|
+
set(key: string, value: T, ttlMs: number): void;
|
|
35
|
+
/**
|
|
36
|
+
* Evict the least recently used entry
|
|
37
|
+
*/
|
|
38
|
+
private evictLRU;
|
|
39
|
+
/**
|
|
40
|
+
* Clear all entries from the cache
|
|
41
|
+
*/
|
|
42
|
+
clear(): void;
|
|
43
|
+
/**
|
|
44
|
+
* Get cache statistics
|
|
45
|
+
*/
|
|
46
|
+
getStats(): CacheStats;
|
|
47
|
+
/**
|
|
48
|
+
* Remove expired entries from cache
|
|
49
|
+
*/
|
|
50
|
+
private cleanupExpired;
|
|
51
|
+
/**
|
|
52
|
+
* Generate a cache key from components
|
|
53
|
+
* @param components Parts to combine into a cache key
|
|
54
|
+
* @returns Hash-like cache key
|
|
55
|
+
*/
|
|
56
|
+
static generateKey(...components: any[]): string;
|
|
57
|
+
/**
|
|
58
|
+
* Calculate hit rate percentage
|
|
59
|
+
*/
|
|
60
|
+
getHitRate(): number;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,KAAK,CAAC,CAAC,GAAG,GAAG;IACxB,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,GAAE,MAAa;IAWlC;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAuB/B;;;;;OAKG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAkB/C;;OAEG;IACH,OAAO,CAAC,QAAQ;IAiBhB;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,QAAQ,IAAI,UAAU;IAUtB;;OAEG;IACH,OAAO,CAAC,cAAc;IActB;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,GAAG,UAAU,EAAE,GAAG,EAAE,GAAG,MAAM;IAIhD;;OAEG;IACH,UAAU,IAAI,MAAM;CAKrB"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-memory cache with TTL (Time To Live) and LRU (Least Recently Used) eviction
|
|
3
|
+
*
|
|
4
|
+
* Features:
|
|
5
|
+
* - Configurable TTL per cache entry
|
|
6
|
+
* - LRU eviction when max size is reached
|
|
7
|
+
* - Type-safe generic implementation
|
|
8
|
+
* - Cache statistics tracking (hits, misses, evictions)
|
|
9
|
+
*/
|
|
10
|
+
export class Cache {
|
|
11
|
+
cache = new Map();
|
|
12
|
+
stats;
|
|
13
|
+
maxSize;
|
|
14
|
+
constructor(maxSize = 1000) {
|
|
15
|
+
this.maxSize = maxSize;
|
|
16
|
+
this.stats = {
|
|
17
|
+
hits: 0,
|
|
18
|
+
misses: 0,
|
|
19
|
+
evictions: 0,
|
|
20
|
+
size: 0,
|
|
21
|
+
maxSize: maxSize,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Get a value from the cache
|
|
26
|
+
* @param key Cache key
|
|
27
|
+
* @returns Cached value or undefined if not found or expired
|
|
28
|
+
*/
|
|
29
|
+
get(key) {
|
|
30
|
+
const entry = this.cache.get(key);
|
|
31
|
+
if (!entry) {
|
|
32
|
+
this.stats.misses++;
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
// Check if expired
|
|
36
|
+
const now = Date.now();
|
|
37
|
+
if (entry.expiresAt < now) {
|
|
38
|
+
this.cache.delete(key);
|
|
39
|
+
this.stats.misses++;
|
|
40
|
+
this.stats.size = this.cache.size;
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
// Update last accessed time for LRU
|
|
44
|
+
entry.lastAccessedAt = now;
|
|
45
|
+
this.stats.hits++;
|
|
46
|
+
return entry.value;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Set a value in the cache with TTL
|
|
50
|
+
* @param key Cache key
|
|
51
|
+
* @param value Value to cache
|
|
52
|
+
* @param ttlMs Time to live in milliseconds (Infinity for no expiration)
|
|
53
|
+
*/
|
|
54
|
+
set(key, value, ttlMs) {
|
|
55
|
+
const now = Date.now();
|
|
56
|
+
// If cache is at max size and key doesn't exist, evict LRU entry
|
|
57
|
+
if (this.cache.size >= this.maxSize && !this.cache.has(key)) {
|
|
58
|
+
this.evictLRU();
|
|
59
|
+
}
|
|
60
|
+
const entry = {
|
|
61
|
+
value,
|
|
62
|
+
expiresAt: ttlMs === Infinity ? Infinity : now + ttlMs,
|
|
63
|
+
lastAccessedAt: now,
|
|
64
|
+
};
|
|
65
|
+
this.cache.set(key, entry);
|
|
66
|
+
this.stats.size = this.cache.size;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Evict the least recently used entry
|
|
70
|
+
*/
|
|
71
|
+
evictLRU() {
|
|
72
|
+
let oldestKey = null;
|
|
73
|
+
let oldestTime = Infinity;
|
|
74
|
+
for (const [key, entry] of this.cache.entries()) {
|
|
75
|
+
if (entry.lastAccessedAt < oldestTime) {
|
|
76
|
+
oldestTime = entry.lastAccessedAt;
|
|
77
|
+
oldestKey = key;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (oldestKey) {
|
|
81
|
+
this.cache.delete(oldestKey);
|
|
82
|
+
this.stats.evictions++;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Clear all entries from the cache
|
|
87
|
+
*/
|
|
88
|
+
clear() {
|
|
89
|
+
this.cache.clear();
|
|
90
|
+
this.stats.size = 0;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Get cache statistics
|
|
94
|
+
*/
|
|
95
|
+
getStats() {
|
|
96
|
+
// Clean up expired entries before returning stats
|
|
97
|
+
this.cleanupExpired();
|
|
98
|
+
return {
|
|
99
|
+
...this.stats,
|
|
100
|
+
size: this.cache.size,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Remove expired entries from cache
|
|
105
|
+
*/
|
|
106
|
+
cleanupExpired() {
|
|
107
|
+
const now = Date.now();
|
|
108
|
+
const keysToDelete = [];
|
|
109
|
+
for (const [key, entry] of this.cache.entries()) {
|
|
110
|
+
if (entry.expiresAt < now) {
|
|
111
|
+
keysToDelete.push(key);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
keysToDelete.forEach(key => this.cache.delete(key));
|
|
115
|
+
this.stats.size = this.cache.size;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Generate a cache key from components
|
|
119
|
+
* @param components Parts to combine into a cache key
|
|
120
|
+
* @returns Hash-like cache key
|
|
121
|
+
*/
|
|
122
|
+
static generateKey(...components) {
|
|
123
|
+
return JSON.stringify(components);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Calculate hit rate percentage
|
|
127
|
+
*/
|
|
128
|
+
getHitRate() {
|
|
129
|
+
const total = this.stats.hits + this.stats.misses;
|
|
130
|
+
if (total === 0)
|
|
131
|
+
return 0;
|
|
132
|
+
return (this.stats.hits / total) * 100;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAgBH,MAAM,OAAO,KAAK;IACR,KAAK,GAA+B,IAAI,GAAG,EAAE,CAAC;IAC9C,KAAK,CAAa;IAClB,OAAO,CAAS;IAExB,YAAY,UAAkB,IAAI;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG;YACX,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,CAAC;YACT,SAAS,EAAE,CAAC;YACZ,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,OAAO;SACjB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,GAAW;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,mBAAmB;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,KAAK,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAClC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,oCAAoC;QACpC,KAAK,CAAC,cAAc,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAClB,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAC,GAAW,EAAE,KAAQ,EAAE,KAAa;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,iEAAiE;QACjE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5D,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,CAAC;QAED,MAAM,KAAK,GAAkB;YAC3B,KAAK;YACL,SAAS,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK;YACtD,cAAc,EAAE,GAAG;SACpB,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACpC,CAAC;IAED;;OAEG;IACK,QAAQ;QACd,IAAI,SAAS,GAAkB,IAAI,CAAC;QACpC,IAAI,UAAU,GAAG,QAAQ,CAAC;QAE1B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YAChD,IAAI,KAAK,CAAC,cAAc,GAAG,UAAU,EAAE,CAAC;gBACtC,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC;gBAClC,SAAS,GAAG,GAAG,CAAC;YAClB,CAAC;QACH,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,kDAAkD;QAClD,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,OAAO;YACL,GAAG,IAAI,CAAC,KAAK;YACb,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;SACtB,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,cAAc;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,YAAY,GAAa,EAAE,CAAC;QAElC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YAChD,IAAI,KAAK,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;gBAC1B,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,GAAG,UAAiB;QACrC,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,UAAU;QACR,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAClD,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;IACzC,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dangahagan/weather-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "MCP (Model Context Protocol) server providing weather data from NOAA and Open-Meteo APIs. Supports forecasts, current conditions, and historical weather data (1940-present) with no API keys required.",
|
|
5
5
|
"mcpName": "io.github.dgahagan/weather-mcp",
|
|
6
6
|
"main": "dist/index.js",
|