@dangahagan/weather-mcp 1.35.9 → 1.35.10
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 +3 -3
- package/dist/services/geomet.d.ts.map +1 -1
- package/dist/services/geomet.js +21 -1
- package/dist/services/geomet.js.map +1 -1
- package/dist/services/meteoalarm.d.ts +12 -7
- package/dist/services/meteoalarm.d.ts.map +1 -1
- package/dist/services/meteoalarm.js +100 -30
- package/dist/services/meteoalarm.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
[](https://www.npmjs.com/package/@dangahagan/weather-mcp)
|
|
4
4
|
[](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.dgahagan/weather-mcp)
|
|
5
5
|
[](https://opensource.org/licenses/MIT)
|
|
6
|
-
[](./docs/testing/TEST_SUITE_README.md)
|
|
7
7
|
[](https://nodejs.org)
|
|
8
8
|
|
|
9
9
|
**Give your AI assistant real weather data — 17 tools, zero API keys, zero signup, zero cost.**
|
|
@@ -58,7 +58,7 @@ Choose this one if you want:
|
|
|
58
58
|
|
|
59
59
|
- **Genuinely free** — every data source is a free public API. No trial that expires, no credit card, no rate-limited "free tier" bait.
|
|
60
60
|
- **No API keys** — install to first forecast in under a minute. Nothing to configure, nothing to leak into a repo. ([Four optional keys](#optional-api-keys) add extras if you want them; the default configuration needs none.)
|
|
61
|
-
- **Fully open source** — MIT licensed, readable TypeScript, 4,
|
|
61
|
+
- **Fully open source** — MIT licensed, readable TypeScript, 4,890 tests. Audit it, fork it, fix it.
|
|
62
62
|
- **Privacy-respecting** — your queries go directly from your machine to public weather APIs. No middleman server, and no telemetry unless you opt in.
|
|
63
63
|
- **Breadth** — 17 tools covering weather, safety hazards (lightning, floods, wildfires), marine conditions, air quality, and historical data back to 1940. Most weather MCPs stop at forecasts.
|
|
64
64
|
|
|
@@ -394,7 +394,7 @@ Being honest about what free public data can and can't do:
|
|
|
394
394
|
```bash
|
|
395
395
|
npm run build # Compile TypeScript
|
|
396
396
|
npm run dev # Run in development mode
|
|
397
|
-
npm test # Run all 4,
|
|
397
|
+
npm test # Run all 4,890 tests
|
|
398
398
|
npm run test:coverage # Coverage report
|
|
399
399
|
npm run audit # Dependency vulnerability scan
|
|
400
400
|
```
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geomet.d.ts","sourceRoot":"","sources":["../../src/services/geomet.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAA2B,MAAM,oBAAoB,CAAC;AAQtF,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"geomet.d.ts","sourceRoot":"","sources":["../../src/services/geomet.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAA2B,MAAM,oBAAoB,CAAC;AAQtF,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAwFD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,kBAAkB,EAAE,EAC9B,GAAG,GAAE,IAAiB,GACrB,kBAAkB,EAAE,CAWtB;AAED;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,UAAU,CAAS;IAE3B,YAAY,MAAM,GAAE,mBAAwB,EAwB3C;IAED;;;;;;OAMG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAqClF;IAED;;;;;;;OAOG;YACW,WAAW;IAiBzB;;;;;;;OAOG;YACW,WAAW;CAyC1B"}
|
package/dist/services/geomet.js
CHANGED
|
@@ -44,6 +44,20 @@ class GeoMetRequestError extends Error {
|
|
|
44
44
|
this.name = 'GeoMetRequestError';
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
+
/** A JSON object — not `null`, not an array, not a string (G4, G111: `''` is the real empty body). */
|
|
48
|
+
function isPlainObject(value) {
|
|
49
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* True only for the verified collection: an object whose `features` is an
|
|
53
|
+
* array of objects that each carry a `properties` object. An HTML page, a
|
|
54
|
+
* gateway's `{ error }` object, `''`, `null` or a bare array is refused.
|
|
55
|
+
*/
|
|
56
|
+
function isGeoMetCollection(data) {
|
|
57
|
+
return (isPlainObject(data) &&
|
|
58
|
+
Array.isArray(data.features) &&
|
|
59
|
+
data.features.every(feature => isPlainObject(feature) && isPlainObject(feature.properties)));
|
|
60
|
+
}
|
|
47
61
|
/** Build a GeoMet `bbox` string ("minLon,minLat,maxLon,maxLat") around a coordinate. */
|
|
48
62
|
function buildBbox(latitude, longitude, halfExtent) {
|
|
49
63
|
const minLon = longitude - halfExtent;
|
|
@@ -134,7 +148,13 @@ export class GeoMetService {
|
|
|
134
148
|
}
|
|
135
149
|
const bbox = buildBbox(latitude, longitude, BBOX_HALF_EXTENT);
|
|
136
150
|
const data = await this.makeRequest(bbox);
|
|
137
|
-
|
|
151
|
+
// A 200 whose body is not the verified collection is an error, never an empty list (G4).
|
|
152
|
+
// Thrown outside `makeRequest`, so it is never retried, and before `cache.set`, so never cached.
|
|
153
|
+
if (!isGeoMetCollection(data)) {
|
|
154
|
+
logger.warn('GeoMet API returned an unexpected shape', { ...redacted, securityEvent: true });
|
|
155
|
+
throw new GeoMetRequestError('GeoMet API returned an unexpected shape', false);
|
|
156
|
+
}
|
|
157
|
+
const features = data.features;
|
|
138
158
|
logger.info('Fetched GeoMet alerts', {
|
|
139
159
|
...redacted,
|
|
140
160
|
numberMatched: data.numberMatched ?? features.length
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geomet.js","sourceRoot":"","sources":["../../src/services/geomet.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"geomet.js","sourceRoot":"","sources":["../../src/services/geomet.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,8 +21,10 @@
|
|
|
21
21
|
* result is cached for the alerts TTL (5 min) and the feed is never
|
|
22
22
|
* fetched per-request without the cache in front.
|
|
23
23
|
*
|
|
24
|
-
* Errors are
|
|
25
|
-
* `ApiError` union change):
|
|
24
|
+
* Errors are `MeteoAlarmRequestError`s with fixed, pre-written messages (the
|
|
25
|
+
* GeoMet precedent — no `ApiError` union change): upstream body text and
|
|
26
|
+
* axios text are never forwarded, and the retry decision is the error's
|
|
27
|
+
* `transient` flag, never its message.
|
|
26
28
|
*
|
|
27
29
|
* Licence terms honoured downstream (renderer): alerts display unmodified,
|
|
28
30
|
* attribution "EUMETNET – MeteoAlarm" plus the national service, time of
|
|
@@ -105,15 +107,18 @@ export declare class MeteoAlarmService {
|
|
|
105
107
|
*/
|
|
106
108
|
getWarnings(countryCode: string): Promise<MeteoAlarmWarning[]>;
|
|
107
109
|
/**
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
110
|
+
* Request with retry/backoff: a 429, a 5xx or a failed connection is
|
|
111
|
+
* retried up to `maxRetries` times with exponential backoff and jitter; a
|
|
112
|
+
* timeout and any other status are not. The decision is
|
|
113
|
+
* `MeteoAlarmRequestError.transient`, set once in `handleError` — the
|
|
114
|
+
* thrown message is never read.
|
|
111
115
|
* @private
|
|
112
116
|
*/
|
|
113
117
|
private makeRequest;
|
|
114
118
|
/**
|
|
115
|
-
* Normalize API failures into
|
|
116
|
-
*
|
|
119
|
+
* Normalize API failures into `MeteoAlarmRequestError`s with fixed,
|
|
120
|
+
* pre-written messages — upstream body text and axios text are never
|
|
121
|
+
* forwarded; the alerts handler formats messages for users.
|
|
117
122
|
* @private
|
|
118
123
|
*/
|
|
119
124
|
private handleError;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meteoalarm.d.ts","sourceRoot":"","sources":["../../src/services/meteoalarm.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"meteoalarm.d.ts","sourceRoot":"","sources":["../../src/services/meteoalarm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,KAAK,EACV,iBAAiB,EACjB,qBAAqB,EAGrB,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAQhC,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAuC/D,CAAC;AAEF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,EAAE,GAAG,SAAS,GAAG,iBAAiB,GAAG,SAAS,CAKtG;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAUlF;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAgBxE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,EAAE,GAAG,EAAE,IAAI,GAAG,iBAAiB,EAAE,CA2BlG;AAeD;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,UAAU,CAAK;IAEvB,YAAY,MAAM,GAAE,uBAA4B,EAsB/C;IAED;;;;;;;;;;;OAWG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAiCnE;IAED;;;;;;;OAOG;YACW,WAAW;IAezB;;;;;OAKG;YACW,WAAW;IAyCzB,4BAA4B;IAC5B,aAAa,2CAEZ;IAED,uBAAuB;IACvB,UAAU,IAAI,IAAI,CAEjB;CACF"}
|
|
@@ -21,8 +21,10 @@
|
|
|
21
21
|
* result is cached for the alerts TTL (5 min) and the feed is never
|
|
22
22
|
* fetched per-request without the cache in front.
|
|
23
23
|
*
|
|
24
|
-
* Errors are
|
|
25
|
-
* `ApiError` union change):
|
|
24
|
+
* Errors are `MeteoAlarmRequestError`s with fixed, pre-written messages (the
|
|
25
|
+
* GeoMet precedent — no `ApiError` union change): upstream body text and
|
|
26
|
+
* axios text are never forwarded, and the retry decision is the error's
|
|
27
|
+
* `transient` flag, never its message.
|
|
26
28
|
*
|
|
27
29
|
* Licence terms honoured downstream (renderer): alerts display unmodified,
|
|
28
30
|
* attribution "EUMETNET – MeteoAlarm" plus the national service, time of
|
|
@@ -33,6 +35,7 @@ import { logger } from '../utils/logger.js';
|
|
|
33
35
|
import { getUserAgent } from '../utils/version.js';
|
|
34
36
|
import { Cache } from '../utils/cache.js';
|
|
35
37
|
import { withRequestDeadline } from '../utils/httpDeadline.js';
|
|
38
|
+
import { isConnectionFailureCode } from '../utils/connectionFailure.js';
|
|
36
39
|
import { CacheConfig } from '../config/cache.js';
|
|
37
40
|
/**
|
|
38
41
|
* MeteoAlarm membership: lowercase ISO 3166-1 alpha-2 country code → feed
|
|
@@ -181,6 +184,20 @@ export function filterActiveWarnings(warnings, now) {
|
|
|
181
184
|
}
|
|
182
185
|
return current.filter(warning => !superseded.has(warning.identifier));
|
|
183
186
|
}
|
|
187
|
+
/**
|
|
188
|
+
* A MeteoAlarm failure already classified by `handleError`. `transient` is the
|
|
189
|
+
* retry decision — read by `makeRequest`, decided in exactly one place. A plain
|
|
190
|
+
* `Error` subclass on purpose: MeteoAlarm is outside `ApiServiceName` (CLAUDE.md,
|
|
191
|
+
* Error Handling), so `formatErrorForUser` renders `Error: <message>` unchanged.
|
|
192
|
+
*/
|
|
193
|
+
class MeteoAlarmRequestError extends Error {
|
|
194
|
+
transient;
|
|
195
|
+
constructor(message, transient) {
|
|
196
|
+
super(message);
|
|
197
|
+
this.transient = transient;
|
|
198
|
+
this.name = 'MeteoAlarmRequestError';
|
|
199
|
+
}
|
|
200
|
+
}
|
|
184
201
|
/**
|
|
185
202
|
* MeteoAlarm country feed client. No API key required.
|
|
186
203
|
*/
|
|
@@ -229,6 +246,15 @@ export class MeteoAlarmService {
|
|
|
229
246
|
}
|
|
230
247
|
logger.info('MeteoAlarm feed fetch', { country: countryCode, slug: feed.slug });
|
|
231
248
|
const data = await this.makeRequest(`/feeds-${feed.slug}`);
|
|
249
|
+
// A 200 whose body is not the verified envelope is an error, never an empty list (G4).
|
|
250
|
+
// Thrown outside `makeRequest`, so it is never retried, and before `cache.set`, so never cached.
|
|
251
|
+
if (!isMeteoAlarmFeed(data)) {
|
|
252
|
+
logger.warn('MeteoAlarm feed returned an unexpected shape', {
|
|
253
|
+
country: countryCode,
|
|
254
|
+
securityEvent: true
|
|
255
|
+
});
|
|
256
|
+
throw new MeteoAlarmRequestError('MeteoAlarm feed returned an unexpected shape', false);
|
|
257
|
+
}
|
|
232
258
|
const warnings = parseFeed(data);
|
|
233
259
|
if (CacheConfig.enabled) {
|
|
234
260
|
this.cache.set(cacheKey, warnings, CacheConfig.ttl.alerts);
|
|
@@ -236,9 +262,11 @@ export class MeteoAlarmService {
|
|
|
236
262
|
return filterActiveWarnings(warnings, new Date());
|
|
237
263
|
}
|
|
238
264
|
/**
|
|
239
|
-
*
|
|
240
|
-
*
|
|
241
|
-
*
|
|
265
|
+
* Request with retry/backoff: a 429, a 5xx or a failed connection is
|
|
266
|
+
* retried up to `maxRetries` times with exponential backoff and jitter; a
|
|
267
|
+
* timeout and any other status are not. The decision is
|
|
268
|
+
* `MeteoAlarmRequestError.transient`, set once in `handleError` — the
|
|
269
|
+
* thrown message is never read.
|
|
242
270
|
* @private
|
|
243
271
|
*/
|
|
244
272
|
async makeRequest(url, retries = 0) {
|
|
@@ -247,24 +275,19 @@ export class MeteoAlarmService {
|
|
|
247
275
|
return response.data;
|
|
248
276
|
}
|
|
249
277
|
catch (error) {
|
|
250
|
-
if (retries < this.maxRetries) {
|
|
251
|
-
const
|
|
252
|
-
const
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
if (shouldRetry) {
|
|
256
|
-
const baseDelay = Math.pow(2, retries) * 1000;
|
|
257
|
-
const delay = baseDelay * (0.5 + Math.random() * 0.5);
|
|
258
|
-
await new Promise(resolve => setTimeout(resolve, delay));
|
|
259
|
-
return this.makeRequest(url, retries + 1);
|
|
260
|
-
}
|
|
278
|
+
if (retries < this.maxRetries && error instanceof MeteoAlarmRequestError && error.transient) {
|
|
279
|
+
const baseDelay = Math.pow(2, retries) * 1000;
|
|
280
|
+
const delay = baseDelay * (0.5 + Math.random() * 0.5);
|
|
281
|
+
await new Promise(resolve => setTimeout(resolve, delay));
|
|
282
|
+
return this.makeRequest(url, retries + 1);
|
|
261
283
|
}
|
|
262
284
|
throw error;
|
|
263
285
|
}
|
|
264
286
|
}
|
|
265
287
|
/**
|
|
266
|
-
* Normalize API failures into
|
|
267
|
-
*
|
|
288
|
+
* Normalize API failures into `MeteoAlarmRequestError`s with fixed,
|
|
289
|
+
* pre-written messages — upstream body text and axios text are never
|
|
290
|
+
* forwarded; the alerts handler formats messages for users.
|
|
268
291
|
* @private
|
|
269
292
|
*/
|
|
270
293
|
async handleError(error) {
|
|
@@ -272,27 +295,35 @@ export class MeteoAlarmService {
|
|
|
272
295
|
if (error.response) {
|
|
273
296
|
const status = error.response.status;
|
|
274
297
|
if (status === 429) {
|
|
275
|
-
throw new
|
|
298
|
+
throw new MeteoAlarmRequestError('MeteoAlarm API rate limit exceeded', true);
|
|
276
299
|
}
|
|
277
300
|
if (status >= 500) {
|
|
278
|
-
throw new
|
|
301
|
+
throw new MeteoAlarmRequestError(`MeteoAlarm API server error (status ${status})`, true);
|
|
279
302
|
}
|
|
280
|
-
throw new
|
|
303
|
+
throw new MeteoAlarmRequestError(`MeteoAlarm API returned status ${status}`, false);
|
|
281
304
|
}
|
|
305
|
+
// Not retried: a timeout has exhausted either its own deadline
|
|
306
|
+
// (API_TIMEOUT_MS, 30 s by default) or the enclosing tool call's
|
|
307
|
+
// remaining budget (`toolBudget.ts`); either way a retry would answer
|
|
308
|
+
// after the client has given up — the v1.34.2 rule for NOAA and
|
|
309
|
+
// Open-Meteo. Checked before the connection set, which excludes it.
|
|
282
310
|
if (error.code === 'ECONNABORTED' || error.code === 'ETIMEDOUT') {
|
|
283
|
-
throw new
|
|
311
|
+
throw new MeteoAlarmRequestError('MeteoAlarm request timed out', false);
|
|
284
312
|
}
|
|
285
|
-
|
|
286
|
-
|
|
313
|
+
// The retry flag (`true`) is MeteoAlarm's own decision, not the util's.
|
|
314
|
+
if (isConnectionFailureCode(error.code)) {
|
|
315
|
+
throw new MeteoAlarmRequestError('Unable to connect to the MeteoAlarm feed service', true);
|
|
287
316
|
}
|
|
288
317
|
if (error.message) {
|
|
289
|
-
throw new
|
|
318
|
+
throw new MeteoAlarmRequestError('MeteoAlarm request failed', false);
|
|
290
319
|
}
|
|
291
320
|
}
|
|
321
|
+
// `isAxiosLikeError` accepts any object, so this rethrow is reached only
|
|
322
|
+
// by an `Error` whose message is empty — there is no text to forward.
|
|
292
323
|
if (error instanceof Error) {
|
|
293
324
|
throw error;
|
|
294
325
|
}
|
|
295
|
-
throw new
|
|
326
|
+
throw new MeteoAlarmRequestError('Unknown error occurred while contacting MeteoAlarm', false);
|
|
296
327
|
}
|
|
297
328
|
/** Get cache statistics. */
|
|
298
329
|
getCacheStats() {
|
|
@@ -306,14 +337,53 @@ export class MeteoAlarmService {
|
|
|
306
337
|
function isAxiosLikeError(error) {
|
|
307
338
|
return typeof error === 'object' && error !== null;
|
|
308
339
|
}
|
|
340
|
+
/** A JSON object — not `null`, not an array, not a string (G4, G111: `''` is the real empty body). */
|
|
341
|
+
function isPlainObject(value) {
|
|
342
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* True for one `warnings[]` entry in the verified shape. `parseFeed` skips an
|
|
346
|
+
* entry with no `alert`, no `identifier` or no `info`, so each of those may be
|
|
347
|
+
* **absent**. When present it must be the verified type: `alert` an object,
|
|
348
|
+
* `identifier` a string, `info` an array of objects. Otherwise a malformed entry
|
|
349
|
+
* would be skipped like an empty one, and a feed of them would render the
|
|
350
|
+
* all-clear (G4, one level down). All 3,612 entries of the 38 live feeds had the
|
|
351
|
+
* full shape on 2026-11-10.
|
|
352
|
+
*/
|
|
353
|
+
function isMeteoAlarmEntry(entry) {
|
|
354
|
+
if (!isPlainObject(entry)) {
|
|
355
|
+
return false;
|
|
356
|
+
}
|
|
357
|
+
if (entry.alert === undefined) {
|
|
358
|
+
return true;
|
|
359
|
+
}
|
|
360
|
+
const alert = entry.alert;
|
|
361
|
+
if (!isPlainObject(alert)) {
|
|
362
|
+
return false;
|
|
363
|
+
}
|
|
364
|
+
if (alert.identifier !== undefined && typeof alert.identifier !== 'string') {
|
|
365
|
+
return false;
|
|
366
|
+
}
|
|
367
|
+
return alert.info === undefined || (Array.isArray(alert.info) && alert.info.every(isPlainObject));
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* True only for the verified envelope `{ warnings: [ {…}, … ] }` whose every
|
|
371
|
+
* entry passes `isMeteoAlarmEntry`. An HTML page, a gateway's `{ error }`
|
|
372
|
+
* object, `''`, `null`, a bare array, or any malformed entry is refused; the
|
|
373
|
+
* caller throws rather than reading an empty list.
|
|
374
|
+
*/
|
|
375
|
+
function isMeteoAlarmFeed(data) {
|
|
376
|
+
return isPlainObject(data) && Array.isArray(data.warnings) && data.warnings.every(isMeteoAlarmEntry);
|
|
377
|
+
}
|
|
309
378
|
/**
|
|
310
|
-
* Parse a
|
|
311
|
-
*
|
|
312
|
-
*
|
|
379
|
+
* Parse a country feed into flat single-language warnings. The envelope has
|
|
380
|
+
* already passed `isMeteoAlarmFeed`, so a missing list is not tolerated here.
|
|
381
|
+
* Object entries without an identifier or any `info` content are skipped
|
|
382
|
+
* (nothing to render or track).
|
|
313
383
|
*/
|
|
314
384
|
function parseFeed(data) {
|
|
315
385
|
const warnings = [];
|
|
316
|
-
for (const entry of data
|
|
386
|
+
for (const entry of data.warnings) {
|
|
317
387
|
const alert = entry.alert;
|
|
318
388
|
if (!alert?.identifier) {
|
|
319
389
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meteoalarm.js","sourceRoot":"","sources":["../../src/services/meteoalarm.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"meteoalarm.js","sourceRoot":"","sources":["../../src/services/meteoalarm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAwB,MAAM,OAAO,CAAC;AAQ7C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAOjD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,aAAa,GAA0C;IAClE,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,mBAAmB,EAAE;IACtE,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,2CAA2C,EAAE;IAC9F,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,wBAAwB,EAAE;IAClE,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE;IAC1C,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE;IACzD,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;IACtC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE;IACzD,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,iCAAiC,EAAE;IACpF,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;IACxC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,kCAAkC,EAAE;IACrF,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE;IAC/D,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,wBAAwB,EAAE;IAC3E,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,0CAA0C,EAAE;IAC3F,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;IACxC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,iCAAiC,EAAE;IACpF,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE;IAChE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,+BAA+B,EAAE;IAChF,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;IACpC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;IACtC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE;IAC5C,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;IACpC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;IACxC,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE;IAC9C,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE;IACjE,EAAE,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,IAAI,EAAE,iBAAiB,EAAE;IACpE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;IAC7D,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE;IAC3D,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE;IAC3D,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;IACxC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;IACtC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE;IAC3D,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE;IAC3D,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE;IACtD,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;IACvD,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE;IACvE,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,eAAe,EAAE;IAChF,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;CACzC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAqC;IACrE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9F,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAyB;IAC5D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACxC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,UAA8B;IAC5D,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACpD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3D,IAAI,UAAU,EAAE,CAAC;YACf,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAA6B,EAAE,GAAS;IAC3E,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;QACxC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAChE,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;gBACpE,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACjC,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC5C,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;AACxE,CAAC;AAED;;;;;GAKG;AACH,MAAM,sBAAuB,SAAQ,KAAK;IACK,SAAS;IAAtD,YAAY,OAAe,EAAkB,SAAkB;QAC7D,KAAK,CAAC,OAAO,CAAC,CAAC;yBAD4B,SAAS;QAEpD,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,iBAAiB;IACpB,MAAM,CAAgB;IACtB,KAAK,CAAiB;IACtB,UAAU,GAAG,CAAC,CAAC;IAEvB,YAAY,MAAM,GAA4B,EAAE;QAC9C,MAAM,EACJ,OAAO,GAAG,8CAA8C,EACxD,OAAO,GAAG,WAAW,CAAC,YAAY,EACnC,GAAG,MAAM,CAAC;QAEX,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,YAAY,EAAE;aAC7B;YACD,OAAO,EAAE,mBAAmB,EAAE;SAC/B,CAAC,CAAC;QAEH,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;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,WAAW,CAAC,WAAmB;QACnC,MAAM,IAAI,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,wCAAwC,WAAW,GAAG,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAC9D,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAoC,CAAC;YAC3E,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC9D,OAAO,oBAAoB,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAChF,MAAM,IAAI,GAAY,MAAM,IAAI,CAAC,WAAW,CAAU,UAAU,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7E,uFAAuF;QACvF,iGAAiG;QACjG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE;gBAC1D,OAAO,EAAE,WAAW;gBACpB,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;YACH,MAAM,IAAI,sBAAsB,CAAC,8CAA8C,EAAE,KAAK,CAAC,CAAC;QAC1F,CAAC;QACD,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAEjC,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO,oBAAoB,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,WAAW,CAAI,GAAW,EAAE,OAAO,GAAG,CAAC;QACnD,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,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,IAAI,KAAK,YAAY,sBAAsB,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC5F,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;gBAC9C,MAAM,KAAK,GAAG,SAAS,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;gBACtD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;gBACzD,OAAO,IAAI,CAAC,WAAW,CAAI,GAAG,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;YAC/C,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,WAAW,CAAC,KAAc;QACtC,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnB,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACrC,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;oBACnB,MAAM,IAAI,sBAAsB,CAAC,oCAAoC,EAAE,IAAI,CAAC,CAAC;gBAC/E,CAAC;gBACD,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;oBAClB,MAAM,IAAI,sBAAsB,CAAC,uCAAuC,MAAM,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC3F,CAAC;gBACD,MAAM,IAAI,sBAAsB,CAAC,kCAAkC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;YACtF,CAAC;YAED,+DAA+D;YAC/D,iEAAiE;YACjE,sEAAsE;YACtE,gEAAgE;YAChE,oEAAoE;YACpE,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAChE,MAAM,IAAI,sBAAsB,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;YAC1E,CAAC;YAED,wEAAwE;YACxE,IAAI,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxC,MAAM,IAAI,sBAAsB,CAAC,kDAAkD,EAAE,IAAI,CAAC,CAAC;YAC7F,CAAC;YAED,IAAK,KAA+B,CAAC,OAAO,EAAE,CAAC;gBAC7C,MAAM,IAAI,sBAAsB,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAED,yEAAyE;QACzE,sEAAsE;QACtE,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,IAAI,sBAAsB,CAAC,oDAAoD,EAAE,KAAK,CAAC,CAAC;IAChG,CAAC;IAED,4BAA4B;IAC5B,aAAa;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED,uBAAuB;IACvB,UAAU;QACR,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF;AAYD,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,sGAAsG;AACtG,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAKD;;;;;;;;GAQG;AACH,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC3E,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;AACpG,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,IAAa;IACrC,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;AACvG,CAAC;AAED;;;;;GAKG;AACH,SAAS,SAAS,CAAC,IAA4B;IAC7C,MAAM,QAAQ,GAAwB,EAAE,CAAC;IAEzC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC;YACvB,SAAS;QACX,CAAC;QAED,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,SAAS;QACX,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CACzC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,KAAK,iBAAiB,CACvD,EAAE,KAAK,CAAC;QAET,QAAQ,CAAC,IAAI,CAAC;YACZ,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,UAAU,EAAE,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC;YAC7C,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,oBAAoB,CAAC,cAAc,CAAC;YAC5C,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;iBACxB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;iBAC1B,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAChF,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dangahagan/weather-mcp",
|
|
3
|
-
"version": "1.35.
|
|
3
|
+
"version": "1.35.10",
|
|
4
4
|
"description": "MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Built entirely on free public APIs (NOAA, Open-Meteo, USGS, NIFC).",
|
|
5
5
|
"mcpName": "io.github.dgahagan/weather-mcp",
|
|
6
6
|
"main": "dist/index.js",
|