@dangahagan/weather-mcp 1.33.8 → 1.33.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/config/tools.js +2 -2
- package/dist/config/tools.js.map +1 -1
- package/dist/handlers/savedLocationsHandler.d.ts.map +1 -1
- package/dist/handlers/savedLocationsHandler.js +36 -9
- package/dist/handlers/savedLocationsHandler.js.map +1 -1
- package/dist/server/weatherServer.js +1 -1
- package/dist/server/weatherServer.js.map +1 -1
- package/dist/services/locationStore.d.ts +7 -0
- package/dist/services/locationStore.d.ts.map +1 -1
- package/dist/services/locationStore.js +21 -12
- package/dist/services/locationStore.js.map +1 -1
- package/dist/utils/locationResolver.d.ts +10 -0
- package/dist/utils/locationResolver.d.ts.map +1 -1
- package/dist/utils/locationResolver.js +39 -4
- package/dist/utils/locationResolver.js.map +1 -1
- package/dist/utils/savedLocationShape.d.ts +59 -0
- package/dist/utils/savedLocationShape.d.ts.map +1 -0
- package/dist/utils/savedLocationShape.js +151 -0
- package/dist/utils/savedLocationShape.js.map +1 -0
- 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. ([Three optional keys](#optional-api-keys) add extras if you want them; the default configuration needs none.)
|
|
61
|
-
- **Fully open source** — MIT licensed, readable TypeScript,
|
|
61
|
+
- **Fully open source** — MIT licensed, readable TypeScript, 4,023 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, no telemetry.
|
|
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
|
|
|
@@ -390,7 +390,7 @@ Being honest about what free public data can and can't do:
|
|
|
390
390
|
```bash
|
|
391
391
|
npm run build # Compile TypeScript
|
|
392
392
|
npm run dev # Run in development mode
|
|
393
|
-
npm test # Run all
|
|
393
|
+
npm test # Run all 4,023 tests
|
|
394
394
|
npm run test:coverage # Coverage report
|
|
395
395
|
npm run audit # Dependency vulnerability scan
|
|
396
396
|
```
|
package/dist/config/tools.js
CHANGED
|
@@ -194,7 +194,7 @@ function parseEnabledTools(envValue) {
|
|
|
194
194
|
continue;
|
|
195
195
|
}
|
|
196
196
|
// Handle presets
|
|
197
|
-
if (part
|
|
197
|
+
if (Object.prototype.hasOwnProperty.call(TOOL_PRESETS, part)) {
|
|
198
198
|
if (!hasBaseSet) {
|
|
199
199
|
// First preset replaces the default
|
|
200
200
|
enabledTools = new Set(TOOL_PRESETS[part]);
|
|
@@ -238,7 +238,7 @@ function resolveToolName(name) {
|
|
|
238
238
|
return normalized;
|
|
239
239
|
}
|
|
240
240
|
// Check aliases
|
|
241
|
-
if (normalized
|
|
241
|
+
if (Object.prototype.hasOwnProperty.call(TOOL_ALIASES, normalized)) {
|
|
242
242
|
return TOOL_ALIASES[normalized];
|
|
243
243
|
}
|
|
244
244
|
return undefined;
|
package/dist/config/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/config/tools.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/config/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;GAEG;AACH,6EAA6E;AAC7E,2FAA2F;AAC3F,4EAA4E;AAC5E,4CAA4C;AAC5C,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,cAAc;IACd,wBAAwB;IACxB,YAAY;IACZ,wBAAwB;IACxB,qBAAqB;IACrB,sBAAsB;IACtB,iBAAiB;IACjB,iBAAiB;IACjB,uBAAuB;IACvB,qBAAqB;IACrB,wBAAwB;IACxB,sBAAsB;IACtB,mBAAmB;IACnB,eAAe;IACf,sBAAsB;IACtB,oBAAoB;IACpB,uBAAuB;CACf,CAAC;AAIX;;GAEG;AACH,MAAM,YAAY,GAA+B;IAC/C,8EAA8E;IAC9E,8EAA8E;IAC9E,uEAAuE;IACvE,8EAA8E;IAC9E,+DAA+D;IAC/D,KAAK,EAAE;QACL,qBAAqB;QACrB,cAAc;QACd,wBAAwB;QACxB,YAAY;QACZ,iBAAiB;QACjB,sBAAsB;KACvB;IAED,mEAAmE;IACnE,QAAQ,EAAE;QACR,qBAAqB;QACrB,cAAc;QACd,wBAAwB;QACxB,YAAY;QACZ,wBAAwB;QACxB,iBAAiB;QACjB,iBAAiB;QACjB,sBAAsB;QACtB,eAAe;QACf,sBAAsB;QACtB,oBAAoB;QACpB,uBAAuB;KACxB;IAED,uEAAuE;IACvE,IAAI,EAAE;QACJ,qBAAqB;QACrB,cAAc;QACd,wBAAwB;QACxB,YAAY;QACZ,wBAAwB;QACxB,iBAAiB;QACjB,uBAAuB;QACvB,qBAAqB;QACrB,wBAAwB;QACxB,sBAAsB;QACtB,mBAAmB;QACnB,iBAAiB;QACjB,sBAAsB;QACtB,eAAe;QACf,sBAAsB;QACtB,oBAAoB;QACpB,uBAAuB;KACxB;IAED,gDAAgD;IAChD,GAAG,EAAE;QACH,qBAAqB;QACrB,cAAc;QACd,wBAAwB;QACxB,YAAY;QACZ,wBAAwB;QACxB,sBAAsB;QACtB,iBAAiB;QACjB,iBAAiB;QACjB,uBAAuB;QACvB,qBAAqB;QACrB,wBAAwB;QACxB,sBAAsB;QACtB,mBAAmB;QACnB,eAAe;QACf,sBAAsB;QACtB,oBAAoB;QACpB,uBAAuB;KACxB;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,YAAY,GAA6B;IAC7C,UAAU,EAAE,cAAc;IAC1B,SAAS,EAAE,wBAAwB;IACnC,YAAY,EAAE,wBAAwB;IACtC,QAAQ,EAAE,YAAY;IACtB,UAAU,EAAE,YAAY;IACxB,YAAY,EAAE,wBAAwB;IACtC,SAAS,EAAE,wBAAwB;IACnC,SAAS,EAAE,qBAAqB;IAChC,iBAAiB,EAAE,qBAAqB;IACxC,UAAU,EAAE,qBAAqB;IACjC,QAAQ,EAAE,sBAAsB;IAChC,UAAU,EAAE,iBAAiB;IAC7B,QAAQ,EAAE,iBAAiB;IAC3B,aAAa,EAAE,iBAAiB;IAChC,KAAK,EAAE,iBAAiB;IACxB,QAAQ,EAAE,uBAAuB;IACjC,OAAO,EAAE,uBAAuB;IAChC,OAAO,EAAE,uBAAuB;IAChC,SAAS,EAAE,qBAAqB;IAChC,OAAO,EAAE,qBAAqB;IAC9B,WAAW,EAAE,qBAAqB;IAClC,WAAW,EAAE,wBAAwB;IACrC,SAAS,EAAE,wBAAwB;IACnC,cAAc,EAAE,wBAAwB;IACxC,OAAO,EAAE,sBAAsB;IAC/B,QAAQ,EAAE,sBAAsB;IAChC,OAAO,EAAE,sBAAsB;IAC/B,YAAY,EAAE,sBAAsB;IACpC,UAAU,EAAE,mBAAmB;IAC/B,WAAW,EAAE,mBAAmB;IAChC,MAAM,EAAE,mBAAmB;IAC3B,OAAO,EAAE,mBAAmB;IAC5B,OAAO,EAAE,mBAAmB;CAC7B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,SAAS,iBAAiB,CAAC,QAA4B;IACrD,6CAA6C;IAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,IAAI,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnF,IAAI,YAAY,GAAG,IAAI,GAAG,EAAY,CAAC;IACvC,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,2BAA2B;QAC3B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,YAAY,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC/C,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,yBAAyB,QAAQ,GAAG,CAAC,CAAC;YACrD,CAAC;YACD,SAAS;QACX,CAAC;QAED,0BAA0B;QAC1B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,YAAY,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC/C,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,4BAA4B,QAAQ,GAAG,CAAC,CAAC;YACxD,CAAC;YACD,SAAS;QACX,CAAC;QAED,iBAAiB;QACjB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,oCAAoC;gBACpC,YAAY,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC3C,UAAU,GAAG,IAAI,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,yCAAyC;gBACzC,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;YACD,SAAS;QACX,CAAC;QAED,0BAA0B;QAC1B,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,0CAA0C;gBAC1C,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;gBACvC,UAAU,GAAG,IAAI,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,4BAA4B,IAAI,GAAG,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,IAAY;IACnC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAEtC,yCAAyC;IACzC,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,OAAO,UAAsB,CAAC;IAChC,CAAC;IAED,gBAAgB;IAChB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE,CAAC;QACnE,OAAO,YAAY,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAQ,UAAgC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU;IACN,YAAY,CAAgB;IAEpC;QACE,IAAI,CAAC,YAAY,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAEjE,kCAAkC;QAClC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,YAAY,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,IAAc;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU;QACf,OAAO,EAAE,GAAG,YAAY,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU;QACf,OAAO,EAAE,GAAG,YAAY,EAAE,CAAC;IAC7B,CAAC;CACF;AAED,4BAA4B;AAC5B,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;AAE3C,8CAA8C;AAC9C,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC;AACpC,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC;AAEpC;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAqC;IACtE,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,KAAK;CACZ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"savedLocationsHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/savedLocationsHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"savedLocationsHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/savedLocationsHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AA+C5D;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,OAAO,EACb,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,GACjC,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAuS7D;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAuG7D;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,OAAO,EACb,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAyF7D;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,OAAO,EACb,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAyC7D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,aAAa,GAC3B;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAkBzC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Handlers for saved location management tools
|
|
3
3
|
*/
|
|
4
4
|
import { validateLatitude, validateLongitude } from '../utils/validation.js';
|
|
5
|
+
import { describeSavedLocationDefect } from '../utils/savedLocationShape.js';
|
|
5
6
|
/**
|
|
6
7
|
* Escape user input for safe embedding in Markdown
|
|
7
8
|
*/
|
|
@@ -115,6 +116,13 @@ export async function handleSaveLocation(args, locationStore, nominatimService)
|
|
|
115
116
|
// If empty string provided, notes stays undefined but notesProvided is true
|
|
116
117
|
notes = trimmed.length > 0 ? trimmed : undefined;
|
|
117
118
|
}
|
|
119
|
+
// Validate name if provided. Unlike the fields above, an empty name does not
|
|
120
|
+
// clear anything: it is treated as not supplied, and the branch below decides
|
|
121
|
+
// what "no name" means (keep the stored one, use the geocoded one, or refuse).
|
|
122
|
+
if (saveArgs.name !== undefined && typeof saveArgs.name !== 'string') {
|
|
123
|
+
throw new Error('name must be a string');
|
|
124
|
+
}
|
|
125
|
+
const providedName = saveArgs.name?.trim() || undefined;
|
|
118
126
|
// Check for partial update mode (updating existing location without re-specifying coordinates)
|
|
119
127
|
const hasLocationDetails = saveArgs.location_query ||
|
|
120
128
|
(typeof saveArgs.latitude === 'number' && typeof saveArgs.longitude === 'number');
|
|
@@ -131,7 +139,7 @@ export async function handleSaveLocation(args, locationStore, nominatimService)
|
|
|
131
139
|
// Partial update: preserve existing location data, only update specified fields
|
|
132
140
|
latitude = existingLocation.latitude;
|
|
133
141
|
longitude = existingLocation.longitude;
|
|
134
|
-
name =
|
|
142
|
+
name = providedName ?? existingLocation.name;
|
|
135
143
|
timezone = existingLocation.timezone;
|
|
136
144
|
country_code = existingLocation.country_code;
|
|
137
145
|
admin1 = existingLocation.admin1;
|
|
@@ -150,7 +158,7 @@ export async function handleSaveLocation(args, locationStore, nominatimService)
|
|
|
150
158
|
const location = results.results[0];
|
|
151
159
|
latitude = location.latitude;
|
|
152
160
|
longitude = location.longitude;
|
|
153
|
-
name =
|
|
161
|
+
name = providedName ?? location.name;
|
|
154
162
|
timezone = location.timezone;
|
|
155
163
|
country_code = location.country_code;
|
|
156
164
|
admin1 = location.admin1;
|
|
@@ -163,10 +171,10 @@ export async function handleSaveLocation(args, locationStore, nominatimService)
|
|
|
163
171
|
longitude = saveArgs.longitude;
|
|
164
172
|
validateLatitude(latitude);
|
|
165
173
|
validateLongitude(longitude);
|
|
166
|
-
if (
|
|
174
|
+
if (providedName === undefined) {
|
|
167
175
|
throw new Error('name parameter is required when providing coordinates directly');
|
|
168
176
|
}
|
|
169
|
-
name =
|
|
177
|
+
name = providedName;
|
|
170
178
|
}
|
|
171
179
|
else {
|
|
172
180
|
throw new Error('Either location_query OR (latitude + longitude + name) must be provided');
|
|
@@ -302,9 +310,20 @@ export async function handleListSavedLocations(locationStore) {
|
|
|
302
310
|
let output = `# Saved Locations\n\n`;
|
|
303
311
|
output += `**Total:** ${aliases.length} location${aliases.length > 1 ? 's' : ''}\n\n`;
|
|
304
312
|
output += `---\n\n`;
|
|
313
|
+
// A hand-edited entry the renderer cannot show is named, not rendered — so
|
|
314
|
+
// one bad entry cannot take the whole listing down with it.
|
|
315
|
+
const malformed = new Set();
|
|
305
316
|
for (const alias of aliases) {
|
|
306
317
|
const location = locations[alias];
|
|
307
318
|
output += `## \`${escapeMarkdown(alias)}\`\n\n`;
|
|
319
|
+
const defect = describeSavedLocationDefect(location);
|
|
320
|
+
if (defect) {
|
|
321
|
+
malformed.add(alias);
|
|
322
|
+
output += `⚠️ This entry cannot be shown: \`${defect.field}\` ${defect.problem}. ` +
|
|
323
|
+
`Remove it with \`remove_saved_location(alias="${alias.replace(/[`\r\n]/g, '')}")\` ` +
|
|
324
|
+
`or repair it in the file below.\n\n`;
|
|
325
|
+
continue;
|
|
326
|
+
}
|
|
308
327
|
output += `**Name:** ${escapeMarkdown(location.name)}\n`;
|
|
309
328
|
output += `**Coordinates:** ${location.latitude.toFixed(4)}°, ${location.longitude.toFixed(4)}°\n`;
|
|
310
329
|
if (location.description) {
|
|
@@ -334,13 +353,16 @@ export async function handleListSavedLocations(locationStore) {
|
|
|
334
353
|
}
|
|
335
354
|
output += `\n`;
|
|
336
355
|
}
|
|
356
|
+
const healthy = aliases.filter(a => !malformed.has(a));
|
|
337
357
|
output += `---\n\n`;
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
358
|
+
if (healthy.length > 0) {
|
|
359
|
+
output += `**Usage Examples:**\n\n`;
|
|
360
|
+
output += `\`\`\`\n`;
|
|
361
|
+
for (const alias of healthy.slice(0, 3)) {
|
|
362
|
+
output += `get_forecast(location_name="${alias}")\n`;
|
|
363
|
+
}
|
|
364
|
+
output += `\`\`\`\n\n`;
|
|
342
365
|
}
|
|
343
|
-
output += `\`\`\`\n\n`;
|
|
344
366
|
output += `*Storage location: ${locationStore.getStorePath()}*\n`;
|
|
345
367
|
return {
|
|
346
368
|
content: [
|
|
@@ -369,6 +391,11 @@ export async function handleGetSavedLocation(args, locationStore) {
|
|
|
369
391
|
: 'No saved locations yet. Use save_location to create one.\n\n') +
|
|
370
392
|
`Use list_saved_locations to see all saved locations.`);
|
|
371
393
|
}
|
|
394
|
+
const defect = describeSavedLocationDefect(location);
|
|
395
|
+
if (defect) {
|
|
396
|
+
throw new Error(`Saved location "${alias}" cannot be shown: ${defect.field} ${defect.problem}.\n\n` +
|
|
397
|
+
`Remove it with remove_saved_location or repair it in ${locationStore.getStorePath()}.`);
|
|
398
|
+
}
|
|
372
399
|
let output = `# Saved Location: \`${escapeMarkdown(alias)}\`\n\n`;
|
|
373
400
|
output += `**Name:** ${escapeMarkdown(location.name)}\n`;
|
|
374
401
|
output += `**Coordinates:** ${location.latitude.toFixed(4)}°, ${location.longitude.toFixed(4)}°\n`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"savedLocationsHandler.js","sourceRoot":"","sources":["../../src/handlers/savedLocationsHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAsB7E;;GAEG;AACH,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,IAAI;SACR,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;SACtB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAa,EACb,aAA4B,EAC5B,gBAAkC;IAElC,MAAM,QAAQ,GAAG,IAAwB,CAAC;IAE1C,iBAAiB;IACjB,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAClD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IAED,kCAAkC;IAClC,IAAI,UAAgC,CAAC;IACrC,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAC/B,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACtC,kBAAkB,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QAED,yBAAyB;QACzB,MAAM,mBAAmB,GAAa,EAAE,CAAC;QACzC,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YAC3C,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACpD,CAAC;YACD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,SAAS,CAAC,qBAAqB;YACjC,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;YACjE,CAAC;YACD,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,8CAA8C;QAC9C,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,UAAU,GAAG,mBAAmB,CAAC;QACnC,CAAC;QACD,qFAAqF;IACvF,CAAC;IAED,mCAAmC;IACnC,IAAI,WAA+B,CAAC;IACpC,IAAI,mBAAmB,GAAG,KAAK,CAAC;IAChC,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACvC,mBAAmB,GAAG,IAAI,CAAC;QAC3B,IAAI,OAAO,QAAQ,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QACD,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAC5C,wFAAwF;QACxF,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACzD,CAAC;IAED,sCAAsC;IACtC,IAAI,cAAoC,CAAC;IACzC,IAAI,sBAAsB,GAAG,KAAK,CAAC;IACnC,IAAI,QAAQ,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QAC1C,sBAAsB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,uBAAuB,GAAa,EAAE,CAAC;QAC7C,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;YAC9C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC1D,CAAC;YACD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,SAAS,CAAC,qBAAqB;YACjC,CAAC;YACD,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QAED,4EAA4E;QAC5E,+CAA+C;QAC/C,cAAc,GAAG,uBAAuB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5F,CAAC;IAED,6BAA6B;IAC7B,IAAI,KAAyB,CAAC;IAC9B,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACjC,aAAa,GAAG,IAAI,CAAC;QACrB,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACtC,4EAA4E;QAC5E,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACnD,CAAC;IAED,+FAA+F;IAC/F,MAAM,kBAAkB,GAAG,QAAQ,CAAC,cAAc;QAChD,CAAC,OAAO,QAAQ,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC;IACpF,MAAM,gBAAgB,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,eAAe,GAAG,gBAAgB,IAAI,CAAC,kBAAkB,CAAC;IAEhE,IAAI,QAAgB,CAAC;IACrB,IAAI,SAAiB,CAAC;IACtB,IAAI,IAAY,CAAC;IACjB,IAAI,QAA4B,CAAC;IACjC,IAAI,YAAgC,CAAC;IACrC,IAAI,MAA0B,CAAC;IAC/B,IAAI,MAA0B,CAAC;IAE/B,IAAI,eAAe,EAAE,CAAC;QACpB,gFAAgF;QAChF,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC;QACrC,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC;QACvC,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC;QAC9C,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC;QACrC,YAAY,GAAG,gBAAgB,CAAC,YAAY,CAAC;QAC7C,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC;QACjC,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC;IACnC,CAAC;SAAM,IAAI,QAAQ,CAAC,cAAc,IAAI,OAAO,QAAQ,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;QAClF,oBAAoB;QACpB,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAEhE,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CACb,4BAA4B,KAAK,kBAAkB;gBACnD,yEAAyE;gBACzE,gCAAgC;gBAChC,yEAAyE,CAC1E,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACpC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC7B,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QAC/B,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC;QACtC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC7B,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;QACrC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QACzB,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC3B,CAAC;SAAM,IACL,OAAO,QAAQ,CAAC,QAAQ,KAAK,QAAQ;QACrC,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,EACtC,CAAC;QACD,2BAA2B;QAC3B,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC7B,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QAC/B,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC3B,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAE7B,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CACb,yEAAyE,CAC1E,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,qEAAqE;IACrE,EAAE;IACF,+EAA+E;IAC/E,2EAA2E;IAC3E,gFAAgF;IAChF,+EAA+E;IAC/E,gFAAgF;IAChF,mEAAmE;IACnE,EAAE;IACF,6EAA6E;IAC7E,4EAA4E;IAC5E,uCAAuC;IACvC,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAE3C,2EAA2E;IAC3E,uEAAuE;IACvE,yEAAyE;IACzE,qEAAqE;IACrE,4EAA4E;IAC5E,4EAA4E;IAC5E,0CAA0C;IAC1C,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC5B,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;QACpC,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,2BAA2B;IAC3B,MAAM,QAAQ,GAAG,SAAS,KAAK,SAAS,CAAC;IAEzC,oBAAoB;IACpB,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE;QACvB,IAAI;QACJ,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,YAAY;QACZ,MAAM;QACN,MAAM;QACN,WAAW;QACX,cAAc;QACd,KAAK;QACL,UAAU;KACX,CAAC,CAAC;IAEH,4CAA4C;IAC5C,IAAI,aAAa,GAAG,OAAO,CAAC;IAC5B,IAAI,eAAe,EAAE,CAAC;QACpB,aAAa,GAAG,SAAS,CAAC;IAC5B,CAAC;SAAM,IAAI,QAAQ,EAAE,CAAC;QACpB,aAAa,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED,IAAI,MAAM,GAAG,KAAK,aAAa,eAAe,CAAC;IAC/C,MAAM,IAAI,gBAAgB,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC;IACtD,MAAM,IAAI,aAAa,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;IAChD,MAAM,IAAI,oBAAoB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAEjF,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,IAAI,iBAAiB,QAAQ,IAAI,CAAC;IAC1C,CAAC;IAED,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,IAAI,gBAAgB,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC;IAC3D,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,IAAI,eAAe,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC;IACtD,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,IAAI,oBAAoB,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC;IAChE,CAAC;IAED,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,wBAAwB,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACtF,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,IAAI,cAAc,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC;IACpD,CAAC;IAED,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,mBAAmB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACrF,CAAC;IAED,MAAM,IAAI,IAAI,CAAC;IACf,MAAM,IAAI,SAAS,CAAC;IACpB,MAAM,IAAI,uEAAuE,CAAC;IAClF,MAAM,IAAI,mCAAmC,KAAK,QAAQ,CAAC;IAC3D,MAAM,IAAI,6CAA6C,KAAK,QAAQ,CAAC;IACrE,MAAM,IAAI,iCAAiC,KAAK,QAAQ,CAAC;IACzD,MAAM,IAAI,mCAAmC,CAAC;IAE9C,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,yFAAyF,CAAC;IACtG,CAAC;IAED,MAAM,IAAI,sBAAsB,aAAa,CAAC,YAAY,EAAE,KAAK,CAAC;IAElE,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,MAAM;aACb;SACF;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,aAA4B;IAE5B,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;IAE9C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,uBAAuB;wBAC3B,6BAA6B;wBAC7B,4DAA4D;wBAC5D,UAAU;wBACV,6DAA6D;wBAC7D,iEAAiE;wBACjE,YAAY;wBACZ,sBAAsB,aAAa,CAAC,YAAY,EAAE,KAAK;iBAC1D;aACF;SACF,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,GAAG,uBAAuB,CAAC;IACrC,MAAM,IAAI,cAAc,OAAO,CAAC,MAAM,YAAY,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IACtF,MAAM,IAAI,SAAS,CAAC;IAEpB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,IAAI,QAAQ,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC;QAChD,MAAM,IAAI,aAAa,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QACzD,MAAM,IAAI,oBAAoB,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;QAEnG,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;YACzB,MAAM,IAAI,oBAAoB,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC;QACzE,CAAC;QAED,IAAI,QAAQ,CAAC,cAAc,IAAI,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,wBAAwB,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/F,CAAC;QAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAI,iBAAiB,QAAQ,CAAC,QAAQ,IAAI,CAAC;QACnD,CAAC;QAED,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;YAC1B,MAAM,IAAI,gBAAgB,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC;QACpE,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,eAAe,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;QAC/D,CAAC;QAED,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,IAAI,cAAc,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;QAC7D,CAAC;QAED,IAAI,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,mBAAmB,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9F,CAAC;QAED,MAAM,IAAI,cAAc,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,kBAAkB,EAAE,IAAI,CAAC;QAE7E,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC;YAC9C,MAAM,IAAI,gBAAgB,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,kBAAkB,EAAE,IAAI,CAAC;QACnF,CAAC;QAED,MAAM,IAAI,IAAI,CAAC;IACjB,CAAC;IAED,MAAM,IAAI,SAAS,CAAC;IACpB,MAAM,IAAI,yBAAyB,CAAC;IACpC,MAAM,IAAI,UAAU,CAAC;IACrB,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,+BAA+B,KAAK,MAAM,CAAC;IACvD,CAAC;IACD,MAAM,IAAI,YAAY,CAAC;IACvB,MAAM,IAAI,sBAAsB,aAAa,CAAC,YAAY,EAAE,KAAK,CAAC;IAElE,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,MAAM;aACb;SACF;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAa,EACb,aAA4B;IAE5B,MAAM,OAAO,GAAG,IAAuB,CAAC;IAExC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IACjD,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAE1C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,KAAK,CACb,aAAa,KAAK,kBAAkB;YACpC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;gBACnB,CAAC,CAAC,wBAAwB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;gBACpD,CAAC,CAAC,8DAA8D,CAAC;YACnE,sDAAsD,CACvD,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,GAAG,uBAAuB,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC;IAClE,MAAM,IAAI,aAAa,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IACzD,MAAM,IAAI,oBAAoB,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAEnG,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;QACzB,MAAM,IAAI,oBAAoB,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC;IACzE,CAAC;IAED,IAAI,QAAQ,CAAC,cAAc,IAAI,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,wBAAwB,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAC/F,CAAC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACtB,MAAM,IAAI,iBAAiB,QAAQ,CAAC,QAAQ,IAAI,CAAC;IACnD,CAAC;IAED,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,IAAI,gBAAgB,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC;IACpE,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,IAAI,eAAe,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;IAC/D,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,IAAI,eAAe,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;IAC/D,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,IAAI,cAAc,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;IAC7D,CAAC;IAED,IAAI,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,mBAAmB,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9F,CAAC;IAED,MAAM,IAAI,cAAc,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC;IAEzE,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC9C,MAAM,IAAI,qBAAqB,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC;IACpF,CAAC;IAED,MAAM,IAAI,IAAI,CAAC;IACf,MAAM,IAAI,SAAS,CAAC;IACpB,MAAM,IAAI,yBAAyB,CAAC;IACpC,MAAM,IAAI,UAAU,CAAC;IACrB,MAAM,IAAI,+BAA+B,KAAK,MAAM,CAAC;IACrD,MAAM,IAAI,yCAAyC,KAAK,MAAM,CAAC;IAC/D,MAAM,IAAI,6BAA6B,KAAK,MAAM,CAAC;IACnD,MAAM,IAAI,kCAAkC,KAAK,MAAM,CAAC;IACxD,MAAM,IAAI,UAAU,CAAC;IAErB,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,MAAM;aACb;SACF;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,IAAa,EACb,aAA4B;IAE5B,MAAM,UAAU,GAAG,IAA0B,CAAC;IAE9C,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IACpD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE5C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,KAAK,CACb,aAAa,KAAK,kBAAkB;YACpC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;gBACnB,CAAC,CAAC,wBAAwB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAChD,CAAC,CAAC,qBAAqB,CAAC,CAC3B,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC;IAExC,IAAI,MAAM,GAAG,wBAAwB,CAAC;IACtC,MAAM,IAAI,oCAAoC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC5E,MAAM,IAAI,4BAA4B,SAAS,MAAM,CAAC;IAEtD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,4DAA4D,CAAC;IACzE,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,mCAAmC,CAAC;QAC9C,MAAM,IAAI,8CAA8C,CAAC;IAC3D,CAAC;IAED,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,MAAM;aACb;SACF;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,YAAoB,EACpB,aAA4B;IAE5B,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAEjD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,KAAK,CACb,mBAAmB,YAAY,kBAAkB;YACjD,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;gBACnB,CAAC,CAAC,wBAAwB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;gBACpD,CAAC,CAAC,8DAA8D,CAAC;YACnE,sDAAsD,CACvD,CAAC;IACJ,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;KAC9B,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"savedLocationsHandler.js","sourceRoot":"","sources":["../../src/handlers/savedLocationsHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAuB7E;;GAEG;AACH,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,IAAI;SACR,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;SACtB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAa,EACb,aAA4B,EAC5B,gBAAkC;IAElC,MAAM,QAAQ,GAAG,IAAwB,CAAC;IAE1C,iBAAiB;IACjB,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAClD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IAED,kCAAkC;IAClC,IAAI,UAAgC,CAAC;IACrC,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAC/B,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACtC,kBAAkB,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QAED,yBAAyB;QACzB,MAAM,mBAAmB,GAAa,EAAE,CAAC;QACzC,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YAC3C,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACpD,CAAC;YACD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,SAAS,CAAC,qBAAqB;YACjC,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;YACjE,CAAC;YACD,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,8CAA8C;QAC9C,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,UAAU,GAAG,mBAAmB,CAAC;QACnC,CAAC;QACD,qFAAqF;IACvF,CAAC;IAED,mCAAmC;IACnC,IAAI,WAA+B,CAAC;IACpC,IAAI,mBAAmB,GAAG,KAAK,CAAC;IAChC,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACvC,mBAAmB,GAAG,IAAI,CAAC;QAC3B,IAAI,OAAO,QAAQ,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QACD,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAC5C,wFAAwF;QACxF,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACzD,CAAC;IAED,sCAAsC;IACtC,IAAI,cAAoC,CAAC;IACzC,IAAI,sBAAsB,GAAG,KAAK,CAAC;IACnC,IAAI,QAAQ,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QAC1C,sBAAsB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,uBAAuB,GAAa,EAAE,CAAC;QAC7C,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;YAC9C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC1D,CAAC;YACD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,SAAS,CAAC,qBAAqB;YACjC,CAAC;YACD,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QAED,4EAA4E;QAC5E,+CAA+C;QAC/C,cAAc,GAAG,uBAAuB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5F,CAAC;IAED,6BAA6B;IAC7B,IAAI,KAAyB,CAAC;IAC9B,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACjC,aAAa,GAAG,IAAI,CAAC;QACrB,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACtC,4EAA4E;QAC5E,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACnD,CAAC;IAED,6EAA6E;IAC7E,8EAA8E;IAC9E,+EAA+E;IAC/E,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IACD,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;IAExD,+FAA+F;IAC/F,MAAM,kBAAkB,GAAG,QAAQ,CAAC,cAAc;QAChD,CAAC,OAAO,QAAQ,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC;IACpF,MAAM,gBAAgB,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,eAAe,GAAG,gBAAgB,IAAI,CAAC,kBAAkB,CAAC;IAEhE,IAAI,QAAgB,CAAC;IACrB,IAAI,SAAiB,CAAC;IACtB,IAAI,IAAY,CAAC;IACjB,IAAI,QAA4B,CAAC;IACjC,IAAI,YAAgC,CAAC;IACrC,IAAI,MAA0B,CAAC;IAC/B,IAAI,MAA0B,CAAC;IAE/B,IAAI,eAAe,EAAE,CAAC;QACpB,gFAAgF;QAChF,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC;QACrC,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC;QACvC,IAAI,GAAG,YAAY,IAAI,gBAAgB,CAAC,IAAI,CAAC;QAC7C,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC;QACrC,YAAY,GAAG,gBAAgB,CAAC,YAAY,CAAC;QAC7C,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC;QACjC,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC;IACnC,CAAC;SAAM,IAAI,QAAQ,CAAC,cAAc,IAAI,OAAO,QAAQ,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;QAClF,oBAAoB;QACpB,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAEhE,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CACb,4BAA4B,KAAK,kBAAkB;gBACnD,yEAAyE;gBACzE,gCAAgC;gBAChC,yEAAyE,CAC1E,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACpC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC7B,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QAC/B,IAAI,GAAG,YAAY,IAAI,QAAQ,CAAC,IAAI,CAAC;QACrC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC7B,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;QACrC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QACzB,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC3B,CAAC;SAAM,IACL,OAAO,QAAQ,CAAC,QAAQ,KAAK,QAAQ;QACrC,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,EACtC,CAAC;QACD,2BAA2B;QAC3B,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC7B,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QAC/B,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC3B,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAE7B,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,YAAY,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CACb,yEAAyE,CAC1E,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,qEAAqE;IACrE,EAAE;IACF,+EAA+E;IAC/E,2EAA2E;IAC3E,gFAAgF;IAChF,+EAA+E;IAC/E,gFAAgF;IAChF,mEAAmE;IACnE,EAAE;IACF,6EAA6E;IAC7E,4EAA4E;IAC5E,uCAAuC;IACvC,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAE3C,2EAA2E;IAC3E,uEAAuE;IACvE,yEAAyE;IACzE,qEAAqE;IACrE,4EAA4E;IAC5E,4EAA4E;IAC5E,0CAA0C;IAC1C,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC5B,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;QACpC,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,2BAA2B;IAC3B,MAAM,QAAQ,GAAG,SAAS,KAAK,SAAS,CAAC;IAEzC,oBAAoB;IACpB,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE;QACvB,IAAI;QACJ,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,YAAY;QACZ,MAAM;QACN,MAAM;QACN,WAAW;QACX,cAAc;QACd,KAAK;QACL,UAAU;KACX,CAAC,CAAC;IAEH,4CAA4C;IAC5C,IAAI,aAAa,GAAG,OAAO,CAAC;IAC5B,IAAI,eAAe,EAAE,CAAC;QACpB,aAAa,GAAG,SAAS,CAAC;IAC5B,CAAC;SAAM,IAAI,QAAQ,EAAE,CAAC;QACpB,aAAa,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED,IAAI,MAAM,GAAG,KAAK,aAAa,eAAe,CAAC;IAC/C,MAAM,IAAI,gBAAgB,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC;IACtD,MAAM,IAAI,aAAa,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;IAChD,MAAM,IAAI,oBAAoB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAEjF,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,IAAI,iBAAiB,QAAQ,IAAI,CAAC;IAC1C,CAAC;IAED,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,IAAI,gBAAgB,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC;IAC3D,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,IAAI,eAAe,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC;IACtD,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,IAAI,oBAAoB,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC;IAChE,CAAC;IAED,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,wBAAwB,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACtF,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,IAAI,cAAc,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC;IACpD,CAAC;IAED,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,mBAAmB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACrF,CAAC;IAED,MAAM,IAAI,IAAI,CAAC;IACf,MAAM,IAAI,SAAS,CAAC;IACpB,MAAM,IAAI,uEAAuE,CAAC;IAClF,MAAM,IAAI,mCAAmC,KAAK,QAAQ,CAAC;IAC3D,MAAM,IAAI,6CAA6C,KAAK,QAAQ,CAAC;IACrE,MAAM,IAAI,iCAAiC,KAAK,QAAQ,CAAC;IACzD,MAAM,IAAI,mCAAmC,CAAC;IAE9C,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,yFAAyF,CAAC;IACtG,CAAC;IAED,MAAM,IAAI,sBAAsB,aAAa,CAAC,YAAY,EAAE,KAAK,CAAC;IAElE,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,MAAM;aACb;SACF;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,aAA4B;IAE5B,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;IAE9C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,uBAAuB;wBAC3B,6BAA6B;wBAC7B,4DAA4D;wBAC5D,UAAU;wBACV,6DAA6D;wBAC7D,iEAAiE;wBACjE,YAAY;wBACZ,sBAAsB,aAAa,CAAC,YAAY,EAAE,KAAK;iBAC1D;aACF;SACF,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,GAAG,uBAAuB,CAAC;IACrC,MAAM,IAAI,cAAc,OAAO,CAAC,MAAM,YAAY,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IACtF,MAAM,IAAI,SAAS,CAAC;IAEpB,2EAA2E;IAC3E,4DAA4D;IAC5D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IAEpC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,IAAI,QAAQ,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC;QAEhD,MAAM,MAAM,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,MAAM,EAAE,CAAC;YACX,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACrB,MAAM,IAAI,oCAAoC,MAAM,CAAC,KAAK,MAAM,MAAM,CAAC,OAAO,IAAI;gBAChF,iDAAiD,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO;gBACrF,qCAAqC,CAAC;YACxC,SAAS;QACX,CAAC;QAED,MAAM,IAAI,aAAa,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QACzD,MAAM,IAAI,oBAAoB,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;QAEnG,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;YACzB,MAAM,IAAI,oBAAoB,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC;QACzE,CAAC;QAED,IAAI,QAAQ,CAAC,cAAc,IAAI,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,wBAAwB,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/F,CAAC;QAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAI,iBAAiB,QAAQ,CAAC,QAAQ,IAAI,CAAC;QACnD,CAAC;QAED,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;YAC1B,MAAM,IAAI,gBAAgB,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC;QACpE,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,eAAe,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;QAC/D,CAAC;QAED,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,IAAI,cAAc,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;QAC7D,CAAC;QAED,IAAI,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,mBAAmB,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9F,CAAC;QAED,MAAM,IAAI,cAAc,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,kBAAkB,EAAE,IAAI,CAAC;QAE7E,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC;YAC9C,MAAM,IAAI,gBAAgB,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,kBAAkB,EAAE,IAAI,CAAC;QACnF,CAAC;QAED,MAAM,IAAI,IAAI,CAAC;IACjB,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,IAAI,SAAS,CAAC;IACpB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,yBAAyB,CAAC;QACpC,MAAM,IAAI,UAAU,CAAC;QACrB,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,+BAA+B,KAAK,MAAM,CAAC;QACvD,CAAC;QACD,MAAM,IAAI,YAAY,CAAC;IACzB,CAAC;IACD,MAAM,IAAI,sBAAsB,aAAa,CAAC,YAAY,EAAE,KAAK,CAAC;IAElE,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,MAAM;aACb;SACF;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAa,EACb,aAA4B;IAE5B,MAAM,OAAO,GAAG,IAAuB,CAAC;IAExC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IACjD,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAE1C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,KAAK,CACb,aAAa,KAAK,kBAAkB;YACpC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;gBACnB,CAAC,CAAC,wBAAwB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;gBACpD,CAAC,CAAC,8DAA8D,CAAC;YACnE,sDAAsD,CACvD,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,mBAAmB,KAAK,sBAAsB,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,OAAO;YACnF,wDAAwD,aAAa,CAAC,YAAY,EAAE,GAAG,CACxF,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,GAAG,uBAAuB,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC;IAClE,MAAM,IAAI,aAAa,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IACzD,MAAM,IAAI,oBAAoB,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAEnG,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;QACzB,MAAM,IAAI,oBAAoB,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC;IACzE,CAAC;IAED,IAAI,QAAQ,CAAC,cAAc,IAAI,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,wBAAwB,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAC/F,CAAC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACtB,MAAM,IAAI,iBAAiB,QAAQ,CAAC,QAAQ,IAAI,CAAC;IACnD,CAAC;IAED,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,IAAI,gBAAgB,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC;IACpE,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,IAAI,eAAe,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;IAC/D,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,IAAI,eAAe,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;IAC/D,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,IAAI,cAAc,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;IAC7D,CAAC;IAED,IAAI,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,mBAAmB,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9F,CAAC;IAED,MAAM,IAAI,cAAc,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC;IAEzE,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC9C,MAAM,IAAI,qBAAqB,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC;IACpF,CAAC;IAED,MAAM,IAAI,IAAI,CAAC;IACf,MAAM,IAAI,SAAS,CAAC;IACpB,MAAM,IAAI,yBAAyB,CAAC;IACpC,MAAM,IAAI,UAAU,CAAC;IACrB,MAAM,IAAI,+BAA+B,KAAK,MAAM,CAAC;IACrD,MAAM,IAAI,yCAAyC,KAAK,MAAM,CAAC;IAC/D,MAAM,IAAI,6BAA6B,KAAK,MAAM,CAAC;IACnD,MAAM,IAAI,kCAAkC,KAAK,MAAM,CAAC;IACxD,MAAM,IAAI,UAAU,CAAC;IAErB,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,MAAM;aACb;SACF;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,IAAa,EACb,aAA4B;IAE5B,MAAM,UAAU,GAAG,IAA0B,CAAC;IAE9C,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IACpD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE5C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,KAAK,CACb,aAAa,KAAK,kBAAkB;YACpC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;gBACnB,CAAC,CAAC,wBAAwB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAChD,CAAC,CAAC,qBAAqB,CAAC,CAC3B,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC;IAExC,IAAI,MAAM,GAAG,wBAAwB,CAAC;IACtC,MAAM,IAAI,oCAAoC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC5E,MAAM,IAAI,4BAA4B,SAAS,MAAM,CAAC;IAEtD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,4DAA4D,CAAC;IACzE,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,mCAAmC,CAAC;QAC9C,MAAM,IAAI,8CAA8C,CAAC;IAC3D,CAAC;IAED,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,MAAM;aACb;SACF;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,YAAoB,EACpB,aAA4B;IAE5B,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAEjD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,KAAK,CACb,mBAAmB,YAAY,kBAAkB;YACjD,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;gBACnB,CAAC,CAAC,wBAAwB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;gBACpD,CAAC,CAAC,8DAA8D,CAAC;YACnE,sDAAsD,CACvD,CAAC;IACJ,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;KAC9B,CAAC;AACJ,CAAC"}
|
|
@@ -666,7 +666,7 @@ export const TOOL_DEFINITIONS = {
|
|
|
666
666
|
},
|
|
667
667
|
save_location: {
|
|
668
668
|
name: 'save_location',
|
|
669
|
-
description: 'Save a location for easy reuse in weather queries. Use this when a user wants to save a frequently used location like "home", "work", "cabin", or "aunt lisa\'s house". Accepts either a location query (which will be geocoded automatically) or direct coordinates. Saved locations can then be used with any weather tool by providing location_name instead of coordinates. SMART UPDATES: If the alias already exists, any field you omit is preserved (including description, alternateNames, and notes) — provide only what you want to change (e.g. just name/activities, without location details, to update those while preserving coordinates and metadata). Pass an empty value ("" or []) to explicitly clear a field.',
|
|
669
|
+
description: 'Save a location for easy reuse in weather queries. Use this when a user wants to save a frequently used location like "home", "work", "cabin", or "aunt lisa\'s house". Accepts either a location query (which will be geocoded automatically) or direct coordinates. Saved locations can then be used with any weather tool by providing location_name instead of coordinates. SMART UPDATES: If the alias already exists, any field you omit is preserved (including description, alternateNames, and notes) — provide only what you want to change (e.g. just name/activities, without location details, to update those while preserving coordinates and metadata). Pass an empty value ("" or []) to explicitly clear a field. (name cannot be cleared — an empty name keeps the current one.)',
|
|
670
670
|
inputSchema: {
|
|
671
671
|
type: 'object',
|
|
672
672
|
properties: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"weatherServer.js","sourceRoot":"","sources":["../../src/server/weatherServer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"weatherServer.js","sourceRoot":"","sources":["../../src/server/weatherServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,11 +35,18 @@ export declare class LocationStore {
|
|
|
35
35
|
* machine share this file, so a cached copy written back whole silently deletes
|
|
36
36
|
* the other client's saves. Every call returns a fresh object.
|
|
37
37
|
*
|
|
38
|
+
* The returned object has no prototype, so every lowercase alias, `__proto__`
|
|
39
|
+
* and `constructor` included, is an ordinary key.
|
|
40
|
+
*
|
|
38
41
|
* @throws {LocationStoreUnreadableError} when the file exists but cannot be
|
|
39
42
|
* read, cannot be parsed, or is not a plain JSON object at the top level.
|
|
40
43
|
* A zero-byte or whitespace-only file is a parse failure like any other.
|
|
41
44
|
*/
|
|
42
45
|
load(): SavedLocationsStore;
|
|
46
|
+
/**
|
|
47
|
+
* Whether `alias` is an own key of `locations`, never one inherited from a prototype.
|
|
48
|
+
*/
|
|
49
|
+
private static owns;
|
|
43
50
|
/**
|
|
44
51
|
* Save all locations to disk
|
|
45
52
|
* @private
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locationStore.d.ts","sourceRoot":"","sources":["../../src/services/locationStore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoBH,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAIrF;;;;;;;;;;;GAWG;AACH,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,YAAY,SAAS,EAAE,MAAM,EAQ5B;CACF;AAKD,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC,YAAY,UAAU,CAAC,EAAE,MAAM,EAQ9B;IAED;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAc7B
|
|
1
|
+
{"version":3,"file":"locationStore.d.ts","sourceRoot":"","sources":["../../src/services/locationStore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoBH,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAIrF;;;;;;;;;;;GAWG;AACH,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,YAAY,SAAS,EAAE,MAAM,EAQ5B;CACF;AAKD,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC,YAAY,UAAU,CAAC,EAAE,MAAM,EAQ9B;IAED;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAc7B;;;;;;;;;;;;;OAaG;IACH,IAAI,IAAI,mBAAmB,CAyC1B;IAED;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,IAAI;IAInB;;;OAGG;IACH,OAAO,CAAC,IAAI;IAkBZ;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,kBAAkB;IA0B1B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,eAAe;IA+DvB;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAI5C;IAED;;OAEG;IACH,MAAM,IAAI,mBAAmB,CAE5B;IAED;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,YAAY,CAAC,GAAG,aAAa,CAkC1F;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAa7B;IAED;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAI1B;IAED;;OAEG;IACH,KAAK,IAAI,MAAM,CAGd;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAKZ;IAED;;OAEG;IACH,YAAY,IAAI,MAAM,CAErB;CACF"}
|
|
@@ -7,7 +7,7 @@ import { randomBytes } from 'crypto';
|
|
|
7
7
|
import { homedir } from 'os';
|
|
8
8
|
import { join, dirname, basename, resolve, isAbsolute } from 'path';
|
|
9
9
|
import { logger } from '../utils/logger.js';
|
|
10
|
-
import {
|
|
10
|
+
import { validateSavedLocationInput } from '../utils/savedLocationShape.js';
|
|
11
11
|
/**
|
|
12
12
|
* Thrown when `~/.weather-mcp/locations.json` exists but cannot be read, parsed,
|
|
13
13
|
* or does not hold a plain JSON object at the top level.
|
|
@@ -70,6 +70,9 @@ export class LocationStore {
|
|
|
70
70
|
* machine share this file, so a cached copy written back whole silently deletes
|
|
71
71
|
* the other client's saves. Every call returns a fresh object.
|
|
72
72
|
*
|
|
73
|
+
* The returned object has no prototype, so every lowercase alias, `__proto__`
|
|
74
|
+
* and `constructor` included, is an ordinary key.
|
|
75
|
+
*
|
|
73
76
|
* @throws {LocationStoreUnreadableError} when the file exists but cannot be
|
|
74
77
|
* read, cannot be parsed, or is not a plain JSON object at the top level.
|
|
75
78
|
* A zero-byte or whitespace-only file is a parse failure like any other.
|
|
@@ -84,7 +87,7 @@ export class LocationStore {
|
|
|
84
87
|
logger.debug('No saved locations file found, starting fresh', {
|
|
85
88
|
path: this.storePath
|
|
86
89
|
});
|
|
87
|
-
return
|
|
90
|
+
return Object.create(null);
|
|
88
91
|
}
|
|
89
92
|
// Any other read failure (EISDIR, EACCES, EIO, ENOTDIR) is unreadable, not empty.
|
|
90
93
|
logger.error('Failed to read saved locations', error, {
|
|
@@ -112,7 +115,13 @@ export class LocationStore {
|
|
|
112
115
|
count: Object.keys(parsed).length,
|
|
113
116
|
path: this.storePath
|
|
114
117
|
});
|
|
115
|
-
return parsed;
|
|
118
|
+
return Object.assign(Object.create(null), parsed);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Whether `alias` is an own key of `locations`, never one inherited from a prototype.
|
|
122
|
+
*/
|
|
123
|
+
static owns(locations, alias) {
|
|
124
|
+
return Object.prototype.hasOwnProperty.call(locations, alias);
|
|
116
125
|
}
|
|
117
126
|
/**
|
|
118
127
|
* Save all locations to disk
|
|
@@ -244,7 +253,7 @@ export class LocationStore {
|
|
|
244
253
|
get(alias) {
|
|
245
254
|
const locations = this.load();
|
|
246
255
|
const normalized = alias.toLowerCase().trim();
|
|
247
|
-
return locations[normalized];
|
|
256
|
+
return LocationStore.owns(locations, normalized) ? locations[normalized] : undefined;
|
|
248
257
|
}
|
|
249
258
|
/**
|
|
250
259
|
* Get all saved locations
|
|
@@ -264,14 +273,14 @@ export class LocationStore {
|
|
|
264
273
|
if (normalized.length > 50) {
|
|
265
274
|
throw new Error('Location alias must be 50 characters or less');
|
|
266
275
|
}
|
|
267
|
-
// Validate
|
|
268
|
-
|
|
269
|
-
|
|
276
|
+
// Validate the whole record before the file is read or written, so a bad
|
|
277
|
+
// record from any writer is refused and the file is left untouched.
|
|
278
|
+
const validated = validateSavedLocationInput(location);
|
|
270
279
|
const locations = this.load();
|
|
271
|
-
const isUpdate = normalized
|
|
280
|
+
const isUpdate = LocationStore.owns(locations, normalized);
|
|
272
281
|
const now = new Date().toISOString();
|
|
273
282
|
const savedLocation = {
|
|
274
|
-
...
|
|
283
|
+
...validated,
|
|
275
284
|
saved_at: isUpdate ? locations[normalized].saved_at : now,
|
|
276
285
|
updated_at: now
|
|
277
286
|
};
|
|
@@ -279,7 +288,7 @@ export class LocationStore {
|
|
|
279
288
|
this.save(locations);
|
|
280
289
|
logger.info(isUpdate ? 'Updated saved location' : 'Created new saved location', {
|
|
281
290
|
alias: normalized,
|
|
282
|
-
name:
|
|
291
|
+
name: validated.name
|
|
283
292
|
});
|
|
284
293
|
return savedLocation;
|
|
285
294
|
}
|
|
@@ -289,7 +298,7 @@ export class LocationStore {
|
|
|
289
298
|
remove(alias) {
|
|
290
299
|
const locations = this.load();
|
|
291
300
|
const normalized = alias.toLowerCase().trim();
|
|
292
|
-
if (!(normalized
|
|
301
|
+
if (!LocationStore.owns(locations, normalized)) {
|
|
293
302
|
return false;
|
|
294
303
|
}
|
|
295
304
|
delete locations[normalized];
|
|
@@ -303,7 +312,7 @@ export class LocationStore {
|
|
|
303
312
|
has(alias) {
|
|
304
313
|
const locations = this.load();
|
|
305
314
|
const normalized = alias.toLowerCase().trim();
|
|
306
|
-
return normalized
|
|
315
|
+
return LocationStore.owns(locations, normalized);
|
|
307
316
|
}
|
|
308
317
|
/**
|
|
309
318
|
* Get the number of saved locations
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locationStore.js","sourceRoot":"","sources":["../../src/services/locationStore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,YAAY,EACZ,SAAS,EACT,UAAU,EACV,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,UAAU,EACV,UAAU,EACX,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAEpE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"locationStore.js","sourceRoot":"","sources":["../../src/services/locationStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -95,6 +95,16 @@ export declare function prependCriticalAlertBanner<T extends {
|
|
|
95
95
|
* Exposed primarily for tests to guarantee a clean slate.
|
|
96
96
|
*/
|
|
97
97
|
export declare function clearCityGeocodeCache(): void;
|
|
98
|
+
/**
|
|
99
|
+
* Thrown when a saved alias is found but its stored coordinates are not usable
|
|
100
|
+
* (a hand-edited string, NaN or out-of-range value). A distinct type so the
|
|
101
|
+
* WEATHER_DEFAULT_LOCATION fallback can tell "this alias is saved but broken"
|
|
102
|
+
* from "this is not a saved alias" — only the second may be geocoded as a place
|
|
103
|
+
* name. Renders exactly like a plain Error.
|
|
104
|
+
*/
|
|
105
|
+
export declare class SavedLocationCoordinateError extends Error {
|
|
106
|
+
constructor(message: string);
|
|
107
|
+
}
|
|
98
108
|
/**
|
|
99
109
|
* Resolve location coordinates from either direct coordinates or a saved location name
|
|
100
110
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locationResolver.d.ts","sourceRoot":"","sources":["../../src/utils/locationResolver.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAgC,MAAM,8BAA8B,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAK5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,aAAa,GAAG,gBAAgB,GAAG,UAAU,GAAG,SAAS,CAAC;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAerE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CACjC,CAAC,SAAS;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,EAC7D,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,gBAAgB,GAAG,CAAC,CAO1C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,0BAA0B,CACxC,CAAC,SAAS;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,EAC7D,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,CAM9B;AAwBD;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,aAAa,EACnB,aAAa,EAAE,aAAa,GAC3B,gBAAgB,
|
|
1
|
+
{"version":3,"file":"locationResolver.d.ts","sourceRoot":"","sources":["../../src/utils/locationResolver.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAgC,MAAM,8BAA8B,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAK5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,aAAa,GAAG,gBAAgB,GAAG,UAAU,GAAG,SAAS,CAAC;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAerE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CACjC,CAAC,SAAS;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,EAC7D,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,gBAAgB,GAAG,CAAC,CAO1C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,0BAA0B,CACxC,CAAC,SAAS;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,EAC7D,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,CAM9B;AAwBD;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED;;;;;;GAMG;AACH,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,aAAa,EACnB,aAAa,EAAE,aAAa,GAC3B,gBAAgB,CAgGlB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,aAAa,EACnB,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,GACjC,OAAO,CAAC,gBAAgB,CAAC,CA4F3B;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,mBAAmB,EAAE,MAAM,GAAG,SAAS,EACvC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,YAAY,EAAE,OAAO,CAAA;CAAE,CAAC,CAmBhE"}
|
|
@@ -103,6 +103,19 @@ function cityGeocodeKey(cityName) {
|
|
|
103
103
|
export function clearCityGeocodeCache() {
|
|
104
104
|
cityGeocodeCache.clear();
|
|
105
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* Thrown when a saved alias is found but its stored coordinates are not usable
|
|
108
|
+
* (a hand-edited string, NaN or out-of-range value). A distinct type so the
|
|
109
|
+
* WEATHER_DEFAULT_LOCATION fallback can tell "this alias is saved but broken"
|
|
110
|
+
* from "this is not a saved alias" — only the second may be geocoded as a place
|
|
111
|
+
* name. Renders exactly like a plain Error.
|
|
112
|
+
*/
|
|
113
|
+
export class SavedLocationCoordinateError extends Error {
|
|
114
|
+
constructor(message) {
|
|
115
|
+
super(message);
|
|
116
|
+
this.name = 'SavedLocationCoordinateError';
|
|
117
|
+
}
|
|
118
|
+
}
|
|
106
119
|
/**
|
|
107
120
|
* Resolve location coordinates from either direct coordinates or a saved location name
|
|
108
121
|
*
|
|
@@ -125,8 +138,12 @@ export function resolveLocation(args, locationStore) {
|
|
|
125
138
|
if (!savedLocation) {
|
|
126
139
|
const allLocations = locationStore.getAll();
|
|
127
140
|
for (const [alias, location] of Object.entries(allLocations)) {
|
|
128
|
-
// Check if query matches any alternate names
|
|
129
|
-
|
|
141
|
+
// Check if query matches any alternate names. A hand-edited neighbour
|
|
142
|
+
// whose alternateNames is not a list of strings is skipped, so it
|
|
143
|
+
// cannot break every lookup that misses an exact alias.
|
|
144
|
+
if (Array.isArray(location.alternateNames) &&
|
|
145
|
+
location.alternateNames.every((n) => typeof n === 'string') &&
|
|
146
|
+
location.alternateNames.length > 0) {
|
|
130
147
|
const normalizedAlternates = location.alternateNames.map(name => name.toLowerCase().trim());
|
|
131
148
|
if (normalizedAlternates.includes(locationName)) {
|
|
132
149
|
savedLocation = location;
|
|
@@ -144,12 +161,27 @@ export function resolveLocation(args, locationStore) {
|
|
|
144
161
|
: 'No saved locations yet. Use save_location to create one.\n\n') +
|
|
145
162
|
`Use list_saved_locations to see all saved locations.`);
|
|
146
163
|
}
|
|
164
|
+
// The file is hand-editable: refuse a stored coordinate that is not usable
|
|
165
|
+
// rather than send it upstream. Only the coordinates are checked — a bad
|
|
166
|
+
// name does not stop a weather tool, because nothing here reads it.
|
|
167
|
+
try {
|
|
168
|
+
validateLatitude(savedLocation.latitude);
|
|
169
|
+
validateLongitude(savedLocation.longitude);
|
|
170
|
+
}
|
|
171
|
+
catch (error) {
|
|
172
|
+
throw new SavedLocationCoordinateError(`Saved location "${matchedAlias}" has an invalid coordinate: ` +
|
|
173
|
+
`${error instanceof Error ? error.message : String(error)}. Repair or remove it.`);
|
|
174
|
+
}
|
|
147
175
|
return {
|
|
148
176
|
latitude: savedLocation.latitude,
|
|
149
177
|
longitude: savedLocation.longitude,
|
|
150
178
|
source: 'saved_location',
|
|
151
179
|
location_name: matchedAlias,
|
|
152
|
-
|
|
180
|
+
// An unusable optional country code is dropped, not refused: the caller
|
|
181
|
+
// then takes the coordinate-based country lookup instead.
|
|
182
|
+
country_code: typeof savedLocation.country_code === 'string'
|
|
183
|
+
? savedLocation.country_code
|
|
184
|
+
: undefined
|
|
153
185
|
};
|
|
154
186
|
}
|
|
155
187
|
// Check if direct coordinates are provided
|
|
@@ -323,7 +355,10 @@ async function resolveDefaultLocation(raw, locationStore, geocodingService) {
|
|
|
323
355
|
// place name and return the weather for wherever Nominatim puts "home",
|
|
324
356
|
// which is worse than an error. Every other failure here really does mean
|
|
325
357
|
// "not a saved alias" and still falls through to the geocode below.
|
|
326
|
-
|
|
358
|
+
// A saved alias with an unusable coordinate is the same case: the alias is
|
|
359
|
+
// there, it is broken, and geocoding its name would be a wrong-place answer.
|
|
360
|
+
if (error instanceof LocationStoreUnreadableError ||
|
|
361
|
+
error instanceof SavedLocationCoordinateError) {
|
|
327
362
|
throw error;
|
|
328
363
|
}
|
|
329
364
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locationResolver.js","sourceRoot":"","sources":["../../src/utils/locationResolver.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"locationResolver.js","sourceRoot":"","sources":["../../src/utils/locationResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one record-shape contract for a saved location.
|
|
3
|
+
*
|
|
4
|
+
* `save_location` accepts a hand-typed request and `LocationStore` reads a
|
|
5
|
+
* hand-editable JSON file — both are untrusted `unknown` at the boundary.
|
|
6
|
+
* This module is the single place that decides what a well-formed
|
|
7
|
+
* `SavedLocation` looks like, so the write side (`validateSavedLocationInput`)
|
|
8
|
+
* and the read side (`describeSavedLocationDefect`) can never disagree about
|
|
9
|
+
* which field is checked first or what "wrong" means for it. Both share the
|
|
10
|
+
* same field-order constants below for exactly that reason.
|
|
11
|
+
*
|
|
12
|
+
* Pure and zero-I/O: no upstream call, no file access, no logging.
|
|
13
|
+
*/
|
|
14
|
+
import type { SavedLocation } from '../types/savedLocations.js';
|
|
15
|
+
/**
|
|
16
|
+
* Validate an untrusted `save_location` request body against the saved-location
|
|
17
|
+
* record shape, in a fixed field order (object shape, `name`, `latitude`,
|
|
18
|
+
* `longitude`, then the optional string fields, then the optional array
|
|
19
|
+
* fields). The first failing field wins and throws immediately — this
|
|
20
|
+
* function never collects multiple problems.
|
|
21
|
+
*
|
|
22
|
+
* Coordinate validation is delegated to `validateLatitude`/`validateLongitude`
|
|
23
|
+
* rather than re-implemented, so the accepted range and message text can
|
|
24
|
+
* never drift from every other caller of those two.
|
|
25
|
+
*
|
|
26
|
+
* `undefined` means a field is absent and is always accepted for an optional
|
|
27
|
+
* field. `null` is present and satisfies neither the string check nor the
|
|
28
|
+
* array check, so an explicit `null` on an optional field is rejected the
|
|
29
|
+
* same as any other wrong-typed value.
|
|
30
|
+
*
|
|
31
|
+
* @param input Untrusted request body
|
|
32
|
+
* @returns A shallow copy of `input` with `name` trimmed — no other
|
|
33
|
+
* normalisation, and no `saved_at`/`updated_at` added. Unknown extra
|
|
34
|
+
* fields (and any `saved_at`/`updated_at` already present) pass through
|
|
35
|
+
* untouched.
|
|
36
|
+
* @throws {Error} A fixed, field-naming message for the first field that
|
|
37
|
+
* fails its check
|
|
38
|
+
*/
|
|
39
|
+
export declare function validateSavedLocationInput(input: unknown): Omit<SavedLocation, 'saved_at' | 'updated_at'>;
|
|
40
|
+
/**
|
|
41
|
+
* Describe the first defect in a possibly-malformed saved-location record —
|
|
42
|
+
* for example one hand-edited into `~/.weather-mcp/locations.json` — without
|
|
43
|
+
* throwing. Checks the same fields in the same order as
|
|
44
|
+
* `validateSavedLocationInput`, so a record neither function objects to is
|
|
45
|
+
* exactly the same record. `saved_at`/`updated_at` are never checked: a
|
|
46
|
+
* record `validateSavedLocationInput` accepts, plus any timestamps and any
|
|
47
|
+
* extra fields, always describes as `undefined`.
|
|
48
|
+
*
|
|
49
|
+
* Never throws and never mutates `entry`.
|
|
50
|
+
*
|
|
51
|
+
* @param entry A possibly-malformed record read back from storage
|
|
52
|
+
* @returns The first offending field and a fixed, render-ready problem
|
|
53
|
+
* string, or `undefined` if the record is well-formed
|
|
54
|
+
*/
|
|
55
|
+
export declare function describeSavedLocationDefect(entry: unknown): {
|
|
56
|
+
field: string;
|
|
57
|
+
problem: string;
|
|
58
|
+
} | undefined;
|
|
59
|
+
//# sourceMappingURL=savedLocationShape.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"savedLocationShape.d.ts","sourceRoot":"","sources":["../../src/utils/savedLocationShape.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAmChE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,GACb,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,YAAY,CAAC,CAmChD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,OAAO,GACb;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAwChD"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one record-shape contract for a saved location.
|
|
3
|
+
*
|
|
4
|
+
* `save_location` accepts a hand-typed request and `LocationStore` reads a
|
|
5
|
+
* hand-editable JSON file — both are untrusted `unknown` at the boundary.
|
|
6
|
+
* This module is the single place that decides what a well-formed
|
|
7
|
+
* `SavedLocation` looks like, so the write side (`validateSavedLocationInput`)
|
|
8
|
+
* and the read side (`describeSavedLocationDefect`) can never disagree about
|
|
9
|
+
* which field is checked first or what "wrong" means for it. Both share the
|
|
10
|
+
* same field-order constants below for exactly that reason.
|
|
11
|
+
*
|
|
12
|
+
* Pure and zero-I/O: no upstream call, no file access, no logging.
|
|
13
|
+
*/
|
|
14
|
+
import { validateLatitude, validateLongitude } from './validation.js';
|
|
15
|
+
/**
|
|
16
|
+
* Optional string-valued fields, in the order both functions check them.
|
|
17
|
+
*/
|
|
18
|
+
const STRING_FIELDS = [
|
|
19
|
+
'timezone',
|
|
20
|
+
'country_code',
|
|
21
|
+
'admin1',
|
|
22
|
+
'admin2',
|
|
23
|
+
'description',
|
|
24
|
+
'notes',
|
|
25
|
+
];
|
|
26
|
+
/**
|
|
27
|
+
* Optional array-of-string fields, in the order both functions check them.
|
|
28
|
+
*/
|
|
29
|
+
const ARRAY_FIELDS = ['alternateNames', 'activities'];
|
|
30
|
+
/**
|
|
31
|
+
* A plain, non-null, non-array object — the only shape either function will
|
|
32
|
+
* look at field-by-field. `typeof null === 'object'` and arrays are objects
|
|
33
|
+
* too, so both are excluded explicitly rather than relying on `typeof` alone.
|
|
34
|
+
*/
|
|
35
|
+
function isPlainObject(value) {
|
|
36
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* An array whose every element is a string. `[]` counts (vacuously true).
|
|
40
|
+
*/
|
|
41
|
+
function isStringArray(value) {
|
|
42
|
+
return Array.isArray(value) && value.every((item) => typeof item === 'string');
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Validate an untrusted `save_location` request body against the saved-location
|
|
46
|
+
* record shape, in a fixed field order (object shape, `name`, `latitude`,
|
|
47
|
+
* `longitude`, then the optional string fields, then the optional array
|
|
48
|
+
* fields). The first failing field wins and throws immediately — this
|
|
49
|
+
* function never collects multiple problems.
|
|
50
|
+
*
|
|
51
|
+
* Coordinate validation is delegated to `validateLatitude`/`validateLongitude`
|
|
52
|
+
* rather than re-implemented, so the accepted range and message text can
|
|
53
|
+
* never drift from every other caller of those two.
|
|
54
|
+
*
|
|
55
|
+
* `undefined` means a field is absent and is always accepted for an optional
|
|
56
|
+
* field. `null` is present and satisfies neither the string check nor the
|
|
57
|
+
* array check, so an explicit `null` on an optional field is rejected the
|
|
58
|
+
* same as any other wrong-typed value.
|
|
59
|
+
*
|
|
60
|
+
* @param input Untrusted request body
|
|
61
|
+
* @returns A shallow copy of `input` with `name` trimmed — no other
|
|
62
|
+
* normalisation, and no `saved_at`/`updated_at` added. Unknown extra
|
|
63
|
+
* fields (and any `saved_at`/`updated_at` already present) pass through
|
|
64
|
+
* untouched.
|
|
65
|
+
* @throws {Error} A fixed, field-naming message for the first field that
|
|
66
|
+
* fails its check
|
|
67
|
+
*/
|
|
68
|
+
export function validateSavedLocationInput(input) {
|
|
69
|
+
if (!isPlainObject(input)) {
|
|
70
|
+
throw new Error('Saved location must be an object');
|
|
71
|
+
}
|
|
72
|
+
const { name } = input;
|
|
73
|
+
if (typeof name !== 'string') {
|
|
74
|
+
throw new Error('name must be a string');
|
|
75
|
+
}
|
|
76
|
+
const trimmedName = name.trim();
|
|
77
|
+
if (trimmedName === '') {
|
|
78
|
+
throw new Error('name cannot be empty');
|
|
79
|
+
}
|
|
80
|
+
validateLatitude(input.latitude);
|
|
81
|
+
validateLongitude(input.longitude);
|
|
82
|
+
for (const field of STRING_FIELDS) {
|
|
83
|
+
const value = input[field];
|
|
84
|
+
if (value !== undefined && typeof value !== 'string') {
|
|
85
|
+
throw new Error(`${field} must be a string`);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
for (const field of ARRAY_FIELDS) {
|
|
89
|
+
const value = input[field];
|
|
90
|
+
if (value !== undefined && !isStringArray(value)) {
|
|
91
|
+
throw new Error(`${field} must be an array of strings`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
...input,
|
|
96
|
+
name: trimmedName,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Describe the first defect in a possibly-malformed saved-location record —
|
|
101
|
+
* for example one hand-edited into `~/.weather-mcp/locations.json` — without
|
|
102
|
+
* throwing. Checks the same fields in the same order as
|
|
103
|
+
* `validateSavedLocationInput`, so a record neither function objects to is
|
|
104
|
+
* exactly the same record. `saved_at`/`updated_at` are never checked: a
|
|
105
|
+
* record `validateSavedLocationInput` accepts, plus any timestamps and any
|
|
106
|
+
* extra fields, always describes as `undefined`.
|
|
107
|
+
*
|
|
108
|
+
* Never throws and never mutates `entry`.
|
|
109
|
+
*
|
|
110
|
+
* @param entry A possibly-malformed record read back from storage
|
|
111
|
+
* @returns The first offending field and a fixed, render-ready problem
|
|
112
|
+
* string, or `undefined` if the record is well-formed
|
|
113
|
+
*/
|
|
114
|
+
export function describeSavedLocationDefect(entry) {
|
|
115
|
+
if (!isPlainObject(entry)) {
|
|
116
|
+
return { field: 'entry', problem: 'is not an object' };
|
|
117
|
+
}
|
|
118
|
+
const { name } = entry;
|
|
119
|
+
if (typeof name !== 'string') {
|
|
120
|
+
return { field: 'name', problem: 'is not text' };
|
|
121
|
+
}
|
|
122
|
+
if (name.trim() === '') {
|
|
123
|
+
return { field: 'name', problem: 'is empty' };
|
|
124
|
+
}
|
|
125
|
+
try {
|
|
126
|
+
validateLatitude(entry.latitude);
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
return { field: 'latitude', problem: 'is not a finite number in range' };
|
|
130
|
+
}
|
|
131
|
+
try {
|
|
132
|
+
validateLongitude(entry.longitude);
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
return { field: 'longitude', problem: 'is not a finite number in range' };
|
|
136
|
+
}
|
|
137
|
+
for (const field of STRING_FIELDS) {
|
|
138
|
+
const value = entry[field];
|
|
139
|
+
if (value !== undefined && typeof value !== 'string') {
|
|
140
|
+
return { field, problem: 'is not text' };
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
for (const field of ARRAY_FIELDS) {
|
|
144
|
+
const value = entry[field];
|
|
145
|
+
if (value !== undefined && !isStringArray(value)) {
|
|
146
|
+
return { field, problem: 'is not a list of text' };
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return undefined;
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=savedLocationShape.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"savedLocationShape.js","sourceRoot":"","sources":["../../src/utils/savedLocationShape.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGtE;;GAEG;AACH,MAAM,aAAa,GAAG;IACpB,UAAU;IACV,cAAc;IACd,QAAQ;IACR,QAAQ;IACR,aAAa;IACb,OAAO;CACC,CAAC;AAEX;;GAEG;AACH,MAAM,YAAY,GAAG,CAAC,gBAAgB,EAAE,YAAY,CAAU,CAAC;AAE/D;;;;GAIG;AACH,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;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC;AACjF,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAAc;IAEd,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACvB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,WAAW,KAAK,EAAE,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjC,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEnC,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,mBAAmB,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,8BAA8B,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,OAAO;QACL,GAAG,KAAK;QACR,IAAI,EAAE,WAAW;KACgC,CAAC;AACtD,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,2BAA2B,CACzC,KAAc;IAEd,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;IACzD,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACvB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IACnD,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACvB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IAChD,CAAC;IAED,IAAI,CAAC;QACH,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;IAC3E,CAAC;IAED,IAAI,CAAC;QACH,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;IAC5E,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;QACrD,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dangahagan/weather-mcp",
|
|
3
|
-
"version": "1.33.
|
|
3
|
+
"version": "1.33.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",
|